diff --git a/components/All.js b/components/All.js
index 3a089df..8718a78 100644
--- a/components/All.js
+++ b/components/All.js
@@ -6,14 +6,9 @@ export const get = val => typeof val === "function" ? val() : val;
export const getBy = (item, field = 'label') => (item && typeof item === 'object') ? item[field] : item;
export const cls = (...classes) => classes.filter(Boolean).join(' ').trim();
export const isFn = f => typeof f === "function";
-export const filterBy = (items, query, field = 'label') => {
- const searchTerm = String(query).toLowerCase();
- const list = get(items);
- return !searchTerm ? list : list.filter(item => {
- const text = (item && typeof item === 'object') ? item[field] : item;
- return String(text).toLowerCase().includes(searchTerm);
- });
-};
+export const filterBy = (items, query, field = 'label', q = String(query).toLowerCase()) => !query ? get(items) : get(items).filter(item => String(item && typeof item === 'object' ? item[field] : item).toLowerCase().includes(q));
+export const rand = (r) => `${r}-${Math.random().toString(36).slice(2, 9)}`
+export const close = () => document.activeElement?.blur()
export const listKey = (items, isOpen) => {
const cursor = $(-1);
watch(() => { if (!get(isOpen)) cursor(-1) });
@@ -29,251 +24,23 @@ export const listKey = (items, isOpen) => {
return { cursor, onKey };
};
-export const Alert = (p, c) => h("div", { ...p, class: cls("alert", p.class) }, c);
-export const Badge = (p, c) => h("span", { ...p, class: cls("badge", p.class) }, c);
-export const Button = (p, c) => h("button", { ...p, class: cls("btn", p.class) }, c);
-export const Card = (p, c) => h("div", { ...p, class: cls("card", p.class) }, c);
-export const CardTitle = (p, c) => h("div", { ...p, class: cls("card-title", p.class) }, c);
-export const CardBody = (p, c) => h("div", { ...p, class: cls("card-body", p.class) }, c);
-export const CardActions = (p, c) => h("div", { ...p, class: cls("card-actions", p.class) }, c);
-export const Carousel = (p, c) => h("div", { ...p, class: cls("carousel", p.class) }, c);
-export const CarouselItem = (p, c) => h("div", { ...p, class: cls("carousel-item", p.class) }, c);
-export const Chat = (p, c) => h("div", { ...p, class: cls("chat", p.class) }, c);
-export const ChatBubble = (p, c) => h("div", { ...p, class: cls("chat-bubble", p.class) }, c);
-export const ChatFooter = (p, c) => h("div", { ...p, class: cls("chat-footer", p.class) }, c);
-export const ChatHeader = (p, c) => h("div", { ...p, class: cls("chat-header", p.class) }, c);
-export const ChatImage = (p, c) => h("div", { ...p, class: cls("chat-image avatar", p.class) }, h("div", { class: "w-10 rounded-full" }, typeof c === "string" ? h("img", { src: c, alt: "avatar" }) : c));
-export const Checkbox = (p) => h("input", { ...p, type: "checkbox", class: cls("checkbox", p.class) });
-export const Divider = (p) => h("div", { ...p, class: cls("divider", p.class) });
-export const Fab = (p, c) => h("div", { ...p, class: cls("fab", p.class) }, c);
-export const Fieldset = (p, c) => h("fieldset", { ...p, class: cls("fieldset", p.class) }, [p.legend && h("legend", { class: "fieldset-legend" }, p.legend), c]);
-export const Icon = (p) => h("span", { class: p.startsWith("icon-") ? p : "" }, p.startsWith("icon-") ? null : p);
-export const Indicator = (p, c) => h("div", { ...p, class: cls("indicator", p.class) }, [p.value && h("span", { class: cls("indicator-item badge", p.class) }, p.value), c]);
-export const Kbd = (p, c) => h("kbd", { ...p, class: cls("kbd", p.class) }, c);
-export const Loading = (p, c) => h("span", { ...p, class: cls("loading loading-spinner", p.class) }, c);
-export const Navbar = (p, c) => h("div", { ...p, class: cls("navbar", p.class) }, c);
-export const Progress = (p) => h("progress", { ...p, class: cls("progress", p.class) });
-export const Radial = (p, c) => h("div", { ...p, class: cls("radial-progress", p.class), style: `--value:${p.value ?? 0};${p.style ?? ''}`, role: "progressbar", "aria-valuenow": p.value ?? 0 }, c ?? `${p.value ?? 0}%`)
-export const Radio = (p) => h("input", { ...p, type: "radio", class: cls("radio", p.class) });
-export const Range = (p) => h("input", { ...p, type: "range", class: cls("range", p.class) });
-export const Skeleton = (p) => h("div", { ...p, class: cls("skeleton", p.class) });
-export const SkeletonText = (p) => h("span", { ...p, class: cls("skeleton skeleton-text", p.class) });
-export const Stack = (p, c) => h("div", { ...p, class: cls("stack", p.class) }, c);
-export const Steps = (p, c) => h("ul", { ...p, class: cls("steps", p.class) }, c);
-export const Step = (p, c) => h("li", { ...p, class: cls("step", p.class), "data-content": p.dataContent }, c);
-export const Swap = (p) => h("label", { ...p, class: cls("swap", p.class) }, [
- h("input", { type: "checkbox", checked: () => get(p.value), onchange: (e) => isFn(p.value) && p.value(e.target.checked) }),
- h("div", { class: "swap-on" }, p.on),
- h("div", { class: "swap-off" }, p.off)
-]);
-export const Textarea = (p) => h("textarea", { ...p, class: cls("textarea", p.class) });
-export const TextRotate = (p) => {
- const words = Array.isArray(p.words) ? p.words : (typeof p.words === 'string' ? p.words.split(',') : []);
- return h("span", { ...p, class: cls("text-rotate", p.class) }, h("span", {}, words.map(w => h("span", {}, w))));
-};
-export const Timeline = (p, c) => h("ul", {
- ...p,
- class: cls("timeline",
- p.vertical !== false ? 'timeline-vertical' : 'timeline-horizontal',
- p.compact ? 'timeline-compact' : '',
- p.class
- )
-}, c);
-export const Toggle = (p) => h("input", { ...p, type: "checkbox", class: cls("toggle", p.class) });
-export const Tooltip = (p, c) => h("div", { ...p, class: cls("tooltip", p.class), "data-tip": p.tip }, c);
-
-
-// Complex Components
-
-// Accordion
+// Components
export const Accordion = (p) => {
- const name = p.name || `acc-${Math.random().toString(36).slice(2)}`
- const base = cls('collapse', p.variant && `collapse-${p.variant}`, p.class)
- const itemFn = (it) => {
- const t = getBy(it, 'title')
- const c = it.content
- return p.type === 'details'
- ? h('details', { class: base, name, open: it.open || undefined },
- h('summary', { class: 'collapse-title font-semibold' }, t),
- c ? h('div', { class: 'collapse-content text-sm' }, c) : null)
- : h('div', { class: base },
- h('input', { type: 'radio', name, checked: it.open || undefined }),
- h('div', { class: 'collapse-title font-semibold' }, t),
- c ? h('div', { class: 'collapse-content text-sm' }, c) : null)
- }
- return isFn(p.items) ? each(p.items, itemFn, (it, i) => it?.id ?? i) : (p.items || []).map(itemFn)
+ const name = p.name || rand('acc')
+ return each(p.items, (it) => {
+ return h('div', { class: cls('collapse', p.class) }, [
+ h('input', { type: 'radio', name, checked: it.open || undefined }),
+ it.title ? h('div', { class: cls("collapse-title", `${it.classTitle ?? ' font-semibold'}`) }, it.title) : null,
+ it.content ? h('div', { class: cls("collapse-content text-sm", `${it.classContent ?? ' font-semibold'}`) }, it.content) : null,
+ ]);
+ });
}
-
-// Table
-export const Table = (p) => {
- if (p.children !== undefined) return h('table', { class: cls('table', p.class), ...p }, p.children)
- const { items, columns = [], header = true, keyFn, ...rest } = p
- const hd = header !== false && columns.some(c => c.label) ? h('thead', {}, h('tr', {}, columns.map(c => h('th', { class: c.class }, c.label)))) : null
- const bd = h('tbody', {}, each(
- () => get(items) || [],
- (it, idx) => h('tr', {}, columns.map(c => {
- const v = c.render ? c.render(it, idx) : it[c.key]
- return h('td', { class: c.class }, v)
- })),
- keyFn || ((it, idx) => it?.id ?? idx)
- ))
- return h('table', { class: cls('table', rest.class), ...rest }, [hd, bd])
-}
-
-// Tabs
-export const Tabs = (p) => {
- if (p.children !== undefined) return h('div', { class: cls('tabs', p.class), ...p }, p.children)
- const { items, activeIndex, onClose, ...rest } = p
- const closeHandler = onClose || (isFn(items) ? (idx) => {
- const arr = get(items)
- const newArr = arr.filter((_, i) => i !== idx)
- items(newArr)
- if (activeIndex() >= newArr.length) activeIndex(Math.max(0, newArr.length - 1))
- } : null)
-
- return h('div', { class: cls('tabs', p.class), ...rest },
- each(
- () => get(items) || [],
- (it, idx) => {
- const act = () => activeIndex() === idx
- return [
- h('a', {
- role: 'tab',
- class: () => `tab ${act() ? 'tab-active' : ''} ${it.class || ''}`,
- onclick: (e) => { e.preventDefault(); activeIndex(idx); it.onclick?.(e) }
- }, getBy(it), it.closable ? h('span', {
- class: 'icon-[lucide--x] w-3.5 h-3.5 ml-2 cursor-pointer hover:opacity-70',
- onclick: (e) => { e.stopPropagation(); closeHandler?.(idx) }
- }) : null),
- h('div', {
- class: `tab-content ${it.contentClass || ''}`,
- style: () => `display: ${act() ? 'block' : 'none'};`
- }, isFn(it.content) ? it.content() : it.content)
- ]
- },
- (it, idx) => it.id ?? idx
- )
- )
-}
-
-// Rating
-export const Rating = (p) => {
- const name = `rating-${Math.random().toString(36).slice(2, 7)}`
- const stars = p.children ?? Array.from({ length: p.count || 5 }, (_, i) => {
- const v = i + 1
- return h('input', {
- type: 'radio',
- name,
- class: cls('mask', p.mask || 'mask-star'),
- checked: () => get(p.value) === v,
- onchange: () => isFn(p.value) ? p.value(v) : p.onchange?.(v)
- })
- })
- return h('div', { class: cls('rating', p.class), ...p }, stars)
-}
-
-// Menu
-export const Menu = (p) => {
- if (p.children !== undefined) return h('ul', { class: cls('menu', p.class), ...p }, p.children)
- const { items, keyFn = (it, idx) => it?.id ?? idx, ...rest } = p
- const render = (item) => item.children
- ? h('li', {}, h('details', {}, h('summary', {}, getBy(item)), h('ul', {}, Menu({ items: item.children }))))
- : h('li', {}, h('a', {
- href: item.href,
- onclick: item.onclick ? (e) => { if (!item.href) e.preventDefault(); item.onclick(e) } : null
- }, getBy(item)))
- return h('ul', { class: cls('menu', rest.class), ...rest },
- each(() => get(items) || [], render, keyFn)
- )
-}
-
-//Drawer
-export const Drawer = (p, c) => {
- const id = p.id || `drawer-${Math.random().toString(36).slice(2, 9)}`
- return h('div', { class: cls('drawer', p.class) }, [
- h('input', {
- id,
- type: 'checkbox',
- class: 'drawer-toggle',
- checked: () => get(p.open),
- onchange: (e) => isFn(p.open) && p.open(e.target.checked)
- }),
- h('div', { class: 'drawer-content' }, c),
- h('div', { class: 'drawer-side' }, [
- h('label', {
- for: id,
- class: 'drawer-overlay',
- onclick: () => isFn(p.open) && p.open(false)
- }),
- h('div', { class: 'min-h-full bg-base-200 w-80 p-4' }, () => get(p.side))
- ])
- ])
-}
-
-//Dropdown
-export const Dropdown = (p, c) => {
- const { trigger, items, ...rest } = p
- const content = c || (items ? h('ul', {
- class: 'menu dropdown-content bg-base-100 rounded-box z-[1] w-52 p-2 shadow'
- }, each(
- () => get(items) || [],
- (item) => h('li', {},
- h('a', {
- onclick: (e) => {
- item.onclick?.(e)
- e.currentTarget.closest('details').open = false
- }
- }, getBy(item))
- ),
- (it, idx) => it.id ?? idx
- )) : null)
-
- return h('details', { class: cls('dropdown', rest.class), ...rest }, [
- h('summary', { class: 'btn m-1' }, trigger || 'Dropdown'),
- content
- ])
-}
-
-//Select
-export const Select = (p, c) => {
- if (c !== undefined) return h('select', { class: cls('select', p.class), ...p }, c)
-
- const { label, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p
-
- const opts = () => {
- const raw = get(items) || []
- const ph = placeholder ? [{ disabled: placeholderDisabled, label: placeholder, value: '' }] : []
- return [...ph, ...raw]
- }
-
- return h('label', { class: float ? 'floating-label' : '' }, [
- float && h('span', {}, label),
- h('label', { class: cls('select', rest.class) }, [
- label && !float && h('span', { class: 'label' }, label),
- left ?? null,
- h('select', {
- value: () => get(value),
- onchange: (e) => isFn(value) ? value(e.target.value) : rest.onchange?.(e)
- },
- each(opts, (item) => {
- const val = getBy(item, item.value !== undefined ? 'value' : undefined)
- const lab = getBy(item, 'label')
- return h('option', { value: val, disabled: item.disabled || undefined }, lab)
- }, (it, i) => it?.id ?? (typeof it === 'string' ? it : it.value) ?? i)
- ),
- right ?? null
- ]),
- hint && h('div', { class: 'validator-hint' }, hint)
- ])
-}
-
-// Autocomplete
+export const Alert = (p, c) => h("div", { ...p, class: cls("alert", p.class) }, c);
export const Autocomplete = ({ items, value, onselect, placeholder = 'Buscar...', ...props }) => {
const query = $(get(value) || '');
const isOpen = $(false);
const filtered = $(() => filterBy(items, query()));
const { cursor, onKey } = listKey(filtered, isOpen);
-
const pick = (item) => {
const display = getBy(item);
const actual = typeof item === 'string' ? item : item.value;
@@ -282,7 +49,6 @@ export const Autocomplete = ({ items, value, onselect, placeholder = 'Buscar...'
onselect?.(item);
isOpen(false);
};
-
return h('div', { class: 'relative w-full' }, [
Input({
...props,
@@ -299,7 +65,6 @@ export const Autocomplete = ({ items, value, onselect, placeholder = 'Buscar...'
onblur: () => setTimeout(() => isOpen(false), 150),
onkeydown: (e) => onKey(e, pick)
}),
-
when(isOpen, () =>
fx({ duration: 200, slide: true },
h('ul', {
@@ -324,8 +89,286 @@ export const Autocomplete = ({ items, value, onselect, placeholder = 'Buscar...'
)
]);
};
+export const Badge = (p, c) => h("span", { ...p, class: cls("badge", p.class) }, c);
+export const Button = (p, c) => h("button", { ...p, class: cls("btn", p.class) }, c);
+export const Calendar = (p) => {
+ const internalDate = $(new Date())
+ const hoverDate = $(null)
+ const startHour = $(0)
+ const endHour = $(0)
+ const now = new Date()
+ const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`
+ const fmt = d => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`
+ const rangeMode = () => get(p.range) === true
+ const current = () => get(p.value)
+ const selectDate = (date) => {
+ const s = fmt(date)
+ const v = current()
+ if (rangeMode()) {
+ if (!v?.start || (v.start && v.end)) {
+ p.onChange?.({ start: s, end: null, ...(p.hour && { startHour: startHour() }) })
+ } else {
+ const start = v.start
+ const nv = s < start ? { start: s, end: start } : { start, end: s }
+ if (p.hour) { nv.startHour = v.startHour ?? startHour(); nv.endHour = endHour() }
+ p.onChange?.(nv)
+ }
+ } else {
+ p.onChange?.(p.hour ? `${s}T${String(startHour()).padStart(2, '0')}:00:00` : s)
+ }
+ }
+ const move = (m) => { const d = internalDate(); internalDate(new Date(d.getFullYear(), d.getMonth() + m, 1)) }
+ const moveYear = (y) => { const d = internalDate(); internalDate(new Date(d.getFullYear() + y, d.getMonth(), 1)) }
+ const HourSlider = ({ value: hVal, onChange: onH }) => h('div', { class: 'flex-1' }, [
+ h('div', { class: 'flex gap-2 items-center' }, [
+ h('input', { type: 'range', min: 0, max: 23, value: hVal, class: 'range range-xs flex-1', oninput: e => onH(+e.target.value) }),
+ h('span', { class: 'text-sm font-mono min-w-[48px] text-center' }, () => String(get(hVal)).padStart(2, '0') + ':00')
+ ])
+ ])
+ return h('div', { class: cls('p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none', p.class) }, [
+ h('div', { class: 'flex justify-between items-center mb-4 gap-1' }, [
+ h('div', { class: 'flex gap-0.5' }, [
+ h('button', { type: 'button', class: 'btn btn-ghost btn-xs px-1', onclick: () => moveYear(-1) }, h('span', { class: 'icon-[lucide--chevrons-left]' })),
+ h('button', { type: 'button', class: 'btn btn-ghost btn-xs px-1', onclick: () => move(-1) }, h('span', { class: 'icon-[lucide--chevron-left]' }))
+ ]),
+ h('span', { class: 'font-bold uppercase flex-1 text-center' }, () => internalDate().toLocaleString('es-ES', { month: 'short', year: 'numeric' })),
+ h('div', { class: 'flex gap-0.5' }, [
+ h('button', { type: 'button', class: 'btn btn-ghost btn-xs px-1', onclick: () => move(1) }, h('span', { class: 'icon-[lucide--chevron-right]' })),
+ h('button', { type: 'button', class: 'btn btn-ghost btn-xs px-1', onclick: () => moveYear(1) }, h('span', { class: 'icon-[lucide--chevrons-right]' }))
+ ])
+ ]),
+ h('div', { class: 'grid grid-cols-7 gap-1', onmouseleave: () => hoverDate(null) }, [
+ ...['L', 'M', 'X', 'J', 'V', 'S', 'D'].map(d => h('div', { class: 'text-[10px] opacity-40 font-bold text-center' }, d)),
+ () => {
+ const d = internalDate(), y = d.getFullYear(), m = d.getMonth()
+ const firstDay = new Date(y, m, 1).getDay()
+ const offset = firstDay === 0 ? 6 : firstDay - 1
+ const dim = new Date(y, m + 1, 0).getDate()
+ const cells = []
+ for (let i = 0; i < offset; i++) cells.push(h('div'))
+ for (let i = 1; i <= dim; i++) {
+ const date = new Date(y, m, i), ds = fmt(date)
+ cells.push(h('button', {
+ type: 'button',
+ class: () => {
+ const v = current(), h = hoverDate()
+ const isStart = typeof v === 'string' ? v.split('T')[0] === ds : v?.start === ds
+ const isEnd = v?.end === ds
+ let inRange = false
+ if (rangeMode() && v?.start) {
+ const start = v.start
+ if (!v.end && h) inRange = (ds > start && ds <= h) || (ds < start && ds >= h)
+ else if (v.end) inRange = ds > start && ds < v.end
+ }
+ const base = 'btn btn-xs p-0 aspect-square min-h-0 h-auto font-normal relative'
+ const st = isStart || isEnd ? 'btn-primary z-10' : inRange ? 'bg-primary/20 border-none rounded-none' : 'btn-ghost'
+ const today = ds === todayStr ? 'ring-1 ring-primary ring-inset font-black text-primary' : ''
+ return cls(base, st, today)
+ },
+ onmouseenter: () => rangeMode() && hoverDate(ds),
+ onclick: () => selectDate(date)
+ }, i.toString()))
+ }
+ return cells
+ }
+ ]),
+ p.hour ? h('div', { class: 'mt-3 pt-2 border-t border-base-300' },
+ rangeMode()
+ ? h('div', { class: 'flex gap-4' }, [HourSlider({ value: startHour, onChange: h => startHour(h) }), HourSlider({ value: endHour, onChange: h => endHour(h) })])
+ : HourSlider({ value: startHour, onChange: h => startHour(h) })
+ ) : null
+ ])
+}
+export const Card = (p, c) => {
+ if (!p.title && !p.body && !p.actions && !c) return h('div', { ...p, class: cls('card', p.class) }, c)
+ return h('div', { ...p, class: cls('card', p.class) }, [
+ p.title && h('div', { class: cls('card-title', p.titleClass) }, p.title),
+ (p.body || c) && h('div', { class: cls('card-body', p.bodyClass) }, p.body || c),
+ p.actions && h('div', { class: cls('card-actions', p.actionsClass) }, p.actions)
+ ].filter(Boolean))
+}
+export const Carousel = (p, c) => h("div", { ...p, class: cls("carousel", p.class) }, c);
+export const CarouselItem = (p, c) => h("div", { ...p, class: cls("carousel-item", p.class) }, c);
+export const Chat = (p, c) => h("div", { ...p, class: cls("chat", p.class) }, c);
+export const ChatBubble = (p, c) => h("div", { ...p, class: cls("chat-bubble", p.class) }, c);
+export const ChatFooter = (p, c) => h("div", { ...p, class: cls("chat-footer", p.class) }, c);
+export const ChatHeader = (p, c) => h("div", { ...p, class: cls("chat-header", p.class) }, c);
+export const ChatImage = (p, c) => h("div", { ...p, class: cls("chat-image avatar", p.class) }, h("div", { class: "w-10 rounded-full" }, typeof c === "string" ? h("img", { src: c, alt: "avatar" }) : c));
+export const Checkbox = (p) => h("input", { ...p, type: "checkbox", class: cls("checkbox", p.class) });
+export const Colorpicker = (p) => {
+ const isOpen = $(false)
+ const current = () => get(p.value) || '#000000'
+ const palette = [
+ '#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'
+ ]
+ const pick = (c) => { isFn(p.value) ? p.value(c) : p.onchange?.(c); isOpen(false) }
+ return h('div', { class: cls('relative w-fit', p.class) }, [
+ h('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) => { e.stopPropagation(); isOpen(!isOpen()) }
+ }, [
+ h('div', { class: 'size-5 rounded-sm shadow-inner border border-black/10 shrink-0', style: () => `background-color: ${current()}` }),
+ p.label && h('span', { class: 'opacity-80' }, p.label)
+ ]),
+ when(isOpen, () => [
+ h('div', {
+ class: 'fixed inset-0 z-[100]',
+ onclick: () => isOpen(false)
+ }),
+ h('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' },
+ h('div', { class: 'grid grid-cols-8 gap-1' },
+ palette.map(c =>
+ h('button', {
+ type: 'button',
+ style: `background-color: ${c}`,
+ class: () => {
+ const act = current().toLowerCase() === c.toLowerCase()
+ return `size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${act ? 'ring-2 ring-offset-1 ring-primary z-10 scale-110' : ''}`
+ },
+ onclick: () => pick(c)
+ })
+ )
+ )
+ )
+ ])
+ ])
+}
+export const Datepicker = (p) => {
+ const isOpen = $(false)
+ const displayValue = $("")
+ const rangeMode = () => get(p.range) === true
+ watch(() => {
+ const v = get(p.value)
+ if (!v) return displayValue("")
+ let text = ""
+ if (typeof v === "string") {
+ text = p.hour && v.includes("T") ? v.replace("T", " ") : v
+ } else if (v.start && v.end) {
+ const startStr = p.hour && v.startHour != null ? `${v.start} ${String(v.startHour).padStart(2, "0")}:00` : v.start
+ const endStr = p.hour && v.endHour != null ? `${v.end} ${String(v.endHour).padStart(2, "0")}:00` : v.end
+ text = `${startStr} - ${endStr}`
+ } else if (v.start) {
+ const startStr = p.hour && v.startHour != null ? `${v.start} ${String(v.startHour).padStart(2, "0")}:00` : v.start
+ text = `${startStr}...`
+ }
+ displayValue(text)
+ })
+ const handleChange = (val) => {
+ if (isFn(p.value)) p.value(val)
+ else p.onChange?.(val)
+ if (!rangeMode() || val?.end != null) isOpen(false)
+ }
+ return h('div', { class: cls('relative w-full', p.class) }, [
+ h('label', { class: 'input input-bordered w-full', onclick: (e) => { e.stopPropagation(); isOpen(!isOpen()) } }, [
+ h('span', { class: 'icon-[lucide--calendar]' }),
+ h('input', {
+ ...p,
+ type: 'text',
+ class: 'grow',
+ value: displayValue,
+ readonly: true,
+ placeholder: p.placeholder || (rangeMode() ? 'Seleccionar rango...' : 'Seleccionar fecha...')
+ })
+ ]),
+ when(isOpen, () => [
+ h('div', { class: 'fixed inset-0 z-[90]', onclick: () => isOpen(false) }),
+ h('div', { class: 'absolute left-0 mt-2 z-[100]', onclick: (e) => e.stopPropagation() },
+ Calendar({ value: p.value, range: rangeMode(), hour: p.hour, onChange: handleChange })
+ )
+ ])
+ ])
+}
+export const Drawer = (p, c) => {
+ const id = p.id || rand("drawer")
+ return h('div', { class: cls('drawer', p.class) }, [
+ h('input', { id, type: 'checkbox', class: 'drawer-toggle', checked: () => get(p.open), onchange: (e) => isFn(p.open) && p.open(e.target.checked) }),
+ h('div', { class: 'drawer-side' }, [h('label', { for: id, class: 'drawer-overlay', onclick: () => isFn(p.open) && p.open(false) }), h('div', { class: 'min-h-full bg-base-200 w-80 p-4' }, () => get(p.side))]),
+ h('div', { class: 'drawer-content' }, c)])
+}
+export const Divider = (p) => h("div", { ...p, class: cls("divider", p.class) });
+export const Dropdown = (p, c) => {
+ return h('div', { ...p, class: cls('dropdown', p.class) }, [
+ h('div', { tabindex: '0', role: 'button', class: cls('btn', p.buttonClass) }, p.label),
+ h('div', { tabindex: '-1', class: 'dropdown-content' }, c)
+ ])
+}
+export const Fab = (p, c) => h("div", { class: "fab" }, [h('div', { tabindex: "0", role: "button", class: cls('btn', p.class) }, Icon(p.icon)), c]);
+export const Fieldset = (p, c) => h("fieldset", { class: cls("fieldset", p.class) }, [h("legend", { class: "fieldset-legend" }, p.label), c])
+export const Fileinput = (p) => {
+ const files = $([])
+ const drag = $(false)
+ const error = $(null)
+ const maxBytes = (p.max || 2) * 1024 * 1024
+ const process = (fileList) => {
+ const arr = Array.from(fileList)
+ error(null)
+ if (arr.some(f => f.size > maxBytes)) {
+ error(`Máx ${p.max || 2}MB`)
+ return
+ }
+ const updated = [...files(), ...arr]
+ files(updated)
+ if (isFn(p.onselect)) p.onselect(updated)
+ else if (isFn(p.value)) p.value(updated)
+ }
-//Input
+ const remove = (idx) => {
+ const updated = files().filter((_, i) => i !== idx)
+ files(updated)
+ if (isFn(p.onselect)) p.onselect(updated)
+ else if (isFn(p.value)) p.value(updated)
+ }
+ return h('div', { class: cls('fieldset w-full p-0', p.class) }, [
+ h('label', {
+ class: () => `relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${drag() ? 'border-primary bg-primary/10' : 'border-base-content/20 bg-base-100 hover:bg-base-200'}`,
+ ondragover: (e) => { e.preventDefault(); drag(true) },
+ ondragleave: () => drag(false),
+ ondrop: (e) => { e.preventDefault(); drag(false); process(e.dataTransfer.files) }
+ }, [
+ h('div', { class: 'flex items-center gap-3 w-full' }, [
+ h('span', { class: 'icon-[lucide--upload]' }),
+ h('span', { class: 'text-sm opacity-70 truncate grow text-left' }, 'Arrastra o selecciona archivos...'),
+ h('span', { class: 'text-[10px] opacity-40 shrink-0' }, `Máx ${p.max || 2}MB`)
+ ]),
+ h('input', {
+ type: 'file',
+ multiple: true,
+ accept: p.accept || '*',
+ class: 'hidden',
+ onchange: (e) => process(e.target.files)
+ })
+ ]),
+ () => error() && h('span', { class: 'text-[10px] text-error mt-1 px-1 font-medium' }, error()),
+ when(() => files().length > 0, () =>
+ h('ul', { class: 'mt-2 space-y-1' },
+ each(files, (file, idx) =>
+ h('li', { class: 'flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300' }, [
+ h('div', { class: 'flex items-center gap-2 truncate' }, [
+ h('span', { class: 'opacity-50' }, '📄'),
+ h('span', { class: 'truncate font-medium max-w-[200px]' }, file.name),
+ h('span', { class: 'text-[9px] opacity-40' }, `(${(file.size / 1024).toFixed(0)} KB)`)
+ ]),
+ h('button', {
+ type: 'button',
+ class: 'btn btn-ghost btn-xs btn-circle',
+ onclick: (e) => { e.preventDefault(); remove(idx) }
+ }, h('span', { class: 'icon-[lucide--x]' }))
+ ])
+ )
+ )
+ )
+ ])
+}
+export const Icon = (p) => h("span", { class: p.startsWith("icon-") ? p : "" }, p.startsWith("icon-") ? null : p);
+export const Indicator = (p, c) => h("div", { ...p, class: cls("indicator", p.class) }, [p.value && h("span", { class: cls("indicator-item badge", p.class) }, p.value), c]);
export const Input = (p) => {
const { label, icon, float, placeholder, value, left, right, rule, hint, content, ...rest } = p;
@@ -369,340 +412,33 @@ export const Input = (p) => {
]),
]);
};
-
-//Colorpicker
-export const Colorpicker = (p) => {
- const isOpen = $(false)
- const current = () => get(p.value) || '#000000'
-
- const palette = [
- '#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'
- ]
-
- const pick = (c) => { isFn(p.value) ? p.value(c) : p.onchange?.(c); isOpen(false) }
-
- return h('div', { class: cls('relative w-fit', p.class) }, [
- h('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) => { e.stopPropagation(); isOpen(!isOpen()) }
- }, [
- h('div', { class: 'size-5 rounded-sm shadow-inner border border-black/10 shrink-0', style: () => `background-color: ${current()}` }),
- p.label && h('span', { class: 'opacity-80' }, p.label)
- ]),
-
- when(isOpen, () => [
- h('div', {
- class: 'fixed inset-0 z-[100]',
- onclick: () => isOpen(false)
- }),
- h('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' },
- h('div', { class: 'grid grid-cols-8 gap-1' },
- palette.map(c =>
- h('button', {
- type: 'button',
- style: `background-color: ${c}`,
- class: () => {
- const act = current().toLowerCase() === c.toLowerCase()
- return `size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${act ? 'ring-2 ring-offset-1 ring-primary z-10 scale-110' : ''}`
- },
- onclick: () => pick(c)
- })
- )
- )
- )
- ])
+export const Kbd = (p, c) => h("kbd", { ...p, class: cls("kbd", p.class) }, c);
+export const List = (p, c) => {
+ if (!p.items) return h('ul', { ...p, class: cls('list', p.class) }, c)
+ return h('ul', { ...p, class: cls('list', p.class) }, [
+ each(p.items, (item, i) =>
+ h('li', { class: cls('list-row', item.class) },
+ typeof p.render === 'function' ? p.render(item, i) : item
+ ), p.key)
])
}
-
-// Calendar
-export const Calendar = (p) => {
- const internalDate = $(new Date())
- const hoverDate = $(null)
- const startHour = $(0)
- const endHour = $(0)
-
- const now = new Date()
- const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, '0')}-${String(now.getDate()).padStart(2, '0')}`
-
- const fmt = d => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`
- const rangeMode = () => get(p.range) === true
- const current = () => get(p.value)
-
- const selectDate = (date) => {
- const s = fmt(date)
- const v = current()
- if (rangeMode()) {
- if (!v?.start || (v.start && v.end)) {
- p.onChange?.({ start: s, end: null, ...(p.hour && { startHour: startHour() }) })
- } else {
- const start = v.start
- const nv = s < start ? { start: s, end: start } : { start, end: s }
- if (p.hour) { nv.startHour = v.startHour ?? startHour(); nv.endHour = endHour() }
- p.onChange?.(nv)
- }
- } else {
- p.onChange?.(p.hour ? `${s}T${String(startHour()).padStart(2, '0')}:00:00` : s)
- }
- }
-
- const move = (m) => { const d = internalDate(); internalDate(new Date(d.getFullYear(), d.getMonth() + m, 1)) }
- const moveYear = (y) => { const d = internalDate(); internalDate(new Date(d.getFullYear() + y, d.getMonth(), 1)) }
-
- const HourSlider = ({ value: hVal, onChange: onH }) => h('div', { class: 'flex-1' }, [
- h('div', { class: 'flex gap-2 items-center' }, [
- h('input', { type: 'range', min: 0, max: 23, value: hVal, class: 'range range-xs flex-1', oninput: e => onH(+e.target.value) }),
- h('span', { class: 'text-sm font-mono min-w-[48px] text-center' }, () => String(get(hVal)).padStart(2, '0') + ':00')
- ])
- ])
-
- return h('div', { class: cls('p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none', p.class) }, [
- h('div', { class: 'flex justify-between items-center mb-4 gap-1' }, [
- h('div', { class: 'flex gap-0.5' }, [
- h('button', { type: 'button', class: 'btn btn-ghost btn-xs px-1', onclick: () => moveYear(-1) }, h('span', { class: 'icon-[lucide--chevrons-left]' })),
- h('button', { type: 'button', class: 'btn btn-ghost btn-xs px-1', onclick: () => move(-1) }, h('span', { class: 'icon-[lucide--chevron-left]' }))
- ]),
- h('span', { class: 'font-bold uppercase flex-1 text-center' }, () => internalDate().toLocaleString('es-ES', { month: 'short', year: 'numeric' })),
- h('div', { class: 'flex gap-0.5' }, [
- h('button', { type: 'button', class: 'btn btn-ghost btn-xs px-1', onclick: () => move(1) }, h('span', { class: 'icon-[lucide--chevron-right]' })),
- h('button', { type: 'button', class: 'btn btn-ghost btn-xs px-1', onclick: () => moveYear(1) }, h('span', { class: 'icon-[lucide--chevrons-right]' }))
- ])
- ]),
-
- h('div', { class: 'grid grid-cols-7 gap-1', onmouseleave: () => hoverDate(null) }, [
- ...['L', 'M', 'X', 'J', 'V', 'S', 'D'].map(d => h('div', { class: 'text-[10px] opacity-40 font-bold text-center' }, d)),
- () => {
- const d = internalDate(), y = d.getFullYear(), m = d.getMonth()
- const firstDay = new Date(y, m, 1).getDay()
- const offset = firstDay === 0 ? 6 : firstDay - 1
- const dim = new Date(y, m + 1, 0).getDate()
- const cells = []
- for (let i = 0; i < offset; i++) cells.push(h('div'))
- for (let i = 1; i <= dim; i++) {
- const date = new Date(y, m, i), ds = fmt(date)
- cells.push(h('button', {
- type: 'button',
- class: () => {
- const v = current(), h = hoverDate()
- const isStart = typeof v === 'string' ? v.split('T')[0] === ds : v?.start === ds
- const isEnd = v?.end === ds
- let inRange = false
- if (rangeMode() && v?.start) {
- const start = v.start
- if (!v.end && h) inRange = (ds > start && ds <= h) || (ds < start && ds >= h)
- else if (v.end) inRange = ds > start && ds < v.end
- }
- const base = 'btn btn-xs p-0 aspect-square min-h-0 h-auto font-normal relative'
- const st = isStart || isEnd ? 'btn-primary z-10' : inRange ? 'bg-primary/20 border-none rounded-none' : 'btn-ghost'
- const today = ds === todayStr ? 'ring-1 ring-primary ring-inset font-black text-primary' : ''
- return cls(base, st, today)
- },
- onmouseenter: () => rangeMode() && hoverDate(ds),
- onclick: () => selectDate(date)
- }, i.toString()))
- }
- return cells
- }
- ]),
-
- p.hour ? h('div', { class: 'mt-3 pt-2 border-t border-base-300' },
- rangeMode()
- ? h('div', { class: 'flex gap-4' }, [HourSlider({ value: startHour, onChange: h => startHour(h) }), HourSlider({ value: endHour, onChange: h => endHour(h) })])
- : HourSlider({ value: startHour, onChange: h => startHour(h) })
- ) : null
- ])
+export const Loading = (p, c) => h("span", { ...p, class: cls("loading loading-spinner", p.class) }, c);
+export const Menu = (p) => {
+ if (p.children !== undefined) return h('ul', { class: cls('menu', p.class), ...p }, p.children)
+ const { items } = p
+ const render = (item) => item.children
+ ? h('li', {}, h('details', { open: item.open || undefined }, [
+ h('summary', {}, getBy(item)),
+ h('ul', {}, each(() => get(item.children) || [], render))
+ ]))
+ : h('li', {}, h('a', {
+ href: item.href,
+ onclick: item.onclick ? (e) => { if (!item.href) e.preventDefault(); item.onclick(e) } : null
+ }, getBy(item)))
+ return h('ul', { class: cls('menu', p.class) },
+ each(() => get(items) || [], render)
+ )
}
-
-//Datepicker.js
-export const Datepicker = (p) => {
- const isOpen = $(false)
- const displayValue = $("")
- const rangeMode = () => get(p.range) === true
-
- watch(() => {
- const v = get(p.value)
- if (!v) return displayValue("")
- let text = ""
- if (typeof v === "string") {
- text = p.hour && v.includes("T") ? v.replace("T", " ") : v
- } else if (v.start && v.end) {
- const startStr = p.hour && v.startHour != null ? `${v.start} ${String(v.startHour).padStart(2, "0")}:00` : v.start
- const endStr = p.hour && v.endHour != null ? `${v.end} ${String(v.endHour).padStart(2, "0")}:00` : v.end
- text = `${startStr} - ${endStr}`
- } else if (v.start) {
- const startStr = p.hour && v.startHour != null ? `${v.start} ${String(v.startHour).padStart(2, "0")}:00` : v.start
- text = `${startStr}...`
- }
- displayValue(text)
- })
-
- const handleChange = (val) => {
- if (isFn(p.value)) p.value(val)
- else p.onChange?.(val)
- if (!rangeMode() || val?.end != null) isOpen(false)
- }
-
- return h('div', { class: cls('relative w-full', p.class) }, [
- h('label', { class: 'input input-bordered w-full', onclick: (e) => { e.stopPropagation(); isOpen(!isOpen()) } }, [
- h('span', { class: 'icon-[lucide--calendar]' }),
- h('input', {
- ...p,
- type: 'text',
- class: 'grow',
- value: displayValue,
- readonly: true,
- placeholder: p.placeholder || (rangeMode() ? 'Seleccionar rango...' : 'Seleccionar fecha...')
- })
- ]),
-
- when(isOpen, () => [
- h('div', { class: 'fixed inset-0 z-[90]', onclick: () => isOpen(false) }),
- h('div', { class: 'absolute left-0 mt-2 z-[100]', onclick: (e) => e.stopPropagation() },
- Calendar({ value: p.value, range: rangeMode(), hour: p.hour, onChange: handleChange })
- )
- ])
- ])
-}
-
-//Fileinput
-export const Fileinput = (p) => {
- const files = $([])
- const drag = $(false)
- const error = $(null)
- const maxBytes = (p.max || 2) * 1024 * 1024
-
- const process = (fileList) => {
- const arr = Array.from(fileList)
- error(null)
- if (arr.some(f => f.size > maxBytes)) {
- error(`Máx ${p.max || 2}MB`)
- return
- }
- const updated = [...files(), ...arr]
- files(updated)
- if (isFn(p.onselect)) p.onselect(updated)
- else if (isFn(p.value)) p.value(updated)
- }
-
- const remove = (idx) => {
- const updated = files().filter((_, i) => i !== idx)
- files(updated)
- if (isFn(p.onselect)) p.onselect(updated)
- else if (isFn(p.value)) p.value(updated)
- }
-
- return h('div', { class: cls('fieldset w-full p-0', p.class) }, [
- h('label', {
- class: () => `relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${drag() ? 'border-primary bg-primary/10' : 'border-base-content/20 bg-base-100 hover:bg-base-200'}`,
- ondragover: (e) => { e.preventDefault(); drag(true) },
- ondragleave: () => drag(false),
- ondrop: (e) => { e.preventDefault(); drag(false); process(e.dataTransfer.files) }
- }, [
- h('div', { class: 'flex items-center gap-3 w-full' }, [
- h('span', { class: 'icon-[lucide--upload]' }),
- h('span', { class: 'text-sm opacity-70 truncate grow text-left' }, 'Arrastra o selecciona archivos...'),
- h('span', { class: 'text-[10px] opacity-40 shrink-0' }, `Máx ${p.max || 2}MB`)
- ]),
- h('input', {
- type: 'file',
- multiple: true,
- accept: p.accept || '*',
- class: 'hidden',
- onchange: (e) => process(e.target.files)
- })
- ]),
-
- () => error() && h('span', { class: 'text-[10px] text-error mt-1 px-1 font-medium' }, error()),
-
- when(() => files().length > 0, () =>
- h('ul', { class: 'mt-2 space-y-1' },
- each(files, (file, idx) =>
- h('li', { class: 'flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300' }, [
- h('div', { class: 'flex items-center gap-2 truncate' }, [
- h('span', { class: 'opacity-50' }, '📄'),
- h('span', { class: 'truncate font-medium max-w-[200px]' }, file.name),
- h('span', { class: 'text-[9px] opacity-40' }, `(${(file.size / 1024).toFixed(0)} KB)`)
- ]),
- h('button', {
- type: 'button',
- class: 'btn btn-ghost btn-xs btn-circle',
- onclick: (e) => { e.preventDefault(); remove(idx) }
- }, h('span', { class: 'icon-[lucide--x]' }))
- ]),
- (file) => file.name + file.lastModified
- )
- )
- )
- ])
-}
-
-//Toast
-export const Toast = (message, type = "alert-success", duration = 3500) => {
- let container = document.getElementById("sigpro-toast-container");
- if (!container) {
- container = h("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 host = h("div", { style: "display: contents" });
- container.appendChild(host);
-
- let closeFn, timer, enterTimer;
-
- const ToastComponent = () => {
- const visible = $(false);
- const leaving = $(false);
-
- closeFn = () => {
- if (leaving()) return;
- clearTimeout(timer);
- clearTimeout(enterTimer);
- leaving(true);
- setTimeout(() => {
- instance.destroy();
- host.remove();
- if (!container.hasChildNodes()) container.remove();
- }, 300);
- };
-
- enterTimer = setTimeout(() => visible(true), 0);
-
- const content = typeof message === 'function' ? get(message) : message;
- const msgNode = typeof content === 'string' ? h("span", {}, content) : content;
-
- return h("div", {
- class: () => {
- if (leaving()) return `alert alert-soft ${type} shadow-lg transition-all duration-300 translate-x-full opacity-0 pointer-events-auto`;
- if (visible()) return `alert alert-soft ${type} shadow-lg transition-all duration-300 translate-x-0 opacity-100 pointer-events-auto`;
- return `alert alert-soft ${type} shadow-lg transition-all duration-300 translate-x-10 opacity-0 pointer-events-auto`;
- }
- }, [
- msgNode,
- h("button", {
- class: "btn btn-xs btn-circle btn-ghost",
- onclick: closeFn
- }, h("span", { class: "icon-[lucide--x]" }))
- ]);
- };
-
- const instance = mount(ToastComponent, host);
-
- if (duration > 0) timer = setTimeout(closeFn, duration);
-
- return closeFn;
-};
-
-//Modal
export const Modal = (p) => {
let dialogRef = null;
@@ -732,4 +468,169 @@ export const Modal = (p) => {
h("button", {}, "close")
])
]);
-};
\ No newline at end of file
+};
+export const Navbar = (p, c) => h("div", { ...p, class: cls("navbar", p.class) }, c);
+export const Progress = (p) => h("progress", { ...p, class: cls("progress", p.class) });
+export const Radial = (p, c) => h("div", { ...p, class: cls("radial-progress", p.class), style: `--value:${p.value ?? 0};${p.style ?? ''}`, role: "progressbar", "aria-valuenow": p.value ?? 0 }, c ?? `${p.value ?? 0}%`)
+export const Radio = (p) => h("input", { ...p, type: "radio", class: cls("radio", p.class) });
+export const Range = (p) => h("input", { ...p, type: "range", class: cls("range", p.class) });
+export const Rating = (p) => {
+ const name = rand('rating')
+ const stars = p.children ?? Array.from({ length: p.count || 5 }, (_, i) => {
+ const v = i + 1
+ return h('input', {
+ type: 'radio',
+ name,
+ class: cls('mask', p.mask || 'mask-star'),
+ checked: () => get(p.value) === v,
+ onchange: () => isFn(p.value) ? p.value(v) : p.onchange?.(v)
+ })
+ })
+ return h('div', { class: cls('rating', p.class), ...p }, stars)
+}
+export const Select = (p, c) => {
+ if (c !== undefined) return h('select', { class: cls('select', p.class), ...p }, c)
+
+ const { label, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p
+
+ const opts = () => {
+ const raw = get(items) || []
+ const ph = placeholder ? [{ disabled: placeholderDisabled, label: placeholder, value: '' }] : []
+ return [...ph, ...raw]
+ }
+
+ return h('label', { class: float ? 'floating-label' : '' }, [
+ float ? h('span', {}, label) : null,
+ h('label', { class: cls('select', rest.class) }, [
+ (!float && label) ? h('span', { class: 'label' }, label) : null,
+ left ?? null,
+ h('select', {
+ value: () => get(value),
+ onchange: (e) => isFn(value) ? value(e.target.value) : rest.onchange?.(e)
+ },
+ each(opts, (item) => {
+ const val = getBy(item, item.value !== undefined ? 'value' : undefined)
+ const lab = getBy(item, 'label')
+ return h('option', { value: val, disabled: item.disabled || undefined }, lab)
+ })
+ ),
+ right ?? null
+ ]),
+ hint ? h('div', { class: 'validator-hint' }, hint) : null
+ ])
+}
+export const Skeleton = (p) => h("div", { ...p, class: cls("skeleton", p.class) });
+export const SkeletonText = (p) => h("span", { ...p, class: cls("skeleton skeleton-text", p.class) });
+export const Stack = (p, c) => h("div", { ...p, class: cls("stack", p.class) }, c);
+export const Steps = (p, c) => h("ul", { ...p, class: cls("steps", p.class) }, c);
+export const Step = (p, c) => h("li", { ...p, class: cls("step", p.class), "data-content": p.dataContent }, c);
+export const Swap = (p) => h("label", { ...p, class: cls("swap", p.class) }, [
+ h("input", { type: "checkbox", checked: () => get(p.value), onchange: (e) => isFn(p.value) && p.value(e.target.checked) }),
+ h("div", { class: "swap-on" }, p.on),
+ h("div", { class: "swap-off" }, p.off)
+]);
+export const Table = (p) => {
+ if (p.children !== undefined) return h('table', { class: cls('table', p.class), ...p }, p.children)
+ const { items, columns = [], header = true, keyFn, ...rest } = p
+ const hd = header !== false && columns.some(c => c.label) ? h('thead', {}, h('tr', {}, columns.map(c => h('th', { class: c.class }, c.label)))) : null
+ const bd = h('tbody', {}, each(
+ () => get(items) || [],
+ (it, idx) => h('tr', {}, columns.map(c => {
+ const v = c.render ? c.render(it, idx) : it[c.key]
+ return h('td', { class: c.class }, v)
+ }))
+ ))
+ return h('table', { class: cls('table', rest.class), ...rest }, [hd, bd])
+}
+export const Tabs = (p, c) => {
+ if (!p.items) {
+ const { class: className, ...rest } = p
+ return h('div', { ...rest, class: cls('tabs', className) }, c)
+ }
+
+ const { items, activeIndex, onClose, class: className, ...rest } = p
+ const get = x => (isFn(x) ? x() : x)
+ const closeH = onClose || (isFn(items) ? (idx, item) => {
+ const arr = get(items)
+ const newArr = arr.filter((_, i) => i !== idx)
+ items(newArr)
+ if (activeIndex() >= newArr.length) activeIndex(Math.max(0, newArr.length - 1))
+ } : null)
+
+ return h('div', { ...rest, class: cls('tabs', className) }, () => {
+ const list = get(items) || []
+ return list.flatMap((it, idx) => {
+ const isActive = () => activeIndex() === idx
+ const button = h('button', {
+ class: () => `tab ${isActive() ? 'tab-active' : ''} ${it.class || ''}`,
+ onclick: (e) => { e.preventDefault(); activeIndex(idx); it.onclick?.(e) }
+ }, [
+ getBy(it),
+ it.closable ? h('span', {
+ class: 'ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer',
+ onclick: (e) => { e.stopPropagation(); closeH?.(idx, it) }
+ }, h('span', { class: 'icon-[lucide--x] w-3 h-3' })) : null
+ ])
+ const contentDiv = h('div', {
+ class: 'tab-content bg-base-100 border-base-300 p-6',
+ style: () => `display: ${isActive() ? 'block' : 'none'};`
+ }, isFn(it.content) ? it.content() : it.content)
+ return [button, contentDiv]
+ })
+ })
+}
+export const Textarea = (p) => h("textarea", { ...p, class: cls("textarea", p.class) });
+export const TextRotate = (p) => {
+ const words = Array.isArray(p.words) ? p.words : (typeof p.words === 'string' ? p.words.split(',') : []);
+ return h("span", { ...p, class: cls("text-rotate", p.class) }, h("span", {}, words.map(w => h("span", {}, w))));
+};
+export const Timeline = (p, c) => h("ul", { ...p, class: cls("timeline", p.class) }, c);
+export const Toast = (message, type = "alert-success", duration = 3500) => {
+ let container = document.getElementById("sigpro-toast-container");
+ if (!container) {
+ container = h("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 host = h("div", { style: "display: contents" });
+ container.appendChild(host);
+ let closeFn, timer, enterTimer;
+ const ToastComponent = () => {
+ const visible = $(false);
+ const leaving = $(false);
+ closeFn = () => {
+ if (leaving()) return;
+ clearTimeout(timer);
+ clearTimeout(enterTimer);
+ leaving(true);
+ setTimeout(() => {
+ instance.destroy();
+ host.remove();
+ if (!container.hasChildNodes()) container.remove();
+ }, 300);
+ };
+ enterTimer = setTimeout(() => visible(true), 0);
+ const content = typeof message === 'function' ? get(message) : message;
+ const msgNode = typeof content === 'string' ? h("span", {}, content) : content;
+ return h("div", {
+ class: () => {
+ if (leaving()) return `alert alert-soft ${type} shadow-lg transition-all duration-300 translate-x-full opacity-0 pointer-events-auto`;
+ if (visible()) return `alert alert-soft ${type} shadow-lg transition-all duration-300 translate-x-0 opacity-100 pointer-events-auto`;
+ return `alert alert-soft ${type} shadow-lg transition-all duration-300 translate-x-10 opacity-0 pointer-events-auto`;
+ }
+ }, [
+ msgNode,
+ h("button", {
+ class: "btn btn-xs btn-circle btn-ghost",
+ onclick: closeFn
+ }, h("span", { class: "icon-[lucide--x]" }))
+ ]);
+ };
+ const instance = mount(ToastComponent, host);
+ if (duration > 0) timer = setTimeout(closeFn, duration);
+ return closeFn;
+};
+export const Toggle = (p) => h("input", { ...p, type: "checkbox", class: cls("toggle", p.class) });
+export const Tooltip = (p, c) => h("div", { ...p, class: cls("tooltip", p.class), "data-tip": p.tip }, c);
\ No newline at end of file
diff --git a/components/Editor.js b/components/Editor.js
index 32ab6f8..b535f00 100644
--- a/components/Editor.js
+++ b/components/Editor.js
@@ -4,31 +4,82 @@ import { get, cls, isFn } from "./All.js"
export const Editor = (p) => {
const { value, class: extraClass } = p
let editorRef = null
+ let savedRange = null
const isSource = $(false)
const source = $("")
+ const count = $(0)
+ const refreshTick = $(0)
+ const showEmojis = $(false)
+
+ const emojis = ["😀", "😊", "😉", "🧐", "😮", "🤔", "😅", "😂", "😍", "😘", "🥰", "👍", "👎", "👌", "🤝", "🤞", "👋", "👏", "🙌", "🙏", "💪", "☝️", "👇", "👈", "👉", "🖕", "✅", "⚠️", "🚀", "📢", "✉️", "❤️"]
+
+ const saveSelection = () => {
+ const sel = window.getSelection()
+ if (sel.getRangeAt && sel.rangeCount) savedRange = sel.getRangeAt(0)
+ }
+
+ const restoreSelection = () => {
+ if (savedRange) {
+ const sel = window.getSelection()
+ sel.removeAllRanges()
+ sel.addRange(savedRange)
+ }
+ }
+
+ const triggerRefresh = () => {
+ refreshTick(refreshTick() + 1)
+ if (editorRef) count(editorRef.innerText.length)
+ }
const notify = () => {
if (!editorRef) return
const html = editorRef.innerHTML
if (isFn(value)) value(html)
else p.onchange?.(html)
+ triggerRefresh()
}
const exec = (cmd, val = null) => {
if (!editorRef) return
editorRef.focus()
+ if (savedRange) restoreSelection()
document.execCommand(cmd, false, val)
+ savedRange = null
notify()
}
+ const openLightbox = (src) => {
+ const overlay = document.createElement('div')
+ overlay.style = `position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;`
+ const img = document.createElement('img')
+ img.src = src
+ img.style = `max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;`
+ overlay.onclick = () => document.body.removeChild(overlay)
+ overlay.appendChild(img)
+ document.body.appendChild(overlay)
+ }
+
+ const handleUpload = (file) => {
+ if (!file) return
+ const reader = new FileReader()
+ reader.onload = (re) => {
+ if (file.type.startsWith('image/')) {
+ const imgHtml = `

`
+ exec("insertHTML", imgHtml)
+ } else {
+ const linkHtml = `${file.name} `
+ exec("insertHTML", linkHtml)
+ }
+ }
+ reader.readAsDataURL(file)
+ }
+
const queryState = (cmd, val = null) => {
- if (!editorRef) return false
+ refreshTick(); if (!editorRef || isSource()) return false
try {
if (cmd === 'formatBlock') {
- const sel = window.getSelection()
- if (!sel.rangeCount) return false
- let node = sel.getRangeAt(0).commonAncestorContainer
+ let node = window.getSelection().getRangeAt(0).commonAncestorContainer
while (node && node !== editorRef) {
if (node.nodeType === 1 && node.tagName === val) return true
node = node.parentNode
@@ -36,110 +87,122 @@ export const Editor = (p) => {
return false
}
return document.queryCommandState(cmd)
- } catch (e) {
- return false
- }
+ } catch (e) { return false }
}
- const toolbar = h("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200" }, [
- h("div", { class: "flex flex-wrap gap-1 flex-1" }, [
- h("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState('bold') ? 'btn-active' : ''}`,
- onclick: () => exec("bold")
- }, h("span", { class: "icon-[lucide--bold]" })),
-
- h("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState('italic') ? 'btn-active' : ''}`,
- onclick: () => exec("italic")
- }, h("span", { class: "icon-[lucide--italic]" })),
-
- h("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState('underline') ? 'btn-active' : ''}`,
- onclick: () => exec("underline")
- }, h("span", { class: "icon-[lucide--underline]" })),
-
- h("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState('strikeThrough') ? 'btn-active' : ''}`,
- onclick: () => exec("strikeThrough")
- }, h("span", { class: "icon-[lucide--strikethrough]" })),
+ const toolbar = h("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20" }, [
+ h("div", { class: "flex flex-wrap gap-1 flex-1 items-center" }, [
+ // GRUPO 1: ESTILOS
+ h("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState('bold') ? 'btn-active bg-primary/20' : ''}`, onclick: () => exec("bold") }, h("span", { class: "icon-[lucide--bold]" })),
+ h("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState('italic') ? 'btn-active bg-primary/20' : ''}`, onclick: () => exec("italic") }, h("span", { class: "icon-[lucide--italic]" })),
+ h("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState('underline') ? 'btn-active bg-primary/20' : ''}`, onclick: () => exec("underline") }, h("span", { class: "icon-[lucide--underline]" })),
+ h("input", { type: "color", class: "w-5 h-5 p-0 border-0 bg-transparent cursor-pointer", oninput: (e) => exec("foreColor", e.target.value) }),
h("span", { class: "w-px h-5 bg-base-300 mx-1" }),
+ h("button", {
+ type: "button",
+ class: "btn btn-ghost btn-xs",
+ onclick: () => exec("justifyLeft")
+ }, h("span", { class: "icon-[lucide--align-left]" })),
+
+ // --- Botón Alineación Centro ---
+ h("button", {
+ type: "button",
+ class: "btn btn-ghost btn-xs",
+ onclick: () => exec("justifyCenter")
+ }, h("span", { class: "icon-[lucide--align-center]" })),
+
+ // --- Botón Alineación Derecha ---
+ h("button", {
+ type: "button",
+ class: "btn btn-ghost btn-xs",
+ onclick: () => exec("justifyRight")
+ }, h("span", { class: "icon-[lucide--align-right]" })),
+
+ h("span", { class: "w-px h-5 bg-base-300 mx-1" }),
+
+ // GRUPO 2: LISTAS Y PÁRRAFO
h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertUnorderedList") }, h("span", { class: "icon-[lucide--list]" })),
h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertOrderedList") }, h("span", { class: "icon-[lucide--list-ordered]" })),
+ h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("outdent"), title: "Mover izquierda" }, h("span", { class: "icon-[lucide--indent-decrease]" })),
+ h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("indent"), title: "Mover derecha (Tab)" }, h("span", { class: "icon-[lucide--indent-increase]" })),
+ h("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState('formatBlock', 'BLOCKQUOTE') ? 'btn-active' : ''}`, onclick: () => exec("formatBlock", queryState('formatBlock', 'BLOCKQUOTE') ? 'P' : 'BLOCKQUOTE') }, h("span", { class: "icon-[lucide--quote]" })),
h("span", { class: "w-px h-5 bg-base-300 mx-1" }),
- h("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState('formatBlock', 'BLOCKQUOTE') ? 'btn-active' : ''}`,
- onclick: () => exec("formatBlock", queryState('formatBlock', 'BLOCKQUOTE') ? 'P' : 'BLOCKQUOTE')
- }, h("span", { class: "icon-[lucide--quote]" })),
+ // GRUPO 3: INSERTAR
+ h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { const url = window.prompt('URL:'); if (url) exec("createLink", url) } }, h("span", { class: "icon-[lucide--link]" })),
+ h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => { const input = document.createElement('input'); input.type = 'file'; input.onchange = (e) => handleUpload(e.target.files[0]); input.click(); } }, h("span", { class: "icon-[lucide--paperclip]" })),
- h("span", { class: "w-px h-5 bg-base-300 mx-1" }),
-
- h("select", { class: "select select-xs w-16", onchange: (e) => exec("fontSize", e.target.value), value: "3" }, [
- h("option", { value: "1" }, "1"),
- h("option", { value: "2" }, "2"),
- h("option", { value: "3" }, "3"),
- h("option", { value: "4" }, "4"),
- h("option", { value: "5" }, "5"),
- h("option", { value: "6" }, "6"),
- h("option", { value: "7" }, "7"),
+ // EMOJIS
+ h("div", { class: "relative" }, [
+ h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: (e) => { e.stopPropagation(); saveSelection(); showEmojis(!showEmojis()); } }, h("span", { class: "icon-[lucide--smile]" })),
+ h("div", { class: "absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1", style: () => showEmojis() ? "display:flex" : "display:none" }, emojis.map(emo => h("span", { class: "cursor-pointer hover:bg-base-200 p-1 rounded text-lg", onclick: (e) => { e.stopPropagation(); exec("insertText", emo); showEmojis(false); } }, emo)))
]),
h("span", { class: "w-px h-5 bg-base-300 mx-1" }),
- h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo") }, h("span", { class: "icon-[lucide--undo-2]" })),
- h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo") }, h("span", { class: "icon-[lucide--redo-2]" })),
+ // GRUPO 4: UTILIDADES
+ h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("removeFormat") }, h("span", { class: "icon-[lucide--eraser]" })),
+ h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo"), title: "Deshacer" }, h("span", { class: "icon-[lucide--undo-2]" })),
+ h("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo"), title: "Rehacer" }, h("span", { class: "icon-[lucide--redo-2]" })),
]),
- h("div", { class: "flex" }, [
- h("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${isSource() ? 'btn-active' : ''}`,
- onclick: () => {
- const wasSource = isSource()
- if (!wasSource) {
- source(editorRef?.innerHTML || "")
- } else {
- if (editorRef) {
- editorRef.innerHTML = source()
- notify()
- }
- }
- isSource(!wasSource)
- }
- }, h("span", { class: "icon-[lucide--code-2]" }))
- ])
+ h("button", { type: "button", class: () => `btn btn-ghost btn-xs ${isSource() ? 'btn-active' : ''}`, onclick: () => { if (!isSource()) source(editorRef?.innerHTML || ""); else if (editorRef) { editorRef.innerHTML = source(); notify(); }; isSource(!isSource()) } }, h("span", { class: "icon-[lucide--code-2]" }))
])
- return h("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden", extraClass) }, [
+ if (typeof document !== 'undefined' && !document.getElementById('editor-styles')) {
+ const style = document.createElement('style')
+ style.id = 'editor-styles'
+ style.textContent = `
+ [contenteditable="true"] div,
+ [contenteditable="true"] p {
+ margin: 0;
+ padding: 0;
+ }
+ `
+ document.head.appendChild(style)
+ }
+ return h("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col", extraClass) }, [
toolbar,
- h("div", { class: "relative" }, [
+ h("div", { class: "relative flex-1 flex flex-col", onclick: () => showEmojis(false) }, [
h("div", {
ref: el => {
if (!editorRef && el) {
- editorRef = el
- el.innerHTML = get(value) || ""
+ editorRef = el; el.innerHTML = get(value) || "";
+ document.execCommand("defaultParagraphSeparator", false, "br");
+ el.addEventListener('click', (e) => {
+ const container = e.target.closest('.resizable-img-container');
+ if (container) { const img = container.querySelector('img'); if (img) openLightbox(img.src); }
+ });
}
},
- style: () => `min-height:10rem;${isSource() ? 'display:none' : ''}`,
- class: "p-3 outline-none text-base-content [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:list-decimal [&_ol]:pl-6 [&_li]:list-item [&_p]:m-0 [&_div]:m-0 [&_br]:content-[''] [&_br]:block [&_br]:h-[1em]",
+ style: () => `min-height:22rem;${isSource() ? 'display:none' : ''}`,
+ class: "p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",
contenteditable: "true",
oninput: notify,
- onpaste: () => setTimeout(notify, 0)
+ onkeydown: (e) => { if (e.key === 'Tab') { e.preventDefault(); exec("indent"); } },
+ onkeyup: () => { triggerRefresh(); saveSelection(); },
+ onclick: (e) => { triggerRefresh(); saveSelection(); e.stopPropagation(); },
+ onmouseup: () => { notify(); saveSelection(); },
+ onpaste: (e) => {
+ e.preventDefault();
+ const text = e.clipboardData.getData('text/plain');
+ exec('insertText', text);
+ },
+ ondragover: (e) => e.preventDefault(),
+ ondrop: (e) => { e.preventDefault(); handleUpload(e.dataTransfer.files[0]) }
}),
h("textarea", {
- class: "w-full min-h-[10rem] p-3 outline-none font-mono text-sm bg-base-200 border-0",
+ class: "w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",
style: () => isSource() ? '' : 'display:none',
value: source,
- oninput: (e) => source(e.target.value)
+ oninput: (e) => { source(e.target.value); if (editorRef) editorRef.innerHTML = e.target.value; p.onchange?.(e.target.value); }
})
+ ]),
+ h("div", { class: "px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic" }, [
+ h("span", () => `${count()} caracteres`)
])
])
}
\ No newline at end of file
diff --git a/components/discarted/Autocomplete.js b/components/discarted/Autocomplete.js
index 895415a..7c9bdd2 100644
--- a/components/discarted/Autocomplete.js
+++ b/components/discarted/Autocomplete.js
@@ -48,8 +48,7 @@ export const Autocomplete = ({ items, value, onselect, placeholder = 'Buscar...'
onclick: () => pick(item),
onmouseenter: () => cursor(idx)
}, getBy(item))
- ]),
- (item, idx) => getBy(item) + idx
+ ])
),
() => filtered().length === 0
? h('li', { class: 'p-4 opacity-50 text-center' }, 'Sin resultados')
diff --git a/components/discarted/Select.js b/components/discarted/Select.js
index 7b818b6..7734de5 100644
--- a/components/discarted/Select.js
+++ b/components/discarted/Select.js
@@ -18,8 +18,7 @@ export const Select = (props) => {
const value = typeof item === "string" ? item : item.value;
const label = typeof item === "string" ? item : item.label;
return h("option", { value }, label);
- },
- keyFn || ((item) => (typeof item === "string" ? item : item.value))
+ }
);
const options = placeholderOption
diff --git a/components/discarted/fileinput.js b/components/discarted/fileinput.js
index 9a0ca13..d5e5446 100644
--- a/components/discarted/fileinput.js
+++ b/components/discarted/fileinput.js
@@ -59,8 +59,7 @@ export const Fileinput = (props) => {
class: "btn btn-ghost btn-xs btn-circle",
onclick: (e) => { e.preventDefault(); removeFile(idx); }
}, h("span", { class: "icon-[lucide--x]" }))
- ]),
- (file) => file.name + file.lastModified
+ ])
)
])
)
diff --git a/components/discarted/menu.js b/components/discarted/menu.js
index 8c9849a..3a6dc4e 100644
--- a/components/discarted/menu.js
+++ b/components/discarted/menu.js
@@ -7,7 +7,7 @@ export const Menu = (props, children) => {
};
export const MenuItems = (props) => {
- const { items, keyFn = (item, idx) => item.id ?? idx } = props;
+ const { items } = props;
const itemsSignal = typeof items === "function" ? items : () => items || [];
const renderItem = (item) => {
@@ -28,5 +28,5 @@ export const MenuItems = (props) => {
}, item.label));
};
- return each(itemsSignal, renderItem, keyFn);
+ return each(itemsSignal, renderItem);
};
\ No newline at end of file
diff --git a/components/discarted/table.js b/components/discarted/table.js
index b699b74..21a7bde 100644
--- a/components/discarted/table.js
+++ b/components/discarted/table.js
@@ -23,8 +23,7 @@ export const TableItems = (props) => {
const content = col.render ? col.render(item, idx) : item[col.key];
return h("td", { class: col.class }, content);
})
- )
- , props.keyFn || ((item, idx) => item.id ?? idx))
+ ))
]);
return [thead, tbody];
diff --git a/components/discarted/tabs.js b/components/discarted/tabs.js
index 2f01378..9ce793a 100644
--- a/components/discarted/tabs.js
+++ b/components/discarted/tabs.js
@@ -43,7 +43,6 @@ export const TabItems = (props) => {
style: () => `display: ${props.activeIndex() === idx ? "block" : "none"};`
}, typeof item.content === "function" ? item.content() : item.content)
];
- },
- (item, idx) => item.id ?? idx
+ }
);
};
\ No newline at end of file
diff --git a/dist/sigpro-ui.css b/dist/sigpro-ui.css
index 6b48771..091f0ed 100644
--- a/dist/sigpro-ui.css
+++ b/dist/sigpro-ui.css
@@ -7,9 +7,7 @@
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
"Courier New", monospace;
- --color-gray-500: oklch(55.1% 0.027 264.364);
--color-black: #000;
- --color-white: #fff;
--spacing: 0.25rem;
--container-xs: 20rem;
--container-md: 28rem;
@@ -21,8 +19,6 @@
--text-xs--line-height: calc(1 / 0.75);
--text-sm: 0.875rem;
--text-sm--line-height: calc(1.25 / 0.875);
- --text-base: 1rem;
- --text-base--line-height: calc(1.5 / 1);
--text-lg: 1.125rem;
--text-lg--line-height: calc(1.75 / 1.125);
--text-xl: 1.25rem;
@@ -33,8 +29,6 @@
--text-3xl--line-height: calc(2.25 / 1.875);
--text-4xl: 2.25rem;
--text-4xl--line-height: calc(2.5 / 2.25);
- --text-6xl: 3.75rem;
- --text-6xl--line-height: 1;
--text-7xl: 4.5rem;
--text-7xl--line-height: 1;
--text-9xl: 8rem;
@@ -52,7 +46,6 @@
--radius-sm: 0.25rem;
--radius-md: 0.375rem;
--radius-lg: 0.5rem;
- --radius-xl: 0.75rem;
--radius-3xl: 1.5rem;
--drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15);
--animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
@@ -601,92 +594,6 @@
}
}
}
- .tab\! {
- @layer daisyui.l1.l2.l3 {
- position: relative !important;
- display: inline-flex !important;
- cursor: pointer !important;
- appearance: none !important;
- flex-wrap: wrap !important;
- align-items: center !important;
- justify-content: center !important;
- text-align: center !important;
- webkit-user-select: none !important;
- user-select: none !important;
- &:hover {
- @media (hover: hover) {
- color: var(--color-base-content) !important;
- }
- }
- --tab-p: 0.75rem !important;
- --tab-bg: var(--color-base-100) !important;
- --tab-border-color: var(--color-base-300) !important;
- --tab-radius-ss: 0 !important;
- --tab-radius-se: 0 !important;
- --tab-radius-es: 0 !important;
- --tab-radius-ee: 0 !important;
- --tab-order: 0 !important;
- --tab-radius-min: calc(0.75rem - var(--border)) !important;
- --tab-radius-limit: min(var(--radius-field), var(--tab-radius-min)) !important;
- --tab-radius-grad: #0000 calc(69% - var(--border)),
- var(--tab-border-color) calc(69% - var(--border) + 0.25px),
- var(--tab-border-color) 69%,
- var(--tab-bg) calc(69% + 0.25px) !important;
- border-color: #0000 !important;
- order: var(--tab-order) !important;
- height: var(--tab-height) !important;
- font-size: 0.875rem !important;
- padding-inline: var(--tab-p) !important;
- &:is(input[type="radio"]) {
- min-width: fit-content !important;
- &:after {
- --tw-content: attr(aria-label) !important;
- content: var(--tw-content) !important;
- }
- }
- &:is(label) {
- position: relative !important;
- input {
- position: absolute !important;
- inset: calc(0.25rem * 0) !important;
- cursor: pointer !important;
- appearance: none !important;
- opacity: 0% !important;
- }
- }
- &:checked, &:is(label:has(:checked)), &:is(.tab-active, [aria-selected="true"], [aria-current="true"], [aria-current="page"]) {
- & + .tab-content {
- display: block !important;
- }
- }
- &:not( :checked, label:has(:checked), :hover, .tab-active, [aria-selected="true"], [aria-current="true"], [aria-current="page"] ) {
- color: var(--color-base-content) !important;
- @supports (color: color-mix(in lab, red, red)) {
- color: color-mix(in oklab, var(--color-base-content) 50%, transparent) !important;
- }
- }
- &:not(input):empty {
- flex-grow: 1 !important;
- cursor: default !important;
- }
- &:focus {
- --tw-outline-style: none !important;
- outline-style: none !important;
- @media (forced-colors: active) {
- outline: 2px solid transparent !important;
- outline-offset: 2px !important;
- }
- }
- &:focus-visible, &:is(label:has(:checked:focus-visible)) {
- outline: 2px solid currentColor !important;
- outline-offset: -5px !important;
- }
- &[disabled] {
- pointer-events: none !important;
- opacity: 40% !important;
- }
- }
- }
.menu {
@layer daisyui.l1.l2.l3 {
display: flex;
@@ -1216,12 +1123,6 @@
}
}
}
- .tab-disabled {
- @layer daisyui.l1.l2 {
- pointer-events: none;
- opacity: 40%;
- }
- }
.pointer-events-auto {
pointer-events: auto;
}
@@ -1430,89 +1331,6 @@
.visible {
visibility: visible;
}
- .tabs-lift {
- @layer daisyui.l1.l2 {
- --tabs-height: auto;
- --tabs-direction: row;
- > .tab {
- --tab-border: 0 0 var(--border) 0;
- --tab-radius-ss: var(--tab-radius-limit);
- --tab-radius-se: var(--tab-radius-limit);
- --tab-radius-es: 0;
- --tab-radius-ee: 0;
- --tab-paddings: var(--border) var(--tab-p) 0 var(--tab-p);
- --tab-border-colors: #0000 #0000 var(--tab-border-color) #0000;
- --tab-corner-width: calc(100% + var(--tab-radius-limit) * 2);
- --tab-corner-height: var(--tab-radius-limit);
- --tab-corner-position: top left, top right;
- border-width: var(--tab-border);
- border-start-start-radius: var(--tab-radius-ss);
- border-start-end-radius: var(--tab-radius-se);
- border-end-start-radius: var(--tab-radius-es);
- border-end-end-radius: var(--tab-radius-ee);
- padding: var(--tab-paddings);
- border-color: var(--tab-border-colors);
- &:is(.tab-active, [aria-selected="true"], [aria-current="true"], [aria-current="page"]):not( .tab-disabled, [disabled] ), &:is(input:checked, label:has(:checked)) {
- --tab-border: var(--border) var(--border) 0 var(--border);
- --tab-border-colors: var(--tab-border-color) var(--tab-border-color) #0000
- var(--tab-border-color);
- --tab-paddings: 0 calc(var(--tab-p) - var(--border)) var(--border)
- calc(var(--tab-p) - var(--border));
- --tab-inset: auto auto 0 auto;
- --radius-start: radial-gradient(circle at top left, var(--tab-radius-grad));
- --radius-end: radial-gradient(circle at top right, var(--tab-radius-grad));
- background-color: var(--tab-bg);
- &:before {
- z-index: 1;
- content: "";
- display: block;
- position: absolute;
- width: var(--tab-corner-width);
- height: var(--tab-corner-height);
- background-position: var(--tab-corner-position);
- background-image: var(--radius-start), var(--radius-end);
- background-size: var(--tab-radius-limit) var(--tab-radius-limit);
- background-repeat: no-repeat;
- inset: var(--tab-inset);
- }
- &:first-child:before {
- --radius-start: none;
- }
- [dir="rtl"] &:first-child:before {
- transform: rotateY(180deg);
- }
- &:last-child:before {
- --radius-end: none;
- }
- [dir="rtl"] &:last-child:before {
- transform: rotateY(180deg);
- }
- }
- }
- &:has(> .tab-content) {
- > .tab:first-child {
- &:not(.tab-active, [aria-selected="true"], [aria-current="true"], [aria-current="page"]) {
- --tab-border-colors: var(--tab-border-color) var(--tab-border-color) #0000
- var(--tab-border-color);
- }
- }
- }
- > .tab-content {
- --tabcontent-margin: calc(-1 * var(--border)) 0 0 0;
- --tabcontent-radius-ss: 0;
- --tabcontent-radius-se: var(--radius-box);
- --tabcontent-radius-es: var(--radius-box);
- --tabcontent-radius-ee: var(--radius-box);
- }
- :checked, label:has(:checked), :is(.tab-active, [aria-selected="true"], [aria-current="true"], [aria-current="page"]) {
- & + .tab-content {
- &:nth-child(1), &:nth-child(n + 3) {
- --tabcontent-radius-ss: var(--radius-box);
- }
- }
- }
- }
- }
.radial-progress {
@layer daisyui.l1.l2.l3 {
position: relative;
@@ -2493,66 +2311,6 @@
transition: background-color 0.2s ease-out;
}
}
- .menu-horizontal {
- @layer daisyui.l1.l2 {
- display: inline-flex;
- flex-direction: row;
- & > li:not(.menu-title) > details {
- & > ul {
- position: absolute;
- margin-inline-start: calc(0.25rem * 0);
- margin-top: calc(0.25rem * 4);
- transform-origin: top;
- border-radius: var(--radius-box);
- background-color: var(--color-base-100);
- padding-block: calc(0.25rem * 2);
- padding-inline-end: calc(0.25rem * 2);
- opacity: 0%;
- scale: 95%;
- box-shadow: 0 1px 3px 0 oklch(0% 0 0/0.1), 0 1px 2px -1px oklch(0% 0 0/0.1);
- @media (prefers-reduced-motion: no-preference) {
- @starting-style {
- scale: 95%;
- opacity: 0;
- }
- animation: menu 0.2s;
- transition-property: opacity, scale, display;
- transition-behavior: allow-discrete;
- transition-duration: 0.2s;
- transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
- }
- }
- &[open] > ul {
- opacity: 100%;
- scale: 100%;
- }
- }
- & > li > details > ul {
- &:before {
- --tw-content: none;
- content: var(--tw-content);
- }
- }
- }
- }
- .menu-vertical {
- @layer daisyui.l1.l2 {
- display: inline-flex;
- flex-direction: column;
- & > li:not(.menu-title) > details > ul {
- position: relative;
- margin-inline-start: calc(0.25rem * 4);
- margin-top: calc(0.25rem * 0);
- padding-block: calc(0.25rem * 0);
- padding-inline-end: calc(0.25rem * 0);
- background-color: revert-layer;
- border-radius: revert-layer;
- animation: revert-layer;
- transition: revert-layer;
- box-shadow: revert-layer;
- }
- }
- }
.avatar {
@layer daisyui.l1.l2.l3 {
position: relative;
@@ -2788,74 +2546,6 @@
}
}
}
- .rating\! {
- @layer daisyui.l1.l2.l3 {
- position: relative !important;
- display: inline-flex !important;
- vertical-align: middle !important;
- & input {
- border: none !important;
- appearance: none !important;
- }
- :where(*) {
- height: calc(0.25rem * 6) !important;
- width: calc(0.25rem * 6) !important;
- border-radius: 0 !important;
- background-color: var(--color-base-content) !important;
- opacity: 20% !important;
- @media (prefers-reduced-motion: no-preference) {
- animation: rating 0.25s ease-out !important;
- }
- &:is(input) {
- cursor: pointer !important;
- }
- }
- & .rating-hidden {
- width: calc(0.25rem * 2) !important;
- background-color: transparent !important;
- }
- input[type="radio"]:checked {
- background-image: none !important;
- }
- * {
- &:checked, &[aria-checked="true"], &[aria-current="true"], &:has(~ *:checked, ~ *[aria-checked="true"], ~ *[aria-current="true"]) {
- opacity: 100% !important;
- }
- &:focus-visible {
- scale: 1.1 !important;
- @media (prefers-reduced-motion: no-preference) {
- transition: scale 0.2s ease-out !important;
- }
- }
- }
- & *:active:focus {
- animation: none !important;
- scale: 1.1 !important;
- }
- }
- @layer daisyui.l1.l2 {
- &.rating-xs :where(*:not(.rating-hidden)) {
- width: calc(0.25rem * 4) !important;
- height: calc(0.25rem * 4) !important;
- }
- &.rating-sm :where(*:not(.rating-hidden)) {
- width: calc(0.25rem * 5) !important;
- height: calc(0.25rem * 5) !important;
- }
- &.rating-md :where(*:not(.rating-hidden)) {
- width: calc(0.25rem * 6) !important;
- height: calc(0.25rem * 6) !important;
- }
- &.rating-lg :where(*:not(.rating-hidden)) {
- width: calc(0.25rem * 7) !important;
- height: calc(0.25rem * 7) !important;
- }
- &.rating-xl :where(*:not(.rating-hidden)) {
- width: calc(0.25rem * 8) !important;
- height: calc(0.25rem * 8) !important;
- }
- }
- }
.navbar {
@layer daisyui.l1.l2.l3 {
display: flex;
@@ -2995,29 +2685,8 @@
.relative {
position: relative;
}
- .tooltip-bottom {
- @layer daisyui.l1.l2 {
- > .tooltip-content, &[data-tip]:before {
- transform: translateX(-50%) translateY(var(--tt-pos, -0.25rem));
- inset: var(--tt-off) auto auto 50%;
- }
- &:after {
- transform: translateX(-50%) translateY(var(--tt-pos, -0.25rem)) rotate(180deg);
- inset: var(--tt-tail) auto auto 50%;
- }
- }
- }
- .tooltip-left {
- @layer daisyui.l1.l2 {
- > .tooltip-content, &[data-tip]:before {
- transform: translateX(calc(var(--tt-pos, 0.25rem) - 0.25rem)) translateY(-50%);
- inset: 50% var(--tt-off) auto auto;
- }
- &:after {
- transform: translateX(var(--tt-pos, 0.25rem)) translateY(-50%) rotate(-90deg);
- inset: 50% calc(var(--tt-tail) + 1px) auto auto;
- }
- }
+ .sticky {
+ position: sticky;
}
.tooltip-right {
@layer daisyui.l1.l2 {
@@ -3049,61 +2718,9 @@
.inset-y-0 {
inset-block: calc(var(--spacing) * 0);
}
- .dropdown-right {
- @layer daisyui.l1.l2 {
- --anchor-h: right;
- --anchor-v: span-bottom;
- .dropdown-content {
- inset-inline-start: 100%;
- top: calc(0.25rem * 0);
- bottom: auto;
- transform-origin: 0;
- }
- }
- }
.start {
inset-inline-start: var(--spacing);
}
- .dropdown-left {
- @layer daisyui.l1.l2 {
- --anchor-h: left;
- --anchor-v: span-bottom;
- .dropdown-content {
- inset-inline-end: 100%;
- top: calc(0.25rem * 0);
- bottom: auto;
- transform-origin: 100%;
- }
- }
- }
- .dropdown-end {
- @layer daisyui.l1.l2 {
- --anchor-h: span-left;
- :where(.dropdown-content) {
- inset-inline-end: calc(0.25rem * 0);
- translate: 0 0;
- [dir="rtl"] & {
- translate: 0 0;
- }
- }
- &.dropdown-left {
- --anchor-h: left;
- --anchor-v: span-top;
- .dropdown-content {
- top: auto;
- bottom: calc(0.25rem * 0);
- }
- }
- &.dropdown-right {
- --anchor-h: right;
- --anchor-v: span-top;
- .dropdown-content {
- top: auto;
- bottom: calc(0.25rem * 0);
- }
- }
- }
- }
.end {
inset-inline-end: var(--spacing);
}
@@ -3117,36 +2734,14 @@
}
}
}
- .dropdown-top {
- @layer daisyui.l1.l2 {
- --anchor-v: top;
- .dropdown-content {
- top: auto;
- bottom: 100%;
- transform-origin: bottom;
- }
- }
- }
- .-top-1 {
- top: calc(var(--spacing) * -1);
- }
.top-0 {
top: calc(var(--spacing) * 0);
}
- .top-2 {
- top: calc(var(--spacing) * 2);
- }
- .top-4 {
- top: calc(var(--spacing) * 4);
- }
- .top-6 {
- top: calc(var(--spacing) * 6);
- }
.top-10 {
top: calc(var(--spacing) * 10);
}
- .-right-2 {
- right: calc(var(--spacing) * -2);
+ .top-full {
+ top: 100%;
}
.right-0 {
right: calc(var(--spacing) * 0);
@@ -3178,15 +2773,9 @@
.left-1\/4 {
left: calc(1 / 4 * 100%);
}
- .left-2 {
- left: calc(var(--spacing) * 2);
- }
.left-3 {
left: calc(var(--spacing) * 3);
}
- .left-4 {
- left: calc(var(--spacing) * 4);
- }
.left-6 {
left: calc(var(--spacing) * 6);
}
@@ -3407,6 +2996,9 @@
.-z-0 {
z-index: calc(0 * -1);
}
+ .z-1 {
+ z-index: 1;
+ }
.z-10 {
z-index: 10;
}
@@ -3416,9 +3008,6 @@
.z-50 {
z-index: 50;
}
- .z-\[1\] {
- z-index: 1;
- }
.z-\[50\] {
z-index: 50;
}
@@ -3713,29 +3302,6 @@
grid-row-start: 2;
}
}
- .drawer-end {
- @layer daisyui.l1.l2 {
- grid-auto-columns: auto max-content;
- > .drawer-toggle {
- ~ .drawer-content {
- grid-column-start: 1;
- }
- ~ .drawer-side {
- grid-column-start: 2;
- justify-items: end;
- }
- ~ .drawer-side > :not(.drawer-overlay) {
- translate: 100%;
- [dir="rtl"] & {
- translate: -100%;
- }
- }
- &:checked ~ .drawer-side > :not(.drawer-overlay) {
- translate: 0%;
- }
- }
- }
- }
.stat-value {
@layer daisyui.l1.l2.l3 {
grid-column-start: 1;
@@ -3772,15 +3338,6 @@
white-space: nowrap;
}
}
- .col-start-1 {
- grid-column-start: 1;
- }
- .col-start-2 {
- grid-column-start: 2;
- }
- .col-start-3 {
- grid-column-start: 3;
- }
.chat-image {
@layer daisyui.l1.l2.l3 {
grid-row: span 2 / span 2;
@@ -3803,12 +3360,6 @@
font-size: 0.6875rem;
}
}
- .row-start-2 {
- grid-row-start: 2;
- }
- .row-start-3 {
- grid-row-start: 3;
- }
.container {
width: 100%;
@media (width >= 40rem) {
@@ -3923,18 +3474,6 @@
}
}
}
- .input-md {
- @layer daisyui.l1.l2 {
- --size: calc(var(--size-field, 0.25rem) * 10);
- font-size: max(var(--font-size, 0.875rem), 0.875rem);
- &[type="number"] {
- &::-webkit-inner-spin-button {
- margin-block: calc(0.25rem * -3);
- margin-inline-end: calc(0.25rem * -3);
- }
- }
- }
- }
.input-sm {
@layer daisyui.l1.l2 {
--size: calc(var(--size-field, 0.25rem) * 8);
@@ -3959,15 +3498,6 @@
}
}
}
- .my-1 {
- margin-block: calc(var(--spacing) * 1);
- }
- .my-4 {
- margin-block: calc(var(--spacing) * 4);
- }
- .my-6 {
- margin-block: calc(var(--spacing) * 6);
- }
.my-16 {
margin-block: calc(var(--spacing) * 16);
}
@@ -4036,9 +3566,6 @@
.mt-4 {
margin-top: calc(var(--spacing) * 4);
}
- .mt-8 {
- margin-top: calc(var(--spacing) * 8);
- }
.mr-1 {
margin-right: calc(var(--spacing) * 1);
}
@@ -4057,18 +3584,12 @@
font-weight: 600;
}
}
- .mb-1 {
- margin-bottom: calc(var(--spacing) * 1);
- }
.mb-2 {
margin-bottom: calc(var(--spacing) * 2);
}
.mb-4 {
margin-bottom: calc(var(--spacing) * 4);
}
- .mb-6 {
- margin-bottom: calc(var(--spacing) * 6);
- }
.mb-10 {
margin-bottom: calc(var(--spacing) * 10);
}
@@ -4078,9 +3599,6 @@
.ml-2 {
margin-left: calc(var(--spacing) * 2);
}
- .ml-6 {
- margin-left: calc(var(--spacing) * 6);
- }
.carousel-item {
@layer daisyui.l1.l2.l3 {
box-sizing: content-box;
@@ -4089,31 +3607,6 @@
scroll-snap-align: start;
}
}
- .status {
- @layer daisyui.l1.l2.l3 {
- display: inline-block;
- aspect-ratio: 1 / 1;
- width: calc(0.25rem * 2);
- height: calc(0.25rem * 2);
- border-radius: var(--radius-selector);
- background-color: var(--color-base-content);
- @supports (color: color-mix(in lab, red, red)) {
- background-color: color-mix(in oklab, var(--color-base-content) 20%, transparent);
- }
- background-position: center;
- background-repeat: no-repeat;
- vertical-align: middle;
- color: color-mix(in srgb, #000 30%, transparent);
- @supports (color: color-mix(in lab, red, red)) {
- color: color-mix(in oklab, var(--color-black) 30%, transparent);
- }
- background-image: radial-gradient( circle at 35% 30%, oklch(1 0 0 / calc(var(--depth) * 0.5)), #0000 );
- box-shadow: 0 2px 3px -1px currentColor;
- @supports (color: color-mix(in lab, red, red)) {
- box-shadow: 0 2px 3px -1px color-mix(in oklab, currentColor calc(var(--depth) * 100%), #0000);
- }
- }
- }
.badge {
@layer daisyui.l1.l2.l3 {
display: inline-flex;
@@ -4162,6 +3655,45 @@
mask-size: 100% 100%;
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01'/%3E%3C/svg%3E");
}
+ .icon-\[lucide--align-center\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M17 12H7m12 6H5M21 6H3'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--align-left\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 12H3m14 6H3M21 6H3'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--align-right\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 12H9m12 6H7M21 6H3'/%3E%3C/svg%3E");
+ }
.icon-\[lucide--bold\] {
display: inline-block;
width: 1em;
@@ -4292,6 +3824,19 @@
mask-size: 100% 100%;
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16'/%3E%3C/svg%3E");
}
+ .icon-\[lucide--eraser\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21m-7.752-9.91l8.828 8.828'/%3E%3C/svg%3E");
+ }
.icon-\[lucide--eye-off\] {
display: inline-block;
width: 1em;
@@ -4331,7 +3876,7 @@
mask-size: 100% 100%;
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 9h16M4 15h16M10 3L8 21m8-18l-2 18'/%3E%3C/svg%3E");
}
- .icon-\[lucide--heart\] {
+ .icon-\[lucide--indent-decrease\] {
display: inline-block;
width: 1em;
height: 1em;
@@ -4342,7 +3887,20 @@
mask-repeat: no-repeat;
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 9.5a5.5 5.5 0 0 1 9.591-3.676a.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5'/%3E%3C/svg%3E");
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 12H11m10 6H11M21 6H11M7 8l-4 4l4 4'/%3E%3C/svg%3E");
+ }
+ .icon-\[lucide--indent-increase\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 12H11m10 6H11M21 6H11M3 8l4 4l-4 4'/%3E%3C/svg%3E");
}
.icon-\[lucide--info\] {
display: inline-block;
@@ -4435,6 +3993,19 @@
mask-size: 100% 100%;
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3C/g%3E%3C/svg%3E");
}
+ .icon-\[lucide--paperclip\] {
+ display: inline-block;
+ width: 1em;
+ height: 1em;
+ background-color: currentColor;
+ -webkit-mask-image: var(--svg);
+ mask-image: var(--svg);
+ -webkit-mask-repeat: no-repeat;
+ mask-repeat: no-repeat;
+ -webkit-mask-size: 100% 100%;
+ mask-size: 100% 100%;
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m16 6l-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551'/%3E%3C/svg%3E");
+ }
.icon-\[lucide--phone\] {
display: inline-block;
width: 1em;
@@ -4448,19 +4019,6 @@
mask-size: 100% 100%;
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233a14 14 0 0 0 6.392 6.384'/%3E%3C/svg%3E");
}
- .icon-\[lucide--plus\] {
- display: inline-block;
- width: 1em;
- height: 1em;
- background-color: currentColor;
- -webkit-mask-image: var(--svg);
- mask-image: var(--svg);
- -webkit-mask-repeat: no-repeat;
- mask-repeat: no-repeat;
- -webkit-mask-size: 100% 100%;
- mask-size: 100% 100%;
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-7-7v14'/%3E%3C/svg%3E");
- }
.icon-\[lucide--quote\] {
display: inline-block;
width: 1em;
@@ -4500,7 +4058,7 @@
mask-size: 100% 100%;
--svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m21 21l-4.34-4.34'/%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3C/g%3E%3C/svg%3E");
}
- .icon-\[lucide--settings\] {
+ .icon-\[lucide--smile\] {
display: inline-block;
width: 1em;
height: 1em;
@@ -4511,20 +4069,7 @@
mask-repeat: no-repeat;
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M9.671 4.136a2.34 2.34 0 0 1 4.659 0a2.34 2.34 0 0 0 3.319 1.915a2.34 2.34 0 0 1 2.33 4.033a2.34 2.34 0 0 0 0 3.831a2.34 2.34 0 0 1-2.33 4.033a2.34 2.34 0 0 0-3.319 1.915a2.34 2.34 0 0 1-4.659 0a2.34 2.34 0 0 0-3.32-1.915a2.34 2.34 0 0 1-2.33-4.033a2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E");
- }
- .icon-\[lucide--strikethrough\] {
- display: inline-block;
- width: 1em;
- height: 1em;
- background-color: currentColor;
- -webkit-mask-image: var(--svg);
- mask-image: var(--svg);
- -webkit-mask-repeat: no-repeat;
- mask-repeat: no-repeat;
- -webkit-mask-size: 100% 100%;
- mask-size: 100% 100%;
- --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M16 4H9a3 3 0 0 0-2.83 4M14 12a4 4 0 0 1 0 8H6m-2-8h16'/%3E%3C/svg%3E");
+ --svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M8 14s1.5 2 4 2s4-2 4-2M9 9h.01M15 9h.01'/%3E%3C/g%3E%3C/svg%3E");
}
.icon-\[lucide--text\] {
display: inline-block;
@@ -4737,14 +4282,6 @@
justify-content: flex-end;
}
}
- .navbar-start {
- @layer daisyui.l1.l2.l3 {
- display: inline-flex;
- align-items: center;
- width: 50%;
- justify-content: flex-start;
- }
- }
.card-body {
@layer daisyui.l1.l2.l3 {
display: flex;
@@ -4758,13 +4295,6 @@
}
}
}
- .navbar-center {
- @layer daisyui.l1.l2.l3 {
- display: inline-flex;
- align-items: center;
- flex-shrink: 0;
- }
- }
.fieldset-label {
@layer daisyui.l1.l2.l3 {
display: flex;
@@ -4891,6 +4421,9 @@
.inline-block {
display: inline-block;
}
+ .inline-flex {
+ display: inline-flex;
+ }
.table {
display: table;
}
@@ -4914,40 +4447,6 @@
}
}
}
- .modal-middle {
- @layer daisyui.l1.l2 {
- place-items: center;
- .modal-box {
- height: auto;
- width: calc(11/12 * 100%);
- max-width: 32rem;
- max-height: calc(100vh - 5em);
- translate: 0 2%;
- scale: 98%;
- --modal-tl: var(--radius-box);
- --modal-tr: var(--radius-box);
- --modal-bl: var(--radius-box);
- --modal-br: var(--radius-box);
- }
- }
- }
- .modal-top {
- @layer daisyui.l1.l2 {
- place-items: start;
- .modal-box {
- height: auto;
- width: 100%;
- max-width: none;
- max-height: calc(100vh - 5em);
- translate: 0 -100%;
- scale: 1;
- --modal-tl: 0;
- --modal-tr: 0;
- --modal-bl: var(--radius-box);
- --modal-br: var(--radius-box);
- }
- }
- }
.btn-circle {
@layer daisyui.l1.l2 {
border-radius: calc(infinity * 1px);
@@ -4956,13 +4455,6 @@
height: var(--size);
}
}
- .btn-square {
- @layer daisyui.l1.l2 {
- padding-inline: calc(0.25rem * 0);
- width: var(--size);
- height: var(--size);
- }
- }
.size-5 {
width: calc(var(--spacing) * 5);
height: calc(var(--spacing) * 5);
@@ -4971,6 +4463,9 @@
width: calc(var(--spacing) * 6);
height: calc(var(--spacing) * 6);
}
+ .h-3 {
+ height: calc(var(--spacing) * 3);
+ }
.h-3\.5 {
height: calc(var(--spacing) * 3.5);
}
@@ -4980,42 +4475,18 @@
.h-5 {
height: calc(var(--spacing) * 5);
}
- .h-8 {
- height: calc(var(--spacing) * 8);
- }
- .h-10 {
- height: calc(var(--spacing) * 10);
- }
.h-12 {
height: calc(var(--spacing) * 12);
}
- .h-16 {
- height: calc(var(--spacing) * 16);
- }
.h-20 {
height: calc(var(--spacing) * 20);
}
- .h-24 {
- height: calc(var(--spacing) * 24);
- }
- .h-32 {
- height: calc(var(--spacing) * 32);
- }
.h-48 {
height: calc(var(--spacing) * 48);
}
.h-96 {
height: calc(var(--spacing) * 96);
}
- .h-\[300px\] {
- height: 300px;
- }
- .h-\[400px\] {
- height: 400px;
- }
- .h-\[500px\] {
- height: 500px;
- }
.h-auto {
height: auto;
}
@@ -5025,56 +4496,35 @@
.max-h-60 {
max-height: calc(var(--spacing) * 60);
}
- .max-h-96 {
- max-height: calc(var(--spacing) * 96);
- }
.min-h-0 {
min-height: calc(var(--spacing) * 0);
}
- .min-h-\[10rem\] {
- min-height: 10rem;
- }
- .min-h-\[300px\] {
- min-height: 300px;
- }
- .min-h-\[400px\] {
- min-height: 400px;
- }
- .min-h-\[500px\] {
- min-height: 500px;
+ .min-h-\[22rem\] {
+ min-height: 22rem;
}
.min-h-full {
min-height: 100%;
}
- .btn-wide {
- @layer daisyui.l1.l2 {
- width: 100%;
- max-width: calc(0.25rem * 64);
- }
- }
.btn-block {
@layer daisyui.l1.l2 {
width: 100%;
}
}
+ .w-3 {
+ width: calc(var(--spacing) * 3);
+ }
.w-3\.5 {
width: calc(var(--spacing) * 3.5);
}
- .w-8 {
- width: calc(var(--spacing) * 8);
+ .w-4 {
+ width: calc(var(--spacing) * 4);
+ }
+ .w-5 {
+ width: calc(var(--spacing) * 5);
}
.w-10 {
width: calc(var(--spacing) * 10);
}
- .w-12 {
- width: calc(var(--spacing) * 12);
- }
- .w-16 {
- width: calc(var(--spacing) * 16);
- }
- .w-24 {
- width: calc(var(--spacing) * 24);
- }
.w-32 {
width: calc(var(--spacing) * 32);
}
@@ -5108,6 +4558,9 @@
.w-px {
width: 1px;
}
+ .w-xs {
+ width: var(--container-xs);
+ }
.max-w-2xl {
max-width: var(--container-2xl);
}
@@ -5126,21 +4579,9 @@
.max-w-md {
max-width: var(--container-md);
}
- .max-w-xs {
- max-width: var(--container-xs);
- }
- .min-w-\[4rem\] {
- min-width: 4rem;
- }
.min-w-\[48px\] {
min-width: 48px;
}
- .min-w-\[500px\] {
- min-width: 500px;
- }
- .min-w-\[600px\] {
- min-width: 600px;
- }
.flex-1 {
flex: 1;
}
@@ -5161,14 +4602,6 @@
--tw-translate-x: calc(var(--spacing) * 0);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
- .translate-x-2 {
- --tw-translate-x: calc(var(--spacing) * 2);
- translate: var(--tw-translate-x) var(--tw-translate-y);
- }
- .translate-x-4 {
- --tw-translate-x: calc(var(--spacing) * 4);
- translate: var(--tw-translate-x) var(--tw-translate-y);
- }
.translate-x-10 {
--tw-translate-x: calc(var(--spacing) * 10);
translate: var(--tw-translate-x) var(--tw-translate-y);
@@ -5177,20 +4610,6 @@
--tw-translate-x: 100%;
translate: var(--tw-translate-x) var(--tw-translate-y);
}
- .translate-y-2 {
- --tw-translate-y: calc(var(--spacing) * 2);
- translate: var(--tw-translate-x) var(--tw-translate-y);
- }
- .translate-y-4 {
- --tw-translate-y: calc(var(--spacing) * 4);
- translate: var(--tw-translate-x) var(--tw-translate-y);
- }
- .scale-105 {
- --tw-scale-x: 105%;
- --tw-scale-y: 105%;
- --tw-scale-z: 105%;
- scale: var(--tw-scale-x) var(--tw-scale-y);
- }
.scale-110 {
--tw-scale-x: 110%;
--tw-scale-y: 110%;
@@ -5210,27 +4629,6 @@
}
}
}
- .swap-flip {
- @layer daisyui.l1.l2 {
- transform-style: preserve-3d;
- perspective: 20rem;
- .swap-on, .swap-indeterminate, input:indeterminate ~ .swap-on {
- transform: rotateY(180deg);
- backface-visibility: hidden;
- }
- input:is(:checked, :indeterminate) ~ .swap-on, &.swap-active .swap-on {
- transform: rotateY(0deg);
- }
- input:is(:checked, :indeterminate) ~ .swap-off, &.swap-active .swap-off {
- transform: rotateY(-180deg);
- backface-visibility: hidden;
- opacity: 100%;
- }
- }
- }
- .transform {
- transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
- }
.skeleton {
@layer daisyui.l1.l2.l3 {
border-radius: var(--radius-box);
@@ -5250,9 +4648,6 @@
.animate-pulse {
animation: var(--animate-pulse);
}
- .cursor-help {
- cursor: help;
- }
.cursor-pointer {
cursor: pointer;
}
@@ -5288,12 +4683,6 @@
.grid-cols-1 {
grid-template-columns: repeat(1, minmax(0, 1fr));
}
- .grid-cols-2 {
- grid-template-columns: repeat(2, minmax(0, 1fr));
- }
- .grid-cols-3 {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
.grid-cols-7 {
grid-template-columns: repeat(7, minmax(0, 1fr));
}
@@ -5330,15 +4719,9 @@
.justify-center {
justify-content: center;
}
- .justify-end {
- justify-content: flex-end;
- }
.justify-start {
justify-content: flex-start;
}
- .justify-items-center {
- justify-items: center;
- }
.gap-0\.5 {
gap: calc(var(--spacing) * 0.5);
}
@@ -5354,9 +4737,6 @@
.gap-4 {
gap: calc(var(--spacing) * 4);
}
- .gap-6 {
- gap: calc(var(--spacing) * 6);
- }
.gap-8 {
gap: calc(var(--spacing) * 8);
}
@@ -5407,62 +4787,6 @@
box-shadow: 0 1px 2px 0 oklch(0% 0 0/0.05);
}
}
- .menu-lg {
- @layer daisyui.l1.l2 {
- :where(li:not(.menu-title) > *:not(ul, details, .menu-title)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) {
- border-radius: var(--radius-field);
- padding-inline: calc(0.25rem * 4);
- padding-block: calc(0.25rem * 1.5);
- font-size: 1.125rem;
- }
- .menu-title {
- padding-inline: calc(0.25rem * 6);
- padding-block: calc(0.25rem * 3);
- }
- }
- }
- .menu-md {
- @layer daisyui.l1.l2 {
- :where(li:not(.menu-title) > *:not(ul, details, .menu-title)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) {
- border-radius: var(--radius-field);
- padding-inline: calc(0.25rem * 3);
- padding-block: calc(0.25rem * 1.5);
- font-size: 0.875rem;
- }
- .menu-title {
- padding-inline: calc(0.25rem * 3);
- padding-block: calc(0.25rem * 2);
- }
- }
- }
- .menu-sm {
- @layer daisyui.l1.l2 {
- :where(li:not(.menu-title) > *:not(ul, details, .menu-title)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) {
- border-radius: var(--radius-field);
- padding-inline: calc(0.25rem * 2.5);
- padding-block: calc(0.25rem * 1);
- font-size: 0.75rem;
- }
- .menu-title {
- padding-inline: calc(0.25rem * 3);
- padding-block: calc(0.25rem * 2);
- }
- }
- }
- .menu-xs {
- @layer daisyui.l1.l2 {
- :where(li:not(.menu-title) > *:not(ul, details, .menu-title)), :where(li:not(.menu-title) > details > summary:not(.menu-title)) {
- border-radius: var(--radius-field);
- padding-inline: calc(0.25rem * 2);
- padding-block: calc(0.25rem * 1);
- font-size: 0.6875rem;
- }
- .menu-title {
- padding-inline: calc(0.25rem * 2);
- padding-block: calc(0.25rem * 1);
- }
- }
- }
.rounded {
border-radius: 0.25rem;
}
@@ -5490,9 +4814,6 @@
.rounded-sm {
border-radius: var(--radius-sm);
}
- .rounded-xl {
- border-radius: var(--radius-xl);
- }
.border {
border-style: var(--tw-border-style);
border-width: 1px;
@@ -5509,18 +4830,10 @@
border-top-style: var(--tw-border-style);
border-top-width: 1px;
}
- .border-r {
- border-right-style: var(--tw-border-style);
- border-right-width: 1px;
- }
.border-b {
border-bottom-style: var(--tw-border-style);
border-bottom-width: 1px;
}
- .border-l-4 {
- border-left-style: var(--tw-border-style);
- border-left-width: 4px;
- }
.badge-dash {
@layer daisyui.l1.l2 {
color: var(--badge-color);
@@ -5539,27 +4852,6 @@
background-image: none;
}
}
- .btn-dash {
- @layer daisyui.l1 {
- &:not( .btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn), :disabled, [disabled], .btn-disabled ) {
- --btn-shadow: "";
- --btn-bg: #0000;
- --btn-fg: var(--btn-color);
- --btn-border: var(--btn-color);
- --btn-noise: none;
- }
- @media (hover: none) {
- &:not(.btn-active, :active, :focus-visible, input:checked:not(.filter .btn)):hover {
- --btn-shadow: "";
- --btn-bg: #0000;
- --btn-fg: var(--btn-color);
- --btn-border: var(--btn-color);
- --btn-noise: none;
- }
- }
- }
- border-style: dashed;
- }
.border-dashed {
--tw-border-style: dashed;
border-style: dashed;
@@ -5576,41 +4868,6 @@
background-image: none;
}
}
- .select-ghost {
- @layer daisyui.l1.l2 {
- background-color: transparent;
- transition: background-color 0.2s;
- box-shadow: none;
- border-color: #0000;
- &:focus, &:focus-within {
- background-color: var(--color-base-100);
- color: var(--color-base-content);
- border-color: #0000;
- box-shadow: none;
- }
- }
- }
- .input-ghost {
- @layer daisyui.l1.l2 {
- background-color: transparent;
- box-shadow: none;
- border-color: #0000;
- &:focus, &:focus-within {
- background-color: var(--color-base-100);
- color: var(--color-base-content);
- border-color: #0000;
- box-shadow: none;
- }
- }
- }
- .badge-outline {
- @layer daisyui.l1.l2 {
- color: var(--badge-color);
- --badge-bg: #0000;
- background-image: none;
- border-color: currentColor;
- }
- }
.border-base-200\/30 {
border-color: var(--color-base-200);
@supports (color: color-mix(in lab, red, red)) {
@@ -5641,9 +4898,6 @@
.border-primary {
border-color: var(--color-primary);
}
- .border-transparent {
- border-color: transparent;
- }
.table-zebra {
@layer daisyui.l1.l2 {
tbody {
@@ -5667,12 +4921,15 @@
}
}
}
- .bg-accent {
- background-color: var(--color-accent);
- }
.bg-base-100 {
background-color: var(--color-base-100);
}
+ .bg-base-100\/50 {
+ background-color: var(--color-base-100);
+ @supports (color: color-mix(in lab, red, red)) {
+ background-color: color-mix(in oklab, var(--color-base-100) 50%, transparent);
+ }
+ }
.bg-base-200 {
background-color: var(--color-base-200);
}
@@ -5691,36 +4948,9 @@
.bg-base-300 {
background-color: var(--color-base-300);
}
- .bg-black\/20 {
- background-color: color-mix(in srgb, #000 20%, transparent);
- @supports (color: color-mix(in lab, red, red)) {
- background-color: color-mix(in oklab, var(--color-black) 20%, transparent);
- }
- }
- .bg-error {
- background-color: var(--color-error);
- }
- .bg-error\/10 {
- background-color: var(--color-error);
- @supports (color: color-mix(in lab, red, red)) {
- background-color: color-mix(in oklab, var(--color-error) 10%, transparent);
- }
- }
- .bg-info {
- background-color: var(--color-info);
- }
- .bg-neutral {
- background-color: var(--color-neutral);
- }
.bg-primary {
background-color: var(--color-primary);
}
- .bg-primary\/5 {
- background-color: var(--color-primary);
- @supports (color: color-mix(in lab, red, red)) {
- background-color: color-mix(in oklab, var(--color-primary) 5%, transparent);
- }
- }
.bg-primary\/10 {
background-color: var(--color-primary);
@supports (color: color-mix(in lab, red, red)) {
@@ -5736,29 +4966,8 @@
.bg-secondary {
background-color: var(--color-secondary);
}
- .bg-success {
- background-color: var(--color-success);
- }
- .bg-success\/10 {
- background-color: var(--color-success);
- @supports (color: color-mix(in lab, red, red)) {
- background-color: color-mix(in oklab, var(--color-success) 10%, transparent);
- }
- }
- .bg-warning {
- background-color: var(--color-warning);
- }
- .bg-warning\/10 {
- background-color: var(--color-warning);
- @supports (color: color-mix(in lab, red, red)) {
- background-color: color-mix(in oklab, var(--color-warning) 10%, transparent);
- }
- }
- .bg-white\/20 {
- background-color: color-mix(in srgb, #fff 20%, transparent);
- @supports (color: color-mix(in lab, red, red)) {
- background-color: color-mix(in oklab, var(--color-white) 20%, transparent);
- }
+ .bg-transparent {
+ background-color: transparent;
}
.bg-linear-to-r {
--tw-gradient-position: to right;
@@ -5767,10 +4976,6 @@
}
background-image: linear-gradient(var(--tw-gradient-stops));
}
- .bg-gradient-to-r {
- --tw-gradient-position: to right in oklab;
- background-image: linear-gradient(var(--tw-gradient-stops));
- }
.skeleton-text {
@layer daisyui.l1.l2 {
background-clip: text;
@@ -5801,14 +5006,6 @@
background-image: none;
}
}
- .from-accent {
- --tw-gradient-from: var(--color-accent);
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
- }
- .from-primary {
- --tw-gradient-from: var(--color-primary);
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
- }
.from-secondary {
--tw-gradient-from: var(--color-secondary);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
@@ -5818,18 +5015,10 @@
--tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);
--tw-gradient-stops: var(--tw-gradient-via-stops);
}
- .to-accent {
- --tw-gradient-to: var(--color-accent);
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
- }
.to-primary {
--tw-gradient-to: var(--color-primary);
--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
}
- .to-secondary {
- --tw-gradient-to: var(--color-secondary);
- --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));
- }
.loading-spinner {
@layer daisyui.l1.l2 {
mask-image: url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");
@@ -5850,11 +5039,6 @@
mask-image: url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 137.263-58.779 42.024 22.163-68.389L.894 68.481l72.476-.243L96 0l22.63 68.238 72.476.243-58.49 42.417 22.163 68.389z' fill-rule='evenodd'/%3e%3c/svg%3e");
}
}
- .mask-star-2 {
- @layer daisyui.l1.l2 {
- mask-image: url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 153.044-58.779 26.243 7.02-63.513L.894 68.481l63.117-13.01L96 0l31.989 55.472 63.117 13.01-43.347 47.292 7.02 63.513z' fill-rule='evenodd'/%3e%3c/svg%3e");
- }
- }
.mask-circle {
--tw-mask-radial-shape: circle;
}
@@ -5867,24 +5051,6 @@
--size: calc(var(--size-selector, 0.25rem) * 7);
}
}
- .checkbox-md {
- @layer daisyui.l1.l2 {
- padding: 0.25rem;
- --size: calc(var(--size-selector, 0.25rem) * 6);
- }
- }
- .checkbox-sm {
- @layer daisyui.l1.l2 {
- padding: 0.1875rem;
- --size: calc(var(--size-selector, 0.25rem) * 5);
- }
- }
- .checkbox-xs {
- @layer daisyui.l1.l2 {
- padding: 0.125rem;
- --size: calc(var(--size-selector, 0.25rem) * 4);
- }
- }
.radio-lg {
@layer daisyui.l1.l2 {
padding: 0.3125rem;
@@ -5893,30 +5059,6 @@
}
}
}
- .radio-md {
- @layer daisyui.l1.l2 {
- padding: 0.25rem;
- &:is([type="radio"]) {
- --size: calc(var(--size-selector, 0.25rem) * 6);
- }
- }
- }
- .radio-sm {
- @layer daisyui.l1.l2 {
- padding: 0.1875rem;
- &:is([type="radio"]) {
- --size: calc(var(--size-selector, 0.25rem) * 5);
- }
- }
- }
- .radio-xs {
- @layer daisyui.l1.l2 {
- padding: 0.125rem;
- &:is([type="radio"]) {
- --size: calc(var(--size-selector, 0.25rem) * 4);
- }
- }
- }
.p-0 {
padding: calc(var(--spacing) * 0);
}
@@ -5954,36 +5096,6 @@
}
}
}
- .select-md {
- @layer daisyui.l1.l2 {
- --size: calc(var(--size-field, 0.25rem) * 10);
- font-size: 0.875rem;
- option {
- padding-inline: calc(0.25rem * 3);
- padding-block: calc(0.25rem * 1.5);
- }
- }
- }
- .select-sm {
- @layer daisyui.l1.l2 {
- --size: calc(var(--size-field, 0.25rem) * 8);
- font-size: 0.75rem;
- option {
- padding-inline: calc(0.25rem * 2.5);
- padding-block: calc(0.25rem * 1);
- }
- }
- }
- .select-xs {
- @layer daisyui.l1.l2 {
- --size: calc(var(--size-field, 0.25rem) * 6);
- font-size: 0.6875rem;
- option {
- padding-inline: calc(0.25rem * 2);
- padding-block: calc(0.25rem * 1);
- }
- }
- }
.table-lg {
@layer daisyui.l1.l2 {
:not(thead, tfoot) tr {
@@ -5995,56 +5107,9 @@
}
}
}
- .table-md {
- @layer daisyui.l1.l2 {
- :not(thead, tfoot) tr {
- font-size: 0.875rem;
- }
- :where(th, td) {
- padding-inline: calc(0.25rem * 4);
- padding-block: calc(0.25rem * 3);
- }
- }
- }
- .table-sm {
- @layer daisyui.l1.l2 {
- :not(thead, tfoot) tr {
- font-size: 0.75rem;
- }
- :where(th, td) {
- padding-inline: calc(0.25rem * 3);
- padding-block: calc(0.25rem * 2);
- }
- }
- }
- .table-xl {
- @layer daisyui.l1.l2 {
- :not(thead, tfoot) tr {
- font-size: 1.375rem;
- }
- :where(th, td) {
- padding-inline: calc(0.25rem * 6);
- padding-block: calc(0.25rem * 5);
- }
- }
- }
- .table-xs {
- @layer daisyui.l1.l2 {
- :not(thead, tfoot) tr {
- font-size: 0.6875rem;
- }
- :where(th, td) {
- padding-inline: calc(0.25rem * 2);
- padding-block: calc(0.25rem * 1);
- }
- }
- }
.px-1 {
padding-inline: calc(var(--spacing) * 1);
}
- .px-2 {
- padding-inline: calc(var(--spacing) * 2);
- }
.px-3 {
padding-inline: calc(var(--spacing) * 3);
}
@@ -6063,12 +5128,6 @@
.py-2 {
padding-block: calc(var(--spacing) * 2);
}
- .py-4 {
- padding-block: calc(var(--spacing) * 4);
- }
- .py-8 {
- padding-block: calc(var(--spacing) * 8);
- }
.py-10 {
padding-block: calc(var(--spacing) * 10);
}
@@ -6116,18 +5175,10 @@
font-size: var(--text-4xl);
line-height: var(--tw-leading, var(--text-4xl--line-height));
}
- .text-6xl {
- font-size: var(--text-6xl);
- line-height: var(--tw-leading, var(--text-6xl--line-height));
- }
.text-7xl {
font-size: var(--text-7xl);
line-height: var(--tw-leading, var(--text-7xl--line-height));
}
- .text-base {
- font-size: var(--text-base);
- line-height: var(--tw-leading, var(--text-base--line-height));
- }
.text-lg {
font-size: var(--text-lg);
line-height: var(--tw-leading, var(--text-lg--line-height));
@@ -6144,70 +5195,12 @@
font-size: var(--text-xs);
line-height: var(--tw-leading, var(--text-xs--line-height));
}
- .tabs-lg {
- @layer daisyui.l1.l2 {
- --tab-height: calc(var(--size-field, 0.25rem) * 12);
- & > .tab {
- font-size: 1.125rem;
- --tab-p: 1rem;
- --tab-radius-min: calc(1.5rem - var(--border));
- }
- }
- }
- .tabs-md {
- @layer daisyui.l1.l2 {
- --tab-height: calc(var(--size-field, 0.25rem) * 10);
- & > .tab {
- font-size: 0.875rem;
- --tab-p: 0.75rem;
- --tab-radius-min: calc(0.75rem - var(--border));
- }
- }
- }
- .tabs-sm {
- @layer daisyui.l1.l2 {
- --tab-height: calc(var(--size-field, 0.25rem) * 8);
- & > .tab {
- font-size: 0.875rem;
- --tab-p: 0.5rem;
- --tab-radius-min: calc(0.5rem - var(--border));
- }
- }
- }
- .tabs-xs {
- @layer daisyui.l1.l2 {
- --tab-height: calc(var(--size-field, 0.25rem) * 6);
- & > .tab {
- font-size: 0.75rem;
- --tab-p: 0.375rem;
- --tab-radius-min: calc(0.5rem - var(--border));
- }
- }
- }
.badge-lg {
@layer daisyui.l1.l2 {
--size: calc(var(--size-selector, 0.25rem) * 7);
font-size: 1rem;
}
}
- .badge-md {
- @layer daisyui.l1.l2 {
- --size: calc(var(--size-selector, 0.25rem) * 6);
- font-size: 0.875rem;
- }
- }
- .badge-sm {
- @layer daisyui.l1.l2 {
- --size: calc(var(--size-selector, 0.25rem) * 5);
- font-size: 0.75rem;
- }
- }
- .badge-xs {
- @layer daisyui.l1.l2 {
- --size: calc(var(--size-selector, 0.25rem) * 4);
- font-size: 0.625rem;
- }
- }
.text-\[9px\] {
font-size: 9px;
}
@@ -6300,36 +5293,6 @@
--input-color: var(--color-error);
}
}
- .checkbox-info {
- @layer daisyui.l1.l2 {
- color: var(--color-info-content);
- --input-color: var(--color-info);
- }
- }
- .checkbox-primary {
- @layer daisyui.l1.l2 {
- color: var(--color-primary-content);
- --input-color: var(--color-primary);
- }
- }
- .checkbox-secondary {
- @layer daisyui.l1.l2 {
- color: var(--color-secondary-content);
- --input-color: var(--color-secondary);
- }
- }
- .checkbox-success {
- @layer daisyui.l1.l2 {
- color: var(--color-success-content);
- --input-color: var(--color-success);
- }
- }
- .checkbox-warning {
- @layer daisyui.l1.l2 {
- color: var(--color-warning-content);
- --input-color: var(--color-warning);
- }
- }
.range-accent {
@layer daisyui.l1.l2 {
color: var(--color-accent);
@@ -6342,36 +5305,6 @@
--range-thumb: var(--color-error-content);
}
}
- .range-info {
- @layer daisyui.l1.l2 {
- color: var(--color-info);
- --range-thumb: var(--color-info-content);
- }
- }
- .range-primary {
- @layer daisyui.l1.l2 {
- color: var(--color-primary);
- --range-thumb: var(--color-primary-content);
- }
- }
- .range-secondary {
- @layer daisyui.l1.l2 {
- color: var(--color-secondary);
- --range-thumb: var(--color-secondary-content);
- }
- }
- .range-success {
- @layer daisyui.l1.l2 {
- color: var(--color-success);
- --range-thumb: var(--color-success-content);
- }
- }
- .range-warning {
- @layer daisyui.l1.l2 {
- color: var(--color-warning);
- --range-thumb: var(--color-warning-content);
- }
- }
.tooltip-accent {
@layer daisyui.l1.l2 {
--tt-bg: var(--color-accent);
@@ -6388,52 +5321,9 @@
}
}
}
- .tooltip-info {
- @layer daisyui.l1.l2 {
- --tt-bg: var(--color-info);
- > .tooltip-content, &[data-tip]:before {
- color: var(--color-info-content);
- }
- }
- }
- .tooltip-primary {
- @layer daisyui.l1.l2 {
- --tt-bg: var(--color-primary);
- > .tooltip-content, &[data-tip]:before {
- color: var(--color-primary-content);
- }
- }
- }
- .tooltip-secondary {
- @layer daisyui.l1.l2 {
- --tt-bg: var(--color-secondary);
- > .tooltip-content, &[data-tip]:before {
- color: var(--color-secondary-content);
- }
- }
- }
- .tooltip-success {
- @layer daisyui.l1.l2 {
- --tt-bg: var(--color-success);
- > .tooltip-content, &[data-tip]:before {
- color: var(--color-success-content);
- }
- }
- }
- .tooltip-warning {
- @layer daisyui.l1.l2 {
- --tt-bg: var(--color-warning);
- > .tooltip-content, &[data-tip]:before {
- color: var(--color-warning-content);
- }
- }
- }
.text-accent {
color: var(--color-accent);
}
- .text-accent-content {
- color: var(--color-accent-content);
- }
.text-base-content {
color: var(--color-base-content);
}
@@ -6452,21 +5342,6 @@
.text-error {
color: var(--color-error);
}
- .text-error-content {
- color: var(--color-error-content);
- }
- .text-gray-500 {
- color: var(--color-gray-500);
- }
- .text-info {
- color: var(--color-info);
- }
- .text-info-content {
- color: var(--color-info-content);
- }
- .text-neutral-content {
- color: var(--color-neutral-content);
- }
.text-primary {
color: var(--color-primary);
}
@@ -6482,21 +5357,9 @@
.text-success {
color: var(--color-success);
}
- .text-success-content {
- color: var(--color-success-content);
- }
.text-transparent {
color: transparent;
}
- .text-warning {
- color: var(--color-warning);
- }
- .text-warning-content {
- color: var(--color-warning-content);
- }
- .text-white {
- color: var(--color-white);
- }
.normal-case {
text-transform: none;
}
@@ -6523,9 +5386,6 @@
}
}
}
- .line-through {
- text-decoration-line: line-through;
- }
.underline {
text-decoration-line: underline;
}
@@ -6660,11 +5520,6 @@
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
transition-duration: var(--tw-duration, var(--default-transition-duration));
}
- .transition-colors {
- transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
- transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
- transition-duration: var(--tw-duration, var(--default-transition-duration));
- }
.transition-transform {
transition-property: transform, translate, scale, rotate;
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -6698,78 +5553,6 @@
}
}
}
- .btn-soft {
- @layer daisyui.l1 {
- &:not( .btn-active, :hover, :active:focus, :focus-visible, input:checked:not(.filter .btn), :disabled, [disabled], .btn-disabled ) {
- --btn-shadow: "";
- --btn-fg: var(--btn-color, var(--color-base-content));
- --btn-bg: var(--btn-color, var(--color-base-content));
- @supports (color: color-mix(in lab, red, red)) {
- --btn-bg: color-mix(
- in oklab,
- var(--btn-color, var(--color-base-content)) 8%,
- var(--color-base-100)
- );
- }
- --btn-border: var(--btn-color, var(--color-base-content));
- @supports (color: color-mix(in lab, red, red)) {
- --btn-border: color-mix(
- in oklab,
- var(--btn-color, var(--color-base-content)) 10%,
- var(--color-base-100)
- );
- }
- --btn-noise: none;
- }
- @media (hover: none) {
- &:not(.btn-active, :active, :focus-visible, input:checked:not(.filter .btn)):hover {
- --btn-shadow: "";
- --btn-fg: var(--btn-color, var(--color-base-content));
- --btn-bg: var(--btn-color, var(--color-base-content));
- @supports (color: color-mix(in lab, red, red)) {
- --btn-bg: color-mix(
- in oklab,
- var(--btn-color, var(--color-base-content)) 8%,
- var(--color-base-100)
- );
- }
- --btn-border: var(--btn-color, var(--color-base-content));
- @supports (color: color-mix(in lab, red, red)) {
- --btn-border: color-mix(
- in oklab,
- var(--btn-color, var(--color-base-content)) 10%,
- var(--color-base-100)
- );
- }
- --btn-noise: none;
- }
- }
- }
- }
- .indicator-end {
- @layer daisyui.l1.l2 {
- --indicator-s: auto;
- --indicator-e: 0;
- --indicator-x: 50%;
- [dir="rtl"] & {
- --indicator-s: 0;
- --indicator-e: auto;
- --indicator-x: -50%;
- }
- }
- }
- .indicator-start {
- @layer daisyui.l1.l2 {
- --indicator-s: 0;
- --indicator-e: auto;
- --indicator-x: -50%;
- [dir="rtl"] & {
- --indicator-s: auto;
- --indicator-e: 0;
- --indicator-x: 50%;
- }
- }
- }
.btn-lg {
@layer daisyui.l1.l2 {
--fontsize: 1.125rem;
@@ -6805,20 +5588,6 @@
--size: calc(var(--size-field, 0.25rem) * 6);
}
}
- .indicator-bottom {
- @layer daisyui.l1.l2 {
- --indicator-t: auto;
- --indicator-b: 0;
- --indicator-y: 50%;
- }
- }
- .indicator-top {
- @layer daisyui.l1.l2 {
- --indicator-t: 0;
- --indicator-b: auto;
- --indicator-y: -50%;
- }
- }
.badge-accent {
@layer daisyui.l1.l2 {
--badge-color: var(--color-accent);
@@ -6831,54 +5600,12 @@
--badge-fg: var(--color-error-content);
}
}
- .badge-info {
- @layer daisyui.l1.l2 {
- --badge-color: var(--color-info);
- --badge-fg: var(--color-info-content);
- }
- }
.badge-primary {
@layer daisyui.l1.l2 {
--badge-color: var(--color-primary);
--badge-fg: var(--color-primary-content);
}
}
- .badge-secondary {
- @layer daisyui.l1.l2 {
- --badge-color: var(--color-secondary);
- --badge-fg: var(--color-secondary-content);
- }
- }
- .badge-success {
- @layer daisyui.l1.l2 {
- --badge-color: var(--color-success);
- --badge-fg: var(--color-success-content);
- }
- }
- .badge-warning {
- @layer daisyui.l1.l2 {
- --badge-color: var(--color-warning);
- --badge-fg: var(--color-warning-content);
- }
- }
- .btn-accent {
- @layer daisyui.l1.l2.l3 {
- --btn-color: var(--color-accent);
- --btn-fg: var(--color-accent-content);
- }
- }
- .btn-error {
- @layer daisyui.l1.l2.l3 {
- --btn-color: var(--color-error);
- --btn-fg: var(--color-error-content);
- }
- }
- .btn-info {
- @layer daisyui.l1.l2.l3 {
- --btn-color: var(--color-info);
- --btn-fg: var(--color-info-content);
- }
- }
.btn-neutral {
@layer daisyui.l1.l2.l3 {
--btn-color: var(--color-neutral);
@@ -6897,18 +5624,6 @@
--btn-fg: var(--color-secondary-content);
}
}
- .btn-success {
- @layer daisyui.l1.l2.l3 {
- --btn-color: var(--color-success);
- --btn-fg: var(--color-success-content);
- }
- }
- .btn-warning {
- @layer daisyui.l1.l2.l3 {
- --btn-color: var(--color-warning);
- --btn-fg: var(--color-warning-content);
- }
- }
.outline-none {
--tw-outline-style: none;
outline-style: none;
@@ -6917,13 +5632,6 @@
-webkit-user-select: none;
user-select: none;
}
- .input-accent {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-accent);
- }
- }
- }
.input-error {
@layer daisyui.l1.l2 {
&, &:focus, &:focus-within {
@@ -6931,20 +5639,6 @@
}
}
}
- .input-info {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-info);
- }
- }
- }
- .input-primary {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-primary);
- }
- }
- }
.input-secondary {
@layer daisyui.l1.l2 {
&, &:focus, &:focus-within {
@@ -6952,20 +5646,6 @@
}
}
}
- .input-success {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-success);
- }
- }
- }
- .input-warning {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-warning);
- }
- }
- }
.radio-accent {
@layer daisyui.l1.l2 {
--input-color: var(--color-accent);
@@ -6976,46 +5656,11 @@
--input-color: var(--color-error);
}
}
- .radio-info {
- @layer daisyui.l1.l2 {
- --input-color: var(--color-info);
- }
- }
- .radio-primary {
- @layer daisyui.l1.l2 {
- --input-color: var(--color-primary);
- }
- }
- .radio-secondary {
- @layer daisyui.l1.l2 {
- --input-color: var(--color-secondary);
- }
- }
- .radio-success {
- @layer daisyui.l1.l2 {
- --input-color: var(--color-success);
- }
- }
- .radio-warning {
- @layer daisyui.l1.l2 {
- --input-color: var(--color-warning);
- }
- }
.range-lg {
@layer daisyui.l1.l2 {
--range-thumb-size: calc(var(--size-selector, 0.25rem) * 7);
}
}
- .range-md {
- @layer daisyui.l1.l2 {
- --range-thumb-size: calc(var(--size-selector, 0.25rem) * 6);
- }
- }
- .range-sm {
- @layer daisyui.l1.l2 {
- --range-thumb-size: calc(var(--size-selector, 0.25rem) * 5);
- }
- }
.range-xs {
@layer daisyui.l1.l2 {
--range-thumb-size: calc(var(--size-selector, 0.25rem) * 4);
@@ -7024,13 +5669,6 @@
.ring-inset {
--tw-ring-inset: inset;
}
- .select-accent {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-accent);
- }
- }
- }
.select-error {
@layer daisyui.l1.l2 {
&, &:focus, &:focus-within {
@@ -7038,20 +5676,6 @@
}
}
}
- .select-info {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-info);
- }
- }
- }
- .select-primary {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-primary);
- }
- }
- }
.select-secondary {
@layer daisyui.l1.l2 {
&, &:focus, &:focus-within {
@@ -7059,20 +5683,6 @@
}
}
}
- .select-success {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-success);
- }
- }
- }
- .select-warning {
- @layer daisyui.l1.l2 {
- &, &:focus, &:focus-within {
- --input-color: var(--color-warning);
- }
- }
- }
.toggle-accent {
@layer daisyui.l1.l2 {
&:checked, &[aria-checked="true"] {
@@ -7080,20 +5690,6 @@
}
}
}
- .toggle-error {
- @layer daisyui.l1.l2 {
- &:checked, &[aria-checked="true"] {
- --input-color: var(--color-error);
- }
- }
- }
- .toggle-info {
- @layer daisyui.l1.l2 {
- &:checked, &[aria-checked="true"] {
- --input-color: var(--color-info);
- }
- }
- }
.toggle-lg {
@layer daisyui.l1.l2 {
&:is([type="checkbox"]), &:has([type="checkbox"]) {
@@ -7101,55 +5697,6 @@
}
}
}
- .toggle-md {
- @layer daisyui.l1.l2 {
- &:is([type="checkbox"]), &:has([type="checkbox"]) {
- --size: calc(var(--size-selector, 0.25rem) * 6);
- }
- }
- }
- .toggle-primary {
- @layer daisyui.l1.l2 {
- &:checked, &[aria-checked="true"] {
- --input-color: var(--color-primary);
- }
- }
- }
- .toggle-secondary {
- @layer daisyui.l1.l2 {
- &:checked, &[aria-checked="true"] {
- --input-color: var(--color-secondary);
- }
- }
- }
- .toggle-sm {
- @layer daisyui.l1.l2 {
- &:is([type="checkbox"]), &:has([type="checkbox"]) {
- --size: calc(var(--size-selector, 0.25rem) * 5);
- }
- }
- }
- .toggle-success {
- @layer daisyui.l1.l2 {
- &:checked, &[aria-checked="true"] {
- --input-color: var(--color-success);
- }
- }
- }
- .toggle-warning {
- @layer daisyui.l1.l2 {
- &:checked, &[aria-checked="true"] {
- --input-color: var(--color-warning);
- }
- }
- }
- .toggle-xs {
- @layer daisyui.l1.l2 {
- &:is([type="checkbox"]), &:has([type="checkbox"]) {
- --size: calc(var(--size-selector, 0.25rem) * 4);
- }
- }
- }
.group-hover\:translate-x-1 {
&:is(:where(.group):hover *) {
@media (hover: hover) {
@@ -7177,26 +5724,6 @@
}
}
}
- .hover\:scale-105 {
- &:hover {
- @media (hover: hover) {
- --tw-scale-x: 105%;
- --tw-scale-y: 105%;
- --tw-scale-z: 105%;
- scale: var(--tw-scale-x) var(--tw-scale-y);
- }
- }
- }
- .hover\:scale-110 {
- &:hover {
- @media (hover: hover) {
- --tw-scale-x: 110%;
- --tw-scale-y: 110%;
- --tw-scale-z: 110%;
- scale: var(--tw-scale-x) var(--tw-scale-y);
- }
- }
- }
.hover\:scale-125 {
&:hover {
@media (hover: hover) {
@@ -7271,16 +5798,6 @@
}
}
}
- .hover\:bg-white\/30 {
- &:hover {
- @media (hover: hover) {
- background-color: color-mix(in srgb, #fff 30%, transparent);
- @supports (color: color-mix(in lab, red, red)) {
- background-color: color-mix(in oklab, var(--color-white) 30%, transparent);
- }
- }
- }
- }
.hover\:text-base-content {
&:hover {
@media (hover: hover) {
@@ -7320,26 +5837,11 @@
width: calc(var(--spacing) * 64);
}
}
- .md\:w-auto {
- @media (width >= 48rem) {
- width: auto;
- }
- }
.md\:grid-cols-2 {
@media (width >= 48rem) {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
- .md\:grid-cols-3 {
- @media (width >= 48rem) {
- grid-template-columns: repeat(3, minmax(0, 1fr));
- }
- }
- .md\:grid-cols-4 {
- @media (width >= 48rem) {
- grid-template-columns: repeat(4, minmax(0, 1fr));
- }
- }
.md\:text-3xl {
@media (width >= 48rem) {
font-size: var(--text-3xl);
@@ -7357,21 +5859,6 @@
grid-column: span 2 / span 2;
}
}
- .lg\:block {
- @media (width >= 64rem) {
- display: block;
- }
- }
- .lg\:flex {
- @media (width >= 64rem) {
- display: flex;
- }
- }
- .lg\:hidden {
- @media (width >= 64rem) {
- display: none;
- }
- }
.lg\:grid-cols-3 {
@media (width >= 64rem) {
grid-template-columns: repeat(3, minmax(0, 1fr));
@@ -7382,30 +5869,34 @@
grid-template-columns: repeat(4, minmax(0, 1fr));
}
}
- .\[\&_br\]\:block {
- & br {
- display: block;
+ .\[\&_\.resizable-img-container\]\:hover\:border-primary {
+ & .resizable-img-container {
+ &:hover {
+ @media (hover: hover) {
+ border-color: var(--color-primary);
+ }
+ }
}
}
- .\[\&_br\]\:h-\[1em\] {
- & br {
- height: 1em;
+ .\[\&_blockquote\]\:border-l-4 {
+ & blockquote {
+ border-left-style: var(--tw-border-style);
+ border-left-width: 4px;
}
}
- .\[\&_br\]\:content-\[\'\'\] {
- & br {
- --tw-content: '';
- content: var(--tw-content);
+ .\[\&_blockquote\]\:border-base-300 {
+ & blockquote {
+ border-color: var(--color-base-300);
}
}
- .\[\&_div\]\:m-0 {
- & div {
- margin: calc(var(--spacing) * 0);
+ .\[\&_blockquote\]\:pl-4 {
+ & blockquote {
+ padding-left: calc(var(--spacing) * 4);
}
}
- .\[\&_li\]\:list-item {
- & li {
- display: list-item;
+ .\[\&_blockquote\]\:italic {
+ & blockquote {
+ font-style: italic;
}
}
.\[\&_ol\]\:list-decimal {
@@ -7413,14 +5904,9 @@
list-style-type: decimal;
}
}
- .\[\&_ol\]\:pl-6 {
+ .\[\&_ol\]\:pl-8 {
& ol {
- padding-left: calc(var(--spacing) * 6);
- }
- }
- .\[\&_p\]\:m-0 {
- & p {
- margin: calc(var(--spacing) * 0);
+ padding-left: calc(var(--spacing) * 8);
}
}
.\[\&_ul\]\:list-disc {
@@ -7428,9 +5914,24 @@
list-style-type: disc;
}
}
- .\[\&_ul\]\:pl-6 {
+ .\[\&_ul\]\:pl-8 {
& ul {
- padding-left: calc(var(--spacing) * 6);
+ padding-left: calc(var(--spacing) * 8);
+ }
+ }
+ .\[\&\>div\]\:m-0 {
+ &>div {
+ margin: calc(var(--spacing) * 0);
+ }
+ }
+ .\[\&\>div\]\:min-h-\[1em\] {
+ &>div {
+ min-height: 1em;
+ }
+ }
+ .\[\&\>p\]\:m-0 {
+ &>p {
+ margin: calc(var(--spacing) * 0);
}
}
}
@@ -7903,26 +6404,6 @@
inherits: false;
initial-value: 1;
}
-@property --tw-rotate-x {
- syntax: "*";
- inherits: false;
-}
-@property --tw-rotate-y {
- syntax: "*";
- inherits: false;
-}
-@property --tw-rotate-z {
- syntax: "*";
- inherits: false;
-}
-@property --tw-skew-x {
- syntax: "*";
- inherits: false;
-}
-@property --tw-skew-y {
- syntax: "*";
- inherits: false;
-}
@property --tw-space-y-reverse {
syntax: "*";
inherits: false;
@@ -8128,11 +6609,6 @@
--tw-scale-x: 1;
--tw-scale-y: 1;
--tw-scale-z: 1;
- --tw-rotate-x: initial;
- --tw-rotate-y: initial;
- --tw-rotate-z: initial;
- --tw-skew-x: initial;
- --tw-skew-y: initial;
--tw-space-y-reverse: 0;
--tw-border-style: solid;
--tw-gradient-position: initial;
diff --git a/dist/sigpro-ui.esm.js b/dist/sigpro-ui.esm.js
index 00a726e..1d4bf17 100644
--- a/dist/sigpro-ui.esm.js
+++ b/dist/sigpro-ui.esm.js
@@ -16,12 +16,14 @@ var __export = (target, all) => {
// components/All.js
var exports_All = {};
__export(exports_All, {
+ rand: () => rand,
listKey: () => listKey,
isFn: () => isFn,
getBy: () => getBy,
get: () => get,
filterBy: () => filterBy,
cls: () => cls,
+ close: () => close,
Tooltip: () => Tooltip,
Toggle: () => Toggle,
Toast: () => Toast,
@@ -46,6 +48,7 @@ __export(exports_All, {
Modal: () => Modal,
Menu: () => Menu,
Loading: () => Loading,
+ List: () => List,
Kbd: () => Kbd,
Input: () => Input,
Indicator: () => Indicator,
@@ -66,9 +69,6 @@ __export(exports_All, {
Chat: () => Chat,
CarouselItem: () => CarouselItem,
Carousel: () => Carousel,
- CardTitle: () => CardTitle,
- CardBody: () => CardBody,
- CardActions: () => CardActions,
Card: () => Card,
Calendar: () => Calendar,
Button: () => Button,
@@ -436,7 +436,7 @@ var K = (e, o, n) => {
return R(() => (y(e) ? e() : e) || [], (t) => {
let r = new Map, l = [], u = t || [];
for (let f = 0;f < u.length; f++) {
- let h = u[f], d = n ? n(h, f) : h?.id ?? f, m = c.get(d);
+ let h = u[f], d = n ? h?.[n] ?? f : h?.id ?? f, m = c.get(d);
if (!m)
m = j(() => o(h, f));
else
@@ -515,14 +515,9 @@ var get = (val) => typeof val === "function" ? val() : val;
var getBy = (item, field = "label") => item && typeof item === "object" ? item[field] : item;
var cls = (...classes) => classes.filter(Boolean).join(" ").trim();
var isFn = (f) => typeof f === "function";
-var filterBy = (items, query, field = "label") => {
- const searchTerm = String(query).toLowerCase();
- const list = get(items);
- return !searchTerm ? list : list.filter((item) => {
- const text = item && typeof item === "object" ? item[field] : item;
- return String(text).toLowerCase().includes(searchTerm);
- });
-};
+var filterBy = (items, query, field = "label", q2 = String(query).toLowerCase()) => !query ? get(items) : get(items).filter((item) => String(item && typeof item === "object" ? item[field] : item).toLowerCase().includes(q2));
+var rand = (r) => `${r}-${Math.random().toString(36).slice(2, 9)}`;
+var close = () => document.activeElement?.blur();
var listKey = (items, isOpen) => {
const cursor = S(-1);
R(() => {
@@ -538,202 +533,17 @@ var listKey = (items, isOpen) => {
};
return { cursor, onKey };
};
-var Alert = (p2, c) => O("div", { ...p2, class: cls("alert", p2.class) }, c);
-var Badge = (p2, c) => O("span", { ...p2, class: cls("badge", p2.class) }, c);
-var Button = (p2, c) => O("button", { ...p2, class: cls("btn", p2.class) }, c);
-var Card = (p2, c) => O("div", { ...p2, class: cls("card", p2.class) }, c);
-var CardTitle = (p2, c) => O("div", { ...p2, class: cls("card-title", p2.class) }, c);
-var CardBody = (p2, c) => O("div", { ...p2, class: cls("card-body", p2.class) }, c);
-var CardActions = (p2, c) => O("div", { ...p2, class: cls("card-actions", p2.class) }, c);
-var Carousel = (p2, c) => O("div", { ...p2, class: cls("carousel", p2.class) }, c);
-var CarouselItem = (p2, c) => O("div", { ...p2, class: cls("carousel-item", p2.class) }, c);
-var Chat = (p2, c) => O("div", { ...p2, class: cls("chat", p2.class) }, c);
-var ChatBubble = (p2, c) => O("div", { ...p2, class: cls("chat-bubble", p2.class) }, c);
-var ChatFooter = (p2, c) => O("div", { ...p2, class: cls("chat-footer", p2.class) }, c);
-var ChatHeader = (p2, c) => O("div", { ...p2, class: cls("chat-header", p2.class) }, c);
-var ChatImage = (p2, c) => O("div", { ...p2, class: cls("chat-image avatar", p2.class) }, O("div", { class: "w-10 rounded-full" }, typeof c === "string" ? O("img", { src: c, alt: "avatar" }) : c));
-var Checkbox = (p2) => O("input", { ...p2, type: "checkbox", class: cls("checkbox", p2.class) });
-var Divider = (p2) => O("div", { ...p2, class: cls("divider", p2.class) });
-var Fab = (p2, c) => O("div", { ...p2, class: cls("fab", p2.class) }, c);
-var Fieldset = (p2, c) => O("fieldset", { ...p2, class: cls("fieldset", p2.class) }, [p2.legend && O("legend", { class: "fieldset-legend" }, p2.legend), c]);
-var Icon = (p2) => O("span", { class: p2.startsWith("icon-") ? p2 : "" }, p2.startsWith("icon-") ? null : p2);
-var Indicator = (p2, c) => O("div", { ...p2, class: cls("indicator", p2.class) }, [p2.value && O("span", { class: cls("indicator-item badge", p2.class) }, p2.value), c]);
-var Kbd = (p2, c) => O("kbd", { ...p2, class: cls("kbd", p2.class) }, c);
-var Loading = (p2, c) => O("span", { ...p2, class: cls("loading loading-spinner", p2.class) }, c);
-var Navbar = (p2, c) => O("div", { ...p2, class: cls("navbar", p2.class) }, c);
-var Progress = (p2) => O("progress", { ...p2, class: cls("progress", p2.class) });
-var Radial = (p2, c) => O("div", { ...p2, class: cls("radial-progress", p2.class), style: `--value:${p2.value ?? 0};${p2.style ?? ""}`, role: "progressbar", "aria-valuenow": p2.value ?? 0 }, c ?? `${p2.value ?? 0}%`);
-var Radio = (p2) => O("input", { ...p2, type: "radio", class: cls("radio", p2.class) });
-var Range = (p2) => O("input", { ...p2, type: "range", class: cls("range", p2.class) });
-var Skeleton = (p2) => O("div", { ...p2, class: cls("skeleton", p2.class) });
-var SkeletonText = (p2) => O("span", { ...p2, class: cls("skeleton skeleton-text", p2.class) });
-var Stack = (p2, c) => O("div", { ...p2, class: cls("stack", p2.class) }, c);
-var Steps = (p2, c) => O("ul", { ...p2, class: cls("steps", p2.class) }, c);
-var Step = (p2, c) => O("li", { ...p2, class: cls("step", p2.class), "data-content": p2.dataContent }, c);
-var Swap = (p2) => O("label", { ...p2, class: cls("swap", p2.class) }, [
- O("input", { type: "checkbox", checked: () => get(p2.value), onchange: (e) => isFn(p2.value) && p2.value(e.target.checked) }),
- O("div", { class: "swap-on" }, p2.on),
- O("div", { class: "swap-off" }, p2.off)
-]);
-var Textarea = (p2) => O("textarea", { ...p2, class: cls("textarea", p2.class) });
-var TextRotate = (p2) => {
- const words = Array.isArray(p2.words) ? p2.words : typeof p2.words === "string" ? p2.words.split(",") : [];
- return O("span", { ...p2, class: cls("text-rotate", p2.class) }, O("span", {}, words.map((w2) => O("span", {}, w2))));
-};
-var Timeline = (p2, c) => O("ul", {
- ...p2,
- class: cls("timeline", p2.vertical !== false ? "timeline-vertical" : "timeline-horizontal", p2.compact ? "timeline-compact" : "", p2.class)
-}, c);
-var Toggle = (p2) => O("input", { ...p2, type: "checkbox", class: cls("toggle", p2.class) });
-var Tooltip = (p2, c) => O("div", { ...p2, class: cls("tooltip", p2.class), "data-tip": p2.tip }, c);
var Accordion = (p2) => {
- const name = p2.name || `acc-${Math.random().toString(36).slice(2)}`;
- const base = cls("collapse", p2.variant && `collapse-${p2.variant}`, p2.class);
- const itemFn = (it) => {
- const t = getBy(it, "title");
- const c = it.content;
- return p2.type === "details" ? O("details", { class: base, name, open: it.open || undefined }, O("summary", { class: "collapse-title font-semibold" }, t), c ? O("div", { class: "collapse-content text-sm" }, c) : null) : O("div", { class: base }, O("input", { type: "radio", name, checked: it.open || undefined }), O("div", { class: "collapse-title font-semibold" }, t), c ? O("div", { class: "collapse-content text-sm" }, c) : null);
- };
- return isFn(p2.items) ? K(p2.items, itemFn, (it, i) => it?.id ?? i) : (p2.items || []).map(itemFn);
-};
-var Table = (p2) => {
- if (p2.children !== undefined)
- return O("table", { class: cls("table", p2.class), ...p2 }, p2.children);
- const { items, columns = [], header = true, keyFn, ...rest } = p2;
- const hd = header !== false && columns.some((c) => c.label) ? O("thead", {}, O("tr", {}, columns.map((c) => O("th", { class: c.class }, c.label)))) : null;
- const bd = O("tbody", {}, K(() => get(items) || [], (it, idx) => O("tr", {}, columns.map((c) => {
- const v2 = c.render ? c.render(it, idx) : it[c.key];
- return O("td", { class: c.class }, v2);
- })), keyFn || ((it, idx) => it?.id ?? idx)));
- return O("table", { class: cls("table", rest.class), ...rest }, [hd, bd]);
-};
-var Tabs = (p2) => {
- if (p2.children !== undefined)
- return O("div", { class: cls("tabs", p2.class), ...p2 }, p2.children);
- const { items, activeIndex, onClose, ...rest } = p2;
- const closeHandler = onClose || (isFn(items) ? (idx) => {
- const arr = get(items);
- const newArr = arr.filter((_2, i) => i !== idx);
- items(newArr);
- if (activeIndex() >= newArr.length)
- activeIndex(Math.max(0, newArr.length - 1));
- } : null);
- return O("div", { class: cls("tabs", p2.class), ...rest }, K(() => get(items) || [], (it, idx) => {
- const act = () => activeIndex() === idx;
- return [
- O("a", {
- role: "tab",
- class: () => `tab ${act() ? "tab-active" : ""} ${it.class || ""}`,
- onclick: (e) => {
- e.preventDefault();
- activeIndex(idx);
- it.onclick?.(e);
- }
- }, getBy(it), it.closable ? O("span", {
- class: "icon-[lucide--x] w-3.5 h-3.5 ml-2 cursor-pointer hover:opacity-70",
- onclick: (e) => {
- e.stopPropagation();
- closeHandler?.(idx);
- }
- }) : null),
- O("div", {
- class: `tab-content ${it.contentClass || ""}`,
- style: () => `display: ${act() ? "block" : "none"};`
- }, isFn(it.content) ? it.content() : it.content)
- ];
- }, (it, idx) => it.id ?? idx));
-};
-var Rating = (p2) => {
- const name = `rating-${Math.random().toString(36).slice(2, 7)}`;
- const stars = p2.children ?? Array.from({ length: p2.count || 5 }, (_2, i) => {
- const v2 = i + 1;
- return O("input", {
- type: "radio",
- name,
- class: cls("mask", p2.mask || "mask-star"),
- checked: () => get(p2.value) === v2,
- onchange: () => isFn(p2.value) ? p2.value(v2) : p2.onchange?.(v2)
- });
+ const name = p2.name || rand("acc");
+ return K(p2.items, (it) => {
+ return O("div", { class: cls("collapse", p2.class) }, [
+ O("input", { type: "radio", name, checked: it.open || undefined }),
+ it.title ? O("div", { class: cls("collapse-title", `${it.classTitle ?? " font-semibold"}`) }, it.title) : null,
+ it.content ? O("div", { class: cls("collapse-content text-sm", `${it.classContent ?? " font-semibold"}`) }, it.content) : null
+ ]);
});
- return O("div", { class: cls("rating", p2.class), ...p2 }, stars);
-};
-var Menu = (p2) => {
- if (p2.children !== undefined)
- return O("ul", { class: cls("menu", p2.class), ...p2 }, p2.children);
- const { items, keyFn = (it, idx) => it?.id ?? idx, ...rest } = p2;
- const render = (item) => item.children ? O("li", {}, O("details", {}, O("summary", {}, getBy(item)), O("ul", {}, Menu({ items: item.children })))) : O("li", {}, O("a", {
- href: item.href,
- onclick: item.onclick ? (e) => {
- if (!item.href)
- e.preventDefault();
- item.onclick(e);
- } : null
- }, getBy(item)));
- return O("ul", { class: cls("menu", rest.class), ...rest }, K(() => get(items) || [], render, keyFn));
-};
-var Drawer = (p2, c) => {
- const id = p2.id || `drawer-${Math.random().toString(36).slice(2, 9)}`;
- return O("div", { class: cls("drawer", p2.class) }, [
- O("input", {
- id,
- type: "checkbox",
- class: "drawer-toggle",
- checked: () => get(p2.open),
- onchange: (e) => isFn(p2.open) && p2.open(e.target.checked)
- }),
- O("div", { class: "drawer-content" }, c),
- O("div", { class: "drawer-side" }, [
- O("label", {
- for: id,
- class: "drawer-overlay",
- onclick: () => isFn(p2.open) && p2.open(false)
- }),
- O("div", { class: "min-h-full bg-base-200 w-80 p-4" }, () => get(p2.side))
- ])
- ]);
-};
-var Dropdown = (p2, c) => {
- const { trigger, items, ...rest } = p2;
- const content = c || (items ? O("ul", {
- class: "menu dropdown-content bg-base-100 rounded-box z-[1] w-52 p-2 shadow"
- }, K(() => get(items) || [], (item) => O("li", {}, O("a", {
- onclick: (e) => {
- item.onclick?.(e);
- e.currentTarget.closest("details").open = false;
- }
- }, getBy(item))), (it, idx) => it.id ?? idx)) : null);
- return O("details", { class: cls("dropdown", rest.class), ...rest }, [
- O("summary", { class: "btn m-1" }, trigger || "Dropdown"),
- content
- ]);
-};
-var Select = (p2, c) => {
- if (c !== undefined)
- return O("select", { class: cls("select", p2.class), ...p2 }, c);
- const { label, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p2;
- const opts = () => {
- const raw = get(items) || [];
- const ph = placeholder ? [{ disabled: placeholderDisabled, label: placeholder, value: "" }] : [];
- return [...ph, ...raw];
- };
- return O("label", { class: float ? "floating-label" : "" }, [
- float && O("span", {}, label),
- O("label", { class: cls("select", rest.class) }, [
- label && !float && O("span", { class: "label" }, label),
- left ?? null,
- O("select", {
- value: () => get(value),
- onchange: (e) => isFn(value) ? value(e.target.value) : rest.onchange?.(e)
- }, K(opts, (item) => {
- const val = getBy(item, item.value !== undefined ? "value" : undefined);
- const lab = getBy(item, "label");
- return O("option", { value: val, disabled: item.disabled || undefined }, lab);
- }, (it, i) => it?.id ?? (typeof it === "string" ? it : it.value) ?? i)),
- right ?? null
- ]),
- hint && O("div", { class: "validator-hint" }, hint)
- ]);
};
+var Alert = (p2, c) => O("div", { ...p2, class: cls("alert", p2.class) }, c);
var Autocomplete = ({ items, value, onselect, placeholder = "Buscar...", ...props }) => {
const query = S(get(value) || "");
const isOpen = S(false);
@@ -780,42 +590,121 @@ var Autocomplete = ({ items, value, onselect, placeholder = "Buscar...", ...prop
])))
]);
};
-var Input = (p2) => {
- const { label, icon, float, placeholder, value, left, right, rule, hint, content, ...rest } = p2;
- const showPassword = S(false);
- const isFocused = S(false);
- const isPassword = p2.type === "password";
- const pattern = rule ?? null;
- const inputType = () => isPassword ? get(showPassword) ? "text" : "password" : p2.type || "text";
- return O("div", {
- class: "input-container",
- onfocusin: () => isFocused(true),
- onfocusout: (e) => {
- if (!e.currentTarget.contains(e.relatedTarget)) {
- isFocused(false);
+var Badge = (p2, c) => O("span", { ...p2, class: cls("badge", p2.class) }, c);
+var Button = (p2, c) => O("button", { ...p2, class: cls("btn", p2.class) }, c);
+var Calendar = (p2) => {
+ const internalDate = S(new Date);
+ const hoverDate = S(null);
+ const startHour = S(0);
+ const endHour = S(0);
+ const now = new Date;
+ const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`;
+ const fmt = (d) => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`;
+ const rangeMode = () => get(p2.range) === true;
+ const current = () => get(p2.value);
+ const selectDate = (date) => {
+ const s = fmt(date);
+ const v2 = current();
+ if (rangeMode()) {
+ if (!v2?.start || v2.start && v2.end) {
+ p2.onChange?.({ start: s, end: null, ...p2.hour && { startHour: startHour() } });
+ } else {
+ const start = v2.start;
+ const nv = s < start ? { start: s, end: start } : { start, end: s };
+ if (p2.hour) {
+ nv.startHour = v2.startHour ?? startHour();
+ nv.endHour = endHour();
+ }
+ p2.onChange?.(nv);
}
+ } else {
+ p2.onChange?.(p2.hour ? `${s}T${String(startHour()).padStart(2, "0")}:00:00` : s);
}
- }, [
- O("label", { class: float ? "floating-label" : "" }, [
- float ? O("span", {}, label) : null,
- O("label", { pattern, class: () => cls("input validator", p2.class) }, [
- label && !float ? O("span", { class: "label" }, label) : null,
- left ?? null,
- O("input", { ...rest, type: inputType, class: "grow", pattern, placeholder: placeholder || label || " ", value }),
- right ?? null,
- isPassword ? O("label", { class: "swap swap-rotate ml-2" }, [
- O("input", { type: "checkbox", onchange: (e) => showPassword(e.target.checked) }),
- O("span", { class: "swap-on icon-[lucide--eye]" }),
- O("span", { class: "swap-off icon-[lucide--eye-off]" })
- ]) : null
- ]),
- hint ? O("div", { class: "validator-hint" }, hint) : null,
- z(isFocused, () => G({ duration: 300, slide: true }, O("div", { class: "input-content", onmousedown: (e) => e.preventDefault() }, [
- isFn(content) ? content(isFocused) : content
- ])))
+ };
+ const move = (m) => {
+ const d = internalDate();
+ internalDate(new Date(d.getFullYear(), d.getMonth() + m, 1));
+ };
+ const moveYear = (y2) => {
+ const d = internalDate();
+ internalDate(new Date(d.getFullYear() + y2, d.getMonth(), 1));
+ };
+ const HourSlider = ({ value: hVal, onChange: onH }) => O("div", { class: "flex-1" }, [
+ O("div", { class: "flex gap-2 items-center" }, [
+ O("input", { type: "range", min: 0, max: 23, value: hVal, class: "range range-xs flex-1", oninput: (e) => onH(+e.target.value) }),
+ O("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(get(hVal)).padStart(2, "0") + ":00")
])
]);
+ return O("div", { class: cls("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none", p2.class) }, [
+ O("div", { class: "flex justify-between items-center mb-4 gap-1" }, [
+ O("div", { class: "flex gap-0.5" }, [
+ O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, O("span", { class: "icon-[lucide--chevrons-left]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, O("span", { class: "icon-[lucide--chevron-left]" }))
+ ]),
+ O("span", { class: "font-bold uppercase flex-1 text-center" }, () => internalDate().toLocaleString("es-ES", { month: "short", year: "numeric" })),
+ O("div", { class: "flex gap-0.5" }, [
+ O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, O("span", { class: "icon-[lucide--chevron-right]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, O("span", { class: "icon-[lucide--chevrons-right]" }))
+ ])
+ ]),
+ O("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [
+ ...["L", "M", "X", "J", "V", "S", "D"].map((d) => O("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d)),
+ () => {
+ const d = internalDate(), y2 = d.getFullYear(), m = d.getMonth();
+ const firstDay = new Date(y2, m, 1).getDay();
+ const offset = firstDay === 0 ? 6 : firstDay - 1;
+ const dim = new Date(y2, m + 1, 0).getDate();
+ const cells = [];
+ for (let i = 0;i < offset; i++)
+ cells.push(O("div"));
+ for (let i = 1;i <= dim; i++) {
+ const date = new Date(y2, m, i), ds = fmt(date);
+ cells.push(O("button", {
+ type: "button",
+ class: () => {
+ const v2 = current(), h = hoverDate();
+ const isStart = typeof v2 === "string" ? v2.split("T")[0] === ds : v2?.start === ds;
+ const isEnd = v2?.end === ds;
+ let inRange = false;
+ if (rangeMode() && v2?.start) {
+ const start = v2.start;
+ if (!v2.end && h)
+ inRange = ds > start && ds <= h || ds < start && ds >= h;
+ else if (v2.end)
+ inRange = ds > start && ds < v2.end;
+ }
+ const base = "btn btn-xs p-0 aspect-square min-h-0 h-auto font-normal relative";
+ const st = isStart || isEnd ? "btn-primary z-10" : inRange ? "bg-primary/20 border-none rounded-none" : "btn-ghost";
+ const today = ds === todayStr ? "ring-1 ring-primary ring-inset font-black text-primary" : "";
+ return cls(base, st, today);
+ },
+ onmouseenter: () => rangeMode() && hoverDate(ds),
+ onclick: () => selectDate(date)
+ }, i.toString()));
+ }
+ return cells;
+ }
+ ]),
+ p2.hour ? O("div", { class: "mt-3 pt-2 border-t border-base-300" }, rangeMode() ? O("div", { class: "flex gap-4" }, [HourSlider({ value: startHour, onChange: (h) => startHour(h) }), HourSlider({ value: endHour, onChange: (h) => endHour(h) })]) : HourSlider({ value: startHour, onChange: (h) => startHour(h) })) : null
+ ]);
};
+var Card = (p2, c) => {
+ if (!p2.title && !p2.body && !p2.actions && !c)
+ return O("div", { ...p2, class: cls("card", p2.class) }, c);
+ return O("div", { ...p2, class: cls("card", p2.class) }, [
+ p2.title && O("div", { class: cls("card-title", p2.titleClass) }, p2.title),
+ (p2.body || c) && O("div", { class: cls("card-body", p2.bodyClass) }, p2.body || c),
+ p2.actions && O("div", { class: cls("card-actions", p2.actionsClass) }, p2.actions)
+ ].filter(Boolean));
+};
+var Carousel = (p2, c) => O("div", { ...p2, class: cls("carousel", p2.class) }, c);
+var CarouselItem = (p2, c) => O("div", { ...p2, class: cls("carousel-item", p2.class) }, c);
+var Chat = (p2, c) => O("div", { ...p2, class: cls("chat", p2.class) }, c);
+var ChatBubble = (p2, c) => O("div", { ...p2, class: cls("chat-bubble", p2.class) }, c);
+var ChatFooter = (p2, c) => O("div", { ...p2, class: cls("chat-footer", p2.class) }, c);
+var ChatHeader = (p2, c) => O("div", { ...p2, class: cls("chat-header", p2.class) }, c);
+var ChatImage = (p2, c) => O("div", { ...p2, class: cls("chat-image avatar", p2.class) }, O("div", { class: "w-10 rounded-full" }, typeof c === "string" ? O("img", { src: c, alt: "avatar" }) : c));
+var Checkbox = (p2) => O("input", { ...p2, type: "checkbox", class: cls("checkbox", p2.class) });
var Colorpicker = (p2) => {
const isOpen = S(false);
const current = () => get(p2.value) || "#000000";
@@ -918,102 +807,6 @@ var Colorpicker = (p2) => {
])
]);
};
-var Calendar = (p2) => {
- const internalDate = S(new Date);
- const hoverDate = S(null);
- const startHour = S(0);
- const endHour = S(0);
- const now = new Date;
- const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`;
- const fmt = (d) => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`;
- const rangeMode = () => get(p2.range) === true;
- const current = () => get(p2.value);
- const selectDate = (date) => {
- const s = fmt(date);
- const v2 = current();
- if (rangeMode()) {
- if (!v2?.start || v2.start && v2.end) {
- p2.onChange?.({ start: s, end: null, ...p2.hour && { startHour: startHour() } });
- } else {
- const start = v2.start;
- const nv = s < start ? { start: s, end: start } : { start, end: s };
- if (p2.hour) {
- nv.startHour = v2.startHour ?? startHour();
- nv.endHour = endHour();
- }
- p2.onChange?.(nv);
- }
- } else {
- p2.onChange?.(p2.hour ? `${s}T${String(startHour()).padStart(2, "0")}:00:00` : s);
- }
- };
- const move = (m) => {
- const d = internalDate();
- internalDate(new Date(d.getFullYear(), d.getMonth() + m, 1));
- };
- const moveYear = (y2) => {
- const d = internalDate();
- internalDate(new Date(d.getFullYear() + y2, d.getMonth(), 1));
- };
- const HourSlider = ({ value: hVal, onChange: onH }) => O("div", { class: "flex-1" }, [
- O("div", { class: "flex gap-2 items-center" }, [
- O("input", { type: "range", min: 0, max: 23, value: hVal, class: "range range-xs flex-1", oninput: (e) => onH(+e.target.value) }),
- O("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(get(hVal)).padStart(2, "0") + ":00")
- ])
- ]);
- return O("div", { class: cls("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none", p2.class) }, [
- O("div", { class: "flex justify-between items-center mb-4 gap-1" }, [
- O("div", { class: "flex gap-0.5" }, [
- O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, O("span", { class: "icon-[lucide--chevrons-left]" })),
- O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, O("span", { class: "icon-[lucide--chevron-left]" }))
- ]),
- O("span", { class: "font-bold uppercase flex-1 text-center" }, () => internalDate().toLocaleString("es-ES", { month: "short", year: "numeric" })),
- O("div", { class: "flex gap-0.5" }, [
- O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, O("span", { class: "icon-[lucide--chevron-right]" })),
- O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, O("span", { class: "icon-[lucide--chevrons-right]" }))
- ])
- ]),
- O("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [
- ...["L", "M", "X", "J", "V", "S", "D"].map((d) => O("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d)),
- () => {
- const d = internalDate(), y2 = d.getFullYear(), m = d.getMonth();
- const firstDay = new Date(y2, m, 1).getDay();
- const offset = firstDay === 0 ? 6 : firstDay - 1;
- const dim = new Date(y2, m + 1, 0).getDate();
- const cells = [];
- for (let i = 0;i < offset; i++)
- cells.push(O("div"));
- for (let i = 1;i <= dim; i++) {
- const date = new Date(y2, m, i), ds = fmt(date);
- cells.push(O("button", {
- type: "button",
- class: () => {
- const v2 = current(), h = hoverDate();
- const isStart = typeof v2 === "string" ? v2.split("T")[0] === ds : v2?.start === ds;
- const isEnd = v2?.end === ds;
- let inRange = false;
- if (rangeMode() && v2?.start) {
- const start = v2.start;
- if (!v2.end && h)
- inRange = ds > start && ds <= h || ds < start && ds >= h;
- else if (v2.end)
- inRange = ds > start && ds < v2.end;
- }
- const base = "btn btn-xs p-0 aspect-square min-h-0 h-auto font-normal relative";
- const st = isStart || isEnd ? "btn-primary z-10" : inRange ? "bg-primary/20 border-none rounded-none" : "btn-ghost";
- const today = ds === todayStr ? "ring-1 ring-primary ring-inset font-black text-primary" : "";
- return cls(base, st, today);
- },
- onmouseenter: () => rangeMode() && hoverDate(ds),
- onclick: () => selectDate(date)
- }, i.toString()));
- }
- return cells;
- }
- ]),
- p2.hour ? O("div", { class: "mt-3 pt-2 border-t border-base-300" }, rangeMode() ? O("div", { class: "flex gap-4" }, [HourSlider({ value: startHour, onChange: (h) => startHour(h) }), HourSlider({ value: endHour, onChange: (h) => endHour(h) })]) : HourSlider({ value: startHour, onChange: (h) => startHour(h) })) : null
- ]);
-};
var Datepicker = (p2) => {
const isOpen = S(false);
const displayValue = S("");
@@ -1064,6 +857,23 @@ var Datepicker = (p2) => {
])
]);
};
+var Drawer = (p2, c) => {
+ const id = p2.id || rand("drawer");
+ return O("div", { class: cls("drawer", p2.class) }, [
+ O("input", { id, type: "checkbox", class: "drawer-toggle", checked: () => get(p2.open), onchange: (e) => isFn(p2.open) && p2.open(e.target.checked) }),
+ O("div", { class: "drawer-side" }, [O("label", { for: id, class: "drawer-overlay", onclick: () => isFn(p2.open) && p2.open(false) }), O("div", { class: "min-h-full bg-base-200 w-80 p-4" }, () => get(p2.side))]),
+ O("div", { class: "drawer-content" }, c)
+ ]);
+};
+var Divider = (p2) => O("div", { ...p2, class: cls("divider", p2.class) });
+var Dropdown = (p2, c) => {
+ return O("div", { ...p2, class: cls("dropdown", p2.class) }, [
+ O("div", { tabindex: "0", role: "button", class: cls("btn", p2.buttonClass) }, p2.label),
+ O("div", { tabindex: "-1", class: "dropdown-content" }, c)
+ ]);
+};
+var Fab = (p2, c) => O("div", { class: "fab" }, [O("div", { tabindex: "0", role: "button", class: cls("btn", p2.class) }, Icon(p2.icon)), c]);
+var Fieldset = (p2, c) => O("fieldset", { class: cls("fieldset", p2.class) }, [O("legend", { class: "fieldset-legend" }, p2.label), c]);
var Fileinput = (p2) => {
const files = S([]);
const drag = S(false);
@@ -1133,9 +943,217 @@ var Fileinput = (p2) => {
remove(idx);
}
}, O("span", { class: "icon-[lucide--x]" }))
- ]), (file) => file.name + file.lastModified)))
+ ]))))
]);
};
+var Icon = (p2) => O("span", { class: p2.startsWith("icon-") ? p2 : "" }, p2.startsWith("icon-") ? null : p2);
+var Indicator = (p2, c) => O("div", { ...p2, class: cls("indicator", p2.class) }, [p2.value && O("span", { class: cls("indicator-item badge", p2.class) }, p2.value), c]);
+var Input = (p2) => {
+ const { label, icon, float, placeholder, value, left, right, rule, hint, content, ...rest } = p2;
+ const showPassword = S(false);
+ const isFocused = S(false);
+ const isPassword = p2.type === "password";
+ const pattern = rule ?? null;
+ const inputType = () => isPassword ? get(showPassword) ? "text" : "password" : p2.type || "text";
+ return O("div", {
+ class: "input-container",
+ onfocusin: () => isFocused(true),
+ onfocusout: (e) => {
+ if (!e.currentTarget.contains(e.relatedTarget)) {
+ isFocused(false);
+ }
+ }
+ }, [
+ O("label", { class: float ? "floating-label" : "" }, [
+ float ? O("span", {}, label) : null,
+ O("label", { pattern, class: () => cls("input validator", p2.class) }, [
+ label && !float ? O("span", { class: "label" }, label) : null,
+ left ?? null,
+ O("input", { ...rest, type: inputType, class: "grow", pattern, placeholder: placeholder || label || " ", value }),
+ right ?? null,
+ isPassword ? O("label", { class: "swap swap-rotate ml-2" }, [
+ O("input", { type: "checkbox", onchange: (e) => showPassword(e.target.checked) }),
+ O("span", { class: "swap-on icon-[lucide--eye]" }),
+ O("span", { class: "swap-off icon-[lucide--eye-off]" })
+ ]) : null
+ ]),
+ hint ? O("div", { class: "validator-hint" }, hint) : null,
+ z(isFocused, () => G({ duration: 300, slide: true }, O("div", { class: "input-content", onmousedown: (e) => e.preventDefault() }, [
+ isFn(content) ? content(isFocused) : content
+ ])))
+ ])
+ ]);
+};
+var Kbd = (p2, c) => O("kbd", { ...p2, class: cls("kbd", p2.class) }, c);
+var List = (p2, c) => {
+ if (!p2.items)
+ return O("ul", { ...p2, class: cls("list", p2.class) }, c);
+ return O("ul", { ...p2, class: cls("list", p2.class) }, [
+ K(p2.items, (item, i) => O("li", { class: cls("list-row", item.class) }, typeof p2.render === "function" ? p2.render(item, i) : item), p2.key)
+ ]);
+};
+var Loading = (p2, c) => O("span", { ...p2, class: cls("loading loading-spinner", p2.class) }, c);
+var Menu = (p2) => {
+ if (p2.children !== undefined)
+ return O("ul", { class: cls("menu", p2.class), ...p2 }, p2.children);
+ const { items } = p2;
+ const render = (item) => item.children ? O("li", {}, O("details", { open: item.open || undefined }, [
+ O("summary", {}, getBy(item)),
+ O("ul", {}, K(() => get(item.children) || [], render))
+ ])) : O("li", {}, O("a", {
+ href: item.href,
+ onclick: item.onclick ? (e) => {
+ if (!item.href)
+ e.preventDefault();
+ item.onclick(e);
+ } : null
+ }, getBy(item)));
+ return O("ul", { class: cls("menu", p2.class) }, K(() => get(items) || [], render));
+};
+var Modal = (p2) => {
+ let dialogRef = null;
+ R(() => {
+ const isOpen = get(p2.open);
+ if (!dialogRef)
+ return;
+ isOpen ? dialogRef.showModal() : dialogRef.close();
+ });
+ const close2 = () => isFn(p2.open) && p2.open(false);
+ return O("dialog", {
+ ...p2,
+ ref: (el) => dialogRef = el,
+ class: cls("modal", p2.class),
+ onclose: close2,
+ oncancel: close2
+ }, [
+ O("div", { class: "modal-box" }, [
+ p2.title && O("h3", { class: "text-lg font-bold" }, p2.title),
+ p2.children,
+ O("div", { class: "modal-action" }, [
+ p2.actions || Button({ class: "btn", onclick: close2 }, "Cerrar")
+ ])
+ ]),
+ O("form", { method: "dialog", class: "modal-backdrop" }, [
+ O("button", {}, "close")
+ ])
+ ]);
+};
+var Navbar = (p2, c) => O("div", { ...p2, class: cls("navbar", p2.class) }, c);
+var Progress = (p2) => O("progress", { ...p2, class: cls("progress", p2.class) });
+var Radial = (p2, c) => O("div", { ...p2, class: cls("radial-progress", p2.class), style: `--value:${p2.value ?? 0};${p2.style ?? ""}`, role: "progressbar", "aria-valuenow": p2.value ?? 0 }, c ?? `${p2.value ?? 0}%`);
+var Radio = (p2) => O("input", { ...p2, type: "radio", class: cls("radio", p2.class) });
+var Range = (p2) => O("input", { ...p2, type: "range", class: cls("range", p2.class) });
+var Rating = (p2) => {
+ const name = rand("rating");
+ const stars = p2.children ?? Array.from({ length: p2.count || 5 }, (_2, i) => {
+ const v2 = i + 1;
+ return O("input", {
+ type: "radio",
+ name,
+ class: cls("mask", p2.mask || "mask-star"),
+ checked: () => get(p2.value) === v2,
+ onchange: () => isFn(p2.value) ? p2.value(v2) : p2.onchange?.(v2)
+ });
+ });
+ return O("div", { class: cls("rating", p2.class), ...p2 }, stars);
+};
+var Select = (p2, c) => {
+ if (c !== undefined)
+ return O("select", { class: cls("select", p2.class), ...p2 }, c);
+ const { label, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p2;
+ const opts = () => {
+ const raw = get(items) || [];
+ const ph = placeholder ? [{ disabled: placeholderDisabled, label: placeholder, value: "" }] : [];
+ return [...ph, ...raw];
+ };
+ return O("label", { class: float ? "floating-label" : "" }, [
+ float ? O("span", {}, label) : null,
+ O("label", { class: cls("select", rest.class) }, [
+ !float && label ? O("span", { class: "label" }, label) : null,
+ left ?? null,
+ O("select", {
+ value: () => get(value),
+ onchange: (e) => isFn(value) ? value(e.target.value) : rest.onchange?.(e)
+ }, K(opts, (item) => {
+ const val = getBy(item, item.value !== undefined ? "value" : undefined);
+ const lab = getBy(item, "label");
+ return O("option", { value: val, disabled: item.disabled || undefined }, lab);
+ })),
+ right ?? null
+ ]),
+ hint ? O("div", { class: "validator-hint" }, hint) : null
+ ]);
+};
+var Skeleton = (p2) => O("div", { ...p2, class: cls("skeleton", p2.class) });
+var SkeletonText = (p2) => O("span", { ...p2, class: cls("skeleton skeleton-text", p2.class) });
+var Stack = (p2, c) => O("div", { ...p2, class: cls("stack", p2.class) }, c);
+var Steps = (p2, c) => O("ul", { ...p2, class: cls("steps", p2.class) }, c);
+var Step = (p2, c) => O("li", { ...p2, class: cls("step", p2.class), "data-content": p2.dataContent }, c);
+var Swap = (p2) => O("label", { ...p2, class: cls("swap", p2.class) }, [
+ O("input", { type: "checkbox", checked: () => get(p2.value), onchange: (e) => isFn(p2.value) && p2.value(e.target.checked) }),
+ O("div", { class: "swap-on" }, p2.on),
+ O("div", { class: "swap-off" }, p2.off)
+]);
+var Table = (p2) => {
+ if (p2.children !== undefined)
+ return O("table", { class: cls("table", p2.class), ...p2 }, p2.children);
+ const { items, columns = [], header = true, keyFn, ...rest } = p2;
+ const hd = header !== false && columns.some((c) => c.label) ? O("thead", {}, O("tr", {}, columns.map((c) => O("th", { class: c.class }, c.label)))) : null;
+ const bd = O("tbody", {}, K(() => get(items) || [], (it, idx) => O("tr", {}, columns.map((c) => {
+ const v2 = c.render ? c.render(it, idx) : it[c.key];
+ return O("td", { class: c.class }, v2);
+ }))));
+ return O("table", { class: cls("table", rest.class), ...rest }, [hd, bd]);
+};
+var Tabs = (p2, c) => {
+ if (!p2.items) {
+ const { class: className2, ...rest2 } = p2;
+ return O("div", { ...rest2, class: cls("tabs", className2) }, c);
+ }
+ const { items, activeIndex, onClose, class: className, ...rest } = p2;
+ const get2 = (x2) => isFn(x2) ? x2() : x2;
+ const closeH = onClose || (isFn(items) ? (idx, item) => {
+ const arr = get2(items);
+ const newArr = arr.filter((_2, i) => i !== idx);
+ items(newArr);
+ if (activeIndex() >= newArr.length)
+ activeIndex(Math.max(0, newArr.length - 1));
+ } : null);
+ return O("div", { ...rest, class: cls("tabs", className) }, () => {
+ const list = get2(items) || [];
+ return list.flatMap((it, idx) => {
+ const isActive = () => activeIndex() === idx;
+ const button = O("button", {
+ class: () => `tab ${isActive() ? "tab-active" : ""} ${it.class || ""}`,
+ onclick: (e) => {
+ e.preventDefault();
+ activeIndex(idx);
+ it.onclick?.(e);
+ }
+ }, [
+ getBy(it),
+ it.closable ? O("span", {
+ class: "ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",
+ onclick: (e) => {
+ e.stopPropagation();
+ closeH?.(idx, it);
+ }
+ }, O("span", { class: "icon-[lucide--x] w-3 h-3" })) : null
+ ]);
+ const contentDiv = O("div", {
+ class: "tab-content bg-base-100 border-base-300 p-6",
+ style: () => `display: ${isActive() ? "block" : "none"};`
+ }, isFn(it.content) ? it.content() : it.content);
+ return [button, contentDiv];
+ });
+ });
+};
+var Textarea = (p2) => O("textarea", { ...p2, class: cls("textarea", p2.class) });
+var TextRotate = (p2) => {
+ const words = Array.isArray(p2.words) ? p2.words : typeof p2.words === "string" ? p2.words.split(",") : [];
+ return O("span", { ...p2, class: cls("text-rotate", p2.class) }, O("span", {}, words.map((w2) => O("span", {}, w2))));
+};
+var Timeline = (p2, c) => O("ul", { ...p2, class: cls("timeline", p2.class) }, c);
var Toast = (message, type = "alert-success", duration = 3500) => {
let container = document.getElementById("sigpro-toast-container");
if (!container) {
@@ -1188,34 +1206,8 @@ var Toast = (message, type = "alert-success", duration = 3500) => {
timer = setTimeout(closeFn, duration);
return closeFn;
};
-var Modal = (p2) => {
- let dialogRef = null;
- R(() => {
- const isOpen = get(p2.open);
- if (!dialogRef)
- return;
- isOpen ? dialogRef.showModal() : dialogRef.close();
- });
- const close = () => isFn(p2.open) && p2.open(false);
- return O("dialog", {
- ...p2,
- ref: (el) => dialogRef = el,
- class: cls("modal", p2.class),
- onclose: close,
- oncancel: close
- }, [
- O("div", { class: "modal-box" }, [
- p2.title && O("h3", { class: "text-lg font-bold" }, p2.title),
- p2.children,
- O("div", { class: "modal-action" }, [
- p2.actions || Button({ class: "btn", onclick: close }, "Cerrar")
- ])
- ]),
- O("form", { method: "dialog", class: "modal-backdrop" }, [
- O("button", {}, "close")
- ])
- ]);
-};
+var Toggle = (p2) => O("input", { ...p2, type: "checkbox", class: cls("toggle", p2.class) });
+var Tooltip = (p2, c) => O("div", { ...p2, class: cls("tooltip", p2.class), "data-tip": p2.tip }, c);
// components/Editor.js
var exports_Editor = {};
@@ -1225,8 +1217,30 @@ __export(exports_Editor, {
var Editor = (p2) => {
const { value, class: extraClass } = p2;
let editorRef = null;
+ let savedRange = null;
const isSource = S(false);
const source = S("");
+ const count = S(0);
+ const refreshTick = S(0);
+ const showEmojis = S(false);
+ const emojis = ["\uD83D\uDE00", "\uD83D\uDE0A", "\uD83D\uDE09", "\uD83E\uDDD0", "\uD83D\uDE2E", "\uD83E\uDD14", "\uD83D\uDE05", "\uD83D\uDE02", "\uD83D\uDE0D", "\uD83D\uDE18", "\uD83E\uDD70", "\uD83D\uDC4D", "\uD83D\uDC4E", "\uD83D\uDC4C", "\uD83E\uDD1D", "\uD83E\uDD1E", "\uD83D\uDC4B", "\uD83D\uDC4F", "\uD83D\uDE4C", "\uD83D\uDE4F", "\uD83D\uDCAA", "☝️", "\uD83D\uDC47", "\uD83D\uDC48", "\uD83D\uDC49", "\uD83D\uDD95", "✅", "⚠️", "\uD83D\uDE80", "\uD83D\uDCE2", "✉️", "❤️"];
+ const saveSelection = () => {
+ const sel = window.getSelection();
+ if (sel.getRangeAt && sel.rangeCount)
+ savedRange = sel.getRangeAt(0);
+ };
+ const restoreSelection = () => {
+ if (savedRange) {
+ const sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(savedRange);
+ }
+ };
+ const triggerRefresh = () => {
+ refreshTick(refreshTick() + 1);
+ if (editorRef)
+ count(editorRef.innerText.length);
+ };
const notify = () => {
if (!editorRef)
return;
@@ -1235,23 +1249,50 @@ var Editor = (p2) => {
value(html);
else
p2.onchange?.(html);
+ triggerRefresh();
};
const exec = (cmd, val = null) => {
if (!editorRef)
return;
editorRef.focus();
+ if (savedRange)
+ restoreSelection();
document.execCommand(cmd, false, val);
+ savedRange = null;
notify();
};
+ const openLightbox = (src) => {
+ const overlay = document.createElement("div");
+ overlay.style = `position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;`;
+ const img = document.createElement("img");
+ img.src = src;
+ img.style = `max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;`;
+ overlay.onclick = () => document.body.removeChild(overlay);
+ overlay.appendChild(img);
+ document.body.appendChild(overlay);
+ };
+ const handleUpload = (file) => {
+ if (!file)
+ return;
+ const reader = new FileReader;
+ reader.onload = (re) => {
+ if (file.type.startsWith("image/")) {
+ const imgHtml = ` `;
+ exec("insertHTML", imgHtml);
+ } else {
+ const linkHtml = `${file.name} `;
+ exec("insertHTML", linkHtml);
+ }
+ };
+ reader.readAsDataURL(file);
+ };
const queryState = (cmd, val = null) => {
- if (!editorRef)
+ refreshTick();
+ if (!editorRef || isSource())
return false;
try {
if (cmd === "formatBlock") {
- const sel = window.getSelection();
- if (!sel.rangeCount)
- return false;
- let node = sel.getRangeAt(0).commonAncestorContainer;
+ let node = window.getSelection().getRangeAt(0).commonAncestorContainer;
while (node && node !== editorRef) {
if (node.nodeType === 1 && node.tagName === val)
return true;
@@ -1264,92 +1305,152 @@ var Editor = (p2) => {
return false;
}
};
- const toolbar = O("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200" }, [
- O("div", { class: "flex flex-wrap gap-1 flex-1" }, [
+ const toolbar = O("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20" }, [
+ O("div", { class: "flex flex-wrap gap-1 flex-1 items-center" }, [
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("bold") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("bold") }, O("span", { class: "icon-[lucide--bold]" })),
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("italic") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("italic") }, O("span", { class: "icon-[lucide--italic]" })),
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("underline") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("underline") }, O("span", { class: "icon-[lucide--underline]" })),
+ O("input", { type: "color", class: "w-5 h-5 p-0 border-0 bg-transparent cursor-pointer", oninput: (e) => exec("foreColor", e.target.value) }),
+ O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
O("button", {
type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("bold") ? "btn-active" : ""}`,
- onclick: () => exec("bold")
- }, O("span", { class: "icon-[lucide--bold]" })),
+ class: "btn btn-ghost btn-xs",
+ onclick: () => exec("justifyLeft")
+ }, O("span", { class: "icon-[lucide--align-left]" })),
O("button", {
type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("italic") ? "btn-active" : ""}`,
- onclick: () => exec("italic")
- }, O("span", { class: "icon-[lucide--italic]" })),
+ class: "btn btn-ghost btn-xs",
+ onclick: () => exec("justifyCenter")
+ }, O("span", { class: "icon-[lucide--align-center]" })),
O("button", {
type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("underline") ? "btn-active" : ""}`,
- onclick: () => exec("underline")
- }, O("span", { class: "icon-[lucide--underline]" })),
- O("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("strikeThrough") ? "btn-active" : ""}`,
- onclick: () => exec("strikeThrough")
- }, O("span", { class: "icon-[lucide--strikethrough]" })),
+ class: "btn btn-ghost btn-xs",
+ onclick: () => exec("justifyRight")
+ }, O("span", { class: "icon-[lucide--align-right]" })),
O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertUnorderedList") }, O("span", { class: "icon-[lucide--list]" })),
O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertOrderedList") }, O("span", { class: "icon-[lucide--list-ordered]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("outdent"), title: "Mover izquierda" }, O("span", { class: "icon-[lucide--indent-decrease]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("indent"), title: "Mover derecha (Tab)" }, O("span", { class: "icon-[lucide--indent-increase]" })),
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("formatBlock", "BLOCKQUOTE") ? "btn-active" : ""}`, onclick: () => exec("formatBlock", queryState("formatBlock", "BLOCKQUOTE") ? "P" : "BLOCKQUOTE") }, O("span", { class: "icon-[lucide--quote]" })),
O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
- O("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("formatBlock", "BLOCKQUOTE") ? "btn-active" : ""}`,
- onclick: () => exec("formatBlock", queryState("formatBlock", "BLOCKQUOTE") ? "P" : "BLOCKQUOTE")
- }, O("span", { class: "icon-[lucide--quote]" })),
- O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
- O("select", { class: "select select-xs w-16", onchange: (e) => exec("fontSize", e.target.value), value: "3" }, [
- O("option", { value: "1" }, "1"),
- O("option", { value: "2" }, "2"),
- O("option", { value: "3" }, "3"),
- O("option", { value: "4" }, "4"),
- O("option", { value: "5" }, "5"),
- O("option", { value: "6" }, "6"),
- O("option", { value: "7" }, "7")
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => {
+ const url = window.prompt("URL:");
+ if (url)
+ exec("createLink", url);
+ } }, O("span", { class: "icon-[lucide--link]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => {
+ const input = document.createElement("input");
+ input.type = "file";
+ input.onchange = (e) => handleUpload(e.target.files[0]);
+ input.click();
+ } }, O("span", { class: "icon-[lucide--paperclip]" })),
+ O("div", { class: "relative" }, [
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: (e) => {
+ e.stopPropagation();
+ saveSelection();
+ showEmojis(!showEmojis());
+ } }, O("span", { class: "icon-[lucide--smile]" })),
+ O("div", { class: "absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1", style: () => showEmojis() ? "display:flex" : "display:none" }, emojis.map((emo) => O("span", { class: "cursor-pointer hover:bg-base-200 p-1 rounded text-lg", onclick: (e) => {
+ e.stopPropagation();
+ exec("insertText", emo);
+ showEmojis(false);
+ } }, emo)))
]),
O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
- O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo") }, O("span", { class: "icon-[lucide--undo-2]" })),
- O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo") }, O("span", { class: "icon-[lucide--redo-2]" }))
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("removeFormat") }, O("span", { class: "icon-[lucide--eraser]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo"), title: "Deshacer" }, O("span", { class: "icon-[lucide--undo-2]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo"), title: "Rehacer" }, O("span", { class: "icon-[lucide--redo-2]" }))
]),
- O("div", { class: "flex" }, [
- O("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${isSource() ? "btn-active" : ""}`,
- onclick: () => {
- const wasSource = isSource();
- if (!wasSource) {
- source(editorRef?.innerHTML || "");
- } else {
- if (editorRef) {
- editorRef.innerHTML = source();
- notify();
- }
- }
- isSource(!wasSource);
- }
- }, O("span", { class: "icon-[lucide--code-2]" }))
- ])
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${isSource() ? "btn-active" : ""}`, onclick: () => {
+ if (!isSource())
+ source(editorRef?.innerHTML || "");
+ else if (editorRef) {
+ editorRef.innerHTML = source();
+ notify();
+ }
+ isSource(!isSource());
+ } }, O("span", { class: "icon-[lucide--code-2]" }))
]);
- return O("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden", extraClass) }, [
+ if (typeof document !== "undefined" && !document.getElementById("editor-styles")) {
+ const style = document.createElement("style");
+ style.id = "editor-styles";
+ style.textContent = `
+ [contenteditable="true"] div,
+ [contenteditable="true"] p {
+ margin: 0;
+ padding: 0;
+ }
+ `;
+ document.head.appendChild(style);
+ }
+ return O("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col", extraClass) }, [
toolbar,
- O("div", { class: "relative" }, [
+ O("div", { class: "relative flex-1 flex flex-col", onclick: () => showEmojis(false) }, [
O("div", {
ref: (el) => {
if (!editorRef && el) {
editorRef = el;
el.innerHTML = get(value) || "";
+ document.execCommand("defaultParagraphSeparator", false, "br");
+ el.addEventListener("click", (e) => {
+ const container = e.target.closest(".resizable-img-container");
+ if (container) {
+ const img = container.querySelector("img");
+ if (img)
+ openLightbox(img.src);
+ }
+ });
}
},
- style: () => `min-height:10rem;${isSource() ? "display:none" : ""}`,
- class: "p-3 outline-none text-base-content [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:list-decimal [&_ol]:pl-6 [&_li]:list-item [&_p]:m-0 [&_div]:m-0 [&_br]:content-[''] [&_br]:block [&_br]:h-[1em]",
+ style: () => `min-height:22rem;${isSource() ? "display:none" : ""}`,
+ class: "p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",
contenteditable: "true",
oninput: notify,
- onpaste: () => setTimeout(notify, 0)
+ onkeydown: (e) => {
+ if (e.key === "Tab") {
+ e.preventDefault();
+ exec("indent");
+ }
+ },
+ onkeyup: () => {
+ triggerRefresh();
+ saveSelection();
+ },
+ onclick: (e) => {
+ triggerRefresh();
+ saveSelection();
+ e.stopPropagation();
+ },
+ onmouseup: () => {
+ notify();
+ saveSelection();
+ },
+ onpaste: (e) => {
+ e.preventDefault();
+ const text = e.clipboardData.getData("text/plain");
+ exec("insertText", text);
+ },
+ ondragover: (e) => e.preventDefault(),
+ ondrop: (e) => {
+ e.preventDefault();
+ handleUpload(e.dataTransfer.files[0]);
+ }
}),
O("textarea", {
- class: "w-full min-h-[10rem] p-3 outline-none font-mono text-sm bg-base-200 border-0",
+ class: "w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",
style: () => isSource() ? "" : "display:none",
value: source,
- oninput: (e) => source(e.target.value)
+ oninput: (e) => {
+ source(e.target.value);
+ if (editorRef)
+ editorRef.innerHTML = e.target.value;
+ p2.onchange?.(e.target.value);
+ }
})
+ ]),
+ O("div", { class: "px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic" }, [
+ O("span", () => `${count()} caracteres`)
])
]);
};
diff --git a/dist/sigpro-ui.esm.min.js b/dist/sigpro-ui.esm.min.js
index 6228c8e..d087323 100644
--- a/dist/sigpro-ui.esm.min.js
+++ b/dist/sigpro-ui.esm.min.js
@@ -1 +1,7 @@
-var Cn=Object.defineProperty;var Ln=(n)=>n;function Tn(n,r){this[n]=Ln.bind(null,r)}var en=(n,r)=>{for(var l in r)Cn(n,l,{get:r[l],enumerable:!0,configurable:!0,set:Tn.bind(r,l)})};var tn={};en(tn,{listKey:()=>cn,isFn:()=>S,getBy:()=>j,get:()=>N,filterBy:()=>bn,cls:()=>c,Tooltip:()=>yt,Toggle:()=>_t,Toast:()=>$t,Timeline:()=>ct,Textarea:()=>bt,TextRotate:()=>it,Tabs:()=>dt,Table:()=>Et,Swap:()=>ut,Steps:()=>at,Step:()=>ft,Stack:()=>st,SkeletonText:()=>lt,Skeleton:()=>et,Select:()=>kt,Rating:()=>gt,Range:()=>ot,Radio:()=>rt,Radial:()=>tt,Progress:()=>nt,Navbar:()=>pn,Modal:()=>At,Menu:()=>yn,Loading:()=>hn,Kbd:()=>Mn,Input:()=>wn,Indicator:()=>Fn,Icon:()=>vn,Fileinput:()=>Tt,Fieldset:()=>Dn,Fab:()=>Hn,Dropdown:()=>St,Drawer:()=>Nt,Divider:()=>On,Datepicker:()=>Lt,Colorpicker:()=>Ct,Checkbox:()=>Vn,ChatImage:()=>In,ChatHeader:()=>Yn,ChatFooter:()=>Zn,ChatBubble:()=>Xn,Chat:()=>Gn,CarouselItem:()=>Kn,Carousel:()=>Bn,CardTitle:()=>Un,CardBody:()=>qn,CardActions:()=>Qn,Card:()=>Rn,Calendar:()=>En,Button:()=>_n,Badge:()=>Pn,Autocomplete:()=>xt,Alert:()=>Jn,Accordion:()=>wt});var A=(n)=>typeof n==="function",h=(n)=>n&&typeof n==="object",q=Array.isArray,W=typeof document<"u"?document:null,ln=(n)=>n?._isRuntime?n.container:n instanceof Node?n:W.createTextNode(n==null?"":String(n)),k=null,L=null,G=!1,Z=0,Y=new Set,sn=new WeakMap,F=Symbol("iter"),M=new WeakMap,R=(n)=>{if(!n||n._disposed)return;n._disposed=!0;let r=[n];while(r.length){let l=r.pop();if(l._cleanups)l._cleanups.forEach((s)=>s()),l._cleanups.clear();if(l._children)l._children.forEach((s)=>r.push(s)),l._children.clear();if(l._deps)l._deps.forEach((s)=>s.delete(l)),l._deps.clear()}},Q=(n)=>{if(L)(L._cleanups||=new Set).add(n)},$n=(n)=>{let r=k;k=null;try{return n()}finally{k=r}},X=(n,r=!1)=>{let l=()=>{if(l._disposed)return;if(l._deps)l._deps.forEach((e)=>e.delete(l));if(l._cleanups)l._cleanups.forEach((e)=>e()),l._cleanups.clear();let s=k,f=L;k=L=l;try{return l._result=n()}catch(e){console.error("[SigPro]",e)}finally{k=s,L=f}};if(l._deps=l._cleanups=l._children=null,l._disposed=!1,l._isComputed=r,l._depth=k?k._depth+1:0,l._mounts=[],l._parent=L,L)(L._children||=new Set).add(l);return l},fn=()=>{if(G)return;G=!0;let n=Array.from(Y).sort((r,l)=>r._depth-l._depth);Y.clear();for(let r of n)if(!r._disposed)r();G=!1},An=(n)=>{Z++;try{return n()}finally{if(Z--,Z===0&&Y.size>0&&!G)fn()}},$=(n,r=!1)=>{if(!r&&k&&!k._disposed)n.add(k),(k._deps||=new Set).add(n);else if(r&&n.size>0){let l=!1;for(let s of n){if(s===k||s._disposed)continue;if(s._isComputed){if(s._dirty=!0,s._subs)$(s._subs,!0)}else Y.add(s),l=!0}if(l&&!G&&Z===0)queueMicrotask(fn)}},d=(n,r=null)=>{let l=new Set;if(A(n)){let s,f=()=>{if(f._dirty){let e=k;k=f;try{let o=n();if(!Object.is(s,o))s=o,$(l,!0)}finally{k=e}f._dirty=!1}return $(l),s};if(f._isComputed=!0,f._subs=l,f._dirty=!0,f._deps=null,f._disposed=!1,f.stop=()=>{},L)Q(f.stop);return f}if(r)try{n=JSON.parse(localStorage.getItem(r))??n}catch(s){}return(...s)=>{if(s.length){let f=A(s[0])?s[0](n):s[0];if(!Object.is(n,f)){if(n=f,r)localStorage.setItem(r,JSON.stringify(n));$(l,!0)}}return $(l),n}},un=(n)=>{if(!h(n))return n;let r=sn.get(n);if(r)return r;let l=new Map,s=(e)=>{let o=l.get(e);if(!o)l.set(e,o=new Set);return o},f=new Proxy(n,{get(e,o,a){if(typeof o!=="symbol")$(s(o));return un(Reflect.get(e,o,a))},set(e,o,a,u){let i=Reflect.has(e,o),b=Reflect.get(e,o,u),_=Reflect.set(e,o,a,u);if(_&&!Object.is(b,a)){if($(s(o),!0),!i)$(s(F),!0)}return _},deleteProperty(e,o){let a=Reflect.deleteProperty(e,o);if(a)$(s(o),!0),$(s(F),!0);return a},ownKeys(e){return $(s(F)),Reflect.ownKeys(e)}});return sn.set(n,f),f},J=(n,r)=>{if(r===void 0){let s=X(n);return s(),()=>R(s)}let l=X(()=>{let s=Array.isArray(n)?n.map((f)=>f()):n();$n(()=>r(s))});return l(),()=>R(l)},p=(n)=>{if(!n)return;if(n._cleanups)n._cleanups.forEach((r)=>r()),n._cleanups.clear();if(n._ownerEffect)R(n._ownerEffect);if(n.childNodes)n.childNodes.forEach((r)=>p(r))},jn=/^\s*(javascript|data|vbscript):/i,Wn=(n)=>n==="src"||n==="href"||n.startsWith("on"),an=(n,r)=>{if(r==null||r===!1)return null;if(Wn(n)){let l=String(r);if(jn.test(l))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${n}`),"#"}return r},t=(n,r={},l=[])=>{if(r instanceof Node||q(r)||!h(r))l=r,r={};if(A(n)){let o=X(()=>{let b=n(r,{children:l,emit:(_,...w)=>r[`on${_[0].toUpperCase()}${_.slice(1)}`]?.(...w)});return o._result=b,b});o();let a=o._result;if(a==null)return null;let u=a instanceof Node||q(a)&&a.every((b)=>b instanceof Node)?a:W.createTextNode(String(a)),i=(b)=>{if(h(b)&&!b._isRuntime)b._mounts=o._mounts||[],b._cleanups=o._cleanups||new Set,b._ownerEffect=o};return q(u)?u.forEach(i):i(u),u}let s=/^(svg|path|circle|rect|line|poly(line|gon)|g|defs|text(path)?|tspan|use|symbol|image|marker|ellipse)$/i.test(n),f=s?W.createElementNS("http://www.w3.org/2000/svg",n):W.createElement(n);f._cleanups=new Set;for(let o in r){if(!r.hasOwnProperty(o))continue;let a=r[o];if(o==="ref"){A(a)?a(f):a.current=f;continue}if(s&&o.startsWith("xlink:")){a==null?f.removeAttributeNS("http://www.w3.org/1999/xlink",o.slice(6)):f.setAttributeNS("http://www.w3.org/1999/xlink",o.slice(6),a);continue}if(o.startsWith("on")){let u=o.slice(2).toLowerCase();f.addEventListener(u,a);let i=()=>f.removeEventListener(u,a);f._cleanups.add(i),Q(i)}else if(A(a)){let u=X(()=>{let i=an(o,a());if(o==="class")f.className=i||"";else if(i==null)f.removeAttribute(o);else if(o in f&&!s)f[o]=i;else f.setAttribute(o,i===!0?"":i)});if(u(),f._cleanups.add(()=>R(u)),Q(()=>R(u)),/^(INPUT|TEXTAREA|SELECT)$/.test(f.tagName)&&(o==="value"||o==="checked")){let i=o==="checked"?"change":"input";f.addEventListener(i,(b)=>a(b.target[o]))}}else{let u=an(o,a);if(u!=null)if(o in f&&!s)f[o]=u;else f.setAttribute(o,u===!0?"":u)}}let e=(o)=>{if(q(o))return o.forEach(e);if(A(o)){let a=W.createTextNode("");f.appendChild(a);let u=[],i=X(()=>{let b=o(),_=(q(b)?b:[b]).map(ln);u.forEach((E)=>{if(E._isRuntime)E.destroy();else p(E);if(E.parentNode)E.remove()});let w=a;for(let E=_.length-1;E>=0;E--){let y=_[E];if(y.parentNode!==w.parentNode)w.parentNode?.insertBefore(y,w);if(y._mounts)y._mounts.forEach((g)=>g());w=y}u=_});i(),f._cleanups.add(()=>R(i)),Q(()=>R(i))}else{let a=ln(o);if(f.appendChild(a),a._mounts)a._mounts.forEach((u)=>u())}};return e(l),f},I=(n)=>{let r=new Set,l=L,s=k,f=W.createElement("div");f.style.display="contents",f.setAttribute("role","presentation"),L={_cleanups:r},k=null;let e=(o)=>{if(!o)return;if(o._isRuntime)r.add(o.destroy),f.appendChild(o.container);else if(q(o))o.forEach(e);else f.appendChild(o instanceof Node?o:W.createTextNode(String(o==null?"":o)))};try{e(n({onCleanup:(o)=>r.add(o)}))}finally{L=l,k=s}return{_isRuntime:!0,container:f,destroy:()=>{r.forEach((o)=>o()),p(f),f.remove()}}},U=(n,r,l=null)=>{let s=W.createTextNode(""),f=t("div",{style:"display:contents"},[s]),e=null;return J(()=>!!(A(n)?n():n),(o)=>{if(e)e.destroy(),e=null;let a=o?r:l;if(a)e=I(()=>A(a)?a():a),f.insertBefore(e.container,s)}),Q(()=>e?.destroy()),f},V=({name:n,duration:r=200,scale:l,slide:s,rotate:f,blur:e},o)=>{let a=typeof o==="function"?o():o;if(!(a instanceof Node))return a;if(n)return a.style.animation=`${n}-in ${r}ms`,a;let u=l||s||f||e,i=[l?"scale(0.95)":"",s?"translateY(-10px)":"",f?"rotate(-2deg)":""].filter(Boolean).join(" ");if(a.style.transition=`all ${r}ms ease`,a.style.opacity="0",u)a.style.transform=i;if(e)a.style.filter="blur(4px)";return requestAnimationFrame(()=>{if(a.style.opacity="1",u)a.style.transform="none";if(e)a.style.filter="none"}),a},m=(n,r,l)=>{let s=W.createTextNode(""),f=t("div",{style:"display:contents"},[s]),e=new Map;return J(()=>(A(n)?n():n)||[],(o)=>{let a=new Map,u=[],i=o||[];for(let _=0;_r(w,_));else e.delete(E);a.set(E,y),u.push(y)}e.forEach((_)=>_.destroy());let b=s;for(let _=u.length-1;_>=0;_--){let w=u[_].container;if(w.nextSibling!==b)f.insertBefore(w,b);b=w}e=a}),f},B=(n)=>{let r=()=>window.location.hash.slice(1)||"/",l=d(r()),s=()=>l(r());window.addEventListener("hashchange",s),Q(()=>window.removeEventListener("hashchange",s));let f=t("div",{class:"router-hook"}),e=null;return J([l],()=>{let o=l(),a=n.find((u)=>{let i=u.path.split("/").filter(Boolean),b=o.split("/").filter(Boolean);return i.length===b.length&&i.every((_,w)=>_[0]===":"||_===b[w])})||n.find((u)=>u.path==="*");if(a){e?.destroy();let u={};a.path.split("/").filter(Boolean).forEach((i,b)=>{if(i[0]===":")u[i.slice(1)]=o.split("/").filter(Boolean)[b]}),B.params(u),e=I(()=>A(a.component)?a.component(u):a.component),f.replaceChildren(e.container)}}),f};B.params=d({});B.to=(n)=>window.location.hash=n.replace(/^#?\/?/,"#/");B.back=()=>window.history.back();B.path=()=>window.location.hash.replace(/^#/,"")||"/";var mn=({url:n,method:r="GET",headers:l={}})=>{let s=d(!1),f=d(null),e=d(null),o=null,a=null;return{run:async(u=null)=>{o?.abort(),clearTimeout(a),o=new AbortController,a=setTimeout(()=>o.abort(),1e4),s(!0),f(null);try{let i=u instanceof FormData,b=await fetch(n,{method:r,headers:i?l:{"Content-Type":"application/json",...l},body:i?u:u?JSON.stringify(u):void 0,signal:o.signal}),_=await b.text(),w=_?JSON.parse(_):null;if(!b.ok)throw Error(w?.message||b.statusText);return e(w),w}catch(i){if(i.name!=="AbortError")f(i.message);throw i}finally{s(!1),clearTimeout(a),o=null,a=null}},abort:()=>o?.abort(),loading:s,error:f,data:e}},nn=(n,r)=>{let l=typeof r==="string"?W.querySelector(r):r;if(!l)return;if(M.has(l))M.get(l).destroy();let s=I(A(n)?n:()=>n);return l.replaceChildren(s.container),M.set(l,s),s},zn=Object.freeze({$:d,$$:un,watch:J,h:t,when:U,each:m,fx:V,router:B,req:mn,mount:nn,batch:An});if(typeof window<"u")Object.assign(window,zn),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((n)=>{window[n]=(r,l)=>t(n,r,l)});var N=(n)=>typeof n==="function"?n():n,j=(n,r="label")=>n&&typeof n==="object"?n[r]:n,c=(...n)=>n.filter(Boolean).join(" ").trim(),S=(n)=>typeof n==="function",bn=(n,r,l="label")=>{let s=String(r).toLowerCase(),f=N(n);return!s?f:f.filter((e)=>{let o=e&&typeof e==="object"?e[l]:e;return String(o).toLowerCase().includes(s)})},cn=(n,r)=>{let l=d(-1);return J(()=>{if(!N(r))l(-1)}),{cursor:l,onKey:(f,e)=>{let o=N(n),a=l(),u=o.length;if(!u)return;let i=f.key;i==="ArrowDown"?(f.preventDefault(),r(!0),l(Math.min(a+1,u-1))):i==="ArrowUp"?(f.preventDefault(),l(Math.max(a-1,0))):i==="Enter"?a>=0&&(f.preventDefault(),e(o[a])):i==="Escape"&&r(!1)}}},Jn=(n,r)=>t("div",{...n,class:c("alert",n.class)},r),Pn=(n,r)=>t("span",{...n,class:c("badge",n.class)},r),_n=(n,r)=>t("button",{...n,class:c("btn",n.class)},r),Rn=(n,r)=>t("div",{...n,class:c("card",n.class)},r),Un=(n,r)=>t("div",{...n,class:c("card-title",n.class)},r),qn=(n,r)=>t("div",{...n,class:c("card-body",n.class)},r),Qn=(n,r)=>t("div",{...n,class:c("card-actions",n.class)},r),Bn=(n,r)=>t("div",{...n,class:c("carousel",n.class)},r),Kn=(n,r)=>t("div",{...n,class:c("carousel-item",n.class)},r),Gn=(n,r)=>t("div",{...n,class:c("chat",n.class)},r),Xn=(n,r)=>t("div",{...n,class:c("chat-bubble",n.class)},r),Zn=(n,r)=>t("div",{...n,class:c("chat-footer",n.class)},r),Yn=(n,r)=>t("div",{...n,class:c("chat-header",n.class)},r),In=(n,r)=>t("div",{...n,class:c("chat-image avatar",n.class)},t("div",{class:"w-10 rounded-full"},typeof r==="string"?t("img",{src:r,alt:"avatar"}):r)),Vn=(n)=>t("input",{...n,type:"checkbox",class:c("checkbox",n.class)}),On=(n)=>t("div",{...n,class:c("divider",n.class)}),Hn=(n,r)=>t("div",{...n,class:c("fab",n.class)},r),Dn=(n,r)=>t("fieldset",{...n,class:c("fieldset",n.class)},[n.legend&&t("legend",{class:"fieldset-legend"},n.legend),r]),vn=(n)=>t("span",{class:n.startsWith("icon-")?n:""},n.startsWith("icon-")?null:n),Fn=(n,r)=>t("div",{...n,class:c("indicator",n.class)},[n.value&&t("span",{class:c("indicator-item badge",n.class)},n.value),r]),Mn=(n,r)=>t("kbd",{...n,class:c("kbd",n.class)},r),hn=(n,r)=>t("span",{...n,class:c("loading loading-spinner",n.class)},r),pn=(n,r)=>t("div",{...n,class:c("navbar",n.class)},r),nt=(n)=>t("progress",{...n,class:c("progress",n.class)}),tt=(n,r)=>t("div",{...n,class:c("radial-progress",n.class),style:`--value:${n.value??0};${n.style??""}`,role:"progressbar","aria-valuenow":n.value??0},r??`${n.value??0}%`),rt=(n)=>t("input",{...n,type:"radio",class:c("radio",n.class)}),ot=(n)=>t("input",{...n,type:"range",class:c("range",n.class)}),et=(n)=>t("div",{...n,class:c("skeleton",n.class)}),lt=(n)=>t("span",{...n,class:c("skeleton skeleton-text",n.class)}),st=(n,r)=>t("div",{...n,class:c("stack",n.class)},r),at=(n,r)=>t("ul",{...n,class:c("steps",n.class)},r),ft=(n,r)=>t("li",{...n,class:c("step",n.class),"data-content":n.dataContent},r),ut=(n)=>t("label",{...n,class:c("swap",n.class)},[t("input",{type:"checkbox",checked:()=>N(n.value),onchange:(r)=>S(n.value)&&n.value(r.target.checked)}),t("div",{class:"swap-on"},n.on),t("div",{class:"swap-off"},n.off)]),bt=(n)=>t("textarea",{...n,class:c("textarea",n.class)}),it=(n)=>{let r=Array.isArray(n.words)?n.words:typeof n.words==="string"?n.words.split(","):[];return t("span",{...n,class:c("text-rotate",n.class)},t("span",{},r.map((l)=>t("span",{},l))))},ct=(n,r)=>t("ul",{...n,class:c("timeline",n.vertical!==!1?"timeline-vertical":"timeline-horizontal",n.compact?"timeline-compact":"",n.class)},r),_t=(n)=>t("input",{...n,type:"checkbox",class:c("toggle",n.class)}),yt=(n,r)=>t("div",{...n,class:c("tooltip",n.class),"data-tip":n.tip},r),wt=(n)=>{let r=n.name||`acc-${Math.random().toString(36).slice(2)}`,l=c("collapse",n.variant&&`collapse-${n.variant}`,n.class),s=(f)=>{let e=j(f,"title"),o=f.content;return n.type==="details"?t("details",{class:l,name:r,open:f.open||void 0},t("summary",{class:"collapse-title font-semibold"},e),o?t("div",{class:"collapse-content text-sm"},o):null):t("div",{class:l},t("input",{type:"radio",name:r,checked:f.open||void 0}),t("div",{class:"collapse-title font-semibold"},e),o?t("div",{class:"collapse-content text-sm"},o):null)};return S(n.items)?m(n.items,s,(f,e)=>f?.id??e):(n.items||[]).map(s)},Et=(n)=>{if(n.children!==void 0)return t("table",{class:c("table",n.class),...n},n.children);let{items:r,columns:l=[],header:s=!0,keyFn:f,...e}=n,o=s!==!1&&l.some((u)=>u.label)?t("thead",{},t("tr",{},l.map((u)=>t("th",{class:u.class},u.label)))):null,a=t("tbody",{},m(()=>N(r)||[],(u,i)=>t("tr",{},l.map((b)=>{let _=b.render?b.render(u,i):u[b.key];return t("td",{class:b.class},_)})),f||((u,i)=>u?.id??i)));return t("table",{class:c("table",e.class),...e},[o,a])},dt=(n)=>{if(n.children!==void 0)return t("div",{class:c("tabs",n.class),...n},n.children);let{items:r,activeIndex:l,onClose:s,...f}=n,e=s||(S(r)?(o)=>{let u=N(r).filter((i,b)=>b!==o);if(r(u),l()>=u.length)l(Math.max(0,u.length-1))}:null);return t("div",{class:c("tabs",n.class),...f},m(()=>N(r)||[],(o,a)=>{let u=()=>l()===a;return[t("a",{role:"tab",class:()=>`tab ${u()?"tab-active":""} ${o.class||""}`,onclick:(i)=>{i.preventDefault(),l(a),o.onclick?.(i)}},j(o),o.closable?t("span",{class:"icon-[lucide--x] w-3.5 h-3.5 ml-2 cursor-pointer hover:opacity-70",onclick:(i)=>{i.stopPropagation(),e?.(a)}}):null),t("div",{class:`tab-content ${o.contentClass||""}`,style:()=>`display: ${u()?"block":"none"};`},S(o.content)?o.content():o.content)]},(o,a)=>o.id??a))},gt=(n)=>{let r=`rating-${Math.random().toString(36).slice(2,7)}`,l=n.children??Array.from({length:n.count||5},(s,f)=>{let e=f+1;return t("input",{type:"radio",name:r,class:c("mask",n.mask||"mask-star"),checked:()=>N(n.value)===e,onchange:()=>S(n.value)?n.value(e):n.onchange?.(e)})});return t("div",{class:c("rating",n.class),...n},l)},yn=(n)=>{if(n.children!==void 0)return t("ul",{class:c("menu",n.class),...n},n.children);let{items:r,keyFn:l=(e,o)=>e?.id??o,...s}=n,f=(e)=>e.children?t("li",{},t("details",{},t("summary",{},j(e)),t("ul",{},yn({items:e.children})))):t("li",{},t("a",{href:e.href,onclick:e.onclick?(o)=>{if(!e.href)o.preventDefault();e.onclick(o)}:null},j(e)));return t("ul",{class:c("menu",s.class),...s},m(()=>N(r)||[],f,l))},Nt=(n,r)=>{let l=n.id||`drawer-${Math.random().toString(36).slice(2,9)}`;return t("div",{class:c("drawer",n.class)},[t("input",{id:l,type:"checkbox",class:"drawer-toggle",checked:()=>N(n.open),onchange:(s)=>S(n.open)&&n.open(s.target.checked)}),t("div",{class:"drawer-content"},r),t("div",{class:"drawer-side"},[t("label",{for:l,class:"drawer-overlay",onclick:()=>S(n.open)&&n.open(!1)}),t("div",{class:"min-h-full bg-base-200 w-80 p-4"},()=>N(n.side))])])},St=(n,r)=>{let{trigger:l,items:s,...f}=n,e=r||(s?t("ul",{class:"menu dropdown-content bg-base-100 rounded-box z-[1] w-52 p-2 shadow"},m(()=>N(s)||[],(o)=>t("li",{},t("a",{onclick:(a)=>{o.onclick?.(a),a.currentTarget.closest("details").open=!1}},j(o))),(o,a)=>o.id??a)):null);return t("details",{class:c("dropdown",f.class),...f},[t("summary",{class:"btn m-1"},l||"Dropdown"),e])},kt=(n,r)=>{if(r!==void 0)return t("select",{class:c("select",n.class),...n},r);let{label:l,float:s,placeholder:f,placeholderDisabled:e=!0,value:o,left:a,right:u,hint:i,items:b,keyFn:_,...w}=n,E=()=>{let y=N(b)||[];return[...f?[{disabled:e,label:f,value:""}]:[],...y]};return t("label",{class:s?"floating-label":""},[s&&t("span",{},l),t("label",{class:c("select",w.class)},[l&&!s&&t("span",{class:"label"},l),a??null,t("select",{value:()=>N(o),onchange:(y)=>S(o)?o(y.target.value):w.onchange?.(y)},m(E,(y)=>{let g=j(y,y.value!==void 0?"value":void 0),x=j(y,"label");return t("option",{value:g,disabled:y.disabled||void 0},x)},(y,g)=>y?.id??(typeof y==="string"?y:y.value)??g)),u??null]),i&&t("div",{class:"validator-hint"},i)])},xt=({items:n,value:r,onselect:l,placeholder:s="Buscar...",...f})=>{let e=d(N(r)||""),o=d(!1),a=d(()=>bn(n,e())),{cursor:u,onKey:i}=cn(a,o),b=(_)=>{let w=j(_),E=typeof _==="string"?_:_.value;if(e(w),S(r))r(E);l?.(_),o(!1)};return t("div",{class:"relative w-full"},[wn({...f,type:"text",placeholder:s,value:e,left:t("span",{class:"icon-[lucide--search]"}),oninput:(_)=>{if(e(_.target.value),S(r))r(_.target.value);o(!0)},onfocus:()=>o(!0),onblur:()=>setTimeout(()=>o(!1),150),onkeydown:(_)=>i(_,b)}),U(o,()=>V({duration:200,slide:!0},t("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 flex-col flex-nowrap"},[m(a,(_,w)=>t("li",{},[t("a",{class:()=>u()===w?"active bg-primary text-primary-content":"",onmousedown:(E)=>E.preventDefault(),onclick:()=>b(_),onmouseenter:()=>u(w)},j(_))]),(_,w)=>j(_)+w),()=>a().length===0?t("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null])))])},wn=(n)=>{let{label:r,icon:l,float:s,placeholder:f,value:e,left:o,right:a,rule:u,hint:i,content:b,..._}=n,w=d(!1),E=d(!1),y=n.type==="password",g=u??null,x=()=>y?N(w)?"text":"password":n.type||"text";return t("div",{class:"input-container",onfocusin:()=>E(!0),onfocusout:(C)=>{if(!C.currentTarget.contains(C.relatedTarget))E(!1)}},[t("label",{class:s?"floating-label":""},[s?t("span",{},r):null,t("label",{pattern:g,class:()=>c("input validator",n.class)},[r&&!s?t("span",{class:"label"},r):null,o??null,t("input",{..._,type:x,class:"grow",pattern:g,placeholder:f||r||" ",value:e}),a??null,y?t("label",{class:"swap swap-rotate ml-2"},[t("input",{type:"checkbox",onchange:(C)=>w(C.target.checked)}),t("span",{class:"swap-on icon-[lucide--eye]"}),t("span",{class:"swap-off icon-[lucide--eye-off]"})]):null]),i?t("div",{class:"validator-hint"},i):null,U(E,()=>V({duration:300,slide:!0},t("div",{class:"input-content",onmousedown:(C)=>C.preventDefault()},[S(b)?b(E):b])))])])},Ct=(n)=>{let r=d(!1),l=()=>N(n.value)||"#000000",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"],f=(e)=>{S(n.value)?n.value(e):n.onchange?.(e),r(!1)};return t("div",{class:c("relative w-fit",n.class)},[t("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)=>{e.stopPropagation(),r(!r())}},[t("div",{class:"size-5 rounded-sm shadow-inner border border-black/10 shrink-0",style:()=>`background-color: ${l()}`}),n.label&&t("span",{class:"opacity-80"},n.label)]),U(r,()=>[t("div",{class:"fixed inset-0 z-[100]",onclick:()=>r(!1)}),t("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"},t("div",{class:"grid grid-cols-8 gap-1"},s.map((e)=>t("button",{type:"button",style:`background-color: ${e}`,class:()=>{return`size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${l().toLowerCase()===e.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>f(e)}))))])])},En=(n)=>{let r=d(new Date),l=d(null),s=d(0),f=d(0),e=new Date,o=`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`,a=(y)=>`${y.getFullYear()}-${String(y.getMonth()+1).padStart(2,"0")}-${String(y.getDate()).padStart(2,"0")}`,u=()=>N(n.range)===!0,i=()=>N(n.value),b=(y)=>{let g=a(y),x=i();if(u())if(!x?.start||x.start&&x.end)n.onChange?.({start:g,end:null,...n.hour&&{startHour:s()}});else{let C=x.start,K=g{let g=r();r(new Date(g.getFullYear(),g.getMonth()+y,1))},w=(y)=>{let g=r();r(new Date(g.getFullYear()+y,g.getMonth(),1))},E=({value:y,onChange:g})=>t("div",{class:"flex-1"},[t("div",{class:"flex gap-2 items-center"},[t("input",{type:"range",min:0,max:23,value:y,class:"range range-xs flex-1",oninput:(x)=>g(+x.target.value)}),t("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(N(y)).padStart(2,"0")+":00")])]);return t("div",{class:c("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",n.class)},[t("div",{class:"flex justify-between items-center mb-4 gap-1"},[t("div",{class:"flex gap-0.5"},[t("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>w(-1)},t("span",{class:"icon-[lucide--chevrons-left]"})),t("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>_(-1)},t("span",{class:"icon-[lucide--chevron-left]"}))]),t("span",{class:"font-bold uppercase flex-1 text-center"},()=>r().toLocaleString("es-ES",{month:"short",year:"numeric"})),t("div",{class:"flex gap-0.5"},[t("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>_(1)},t("span",{class:"icon-[lucide--chevron-right]"})),t("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>w(1)},t("span",{class:"icon-[lucide--chevrons-right]"}))])]),t("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>l(null)},[...["L","M","X","J","V","S","D"].map((y)=>t("div",{class:"text-[10px] opacity-40 font-bold text-center"},y)),()=>{let y=r(),g=y.getFullYear(),x=y.getMonth(),C=new Date(g,x,1).getDay(),K=C===0?6:C-1,Sn=new Date(g,x+1,0).getDate(),O=[];for(let P=0;P{let z=i(),H=l(),kn=typeof z==="string"?z.split("T")[0]===T:z?.start===T,xn=z?.end===T,D=!1;if(u()&&z?.start){let v=z.start;if(!z.end&&H)D=T>v&&T<=H||T=H;else if(z.end)D=T>v&&Tu()&&l(T),onclick:()=>b(on)},P.toString()))}return O}]),n.hour?t("div",{class:"mt-3 pt-2 border-t border-base-300"},u()?t("div",{class:"flex gap-4"},[E({value:s,onChange:(y)=>s(y)}),E({value:f,onChange:(y)=>f(y)})]):E({value:s,onChange:(y)=>s(y)})):null])},Lt=(n)=>{let r=d(!1),l=d(""),s=()=>N(n.range)===!0;J(()=>{let e=N(n.value);if(!e)return l("");let o="";if(typeof e==="string")o=n.hour&&e.includes("T")?e.replace("T"," "):e;else if(e.start&&e.end){let a=n.hour&&e.startHour!=null?`${e.start} ${String(e.startHour).padStart(2,"0")}:00`:e.start,u=n.hour&&e.endHour!=null?`${e.end} ${String(e.endHour).padStart(2,"0")}:00`:e.end;o=`${a} - ${u}`}else if(e.start)o=`${n.hour&&e.startHour!=null?`${e.start} ${String(e.startHour).padStart(2,"0")}:00`:e.start}...`;l(o)});let f=(e)=>{if(S(n.value))n.value(e);else n.onChange?.(e);if(!s()||e?.end!=null)r(!1)};return t("div",{class:c("relative w-full",n.class)},[t("label",{class:"input input-bordered w-full",onclick:(e)=>{e.stopPropagation(),r(!r())}},[t("span",{class:"icon-[lucide--calendar]"}),t("input",{...n,type:"text",class:"grow",value:l,readonly:!0,placeholder:n.placeholder||(s()?"Seleccionar rango...":"Seleccionar fecha...")})]),U(r,()=>[t("div",{class:"fixed inset-0 z-[90]",onclick:()=>r(!1)}),t("div",{class:"absolute left-0 mt-2 z-[100]",onclick:(e)=>e.stopPropagation()},En({value:n.value,range:s(),hour:n.hour,onChange:f}))])])},Tt=(n)=>{let r=d([]),l=d(!1),s=d(null),f=(n.max||2)*1024*1024,e=(a)=>{let u=Array.from(a);if(s(null),u.some((b)=>b.size>f)){s(`Máx ${n.max||2}MB`);return}let i=[...r(),...u];if(r(i),S(n.onselect))n.onselect(i);else if(S(n.value))n.value(i)},o=(a)=>{let u=r().filter((i,b)=>b!==a);if(r(u),S(n.onselect))n.onselect(u);else if(S(n.value))n.value(u)};return t("div",{class:c("fieldset w-full p-0",n.class)},[t("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 ${l()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(a)=>{a.preventDefault(),l(!0)},ondragleave:()=>l(!1),ondrop:(a)=>{a.preventDefault(),l(!1),e(a.dataTransfer.files)}},[t("div",{class:"flex items-center gap-3 w-full"},[t("span",{class:"icon-[lucide--upload]"}),t("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),t("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${n.max||2}MB`)]),t("input",{type:"file",multiple:!0,accept:n.accept||"*",class:"hidden",onchange:(a)=>e(a.target.files)})]),()=>s()&&t("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},s()),U(()=>r().length>0,()=>t("ul",{class:"mt-2 space-y-1"},m(r,(a,u)=>t("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[t("div",{class:"flex items-center gap-2 truncate"},[t("span",{class:"opacity-50"},"\uD83D\uDCC4"),t("span",{class:"truncate font-medium max-w-[200px]"},a.name),t("span",{class:"text-[9px] opacity-40"},`(${(a.size/1024).toFixed(0)} KB)`)]),t("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(i)=>{i.preventDefault(),o(u)}},t("span",{class:"icon-[lucide--x]"}))]),(a)=>a.name+a.lastModified)))])},$t=(n,r="alert-success",l=3500)=>{let s=document.getElementById("sigpro-toast-container");if(!s)s=t("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(s);let f=t("div",{style:"display: contents"});s.appendChild(f);let e,o,a,i=nn(()=>{let b=d(!1),_=d(!1);e=()=>{if(_())return;clearTimeout(o),clearTimeout(a),_(!0),setTimeout(()=>{if(i.destroy(),f.remove(),!s.hasChildNodes())s.remove()},300)},a=setTimeout(()=>b(!0),0);let w=typeof n==="function"?N(n):n,E=typeof w==="string"?t("span",{},w):w;return t("div",{class:()=>{if(_())return`alert alert-soft ${r} shadow-lg transition-all duration-300 translate-x-full opacity-0 pointer-events-auto`;if(b())return`alert alert-soft ${r} shadow-lg transition-all duration-300 translate-x-0 opacity-100 pointer-events-auto`;return`alert alert-soft ${r} shadow-lg transition-all duration-300 translate-x-10 opacity-0 pointer-events-auto`}},[E,t("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:e},t("span",{class:"icon-[lucide--x]"}))])},f);if(l>0)o=setTimeout(e,l);return e},At=(n)=>{let r=null;J(()=>{let s=N(n.open);if(!r)return;s?r.showModal():r.close()});let l=()=>S(n.open)&&n.open(!1);return t("dialog",{...n,ref:(s)=>r=s,class:c("modal",n.class),onclose:l,oncancel:l},[t("div",{class:"modal-box"},[n.title&&t("h3",{class:"text-lg font-bold"},n.title),n.children,t("div",{class:"modal-action"},[n.actions||_n({class:"btn",onclick:l},"Cerrar")])]),t("form",{method:"dialog",class:"modal-backdrop"},[t("button",{},"close")])])};var rn={};en(rn,{Editor:()=>jt});var jt=(n)=>{let{value:r,class:l}=n,s=null,f=d(!1),e=d(""),o=()=>{if(!s)return;let b=s.innerHTML;if(S(r))r(b);else n.onchange?.(b)},a=(b,_=null)=>{if(!s)return;s.focus(),document.execCommand(b,!1,_),o()},u=(b,_=null)=>{if(!s)return!1;try{if(b==="formatBlock"){let w=window.getSelection();if(!w.rangeCount)return!1;let E=w.getRangeAt(0).commonAncestorContainer;while(E&&E!==s){if(E.nodeType===1&&E.tagName===_)return!0;E=E.parentNode}return!1}return document.queryCommandState(b)}catch(w){return!1}},i=t("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200"},[t("div",{class:"flex flex-wrap gap-1 flex-1"},[t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("bold")?"btn-active":""}`,onclick:()=>a("bold")},t("span",{class:"icon-[lucide--bold]"})),t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("italic")?"btn-active":""}`,onclick:()=>a("italic")},t("span",{class:"icon-[lucide--italic]"})),t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("underline")?"btn-active":""}`,onclick:()=>a("underline")},t("span",{class:"icon-[lucide--underline]"})),t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("strikeThrough")?"btn-active":""}`,onclick:()=>a("strikeThrough")},t("span",{class:"icon-[lucide--strikethrough]"})),t("span",{class:"w-px h-5 bg-base-300 mx-1"}),t("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>a("insertUnorderedList")},t("span",{class:"icon-[lucide--list]"})),t("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>a("insertOrderedList")},t("span",{class:"icon-[lucide--list-ordered]"})),t("span",{class:"w-px h-5 bg-base-300 mx-1"}),t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>a("formatBlock",u("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},t("span",{class:"icon-[lucide--quote]"})),t("span",{class:"w-px h-5 bg-base-300 mx-1"}),t("select",{class:"select select-xs w-16",onchange:(b)=>a("fontSize",b.target.value),value:"3"},[t("option",{value:"1"},"1"),t("option",{value:"2"},"2"),t("option",{value:"3"},"3"),t("option",{value:"4"},"4"),t("option",{value:"5"},"5"),t("option",{value:"6"},"6"),t("option",{value:"7"},"7")]),t("span",{class:"w-px h-5 bg-base-300 mx-1"}),t("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>a("undo")},t("span",{class:"icon-[lucide--undo-2]"})),t("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>a("redo")},t("span",{class:"icon-[lucide--redo-2]"}))]),t("div",{class:"flex"},[t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${f()?"btn-active":""}`,onclick:()=>{let b=f();if(!b)e(s?.innerHTML||"");else if(s)s.innerHTML=e(),o();f(!b)}},t("span",{class:"icon-[lucide--code-2]"}))])]);return t("div",{class:c("border border-base-300 rounded-box bg-base-100 overflow-hidden",l)},[i,t("div",{class:"relative"},[t("div",{ref:(b)=>{if(!s&&b)s=b,b.innerHTML=N(r)||""},style:()=>`min-height:10rem;${f()?"display:none":""}`,class:"p-3 outline-none text-base-content [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:list-decimal [&_ol]:pl-6 [&_li]:list-item [&_p]:m-0 [&_div]:m-0 [&_br]:content-[''] [&_br]:block [&_br]:h-[1em]",contenteditable:"true",oninput:o,onpaste:()=>setTimeout(o,0)}),t("textarea",{class:"w-full min-h-[10rem] p-3 outline-none font-mono text-sm bg-base-200 border-0",style:()=>f()?"":"display:none",value:e,oninput:(b)=>e(b.target.value)})])])};var Wt={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"}},dn=d("es"),gn=(n)=>dn(n),Nn=(n)=>()=>Wt[dn()][n]||n;var mt={...tn,...rn},zt={Locale:gn,tt:Nn};if(typeof window<"u")Object.entries({...mt,...zt}).forEach(([n,r])=>{Object.defineProperty(window,n,{value:r,writable:!1,configurable:!0,enumerable:!0})}),console.log("SigProUI installed");export{zt as Utils,mt as Components};
+var kn=Object.defineProperty;var Kn=(n)=>n;function Pn(n,f){this[n]=Kn.bind(null,f)}var wn=(n,f)=>{for(var t in f)kn(n,t,{get:f[t],enumerable:!0,configurable:!0,set:Pn.bind(f,t)})};var _n={};wn(_n,{rand:()=>d,listKey:()=>Cn,isFn:()=>Q,getBy:()=>q,get:()=>A,filterBy:()=>yn,cls:()=>y,close:()=>Sn,Tooltip:()=>Zr,Toggle:()=>Tr,Toast:()=>Pr,Timeline:()=>Kr,Textarea:()=>Qr,TextRotate:()=>kr,Tabs:()=>Ar,Table:()=>Xr,Swap:()=>Lr,Steps:()=>Jr,Step:()=>jr,Stack:()=>zr,SkeletonText:()=>lr,Skeleton:()=>Wr,Select:()=>Cr,Rating:()=>yr,Range:()=>or,Radio:()=>Nr,Radial:()=>Er,Progress:()=>br,Navbar:()=>ar,Modal:()=>wr,Menu:()=>ur,Loading:()=>_r,List:()=>tr,Kbd:()=>fr,Input:()=>Jn,Indicator:()=>rr,Icon:()=>zn,Fileinput:()=>nr,Fieldset:()=>pn,Fab:()=>hn,Dropdown:()=>en,Drawer:()=>vn,Divider:()=>cn,Datepicker:()=>dn,Colorpicker:()=>mn,Checkbox:()=>Mn,ChatImage:()=>xn,ChatHeader:()=>sn,ChatFooter:()=>Fn,ChatBubble:()=>Rn,Chat:()=>gn,CarouselItem:()=>On,Carousel:()=>Dn,Card:()=>Hn,Calendar:()=>ln,Button:()=>Wn,Badge:()=>In,Autocomplete:()=>qn,Alert:()=>Vn,Accordion:()=>Un});var B=(n)=>typeof n==="function",rn=(n)=>n&&typeof n==="object",O=Array.isArray,S=typeof document<"u"?document:null,an=(n)=>n?._isRuntime?n.container:n instanceof Node?n:S.createTextNode(n==null?"":String(n)),K=null,G=null,F=!1,x=0,M=new Set,bn=new WeakMap,p=Symbol("iter"),nn=new WeakMap,H=(n)=>{if(!n||n._disposed)return;n._disposed=!0;let f=[n];while(f.length){let t=f.pop();if(t._cleanups)t._cleanups.forEach((_)=>_()),t._cleanups.clear();if(t._children)t._children.forEach((_)=>f.push(_)),t._children.clear();if(t._deps)t._deps.forEach((_)=>_.delete(t)),t._deps.clear()}},g=(n)=>{if(G)(G._cleanups||=new Set).add(n)},Tn=(n)=>{let f=K;K=null;try{return n()}finally{K=f}},s=(n,f=!1)=>{let t=()=>{if(t._disposed)return;if(t._deps)t._deps.forEach((u)=>u.delete(t));if(t._cleanups)t._cleanups.forEach((u)=>u()),t._cleanups.clear();let _=K,a=G;K=G=t;try{return t._result=n()}catch(u){console.error("[SigPro]",u)}finally{K=_,G=a}};if(t._deps=t._cleanups=t._children=null,t._disposed=!1,t._isComputed=f,t._depth=K?K._depth+1:0,t._mounts=[],t._parent=G,G)(G._children||=new Set).add(t);return t},Nn=()=>{if(F)return;F=!0;let n=Array.from(M).sort((f,t)=>f._depth-t._depth);M.clear();for(let f of n)if(!f._disposed)f();F=!1},Zn=(n)=>{x++;try{return n()}finally{if(x--,x===0&&M.size>0&&!F)Nn()}},Y=(n,f=!1)=>{if(!f&&K&&!K._disposed)n.add(K),(K._deps||=new Set).add(n);else if(f&&n.size>0){let t=!1;for(let _ of n){if(_===K||_._disposed)continue;if(_._isComputed){if(_._dirty=!0,_._subs)Y(_._subs,!0)}else M.add(_),t=!0}if(t&&!F&&x===0)queueMicrotask(Nn)}},L=(n,f=null)=>{let t=new Set;if(B(n)){let _,a=()=>{if(a._dirty){let u=K;K=a;try{let w=n();if(!Object.is(_,w))_=w,Y(t,!0)}finally{K=u}a._dirty=!1}return Y(t),_};if(a._isComputed=!0,a._subs=t,a._dirty=!0,a._deps=null,a._disposed=!1,a.stop=()=>{},G)g(a.stop);return a}if(f)try{n=JSON.parse(localStorage.getItem(f))??n}catch(_){}return(..._)=>{if(_.length){let a=B(_[0])?_[0](n):_[0];if(!Object.is(n,a)){if(n=a,f)localStorage.setItem(f,JSON.stringify(n));Y(t,!0)}}return Y(t),n}},on=(n)=>{if(!rn(n))return n;let f=bn.get(n);if(f)return f;let t=new Map,_=(u)=>{let w=t.get(u);if(!w)t.set(u,w=new Set);return w},a=new Proxy(n,{get(u,w,b){if(typeof w!=="symbol")Y(_(w));return on(Reflect.get(u,w,b))},set(u,w,b,E){let N=Reflect.has(u,w),o=Reflect.get(u,w,E),C=Reflect.set(u,w,b,E);if(C&&!Object.is(o,b)){if(Y(_(w),!0),!N)Y(_(p),!0)}return C},deleteProperty(u,w){let b=Reflect.deleteProperty(u,w);if(b)Y(_(w),!0),Y(_(p),!0);return b},ownKeys(u){return Y(_(p)),Reflect.ownKeys(u)}});return bn.set(n,a),a},I=(n,f)=>{if(f===void 0){let _=s(n);return _(),()=>H(_)}let t=s(()=>{let _=Array.isArray(n)?n.map((a)=>a()):n();Tn(()=>f(_))});return t(),()=>H(t)},fn=(n)=>{if(!n)return;if(n._cleanups)n._cleanups.forEach((f)=>f()),n._cleanups.clear();if(n._ownerEffect)H(n._ownerEffect);if(n.childNodes)n.childNodes.forEach((f)=>fn(f))},Gn=/^\s*(javascript|data|vbscript):/i,$n=(n)=>n==="src"||n==="href"||n.startsWith("on"),En=(n,f)=>{if(f==null||f===!1)return null;if($n(n)){let t=String(f);if(Gn.test(t))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${n}`),"#"}return f},r=(n,f={},t=[])=>{if(f instanceof Node||O(f)||!rn(f))t=f,f={};if(B(n)){let w=s(()=>{let o=n(f,{children:t,emit:(C,...J)=>f[`on${C[0].toUpperCase()}${C.slice(1)}`]?.(...J)});return w._result=o,o});w();let b=w._result;if(b==null)return null;let E=b instanceof Node||O(b)&&b.every((o)=>o instanceof Node)?b:S.createTextNode(String(b)),N=(o)=>{if(rn(o)&&!o._isRuntime)o._mounts=w._mounts||[],o._cleanups=w._cleanups||new Set,o._ownerEffect=w};return O(E)?E.forEach(N):N(E),E}let _=/^(svg|path|circle|rect|line|poly(line|gon)|g|defs|text(path)?|tspan|use|symbol|image|marker|ellipse)$/i.test(n),a=_?S.createElementNS("http://www.w3.org/2000/svg",n):S.createElement(n);a._cleanups=new Set;for(let w in f){if(!f.hasOwnProperty(w))continue;let b=f[w];if(w==="ref"){B(b)?b(a):b.current=a;continue}if(_&&w.startsWith("xlink:")){b==null?a.removeAttributeNS("http://www.w3.org/1999/xlink",w.slice(6)):a.setAttributeNS("http://www.w3.org/1999/xlink",w.slice(6),b);continue}if(w.startsWith("on")){let E=w.slice(2).toLowerCase();a.addEventListener(E,b);let N=()=>a.removeEventListener(E,b);a._cleanups.add(N),g(N)}else if(B(b)){let E=s(()=>{let N=En(w,b());if(w==="class")a.className=N||"";else if(N==null)a.removeAttribute(w);else if(w in a&&!_)a[w]=N;else a.setAttribute(w,N===!0?"":N)});if(E(),a._cleanups.add(()=>H(E)),g(()=>H(E)),/^(INPUT|TEXTAREA|SELECT)$/.test(a.tagName)&&(w==="value"||w==="checked")){let N=w==="checked"?"change":"input";a.addEventListener(N,(o)=>b(o.target[w]))}}else{let E=En(w,b);if(E!=null)if(w in a&&!_)a[w]=E;else a.setAttribute(w,E===!0?"":E)}}let u=(w)=>{if(O(w))return w.forEach(u);if(B(w)){let b=S.createTextNode("");a.appendChild(b);let E=[],N=s(()=>{let o=w(),C=(O(o)?o:[o]).map(an);E.forEach((j)=>{if(j._isRuntime)j.destroy();else fn(j);if(j.parentNode)j.remove()});let J=b;for(let j=C.length-1;j>=0;j--){let l=C[j];if(l.parentNode!==J.parentNode)J.parentNode?.insertBefore(l,J);if(l._mounts)l._mounts.forEach((z)=>z());J=l}E=C});N(),a._cleanups.add(()=>H(N)),g(()=>H(N))}else{let b=an(w);if(a.appendChild(b),b._mounts)b._mounts.forEach((E)=>E())}};return u(t),a},m=(n)=>{let f=new Set,t=G,_=K,a=S.createElement("div");a.style.display="contents",a.setAttribute("role","presentation"),G={_cleanups:f},K=null;let u=(w)=>{if(!w)return;if(w._isRuntime)f.add(w.destroy),a.appendChild(w.container);else if(O(w))w.forEach(u);else a.appendChild(w instanceof Node?w:S.createTextNode(String(w==null?"":w)))};try{u(n({onCleanup:(w)=>f.add(w)}))}finally{G=t,K=_}return{_isRuntime:!0,container:a,destroy:()=>{f.forEach((w)=>w()),fn(a),a.remove()}}},D=(n,f,t=null)=>{let _=S.createTextNode(""),a=r("div",{style:"display:contents"},[_]),u=null;return I(()=>!!(B(n)?n():n),(w)=>{if(u)u.destroy(),u=null;let b=w?f:t;if(b)u=m(()=>B(b)?b():b),a.insertBefore(u.container,_)}),g(()=>u?.destroy()),a},i=({name:n,duration:f=200,scale:t,slide:_,rotate:a,blur:u},w)=>{let b=typeof w==="function"?w():w;if(!(b instanceof Node))return b;if(n)return b.style.animation=`${n}-in ${f}ms`,b;let E=t||_||a||u,N=[t?"scale(0.95)":"",_?"translateY(-10px)":"",a?"rotate(-2deg)":""].filter(Boolean).join(" ");if(b.style.transition=`all ${f}ms ease`,b.style.opacity="0",E)b.style.transform=N;if(u)b.style.filter="blur(4px)";return requestAnimationFrame(()=>{if(b.style.opacity="1",E)b.style.transform="none";if(u)b.style.filter="none"}),b},U=(n,f,t)=>{let _=S.createTextNode(""),a=r("div",{style:"display:contents"},[_]),u=new Map;return I(()=>(B(n)?n():n)||[],(w)=>{let b=new Map,E=[],N=w||[];for(let C=0;Cf(J,C));else u.delete(j);b.set(j,l),E.push(l)}u.forEach((C)=>C.destroy());let o=_;for(let C=E.length-1;C>=0;C--){let J=E[C].container;if(J.nextSibling!==o)a.insertBefore(J,o);o=J}u=b}),a},R=(n)=>{let f=()=>window.location.hash.slice(1)||"/",t=L(f()),_=()=>t(f());window.addEventListener("hashchange",_),g(()=>window.removeEventListener("hashchange",_));let a=r("div",{class:"router-hook"}),u=null;return I([t],()=>{let w=t(),b=n.find((E)=>{let N=E.path.split("/").filter(Boolean),o=w.split("/").filter(Boolean);return N.length===o.length&&N.every((C,J)=>C[0]===":"||C===o[J])})||n.find((E)=>E.path==="*");if(b){u?.destroy();let E={};b.path.split("/").filter(Boolean).forEach((N,o)=>{if(N[0]===":")E[N.slice(1)]=w.split("/").filter(Boolean)[o]}),R.params(E),u=m(()=>B(b.component)?b.component(E):b.component),a.replaceChildren(u.container)}}),a};R.params=L({});R.to=(n)=>window.location.hash=n.replace(/^#?\/?/,"#/");R.back=()=>window.history.back();R.path=()=>window.location.hash.replace(/^#/,"")||"/";var Yn=({url:n,method:f="GET",headers:t={}})=>{let _=L(!1),a=L(null),u=L(null),w=null,b=null;return{run:async(E=null)=>{w?.abort(),clearTimeout(b),w=new AbortController,b=setTimeout(()=>w.abort(),1e4),_(!0),a(null);try{let N=E instanceof FormData,o=await fetch(n,{method:f,headers:N?t:{"Content-Type":"application/json",...t},body:N?E:E?JSON.stringify(E):void 0,signal:w.signal}),C=await o.text(),J=C?JSON.parse(C):null;if(!o.ok)throw Error(J?.message||o.statusText);return u(J),J}catch(N){if(N.name!=="AbortError")a(N.message);throw N}finally{_(!1),clearTimeout(b),w=null,b=null}},abort:()=>w?.abort(),loading:_,error:a,data:u}},tn=(n,f)=>{let t=typeof f==="string"?S.querySelector(f):f;if(!t)return;if(nn.has(t))nn.get(t).destroy();let _=m(B(n)?n:()=>n);return t.replaceChildren(_.container),nn.set(t,_),_},Bn=Object.freeze({$:L,$$:on,watch:I,h:r,when:D,each:U,fx:i,router:R,req:Yn,mount:tn,batch:Zn});if(typeof window<"u")Object.assign(window,Bn),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((n)=>{window[n]=(f,t)=>r(n,f,t)});var A=(n)=>typeof n==="function"?n():n,q=(n,f="label")=>n&&typeof n==="object"?n[f]:n,y=(...n)=>n.filter(Boolean).join(" ").trim(),Q=(n)=>typeof n==="function",yn=(n,f,t="label",_=String(f).toLowerCase())=>!f?A(n):A(n).filter((a)=>String(a&&typeof a==="object"?a[t]:a).toLowerCase().includes(_)),d=(n)=>`${n}-${Math.random().toString(36).slice(2,9)}`,Sn=()=>document.activeElement?.blur(),Cn=(n,f)=>{let t=L(-1);return I(()=>{if(!A(f))t(-1)}),{cursor:t,onKey:(a,u)=>{let w=A(n),b=t(),E=w.length;if(!E)return;let N=a.key;N==="ArrowDown"?(a.preventDefault(),f(!0),t(Math.min(b+1,E-1))):N==="ArrowUp"?(a.preventDefault(),t(Math.max(b-1,0))):N==="Enter"?b>=0&&(a.preventDefault(),u(w[b])):N==="Escape"&&f(!1)}}},Un=(n)=>{let f=n.name||d("acc");return U(n.items,(t)=>{return r("div",{class:y("collapse",n.class)},[r("input",{type:"radio",name:f,checked:t.open||void 0}),t.title?r("div",{class:y("collapse-title",`${t.classTitle??" font-semibold"}`)},t.title):null,t.content?r("div",{class:y("collapse-content text-sm",`${t.classContent??" font-semibold"}`)},t.content):null])})},Vn=(n,f)=>r("div",{...n,class:y("alert",n.class)},f),qn=({items:n,value:f,onselect:t,placeholder:_="Buscar...",...a})=>{let u=L(A(f)||""),w=L(!1),b=L(()=>yn(n,u())),{cursor:E,onKey:N}=Cn(b,w),o=(C)=>{let J=q(C),j=typeof C==="string"?C:C.value;if(u(J),Q(f))f(j);t?.(C),w(!1)};return r("div",{class:"relative w-full"},[Jn({...a,type:"text",placeholder:_,value:u,left:r("span",{class:"icon-[lucide--search]"}),oninput:(C)=>{if(u(C.target.value),Q(f))f(C.target.value);w(!0)},onfocus:()=>w(!0),onblur:()=>setTimeout(()=>w(!1),150),onkeydown:(C)=>N(C,o)}),D(w,()=>i({duration:200,slide:!0},r("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 flex-col flex-nowrap"},[U(b,(C,J)=>r("li",{},[r("a",{class:()=>E()===J?"active bg-primary text-primary-content":"",onmousedown:(j)=>j.preventDefault(),onclick:()=>o(C),onmouseenter:()=>E(J)},q(C))]),(C,J)=>q(C)+J),()=>b().length===0?r("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null])))])},In=(n,f)=>r("span",{...n,class:y("badge",n.class)},f),Wn=(n,f)=>r("button",{...n,class:y("btn",n.class)},f),ln=(n)=>{let f=L(new Date),t=L(null),_=L(0),a=L(0),u=new Date,w=`${u.getFullYear()}-${String(u.getMonth()+1).padStart(2,"0")}-${String(u.getDate()).padStart(2,"0")}`,b=(l)=>`${l.getFullYear()}-${String(l.getMonth()+1).padStart(2,"0")}-${String(l.getDate()).padStart(2,"0")}`,E=()=>A(n.range)===!0,N=()=>A(n.value),o=(l)=>{let z=b(l),T=N();if(E())if(!T?.start||T.start&&T.end)n.onChange?.({start:z,end:null,...n.hour&&{startHour:_()}});else{let Z=T.start,$=z{let z=f();f(new Date(z.getFullYear(),z.getMonth()+l,1))},J=(l)=>{let z=f();f(new Date(z.getFullYear()+l,z.getMonth(),1))},j=({value:l,onChange:z})=>r("div",{class:"flex-1"},[r("div",{class:"flex gap-2 items-center"},[r("input",{type:"range",min:0,max:23,value:l,class:"range range-xs flex-1",oninput:(T)=>z(+T.target.value)}),r("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(A(l)).padStart(2,"0")+":00")])]);return r("div",{class:y("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",n.class)},[r("div",{class:"flex justify-between items-center mb-4 gap-1"},[r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>J(-1)},r("span",{class:"icon-[lucide--chevrons-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>C(-1)},r("span",{class:"icon-[lucide--chevron-left]"}))]),r("span",{class:"font-bold uppercase flex-1 text-center"},()=>f().toLocaleString("es-ES",{month:"short",year:"numeric"})),r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>C(1)},r("span",{class:"icon-[lucide--chevron-right]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>J(1)},r("span",{class:"icon-[lucide--chevrons-right]"}))])]),r("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>t(null)},[...["L","M","X","J","V","S","D"].map((l)=>r("div",{class:"text-[10px] opacity-40 font-bold text-center"},l)),()=>{let l=f(),z=l.getFullYear(),T=l.getMonth(),Z=new Date(z,T,1).getDay(),$=Z===0?6:Z-1,v=new Date(z,T+1,0).getDate(),W=[];for(let X=0;X<$;X++)W.push(r("div"));for(let X=1;X<=v;X++){let k=new Date(z,T,X),P=b(k);W.push(r("button",{type:"button",class:()=>{let V=N(),c=t(),An=typeof V==="string"?V.split("T")[0]===P:V?.start===P,Qn=V?.end===P,e=!1;if(E()&&V?.start){let h=V.start;if(!V.end&&c)e=P>h&&P<=c||P=c;else if(V.end)e=P>h&&PE()&&t(P),onclick:()=>o(k)},X.toString()))}return W}]),n.hour?r("div",{class:"mt-3 pt-2 border-t border-base-300"},E()?r("div",{class:"flex gap-4"},[j({value:_,onChange:(l)=>_(l)}),j({value:a,onChange:(l)=>a(l)})]):j({value:_,onChange:(l)=>_(l)})):null])},Hn=(n,f)=>{if(!n.title&&!n.body&&!n.actions&&!f)return r("div",{...n,class:y("card",n.class)},f);return r("div",{...n,class:y("card",n.class)},[n.title&&r("div",{class:y("card-title",n.titleClass)},n.title),(n.body||f)&&r("div",{class:y("card-body",n.bodyClass)},n.body||f),n.actions&&r("div",{class:y("card-actions",n.actionsClass)},n.actions)].filter(Boolean))},Dn=(n,f)=>r("div",{...n,class:y("carousel",n.class)},f),On=(n,f)=>r("div",{...n,class:y("carousel-item",n.class)},f),gn=(n,f)=>r("div",{...n,class:y("chat",n.class)},f),Rn=(n,f)=>r("div",{...n,class:y("chat-bubble",n.class)},f),Fn=(n,f)=>r("div",{...n,class:y("chat-footer",n.class)},f),sn=(n,f)=>r("div",{...n,class:y("chat-header",n.class)},f),xn=(n,f)=>r("div",{...n,class:y("chat-image avatar",n.class)},r("div",{class:"w-10 rounded-full"},typeof f==="string"?r("img",{src:f,alt:"avatar"}):f)),Mn=(n)=>r("input",{...n,type:"checkbox",class:y("checkbox",n.class)}),mn=(n)=>{let f=L(!1),t=()=>A(n.value)||"#000000",_=["#000","#1A1A1A","#333","#4D4D4D","#666","#808080","#B3B3B3","#FFF","#450a0a","#7f1d1d","#991b1b","#b91c1c","#dc2626","#ef4444","#f87171","#fca5a5","#431407","#7c2d12","#9a3412","#c2410c","#ea580c","#f97316","#fb923c","#ffedd5","#713f12","#a16207","#ca8a04","#eab308","#facc15","#fde047","#fef08a","#fff9c4","#064e3b","#065f46","#059669","#10b981","#34d399","#4ade80","#84cc16","#d9f99d","#082f49","#075985","#0284c7","#0ea5e9","#38bdf8","#7dd3fc","#22d3ee","#cffafe","#1e1b4b","#312e81","#4338ca","#4f46e5","#6366f1","#818cf8","#a5b4fc","#e0e7ff","#2e1065","#4c1d95","#6d28d9","#7c3aed","#8b5cf6","#a855f7","#d946ef","#fae8ff"],a=(u)=>{Q(n.value)?n.value(u):n.onchange?.(u),f(!1)};return r("div",{class:y("relative w-fit",n.class)},[r("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:(u)=>{u.stopPropagation(),f(!f())}},[r("div",{class:"size-5 rounded-sm shadow-inner border border-black/10 shrink-0",style:()=>`background-color: ${t()}`}),n.label&&r("span",{class:"opacity-80"},n.label)]),D(f,()=>[r("div",{class:"fixed inset-0 z-[100]",onclick:()=>f(!1)}),r("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"},r("div",{class:"grid grid-cols-8 gap-1"},_.map((u)=>r("button",{type:"button",style:`background-color: ${u}`,class:()=>{return`size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${t().toLowerCase()===u.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>a(u)}))))])])},dn=(n)=>{let f=L(!1),t=L(""),_=()=>A(n.range)===!0;I(()=>{let u=A(n.value);if(!u)return t("");let w="";if(typeof u==="string")w=n.hour&&u.includes("T")?u.replace("T"," "):u;else if(u.start&&u.end){let b=n.hour&&u.startHour!=null?`${u.start} ${String(u.startHour).padStart(2,"0")}:00`:u.start,E=n.hour&&u.endHour!=null?`${u.end} ${String(u.endHour).padStart(2,"0")}:00`:u.end;w=`${b} - ${E}`}else if(u.start)w=`${n.hour&&u.startHour!=null?`${u.start} ${String(u.startHour).padStart(2,"0")}:00`:u.start}...`;t(w)});let a=(u)=>{if(Q(n.value))n.value(u);else n.onChange?.(u);if(!_()||u?.end!=null)f(!1)};return r("div",{class:y("relative w-full",n.class)},[r("label",{class:"input input-bordered w-full",onclick:(u)=>{u.stopPropagation(),f(!f())}},[r("span",{class:"icon-[lucide--calendar]"}),r("input",{...n,type:"text",class:"grow",value:t,readonly:!0,placeholder:n.placeholder||(_()?"Seleccionar rango...":"Seleccionar fecha...")})]),D(f,()=>[r("div",{class:"fixed inset-0 z-[90]",onclick:()=>f(!1)}),r("div",{class:"absolute left-0 mt-2 z-[100]",onclick:(u)=>u.stopPropagation()},ln({value:n.value,range:_(),hour:n.hour,onChange:a}))])])},vn=(n,f)=>{let t=n.id||d("drawer");return r("div",{class:y("drawer",n.class)},[r("input",{id:t,type:"checkbox",class:"drawer-toggle",checked:()=>A(n.open),onchange:(_)=>Q(n.open)&&n.open(_.target.checked)}),r("div",{class:"drawer-side"},[r("label",{for:t,class:"drawer-overlay",onclick:()=>Q(n.open)&&n.open(!1)}),r("div",{class:"min-h-full bg-base-200 w-80 p-4"},()=>A(n.side))]),r("div",{class:"drawer-content"},f)])},cn=(n)=>r("div",{...n,class:y("divider",n.class)}),en=(n,f)=>{return r("div",{...n,class:y("dropdown",n.class)},[r("div",{tabindex:"0",role:"button",class:y("btn",n.buttonClass)},n.label),r("div",{tabindex:"-1",class:"dropdown-content"},f)])},hn=(n,f)=>r("div",{class:"fab"},[r("div",{tabindex:"0",role:"button",class:y("btn",n.class)},zn(n.icon)),f]),pn=(n,f)=>r("fieldset",{class:y("fieldset",n.class)},[r("legend",{class:"fieldset-legend"},n.label),f]),nr=(n)=>{let f=L([]),t=L(!1),_=L(null),a=(n.max||2)*1024*1024,u=(b)=>{let E=Array.from(b);if(_(null),E.some((o)=>o.size>a)){_(`Máx ${n.max||2}MB`);return}let N=[...f(),...E];if(f(N),Q(n.onselect))n.onselect(N);else if(Q(n.value))n.value(N)},w=(b)=>{let E=f().filter((N,o)=>o!==b);if(f(E),Q(n.onselect))n.onselect(E);else if(Q(n.value))n.value(E)};return r("div",{class:y("fieldset w-full p-0",n.class)},[r("label",{class:()=>`relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${t()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(b)=>{b.preventDefault(),t(!0)},ondragleave:()=>t(!1),ondrop:(b)=>{b.preventDefault(),t(!1),u(b.dataTransfer.files)}},[r("div",{class:"flex items-center gap-3 w-full"},[r("span",{class:"icon-[lucide--upload]"}),r("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),r("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${n.max||2}MB`)]),r("input",{type:"file",multiple:!0,accept:n.accept||"*",class:"hidden",onchange:(b)=>u(b.target.files)})]),()=>_()&&r("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},_()),D(()=>f().length>0,()=>r("ul",{class:"mt-2 space-y-1"},U(f,(b,E)=>r("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[r("div",{class:"flex items-center gap-2 truncate"},[r("span",{class:"opacity-50"},"\uD83D\uDCC4"),r("span",{class:"truncate font-medium max-w-[200px]"},b.name),r("span",{class:"text-[9px] opacity-40"},`(${(b.size/1024).toFixed(0)} KB)`)]),r("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(N)=>{N.preventDefault(),w(E)}},r("span",{class:"icon-[lucide--x]"}))]))))])},zn=(n)=>r("span",{class:n.startsWith("icon-")?n:""},n.startsWith("icon-")?null:n),rr=(n,f)=>r("div",{...n,class:y("indicator",n.class)},[n.value&&r("span",{class:y("indicator-item badge",n.class)},n.value),f]),Jn=(n)=>{let{label:f,icon:t,float:_,placeholder:a,value:u,left:w,right:b,rule:E,hint:N,content:o,...C}=n,J=L(!1),j=L(!1),l=n.type==="password",z=E??null,T=()=>l?A(J)?"text":"password":n.type||"text";return r("div",{class:"input-container",onfocusin:()=>j(!0),onfocusout:(Z)=>{if(!Z.currentTarget.contains(Z.relatedTarget))j(!1)}},[r("label",{class:_?"floating-label":""},[_?r("span",{},f):null,r("label",{pattern:z,class:()=>y("input validator",n.class)},[f&&!_?r("span",{class:"label"},f):null,w??null,r("input",{...C,type:T,class:"grow",pattern:z,placeholder:a||f||" ",value:u}),b??null,l?r("label",{class:"swap swap-rotate ml-2"},[r("input",{type:"checkbox",onchange:(Z)=>J(Z.target.checked)}),r("span",{class:"swap-on icon-[lucide--eye]"}),r("span",{class:"swap-off icon-[lucide--eye-off]"})]):null]),N?r("div",{class:"validator-hint"},N):null,D(j,()=>i({duration:300,slide:!0},r("div",{class:"input-content",onmousedown:(Z)=>Z.preventDefault()},[Q(o)?o(j):o])))])])},fr=(n,f)=>r("kbd",{...n,class:y("kbd",n.class)},f),tr=(n,f)=>{if(!n.items)return r("ul",{...n,class:y("list",n.class)},f);return r("ul",{...n,class:y("list",n.class)},[U(n.items,(t,_)=>r("li",{class:y("list-row",t.class)},typeof n.render==="function"?n.render(t,_):t),n.key)])},_r=(n,f)=>r("span",{...n,class:y("loading loading-spinner",n.class)},f),ur=(n)=>{if(n.children!==void 0)return r("ul",{class:y("menu",n.class),...n},n.children);let{items:f}=n,t=(_)=>_.children?r("li",{},r("details",{open:_.open||void 0},[r("summary",{},q(_)),r("ul",{},U(()=>A(_.children)||[],t))])):r("li",{},r("a",{href:_.href,onclick:_.onclick?(a)=>{if(!_.href)a.preventDefault();_.onclick(a)}:null},q(_)));return r("ul",{class:y("menu",n.class)},U(()=>A(f)||[],t))},wr=(n)=>{let f=null;I(()=>{let _=A(n.open);if(!f)return;_?f.showModal():f.close()});let t=()=>Q(n.open)&&n.open(!1);return r("dialog",{...n,ref:(_)=>f=_,class:y("modal",n.class),onclose:t,oncancel:t},[r("div",{class:"modal-box"},[n.title&&r("h3",{class:"text-lg font-bold"},n.title),n.children,r("div",{class:"modal-action"},[n.actions||Wn({class:"btn",onclick:t},"Cerrar")])]),r("form",{method:"dialog",class:"modal-backdrop"},[r("button",{},"close")])])},ar=(n,f)=>r("div",{...n,class:y("navbar",n.class)},f),br=(n)=>r("progress",{...n,class:y("progress",n.class)}),Er=(n,f)=>r("div",{...n,class:y("radial-progress",n.class),style:`--value:${n.value??0};${n.style??""}`,role:"progressbar","aria-valuenow":n.value??0},f??`${n.value??0}%`),Nr=(n)=>r("input",{...n,type:"radio",class:y("radio",n.class)}),or=(n)=>r("input",{...n,type:"range",class:y("range",n.class)}),yr=(n)=>{let f=d("rating"),t=n.children??Array.from({length:n.count||5},(_,a)=>{let u=a+1;return r("input",{type:"radio",name:f,class:y("mask",n.mask||"mask-star"),checked:()=>A(n.value)===u,onchange:()=>Q(n.value)?n.value(u):n.onchange?.(u)})});return r("div",{class:y("rating",n.class),...n},t)},Cr=(n,f)=>{if(f!==void 0)return r("select",{class:y("select",n.class),...n},f);let{label:t,float:_,placeholder:a,placeholderDisabled:u=!0,value:w,left:b,right:E,hint:N,items:o,keyFn:C,...J}=n,j=()=>{let l=A(o)||[];return[...a?[{disabled:u,label:a,value:""}]:[],...l]};return r("label",{class:_?"floating-label":""},[_?r("span",{},t):null,r("label",{class:y("select",J.class)},[!_&&t?r("span",{class:"label"},t):null,b??null,r("select",{value:()=>A(w),onchange:(l)=>Q(w)?w(l.target.value):J.onchange?.(l)},U(j,(l)=>{let z=q(l,l.value!==void 0?"value":void 0),T=q(l,"label");return r("option",{value:z,disabled:l.disabled||void 0},T)})),E??null]),N?r("div",{class:"validator-hint"},N):null])},Wr=(n)=>r("div",{...n,class:y("skeleton",n.class)}),lr=(n)=>r("span",{...n,class:y("skeleton skeleton-text",n.class)}),zr=(n,f)=>r("div",{...n,class:y("stack",n.class)},f),Jr=(n,f)=>r("ul",{...n,class:y("steps",n.class)},f),jr=(n,f)=>r("li",{...n,class:y("step",n.class),"data-content":n.dataContent},f),Lr=(n)=>r("label",{...n,class:y("swap",n.class)},[r("input",{type:"checkbox",checked:()=>A(n.value),onchange:(f)=>Q(n.value)&&n.value(f.target.checked)}),r("div",{class:"swap-on"},n.on),r("div",{class:"swap-off"},n.off)]),Xr=(n)=>{if(n.children!==void 0)return r("table",{class:y("table",n.class),...n},n.children);let{items:f,columns:t=[],header:_=!0,keyFn:a,...u}=n,w=_!==!1&&t.some((E)=>E.label)?r("thead",{},r("tr",{},t.map((E)=>r("th",{class:E.class},E.label)))):null,b=r("tbody",{},U(()=>A(f)||[],(E,N)=>r("tr",{},t.map((o)=>{let C=o.render?o.render(E,N):E[o.key];return r("td",{class:o.class},C)}))));return r("table",{class:y("table",u.class),...u},[w,b])},Ar=(n,f)=>{if(!n.items){let{class:N,...o}=n;return r("div",{...o,class:y("tabs",N)},f)}let{items:t,activeIndex:_,onClose:a,class:u,...w}=n,b=(N)=>Q(N)?N():N,E=a||(Q(t)?(N,o)=>{let J=b(t).filter((j,l)=>l!==N);if(t(J),_()>=J.length)_(Math.max(0,J.length-1))}:null);return r("div",{...w,class:y("tabs",u)},()=>{return(b(t)||[]).flatMap((o,C)=>{let J=()=>_()===C,j=r("button",{class:()=>`tab ${J()?"tab-active":""} ${o.class||""}`,onclick:(z)=>{z.preventDefault(),_(C),o.onclick?.(z)}},[q(o),o.closable?r("span",{class:"ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",onclick:(z)=>{z.stopPropagation(),E?.(C,o)}},r("span",{class:"icon-[lucide--x] w-3 h-3"})):null]),l=r("div",{class:"tab-content bg-base-100 border-base-300 p-6",style:()=>`display: ${J()?"block":"none"};`},Q(o.content)?o.content():o.content);return[j,l]})})},Qr=(n)=>r("textarea",{...n,class:y("textarea",n.class)}),kr=(n)=>{let f=Array.isArray(n.words)?n.words:typeof n.words==="string"?n.words.split(","):[];return r("span",{...n,class:y("text-rotate",n.class)},r("span",{},f.map((t)=>r("span",{},t))))},Kr=(n,f)=>r("ul",{...n,class:y("timeline",n.class)},f),Pr=(n,f="alert-success",t=3500)=>{let _=document.getElementById("sigpro-toast-container");if(!_)_=r("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(_);let a=r("div",{style:"display: contents"});_.appendChild(a);let u,w,b,N=tn(()=>{let o=L(!1),C=L(!1);u=()=>{if(C())return;clearTimeout(w),clearTimeout(b),C(!0),setTimeout(()=>{if(N.destroy(),a.remove(),!_.hasChildNodes())_.remove()},300)},b=setTimeout(()=>o(!0),0);let J=typeof n==="function"?A(n):n,j=typeof J==="string"?r("span",{},J):J;return r("div",{class:()=>{if(C())return`alert alert-soft ${f} shadow-lg transition-all duration-300 translate-x-full opacity-0 pointer-events-auto`;if(o())return`alert alert-soft ${f} shadow-lg transition-all duration-300 translate-x-0 opacity-100 pointer-events-auto`;return`alert alert-soft ${f} shadow-lg transition-all duration-300 translate-x-10 opacity-0 pointer-events-auto`}},[j,r("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:u},r("span",{class:"icon-[lucide--x]"}))])},a);if(t>0)w=setTimeout(u,t);return u},Tr=(n)=>r("input",{...n,type:"checkbox",class:y("toggle",n.class)}),Zr=(n,f)=>r("div",{...n,class:y("tooltip",n.class),"data-tip":n.tip},f);var un={};wn(un,{Editor:()=>Gr});var Gr=(n)=>{let{value:f,class:t}=n,_=null,a=null,u=L(!1),w=L(""),b=L(0),E=L(0),N=L(!1),o=["\uD83D\uDE00","\uD83D\uDE0A","\uD83D\uDE09","\uD83E\uDDD0","\uD83D\uDE2E","\uD83E\uDD14","\uD83D\uDE05","\uD83D\uDE02","\uD83D\uDE0D","\uD83D\uDE18","\uD83E\uDD70","\uD83D\uDC4D","\uD83D\uDC4E","\uD83D\uDC4C","\uD83E\uDD1D","\uD83E\uDD1E","\uD83D\uDC4B","\uD83D\uDC4F","\uD83D\uDE4C","\uD83D\uDE4F","\uD83D\uDCAA","☝️","\uD83D\uDC47","\uD83D\uDC48","\uD83D\uDC49","\uD83D\uDD95","✅","⚠️","\uD83D\uDE80","\uD83D\uDCE2","✉️","❤️"],C=()=>{let W=window.getSelection();if(W.getRangeAt&&W.rangeCount)a=W.getRangeAt(0)},J=()=>{if(a){let W=window.getSelection();W.removeAllRanges(),W.addRange(a)}},j=()=>{if(E(E()+1),_)b(_.innerText.length)},l=()=>{if(!_)return;let W=_.innerHTML;if(Q(f))f(W);else n.onchange?.(W);j()},z=(W,X=null)=>{if(!_)return;if(_.focus(),a)J();document.execCommand(W,!1,X),a=null,l()},T=(W)=>{let X=document.createElement("div");X.style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;";let k=document.createElement("img");k.src=W,k.style="max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;",X.onclick=()=>document.body.removeChild(X),X.appendChild(k),document.body.appendChild(X)},Z=(W)=>{if(!W)return;let X=new FileReader;X.onload=(k)=>{if(W.type.startsWith("image/")){let P=` `;z("insertHTML",P)}else{let P=`${W.name} `;z("insertHTML",P)}},X.readAsDataURL(W)},$=(W,X=null)=>{if(E(),!_||u())return!1;try{if(W==="formatBlock"){let k=window.getSelection().getRangeAt(0).commonAncestorContainer;while(k&&k!==_){if(k.nodeType===1&&k.tagName===X)return!0;k=k.parentNode}return!1}return document.queryCommandState(W)}catch(k){return!1}},v=r("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20"},[r("div",{class:"flex flex-wrap gap-1 flex-1 items-center"},[r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${$("bold")?"btn-active bg-primary/20":""}`,onclick:()=>z("bold")},r("span",{class:"icon-[lucide--bold]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${$("italic")?"btn-active bg-primary/20":""}`,onclick:()=>z("italic")},r("span",{class:"icon-[lucide--italic]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${$("underline")?"btn-active bg-primary/20":""}`,onclick:()=>z("underline")},r("span",{class:"icon-[lucide--underline]"})),r("input",{type:"color",class:"w-5 h-5 p-0 border-0 bg-transparent cursor-pointer",oninput:(W)=>z("foreColor",W.target.value)}),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("justifyLeft")},r("span",{class:"icon-[lucide--align-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("justifyCenter")},r("span",{class:"icon-[lucide--align-center]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("justifyRight")},r("span",{class:"icon-[lucide--align-right]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("insertUnorderedList")},r("span",{class:"icon-[lucide--list]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("insertOrderedList")},r("span",{class:"icon-[lucide--list-ordered]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("outdent"),title:"Mover izquierda"},r("span",{class:"icon-[lucide--indent-decrease]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("indent"),title:"Mover derecha (Tab)"},r("span",{class:"icon-[lucide--indent-increase]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${$("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>z("formatBlock",$("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},r("span",{class:"icon-[lucide--quote]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let W=window.prompt("URL:");if(W)z("createLink",W)}},r("span",{class:"icon-[lucide--link]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let W=document.createElement("input");W.type="file",W.onchange=(X)=>Z(X.target.files[0]),W.click()}},r("span",{class:"icon-[lucide--paperclip]"})),r("div",{class:"relative"},[r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:(W)=>{W.stopPropagation(),C(),N(!N())}},r("span",{class:"icon-[lucide--smile]"})),r("div",{class:"absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1",style:()=>N()?"display:flex":"display:none"},o.map((W)=>r("span",{class:"cursor-pointer hover:bg-base-200 p-1 rounded text-lg",onclick:(X)=>{X.stopPropagation(),z("insertText",W),N(!1)}},W)))]),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("removeFormat")},r("span",{class:"icon-[lucide--eraser]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("undo"),title:"Deshacer"},r("span",{class:"icon-[lucide--undo-2]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("redo"),title:"Rehacer"},r("span",{class:"icon-[lucide--redo-2]"}))]),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u()?"btn-active":""}`,onclick:()=>{if(!u())w(_?.innerHTML||"");else if(_)_.innerHTML=w(),l();u(!u())}},r("span",{class:"icon-[lucide--code-2]"}))]);if(typeof document<"u"&&!document.getElementById("editor-styles")){let W=document.createElement("style");W.id="editor-styles",W.textContent=`
+ [contenteditable="true"] div,
+ [contenteditable="true"] p {
+ margin: 0;
+ padding: 0;
+ }
+ `,document.head.appendChild(W)}return r("div",{class:y("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col",t)},[v,r("div",{class:"relative flex-1 flex flex-col",onclick:()=>N(!1)},[r("div",{ref:(W)=>{if(!_&&W)_=W,W.innerHTML=A(f)||"",document.execCommand("defaultParagraphSeparator",!1,"br"),W.addEventListener("click",(X)=>{let k=X.target.closest(".resizable-img-container");if(k){let P=k.querySelector("img");if(P)T(P.src)}})},style:()=>`min-height:22rem;${u()?"display:none":""}`,class:"p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",contenteditable:"true",oninput:l,onkeydown:(W)=>{if(W.key==="Tab")W.preventDefault(),z("indent")},onkeyup:()=>{j(),C()},onclick:(W)=>{j(),C(),W.stopPropagation()},onmouseup:()=>{l(),C()},onpaste:(W)=>{W.preventDefault();let X=W.clipboardData.getData("text/plain");z("insertText",X)},ondragover:(W)=>W.preventDefault(),ondrop:(W)=>{W.preventDefault(),Z(W.dataTransfer.files[0])}}),r("textarea",{class:"w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",style:()=>u()?"":"display:none",value:w,oninput:(W)=>{if(w(W.target.value),_)_.innerHTML=W.target.value;n.onchange?.(W.target.value)}})]),r("div",{class:"px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic"},[r("span",()=>`${b()} caracteres`)])])};var $r={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"}},jn=L("es"),Ln=(n)=>jn(n),Xn=(n)=>()=>$r[jn()][n]||n;var Yr={..._n,...un},Br={Locale:Ln,tt:Xn};if(typeof window<"u")Object.entries({...Yr,...Br}).forEach(([n,f])=>{Object.defineProperty(window,n,{value:f,writable:!1,configurable:!0,enumerable:!0})}),console.log("SigProUI installed");export{Br as Utils,Yr as Components};
diff --git a/dist/sigpro-ui.js b/dist/sigpro-ui.js
index d237738..e993562 100644
--- a/dist/sigpro-ui.js
+++ b/dist/sigpro-ui.js
@@ -47,12 +47,14 @@
// components/All.js
var exports_All = {};
__export(exports_All, {
+ rand: () => rand,
listKey: () => listKey,
isFn: () => isFn,
getBy: () => getBy,
get: () => get,
filterBy: () => filterBy,
cls: () => cls,
+ close: () => close,
Tooltip: () => Tooltip,
Toggle: () => Toggle,
Toast: () => Toast,
@@ -77,6 +79,7 @@
Modal: () => Modal,
Menu: () => Menu,
Loading: () => Loading,
+ List: () => List,
Kbd: () => Kbd,
Input: () => Input,
Indicator: () => Indicator,
@@ -97,9 +100,6 @@
Chat: () => Chat,
CarouselItem: () => CarouselItem,
Carousel: () => Carousel,
- CardTitle: () => CardTitle,
- CardBody: () => CardBody,
- CardActions: () => CardActions,
Card: () => Card,
Calendar: () => Calendar,
Button: () => Button,
@@ -467,7 +467,7 @@
return R(() => (y(e) ? e() : e) || [], (t) => {
let r = new Map, l = [], u = t || [];
for (let f = 0;f < u.length; f++) {
- let h = u[f], d = n ? n(h, f) : h?.id ?? f, m = c.get(d);
+ let h = u[f], d = n ? h?.[n] ?? f : h?.id ?? f, m = c.get(d);
if (!m)
m = j(() => o(h, f));
else
@@ -546,14 +546,9 @@
var getBy = (item, field = "label") => item && typeof item === "object" ? item[field] : item;
var cls = (...classes) => classes.filter(Boolean).join(" ").trim();
var isFn = (f) => typeof f === "function";
- var filterBy = (items, query, field = "label") => {
- const searchTerm = String(query).toLowerCase();
- const list = get(items);
- return !searchTerm ? list : list.filter((item) => {
- const text = item && typeof item === "object" ? item[field] : item;
- return String(text).toLowerCase().includes(searchTerm);
- });
- };
+ var filterBy = (items, query, field = "label", q2 = String(query).toLowerCase()) => !query ? get(items) : get(items).filter((item) => String(item && typeof item === "object" ? item[field] : item).toLowerCase().includes(q2));
+ var rand = (r) => `${r}-${Math.random().toString(36).slice(2, 9)}`;
+ var close = () => document.activeElement?.blur();
var listKey = (items, isOpen) => {
const cursor = S(-1);
R(() => {
@@ -569,202 +564,17 @@
};
return { cursor, onKey };
};
- var Alert = (p2, c) => O("div", { ...p2, class: cls("alert", p2.class) }, c);
- var Badge = (p2, c) => O("span", { ...p2, class: cls("badge", p2.class) }, c);
- var Button = (p2, c) => O("button", { ...p2, class: cls("btn", p2.class) }, c);
- var Card = (p2, c) => O("div", { ...p2, class: cls("card", p2.class) }, c);
- var CardTitle = (p2, c) => O("div", { ...p2, class: cls("card-title", p2.class) }, c);
- var CardBody = (p2, c) => O("div", { ...p2, class: cls("card-body", p2.class) }, c);
- var CardActions = (p2, c) => O("div", { ...p2, class: cls("card-actions", p2.class) }, c);
- var Carousel = (p2, c) => O("div", { ...p2, class: cls("carousel", p2.class) }, c);
- var CarouselItem = (p2, c) => O("div", { ...p2, class: cls("carousel-item", p2.class) }, c);
- var Chat = (p2, c) => O("div", { ...p2, class: cls("chat", p2.class) }, c);
- var ChatBubble = (p2, c) => O("div", { ...p2, class: cls("chat-bubble", p2.class) }, c);
- var ChatFooter = (p2, c) => O("div", { ...p2, class: cls("chat-footer", p2.class) }, c);
- var ChatHeader = (p2, c) => O("div", { ...p2, class: cls("chat-header", p2.class) }, c);
- var ChatImage = (p2, c) => O("div", { ...p2, class: cls("chat-image avatar", p2.class) }, O("div", { class: "w-10 rounded-full" }, typeof c === "string" ? O("img", { src: c, alt: "avatar" }) : c));
- var Checkbox = (p2) => O("input", { ...p2, type: "checkbox", class: cls("checkbox", p2.class) });
- var Divider = (p2) => O("div", { ...p2, class: cls("divider", p2.class) });
- var Fab = (p2, c) => O("div", { ...p2, class: cls("fab", p2.class) }, c);
- var Fieldset = (p2, c) => O("fieldset", { ...p2, class: cls("fieldset", p2.class) }, [p2.legend && O("legend", { class: "fieldset-legend" }, p2.legend), c]);
- var Icon = (p2) => O("span", { class: p2.startsWith("icon-") ? p2 : "" }, p2.startsWith("icon-") ? null : p2);
- var Indicator = (p2, c) => O("div", { ...p2, class: cls("indicator", p2.class) }, [p2.value && O("span", { class: cls("indicator-item badge", p2.class) }, p2.value), c]);
- var Kbd = (p2, c) => O("kbd", { ...p2, class: cls("kbd", p2.class) }, c);
- var Loading = (p2, c) => O("span", { ...p2, class: cls("loading loading-spinner", p2.class) }, c);
- var Navbar = (p2, c) => O("div", { ...p2, class: cls("navbar", p2.class) }, c);
- var Progress = (p2) => O("progress", { ...p2, class: cls("progress", p2.class) });
- var Radial = (p2, c) => O("div", { ...p2, class: cls("radial-progress", p2.class), style: `--value:${p2.value ?? 0};${p2.style ?? ""}`, role: "progressbar", "aria-valuenow": p2.value ?? 0 }, c ?? `${p2.value ?? 0}%`);
- var Radio = (p2) => O("input", { ...p2, type: "radio", class: cls("radio", p2.class) });
- var Range = (p2) => O("input", { ...p2, type: "range", class: cls("range", p2.class) });
- var Skeleton = (p2) => O("div", { ...p2, class: cls("skeleton", p2.class) });
- var SkeletonText = (p2) => O("span", { ...p2, class: cls("skeleton skeleton-text", p2.class) });
- var Stack = (p2, c) => O("div", { ...p2, class: cls("stack", p2.class) }, c);
- var Steps = (p2, c) => O("ul", { ...p2, class: cls("steps", p2.class) }, c);
- var Step = (p2, c) => O("li", { ...p2, class: cls("step", p2.class), "data-content": p2.dataContent }, c);
- var Swap = (p2) => O("label", { ...p2, class: cls("swap", p2.class) }, [
- O("input", { type: "checkbox", checked: () => get(p2.value), onchange: (e) => isFn(p2.value) && p2.value(e.target.checked) }),
- O("div", { class: "swap-on" }, p2.on),
- O("div", { class: "swap-off" }, p2.off)
- ]);
- var Textarea = (p2) => O("textarea", { ...p2, class: cls("textarea", p2.class) });
- var TextRotate = (p2) => {
- const words = Array.isArray(p2.words) ? p2.words : typeof p2.words === "string" ? p2.words.split(",") : [];
- return O("span", { ...p2, class: cls("text-rotate", p2.class) }, O("span", {}, words.map((w2) => O("span", {}, w2))));
- };
- var Timeline = (p2, c) => O("ul", {
- ...p2,
- class: cls("timeline", p2.vertical !== false ? "timeline-vertical" : "timeline-horizontal", p2.compact ? "timeline-compact" : "", p2.class)
- }, c);
- var Toggle = (p2) => O("input", { ...p2, type: "checkbox", class: cls("toggle", p2.class) });
- var Tooltip = (p2, c) => O("div", { ...p2, class: cls("tooltip", p2.class), "data-tip": p2.tip }, c);
var Accordion = (p2) => {
- const name = p2.name || `acc-${Math.random().toString(36).slice(2)}`;
- const base = cls("collapse", p2.variant && `collapse-${p2.variant}`, p2.class);
- const itemFn = (it) => {
- const t = getBy(it, "title");
- const c = it.content;
- return p2.type === "details" ? O("details", { class: base, name, open: it.open || undefined }, O("summary", { class: "collapse-title font-semibold" }, t), c ? O("div", { class: "collapse-content text-sm" }, c) : null) : O("div", { class: base }, O("input", { type: "radio", name, checked: it.open || undefined }), O("div", { class: "collapse-title font-semibold" }, t), c ? O("div", { class: "collapse-content text-sm" }, c) : null);
- };
- return isFn(p2.items) ? K(p2.items, itemFn, (it, i) => it?.id ?? i) : (p2.items || []).map(itemFn);
- };
- var Table = (p2) => {
- if (p2.children !== undefined)
- return O("table", { class: cls("table", p2.class), ...p2 }, p2.children);
- const { items, columns = [], header = true, keyFn, ...rest } = p2;
- const hd = header !== false && columns.some((c) => c.label) ? O("thead", {}, O("tr", {}, columns.map((c) => O("th", { class: c.class }, c.label)))) : null;
- const bd = O("tbody", {}, K(() => get(items) || [], (it, idx) => O("tr", {}, columns.map((c) => {
- const v2 = c.render ? c.render(it, idx) : it[c.key];
- return O("td", { class: c.class }, v2);
- })), keyFn || ((it, idx) => it?.id ?? idx)));
- return O("table", { class: cls("table", rest.class), ...rest }, [hd, bd]);
- };
- var Tabs = (p2) => {
- if (p2.children !== undefined)
- return O("div", { class: cls("tabs", p2.class), ...p2 }, p2.children);
- const { items, activeIndex, onClose, ...rest } = p2;
- const closeHandler = onClose || (isFn(items) ? (idx) => {
- const arr = get(items);
- const newArr = arr.filter((_2, i) => i !== idx);
- items(newArr);
- if (activeIndex() >= newArr.length)
- activeIndex(Math.max(0, newArr.length - 1));
- } : null);
- return O("div", { class: cls("tabs", p2.class), ...rest }, K(() => get(items) || [], (it, idx) => {
- const act = () => activeIndex() === idx;
- return [
- O("a", {
- role: "tab",
- class: () => `tab ${act() ? "tab-active" : ""} ${it.class || ""}`,
- onclick: (e) => {
- e.preventDefault();
- activeIndex(idx);
- it.onclick?.(e);
- }
- }, getBy(it), it.closable ? O("span", {
- class: "icon-[lucide--x] w-3.5 h-3.5 ml-2 cursor-pointer hover:opacity-70",
- onclick: (e) => {
- e.stopPropagation();
- closeHandler?.(idx);
- }
- }) : null),
- O("div", {
- class: `tab-content ${it.contentClass || ""}`,
- style: () => `display: ${act() ? "block" : "none"};`
- }, isFn(it.content) ? it.content() : it.content)
- ];
- }, (it, idx) => it.id ?? idx));
- };
- var Rating = (p2) => {
- const name = `rating-${Math.random().toString(36).slice(2, 7)}`;
- const stars = p2.children ?? Array.from({ length: p2.count || 5 }, (_2, i) => {
- const v2 = i + 1;
- return O("input", {
- type: "radio",
- name,
- class: cls("mask", p2.mask || "mask-star"),
- checked: () => get(p2.value) === v2,
- onchange: () => isFn(p2.value) ? p2.value(v2) : p2.onchange?.(v2)
- });
+ const name = p2.name || rand("acc");
+ return K(p2.items, (it) => {
+ return O("div", { class: cls("collapse", p2.class) }, [
+ O("input", { type: "radio", name, checked: it.open || undefined }),
+ it.title ? O("div", { class: cls("collapse-title", `${it.classTitle ?? " font-semibold"}`) }, it.title) : null,
+ it.content ? O("div", { class: cls("collapse-content text-sm", `${it.classContent ?? " font-semibold"}`) }, it.content) : null
+ ]);
});
- return O("div", { class: cls("rating", p2.class), ...p2 }, stars);
- };
- var Menu = (p2) => {
- if (p2.children !== undefined)
- return O("ul", { class: cls("menu", p2.class), ...p2 }, p2.children);
- const { items, keyFn = (it, idx) => it?.id ?? idx, ...rest } = p2;
- const render = (item) => item.children ? O("li", {}, O("details", {}, O("summary", {}, getBy(item)), O("ul", {}, Menu({ items: item.children })))) : O("li", {}, O("a", {
- href: item.href,
- onclick: item.onclick ? (e) => {
- if (!item.href)
- e.preventDefault();
- item.onclick(e);
- } : null
- }, getBy(item)));
- return O("ul", { class: cls("menu", rest.class), ...rest }, K(() => get(items) || [], render, keyFn));
- };
- var Drawer = (p2, c) => {
- const id = p2.id || `drawer-${Math.random().toString(36).slice(2, 9)}`;
- return O("div", { class: cls("drawer", p2.class) }, [
- O("input", {
- id,
- type: "checkbox",
- class: "drawer-toggle",
- checked: () => get(p2.open),
- onchange: (e) => isFn(p2.open) && p2.open(e.target.checked)
- }),
- O("div", { class: "drawer-content" }, c),
- O("div", { class: "drawer-side" }, [
- O("label", {
- for: id,
- class: "drawer-overlay",
- onclick: () => isFn(p2.open) && p2.open(false)
- }),
- O("div", { class: "min-h-full bg-base-200 w-80 p-4" }, () => get(p2.side))
- ])
- ]);
- };
- var Dropdown = (p2, c) => {
- const { trigger, items, ...rest } = p2;
- const content = c || (items ? O("ul", {
- class: "menu dropdown-content bg-base-100 rounded-box z-[1] w-52 p-2 shadow"
- }, K(() => get(items) || [], (item) => O("li", {}, O("a", {
- onclick: (e) => {
- item.onclick?.(e);
- e.currentTarget.closest("details").open = false;
- }
- }, getBy(item))), (it, idx) => it.id ?? idx)) : null);
- return O("details", { class: cls("dropdown", rest.class), ...rest }, [
- O("summary", { class: "btn m-1" }, trigger || "Dropdown"),
- content
- ]);
- };
- var Select = (p2, c) => {
- if (c !== undefined)
- return O("select", { class: cls("select", p2.class), ...p2 }, c);
- const { label, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p2;
- const opts = () => {
- const raw = get(items) || [];
- const ph = placeholder ? [{ disabled: placeholderDisabled, label: placeholder, value: "" }] : [];
- return [...ph, ...raw];
- };
- return O("label", { class: float ? "floating-label" : "" }, [
- float && O("span", {}, label),
- O("label", { class: cls("select", rest.class) }, [
- label && !float && O("span", { class: "label" }, label),
- left ?? null,
- O("select", {
- value: () => get(value),
- onchange: (e) => isFn(value) ? value(e.target.value) : rest.onchange?.(e)
- }, K(opts, (item) => {
- const val = getBy(item, item.value !== undefined ? "value" : undefined);
- const lab = getBy(item, "label");
- return O("option", { value: val, disabled: item.disabled || undefined }, lab);
- }, (it, i) => it?.id ?? (typeof it === "string" ? it : it.value) ?? i)),
- right ?? null
- ]),
- hint && O("div", { class: "validator-hint" }, hint)
- ]);
};
+ var Alert = (p2, c) => O("div", { ...p2, class: cls("alert", p2.class) }, c);
var Autocomplete = ({ items, value, onselect, placeholder = "Buscar...", ...props }) => {
const query = S(get(value) || "");
const isOpen = S(false);
@@ -811,42 +621,121 @@
])))
]);
};
- var Input = (p2) => {
- const { label, icon, float, placeholder, value, left, right, rule, hint, content, ...rest } = p2;
- const showPassword = S(false);
- const isFocused = S(false);
- const isPassword = p2.type === "password";
- const pattern = rule ?? null;
- const inputType = () => isPassword ? get(showPassword) ? "text" : "password" : p2.type || "text";
- return O("div", {
- class: "input-container",
- onfocusin: () => isFocused(true),
- onfocusout: (e) => {
- if (!e.currentTarget.contains(e.relatedTarget)) {
- isFocused(false);
+ var Badge = (p2, c) => O("span", { ...p2, class: cls("badge", p2.class) }, c);
+ var Button = (p2, c) => O("button", { ...p2, class: cls("btn", p2.class) }, c);
+ var Calendar = (p2) => {
+ const internalDate = S(new Date);
+ const hoverDate = S(null);
+ const startHour = S(0);
+ const endHour = S(0);
+ const now = new Date;
+ const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`;
+ const fmt = (d) => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`;
+ const rangeMode = () => get(p2.range) === true;
+ const current = () => get(p2.value);
+ const selectDate = (date) => {
+ const s = fmt(date);
+ const v2 = current();
+ if (rangeMode()) {
+ if (!v2?.start || v2.start && v2.end) {
+ p2.onChange?.({ start: s, end: null, ...p2.hour && { startHour: startHour() } });
+ } else {
+ const start = v2.start;
+ const nv = s < start ? { start: s, end: start } : { start, end: s };
+ if (p2.hour) {
+ nv.startHour = v2.startHour ?? startHour();
+ nv.endHour = endHour();
+ }
+ p2.onChange?.(nv);
}
+ } else {
+ p2.onChange?.(p2.hour ? `${s}T${String(startHour()).padStart(2, "0")}:00:00` : s);
}
- }, [
- O("label", { class: float ? "floating-label" : "" }, [
- float ? O("span", {}, label) : null,
- O("label", { pattern, class: () => cls("input validator", p2.class) }, [
- label && !float ? O("span", { class: "label" }, label) : null,
- left ?? null,
- O("input", { ...rest, type: inputType, class: "grow", pattern, placeholder: placeholder || label || " ", value }),
- right ?? null,
- isPassword ? O("label", { class: "swap swap-rotate ml-2" }, [
- O("input", { type: "checkbox", onchange: (e) => showPassword(e.target.checked) }),
- O("span", { class: "swap-on icon-[lucide--eye]" }),
- O("span", { class: "swap-off icon-[lucide--eye-off]" })
- ]) : null
- ]),
- hint ? O("div", { class: "validator-hint" }, hint) : null,
- z(isFocused, () => G({ duration: 300, slide: true }, O("div", { class: "input-content", onmousedown: (e) => e.preventDefault() }, [
- isFn(content) ? content(isFocused) : content
- ])))
+ };
+ const move = (m) => {
+ const d = internalDate();
+ internalDate(new Date(d.getFullYear(), d.getMonth() + m, 1));
+ };
+ const moveYear = (y2) => {
+ const d = internalDate();
+ internalDate(new Date(d.getFullYear() + y2, d.getMonth(), 1));
+ };
+ const HourSlider = ({ value: hVal, onChange: onH }) => O("div", { class: "flex-1" }, [
+ O("div", { class: "flex gap-2 items-center" }, [
+ O("input", { type: "range", min: 0, max: 23, value: hVal, class: "range range-xs flex-1", oninput: (e) => onH(+e.target.value) }),
+ O("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(get(hVal)).padStart(2, "0") + ":00")
])
]);
+ return O("div", { class: cls("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none", p2.class) }, [
+ O("div", { class: "flex justify-between items-center mb-4 gap-1" }, [
+ O("div", { class: "flex gap-0.5" }, [
+ O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, O("span", { class: "icon-[lucide--chevrons-left]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, O("span", { class: "icon-[lucide--chevron-left]" }))
+ ]),
+ O("span", { class: "font-bold uppercase flex-1 text-center" }, () => internalDate().toLocaleString("es-ES", { month: "short", year: "numeric" })),
+ O("div", { class: "flex gap-0.5" }, [
+ O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, O("span", { class: "icon-[lucide--chevron-right]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, O("span", { class: "icon-[lucide--chevrons-right]" }))
+ ])
+ ]),
+ O("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [
+ ...["L", "M", "X", "J", "V", "S", "D"].map((d) => O("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d)),
+ () => {
+ const d = internalDate(), y2 = d.getFullYear(), m = d.getMonth();
+ const firstDay = new Date(y2, m, 1).getDay();
+ const offset = firstDay === 0 ? 6 : firstDay - 1;
+ const dim = new Date(y2, m + 1, 0).getDate();
+ const cells = [];
+ for (let i = 0;i < offset; i++)
+ cells.push(O("div"));
+ for (let i = 1;i <= dim; i++) {
+ const date = new Date(y2, m, i), ds = fmt(date);
+ cells.push(O("button", {
+ type: "button",
+ class: () => {
+ const v2 = current(), h = hoverDate();
+ const isStart = typeof v2 === "string" ? v2.split("T")[0] === ds : v2?.start === ds;
+ const isEnd = v2?.end === ds;
+ let inRange = false;
+ if (rangeMode() && v2?.start) {
+ const start = v2.start;
+ if (!v2.end && h)
+ inRange = ds > start && ds <= h || ds < start && ds >= h;
+ else if (v2.end)
+ inRange = ds > start && ds < v2.end;
+ }
+ const base = "btn btn-xs p-0 aspect-square min-h-0 h-auto font-normal relative";
+ const st = isStart || isEnd ? "btn-primary z-10" : inRange ? "bg-primary/20 border-none rounded-none" : "btn-ghost";
+ const today = ds === todayStr ? "ring-1 ring-primary ring-inset font-black text-primary" : "";
+ return cls(base, st, today);
+ },
+ onmouseenter: () => rangeMode() && hoverDate(ds),
+ onclick: () => selectDate(date)
+ }, i.toString()));
+ }
+ return cells;
+ }
+ ]),
+ p2.hour ? O("div", { class: "mt-3 pt-2 border-t border-base-300" }, rangeMode() ? O("div", { class: "flex gap-4" }, [HourSlider({ value: startHour, onChange: (h) => startHour(h) }), HourSlider({ value: endHour, onChange: (h) => endHour(h) })]) : HourSlider({ value: startHour, onChange: (h) => startHour(h) })) : null
+ ]);
};
+ var Card = (p2, c) => {
+ if (!p2.title && !p2.body && !p2.actions && !c)
+ return O("div", { ...p2, class: cls("card", p2.class) }, c);
+ return O("div", { ...p2, class: cls("card", p2.class) }, [
+ p2.title && O("div", { class: cls("card-title", p2.titleClass) }, p2.title),
+ (p2.body || c) && O("div", { class: cls("card-body", p2.bodyClass) }, p2.body || c),
+ p2.actions && O("div", { class: cls("card-actions", p2.actionsClass) }, p2.actions)
+ ].filter(Boolean));
+ };
+ var Carousel = (p2, c) => O("div", { ...p2, class: cls("carousel", p2.class) }, c);
+ var CarouselItem = (p2, c) => O("div", { ...p2, class: cls("carousel-item", p2.class) }, c);
+ var Chat = (p2, c) => O("div", { ...p2, class: cls("chat", p2.class) }, c);
+ var ChatBubble = (p2, c) => O("div", { ...p2, class: cls("chat-bubble", p2.class) }, c);
+ var ChatFooter = (p2, c) => O("div", { ...p2, class: cls("chat-footer", p2.class) }, c);
+ var ChatHeader = (p2, c) => O("div", { ...p2, class: cls("chat-header", p2.class) }, c);
+ var ChatImage = (p2, c) => O("div", { ...p2, class: cls("chat-image avatar", p2.class) }, O("div", { class: "w-10 rounded-full" }, typeof c === "string" ? O("img", { src: c, alt: "avatar" }) : c));
+ var Checkbox = (p2) => O("input", { ...p2, type: "checkbox", class: cls("checkbox", p2.class) });
var Colorpicker = (p2) => {
const isOpen = S(false);
const current = () => get(p2.value) || "#000000";
@@ -949,102 +838,6 @@
])
]);
};
- var Calendar = (p2) => {
- const internalDate = S(new Date);
- const hoverDate = S(null);
- const startHour = S(0);
- const endHour = S(0);
- const now = new Date;
- const todayStr = `${now.getFullYear()}-${String(now.getMonth() + 1).padStart(2, "0")}-${String(now.getDate()).padStart(2, "0")}`;
- const fmt = (d) => `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, "0")}-${String(d.getDate()).padStart(2, "0")}`;
- const rangeMode = () => get(p2.range) === true;
- const current = () => get(p2.value);
- const selectDate = (date) => {
- const s = fmt(date);
- const v2 = current();
- if (rangeMode()) {
- if (!v2?.start || v2.start && v2.end) {
- p2.onChange?.({ start: s, end: null, ...p2.hour && { startHour: startHour() } });
- } else {
- const start = v2.start;
- const nv = s < start ? { start: s, end: start } : { start, end: s };
- if (p2.hour) {
- nv.startHour = v2.startHour ?? startHour();
- nv.endHour = endHour();
- }
- p2.onChange?.(nv);
- }
- } else {
- p2.onChange?.(p2.hour ? `${s}T${String(startHour()).padStart(2, "0")}:00:00` : s);
- }
- };
- const move = (m) => {
- const d = internalDate();
- internalDate(new Date(d.getFullYear(), d.getMonth() + m, 1));
- };
- const moveYear = (y2) => {
- const d = internalDate();
- internalDate(new Date(d.getFullYear() + y2, d.getMonth(), 1));
- };
- const HourSlider = ({ value: hVal, onChange: onH }) => O("div", { class: "flex-1" }, [
- O("div", { class: "flex gap-2 items-center" }, [
- O("input", { type: "range", min: 0, max: 23, value: hVal, class: "range range-xs flex-1", oninput: (e) => onH(+e.target.value) }),
- O("span", { class: "text-sm font-mono min-w-[48px] text-center" }, () => String(get(hVal)).padStart(2, "0") + ":00")
- ])
- ]);
- return O("div", { class: cls("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none", p2.class) }, [
- O("div", { class: "flex justify-between items-center mb-4 gap-1" }, [
- O("div", { class: "flex gap-0.5" }, [
- O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(-1) }, O("span", { class: "icon-[lucide--chevrons-left]" })),
- O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(-1) }, O("span", { class: "icon-[lucide--chevron-left]" }))
- ]),
- O("span", { class: "font-bold uppercase flex-1 text-center" }, () => internalDate().toLocaleString("es-ES", { month: "short", year: "numeric" })),
- O("div", { class: "flex gap-0.5" }, [
- O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => move(1) }, O("span", { class: "icon-[lucide--chevron-right]" })),
- O("button", { type: "button", class: "btn btn-ghost btn-xs px-1", onclick: () => moveYear(1) }, O("span", { class: "icon-[lucide--chevrons-right]" }))
- ])
- ]),
- O("div", { class: "grid grid-cols-7 gap-1", onmouseleave: () => hoverDate(null) }, [
- ...["L", "M", "X", "J", "V", "S", "D"].map((d) => O("div", { class: "text-[10px] opacity-40 font-bold text-center" }, d)),
- () => {
- const d = internalDate(), y2 = d.getFullYear(), m = d.getMonth();
- const firstDay = new Date(y2, m, 1).getDay();
- const offset = firstDay === 0 ? 6 : firstDay - 1;
- const dim = new Date(y2, m + 1, 0).getDate();
- const cells = [];
- for (let i = 0;i < offset; i++)
- cells.push(O("div"));
- for (let i = 1;i <= dim; i++) {
- const date = new Date(y2, m, i), ds = fmt(date);
- cells.push(O("button", {
- type: "button",
- class: () => {
- const v2 = current(), h = hoverDate();
- const isStart = typeof v2 === "string" ? v2.split("T")[0] === ds : v2?.start === ds;
- const isEnd = v2?.end === ds;
- let inRange = false;
- if (rangeMode() && v2?.start) {
- const start = v2.start;
- if (!v2.end && h)
- inRange = ds > start && ds <= h || ds < start && ds >= h;
- else if (v2.end)
- inRange = ds > start && ds < v2.end;
- }
- const base = "btn btn-xs p-0 aspect-square min-h-0 h-auto font-normal relative";
- const st = isStart || isEnd ? "btn-primary z-10" : inRange ? "bg-primary/20 border-none rounded-none" : "btn-ghost";
- const today = ds === todayStr ? "ring-1 ring-primary ring-inset font-black text-primary" : "";
- return cls(base, st, today);
- },
- onmouseenter: () => rangeMode() && hoverDate(ds),
- onclick: () => selectDate(date)
- }, i.toString()));
- }
- return cells;
- }
- ]),
- p2.hour ? O("div", { class: "mt-3 pt-2 border-t border-base-300" }, rangeMode() ? O("div", { class: "flex gap-4" }, [HourSlider({ value: startHour, onChange: (h) => startHour(h) }), HourSlider({ value: endHour, onChange: (h) => endHour(h) })]) : HourSlider({ value: startHour, onChange: (h) => startHour(h) })) : null
- ]);
- };
var Datepicker = (p2) => {
const isOpen = S(false);
const displayValue = S("");
@@ -1095,6 +888,23 @@
])
]);
};
+ var Drawer = (p2, c) => {
+ const id = p2.id || rand("drawer");
+ return O("div", { class: cls("drawer", p2.class) }, [
+ O("input", { id, type: "checkbox", class: "drawer-toggle", checked: () => get(p2.open), onchange: (e) => isFn(p2.open) && p2.open(e.target.checked) }),
+ O("div", { class: "drawer-side" }, [O("label", { for: id, class: "drawer-overlay", onclick: () => isFn(p2.open) && p2.open(false) }), O("div", { class: "min-h-full bg-base-200 w-80 p-4" }, () => get(p2.side))]),
+ O("div", { class: "drawer-content" }, c)
+ ]);
+ };
+ var Divider = (p2) => O("div", { ...p2, class: cls("divider", p2.class) });
+ var Dropdown = (p2, c) => {
+ return O("div", { ...p2, class: cls("dropdown", p2.class) }, [
+ O("div", { tabindex: "0", role: "button", class: cls("btn", p2.buttonClass) }, p2.label),
+ O("div", { tabindex: "-1", class: "dropdown-content" }, c)
+ ]);
+ };
+ var Fab = (p2, c) => O("div", { class: "fab" }, [O("div", { tabindex: "0", role: "button", class: cls("btn", p2.class) }, Icon(p2.icon)), c]);
+ var Fieldset = (p2, c) => O("fieldset", { class: cls("fieldset", p2.class) }, [O("legend", { class: "fieldset-legend" }, p2.label), c]);
var Fileinput = (p2) => {
const files = S([]);
const drag = S(false);
@@ -1164,9 +974,217 @@
remove(idx);
}
}, O("span", { class: "icon-[lucide--x]" }))
- ]), (file) => file.name + file.lastModified)))
+ ]))))
]);
};
+ var Icon = (p2) => O("span", { class: p2.startsWith("icon-") ? p2 : "" }, p2.startsWith("icon-") ? null : p2);
+ var Indicator = (p2, c) => O("div", { ...p2, class: cls("indicator", p2.class) }, [p2.value && O("span", { class: cls("indicator-item badge", p2.class) }, p2.value), c]);
+ var Input = (p2) => {
+ const { label, icon, float, placeholder, value, left, right, rule, hint, content, ...rest } = p2;
+ const showPassword = S(false);
+ const isFocused = S(false);
+ const isPassword = p2.type === "password";
+ const pattern = rule ?? null;
+ const inputType = () => isPassword ? get(showPassword) ? "text" : "password" : p2.type || "text";
+ return O("div", {
+ class: "input-container",
+ onfocusin: () => isFocused(true),
+ onfocusout: (e) => {
+ if (!e.currentTarget.contains(e.relatedTarget)) {
+ isFocused(false);
+ }
+ }
+ }, [
+ O("label", { class: float ? "floating-label" : "" }, [
+ float ? O("span", {}, label) : null,
+ O("label", { pattern, class: () => cls("input validator", p2.class) }, [
+ label && !float ? O("span", { class: "label" }, label) : null,
+ left ?? null,
+ O("input", { ...rest, type: inputType, class: "grow", pattern, placeholder: placeholder || label || " ", value }),
+ right ?? null,
+ isPassword ? O("label", { class: "swap swap-rotate ml-2" }, [
+ O("input", { type: "checkbox", onchange: (e) => showPassword(e.target.checked) }),
+ O("span", { class: "swap-on icon-[lucide--eye]" }),
+ O("span", { class: "swap-off icon-[lucide--eye-off]" })
+ ]) : null
+ ]),
+ hint ? O("div", { class: "validator-hint" }, hint) : null,
+ z(isFocused, () => G({ duration: 300, slide: true }, O("div", { class: "input-content", onmousedown: (e) => e.preventDefault() }, [
+ isFn(content) ? content(isFocused) : content
+ ])))
+ ])
+ ]);
+ };
+ var Kbd = (p2, c) => O("kbd", { ...p2, class: cls("kbd", p2.class) }, c);
+ var List = (p2, c) => {
+ if (!p2.items)
+ return O("ul", { ...p2, class: cls("list", p2.class) }, c);
+ return O("ul", { ...p2, class: cls("list", p2.class) }, [
+ K(p2.items, (item, i) => O("li", { class: cls("list-row", item.class) }, typeof p2.render === "function" ? p2.render(item, i) : item), p2.key)
+ ]);
+ };
+ var Loading = (p2, c) => O("span", { ...p2, class: cls("loading loading-spinner", p2.class) }, c);
+ var Menu = (p2) => {
+ if (p2.children !== undefined)
+ return O("ul", { class: cls("menu", p2.class), ...p2 }, p2.children);
+ const { items } = p2;
+ const render = (item) => item.children ? O("li", {}, O("details", { open: item.open || undefined }, [
+ O("summary", {}, getBy(item)),
+ O("ul", {}, K(() => get(item.children) || [], render))
+ ])) : O("li", {}, O("a", {
+ href: item.href,
+ onclick: item.onclick ? (e) => {
+ if (!item.href)
+ e.preventDefault();
+ item.onclick(e);
+ } : null
+ }, getBy(item)));
+ return O("ul", { class: cls("menu", p2.class) }, K(() => get(items) || [], render));
+ };
+ var Modal = (p2) => {
+ let dialogRef = null;
+ R(() => {
+ const isOpen = get(p2.open);
+ if (!dialogRef)
+ return;
+ isOpen ? dialogRef.showModal() : dialogRef.close();
+ });
+ const close2 = () => isFn(p2.open) && p2.open(false);
+ return O("dialog", {
+ ...p2,
+ ref: (el) => dialogRef = el,
+ class: cls("modal", p2.class),
+ onclose: close2,
+ oncancel: close2
+ }, [
+ O("div", { class: "modal-box" }, [
+ p2.title && O("h3", { class: "text-lg font-bold" }, p2.title),
+ p2.children,
+ O("div", { class: "modal-action" }, [
+ p2.actions || Button({ class: "btn", onclick: close2 }, "Cerrar")
+ ])
+ ]),
+ O("form", { method: "dialog", class: "modal-backdrop" }, [
+ O("button", {}, "close")
+ ])
+ ]);
+ };
+ var Navbar = (p2, c) => O("div", { ...p2, class: cls("navbar", p2.class) }, c);
+ var Progress = (p2) => O("progress", { ...p2, class: cls("progress", p2.class) });
+ var Radial = (p2, c) => O("div", { ...p2, class: cls("radial-progress", p2.class), style: `--value:${p2.value ?? 0};${p2.style ?? ""}`, role: "progressbar", "aria-valuenow": p2.value ?? 0 }, c ?? `${p2.value ?? 0}%`);
+ var Radio = (p2) => O("input", { ...p2, type: "radio", class: cls("radio", p2.class) });
+ var Range = (p2) => O("input", { ...p2, type: "range", class: cls("range", p2.class) });
+ var Rating = (p2) => {
+ const name = rand("rating");
+ const stars = p2.children ?? Array.from({ length: p2.count || 5 }, (_2, i) => {
+ const v2 = i + 1;
+ return O("input", {
+ type: "radio",
+ name,
+ class: cls("mask", p2.mask || "mask-star"),
+ checked: () => get(p2.value) === v2,
+ onchange: () => isFn(p2.value) ? p2.value(v2) : p2.onchange?.(v2)
+ });
+ });
+ return O("div", { class: cls("rating", p2.class), ...p2 }, stars);
+ };
+ var Select = (p2, c) => {
+ if (c !== undefined)
+ return O("select", { class: cls("select", p2.class), ...p2 }, c);
+ const { label, float, placeholder, placeholderDisabled = true, value, left, right, hint, items, keyFn, ...rest } = p2;
+ const opts = () => {
+ const raw = get(items) || [];
+ const ph = placeholder ? [{ disabled: placeholderDisabled, label: placeholder, value: "" }] : [];
+ return [...ph, ...raw];
+ };
+ return O("label", { class: float ? "floating-label" : "" }, [
+ float ? O("span", {}, label) : null,
+ O("label", { class: cls("select", rest.class) }, [
+ !float && label ? O("span", { class: "label" }, label) : null,
+ left ?? null,
+ O("select", {
+ value: () => get(value),
+ onchange: (e) => isFn(value) ? value(e.target.value) : rest.onchange?.(e)
+ }, K(opts, (item) => {
+ const val = getBy(item, item.value !== undefined ? "value" : undefined);
+ const lab = getBy(item, "label");
+ return O("option", { value: val, disabled: item.disabled || undefined }, lab);
+ })),
+ right ?? null
+ ]),
+ hint ? O("div", { class: "validator-hint" }, hint) : null
+ ]);
+ };
+ var Skeleton = (p2) => O("div", { ...p2, class: cls("skeleton", p2.class) });
+ var SkeletonText = (p2) => O("span", { ...p2, class: cls("skeleton skeleton-text", p2.class) });
+ var Stack = (p2, c) => O("div", { ...p2, class: cls("stack", p2.class) }, c);
+ var Steps = (p2, c) => O("ul", { ...p2, class: cls("steps", p2.class) }, c);
+ var Step = (p2, c) => O("li", { ...p2, class: cls("step", p2.class), "data-content": p2.dataContent }, c);
+ var Swap = (p2) => O("label", { ...p2, class: cls("swap", p2.class) }, [
+ O("input", { type: "checkbox", checked: () => get(p2.value), onchange: (e) => isFn(p2.value) && p2.value(e.target.checked) }),
+ O("div", { class: "swap-on" }, p2.on),
+ O("div", { class: "swap-off" }, p2.off)
+ ]);
+ var Table = (p2) => {
+ if (p2.children !== undefined)
+ return O("table", { class: cls("table", p2.class), ...p2 }, p2.children);
+ const { items, columns = [], header = true, keyFn, ...rest } = p2;
+ const hd = header !== false && columns.some((c) => c.label) ? O("thead", {}, O("tr", {}, columns.map((c) => O("th", { class: c.class }, c.label)))) : null;
+ const bd = O("tbody", {}, K(() => get(items) || [], (it, idx) => O("tr", {}, columns.map((c) => {
+ const v2 = c.render ? c.render(it, idx) : it[c.key];
+ return O("td", { class: c.class }, v2);
+ }))));
+ return O("table", { class: cls("table", rest.class), ...rest }, [hd, bd]);
+ };
+ var Tabs = (p2, c) => {
+ if (!p2.items) {
+ const { class: className2, ...rest2 } = p2;
+ return O("div", { ...rest2, class: cls("tabs", className2) }, c);
+ }
+ const { items, activeIndex, onClose, class: className, ...rest } = p2;
+ const get2 = (x2) => isFn(x2) ? x2() : x2;
+ const closeH = onClose || (isFn(items) ? (idx, item) => {
+ const arr = get2(items);
+ const newArr = arr.filter((_2, i) => i !== idx);
+ items(newArr);
+ if (activeIndex() >= newArr.length)
+ activeIndex(Math.max(0, newArr.length - 1));
+ } : null);
+ return O("div", { ...rest, class: cls("tabs", className) }, () => {
+ const list = get2(items) || [];
+ return list.flatMap((it, idx) => {
+ const isActive = () => activeIndex() === idx;
+ const button = O("button", {
+ class: () => `tab ${isActive() ? "tab-active" : ""} ${it.class || ""}`,
+ onclick: (e) => {
+ e.preventDefault();
+ activeIndex(idx);
+ it.onclick?.(e);
+ }
+ }, [
+ getBy(it),
+ it.closable ? O("span", {
+ class: "ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",
+ onclick: (e) => {
+ e.stopPropagation();
+ closeH?.(idx, it);
+ }
+ }, O("span", { class: "icon-[lucide--x] w-3 h-3" })) : null
+ ]);
+ const contentDiv = O("div", {
+ class: "tab-content bg-base-100 border-base-300 p-6",
+ style: () => `display: ${isActive() ? "block" : "none"};`
+ }, isFn(it.content) ? it.content() : it.content);
+ return [button, contentDiv];
+ });
+ });
+ };
+ var Textarea = (p2) => O("textarea", { ...p2, class: cls("textarea", p2.class) });
+ var TextRotate = (p2) => {
+ const words = Array.isArray(p2.words) ? p2.words : typeof p2.words === "string" ? p2.words.split(",") : [];
+ return O("span", { ...p2, class: cls("text-rotate", p2.class) }, O("span", {}, words.map((w2) => O("span", {}, w2))));
+ };
+ var Timeline = (p2, c) => O("ul", { ...p2, class: cls("timeline", p2.class) }, c);
var Toast = (message, type = "alert-success", duration = 3500) => {
let container = document.getElementById("sigpro-toast-container");
if (!container) {
@@ -1219,34 +1237,8 @@
timer = setTimeout(closeFn, duration);
return closeFn;
};
- var Modal = (p2) => {
- let dialogRef = null;
- R(() => {
- const isOpen = get(p2.open);
- if (!dialogRef)
- return;
- isOpen ? dialogRef.showModal() : dialogRef.close();
- });
- const close = () => isFn(p2.open) && p2.open(false);
- return O("dialog", {
- ...p2,
- ref: (el) => dialogRef = el,
- class: cls("modal", p2.class),
- onclose: close,
- oncancel: close
- }, [
- O("div", { class: "modal-box" }, [
- p2.title && O("h3", { class: "text-lg font-bold" }, p2.title),
- p2.children,
- O("div", { class: "modal-action" }, [
- p2.actions || Button({ class: "btn", onclick: close }, "Cerrar")
- ])
- ]),
- O("form", { method: "dialog", class: "modal-backdrop" }, [
- O("button", {}, "close")
- ])
- ]);
- };
+ var Toggle = (p2) => O("input", { ...p2, type: "checkbox", class: cls("toggle", p2.class) });
+ var Tooltip = (p2, c) => O("div", { ...p2, class: cls("tooltip", p2.class), "data-tip": p2.tip }, c);
// components/Editor.js
var exports_Editor = {};
@@ -1256,8 +1248,30 @@
var Editor = (p2) => {
const { value, class: extraClass } = p2;
let editorRef = null;
+ let savedRange = null;
const isSource = S(false);
const source = S("");
+ const count = S(0);
+ const refreshTick = S(0);
+ const showEmojis = S(false);
+ const emojis = ["\uD83D\uDE00", "\uD83D\uDE0A", "\uD83D\uDE09", "\uD83E\uDDD0", "\uD83D\uDE2E", "\uD83E\uDD14", "\uD83D\uDE05", "\uD83D\uDE02", "\uD83D\uDE0D", "\uD83D\uDE18", "\uD83E\uDD70", "\uD83D\uDC4D", "\uD83D\uDC4E", "\uD83D\uDC4C", "\uD83E\uDD1D", "\uD83E\uDD1E", "\uD83D\uDC4B", "\uD83D\uDC4F", "\uD83D\uDE4C", "\uD83D\uDE4F", "\uD83D\uDCAA", "☝️", "\uD83D\uDC47", "\uD83D\uDC48", "\uD83D\uDC49", "\uD83D\uDD95", "✅", "⚠️", "\uD83D\uDE80", "\uD83D\uDCE2", "✉️", "❤️"];
+ const saveSelection = () => {
+ const sel = window.getSelection();
+ if (sel.getRangeAt && sel.rangeCount)
+ savedRange = sel.getRangeAt(0);
+ };
+ const restoreSelection = () => {
+ if (savedRange) {
+ const sel = window.getSelection();
+ sel.removeAllRanges();
+ sel.addRange(savedRange);
+ }
+ };
+ const triggerRefresh = () => {
+ refreshTick(refreshTick() + 1);
+ if (editorRef)
+ count(editorRef.innerText.length);
+ };
const notify = () => {
if (!editorRef)
return;
@@ -1266,23 +1280,50 @@
value(html);
else
p2.onchange?.(html);
+ triggerRefresh();
};
const exec = (cmd, val = null) => {
if (!editorRef)
return;
editorRef.focus();
+ if (savedRange)
+ restoreSelection();
document.execCommand(cmd, false, val);
+ savedRange = null;
notify();
};
+ const openLightbox = (src) => {
+ const overlay = document.createElement("div");
+ overlay.style = `position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;`;
+ const img = document.createElement("img");
+ img.src = src;
+ img.style = `max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;`;
+ overlay.onclick = () => document.body.removeChild(overlay);
+ overlay.appendChild(img);
+ document.body.appendChild(overlay);
+ };
+ const handleUpload = (file) => {
+ if (!file)
+ return;
+ const reader = new FileReader;
+ reader.onload = (re) => {
+ if (file.type.startsWith("image/")) {
+ const imgHtml = ` `;
+ exec("insertHTML", imgHtml);
+ } else {
+ const linkHtml = `${file.name} `;
+ exec("insertHTML", linkHtml);
+ }
+ };
+ reader.readAsDataURL(file);
+ };
const queryState = (cmd, val = null) => {
- if (!editorRef)
+ refreshTick();
+ if (!editorRef || isSource())
return false;
try {
if (cmd === "formatBlock") {
- const sel = window.getSelection();
- if (!sel.rangeCount)
- return false;
- let node = sel.getRangeAt(0).commonAncestorContainer;
+ let node = window.getSelection().getRangeAt(0).commonAncestorContainer;
while (node && node !== editorRef) {
if (node.nodeType === 1 && node.tagName === val)
return true;
@@ -1295,92 +1336,152 @@
return false;
}
};
- const toolbar = O("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200" }, [
- O("div", { class: "flex flex-wrap gap-1 flex-1" }, [
+ const toolbar = O("div", { class: "flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20" }, [
+ O("div", { class: "flex flex-wrap gap-1 flex-1 items-center" }, [
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("bold") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("bold") }, O("span", { class: "icon-[lucide--bold]" })),
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("italic") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("italic") }, O("span", { class: "icon-[lucide--italic]" })),
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("underline") ? "btn-active bg-primary/20" : ""}`, onclick: () => exec("underline") }, O("span", { class: "icon-[lucide--underline]" })),
+ O("input", { type: "color", class: "w-5 h-5 p-0 border-0 bg-transparent cursor-pointer", oninput: (e) => exec("foreColor", e.target.value) }),
+ O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
O("button", {
type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("bold") ? "btn-active" : ""}`,
- onclick: () => exec("bold")
- }, O("span", { class: "icon-[lucide--bold]" })),
+ class: "btn btn-ghost btn-xs",
+ onclick: () => exec("justifyLeft")
+ }, O("span", { class: "icon-[lucide--align-left]" })),
O("button", {
type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("italic") ? "btn-active" : ""}`,
- onclick: () => exec("italic")
- }, O("span", { class: "icon-[lucide--italic]" })),
+ class: "btn btn-ghost btn-xs",
+ onclick: () => exec("justifyCenter")
+ }, O("span", { class: "icon-[lucide--align-center]" })),
O("button", {
type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("underline") ? "btn-active" : ""}`,
- onclick: () => exec("underline")
- }, O("span", { class: "icon-[lucide--underline]" })),
- O("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("strikeThrough") ? "btn-active" : ""}`,
- onclick: () => exec("strikeThrough")
- }, O("span", { class: "icon-[lucide--strikethrough]" })),
+ class: "btn btn-ghost btn-xs",
+ onclick: () => exec("justifyRight")
+ }, O("span", { class: "icon-[lucide--align-right]" })),
O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertUnorderedList") }, O("span", { class: "icon-[lucide--list]" })),
O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("insertOrderedList") }, O("span", { class: "icon-[lucide--list-ordered]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("outdent"), title: "Mover izquierda" }, O("span", { class: "icon-[lucide--indent-decrease]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("indent"), title: "Mover derecha (Tab)" }, O("span", { class: "icon-[lucide--indent-increase]" })),
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${queryState("formatBlock", "BLOCKQUOTE") ? "btn-active" : ""}`, onclick: () => exec("formatBlock", queryState("formatBlock", "BLOCKQUOTE") ? "P" : "BLOCKQUOTE") }, O("span", { class: "icon-[lucide--quote]" })),
O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
- O("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${queryState("formatBlock", "BLOCKQUOTE") ? "btn-active" : ""}`,
- onclick: () => exec("formatBlock", queryState("formatBlock", "BLOCKQUOTE") ? "P" : "BLOCKQUOTE")
- }, O("span", { class: "icon-[lucide--quote]" })),
- O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
- O("select", { class: "select select-xs w-16", onchange: (e) => exec("fontSize", e.target.value), value: "3" }, [
- O("option", { value: "1" }, "1"),
- O("option", { value: "2" }, "2"),
- O("option", { value: "3" }, "3"),
- O("option", { value: "4" }, "4"),
- O("option", { value: "5" }, "5"),
- O("option", { value: "6" }, "6"),
- O("option", { value: "7" }, "7")
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => {
+ const url = window.prompt("URL:");
+ if (url)
+ exec("createLink", url);
+ } }, O("span", { class: "icon-[lucide--link]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => {
+ const input = document.createElement("input");
+ input.type = "file";
+ input.onchange = (e) => handleUpload(e.target.files[0]);
+ input.click();
+ } }, O("span", { class: "icon-[lucide--paperclip]" })),
+ O("div", { class: "relative" }, [
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: (e) => {
+ e.stopPropagation();
+ saveSelection();
+ showEmojis(!showEmojis());
+ } }, O("span", { class: "icon-[lucide--smile]" })),
+ O("div", { class: "absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1", style: () => showEmojis() ? "display:flex" : "display:none" }, emojis.map((emo) => O("span", { class: "cursor-pointer hover:bg-base-200 p-1 rounded text-lg", onclick: (e) => {
+ e.stopPropagation();
+ exec("insertText", emo);
+ showEmojis(false);
+ } }, emo)))
]),
O("span", { class: "w-px h-5 bg-base-300 mx-1" }),
- O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo") }, O("span", { class: "icon-[lucide--undo-2]" })),
- O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo") }, O("span", { class: "icon-[lucide--redo-2]" }))
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("removeFormat") }, O("span", { class: "icon-[lucide--eraser]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("undo"), title: "Deshacer" }, O("span", { class: "icon-[lucide--undo-2]" })),
+ O("button", { type: "button", class: "btn btn-ghost btn-xs", onclick: () => exec("redo"), title: "Rehacer" }, O("span", { class: "icon-[lucide--redo-2]" }))
]),
- O("div", { class: "flex" }, [
- O("button", {
- type: "button",
- class: () => `btn btn-ghost btn-xs ${isSource() ? "btn-active" : ""}`,
- onclick: () => {
- const wasSource = isSource();
- if (!wasSource) {
- source(editorRef?.innerHTML || "");
- } else {
- if (editorRef) {
- editorRef.innerHTML = source();
- notify();
- }
- }
- isSource(!wasSource);
- }
- }, O("span", { class: "icon-[lucide--code-2]" }))
- ])
+ O("button", { type: "button", class: () => `btn btn-ghost btn-xs ${isSource() ? "btn-active" : ""}`, onclick: () => {
+ if (!isSource())
+ source(editorRef?.innerHTML || "");
+ else if (editorRef) {
+ editorRef.innerHTML = source();
+ notify();
+ }
+ isSource(!isSource());
+ } }, O("span", { class: "icon-[lucide--code-2]" }))
]);
- return O("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden", extraClass) }, [
+ if (typeof document !== "undefined" && !document.getElementById("editor-styles")) {
+ const style = document.createElement("style");
+ style.id = "editor-styles";
+ style.textContent = `
+ [contenteditable="true"] div,
+ [contenteditable="true"] p {
+ margin: 0;
+ padding: 0;
+ }
+ `;
+ document.head.appendChild(style);
+ }
+ return O("div", { class: cls("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col", extraClass) }, [
toolbar,
- O("div", { class: "relative" }, [
+ O("div", { class: "relative flex-1 flex flex-col", onclick: () => showEmojis(false) }, [
O("div", {
ref: (el) => {
if (!editorRef && el) {
editorRef = el;
el.innerHTML = get(value) || "";
+ document.execCommand("defaultParagraphSeparator", false, "br");
+ el.addEventListener("click", (e) => {
+ const container = e.target.closest(".resizable-img-container");
+ if (container) {
+ const img = container.querySelector("img");
+ if (img)
+ openLightbox(img.src);
+ }
+ });
}
},
- style: () => `min-height:10rem;${isSource() ? "display:none" : ""}`,
- class: "p-3 outline-none text-base-content [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:list-decimal [&_ol]:pl-6 [&_li]:list-item [&_p]:m-0 [&_div]:m-0 [&_br]:content-[''] [&_br]:block [&_br]:h-[1em]",
+ style: () => `min-height:22rem;${isSource() ? "display:none" : ""}`,
+ class: "p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",
contenteditable: "true",
oninput: notify,
- onpaste: () => setTimeout(notify, 0)
+ onkeydown: (e) => {
+ if (e.key === "Tab") {
+ e.preventDefault();
+ exec("indent");
+ }
+ },
+ onkeyup: () => {
+ triggerRefresh();
+ saveSelection();
+ },
+ onclick: (e) => {
+ triggerRefresh();
+ saveSelection();
+ e.stopPropagation();
+ },
+ onmouseup: () => {
+ notify();
+ saveSelection();
+ },
+ onpaste: (e) => {
+ e.preventDefault();
+ const text = e.clipboardData.getData("text/plain");
+ exec("insertText", text);
+ },
+ ondragover: (e) => e.preventDefault(),
+ ondrop: (e) => {
+ e.preventDefault();
+ handleUpload(e.dataTransfer.files[0]);
+ }
}),
O("textarea", {
- class: "w-full min-h-[10rem] p-3 outline-none font-mono text-sm bg-base-200 border-0",
+ class: "w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",
style: () => isSource() ? "" : "display:none",
value: source,
- oninput: (e) => source(e.target.value)
+ oninput: (e) => {
+ source(e.target.value);
+ if (editorRef)
+ editorRef.innerHTML = e.target.value;
+ p2.onchange?.(e.target.value);
+ }
})
+ ]),
+ O("div", { class: "px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic" }, [
+ O("span", () => `${count()} caracteres`)
])
]);
};
diff --git a/dist/sigpro-ui.min.css b/dist/sigpro-ui.min.css
index ed139df..28c1be8 100644
--- a/dist/sigpro-ui.min.css
+++ b/dist/sigpro-ui.min.css
@@ -1,2 +1,2 @@
/*! tailwindcss v4.2.4 | MIT License | https://tailwindcss.com */
-@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-gray-500:oklch(55.1% .027 264.364);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-6xl:3.75rem;--text-6xl--line-height:1;--text-7xl:4.5rem;--text-7xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-3xl:1.5rem;--drop-shadow-2xl:0 25px 25px #00000026;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E");scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab, red, red)){:root{scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) #0000}}@property --radialprogress{syntax:"";inherits:true;initial-value:0%}:root:not(span){overflow:var(--page-overflow)}:root{background:var(--page-scroll-bg,var(--root-bg));--page-scroll-bg-on:linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000)) var(--root-bg,#0000)}@supports (color:color-mix(in lab, red, red)){:root{--page-scroll-bg-on:linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000)) color-mix(in srgb, var(--root-bg,#0000), oklch(0% 0 0) calc(var(--page-has-backdrop,0) * 40%))}}:root{--page-scroll-transition-on:background-color .3s ease-out;transition:var(--page-scroll-transition);scrollbar-gutter:var(--page-scroll-gutter,unset);scrollbar-gutter:if(style(--page-has-scroll: 1): var(--page-scroll-gutter,unset) ; else: unset)}@keyframes set-page-has-scroll{0%,to{--page-has-scroll:1}}:root,[data-theme]{background:var(--page-scroll-bg,var(--root-bg));color:var(--color-base-content)}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(92% 0 0);--color-base-content:oklch(25% .006 285);--color-primary:oklch(25% .006 285);--color-primary-content:oklch(98% 0 0);--color-secondary:oklch(55% .046 257.417);--color-secondary-content:oklch(98% 0 0);--color-accent:oklch(96% 0 0);--color-accent-content:oklch(25% .006 285);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(62% .17 163);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .18 84);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(60% .25 27);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.4rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(15% .005 285.823);--color-base-200:oklch(20% .005 285.823);--color-base-300:oklch(30% .005 285.823);--color-base-content:oklch(92% .004 286.32);--color-primary:oklch(98% 0 0);--color-primary-content:oklch(15% 0 0);--color-secondary:oklch(65% .046 257.417);--color-secondary-content:oklch(15% .005 285.823);--color-accent:oklch(25% 0 0);--color-accent-content:oklch(98% 0 0);--color-neutral:oklch(92% .004 286.32);--color-neutral-content:oklch(14% .005 285.823);--color-info:oklch(70% .1 230);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(65% .15 160);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(85% .15 90);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(55% .2 27);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.4rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(15% .005 285.823);--color-base-200:oklch(20% .005 285.823);--color-base-300:oklch(30% .005 285.823);--color-base-content:oklch(92% .004 286.32);--color-primary:oklch(98% 0 0);--color-primary-content:oklch(15% 0 0);--color-secondary:oklch(65% .046 257.417);--color-secondary-content:oklch(15% .005 285.823);--color-accent:oklch(25% 0 0);--color-accent-content:oklch(98% 0 0);--color-neutral:oklch(92% .004 286.32);--color-neutral-content:oklch(14% .005 285.823);--color-info:oklch(70% .1 230);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(65% .15 160);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(85% .15 90);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(55% .2 27);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.4rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}@layer components;@layer utilities{@layer daisyui.l1.l2.l3{.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:visibility .3s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;overscroll-behavior:contain;z-index:999;scrollbar-gutter:auto;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:clip}.modal::backdrop{display:none}:where(.drawer-side){overflow:hidden}.drawer-side{pointer-events:none;visibility:hidden;z-index:10;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete, visibility .3s ease-out .1s allow-discrete;inset-inline-start:0;background-color:#0000;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0}.drawer-side>.drawer-overlay{cursor:pointer;background-color:oklch(0% 0 0/.4);place-self:stretch stretch;position:sticky;top:0}.drawer-side>*{grid-row-start:1;grid-column-start:1}.drawer-side>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out,width .2s ease-out;translate:-100%}[dir=rtl] :is(.drawer-side>:not(.drawer-overlay)){translate:100%}.fab{pointer-events:none;z-index:999;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:nowrap;inset-inline-end:1rem;flex-direction:column-reverse;align-items:flex-end;gap:.5rem;display:flex;position:fixed;bottom:1rem}.fab>*{pointer-events:auto;align-items:center;gap:.5rem;display:flex}.fab>:hover,.fab>:has(:focus-visible){z-index:1}.fab>[tabindex]:first-child{transition-property:opacity,visibility,rotate;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:grid;position:relative}.fab .fab-close,.fab .fab-main-action{inset-inline-end:0;position:absolute;bottom:0}:is(.fab:focus-within:has(.fab-close),.fab:focus-within:has(.fab-main-action))>[tabindex]{opacity:0;rotate:90deg}.fab:focus-within>[tabindex]:first-child{pointer-events:none}.fab:focus-within>:nth-child(n+2){visibility:visible;--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:1}.fab>:nth-child(n+2){visibility:hidden;--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:0;transition-property:opacity,scale,visibility;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fab>:nth-child(n+2).fab-main-action,.fab>:nth-child(n+2).fab-close{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.fab>:nth-child(3){transition-delay:30ms}.fab>:nth-child(4){transition-delay:60ms}.fab>:nth-child(5){transition-delay:90ms}.fab>:nth-child(6){transition-delay:.12s}.drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed}:where(.drawer-toggle:checked~.drawer-side){scrollbar-color:currentColor oklch(0 0 0 / calc(var(--page-has-backdrop,0) * .4))}@supports (color:color-mix(in lab, red, red)){:where(.drawer-toggle:checked~.drawer-side){scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) oklch(0 0 0 / calc(var(--page-has-backdrop,0) * .4))}}:where(:root:has(.drawer-toggle:checked)){--page-has-backdrop:1;--page-overflow:hidden;--page-scroll-bg:var(--page-scroll-bg-on);--page-scroll-gutter:stable;--page-scroll-transition:var(--page-scroll-transition-on);animation:forwards set-page-has-scroll;animation-timeline:scroll()}.tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);display:inline-block;position:relative}.tooltip>.tooltip-content,.tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}@media (prefers-reduced-motion:no-preference){.tooltip>.tooltip-content,.tooltip[data-tip]:before,.tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}}:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}.tab{cursor:pointer;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media (hover:hover){.tab:hover{color:var(--color-base-content)}}.tab{--tab-p:.75rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));--tab-radius-limit:min(var(--radius-field), var(--tab-radius-min));--tab-radius-grad:#0000 calc(69% - var(--border)), var(--tab-border-color) calc(69% - var(--border) + .25px), var(--tab-border-color) 69%, var(--tab-bg) calc(69% + .25px);order:var(--tab-order);height:var(--tab-height);padding-inline:var(--tab-p);border-color:#0000;font-size:.875rem}.tab:is(input[type=radio]){min-width:fit-content}.tab:is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.tab:is(label){position:relative}.tab:is(label) input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab, var(--color-base-content) 50%, transparent)}}.tab:not(input):empty{cursor:default;flex-grow:1}.tab:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tab:focus{outline-offset:2px;outline:2px solid #0000}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab[disabled]{pointer-events:none;opacity:.4}.tab\!{cursor:pointer!important;appearance:none!important;text-align:center!important;webkit-user-select:none!important;-webkit-user-select:none!important;user-select:none!important;flex-wrap:wrap!important;justify-content:center!important;align-items:center!important;display:inline-flex!important;position:relative!important}@media (hover:hover){.tab\!:hover{color:var(--color-base-content)!important}}.tab\!{--tab-p:.75rem!important;--tab-bg:var(--color-base-100)!important;--tab-border-color:var(--color-base-300)!important;--tab-radius-ss:0!important;--tab-radius-se:0!important;--tab-radius-es:0!important;--tab-radius-ee:0!important;--tab-order:0!important;--tab-radius-min:calc(.75rem - var(--border))!important;--tab-radius-limit:min(var(--radius-field), var(--tab-radius-min))!important;--tab-radius-grad:#0000 calc(69% - var(--border)), var(--tab-border-color) calc(69% - var(--border) + .25px), var(--tab-border-color) 69%, var(--tab-bg) calc(69% + .25px)!important;order:var(--tab-order)!important;height:var(--tab-height)!important;padding-inline:var(--tab-p)!important;border-color:#0000!important;font-size:.875rem!important}.tab\!:is(input[type=radio]){min-width:fit-content!important}.tab\!:is(input[type=radio]):after{--tw-content:attr(aria-label)!important;content:var(--tw-content)!important}.tab\!:is(label){position:relative!important}.tab\!:is(label) input{cursor:pointer!important;appearance:none!important;opacity:0!important;position:absolute!important;inset:0!important}:is(.tab\!:checked,.tab\!:is(label:has(:checked)),.tab\!:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block!important}.tab\!:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)!important}@supports (color:color-mix(in lab, red, red)){.tab\!:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab, var(--color-base-content) 50%, transparent)!important}}.tab\!:not(input):empty{cursor:default!important;flex-grow:1!important}.tab\!:focus{--tw-outline-style:none!important;outline-style:none!important}@media (forced-colors:active){.tab\!:focus{outline-offset:2px!important;outline:2px solid #0000!important}}.tab\!:focus-visible,.tab\!:is(label:has(:checked:focus-visible)){outline-offset:-5px!important;outline:2px solid!important}.tab\![disabled]{pointer-events:none!important;opacity:.4!important}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu details{interpolate-size:allow-keywords;overflow:hidden}.menu details::details-content{block-size:0}@media (prefers-reduced-motion:no-preference){.menu details::details-content{transition-behavior:allow-discrete;transition-property:block-size,content-visibility;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.menu details[open]::details-content{block-size:auto}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01)}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise)}:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li).menu-disabled{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.floating-label{display:block;position:relative}.floating-label input{display:block}.floating-label input::placeholder,.floating-label textarea::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}.floating-label>span{z-index:1;background-color:var(--color-base-100);opacity:0;inset-inline-start:.75rem;top:calc(var(--size-field,.25rem) * 10 / 2);pointer-events:none;border-radius:2px;padding-inline:.25rem;font-size:.875rem;line-height:1;transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out;position:absolute;translate:0 -50%}:is(.floating-label:focus-within,.floating-label:not(:has(input:placeholder-shown,textarea:placeholder-shown))) ::placeholder{opacity:0;pointer-events:auto;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}:is(.floating-label:focus-within,.floating-label:not(:has(input:placeholder-shown,textarea:placeholder-shown)))>span{opacity:1;pointer-events:auto;z-index:2;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}.floating-label:has(:disabled,[disabled])>span{opacity:0}.floating-label:has(.input-xs,.select-xs,.textarea-xs) span{top:calc(var(--size-field,.25rem) * 6 / 2);font-size:.6875rem}.floating-label:has(.input-sm,.select-sm,.textarea-sm) span{top:calc(var(--size-field,.25rem) * 8 / 2);font-size:.75rem}.floating-label:has(.input-md,.select-md,.textarea-md) span{top:calc(var(--size-field,.25rem) * 10 / 2);font-size:.875rem}.floating-label:has(.input-lg,.select-lg,.textarea-lg) span{top:calc(var(--size-field,.25rem) * 12 / 2);font-size:1.125rem}.floating-label:has(.input-xl,.select-xl,.textarea-xl) span{top:calc(var(--size-field,.25rem) * 14 / 2);font-size:1.375rem}.dropdown{position-area:var(--anchor-v,bottom) var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(:has(~[class*=dropdown-content])):focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.dropdown>:not(:has(~[class*=dropdown-content])):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown .dropdown-content{position:absolute}.dropdown.dropdown-close .dropdown-content,.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content,.dropdown.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible)~.dropdown-content{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover],.dropdown .dropdown-content{z-index:999}@media (prefers-reduced-motion:no-preference){.dropdown[popover],.dropdown .dropdown-content{transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown[popover],.dropdown .dropdown-content{opacity:0;scale:.95}}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within)>[tabindex]:first-child{pointer-events:none}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within) .dropdown-content,.dropdown:not(.dropdown-close).dropdown-hover:hover .dropdown-content{opacity:1;scale:1}.dropdown:is(details) summary::-webkit-details-marker{display:none}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-close{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}:is(.dropdown[popover].dropdown-close,.dropdown[popover]:not(.dropdown-open,:popover-open)){transform-origin:top;opacity:0;display:none;scale:.95}:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0 / calc(var(--depth) * .15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset, var(--btn-shadow);--size:calc(var(--size-field,.25rem) * 10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:var(--btn-bg);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab, red, red)){.btn{--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn{--btn-noise:var(--fx-noise)}@media (hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0)}.btn:is(input[type=checkbox],input[type=radio]){appearance:none}.btn:is(input[type=checkbox],input[type=radio])[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem) * 6);background-color:currentColor;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;grid-template-columns:minmax(0,1fr);width:100%;display:grid;position:relative;overflow:hidden}@media (prefers-reduced-motion:no-preference){.collapse{transition:grid-template-rows .2s}}.collapse>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;z-index:1;grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close)),.collapse:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){content-visibility:visible;min-height:fit-content}@supports not (content-visibility:visible){.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible}}.collapse:focus-visible,.collapse:has(>input:is([type=checkbox],[type=radio]):focus-visible),.collapse:has(summary:focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}.collapse:not(.collapse-close)>input[type=checkbox],.collapse:not(.collapse-close)>input[type=radio]:not(:checked),.collapse:not(.collapse-close)>.collapse-title{cursor:pointer}:is(.collapse[tabindex]:focus:not(.collapse-close,.collapse[open]),.collapse[tabindex]:focus-within:not(.collapse-close,.collapse[open]))>.collapse-title{cursor:unset}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>:where(.collapse-content),.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem}.collapse:is(details){width:100%}@media (prefers-reduced-motion:no-preference){.collapse:is(details)::details-content{transition:content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out, height .2s;interpolate-size:allow-keywords;height:0}.collapse:is(details):where([open])::details-content{height:auto}}.collapse:is(details) summary{display:block;position:relative}.collapse:is(details) summary::-webkit-details-marker{display:none}.collapse:is(details)>.collapse-content{content-visibility:visible}.collapse:is(details) summary{outline:none}.collapse-content{content-visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem}@supports not (content-visibility:hidden){.collapse-content{visibility:hidden}}@media (prefers-reduced-motion:no-preference){.collapse-content{transition:content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out}}.validator-hint{visibility:hidden;margin-top:.5rem;font-size:.75rem}.validator:user-valid{--input-color:var(--color-success)}.validator:user-valid:focus{--input-color:var(--color-success)}.validator:user-valid:checked{--input-color:var(--color-success)}.validator:user-valid[aria-checked=true]{--input-color:var(--color-success)}.validator:user-valid:focus-within{--input-color:var(--color-success)}.validator:has(:user-valid){--input-color:var(--color-success)}.validator:has(:user-valid):focus{--input-color:var(--color-success)}.validator:has(:user-valid):checked{--input-color:var(--color-success)}.validator:has(:user-valid)[aria-checked=true]{--input-color:var(--color-success)}.validator:has(:user-valid):focus-within{--input-color:var(--color-success)}.validator:user-invalid{--input-color:var(--color-error)}.validator:user-invalid:focus{--input-color:var(--color-error)}.validator:user-invalid:checked{--input-color:var(--color-error)}.validator:user-invalid[aria-checked=true]{--input-color:var(--color-error)}.validator:user-invalid:focus-within{--input-color:var(--color-error)}.validator:user-invalid~.validator-hint{visibility:visible;color:var(--color-error)}.validator:has(:user-invalid){--input-color:var(--color-error)}.validator:has(:user-invalid):focus{--input-color:var(--color-error)}.validator:has(:user-invalid):checked{--input-color:var(--color-error)}.validator:has(:user-invalid)[aria-checked=true]{--input-color:var(--color-error)}.validator:has(:user-invalid):focus-within{--input-color:var(--color-error)}.validator:has(:user-invalid)~.validator-hint{visibility:visible;color:var(--color-error)}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))),:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):focus,:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):checked,:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))[aria-checked=true],:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):focus-within{--input-color:var(--color-error)}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))~.validator-hint{visibility:visible;color:var(--color-error)}.radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size) / 10);--radialprogress:calc(var(--value) * 1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative}.radial-progress:before{content:"";background:radial-gradient(farthest-side, currentColor 98%, #0000) top/var(--thickness) var(--thickness) no-repeat, conic-gradient(currentColor var(--radialprogress), #0000 0);webkit-mask:radial-gradient(farthest-side, #0000 calc(100% - var(--thickness)), #000 calc(100% + .5px - var(--thickness)));-webkit-mask:radial-gradient(farthest-side, #0000 calc(100% - var(--thickness)), #000 calc(100% + .5px - var(--thickness)));-webkit-mask:radial-gradient(farthest-side, #0000 calc(100% - var(--thickness)), #000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side, #0000 calc(100% - var(--thickness)), #000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}.radial-progress:after{content:"";inset:calc(50% - var(--thickness) / 2);transform:rotate(calc(var(--value) * 3.6deg - 90deg)) translate(calc(var(--size) / 2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}.list{flex-direction:column;font-size:.875rem;display:flex}.list .list-row{--list-grid-cols:minmax(0, auto) 1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:"";border-bottom:var(--border) solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab, red, red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab, var(--color-base-content) 5%, transparent)}}.toggle{border:var(--border) solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p), var(--radius-selector-max)) + min(var(--border), var(--radius-selector-max)));padding:var(--toggle-p);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;display:inline-grid;position:relative;box-shadow:inset 0 1px}@supports (color:color-mix(in lab, red, red)){.toggle{box-shadow:0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000) inset}}.toggle{--input-color:var(--color-base-content);transition:color .3s,grid-template-columns .2s}@supports (color:color-mix(in lab, red, red)){.toggle{--input-color:color-mix(in oklab, var(--color-base-content) 50%, #0000)}}.toggle{--toggle-p:calc(var(--size) * .125);--size:calc(var(--size-selector,.25rem) * 6);width:calc((var(--size) * 2) - (var(--border) + var(--toggle-p)) * 2);height:var(--size)}.toggle>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s}.toggle>:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.toggle>:focus{outline-offset:2px;outline:2px solid #0000}}.toggle>:nth-child(2){color:var(--color-base-100);rotate:0deg}.toggle>:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}.toggle:has(:checked)>:nth-child(2){opacity:0;rotate:15deg}.toggle:has(:checked)>:nth-child(3){opacity:1;rotate:0deg}.toggle:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);width:100%;height:100%;box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor;background-color:currentColor;grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@supports (color:color-mix(in lab, red, red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000)}}.toggle:before{background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise)}@media (forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px * -1);outline-width:1px}}@media print{.toggle:before{outline-offset:-1rem;outline:.25rem solid}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px;outline:2px solid}.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{background-color:currentColor}@starting-style{:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{opacity:0}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr}.toggle:disabled{cursor:not-allowed;opacity:.3}.toggle:disabled:before{border:var(--border) solid currentColor;background-color:#0000}.input{cursor:text;border:var(--border) solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,.875rem), .875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.input{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.input{--size:calc(var(--size-field,.25rem) * 10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.input:where(input){display:inline-flex}.input :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr}.input :where(input[type=date]){display:inline-flex}.input:focus,.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.input::-webkit-date-and-time-value{text-align:inherit}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none;appearance:none;display:inline-flex}.input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute;inset-inline-end:.75em}.indicator{width:max-content;display:inline-flex;position:relative}.indicator :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%) var(--indicator-y,-50%);position:absolute}.table{border-collapse:separate;--tw-border-spacing-x:calc(.25rem * 0);--tw-border-spacing-y:calc(.25rem * 0);width:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-radius:var(--radius-box);text-align:left;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media (hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(thead,tfoot){color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}.steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden}.steps .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid}.steps .step:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);content:"";border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}.steps .step>.step-icon,.steps .step:not(:has(.step-icon)):after{--tw-content:counter(step);content:var(--tw-content);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}.steps .step:first-child:before{--tw-content:none;content:var(--tw-content)}.steps .step[data-content]:after{--tw-content:attr(data-content);content:var(--tw-content)}.range{appearance:none;webkit-appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem) * 6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:currentColor}@supports (color:color-mix(in lab, red, red)){.range{--range-bg:color-mix(in oklab, currentColor 10%, #0000)}}.range{cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden}[dir=rtl] .range{--range-dir:-1}.range:focus{outline:none}.range:focus-visible{outline-offset:2px;outline:2px solid}.range::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}@media (forced-colors:active){.range::-webkit-slider-runnable-track{border:1px solid}.range::-moz-range-track{border:1px solid}}.range::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));background-color:var(--range-thumb);height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;appearance:none;webkit-appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill));position:relative;top:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab, red, red)){.range::-webkit-slider-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))}}.range::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}.range::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill));background-color:currentColor;position:relative;top:50%}@supports (color:color-mix(in lab, red, red)){.range::-moz-range-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))}}.range:disabled{cursor:not-allowed;opacity:.3}.chat-bubble{border-radius:var(--radius-field);background-color:var(--color-base-300);width:fit-content;color:var(--color-base-content);grid-row-end:3;min-width:2.5rem;max-width:90%;min-height:2rem;padding-block:.5rem;padding-inline:1rem;display:block;position:relative}.chat-bubble:before{background-color:inherit;content:"";width:.75rem;height:.75rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-chat);-webkit-mask-image:var(--mask-chat);mask-image:var(--mask-chat);position:absolute;bottom:0;-webkit-mask-position:0 -1px;mask-position:0 -1px;-webkit-mask-size:.8125rem;mask-size:.8125rem}.select{border:var(--border) solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:.75rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.select{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.select{border-color:var(--input-color);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.select{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.select{--size:calc(var(--size-field,.25rem) * 10)}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}[dir=rtl] .select::picker(select){translate:.5rem}[dir=rtl] .select select::picker(select){translate:.5rem}.select[multiple]{background-image:none;height:auto;padding-block:.75rem;padding-inline-end:.75rem;overflow:auto}.select select{appearance:none;width:calc(100% + 2.75rem);height:calc(100% - calc(var(--border) * 2));background:inherit;border-radius:inherit;border-style:none;align-items:center;margin-inline:-.75rem -1.75rem;padding-inline:.75rem 1.75rem}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}.select:focus,.select:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.select:focus,.select:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}@supports (appearance:base-select){.select,.select select{appearance:base-select}:is(.select,.select select)::picker(select){appearance:base-select}}:is(.select,.select select)::picker(select){color:inherit;border:var(--border) solid var(--color-base-200);border-radius:var(--radius-box);background-color:inherit;max-height:min(24rem,70dvh);box-shadow:0 2px calc(var(--depth) * 3px) -2px oklch(0% 0 0/.2);box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth) * .1)), 0 8px 10px -6px rgb(0 0 0/calc(var(--depth) * .1));margin-block:.5rem;margin-inline:.5rem;padding:.5rem;translate:-.5rem}:is(.select,.select select)::picker-icon{display:none}:is(.select,.select select) optgroup{padding-top:.5em}:is(.select,.select select) optgroup option:first-child{margin-top:.5em}:is(.select,.select select) option{border-radius:var(--radius-field);white-space:normal;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0000}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral);color:var(--color-neutral-content);box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--color-neutral)}.timeline{display:flex;position:relative}.timeline>li{grid-template-rows:var(--timeline-row-start,minmax(0, 1fr)) auto var(--timeline-row-end,minmax(0, 1fr));grid-template-columns:var(--timeline-col-start,minmax(0, 1fr)) auto var(--timeline-col-end,minmax(0, 1fr));flex-shrink:0;align-items:center;display:grid;position:relative}.timeline>li>hr{border:none;width:100%}.timeline>li>hr:first-child{grid-row-start:2;grid-column-start:1}.timeline>li>hr:last-child{grid-area:2/3/auto/none}@media print{.timeline>li>hr{border:.1px solid var(--color-base-300)}}.timeline :where(hr){background-color:var(--color-base-300);height:.25rem}.timeline:has(.timeline-middle hr):first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline:has(.timeline-middle hr):last-child,.timeline:not(:has(.timeline-middle)) :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.timeline:not(:has(.timeline-middle)) :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.swap{cursor:pointer;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;place-content:center;display:inline-grid;position:relative}.swap input{appearance:none;border:none}.swap>*{grid-row-start:1;grid-column-start:1}@media (prefers-reduced-motion:no-preference){.swap>*{transition-property:transform,rotate,opacity;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.swap .swap-on,.swap .swap-indeterminate,.swap input:indeterminate~.swap-on,.swap input:is(:checked,:indeterminate)~.swap-off{opacity:0}.swap input:checked~.swap-on,.swap input:indeterminate~.swap-indeterminate{opacity:1;backface-visibility:visible}.collapse-title{grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.avatar{vertical-align:middle;display:inline-flex;position:relative}.avatar>div{aspect-ratio:1;display:block;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.checkbox{border:var(--border) solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.checkbox{border:var(--border) solid var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox{cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 0 #0000 inset, 0 0 #0000;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1))}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:0deg}.radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border) solid var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative}@supports (color:color-mix(in lab, red, red)){.radio{border:var(--border) solid var(--input-color,color-mix(in srgb, currentColor 20%, #0000))}}.radio{box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);color:var(--input-color,currentColor)}.radio:before{--tw-content:"";content:var(--tw-content);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}.radio:focus-visible{outline:2px solid}.radio:checked,.radio[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor}@media (prefers-reduced-motion:no-preference){.radio:checked,.radio[aria-checked=true]{animation:.2s ease-out radio}}:is(.radio:checked,.radio[aria-checked=true]):before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1));background-color:currentColor}@media (forced-colors:active){:is(.radio:checked,.radio[aria-checked=true]):before{outline-style:var(--tw-outline-style);outline-offset:calc(1px * -1);outline-width:1px}}@media print{:is(.radio:checked,.radio[aria-checked=true]):before{outline-offset:-1rem;outline:.25rem solid}}.rating{vertical-align:middle;display:inline-flex;position:relative}.rating input{appearance:none;border:none}.rating :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem}@media (prefers-reduced-motion:no-preference){.rating :where(*){animation:.25s ease-out rating}}.rating :where(*):is(input){cursor:pointer}.rating .rating-hidden{background-color:#0000;width:.5rem}.rating input[type=radio]:checked{background-image:none}.rating :checked,.rating [aria-checked=true],.rating [aria-current=true],.rating :has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}.rating :focus-visible{scale:1.1}@media (prefers-reduced-motion:no-preference){.rating :focus-visible{transition:scale .2s ease-out}}.rating :active:focus{animation:none;scale:1.1}.rating\!{vertical-align:middle!important;display:inline-flex!important;position:relative!important}.rating\! input{appearance:none!important;border:none!important}.rating\! :where(*){background-color:var(--color-base-content)!important;opacity:.2!important;border-radius:0!important;width:1.5rem!important;height:1.5rem!important}@media (prefers-reduced-motion:no-preference){.rating\! :where(*){animation:.25s ease-out rating!important}}.rating\! :where(*):is(input){cursor:pointer!important}.rating\! .rating-hidden{background-color:#0000!important;width:.5rem!important}.rating\! input[type=radio]:checked{background-image:none!important}.rating\! :checked,.rating\! [aria-checked=true],.rating\! [aria-current=true],.rating\! :has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1!important}.rating\! :focus-visible{scale:1.1!important}@media (prefers-reduced-motion:no-preference){.rating\! :focus-visible{transition:scale .2s ease-out!important}}.rating\! :active:focus{animation:none!important;scale:1.1!important}.navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.card:focus{outline-offset:2px;outline:2px solid #0000}}.card:focus-visible{outline-color:currentColor}.card :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card figure{justify-content:center;align-items:center;display:flex}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card:has(>:checked){outline:2px solid}.stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.progress{appearance:none;border-radius:var(--radius-box);background-color:currentColor;width:100%;height:.5rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.progress{background-color:color-mix(in oklab, currentcolor 20%, transparent)}}.progress{color:var(--color-base-content)}.progress:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%}@media (prefers-reduced-motion:no-preference){.progress:indeterminate{animation:5s ease-in-out infinite progress}}@supports ((-moz-appearance:none)){.progress:indeterminate::-moz-progress-bar{background-color:#0000}@media (prefers-reduced-motion:no-preference){.progress:indeterminate::-moz-progress-bar{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}.progress::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){.progress::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}.progress::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}.textarea{border:var(--border) solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);min-height:5rem;font-size:max(var(--font-size,.875rem), .875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;flex-shrink:1;padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab, red, red)){.textarea{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.textarea{--input-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.textarea{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.textarea textarea{appearance:none;background-color:#0000;border:none}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus,.textarea:focus-within{--font-size:1rem}}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid}.stack>*{width:100%;height:100%}.stack>:nth-child(n+2){opacity:.7;width:100%}.stack>:nth-child(2){z-index:2;opacity:.9}.stack>:first-child{z-index:3;width:100%}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid}.modal-backdrop button{cursor:pointer}.tab-content{order:var(--tabcontent-order);--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box);--tabcontent-order:1;width:100%;height:calc(100% - var(--tab-height) + var(--border));margin:var(--tabcontent-margin);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.timeline-end{grid-area:3/1/4/4;place-self:flex-start center;margin:.25rem}.timeline-start{grid-area:1/1/2/4;place-self:flex-end center;margin:.25rem}.stat-figure{grid-row:1/span 3;grid-column-start:2;place-self:center flex-end}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:.95;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.timeline-middle{grid-row-start:2;grid-column-start:2}.stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.stat-desc{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab, red, red)){.stat-desc{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.stat-desc{font-size:.75rem}.stat-title{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab, red, red)){.stat-title{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.stat-title{font-size:.75rem}.stat-actions{white-space:nowrap;grid-column-start:1}.chat-image{grid-row:span 2/span 2;align-self:flex-end}.chat-footer{grid-row-start:3;gap:.25rem;font-size:.6875rem;display:flex}.chat-header{grid-row-start:1;gap:.25rem;font-size:.6875rem;display:flex}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:var(--color-base-content);flex-direction:row;align-self:stretch;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){.divider{--divider-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.divider:before,.divider:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:before,.divider:after{border:.5px solid}}.divider:not(:empty){gap:1rem}.filter{flex-wrap:wrap;display:flex}.filter input[type=radio]{width:auto}.filter input{opacity:1;transition:margin .1s,opacity .3s,padding .3s,border-width .1s;overflow:hidden;scale:1}.filter input:not(:last-child){margin-inline-end:.25rem}.filter input.filter-reset{aspect-ratio:1}.filter input.filter-reset:after{--tw-content:"×";content:var(--tw-content)}.filter:not(:has(input:checked:not(.filter-reset))) .filter-reset,.filter:not(:has(input:checked:not(.filter-reset))) input[type=reset],.filter:has(input:checked:not(.filter-reset)) input:not(:checked,.filter-reset,input[type=reset]){opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.label{color:color-mix(in oklab, currentcolor 60%, transparent)}}.label:has(input){cursor:pointer}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}.modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.carousel-item{box-sizing:content-box;scroll-snap-align:start;flex:none;display:flex}.status{aspect-ratio:1;border-radius:var(--radius-selector);background-color:var(--color-base-content);width:.5rem;height:.5rem;display:inline-block}@supports (color:color-mix(in lab, red, red)){.status{background-color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.status{vertical-align:middle;color:#0000004d;background-position:50%;background-repeat:no-repeat}@supports (color:color-mix(in lab, red, red)){.status{color:color-mix(in oklab, var(--color-black) 30%, transparent)}}.status{background-image:radial-gradient(circle at 35% 30%, oklch(1 0 0 / calc(var(--depth) * .5)), #0000);box-shadow:0 2px 3px -1px}@supports (color:color-mix(in lab, red, red)){.status{box-shadow:0 2px 3px -1px color-mix(in oklab, currentColor calc(var(--depth) * 100%), #0000)}}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border) solid var(--badge-color,var(--color-base-200));background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem) * 6);width:fit-content;height:var(--size);padding-inline:calc(var(--size) / 2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border) solid var(--color-base-content);justify-content:center;align-items:center;padding-inline:.5em;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.kbd{border:var(--border) solid color-mix(in srgb, var(--color-base-content) 20%, #0000)}}.kbd{border-bottom:calc(var(--border) + 1px) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.kbd{border-bottom:calc(var(--border) + 1px) solid color-mix(in srgb, var(--color-base-content) 20%, #0000)}}.kbd{--size:calc(var(--size-selector,.25rem) * 6);height:var(--size);min-width:var(--size);font-size:.875rem}.text-rotate{vertical-align:bottom;white-space:nowrap;--duration:var(--tw-duration);transition-property:none;display:inline-block;overflow:hidden}.text-rotate>*{height:calc(var(--items,1) * 100%);justify-items:start;display:grid}.text-rotate>:has(:nth-child(2)){--items:2;animation:rotator var(--duration,10s) linear(0 0% 49%, .5 50% 99%, 1 100% 100%) infinite}.text-rotate>:has(:nth-child(3)){--items:3;animation:rotator var(--duration,10s) linear(0 0% 32%, .333333 33% 65%, .666666 66% 99%, 1 100% 100%) infinite}.text-rotate>:has(:nth-child(4)){--items:4;animation:rotator var(--duration,10s) linear(0 0% 24%, .25 25% 49%, .5 50% 74%, .75 75% 99%, 1 100% 100%) infinite}.text-rotate>:has(:nth-child(5)){--items:5;animation:rotator var(--duration,10s) linear(0 0% 19%, .2 20% 39%, .4 40% 59%, .6 60% 79%, .8 80% 99%, 1 100% 100%) infinite}.text-rotate>:has(:nth-child(6)){--items:6;animation:rotator var(--duration,10s) linear(0 0% 15%, .16666 16% 32%, .333333 33% 49%, .5 50% 65%, .666666 66% 82%, .833333 83% 99%, 1 100% 100%) infinite}.text-rotate>*>*{clip-path:inset(.5px 0);align-content:baseline}.text-rotate>*>:first-child{translate:var(--first-item-position)}.text-rotate:hover>*{animation-play-state:paused}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem) * 10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid}.footer>*{place-items:start;gap:.5rem;display:grid}.footer.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center}.footer.footer-center>*{place-items:center}.stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid}.stat:not(:last-child){border-inline-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab, red, red)){.stat:not(:last-child){border-inline-end:var(--border) dashed color-mix(in oklab, currentColor 10%, #0000)}}.stat:not(:last-child){border-block-end:none}.navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}.navbar-start{justify-content:flex-start;align-items:center;width:50%;display:inline-flex}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card-body :where(p){flex-grow:1}.navbar-center{flex-shrink:0;align-items:center;display:inline-flex}.fieldset-label{color:var(--color-base-content);align-items:center;gap:.375rem;display:flex}@supports (color:color-mix(in lab, red, red)){.fieldset-label{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.fieldset-label:has(input){cursor:pointer}.carousel{scroll-snap-type:x mandatory;scrollbar-width:none;display:inline-flex;overflow-x:scroll}@media (prefers-reduced-motion:no-preference){.carousel{scroll-behavior:smooth}}.carousel::-webkit-scrollbar{display:none}.alert{--alert-border-color:var(--color-base-200);border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px #000, 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08));border-style:solid;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab, red, red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px color-mix(in oklab, color-mix(in oklab, #000 20%, var(--alert-color,var(--color-base-200))) calc(var(--depth) * 20%), #0000), 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");grid-auto-rows:min-content;column-gap:.75rem;padding-block:.25rem;display:grid}.card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.mask{vertical-align:middle;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300)}@media (prefers-reduced-motion:reduce){.skeleton{transition-duration:15s}}.skeleton{will-change:background-position;background-image:linear-gradient(105deg, #0000 0% 40%, var(--color-base-100) 50%, #0000 60% 100%);background-position-x:-50%;background-size:200%}@media (prefers-reduced-motion:no-preference){.skeleton{animation:1.8s ease-in-out infinite skeleton}}.timeline-box{border:var(--border) solid;border-radius:var(--radius-box);border-color:var(--color-base-300);background-color:var(--color-base-100);padding-block:.5rem;padding-inline:1rem;font-size:.75rem;box-shadow:0 1px 2px oklch(0% 0 0/.05)}.btn-accent{--btn-color:var(--color-accent);--btn-fg:var(--color-accent-content)}.btn-error{--btn-color:var(--color-error);--btn-fg:var(--color-error-content)}.btn-info{--btn-color:var(--color-info);--btn-fg:var(--color-info-content)}.btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}.btn-success{--btn-color:var(--color-success);--btn-fg:var(--color-success-content)}.btn-warning{--btn-color:var(--color-warning);--btn-fg:var(--color-warning-content)}}@layer daisyui.l1.l2{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;background-color:oklch(0% 0 0/.4)}:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal) .modal-box{opacity:1;translate:0;scale:1}:root:has(:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal)){--page-has-backdrop:1;--page-overflow:hidden;--page-scroll-bg:var(--page-scroll-bg-on);--page-scroll-gutter:stable;--page-scroll-transition:var(--page-scroll-transition-on);animation:forwards set-page-has-scroll;animation-timeline:scroll()}@starting-style{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{opacity:0}}:where(.drawer-toggle:checked~.drawer-side){pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto}:where(.drawer-toggle:checked~.drawer-side)>:not(.drawer-overlay){translate:0%}.drawer-toggle:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}.tooltip>.tooltip-content,.tooltip[data-tip]:before{transform:translateX(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}.tooltip:after{transform:translateX(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.collapse-arrow>.collapse-title:after{width:.5rem;height:.5rem;display:block;position:absolute;transform:translateY(-100%)rotate(45deg)}@media (prefers-reduced-motion:no-preference){.collapse-arrow>.collapse-title:after{transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}}.collapse-arrow>.collapse-title:after{content:"";transform-origin:75% 75%;pointer-events:none;top:50%;inset-inline-end:1.4rem;box-shadow:2px 2px}.btn:disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.btn:disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn:disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:disabled{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn[disabled]:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn[disabled]:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.btn[disabled]:not(.btn-link,.btn-ghost){box-shadow:none}.btn[disabled]{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn[disabled]{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn-disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn-disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.btn-disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn-disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn-disabled{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.tab-disabled{pointer-events:none;opacity:.4}@media (prefers-reduced-motion:no-preference){.collapse[open].collapse-arrow>.collapse-title:after,.collapse.collapse-open.collapse-arrow>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}.collapse.collapse-open.collapse-plus>.collapse-title:after{--tw-content:"−";content:var(--tw-content)}:is(.collapse[tabindex].collapse-arrow:focus:not(.collapse-close),.collapse.collapse-arrow[tabindex]:focus-within:not(.collapse-close))>.collapse-title:after,.collapse.collapse-arrow:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}.collapse[open].collapse-plus>.collapse-title:after,.collapse[tabindex].collapse-plus:focus:not(.collapse-close)>.collapse-title:after,.collapse.collapse-plus:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{--tw-content:"−";content:var(--tw-content)}.tabs-lift{--tabs-height:auto;--tabs-direction:row}.tabs-lift>.tab{--tab-border:0 0 var(--border) 0;--tab-radius-ss:var(--tab-radius-limit);--tab-radius-se:var(--tab-radius-limit);--tab-radius-es:0;--tab-radius-ee:0;--tab-paddings:var(--border) var(--tab-p) 0 var(--tab-p);--tab-border-colors:#0000 #0000 var(--tab-border-color) #0000;--tab-corner-width:calc(100% + var(--tab-radius-limit) * 2);--tab-corner-height:var(--tab-radius-limit);--tab-corner-position:top left, top right;border-width:var(--tab-border);padding:var(--tab-paddings);border-color:var(--tab-border-colors);border-start-start-radius:var(--tab-radius-ss);border-start-end-radius:var(--tab-radius-se);border-end-end-radius:var(--tab-radius-ee);border-end-start-radius:var(--tab-radius-es)}.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked)){--tab-border:var(--border) var(--border) 0 var(--border);--tab-border-colors:var(--tab-border-color) var(--tab-border-color) #0000 var(--tab-border-color);--tab-paddings:0 calc(var(--tab-p) - var(--border)) var(--border) calc(var(--tab-p) - var(--border));--tab-inset:auto auto 0 auto;--radius-start:radial-gradient(circle at top left, var(--tab-radius-grad));--radius-end:radial-gradient(circle at top right, var(--tab-radius-grad));background-color:var(--tab-bg)}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):before{z-index:1;content:"";width:var(--tab-corner-width);height:var(--tab-corner-height);background-position:var(--tab-corner-position);background-image:var(--radius-start), var(--radius-end);background-size:var(--tab-radius-limit) var(--tab-radius-limit);inset:var(--tab-inset);background-repeat:no-repeat;display:block;position:absolute}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):first-child:before{--radius-start:none}[dir=rtl] :is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):first-child:before{transform:rotateY(180deg)}:is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):last-child:before{--radius-end:none}[dir=rtl] :is(.tabs-lift>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-lift>.tab:is(input:checked,label:has(:checked))):last-child:before{transform:rotateY(180deg)}.tabs-lift:has(>.tab-content)>.tab:first-child:not(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){--tab-border-colors:var(--tab-border-color) var(--tab-border-color) #0000 var(--tab-border-color)}.tabs-lift>.tab-content{--tabcontent-margin:calc(-1 * var(--border)) 0 0 0;--tabcontent-radius-ss:0;--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box)}:is(.tabs-lift :checked,.tabs-lift label:has(:checked),.tabs-lift :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:first-child,:is(.tabs-lift :checked,.tabs-lift label:has(:checked),.tabs-lift :is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content:nth-child(n+3){--tabcontent-radius-ss:var(--radius-box)}.list .list-row:has(.list-col-grow:first-child){--list-grid-cols:1fr}.list .list-row:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row>*{grid-row-start:1}.steps .step-neutral+.step-neutral:before,.steps .step-neutral:after,.steps .step-neutral>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}.steps .step-primary+.step-primary:before,.steps .step-primary:after,.steps .step-primary>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}.steps .step-secondary+.step-secondary:before,.steps .step-secondary:after,.steps .step-secondary>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}.steps .step-accent+.step-accent:before,.steps .step-accent:after,.steps .step-accent>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}.steps .step-info+.step-info:before,.steps .step-info:after,.steps .step-info>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}.steps .step-success+.step-success:before,.steps .step-success:after,.steps .step-success>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}.steps .step-warning+.step-warning:before,.steps .step-warning:after,.steps .step-warning>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}.steps .step-error+.step-error:before,.steps .step-error:after,.steps .step-error>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}.tabs-border>.tab{--tab-border-color:#0000 #0000 var(--tab-border-color) #0000;border-radius:var(--radius-field);position:relative}.tabs-border>.tab:before{content:"";background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}:is(.tabs-border>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-border>.tab:is(input:checked),.tabs-border>.tab:is(label:has(:checked))):before{--tab-border-color:currentColor;border-top:3px solid}.menu-horizontal{flex-direction:row;display:inline-flex}.menu-horizontal>li:not(.menu-title)>details>ul{transform-origin:top;border-radius:var(--radius-box);background-color:var(--color-base-100);opacity:0;margin-inline-start:0;margin-top:1rem;padding-block:.5rem;padding-inline-end:.5rem;position:absolute;scale:.95;box-shadow:0 1px 3px oklch(0% 0 0/.1),0 1px 2px -1px oklch(0% 0 0/.1)}@media (prefers-reduced-motion:no-preference){@starting-style{.menu-horizontal>li:not(.menu-title)>details>ul{opacity:0;scale:.95}}.menu-horizontal>li:not(.menu-title)>details>ul{transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s menu}}.menu-horizontal>li:not(.menu-title)>details[open]>ul{opacity:1;scale:1}.menu-horizontal>li>details>ul:before{--tw-content:none;content:var(--tw-content)}.menu-vertical{flex-direction:column;display:inline-flex}.menu-vertical>li:not(.menu-title)>details>ul{background-color:revert-layer;border-radius:revert-layer;animation:revert-layer;box-shadow:revert-layer;margin-inline-start:1rem;margin-top:0;padding-block:0;padding-inline-end:0;transition:revert-layer;position:relative}.checkbox:disabled,.radio:disabled{cursor:not-allowed;opacity:.2}.rating.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}.rating.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}.rating.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}.rating.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}.rating.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}.rating\!.rating-xs :where(:not(.rating-hidden)){width:1rem!important;height:1rem!important}.rating\!.rating-sm :where(:not(.rating-hidden)){width:1.25rem!important;height:1.25rem!important}.rating\!.rating-md :where(:not(.rating-hidden)){width:1.5rem!important;height:1.5rem!important}.rating\!.rating-lg :where(:not(.rating-hidden)){width:1.75rem!important;height:1.75rem!important}.rating\!.rating-xl :where(:not(.rating-hidden)){width:2rem!important;height:2rem!important}:where(.navbar){position:relative}.tooltip-bottom>.tooltip-content,.tooltip-bottom[data-tip]:before{transform:translateX(-50%) translateY(var(--tt-pos,-.25rem));inset:var(--tt-off) auto auto 50%}.tooltip-bottom:after{transform:translateX(-50%) translateY(var(--tt-pos,-.25rem)) rotate(180deg);inset:var(--tt-tail) auto auto 50%}.tooltip-left>.tooltip-content,.tooltip-left[data-tip]:before{transform:translateX(calc(var(--tt-pos,.25rem) - .25rem)) translateY(-50%);inset:50% var(--tt-off) auto auto}.tooltip-left:after{transform:translateX(var(--tt-pos,.25rem)) translateY(-50%) rotate(-90deg);inset:50% calc(var(--tt-tail) + 1px) auto auto}.tooltip-right>.tooltip-content,.tooltip-right[data-tip]:before{transform:translateX(calc(var(--tt-pos,-.25rem) + .25rem)) translateY(-50%);inset:50% auto auto var(--tt-off)}.tooltip-right:after{transform:translateX(var(--tt-pos,-.25rem)) translateY(-50%) rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}.tooltip-top>.tooltip-content,.tooltip-top[data-tip]:before{transform:translateX(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}.tooltip-top:after{transform:translateX(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.dropdown-right{--anchor-h:right;--anchor-v:span-bottom}.dropdown-right .dropdown-content{transform-origin:0;inset-inline-start:100%;top:0;bottom:auto}.dropdown-left{--anchor-h:left;--anchor-v:span-bottom}.dropdown-left .dropdown-content{transform-origin:100%;inset-inline-end:100%;top:0;bottom:auto}.dropdown-end{--anchor-h:span-left}.dropdown-end :where(.dropdown-content){inset-inline-end:0;translate:0}[dir=rtl] :is(.dropdown-end :where(.dropdown-content)){translate:0}.dropdown-end.dropdown-left{--anchor-h:left;--anchor-v:span-top}.dropdown-end.dropdown-left .dropdown-content{top:auto;bottom:0}.dropdown-end.dropdown-right{--anchor-h:right;--anchor-v:span-top}.dropdown-end.dropdown-right .dropdown-content{top:auto;bottom:0}.dropdown-bottom{--anchor-v:bottom}.dropdown-bottom .dropdown-content{transform-origin:top;top:100%;bottom:auto}.dropdown-top{--anchor-v:top}.dropdown-top .dropdown-content{transform-origin:bottom;top:auto;bottom:100%}.btn-active{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn-active{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn-active{--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0);isolation:isolate}:is(.stack,.stack.stack-bottom)>*{grid-area:3/3/6/4}:is(.stack,.stack.stack-bottom)>:nth-child(2){grid-area:2/2/5/5}:is(.stack,.stack.stack-bottom)>:first-child{grid-area:1/1/4/6}.stack.stack-top>*{grid-area:1/3/4/4}.stack.stack-top>:nth-child(2){grid-area:2/2/5/5}.stack.stack-top>:first-child{grid-area:3/1/6/6}.stack.stack-start>*{grid-area:3/1/4/4}.stack.stack-start>:nth-child(2){grid-area:2/2/5/5}.stack.stack-start>:first-child{grid-area:1/3/6/6}.stack.stack-end>*{grid-area:3/3/4/6}.stack.stack-end>:nth-child(2){grid-area:2/2/5/5}.stack.stack-end>:first-child{grid-area:1/1/6/4}.tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(3 * var(--radius-field));border-radius:calc(min(var(--tab-height) / 2, var(--radius-field)) + min(.25rem, var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 .5px oklch(0% 0 0 / calc(var(--depth) * .05)) inset;padding:.25rem}.tabs-box>.tab{border-radius:var(--radius-field);border-style:none}.tabs-box>.tab:focus-visible,.tabs-box>.tab:is(label:has(:checked:focus-visible)){outline-offset:2px}.tabs-box>.tab:focus-visible{z-index:1}.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px var(--color-neutral), 0 1px 6px -4px var(--color-neutral)}@supports (color:color-mix(in lab, red, red)){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 50%), #0000), 0 1px 6px -4px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 100%), #0000)}}@media (forced-colors:active){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){border:1px solid}}.tabs-box>.tab-content{height:calc(100% - var(--tab-height) + var(--border) - .5rem);border-radius:calc(min(var(--tab-height) / 2, var(--radius-field)) + min(.25rem, var(--tabs-box-radius)) - var(--border));margin-top:.25rem}.timeline-horizontal{flex-direction:row}.timeline-horizontal>li{align-items:center}.timeline-horizontal>li>hr{width:100%;height:.25rem}.timeline-horizontal>li>hr:first-child{grid-row-start:2;grid-column-start:1}.timeline-horizontal>li>hr:last-child{grid-area:2/3/auto/none}.timeline-horizontal .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}.timeline-horizontal .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}.timeline-horizontal:has(.timeline-middle)>li>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline-horizontal:has(.timeline-middle)>li>hr:last-child,.timeline-horizontal:not(:has(.timeline-middle)) :first-child>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.timeline-horizontal:not(:has(.timeline-middle)) :last-child>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline-vertical{flex-direction:column}.timeline-vertical>li{--timeline-row-start:minmax(0, 1fr);--timeline-row-end:minmax(0, 1fr);justify-items:center}.timeline-vertical>li>hr{width:.25rem;height:100%}.timeline-vertical>li>hr:first-child{grid-row-start:1;grid-column-start:2}.timeline-vertical>li>hr:last-child{grid-area:3/2/none}.timeline-vertical .timeline-start{grid-area:1/1/4/2;place-self:center flex-end}.timeline-vertical .timeline-end{grid-area:1/3/4/4;place-self:center flex-start}.timeline-vertical:has(.timeline-middle)>li>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.timeline-vertical:has(.timeline-middle)>li>hr:last-child,.timeline-vertical:not(:has(.timeline-middle)) :first-child>hr:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}.timeline-vertical:not(:has(.timeline-middle)) :last-child>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.timeline-vertical.timeline-snap-icon>li{--timeline-col-start:minmax(0, 1fr);--timeline-row-start:.5rem}.timeline-compact{--timeline-row-start:0}.timeline-compact .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}.timeline-compact li:has(.timeline-start) .timeline-end{grid-row-start:auto;grid-column-start:none}.timeline-compact.timeline-vertical>li{--timeline-col-start:0}.timeline-compact.timeline-vertical .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}.timeline-compact.timeline-vertical li:has(.timeline-start) .timeline-end{grid-row-start:none;grid-column-start:auto}.drawer-end{grid-auto-columns:auto max-content}.drawer-end>.drawer-toggle~.drawer-content{grid-column-start:1}.drawer-end>.drawer-toggle~.drawer-side{grid-column-start:2;justify-items:end}.drawer-end>.drawer-toggle~.drawer-side>:not(.drawer-overlay){translate:100%}[dir=rtl] :is(.drawer-end>.drawer-toggle~.drawer-side>:not(.drawer-overlay)){translate:-100%}.drawer-end>.drawer-toggle:checked~.drawer-side>:not(.drawer-overlay){translate:0%}.input-lg{--size:calc(var(--size-field,.25rem) * 12);font-size:max(var(--font-size,1.125rem), 1.125rem)}.input-lg[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input-md{--size:calc(var(--size-field,.25rem) * 10);font-size:max(var(--font-size,.875rem), .875rem)}.input-md[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input-sm{--size:calc(var(--size-field,.25rem) * 8);font-size:max(var(--font-size,.75rem), .75rem)}.input-sm[type=number]::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}.input-xs{--size:calc(var(--size-field,.25rem) * 6);font-size:max(var(--font-size,.6875rem), .6875rem)}.input-xs[type=number]::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}.modal-bottom{place-items:end}.modal-bottom .modal-box{--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}.modal-middle{place-items:center}.modal-middle .modal-box{--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:91.6667%;max-width:32rem;height:auto;max-height:calc(100vh - 5em);translate:0 2%;scale:.98}.modal-top{place-items:start}.modal-top .modal-box{--modal-tl:0;--modal-tr:0;--modal-bl:var(--radius-box);--modal-br:var(--radius-box);width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 -100%;scale:1}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-square{width:var(--size);height:var(--size);padding-inline:0}.btn-wide{width:100%;max-width:16rem}.btn-block{width:100%}.swap-rotate .swap-on,.swap-rotate input:indeterminate~.swap-on{rotate:45deg}.swap-rotate input:is(:checked,:indeterminate)~.swap-on,.swap-rotate.swap-active .swap-on{rotate:0deg}.swap-rotate input:is(:checked,:indeterminate)~.swap-off,.swap-rotate.swap-active .swap-off{rotate:-45deg}.swap-flip{transform-style:preserve-3d;perspective:20rem}.swap-flip .swap-on,.swap-flip .swap-indeterminate,.swap-flip input:indeterminate~.swap-on{backface-visibility:hidden;transform:rotateY(180deg)}.swap-flip input:is(:checked,:indeterminate)~.swap-on,.swap-flip.swap-active .swap-on{transform:rotateY(0)}.swap-flip input:is(:checked,:indeterminate)~.swap-off,.swap-flip.swap-active .swap-off{backface-visibility:hidden;opacity:1;transform:rotateY(-180deg)}.stats-horizontal{grid-auto-flow:column;overflow-x:auto}.stats-horizontal .stat:not(:last-child){border-inline-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab, red, red)){.stats-horizontal .stat:not(:last-child){border-inline-end:var(--border) dashed color-mix(in oklab, currentColor 10%, #0000)}}.stats-horizontal .stat:not(:last-child){border-block-end:none}.stats-vertical{grid-auto-flow:row;overflow-y:auto}.stats-vertical .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab, red, red)){.stats-vertical .stat:not(:last-child){border-block-end:var(--border) dashed color-mix(in oklab, currentColor 10%, #0000)}}.menu-lg :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-lg :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:1rem;font-size:1.125rem}.menu-lg .menu-title{padding-block:.75rem;padding-inline:1.5rem}.menu-md :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-md :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.375rem;padding-inline:.75rem;font-size:.875rem}.menu-md .menu-title{padding-block:.5rem;padding-inline:.75rem}.menu-sm :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-sm :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.625rem;font-size:.75rem}.menu-sm .menu-title{padding-block:.5rem;padding-inline:.75rem}.menu-xs :where(li:not(.menu-title)>:not(ul,details,.menu-title)),.menu-xs :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);padding-block:.25rem;padding-inline:.5rem;font-size:.6875rem}.menu-xs .menu-title{padding-block:.25rem;padding-inline:.5rem}.badge-dash{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.select-ghost{box-shadow:none;background-color:#0000;border-color:#0000;transition:background-color .2s}.select-ghost:focus,.select-ghost:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}.input-ghost{box-shadow:none;background-color:#0000;border-color:#0000}.input-ghost:focus,.input-ghost:focus-within{background-color:var(--color-base-100);color:var(--color-base-content);box-shadow:none;border-color:#0000}.badge-outline{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-color:currentColor}.table-zebra tbody tr:where(:nth-child(2n)),.table-zebra tbody tr:where(:nth-child(2n)) :where(.table-pin-cols tr th){background-color:var(--color-base-200)}@media (hover:hover){:is(.table-zebra tbody tr.row-hover,.table-zebra tbody tr.row-hover:where(:nth-child(2n))):hover{background-color:var(--color-base-300)}}.skeleton-text{webkit-background-clip:text;color:#0000;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(105deg, var(--color-base-content) 0% 40%, var(--color-base-content) 50%, var(--color-base-content) 60% 100%)}@supports (color:color-mix(in lab, red, red)){.skeleton-text{background-image:linear-gradient(105deg, color-mix(in oklab, var(--color-base-content) 20%, transparent) 0% 40%, var(--color-base-content) 50%, color-mix(in oklab, var(--color-base-content) 20%, transparent) 60% 100%)}}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.mask-circle{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-heart{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='200' height='185' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 184.606a15.384 15.384 0 0 1-8.653-2.678C53.565 156.28 37.205 138.695 28.182 127.7 8.952 104.264-.254 80.202.005 54.146.308 24.287 24.264 0 53.406 0c21.192 0 35.869 11.937 44.416 21.879a2.884 2.884 0 0 0 4.356 0C110.725 11.927 125.402 0 146.594 0c29.142 0 53.098 24.287 53.4 54.151.26 26.061-8.956 50.122-28.176 73.554-9.023 10.994-25.383 28.58-63.165 54.228a15.384 15.384 0 0 1-8.653 2.673Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='200' height='185' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 184.606a15.384 15.384 0 0 1-8.653-2.678C53.565 156.28 37.205 138.695 28.182 127.7 8.952 104.264-.254 80.202.005 54.146.308 24.287 24.264 0 53.406 0c21.192 0 35.869 11.937 44.416 21.879a2.884 2.884 0 0 0 4.356 0C110.725 11.927 125.402 0 146.594 0c29.142 0 53.098 24.287 53.4 54.151.26 26.061-8.956 50.122-28.176 73.554-9.023 10.994-25.383 28.58-63.165 54.228a15.384 15.384 0 0 1-8.653 2.673Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e")}.mask-star{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 137.263-58.779 42.024 22.163-68.389L.894 68.481l72.476-.243L96 0l22.63 68.238 72.476.243-58.49 42.417 22.163 68.389z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 137.263-58.779 42.024 22.163-68.389L.894 68.481l72.476-.243L96 0l22.63 68.238 72.476.243-58.49 42.417 22.163 68.389z' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-star-2{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 153.044-58.779 26.243 7.02-63.513L.894 68.481l63.117-13.01L96 0l31.989 55.472 63.117 13.01-43.347 47.292 7.02 63.513z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 153.044-58.779 26.243 7.02-63.513L.894 68.481l63.117-13.01L96 0l31.989 55.472 63.117 13.01-43.347 47.292 7.02 63.513z' fill-rule='evenodd'/%3e%3c/svg%3e")}.checkbox-lg{--size:calc(var(--size-selector,.25rem) * 7);padding:.3125rem}.checkbox-md{--size:calc(var(--size-selector,.25rem) * 6);padding:.25rem}.checkbox-sm{--size:calc(var(--size-selector,.25rem) * 5);padding:.1875rem}.checkbox-xs{--size:calc(var(--size-selector,.25rem) * 4);padding:.125rem}.radio-lg{padding:.3125rem}.radio-lg[type=radio]{--size:calc(var(--size-selector,.25rem) * 7)}.radio-md{padding:.25rem}.radio-md[type=radio]{--size:calc(var(--size-selector,.25rem) * 6)}.radio-sm{padding:.1875rem}.radio-sm[type=radio]{--size:calc(var(--size-selector,.25rem) * 5)}.radio-xs{padding:.125rem}.radio-xs[type=radio]{--size:calc(var(--size-selector,.25rem) * 4)}.select-lg{--size:calc(var(--size-field,.25rem) * 12);font-size:1.125rem}.select-lg option{padding-block:.375rem;padding-inline:1rem}.select-md{--size:calc(var(--size-field,.25rem) * 10);font-size:.875rem}.select-md option{padding-block:.375rem;padding-inline:.75rem}.select-sm{--size:calc(var(--size-field,.25rem) * 8);font-size:.75rem}.select-sm option{padding-block:.25rem;padding-inline:.625rem}.select-xs{--size:calc(var(--size-field,.25rem) * 6);font-size:.6875rem}.select-xs option{padding-block:.25rem;padding-inline:.5rem}.table-lg :not(thead,tfoot) tr{font-size:1.125rem}.table-lg :where(th,td){padding-block:1rem;padding-inline:1.25rem}.table-md :not(thead,tfoot) tr{font-size:.875rem}.table-md :where(th,td){padding-block:.75rem;padding-inline:1rem}.table-sm :not(thead,tfoot) tr{font-size:.75rem}.table-sm :where(th,td){padding-block:.5rem;padding-inline:.75rem}.table-xl :not(thead,tfoot) tr{font-size:1.375rem}.table-xl :where(th,td){padding-block:1.25rem;padding-inline:1.5rem}.table-xs :not(thead,tfoot) tr{font-size:.6875rem}.table-xs :where(th,td){padding-block:.25rem;padding-inline:.5rem}.tabs-lg{--tab-height:calc(var(--size-field,.25rem) * 12)}.tabs-lg>.tab{--tab-p:1rem;--tab-radius-min:calc(1.5rem - var(--border));font-size:1.125rem}.tabs-md{--tab-height:calc(var(--size-field,.25rem) * 10)}.tabs-md>.tab{--tab-p:.75rem;--tab-radius-min:calc(.75rem - var(--border));font-size:.875rem}.tabs-sm{--tab-height:calc(var(--size-field,.25rem) * 8)}.tabs-sm>.tab{--tab-p:.5rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.875rem}.tabs-xs{--tab-height:calc(var(--size-field,.25rem) * 6)}.tabs-xs>.tab{--tab-p:.375rem;--tab-radius-min:calc(.5rem - var(--border));font-size:.75rem}.badge-lg{--size:calc(var(--size-selector,.25rem) * 7);font-size:1rem}.badge-md{--size:calc(var(--size-selector,.25rem) * 6);font-size:.875rem}.badge-sm{--size:calc(var(--size-selector,.25rem) * 5);font-size:.75rem}.badge-xs{--size:calc(var(--size-selector,.25rem) * 4);font-size:.625rem}.alert-error{color:var(--color-error-content);--alert-border-color:var(--color-error);--alert-color:var(--color-error)}.alert-info{color:var(--color-info-content);--alert-border-color:var(--color-info);--alert-color:var(--color-info)}.alert-success{color:var(--color-success-content);--alert-border-color:var(--color-success);--alert-color:var(--color-success)}.alert-warning{color:var(--color-warning-content);--alert-border-color:var(--color-warning);--alert-color:var(--color-warning)}.checkbox-accent{color:var(--color-accent-content);--input-color:var(--color-accent)}.checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.checkbox-info{color:var(--color-info-content);--input-color:var(--color-info)}.checkbox-primary{color:var(--color-primary-content);--input-color:var(--color-primary)}.checkbox-secondary{color:var(--color-secondary-content);--input-color:var(--color-secondary)}.checkbox-success{color:var(--color-success-content);--input-color:var(--color-success)}.checkbox-warning{color:var(--color-warning-content);--input-color:var(--color-warning)}.range-accent{color:var(--color-accent);--range-thumb:var(--color-accent-content)}.range-error{color:var(--color-error);--range-thumb:var(--color-error-content)}.range-info{color:var(--color-info);--range-thumb:var(--color-info-content)}.range-primary{color:var(--color-primary);--range-thumb:var(--color-primary-content)}.range-secondary{color:var(--color-secondary);--range-thumb:var(--color-secondary-content)}.range-success{color:var(--color-success);--range-thumb:var(--color-success-content)}.range-warning{color:var(--color-warning);--range-thumb:var(--color-warning-content)}.tooltip-accent{--tt-bg:var(--color-accent)}.tooltip-accent>.tooltip-content,.tooltip-accent[data-tip]:before{color:var(--color-accent-content)}.tooltip-error{--tt-bg:var(--color-error)}.tooltip-error>.tooltip-content,.tooltip-error[data-tip]:before{color:var(--color-error-content)}.tooltip-info{--tt-bg:var(--color-info)}.tooltip-info>.tooltip-content,.tooltip-info[data-tip]:before{color:var(--color-info-content)}.tooltip-primary{--tt-bg:var(--color-primary)}.tooltip-primary>.tooltip-content,.tooltip-primary[data-tip]:before{color:var(--color-primary-content)}.tooltip-secondary{--tt-bg:var(--color-secondary)}.tooltip-secondary>.tooltip-content,.tooltip-secondary[data-tip]:before{color:var(--color-secondary-content)}.tooltip-success{--tt-bg:var(--color-success)}.tooltip-success>.tooltip-content,.tooltip-success[data-tip]:before{color:var(--color-success-content)}.tooltip-warning{--tt-bg:var(--color-warning)}.tooltip-warning>.tooltip-content,.tooltip-warning[data-tip]:before{color:var(--color-warning-content)}.swap-active .swap-off{opacity:0}.swap-active .swap-on{opacity:1}.indicator-end{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}[dir=rtl] .indicator-end,.indicator-start{--indicator-s:0;--indicator-e:auto;--indicator-x:-50%}[dir=rtl] .indicator-start{--indicator-s:auto;--indicator-e:0;--indicator-x:50%}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem) * 12)}.btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem) * 10)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem) * 8)}.btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem) * 14)}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem) * 6)}.indicator-bottom{--indicator-t:auto;--indicator-b:0;--indicator-y:50%}.indicator-top{--indicator-t:0;--indicator-b:auto;--indicator-y:-50%}.badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-info{--badge-color:var(--color-info);--badge-fg:var(--color-info-content)}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.badge-secondary{--badge-color:var(--color-secondary);--badge-fg:var(--color-secondary-content)}.badge-success{--badge-color:var(--color-success);--badge-fg:var(--color-success-content)}.badge-warning{--badge-color:var(--color-warning);--badge-fg:var(--color-warning-content)}.input-accent,.input-accent:focus,.input-accent:focus-within{--input-color:var(--color-accent)}.input-error,.input-error:focus,.input-error:focus-within{--input-color:var(--color-error)}.input-info,.input-info:focus,.input-info:focus-within{--input-color:var(--color-info)}.input-primary,.input-primary:focus,.input-primary:focus-within{--input-color:var(--color-primary)}.input-secondary,.input-secondary:focus,.input-secondary:focus-within{--input-color:var(--color-secondary)}.input-success,.input-success:focus,.input-success:focus-within{--input-color:var(--color-success)}.input-warning,.input-warning:focus,.input-warning:focus-within{--input-color:var(--color-warning)}.radio-accent{--input-color:var(--color-accent)}.radio-error{--input-color:var(--color-error)}.radio-info{--input-color:var(--color-info)}.radio-primary{--input-color:var(--color-primary)}.radio-secondary{--input-color:var(--color-secondary)}.radio-success{--input-color:var(--color-success)}.radio-warning{--input-color:var(--color-warning)}.range-lg{--range-thumb-size:calc(var(--size-selector,.25rem) * 7)}.range-md{--range-thumb-size:calc(var(--size-selector,.25rem) * 6)}.range-sm{--range-thumb-size:calc(var(--size-selector,.25rem) * 5)}.range-xs{--range-thumb-size:calc(var(--size-selector,.25rem) * 4)}.select-accent,.select-accent:focus,.select-accent:focus-within{--input-color:var(--color-accent)}.select-error,.select-error:focus,.select-error:focus-within{--input-color:var(--color-error)}.select-info,.select-info:focus,.select-info:focus-within{--input-color:var(--color-info)}.select-primary,.select-primary:focus,.select-primary:focus-within{--input-color:var(--color-primary)}.select-secondary,.select-secondary:focus,.select-secondary:focus-within{--input-color:var(--color-secondary)}.select-success,.select-success:focus,.select-success:focus-within{--input-color:var(--color-success)}.select-warning,.select-warning:focus,.select-warning:focus-within{--input-color:var(--color-warning)}.toggle-accent:checked,.toggle-accent[aria-checked=true]{--input-color:var(--color-accent)}.toggle-error:checked,.toggle-error[aria-checked=true]{--input-color:var(--color-error)}.toggle-info:checked,.toggle-info[aria-checked=true]{--input-color:var(--color-info)}.toggle-lg[type=checkbox],.toggle-lg:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 7)}.toggle-md[type=checkbox],.toggle-md:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 6)}.toggle-primary:checked,.toggle-primary[aria-checked=true]{--input-color:var(--color-primary)}.toggle-secondary:checked,.toggle-secondary[aria-checked=true]{--input-color:var(--color-secondary)}.toggle-sm[type=checkbox],.toggle-sm:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 5)}.toggle-success:checked,.toggle-success[aria-checked=true]{--input-color:var(--color-success)}.toggle-warning:checked,.toggle-warning[aria-checked=true]{--input-color:var(--color-warning)}.toggle-xs[type=checkbox],.toggle-xs:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 4)}}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse:not(td,tr,colgroup){visibility:revert-layer}.validator:user-invalid~.validator-hint{display:revert-layer}.validator:has(:user-invalid)~.validator-hint{display:revert-layer}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))~.validator-hint{display:revert-layer}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.-top-1{top:calc(var(--spacing) * -1)}.top-0{top:calc(var(--spacing) * 0)}.top-2{top:calc(var(--spacing) * 2)}.top-4{top:calc(var(--spacing) * 4)}.top-6{top:calc(var(--spacing) * 6)}.top-10{top:calc(var(--spacing) * 10)}.-right-2{right:calc(var(--spacing) * -2)}.right-0{right:calc(var(--spacing) * 0)}.right-1\/4{right:25%}.right-3{right:calc(var(--spacing) * 3)}.right-6{right:calc(var(--spacing) * 6)}.-bottom-5{bottom:calc(var(--spacing) * -5)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-10{bottom:calc(var(--spacing) * 10)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-2{left:calc(var(--spacing) * 2)}.left-3{left:calc(var(--spacing) * 3)}.left-4{left:calc(var(--spacing) * 4)}.left-6{left:calc(var(--spacing) * 6)}.-z-0{z-index:calc(0 * -1)}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.z-\[1\]{z-index:1}.z-\[50\]{z-index:50}.z-\[90\]{z-index:90}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.z-\[9999\]{z-index:9999}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-2{grid-row-start:2}.row-start-3{grid-row-start:3}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:calc(var(--spacing) * 1)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.my-1{margin-block:calc(var(--spacing) * 1)}.my-4{margin-block:calc(var(--spacing) * 4)}.my-6{margin-block:calc(var(--spacing) * 6)}.my-16{margin-block:calc(var(--spacing) * 16)}.-mt-10{margin-top:calc(var(--spacing) * -10)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-6{margin-left:calc(var(--spacing) * 6)}.icon-\[lucide--alert-circle\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4m0 4h.01'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--alert-triangle\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--bold\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--calendar\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M8 2v4m8-4v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--check-circle\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M21.801 10A10 10 0 1 1 17 3.335'/%3E%3Cpath d='m9 11l3 3L22 4'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--check\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--chevron-left\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m15 18l-6-6l6-6'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--chevron-right\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m9 18l6-6l-6-6'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--chevrons-left\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m11 17l-5-5l5-5m7 10l-5-5l5-5'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--chevrons-right\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 17l5-5l-5-5m7 10l5-5l-5-5'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--clock\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--code-2\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--eye-off\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575a1 1 0 0 1 0 .696a10.8 10.8 0 0 1-1.444 2.49m-6.41-.679a3 3 0 0 1-4.242-4.242'/%3E%3Cpath d='M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 4.446-5.143M2 2l20 20'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--eye\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--hash\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 9h16M4 15h16M10 3L8 21m8-18l-2 18'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--heart\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 9.5a5.5 5.5 0 0 1 9.591-3.676a.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--info\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4m0-4h.01'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--italic\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 4h-9m4 16H5M15 4L9 20'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--link\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--list-ordered\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M11 5h10m-10 7h10m-10 7h10M4 4h1v5M4 9h2m.5 11H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--list\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 5h.01M3 12h.01M3 19h.01M8 5h13M8 12h13M8 19h13'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--lock\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='18' height='11' x='3' y='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--mail\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--phone\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233a14 14 0 0 0 6.392 6.384'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--plus\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 12h14m-7-7v14'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--quote\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2a1 1 0 0 1 1 1v1a2 2 0 0 1-2 2a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1a6 6 0 0 0 6-6V5a2 2 0 0 0-2-2zM5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2a1 1 0 0 1 1 1v1a2 2 0 0 1-2 2a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1a6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--redo-2\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m15 14l5-5l-5-5'/%3E%3Cpath d='M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--search\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m21 21l-4.34-4.34'/%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--settings\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M9.671 4.136a2.34 2.34 0 0 1 4.659 0a2.34 2.34 0 0 0 3.319 1.915a2.34 2.34 0 0 1 2.33 4.033a2.34 2.34 0 0 0 0 3.831a2.34 2.34 0 0 1-2.33 4.033a2.34 2.34 0 0 0-3.319 1.915a2.34 2.34 0 0 1-4.659 0a2.34 2.34 0 0 0-3.32-1.915a2.34 2.34 0 0 1-2.33-4.033a2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--strikethrough\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M16 4H9a3 3 0 0 0-2.83 4M14 12a4 4 0 0 1 0 8H6m-2-8h16'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--text\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 18H3M17 6H3m18 6H3'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--underline\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 4v6a6 6 0 0 0 12 0V4M4 20h16'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--undo-2\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M9 14L4 9l5-5'/%3E%3Cpath d='M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--upload\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 3v12m5-7l-5-5l-5 5m14 7v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--user\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--x\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.kbd{box-shadow:none}.text-rotate{height:1lh}.alert{border-width:var(--border);border-color:var(--alert-border-color,var(--color-base-200))}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.aspect-square{aspect-ratio:1}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-24{height:calc(var(--spacing) * 24)}.h-32{height:calc(var(--spacing) * 32)}.h-48{height:calc(var(--spacing) * 48)}.h-96{height:calc(var(--spacing) * 96)}.h-\[300px\]{height:300px}.h-\[400px\]{height:400px}.h-\[500px\]{height:500px}.h-auto{height:auto}.h-full{height:100%}.max-h-60{max-height:calc(var(--spacing) * 60)}.max-h-96{max-height:calc(var(--spacing) * 96)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[10rem\]{min-height:10rem}.min-h-\[300px\]{min-height:300px}.min-h-\[400px\]{min-height:400px}.min-h-\[500px\]{min-height:500px}.min-h-full{min-height:100%}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[200px\]{max-width:200px}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-\[4rem\]{min-width:4rem}.min-w-\[48px\]{min-width:48px}.min-w-\[500px\]{min-width:500px}.min-w-\[600px\]{min-width:600px}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-2{--tw-translate-x:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-4{--tw-translate-x:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-10{--tw-translate-x:calc(var(--spacing) * 10);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-2{--tw-translate-y:calc(var(--spacing) * 2);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-y-4{--tw-translate-y:calc(var(--spacing) * 4);translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-105{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.cursor-help{cursor:help}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.justify-items-center{justify-items:center}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-box{border-radius:var(--radius-box);border-radius:var(--radius-box)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}@layer daisyui.l1{.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}.btn-dash:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){.btn-dash:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}.alert-soft{color:var(--alert-color,var(--color-base-content));background:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.alert-soft{background:color-mix(in oklab, var(--alert-color,var(--color-base-content)) 8%, var(--color-base-100))}}.alert-soft{--alert-border-color:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.alert-soft{--alert-border-color:color-mix(in oklab, var(--alert-color,var(--color-base-content)) 10%, var(--color-base-100))}}.alert-soft{box-shadow:none;background-image:none}.btn-link{--btn-border:#0000;--btn-bg:#0000;--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline}.btn-link:not(.btn-disabled,.btn:disabled,.btn[disabled]){--btn-fg:var(--btn-color,var(--color-primary))}.btn-link:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)):not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}@media (hover:none){.btn-ghost:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}.btn-outline:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){.btn-outline:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-content)) 8%, var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-content)) 10%, var(--color-base-100))}}.btn-soft:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-noise:none}@media (hover:none){.btn-soft:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-fg:var(--btn-color,var(--color-base-content));--btn-bg:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.btn-soft:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-content)) 8%, var(--color-base-100))}}.btn-soft:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-border:var(--btn-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.btn-soft:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-content)) 10%, var(--color-base-100))}}.btn-soft:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-noise:none}}}.btn-dash{border-style:dashed}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-base-200\/30{border-color:var(--color-base-200)}@supports (color:color-mix(in lab, red, red)){.border-base-200\/30{border-color:color-mix(in oklab, var(--color-base-200) 30%, transparent)}}.border-base-300{border-color:var(--color-base-300)}.border-base-content\/20{border-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.border-base-content\/20{border-color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.border-black\/5{border-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.border-black\/5{border-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.border-black\/10{border-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.border-black\/10{border-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.border-primary{border-color:var(--color-primary)}.border-transparent{border-color:#0000}.bg-accent{background-color:var(--color-accent)}.bg-base-100{background-color:var(--color-base-100)}.bg-base-200,.bg-base-200\/30{background-color:var(--color-base-200)}@supports (color:color-mix(in lab, red, red)){.bg-base-200\/30{background-color:color-mix(in oklab, var(--color-base-200) 30%, transparent)}}.bg-base-200\/50{background-color:var(--color-base-200)}@supports (color:color-mix(in lab, red, red)){.bg-base-200\/50{background-color:color-mix(in oklab, var(--color-base-200) 50%, transparent)}}.bg-base-300{background-color:var(--color-base-300)}.bg-black\/20{background-color:#0003}@supports (color:color-mix(in lab, red, red)){.bg-black\/20{background-color:color-mix(in oklab, var(--color-black) 20%, transparent)}}.bg-error,.bg-error\/10{background-color:var(--color-error)}@supports (color:color-mix(in lab, red, red)){.bg-error\/10{background-color:color-mix(in oklab, var(--color-error) 10%, transparent)}}.bg-info{background-color:var(--color-info)}.bg-neutral{background-color:var(--color-neutral)}.bg-primary,.bg-primary\/5{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/5{background-color:color-mix(in oklab, var(--color-primary) 5%, transparent)}}.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-primary\/20{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-success,.bg-success\/10{background-color:var(--color-success)}@supports (color:color-mix(in lab, red, red)){.bg-success\/10{background-color:color-mix(in oklab, var(--color-success) 10%, transparent)}}.bg-warning,.bg-warning\/10{background-color:var(--color-warning)}@supports (color:color-mix(in lab, red, red)){.bg-warning\/10{background-color:color-mix(in oklab, var(--color-warning) 10%, transparent)}}.bg-white\/20{background-color:#fff3}@supports (color:color-mix(in lab, red, red)){.bg-white\/20{background-color:color-mix(in oklab, var(--color-white) 20%, transparent)}}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position:to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-accent{--tw-gradient-from:var(--color-accent);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-primary{--tw-gradient-from:var(--color-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-secondary{--tw-gradient-from:var(--color-secondary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-accent{--tw-gradient-via:var(--color-accent);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-accent{--tw-gradient-to:var(--color-accent);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-primary{--tw-gradient-to:var(--color-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-secondary{--tw-gradient-to:var(--color-secondary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.mask-circle{--tw-mask-radial-shape:circle}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-10{padding-inline:calc(var(--spacing) * 10)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-10{padding-left:calc(var(--spacing) * 10)}.\!text-center{text-align:center!important}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-accent{color:var(--color-accent)}.text-accent-content{color:var(--color-accent-content)}.text-base-content,.text-base-content\/60{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\/60{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.text-base-content\/90{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\/90{color:color-mix(in oklab, var(--color-base-content) 90%, transparent)}}.text-error{color:var(--color-error)}.text-error-content{color:var(--color-error-content)}.text-gray-500{color:var(--color-gray-500)}.text-info{color:var(--color-info)}.text-info-content{color:var(--color-info-content)}.text-neutral-content{color:var(--color-neutral-content)}.text-primary{color:var(--color-primary)}.text-primary-content{color:var(--color-primary-content)}.text-secondary{color:var(--color-secondary)}.text-secondary-content{color:var(--color-secondary-content)}.text-success{color:var(--color-success)}.text-success-content{color:var(--color-success-content)}.text-transparent{color:#0000}.text-warning{color:var(--color-warning)}.text-warning-content{color:var(--color-warning-content)}.text-white{color:var(--color-white)}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-secondary\/20{--tw-shadow-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-secondary) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-primary{--tw-ring-color:var(--color-primary)}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}}.before\:z-50:before,.after\:z-50:after{content:var(--tw-content);z-index:50}@media (hover:hover){.hover\:z-10:hover{z-index:10}.hover\:scale-105:hover{--tw-scale-x:105%;--tw-scale-y:105%;--tw-scale-z:105%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-accent\/40:hover{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/40:hover{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.hover\:border-base-content\/20:hover{border-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.hover\:border-base-content\/20:hover{border-color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.hover\:border-primary\/40:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.hover\:border-primary\/50:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.hover\:border-secondary\/40:hover{border-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-secondary\/40:hover{border-color:color-mix(in oklab, var(--color-secondary) 40%, transparent)}}.hover\:bg-base-200:hover{background-color:var(--color-base-200)}.hover\:bg-base-300:hover{background-color:var(--color-base-300)}.hover\:bg-white\/30:hover{background-color:#ffffff4d}@supports (color:color-mix(in lab, red, red)){.hover\:bg-white\/30:hover{background-color:color-mix(in oklab, var(--color-white) 30%, transparent)}}.hover\:text-base-content:hover{color:var(--color-base-content)}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-100:hover{opacity:1}}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}@media (min-width:48rem){.md\:h-64{height:calc(var(--spacing) * 64)}.md\:w-64{width:calc(var(--spacing) * 64)}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:block{display:block}.lg\:flex{display:flex}.lg\:hidden{display:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}.\[\&_br\]\:block br{display:block}.\[\&_br\]\:h-\[1em\] br{height:1em}.\[\&_br\]\:content-\[\'\'\] br{--tw-content:"";content:var(--tw-content)}.\[\&_div\]\:m-0 div{margin:calc(var(--spacing) * 0)}.\[\&_li\]\:list-item li{display:list-item}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-6 ol{padding-left:calc(var(--spacing) * 6)}.\[\&_p\]\:m-0 p{margin:calc(var(--spacing) * 0)}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-6 ul{padding-left:calc(var(--spacing) * 6)}@keyframes fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.animate-fade-in{animation:.15s ease-out forwards fade-in}}:root{font-size:14px}.input,.label,.select,.textarea{transition:all .3s cubic-bezier(.4,0,.2,1)}:is(.input,.label,.select,.textarea):focus,:is(.input,.label,.select,.textarea):focus-within{box-shadow:0 0 4px;outline:none!important}:is(.input,.label,.select,.textarea):hover:not(:focus){background-color:oklch(from var(--color-base-100) calc(l - .03) c h)}.floating-label span{color:oklch(30% .01 260);font-size:1.1rem;transition:all .2s}.floating-label:focus-within span{color:oklch(25% .02 260);font-size:1.1rem}.floating-label:has(input:not(:placeholder-shown)) span{color:oklch(28% .01 260);font-size:1.1rem}.tab-content-inner{transform-origin:top;animation:.3s cubic-bezier(.4,0,.2,1) tabFadeIn}.input-container{flex-direction:column;width:100%;display:flex;position:relative}.input-container .input{align-items:center;width:100%;display:flex}.input-content{z-index:50;background:oklch(var(--b1));border:1px solid oklch(var(--bc) / .2);border-radius:var(--rounded-box,1rem);margin-top:.25rem;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a}.input-content .menu{width:100%}@keyframes tabFadeIn{0%{opacity:0;transform:scaleY(.95)}to{opacity:1;transform:scaleY(1)}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes dropdown{0%{opacity:0}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes rotator{89.9999%,to{--first-item-position:0 0%}90%,99.9999%{--first-item-position:0 calc(var(--items) * 100%)}to{translate:0 -100%}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes menu{0%{opacity:0}}@keyframes progress{50%{background-position-x:-115%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}
\ No newline at end of file
+@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-gradient-position:initial;--tw-gradient-from:#0000;--tw-gradient-via:#0000;--tw-gradient-to:#0000;--tw-gradient-stops:initial;--tw-gradient-via-stops:initial;--tw-gradient-from-position:0%;--tw-gradient-via-position:50%;--tw-gradient-to-position:100%;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-content:""}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-black:#000;--spacing:.25rem;--container-xs:20rem;--container-md:28rem;--container-2xl:42rem;--container-3xl:48rem;--container-5xl:64rem;--container-6xl:72rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height:calc(2.25 / 1.875);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-7xl:4.5rem;--text-7xl--line-height:1;--text-9xl:8rem;--text-9xl--line-height:1;--font-weight-light:300;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-black:900;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-widest:.1em;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-3xl:1.5rem;--drop-shadow-2xl:0 25px 25px #00000026;--animate-pulse:pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(25.33% .016 252.42);--color-base-200:oklch(23.26% .014 253.1);--color-base-300:oklch(21.15% .012 254.09);--color-base-content:oklch(97.807% .029 256.847);--color-primary:oklch(58% .233 277.117);--color-primary-content:oklch(96% .018 272.314);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(95% 0 0);--color-base-content:oklch(21% .006 285.885);--color-primary:oklch(45% .24 277.023);--color-primary-content:oklch(93% .034 272.788);--color-secondary:oklch(65% .241 354.308);--color-secondary-content:oklch(94% .028 342.258);--color-accent:oklch(77% .152 181.912);--color-accent-content:oklch(38% .063 188.416);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232.661);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(76% .177 163.223);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .189 84.429);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(71% .194 13.428);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.25rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}:root{--fx-noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.34' numOctaves='4' stitchTiles='stitch'%3E%3C/feTurbulence%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23a)' opacity='0.2'%3E%3C/rect%3E%3C/svg%3E");scrollbar-color:currentColor #0000}@supports (color:color-mix(in lab, red, red)){:root{scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) #0000}}@property --radialprogress{syntax:"";inherits:true;initial-value:0%}:root:not(span){overflow:var(--page-overflow)}:root{background:var(--page-scroll-bg,var(--root-bg));--page-scroll-bg-on:linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000)) var(--root-bg,#0000)}@supports (color:color-mix(in lab, red, red)){:root{--page-scroll-bg-on:linear-gradient(var(--root-bg,#0000), var(--root-bg,#0000)) color-mix(in srgb, var(--root-bg,#0000), oklch(0% 0 0) calc(var(--page-has-backdrop,0) * 40%))}}:root{--page-scroll-transition-on:background-color .3s ease-out;transition:var(--page-scroll-transition);scrollbar-gutter:var(--page-scroll-gutter,unset);scrollbar-gutter:if(style(--page-has-scroll: 1): var(--page-scroll-gutter,unset) ; else: unset)}@keyframes set-page-has-scroll{0%,to{--page-has-scroll:1}}:root,[data-theme]{background:var(--page-scroll-bg,var(--root-bg));color:var(--color-base-content)}:where(:root,[data-theme]){--root-bg:var(--color-base-100)}:where(:root),:root:has(input.theme-controller[value=light]:checked),[data-theme=light]{color-scheme:light;--color-base-100:oklch(100% 0 0);--color-base-200:oklch(98% 0 0);--color-base-300:oklch(92% 0 0);--color-base-content:oklch(25% .006 285);--color-primary:oklch(25% .006 285);--color-primary-content:oklch(98% 0 0);--color-secondary:oklch(55% .046 257.417);--color-secondary-content:oklch(98% 0 0);--color-accent:oklch(96% 0 0);--color-accent-content:oklch(25% .006 285);--color-neutral:oklch(14% .005 285.823);--color-neutral-content:oklch(92% .004 286.32);--color-info:oklch(74% .16 232);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(62% .17 163);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(82% .18 84);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(60% .25 27);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.4rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-base-100:oklch(15% .005 285.823);--color-base-200:oklch(20% .005 285.823);--color-base-300:oklch(30% .005 285.823);--color-base-content:oklch(92% .004 286.32);--color-primary:oklch(98% 0 0);--color-primary-content:oklch(15% 0 0);--color-secondary:oklch(65% .046 257.417);--color-secondary-content:oklch(15% .005 285.823);--color-accent:oklch(25% 0 0);--color-accent-content:oklch(98% 0 0);--color-neutral:oklch(92% .004 286.32);--color-neutral-content:oklch(14% .005 285.823);--color-info:oklch(70% .1 230);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(65% .15 160);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(85% .15 90);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(55% .2 27);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.4rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}:root:has(input.theme-controller[value=dark]:checked),[data-theme=dark]{color-scheme:dark;--color-base-100:oklch(15% .005 285.823);--color-base-200:oklch(20% .005 285.823);--color-base-300:oklch(30% .005 285.823);--color-base-content:oklch(92% .004 286.32);--color-primary:oklch(98% 0 0);--color-primary-content:oklch(15% 0 0);--color-secondary:oklch(65% .046 257.417);--color-secondary-content:oklch(15% .005 285.823);--color-accent:oklch(25% 0 0);--color-accent-content:oklch(98% 0 0);--color-neutral:oklch(92% .004 286.32);--color-neutral-content:oklch(14% .005 285.823);--color-info:oklch(70% .1 230);--color-info-content:oklch(29% .066 243.157);--color-success:oklch(65% .15 160);--color-success-content:oklch(37% .077 168.94);--color-warning:oklch(85% .15 90);--color-warning-content:oklch(41% .112 45.904);--color-error:oklch(55% .2 27);--color-error-content:oklch(27% .105 12.094);--radius-selector:.5rem;--radius-field:.4rem;--radius-box:.5rem;--size-selector:.25rem;--size-field:.25rem;--border:1px;--depth:1;--noise:0}}@layer components;@layer utilities{@layer daisyui.l1.l2.l3{.modal{pointer-events:none;visibility:hidden;width:100%;max-width:none;height:100%;max-height:none;color:inherit;transition:visibility .3s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;overscroll-behavior:contain;z-index:999;scrollbar-gutter:auto;background-color:#0000;place-items:center;margin:0;padding:0;display:grid;position:fixed;inset:0;overflow:clip}.modal::backdrop{display:none}:where(.drawer-side){overflow:hidden}.drawer-side{pointer-events:none;visibility:hidden;z-index:10;overscroll-behavior:contain;opacity:0;width:100%;transition:opacity .2s ease-out .1s allow-discrete, visibility .3s ease-out .1s allow-discrete;inset-inline-start:0;background-color:#0000;grid-template-rows:repeat(1,minmax(0,1fr));grid-template-columns:repeat(1,minmax(0,1fr));grid-row-start:1;grid-column-start:1;place-items:flex-start start;height:100dvh;display:grid;position:fixed;top:0}.drawer-side>.drawer-overlay{cursor:pointer;background-color:oklch(0% 0 0/.4);place-self:stretch stretch;position:sticky;top:0}.drawer-side>*{grid-row-start:1;grid-column-start:1}.drawer-side>:not(.drawer-overlay){will-change:transform;transition:translate .3s ease-out,width .2s ease-out;translate:-100%}[dir=rtl] :is(.drawer-side>:not(.drawer-overlay)){translate:100%}.fab{pointer-events:none;z-index:999;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));white-space:nowrap;inset-inline-end:1rem;flex-direction:column-reverse;align-items:flex-end;gap:.5rem;display:flex;position:fixed;bottom:1rem}.fab>*{pointer-events:auto;align-items:center;gap:.5rem;display:flex}.fab>:hover,.fab>:has(:focus-visible){z-index:1}.fab>[tabindex]:first-child{transition-property:opacity,visibility,rotate;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:grid;position:relative}.fab .fab-close,.fab .fab-main-action{inset-inline-end:0;position:absolute;bottom:0}:is(.fab:focus-within:has(.fab-close),.fab:focus-within:has(.fab-main-action))>[tabindex]{opacity:0;rotate:90deg}.fab:focus-within>[tabindex]:first-child{pointer-events:none}.fab:focus-within>:nth-child(n+2){visibility:visible;--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:1}.fab>:nth-child(n+2){visibility:hidden;--tw-scale-x:80%;--tw-scale-y:80%;--tw-scale-z:80%;scale:var(--tw-scale-x) var(--tw-scale-y);opacity:0;transition-property:opacity,scale,visibility;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.fab>:nth-child(n+2).fab-main-action,.fab>:nth-child(n+2).fab-close{--tw-scale-x:100%;--tw-scale-y:100%;--tw-scale-z:100%;scale:var(--tw-scale-x) var(--tw-scale-y)}.fab>:nth-child(3){transition-delay:30ms}.fab>:nth-child(4){transition-delay:60ms}.fab>:nth-child(5){transition-delay:90ms}.fab>:nth-child(6){transition-delay:.12s}.drawer-toggle{appearance:none;opacity:0;width:0;height:0;position:fixed}:where(.drawer-toggle:checked~.drawer-side){scrollbar-color:currentColor oklch(0 0 0 / calc(var(--page-has-backdrop,0) * .4))}@supports (color:color-mix(in lab, red, red)){:where(.drawer-toggle:checked~.drawer-side){scrollbar-color:color-mix(in oklch, currentColor 35%, #0000) oklch(0 0 0 / calc(var(--page-has-backdrop,0) * .4))}}:where(:root:has(.drawer-toggle:checked)){--page-has-backdrop:1;--page-overflow:hidden;--page-scroll-bg:var(--page-scroll-bg-on);--page-scroll-gutter:stable;--page-scroll-transition:var(--page-scroll-transition-on);animation:forwards set-page-has-scroll;animation-timeline:scroll()}.tooltip{--tt-bg:var(--color-neutral);--tt-off:calc(100% + .5rem);--tt-tail:calc(100% + 1px + .25rem);display:inline-block;position:relative}.tooltip>.tooltip-content,.tooltip[data-tip]:before{border-radius:var(--radius-field);text-align:center;white-space:normal;max-width:20rem;color:var(--color-neutral-content);opacity:0;background-color:var(--tt-bg);pointer-events:none;z-index:2;--tw-content:attr(data-tip);content:var(--tw-content);width:max-content;padding-block:.25rem;padding-inline:.5rem;font-size:.875rem;line-height:1.25;position:absolute}.tooltip:after{opacity:0;background-color:var(--tt-bg);content:"";pointer-events:none;--mask-tooltip:url("data:image/svg+xml,%3Csvg width='10' height='4' viewBox='0 0 8 4' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.500009 1C3.5 1 3.00001 4 5.00001 4C7 4 6.5 1 9.5 1C10 1 10 0.499897 10 0H0C-1.99338e-08 0.5 0 1 0.500009 1Z' fill='black'/%3E%3C/svg%3E%0A");width:.625rem;height:.25rem;-webkit-mask-position:-1px 0;mask-position:-1px 0;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-tooltip);-webkit-mask-image:var(--mask-tooltip);mask-image:var(--mask-tooltip);display:block;position:absolute}@media (prefers-reduced-motion:no-preference){.tooltip>.tooltip-content,.tooltip[data-tip]:before,.tooltip:after{transition:opacity .2s cubic-bezier(.4,0,.2,1) 75ms,transform .2s cubic-bezier(.4,0,.2,1) 75ms}}:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{opacity:1;--tt-pos:0rem}@media (prefers-reduced-motion:no-preference){:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))>.tooltip-content,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible))[data-tip]:before,:is(.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))).tooltip-open,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):hover,.tooltip:is([data-tip]:not([data-tip=""]),:has(.tooltip-content:not(:empty))):has(:focus-visible)):after{transition:opacity .2s cubic-bezier(.4,0,.2,1),transform .2s cubic-bezier(.4,0,.2,1)}}.tab{cursor:pointer;appearance:none;text-align:center;webkit-user-select:none;-webkit-user-select:none;user-select:none;flex-wrap:wrap;justify-content:center;align-items:center;display:inline-flex;position:relative}@media (hover:hover){.tab:hover{color:var(--color-base-content)}}.tab{--tab-p:.75rem;--tab-bg:var(--color-base-100);--tab-border-color:var(--color-base-300);--tab-radius-ss:0;--tab-radius-se:0;--tab-radius-es:0;--tab-radius-ee:0;--tab-order:0;--tab-radius-min:calc(.75rem - var(--border));--tab-radius-limit:min(var(--radius-field), var(--tab-radius-min));--tab-radius-grad:#0000 calc(69% - var(--border)), var(--tab-border-color) calc(69% - var(--border) + .25px), var(--tab-border-color) 69%, var(--tab-bg) calc(69% + .25px);order:var(--tab-order);height:var(--tab-height);padding-inline:var(--tab-p);border-color:#0000;font-size:.875rem}.tab:is(input[type=radio]){min-width:fit-content}.tab:is(input[type=radio]):after{--tw-content:attr(aria-label);content:var(--tw-content)}.tab:is(label){position:relative}.tab:is(label) input{cursor:pointer;appearance:none;opacity:0;position:absolute;inset:0}:is(.tab:checked,.tab:is(label:has(:checked)),.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]))+.tab-content{display:block}.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.tab:not(:checked,label:has(:checked),:hover,.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]){color:color-mix(in oklab, var(--color-base-content) 50%, transparent)}}.tab:not(input):empty{cursor:default;flex-grow:1}.tab:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.tab:focus{outline-offset:2px;outline:2px solid #0000}}.tab:focus-visible,.tab:is(label:has(:checked:focus-visible)){outline-offset:-5px;outline:2px solid}.tab[disabled]{pointer-events:none;opacity:.4}.menu{--menu-active-fg:var(--color-neutral-content);--menu-active-bg:var(--color-neutral);flex-flow:column wrap;width:fit-content;padding:.5rem;font-size:.875rem;display:flex}.menu :where(li ul){white-space:nowrap;margin-inline-start:1rem;padding-inline-start:.5rem;position:relative}.menu :where(li ul):before{background-color:var(--color-base-content);opacity:.1;width:var(--border);content:"";inset-inline-start:0;position:absolute;top:.75rem;bottom:.75rem}.menu :where(li>.menu-dropdown:not(.menu-dropdown-show)){display:none}.menu :where(li:not(.menu-title)>:not(ul,details,.menu-title,.btn)),.menu :where(li:not(.menu-title)>details>summary:not(.menu-title)){border-radius:var(--radius-field);text-align:start;text-wrap:balance;-webkit-user-select:none;user-select:none;grid-auto-columns:minmax(auto,max-content) auto max-content;grid-auto-flow:column;align-content:flex-start;align-items:center;gap:.5rem;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:grid}.menu :where(li>details>summary){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li>details>summary){outline-offset:2px;outline:2px solid #0000}}.menu :where(li>details>summary)::-webkit-details-marker{display:none}:is(.menu :where(li>details>summary),.menu :where(li>.menu-dropdown-toggle)):after{content:"";transform-origin:50%;pointer-events:none;justify-self:flex-end;width:.375rem;height:.375rem;transition-property:rotate,translate;transition-duration:.2s;display:block;translate:0 -1px;rotate:-135deg;box-shadow:inset 2px 2px}.menu details{interpolate-size:allow-keywords;overflow:hidden}.menu details::details-content{block-size:0}@media (prefers-reduced-motion:no-preference){.menu details::details-content{transition-behavior:allow-discrete;transition-property:block-size,content-visibility;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.menu details[open]::details-content{block-size:auto}.menu :where(li>details[open]>summary):after,.menu :where(li>.menu-dropdown-toggle.menu-dropdown-show):after{translate:0 1px;rotate:45deg}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{color:var(--color-base-content);--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn).menu-focus,.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title),li:not(.menu-title,.disabled)>details>summary:not(.menu-title)):not(.menu-active,:active,.btn):focus-visible{outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){outline-offset:2px;outline:2px solid #0000}}.menu :where(li:not(.menu-title,.disabled)>:not(ul,details,.menu-title):not(.menu-active,:active,.btn):hover,li:not(.menu-title,.disabled)>details>summary:not(.menu-title):not(.menu-active,:active,.btn):hover){box-shadow:inset 0 1px oklch(0% 0 0/.01),inset 0 -1px oklch(100% 0 0/.01)}.menu :where(li:empty){background-color:var(--color-base-content);opacity:.1;height:1px;margin:.5rem 1rem}.menu :where(li){flex-flow:column wrap;flex-shrink:0;align-items:stretch;display:flex;position:relative}.menu :where(li) .badge{justify-self:flex-end}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{outline-offset:2px;outline:2px solid #0000}}.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active{color:var(--menu-active-fg);background-color:var(--menu-active-bg);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise)}:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):not(:is(.menu :where(li)>:not(ul,.menu-title,details,.btn):active,.menu :where(li)>:not(ul,.menu-title,details,.btn).menu-active,.menu :where(li)>details>summary:active):active){box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--menu-active-bg)}.menu :where(li).menu-disabled{pointer-events:none;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.menu :where(li).menu-disabled{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.menu .dropdown:focus-within .menu-dropdown-toggle:after{translate:0 1px;rotate:45deg}.menu .dropdown-content{margin-top:.5rem;padding:.5rem}.menu .dropdown-content:before{display:none}.floating-label{display:block;position:relative}.floating-label input{display:block}.floating-label input::placeholder,.floating-label textarea::placeholder{transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out}.floating-label>span{z-index:1;background-color:var(--color-base-100);opacity:0;inset-inline-start:.75rem;top:calc(var(--size-field,.25rem) * 10 / 2);pointer-events:none;border-radius:2px;padding-inline:.25rem;font-size:.875rem;line-height:1;transition:top .1s ease-out,translate .1s ease-out,scale .1s ease-out,opacity .1s ease-out;position:absolute;translate:0 -50%}:is(.floating-label:focus-within,.floating-label:not(:has(input:placeholder-shown,textarea:placeholder-shown))) ::placeholder{opacity:0;pointer-events:auto;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}:is(.floating-label:focus-within,.floating-label:not(:has(input:placeholder-shown,textarea:placeholder-shown)))>span{opacity:1;pointer-events:auto;z-index:2;top:0;translate:-12.5% calc(-50% - .125em);scale:.75}.floating-label:has(:disabled,[disabled])>span{opacity:0}.floating-label:has(.input-xs,.select-xs,.textarea-xs) span{top:calc(var(--size-field,.25rem) * 6 / 2);font-size:.6875rem}.floating-label:has(.input-sm,.select-sm,.textarea-sm) span{top:calc(var(--size-field,.25rem) * 8 / 2);font-size:.75rem}.floating-label:has(.input-md,.select-md,.textarea-md) span{top:calc(var(--size-field,.25rem) * 10 / 2);font-size:.875rem}.floating-label:has(.input-lg,.select-lg,.textarea-lg) span{top:calc(var(--size-field,.25rem) * 12 / 2);font-size:1.125rem}.floating-label:has(.input-xl,.select-xl,.textarea-xl) span{top:calc(var(--size-field,.25rem) * 14 / 2);font-size:1.375rem}.dropdown{position-area:var(--anchor-v,bottom) var(--anchor-h,span-right);display:inline-block;position:relative}.dropdown>:not(:has(~[class*=dropdown-content])):focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.dropdown>:not(:has(~[class*=dropdown-content])):focus{outline-offset:2px;outline:2px solid #0000}}.dropdown .dropdown-content{position:absolute}.dropdown.dropdown-close .dropdown-content,.dropdown:not(details,.dropdown-open,.dropdown-hover:hover,:focus-within) .dropdown-content,.dropdown.dropdown-hover:not(:hover) [tabindex]:first-child:focus:not(:focus-visible)~.dropdown-content{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover],.dropdown .dropdown-content{z-index:999}@media (prefers-reduced-motion:no-preference){.dropdown[popover],.dropdown .dropdown-content{transition-behavior:allow-discrete;transition-property:opacity,scale,display;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation:.2s dropdown}}@starting-style{.dropdown[popover],.dropdown .dropdown-content{opacity:0;scale:.95}}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within)>[tabindex]:first-child{pointer-events:none}:is(.dropdown:not(.dropdown-close).dropdown-open,.dropdown:not(.dropdown-close):not(.dropdown-hover):focus,.dropdown:not(.dropdown-close):focus-within) .dropdown-content,.dropdown:not(.dropdown-close).dropdown-hover:hover .dropdown-content{opacity:1;scale:1}.dropdown:is(details) summary::-webkit-details-marker{display:none}.dropdown:where([popover]){background:0 0}.dropdown[popover]{color:inherit;position:fixed}@supports not (position-area:bottom){.dropdown[popover]{margin:auto}.dropdown[popover].dropdown-close{transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover].dropdown-open:not(:popover-open){transform-origin:top;opacity:0;display:none;scale:.95}.dropdown[popover]::backdrop{background-color:oklab(0% none none/.3)}}:is(.dropdown[popover].dropdown-close,.dropdown[popover]:not(.dropdown-open,:popover-open)){transform-origin:top;opacity:0;display:none;scale:.95}:where(.btn){width:unset}.btn{cursor:pointer;text-align:center;vertical-align:middle;outline-offset:2px;webkit-user-select:none;-webkit-user-select:none;user-select:none;padding-inline:var(--btn-p);color:var(--btn-fg);--tw-prose-links:var(--btn-fg);height:var(--size);font-size:var(--fontsize,.875rem);outline-color:var(--btn-color,var(--color-base-content));background-color:var(--btn-bg);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--btn-noise);border-width:var(--border);border-style:solid;border-color:var(--btn-border);text-shadow:0 .5px oklch(100% 0 0 / calc(var(--depth) * .15));touch-action:manipulation;box-shadow:0 .5px 0 .5px oklch(100% 0 0 / calc(var(--depth) * 6%)) inset, var(--btn-shadow);--size:calc(var(--size-field,.25rem) * 10);--btn-bg:var(--btn-color,var(--color-base-200));--btn-fg:var(--color-base-content);--btn-p:1rem;--btn-border:var(--btn-bg);border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-wrap:nowrap;flex-shrink:0;justify-content:center;align-items:center;gap:.375rem;font-weight:600;transition-property:color,background-color,border-color,box-shadow;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1);display:inline-flex}@supports (color:color-mix(in lab, red, red)){.btn{--btn-border:color-mix(in oklab, var(--btn-bg), #000 calc(var(--depth) * 5%))}}.btn{--btn-shadow:0 3px 2px -2px var(--btn-bg), 0 4px 3px -2px var(--btn-bg)}@supports (color:color-mix(in lab, red, red)){.btn{--btn-shadow:0 3px 2px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000), 0 4px 3px -2px color-mix(in oklab, var(--btn-bg) calc(var(--depth) * 30%), #0000)}}.btn{--btn-noise:var(--fx-noise)}@media (hover:hover){.btn:hover{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:hover{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}}.btn:focus-visible,.btn:has(:focus-visible){isolation:isolate;outline-width:2px;outline-style:solid}.btn:active:not(.btn-active){--btn-bg:var(--btn-color,var(--color-base-200));translate:0 .5px}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 5%)}}.btn:active:not(.btn-active){--btn-border:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn:active:not(.btn-active){--btn-border:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn:active:not(.btn-active){--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0)}.btn:is(input[type=checkbox],input[type=radio]){appearance:none}.btn:is(input[type=checkbox],input[type=radio])[aria-label]:after{--tw-content:attr(aria-label);content:var(--tw-content)}.btn:where(input:checked:not(.filter .btn)){--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content);isolation:isolate}.loading{pointer-events:none;aspect-ratio:1;vertical-align:middle;width:calc(var(--size-selector,.25rem) * 6);background-color:currentColor;display:inline-block;-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:100%;mask-size:100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.collapse{border-radius:var(--radius-box,1rem);isolation:isolate;grid-template-rows:max-content 0fr;grid-template-columns:minmax(0,1fr);width:100%;display:grid;position:relative;overflow:hidden}@media (prefers-reduced-motion:no-preference){.collapse{transition:grid-template-rows .2s}}.collapse>input:is([type=checkbox],[type=radio]){appearance:none;opacity:0;z-index:1;grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close)),.collapse:not(.collapse-close):has(>input:is([type=checkbox],[type=radio]):checked){grid-template-rows:max-content 1fr}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){content-visibility:visible;min-height:fit-content}@supports not (content-visibility:visible){.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>.collapse-content,.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){visibility:visible}}.collapse:focus-visible,.collapse:has(>input:is([type=checkbox],[type=radio]):focus-visible),.collapse:has(summary:focus-visible){outline-color:var(--color-base-content);outline-offset:2px;outline-width:2px;outline-style:solid}.collapse:not(.collapse-close)>input[type=checkbox],.collapse:not(.collapse-close)>input[type=radio]:not(:checked),.collapse:not(.collapse-close)>.collapse-title{cursor:pointer}:is(.collapse[tabindex]:focus:not(.collapse-close,.collapse[open]),.collapse[tabindex]:focus-within:not(.collapse-close,.collapse[open]))>.collapse-title{cursor:unset}.collapse:is([open],[tabindex]:focus:not(.collapse-close),[tabindex]:focus-within:not(.collapse-close))>:where(.collapse-content),.collapse:not(.collapse-close)>:where(input:is([type=checkbox],[type=radio]):checked~.collapse-content){padding-bottom:1rem}.collapse:is(details){width:100%}@media (prefers-reduced-motion:no-preference){.collapse:is(details)::details-content{transition:content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out, height .2s;interpolate-size:allow-keywords;height:0}.collapse:is(details):where([open])::details-content{height:auto}}.collapse:is(details) summary{display:block;position:relative}.collapse:is(details) summary::-webkit-details-marker{display:none}.collapse:is(details)>.collapse-content{content-visibility:visible}.collapse:is(details) summary{outline:none}.collapse-content{content-visibility:hidden;min-height:0;cursor:unset;grid-row-start:2;grid-column-start:1;padding-left:1rem;padding-right:1rem}@supports not (content-visibility:hidden){.collapse-content{visibility:hidden}}@media (prefers-reduced-motion:no-preference){.collapse-content{transition:content-visibility .2s allow-discrete, visibility .2s allow-discrete, min-height .2s ease-out allow-discrete, padding .1s ease-out 20ms, background-color .2s ease-out}}.validator-hint{visibility:hidden;margin-top:.5rem;font-size:.75rem}.validator:user-valid{--input-color:var(--color-success)}.validator:user-valid:focus{--input-color:var(--color-success)}.validator:user-valid:checked{--input-color:var(--color-success)}.validator:user-valid[aria-checked=true]{--input-color:var(--color-success)}.validator:user-valid:focus-within{--input-color:var(--color-success)}.validator:has(:user-valid){--input-color:var(--color-success)}.validator:has(:user-valid):focus{--input-color:var(--color-success)}.validator:has(:user-valid):checked{--input-color:var(--color-success)}.validator:has(:user-valid)[aria-checked=true]{--input-color:var(--color-success)}.validator:has(:user-valid):focus-within{--input-color:var(--color-success)}.validator:user-invalid{--input-color:var(--color-error)}.validator:user-invalid:focus{--input-color:var(--color-error)}.validator:user-invalid:checked{--input-color:var(--color-error)}.validator:user-invalid[aria-checked=true]{--input-color:var(--color-error)}.validator:user-invalid:focus-within{--input-color:var(--color-error)}.validator:user-invalid~.validator-hint{visibility:visible;color:var(--color-error)}.validator:has(:user-invalid){--input-color:var(--color-error)}.validator:has(:user-invalid):focus{--input-color:var(--color-error)}.validator:has(:user-invalid):checked{--input-color:var(--color-error)}.validator:has(:user-invalid)[aria-checked=true]{--input-color:var(--color-error)}.validator:has(:user-invalid):focus-within{--input-color:var(--color-error)}.validator:has(:user-invalid)~.validator-hint{visibility:visible;color:var(--color-error)}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))),:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):focus,:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):checked,:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))[aria-checked=true],:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false]))):focus-within{--input-color:var(--color-error)}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))~.validator-hint{visibility:visible;color:var(--color-error)}.radial-progress{height:var(--size);width:var(--size);vertical-align:middle;box-sizing:content-box;--value:0;--size:5rem;--thickness:calc(var(--size) / 10);--radialprogress:calc(var(--value) * 1%);background-color:#0000;border-radius:3.40282e38px;place-content:center;transition:--radialprogress .3s linear;display:inline-grid;position:relative}.radial-progress:before{content:"";background:radial-gradient(farthest-side, currentColor 98%, #0000) top/var(--thickness) var(--thickness) no-repeat, conic-gradient(currentColor var(--radialprogress), #0000 0);webkit-mask:radial-gradient(farthest-side, #0000 calc(100% - var(--thickness)), #000 calc(100% + .5px - var(--thickness)));-webkit-mask:radial-gradient(farthest-side, #0000 calc(100% - var(--thickness)), #000 calc(100% + .5px - var(--thickness)));-webkit-mask:radial-gradient(farthest-side, #0000 calc(100% - var(--thickness)), #000 calc(100% + .5px - var(--thickness)));mask:radial-gradient(farthest-side, #0000 calc(100% - var(--thickness)), #000 calc(100% + .5px - var(--thickness)));border-radius:3.40282e38px;position:absolute;inset:0}.radial-progress:after{content:"";inset:calc(50% - var(--thickness) / 2);transform:rotate(calc(var(--value) * 3.6deg - 90deg)) translate(calc(var(--size) / 2 - 50%));background-color:currentColor;border-radius:3.40282e38px;transition:transform .3s linear;position:absolute}.list{flex-direction:column;font-size:.875rem;display:flex}.list .list-row{--list-grid-cols:minmax(0, auto) 1fr;border-radius:var(--radius-box);word-break:break-word;grid-auto-flow:column;grid-template-columns:var(--list-grid-cols);gap:1rem;padding:1rem;display:grid;position:relative}:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{content:"";border-bottom:var(--border) solid;inset-inline:var(--radius-box);border-color:var(--color-base-content);position:absolute;bottom:0}@supports (color:color-mix(in lab, red, red)){:is(.list>:not(:last-child).list-row,.list>:not(:last-child) .list-row):after{border-color:color-mix(in oklab, var(--color-base-content) 5%, transparent)}}.toggle{border:var(--border) solid currentColor;color:var(--input-color);cursor:pointer;appearance:none;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--toggle-p), var(--radius-selector-max)) + min(var(--border), var(--radius-selector-max)));padding:var(--toggle-p);flex-shrink:0;grid-template-columns:0fr 1fr 1fr;place-content:center;display:inline-grid;position:relative;box-shadow:inset 0 1px}@supports (color:color-mix(in lab, red, red)){.toggle{box-shadow:0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000) inset}}.toggle{--input-color:var(--color-base-content);transition:color .3s,grid-template-columns .2s}@supports (color:color-mix(in lab, red, red)){.toggle{--input-color:color-mix(in oklab, var(--color-base-content) 50%, #0000)}}.toggle{--toggle-p:calc(var(--size) * .125);--size:calc(var(--size-selector,.25rem) * 6);width:calc((var(--size) * 2) - (var(--border) + var(--toggle-p)) * 2);height:var(--size)}.toggle>*{z-index:1;cursor:pointer;appearance:none;background-color:#0000;border:none;grid-column:2/span 1;grid-row-start:1;height:100%;padding:.125rem;transition:opacity .2s,rotate .4s}.toggle>:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.toggle>:focus{outline-offset:2px;outline:2px solid #0000}}.toggle>:nth-child(2){color:var(--color-base-100);rotate:0deg}.toggle>:nth-child(3){color:var(--color-base-100);opacity:0;rotate:-15deg}.toggle:has(:checked)>:nth-child(2){opacity:0;rotate:15deg}.toggle:has(:checked)>:nth-child(3){opacity:1;rotate:0deg}.toggle:before{aspect-ratio:1;border-radius:var(--radius-selector);--tw-content:"";content:var(--tw-content);width:100%;height:100%;box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor;background-color:currentColor;grid-row-start:1;grid-column-start:2;transition:background-color .1s,translate .2s,inset-inline-start .2s;position:relative;inset-inline-start:0;translate:0}@supports (color:color-mix(in lab, red, red)){.toggle:before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000)}}.toggle:before{background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise)}@media (forced-colors:active){.toggle:before{outline-style:var(--tw-outline-style);outline-offset:calc(1px * -1);outline-width:1px}}@media print{.toggle:before{outline-offset:-1rem;outline:.25rem solid}}.toggle:focus-visible,.toggle:has(:focus-visible){outline-offset:2px;outline:2px solid}.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked){background-color:var(--color-base-100);--input-color:var(--color-base-content);grid-template-columns:1fr 1fr 0fr}:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{background-color:currentColor}@starting-style{:is(.toggle:checked,.toggle[aria-checked=true],.toggle:has(>input:checked)):before{opacity:0}}.toggle:indeterminate{grid-template-columns:.5fr 1fr .5fr}.toggle:disabled{cursor:not-allowed;opacity:.3}.toggle:disabled:before{border:var(--border) solid currentColor;background-color:#0000}.input{cursor:text;border:var(--border) solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;white-space:nowrap;width:clamp(3rem,20rem,100%);height:var(--size);font-size:max(var(--font-size,.875rem), .875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.5rem;padding-inline:.75rem;display:inline-flex;position:relative}@supports (color:color-mix(in lab, red, red)){.input{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.input{--size:calc(var(--size-field,.25rem) * 10);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.input{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.input:where(input){display:inline-flex}.input :where(input){appearance:none;background-color:#0000;border:none;width:100%;height:100%;display:inline-flex}.input :where(input):focus,.input :where(input):focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.input :where(input):focus,.input :where(input):focus-within{outline-offset:2px;outline:2px solid #0000}}.input :where(input[type=url]),.input :where(input[type=email]){direction:ltr}.input :where(input[type=date]){display:inline-flex}.input:focus,.input:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.input:focus,.input:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.input:focus,.input:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.input:focus,.input:focus-within{--font-size:1rem}}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input)::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.input:has(>input[disabled]),.input:is(:disabled,[disabled]),fieldset:disabled .input{box-shadow:none}.input:has(>input[disabled])>input[disabled]{cursor:not-allowed}.input::-webkit-date-and-time-value{text-align:inherit}.input[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input::-webkit-calendar-picker-indicator{position:absolute;inset-inline-end:.75em}.input:has(>input[type=date]) :where(input[type=date]){webkit-appearance:none;appearance:none;display:inline-flex}.input:has(>input[type=date]) input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer;width:1em;height:1em;position:absolute;inset-inline-end:.75em}.indicator{width:max-content;display:inline-flex;position:relative}.indicator :where(.indicator-item){z-index:1;white-space:nowrap;top:var(--indicator-t,0);bottom:var(--indicator-b,auto);left:var(--indicator-s,auto);right:var(--indicator-e,0);translate:var(--indicator-x,50%) var(--indicator-y,-50%);position:absolute}.table{border-collapse:separate;--tw-border-spacing-x:calc(.25rem * 0);--tw-border-spacing-y:calc(.25rem * 0);width:100%;border-spacing:var(--tw-border-spacing-x) var(--tw-border-spacing-y);border-radius:var(--radius-box);text-align:left;font-size:.875rem;position:relative}.table:where(:dir(rtl),[dir=rtl],[dir=rtl] *){text-align:right}@media (hover:hover){:is(.table tr.row-hover,.table tr.row-hover:nth-child(2n)):hover{background-color:var(--color-base-200)}}.table :where(th,td){vertical-align:middle;padding-block:.75rem;padding-inline:1rem}.table :where(thead,tfoot){white-space:nowrap;color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(thead,tfoot){color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.table :where(thead,tfoot){font-size:.875rem;font-weight:600}.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(tfoot tr:first-child :is(td,th)){border-top:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}.table :where(.table-pin-rows thead tr){z-index:1;background-color:var(--color-base-100);position:sticky;top:0}.table :where(.table-pin-rows tfoot tr){z-index:1;background-color:var(--color-base-100);position:sticky;bottom:0}.table :where(.table-pin-cols tr th){background-color:var(--color-base-100);position:sticky;left:0;right:0}.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.table :where(thead tr :is(td,th),tbody tr:not(:last-child) :is(td,th)){border-bottom:var(--border) solid color-mix(in oklch, var(--color-base-content) 5%, #0000)}}.steps{counter-reset:step;grid-auto-columns:1fr;grid-auto-flow:column;display:inline-grid;overflow:auto hidden}.steps .step{text-align:center;--step-bg:var(--color-base-300);--step-fg:var(--color-base-content);grid-template-rows:40px 1fr;grid-template-columns:auto;place-items:center;min-width:4rem;display:grid}.steps .step:before{width:100%;height:.5rem;color:var(--step-bg);background-color:var(--step-bg);content:"";border:1px solid;grid-row-start:1;grid-column-start:1;margin-inline-start:-100%;top:0}.steps .step>.step-icon,.steps .step:not(:has(.step-icon)):after{--tw-content:counter(step);content:var(--tw-content);counter-increment:step;z-index:1;color:var(--step-fg);background-color:var(--step-bg);border:1px solid var(--step-bg);border-radius:3.40282e38px;grid-row-start:1;grid-column-start:1;place-self:center;place-items:center;width:2rem;height:2rem;display:grid;position:relative}.steps .step:first-child:before{--tw-content:none;content:var(--tw-content)}.steps .step[data-content]:after{--tw-content:attr(data-content);content:var(--tw-content)}.range{appearance:none;webkit-appearance:none;--range-thumb:var(--color-base-100);--range-thumb-size:calc(var(--size-selector,.25rem) * 6);--range-progress:currentColor;--range-fill:1;--range-p:.25rem;--range-bg:currentColor}@supports (color:color-mix(in lab, red, red)){.range{--range-bg:color-mix(in oklab, currentColor 10%, #0000)}}.range{cursor:pointer;vertical-align:middle;--radius-selector-max:calc(var(--radius-selector) + var(--radius-selector) + var(--radius-selector));border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));width:clamp(3rem,20rem,100%);height:var(--range-thumb-size);background-color:#0000;border:none;overflow:hidden}[dir=rtl] .range{--range-dir:-1}.range:focus{outline:none}.range:focus-visible{outline-offset:2px;outline:2px solid}.range::-webkit-slider-runnable-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}@media (forced-colors:active){.range::-webkit-slider-runnable-track{border:1px solid}.range::-moz-range-track{border:1px solid}}.range::-webkit-slider-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));background-color:var(--range-thumb);height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;appearance:none;webkit-appearance:none;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill));position:relative;top:50%;transform:translateY(-50%)}@supports (color:color-mix(in lab, red, red)){.range::-webkit-slider-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))}}.range::-moz-range-track{background-color:var(--range-bg);border-radius:var(--radius-selector);width:100%;height:calc(var(--range-thumb-size) * .5)}.range::-moz-range-thumb{box-sizing:border-box;border-radius:calc(var(--radius-selector) + min(var(--range-p), var(--radius-selector-max)));height:var(--range-thumb-size);width:var(--range-thumb-size);border:var(--range-p) solid;color:var(--range-progress);box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px currentColor, 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill));background-color:currentColor;position:relative;top:50%}@supports (color:color-mix(in lab, red, red)){.range::-moz-range-thumb{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px color-mix(in oklab, currentColor calc(var(--depth) * 10%), #0000), 0 0 0 2rem var(--range-thumb) inset, calc((var(--range-dir,1) * -100cqw) - (var(--range-dir,1) * var(--range-thumb-size) / 2)) 0 0 calc(100cqw * var(--range-fill))}}.range:disabled{cursor:not-allowed;opacity:.3}.chat-bubble{border-radius:var(--radius-field);background-color:var(--color-base-300);width:fit-content;color:var(--color-base-content);grid-row-end:3;min-width:2.5rem;max-width:90%;min-height:2rem;padding-block:.5rem;padding-inline:1rem;display:block;position:relative}.chat-bubble:before{background-color:inherit;content:"";width:.75rem;height:.75rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-image:var(--mask-chat);-webkit-mask-image:var(--mask-chat);mask-image:var(--mask-chat);position:absolute;bottom:0;-webkit-mask-position:0 -1px;mask-position:0 -1px;-webkit-mask-size:.8125rem;mask-size:.8125rem}.select{border:var(--border) solid #0000;appearance:none;background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);height:var(--size);touch-action:manipulation;white-space:nowrap;text-overflow:ellipsis;box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 20px) calc(1px + 50%),calc(100% - 16.1px) calc(1px + 50%);background-repeat:no-repeat;background-size:4px 4px,4px 4px;border-start-start-radius:var(--join-ss,var(--radius-field));border-start-end-radius:var(--join-se,var(--radius-field));border-end-end-radius:var(--join-ee,var(--radius-field));border-end-start-radius:var(--join-es,var(--radius-field));flex-shrink:1;align-items:center;gap:.375rem;padding-inline:.75rem 1.75rem;font-size:.875rem;display:inline-flex;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.select{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.select{border-color:var(--input-color);--input-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.select{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.select{--size:calc(var(--size-field,.25rem) * 10)}[dir=rtl] .select{background-position:12px calc(1px + 50%),16px calc(1px + 50%)}[dir=rtl] .select::picker(select){translate:.5rem}[dir=rtl] .select select::picker(select){translate:.5rem}.select[multiple]{background-image:none;height:auto;padding-block:.75rem;padding-inline-end:.75rem;overflow:auto}.select select{appearance:none;width:calc(100% + 2.75rem);height:calc(100% - calc(var(--border) * 2));background:inherit;border-radius:inherit;border-style:none;align-items:center;margin-inline:-.75rem -1.75rem;padding-inline:.75rem 1.75rem}.select select:focus,.select select:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.select select:focus,.select select:focus-within{outline-offset:2px;outline:2px solid #0000}}.select select:not(:last-child){background-image:none;margin-inline-end:-1.375rem}.select:focus,.select:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.select:focus,.select:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.select:focus,.select:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select{color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.select:has(>select[disabled]),.select:is(:disabled,[disabled]),fieldset:disabled .select)::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.select:has(>select[disabled])>select[disabled]{cursor:not-allowed}@supports (appearance:base-select){.select,.select select{appearance:base-select}:is(.select,.select select)::picker(select){appearance:base-select}}:is(.select,.select select)::picker(select){color:inherit;border:var(--border) solid var(--color-base-200);border-radius:var(--radius-box);background-color:inherit;max-height:min(24rem,70dvh);box-shadow:0 2px calc(var(--depth) * 3px) -2px oklch(0% 0 0/.2);box-shadow:0 20px 25px -5px rgb(0 0 0/calc(var(--depth) * .1)), 0 8px 10px -6px rgb(0 0 0/calc(var(--depth) * .1));margin-block:.5rem;margin-inline:.5rem;padding:.5rem;translate:-.5rem}:is(.select,.select select)::picker-icon{display:none}:is(.select,.select select) optgroup{padding-top:.5em}:is(.select,.select select) optgroup option:first-child{margin-top:.5em}:is(.select,.select select) option{border-radius:var(--radius-field);white-space:normal;padding-block:.375rem;padding-inline:.75rem;transition-property:color,background-color;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{cursor:pointer;background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){:is(.select,.select select) option:not(:disabled):hover,:is(.select,.select select) option:not(:disabled):focus-visible{outline-offset:2px;outline:2px solid #0000}}:is(.select,.select select) option:not(:disabled):active{background-color:var(--color-neutral);color:var(--color-neutral-content);box-shadow:0 2px calc(var(--depth) * 3px) -2px var(--color-neutral)}.timeline{display:flex;position:relative}.timeline>li{grid-template-rows:var(--timeline-row-start,minmax(0, 1fr)) auto var(--timeline-row-end,minmax(0, 1fr));grid-template-columns:var(--timeline-col-start,minmax(0, 1fr)) auto var(--timeline-col-end,minmax(0, 1fr));flex-shrink:0;align-items:center;display:grid;position:relative}.timeline>li>hr{border:none;width:100%}.timeline>li>hr:first-child{grid-row-start:2;grid-column-start:1}.timeline>li>hr:last-child{grid-area:2/3/auto/none}@media print{.timeline>li>hr{border:.1px solid var(--color-base-300)}}.timeline :where(hr){background-color:var(--color-base-300);height:.25rem}.timeline:has(.timeline-middle hr):first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline:has(.timeline-middle hr):last-child,.timeline:not(:has(.timeline-middle)) :first-child hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.timeline:not(:has(.timeline-middle)) :last-child hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.swap{cursor:pointer;vertical-align:middle;webkit-user-select:none;-webkit-user-select:none;user-select:none;place-content:center;display:inline-grid;position:relative}.swap input{appearance:none;border:none}.swap>*{grid-row-start:1;grid-column-start:1}@media (prefers-reduced-motion:no-preference){.swap>*{transition-property:transform,rotate,opacity;transition-duration:.2s;transition-timing-function:cubic-bezier(0,0,.2,1)}}.swap .swap-on,.swap .swap-indeterminate,.swap input:indeterminate~.swap-on,.swap input:is(:checked,:indeterminate)~.swap-off{opacity:0}.swap input:checked~.swap-on,.swap input:indeterminate~.swap-indeterminate{opacity:1;backface-visibility:visible}.collapse-title{grid-row-start:1;grid-column-start:1;width:100%;min-height:1lh;padding:1rem;padding-inline-end:3rem;transition:background-color .2s ease-out;position:relative}.avatar{vertical-align:middle;display:inline-flex;position:relative}.avatar>div{aspect-ratio:1;display:block;overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.checkbox{border:var(--border) solid var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.checkbox{border:var(--border) solid var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox{cursor:pointer;appearance:none;border-radius:var(--radius-selector);vertical-align:middle;color:var(--color-base-content);box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 0 #0000 inset, 0 0 #0000;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);flex-shrink:0;padding:.25rem;transition:background-color .2s,box-shadow .2s;display:inline-block;position:relative}.checkbox:before{--tw-content:"";content:var(--tw-content);opacity:0;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,70% 80%,70% 100%);width:100%;height:100%;box-shadow:0px 3px 0 0px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;background-color:currentColor;font-size:1rem;line-height:.75;transition:clip-path .3s .1s,opacity .1s .1s,rotate .3s .1s,translate .3s .1s;display:block;rotate:45deg}.checkbox:focus-visible{outline:2px solid var(--input-color,currentColor);outline-offset:2px}.checkbox:checked,.checkbox[aria-checked=true]{background-color:var(--input-color,#0000);box-shadow:0 0 #0000 inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1))}:is(.checkbox:checked,.checkbox[aria-checked=true]):before{clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 0%,70% 0%,70% 100%);opacity:1}@media (forced-colors:active){:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}@media print{:is(.checkbox:checked,.checkbox[aria-checked=true]):before{--tw-content:"✔︎";clip-path:none;background-color:#0000;rotate:0deg}}.checkbox:indeterminate{background-color:var(--input-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.checkbox:indeterminate{background-color:var(--input-color,color-mix(in oklab, var(--color-base-content) 20%, #0000))}}.checkbox:indeterminate:before{opacity:1;clip-path:polygon(20% 100%,20% 80%,50% 80%,50% 80%,80% 80%,80% 100%);translate:0 -35%;rotate:0deg}.radio{cursor:pointer;appearance:none;vertical-align:middle;border:var(--border) solid var(--input-color,currentColor);border-radius:3.40282e38px;flex-shrink:0;padding:.25rem;display:inline-block;position:relative}@supports (color:color-mix(in lab, red, red)){.radio{border:var(--border) solid var(--input-color,color-mix(in srgb, currentColor 20%, #0000))}}.radio{box-shadow:0 1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset;--size:calc(var(--size-selector,.25rem) * 6);width:var(--size);height:var(--size);color:var(--input-color,currentColor)}.radio:before{--tw-content:"";content:var(--tw-content);background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);border-radius:3.40282e38px;width:100%;height:100%;display:block}.radio:focus-visible{outline:2px solid}.radio:checked,.radio[aria-checked=true]{background-color:var(--color-base-100);border-color:currentColor}@media (prefers-reduced-motion:no-preference){.radio:checked,.radio[aria-checked=true]{animation:.2s ease-out radio}}:is(.radio:checked,.radio[aria-checked=true]):before{box-shadow:0 -1px oklch(0% 0 0 / calc(var(--depth) * .1)) inset, 0 8px 0 -4px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px oklch(0% 0 0 / calc(var(--depth) * .1));background-color:currentColor}@media (forced-colors:active){:is(.radio:checked,.radio[aria-checked=true]):before{outline-style:var(--tw-outline-style);outline-offset:calc(1px * -1);outline-width:1px}}@media print{:is(.radio:checked,.radio[aria-checked=true]):before{outline-offset:-1rem;outline:.25rem solid}}.rating{vertical-align:middle;display:inline-flex;position:relative}.rating input{appearance:none;border:none}.rating :where(*){background-color:var(--color-base-content);opacity:.2;border-radius:0;width:1.5rem;height:1.5rem}@media (prefers-reduced-motion:no-preference){.rating :where(*){animation:.25s ease-out rating}}.rating :where(*):is(input){cursor:pointer}.rating .rating-hidden{background-color:#0000;width:.5rem}.rating input[type=radio]:checked{background-image:none}.rating :checked,.rating [aria-checked=true],.rating [aria-current=true],.rating :has(~:checked,~[aria-checked=true],~[aria-current=true]){opacity:1}.rating :focus-visible{scale:1.1}@media (prefers-reduced-motion:no-preference){.rating :focus-visible{transition:scale .2s ease-out}}.rating :active:focus{animation:none;scale:1.1}.navbar{align-items:center;width:100%;min-height:4rem;padding:.5rem;display:flex}.drawer{grid-auto-columns:max-content auto;width:100%;display:grid;position:relative}.card{border-radius:var(--radius-box);outline-offset:2px;outline:0 solid #0000;flex-direction:column;transition:outline .2s ease-in-out;display:flex;position:relative}.card:focus{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.card:focus{outline-offset:2px;outline:2px solid #0000}}.card:focus-visible{outline-color:currentColor}.card :where(figure:first-child){border-start-start-radius:inherit;border-start-end-radius:inherit;border-end-end-radius:unset;border-end-start-radius:unset;overflow:hidden}.card :where(figure:last-child){border-start-start-radius:unset;border-start-end-radius:unset;border-end-end-radius:inherit;border-end-start-radius:inherit;overflow:hidden}.card figure{justify-content:center;align-items:center;display:flex}.card:has(>input:is(input[type=checkbox],input[type=radio])){cursor:pointer;-webkit-user-select:none;user-select:none}.card:has(>:checked){outline:2px solid}.stats{border-radius:var(--radius-box);grid-auto-flow:column;display:inline-grid;position:relative;overflow-x:auto}.progress{appearance:none;border-radius:var(--radius-box);background-color:currentColor;width:100%;height:.5rem;position:relative;overflow:hidden}@supports (color:color-mix(in lab, red, red)){.progress{background-color:color-mix(in oklab, currentcolor 20%, transparent)}}.progress{color:var(--color-base-content)}.progress:indeterminate{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%}@media (prefers-reduced-motion:no-preference){.progress:indeterminate{animation:5s ease-in-out infinite progress}}@supports ((-moz-appearance:none)){.progress:indeterminate::-moz-progress-bar{background-color:#0000}@media (prefers-reduced-motion:no-preference){.progress:indeterminate::-moz-progress-bar{background-image:repeating-linear-gradient(90deg,currentColor -1% 10%,#0000 10% 90%);background-position-x:15%;background-size:200%;animation:5s ease-in-out infinite progress}}.progress::-moz-progress-bar{border-radius:var(--radius-box);background-color:currentColor}}@supports ((-webkit-appearance:none)){.progress::-webkit-progress-bar{border-radius:var(--radius-box);background-color:#0000}.progress::-webkit-progress-value{border-radius:var(--radius-box);background-color:currentColor}}.textarea{border:var(--border) solid #0000;appearance:none;border-radius:var(--radius-field);background-color:var(--color-base-100);vertical-align:middle;width:clamp(3rem,20rem,100%);min-height:5rem;font-size:max(var(--font-size,.875rem), .875rem);touch-action:manipulation;border-color:var(--input-color);box-shadow:0 1px var(--input-color) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset;flex-shrink:1;padding-block:.5rem;padding-inline:.75rem}@supports (color:color-mix(in lab, red, red)){.textarea{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000) inset, 0 -1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset}}.textarea{--input-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.textarea{--input-color:color-mix(in oklab, var(--color-base-content) 20%, #0000)}}.textarea textarea{appearance:none;background-color:#0000;border:none}.textarea textarea:focus,.textarea textarea:focus-within{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.textarea textarea:focus,.textarea textarea:focus-within{outline-offset:2px;outline:2px solid #0000}}.textarea:focus,.textarea:focus-within{--input-color:var(--color-base-content);box-shadow:0 1px var(--input-color)}@supports (color:color-mix(in lab, red, red)){.textarea:focus,.textarea:focus-within{box-shadow:0 1px color-mix(in oklab, var(--input-color) calc(var(--depth) * 10%), #0000)}}.textarea:focus,.textarea:focus-within{outline:2px solid var(--input-color);outline-offset:2px;isolation:isolate}@media (pointer:coarse){@supports (-webkit-touch-callout:none){.textarea:focus,.textarea:focus-within{--font-size:1rem}}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){cursor:not-allowed;border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){color:color-mix(in oklab, var(--color-base-content) 40%, transparent)}}:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){:is(.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]))::placeholder{color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.textarea:has(>textarea[disabled]),.textarea:is(:disabled,[disabled]){box-shadow:none}.textarea:has(>textarea[disabled])>textarea[disabled]{cursor:not-allowed}.stack{grid-template-rows:3px 4px 1fr 4px 3px;grid-template-columns:3px 4px 1fr 4px 3px;display:inline-grid}.stack>*{width:100%;height:100%}.stack>:nth-child(n+2){opacity:.7;width:100%}.stack>:nth-child(2){z-index:2;opacity:.9}.stack>:first-child{z-index:3;width:100%}.modal-backdrop{color:#0000;z-index:-1;grid-row-start:1;grid-column-start:1;place-self:stretch stretch;display:grid}.modal-backdrop button{cursor:pointer}.tab-content{order:var(--tabcontent-order);--tabcontent-radius-ss:var(--radius-box);--tabcontent-radius-se:var(--radius-box);--tabcontent-radius-es:var(--radius-box);--tabcontent-radius-ee:var(--radius-box);--tabcontent-order:1;width:100%;height:calc(100% - var(--tab-height) + var(--border));margin:var(--tabcontent-margin);border-color:#0000;border-width:var(--border);border-start-start-radius:var(--tabcontent-radius-ss);border-start-end-radius:var(--tabcontent-radius-se);border-end-end-radius:var(--tabcontent-radius-ee);border-end-start-radius:var(--tabcontent-radius-es);display:none}.timeline-end{grid-area:3/1/4/4;place-self:flex-start center;margin:.25rem}.timeline-start{grid-area:1/1/2/4;place-self:flex-end center;margin:.25rem}.stat-figure{grid-row:1/span 3;grid-column-start:2;place-self:center flex-end}.modal-box{background-color:var(--color-base-100);border-top-left-radius:var(--modal-tl,var(--radius-box));border-top-right-radius:var(--modal-tr,var(--radius-box));border-bottom-left-radius:var(--modal-bl,var(--radius-box));border-bottom-right-radius:var(--modal-br,var(--radius-box));opacity:0;overscroll-behavior:contain;grid-row-start:1;grid-column-start:1;width:91.6667%;max-width:32rem;max-height:100vh;padding:1.5rem;transition:translate .3s ease-out,scale .3s ease-out,opacity .2s ease-out 50ms,box-shadow .3s ease-out;overflow-y:auto;scale:.95;box-shadow:0 25px 50px -12px oklch(0% 0 0/.25)}.drawer-content{grid-row-start:1;grid-column-start:2;min-width:0}.timeline-middle{grid-row-start:2;grid-column-start:2}.stat-value{white-space:nowrap;grid-column-start:1;font-size:2rem;font-weight:800}.stat-desc{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab, red, red)){.stat-desc{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.stat-desc{font-size:.75rem}.stat-title{white-space:nowrap;color:var(--color-base-content);grid-column-start:1}@supports (color:color-mix(in lab, red, red)){.stat-title{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.stat-title{font-size:.75rem}.stat-actions{white-space:nowrap;grid-column-start:1}.chat-image{grid-row:span 2/span 2;align-self:flex-end}.chat-footer{grid-row-start:3;gap:.25rem;font-size:.6875rem;display:flex}.chat-header{grid-row-start:1;gap:.25rem;font-size:.6875rem;display:flex}.divider{white-space:nowrap;height:1rem;margin:var(--divider-m,1rem 0);--divider-color:var(--color-base-content);flex-direction:row;align-self:stretch;align-items:center;display:flex}@supports (color:color-mix(in lab, red, red)){.divider{--divider-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.divider:before,.divider:after{content:"";background-color:var(--divider-color);flex-grow:1;width:100%;height:.125rem}@media print{.divider:before,.divider:after{border:.5px solid}}.divider:not(:empty){gap:1rem}.filter{flex-wrap:wrap;display:flex}.filter input[type=radio]{width:auto}.filter input{opacity:1;transition:margin .1s,opacity .3s,padding .3s,border-width .1s;overflow:hidden;scale:1}.filter input:not(:last-child){margin-inline-end:.25rem}.filter input.filter-reset{aspect-ratio:1}.filter input.filter-reset:after{--tw-content:"×";content:var(--tw-content)}.filter:not(:has(input:checked:not(.filter-reset))) .filter-reset,.filter:not(:has(input:checked:not(.filter-reset))) input[type=reset],.filter:has(input:checked:not(.filter-reset)) input:not(:checked,.filter-reset,input[type=reset]){opacity:0;border-width:0;width:0;margin-inline:0;padding-inline:0;scale:0}.label{white-space:nowrap;color:currentColor;align-items:center;gap:.375rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.label{color:color-mix(in oklab, currentcolor 60%, transparent)}}.label:has(input){cursor:pointer}.label:is(.input>*,.select>*){white-space:nowrap;height:calc(100% - .5rem);font-size:inherit;align-items:center;padding-inline:.75rem;display:flex}.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid currentColor;margin-inline:-.75rem .75rem}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):first-child{border-inline-end:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid currentColor;margin-inline:.75rem -.75rem}@supports (color:color-mix(in lab, red, red)){.label:is(.input>*,.select>*):last-child{border-inline-start:var(--border) solid color-mix(in oklab, currentColor 10%, #0000)}}.modal-action{justify-content:flex-end;gap:.5rem;margin-top:1.5rem;display:flex}.fieldset-legend{color:var(--color-base-content);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:-.25rem;padding-block:.5rem;font-weight:600;display:flex}.carousel-item{box-sizing:content-box;scroll-snap-align:start;flex:none;display:flex}.badge{border-radius:var(--radius-selector);vertical-align:middle;color:var(--badge-fg);border:var(--border) solid var(--badge-color,var(--color-base-200));background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);background-color:var(--badge-bg);--badge-bg:var(--badge-color,var(--color-base-100));--badge-fg:var(--color-base-content);--size:calc(var(--size-selector,.25rem) * 6);width:fit-content;height:var(--size);padding-inline:calc(var(--size) / 2 - var(--border));justify-content:center;align-items:center;gap:.5rem;font-size:.875rem;display:inline-flex}.kbd{border-radius:var(--radius-field);background-color:var(--color-base-200);vertical-align:middle;border:var(--border) solid var(--color-base-content);justify-content:center;align-items:center;padding-inline:.5em;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.kbd{border:var(--border) solid color-mix(in srgb, var(--color-base-content) 20%, #0000)}}.kbd{border-bottom:calc(var(--border) + 1px) solid var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.kbd{border-bottom:calc(var(--border) + 1px) solid color-mix(in srgb, var(--color-base-content) 20%, #0000)}}.kbd{--size:calc(var(--size-selector,.25rem) * 6);height:var(--size);min-width:var(--size);font-size:.875rem}.text-rotate{vertical-align:bottom;white-space:nowrap;--duration:var(--tw-duration);transition-property:none;display:inline-block;overflow:hidden}.text-rotate>*{height:calc(var(--items,1) * 100%);justify-items:start;display:grid}.text-rotate>:has(:nth-child(2)){--items:2;animation:rotator var(--duration,10s) linear(0 0% 49%, .5 50% 99%, 1 100% 100%) infinite}.text-rotate>:has(:nth-child(3)){--items:3;animation:rotator var(--duration,10s) linear(0 0% 32%, .333333 33% 65%, .666666 66% 99%, 1 100% 100%) infinite}.text-rotate>:has(:nth-child(4)){--items:4;animation:rotator var(--duration,10s) linear(0 0% 24%, .25 25% 49%, .5 50% 74%, .75 75% 99%, 1 100% 100%) infinite}.text-rotate>:has(:nth-child(5)){--items:5;animation:rotator var(--duration,10s) linear(0 0% 19%, .2 20% 39%, .4 40% 59%, .6 60% 79%, .8 80% 99%, 1 100% 100%) infinite}.text-rotate>:has(:nth-child(6)){--items:6;animation:rotator var(--duration,10s) linear(0 0% 15%, .16666 16% 32%, .333333 33% 49%, .5 50% 65%, .666666 66% 82%, .833333 83% 99%, 1 100% 100%) infinite}.text-rotate>*>*{clip-path:inset(.5px 0);align-content:baseline}.text-rotate>*>:first-child{translate:var(--first-item-position)}.text-rotate:hover>*{animation-play-state:paused}.tabs{--tabs-height:auto;--tabs-direction:row;--tab-height:calc(var(--size-field,.25rem) * 10);height:var(--tabs-height);flex-wrap:wrap;flex-direction:var(--tabs-direction);display:flex}.footer{grid-auto-flow:row;place-items:start;gap:2.5rem 1rem;width:100%;font-size:.875rem;line-height:1.25rem;display:grid}.footer>*{place-items:start;gap:.5rem;display:grid}.footer.footer-center{text-align:center;grid-auto-flow:column dense;place-items:center}.footer.footer-center>*{place-items:center}.stat{grid-template-columns:repeat(1,1fr);column-gap:1rem;width:100%;padding-block:1rem;padding-inline:1.5rem;display:inline-grid}.stat:not(:last-child){border-inline-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab, red, red)){.stat:not(:last-child){border-inline-end:var(--border) dashed color-mix(in oklab, currentColor 10%, #0000)}}.stat:not(:last-child){border-block-end:none}.navbar-end{justify-content:flex-end;align-items:center;width:50%;display:inline-flex}.card-body{padding:var(--card-p,1.5rem);font-size:var(--card-fs,.875rem);flex-direction:column;flex:auto;gap:.5rem;display:flex}.card-body :where(p){flex-grow:1}.fieldset-label{color:var(--color-base-content);align-items:center;gap:.375rem;display:flex}@supports (color:color-mix(in lab, red, red)){.fieldset-label{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.fieldset-label:has(input){cursor:pointer}.carousel{scroll-snap-type:x mandatory;scrollbar-width:none;display:inline-flex;overflow-x:scroll}@media (prefers-reduced-motion:no-preference){.carousel{scroll-behavior:smooth}}.carousel::-webkit-scrollbar{display:none}.alert{--alert-border-color:var(--color-base-200);border-radius:var(--radius-box);color:var(--color-base-content);background-color:var(--alert-color,var(--color-base-200));text-align:start;background-size:auto, calc(var(--noise) * 100%);background-image:none, var(--fx-noise);box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px #000, 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08));border-style:solid;grid-template-columns:auto;grid-auto-flow:column;justify-content:start;place-items:center start;gap:1rem;padding-block:.75rem;padding-inline:1rem;font-size:.875rem;line-height:1.25rem;display:grid}@supports (color:color-mix(in lab, red, red)){.alert{box-shadow:0 3px 0 -2px oklch(100% 0 0 / calc(var(--depth) * .08)) inset, 0 1px color-mix(in oklab, color-mix(in oklab, #000 20%, var(--alert-color,var(--color-base-200))) calc(var(--depth) * 20%), #0000), 0 4px 3px -2px oklch(0% 0 0 / calc(var(--depth) * .08))}}.alert:has(:nth-child(2)){grid-template-columns:auto minmax(auto,1fr)}.fieldset{grid-template-columns:1fr;grid-auto-rows:max-content;gap:.375rem;padding-block:.25rem;font-size:.75rem;display:grid}.chat{--mask-chat:url("data:image/svg+xml,%3csvg width='13' height='13' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='M0 11.5004C0 13.0004 2 13.0004 2 13.0004H12H13V0.00036329L12.5 0C12.5 0 11.977 2.09572 11.8581 2.50033C11.6075 3.35237 10.9149 4.22374 9 5.50036C6 7.50036 0 10.0004 0 11.5004Z'/%3e%3c/svg%3e");grid-auto-rows:min-content;column-gap:.75rem;padding-block:.25rem;display:grid}.card-actions{flex-wrap:wrap;align-items:flex-start;gap:.5rem;display:flex}.card-title{font-size:var(--cardtitle-fs,1.125rem);align-items:center;gap:.5rem;font-weight:600;display:flex}.mask{vertical-align:middle;display:inline-block;-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.skeleton{border-radius:var(--radius-box);background-color:var(--color-base-300)}@media (prefers-reduced-motion:reduce){.skeleton{transition-duration:15s}}.skeleton{will-change:background-position;background-image:linear-gradient(105deg, #0000 0% 40%, var(--color-base-100) 50%, #0000 60% 100%);background-position-x:-50%;background-size:200%}@media (prefers-reduced-motion:no-preference){.skeleton{animation:1.8s ease-in-out infinite skeleton}}.timeline-box{border:var(--border) solid;border-radius:var(--radius-box);border-color:var(--color-base-300);background-color:var(--color-base-100);padding-block:.5rem;padding-inline:1rem;font-size:.75rem;box-shadow:0 1px 2px oklch(0% 0 0/.05)}.btn-neutral{--btn-color:var(--color-neutral);--btn-fg:var(--color-neutral-content)}.btn-primary{--btn-color:var(--color-primary);--btn-fg:var(--color-primary-content)}.btn-secondary{--btn-color:var(--color-secondary);--btn-fg:var(--color-secondary-content)}}@layer daisyui.l1.l2{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{pointer-events:auto;visibility:visible;opacity:1;transition:visibility 0s allow-discrete, background-color .3s ease-out, opacity .1s ease-out;background-color:oklch(0% 0 0/.4)}:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal) .modal-box{opacity:1;translate:0;scale:1}:root:has(:is(.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal)){--page-has-backdrop:1;--page-overflow:hidden;--page-scroll-bg:var(--page-scroll-bg-on);--page-scroll-gutter:stable;--page-scroll-transition:var(--page-scroll-transition-on);animation:forwards set-page-has-scroll;animation-timeline:scroll()}@starting-style{.modal.modal-open,.modal[open],.modal:target,.modal-toggle:checked+.modal{opacity:0}}:where(.drawer-toggle:checked~.drawer-side){pointer-events:auto;visibility:visible;opacity:1;overflow-y:auto}:where(.drawer-toggle:checked~.drawer-side)>:not(.drawer-overlay){translate:0%}.drawer-toggle:focus-visible~.drawer-content label.drawer-button{outline-offset:2px;outline:2px solid}.tooltip>.tooltip-content,.tooltip[data-tip]:before{transform:translateX(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}.tooltip:after{transform:translateX(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.collapse-arrow>.collapse-title:after{width:.5rem;height:.5rem;display:block;position:absolute;transform:translateY(-100%)rotate(45deg)}@media (prefers-reduced-motion:no-preference){.collapse-arrow>.collapse-title:after{transition-property:all;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}}.collapse-arrow>.collapse-title:after{content:"";transform-origin:75% 75%;pointer-events:none;top:50%;inset-inline-end:1.4rem;box-shadow:2px 2px}.btn:disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.btn:disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn:disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn:disabled{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn[disabled]:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn[disabled]:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.btn[disabled]:not(.btn-link,.btn-ghost){box-shadow:none}.btn[disabled]{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn[disabled]{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}.btn-disabled:not(.btn-link,.btn-ghost){background-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn-disabled:not(.btn-link,.btn-ghost){background-color:color-mix(in oklab, var(--color-base-content) 10%, transparent)}}.btn-disabled:not(.btn-link,.btn-ghost){box-shadow:none}.btn-disabled{pointer-events:none;--btn-border:#0000;--btn-noise:none;--btn-fg:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.btn-disabled{--btn-fg:color-mix(in oklch, var(--color-base-content) 20%, #0000)}}@media (prefers-reduced-motion:no-preference){.collapse[open].collapse-arrow>.collapse-title:after,.collapse.collapse-open.collapse-arrow>.collapse-title:after{transform:translateY(-50%)rotate(225deg)}}.collapse.collapse-open.collapse-plus>.collapse-title:after{--tw-content:"−";content:var(--tw-content)}:is(.collapse[tabindex].collapse-arrow:focus:not(.collapse-close),.collapse.collapse-arrow[tabindex]:focus-within:not(.collapse-close))>.collapse-title:after,.collapse.collapse-arrow:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{transform:translateY(-50%)rotate(225deg)}.collapse[open].collapse-plus>.collapse-title:after,.collapse[tabindex].collapse-plus:focus:not(.collapse-close)>.collapse-title:after,.collapse.collapse-plus:not(.collapse-close)>input:is([type=checkbox],[type=radio]):checked~.collapse-title:after{--tw-content:"−";content:var(--tw-content)}.list .list-row:has(.list-col-grow:first-child){--list-grid-cols:1fr}.list .list-row:has(.list-col-grow:nth-child(2)){--list-grid-cols:minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(3)){--list-grid-cols:minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(4)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(5)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row:has(.list-col-grow:nth-child(6)){--list-grid-cols:minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) minmax(0, auto) 1fr}.list .list-row>*{grid-row-start:1}.steps .step-neutral+.step-neutral:before,.steps .step-neutral:after,.steps .step-neutral>.step-icon{--step-bg:var(--color-neutral);--step-fg:var(--color-neutral-content)}.steps .step-primary+.step-primary:before,.steps .step-primary:after,.steps .step-primary>.step-icon{--step-bg:var(--color-primary);--step-fg:var(--color-primary-content)}.steps .step-secondary+.step-secondary:before,.steps .step-secondary:after,.steps .step-secondary>.step-icon{--step-bg:var(--color-secondary);--step-fg:var(--color-secondary-content)}.steps .step-accent+.step-accent:before,.steps .step-accent:after,.steps .step-accent>.step-icon{--step-bg:var(--color-accent);--step-fg:var(--color-accent-content)}.steps .step-info+.step-info:before,.steps .step-info:after,.steps .step-info>.step-icon{--step-bg:var(--color-info);--step-fg:var(--color-info-content)}.steps .step-success+.step-success:before,.steps .step-success:after,.steps .step-success>.step-icon{--step-bg:var(--color-success);--step-fg:var(--color-success-content)}.steps .step-warning+.step-warning:before,.steps .step-warning:after,.steps .step-warning>.step-icon{--step-bg:var(--color-warning);--step-fg:var(--color-warning-content)}.steps .step-error+.step-error:before,.steps .step-error:after,.steps .step-error>.step-icon{--step-bg:var(--color-error);--step-fg:var(--color-error-content)}.tabs-border>.tab{--tab-border-color:#0000 #0000 var(--tab-border-color) #0000;border-radius:var(--radius-field);position:relative}.tabs-border>.tab:before{content:"";background-color:var(--tab-border-color);border-radius:var(--radius-field);width:80%;height:3px;transition:background-color .2s;position:absolute;bottom:0;left:10%}:is(.tabs-border>.tab:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-border>.tab:is(input:checked),.tabs-border>.tab:is(label:has(:checked))):before{--tab-border-color:currentColor;border-top:3px solid}.checkbox:disabled,.radio:disabled{cursor:not-allowed;opacity:.2}.rating.rating-xs :where(:not(.rating-hidden)){width:1rem;height:1rem}.rating.rating-sm :where(:not(.rating-hidden)){width:1.25rem;height:1.25rem}.rating.rating-md :where(:not(.rating-hidden)){width:1.5rem;height:1.5rem}.rating.rating-lg :where(:not(.rating-hidden)){width:1.75rem;height:1.75rem}.rating.rating-xl :where(:not(.rating-hidden)){width:2rem;height:2rem}:where(.navbar){position:relative}.tooltip-right>.tooltip-content,.tooltip-right[data-tip]:before{transform:translateX(calc(var(--tt-pos,-.25rem) + .25rem)) translateY(-50%);inset:50% auto auto var(--tt-off)}.tooltip-right:after{transform:translateX(var(--tt-pos,-.25rem)) translateY(-50%) rotate(90deg);inset:50% auto auto calc(var(--tt-tail) + 1px)}.tooltip-top>.tooltip-content,.tooltip-top[data-tip]:before{transform:translateX(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-off) 50%}.tooltip-top:after{transform:translateX(-50%) translateY(var(--tt-pos,.25rem));inset:auto auto var(--tt-tail) 50%}.dropdown-bottom{--anchor-v:bottom}.dropdown-bottom .dropdown-content{transform-origin:top;top:100%;bottom:auto}.btn-active{--btn-bg:var(--btn-color,var(--color-base-200))}@supports (color:color-mix(in lab, red, red)){.btn-active{--btn-bg:color-mix(in oklab, var(--btn-color,var(--color-base-200)), #000 7%)}}.btn-active{--btn-shadow:0 0 0 0 oklch(0% 0 0/0), 0 0 0 0 oklch(0% 0 0/0);isolation:isolate}:is(.stack,.stack.stack-bottom)>*{grid-area:3/3/6/4}:is(.stack,.stack.stack-bottom)>:nth-child(2){grid-area:2/2/5/5}:is(.stack,.stack.stack-bottom)>:first-child{grid-area:1/1/4/6}.stack.stack-top>*{grid-area:1/3/4/4}.stack.stack-top>:nth-child(2){grid-area:2/2/5/5}.stack.stack-top>:first-child{grid-area:3/1/6/6}.stack.stack-start>*{grid-area:3/1/4/4}.stack.stack-start>:nth-child(2){grid-area:2/2/5/5}.stack.stack-start>:first-child{grid-area:1/3/6/6}.stack.stack-end>*{grid-area:3/3/4/6}.stack.stack-end>:nth-child(2){grid-area:2/2/5/5}.stack.stack-end>:first-child{grid-area:1/1/6/4}.tabs-box{background-color:var(--color-base-200);--tabs-box-radius:calc(3 * var(--radius-field));border-radius:calc(min(var(--tab-height) / 2, var(--radius-field)) + min(.25rem, var(--tabs-box-radius)));box-shadow:0 -.5px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 .5px oklch(0% 0 0 / calc(var(--depth) * .05)) inset;padding:.25rem}.tabs-box>.tab{border-radius:var(--radius-field);border-style:none}.tabs-box>.tab:focus-visible,.tabs-box>.tab:is(label:has(:checked:focus-visible)){outline-offset:2px}.tabs-box>.tab:focus-visible{z-index:1}.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){background-color:var(--tab-bg,var(--color-base-100));box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px var(--color-neutral), 0 1px 6px -4px var(--color-neutral)}@supports (color:color-mix(in lab, red, red)){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){box-shadow:0 1px oklch(100% 0 0 / calc(var(--depth) * .1)) inset, 0 1px 1px -1px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 50%), #0000), 0 1px 6px -4px color-mix(in oklab, var(--color-neutral) calc(var(--depth) * 100%), #0000)}}@media (forced-colors:active){.tabs-box>:is(.tab-active,[aria-selected=true],[aria-current=true],[aria-current=page]):not(.tab-disabled,[disabled]),.tabs-box>:is(input:checked),.tabs-box>:is(label:has(:checked)){border:1px solid}}.tabs-box>.tab-content{height:calc(100% - var(--tab-height) + var(--border) - .5rem);border-radius:calc(min(var(--tab-height) / 2, var(--radius-field)) + min(.25rem, var(--tabs-box-radius)) - var(--border));margin-top:.25rem}.timeline-horizontal{flex-direction:row}.timeline-horizontal>li{align-items:center}.timeline-horizontal>li>hr{width:100%;height:.25rem}.timeline-horizontal>li>hr:first-child{grid-row-start:2;grid-column-start:1}.timeline-horizontal>li>hr:last-child{grid-area:2/3/auto/none}.timeline-horizontal .timeline-start{grid-area:1/1/2/4;place-self:flex-end center}.timeline-horizontal .timeline-end{grid-area:3/1/4/4;place-self:flex-start center}.timeline-horizontal:has(.timeline-middle)>li>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline-horizontal:has(.timeline-middle)>li>hr:last-child,.timeline-horizontal:not(:has(.timeline-middle)) :first-child>hr:last-child{border-start-start-radius:var(--radius-selector);border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:var(--radius-selector)}.timeline-horizontal:not(:has(.timeline-middle)) :last-child>hr:first-child{border-start-start-radius:0;border-start-end-radius:var(--radius-selector);border-end-end-radius:var(--radius-selector);border-end-start-radius:0}.timeline-vertical{flex-direction:column}.timeline-vertical>li{--timeline-row-start:minmax(0, 1fr);--timeline-row-end:minmax(0, 1fr);justify-items:center}.timeline-vertical>li>hr{width:.25rem;height:100%}.timeline-vertical>li>hr:first-child{grid-row-start:1;grid-column-start:2}.timeline-vertical>li>hr:last-child{grid-area:3/2/none}.timeline-vertical .timeline-start{grid-area:1/1/4/2;place-self:center flex-end}.timeline-vertical .timeline-end{grid-area:1/3/4/4;place-self:center flex-start}.timeline-vertical:has(.timeline-middle)>li>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.timeline-vertical:has(.timeline-middle)>li>hr:last-child,.timeline-vertical:not(:has(.timeline-middle)) :first-child>hr:last-child{border-top-left-radius:var(--radius-selector);border-top-right-radius:var(--radius-selector);border-bottom-right-radius:0;border-bottom-left-radius:0}.timeline-vertical:not(:has(.timeline-middle)) :last-child>hr:first-child{border-top-left-radius:0;border-top-right-radius:0;border-bottom-right-radius:var(--radius-selector);border-bottom-left-radius:var(--radius-selector)}.timeline-vertical.timeline-snap-icon>li{--timeline-col-start:minmax(0, 1fr);--timeline-row-start:.5rem}.timeline-compact{--timeline-row-start:0}.timeline-compact .timeline-start{grid-area:3/1/4/4;place-self:flex-start center}.timeline-compact li:has(.timeline-start) .timeline-end{grid-row-start:auto;grid-column-start:none}.timeline-compact.timeline-vertical>li{--timeline-col-start:0}.timeline-compact.timeline-vertical .timeline-start{grid-area:1/3/4/4;place-self:center flex-start}.timeline-compact.timeline-vertical li:has(.timeline-start) .timeline-end{grid-row-start:none;grid-column-start:auto}.input-lg{--size:calc(var(--size-field,.25rem) * 12);font-size:max(var(--font-size,1.125rem), 1.125rem)}.input-lg[type=number]::-webkit-inner-spin-button{margin-block:-.75rem;margin-inline-end:-.75rem}.input-sm{--size:calc(var(--size-field,.25rem) * 8);font-size:max(var(--font-size,.75rem), .75rem)}.input-sm[type=number]::-webkit-inner-spin-button{margin-block:-.5rem;margin-inline-end:-.75rem}.input-xs{--size:calc(var(--size-field,.25rem) * 6);font-size:max(var(--font-size,.6875rem), .6875rem)}.input-xs[type=number]::-webkit-inner-spin-button{margin-block:-.25rem;margin-inline-end:-.75rem}.modal-bottom{place-items:end}.modal-bottom .modal-box{--modal-tl:var(--radius-box);--modal-tr:var(--radius-box);--modal-bl:0;--modal-br:0;width:100%;max-width:none;height:auto;max-height:calc(100vh - 5em);translate:0 100%;scale:1}.btn-circle{width:var(--size);height:var(--size);border-radius:3.40282e38px;padding-inline:0}.btn-block{width:100%}.swap-rotate .swap-on,.swap-rotate input:indeterminate~.swap-on{rotate:45deg}.swap-rotate input:is(:checked,:indeterminate)~.swap-on,.swap-rotate.swap-active .swap-on{rotate:0deg}.swap-rotate input:is(:checked,:indeterminate)~.swap-off,.swap-rotate.swap-active .swap-off{rotate:-45deg}.stats-horizontal{grid-auto-flow:column;overflow-x:auto}.stats-horizontal .stat:not(:last-child){border-inline-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab, red, red)){.stats-horizontal .stat:not(:last-child){border-inline-end:var(--border) dashed color-mix(in oklab, currentColor 10%, #0000)}}.stats-horizontal .stat:not(:last-child){border-block-end:none}.stats-vertical{grid-auto-flow:row;overflow-y:auto}.stats-vertical .stat:not(:last-child){border-inline-end:none;border-block-end:var(--border) dashed currentColor}@supports (color:color-mix(in lab, red, red)){.stats-vertical .stat:not(:last-child){border-block-end:var(--border) dashed color-mix(in oklab, currentColor 10%, #0000)}}.badge-dash{color:var(--badge-color);--badge-bg:#0000;background-image:none;border-style:dashed;border-color:currentColor}.badge-ghost{border-color:var(--color-base-200);background-color:var(--color-base-200);color:var(--color-base-content);background-image:none}.table-zebra tbody tr:where(:nth-child(2n)),.table-zebra tbody tr:where(:nth-child(2n)) :where(.table-pin-cols tr th){background-color:var(--color-base-200)}@media (hover:hover){:is(.table-zebra tbody tr.row-hover,.table-zebra tbody tr.row-hover:where(:nth-child(2n))):hover{background-color:var(--color-base-300)}}.skeleton-text{webkit-background-clip:text;color:#0000;-webkit-background-clip:text;background-clip:text;background-image:linear-gradient(105deg, var(--color-base-content) 0% 40%, var(--color-base-content) 50%, var(--color-base-content) 60% 100%)}@supports (color:color-mix(in lab, red, red)){.skeleton-text{background-image:linear-gradient(105deg, color-mix(in oklab, var(--color-base-content) 20%, transparent) 0% 40%, var(--color-base-content) 50%, color-mix(in oklab, var(--color-base-content) 20%, transparent) 60% 100%)}}.loading-spinner{-webkit-mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg width='24' height='24' stroke='black' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg transform-origin='center'%3E%3Ccircle cx='12' cy='12' r='9.5' fill='none' stroke-width='3' stroke-linecap='round'%3E%3CanimateTransform attributeName='transform' type='rotate' from='0 12 12' to='360 12 12' dur='2s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dasharray' values='0,150;42,150;42,150' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3Canimate attributeName='stroke-dashoffset' values='0;-16;-59' keyTimes='0;0.475;1' dur='1.5s' repeatCount='indefinite'/%3E%3C/circle%3E%3C/g%3E%3C/svg%3E")}.mask-circle{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='200' height='200' xmlns='http://www.w3.org/2000/svg'%3e%3ccircle fill='black' cx='100' cy='100' r='100' fill-rule='evenodd'/%3e%3c/svg%3e")}.mask-heart{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='200' height='185' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 184.606a15.384 15.384 0 0 1-8.653-2.678C53.565 156.28 37.205 138.695 28.182 127.7 8.952 104.264-.254 80.202.005 54.146.308 24.287 24.264 0 53.406 0c21.192 0 35.869 11.937 44.416 21.879a2.884 2.884 0 0 0 4.356 0C110.725 11.927 125.402 0 146.594 0c29.142 0 53.098 24.287 53.4 54.151.26 26.061-8.956 50.122-28.176 73.554-9.023 10.994-25.383 28.58-63.165 54.228a15.384 15.384 0 0 1-8.653 2.673Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='200' height='185' xmlns='http://www.w3.org/2000/svg'%3e%3cpath d='M100 184.606a15.384 15.384 0 0 1-8.653-2.678C53.565 156.28 37.205 138.695 28.182 127.7 8.952 104.264-.254 80.202.005 54.146.308 24.287 24.264 0 53.406 0c21.192 0 35.869 11.937 44.416 21.879a2.884 2.884 0 0 0 4.356 0C110.725 11.927 125.402 0 146.594 0c29.142 0 53.098 24.287 53.4 54.151.26 26.061-8.956 50.122-28.176 73.554-9.023 10.994-25.383 28.58-63.165 54.228a15.384 15.384 0 0 1-8.653 2.673Z' fill='black' fill-rule='nonzero'/%3e%3c/svg%3e")}.mask-star{-webkit-mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 137.263-58.779 42.024 22.163-68.389L.894 68.481l72.476-.243L96 0l22.63 68.238 72.476.243-58.49 42.417 22.163 68.389z' fill-rule='evenodd'/%3e%3c/svg%3e");mask-image:url("data:image/svg+xml,%3csvg width='192' height='180' xmlns='http://www.w3.org/2000/svg'%3e%3cpath fill='black' d='m96 137.263-58.779 42.024 22.163-68.389L.894 68.481l72.476-.243L96 0l22.63 68.238 72.476.243-58.49 42.417 22.163 68.389z' fill-rule='evenodd'/%3e%3c/svg%3e")}.checkbox-lg{--size:calc(var(--size-selector,.25rem) * 7);padding:.3125rem}.radio-lg{padding:.3125rem}.radio-lg[type=radio]{--size:calc(var(--size-selector,.25rem) * 7)}.select-lg{--size:calc(var(--size-field,.25rem) * 12);font-size:1.125rem}.select-lg option{padding-block:.375rem;padding-inline:1rem}.table-lg :not(thead,tfoot) tr{font-size:1.125rem}.table-lg :where(th,td){padding-block:1rem;padding-inline:1.25rem}.badge-lg{--size:calc(var(--size-selector,.25rem) * 7);font-size:1rem}.alert-error{color:var(--color-error-content);--alert-border-color:var(--color-error);--alert-color:var(--color-error)}.alert-info{color:var(--color-info-content);--alert-border-color:var(--color-info);--alert-color:var(--color-info)}.alert-success{color:var(--color-success-content);--alert-border-color:var(--color-success);--alert-color:var(--color-success)}.alert-warning{color:var(--color-warning-content);--alert-border-color:var(--color-warning);--alert-color:var(--color-warning)}.checkbox-accent{color:var(--color-accent-content);--input-color:var(--color-accent)}.checkbox-error{color:var(--color-error-content);--input-color:var(--color-error)}.range-accent{color:var(--color-accent);--range-thumb:var(--color-accent-content)}.range-error{color:var(--color-error);--range-thumb:var(--color-error-content)}.tooltip-accent{--tt-bg:var(--color-accent)}.tooltip-accent>.tooltip-content,.tooltip-accent[data-tip]:before{color:var(--color-accent-content)}.tooltip-error{--tt-bg:var(--color-error)}.tooltip-error>.tooltip-content,.tooltip-error[data-tip]:before{color:var(--color-error-content)}.swap-active .swap-off{opacity:0}.swap-active .swap-on{opacity:1}.btn-lg{--fontsize:1.125rem;--btn-p:1.25rem;--size:calc(var(--size-field,.25rem) * 12)}.btn-md{--fontsize:.875rem;--btn-p:1rem;--size:calc(var(--size-field,.25rem) * 10)}.btn-sm{--fontsize:.75rem;--btn-p:.75rem;--size:calc(var(--size-field,.25rem) * 8)}.btn-xl{--fontsize:1.375rem;--btn-p:1.5rem;--size:calc(var(--size-field,.25rem) * 14)}.btn-xs{--fontsize:.6875rem;--btn-p:.5rem;--size:calc(var(--size-field,.25rem) * 6)}.badge-accent{--badge-color:var(--color-accent);--badge-fg:var(--color-accent-content)}.badge-error{--badge-color:var(--color-error);--badge-fg:var(--color-error-content)}.badge-primary{--badge-color:var(--color-primary);--badge-fg:var(--color-primary-content)}.input-error,.input-error:focus,.input-error:focus-within{--input-color:var(--color-error)}.input-secondary,.input-secondary:focus,.input-secondary:focus-within{--input-color:var(--color-secondary)}.radio-accent{--input-color:var(--color-accent)}.radio-error{--input-color:var(--color-error)}.range-lg{--range-thumb-size:calc(var(--size-selector,.25rem) * 7)}.range-xs{--range-thumb-size:calc(var(--size-selector,.25rem) * 4)}.select-error,.select-error:focus,.select-error:focus-within{--input-color:var(--color-error)}.select-secondary,.select-secondary:focus,.select-secondary:focus-within{--input-color:var(--color-secondary)}.toggle-accent:checked,.toggle-accent[aria-checked=true]{--input-color:var(--color-accent)}.toggle-lg[type=checkbox],.toggle-lg:has([type=checkbox]){--size:calc(var(--size-selector,.25rem) * 7)}}.prose :where(a.btn:not(.btn-link)):not(:where([class~=not-prose],[class~=not-prose] *)){text-decoration-line:none}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.collapse:not(td,tr,colgroup){visibility:revert-layer}.validator:user-invalid~.validator-hint{display:revert-layer}.validator:has(:user-invalid)~.validator-hint{display:revert-layer}:is(.validator[aria-invalid]:not([aria-invalid=false]),.validator:has([aria-invalid]:not([aria-invalid=false])))~.validator-hint{display:revert-layer}.collapse{visibility:collapse}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.inset-y-0{inset-block:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-10{top:calc(var(--spacing) * 10)}.top-full{top:100%}.right-0{right:calc(var(--spacing) * 0)}.right-1\/4{right:25%}.right-3{right:calc(var(--spacing) * 3)}.right-6{right:calc(var(--spacing) * 6)}.-bottom-5{bottom:calc(var(--spacing) * -5)}.bottom-6{bottom:calc(var(--spacing) * 6)}.bottom-10{bottom:calc(var(--spacing) * 10)}.left-0{left:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.left-1\/4{left:25%}.left-3{left:calc(var(--spacing) * 3)}.left-6{left:calc(var(--spacing) * 6)}.-z-0{z-index:calc(0 * -1)}.z-1{z-index:1}.z-10{z-index:10}.z-20{z-index:20}.z-50,.z-\[50\]{z-index:50}.z-\[90\]{z-index:90}.z-\[100\]{z-index:100}.z-\[110\]{z-index:110}.z-\[9999\]{z-index:9999}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.m-1{margin:calc(var(--spacing) * 1)}.mx-1{margin-inline:calc(var(--spacing) * 1)}.mx-auto{margin-inline:auto}.my-16{margin-block:calc(var(--spacing) * 16)}.-mt-10{margin-top:calc(var(--spacing) * -10)}.mt-0{margin-top:calc(var(--spacing) * 0)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.icon-\[lucide--alert-circle\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 8v4m0 4h.01'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--alert-triangle\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m21.73 18l-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3M12 9v4m0 4h.01'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--align-center\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M17 12H7m12 6H5M21 6H3'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--align-left\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 12H3m14 6H3M21 6H3'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--align-right\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 12H9m12 6H7M21 6H3'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--bold\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 12h9a4 4 0 0 1 0 8H7a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1h7a4 4 0 0 1 0 8'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--calendar\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M8 2v4m8-4v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--check-circle\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M21.801 10A10 10 0 1 1 17 3.335'/%3E%3Cpath d='m9 11l3 3L22 4'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--check\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M20 6L9 17l-5-5'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--chevron-left\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m15 18l-6-6l6-6'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--chevron-right\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m9 18l6-6l-6-6'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--chevrons-left\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m11 17l-5-5l5-5m7 10l-5-5l5-5'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--chevrons-right\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m6 17l5-5l-5-5m7 10l5-5l-5-5'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--clock\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 6v6l4 2'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--code-2\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m18 16l4-4l-4-4M6 8l-4 4l4 4m8.5-12l-5 16'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--eraser\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 21H8a2 2 0 0 1-1.42-.587l-3.994-3.999a2 2 0 0 1 0-2.828l10-10a2 2 0 0 1 2.829 0l5.999 6a2 2 0 0 1 0 2.828L12.834 21m-7.752-9.91l8.828 8.828'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--eye-off\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575a1 1 0 0 1 0 .696a10.8 10.8 0 0 1-1.444 2.49m-6.41-.679a3 3 0 0 1-4.242-4.242'/%3E%3Cpath d='M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 4.446-5.143M2 2l20 20'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--eye\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M2.062 12.348a1 1 0 0 1 0-.696a10.75 10.75 0 0 1 19.876 0a1 1 0 0 1 0 .696a10.75 10.75 0 0 1-19.876 0'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--hash\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 9h16M4 15h16M10 3L8 21m8-18l-2 18'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--indent-decrease\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 12H11m10 6H11M21 6H11M7 8l-4 4l4 4'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--indent-increase\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M21 12H11m10 6H11M21 6H11M3 8l4 4l-4 4'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--info\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M12 16v-4m0-4h.01'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--italic\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 4h-9m4 16H5M15 4L9 20'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--link\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--list-ordered\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M11 5h10m-10 7h10m-10 7h10M4 4h1v5M4 9h2m.5 11H3.4c0-1 2.6-1.925 2.6-3.5a1.5 1.5 0 0 0-2.6-1.02'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--list\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M3 5h.01M3 12h.01M3 19h.01M8 5h13M8 12h13M8 19h13'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--lock\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Crect width='18' height='11' x='3' y='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--mail\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m22 7l-8.991 5.727a2 2 0 0 1-2.009 0L2 7'/%3E%3Crect width='20' height='16' x='2' y='4' rx='2'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--paperclip\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m16 6l-8.414 8.586a2 2 0 0 0 2.829 2.829l8.414-8.586a4 4 0 1 0-5.657-5.657l-8.379 8.551a6 6 0 1 0 8.485 8.485l8.379-8.551'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--phone\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233a14 14 0 0 0 6.392 6.384'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--quote\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M16 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2a1 1 0 0 1 1 1v1a2 2 0 0 1-2 2a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1a6 6 0 0 0 6-6V5a2 2 0 0 0-2-2zM5 3a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2a1 1 0 0 1 1 1v1a2 2 0 0 1-2 2a1 1 0 0 0-1 1v2a1 1 0 0 0 1 1a6 6 0 0 0 6-6V5a2 2 0 0 0-2-2z'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--redo-2\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m15 14l5-5l-5-5'/%3E%3Cpath d='M20 9H9.5A5.5 5.5 0 0 0 4 14.5A5.5 5.5 0 0 0 9.5 20H13'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--search\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='m21 21l-4.34-4.34'/%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--smile\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpath d='M8 14s1.5 2 4 2s4-2 4-2M9 9h.01M15 9h.01'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--text\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M15 18H3M17 6H3m18 6H3'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--underline\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M6 4v6a6 6 0 0 0 12 0V4M4 20h16'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--undo-2\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M9 14L4 9l5-5'/%3E%3Cpath d='M4 9h10.5a5.5 5.5 0 0 1 5.5 5.5a5.5 5.5 0 0 1-5.5 5.5H11'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--upload\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M12 3v12m5-7l-5-5l-5 5m14 7v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--user\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cg fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2'%3E%3Cpath d='M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/g%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.icon-\[lucide--x\]{width:1em;height:1em;-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);-webkit-mask-image:var(--svg);mask-image:var(--svg);--svg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='none' stroke='black' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M18 6L6 18M6 6l12 12'/%3E%3C/svg%3E");background-color:currentColor;display:inline-block;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.kbd{box-shadow:none}.text-rotate{height:1lh}.alert{border-width:var(--border);border-color:var(--alert-border-color,var(--color-base-200))}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.table{display:table}.aspect-square{aspect-ratio:1}.size-5{width:calc(var(--spacing) * 5);height:calc(var(--spacing) * 5)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-12{height:calc(var(--spacing) * 12)}.h-20{height:calc(var(--spacing) * 20)}.h-48{height:calc(var(--spacing) * 48)}.h-96{height:calc(var(--spacing) * 96)}.h-auto{height:auto}.h-full{height:100%}.max-h-60{max-height:calc(var(--spacing) * 60)}.min-h-0{min-height:calc(var(--spacing) * 0)}.min-h-\[22rem\]{min-height:22rem}.min-h-full{min-height:100%}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-10{width:calc(var(--spacing) * 10)}.w-32{width:calc(var(--spacing) * 32)}.w-40{width:calc(var(--spacing) * 40)}.w-48{width:calc(var(--spacing) * 48)}.w-52{width:calc(var(--spacing) * 52)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-fit{width:fit-content}.w-full{width:100%}.w-px{width:1px}.w-xs{width:var(--container-xs)}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-6xl{max-width:var(--container-6xl)}.max-w-\[200px\]{max-width:200px}.max-w-md{max-width:var(--container-md)}.min-w-\[48px\]{min-width:48px}.flex-1{flex:1}.flex-none{flex:none}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing) * 0);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-10{--tw-translate-x:calc(var(--spacing) * 10);translate:var(--tw-translate-x) var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x) var(--tw-translate-y)}.scale-110{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.animate-pulse{animation:var(--animate-pulse)}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-7{grid-template-columns:repeat(7,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-nowrap{flex-wrap:nowrap}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-start{justify-content:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-8{gap:calc(var(--spacing) * 8)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-box{border-radius:var(--radius-box);border-radius:var(--radius-box)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--radius-sm)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}@layer daisyui.l1{.alert-dash{color:var(--alert-color);box-shadow:none;background-color:#0000;background-image:none;border-style:dashed}.alert-soft{color:var(--alert-color,var(--color-base-content));background:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.alert-soft{background:color-mix(in oklab, var(--alert-color,var(--color-base-content)) 8%, var(--color-base-100))}}.alert-soft{--alert-border-color:var(--alert-color,var(--color-base-content))}@supports (color:color-mix(in lab, red, red)){.alert-soft{--alert-border-color:color-mix(in oklab, var(--alert-color,var(--color-base-content)) 10%, var(--color-base-100))}}.alert-soft{box-shadow:none;background-image:none}.btn-link{--btn-border:#0000;--btn-bg:#0000;--btn-noise:none;--btn-shadow:"";outline-color:currentColor;text-decoration-line:underline}.btn-link:not(.btn-disabled,.btn:disabled,.btn[disabled]){--btn-fg:var(--btn-color,var(--color-primary))}.btn-link:is(.btn-active,:hover,:active:focus,:focus-visible){--btn-border:#0000;--btn-bg:#0000}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)){--btn-shadow:"";--btn-bg:#0000;--btn-border:#0000;--btn-noise:none}.btn-ghost:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn)):not(:disabled,[disabled],.btn-disabled){--btn-fg:var(--btn-color,currentColor);outline-color:currentColor}@media (hover:none){.btn-ghost:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color,currentColor);--btn-border:#0000;--btn-noise:none;outline-color:currentColor}}.btn-outline:not(.btn-active,:hover,:active:focus,:focus-visible,input:checked:not(.filter .btn),:disabled,[disabled],.btn-disabled){--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}@media (hover:none){.btn-outline:not(.btn-active,:active,:focus-visible,input:checked:not(.filter .btn)):hover{--btn-shadow:"";--btn-bg:#0000;--btn-fg:var(--btn-color);--btn-border:var(--btn-color);--btn-noise:none}}}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-base-200\/30{border-color:var(--color-base-200)}@supports (color:color-mix(in lab, red, red)){.border-base-200\/30{border-color:color-mix(in oklab, var(--color-base-200) 30%, transparent)}}.border-base-300{border-color:var(--color-base-300)}.border-base-content\/20{border-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.border-base-content\/20{border-color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.border-black\/5{border-color:#0000000d}@supports (color:color-mix(in lab, red, red)){.border-black\/5{border-color:color-mix(in oklab, var(--color-black) 5%, transparent)}}.border-black\/10{border-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.border-black\/10{border-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.border-primary{border-color:var(--color-primary)}.bg-base-100,.bg-base-100\/50{background-color:var(--color-base-100)}@supports (color:color-mix(in lab, red, red)){.bg-base-100\/50{background-color:color-mix(in oklab, var(--color-base-100) 50%, transparent)}}.bg-base-200,.bg-base-200\/30{background-color:var(--color-base-200)}@supports (color:color-mix(in lab, red, red)){.bg-base-200\/30{background-color:color-mix(in oklab, var(--color-base-200) 30%, transparent)}}.bg-base-200\/50{background-color:var(--color-base-200)}@supports (color:color-mix(in lab, red, red)){.bg-base-200\/50{background-color:color-mix(in oklab, var(--color-base-200) 50%, transparent)}}.bg-base-300{background-color:var(--color-base-300)}.bg-primary,.bg-primary\/10{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/10{background-color:color-mix(in oklab, var(--color-primary) 10%, transparent)}}.bg-primary\/20{background-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.bg-primary\/20{background-color:color-mix(in oklab, var(--color-primary) 20%, transparent)}}.bg-secondary{background-color:var(--color-secondary)}.bg-transparent{background-color:#0000}.bg-linear-to-r{--tw-gradient-position:to right}@supports (background-image:linear-gradient(in lab, red, red)){.bg-linear-to-r{--tw-gradient-position:to right in oklab}}.bg-linear-to-r{background-image:linear-gradient(var(--tw-gradient-stops))}.from-secondary{--tw-gradient-from:var(--color-secondary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.via-accent{--tw-gradient-via:var(--color-accent);--tw-gradient-via-stops:var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-via-stops)}.to-primary{--tw-gradient-to:var(--color-primary);--tw-gradient-stops:var(--tw-gradient-via-stops,var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.mask-circle{--tw-mask-radial-shape:circle}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.p-0{padding:calc(var(--spacing) * 0)}.p-1{padding:calc(var(--spacing) * 1)}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-10{padding-inline:calc(var(--spacing) * 10)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-10{padding-block:calc(var(--spacing) * 10)}.py-16{padding-block:calc(var(--spacing) * 16)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-10{padding-left:calc(var(--spacing) * 10)}.\!text-center{text-align:center!important}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-7xl{font-size:var(--text-7xl);line-height:var(--tw-leading,var(--text-7xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[9px\]{font-size:9px}.text-\[10px\]{font-size:10px}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-light{--tw-font-weight:var(--font-weight-light);font-weight:var(--font-weight-light)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-tighter{--tw-tracking:var(--tracking-tighter);letter-spacing:var(--tracking-tighter)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.text-balance{text-wrap:balance}.whitespace-nowrap{white-space:nowrap}.text-accent{color:var(--color-accent)}.text-base-content,.text-base-content\/60{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\/60{color:color-mix(in oklab, var(--color-base-content) 60%, transparent)}}.text-base-content\/90{color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.text-base-content\/90{color:color-mix(in oklab, var(--color-base-content) 90%, transparent)}}.text-error{color:var(--color-error)}.text-primary{color:var(--color-primary)}.text-primary-content{color:var(--color-primary-content)}.text-secondary{color:var(--color-secondary)}.text-secondary-content{color:var(--color-secondary-content)}.text-success{color:var(--color-success)}.text-transparent{color:#0000}.normal-case{text-transform:none}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-30{opacity:.3}.opacity-40{opacity:.4}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.opacity-100{opacity:1}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-inner{--tw-shadow:inset 0 2px 4px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-1{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-secondary\/20{--tw-shadow-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){.shadow-secondary\/20{--tw-shadow-color:color-mix(in oklab, color-mix(in oklab, var(--color-secondary) 20%, transparent) var(--tw-shadow-alpha), transparent)}}.ring-primary{--tw-ring-color:var(--color-primary)}.ring-offset-1{--tw-ring-offset-width:1px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow-2xl{--tw-drop-shadow-size:drop-shadow(0 25px 25px var(--tw-drop-shadow-color,#00000026));--tw-drop-shadow:drop-shadow(var(--drop-shadow-2xl));filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.ring-inset{--tw-ring-inset:inset}@media (hover:hover){.group-hover\:translate-x-1:is(:where(.group):hover *){--tw-translate-x:calc(var(--spacing) * 1);translate:var(--tw-translate-x) var(--tw-translate-y)}}.before\:z-50:before,.after\:z-50:after{content:var(--tw-content);z-index:50}@media (hover:hover){.hover\:z-10:hover{z-index:10}.hover\:scale-125:hover{--tw-scale-x:125%;--tw-scale-y:125%;--tw-scale-z:125%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-accent\/40:hover{border-color:var(--color-accent)}@supports (color:color-mix(in lab, red, red)){.hover\:border-accent\/40:hover{border-color:color-mix(in oklab, var(--color-accent) 40%, transparent)}}.hover\:border-base-content\/20:hover{border-color:var(--color-base-content)}@supports (color:color-mix(in lab, red, red)){.hover\:border-base-content\/20:hover{border-color:color-mix(in oklab, var(--color-base-content) 20%, transparent)}}.hover\:border-primary\/40:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/40:hover{border-color:color-mix(in oklab, var(--color-primary) 40%, transparent)}}.hover\:border-primary\/50:hover{border-color:var(--color-primary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-primary\/50:hover{border-color:color-mix(in oklab, var(--color-primary) 50%, transparent)}}.hover\:border-secondary\/40:hover{border-color:var(--color-secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:border-secondary\/40:hover{border-color:color-mix(in oklab, var(--color-secondary) 40%, transparent)}}.hover\:bg-base-200:hover{background-color:var(--color-base-200)}.hover\:bg-base-300:hover{background-color:var(--color-base-300)}.hover\:text-base-content:hover{color:var(--color-base-content)}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-100:hover{opacity:1}}.active\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x) var(--tw-scale-y)}@media (min-width:48rem){.md\:h-64{height:calc(var(--spacing) * 64)}.md\:w-64{width:calc(var(--spacing) * 64)}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.md\:text-9xl{font-size:var(--text-9xl);line-height:var(--tw-leading,var(--text-9xl--line-height))}}@media (min-width:64rem){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (hover:hover){.\[\&_\.resizable-img-container\]\:hover\:border-primary .resizable-img-container:hover{border-color:var(--color-primary)}}.\[\&_blockquote\]\:border-l-4 blockquote{border-left-style:var(--tw-border-style);border-left-width:4px}.\[\&_blockquote\]\:border-base-300 blockquote{border-color:var(--color-base-300)}.\[\&_blockquote\]\:pl-4 blockquote{padding-left:calc(var(--spacing) * 4)}.\[\&_blockquote\]\:italic blockquote{font-style:italic}.\[\&_ol\]\:list-decimal ol{list-style-type:decimal}.\[\&_ol\]\:pl-8 ol{padding-left:calc(var(--spacing) * 8)}.\[\&_ul\]\:list-disc ul{list-style-type:disc}.\[\&_ul\]\:pl-8 ul{padding-left:calc(var(--spacing) * 8)}.\[\&\>div\]\:m-0>div{margin:calc(var(--spacing) * 0)}.\[\&\>div\]\:min-h-\[1em\]>div{min-height:1em}.\[\&\>p\]\:m-0>p{margin:calc(var(--spacing) * 0)}@keyframes fade-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.animate-fade-in{animation:.15s ease-out forwards fade-in}}:root{font-size:14px}.input,.label,.select,.textarea{transition:all .3s cubic-bezier(.4,0,.2,1)}:is(.input,.label,.select,.textarea):focus,:is(.input,.label,.select,.textarea):focus-within{box-shadow:0 0 4px;outline:none!important}:is(.input,.label,.select,.textarea):hover:not(:focus){background-color:oklch(from var(--color-base-100) calc(l - .03) c h)}.floating-label span{color:oklch(30% .01 260);font-size:1.1rem;transition:all .2s}.floating-label:focus-within span{color:oklch(25% .02 260);font-size:1.1rem}.floating-label:has(input:not(:placeholder-shown)) span{color:oklch(28% .01 260);font-size:1.1rem}.tab-content-inner{transform-origin:top;animation:.3s cubic-bezier(.4,0,.2,1) tabFadeIn}.input-container{flex-direction:column;width:100%;display:flex;position:relative}.input-container .input{align-items:center;width:100%;display:flex}.input-content{z-index:50;background:oklch(var(--b1));border:1px solid oklch(var(--bc) / .2);border-radius:var(--rounded-box,1rem);margin-top:.25rem;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a}.input-content .menu{width:100%}@keyframes tabFadeIn{0%{opacity:0;transform:scaleY(.95)}to{opacity:1;transform:scaleY(1)}}@keyframes rating{0%,40%{filter:brightness(1.05)contrast(1.05);scale:1.1}}@keyframes dropdown{0%{opacity:0}}@keyframes radio{0%{padding:5px}50%{padding:3px}}@keyframes toast{0%{opacity:0;scale:.9}to{opacity:1;scale:1}}@keyframes rotator{89.9999%,to{--first-item-position:0 0%}90%,99.9999%{--first-item-position:0 calc(var(--items) * 100%)}to{translate:0 -100%}}@keyframes skeleton{0%{background-position:150%}to{background-position:-50%}}@keyframes menu{0%{opacity:0}}@keyframes progress{50%{background-position-x:-115%}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-gradient-position{syntax:"*";inherits:false}@property --tw-gradient-from{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-via{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-to{syntax:"";inherits:false;initial-value:#0000}@property --tw-gradient-stops{syntax:"*";inherits:false}@property --tw-gradient-via-stops{syntax:"*";inherits:false}@property --tw-gradient-from-position{syntax:"";inherits:false;initial-value:0%}@property --tw-gradient-via-position{syntax:"";inherits:false;initial-value:50%}@property --tw-gradient-to-position{syntax:"";inherits:false;initial-value:100%}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes pulse{50%{opacity:.5}}
\ No newline at end of file
diff --git a/dist/sigpro-ui.min.js b/dist/sigpro-ui.min.js
index e7af0b9..eb20da9 100644
--- a/dist/sigpro-ui.min.js
+++ b/dist/sigpro-ui.min.js
@@ -1 +1,7 @@
-(()=>{var{defineProperty:F,getOwnPropertyNames:An,getOwnPropertyDescriptor:jn}=Object,Wn=Object.prototype.hasOwnProperty;function mn(n){return this[n]}var zn=(n)=>{var r=(sn??=new WeakMap).get(n),e;if(r)return r;if(r=F({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function"){for(var s of An(n))if(!Wn.call(r,s))F(r,s,{get:mn.bind(n,s),enumerable:!(e=jn(n,s))||e.enumerable})}return sn.set(n,r),r},sn;var Jn=(n)=>n;function Pn(n,r){this[n]=Jn.bind(null,r)}var M=(n,r)=>{for(var e in r)F(n,e,{get:r[e],enumerable:!0,configurable:!0,set:Pn.bind(r,e)})};var Bt={};M(Bt,{Utils:()=>Cn,Components:()=>xn});var on={};M(on,{listKey:()=>yn,isFn:()=>S,getBy:()=>j,get:()=>N,filterBy:()=>_n,cls:()=>c,Tooltip:()=>xt,Toggle:()=>kt,Toast:()=>Rt,Timeline:()=>St,Textarea:()=>gt,TextRotate:()=>Nt,Tabs:()=>Tt,Table:()=>Lt,Swap:()=>dt,Steps:()=>wt,Step:()=>Et,Stack:()=>yt,SkeletonText:()=>_t,Skeleton:()=>ct,Select:()=>Wt,Rating:()=>$t,Range:()=>it,Radio:()=>bt,Radial:()=>ut,Progress:()=>ft,Navbar:()=>at,Modal:()=>Ut,Menu:()=>En,Loading:()=>st,Kbd:()=>lt,Input:()=>dn,Indicator:()=>et,Icon:()=>ot,Fileinput:()=>Pt,Fieldset:()=>rt,Fab:()=>tt,Dropdown:()=>jt,Drawer:()=>At,Divider:()=>nt,Datepicker:()=>Jt,Colorpicker:()=>zt,Checkbox:()=>pn,ChatImage:()=>hn,ChatHeader:()=>Mn,ChatFooter:()=>Fn,ChatBubble:()=>vn,Chat:()=>Dn,CarouselItem:()=>Hn,Carousel:()=>On,CardTitle:()=>Yn,CardBody:()=>In,CardActions:()=>Vn,Card:()=>Zn,Calendar:()=>gn,Button:()=>wn,Badge:()=>Xn,Autocomplete:()=>mt,Alert:()=>Gn,Accordion:()=>Ct});var A=(n)=>typeof n==="function",nn=(n)=>n&&typeof n==="object",q=Array.isArray,W=typeof document<"u"?document:null,an=(n)=>n?._isRuntime?n.container:n instanceof Node?n:W.createTextNode(n==null?"":String(n)),k=null,L=null,G=!1,Z=0,Y=new Set,fn=new WeakMap,h=Symbol("iter"),p=new WeakMap,R=(n)=>{if(!n||n._disposed)return;n._disposed=!0;let r=[n];while(r.length){let e=r.pop();if(e._cleanups)e._cleanups.forEach((s)=>s()),e._cleanups.clear();if(e._children)e._children.forEach((s)=>r.push(s)),e._children.clear();if(e._deps)e._deps.forEach((s)=>s.delete(e)),e._deps.clear()}},Q=(n)=>{if(L)(L._cleanups||=new Set).add(n)},Rn=(n)=>{let r=k;k=null;try{return n()}finally{k=r}},X=(n,r=!1)=>{let e=()=>{if(e._disposed)return;if(e._deps)e._deps.forEach((l)=>l.delete(e));if(e._cleanups)e._cleanups.forEach((l)=>l()),e._cleanups.clear();let s=k,f=L;k=L=e;try{return e._result=n()}catch(l){console.error("[SigPro]",l)}finally{k=s,L=f}};if(e._deps=e._cleanups=e._children=null,e._disposed=!1,e._isComputed=r,e._depth=k?k._depth+1:0,e._mounts=[],e._parent=L,L)(L._children||=new Set).add(e);return e},bn=()=>{if(G)return;G=!0;let n=Array.from(Y).sort((r,e)=>r._depth-e._depth);Y.clear();for(let r of n)if(!r._disposed)r();G=!1},Un=(n)=>{Z++;try{return n()}finally{if(Z--,Z===0&&Y.size>0&&!G)bn()}},$=(n,r=!1)=>{if(!r&&k&&!k._disposed)n.add(k),(k._deps||=new Set).add(n);else if(r&&n.size>0){let e=!1;for(let s of n){if(s===k||s._disposed)continue;if(s._isComputed){if(s._dirty=!0,s._subs)$(s._subs,!0)}else Y.add(s),e=!0}if(e&&!G&&Z===0)queueMicrotask(bn)}},d=(n,r=null)=>{let e=new Set;if(A(n)){let s,f=()=>{if(f._dirty){let l=k;k=f;try{let o=n();if(!Object.is(s,o))s=o,$(e,!0)}finally{k=l}f._dirty=!1}return $(e),s};if(f._isComputed=!0,f._subs=e,f._dirty=!0,f._deps=null,f._disposed=!1,f.stop=()=>{},L)Q(f.stop);return f}if(r)try{n=JSON.parse(localStorage.getItem(r))??n}catch(s){}return(...s)=>{if(s.length){let f=A(s[0])?s[0](n):s[0];if(!Object.is(n,f)){if(n=f,r)localStorage.setItem(r,JSON.stringify(n));$(e,!0)}}return $(e),n}},cn=(n)=>{if(!nn(n))return n;let r=fn.get(n);if(r)return r;let e=new Map,s=(l)=>{let o=e.get(l);if(!o)e.set(l,o=new Set);return o},f=new Proxy(n,{get(l,o,a){if(typeof o!=="symbol")$(s(o));return cn(Reflect.get(l,o,a))},set(l,o,a,u){let i=Reflect.has(l,o),b=Reflect.get(l,o,u),_=Reflect.set(l,o,a,u);if(_&&!Object.is(b,a)){if($(s(o),!0),!i)$(s(h),!0)}return _},deleteProperty(l,o){let a=Reflect.deleteProperty(l,o);if(a)$(s(o),!0),$(s(h),!0);return a},ownKeys(l){return $(s(h)),Reflect.ownKeys(l)}});return fn.set(n,f),f},J=(n,r)=>{if(r===void 0){let s=X(n);return s(),()=>R(s)}let e=X(()=>{let s=Array.isArray(n)?n.map((f)=>f()):n();Rn(()=>r(s))});return e(),()=>R(e)},tn=(n)=>{if(!n)return;if(n._cleanups)n._cleanups.forEach((r)=>r()),n._cleanups.clear();if(n._ownerEffect)R(n._ownerEffect);if(n.childNodes)n.childNodes.forEach((r)=>tn(r))},qn=/^\s*(javascript|data|vbscript):/i,Qn=(n)=>n==="src"||n==="href"||n.startsWith("on"),un=(n,r)=>{if(r==null||r===!1)return null;if(Qn(n)){let e=String(r);if(qn.test(e))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${n}`),"#"}return r},t=(n,r={},e=[])=>{if(r instanceof Node||q(r)||!nn(r))e=r,r={};if(A(n)){let o=X(()=>{let b=n(r,{children:e,emit:(_,...w)=>r[`on${_[0].toUpperCase()}${_.slice(1)}`]?.(...w)});return o._result=b,b});o();let a=o._result;if(a==null)return null;let u=a instanceof Node||q(a)&&a.every((b)=>b instanceof Node)?a:W.createTextNode(String(a)),i=(b)=>{if(nn(b)&&!b._isRuntime)b._mounts=o._mounts||[],b._cleanups=o._cleanups||new Set,b._ownerEffect=o};return q(u)?u.forEach(i):i(u),u}let s=/^(svg|path|circle|rect|line|poly(line|gon)|g|defs|text(path)?|tspan|use|symbol|image|marker|ellipse)$/i.test(n),f=s?W.createElementNS("http://www.w3.org/2000/svg",n):W.createElement(n);f._cleanups=new Set;for(let o in r){if(!r.hasOwnProperty(o))continue;let a=r[o];if(o==="ref"){A(a)?a(f):a.current=f;continue}if(s&&o.startsWith("xlink:")){a==null?f.removeAttributeNS("http://www.w3.org/1999/xlink",o.slice(6)):f.setAttributeNS("http://www.w3.org/1999/xlink",o.slice(6),a);continue}if(o.startsWith("on")){let u=o.slice(2).toLowerCase();f.addEventListener(u,a);let i=()=>f.removeEventListener(u,a);f._cleanups.add(i),Q(i)}else if(A(a)){let u=X(()=>{let i=un(o,a());if(o==="class")f.className=i||"";else if(i==null)f.removeAttribute(o);else if(o in f&&!s)f[o]=i;else f.setAttribute(o,i===!0?"":i)});if(u(),f._cleanups.add(()=>R(u)),Q(()=>R(u)),/^(INPUT|TEXTAREA|SELECT)$/.test(f.tagName)&&(o==="value"||o==="checked")){let i=o==="checked"?"change":"input";f.addEventListener(i,(b)=>a(b.target[o]))}}else{let u=un(o,a);if(u!=null)if(o in f&&!s)f[o]=u;else f.setAttribute(o,u===!0?"":u)}}let l=(o)=>{if(q(o))return o.forEach(l);if(A(o)){let a=W.createTextNode("");f.appendChild(a);let u=[],i=X(()=>{let b=o(),_=(q(b)?b:[b]).map(an);u.forEach((E)=>{if(E._isRuntime)E.destroy();else tn(E);if(E.parentNode)E.remove()});let w=a;for(let E=_.length-1;E>=0;E--){let y=_[E];if(y.parentNode!==w.parentNode)w.parentNode?.insertBefore(y,w);if(y._mounts)y._mounts.forEach((g)=>g());w=y}u=_});i(),f._cleanups.add(()=>R(i)),Q(()=>R(i))}else{let a=an(o);if(f.appendChild(a),a._mounts)a._mounts.forEach((u)=>u())}};return l(e),f},I=(n)=>{let r=new Set,e=L,s=k,f=W.createElement("div");f.style.display="contents",f.setAttribute("role","presentation"),L={_cleanups:r},k=null;let l=(o)=>{if(!o)return;if(o._isRuntime)r.add(o.destroy),f.appendChild(o.container);else if(q(o))o.forEach(l);else f.appendChild(o instanceof Node?o:W.createTextNode(String(o==null?"":o)))};try{l(n({onCleanup:(o)=>r.add(o)}))}finally{L=e,k=s}return{_isRuntime:!0,container:f,destroy:()=>{r.forEach((o)=>o()),tn(f),f.remove()}}},U=(n,r,e=null)=>{let s=W.createTextNode(""),f=t("div",{style:"display:contents"},[s]),l=null;return J(()=>!!(A(n)?n():n),(o)=>{if(l)l.destroy(),l=null;let a=o?r:e;if(a)l=I(()=>A(a)?a():a),f.insertBefore(l.container,s)}),Q(()=>l?.destroy()),f},V=({name:n,duration:r=200,scale:e,slide:s,rotate:f,blur:l},o)=>{let a=typeof o==="function"?o():o;if(!(a instanceof Node))return a;if(n)return a.style.animation=`${n}-in ${r}ms`,a;let u=e||s||f||l,i=[e?"scale(0.95)":"",s?"translateY(-10px)":"",f?"rotate(-2deg)":""].filter(Boolean).join(" ");if(a.style.transition=`all ${r}ms ease`,a.style.opacity="0",u)a.style.transform=i;if(l)a.style.filter="blur(4px)";return requestAnimationFrame(()=>{if(a.style.opacity="1",u)a.style.transform="none";if(l)a.style.filter="none"}),a},m=(n,r,e)=>{let s=W.createTextNode(""),f=t("div",{style:"display:contents"},[s]),l=new Map;return J(()=>(A(n)?n():n)||[],(o)=>{let a=new Map,u=[],i=o||[];for(let _=0;_r(w,_));else l.delete(E);a.set(E,y),u.push(y)}l.forEach((_)=>_.destroy());let b=s;for(let _=u.length-1;_>=0;_--){let w=u[_].container;if(w.nextSibling!==b)f.insertBefore(w,b);b=w}l=a}),f},B=(n)=>{let r=()=>window.location.hash.slice(1)||"/",e=d(r()),s=()=>e(r());window.addEventListener("hashchange",s),Q(()=>window.removeEventListener("hashchange",s));let f=t("div",{class:"router-hook"}),l=null;return J([e],()=>{let o=e(),a=n.find((u)=>{let i=u.path.split("/").filter(Boolean),b=o.split("/").filter(Boolean);return i.length===b.length&&i.every((_,w)=>_[0]===":"||_===b[w])})||n.find((u)=>u.path==="*");if(a){l?.destroy();let u={};a.path.split("/").filter(Boolean).forEach((i,b)=>{if(i[0]===":")u[i.slice(1)]=o.split("/").filter(Boolean)[b]}),B.params(u),l=I(()=>A(a.component)?a.component(u):a.component),f.replaceChildren(l.container)}}),f};B.params=d({});B.to=(n)=>window.location.hash=n.replace(/^#?\/?/,"#/");B.back=()=>window.history.back();B.path=()=>window.location.hash.replace(/^#/,"")||"/";var Bn=({url:n,method:r="GET",headers:e={}})=>{let s=d(!1),f=d(null),l=d(null),o=null,a=null;return{run:async(u=null)=>{o?.abort(),clearTimeout(a),o=new AbortController,a=setTimeout(()=>o.abort(),1e4),s(!0),f(null);try{let i=u instanceof FormData,b=await fetch(n,{method:r,headers:i?e:{"Content-Type":"application/json",...e},body:i?u:u?JSON.stringify(u):void 0,signal:o.signal}),_=await b.text(),w=_?JSON.parse(_):null;if(!b.ok)throw Error(w?.message||b.statusText);return l(w),w}catch(i){if(i.name!=="AbortError")f(i.message);throw i}finally{s(!1),clearTimeout(a),o=null,a=null}},abort:()=>o?.abort(),loading:s,error:f,data:l}},rn=(n,r)=>{let e=typeof r==="string"?W.querySelector(r):r;if(!e)return;if(p.has(e))p.get(e).destroy();let s=I(A(n)?n:()=>n);return e.replaceChildren(s.container),p.set(e,s),s},Kn=Object.freeze({$:d,$$:cn,watch:J,h:t,when:U,each:m,fx:V,router:B,req:Bn,mount:rn,batch:Un});if(typeof window<"u")Object.assign(window,Kn),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((n)=>{window[n]=(r,e)=>t(n,r,e)});var N=(n)=>typeof n==="function"?n():n,j=(n,r="label")=>n&&typeof n==="object"?n[r]:n,c=(...n)=>n.filter(Boolean).join(" ").trim(),S=(n)=>typeof n==="function",_n=(n,r,e="label")=>{let s=String(r).toLowerCase(),f=N(n);return!s?f:f.filter((l)=>{let o=l&&typeof l==="object"?l[e]:l;return String(o).toLowerCase().includes(s)})},yn=(n,r)=>{let e=d(-1);return J(()=>{if(!N(r))e(-1)}),{cursor:e,onKey:(f,l)=>{let o=N(n),a=e(),u=o.length;if(!u)return;let i=f.key;i==="ArrowDown"?(f.preventDefault(),r(!0),e(Math.min(a+1,u-1))):i==="ArrowUp"?(f.preventDefault(),e(Math.max(a-1,0))):i==="Enter"?a>=0&&(f.preventDefault(),l(o[a])):i==="Escape"&&r(!1)}}},Gn=(n,r)=>t("div",{...n,class:c("alert",n.class)},r),Xn=(n,r)=>t("span",{...n,class:c("badge",n.class)},r),wn=(n,r)=>t("button",{...n,class:c("btn",n.class)},r),Zn=(n,r)=>t("div",{...n,class:c("card",n.class)},r),Yn=(n,r)=>t("div",{...n,class:c("card-title",n.class)},r),In=(n,r)=>t("div",{...n,class:c("card-body",n.class)},r),Vn=(n,r)=>t("div",{...n,class:c("card-actions",n.class)},r),On=(n,r)=>t("div",{...n,class:c("carousel",n.class)},r),Hn=(n,r)=>t("div",{...n,class:c("carousel-item",n.class)},r),Dn=(n,r)=>t("div",{...n,class:c("chat",n.class)},r),vn=(n,r)=>t("div",{...n,class:c("chat-bubble",n.class)},r),Fn=(n,r)=>t("div",{...n,class:c("chat-footer",n.class)},r),Mn=(n,r)=>t("div",{...n,class:c("chat-header",n.class)},r),hn=(n,r)=>t("div",{...n,class:c("chat-image avatar",n.class)},t("div",{class:"w-10 rounded-full"},typeof r==="string"?t("img",{src:r,alt:"avatar"}):r)),pn=(n)=>t("input",{...n,type:"checkbox",class:c("checkbox",n.class)}),nt=(n)=>t("div",{...n,class:c("divider",n.class)}),tt=(n,r)=>t("div",{...n,class:c("fab",n.class)},r),rt=(n,r)=>t("fieldset",{...n,class:c("fieldset",n.class)},[n.legend&&t("legend",{class:"fieldset-legend"},n.legend),r]),ot=(n)=>t("span",{class:n.startsWith("icon-")?n:""},n.startsWith("icon-")?null:n),et=(n,r)=>t("div",{...n,class:c("indicator",n.class)},[n.value&&t("span",{class:c("indicator-item badge",n.class)},n.value),r]),lt=(n,r)=>t("kbd",{...n,class:c("kbd",n.class)},r),st=(n,r)=>t("span",{...n,class:c("loading loading-spinner",n.class)},r),at=(n,r)=>t("div",{...n,class:c("navbar",n.class)},r),ft=(n)=>t("progress",{...n,class:c("progress",n.class)}),ut=(n,r)=>t("div",{...n,class:c("radial-progress",n.class),style:`--value:${n.value??0};${n.style??""}`,role:"progressbar","aria-valuenow":n.value??0},r??`${n.value??0}%`),bt=(n)=>t("input",{...n,type:"radio",class:c("radio",n.class)}),it=(n)=>t("input",{...n,type:"range",class:c("range",n.class)}),ct=(n)=>t("div",{...n,class:c("skeleton",n.class)}),_t=(n)=>t("span",{...n,class:c("skeleton skeleton-text",n.class)}),yt=(n,r)=>t("div",{...n,class:c("stack",n.class)},r),wt=(n,r)=>t("ul",{...n,class:c("steps",n.class)},r),Et=(n,r)=>t("li",{...n,class:c("step",n.class),"data-content":n.dataContent},r),dt=(n)=>t("label",{...n,class:c("swap",n.class)},[t("input",{type:"checkbox",checked:()=>N(n.value),onchange:(r)=>S(n.value)&&n.value(r.target.checked)}),t("div",{class:"swap-on"},n.on),t("div",{class:"swap-off"},n.off)]),gt=(n)=>t("textarea",{...n,class:c("textarea",n.class)}),Nt=(n)=>{let r=Array.isArray(n.words)?n.words:typeof n.words==="string"?n.words.split(","):[];return t("span",{...n,class:c("text-rotate",n.class)},t("span",{},r.map((e)=>t("span",{},e))))},St=(n,r)=>t("ul",{...n,class:c("timeline",n.vertical!==!1?"timeline-vertical":"timeline-horizontal",n.compact?"timeline-compact":"",n.class)},r),kt=(n)=>t("input",{...n,type:"checkbox",class:c("toggle",n.class)}),xt=(n,r)=>t("div",{...n,class:c("tooltip",n.class),"data-tip":n.tip},r),Ct=(n)=>{let r=n.name||`acc-${Math.random().toString(36).slice(2)}`,e=c("collapse",n.variant&&`collapse-${n.variant}`,n.class),s=(f)=>{let l=j(f,"title"),o=f.content;return n.type==="details"?t("details",{class:e,name:r,open:f.open||void 0},t("summary",{class:"collapse-title font-semibold"},l),o?t("div",{class:"collapse-content text-sm"},o):null):t("div",{class:e},t("input",{type:"radio",name:r,checked:f.open||void 0}),t("div",{class:"collapse-title font-semibold"},l),o?t("div",{class:"collapse-content text-sm"},o):null)};return S(n.items)?m(n.items,s,(f,l)=>f?.id??l):(n.items||[]).map(s)},Lt=(n)=>{if(n.children!==void 0)return t("table",{class:c("table",n.class),...n},n.children);let{items:r,columns:e=[],header:s=!0,keyFn:f,...l}=n,o=s!==!1&&e.some((u)=>u.label)?t("thead",{},t("tr",{},e.map((u)=>t("th",{class:u.class},u.label)))):null,a=t("tbody",{},m(()=>N(r)||[],(u,i)=>t("tr",{},e.map((b)=>{let _=b.render?b.render(u,i):u[b.key];return t("td",{class:b.class},_)})),f||((u,i)=>u?.id??i)));return t("table",{class:c("table",l.class),...l},[o,a])},Tt=(n)=>{if(n.children!==void 0)return t("div",{class:c("tabs",n.class),...n},n.children);let{items:r,activeIndex:e,onClose:s,...f}=n,l=s||(S(r)?(o)=>{let u=N(r).filter((i,b)=>b!==o);if(r(u),e()>=u.length)e(Math.max(0,u.length-1))}:null);return t("div",{class:c("tabs",n.class),...f},m(()=>N(r)||[],(o,a)=>{let u=()=>e()===a;return[t("a",{role:"tab",class:()=>`tab ${u()?"tab-active":""} ${o.class||""}`,onclick:(i)=>{i.preventDefault(),e(a),o.onclick?.(i)}},j(o),o.closable?t("span",{class:"icon-[lucide--x] w-3.5 h-3.5 ml-2 cursor-pointer hover:opacity-70",onclick:(i)=>{i.stopPropagation(),l?.(a)}}):null),t("div",{class:`tab-content ${o.contentClass||""}`,style:()=>`display: ${u()?"block":"none"};`},S(o.content)?o.content():o.content)]},(o,a)=>o.id??a))},$t=(n)=>{let r=`rating-${Math.random().toString(36).slice(2,7)}`,e=n.children??Array.from({length:n.count||5},(s,f)=>{let l=f+1;return t("input",{type:"radio",name:r,class:c("mask",n.mask||"mask-star"),checked:()=>N(n.value)===l,onchange:()=>S(n.value)?n.value(l):n.onchange?.(l)})});return t("div",{class:c("rating",n.class),...n},e)},En=(n)=>{if(n.children!==void 0)return t("ul",{class:c("menu",n.class),...n},n.children);let{items:r,keyFn:e=(l,o)=>l?.id??o,...s}=n,f=(l)=>l.children?t("li",{},t("details",{},t("summary",{},j(l)),t("ul",{},En({items:l.children})))):t("li",{},t("a",{href:l.href,onclick:l.onclick?(o)=>{if(!l.href)o.preventDefault();l.onclick(o)}:null},j(l)));return t("ul",{class:c("menu",s.class),...s},m(()=>N(r)||[],f,e))},At=(n,r)=>{let e=n.id||`drawer-${Math.random().toString(36).slice(2,9)}`;return t("div",{class:c("drawer",n.class)},[t("input",{id:e,type:"checkbox",class:"drawer-toggle",checked:()=>N(n.open),onchange:(s)=>S(n.open)&&n.open(s.target.checked)}),t("div",{class:"drawer-content"},r),t("div",{class:"drawer-side"},[t("label",{for:e,class:"drawer-overlay",onclick:()=>S(n.open)&&n.open(!1)}),t("div",{class:"min-h-full bg-base-200 w-80 p-4"},()=>N(n.side))])])},jt=(n,r)=>{let{trigger:e,items:s,...f}=n,l=r||(s?t("ul",{class:"menu dropdown-content bg-base-100 rounded-box z-[1] w-52 p-2 shadow"},m(()=>N(s)||[],(o)=>t("li",{},t("a",{onclick:(a)=>{o.onclick?.(a),a.currentTarget.closest("details").open=!1}},j(o))),(o,a)=>o.id??a)):null);return t("details",{class:c("dropdown",f.class),...f},[t("summary",{class:"btn m-1"},e||"Dropdown"),l])},Wt=(n,r)=>{if(r!==void 0)return t("select",{class:c("select",n.class),...n},r);let{label:e,float:s,placeholder:f,placeholderDisabled:l=!0,value:o,left:a,right:u,hint:i,items:b,keyFn:_,...w}=n,E=()=>{let y=N(b)||[];return[...f?[{disabled:l,label:f,value:""}]:[],...y]};return t("label",{class:s?"floating-label":""},[s&&t("span",{},e),t("label",{class:c("select",w.class)},[e&&!s&&t("span",{class:"label"},e),a??null,t("select",{value:()=>N(o),onchange:(y)=>S(o)?o(y.target.value):w.onchange?.(y)},m(E,(y)=>{let g=j(y,y.value!==void 0?"value":void 0),x=j(y,"label");return t("option",{value:g,disabled:y.disabled||void 0},x)},(y,g)=>y?.id??(typeof y==="string"?y:y.value)??g)),u??null]),i&&t("div",{class:"validator-hint"},i)])},mt=({items:n,value:r,onselect:e,placeholder:s="Buscar...",...f})=>{let l=d(N(r)||""),o=d(!1),a=d(()=>_n(n,l())),{cursor:u,onKey:i}=yn(a,o),b=(_)=>{let w=j(_),E=typeof _==="string"?_:_.value;if(l(w),S(r))r(E);e?.(_),o(!1)};return t("div",{class:"relative w-full"},[dn({...f,type:"text",placeholder:s,value:l,left:t("span",{class:"icon-[lucide--search]"}),oninput:(_)=>{if(l(_.target.value),S(r))r(_.target.value);o(!0)},onfocus:()=>o(!0),onblur:()=>setTimeout(()=>o(!1),150),onkeydown:(_)=>i(_,b)}),U(o,()=>V({duration:200,slide:!0},t("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 flex-col flex-nowrap"},[m(a,(_,w)=>t("li",{},[t("a",{class:()=>u()===w?"active bg-primary text-primary-content":"",onmousedown:(E)=>E.preventDefault(),onclick:()=>b(_),onmouseenter:()=>u(w)},j(_))]),(_,w)=>j(_)+w),()=>a().length===0?t("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null])))])},dn=(n)=>{let{label:r,icon:e,float:s,placeholder:f,value:l,left:o,right:a,rule:u,hint:i,content:b,..._}=n,w=d(!1),E=d(!1),y=n.type==="password",g=u??null,x=()=>y?N(w)?"text":"password":n.type||"text";return t("div",{class:"input-container",onfocusin:()=>E(!0),onfocusout:(C)=>{if(!C.currentTarget.contains(C.relatedTarget))E(!1)}},[t("label",{class:s?"floating-label":""},[s?t("span",{},r):null,t("label",{pattern:g,class:()=>c("input validator",n.class)},[r&&!s?t("span",{class:"label"},r):null,o??null,t("input",{..._,type:x,class:"grow",pattern:g,placeholder:f||r||" ",value:l}),a??null,y?t("label",{class:"swap swap-rotate ml-2"},[t("input",{type:"checkbox",onchange:(C)=>w(C.target.checked)}),t("span",{class:"swap-on icon-[lucide--eye]"}),t("span",{class:"swap-off icon-[lucide--eye-off]"})]):null]),i?t("div",{class:"validator-hint"},i):null,U(E,()=>V({duration:300,slide:!0},t("div",{class:"input-content",onmousedown:(C)=>C.preventDefault()},[S(b)?b(E):b])))])])},zt=(n)=>{let r=d(!1),e=()=>N(n.value)||"#000000",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"],f=(l)=>{S(n.value)?n.value(l):n.onchange?.(l),r(!1)};return t("div",{class:c("relative w-fit",n.class)},[t("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(),r(!r())}},[t("div",{class:"size-5 rounded-sm shadow-inner border border-black/10 shrink-0",style:()=>`background-color: ${e()}`}),n.label&&t("span",{class:"opacity-80"},n.label)]),U(r,()=>[t("div",{class:"fixed inset-0 z-[100]",onclick:()=>r(!1)}),t("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"},t("div",{class:"grid grid-cols-8 gap-1"},s.map((l)=>t("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 p-0 min-h-0 ${e().toLowerCase()===l.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>f(l)}))))])])},gn=(n)=>{let r=d(new Date),e=d(null),s=d(0),f=d(0),l=new Date,o=`${l.getFullYear()}-${String(l.getMonth()+1).padStart(2,"0")}-${String(l.getDate()).padStart(2,"0")}`,a=(y)=>`${y.getFullYear()}-${String(y.getMonth()+1).padStart(2,"0")}-${String(y.getDate()).padStart(2,"0")}`,u=()=>N(n.range)===!0,i=()=>N(n.value),b=(y)=>{let g=a(y),x=i();if(u())if(!x?.start||x.start&&x.end)n.onChange?.({start:g,end:null,...n.hour&&{startHour:s()}});else{let C=x.start,K=g{let g=r();r(new Date(g.getFullYear(),g.getMonth()+y,1))},w=(y)=>{let g=r();r(new Date(g.getFullYear()+y,g.getMonth(),1))},E=({value:y,onChange:g})=>t("div",{class:"flex-1"},[t("div",{class:"flex gap-2 items-center"},[t("input",{type:"range",min:0,max:23,value:y,class:"range range-xs flex-1",oninput:(x)=>g(+x.target.value)}),t("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(N(y)).padStart(2,"0")+":00")])]);return t("div",{class:c("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",n.class)},[t("div",{class:"flex justify-between items-center mb-4 gap-1"},[t("div",{class:"flex gap-0.5"},[t("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>w(-1)},t("span",{class:"icon-[lucide--chevrons-left]"})),t("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>_(-1)},t("span",{class:"icon-[lucide--chevron-left]"}))]),t("span",{class:"font-bold uppercase flex-1 text-center"},()=>r().toLocaleString("es-ES",{month:"short",year:"numeric"})),t("div",{class:"flex gap-0.5"},[t("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>_(1)},t("span",{class:"icon-[lucide--chevron-right]"})),t("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>w(1)},t("span",{class:"icon-[lucide--chevrons-right]"}))])]),t("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>e(null)},[...["L","M","X","J","V","S","D"].map((y)=>t("div",{class:"text-[10px] opacity-40 font-bold text-center"},y)),()=>{let y=r(),g=y.getFullYear(),x=y.getMonth(),C=new Date(g,x,1).getDay(),K=C===0?6:C-1,Ln=new Date(g,x+1,0).getDate(),O=[];for(let P=0;P{let z=i(),H=e(),Tn=typeof z==="string"?z.split("T")[0]===T:z?.start===T,$n=z?.end===T,D=!1;if(u()&&z?.start){let v=z.start;if(!z.end&&H)D=T>v&&T<=H||T=H;else if(z.end)D=T>v&&Tu()&&e(T),onclick:()=>b(ln)},P.toString()))}return O}]),n.hour?t("div",{class:"mt-3 pt-2 border-t border-base-300"},u()?t("div",{class:"flex gap-4"},[E({value:s,onChange:(y)=>s(y)}),E({value:f,onChange:(y)=>f(y)})]):E({value:s,onChange:(y)=>s(y)})):null])},Jt=(n)=>{let r=d(!1),e=d(""),s=()=>N(n.range)===!0;J(()=>{let l=N(n.value);if(!l)return e("");let o="";if(typeof l==="string")o=n.hour&&l.includes("T")?l.replace("T"," "):l;else if(l.start&&l.end){let a=n.hour&&l.startHour!=null?`${l.start} ${String(l.startHour).padStart(2,"0")}:00`:l.start,u=n.hour&&l.endHour!=null?`${l.end} ${String(l.endHour).padStart(2,"0")}:00`:l.end;o=`${a} - ${u}`}else if(l.start)o=`${n.hour&&l.startHour!=null?`${l.start} ${String(l.startHour).padStart(2,"0")}:00`:l.start}...`;e(o)});let f=(l)=>{if(S(n.value))n.value(l);else n.onChange?.(l);if(!s()||l?.end!=null)r(!1)};return t("div",{class:c("relative w-full",n.class)},[t("label",{class:"input input-bordered w-full",onclick:(l)=>{l.stopPropagation(),r(!r())}},[t("span",{class:"icon-[lucide--calendar]"}),t("input",{...n,type:"text",class:"grow",value:e,readonly:!0,placeholder:n.placeholder||(s()?"Seleccionar rango...":"Seleccionar fecha...")})]),U(r,()=>[t("div",{class:"fixed inset-0 z-[90]",onclick:()=>r(!1)}),t("div",{class:"absolute left-0 mt-2 z-[100]",onclick:(l)=>l.stopPropagation()},gn({value:n.value,range:s(),hour:n.hour,onChange:f}))])])},Pt=(n)=>{let r=d([]),e=d(!1),s=d(null),f=(n.max||2)*1024*1024,l=(a)=>{let u=Array.from(a);if(s(null),u.some((b)=>b.size>f)){s(`Máx ${n.max||2}MB`);return}let i=[...r(),...u];if(r(i),S(n.onselect))n.onselect(i);else if(S(n.value))n.value(i)},o=(a)=>{let u=r().filter((i,b)=>b!==a);if(r(u),S(n.onselect))n.onselect(u);else if(S(n.value))n.value(u)};return t("div",{class:c("fieldset w-full p-0",n.class)},[t("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 ${e()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(a)=>{a.preventDefault(),e(!0)},ondragleave:()=>e(!1),ondrop:(a)=>{a.preventDefault(),e(!1),l(a.dataTransfer.files)}},[t("div",{class:"flex items-center gap-3 w-full"},[t("span",{class:"icon-[lucide--upload]"}),t("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),t("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${n.max||2}MB`)]),t("input",{type:"file",multiple:!0,accept:n.accept||"*",class:"hidden",onchange:(a)=>l(a.target.files)})]),()=>s()&&t("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},s()),U(()=>r().length>0,()=>t("ul",{class:"mt-2 space-y-1"},m(r,(a,u)=>t("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[t("div",{class:"flex items-center gap-2 truncate"},[t("span",{class:"opacity-50"},"\uD83D\uDCC4"),t("span",{class:"truncate font-medium max-w-[200px]"},a.name),t("span",{class:"text-[9px] opacity-40"},`(${(a.size/1024).toFixed(0)} KB)`)]),t("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(i)=>{i.preventDefault(),o(u)}},t("span",{class:"icon-[lucide--x]"}))]),(a)=>a.name+a.lastModified)))])},Rt=(n,r="alert-success",e=3500)=>{let s=document.getElementById("sigpro-toast-container");if(!s)s=t("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(s);let f=t("div",{style:"display: contents"});s.appendChild(f);let l,o,a,i=rn(()=>{let b=d(!1),_=d(!1);l=()=>{if(_())return;clearTimeout(o),clearTimeout(a),_(!0),setTimeout(()=>{if(i.destroy(),f.remove(),!s.hasChildNodes())s.remove()},300)},a=setTimeout(()=>b(!0),0);let w=typeof n==="function"?N(n):n,E=typeof w==="string"?t("span",{},w):w;return t("div",{class:()=>{if(_())return`alert alert-soft ${r} shadow-lg transition-all duration-300 translate-x-full opacity-0 pointer-events-auto`;if(b())return`alert alert-soft ${r} shadow-lg transition-all duration-300 translate-x-0 opacity-100 pointer-events-auto`;return`alert alert-soft ${r} shadow-lg transition-all duration-300 translate-x-10 opacity-0 pointer-events-auto`}},[E,t("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:l},t("span",{class:"icon-[lucide--x]"}))])},f);if(e>0)o=setTimeout(l,e);return l},Ut=(n)=>{let r=null;J(()=>{let s=N(n.open);if(!r)return;s?r.showModal():r.close()});let e=()=>S(n.open)&&n.open(!1);return t("dialog",{...n,ref:(s)=>r=s,class:c("modal",n.class),onclose:e,oncancel:e},[t("div",{class:"modal-box"},[n.title&&t("h3",{class:"text-lg font-bold"},n.title),n.children,t("div",{class:"modal-action"},[n.actions||wn({class:"btn",onclick:e},"Cerrar")])]),t("form",{method:"dialog",class:"modal-backdrop"},[t("button",{},"close")])])};var en={};M(en,{Editor:()=>qt});var qt=(n)=>{let{value:r,class:e}=n,s=null,f=d(!1),l=d(""),o=()=>{if(!s)return;let b=s.innerHTML;if(S(r))r(b);else n.onchange?.(b)},a=(b,_=null)=>{if(!s)return;s.focus(),document.execCommand(b,!1,_),o()},u=(b,_=null)=>{if(!s)return!1;try{if(b==="formatBlock"){let w=window.getSelection();if(!w.rangeCount)return!1;let E=w.getRangeAt(0).commonAncestorContainer;while(E&&E!==s){if(E.nodeType===1&&E.tagName===_)return!0;E=E.parentNode}return!1}return document.queryCommandState(b)}catch(w){return!1}},i=t("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200"},[t("div",{class:"flex flex-wrap gap-1 flex-1"},[t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("bold")?"btn-active":""}`,onclick:()=>a("bold")},t("span",{class:"icon-[lucide--bold]"})),t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("italic")?"btn-active":""}`,onclick:()=>a("italic")},t("span",{class:"icon-[lucide--italic]"})),t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("underline")?"btn-active":""}`,onclick:()=>a("underline")},t("span",{class:"icon-[lucide--underline]"})),t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("strikeThrough")?"btn-active":""}`,onclick:()=>a("strikeThrough")},t("span",{class:"icon-[lucide--strikethrough]"})),t("span",{class:"w-px h-5 bg-base-300 mx-1"}),t("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>a("insertUnorderedList")},t("span",{class:"icon-[lucide--list]"})),t("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>a("insertOrderedList")},t("span",{class:"icon-[lucide--list-ordered]"})),t("span",{class:"w-px h-5 bg-base-300 mx-1"}),t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>a("formatBlock",u("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},t("span",{class:"icon-[lucide--quote]"})),t("span",{class:"w-px h-5 bg-base-300 mx-1"}),t("select",{class:"select select-xs w-16",onchange:(b)=>a("fontSize",b.target.value),value:"3"},[t("option",{value:"1"},"1"),t("option",{value:"2"},"2"),t("option",{value:"3"},"3"),t("option",{value:"4"},"4"),t("option",{value:"5"},"5"),t("option",{value:"6"},"6"),t("option",{value:"7"},"7")]),t("span",{class:"w-px h-5 bg-base-300 mx-1"}),t("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>a("undo")},t("span",{class:"icon-[lucide--undo-2]"})),t("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>a("redo")},t("span",{class:"icon-[lucide--redo-2]"}))]),t("div",{class:"flex"},[t("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${f()?"btn-active":""}`,onclick:()=>{let b=f();if(!b)l(s?.innerHTML||"");else if(s)s.innerHTML=l(),o();f(!b)}},t("span",{class:"icon-[lucide--code-2]"}))])]);return t("div",{class:c("border border-base-300 rounded-box bg-base-100 overflow-hidden",e)},[i,t("div",{class:"relative"},[t("div",{ref:(b)=>{if(!s&&b)s=b,b.innerHTML=N(r)||""},style:()=>`min-height:10rem;${f()?"display:none":""}`,class:"p-3 outline-none text-base-content [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:list-decimal [&_ol]:pl-6 [&_li]:list-item [&_p]:m-0 [&_div]:m-0 [&_br]:content-[''] [&_br]:block [&_br]:h-[1em]",contenteditable:"true",oninput:o,onpaste:()=>setTimeout(o,0)}),t("textarea",{class:"w-full min-h-[10rem] p-3 outline-none font-mono text-sm bg-base-200 border-0",style:()=>f()?"":"display:none",value:l,oninput:(b)=>l(b.target.value)})])])};var Qt={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"}},Nn=d("es"),Sn=(n)=>Nn(n),kn=(n)=>()=>Qt[Nn()][n]||n;var xn={...on,...en},Cn={Locale:Sn,tt:kn};if(typeof window<"u")Object.entries({...xn,...Cn}).forEach(([n,r])=>{Object.defineProperty(window,n,{value:r,writable:!1,configurable:!0,enumerable:!0})}),console.log("SigProUI installed");})();
+(()=>{var{defineProperty:p,getOwnPropertyNames:Zn,getOwnPropertyDescriptor:Gn}=Object,$n=Object.prototype.hasOwnProperty;function Yn(n){return this[n]}var Bn=(n)=>{var f=(bn??=new WeakMap).get(n),t;if(f)return f;if(f=p({},"__esModule",{value:!0}),n&&typeof n==="object"||typeof n==="function"){for(var _ of Zn(n))if(!$n.call(f,_))p(f,_,{get:Yn.bind(n,_),enumerable:!(t=Gn(n,_))||t.enumerable})}return bn.set(n,f),f},bn;var Sn=(n)=>n;function Un(n,f){this[n]=Sn.bind(null,f)}var nn=(n,f)=>{for(var t in f)p(n,t,{get:f[t],enumerable:!0,configurable:!0,set:Un.bind(f,t)})};var Dr={};nn(Dr,{Utils:()=>Kn,Components:()=>kn});var wn={};nn(wn,{rand:()=>d,listKey:()=>ln,isFn:()=>Q,getBy:()=>q,get:()=>A,filterBy:()=>Wn,cls:()=>y,close:()=>gn,Tooltip:()=>qr,Toggle:()=>Vr,Toast:()=>Ur,Timeline:()=>Sr,Textarea:()=>Yr,TextRotate:()=>Br,Tabs:()=>$r,Table:()=>Gr,Swap:()=>Zr,Steps:()=>Pr,Step:()=>Tr,Stack:()=>Kr,SkeletonText:()=>kr,Skeleton:()=>Qr,Select:()=>Ar,Rating:()=>Xr,Range:()=>Lr,Radio:()=>jr,Radial:()=>Jr,Progress:()=>zr,Navbar:()=>lr,Modal:()=>Wr,Menu:()=>Cr,Loading:()=>yr,List:()=>or,Kbd:()=>Nr,Input:()=>Ln,Indicator:()=>Er,Icon:()=>jn,Fileinput:()=>br,Fieldset:()=>ar,Fab:()=>wr,Dropdown:()=>ur,Drawer:()=>tr,Divider:()=>_r,Datepicker:()=>fr,Colorpicker:()=>rr,Checkbox:()=>nr,ChatImage:()=>pn,ChatHeader:()=>hn,ChatFooter:()=>en,ChatBubble:()=>cn,Chat:()=>vn,CarouselItem:()=>dn,Carousel:()=>mn,Card:()=>Mn,Calendar:()=>Jn,Button:()=>zn,Badge:()=>xn,Autocomplete:()=>sn,Alert:()=>Fn,Accordion:()=>Rn});var B=(n)=>typeof n==="function",tn=(n)=>n&&typeof n==="object",O=Array.isArray,S=typeof document<"u"?document:null,En=(n)=>n?._isRuntime?n.container:n instanceof Node?n:S.createTextNode(n==null?"":String(n)),K=null,G=null,F=!1,x=0,M=new Set,Nn=new WeakMap,rn=Symbol("iter"),fn=new WeakMap,H=(n)=>{if(!n||n._disposed)return;n._disposed=!0;let f=[n];while(f.length){let t=f.pop();if(t._cleanups)t._cleanups.forEach((_)=>_()),t._cleanups.clear();if(t._children)t._children.forEach((_)=>f.push(_)),t._children.clear();if(t._deps)t._deps.forEach((_)=>_.delete(t)),t._deps.clear()}},g=(n)=>{if(G)(G._cleanups||=new Set).add(n)},Vn=(n)=>{let f=K;K=null;try{return n()}finally{K=f}},s=(n,f=!1)=>{let t=()=>{if(t._disposed)return;if(t._deps)t._deps.forEach((u)=>u.delete(t));if(t._cleanups)t._cleanups.forEach((u)=>u()),t._cleanups.clear();let _=K,a=G;K=G=t;try{return t._result=n()}catch(u){console.error("[SigPro]",u)}finally{K=_,G=a}};if(t._deps=t._cleanups=t._children=null,t._disposed=!1,t._isComputed=f,t._depth=K?K._depth+1:0,t._mounts=[],t._parent=G,G)(G._children||=new Set).add(t);return t},yn=()=>{if(F)return;F=!0;let n=Array.from(M).sort((f,t)=>f._depth-t._depth);M.clear();for(let f of n)if(!f._disposed)f();F=!1},qn=(n)=>{x++;try{return n()}finally{if(x--,x===0&&M.size>0&&!F)yn()}},Y=(n,f=!1)=>{if(!f&&K&&!K._disposed)n.add(K),(K._deps||=new Set).add(n);else if(f&&n.size>0){let t=!1;for(let _ of n){if(_===K||_._disposed)continue;if(_._isComputed){if(_._dirty=!0,_._subs)Y(_._subs,!0)}else M.add(_),t=!0}if(t&&!F&&x===0)queueMicrotask(yn)}},L=(n,f=null)=>{let t=new Set;if(B(n)){let _,a=()=>{if(a._dirty){let u=K;K=a;try{let w=n();if(!Object.is(_,w))_=w,Y(t,!0)}finally{K=u}a._dirty=!1}return Y(t),_};if(a._isComputed=!0,a._subs=t,a._dirty=!0,a._deps=null,a._disposed=!1,a.stop=()=>{},G)g(a.stop);return a}if(f)try{n=JSON.parse(localStorage.getItem(f))??n}catch(_){}return(..._)=>{if(_.length){let a=B(_[0])?_[0](n):_[0];if(!Object.is(n,a)){if(n=a,f)localStorage.setItem(f,JSON.stringify(n));Y(t,!0)}}return Y(t),n}},Cn=(n)=>{if(!tn(n))return n;let f=Nn.get(n);if(f)return f;let t=new Map,_=(u)=>{let w=t.get(u);if(!w)t.set(u,w=new Set);return w},a=new Proxy(n,{get(u,w,b){if(typeof w!=="symbol")Y(_(w));return Cn(Reflect.get(u,w,b))},set(u,w,b,E){let N=Reflect.has(u,w),o=Reflect.get(u,w,E),C=Reflect.set(u,w,b,E);if(C&&!Object.is(o,b)){if(Y(_(w),!0),!N)Y(_(rn),!0)}return C},deleteProperty(u,w){let b=Reflect.deleteProperty(u,w);if(b)Y(_(w),!0),Y(_(rn),!0);return b},ownKeys(u){return Y(_(rn)),Reflect.ownKeys(u)}});return Nn.set(n,a),a},I=(n,f)=>{if(f===void 0){let _=s(n);return _(),()=>H(_)}let t=s(()=>{let _=Array.isArray(n)?n.map((a)=>a()):n();Vn(()=>f(_))});return t(),()=>H(t)},_n=(n)=>{if(!n)return;if(n._cleanups)n._cleanups.forEach((f)=>f()),n._cleanups.clear();if(n._ownerEffect)H(n._ownerEffect);if(n.childNodes)n.childNodes.forEach((f)=>_n(f))},In=/^\s*(javascript|data|vbscript):/i,Hn=(n)=>n==="src"||n==="href"||n.startsWith("on"),on=(n,f)=>{if(f==null||f===!1)return null;if(Hn(n)){let t=String(f);if(In.test(t))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${n}`),"#"}return f},r=(n,f={},t=[])=>{if(f instanceof Node||O(f)||!tn(f))t=f,f={};if(B(n)){let w=s(()=>{let o=n(f,{children:t,emit:(C,...J)=>f[`on${C[0].toUpperCase()}${C.slice(1)}`]?.(...J)});return w._result=o,o});w();let b=w._result;if(b==null)return null;let E=b instanceof Node||O(b)&&b.every((o)=>o instanceof Node)?b:S.createTextNode(String(b)),N=(o)=>{if(tn(o)&&!o._isRuntime)o._mounts=w._mounts||[],o._cleanups=w._cleanups||new Set,o._ownerEffect=w};return O(E)?E.forEach(N):N(E),E}let _=/^(svg|path|circle|rect|line|poly(line|gon)|g|defs|text(path)?|tspan|use|symbol|image|marker|ellipse)$/i.test(n),a=_?S.createElementNS("http://www.w3.org/2000/svg",n):S.createElement(n);a._cleanups=new Set;for(let w in f){if(!f.hasOwnProperty(w))continue;let b=f[w];if(w==="ref"){B(b)?b(a):b.current=a;continue}if(_&&w.startsWith("xlink:")){b==null?a.removeAttributeNS("http://www.w3.org/1999/xlink",w.slice(6)):a.setAttributeNS("http://www.w3.org/1999/xlink",w.slice(6),b);continue}if(w.startsWith("on")){let E=w.slice(2).toLowerCase();a.addEventListener(E,b);let N=()=>a.removeEventListener(E,b);a._cleanups.add(N),g(N)}else if(B(b)){let E=s(()=>{let N=on(w,b());if(w==="class")a.className=N||"";else if(N==null)a.removeAttribute(w);else if(w in a&&!_)a[w]=N;else a.setAttribute(w,N===!0?"":N)});if(E(),a._cleanups.add(()=>H(E)),g(()=>H(E)),/^(INPUT|TEXTAREA|SELECT)$/.test(a.tagName)&&(w==="value"||w==="checked")){let N=w==="checked"?"change":"input";a.addEventListener(N,(o)=>b(o.target[w]))}}else{let E=on(w,b);if(E!=null)if(w in a&&!_)a[w]=E;else a.setAttribute(w,E===!0?"":E)}}let u=(w)=>{if(O(w))return w.forEach(u);if(B(w)){let b=S.createTextNode("");a.appendChild(b);let E=[],N=s(()=>{let o=w(),C=(O(o)?o:[o]).map(En);E.forEach((j)=>{if(j._isRuntime)j.destroy();else _n(j);if(j.parentNode)j.remove()});let J=b;for(let j=C.length-1;j>=0;j--){let l=C[j];if(l.parentNode!==J.parentNode)J.parentNode?.insertBefore(l,J);if(l._mounts)l._mounts.forEach((z)=>z());J=l}E=C});N(),a._cleanups.add(()=>H(N)),g(()=>H(N))}else{let b=En(w);if(a.appendChild(b),b._mounts)b._mounts.forEach((E)=>E())}};return u(t),a},m=(n)=>{let f=new Set,t=G,_=K,a=S.createElement("div");a.style.display="contents",a.setAttribute("role","presentation"),G={_cleanups:f},K=null;let u=(w)=>{if(!w)return;if(w._isRuntime)f.add(w.destroy),a.appendChild(w.container);else if(O(w))w.forEach(u);else a.appendChild(w instanceof Node?w:S.createTextNode(String(w==null?"":w)))};try{u(n({onCleanup:(w)=>f.add(w)}))}finally{G=t,K=_}return{_isRuntime:!0,container:a,destroy:()=>{f.forEach((w)=>w()),_n(a),a.remove()}}},D=(n,f,t=null)=>{let _=S.createTextNode(""),a=r("div",{style:"display:contents"},[_]),u=null;return I(()=>!!(B(n)?n():n),(w)=>{if(u)u.destroy(),u=null;let b=w?f:t;if(b)u=m(()=>B(b)?b():b),a.insertBefore(u.container,_)}),g(()=>u?.destroy()),a},i=({name:n,duration:f=200,scale:t,slide:_,rotate:a,blur:u},w)=>{let b=typeof w==="function"?w():w;if(!(b instanceof Node))return b;if(n)return b.style.animation=`${n}-in ${f}ms`,b;let E=t||_||a||u,N=[t?"scale(0.95)":"",_?"translateY(-10px)":"",a?"rotate(-2deg)":""].filter(Boolean).join(" ");if(b.style.transition=`all ${f}ms ease`,b.style.opacity="0",E)b.style.transform=N;if(u)b.style.filter="blur(4px)";return requestAnimationFrame(()=>{if(b.style.opacity="1",E)b.style.transform="none";if(u)b.style.filter="none"}),b},U=(n,f,t)=>{let _=S.createTextNode(""),a=r("div",{style:"display:contents"},[_]),u=new Map;return I(()=>(B(n)?n():n)||[],(w)=>{let b=new Map,E=[],N=w||[];for(let C=0;Cf(J,C));else u.delete(j);b.set(j,l),E.push(l)}u.forEach((C)=>C.destroy());let o=_;for(let C=E.length-1;C>=0;C--){let J=E[C].container;if(J.nextSibling!==o)a.insertBefore(J,o);o=J}u=b}),a},R=(n)=>{let f=()=>window.location.hash.slice(1)||"/",t=L(f()),_=()=>t(f());window.addEventListener("hashchange",_),g(()=>window.removeEventListener("hashchange",_));let a=r("div",{class:"router-hook"}),u=null;return I([t],()=>{let w=t(),b=n.find((E)=>{let N=E.path.split("/").filter(Boolean),o=w.split("/").filter(Boolean);return N.length===o.length&&N.every((C,J)=>C[0]===":"||C===o[J])})||n.find((E)=>E.path==="*");if(b){u?.destroy();let E={};b.path.split("/").filter(Boolean).forEach((N,o)=>{if(N[0]===":")E[N.slice(1)]=w.split("/").filter(Boolean)[o]}),R.params(E),u=m(()=>B(b.component)?b.component(E):b.component),a.replaceChildren(u.container)}}),a};R.params=L({});R.to=(n)=>window.location.hash=n.replace(/^#?\/?/,"#/");R.back=()=>window.history.back();R.path=()=>window.location.hash.replace(/^#/,"")||"/";var Dn=({url:n,method:f="GET",headers:t={}})=>{let _=L(!1),a=L(null),u=L(null),w=null,b=null;return{run:async(E=null)=>{w?.abort(),clearTimeout(b),w=new AbortController,b=setTimeout(()=>w.abort(),1e4),_(!0),a(null);try{let N=E instanceof FormData,o=await fetch(n,{method:f,headers:N?t:{"Content-Type":"application/json",...t},body:N?E:E?JSON.stringify(E):void 0,signal:w.signal}),C=await o.text(),J=C?JSON.parse(C):null;if(!o.ok)throw Error(J?.message||o.statusText);return u(J),J}catch(N){if(N.name!=="AbortError")a(N.message);throw N}finally{_(!1),clearTimeout(b),w=null,b=null}},abort:()=>w?.abort(),loading:_,error:a,data:u}},un=(n,f)=>{let t=typeof f==="string"?S.querySelector(f):f;if(!t)return;if(fn.has(t))fn.get(t).destroy();let _=m(B(n)?n:()=>n);return t.replaceChildren(_.container),fn.set(t,_),_},On=Object.freeze({$:L,$$:Cn,watch:I,h:r,when:D,each:U,fx:i,router:R,req:Dn,mount:un,batch:qn});if(typeof window<"u")Object.assign(window,On),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((n)=>{window[n]=(f,t)=>r(n,f,t)});var A=(n)=>typeof n==="function"?n():n,q=(n,f="label")=>n&&typeof n==="object"?n[f]:n,y=(...n)=>n.filter(Boolean).join(" ").trim(),Q=(n)=>typeof n==="function",Wn=(n,f,t="label",_=String(f).toLowerCase())=>!f?A(n):A(n).filter((a)=>String(a&&typeof a==="object"?a[t]:a).toLowerCase().includes(_)),d=(n)=>`${n}-${Math.random().toString(36).slice(2,9)}`,gn=()=>document.activeElement?.blur(),ln=(n,f)=>{let t=L(-1);return I(()=>{if(!A(f))t(-1)}),{cursor:t,onKey:(a,u)=>{let w=A(n),b=t(),E=w.length;if(!E)return;let N=a.key;N==="ArrowDown"?(a.preventDefault(),f(!0),t(Math.min(b+1,E-1))):N==="ArrowUp"?(a.preventDefault(),t(Math.max(b-1,0))):N==="Enter"?b>=0&&(a.preventDefault(),u(w[b])):N==="Escape"&&f(!1)}}},Rn=(n)=>{let f=n.name||d("acc");return U(n.items,(t)=>{return r("div",{class:y("collapse",n.class)},[r("input",{type:"radio",name:f,checked:t.open||void 0}),t.title?r("div",{class:y("collapse-title",`${t.classTitle??" font-semibold"}`)},t.title):null,t.content?r("div",{class:y("collapse-content text-sm",`${t.classContent??" font-semibold"}`)},t.content):null])})},Fn=(n,f)=>r("div",{...n,class:y("alert",n.class)},f),sn=({items:n,value:f,onselect:t,placeholder:_="Buscar...",...a})=>{let u=L(A(f)||""),w=L(!1),b=L(()=>Wn(n,u())),{cursor:E,onKey:N}=ln(b,w),o=(C)=>{let J=q(C),j=typeof C==="string"?C:C.value;if(u(J),Q(f))f(j);t?.(C),w(!1)};return r("div",{class:"relative w-full"},[Ln({...a,type:"text",placeholder:_,value:u,left:r("span",{class:"icon-[lucide--search]"}),oninput:(C)=>{if(u(C.target.value),Q(f))f(C.target.value);w(!0)},onfocus:()=>w(!0),onblur:()=>setTimeout(()=>w(!1),150),onkeydown:(C)=>N(C,o)}),D(w,()=>i({duration:200,slide:!0},r("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 flex-col flex-nowrap"},[U(b,(C,J)=>r("li",{},[r("a",{class:()=>E()===J?"active bg-primary text-primary-content":"",onmousedown:(j)=>j.preventDefault(),onclick:()=>o(C),onmouseenter:()=>E(J)},q(C))]),(C,J)=>q(C)+J),()=>b().length===0?r("li",{class:"p-4 opacity-50 text-center"},"Sin resultados"):null])))])},xn=(n,f)=>r("span",{...n,class:y("badge",n.class)},f),zn=(n,f)=>r("button",{...n,class:y("btn",n.class)},f),Jn=(n)=>{let f=L(new Date),t=L(null),_=L(0),a=L(0),u=new Date,w=`${u.getFullYear()}-${String(u.getMonth()+1).padStart(2,"0")}-${String(u.getDate()).padStart(2,"0")}`,b=(l)=>`${l.getFullYear()}-${String(l.getMonth()+1).padStart(2,"0")}-${String(l.getDate()).padStart(2,"0")}`,E=()=>A(n.range)===!0,N=()=>A(n.value),o=(l)=>{let z=b(l),T=N();if(E())if(!T?.start||T.start&&T.end)n.onChange?.({start:z,end:null,...n.hour&&{startHour:_()}});else{let Z=T.start,$=z{let z=f();f(new Date(z.getFullYear(),z.getMonth()+l,1))},J=(l)=>{let z=f();f(new Date(z.getFullYear()+l,z.getMonth(),1))},j=({value:l,onChange:z})=>r("div",{class:"flex-1"},[r("div",{class:"flex gap-2 items-center"},[r("input",{type:"range",min:0,max:23,value:l,class:"range range-xs flex-1",oninput:(T)=>z(+T.target.value)}),r("span",{class:"text-sm font-mono min-w-[48px] text-center"},()=>String(A(l)).padStart(2,"0")+":00")])]);return r("div",{class:y("p-4 bg-base-100 border border-base-300 shadow-2xl rounded-box w-80 select-none",n.class)},[r("div",{class:"flex justify-between items-center mb-4 gap-1"},[r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>J(-1)},r("span",{class:"icon-[lucide--chevrons-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>C(-1)},r("span",{class:"icon-[lucide--chevron-left]"}))]),r("span",{class:"font-bold uppercase flex-1 text-center"},()=>f().toLocaleString("es-ES",{month:"short",year:"numeric"})),r("div",{class:"flex gap-0.5"},[r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>C(1)},r("span",{class:"icon-[lucide--chevron-right]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs px-1",onclick:()=>J(1)},r("span",{class:"icon-[lucide--chevrons-right]"}))])]),r("div",{class:"grid grid-cols-7 gap-1",onmouseleave:()=>t(null)},[...["L","M","X","J","V","S","D"].map((l)=>r("div",{class:"text-[10px] opacity-40 font-bold text-center"},l)),()=>{let l=f(),z=l.getFullYear(),T=l.getMonth(),Z=new Date(z,T,1).getDay(),$=Z===0?6:Z-1,v=new Date(z,T+1,0).getDate(),W=[];for(let X=0;X<$;X++)W.push(r("div"));for(let X=1;X<=v;X++){let k=new Date(z,T,X),P=b(k);W.push(r("button",{type:"button",class:()=>{let V=N(),c=t(),Pn=typeof V==="string"?V.split("T")[0]===P:V?.start===P,Tn=V?.end===P,e=!1;if(E()&&V?.start){let h=V.start;if(!V.end&&c)e=P>h&&P<=c||P=c;else if(V.end)e=P>h&&PE()&&t(P),onclick:()=>o(k)},X.toString()))}return W}]),n.hour?r("div",{class:"mt-3 pt-2 border-t border-base-300"},E()?r("div",{class:"flex gap-4"},[j({value:_,onChange:(l)=>_(l)}),j({value:a,onChange:(l)=>a(l)})]):j({value:_,onChange:(l)=>_(l)})):null])},Mn=(n,f)=>{if(!n.title&&!n.body&&!n.actions&&!f)return r("div",{...n,class:y("card",n.class)},f);return r("div",{...n,class:y("card",n.class)},[n.title&&r("div",{class:y("card-title",n.titleClass)},n.title),(n.body||f)&&r("div",{class:y("card-body",n.bodyClass)},n.body||f),n.actions&&r("div",{class:y("card-actions",n.actionsClass)},n.actions)].filter(Boolean))},mn=(n,f)=>r("div",{...n,class:y("carousel",n.class)},f),dn=(n,f)=>r("div",{...n,class:y("carousel-item",n.class)},f),vn=(n,f)=>r("div",{...n,class:y("chat",n.class)},f),cn=(n,f)=>r("div",{...n,class:y("chat-bubble",n.class)},f),en=(n,f)=>r("div",{...n,class:y("chat-footer",n.class)},f),hn=(n,f)=>r("div",{...n,class:y("chat-header",n.class)},f),pn=(n,f)=>r("div",{...n,class:y("chat-image avatar",n.class)},r("div",{class:"w-10 rounded-full"},typeof f==="string"?r("img",{src:f,alt:"avatar"}):f)),nr=(n)=>r("input",{...n,type:"checkbox",class:y("checkbox",n.class)}),rr=(n)=>{let f=L(!1),t=()=>A(n.value)||"#000000",_=["#000","#1A1A1A","#333","#4D4D4D","#666","#808080","#B3B3B3","#FFF","#450a0a","#7f1d1d","#991b1b","#b91c1c","#dc2626","#ef4444","#f87171","#fca5a5","#431407","#7c2d12","#9a3412","#c2410c","#ea580c","#f97316","#fb923c","#ffedd5","#713f12","#a16207","#ca8a04","#eab308","#facc15","#fde047","#fef08a","#fff9c4","#064e3b","#065f46","#059669","#10b981","#34d399","#4ade80","#84cc16","#d9f99d","#082f49","#075985","#0284c7","#0ea5e9","#38bdf8","#7dd3fc","#22d3ee","#cffafe","#1e1b4b","#312e81","#4338ca","#4f46e5","#6366f1","#818cf8","#a5b4fc","#e0e7ff","#2e1065","#4c1d95","#6d28d9","#7c3aed","#8b5cf6","#a855f7","#d946ef","#fae8ff"],a=(u)=>{Q(n.value)?n.value(u):n.onchange?.(u),f(!1)};return r("div",{class:y("relative w-fit",n.class)},[r("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:(u)=>{u.stopPropagation(),f(!f())}},[r("div",{class:"size-5 rounded-sm shadow-inner border border-black/10 shrink-0",style:()=>`background-color: ${t()}`}),n.label&&r("span",{class:"opacity-80"},n.label)]),D(f,()=>[r("div",{class:"fixed inset-0 z-[100]",onclick:()=>f(!1)}),r("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"},r("div",{class:"grid grid-cols-8 gap-1"},_.map((u)=>r("button",{type:"button",style:`background-color: ${u}`,class:()=>{return`size-6 rounded-sm cursor-pointer transition-all hover:scale-125 hover:z-10 active:scale-95 outline-none border border-black/5 p-0 min-h-0 ${t().toLowerCase()===u.toLowerCase()?"ring-2 ring-offset-1 ring-primary z-10 scale-110":""}`},onclick:()=>a(u)}))))])])},fr=(n)=>{let f=L(!1),t=L(""),_=()=>A(n.range)===!0;I(()=>{let u=A(n.value);if(!u)return t("");let w="";if(typeof u==="string")w=n.hour&&u.includes("T")?u.replace("T"," "):u;else if(u.start&&u.end){let b=n.hour&&u.startHour!=null?`${u.start} ${String(u.startHour).padStart(2,"0")}:00`:u.start,E=n.hour&&u.endHour!=null?`${u.end} ${String(u.endHour).padStart(2,"0")}:00`:u.end;w=`${b} - ${E}`}else if(u.start)w=`${n.hour&&u.startHour!=null?`${u.start} ${String(u.startHour).padStart(2,"0")}:00`:u.start}...`;t(w)});let a=(u)=>{if(Q(n.value))n.value(u);else n.onChange?.(u);if(!_()||u?.end!=null)f(!1)};return r("div",{class:y("relative w-full",n.class)},[r("label",{class:"input input-bordered w-full",onclick:(u)=>{u.stopPropagation(),f(!f())}},[r("span",{class:"icon-[lucide--calendar]"}),r("input",{...n,type:"text",class:"grow",value:t,readonly:!0,placeholder:n.placeholder||(_()?"Seleccionar rango...":"Seleccionar fecha...")})]),D(f,()=>[r("div",{class:"fixed inset-0 z-[90]",onclick:()=>f(!1)}),r("div",{class:"absolute left-0 mt-2 z-[100]",onclick:(u)=>u.stopPropagation()},Jn({value:n.value,range:_(),hour:n.hour,onChange:a}))])])},tr=(n,f)=>{let t=n.id||d("drawer");return r("div",{class:y("drawer",n.class)},[r("input",{id:t,type:"checkbox",class:"drawer-toggle",checked:()=>A(n.open),onchange:(_)=>Q(n.open)&&n.open(_.target.checked)}),r("div",{class:"drawer-side"},[r("label",{for:t,class:"drawer-overlay",onclick:()=>Q(n.open)&&n.open(!1)}),r("div",{class:"min-h-full bg-base-200 w-80 p-4"},()=>A(n.side))]),r("div",{class:"drawer-content"},f)])},_r=(n)=>r("div",{...n,class:y("divider",n.class)}),ur=(n,f)=>{return r("div",{...n,class:y("dropdown",n.class)},[r("div",{tabindex:"0",role:"button",class:y("btn",n.buttonClass)},n.label),r("div",{tabindex:"-1",class:"dropdown-content"},f)])},wr=(n,f)=>r("div",{class:"fab"},[r("div",{tabindex:"0",role:"button",class:y("btn",n.class)},jn(n.icon)),f]),ar=(n,f)=>r("fieldset",{class:y("fieldset",n.class)},[r("legend",{class:"fieldset-legend"},n.label),f]),br=(n)=>{let f=L([]),t=L(!1),_=L(null),a=(n.max||2)*1024*1024,u=(b)=>{let E=Array.from(b);if(_(null),E.some((o)=>o.size>a)){_(`Máx ${n.max||2}MB`);return}let N=[...f(),...E];if(f(N),Q(n.onselect))n.onselect(N);else if(Q(n.value))n.value(N)},w=(b)=>{let E=f().filter((N,o)=>o!==b);if(f(E),Q(n.onselect))n.onselect(E);else if(Q(n.value))n.value(E)};return r("div",{class:y("fieldset w-full p-0",n.class)},[r("label",{class:()=>`relative flex items-center justify-between w-full h-12 px-4 border-2 border-dashed rounded-lg cursor-pointer transition-all duration-200 ${t()?"border-primary bg-primary/10":"border-base-content/20 bg-base-100 hover:bg-base-200"}`,ondragover:(b)=>{b.preventDefault(),t(!0)},ondragleave:()=>t(!1),ondrop:(b)=>{b.preventDefault(),t(!1),u(b.dataTransfer.files)}},[r("div",{class:"flex items-center gap-3 w-full"},[r("span",{class:"icon-[lucide--upload]"}),r("span",{class:"text-sm opacity-70 truncate grow text-left"},"Arrastra o selecciona archivos..."),r("span",{class:"text-[10px] opacity-40 shrink-0"},`Máx ${n.max||2}MB`)]),r("input",{type:"file",multiple:!0,accept:n.accept||"*",class:"hidden",onchange:(b)=>u(b.target.files)})]),()=>_()&&r("span",{class:"text-[10px] text-error mt-1 px-1 font-medium"},_()),D(()=>f().length>0,()=>r("ul",{class:"mt-2 space-y-1"},U(f,(b,E)=>r("li",{class:"flex items-center justify-between p-1.5 pl-3 text-xs bg-base-200/50 rounded-md border border-base-300"},[r("div",{class:"flex items-center gap-2 truncate"},[r("span",{class:"opacity-50"},"\uD83D\uDCC4"),r("span",{class:"truncate font-medium max-w-[200px]"},b.name),r("span",{class:"text-[9px] opacity-40"},`(${(b.size/1024).toFixed(0)} KB)`)]),r("button",{type:"button",class:"btn btn-ghost btn-xs btn-circle",onclick:(N)=>{N.preventDefault(),w(E)}},r("span",{class:"icon-[lucide--x]"}))]))))])},jn=(n)=>r("span",{class:n.startsWith("icon-")?n:""},n.startsWith("icon-")?null:n),Er=(n,f)=>r("div",{...n,class:y("indicator",n.class)},[n.value&&r("span",{class:y("indicator-item badge",n.class)},n.value),f]),Ln=(n)=>{let{label:f,icon:t,float:_,placeholder:a,value:u,left:w,right:b,rule:E,hint:N,content:o,...C}=n,J=L(!1),j=L(!1),l=n.type==="password",z=E??null,T=()=>l?A(J)?"text":"password":n.type||"text";return r("div",{class:"input-container",onfocusin:()=>j(!0),onfocusout:(Z)=>{if(!Z.currentTarget.contains(Z.relatedTarget))j(!1)}},[r("label",{class:_?"floating-label":""},[_?r("span",{},f):null,r("label",{pattern:z,class:()=>y("input validator",n.class)},[f&&!_?r("span",{class:"label"},f):null,w??null,r("input",{...C,type:T,class:"grow",pattern:z,placeholder:a||f||" ",value:u}),b??null,l?r("label",{class:"swap swap-rotate ml-2"},[r("input",{type:"checkbox",onchange:(Z)=>J(Z.target.checked)}),r("span",{class:"swap-on icon-[lucide--eye]"}),r("span",{class:"swap-off icon-[lucide--eye-off]"})]):null]),N?r("div",{class:"validator-hint"},N):null,D(j,()=>i({duration:300,slide:!0},r("div",{class:"input-content",onmousedown:(Z)=>Z.preventDefault()},[Q(o)?o(j):o])))])])},Nr=(n,f)=>r("kbd",{...n,class:y("kbd",n.class)},f),or=(n,f)=>{if(!n.items)return r("ul",{...n,class:y("list",n.class)},f);return r("ul",{...n,class:y("list",n.class)},[U(n.items,(t,_)=>r("li",{class:y("list-row",t.class)},typeof n.render==="function"?n.render(t,_):t),n.key)])},yr=(n,f)=>r("span",{...n,class:y("loading loading-spinner",n.class)},f),Cr=(n)=>{if(n.children!==void 0)return r("ul",{class:y("menu",n.class),...n},n.children);let{items:f}=n,t=(_)=>_.children?r("li",{},r("details",{open:_.open||void 0},[r("summary",{},q(_)),r("ul",{},U(()=>A(_.children)||[],t))])):r("li",{},r("a",{href:_.href,onclick:_.onclick?(a)=>{if(!_.href)a.preventDefault();_.onclick(a)}:null},q(_)));return r("ul",{class:y("menu",n.class)},U(()=>A(f)||[],t))},Wr=(n)=>{let f=null;I(()=>{let _=A(n.open);if(!f)return;_?f.showModal():f.close()});let t=()=>Q(n.open)&&n.open(!1);return r("dialog",{...n,ref:(_)=>f=_,class:y("modal",n.class),onclose:t,oncancel:t},[r("div",{class:"modal-box"},[n.title&&r("h3",{class:"text-lg font-bold"},n.title),n.children,r("div",{class:"modal-action"},[n.actions||zn({class:"btn",onclick:t},"Cerrar")])]),r("form",{method:"dialog",class:"modal-backdrop"},[r("button",{},"close")])])},lr=(n,f)=>r("div",{...n,class:y("navbar",n.class)},f),zr=(n)=>r("progress",{...n,class:y("progress",n.class)}),Jr=(n,f)=>r("div",{...n,class:y("radial-progress",n.class),style:`--value:${n.value??0};${n.style??""}`,role:"progressbar","aria-valuenow":n.value??0},f??`${n.value??0}%`),jr=(n)=>r("input",{...n,type:"radio",class:y("radio",n.class)}),Lr=(n)=>r("input",{...n,type:"range",class:y("range",n.class)}),Xr=(n)=>{let f=d("rating"),t=n.children??Array.from({length:n.count||5},(_,a)=>{let u=a+1;return r("input",{type:"radio",name:f,class:y("mask",n.mask||"mask-star"),checked:()=>A(n.value)===u,onchange:()=>Q(n.value)?n.value(u):n.onchange?.(u)})});return r("div",{class:y("rating",n.class),...n},t)},Ar=(n,f)=>{if(f!==void 0)return r("select",{class:y("select",n.class),...n},f);let{label:t,float:_,placeholder:a,placeholderDisabled:u=!0,value:w,left:b,right:E,hint:N,items:o,keyFn:C,...J}=n,j=()=>{let l=A(o)||[];return[...a?[{disabled:u,label:a,value:""}]:[],...l]};return r("label",{class:_?"floating-label":""},[_?r("span",{},t):null,r("label",{class:y("select",J.class)},[!_&&t?r("span",{class:"label"},t):null,b??null,r("select",{value:()=>A(w),onchange:(l)=>Q(w)?w(l.target.value):J.onchange?.(l)},U(j,(l)=>{let z=q(l,l.value!==void 0?"value":void 0),T=q(l,"label");return r("option",{value:z,disabled:l.disabled||void 0},T)})),E??null]),N?r("div",{class:"validator-hint"},N):null])},Qr=(n)=>r("div",{...n,class:y("skeleton",n.class)}),kr=(n)=>r("span",{...n,class:y("skeleton skeleton-text",n.class)}),Kr=(n,f)=>r("div",{...n,class:y("stack",n.class)},f),Pr=(n,f)=>r("ul",{...n,class:y("steps",n.class)},f),Tr=(n,f)=>r("li",{...n,class:y("step",n.class),"data-content":n.dataContent},f),Zr=(n)=>r("label",{...n,class:y("swap",n.class)},[r("input",{type:"checkbox",checked:()=>A(n.value),onchange:(f)=>Q(n.value)&&n.value(f.target.checked)}),r("div",{class:"swap-on"},n.on),r("div",{class:"swap-off"},n.off)]),Gr=(n)=>{if(n.children!==void 0)return r("table",{class:y("table",n.class),...n},n.children);let{items:f,columns:t=[],header:_=!0,keyFn:a,...u}=n,w=_!==!1&&t.some((E)=>E.label)?r("thead",{},r("tr",{},t.map((E)=>r("th",{class:E.class},E.label)))):null,b=r("tbody",{},U(()=>A(f)||[],(E,N)=>r("tr",{},t.map((o)=>{let C=o.render?o.render(E,N):E[o.key];return r("td",{class:o.class},C)}))));return r("table",{class:y("table",u.class),...u},[w,b])},$r=(n,f)=>{if(!n.items){let{class:N,...o}=n;return r("div",{...o,class:y("tabs",N)},f)}let{items:t,activeIndex:_,onClose:a,class:u,...w}=n,b=(N)=>Q(N)?N():N,E=a||(Q(t)?(N,o)=>{let J=b(t).filter((j,l)=>l!==N);if(t(J),_()>=J.length)_(Math.max(0,J.length-1))}:null);return r("div",{...w,class:y("tabs",u)},()=>{return(b(t)||[]).flatMap((o,C)=>{let J=()=>_()===C,j=r("button",{class:()=>`tab ${J()?"tab-active":""} ${o.class||""}`,onclick:(z)=>{z.preventDefault(),_(C),o.onclick?.(z)}},[q(o),o.closable?r("span",{class:"ml-1 inline-flex items-center justify-center w-4 h-4 rounded-full hover:bg-base-300 text-base-content/60 hover:text-base-content cursor-pointer",onclick:(z)=>{z.stopPropagation(),E?.(C,o)}},r("span",{class:"icon-[lucide--x] w-3 h-3"})):null]),l=r("div",{class:"tab-content bg-base-100 border-base-300 p-6",style:()=>`display: ${J()?"block":"none"};`},Q(o.content)?o.content():o.content);return[j,l]})})},Yr=(n)=>r("textarea",{...n,class:y("textarea",n.class)}),Br=(n)=>{let f=Array.isArray(n.words)?n.words:typeof n.words==="string"?n.words.split(","):[];return r("span",{...n,class:y("text-rotate",n.class)},r("span",{},f.map((t)=>r("span",{},t))))},Sr=(n,f)=>r("ul",{...n,class:y("timeline",n.class)},f),Ur=(n,f="alert-success",t=3500)=>{let _=document.getElementById("sigpro-toast-container");if(!_)_=r("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(_);let a=r("div",{style:"display: contents"});_.appendChild(a);let u,w,b,N=un(()=>{let o=L(!1),C=L(!1);u=()=>{if(C())return;clearTimeout(w),clearTimeout(b),C(!0),setTimeout(()=>{if(N.destroy(),a.remove(),!_.hasChildNodes())_.remove()},300)},b=setTimeout(()=>o(!0),0);let J=typeof n==="function"?A(n):n,j=typeof J==="string"?r("span",{},J):J;return r("div",{class:()=>{if(C())return`alert alert-soft ${f} shadow-lg transition-all duration-300 translate-x-full opacity-0 pointer-events-auto`;if(o())return`alert alert-soft ${f} shadow-lg transition-all duration-300 translate-x-0 opacity-100 pointer-events-auto`;return`alert alert-soft ${f} shadow-lg transition-all duration-300 translate-x-10 opacity-0 pointer-events-auto`}},[j,r("button",{class:"btn btn-xs btn-circle btn-ghost",onclick:u},r("span",{class:"icon-[lucide--x]"}))])},a);if(t>0)w=setTimeout(u,t);return u},Vr=(n)=>r("input",{...n,type:"checkbox",class:y("toggle",n.class)}),qr=(n,f)=>r("div",{...n,class:y("tooltip",n.class),"data-tip":n.tip},f);var an={};nn(an,{Editor:()=>Ir});var Ir=(n)=>{let{value:f,class:t}=n,_=null,a=null,u=L(!1),w=L(""),b=L(0),E=L(0),N=L(!1),o=["\uD83D\uDE00","\uD83D\uDE0A","\uD83D\uDE09","\uD83E\uDDD0","\uD83D\uDE2E","\uD83E\uDD14","\uD83D\uDE05","\uD83D\uDE02","\uD83D\uDE0D","\uD83D\uDE18","\uD83E\uDD70","\uD83D\uDC4D","\uD83D\uDC4E","\uD83D\uDC4C","\uD83E\uDD1D","\uD83E\uDD1E","\uD83D\uDC4B","\uD83D\uDC4F","\uD83D\uDE4C","\uD83D\uDE4F","\uD83D\uDCAA","☝️","\uD83D\uDC47","\uD83D\uDC48","\uD83D\uDC49","\uD83D\uDD95","✅","⚠️","\uD83D\uDE80","\uD83D\uDCE2","✉️","❤️"],C=()=>{let W=window.getSelection();if(W.getRangeAt&&W.rangeCount)a=W.getRangeAt(0)},J=()=>{if(a){let W=window.getSelection();W.removeAllRanges(),W.addRange(a)}},j=()=>{if(E(E()+1),_)b(_.innerText.length)},l=()=>{if(!_)return;let W=_.innerHTML;if(Q(f))f(W);else n.onchange?.(W);j()},z=(W,X=null)=>{if(!_)return;if(_.focus(),a)J();document.execCommand(W,!1,X),a=null,l()},T=(W)=>{let X=document.createElement("div");X.style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:9999;display:flex;align-items:center;justify-content:center;cursor:zoom-out;";let k=document.createElement("img");k.src=W,k.style="max-width:95%;max-height:95%;box-shadow:0 0 30px rgba(0,0,0,0.5);border-radius:4px;",X.onclick=()=>document.body.removeChild(X),X.appendChild(k),document.body.appendChild(X)},Z=(W)=>{if(!W)return;let X=new FileReader;X.onload=(k)=>{if(W.type.startsWith("image/")){let P=` `;z("insertHTML",P)}else{let P=`${W.name} `;z("insertHTML",P)}},X.readAsDataURL(W)},$=(W,X=null)=>{if(E(),!_||u())return!1;try{if(W==="formatBlock"){let k=window.getSelection().getRangeAt(0).commonAncestorContainer;while(k&&k!==_){if(k.nodeType===1&&k.tagName===X)return!0;k=k.parentNode}return!1}return document.queryCommandState(W)}catch(k){return!1}},v=r("div",{class:"flex flex-wrap items-center gap-1 p-2 border-b border-base-300 bg-base-200 sticky top-0 z-20"},[r("div",{class:"flex flex-wrap gap-1 flex-1 items-center"},[r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${$("bold")?"btn-active bg-primary/20":""}`,onclick:()=>z("bold")},r("span",{class:"icon-[lucide--bold]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${$("italic")?"btn-active bg-primary/20":""}`,onclick:()=>z("italic")},r("span",{class:"icon-[lucide--italic]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${$("underline")?"btn-active bg-primary/20":""}`,onclick:()=>z("underline")},r("span",{class:"icon-[lucide--underline]"})),r("input",{type:"color",class:"w-5 h-5 p-0 border-0 bg-transparent cursor-pointer",oninput:(W)=>z("foreColor",W.target.value)}),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("justifyLeft")},r("span",{class:"icon-[lucide--align-left]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("justifyCenter")},r("span",{class:"icon-[lucide--align-center]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("justifyRight")},r("span",{class:"icon-[lucide--align-right]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("insertUnorderedList")},r("span",{class:"icon-[lucide--list]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("insertOrderedList")},r("span",{class:"icon-[lucide--list-ordered]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("outdent"),title:"Mover izquierda"},r("span",{class:"icon-[lucide--indent-decrease]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("indent"),title:"Mover derecha (Tab)"},r("span",{class:"icon-[lucide--indent-increase]"})),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${$("formatBlock","BLOCKQUOTE")?"btn-active":""}`,onclick:()=>z("formatBlock",$("formatBlock","BLOCKQUOTE")?"P":"BLOCKQUOTE")},r("span",{class:"icon-[lucide--quote]"})),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let W=window.prompt("URL:");if(W)z("createLink",W)}},r("span",{class:"icon-[lucide--link]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>{let W=document.createElement("input");W.type="file",W.onchange=(X)=>Z(X.target.files[0]),W.click()}},r("span",{class:"icon-[lucide--paperclip]"})),r("div",{class:"relative"},[r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:(W)=>{W.stopPropagation(),C(),N(!N())}},r("span",{class:"icon-[lucide--smile]"})),r("div",{class:"absolute top-full left-0 mt-1 p-2 bg-base-100 border border-base-300 shadow-xl rounded-box w-52 z-50 flex flex-wrap gap-1",style:()=>N()?"display:flex":"display:none"},o.map((W)=>r("span",{class:"cursor-pointer hover:bg-base-200 p-1 rounded text-lg",onclick:(X)=>{X.stopPropagation(),z("insertText",W),N(!1)}},W)))]),r("span",{class:"w-px h-5 bg-base-300 mx-1"}),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("removeFormat")},r("span",{class:"icon-[lucide--eraser]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("undo"),title:"Deshacer"},r("span",{class:"icon-[lucide--undo-2]"})),r("button",{type:"button",class:"btn btn-ghost btn-xs",onclick:()=>z("redo"),title:"Rehacer"},r("span",{class:"icon-[lucide--redo-2]"}))]),r("button",{type:"button",class:()=>`btn btn-ghost btn-xs ${u()?"btn-active":""}`,onclick:()=>{if(!u())w(_?.innerHTML||"");else if(_)_.innerHTML=w(),l();u(!u())}},r("span",{class:"icon-[lucide--code-2]"}))]);if(typeof document<"u"&&!document.getElementById("editor-styles")){let W=document.createElement("style");W.id="editor-styles",W.textContent=`
+ [contenteditable="true"] div,
+ [contenteditable="true"] p {
+ margin: 0;
+ padding: 0;
+ }
+ `,document.head.appendChild(W)}return r("div",{class:y("border border-base-300 rounded-box bg-base-100 overflow-hidden shadow-sm flex flex-col",t)},[v,r("div",{class:"relative flex-1 flex flex-col",onclick:()=>N(!1)},[r("div",{ref:(W)=>{if(!_&&W)_=W,W.innerHTML=A(f)||"",document.execCommand("defaultParagraphSeparator",!1,"br"),W.addEventListener("click",(X)=>{let k=X.target.closest(".resizable-img-container");if(k){let P=k.querySelector("img");if(P)T(P.src)}})},style:()=>`min-height:22rem;${u()?"display:none":""}`,class:"p-4 outline-none text-base-content leading-relaxed [&>div]:m-0 [&>p]:m-0 [&>div]:min-h-[1em] [&_.resizable-img-container]:hover:border-primary [&_blockquote]:border-l-4 [&_blockquote]:border-base-300 [&_blockquote]:pl-4 [&_blockquote]:italic [&_ul]:list-disc [&_ul]:pl-8 [&_ol]:list-decimal [&_ol]:pl-8",contenteditable:"true",oninput:l,onkeydown:(W)=>{if(W.key==="Tab")W.preventDefault(),z("indent")},onkeyup:()=>{j(),C()},onclick:(W)=>{j(),C(),W.stopPropagation()},onmouseup:()=>{l(),C()},onpaste:(W)=>{W.preventDefault();let X=W.clipboardData.getData("text/plain");z("insertText",X)},ondragover:(W)=>W.preventDefault(),ondrop:(W)=>{W.preventDefault(),Z(W.dataTransfer.files[0])}}),r("textarea",{class:"w-full flex-1 min-h-[22rem] p-4 outline-none font-mono text-sm bg-base-200 border-0",style:()=>u()?"":"display:none",value:w,oninput:(W)=>{if(w(W.target.value),_)_.innerHTML=W.target.value;n.onchange?.(W.target.value)}})]),r("div",{class:"px-3 py-1 border-t border-base-300 bg-base-100/50 text-[10px] text-right text-base-content/60 italic"},[r("span",()=>`${b()} caracteres`)])])};var Hr={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"}},Xn=L("es"),An=(n)=>Xn(n),Qn=(n)=>()=>Hr[Xn()][n]||n;var kn={...wn,...an},Kn={Locale:An,tt:Qn};if(typeof window<"u")Object.entries({...kn,...Kn}).forEach(([n,f])=>{Object.defineProperty(window,n,{value:f,writable:!1,configurable:!0,enumerable:!0})}),console.log("SigProUI installed");})();
diff --git a/docs/components/accordion.md b/docs/components/accordion.md
deleted file mode 100644
index ef9c046..0000000
--- a/docs/components/accordion.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# Accordion
-
-Collapsible accordion component for organizing content into expandable sections.
-
-## Tag
-
-`Accordion`
-
-## Props
-
-| Prop | Type | Default | Description |
-| :--------- | :--------------------------- | :--------------- | :----------------------------------------- |
-| `title` | `string \| VNode \| Signal` | Required | Accordion section title |
-| `open` | `boolean \| Signal` | `false` | Whether the accordion is expanded |
-| `name` | `string` | `auto-generated` | Group name for radio-style accordions |
-| `class` | `string` | `''` | Additional CSS classes |
-| `children` | `VNode \| Array` | Required | Content to display when expanded |
-| `items` | `Array` | `-` | Array of accordion items (alternative API) |
-
-## Live Examples
-
-### Basic Accordion
-
-
-
-```js
-const { Accordion, Div, mount } = window;
-
-const BasicDemo = () => {
- const open1 = $(false);
- const open2 = $(false);
- const open3 = $(false);
-
- return div({ class: "flex flex-col gap-2" }, [
- Accordion(
- {
- title: "Section 1",
- open: open1,
- },
- div(
- { class: "p-2" },
- "Content for section 1. This is a basic accordion section.",
- ),
- ),
- Accordion({
- title: "Section 2",
- open: open2,
- }, div(
- { class: "p-2" },
- "Content for section 2. You can put any content here.",
- ),),
- Accordion({
- title: "Section 3",
- open: open3,
- children: div(
- { class: "p-2" },
- "Content for section 3. Accordions are great for FAQs.",
- ),
- }),
- ]);
-};
-mount(BasicDemo, "#demo-basic");
-```
diff --git a/docs/components/alert.md b/docs/components/alert.md
deleted file mode 100644
index a66a4ca..0000000
--- a/docs/components/alert.md
+++ /dev/null
@@ -1,207 +0,0 @@
-# Alert
-
-Alert component for displaying contextual messages, notifications, and feedback with different severity levels. Supports soft and solid variants.
-
-## Tag
-
-`Alert`
-
-## Props
-
-| Prop | Type | Default | Description |
-| :--- | :--- | :--- | :--- |
-| `class` | `string` | `''` | Additional CSS classes (DaisyUI + Tailwind) |
-| `children` | `string \| VNode \| Array` | Required | Alert content |
-
-## Styling
-
-Alert supports all **daisyUI Alert classes**:
-
-| Category | Classes | Description |
-| :--- | :--- | :--- |
-| Color | `alert-info`, `alert-success`, `alert-warning`, `alert-error` | Alert type variants |
-| Style | `alert-soft` (default), `alert-solid` | Visual style variants |
-
-> For further details, check the [daisyUI Alert Documentation](https://daisyui.com/components/alert) – Full reference for CSS classes.
-
-## Live Examples
-
-### Basic Alerts
-
-
-
-```js
-const { Alert, Div, mount } = window;
-
-const BasicDemo = () => {
- return div({ class: 'flex flex-col gap-3' }, [
- Alert({ class: 'alert-info' }, 'This is an informational message.'),
- Alert({ class: 'alert-success' }, 'Operation completed successfully!'),
- Alert({ class: 'alert-warning' }, 'Please review your input before proceeding.'),
- Alert({ class: 'alert-error' }, 'An error occurred while processing your request.')
- ]);
-};
-mount(BasicDemo, '#demo-basic');
-```
-
-### Soft vs Solid Variants
-
-
-
-```js
-const { Alert, Div, mount } = window;
-
-const VariantsDemo = () => {
- return div({ class: 'flex flex-col gap-3' }, [
- Alert({ class: 'alert-info alert-soft' }, 'Soft info alert'),
- Alert({ class: 'alert-info alert-solid' }, 'Solid info alert'),
- Alert({ class: 'alert-success alert-soft' }, 'Soft success alert'),
- Alert({ class: 'alert-success alert-solid' }, 'Solid success alert')
- ]);
-};
-mount(VariantsDemo, '#demo-variants');
-```
-
-### With Actions
-
-
-
-```js
-const { Alert, Button, Div, mount, Toast } = window;
-
-const ActionsDemo = () => {
- const showUndo = $(false);
- const deletedItem = $(null);
-
- const deleteItem = (item) => {
- deletedItem(item);
- showUndo(true);
- setTimeout(() => {
- if (showUndo()) {
- showUndo(false);
- Toast('Item permanently deleted', 'alert-info', 2000);
- }
- }, 5000);
- };
-
- const undoDelete = () => {
- showUndo(false);
- Toast(`Restored: ${deletedItem()}`, 'alert-success', 2000);
- };
-
- return div({ class: 'flex flex-col gap-4' }, [
- div({ class: 'flex gap-2' }, [
- button({ class: 'btn btn-sm', onclick: () => deleteItem('Document A') }, 'Delete Document A'),
- button({ class: 'btn btn-sm', onclick: () => deleteItem('Document B') }, 'Delete Document B')
- ]),
- () => showUndo() ? Alert({ class: 'alert-warning alert-soft flex justify-between items-center' }, [
- span({}, `Deleted: ${deletedItem()}`),
- button({ class: 'btn btn-sm btn-primary', onclick: undoDelete }, 'Undo')
- ]) : null
- ]);
-};
-mount(ActionsDemo, '#demo-actions');
-```
-
-### Dismissible Alert
-
-
-
-```js
-const { Alert, Button, Div, mount } = window;
-
-const DismissibleDemo = () => {
- const visible = $(true);
-
- return div({ class: 'flex flex-col gap-3' }, [
- () => visible() ? Alert({ class: 'alert-info flex justify-between items-center' }, [
- span({}, 'This alert can be dismissed. Click the X button to close.'),
- button({ class: 'btn btn-xs btn-circle btn-ghost', onclick: () => visible(false) }, '✕')
- ]) : null,
- () => !visible() ? button({ class: 'btn btn-sm btn-ghost', onclick: () => visible(true) }, 'Show Alert') : null
- ]);
-};
-mount(DismissibleDemo, '#demo-dismissible');
-```
-
-### Reactive Alert
-
-
-
-```js
-const { Alert, Div, Input, mount } = window;
-
-const ReactiveDemo = () => {
- const email = $('');
- const error = $('');
-
- const validateEmail = (value) => {
- email(value);
- if (value && !value.includes('@')) {
- error('Please enter a valid email address');
- } else {
- error('');
- }
- };
-
- return div({ class: 'flex flex-col gap-4' }, [
- input({
- class: 'input input-bordered',
- placeholder: 'Enter your email',
- value: email,
- oninput: (e) => validateEmail(e.target.value)
- }),
- () => error() ? Alert({ class: 'alert-error' }, error()) : null,
- () => email() && !error() ? Alert({ class: 'alert-success' }, `Valid email: ${email()}`) : null
- ]);
-};
-mount(ReactiveDemo, '#demo-reactive');
-```
-
-### All Types
-
-
-
-```js
-const { Alert, Div, mount } = window;
-
-const AllTypesDemo = () => {
- return div({ class: 'flex flex-col gap-3' }, [
- Alert({ class: 'alert-info' }, 'ℹ️ This is an info alert'),
- Alert({ class: 'alert-success' }, '✅ This is a success alert'),
- Alert({ class: 'alert-warning' }, '⚠️ This is a warning alert'),
- Alert({ class: 'alert-error' }, '❌ This is an error alert')
- ]);
-};
-mount(AllTypesDemo, '#demo-all');
-```
diff --git a/docs/components/autocomplete.md b/docs/components/autocomplete.md
deleted file mode 100644
index 92e058e..0000000
--- a/docs/components/autocomplete.md
+++ /dev/null
@@ -1,117 +0,0 @@
-# Autocomplete
-
-
-
-```js
-// const App = () => {
-// const selected = $('');
-// const filterType = $('all');
-
-// const allItems = {
-// fruits: ['Apple', 'Banana', 'Orange', 'Mango'],
-// vegetables: ['Carrot', 'Broccoli', 'Spinach', 'Potato'],
-// all: ['Apple', 'Banana', 'Orange', 'Mango', 'Carrot', 'Broccoli', 'Spinach', 'Potato']
-// };
-
-// return div({ class: 'flex flex-col gap-4 w-full' }, [
-// Select({
-// items: [
-// { value: 'all', label: 'All items' },
-// { value: 'fruits', label: 'Fruits' },
-// { value: 'vegetables', label: 'Vegetables' }
-// ],
-// value: filterType,
-// onchange: (e) => filterType(e.target.value)
-// },
-// ),
-// Autocomplete({
-// items: () => allItems[filterType()],
-// value: selected,
-// onselect: (value) => selected(value)
-// })
-// ]);
-// };
-
-
-const App = () => {
- const password = $("");
- const selected = $('');
-
- const countries = [
- 'España', 'México', 'Argentina', 'Colombia', 'Chile',
- { label: 'Estados Unidos', value: 'US' },
- { label: 'Canadá', value: 'CA' },
- ];
-
- // Lógica de validación sencilla
- const requirements = [
- { label: "Mínimo 8 caracteres", check: () => password().length >= 8 },
- { label: "Incluye un número", check: () => /\d/.test(password()) },
- { label: "Símbolo especial", check: () => /[^A-Za-z0-9]/.test(password()) },
- ];
- const paisSelected = $("");
- return div({ class: "p-10 max-w-md" }, [
- Autocomplete({
- label: 'País',
- float: true,
- placeholder: 'Escribe para buscar...',
- items: countries,
- value: selected,
- onselect: (item) => console.log('Seleccionado:', item),
- }),
-
- h('p', { class: 'text-sm opacity-70' }, () =>
- `Valor actual: ${selected() || 'ninguno'}`
- ),
- Input({
- type: "password",
- value: password,
- rule: "[0-9]*",
- hint: "Debes escribir numeros del 0 al 9",
- oninput: (e) => password(e.target.value),
- label: "Pass",
- float: true,
- left: span({ class: "icon-[lucide--lock] mr-2" }),
- // El contenido que se animará con fx() dentro del Input
- content: div(
- {
- class:
- "mt-2 p-4 bg-base-200 rounded-lg shadow-xl border border-base-300",
- },
- [
- span(
- { class: "text-xs font-bold uppercase opacity-50" },
- "Seguridad:",
- ),
- ul(
- { class: "mt-2 space-y-1" },
- requirements.map((req) =>
- h(
- "li",
- {
- class: () =>
- `flex items-center text-sm ${req.check() ? "text-success" : "text-error opacity-50"}`,
- },
- [
- span({
- class: () =>
- `mr-2 ${req.check() ? "icon-[lucide--check]" : "icon-[lucide--x]"}`,
- }),
- req.label,
- ],
- ),
- ),
- ),
- ],
- ),
- }),
- ]);
-};
-
-mount(App, "#app-demo");
-```
diff --git a/docs/components/badge.md b/docs/components/badge.md
deleted file mode 100644
index 498ae38..0000000
--- a/docs/components/badge.md
+++ /dev/null
@@ -1,323 +0,0 @@
-# Badge
-
-Badge component for displaying counts, labels, and status indicators.
-
-## Tag
-
-`Badge`
-
-## Props
-
-| Prop | Type | Default | Description |
-| :--- | :--- | :--- | :--- |
-| `class` | `string` | `''` | Additional CSS classes (DaisyUI badge variants) |
-| `children` | `string \| VNode` | `-` | Badge content |
-
-## Styling
-
-Badge supports all **daisyUI Badge classes**:
-
-| Category | Keywords | Description |
-| :--- | :--- | :--- |
-| Color | `badge-primary`, `badge-secondary`, `badge-accent`, `badge-info`, `badge-success`, `badge-warning`, `badge-error` | Visual color variants |
-| Size | `badge-xs`, `badge-sm`, `badge-md`, `badge-lg` | Badge scale |
-| Style | `badge-outline`, `badge-ghost`, `badge-dash` | Visual style variants |
-
-> For further details, check the [daisyUI Badge Documentation](https://daisyui.com/components/badge) – Full reference for CSS classes.
-
-### Example
-
-```javascript
-Badge({ class: "badge-primary badge-lg" }, "New");
-// Applies: primary color, large size
-```
-
-## Live Examples
-
-### Basic Badge
-
-
-
-```javascript
-const BasicDemo = () => {
- return div({ class: 'flex flex-wrap gap-2' }, [
- Badge({}, 'Default'),
- Badge({ class: 'badge-primary' }, 'Primary'),
- Badge({ class: 'badge-secondary' }, 'Secondary'),
- Badge({ class: 'badge-accent' }, 'Accent'),
- Badge({ class: 'badge-info' }, 'Info'),
- Badge({ class: 'badge-success' }, 'Success'),
- Badge({ class: 'badge-warning' }, 'Warning'),
- Badge({ class: 'badge-error' }, 'Error')
- ]);
-};
-mount(BasicDemo, '#demo-basic');
-```
-
-### Badge Sizes
-
-
-
-```javascript
-const SizesDemo = () => {
- return div({ class: 'flex flex-wrap gap-2 items-center' }, [
- Badge({ class: 'badge-xs' }, 'Extra Small'),
- Badge({ class: 'badge-sm' }, 'Small'),
- Badge({}, 'Default'),
- Badge({ class: 'badge-md' }, 'Medium'),
- Badge({ class: 'badge-lg' }, 'Large')
- ]);
-};
-mount(SizesDemo, '#demo-sizes');
-```
-
-### Outline Badges
-
-
-
-```javascript
-const OutlineDemo = () => {
- return div({ class: 'flex flex-wrap gap-2' }, [
- Badge({ class: 'badge-outline' }, 'Default'),
- Badge({ class: 'badge-outline badge-primary' }, 'Primary'),
- Badge({ class: 'badge-outline badge-secondary' }, 'Secondary'),
- Badge({ class: 'badge-outline badge-accent' }, 'Accent'),
- Badge({ class: 'badge-outline badge-info' }, 'Info'),
- Badge({ class: 'badge-outline badge-success' }, 'Success'),
- Badge({ class: 'badge-outline badge-warning' }, 'Warning'),
- Badge({ class: 'badge-outline badge-error' }, 'Error')
- ]);
-};
-mount(OutlineDemo, '#demo-outline');
-```
-
-### Ghost Badges
-
-
-
-```javascript
-const GhostDemo = () => {
- return div({ class: 'flex flex-wrap gap-2' }, [
- Badge({ class: 'badge-ghost' }, 'Default'),
- Badge({ class: 'badge-ghost badge-primary' }, 'Primary'),
- Badge({ class: 'badge-ghost badge-secondary' }, 'Secondary'),
- Badge({ class: 'badge-ghost badge-accent' }, 'Accent'),
- Badge({ class: 'badge-ghost badge-info' }, 'Info'),
- Badge({ class: 'badge-ghost badge-success' }, 'Success'),
- Badge({ class: 'badge-ghost badge-warning' }, 'Warning'),
- Badge({ class: 'badge-ghost badge-error' }, 'Error')
- ]);
-};
-mount(GhostDemo, '#demo-ghost');
-```
-
-### With Icons
-
-
-
-```javascript
-const IconsDemo = () => {
- return div({ class: 'flex flex-wrap gap-2' }, [
- Badge({ class: 'gap-1' }, [
- span({}, '✓'),
- span({}, 'Success')
- ]),
- Badge({ class: 'gap-1 badge-warning' }, [
- span({}, '⚠'),
- span({}, 'Warning')
- ]),
- Badge({ class: 'gap-1 badge-error' }, [
- span({}, '✗'),
- span({}, 'Error')
- ]),
- Badge({ class: 'gap-1 badge-info' }, [
- span({}, 'ℹ'),
- span({}, 'Info')
- ]),
- Badge({ class: 'gap-1' }, [
- span({}, '★'),
- span({}, '4.5')
- ])
- ]);
-};
-mount(IconsDemo, '#demo-icons');
-```
-
-### Status Badges
-
-
-
-```javascript
-const StatusDemo = () => {
- const statuses = [
- { label: 'Active', class: 'badge-success' },
- { label: 'Pending', class: 'badge-warning' },
- { label: 'Completed', class: 'badge-info' },
- { label: 'Failed', class: 'badge-error' },
- { label: 'Archived', class: 'badge-ghost' }
- ];
-
- return div({ class: 'flex flex-col gap-2' }, [
- div({ class: 'text-sm font-bold mb-2' }, 'Order Status'),
- div({ class: 'flex flex-wrap gap-2' }, statuses.map(status =>
- Badge({ class: status.class }, status.label)
- ))
- ]);
-};
-mount(StatusDemo, '#demo-status');
-```
-
-### Count Badges
-
-
-
-```javascript
-const CountDemo = () => {
- const notifications = $(3);
- const messages = $(5);
- const updates = $(0);
-
- return div({ class: 'flex flex-wrap gap-6' }, [
- div({ class: 'flex items-center gap-2' }, [
- span({}, 'Notifications'),
- Badge({ class: 'badge-primary' }, () => notifications())
- ]),
- div({ class: 'flex items-center gap-2' }, [
- span({}, 'Messages'),
- Badge({ class: 'badge-secondary' }, () => messages())
- ]),
- div({ class: 'flex items-center gap-2' }, [
- span({}, 'Updates'),
- Badge({ class: 'badge-ghost' }, () => updates() || '0')
- ])
- ]);
-};
-mount(CountDemo, '#demo-count');
-```
-
-### Interactive Badge
-
-
-
-```javascript
-const InteractiveDemo = () => {
- const count = $(0);
-
- return div({ class: 'flex flex-col gap-4 items-center' }, [
- div({ class: 'flex items-center gap-4' }, [
- button({ class: 'btn btn-sm', onclick: () => count(count() - 1) }, '-'),
- Badge({ class: 'badge-primary text-lg min-w-[4rem] justify-center' }, () => count()),
- button({ class: 'btn btn-sm', onclick: () => count(count() + 1) }, '+')
- ]),
- button({
- class: 'btn btn-ghost btn-sm',
- onclick: () => count(0)
- }, 'Reset')
- ]);
-};
-mount(InteractiveDemo, '#demo-interactive');
-```
-
-### All Variants
-
-
-
-```javascript
-const VariantsDemo = () => {
- return div({ class: 'flex flex-col gap-6' }, [
- div({ class: 'flex flex-wrap gap-2' }, [
- Badge({ class: 'badge-xs' }, 'XS'),
- Badge({ class: 'badge-sm' }, 'SM'),
- Badge({}, 'MD'),
- Badge({ class: 'badge-lg' }, 'LG')
- ]),
- div({ class: 'flex flex-wrap gap-2' }, [
- Badge({ class: 'badge-primary badge-sm' }, 'Primary'),
- Badge({ class: 'badge-secondary badge-sm' }, 'Secondary'),
- Badge({ class: 'badge-accent badge-sm' }, 'Accent')
- ]),
- div({ class: 'flex flex-wrap gap-2' }, [
- Badge({ class: 'badge-outline badge-primary' }, 'Outline'),
- Badge({ class: 'badge-ghost badge-primary' }, 'Ghost')
- ])
- ]);
-};
-mount(VariantsDemo, '#demo-variants');
-```
-
-### Inline with Text
-
-
-
-```javascript
-const InlineDemo = () => {
- return div({ class: 'space-y-2' }, [
- div({ class: 'text-sm' }, [
- 'Your order is ',
- Badge({ class: 'badge-success badge-sm' }, 'Confirmed'),
- ' and will be shipped soon.'
- ]),
- div({ class: 'text-sm' }, [
- 'This feature is ',
- Badge({ class: 'badge-warning badge-sm' }, 'Beta'),
- ' and may change.'
- ]),
- div({ class: 'text-sm' }, [
- 'Version ',
- Badge({ class: 'badge-info badge-xs' }, 'v2.1.0'),
- ' released on March 2026'
- ])
- ]);
-};
-mount(InlineDemo, '#demo-inline');
-```
\ No newline at end of file
diff --git a/docs/components/button.md b/docs/components/button.md
deleted file mode 100644
index 657db00..0000000
--- a/docs/components/button.md
+++ /dev/null
@@ -1,159 +0,0 @@
-# Button
-
----
-
-## Props
-
-| Prop | Type | Description |
-| :--------- | :--------------------------- | :----------------------------------------------------- |
-| `class` | `string` | Additional CSS classes |
-| `loading` | `boolean \| Signal` | Shows a spinner and disables the button |
-| `disabled` | `boolean \| Signal` | Disabled state |
-| `icon` | `string \| VNode \| Signal` | Icon displayed before the text |
-| `onclick` | `function` | Click event handler |
-| `type` | `string` | Native button type (`'button'`, `'submit'`, `'reset'`) |
-
----
-
-## Classes (daisyUI)
-
-| Category | Keywords | Description |
-| :------- | :--------------------------------------------------------------------------------------------------------------- | :-------------------- |
-| Color | `btn-primary`, `btn-secondary`, `btn-accent`, `btn-ghost`, `btn-info`, `btn-success`, `btn-warning`, `btn-error` | Visual color variants |
-| Size | `btn-xs`, `btn-sm`, `btn-md`, `btn-lg`, `btn-xl` | Button scale |
-| Style | `btn-outline`, `btn-soft`, `btn-dash`, `btn-link` | Visual style variants |
-| Shape | `btn-circle`, `btn-square`, `btn-wide`, `btn-block` | Button shape |
-| State | `btn-active`, `btn-disabled` | Forced visual states |
-
-> SigProUI supports styling via daisyUI independently or combined with the `ui` prop.
-> For further details, check the [daisyUI Button Documentation](https://daisyui.com/components/button) – Full reference for CSS classes.
-
-### Example
-
-```javascript
-button({ class: "btn-primary btn-lg btn-circle gap-4" }, "Click Me");
-// Applies: primary color, large size, circular shape
-// class is any css class from pure css or favorite framework
-```
-
----
-
-## Examples
-
-### Basic Button
-
-
-
-```javascript
-const BasicDemo = () => {
- return button({ class: "btn-primary" }, "Click Me");
-};
-mount(BasicDemo, "#demo-basic");
-```
-
-### With Loading State
-
-
-
-```javascript
-const LoadingDemo = () => {
- const isSaving = $(false);
-
- return button(
- {
- class: "btn-success",
- disabled: isSaving,
- onclick: async () => {
- isSaving(true);
- await new Promise((resolve) => setTimeout(resolve, 2000));
- isSaving(false);
- },
- },
- [when(isSaving, ()=>Loading()), "Save Changes"],
- );
-};
-mount(LoadingDemo, "#demo-loading");
-```
-
-### With Icon
-
-
-
-```javascript
-const IconDemo = () => {
- return div({ class: "flex flex-wrap gap-2 justify-center" }, [
- button({ class: "btn-primary" }, [Icon("icon-[lucide--x]"), "Favorite"]),
- ]);
-};
-mount(IconDemo, "#demo-icon");
-```
-
-### With Badge (using Indicator)
-
-
-
-```javascript
-const BadgeDemo = () => {
- return Indicator(
- { value: "3", class: "badge-accent" },
- button({ class: "btn-outline" }, "Notifications"),
- );
-};
-mount(BadgeDemo, "#demo-badge");
-```
-
-### With Tooltip
-
-
-
-```javascript
-const TooltipDemo = () => {
- return Tooltip(
- { tip: "Delete item" },
- button({ class: "btn-ghost" }, "Delete"),
- );
-};
-mount(TooltipDemo, "#demo-tooltip");
-```
-
-### Combined (Badge + Tooltip)
-
-
-
-```javascript
-const CombinedDemo = () => {
- const count = $(0);
- return Tooltip(
- { tip: () => `${count()} likes` },
- Indicator(
- { value: count, class: "badge-accent" },
- button(
- {
- class: "btn-primary btn-lg",
- onclick: () => count(count() + 1),
- },
- ["👍", "Like", Icon("icon-[lucide--heart]")],
- ),
- ),
- );
-};
-mount(CombinedDemo, "#demo-combined");
-```
-
-### All Color Variants
-
-
-
-```javascript
-const VariantsDemo = () => {
- return div({ class: "flex flex-wrap gap-2 justify-center" }, [
- button({ class: "btn-primary" }, "Primary"),
- button({ class: "btn-secondary" }, "Secondary"),
- button({ class: "btn-accent" }, "Accent"),
- button({ class: "btn-ghost" }, "Ghost"),
- button({ class: "btn-outline" }, "Outline"),
- button({ class: "btn-disabled" }, "Disabled"),
- ]);
-};
-mount(VariantsDemo, "#demo-variants");
-```
diff --git a/docs/components/checkbox.md b/docs/components/checkbox.md
deleted file mode 100644
index c971da4..0000000
--- a/docs/components/checkbox.md
+++ /dev/null
@@ -1,292 +0,0 @@
-# Checkbox
-
-Toggle checkbox component with label support and reactive state management.
-
-## Tag
-
-`Checkbox`
-
-## Props
-
-| Prop | Type | Default | Description |
-| :--- | :--- | :--- | :--- |
-| `label` | `string` | `-` | Label text for the checkbox |
-| `value` | `boolean \| Signal` | `false` | Checked state |
-| `toggle` | `boolean` | `false` | Display as toggle switch instead of checkbox |
-| `disabled` | `boolean \| Signal` | `false` | Disabled state |
-| `class` | `string` | `''` | Additional CSS classes (DaisyUI + Tailwind) |
-| `onclick` | `function` | `-` | Click event handler |
-
-## Styling
-
-Checkbox supports all **daisyUI Checkbox and Toggle classes**:
-
-| Category | Keywords | Description |
-| :--- | :--- | :--- |
-| Color (Checkbox) | `checkbox-primary`, `checkbox-secondary`, `checkbox-accent`, `checkbox-info`, `checkbox-success`, `checkbox-warning`, `checkbox-error` | Checkbox color variants |
-| Size (Checkbox) | `checkbox-xs`, `checkbox-sm`, `checkbox-md`, `checkbox-lg` | Checkbox scale |
-| Color (Toggle) | `toggle-primary`, `toggle-secondary`, `toggle-accent`, `toggle-info`, `toggle-success`, `toggle-warning`, `toggle-error` | Toggle color variants |
-| Size (Toggle) | `toggle-xs`, `toggle-sm`, `toggle-md`, `toggle-lg` | Toggle scale |
-
-> For further details, check the [daisyUI Checkbox Documentation](https://daisyui.com/components/checkbox) and [daisyUI Toggle Documentation](https://daisyui.com/components/toggle) – Full reference for CSS classes.
-
-### Example
-
-```javascript
-// Checkbox
-Checkbox({ class: "checkbox-primary checkbox-lg", label: "Accept terms" });
-
-// Toggle switch
-Checkbox({ toggle: true, class: "toggle-success", label: "Enable feature" });
-```
-
-## Live Examples
-
-### Basic Checkbox
-
-
-
-```javascript
-const BasicDemo = () => {
- const accepted = $(false);
-
- return Checkbox({
- label: 'I accept the terms and conditions',
- value: accepted,
- onclick: () => accepted(!accepted())
- });
-};
-mount(BasicDemo, '#demo-basic');
-```
-
-### Toggle Switch
-
-
-
-```javascript
-const ToggleDemo = () => {
- const enabled = $(false);
-
- return div({ class: 'flex flex-col gap-4 w-full' }, [
- Checkbox({
- label: 'Enable notifications',
- value: enabled,
- toggle: true,
- onclick: () => enabled(!enabled())
- }),
- () => enabled()
- ? div({ class: 'alert alert-success' }, 'Notifications are ON')
- : div({ class: 'alert alert-soft' }, 'Notifications are OFF')
- ]);
-};
-mount(ToggleDemo, '#demo-toggle');
-```
-
-### Disabled State
-
-
-
-```javascript
-const DisabledDemo = () => {
- return div({ class: 'flex flex-col gap-3' }, [
- Checkbox({
- label: 'Checked and disabled',
- value: true,
- disabled: true
- }),
- Checkbox({
- label: 'Unchecked and disabled',
- value: false,
- disabled: true
- })
- ]);
-};
-mount(DisabledDemo, '#demo-disabled');
-```
-
-### Reactive Multiple Selection
-
-
-
-```javascript
-const MultipleDemo = () => {
- const options = [
- { id: 1, label: 'Option 1', selected: $(false) },
- { id: 2, label: 'Option 2', selected: $(false) },
- { id: 3, label: 'Option 3', selected: $(false) }
- ];
-
- const selectAll = $(false);
-
- const toggleAll = (value) => {
- selectAll(value);
- options.forEach(opt => opt.selected(value));
- };
-
- const updateSelectAll = () => {
- const allSelected = options.every(opt => opt.selected());
- selectAll(allSelected);
- };
-
- return div({ class: 'flex flex-col gap-3' }, [
- Checkbox({
- label: 'Select all',
- value: selectAll,
- onclick: () => toggleAll(!selectAll())
- }),
- div({ class: 'divider my-1' }),
- ...options.map(opt => Checkbox({
- label: opt.label,
- value: opt.selected,
- onclick: () => {
- opt.selected(!opt.selected());
- updateSelectAll();
- }
- })),
- div({ class: 'mt-2 text-sm opacity-70' }, () => {
- const count = options.filter(opt => opt.selected()).length;
- return `${count} of ${options.length} selected`;
- })
- ]);
-};
-mount(MultipleDemo, '#demo-multiple');
-```
-
-### With Tooltip
-
-
-
-```javascript
-const TooltipDemo = () => {
- const accepted = $(false);
-
- return Tooltip({
- tip: "You must accept the terms to continue"
- },
- Checkbox({
- label: 'I accept the terms',
- value: accepted,
- onclick: () => accepted(!accepted())
- })
- );
-};
-mount(TooltipDemo, '#demo-tooltip');
-```
-
-### All Variants
-
-
-
-```javascript
-const VariantsDemo = () => {
- const variant1 = $(true);
- const variant2 = $(false);
- const variant3 = $(true);
-
- return div({ class: 'flex flex-col gap-3' }, [
- div({ class: 'flex items-center gap-4' }, [
- Checkbox({
- label: 'Primary',
- value: variant1,
- class: 'checkbox-primary',
- onclick: () => variant1(!variant1())
- }),
- Checkbox({
- label: 'Secondary',
- value: variant2,
- class: 'checkbox-secondary',
- onclick: () => variant2(!variant2())
- })
- ]),
- div({ class: 'flex items-center gap-4' }, [
- Checkbox({
- label: 'Accent',
- value: variant3,
- class: 'checkbox-accent',
- onclick: () => variant3(!variant3())
- }),
- Checkbox({
- label: 'Toggle switch',
- value: $(false),
- toggle: true,
- class: 'toggle-primary'
- })
- ])
- ]);
-};
-mount(VariantsDemo, '#demo-variants');
-```
-
-### Form Example
-
-
-
-```javascript
-const FormDemo = () => {
- const subscribe = $(false);
- const weekly = $(false);
- const monthly = $(true);
-
- return div({ class: 'flex flex-col gap-4' }, [
- div({ class: 'text-sm font-bold' }, 'Newsletter preferences'),
- Checkbox({
- label: 'Subscribe to newsletter',
- value: subscribe,
- onclick: () => subscribe(!subscribe())
- }),
- () => subscribe() ? div({ class: 'ml-6 flex flex-col gap-2' }, [
- Checkbox({
- label: 'Weekly updates',
- value: weekly,
- onclick: () => weekly(!weekly())
- }),
- Checkbox({
- label: 'Monthly digest',
- value: monthly,
- onclick: () => monthly(!monthly())
- })
- ]) : null,
- () => subscribe() && (weekly() || monthly())
- ? div({ class: 'alert alert-success text-sm mt-2' }, 'You will receive updates!')
- : subscribe()
- ? div({ class: 'alert alert-warning text-sm mt-2' }, 'Select at least one frequency')
- : null
- ]);
-};
-mount(FormDemo, '#demo-form');
-```
diff --git a/docs/components/colorpicker.md b/docs/components/colorpicker.md
deleted file mode 100644
index d9ac017..0000000
--- a/docs/components/colorpicker.md
+++ /dev/null
@@ -1,225 +0,0 @@
-# Colorpicker
-
-Color picker component with preset color palette, reactive value binding, and customizable appearance.
-
-## Tag
-
-`Colorpicker`
-
-## Props
-
-| Prop | Type | Default | Description |
-| :--- | :--- | :--- | :--- |
-| `label` | `string` | `-` | Label text for the button |
-| `value` | `string \| Signal` | `'#000000'` | Selected color value (hex format) |
-| `class` | `string` | `''` | Additional CSS classes (Tailwind + custom styling) |
-
-## Styling
-
-Colorpicker is a custom component built with Tailwind CSS. The button supports standard **daisyUI Button classes** for consistent styling:
-
-| Category | Keywords | Description |
-| :--- | :--- | :--- |
-| Size | `btn-xs`, `btn-sm`, `btn-md`, `btn-lg` | Button scale |
-| Style | `btn-outline`, `btn-soft`, `btn-ghost` | Visual style variants |
-
-> For further details, check the [daisyUI Button Documentation](https://daisyui.com/components/button) – The color picker button accepts standard button styling classes.
-
-## Live Examples
-
-### Basic Colorpicker
-
-
-
-```javascript
-const BasicDemo = () => {
- const color = $('#3b82f6');
-
- return Colorpicker({
- label: 'Pick a color',
- value: color
- });
-};
-mount(BasicDemo, '#demo-basic');
-```
-
-### With Reactive Preview
-
-
-
-```javascript
-const PreviewDemo = () => {
- const color = $('#10b981');
-
- return div({ class: 'flex flex-col gap-4 w-full' }, [
- Colorpicker({
- label: 'Choose color',
- value: color
- }),
- div({
- class: 'w-full h-20 rounded-lg shadow-inner transition-all duration-200 flex items-center justify-center',
- style: () => `background-color: ${color()}`
- }, [
- div({ class: 'text-center font-mono text-sm bg-black/20 px-2 py-1 rounded' }, () => color())
- ])
- ]);
-};
-mount(PreviewDemo, '#demo-preview');
-```
-
-### Color Palette Grid
-
-
-
-```javascript
-const PaletteDemo = () => {
- const selectedColor = $('#ef4444');
- const presets = [
- '#ef4444', '#f97316', '#f59e0b', '#eab308',
- '#84cc16', '#10b981', '#14b8a6', '#06b6d4',
- '#3b82f6', '#6366f1', '#8b5cf6', '#d946ef',
- '#ec489a', '#f43f5e', '#6b7280', '#1f2937'
- ];
-
- return div({ class: 'flex flex-col gap-4' }, [
- Colorpicker({
- label: 'Custom color',
- value: selectedColor
- }),
- div({ class: 'divider text-xs' }, 'Or choose from palette'),
- div({ class: 'grid grid-cols-8 gap-2' }, presets.map(color =>
- button({
- class: `w-8 h-8 rounded-lg shadow-sm transition-transform hover:scale-110`,
- style: `background-color: ${color}`,
- onclick: () => selectedColor(color)
- })
- )),
- div({ class: 'mt-2 text-center text-sm font-mono' }, () => selectedColor())
- ]);
-};
-mount(PaletteDemo, '#demo-palette');
-```
-
-### With Text Color Preview
-
-
-
-```javascript
-const TextDemo = () => {
- const bgColor = $('#1e293b');
- const textColor = $('#f8fafc');
-
- return div({ class: 'flex flex-col gap-4 w-full' }, [
- div({ class: 'flex gap-4' }, [
- Colorpicker({
- label: 'Background',
- value: bgColor
- }),
- Colorpicker({
- label: 'Text',
- value: textColor
- })
- ]),
- div({
- class: 'p-6 rounded-lg text-center font-bold transition-all duration-200',
- style: () => `background-color: ${bgColor()}; color: ${textColor()}`
- }, [
- 'Preview text with your colors'
- ])
- ]);
-};
-mount(TextDemo, '#demo-text');
-```
-
-### All Variants
-
-
-
-```javascript
-const VariantsDemo = () => {
- return div({ class: 'flex flex-wrap gap-4 items-center' }, [
- Colorpicker({
- label: 'Primary',
- value: $('#3b82f6')
- }),
- Colorpicker({
- label: 'Success',
- value: $('#10b981')
- }),
- Colorpicker({
- label: 'Warning',
- value: $('#f59e0b')
- }),
- Colorpicker({
- label: 'Error',
- value: $('#ef4444')
- })
- ]);
-};
-mount(VariantsDemo, '#demo-variants');
-```
-
-### Dynamic Color Swatch
-
-
-
-```javascript
-const DynamicDemo = () => {
- const primary = $('#3b82f6');
- const secondary = $('#ef4444');
- const accent = $('#10b981');
-
- return div({ class: 'flex flex-col gap-4 w-full' }, [
- div({ class: 'flex flex-wrap gap-4' }, [
- Colorpicker({ label: 'Primary', value: primary }),
- Colorpicker({ label: 'Secondary', value: secondary }),
- Colorpicker({ label: 'Accent', value: accent })
- ]),
- div({ class: 'grid grid-cols-3 gap-2 mt-2' }, [
- div({
- class: 'h-12 rounded-lg shadow-sm flex items-center justify-center text-xs font-bold text-white',
- style: () => `background-color: ${primary()}`
- }, 'Primary'),
- div({
- class: 'h-12 rounded-lg shadow-sm flex items-center justify-center text-xs font-bold text-white',
- style: () => `background-color: ${secondary()}`
- }, 'Secondary'),
- div({
- class: 'h-12 rounded-lg shadow-sm flex items-center justify-center text-xs font-bold text-white',
- style: () => `background-color: ${accent()}`
- }, 'Accent')
- ])
- ]);
-};
-mount(DynamicDemo, '#demo-dynamic');
-```
\ No newline at end of file
diff --git a/docs/components/datepicker.md b/docs/components/datepicker.md
deleted file mode 100644
index f5753be..0000000
--- a/docs/components/datepicker.md
+++ /dev/null
@@ -1,205 +0,0 @@
-# Datepicker
-
-Date and date range picker component with calendar interface, time selection, and reactive state management.
-
-## Tag
-
-`Datepicker`
-
-## Props
-
-| Prop | Type | Default | Description |
-| :--- | :--- | :--- | :--- |
-| `label` | `string` | `-` | Label text for the input |
-| `value` | `string \| {start: string, end: string} \| Signal` | `-` | Selected date or range |
-| `range` | `boolean` | `false` | Enable date range selection mode |
-| `hour` | `boolean` | `false` | Enable hour selection |
-| `placeholder` | `string` | `'Select date...'` | Placeholder text |
-| `class` | `string` | `''` | Additional CSS classes (DaisyUI + Tailwind) |
-
-## Styling
-
-Datepicker wraps a **daisyUI Input component** internally. All Input styling classes work:
-
-| Category | Keywords | Description |
-| :--- | :--- | :--- |
-| Color | `input-primary`, `input-secondary`, `input-accent`, `input-ghost`, `input-info`, `input-success`, `input-warning`, `input-error` | Input color variants |
-| Size | `input-xs`, `input-sm`, `input-md`, `input-lg` | Input scale |
-| Style | `input-bordered` (default), `input-ghost` | Visual style variants |
-
-> For further details, check the [daisyUI Input Documentation](https://daisyui.com/components/input) – Full reference for CSS classes.
-
-## Live Examples
-
-### Basic Datepicker
-
-
-
-```js
-const BasicDemo = () => {
- const date = $('');
-
- return Datepicker({
- label: 'Select date',
- value: date,
- placeholder: 'Choose a date...'
- });
-};
-mount(BasicDemo, '#demo-basic');
-```
-
-### Date Range Picker
-
-
-
-```javascript
-const RangeDemo = () => {
- const range = $({ start: '', end: '' });
-
- return div({ class: 'flex flex-col gap-4 w-full' }, [
- Datepicker({
- label: 'Date range',
- value: range,
- range: true,
- placeholder: 'Select start and end date...'
- }),
- () => range().start && range().end ? div({ class: 'alert alert-success' }, [
- `Selected: ${range().start} → ${range().end}`
- ]) : null
- ]);
-};
-mount(RangeDemo, '#demo-range');
-```
-
-### With Time Selection
-
-
-
-```javascript
-const TimeDemo = () => {
- const datetime = $('');
-
- return div({ class: 'flex flex-col gap-4 w-full' }, [
- Datepicker({
- label: 'Select date and time',
- value: datetime,
- hour: true,
- placeholder: 'Choose date and time...'
- }),
- () => datetime() ? div({ class: 'alert alert-info' }, [
- `Selected: ${datetime()}`
- ]) : null
- ]);
-};
-mount(TimeDemo, '#demo-time');
-```
-
-### Range with Time
-
-
-
-```javascript
-const RangeTimeDemo = () => {
- const range = $({ start: '', end: '', startHour: 9, endHour: 17 });
-
- return div({ class: 'flex flex-col gap-4 w-full' }, [
- Datepicker({
- label: 'Schedule range',
- value: range,
- range: true,
- hour: true,
- placeholder: 'Select date and time range...'
- }),
- () => range().start && range().end ? div({ class: 'alert alert-primary' }, [
- `From ${range().start} ${range().startHour || 9}:00 to ${range().end} ${range().endHour || 17}:00`
- ]) : null
- ]);
-};
-mount(RangeTimeDemo, '#demo-range-time');
-```
-
-### Reactive Display
-
-
-
-```javascript
-const ReactiveDemo = () => {
- const date = $('');
- const today = new Date().toISOString().split('T')[0];
-
- return div({ class: 'flex flex-col gap-4 w-full' }, [
- Datepicker({
- label: 'Select date',
- value: date,
- placeholder: 'Choose a date...'
- }),
- div({ class: 'stats shadow' }, [
- div({ class: 'stat' }, [
- div({ class: 'stat-title' }, 'Selected date'),
- div({ class: 'stat-value text-sm' }, () => date() || 'Not selected'),
- div({ class: 'stat-desc' }, () => date() === today ? 'Today' : '')
- ])
- ])
- ]);
-};
-mount(ReactiveDemo, '#demo-reactive');
-```
-
-### All Variants
-
-
-
-```javascript
-const VariantsDemo = () => {
- return div({ class: 'flex flex-col gap-4' }, [
- Datepicker({
- label: 'Single date',
- value: $('2024-12-25'),
- placeholder: 'Select date...'
- }),
- Datepicker({
- label: 'Date range',
- range: true,
- value: $({ start: '2024-12-01', end: '2024-12-31' }),
- placeholder: 'Select range...'
- }),
- Datepicker({
- label: 'With time',
- hour: true,
- value: $('2024-12-25T14:00:00'),
- placeholder: 'Select date and time...'
- })
- ]);
-};
-mount(VariantsDemo, '#demo-variants');
-```
\ No newline at end of file
diff --git a/docs/components/drawer.md b/docs/components/drawer.md
deleted file mode 100644
index 0aedabe..0000000
--- a/docs/components/drawer.md
+++ /dev/null
@@ -1,493 +0,0 @@
-# Drawer
-
-Drawer component for creating off-canvas side panels with overlay and toggle functionality.
-
-## Tag
-
-`Drawer`
-
-## Props
-
-| Prop | Type | Default | Description |
-| :--- | :--- | :--- | :--- |
-| `id` | `string` | Required | Unique identifier for the drawer |
-| `open` | `boolean \| Signal` | `false` | Drawer open state |
-| `side` | `VNode` | Required | Content to display in the drawer panel |
-| `content` | `VNode` | Required | Main page content |
-| `class` | `string` | `''` | Additional CSS classes (DaisyUI + Tailwind) |
-
-## Styling
-
-Drawer supports all **daisyUI Drawer classes**:
-
-| Category | Keywords | Description |
-| :--- | :--- | :--- |
-| Position | `drawer-end` | Drawer opens from the right side |
-| Width | `w-64`, `w-80`, `w-96` | Custom drawer width (Tailwind) |
-
-> For further details, check the [daisyUI Drawer Documentation](https://daisyui.com/components/drawer) – Full reference for CSS classes.
-
-## Live Examples
-
-### Basic Drawer
-
-
-
-```javascript
-const BasicDemo = () => {
- const isOpen = $(false);
-
- return Drawer({
- id: 'basic-drawer',
- open: isOpen,
- side: div({ class: 'p-4' }, [
- div({ class: 'text-lg font-bold mb-4' }, 'Menu'),
- div({ class: 'flex flex-col gap-2' }, [
- button({ class: 'btn btn-ghost justify-start' }, 'Home'),
- button({ class: 'btn btn-ghost justify-start' }, 'About'),
- button({ class: 'btn btn-ghost justify-start' }, 'Contact')
- ])
- ]),
- content: div({ class: 'p-4 text-center' }, [
- button({
- class: 'btn btn-primary',
- onclick: () => isOpen(true)
- }, 'Open Drawer')
- ])
- });
-};
-mount(BasicDemo, '#demo-basic');
-```
-
-### Navigation Drawer
-
-
-
-```javascript
-const NavDrawer = () => {
- const isOpen = $(false);
- const activePage = $('home');
-
- const pages = {
- home: 'Welcome to the Home Page!',
- about: 'About Us - Learn more about our company',
- services: 'Our Services - What we offer',
- contact: 'Contact Us - Get in touch'
- };
-
- return Drawer({
- id: 'nav-drawer',
- open: isOpen,
- side: div({ class: 'p-4 w-64' }, [
- div({ class: 'text-xl font-bold mb-6' }, 'MyApp'),
- div({ class: 'flex flex-col gap-1' }, [
- button({
- class: `btn btn-ghost justify-start ${activePage() === 'home' ? 'btn-active' : ''}`,
- onclick: () => {
- activePage('home');
- isOpen(false);
- }
- }, '🏠 Home'),
- button({
- class: `btn btn-ghost justify-start ${activePage() === 'about' ? 'btn-active' : ''}`,
- onclick: () => {
- activePage('about');
- isOpen(false);
- }
- }, 'ℹ️ About'),
- button({
- class: `btn btn-ghost justify-start ${activePage() === 'services' ? 'btn-active' : ''}`,
- onclick: () => {
- activePage('services');
- isOpen(false);
- }
- }, '⚙️ Services'),
- button({
- class: `btn btn-ghost justify-start ${activePage() === 'contact' ? 'btn-active' : ''}`,
- onclick: () => {
- activePage('contact');
- isOpen(false);
- }
- }, '📧 Contact')
- ])
- ]),
- content: div({ class: 'p-4' }, [
- div({ class: 'flex justify-between items-center mb-4' }, [
- button({
- class: 'btn btn-ghost btn-circle',
- onclick: () => isOpen(true)
- }, '☰'),
- span({ class: 'text-lg font-bold' }, 'MyApp')
- ]),
- div({ class: 'card bg-base-200 shadow-lg' }, [
- div({ class: 'card-body' }, [
- div({ class: 'text-2xl font-bold mb-2' }, () => activePage().charAt(0).toUpperCase() + activePage().slice(1)),
- div({ class: 'text-lg' }, () => pages[activePage()])
- ])
- ])
- ])
- });
-};
-mount(NavDrawer, '#demo-nav');
-```
-
-### Settings Drawer
-
-
-
-```javascript
-const SettingsDrawer = () => {
- const isOpen = $(false);
- const darkMode = $(false);
- const notifications = $(true);
- const autoSave = $(false);
-
- return Drawer({
- id: 'settings-drawer',
- open: isOpen,
- side: div({ class: 'p-4 w-80' }, [
- div({ class: 'flex justify-between items-center mb-6' }, [
- span({ class: 'text-xl font-bold' }, 'Settings'),
- button({
- class: 'btn btn-ghost btn-circle btn-sm',
- onclick: () => isOpen(false)
- }, '✕')
- ]),
- div({ class: 'flex flex-col gap-4' }, [
- div({ class: 'flex justify-between items-center' }, [
- span({}, 'Dark Mode'),
- Swap({
- value: darkMode,
- on: "🌙",
- off: "☀️",
- onclick: () => darkMode(!darkMode())
- })
- ]),
- div({ class: 'flex justify-between items-center' }, [
- span({}, 'Notifications'),
- Swap({
- value: notifications,
- on: "🔔",
- off: "🔕",
- onclick: () => notifications(!notifications())
- })
- ]),
- div({ class: 'flex justify-between items-center' }, [
- span({}, 'Auto Save'),
- Swap({
- value: autoSave,
- on: "✅",
- off: "⭕",
- onclick: () => autoSave(!autoSave())
- })
- ])
- ]),
- div({ class: 'divider my-4' }),
- div({ class: 'flex gap-2' }, [
- button({
- class: 'btn btn-primary flex-1',
- onclick: () => {
- isOpen(false);
- Toast('Settings saved!', 'alert-success', 2000);
- }
- }, 'Save'),
- button({
- class: 'btn btn-ghost flex-1',
- onclick: () => isOpen(false)
- }, 'Cancel')
- ])
- ]),
- content: div({ class: 'p-4' }, [
- div({ class: 'flex justify-between items-center' }, [
- span({ class: 'text-lg font-bold' }, 'Dashboard'),
- button({
- class: 'btn btn-ghost btn-circle',
- onclick: () => isOpen(true)
- }, '⚙️')
- ]),
- div({ class: 'mt-4 grid grid-cols-2 gap-4' }, [
- div({ class: 'stat bg-base-200 rounded-lg p-4' }, [
- div({ class: 'stat-title' }, 'Users'),
- div({ class: 'stat-value' }, '1,234')
- ]),
- div({ class: 'stat bg-base-200 rounded-lg p-4' }, [
- div({ class: 'stat-title' }, 'Revenue'),
- div({ class: 'stat-value' }, '$45K')
- ])
- ])
- ])
- });
-};
-mount(SettingsDrawer, '#demo-settings');
-```
-
-### Cart Drawer
-
-
-
-```javascript
-const CartDrawer = () => {
- const isOpen = $(false);
- const cart = $([
- { id: 1, name: 'Product 1', price: 29, quantity: 2 },
- { id: 2, name: 'Product 2', price: 49, quantity: 1 }
- ]);
-
- const updateQuantity = (id, delta) => {
- cart(cart().map(item => {
- if (item.id === id) {
- const newQty = Math.max(0, item.quantity + delta);
- return newQty === 0 ? null : { ...item, quantity: newQty };
- }
- return item;
- }).filter(Boolean));
- };
-
- const total = () => cart().reduce((sum, item) => sum + (item.price * item.quantity), 0);
-
- return Drawer({
- id: 'cart-drawer',
- open: isOpen,
- side: div({ class: 'flex flex-col h-full' }, [
- div({ class: 'p-4 border-b border-base-300' }, [
- div({ class: 'flex justify-between items-center' }, [
- span({ class: 'text-xl font-bold' }, `Cart (${cart().length} items)`),
- button({
- class: 'btn btn-ghost btn-circle btn-sm',
- onclick: () => isOpen(false)
- }, span('✕'))
- ])
- ]),
- div({ class: 'flex-1 overflow-y-auto p-4' }, cart().length === 0
- ? div({ class: 'text-center text-gray-500 mt-8' }, 'Your cart is empty')
- : div({ class: 'flex flex-col gap-3' }, cart().map(item =>
- div({ class: 'flex gap-3 items-center p-2 bg-base-200 rounded-lg' }, [
- div({ class: 'flex-1' }, [
- div({ class: 'font-medium' }, item.name),
- div({ class: 'text-sm' }, `$${item.price} each`)
- ]),
- div({ class: 'flex items-center gap-2' }, [
- button({
- class: 'btn btn-xs btn-circle',
- onclick: () => updateQuantity(item.id, -1)
- }, span('-')),
- span({ class: 'w-8 text-center' }, item.quantity),
- button({
- class: 'btn btn-xs btn-circle',
- onclick: () => updateQuantity(item.id, 1)
- }, span('+'))
- ]),
- span({ class: 'font-bold w-16 text-right' }, `$${item.price * item.quantity}`)
- ])
- ))
- ),
- div({ class: 'p-4 border-t border-base-300' }, [
- div({ class: 'flex justify-between items-center mb-4' }, [
- span({ class: 'font-bold' }, 'Total'),
- span({ class: 'text-xl font-bold' }, () => `$${total()}`)
- ]),
- button({
- class: 'btn btn-primary w-full',
- onclick: () => {
- isOpen(false);
- Toast('Checkout initiated!', 'alert-success', 2000);
- },
- disabled: () => cart().length === 0
- }, span('Checkout'))
- ])
- ]),
- content: div({ class: 'p-4' }, [
- div({ class: 'flex justify-between items-center' }, [
- span({ class: 'text-lg font-bold' }, 'Store'),
- button({
- class: 'btn btn-primary',
- onclick: () => isOpen(true)
- }, span({ class: 'flex items-center gap-2' }, [span('🛒'), span(`Cart (${cart().length})`)]))
- ]),
- div({ class: 'mt-4 grid grid-cols-2 gap-4' }, [
- button({
- class: 'btn btn-outline h-32 flex flex-col',
- onclick: () => {
- cart([...cart(), { id: Date.now(), name: 'New Product', price: 39, quantity: 1 }]);
- Toast('Added to cart!', 'alert-success', 1500);
- }
- }, span({ class: 'flex flex-col items-center gap-1' }, [span('📦'), span('Add to Cart')]))
- ])
- ])
- });
-};
-mount(CartDrawer, '#demo-cart');
-```
-
-### Responsive Drawer
-
-
-
-```javascript
-const ResponsiveDrawer = () => {
- const isOpen = $(false);
- const activePage = $('home');
-
- const MenuItems = () => div({ class: 'flex flex-col gap-1 p-4' }, [
- button({
- class: `btn btn-ghost justify-start ${activePage() === 'home' ? 'btn-active' : ''}`,
- onclick: () => {
- activePage('home');
- if (window.innerWidth < 1024) isOpen(false);
- }
- }, '🏠 Home'),
- button({
- class: `btn btn-ghost justify-start ${activePage() === 'analytics' ? 'btn-active' : ''}`,
- onclick: () => {
- activePage('analytics');
- if (window.innerWidth < 1024) isOpen(false);
- }
- }, '📊 Analytics'),
- button({
- class: `btn btn-ghost justify-start ${activePage() === 'settings' ? 'btn-active' : ''}`,
- onclick: () => {
- activePage('settings');
- if (window.innerWidth < 1024) isOpen(false);
- }
- }, '⚙️ Settings')
- ]);
-
- return Drawer({
- id: 'responsive-drawer',
- open: isOpen,
- side: div({ class: 'w-64' }, [
- div({ class: 'text-xl font-bold p-4 border-b border-base-300' }, 'Menu'),
- MenuItems()
- ]),
- content: div({ class: 'flex' }, [
- div({ class: 'hidden lg:block w-64 border-r border-base-300' }, [MenuItems()]),
- div({ class: 'flex-1 p-4' }, [
- div({ class: 'flex justify-between items-center lg:hidden mb-4' }, [
- button({
- class: 'btn btn-ghost btn-circle',
- onclick: () => isOpen(true)
- }, '☰'),
- span({ class: 'text-lg font-bold' }, 'MyApp')
- ]),
- div({ class: 'card bg-base-200' }, [
- div({ class: 'card-body' }, [
- div({ class: 'text-2xl font-bold' }, () => activePage().charAt(0).toUpperCase() + activePage().slice(1)),
- div({}, 'Content area. On desktop, the menu is always visible on the left.')
- ])
- ])
- ])
- ])
- });
-};
-mount(ResponsiveDrawer, '#demo-responsive');
-```
-
-### Form Drawer
-
-
-
-```javascript
-const FormDrawer = () => {
- const isOpen = $(false);
- const name = $('');
- const email = $('');
- const message = $('');
-
- const handleSubmit = () => {
- if (name() && email() && message()) {
- Toast('Message sent!', 'alert-success', 2000);
- isOpen(false);
- name('');
- email('');
- message('');
- } else {
- Toast('Please fill all fields', 'alert-warning', 2000);
- }
- };
-
- return Drawer({
- id: 'form-drawer',
- open: isOpen,
- side: div({ class: 'p-4 w-96' }, [
- div({ class: 'flex justify-between items-center mb-4' }, [
- span({ class: 'text-xl font-bold' }, 'Contact Us'),
- button({
- class: 'btn btn-ghost btn-circle btn-sm',
- onclick: () => isOpen(false)
- }, '✕')
- ]),
- div({ class: 'flex flex-col gap-4' }, [
- input({
- label: 'Name',
- value: name,
- placeholder: 'Your name',
- oninput: (e) => name(e.target.value)
- }),
- input({
- label: 'Email',
- type: 'email',
- value: email,
- placeholder: 'your@email.com',
- oninput: (e) => email(e.target.value)
- }),
- div({ class: 'form-control' }, [
- span({ class: 'label-text mb-1' }, 'Message'),
- h('textarea', {
- class: 'textarea textarea-bordered h-24',
- placeholder: 'Your message',
- value: message,
- oninput: (e) => message(e.target.value)
- })
- ]),
- div({ class: 'flex gap-2 mt-2' }, [
- button({
- class: 'btn btn-primary flex-1',
- onclick: handleSubmit
- }, 'Send'),
- button({
- class: 'btn btn-ghost flex-1',
- onclick: () => isOpen(false)
- }, 'Cancel')
- ])
- ])
- ]),
- content: div({ class: 'p-4 text-center' }, [
- button({
- class: 'btn btn-primary',
- onclick: () => isOpen(true)
- }, 'Contact Us')
- ])
- });
-};
-mount(FormDrawer, '#demo-form');
-```
\ No newline at end of file
diff --git a/docs/components/dropdown.md b/docs/components/dropdown.md
deleted file mode 100644
index 6cdc059..0000000
--- a/docs/components/dropdown.md
+++ /dev/null
@@ -1,255 +0,0 @@
-# Dropdown
-
-Dropdown component for creating menus that appear when triggered. Uses DaisyUI's native details/summary pattern.
-
-## Tag
-
-`Dropdown`
-
-## Props
-
-| Prop | Type | Default | Description |
-| :--- | :--- | :--- | :--- |
-| `label` | `string \| VNode \| Signal` | `-` | Button label or content |
-| `icon` | `string \| VNode \| Signal` | `-` | Icon displayed next to label |
-| `items` | `Array