@vasakgroup/vue-libvasak 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,15 @@
1
- import { ref as w, onMounted as J, onUnmounted as ve, watch as K, defineComponent as z, toRef as Be, computed as p, createElementBlock as s, unref as q, openBlock as i, normalizeStyle as se, createCommentVNode as h, createElementVNode as E, createVNode as O, toDisplayString as S, normalizeClass as x, renderSlot as A, createBlock as Q, onBeforeUnmount as ce, Fragment as Z, renderList as ne, withCtx as W, mergeModels as Ae, useAttrs as $e, useId as ot, useModel as it, withDirectives as Ce, mergeProps as oe, isRef as st, vModelSelect as rt, inject as pe, getCurrentInstance as Fe, provide as de, createTextVNode as ze, toHandlers as qe, createSlots as ut, withModifiers as M, withKeys as F, Teleport as fe, Transition as ye, nextTick as Y, TransitionGroup as ct, vShow as Re, cloneVNode as dt, h as ft, Comment as mt, Text as bt } from "vue";
1
+ import { ref as w, onMounted as J, onUnmounted as ve, watch as K, defineComponent as L, toRef as Be, computed as v, createElementBlock as r, unref as q, openBlock as i, normalizeStyle as re, createCommentVNode as h, createElementVNode as D, createVNode as O, toDisplayString as V, normalizeClass as x, renderSlot as S, createBlock as Q, onBeforeUnmount as ce, Fragment as Z, renderList as ne, withCtx as W, mergeModels as Ae, useAttrs as $e, useId as ot, useModel as it, withDirectives as Ce, mergeProps as oe, isRef as rt, vModelSelect as st, inject as pe, getCurrentInstance as Fe, provide as de, createTextVNode as ze, toHandlers as qe, createSlots as ut, withModifiers as M, withKeys as F, Teleport as fe, Transition as ye, nextTick as Y, TransitionGroup as ct, vShow as Re, cloneVNode as dt, h as ft, Comment as mt, Text as bt } from "vue";
2
2
  import { listen as vt } from "@tauri-apps/api/event";
3
3
  import { getSymbolSource as pt, getIconSource as yt } from "@vasakgroup/plugin-vicons";
4
4
  import { getCurrentWindow as gt } from "@tauri-apps/api/window";
5
5
  import { useI18n as ht } from "@vasakgroup/tauri-plugin-i18n";
6
- const xt = "vicons:theme-changed", be = /* @__PURE__ */ new Map(), ae = /* @__PURE__ */ new Map(), re = w(0);
6
+ const xt = "vicons:theme-changed", be = /* @__PURE__ */ new Map(), ae = /* @__PURE__ */ new Map(), se = w(0);
7
7
  let le = 0, ue = null, te = null;
8
- function zn() {
9
- be.clear(), ae.clear(), le = 0, ue = null, te = null, re.value = 0;
8
+ function En() {
9
+ be.clear(), ae.clear(), le = 0, ue = null, te = null, se.value = 0;
10
10
  }
11
11
  function kt() {
12
- be.clear(), ae.clear(), re.value++;
12
+ be.clear(), ae.clear(), se.value++;
13
13
  }
14
14
  function wt() {
15
15
  return le++, ue || te ? te ?? Promise.resolve() : (te = vt(xt, kt).then((e) => {
@@ -26,30 +26,30 @@ function Ct(e, l) {
26
26
  const n = ae.get(t);
27
27
  if (n)
28
28
  return n;
29
- const o = re.value, u = (l === "symbol" ? pt(e) : yt(e)).then((r) => (re.value === o && be.set(t, r), r)).finally(() => {
30
- ae.get(t) === u && ae.delete(t);
29
+ const o = se.value, s = (l === "symbol" ? pt(e) : yt(e)).then((u) => (se.value === o && be.set(t, u), u)).finally(() => {
30
+ ae.get(t) === s && ae.delete(t);
31
31
  });
32
- return ae.set(t, u), u;
32
+ return ae.set(t, s), s;
33
33
  }
34
34
  function zt(e, l) {
35
35
  const t = w("");
36
36
  let a = !1, n = 0;
37
37
  async function o() {
38
- const u = ++n, r = e.value;
39
- if (!r) {
38
+ const s = ++n, u = e.value;
39
+ if (!u) {
40
40
  t.value = "";
41
41
  return;
42
42
  }
43
- const d = await Ct(r, l.value);
44
- u === n && !a && (t.value = d);
43
+ const f = await Ct(u, l.value);
44
+ s === n && !a && (t.value = f);
45
45
  }
46
46
  return J(async () => {
47
47
  await wt(), a || await o();
48
48
  }), ve(() => {
49
49
  a = !0, $t();
50
- }), K([e, l], o), K(re, o), t;
50
+ }), K([e, l], o), K(se, o), t;
51
51
  }
52
- const Et = ["src", "alt"], H = /* @__PURE__ */ z({
52
+ const Lt = ["src", "alt"], H = /* @__PURE__ */ L({
53
53
  __name: "ThemeIcon",
54
54
  props: {
55
55
  name: {},
@@ -58,23 +58,23 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
58
58
  alt: { default: "" }
59
59
  },
60
60
  setup(e) {
61
- const l = e, t = zt(Be(l, "name"), Be(l, "type")), a = p(() => `${l.size}px`);
62
- return (n, o) => q(t) ? (i(), s("img", {
61
+ const l = e, t = zt(Be(l, "name"), Be(l, "type")), a = v(() => `${l.size}px`);
62
+ return (n, o) => q(t) ? (i(), r("img", {
63
63
  key: 0,
64
64
  src: q(t),
65
65
  alt: e.alt,
66
- style: se({ width: a.value, height: a.value }),
66
+ style: re({ width: a.value, height: a.value }),
67
67
  class: "shrink-0 object-contain"
68
- }, null, 12, Et)) : (i(), s("span", {
68
+ }, null, 12, Lt)) : (i(), r("span", {
69
69
  key: 1,
70
- style: se({ width: a.value, height: a.value }),
70
+ style: re({ width: a.value, height: a.value }),
71
71
  class: "shrink-0"
72
72
  }, null, 4));
73
73
  }
74
- }), Dt = { class: "flex flex-col gap-2" }, Lt = ["aria-expanded"], Tt = {
74
+ }), Dt = { class: "flex flex-col gap-2" }, Et = ["aria-expanded"], Tt = {
75
75
  key: 1,
76
76
  class: "flex flex-col gap-1"
77
- }, Ne = /* @__PURE__ */ z({
77
+ }, Ne = /* @__PURE__ */ L({
78
78
  __name: "SideGroup",
79
79
  props: {
80
80
  title: {},
@@ -88,24 +88,24 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
88
88
  (a) => {
89
89
  a && (t.value = !0);
90
90
  }
91
- ), (a, n) => (i(), s("section", Dt, [
92
- e.collapsed ? h("", !0) : (i(), s("button", {
91
+ ), (a, n) => (i(), r("section", Dt, [
92
+ e.collapsed ? h("", !0) : (i(), r("button", {
93
93
  key: 0,
94
94
  type: "button",
95
95
  class: "group flex w-full items-center justify-between rounded-corner px-2 py-1 text-tx-muted text-xs uppercase tracking-[0.08em] hover:bg-ui-surface/60",
96
96
  "aria-expanded": t.value,
97
97
  onClick: n[0] || (n[0] = (o) => t.value = !t.value)
98
98
  }, [
99
- E("span", null, S(e.title), 1),
99
+ D("span", null, V(e.title), 1),
100
100
  O(H, {
101
101
  name: "pan-down-symbolic",
102
102
  type: "symbol",
103
103
  size: 12,
104
104
  class: x(["transition-transform duration-200", t.value ? "" : "-rotate-90"])
105
105
  }, null, 8, ["class"])
106
- ], 8, Lt)),
107
- t.value || e.collapsed ? (i(), s("div", Tt, [
108
- A(a.$slots, "default")
106
+ ], 8, Et)),
107
+ t.value || e.collapsed ? (i(), r("div", Tt, [
108
+ S(a.$slots, "default")
109
109
  ])) : h("", !0)
110
110
  ]));
111
111
  }
@@ -115,7 +115,7 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
115
115
  }, Vt = {
116
116
  key: 1,
117
117
  class: "rounded-corner bg-ui-surface px-2 py-0.5 font-semibold text-tx-muted text-xs"
118
- }, He = /* @__PURE__ */ z({
118
+ }, He = /* @__PURE__ */ L({
119
119
  __name: "SideButton",
120
120
  props: {
121
121
  label: {},
@@ -127,7 +127,7 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
127
127
  },
128
128
  emits: ["click"],
129
129
  setup(e) {
130
- return (l, t) => (i(), s("button", {
130
+ return (l, t) => (i(), r("button", {
131
131
  type: "button",
132
132
  title: e.collapsed ? e.label : void 0,
133
133
  "aria-label": e.collapsed ? e.label : void 0,
@@ -140,7 +140,7 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
140
140
  ]]),
141
141
  onClick: t[0] || (t[0] = (a) => l.$emit("click"))
142
142
  }, [
143
- E("span", {
143
+ D("span", {
144
144
  class: x(["flex h-8 w-8 shrink-0 items-center justify-center rounded-corner font-semibold text-xs uppercase tracking-wide", e.active ? "border-secondary bg-primary/20" : ""]),
145
145
  "aria-hidden": "true"
146
146
  }, [
@@ -148,10 +148,10 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
148
148
  key: 0,
149
149
  name: e.icon,
150
150
  size: 20
151
- }, null, 8, ["name"])) : (i(), s("span", At, S(e.label.charAt(0).toUpperCase()), 1))
151
+ }, null, 8, ["name"])) : (i(), r("span", At, V(e.label.charAt(0).toUpperCase()), 1))
152
152
  ], 2),
153
- e.collapsed ? h("", !0) : (i(), s("span", St, S(e.label), 1)),
154
- !e.collapsed && e.badge !== "" ? (i(), s("span", Vt, S(e.badge), 1)) : h("", !0)
153
+ e.collapsed ? h("", !0) : (i(), r("span", St, V(e.label), 1)),
154
+ !e.collapsed && e.badge !== "" ? (i(), r("span", Vt, V(e.badge), 1)) : h("", !0)
155
155
  ], 10, Bt));
156
156
  }
157
157
  }), Mt = {
@@ -169,7 +169,7 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
169
169
  }, qt = { key: 0 }, Rt = {
170
170
  key: 1,
171
171
  class: "flex border-ui-border border-b p-2"
172
- }, Nt = ["aria-label", "aria-expanded"], Ht = { class: "flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2" }, Se = "hidden h-8 w-8 shrink-0 items-center justify-center rounded-corner border border-ui-border bg-ui-surface/70 transition-colors hover:bg-ui-surface md:inline-flex", Ve = 767, Ut = /* @__PURE__ */ z({
172
+ }, Nt = ["aria-label", "aria-expanded"], Ht = { class: "flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2" }, Se = "hidden h-8 w-8 shrink-0 items-center justify-center rounded-corner border border-ui-border bg-ui-surface/70 transition-colors hover:bg-ui-surface md:inline-flex", Ve = 767, Ut = /* @__PURE__ */ L({
173
173
  __name: "SideBar",
174
174
  props: {
175
175
  title: { default: "" },
@@ -182,97 +182,97 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
182
182
  },
183
183
  emits: ["update:modelValue", "update:collapsed", "change"],
184
184
  setup(e, { expose: l, emit: t }) {
185
- const a = e, n = t, o = w(a.collapsed ?? !1), u = w(!1);
186
- let r = null, d = null;
187
- const b = p(() => u.value || o.value), m = p(() => !!(a.title || a.subtitle));
188
- p(() => a.categories.length > 0);
185
+ const a = e, n = t, o = w(a.collapsed ?? !1), s = w(!1);
186
+ let u = null, f = null;
187
+ const d = v(() => s.value || o.value), m = v(() => !!(a.title || a.subtitle));
188
+ v(() => a.categories.length > 0);
189
189
  function B() {
190
190
  return document.documentElement?.clientWidth || window.innerWidth;
191
191
  }
192
- function D() {
193
- u.value = B() <= Ve;
192
+ function E() {
193
+ s.value = B() <= Ve;
194
194
  }
195
- function L() {
195
+ function A() {
196
196
  o.value = !o.value, n("update:collapsed", o.value);
197
197
  }
198
- function y(f) {
199
- n("update:modelValue", f), n("change", f);
198
+ function y($) {
199
+ n("update:modelValue", $), n("change", $);
200
200
  }
201
201
  return K(
202
202
  () => a.collapsed,
203
- (f) => {
204
- f !== void 0 && (o.value = f);
203
+ ($) => {
204
+ $ !== void 0 && (o.value = $);
205
205
  }
206
206
  ), J(() => {
207
- r = window.matchMedia(`(max-width: ${Ve}px)`), D(), r.addEventListener("change", D), window.addEventListener("resize", D), typeof ResizeObserver < "u" && document.documentElement && (d = new ResizeObserver(D), d.observe(document.documentElement));
207
+ u = window.matchMedia(`(max-width: ${Ve}px)`), E(), u.addEventListener("change", E), window.addEventListener("resize", E), typeof ResizeObserver < "u" && document.documentElement && (f = new ResizeObserver(E), f.observe(document.documentElement));
208
208
  }), ce(() => {
209
- r?.removeEventListener("change", D), window.removeEventListener("resize", D), d?.disconnect(), d = null;
210
- }), l({ collapsed: b }), (f, V) => (i(), s("aside", {
211
- class: x(["relative z-30 flex h-full shrink-0 flex-col rounded-corner border border-ui-border bg-ui-surface/70 transition-all duration-300", ["w-[84px]", b.value ? "md:w-[84px]" : "md:w-72"]])
209
+ u?.removeEventListener("change", E), window.removeEventListener("resize", E), f?.disconnect(), f = null;
210
+ }), l({ collapsed: d }), ($, j) => (i(), r("aside", {
211
+ class: x(["relative z-30 flex h-full shrink-0 flex-col rounded-corner border border-ui-border bg-ui-surface/70 transition-all duration-300", ["w-[84px]", d.value ? "md:w-[84px]" : "md:w-72"]])
212
212
  }, [
213
- m.value || f.$slots.header ? (i(), s("header", Mt, [
214
- E("div", It, [
215
- E("button", {
213
+ m.value || $.$slots.header ? (i(), r("header", Mt, [
214
+ D("div", It, [
215
+ D("button", {
216
216
  type: "button",
217
217
  class: x(Se),
218
- "aria-label": b.value ? e.expandLabel : e.collapseLabel,
219
- "aria-expanded": !b.value,
220
- onClick: L
218
+ "aria-label": d.value ? e.expandLabel : e.collapseLabel,
219
+ "aria-expanded": !d.value,
220
+ onClick: A
221
221
  }, [
222
222
  O(H, {
223
- name: b.value ? "pan-end-symbolic" : "pan-start-symbolic",
223
+ name: d.value ? "pan-end-symbolic" : "pan-start-symbolic",
224
224
  type: "symbol",
225
225
  size: 16
226
226
  }, null, 8, ["name"])
227
227
  ], 8, Ot),
228
- m.value && !b.value ? (i(), s("div", jt, [
229
- e.title ? (i(), s("p", Pt, S(e.title), 1)) : h("", !0),
230
- e.subtitle ? (i(), s("p", Ft, S(e.subtitle), 1)) : h("", !0)
228
+ m.value && !d.value ? (i(), r("div", jt, [
229
+ e.title ? (i(), r("p", Pt, V(e.title), 1)) : h("", !0),
230
+ e.subtitle ? (i(), r("p", Ft, V(e.subtitle), 1)) : h("", !0)
231
231
  ])) : h("", !0)
232
232
  ]),
233
- f.$slots.header && !b.value ? (i(), s("div", qt, [
234
- A(f.$slots, "header", { collapsed: b.value })
233
+ $.$slots.header && !d.value ? (i(), r("div", qt, [
234
+ S($.$slots, "header", { collapsed: d.value })
235
235
  ])) : h("", !0)
236
- ])) : (i(), s("div", Rt, [
237
- E("button", {
236
+ ])) : (i(), r("div", Rt, [
237
+ D("button", {
238
238
  type: "button",
239
239
  class: x(Se),
240
- "aria-label": b.value ? e.expandLabel : e.collapseLabel,
241
- "aria-expanded": !b.value,
242
- onClick: L
240
+ "aria-label": d.value ? e.expandLabel : e.collapseLabel,
241
+ "aria-expanded": !d.value,
242
+ onClick: A
243
243
  }, [
244
244
  O(H, {
245
- name: b.value ? "pan-end-symbolic" : "pan-start-symbolic",
245
+ name: d.value ? "pan-end-symbolic" : "pan-start-symbolic",
246
246
  type: "symbol",
247
247
  size: 16
248
248
  }, null, 8, ["name"])
249
249
  ], 8, Nt)
250
250
  ])),
251
- E("div", Ht, [
252
- (i(!0), s(Z, null, ne(e.categories, (j) => (i(), Q(Ne, {
253
- key: j.id,
254
- title: j.title,
255
- collapsed: b.value
251
+ D("div", Ht, [
252
+ (i(!0), r(Z, null, ne(e.categories, (z) => (i(), Q(Ne, {
253
+ key: z.id,
254
+ title: z.title,
255
+ collapsed: d.value
256
256
  }, {
257
257
  default: W(() => [
258
- (i(!0), s(Z, null, ne(j.items, ($) => (i(), Q(He, {
259
- key: $.id,
260
- label: $.label,
261
- icon: $.icon,
262
- badge: $.badge,
263
- disabled: $.disabled,
264
- collapsed: b.value,
265
- active: e.modelValue === $.id,
266
- onClick: (c) => y($.id)
258
+ (i(!0), r(Z, null, ne(z.items, (g) => (i(), Q(He, {
259
+ key: g.id,
260
+ label: g.label,
261
+ icon: g.icon,
262
+ badge: g.badge,
263
+ disabled: g.disabled,
264
+ collapsed: d.value,
265
+ active: e.modelValue === g.id,
266
+ onClick: (c) => y(g.id)
267
267
  }, null, 8, ["label", "icon", "badge", "disabled", "collapsed", "active", "onClick"]))), 128))
268
268
  ]),
269
269
  _: 2
270
270
  }, 1032, ["title", "collapsed"]))), 128)),
271
- A(f.$slots, "default", { collapsed: b.value })
271
+ S($.$slots, "default", { collapsed: d.value })
272
272
  ])
273
273
  ], 2));
274
274
  }
275
- }), Wt = { class: "flex min-w-0 flex-col gap-1" }, Kt = ["for"], Gt = { class: "relative flex min-w-0 items-center" }, Qt = ["id"], Yt = /* @__PURE__ */ z({
275
+ }), Wt = { class: "flex min-w-0 flex-col gap-1" }, Kt = ["for"], Gt = { class: "relative flex min-w-0 items-center" }, Qt = ["id"], Yt = /* @__PURE__ */ L({
276
276
  inheritAttrs: !1,
277
277
  __name: "SelectField",
278
278
  props: /* @__PURE__ */ Ae({
@@ -285,28 +285,28 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
285
285
  }),
286
286
  emits: /* @__PURE__ */ Ae(["change"], ["update:modelValue"]),
287
287
  setup(e, { emit: l }) {
288
- const t = e, a = $e(), n = ot(), o = p(() => a.id ?? n), u = l, [r, d] = it(e, "modelValue", {
289
- set(b) {
290
- return d.number ? Number(b) : b;
288
+ const t = e, a = $e(), n = ot(), o = v(() => a.id ?? n), s = l, [u, f] = it(e, "modelValue", {
289
+ set(d) {
290
+ return f.number ? Number(d) : d;
291
291
  }
292
292
  });
293
- return (b, m) => (i(), s("div", Wt, [
294
- t.label ? (i(), s("label", {
293
+ return (d, m) => (i(), r("div", Wt, [
294
+ t.label ? (i(), r("label", {
295
295
  key: 0,
296
296
  for: o.value,
297
297
  class: "text-tx-muted text-xs"
298
- }, S(t.label), 9, Kt)) : h("", !0),
299
- E("div", Gt, [
300
- Ce(E("select", oe({
298
+ }, V(t.label), 9, Kt)) : h("", !0),
299
+ D("div", Gt, [
300
+ Ce(D("select", oe({
301
301
  id: o.value,
302
- "onUpdate:modelValue": m[0] || (m[0] = (B) => st(r) ? r.value = B : null),
302
+ "onUpdate:modelValue": m[0] || (m[0] = (B) => rt(u) ? u.value = B : null),
303
303
  class: "min-w-0 flex-1 appearance-none truncate rounded-corner border border-ui-border bg-ui-surface/60 py-1.5 pr-8 pl-2 text-sm text-tx-main"
304
304
  }, q(a), {
305
- onChange: m[1] || (m[1] = (B) => u("change", B))
305
+ onChange: m[1] || (m[1] = (B) => s("change", B))
306
306
  }), [
307
- A(b.$slots, "default")
307
+ S(d.$slots, "default")
308
308
  ], 16, Qt), [
309
- [rt, q(r)]
309
+ [st, q(u)]
310
310
  ]),
311
311
  O(H, {
312
312
  name: "pan-down-symbolic",
@@ -317,7 +317,7 @@ const Et = ["src", "alt"], H = /* @__PURE__ */ z({
317
317
  ])
318
318
  ]));
319
319
  }
320
- }), Ee = /* @__PURE__ */ Symbol("barra de vasak");
320
+ }), Le = /* @__PURE__ */ Symbol("barra de vasak");
321
321
  function we(e) {
322
322
  return e === "left" || e === "right" ? "vertical" : "horizontal";
323
323
  }
@@ -326,13 +326,13 @@ function Jt(e) {
326
326
  return typeof e == "string" && Xt.includes(e);
327
327
  }
328
328
  function me() {
329
- const e = pe(Ee, null);
329
+ const e = pe(Le, null);
330
330
  if (e) return e;
331
331
  const l = w("top");
332
332
  return {
333
333
  posicion: l,
334
- orientacion: p(() => we(l.value)),
335
- vertical: p(() => we(l.value) === "vertical")
334
+ orientacion: v(() => we(l.value)),
335
+ vertical: v(() => we(l.value) === "vertical")
336
336
  };
337
337
  }
338
338
  const De = ["minimize", "maximize", "close"], Zt = "window", _t = "barPosition";
@@ -345,22 +345,22 @@ function ta(e = "top") {
345
345
  let t = null, a = !1;
346
346
  async function n() {
347
347
  try {
348
- const { readConfig: o } = await import("@vasakgroup/plugin-config-manager"), u = await o();
349
- l.value = ea(u) ?? e;
348
+ const { readConfig: o } = await import("@vasakgroup/plugin-config-manager"), s = await o();
349
+ l.value = ea(s) ?? e;
350
350
  } catch {
351
351
  }
352
352
  }
353
353
  return J(async () => {
354
354
  await n();
355
355
  try {
356
- const { listen: o } = await import("@tauri-apps/api/event"), u = await o("config-changed", () => {
356
+ const { listen: o } = await import("@tauri-apps/api/event"), s = await o("config-changed", () => {
357
357
  n();
358
358
  });
359
359
  if (a) {
360
- u();
360
+ s();
361
361
  return;
362
362
  }
363
- t = u;
363
+ t = s;
364
364
  } catch {
365
365
  }
366
366
  }), ce(() => {
@@ -375,7 +375,7 @@ function Ue(e) {
375
375
  }
376
376
  return t;
377
377
  }
378
- const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title", "aria-label"], xe = "flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors", We = /* @__PURE__ */ z({
378
+ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title", "aria-label"], xe = "flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors", We = /* @__PURE__ */ L({
379
379
  __name: "WindowControls",
380
380
  props: {
381
381
  controls: { default: () => De },
@@ -385,7 +385,7 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
385
385
  },
386
386
  emits: ["minimize", "maximize", "close"],
387
387
  setup(e, { emit: l }) {
388
- const t = e, { t: a } = ht(), n = p(() => t.minimizeLabel ?? a("ventana.minimizar")), o = p(() => t.maximizeLabel ?? a("ventana.maximizar")), u = p(() => t.closeLabel ?? a("ventana.cerrar")), r = l, { vertical: d } = me(), b = p(() => ({
388
+ const t = e, { t: a } = ht(), n = v(() => t.minimizeLabel ?? a("ventana.minimizar")), o = v(() => t.maximizeLabel ?? a("ventana.maximizar")), s = v(() => t.closeLabel ?? a("ventana.cerrar")), u = l, { vertical: f } = me(), d = v(() => ({
389
389
  minimize: t.controls.includes("minimize"),
390
390
  maximize: t.controls.includes("maximize"),
391
391
  close: t.controls.includes("close")
@@ -394,33 +394,33 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
394
394
  return gt();
395
395
  }
396
396
  const B = Fe();
397
- function D(V) {
398
- return !!B?.vnode.props?.[`on${V}`];
397
+ function E(j) {
398
+ return !!B?.vnode.props?.[`on${j}`];
399
399
  }
400
- function L() {
401
- if (D("Minimize")) return r("minimize");
400
+ function A() {
401
+ if (E("Minimize")) return u("minimize");
402
402
  m().minimize();
403
403
  }
404
404
  function y() {
405
- if (D("Maximize")) return r("maximize");
405
+ if (E("Maximize")) return u("maximize");
406
406
  m().toggleMaximize();
407
407
  }
408
- function f() {
409
- if (D("Close")) return r("close");
408
+ function $() {
409
+ if (E("Close")) return u("close");
410
410
  m().close();
411
411
  }
412
- return (V, j) => e.controls.length ? (i(), s("div", {
412
+ return (j, z) => e.controls.length ? (i(), r("div", {
413
413
  key: 0,
414
- class: x(["flex shrink-0 gap-1", q(d) ? "flex-col" : ""]),
414
+ class: x(["flex shrink-0 gap-1", q(f) ? "flex-col" : ""]),
415
415
  "data-tauri-drag-region": ""
416
416
  }, [
417
- b.value.minimize ? (i(), s("button", {
417
+ d.value.minimize ? (i(), r("button", {
418
418
  key: 0,
419
419
  type: "button",
420
420
  class: x([xe, "hover:bg-status-success"]),
421
421
  title: n.value,
422
422
  "aria-label": n.value,
423
- onClick: j[0] || (j[0] = ($) => L())
423
+ onClick: z[0] || (z[0] = (g) => A())
424
424
  }, [
425
425
  O(H, {
426
426
  name: "window-minimize",
@@ -428,13 +428,13 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
428
428
  size: 24
429
429
  })
430
430
  ], 10, aa)) : h("", !0),
431
- b.value.maximize ? (i(), s("button", {
431
+ d.value.maximize ? (i(), r("button", {
432
432
  key: 1,
433
433
  type: "button",
434
434
  class: x([xe, "hover:bg-status-warning"]),
435
435
  title: o.value,
436
436
  "aria-label": o.value,
437
- onClick: j[1] || (j[1] = ($) => y())
437
+ onClick: z[1] || (z[1] = (g) => y())
438
438
  }, [
439
439
  O(H, {
440
440
  name: "window-maximize",
@@ -442,13 +442,13 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
442
442
  size: 24
443
443
  })
444
444
  ], 10, la)) : h("", !0),
445
- b.value.close ? (i(), s("button", {
445
+ d.value.close ? (i(), r("button", {
446
446
  key: 2,
447
447
  type: "button",
448
448
  class: x([xe, "hover:bg-status-error"]),
449
- title: u.value,
450
- "aria-label": u.value,
451
- onClick: j[2] || (j[2] = ($) => f())
449
+ title: s.value,
450
+ "aria-label": s.value,
451
+ onClick: z[2] || (z[2] = (g) => $())
452
452
  }, [
453
453
  O(H, {
454
454
  name: "window-close",
@@ -466,7 +466,7 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
466
466
  key: 1,
467
467
  class: "min-w-0 shrink truncate text-sm",
468
468
  "data-tauri-drag-region": ""
469
- }, Ke = /* @__PURE__ */ z({
469
+ }, Ke = /* @__PURE__ */ L({
470
470
  __name: "AppBar",
471
471
  props: {
472
472
  position: { default: null },
@@ -478,34 +478,34 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
478
478
  },
479
479
  emits: ["minimize", "maximize", "close"],
480
480
  setup(e) {
481
- const l = e, t = me(), a = p(() => l.position ?? t.posicion.value), n = p(() => a.value === "left" || a.value === "right");
482
- return de(Ee, {
481
+ const l = e, t = me(), a = v(() => l.position ?? t.posicion.value), n = v(() => a.value === "left" || a.value === "right");
482
+ return de(Le, {
483
483
  posicion: a,
484
- orientacion: p(() => n.value ? "vertical" : "horizontal"),
484
+ orientacion: v(() => n.value ? "vertical" : "horizontal"),
485
485
  vertical: n
486
- }), (o, u) => (i(), s("div", {
486
+ }), (o, s) => (i(), r("div", {
487
487
  class: x(["relative flex shrink-0 items-center gap-2 p-1 font-title", n.value ? "h-full flex-col" : "w-full"]),
488
488
  "data-tauri-drag-region": ""
489
489
  }, [
490
- o.$slots.identidad ? (i(), s("div", oa, [
491
- A(o.$slots, "identidad")
490
+ o.$slots.identidad ? (i(), r("div", oa, [
491
+ S(o.$slots, "identidad")
492
492
  ])) : h("", !0),
493
- (o.$slots.titulo || e.title) && !n.value ? (i(), s("p", ia, [
494
- A(o.$slots, "titulo", {}, () => [
495
- ze(S(e.title), 1)
493
+ (o.$slots.titulo || e.title) && !n.value ? (i(), r("p", ia, [
494
+ S(o.$slots, "titulo", {}, () => [
495
+ ze(V(e.title), 1)
496
496
  ])
497
497
  ])) : h("", !0),
498
- E("div", {
498
+ D("div", {
499
499
  class: x(["flex min-h-0 min-w-0 flex-1 items-center gap-2 overflow-auto", n.value ? "flex-col" : ""]),
500
500
  "data-tauri-drag-region": ""
501
501
  }, [
502
- A(o.$slots, "default")
502
+ S(o.$slots, "default")
503
503
  ], 2),
504
- o.$slots.acciones ? (i(), s("div", {
504
+ o.$slots.acciones ? (i(), r("div", {
505
505
  key: 2,
506
506
  class: x(["flex shrink-0 items-center gap-1", n.value ? "flex-col" : ""])
507
507
  }, [
508
- A(o.$slots, "acciones")
508
+ S(o.$slots, "acciones")
509
509
  ], 2)) : h("", !0),
510
510
  O(We, oe({
511
511
  controls: e.controls,
@@ -513,19 +513,19 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
513
513
  "maximize-label": e.maximizeLabel,
514
514
  "close-label": e.closeLabel
515
515
  }, qe(q(Ue)(["minimize", "maximize", "close"]))), null, 16, ["controls", "minimize-label", "maximize-label", "close-label"]),
516
- o.$slots.centro ? (i(), s("div", {
516
+ o.$slots.centro ? (i(), r("div", {
517
517
  key: 3,
518
518
  class: x(["pointer-events-none absolute flex items-center justify-center", n.value ? "inset-x-0 top-1/2 -translate-y-1/2 flex-col" : "inset-y-0 left-1/2 -translate-x-1/2"])
519
519
  }, [
520
- E("div", {
520
+ D("div", {
521
521
  class: x(["pointer-events-auto flex items-center gap-2", n.value ? "flex-col" : ""])
522
522
  }, [
523
- A(o.$slots, "centro")
523
+ S(o.$slots, "centro")
524
524
  ], 2)
525
525
  ], 2)) : h("", !0)
526
526
  ], 2));
527
527
  }
528
- }), sa = { class: "flex min-h-0 min-w-0 flex-1" }, ra = /* @__PURE__ */ z({
528
+ }), ra = { class: "flex min-h-0 min-w-0 flex-1" }, sa = /* @__PURE__ */ L({
529
529
  __name: "WindowFrame",
530
530
  props: {
531
531
  position: { default: null },
@@ -538,16 +538,16 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
538
538
  },
539
539
  emits: ["minimize", "maximize", "close"],
540
540
  setup(e) {
541
- const l = e, t = ta(), a = p(() => l.position ?? t.value), n = p(() => we(a.value)), o = p(() => n.value === "vertical");
542
- de(Ee, { posicion: a, orientacion: n, vertical: o });
543
- const u = {
541
+ const l = e, t = ta(), a = v(() => l.position ?? t.value), n = v(() => we(a.value)), o = v(() => n.value === "vertical");
542
+ de(Le, { posicion: a, orientacion: n, vertical: o });
543
+ const s = {
544
544
  top: "flex-col",
545
545
  bottom: "flex-col-reverse",
546
546
  left: "flex-row",
547
547
  right: "flex-row-reverse"
548
548
  };
549
- return (r, d) => (i(), s("div", {
550
- class: x(["flex h-screen w-screen overflow-hidden rounded-corner-window border border-ui-border bg-ui-bg/80", u[a.value]])
549
+ return (u, f) => (i(), r("div", {
550
+ class: x(["flex h-screen w-screen overflow-hidden rounded-corner-window border border-ui-border bg-ui-bg/80", s[a.value]])
551
551
  }, [
552
552
  e.hideBar ? h("", !0) : (i(), Q(Ke, oe({
553
553
  key: 0,
@@ -559,41 +559,41 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
559
559
  controls: e.controls
560
560
  }, qe(q(Ue)(["minimize", "maximize", "close"]))), ut({
561
561
  default: W(() => [
562
- A(r.$slots, "barra")
562
+ S(u.$slots, "barra")
563
563
  ]),
564
564
  _: 2
565
565
  }, [
566
- r.$slots.identidad ? {
566
+ u.$slots.identidad ? {
567
567
  name: "identidad",
568
568
  fn: W(() => [
569
- A(r.$slots, "identidad")
569
+ S(u.$slots, "identidad")
570
570
  ]),
571
571
  key: "0"
572
572
  } : void 0,
573
- r.$slots.titulo ? {
573
+ u.$slots.titulo ? {
574
574
  name: "titulo",
575
575
  fn: W(() => [
576
- A(r.$slots, "titulo")
576
+ S(u.$slots, "titulo")
577
577
  ]),
578
578
  key: "1"
579
579
  } : void 0,
580
- r.$slots.centro ? {
580
+ u.$slots.centro ? {
581
581
  name: "centro",
582
582
  fn: W(() => [
583
- A(r.$slots, "centro")
583
+ S(u.$slots, "centro")
584
584
  ]),
585
585
  key: "2"
586
586
  } : void 0,
587
- r.$slots.acciones ? {
587
+ u.$slots.acciones ? {
588
588
  name: "acciones",
589
589
  fn: W(() => [
590
- A(r.$slots, "acciones")
590
+ S(u.$slots, "acciones")
591
591
  ]),
592
592
  key: "3"
593
593
  } : void 0
594
594
  ]), 1040, ["position", "title", "minimize-label", "maximize-label", "close-label", "controls"])),
595
- E("div", sa, [
596
- A(r.$slots, "default")
595
+ D("div", ra, [
596
+ S(u.$slots, "default")
597
597
  ])
598
598
  ], 2));
599
599
  }
@@ -607,7 +607,7 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
607
607
  key: 0,
608
608
  class: "size-2 shrink-0 rounded-full bg-current",
609
609
  "aria-hidden": "true"
610
- }, va = ["title", "aria-label"], pa = 500, Me = 8, Ie = 6, Ge = /* @__PURE__ */ z({
610
+ }, va = ["title", "aria-label"], pa = 500, Me = 8, Ie = 6, Ge = /* @__PURE__ */ L({
611
611
  __name: "TabItem",
612
612
  props: {
613
613
  tab: {},
@@ -618,22 +618,22 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
618
618
  },
619
619
  emits: ["select", "close", "menu", "mover", "navegar"],
620
620
  setup(e, { emit: l }) {
621
- const t = e, a = l, { vertical: n, posicion: o } = me(), u = w(null), r = w(null), d = w(!1), b = w(!1), m = w(!1), B = w({ top: 0, left: 0, right: 0 });
622
- let D = null, L = null;
623
- const y = p(() => t.tab.closable !== !1), f = p(() => t.tab.tooltip ?? t.tab.label), V = p(
621
+ const t = e, a = l, { vertical: n, posicion: o } = me(), s = w(null), u = w(null), f = w(!1), d = w(!1), m = w(!1), B = w({ top: 0, left: 0, right: 0 });
622
+ let E = null, A = null;
623
+ const y = v(() => t.tab.closable !== !1), $ = v(() => t.tab.tooltip ?? t.tab.label), j = v(
624
624
  () => t.tab.dirty ? `${t.tab.label} · ${t.dirtyLabel}` : t.tab.label
625
- ), j = p(() => t.tab.label.trim().charAt(0).toUpperCase()), $ = p(() => d.value || m.value), c = p(
626
- () => !!t.tab.dirty && !($.value && y.value)
627
- ), v = p(
628
- () => y.value && ($.value || t.active || !t.tab.dirty)
629
- ), g = p(
630
- () => n.value && (d.value || b.value || m.value)
631
- ), P = p(() => {
625
+ ), z = v(() => t.tab.label.trim().charAt(0).toUpperCase()), g = v(() => f.value || m.value), c = v(
626
+ () => !!t.tab.dirty && !(g.value && y.value)
627
+ ), b = v(
628
+ () => y.value && (g.value || t.active || !t.tab.dirty)
629
+ ), p = v(
630
+ () => n.value && (f.value || d.value || m.value)
631
+ ), P = v(() => {
632
632
  const R = { position: "fixed", top: `${B.value.top}px`, zIndex: 50 };
633
633
  return o.value === "right" ? { ...R, right: `${B.value.right + Ie}px` } : { ...R, left: `${B.value.left + Ie}px` };
634
634
  });
635
635
  function _() {
636
- const R = u.value;
636
+ const R = s.value;
637
637
  if (!R) return;
638
638
  const k = R.getBoundingClientRect();
639
639
  B.value = {
@@ -644,25 +644,25 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
644
644
  }
645
645
  function U(R) {
646
646
  const k = R.relatedTarget;
647
- k && r.value?.contains(k) || (m.value = !1);
647
+ k && u.value?.contains(k) || (m.value = !1);
648
648
  }
649
649
  function ee() {
650
- d.value = !0, _();
650
+ f.value = !0, _();
651
651
  }
652
652
  function G() {
653
- b.value = !0, _();
653
+ d.value = !0, _();
654
654
  }
655
655
  function T() {
656
- D !== null && clearTimeout(D), D = null, L = null;
656
+ E !== null && clearTimeout(E), E = null, A = null;
657
657
  }
658
658
  function C(R) {
659
- R.button === 0 && (L = { x: R.clientX, y: R.clientY }, D = setTimeout(() => {
660
- L && a("menu", L), T();
659
+ R.button === 0 && (A = { x: R.clientX, y: R.clientY }, E = setTimeout(() => {
660
+ A && a("menu", A), T();
661
661
  }, pa));
662
662
  }
663
663
  function I(R) {
664
- if (!L) return;
665
- (Math.abs(R.clientX - L.x) > Me || Math.abs(R.clientY - L.y) > Me) && T();
664
+ if (!A) return;
665
+ (Math.abs(R.clientX - A.x) > Me || Math.abs(R.clientY - A.y) > Me) && T();
666
666
  }
667
667
  function ie(R) {
668
668
  R.button === 1 && y.value && (R.preventDefault(), a("close"));
@@ -670,17 +670,17 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
670
670
  function nt(R) {
671
671
  R.preventDefault(), a("menu", { x: R.clientX, y: R.clientY });
672
672
  }
673
- return ce(T), (R, k) => (i(), s("div", {
673
+ return ce(T), (R, k) => (i(), r("div", {
674
674
  ref_key: "raiz",
675
- ref: u,
675
+ ref: s,
676
676
  class: x(["group relative flex shrink-0 cursor-pointer items-center gap-2 rounded-corner border border-ui-border transition-colors", [
677
677
  e.active ? "bg-primary font-bold text-tx-on-primary" : "bg-ui-bg/80 hover:bg-ui-surface/70",
678
678
  q(n) ? "size-8 justify-center p-0 text-sm" : "w-34 max-w-34 px-3 py-1 text-sm"
679
679
  ]]),
680
680
  role: "tab",
681
681
  "aria-selected": e.active,
682
- title: f.value,
683
- "aria-label": V.value,
682
+ title: $.value,
683
+ "aria-label": j.value,
684
684
  tabindex: e.tabindex,
685
685
  onClick: k[5] || (k[5] = M((N) => a("select"), ["stop"])),
686
686
  onKeydown: [
@@ -705,27 +705,27 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
705
705
  onPointerup: T,
706
706
  onPointerleave: T,
707
707
  onMouseenter: ee,
708
- onMouseleave: k[19] || (k[19] = (N) => d.value = !1),
708
+ onMouseleave: k[19] || (k[19] = (N) => f.value = !1),
709
709
  onFocus: G,
710
- onBlur: k[20] || (k[20] = (N) => b.value = !1)
710
+ onBlur: k[20] || (k[20] = (N) => d.value = !1)
711
711
  }, [
712
712
  e.tab.icon ? (i(), Q(H, {
713
713
  key: 0,
714
714
  name: e.tab.icon,
715
715
  size: 16,
716
716
  class: "shrink-0"
717
- }, null, 8, ["name"])) : q(n) ? (i(), s("span", ca, S(j.value), 1)) : h("", !0),
718
- q(n) ? h("", !0) : (i(), s("span", da, S(e.tab.label), 1)),
719
- c.value ? (i(), s("span", {
717
+ }, null, 8, ["name"])) : q(n) ? (i(), r("span", ca, V(z.value), 1)) : h("", !0),
718
+ q(n) ? h("", !0) : (i(), r("span", da, V(e.tab.label), 1)),
719
+ c.value ? (i(), r("span", {
720
720
  key: 3,
721
721
  class: x(["size-2 shrink-0 rounded-full bg-current", q(n) ? "absolute right-0.5 top-0.5" : ""]),
722
722
  "aria-hidden": "true"
723
- }, null, 2)) : v.value && !q(n) ? (i(), s("button", {
723
+ }, null, 2)) : b.value && !q(n) ? (i(), r("button", {
724
724
  key: 4,
725
725
  type: "button",
726
726
  class: "flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",
727
727
  title: e.closeLabel,
728
- "aria-label": `${e.closeLabel}: ${V.value}`,
728
+ "aria-label": `${e.closeLabel}: ${j.value}`,
729
729
  onClick: k[0] || (k[0] = M((N) => a("close"), ["stop"]))
730
730
  }, [
731
731
  O(H, {
@@ -742,25 +742,25 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
742
742
  "leave-to-class": "opacity-0 scale-95"
743
743
  }, {
744
744
  default: W(() => [
745
- g.value ? (i(), s("div", {
745
+ p.value ? (i(), r("div", {
746
746
  key: 0,
747
747
  class: x(["flex items-center gap-2 rounded-corner border border-ui-border bg-ui-surface/95 px-3 py-1 text-sm shadow-lg", e.active ? "font-bold" : ""]),
748
748
  ref_key: "desplegadoRef",
749
- ref: r,
750
- style: se(P.value),
749
+ ref: u,
750
+ style: re(P.value),
751
751
  onMouseenter: k[2] || (k[2] = (N) => m.value = !0),
752
752
  onMouseleave: k[3] || (k[3] = (N) => m.value = !1),
753
753
  onFocusin: k[4] || (k[4] = (N) => m.value = !0),
754
754
  onFocusout: U
755
755
  }, [
756
- E("span", ma, S(e.tab.label), 1),
757
- e.tab.dirty ? (i(), s("span", ba)) : h("", !0),
758
- y.value ? (i(), s("button", {
756
+ D("span", ma, V(e.tab.label), 1),
757
+ e.tab.dirty ? (i(), r("span", ba)) : h("", !0),
758
+ y.value ? (i(), r("button", {
759
759
  key: 1,
760
760
  type: "button",
761
761
  class: "flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",
762
762
  title: e.closeLabel,
763
- "aria-label": `${e.closeLabel}: ${V.value}`,
763
+ "aria-label": `${e.closeLabel}: ${j.value}`,
764
764
  onClick: k[1] || (k[1] = M((N) => a("close"), ["stop"]))
765
765
  }, [
766
766
  O(H, {
@@ -776,7 +776,7 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
776
776
  ]))
777
777
  ], 42, ua));
778
778
  }
779
- }), ya = ["aria-orientation"], ga = ["draggable", "onDragstart", "onDragover", "onDrop"], ha = ["title", "aria-label"], xa = /* @__PURE__ */ z({
779
+ }), ya = ["aria-orientation"], ga = ["draggable", "onDragstart", "onDragover", "onDrop"], ha = ["title", "aria-label"], xa = /* @__PURE__ */ L({
780
780
  __name: "TabBar",
781
781
  props: {
782
782
  tabs: {},
@@ -788,91 +788,91 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
788
788
  },
789
789
  emits: ["update:modelValue", "select", "close", "new", "reorder", "menu"],
790
790
  setup(e, { emit: l }) {
791
- const t = e, a = l, { vertical: n } = me(), o = w(null), u = w(0), r = w(null), d = w(null);
792
- function b($) {
793
- a("update:modelValue", $), a("select", $);
791
+ const t = e, a = l, { vertical: n } = me(), o = w(null), s = w(0), u = w(null), f = w(null);
792
+ function d(g) {
793
+ a("update:modelValue", g), a("select", g);
794
794
  }
795
- async function m($, c) {
796
- const v = t.tabs.length - 1;
797
- if (v < 0) return;
798
- const g = c === "primera" ? 0 : c === "ultima" ? v : c === "anterior" ? ($ - 1 + t.tabs.length) % t.tabs.length : ($ + 1) % t.tabs.length;
799
- u.value = g, await Y(), o.value?.querySelectorAll('[role="tab"]')?.[g]?.focus();
795
+ async function m(g, c) {
796
+ const b = t.tabs.length - 1;
797
+ if (b < 0) return;
798
+ const p = c === "primera" ? 0 : c === "ultima" ? b : c === "anterior" ? (g - 1 + t.tabs.length) % t.tabs.length : (g + 1) % t.tabs.length;
799
+ s.value = p, await Y(), o.value?.querySelectorAll('[role="tab"]')?.[p]?.focus();
800
800
  }
801
- function B($, c) {
801
+ function B(g, c) {
802
802
  if (t.fixedOrder) return;
803
- const v = $ + c;
804
- if (v < 0 || v >= t.tabs.length) return;
805
- const g = [...t.tabs], [P] = g.splice($, 1);
806
- P && (g.splice(v, 0, P), u.value = v, a("reorder", g));
803
+ const b = g + c;
804
+ if (b < 0 || b >= t.tabs.length) return;
805
+ const p = [...t.tabs], [P] = p.splice(g, 1);
806
+ P && (p.splice(b, 0, P), s.value = b, a("reorder", p));
807
807
  }
808
- function D($) {
808
+ function E(g) {
809
809
  const c = o.value;
810
810
  if (!c) return;
811
- const v = $.deltaY || $.deltaX || 0, g = n.value ? c.scrollTop : c.scrollLeft;
812
- n.value ? c.scrollTop += v : c.scrollLeft += v, (n.value ? c.scrollTop : c.scrollLeft) !== g && $.preventDefault();
811
+ const b = g.deltaY || g.deltaX || 0, p = n.value ? c.scrollTop : c.scrollLeft;
812
+ n.value ? c.scrollTop += b : c.scrollLeft += b, (n.value ? c.scrollTop : c.scrollLeft) !== p && g.preventDefault();
813
813
  }
814
- function L($, c) {
815
- t.fixedOrder || (r.value = $, c.dataTransfer?.setData("text/plain", String($)), c.dataTransfer && (c.dataTransfer.effectAllowed = "move"));
814
+ function A(g, c) {
815
+ t.fixedOrder || (u.value = g, c.dataTransfer?.setData("text/plain", String(g)), c.dataTransfer && (c.dataTransfer.effectAllowed = "move"));
816
816
  }
817
- function y($, c) {
818
- t.fixedOrder || r.value === null || (c.preventDefault(), d.value = $, c.dataTransfer && (c.dataTransfer.dropEffect = "move"));
817
+ function y(g, c) {
818
+ t.fixedOrder || u.value === null || (c.preventDefault(), f.value = g, c.dataTransfer && (c.dataTransfer.dropEffect = "move"));
819
819
  }
820
- function f($) {
821
- const c = r.value;
822
- if (V(), t.fixedOrder || c === null || c === $) return;
823
- const v = [...t.tabs], [g] = v.splice(c, 1);
824
- g && (v.splice($, 0, g), a("reorder", v));
820
+ function $(g) {
821
+ const c = u.value;
822
+ if (j(), t.fixedOrder || c === null || c === g) return;
823
+ const b = [...t.tabs], [p] = b.splice(c, 1);
824
+ p && (b.splice(g, 0, p), a("reorder", b));
825
825
  }
826
- function V() {
827
- r.value = null, d.value = null;
826
+ function j() {
827
+ u.value = null, f.value = null;
828
828
  }
829
- const j = p(
829
+ const z = v(
830
830
  () => n.value ? "flex h-full flex-col items-center gap-1 overflow-y-auto overflow-x-hidden" : "flex items-center gap-1 overflow-x-auto overflow-y-hidden"
831
831
  );
832
- return ($, c) => (i(), s("div", {
832
+ return (g, c) => (i(), r("div", {
833
833
  class: x(["flex min-h-0 min-w-0 items-center gap-1", q(n) ? "w-full flex-col" : "h-full"]),
834
834
  role: "tablist",
835
835
  "aria-orientation": q(n) ? "vertical" : "horizontal"
836
836
  }, [
837
- E("div", {
837
+ D("div", {
838
838
  ref_key: "carril",
839
839
  ref: o,
840
- class: x(j.value),
841
- onWheel: D
840
+ class: x(z.value),
841
+ onWheel: E
842
842
  }, [
843
- (i(!0), s(Z, null, ne(e.tabs, (v, g) => (i(), s("div", {
844
- key: v.id,
843
+ (i(!0), r(Z, null, ne(e.tabs, (b, p) => (i(), r("div", {
844
+ key: b.id,
845
845
  class: x(["transition-opacity", [
846
- r.value === g ? "opacity-40" : "",
847
- d.value === g && r.value !== g ? "ring-2 ring-secondary rounded-corner" : ""
846
+ u.value === p ? "opacity-40" : "",
847
+ f.value === p && u.value !== p ? "ring-2 ring-secondary rounded-corner" : ""
848
848
  ]]),
849
849
  draggable: !e.fixedOrder,
850
- onDragstart: (P) => L(g, P),
851
- onDragover: (P) => y(g, P),
852
- onDrop: M((P) => f(g), ["prevent"]),
853
- onDragend: V
850
+ onDragstart: (P) => A(p, P),
851
+ onDragover: (P) => y(p, P),
852
+ onDrop: M((P) => $(p), ["prevent"]),
853
+ onDragend: j
854
854
  }, [
855
855
  O(Ge, {
856
- tab: v,
857
- active: v.id === e.modelValue,
856
+ tab: b,
857
+ active: b.id === e.modelValue,
858
858
  "close-label": e.closeLabel,
859
859
  "dirty-label": e.dirtyLabel,
860
- tabindex: g === u.value ? 0 : -1,
861
- onSelect: (P) => b(v.id),
862
- onClose: (P) => a("close", v.id),
863
- onMenu: (P) => a("menu", { id: v.id, ...P }),
864
- onNavegar: (P) => m(g, P),
865
- onMover: (P) => B(g, P)
860
+ tabindex: p === s.value ? 0 : -1,
861
+ onSelect: (P) => d(b.id),
862
+ onClose: (P) => a("close", b.id),
863
+ onMenu: (P) => a("menu", { id: b.id, ...P }),
864
+ onNavegar: (P) => m(p, P),
865
+ onMover: (P) => B(p, P)
866
866
  }, null, 8, ["tab", "active", "close-label", "dirty-label", "tabindex", "onSelect", "onClose", "onMenu", "onNavegar", "onMover"])
867
867
  ], 42, ga))), 128))
868
868
  ], 34),
869
- e.newLabel ? (i(), s("button", {
869
+ e.newLabel ? (i(), r("button", {
870
870
  key: 0,
871
871
  type: "button",
872
872
  class: "flex size-7 shrink-0 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",
873
873
  title: e.newLabel,
874
874
  "aria-label": e.newLabel,
875
- onClick: c[0] || (c[0] = (v) => a("new"))
875
+ onClick: c[0] || (c[0] = (b) => a("new"))
876
876
  }, [
877
877
  O(H, {
878
878
  name: "gtk-add",
@@ -882,7 +882,7 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
882
882
  ], 8, ha)) : h("", !0)
883
883
  ], 10, ya));
884
884
  }
885
- }), ka = ["id", "aria-label", "type", "value", "placeholder", "disabled", "readonly", "required", "aria-describedby", "autocomplete", "aria-invalid"], Qe = /* @__PURE__ */ z({
885
+ }), ka = ["id", "aria-label", "type", "value", "placeholder", "disabled", "readonly", "required", "aria-describedby", "autocomplete", "aria-invalid"], Qe = /* @__PURE__ */ L({
886
886
  __name: "TextInput",
887
887
  props: {
888
888
  modelValue: {},
@@ -902,20 +902,20 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
902
902
  emits: ["update:modelValue", "keyup", "keydown"],
903
903
  setup(e, { emit: l }) {
904
904
  const t = e, a = l;
905
- function n(r) {
906
- t.lazy || a("update:modelValue", r.target.value);
905
+ function n(u) {
906
+ t.lazy || a("update:modelValue", u.target.value);
907
907
  }
908
- function o(r) {
909
- t.lazy && a("update:modelValue", r.target.value);
908
+ function o(u) {
909
+ t.lazy && a("update:modelValue", u.target.value);
910
910
  }
911
- const u = p(() => [
911
+ const s = v(() => [
912
912
  "w-full rounded-corner border bg-ui-surface/70 px-3 py-1.5 text-sm text-tx-main",
913
913
  "placeholder:text-tx-muted focus:outline-none focus:ring-1 focus:ring-primary",
914
914
  t.invalid ? "border-status-error" : "border-ui-border",
915
915
  t.mono ? "font-mono" : "",
916
916
  t.disabled ? "cursor-not-allowed opacity-60" : ""
917
917
  ]);
918
- return (r, d) => (i(), s("input", {
918
+ return (u, f) => (i(), r("input", {
919
919
  id: e.id,
920
920
  "aria-label": e.ariaLabel,
921
921
  type: e.type,
@@ -927,14 +927,14 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
927
927
  "aria-describedby": e.describedBy,
928
928
  autocomplete: e.autocomplete,
929
929
  "aria-invalid": e.invalid || void 0,
930
- class: x(u.value),
930
+ class: x(s.value),
931
931
  onInput: n,
932
932
  onChange: o,
933
- onKeyup: d[0] || (d[0] = (b) => a("keyup", b)),
934
- onKeydown: d[1] || (d[1] = (b) => a("keydown", b))
933
+ onKeyup: f[0] || (f[0] = (d) => a("keyup", d)),
934
+ onKeydown: f[1] || (f[1] = (d) => a("keydown", d))
935
935
  }, null, 42, ka));
936
936
  }
937
- }), wa = { class: "pointer-events-none absolute left-2 flex items-center" }, $a = ["aria-label"], Le = /* @__PURE__ */ z({
937
+ }), wa = { class: "pointer-events-none absolute left-2 flex items-center" }, $a = ["aria-label"], Ee = /* @__PURE__ */ L({
938
938
  __name: "SearchField",
939
939
  props: {
940
940
  modelValue: { default: "" },
@@ -952,8 +952,8 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
952
952
  emits: ["update:modelValue", "search", "clear"],
953
953
  setup(e, { expose: l, emit: t }) {
954
954
  const a = e, n = t, o = w(null);
955
- let u;
956
- const r = p(() => a.modelValue.length > 0), d = p(
955
+ let s;
956
+ const u = v(() => a.modelValue.length > 0), f = v(
957
957
  () => a.listboxId ? {
958
958
  role: "combobox",
959
959
  "aria-autocomplete": "list",
@@ -961,17 +961,17 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
961
961
  "aria-expanded": String(a.expanded),
962
962
  "aria-activedescendant": a.activeOptionId || void 0
963
963
  } : {}
964
- ), b = p(() => a.clearable && r.value && !a.disabled);
964
+ ), d = v(() => a.clearable && u.value && !a.disabled);
965
965
  function m() {
966
- clearTimeout(u), u = void 0;
966
+ clearTimeout(s), s = void 0;
967
967
  }
968
- function B(f) {
969
- n("update:modelValue", f), !(a.debounce <= 0) && (m(), u = setTimeout(() => n("search", f), a.debounce));
968
+ function B($) {
969
+ n("update:modelValue", $), !(a.debounce <= 0) && (m(), s = setTimeout(() => n("search", $), a.debounce));
970
970
  }
971
- function D() {
971
+ function E() {
972
972
  m(), n("search", a.modelValue);
973
973
  }
974
- function L() {
974
+ function A() {
975
975
  m(), n("update:modelValue", ""), n("clear"), y();
976
976
  }
977
977
  function y() {
@@ -981,14 +981,14 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
981
981
  a.autofocus && (await Y(), y());
982
982
  }), ve(m), K(
983
983
  () => a.disabled,
984
- (f) => {
985
- f && m();
984
+ ($) => {
985
+ $ && m();
986
986
  }
987
- ), (f, V) => (i(), s("div", {
987
+ ), ($, j) => (i(), r("div", {
988
988
  class: "relative flex items-center",
989
- onKeydown: F(D, ["enter"])
989
+ onKeydown: F(E, ["enter"])
990
990
  }, [
991
- E("span", wa, [
991
+ D("span", wa, [
992
992
  O(H, {
993
993
  name: e.busy ? "content-loading" : "system-search",
994
994
  type: "symbol",
@@ -1003,19 +1003,19 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
1003
1003
  "model-value": e.modelValue,
1004
1004
  placeholder: e.placeholder || e.label,
1005
1005
  ariaLabel: e.label || void 0
1006
- }, d.value, {
1006
+ }, f.value, {
1007
1007
  disabled: e.disabled,
1008
- class: ["pl-7 [&::-webkit-search-cancel-button]:appearance-none", b.value ? "pr-8" : ""],
1008
+ class: ["pl-7 [&::-webkit-search-cancel-button]:appearance-none", d.value ? "pr-8" : ""],
1009
1009
  "onUpdate:modelValue": B
1010
1010
  }), null, 16, ["model-value", "placeholder", "ariaLabel", "disabled", "class"]),
1011
- b.value ? (i(), s("button", {
1011
+ d.value ? (i(), r("button", {
1012
1012
  key: 0,
1013
1013
  type: "button",
1014
1014
  class: "absolute right-1 flex size-6 items-center justify-center rounded-corner text-tx-muted hover:bg-ui-surface",
1015
1015
  "aria-label": e.label ? `${e.label}: vaciar` : "Vaciar",
1016
- onMousedown: V[0] || (V[0] = M(() => {
1016
+ onMousedown: j[0] || (j[0] = M(() => {
1017
1017
  }, ["prevent"])),
1018
- onClick: L
1018
+ onClick: A
1019
1019
  }, [
1020
1020
  O(H, {
1021
1021
  name: "gtk-close",
@@ -1026,7 +1026,7 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
1026
1026
  ], 40, $a)) : h("", !0)
1027
1027
  ], 32));
1028
1028
  }
1029
- }), Ca = ["title", "aria-label", "aria-expanded"], za = /* @__PURE__ */ z({
1029
+ }), Ca = ["title", "aria-label", "aria-expanded"], za = /* @__PURE__ */ L({
1030
1030
  __name: "BarSearch",
1031
1031
  props: {
1032
1032
  modelValue: { default: "" },
@@ -1038,35 +1038,35 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
1038
1038
  },
1039
1039
  emits: ["update:modelValue", "search", "open", "close"],
1040
1040
  setup(e, { emit: l }) {
1041
- const t = e, a = l, { vertical: n, posicion: o } = me(), u = w(!1), r = w(null), d = p(() => n.value || t.collapsed), b = p(() => !d.value || u.value), m = p(() => {
1042
- if (!d.value) return "";
1041
+ const t = e, a = l, { vertical: n, posicion: o } = me(), s = w(!1), u = w(null), f = v(() => n.value || t.collapsed), d = v(() => !f.value || s.value), m = v(() => {
1042
+ if (!f.value) return "";
1043
1043
  const y = "absolute z-40 w-64 rounded-corner border border-ui-border bg-ui-surface/95 p-1 shadow-lg";
1044
1044
  return o.value === "left" ? `${y} left-full top-0 ml-1` : o.value === "right" ? `${y} right-full top-0 mr-1` : o.value === "bottom" ? `${y} bottom-full right-0 mb-1` : `${y} top-full right-0 mt-1`;
1045
1045
  });
1046
1046
  async function B() {
1047
- u.value = !0, a("open"), await Y(), r.value?.enfocar();
1047
+ s.value = !0, a("open"), await Y(), u.value?.enfocar();
1048
1048
  }
1049
- function D() {
1050
- u.value && (u.value = !1, a("close"));
1049
+ function E() {
1050
+ s.value && (s.value = !1, a("close"));
1051
1051
  }
1052
- function L(y) {
1053
- const f = y.relatedTarget;
1054
- f && y.currentTarget.contains(f) || D();
1052
+ function A(y) {
1053
+ const $ = y.relatedTarget;
1054
+ $ && y.currentTarget.contains($) || E();
1055
1055
  }
1056
- return (y, f) => (i(), s("div", {
1056
+ return (y, $) => (i(), r("div", {
1057
1057
  class: "relative flex shrink-0 items-center",
1058
- onFocusout: L
1058
+ onFocusout: A
1059
1059
  }, [
1060
- d.value ? (i(), s("button", {
1060
+ f.value ? (i(), r("button", {
1061
1061
  key: 0,
1062
1062
  type: "button",
1063
1063
  class: "flex size-7 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",
1064
1064
  title: e.label,
1065
1065
  "aria-label": e.label,
1066
- "aria-expanded": u.value,
1067
- onMousedown: f[0] || (f[0] = M(() => {
1066
+ "aria-expanded": s.value,
1067
+ onMousedown: $[0] || ($[0] = M(() => {
1068
1068
  }, ["prevent"])),
1069
- onClick: f[1] || (f[1] = (V) => u.value ? D() : B())
1069
+ onClick: $[1] || ($[1] = (j) => s.value ? E() : B())
1070
1070
  }, [
1071
1071
  O(H, {
1072
1072
  name: "system-search",
@@ -1074,30 +1074,30 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
1074
1074
  size: 14
1075
1075
  })
1076
1076
  ], 40, Ca)) : h("", !0),
1077
- b.value ? (i(), s("div", {
1077
+ d.value ? (i(), r("div", {
1078
1078
  key: 1,
1079
1079
  class: x(m.value),
1080
- onKeydown: F(D, ["esc"])
1080
+ onKeydown: F(E, ["esc"])
1081
1081
  }, [
1082
- O(Le, {
1082
+ O(Ee, {
1083
1083
  ref_key: "campo",
1084
- ref: r,
1084
+ ref: u,
1085
1085
  "model-value": e.modelValue,
1086
1086
  placeholder: e.placeholder,
1087
1087
  label: e.label,
1088
1088
  disabled: e.disabled,
1089
1089
  debounce: e.debounce,
1090
- class: x(d.value ? "" : "w-48"),
1091
- "onUpdate:modelValue": f[2] || (f[2] = (V) => a("update:modelValue", V)),
1092
- onSearch: f[3] || (f[3] = (V) => a("search", V))
1090
+ class: x(f.value ? "" : "w-48"),
1091
+ "onUpdate:modelValue": $[2] || ($[2] = (j) => a("update:modelValue", j)),
1092
+ onSearch: $[3] || ($[3] = (j) => a("search", j))
1093
1093
  }, null, 8, ["model-value", "placeholder", "label", "disabled", "debounce", "class"])
1094
1094
  ], 34)) : h("", !0)
1095
1095
  ], 32));
1096
1096
  }
1097
- }), Ea = ["type", "disabled"], Da = {
1097
+ }), La = ["type", "disabled"], Da = {
1098
1098
  key: 0,
1099
1099
  class: "w-4 h-4 animate-spin rounded-full border-2 border-current border-t-transparent"
1100
- }, La = ["src", "alt"], Ta = { key: 2 }, Ba = ["src", "alt"], Aa = /* @__PURE__ */ z({
1100
+ }, Ea = ["src", "alt"], Ta = { key: 2 }, Ba = ["src", "alt"], Aa = /* @__PURE__ */ L({
1101
1101
  __name: "ActionButton",
1102
1102
  props: {
1103
1103
  label: {},
@@ -1124,12 +1124,12 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
1124
1124
  sm: "px-2 py-1 text-xs",
1125
1125
  md: "px-3 py-1 text-sm",
1126
1126
  lg: "px-4 py-2 text-base"
1127
- }, u = (r) => {
1128
- t.stopPropagation && r.stopPropagation(), t.preventDefault && r.preventDefault(), !t.disabled && !t.loading && a("click");
1127
+ }, s = (u) => {
1128
+ t.stopPropagation && u.stopPropagation(), t.preventDefault && u.preventDefault(), !t.disabled && !t.loading && a("click");
1129
1129
  };
1130
- return (r, d) => (i(), s("button", {
1130
+ return (u, f) => (i(), r("button", {
1131
1131
  type: t.type,
1132
- onClick: u,
1132
+ onClick: s,
1133
1133
  class: x(["rounded-corner transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2", [
1134
1134
  n[t.variant],
1135
1135
  o[t.size],
@@ -1139,21 +1139,21 @@ const aa = ["title", "aria-label"], la = ["title", "aria-label"], na = ["title",
1139
1139
  ]]),
1140
1140
  disabled: t.disabled || t.loading
1141
1141
  }, [
1142
- e.loading ? (i(), s("span", Da)) : h("", !0),
1143
- t.iconSrc && !t.iconRight ? (i(), s("img", {
1142
+ e.loading ? (i(), r("span", Da)) : h("", !0),
1143
+ t.iconSrc && !t.iconRight ? (i(), r("img", {
1144
1144
  key: 1,
1145
1145
  src: t.iconSrc,
1146
1146
  alt: t.iconAlt || t.label,
1147
1147
  class: "w-4 h-4"
1148
- }, null, 8, La)) : h("", !0),
1149
- t.label ? (i(), s("span", Ta, S(t.label), 1)) : h("", !0),
1150
- t.iconSrc && t.iconRight ? (i(), s("img", {
1148
+ }, null, 8, Ea)) : h("", !0),
1149
+ t.label ? (i(), r("span", Ta, V(t.label), 1)) : h("", !0),
1150
+ t.iconSrc && t.iconRight ? (i(), r("img", {
1151
1151
  key: 3,
1152
1152
  src: t.iconSrc,
1153
1153
  alt: t.iconAlt || t.label,
1154
1154
  class: "w-4 h-4"
1155
1155
  }, null, 8, Ba)) : h("", !0)
1156
- ], 10, Ea));
1156
+ ], 10, La));
1157
1157
  }
1158
1158
  }), ge = (e, l) => {
1159
1159
  const t = e.__vccOpts || e;
@@ -1175,7 +1175,7 @@ const Va = ["role"], Ma = {
1175
1175
  }, Ia = { class: "min-w-0 flex-1" }, Oa = {
1176
1176
  key: 0,
1177
1177
  class: "font-semibold"
1178
- }, ja = /* @__PURE__ */ z({
1178
+ }, ja = /* @__PURE__ */ L({
1179
1179
  __name: "AlertMessage",
1180
1180
  props: {
1181
1181
  tone: { default: "info" },
@@ -1184,13 +1184,13 @@ const Va = ["role"], Ma = {
1184
1184
  iconType: { default: "symbol" }
1185
1185
  },
1186
1186
  setup(e) {
1187
- const l = e, t = p(() => Ye[l.tone]), a = p(() => Xe(l.tone));
1188
- return (n, o) => (i(), s("div", {
1187
+ const l = e, t = v(() => Ye[l.tone]), a = v(() => Xe(l.tone));
1188
+ return (n, o) => (i(), r("div", {
1189
1189
  role: a.value,
1190
1190
  "aria-atomic": "true",
1191
1191
  class: x(["flex gap-3 rounded-corner border px-4 py-2 text-sm", t.value])
1192
1192
  }, [
1193
- e.icon ? (i(), s("span", Ma, [
1193
+ e.icon ? (i(), r("span", Ma, [
1194
1194
  O(H, {
1195
1195
  name: e.icon,
1196
1196
  type: e.iconType,
@@ -1198,12 +1198,12 @@ const Va = ["role"], Ma = {
1198
1198
  alt: ""
1199
1199
  }, null, 8, ["name", "type"])
1200
1200
  ])) : h("", !0),
1201
- E("div", Ia, [
1202
- e.title ? (i(), s("p", Oa, S(e.title), 1)) : h("", !0),
1203
- E("div", {
1201
+ D("div", Ia, [
1202
+ e.title ? (i(), r("p", Oa, V(e.title), 1)) : h("", !0),
1203
+ D("div", {
1204
1204
  class: x(e.title ? "mt-1" : "")
1205
1205
  }, [
1206
- A(n.$slots, "default")
1206
+ S(n.$slots, "default")
1207
1207
  ], 2)
1208
1208
  ])
1209
1209
  ], 10, Va));
@@ -1211,7 +1211,7 @@ const Va = ["role"], Ma = {
1211
1211
  }), Pa = { class: "font-medium text-sm text-tx-main" }, Fa = {
1212
1212
  key: 0,
1213
1213
  class: "text-sm text-tx-muted"
1214
- }, qa = /* @__PURE__ */ z({
1214
+ }, qa = /* @__PURE__ */ L({
1215
1215
  __name: "EmptyState",
1216
1216
  props: {
1217
1217
  title: {},
@@ -1221,7 +1221,7 @@ const Va = ["role"], Ma = {
1221
1221
  bordered: { type: Boolean, default: !1 }
1222
1222
  },
1223
1223
  setup(e) {
1224
- return (l, t) => (i(), s("div", {
1224
+ return (l, t) => (i(), r("div", {
1225
1225
  class: x(["flex flex-col items-center justify-center gap-3 px-8 py-12 text-center", e.bordered ? "rounded-corner border border-ui-border border-dashed bg-ui-surface/20" : ""])
1226
1226
  }, [
1227
1227
  O(H, {
@@ -1230,24 +1230,40 @@ const Va = ["role"], Ma = {
1230
1230
  size: 48,
1231
1231
  class: "opacity-60"
1232
1232
  }, null, 8, ["name", "type"]),
1233
- E("p", Pa, S(e.title), 1),
1234
- e.note ? (i(), s("p", Fa, S(e.note), 1)) : h("", !0),
1235
- A(l.$slots, "default")
1233
+ D("p", Pa, V(e.title), 1),
1234
+ e.note ? (i(), r("p", Fa, V(e.note), 1)) : h("", !0),
1235
+ S(l.$slots, "default")
1236
1236
  ], 2));
1237
1237
  }
1238
- }), Ra = ["role"], Na = /* @__PURE__ */ z({
1238
+ }), Ra = { class: "text-sm text-tx-muted" }, Na = /* @__PURE__ */ L({
1239
+ __name: "LoadingState",
1240
+ props: {
1241
+ label: {},
1242
+ bordered: { type: Boolean, default: !1 }
1243
+ },
1244
+ setup(e) {
1245
+ return (l, t) => (i(), r("div", {
1246
+ role: "status",
1247
+ "aria-atomic": "true",
1248
+ class: x(["flex flex-col items-center justify-center gap-4 px-8 py-12 text-center", e.bordered ? "rounded-corner border border-ui-border border-dashed bg-ui-surface/20" : ""])
1249
+ }, [
1250
+ t[0] || (t[0] = D("span", { class: "h-10 w-10 animate-spin rounded-full border-4 border-ui-border border-t-primary motion-reduce:animate-none" }, null, -1)),
1251
+ D("p", Ra, V(e.label), 1)
1252
+ ], 2));
1253
+ }
1254
+ }), Ha = ["role"], Ua = /* @__PURE__ */ L({
1239
1255
  __name: "ToastArea",
1240
1256
  props: {
1241
1257
  toasts: {},
1242
1258
  position: { default: "bottom-right" }
1243
1259
  },
1244
1260
  setup(e) {
1245
- const l = e, t = p(
1261
+ const l = e, t = v(
1246
1262
  () => l.position === "bottom-center" ? "bottom-4 left-1/2 -translate-x-1/2" : "right-4 bottom-4"
1247
1263
  );
1248
1264
  return (a, n) => (i(), Q(fe, { to: "body" }, [
1249
- E("div", {
1250
- class: x(["pointer-events-none fixed z-50 flex flex-col gap-2", t.value])
1265
+ D("div", {
1266
+ class: x(["pointer-events-none fixed z-60 flex flex-col gap-2", t.value])
1251
1267
  }, [
1252
1268
  O(ct, {
1253
1269
  "enter-active-class": "transition-all duration-300 ease-out",
@@ -1257,36 +1273,36 @@ const Va = ["role"], Ma = {
1257
1273
  "move-class": "transition-transform duration-300"
1258
1274
  }, {
1259
1275
  default: W(() => [
1260
- (i(!0), s(Z, null, ne(e.toasts, (o) => (i(), s("div", {
1276
+ (i(!0), r(Z, null, ne(e.toasts, (o) => (i(), r("div", {
1261
1277
  key: o.id,
1262
1278
  role: q(Xe)(o.tone ?? "info"),
1263
1279
  "aria-atomic": "true",
1264
1280
  class: x(["pointer-events-auto rounded-corner border px-4 py-2 text-sm shadow-lg backdrop-blur-sm", q(Ye)[o.tone ?? "info"]])
1265
1281
  }, [
1266
- A(a.$slots, "default", { aviso: o }, () => [
1267
- ze(S(o.message), 1)
1282
+ S(a.$slots, "default", { aviso: o }, () => [
1283
+ ze(V(o.message), 1)
1268
1284
  ])
1269
- ], 10, Ra))), 128))
1285
+ ], 10, Ha))), 128))
1270
1286
  ]),
1271
1287
  _: 3
1272
1288
  })
1273
1289
  ], 2)
1274
1290
  ]));
1275
1291
  }
1276
- }), Ha = ["aria-label", "aria-valuenow"], Ua = {
1292
+ }), Wa = ["aria-label", "aria-valuenow"], Ka = {
1277
1293
  key: 1,
1278
1294
  class: "h-full w-full animate-pulse rounded-corner bg-primary motion-reduce:animate-none motion-reduce:bg-primary/40"
1279
- }, Wa = /* @__PURE__ */ z({
1295
+ }, Ga = /* @__PURE__ */ L({
1280
1296
  __name: "ProgressBar",
1281
1297
  props: {
1282
1298
  value: {},
1283
1299
  label: {}
1284
1300
  },
1285
1301
  setup(e) {
1286
- const l = e, t = p(
1302
+ const l = e, t = v(
1287
1303
  () => l.value === null ? null : Math.max(0, Math.min(100, l.value))
1288
1304
  );
1289
- return (a, n) => (i(), s("div", {
1305
+ return (a, n) => (i(), r("div", {
1290
1306
  role: "progressbar",
1291
1307
  "aria-label": e.label,
1292
1308
  "aria-valuenow": t.value ?? void 0,
@@ -1294,46 +1310,46 @@ const Va = ["role"], Ma = {
1294
1310
  "aria-valuemax": "100",
1295
1311
  class: "h-2 w-full overflow-hidden rounded-corner bg-ui-surface/70"
1296
1312
  }, [
1297
- t.value !== null ? (i(), s("div", {
1313
+ t.value !== null ? (i(), r("div", {
1298
1314
  key: 0,
1299
1315
  class: "h-full rounded-corner bg-primary transition-[width] duration-300 ease-out",
1300
- style: se({ width: `${t.value}%` })
1301
- }, null, 4)) : (i(), s("div", Ua))
1302
- ], 8, Ha));
1316
+ style: re({ width: `${t.value}%` })
1317
+ }, null, 4)) : (i(), r("div", Ka))
1318
+ ], 8, Wa));
1303
1319
  }
1304
- }), Ka = /[/\-_.]/;
1320
+ }), Qa = /[/\-_.]/;
1305
1321
  function ke(e, l) {
1306
1322
  if (!l) return 100;
1307
1323
  const t = l.toLowerCase();
1308
- return t === e ? 0 : t.startsWith(e) ? 10 : t.split(Ka).some((a) => a.startsWith(e)) ? 30 : t.includes(e) ? 40 : 100;
1324
+ return t === e ? 0 : t.startsWith(e) ? 10 : t.split(Qa).some((a) => a.startsWith(e)) ? 30 : t.includes(e) ? 40 : 100;
1309
1325
  }
1310
- function Ga(e, l) {
1326
+ function Ya(e, l) {
1311
1327
  const t = l.trim().toLowerCase();
1312
1328
  if (!t) return e;
1313
1329
  const a = [];
1314
1330
  for (let n = 0; n < e.length; n++) {
1315
- const o = e[n], u = ke(t, o.valor), r = ke(t, o.etiqueta), d = r === 10 ? 20 : r, m = ke(t, o.detalle) === 100 ? 100 : 40, B = Math.min(u, d, m);
1331
+ const o = e[n], s = ke(t, o.valor), u = ke(t, o.etiqueta), f = u === 10 ? 20 : u, m = ke(t, o.detalle) === 100 ? 100 : 40, B = Math.min(s, f, m);
1316
1332
  B !== 100 && a.push({ opcion: o, rango: B, orden: n });
1317
1333
  }
1318
1334
  return a.sort((n, o) => n.rango - o.rango || n.orden - o.orden), a.map((n) => n.opcion);
1319
1335
  }
1320
1336
  let Oe = 0;
1321
- function Qa() {
1337
+ function Xa() {
1322
1338
  return Oe += 1, `vsk-lista-${Oe}`;
1323
1339
  }
1324
- const Ya = ["disabled", "aria-label", "aria-expanded"], Xa = { class: "min-w-0 flex-1 truncate" }, Ja = {
1340
+ const Ja = ["disabled", "aria-label", "aria-expanded"], Za = { class: "min-w-0 flex-1 truncate" }, _a = {
1325
1341
  key: 0,
1326
1342
  class: "ml-2 text-tx-muted text-xs"
1327
- }, Za = { class: "border-ui-border border-b p-2" }, _a = ["id"], el = {
1343
+ }, el = { class: "border-ui-border border-b p-2" }, tl = ["id"], al = {
1328
1344
  key: 0,
1329
1345
  class: "p-3 text-center text-tx-muted text-xs"
1330
- }, tl = ["id", "data-indice", "aria-selected"], al = { class: "min-w-0 flex-1 truncate" }, ll = {
1346
+ }, ll = ["id", "data-indice", "aria-selected"], nl = { class: "min-w-0 flex-1 truncate" }, ol = {
1331
1347
  key: 0,
1332
1348
  class: "shrink-0 text-tx-muted text-xs"
1333
- }, nl = {
1349
+ }, il = {
1334
1350
  key: 1,
1335
1351
  class: "px-2 py-1 text-tx-muted text-xs"
1336
- }, ol = /* @__PURE__ */ z({
1352
+ }, rl = /* @__PURE__ */ L({
1337
1353
  __name: "SearchSelect",
1338
1354
  props: {
1339
1355
  modelValue: {},
@@ -1348,86 +1364,86 @@ const Ya = ["disabled", "aria-label", "aria-expanded"], Xa = { class: "min-w-0 f
1348
1364
  },
1349
1365
  emits: ["update:modelValue"],
1350
1366
  setup(e, { emit: l }) {
1351
- const t = e, a = l, n = w(""), o = w(!1), u = w(0), r = w(null), d = w(null), b = w(null), m = Qa(), B = p(
1367
+ const t = e, a = l, n = w(""), o = w(!1), s = w(0), u = w(null), f = w(null), d = w(null), m = Xa(), B = v(
1352
1368
  () => t.options.find((T) => T.valor === t.modelValue) ?? null
1353
- ), D = p(() => Ga(t.options, n.value)), L = p(() => D.value.slice(0, t.limit)), y = p(() => Math.max(0, D.value.length - t.limit)), f = p(
1354
- () => L.value.length > 0 ? `${m}-${u.value}` : void 0
1369
+ ), E = v(() => Ya(t.options, n.value)), A = v(() => E.value.slice(0, t.limit)), y = v(() => Math.max(0, E.value.length - t.limit)), $ = v(
1370
+ () => A.value.length > 0 ? `${m}-${s.value}` : void 0
1355
1371
  );
1356
- function V(T) {
1357
- a("update:modelValue", T), $();
1372
+ function j(T) {
1373
+ a("update:modelValue", T), g();
1358
1374
  }
1359
- async function j() {
1375
+ async function z() {
1360
1376
  o.value = !0;
1361
- const T = L.value.findIndex((C) => C.valor === t.modelValue);
1362
- u.value = T >= 0 ? T : 0, await Y(), b.value?.enfocar(), U();
1377
+ const T = A.value.findIndex((C) => C.valor === t.modelValue);
1378
+ s.value = T >= 0 ? T : 0, await Y(), d.value?.enfocar(), U();
1363
1379
  }
1364
- function $(T = !0) {
1365
- o.value && (o.value = !1, n.value = "", T && Y(() => d.value?.focus()));
1380
+ function g(T = !0) {
1381
+ o.value && (o.value = !1, n.value = "", T && Y(() => f.value?.focus()));
1366
1382
  }
1367
1383
  function c(T) {
1368
- const C = L.value.length;
1369
- C !== 0 && (u.value = (u.value + T + C) % C, U());
1384
+ const C = A.value.length;
1385
+ C !== 0 && (s.value = (s.value + T + C) % C, U());
1370
1386
  }
1371
- function v(T) {
1372
- u.value = T, U();
1387
+ function b(T) {
1388
+ s.value = T, U();
1373
1389
  }
1374
- function g(T) {
1390
+ function p(T) {
1375
1391
  const C = T.target?.closest?.("[data-indice]");
1376
1392
  if (!C) return null;
1377
1393
  const I = Number(C.getAttribute("data-indice"));
1378
1394
  return Number.isInteger(I) ? I : null;
1379
1395
  }
1380
1396
  function P(T) {
1381
- const C = g(T), I = C === null ? void 0 : L.value[C];
1382
- I && V(I.valor);
1397
+ const C = p(T), I = C === null ? void 0 : A.value[C];
1398
+ I && j(I.valor);
1383
1399
  }
1384
1400
  function _(T) {
1385
- const C = g(T);
1386
- C !== null && (u.value = C);
1401
+ const C = p(T);
1402
+ C !== null && (s.value = C);
1387
1403
  }
1388
1404
  function U() {
1389
1405
  Y(() => {
1390
- r.value?.querySelector(`[data-indice="${u.value}"]`)?.scrollIntoView({ block: "nearest" });
1406
+ u.value?.querySelector(`[data-indice="${s.value}"]`)?.scrollIntoView({ block: "nearest" });
1391
1407
  });
1392
1408
  }
1393
1409
  function ee() {
1394
- const T = L.value[u.value];
1395
- T && V(T.valor);
1410
+ const T = A.value[s.value];
1411
+ T && j(T.valor);
1396
1412
  }
1397
1413
  K(
1398
1414
  () => t.disabled,
1399
1415
  (T) => {
1400
- T && $(!1);
1416
+ T && g(!1);
1401
1417
  }
1402
1418
  ), K(n, () => {
1403
- u.value = 0, U();
1419
+ s.value = 0, U();
1404
1420
  });
1405
1421
  function G(T) {
1406
1422
  const C = T.relatedTarget;
1407
- C && T.currentTarget.contains(C) || $(!1);
1423
+ C && T.currentTarget.contains(C) || g(!1);
1408
1424
  }
1409
- return (T, C) => (i(), s("div", {
1425
+ return (T, C) => (i(), r("div", {
1410
1426
  class: "relative",
1411
1427
  onFocusout: G
1412
1428
  }, [
1413
- E("button", {
1429
+ D("button", {
1414
1430
  ref_key: "boton",
1415
- ref: d,
1431
+ ref: f,
1416
1432
  type: "button",
1417
1433
  disabled: e.disabled,
1418
1434
  class: "flex w-full items-center justify-between gap-2 rounded-corner border border-ui-border-strong bg-ui-surface px-2 py-1 text-left text-sm text-tx-main transition-colors hover:bg-ui-bg/60 disabled:cursor-not-allowed disabled:opacity-50",
1419
1435
  "aria-label": e.label || void 0,
1420
1436
  "aria-expanded": o.value,
1421
1437
  "aria-haspopup": "listbox",
1422
- onClick: C[0] || (C[0] = (I) => o.value ? $() : j()),
1438
+ onClick: C[0] || (C[0] = (I) => o.value ? g() : z()),
1423
1439
  onKeydown: [
1424
- C[1] || (C[1] = F(M((I) => o.value ? c(1) : j(), ["prevent"]), ["down"])),
1425
- C[2] || (C[2] = F(M((I) => o.value ? c(-1) : j(), ["prevent"]), ["up"]))
1440
+ C[1] || (C[1] = F(M((I) => o.value ? c(1) : z(), ["prevent"]), ["down"])),
1441
+ C[2] || (C[2] = F(M((I) => o.value ? c(-1) : z(), ["prevent"]), ["up"]))
1426
1442
  ]
1427
1443
  }, [
1428
- E("span", Xa, [
1429
- ze(S(B.value?.etiqueta ?? e.placeholder) + " ", 1),
1430
- B.value?.detalle ? (i(), s("span", Ja, S(B.value.detalle), 1)) : h("", !0)
1444
+ D("span", Za, [
1445
+ ze(V(B.value?.etiqueta ?? e.placeholder) + " ", 1),
1446
+ B.value?.detalle ? (i(), r("span", _a, V(B.value.detalle), 1)) : h("", !0)
1431
1447
  ]),
1432
1448
  O(H, {
1433
1449
  name: "go-down",
@@ -1435,63 +1451,63 @@ const Ya = ["disabled", "aria-label", "aria-expanded"], Xa = { class: "min-w-0 f
1435
1451
  size: 12,
1436
1452
  class: "shrink-0 opacity-60"
1437
1453
  })
1438
- ], 40, Ya),
1439
- o.value ? (i(), s("div", {
1454
+ ], 40, Ja),
1455
+ o.value ? (i(), r("div", {
1440
1456
  key: 0,
1441
1457
  class: x(["absolute z-20 w-full min-w-64 rounded-corner border border-ui-border-strong bg-ui-bg shadow-lg", e.up ? "bottom-full mb-1" : "mt-1"]),
1442
1458
  onKeydown: [
1443
- C[4] || (C[4] = F(M((I) => $(), ["prevent"]), ["escape"])),
1459
+ C[4] || (C[4] = F(M((I) => g(), ["prevent"]), ["escape"])),
1444
1460
  C[5] || (C[5] = F(M((I) => c(1), ["prevent"]), ["down"])),
1445
1461
  C[6] || (C[6] = F(M((I) => c(-1), ["prevent"]), ["up"])),
1446
- C[7] || (C[7] = F(M((I) => v(0), ["prevent"]), ["home"])),
1447
- C[8] || (C[8] = F(M((I) => v(L.value.length - 1), ["prevent"]), ["end"])),
1462
+ C[7] || (C[7] = F(M((I) => b(0), ["prevent"]), ["home"])),
1463
+ C[8] || (C[8] = F(M((I) => b(A.value.length - 1), ["prevent"]), ["end"])),
1448
1464
  C[9] || (C[9] = F(M((I) => ee(), ["prevent"]), ["enter"])),
1449
- C[10] || (C[10] = F((I) => $(!1), ["tab"]))
1465
+ C[10] || (C[10] = F((I) => g(!1), ["tab"]))
1450
1466
  ],
1451
1467
  onClick: P,
1452
1468
  onMousemove: _
1453
1469
  }, [
1454
- E("div", Za, [
1455
- O(Le, {
1470
+ D("div", el, [
1471
+ O(Ee, {
1456
1472
  ref_key: "campo",
1457
- ref: b,
1473
+ ref: d,
1458
1474
  modelValue: n.value,
1459
1475
  "onUpdate:modelValue": C[3] || (C[3] = (I) => n.value = I),
1460
1476
  label: e.label,
1461
1477
  placeholder: e.searchPlaceholder,
1462
1478
  "listbox-id": q(m),
1463
- "active-option-id": f.value,
1479
+ "active-option-id": $.value,
1464
1480
  expanded: o.value
1465
1481
  }, null, 8, ["modelValue", "label", "placeholder", "listbox-id", "active-option-id", "expanded"])
1466
1482
  ]),
1467
- E("ul", {
1483
+ D("ul", {
1468
1484
  id: q(m),
1469
1485
  ref_key: "lista",
1470
- ref: r,
1486
+ ref: u,
1471
1487
  role: "listbox",
1472
1488
  class: "max-h-56 overflow-y-auto p-1"
1473
1489
  }, [
1474
- L.value.length === 0 ? (i(), s("li", el, S(e.emptyText), 1)) : h("", !0),
1475
- (i(!0), s(Z, null, ne(L.value, (I, ie) => (i(), s("li", {
1490
+ A.value.length === 0 ? (i(), r("li", al, V(e.emptyText), 1)) : h("", !0),
1491
+ (i(!0), r(Z, null, ne(A.value, (I, ie) => (i(), r("li", {
1476
1492
  id: `${q(m)}-${ie}`,
1477
1493
  key: I.valor,
1478
1494
  "data-indice": ie,
1479
1495
  role: "option",
1480
1496
  "aria-selected": I.valor === e.modelValue,
1481
1497
  class: x(["flex cursor-pointer items-baseline gap-2 rounded-corner px-2 py-1 text-sm", [
1482
- ie === u.value ? "bg-ui-surface" : "",
1498
+ ie === s.value ? "bg-ui-surface" : "",
1483
1499
  I.valor === e.modelValue ? "font-medium text-primary" : "text-tx-main"
1484
1500
  ]])
1485
1501
  }, [
1486
- E("span", al, S(I.etiqueta), 1),
1487
- I.detalle ? (i(), s("span", ll, S(I.detalle), 1)) : h("", !0)
1488
- ], 10, tl))), 128)),
1489
- y.value > 0 ? (i(), s("li", nl, "+" + S(y.value), 1)) : h("", !0)
1490
- ], 8, _a)
1502
+ D("span", nl, V(I.etiqueta), 1),
1503
+ I.detalle ? (i(), r("span", ol, V(I.detalle), 1)) : h("", !0)
1504
+ ], 10, ll))), 128)),
1505
+ y.value > 0 ? (i(), r("li", il, "+" + V(y.value), 1)) : h("", !0)
1506
+ ], 8, tl)
1491
1507
  ], 34)) : h("", !0)
1492
1508
  ], 32));
1493
1509
  }
1494
- }), il = { class: "text-base font-semibold m-0 text-primary dark:text-primary-dark" }, sl = /* @__PURE__ */ z({
1510
+ }), sl = { class: "text-base font-semibold m-0 text-primary dark:text-primary-dark" }, ul = /* @__PURE__ */ L({
1495
1511
  __name: "ConfigSection",
1496
1512
  props: {
1497
1513
  title: {},
@@ -1499,26 +1515,26 @@ const Ya = ["disabled", "aria-label", "aria-expanded"], Xa = { class: "min-w-0 f
1499
1515
  customClass: { default: () => ({}) }
1500
1516
  },
1501
1517
  setup(e) {
1502
- return (l, t) => (i(), s("div", {
1518
+ return (l, t) => (i(), r("div", {
1503
1519
  class: x(["flex flex-col gap-4 p-4 background rounded-corner", e.customClass])
1504
1520
  }, [
1505
- E("h3", il, S(e.icon ? `${e.icon} ${e.title}` : e.title), 1),
1506
- A(l.$slots, "default", {}, void 0, !0)
1521
+ D("h3", sl, V(e.icon ? `${e.icon} ${e.title}` : e.title), 1),
1522
+ S(l.$slots, "default", {}, void 0, !0)
1507
1523
  ], 2));
1508
1524
  }
1509
- }), rl = /* @__PURE__ */ ge(sl, [["__scopeId", "data-v-45bd4eab"]]), ul = { class: "flex items-center gap-3 flex-1 min-w-0" }, cl = ["src", "alt"], dl = { class: "min-w-0" }, fl = { class: "font-semibold truncate" }, ml = {
1525
+ }), cl = /* @__PURE__ */ ge(ul, [["__scopeId", "data-v-45bd4eab"]]), dl = { class: "flex items-center gap-3 flex-1 min-w-0" }, fl = ["src", "alt"], ml = { class: "min-w-0" }, bl = { class: "font-semibold truncate" }, vl = {
1510
1526
  key: 0,
1511
1527
  class: "text-xs text-gray-400 truncate"
1512
- }, bl = {
1528
+ }, pl = {
1513
1529
  key: 1,
1514
1530
  class: "text-xs text-gray-400 truncate"
1515
- }, vl = {
1531
+ }, yl = {
1516
1532
  key: 2,
1517
1533
  class: "text-xs text-gray-400 flex gap-2 mt-1"
1518
- }, pl = {
1534
+ }, gl = {
1519
1535
  key: 1,
1520
1536
  class: "w-2 h-2 rounded-full bg-green-500"
1521
- }, yl = /* @__PURE__ */ z({
1537
+ }, hl = /* @__PURE__ */ L({
1522
1538
  __name: "DeviceCard",
1523
1539
  props: {
1524
1540
  icon: {},
@@ -1540,31 +1556,31 @@ const Ya = ["disabled", "aria-label", "aria-expanded"], Xa = { class: "min-w-0 f
1540
1556
  }, n = () => {
1541
1557
  t("click");
1542
1558
  };
1543
- return (o, u) => (i(), s("div", {
1559
+ return (o, s) => (i(), r("div", {
1544
1560
  class: x(["flex items-center justify-between background rounded-vsk px-6 py-3 mb-4", [{ "border-l-4 border-green-500": e.isConnected }, e.customClass]]),
1545
1561
  onClick: n
1546
1562
  }, [
1547
- E("div", ul, [
1548
- E("img", {
1563
+ D("div", dl, [
1564
+ D("img", {
1549
1565
  src: e.icon,
1550
1566
  alt: e.title,
1551
1567
  class: "h-7 w-7 shrink-0"
1552
- }, null, 8, cl),
1553
- E("div", dl, [
1554
- E("div", fl, S(e.title), 1),
1555
- e.subtitle ? (i(), s("div", ml, S(e.subtitle), 1)) : h("", !0),
1556
- e.metadata ? (i(), s("div", bl, S(e.metadata), 1)) : h("", !0),
1557
- e.extraInfo && e.extraInfo.length > 0 ? (i(), s("div", vl, [
1558
- (i(!0), s(Z, null, ne(e.extraInfo, (r, d) => (i(), s("span", { key: d }, S(r), 1))), 128))
1568
+ }, null, 8, fl),
1569
+ D("div", ml, [
1570
+ D("div", bl, V(e.title), 1),
1571
+ e.subtitle ? (i(), r("div", vl, V(e.subtitle), 1)) : h("", !0),
1572
+ e.metadata ? (i(), r("div", pl, V(e.metadata), 1)) : h("", !0),
1573
+ e.extraInfo && e.extraInfo.length > 0 ? (i(), r("div", yl, [
1574
+ (i(!0), r(Z, null, ne(e.extraInfo, (u, f) => (i(), r("span", { key: f }, V(u), 1))), 128))
1559
1575
  ])) : h("", !0)
1560
1576
  ])
1561
1577
  ]),
1562
- e.showActionButton ? (i(), s("button", {
1578
+ e.showActionButton ? (i(), r("button", {
1563
1579
  key: 0,
1564
1580
  class: "bg-vsk-primary rounded-vsk px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70",
1565
1581
  onClick: M(a, ["stop"])
1566
- }, S(e.actionLabel), 1)) : h("", !0),
1567
- e.showStatusIndicator && e.isConnected ? (i(), s("div", pl)) : h("", !0)
1582
+ }, V(e.actionLabel), 1)) : h("", !0),
1583
+ e.showStatusIndicator && e.isConnected ? (i(), r("div", gl)) : h("", !0)
1568
1584
  ], 2));
1569
1585
  }
1570
1586
  }), Je = /* @__PURE__ */ Symbol("diálogo de vasak");
@@ -1573,7 +1589,7 @@ function Ze() {
1573
1589
  if (e) return e;
1574
1590
  const l = w(!1);
1575
1591
  return {
1576
- abierto: p(() => l.value),
1592
+ abierto: v(() => l.value),
1577
1593
  cerrar: () => {
1578
1594
  l.value = !1;
1579
1595
  },
@@ -1583,10 +1599,10 @@ function Ze() {
1583
1599
  };
1584
1600
  }
1585
1601
  let je = 0;
1586
- function gl() {
1602
+ function xl() {
1587
1603
  return je += 1, `vsk-dialogo-titulo-${je}`;
1588
1604
  }
1589
- const hl = /* @__PURE__ */ z({
1605
+ const kl = /* @__PURE__ */ L({
1590
1606
  __name: "Dialog",
1591
1607
  props: {
1592
1608
  open: { type: Boolean, default: !1 }
@@ -1595,69 +1611,77 @@ const hl = /* @__PURE__ */ z({
1595
1611
  setup(e, { emit: l }) {
1596
1612
  const t = e, a = l, n = w(null);
1597
1613
  return de(Je, {
1598
- abierto: p(() => t.open),
1614
+ abierto: v(() => t.open),
1599
1615
  cerrar: () => a("update:open", !1),
1600
1616
  idDelTitulo: n,
1601
1617
  ponerElTitulo: (o) => {
1602
1618
  n.value = o;
1603
1619
  }
1604
- }), (o, u) => A(o.$slots, "default");
1620
+ }), (o, s) => S(o.$slots, "default");
1605
1621
  }
1606
- }), xl = ["aria-labelledby"], kl = /* @__PURE__ */ z({
1622
+ }), wl = {
1623
+ key: 0,
1624
+ class: "absolute inset-0 bg-ui-border-dark/40"
1625
+ }, $l = ["aria-labelledby"], Cl = /* @__PURE__ */ L({
1607
1626
  inheritAttrs: !1,
1608
1627
  __name: "DialogContent",
1628
+ props: {
1629
+ size: { default: "md" }
1630
+ },
1609
1631
  setup(e) {
1610
- const l = $e(), t = p(() => l.class ?? ""), a = p(() => {
1611
- const { class: f, ...V } = l;
1612
- return V;
1613
- }), n = Ze(), o = p(() => n.abierto.value), u = w(null), r = w(null);
1614
- let d = null;
1615
- function b() {
1616
- return r.value ? [...r.value.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')] : [];
1632
+ const l = e, t = $e(), a = v(() => t.class ?? ""), n = v(() => {
1633
+ const { class: z, ...g } = t;
1634
+ return g;
1635
+ }), o = v(
1636
+ () => l.size === "full" ? "relative z-10 h-full w-full text-tx-main" : "relative z-10 w-full max-w-lg rounded-corner border border-ui-border bg-ui-bg/80 p-6 text-tx-main shadow-lg"
1637
+ ), s = Ze(), u = v(() => s.abierto.value), f = w(null), d = w(null);
1638
+ let m = null;
1639
+ function B() {
1640
+ return d.value ? [...d.value.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')] : [];
1617
1641
  }
1618
- function m(f) {
1619
- if (f.key === "Escape") {
1620
- n.cerrar();
1642
+ function E(z) {
1643
+ if (z.key === "Escape") {
1644
+ s.cerrar();
1621
1645
  return;
1622
1646
  }
1623
- if (f.key !== "Tab") return;
1624
- const V = b();
1625
- if (V.length === 0) {
1626
- f.preventDefault(), r.value?.focus();
1647
+ if (z.key !== "Tab") return;
1648
+ const g = B();
1649
+ if (g.length === 0) {
1650
+ z.preventDefault(), d.value?.focus();
1627
1651
  return;
1628
1652
  }
1629
- const j = V[0], $ = V[V.length - 1], c = document.activeElement;
1630
- f.shiftKey && (c === j || c === r.value) ? (f.preventDefault(), $.focus()) : !f.shiftKey && c === $ && (f.preventDefault(), j.focus());
1653
+ const c = g[0], b = g[g.length - 1], p = document.activeElement;
1654
+ z.shiftKey && (p === c || p === d.value) ? (z.preventDefault(), b.focus()) : !z.shiftKey && p === b && (z.preventDefault(), c.focus());
1631
1655
  }
1632
- function B(f) {
1633
- f.target === f.currentTarget && n.cerrar();
1656
+ function A(z) {
1657
+ z.target === z.currentTarget && s.cerrar();
1634
1658
  }
1635
- function D(f) {
1636
- u.value?.contains(f.target) || m(f);
1659
+ function y(z) {
1660
+ f.value?.contains(z.target) || E(z);
1637
1661
  }
1638
- function L() {
1639
- document.removeEventListener("keydown", D);
1662
+ function $() {
1663
+ document.removeEventListener("keydown", y);
1640
1664
  }
1641
- function y() {
1642
- const f = d;
1643
- d = null, f?.isConnected && f.focus();
1665
+ function j() {
1666
+ const z = m;
1667
+ m = null, z?.isConnected && z.focus();
1644
1668
  }
1645
1669
  return K(
1646
- o,
1647
- async (f) => {
1648
- if (f) {
1649
- d = document.activeElement, document.addEventListener("keydown", D), await Y(), r.value?.focus();
1670
+ u,
1671
+ async (z) => {
1672
+ if (z) {
1673
+ m = document.activeElement, document.addEventListener("keydown", y), await Y(), d.value?.focus();
1650
1674
  return;
1651
1675
  }
1652
- L(), y();
1676
+ $(), j();
1653
1677
  },
1654
1678
  // `watch` no corre para el valor inicial, y un diálogo se puede montar ya
1655
1679
  // abierto —una vista que arranca preguntando algo—. Sin esto, ése no recibe
1656
1680
  // el foco y ni Escape ni el Tab hacen nada: el `aria-modal` queda en promesa.
1657
1681
  { immediate: !0 }
1658
1682
  ), ve(() => {
1659
- L(), y();
1660
- }), (f, V) => (i(), Q(fe, { to: "body" }, [
1683
+ $(), j();
1684
+ }), (z, g) => (i(), Q(fe, { to: "body" }, [
1661
1685
  O(ye, {
1662
1686
  "enter-active-class": "transition-opacity duration-200 ease-out",
1663
1687
  "leave-active-class": "transition-opacity duration-150 ease-in",
@@ -1665,67 +1689,64 @@ const hl = /* @__PURE__ */ z({
1665
1689
  "leave-to-class": "opacity-0"
1666
1690
  }, {
1667
1691
  default: W(() => [
1668
- o.value ? (i(), s("div", {
1692
+ u.value ? (i(), r("div", {
1669
1693
  key: 0,
1670
1694
  ref_key: "velo",
1671
- ref: u,
1695
+ ref: f,
1672
1696
  class: "fixed inset-0 z-50 flex items-center justify-center",
1673
- onClick: B,
1674
- onKeydown: m
1697
+ onClick: A,
1698
+ onKeydown: E
1675
1699
  }, [
1676
- V[0] || (V[0] = E("div", { class: "absolute inset-0 bg-ui-border-dark/40" }, null, -1)),
1677
- E("div", oe({
1700
+ l.size === "md" ? (i(), r("div", wl)) : h("", !0),
1701
+ D("div", oe({
1678
1702
  ref_key: "panel",
1679
- ref: r,
1703
+ ref: d,
1680
1704
  tabindex: "-1",
1681
1705
  role: "dialog",
1682
1706
  "aria-modal": "true",
1683
- "aria-labelledby": q(n).idDelTitulo.value ?? void 0
1684
- }, a.value, {
1685
- class: [
1686
- t.value,
1687
- "relative z-10 w-full max-w-lg rounded-corner border border-ui-border bg-ui-bg/80 p-6 text-tx-main shadow-lg"
1688
- ]
1707
+ "aria-labelledby": q(s).idDelTitulo.value ?? void 0
1708
+ }, n.value, {
1709
+ class: [a.value, o.value]
1689
1710
  }), [
1690
- A(f.$slots, "default")
1691
- ], 16, xl)
1711
+ S(z.$slots, "default")
1712
+ ], 16, $l)
1692
1713
  ], 544)) : h("", !0)
1693
1714
  ]),
1694
1715
  _: 3
1695
1716
  })
1696
1717
  ]));
1697
1718
  }
1698
- }), wl = { class: "text-sm text-tx-muted" }, $l = /* @__PURE__ */ z({
1719
+ }), zl = { class: "text-sm text-tx-muted" }, Ll = /* @__PURE__ */ L({
1699
1720
  __name: "DialogDescription",
1700
1721
  setup(e) {
1701
- return (l, t) => (i(), s("p", wl, [
1702
- A(l.$slots, "default")
1722
+ return (l, t) => (i(), r("p", zl, [
1723
+ S(l.$slots, "default")
1703
1724
  ]));
1704
1725
  }
1705
- }), Cl = { class: "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end" }, zl = /* @__PURE__ */ z({
1726
+ }), Dl = { class: "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end" }, El = /* @__PURE__ */ L({
1706
1727
  __name: "DialogFooter",
1707
1728
  setup(e) {
1708
- return (l, t) => (i(), s("div", Cl, [
1709
- A(l.$slots, "default")
1729
+ return (l, t) => (i(), r("div", Dl, [
1730
+ S(l.$slots, "default")
1710
1731
  ]));
1711
1732
  }
1712
- }), El = { class: "flex flex-col gap-1.5 text-center sm:text-left" }, Dl = /* @__PURE__ */ z({
1733
+ }), Tl = { class: "flex flex-col gap-1.5 text-center sm:text-left" }, Bl = /* @__PURE__ */ L({
1713
1734
  __name: "DialogHeader",
1714
1735
  setup(e) {
1715
- return (l, t) => (i(), s("div", El, [
1716
- A(l.$slots, "default")
1736
+ return (l, t) => (i(), r("div", Tl, [
1737
+ S(l.$slots, "default")
1717
1738
  ]));
1718
1739
  }
1719
- }), Ll = ["id"], Tl = /* @__PURE__ */ z({
1740
+ }), Al = ["id"], Sl = /* @__PURE__ */ L({
1720
1741
  __name: "DialogTitle",
1721
1742
  setup(e) {
1722
- const l = Ze(), t = gl();
1723
- return J(() => l.ponerElTitulo(t)), ve(() => l.ponerElTitulo(null)), (a, n) => (i(), s("h2", {
1743
+ const l = Ze(), t = xl();
1744
+ return J(() => l.ponerElTitulo(t)), ve(() => l.ponerElTitulo(null)), (a, n) => (i(), r("h2", {
1724
1745
  id: q(t),
1725
1746
  class: "font-semibold text-lg leading-none tracking-tight"
1726
1747
  }, [
1727
- A(a.$slots, "default")
1728
- ], 8, Ll));
1748
+ S(a.$slots, "default")
1749
+ ], 8, Al));
1729
1750
  }
1730
1751
  }), _e = /* @__PURE__ */ Symbol("menú de vasak");
1731
1752
  function he() {
@@ -1757,16 +1778,16 @@ let Pe = 0;
1757
1778
  function et() {
1758
1779
  return Pe += 1, `vsk-menu-${Pe}`;
1759
1780
  }
1760
- const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
1781
+ const Vl = { class: "relative inline-block" }, Ml = /* @__PURE__ */ L({
1761
1782
  __name: "DropdownMenu",
1762
1783
  props: {
1763
1784
  open: { type: Boolean, default: void 0 }
1764
1785
  },
1765
1786
  emits: ["update:open"],
1766
1787
  setup(e, { emit: l }) {
1767
- const t = e, a = l, n = w(!1), o = w(null), u = w(null), r = w("ninguno"), d = et();
1768
- let b = null;
1769
- const m = p({
1788
+ const t = e, a = l, n = w(!1), o = w(null), s = w(null), u = w("ninguno"), f = et();
1789
+ let d = null;
1790
+ const m = v({
1770
1791
  get: () => t.open ?? n.value,
1771
1792
  set: (y) => {
1772
1793
  t.open === void 0 && (n.value = y), a("update:open", y);
@@ -1774,49 +1795,49 @@ const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
1774
1795
  });
1775
1796
  K(m, (y) => {
1776
1797
  if (y) {
1777
- const f = document.activeElement;
1778
- b = f instanceof HTMLElement ? f : null;
1798
+ const $ = document.activeElement;
1799
+ d = $ instanceof HTMLElement ? $ : null;
1779
1800
  } else
1780
- r.value = "ninguno";
1801
+ u.value = "ninguno";
1781
1802
  });
1782
1803
  function B(y = "ninguno") {
1783
- r.value = y, m.value = !0;
1804
+ u.value = y, m.value = !0;
1784
1805
  }
1785
- function D(y = {}) {
1806
+ function E(y = {}) {
1786
1807
  if (m.value = !1, !y.devolverElFoco) return;
1787
- const f = b ?? o.value;
1788
- f?.isConnected && f.focus();
1808
+ const $ = d ?? o.value;
1809
+ $?.isConnected && $.focus();
1789
1810
  }
1790
- function L(y = "ninguno") {
1811
+ function A(y = "ninguno") {
1791
1812
  if (m.value) {
1792
- D({ devolverElFoco: !0 });
1813
+ E({ devolverElFoco: !0 });
1793
1814
  return;
1794
1815
  }
1795
1816
  B(y);
1796
1817
  }
1797
1818
  return de(_e, {
1798
1819
  abierto: m,
1799
- idDelMenu: d,
1800
- idDeLaEtiqueta: u,
1820
+ idDelMenu: f,
1821
+ idDeLaEtiqueta: s,
1801
1822
  ponerLaEtiqueta: (y) => {
1802
- u.value = y;
1823
+ s.value = y;
1803
1824
  },
1804
1825
  disparador: o,
1805
1826
  ponerElDisparador: (y) => {
1806
1827
  o.value = y;
1807
1828
  },
1808
- focoAlAbrir: r,
1829
+ focoAlAbrir: u,
1809
1830
  abrir: B,
1810
- cerrar: D,
1811
- alternar: L
1812
- }), (y, f) => (i(), s("div", Bl, [
1813
- A(y.$slots, "default")
1831
+ cerrar: E,
1832
+ alternar: A
1833
+ }), (y, $) => (i(), r("div", Vl, [
1834
+ S(y.$slots, "default")
1814
1835
  ]));
1815
1836
  }
1816
- }), Sl = ["id", "aria-labelledby", "inert"], Vl = {
1837
+ }), Il = ["id", "aria-labelledby", "inert"], Ol = {
1817
1838
  role: "none",
1818
1839
  class: "py-1"
1819
- }, X = 8, Ml = /* @__PURE__ */ z({
1840
+ }, X = 8, jl = /* @__PURE__ */ L({
1820
1841
  inheritAttrs: !1,
1821
1842
  __name: "DropdownMenuContent",
1822
1843
  props: {
@@ -1825,38 +1846,38 @@ const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
1825
1846
  sideOffset: { default: 4 }
1826
1847
  },
1827
1848
  setup(e) {
1828
- const l = e, t = he(), { idDelMenu: a, idDeLaEtiqueta: n } = t, o = p(() => t.disparador.value), u = p(() => t.abierto.value), r = w(null), d = w({
1849
+ const l = e, t = he(), { idDelMenu: a, idDeLaEtiqueta: n } = t, o = v(() => t.disparador.value), s = v(() => t.abierto.value), u = w(null), f = w({
1829
1850
  top: 0,
1830
1851
  left: 0,
1831
1852
  techo: null
1832
- }), b = {
1853
+ }), d = {
1833
1854
  top: "bottom",
1834
1855
  bottom: "top",
1835
1856
  left: "right",
1836
1857
  right: "left"
1837
1858
  };
1838
- function m(c, v) {
1839
- const g = l.sideOffset + X;
1859
+ function m(c, b) {
1860
+ const p = l.sideOffset + X;
1840
1861
  switch (c) {
1841
1862
  case "bottom":
1842
- return window.innerHeight - v.bottom - g;
1863
+ return window.innerHeight - b.bottom - p;
1843
1864
  case "top":
1844
- return v.top - g;
1865
+ return b.top - p;
1845
1866
  case "right":
1846
- return window.innerWidth - v.right - g;
1867
+ return window.innerWidth - b.right - p;
1847
1868
  case "left":
1848
- return v.left - g;
1869
+ return b.left - p;
1849
1870
  }
1850
1871
  }
1851
- function B(c, v, g) {
1852
- return g < v ? v : Math.min(Math.max(c, v), g);
1872
+ function B(c, b, p) {
1873
+ return p < b ? b : Math.min(Math.max(c, b), p);
1853
1874
  }
1854
- function D() {
1855
- if (!o.value || !r.value) return;
1856
- const c = o.value.getBoundingClientRect(), v = r.value.scrollHeight, g = r.value.offsetWidth, P = l.side === "top" || l.side === "bottom", _ = P ? v : g;
1875
+ function E() {
1876
+ if (!o.value || !u.value) return;
1877
+ const c = o.value.getBoundingClientRect(), b = u.value.scrollHeight, p = u.value.offsetWidth, P = l.side === "top" || l.side === "bottom", _ = P ? b : p;
1857
1878
  let U = l.side;
1858
1879
  const ee = m(U, c);
1859
- ee < _ && m(b[U], c) > ee && (U = b[U]);
1880
+ ee < _ && m(d[U], c) > ee && (U = d[U]);
1860
1881
  let G = 0, T = 0, C = null;
1861
1882
  switch (U) {
1862
1883
  case "bottom": {
@@ -1864,14 +1885,14 @@ const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
1864
1885
  break;
1865
1886
  }
1866
1887
  case "top": {
1867
- C = Math.max(m("top", c), 0), G = c.top - l.sideOffset - Math.min(v, C);
1888
+ C = Math.max(m("top", c), 0), G = c.top - l.sideOffset - Math.min(b, C);
1868
1889
  break;
1869
1890
  }
1870
1891
  case "left":
1871
1892
  case "right": {
1872
- T = U === "right" ? c.right + l.sideOffset : c.left - g - l.sideOffset;
1893
+ T = U === "right" ? c.right + l.sideOffset : c.left - p - l.sideOffset;
1873
1894
  const I = window.innerHeight - 2 * X;
1874
- G = B(c.top, X, window.innerHeight - Math.min(v, I) - X), C = Math.max(window.innerHeight - G - X, 0);
1895
+ G = B(c.top, X, window.innerHeight - Math.min(b, I) - X), C = Math.max(window.innerHeight - G - X, 0);
1875
1896
  break;
1876
1897
  }
1877
1898
  }
@@ -1881,35 +1902,35 @@ const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
1881
1902
  T = c.left;
1882
1903
  break;
1883
1904
  case "center":
1884
- T = c.left + c.width / 2 - g / 2;
1905
+ T = c.left + c.width / 2 - p / 2;
1885
1906
  break;
1886
1907
  case "end":
1887
- T = c.right - g;
1908
+ T = c.right - p;
1888
1909
  break;
1889
1910
  }
1890
- T = B(T, X, window.innerWidth - g - X), d.value = { top: G, left: T, techo: C };
1911
+ T = B(T, X, window.innerWidth - p - X), f.value = { top: G, left: T, techo: C };
1891
1912
  }
1892
- function L() {
1893
- return r.value ? Array.from(r.value.querySelectorAll('[role="menuitem"]')) : [];
1913
+ function A() {
1914
+ return u.value ? Array.from(u.value.querySelectorAll('[role="menuitem"]')) : [];
1894
1915
  }
1895
1916
  function y(c) {
1896
- const v = L();
1897
- if (!v.length) return;
1898
- const g = v.length;
1899
- v[(c % g + g) % g]?.focus();
1917
+ const b = A();
1918
+ if (!b.length) return;
1919
+ const p = b.length;
1920
+ b[(c % p + p) % p]?.focus();
1900
1921
  }
1901
- function f() {
1922
+ function $() {
1902
1923
  const c = document.activeElement;
1903
- return c instanceof HTMLElement ? L().indexOf(c) : -1;
1924
+ return c instanceof HTMLElement ? A().indexOf(c) : -1;
1904
1925
  }
1905
- function V(c) {
1906
- const v = f();
1926
+ function j(c) {
1927
+ const b = $();
1907
1928
  switch (c.key) {
1908
1929
  case "ArrowDown":
1909
- c.preventDefault(), y(v + 1);
1930
+ c.preventDefault(), y(b + 1);
1910
1931
  break;
1911
1932
  case "ArrowUp":
1912
- c.preventDefault(), y(v <= 0 ? -1 : v - 1);
1933
+ c.preventDefault(), y(b <= 0 ? -1 : b - 1);
1913
1934
  break;
1914
1935
  case "Home":
1915
1936
  c.preventDefault(), y(0);
@@ -1925,10 +1946,10 @@ const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
1925
1946
  break;
1926
1947
  }
1927
1948
  }
1928
- K(u, async (c) => {
1949
+ K(s, async (c) => {
1929
1950
  if (c)
1930
1951
  switch (await Y(), requestAnimationFrame(() => {
1931
- D();
1952
+ E();
1932
1953
  }), t.focoAlAbrir.value) {
1933
1954
  case "primero":
1934
1955
  y(0);
@@ -1940,66 +1961,66 @@ const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
1940
1961
  // ninguno elegido todavía—, que es lo que deja andar las flechas y el
1941
1962
  // Escape sin haber tocado nada.
1942
1963
  default:
1943
- r.value?.focus();
1964
+ u.value?.focus();
1944
1965
  }
1945
1966
  });
1946
- function j(c) {
1947
- u.value && (c && r.value?.contains(c.target) || D());
1967
+ function z(c) {
1968
+ s.value && (c && u.value?.contains(c.target) || E());
1948
1969
  }
1949
- function $(c) {
1950
- const v = c.target, g = !!v.closest("[data-dropdown-content]"), P = !!o.value?.contains(v);
1951
- !g && !P && t.cerrar();
1970
+ function g(c) {
1971
+ const b = c.target, p = !!b.closest("[data-dropdown-content]"), P = !!o.value?.contains(b);
1972
+ !p && !P && t.cerrar();
1952
1973
  }
1953
1974
  return J(() => {
1954
- document.addEventListener("click", $), window.addEventListener("resize", j), window.addEventListener("scroll", j, !0);
1975
+ document.addEventListener("click", g), window.addEventListener("resize", z), window.addEventListener("scroll", z, !0);
1955
1976
  }), ce(() => {
1956
- document.removeEventListener("click", $), window.removeEventListener("resize", j), window.removeEventListener("scroll", j, !0);
1957
- }), (c, v) => (i(), Q(fe, { to: "body" }, [
1977
+ document.removeEventListener("click", g), window.removeEventListener("resize", z), window.removeEventListener("scroll", z, !0);
1978
+ }), (c, b) => (i(), Q(fe, { to: "body" }, [
1958
1979
  O(ye, {
1959
1980
  "enter-active-class": "transition-all duration-150 ease-in-out",
1960
1981
  "leave-active-class": "transition-all duration-150 ease-in-out",
1961
1982
  "enter-from-class": "opacity-0 scale-95",
1962
1983
  "leave-to-class": "opacity-0 scale-95",
1963
- onEnter: v[1] || (v[1] = (g) => g.offsetHeight),
1964
- onLeave: v[2] || (v[2] = (g) => g.offsetHeight)
1984
+ onEnter: b[1] || (b[1] = (p) => p.offsetHeight),
1985
+ onLeave: b[2] || (b[2] = (p) => p.offsetHeight)
1965
1986
  }, {
1966
1987
  default: W(() => [
1967
- Ce(E("div", oe({
1988
+ Ce(D("div", oe({
1968
1989
  ref_key: "contenido",
1969
- ref: r
1990
+ ref: u
1970
1991
  }, c.$attrs, {
1971
1992
  id: q(a),
1972
1993
  role: "menu",
1973
1994
  tabindex: "-1",
1974
1995
  "aria-orientation": "vertical",
1975
1996
  "aria-labelledby": q(n) ?? void 0,
1976
- inert: !u.value,
1997
+ inert: !s.value,
1977
1998
  style: {
1978
1999
  position: "fixed",
1979
- top: `${d.value.top}px`,
1980
- left: `${d.value.left}px`,
1981
- maxHeight: d.value.techo === null ? void 0 : `${d.value.techo}px`,
2000
+ top: `${f.value.top}px`,
2001
+ left: `${f.value.left}px`,
2002
+ maxHeight: f.value.techo === null ? void 0 : `${f.value.techo}px`,
1982
2003
  overflowY: "auto",
1983
2004
  overscrollBehavior: "contain",
1984
2005
  zIndex: 50
1985
2006
  },
1986
2007
  "data-dropdown-content": "",
1987
2008
  class: "min-w-30 rounded-corner border border-primary bg-ui-bg/80 shadow-lg focus:outline-none",
1988
- onClick: v[0] || (v[0] = (g) => g.stopPropagation()),
1989
- onKeydown: V
2009
+ onClick: b[0] || (b[0] = (p) => p.stopPropagation()),
2010
+ onKeydown: j
1990
2011
  }), [
1991
- E("div", Vl, [
1992
- A(c.$slots, "default")
2012
+ D("div", Ol, [
2013
+ S(c.$slots, "default")
1993
2014
  ])
1994
- ], 16, Sl), [
1995
- [Re, u.value]
2015
+ ], 16, Il), [
2016
+ [Re, s.value]
1996
2017
  ])
1997
2018
  ]),
1998
2019
  _: 3
1999
2020
  })
2000
2021
  ]));
2001
2022
  }
2002
- }), Il = ["aria-disabled", "onKeydown"], Ol = /* @__PURE__ */ z({
2023
+ }), Pl = ["aria-disabled", "onKeydown"], Fl = /* @__PURE__ */ L({
2003
2024
  __name: "DropdownMenuItem",
2004
2025
  props: {
2005
2026
  disabled: { type: Boolean, default: !1 }
@@ -2007,10 +2028,10 @@ const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
2007
2028
  emits: ["select", "click"],
2008
2029
  setup(e, { emit: l }) {
2009
2030
  const t = e, a = l, n = he();
2010
- function o(u) {
2011
- t.disabled || (a("select"), a("click", u), n.cerrar({ devolverElFoco: !0 }));
2031
+ function o(s) {
2032
+ t.disabled || (a("select"), a("click", s), n.cerrar({ devolverElFoco: !0 }));
2012
2033
  }
2013
- return (u, r) => (i(), s("div", {
2034
+ return (s, u) => (i(), r("div", {
2014
2035
  role: "menuitem",
2015
2036
  tabindex: "0",
2016
2037
  "aria-disabled": e.disabled || void 0,
@@ -2027,10 +2048,10 @@ const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
2027
2048
  F(M(o, ["prevent"]), ["space"])
2028
2049
  ]
2029
2050
  }, [
2030
- A(u.$slots, "default")
2031
- ], 42, Il));
2051
+ S(s.$slots, "default")
2052
+ ], 42, Pl));
2032
2053
  }
2033
- }), jl = /* @__PURE__ */ z({
2054
+ }), ql = /* @__PURE__ */ L({
2034
2055
  __name: "DropdownMenuLabel",
2035
2056
  setup(e) {
2036
2057
  const l = he(), t = `${et()}-titulo`;
@@ -2038,22 +2059,22 @@ const Bl = { class: "relative inline-block" }, Al = /* @__PURE__ */ z({
2038
2059
  l.ponerLaEtiqueta(t);
2039
2060
  }), ce(() => {
2040
2061
  l.ponerLaEtiqueta(null);
2041
- }), (a, n) => (i(), s("div", {
2062
+ }), (a, n) => (i(), r("div", {
2042
2063
  id: t,
2043
2064
  role: "presentation",
2044
2065
  class: "px-3 py-2 text-sm font-semibold text-tx-main"
2045
2066
  }, [
2046
- A(a.$slots, "default")
2067
+ S(a.$slots, "default")
2047
2068
  ]));
2048
2069
  }
2049
- }), Pl = {
2070
+ }), Rl = {
2050
2071
  role: "separator",
2051
2072
  "aria-orientation": "horizontal",
2052
2073
  class: "bg-ui-bg/80 my-4 h-0.5"
2053
- }, Fl = /* @__PURE__ */ z({
2074
+ }, Nl = /* @__PURE__ */ L({
2054
2075
  __name: "DropdownMenuSeparator",
2055
2076
  setup(e) {
2056
- return (l, t) => (i(), s("div", Pl));
2077
+ return (l, t) => (i(), r("div", Rl));
2057
2078
  }
2058
2079
  });
2059
2080
  function tt(e) {
@@ -2064,12 +2085,12 @@ function tt(e) {
2064
2085
  const t = l[0];
2065
2086
  return t.type === Z && Array.isArray(t.children) ? tt(t.children) : t;
2066
2087
  }
2067
- function ql(e) {
2088
+ function Hl(e) {
2068
2089
  if (e instanceof HTMLElement) return e;
2069
2090
  const l = e?.$el;
2070
2091
  return l instanceof HTMLElement ? l : null;
2071
2092
  }
2072
- const Rl = z({
2093
+ const Ul = L({
2073
2094
  name: "DropdownMenuTrigger",
2074
2095
  inheritAttrs: !1,
2075
2096
  props: {
@@ -2081,31 +2102,31 @@ const Rl = z({
2081
2102
  setup(e, { slots: l, attrs: t }) {
2082
2103
  const a = he(), n = w(null);
2083
2104
  function o() {
2084
- a.ponerElDisparador(ql(n.value));
2105
+ a.ponerElDisparador(Hl(n.value));
2085
2106
  }
2086
- function u() {
2107
+ function s() {
2087
2108
  e.disabled || (o(), a.alternar());
2088
2109
  }
2089
- function r(d) {
2110
+ function u(f) {
2090
2111
  if (!e.disabled)
2091
- switch (d.key) {
2112
+ switch (f.key) {
2092
2113
  case "Enter":
2093
2114
  case " ":
2094
- d.preventDefault(), o(), a.alternar("primero");
2115
+ f.preventDefault(), o(), a.alternar("primero");
2095
2116
  break;
2096
2117
  case "ArrowDown":
2097
- d.preventDefault(), o(), a.abrir("primero");
2118
+ f.preventDefault(), o(), a.abrir("primero");
2098
2119
  break;
2099
2120
  case "ArrowUp":
2100
- d.preventDefault(), o(), a.abrir("ultimo");
2121
+ f.preventDefault(), o(), a.abrir("ultimo");
2101
2122
  break;
2102
2123
  case "Escape":
2103
- a.abierto.value && (d.preventDefault(), a.cerrar({ devolverElFoco: !0 }));
2124
+ a.abierto.value && (f.preventDefault(), a.cerrar({ devolverElFoco: !0 }));
2104
2125
  break;
2105
2126
  }
2106
2127
  }
2107
2128
  return () => {
2108
- const d = {
2129
+ const f = {
2109
2130
  ref: (m) => {
2110
2131
  n.value = m, o();
2111
2132
  },
@@ -2115,21 +2136,21 @@ const Rl = z({
2115
2136
  // a un elemento que el lector no expone —el menú cerrado está
2116
2137
  // `inert`— es una referencia rota.
2117
2138
  "aria-controls": a.abierto.value ? a.idDelMenu : void 0,
2118
- onClick: u,
2119
- onKeydown: r
2120
- }, b = l.default?.() ?? [];
2139
+ onClick: s,
2140
+ onKeydown: u
2141
+ }, d = l.default?.() ?? [];
2121
2142
  if (e.asChild) {
2122
- const m = tt(b);
2123
- if (m) return dt(m, { ...t, ...d });
2143
+ const m = tt(d);
2144
+ if (m) return dt(m, { ...t, ...f });
2124
2145
  }
2125
2146
  return ft(
2126
2147
  "div",
2127
- { ...t, class: ["dropdown-menu-trigger inline-block", t.class], ...d },
2128
- b
2148
+ { ...t, class: ["dropdown-menu-trigger inline-block", t.class], ...f },
2149
+ d
2129
2150
  );
2130
2151
  };
2131
2152
  }
2132
- }), Nl = ["for"], Hl = /* @__PURE__ */ z({
2153
+ }), Wl = ["for"], Kl = /* @__PURE__ */ L({
2133
2154
  __name: "FormGroup",
2134
2155
  props: {
2135
2156
  label: {},
@@ -2138,18 +2159,18 @@ const Rl = z({
2138
2159
  labelClass: { default: () => ({}) }
2139
2160
  },
2140
2161
  setup(e) {
2141
- return (l, t) => (i(), s("div", {
2162
+ return (l, t) => (i(), r("div", {
2142
2163
  class: x(["flex flex-col gap-2", e.customClass])
2143
2164
  }, [
2144
- e.label ? (i(), s("label", {
2165
+ e.label ? (i(), r("label", {
2145
2166
  key: 0,
2146
2167
  for: e.htmlFor,
2147
2168
  class: x(["text-sm font-medium text-primary dark:text-primary-dark", e.labelClass])
2148
- }, S(e.label), 11, Nl)) : h("", !0),
2149
- A(l.$slots, "default", {}, void 0, !0)
2169
+ }, V(e.label), 11, Wl)) : h("", !0),
2170
+ S(l.$slots, "default", {}, void 0, !0)
2150
2171
  ], 2));
2151
2172
  }
2152
- }), Ul = /* @__PURE__ */ ge(Hl, [["__scopeId", "data-v-c0d9d9cb"]]), Wl = /* @__PURE__ */ z({
2173
+ }), Gl = /* @__PURE__ */ ge(Kl, [["__scopeId", "data-v-c0d9d9cb"]]), Ql = /* @__PURE__ */ L({
2153
2174
  __name: "ListCard",
2154
2175
  props: {
2155
2176
  clickable: { type: Boolean, default: !1 },
@@ -2160,7 +2181,7 @@ const Rl = z({
2160
2181
  const t = e, a = l, n = () => {
2161
2182
  t.clickable && a("click");
2162
2183
  };
2163
- return (o, u) => (i(), s("div", {
2184
+ return (o, s) => (i(), r("div", {
2164
2185
  class: x([
2165
2186
  "flex items-center justify-between background p-3 rounded-vsk border border-vsk-primary/70 transition-colors duration-200",
2166
2187
  {
@@ -2170,13 +2191,13 @@ const Rl = z({
2170
2191
  ]),
2171
2192
  onClick: n
2172
2193
  }, [
2173
- A(o.$slots, "default", {}, void 0, !0)
2194
+ S(o.$slots, "default", {}, void 0, !0)
2174
2195
  ], 2));
2175
2196
  }
2176
- }), Kl = /* @__PURE__ */ ge(Wl, [["__scopeId", "data-v-f86d47da"]]), Gl = { class: "background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80" }, Ql = ["title", "aria-label"], Yl = ["src"], Xl = {
2197
+ }), Yl = /* @__PURE__ */ ge(Ql, [["__scopeId", "data-v-f86d47da"]]), Xl = { class: "background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80" }, Jl = ["title", "aria-label"], Zl = ["src"], _l = {
2177
2198
  key: 1,
2178
2199
  class: "w-8 h-8 flex items-center justify-center"
2179
- }, Jl = ["src"], Zl = ["min", "max", "value", "aria-label", "aria-valuetext"], _l = /* @__PURE__ */ z({
2200
+ }, en = ["src"], tn = ["min", "max", "value", "aria-label", "aria-valuetext"], an = /* @__PURE__ */ L({
2180
2201
  __name: "SliderControl",
2181
2202
  props: {
2182
2203
  icon: {},
@@ -2191,68 +2212,68 @@ const Rl = z({
2191
2212
  },
2192
2213
  emits: ["update:modelValue", "buttonClick"],
2193
2214
  setup(e, { emit: l }) {
2194
- const t = e, a = l, n = p(() => {
2215
+ const t = e, a = l, n = v(() => {
2195
2216
  if (t.max <= t.min) return 0;
2196
- const d = t.max - t.min, b = t.modelValue - t.min;
2197
- return Math.round(b / d * 100);
2198
- }), o = p(() => t.getPercentageClass ? t.getPercentageClass(n.value) : ""), u = (d) => {
2199
- const b = d.target;
2200
- a("update:modelValue", Number(b.value));
2201
- }, r = () => {
2217
+ const f = t.max - t.min, d = t.modelValue - t.min;
2218
+ return Math.round(d / f * 100);
2219
+ }), o = v(() => t.getPercentageClass ? t.getPercentageClass(n.value) : ""), s = (f) => {
2220
+ const d = f.target;
2221
+ a("update:modelValue", Number(d.value));
2222
+ }, u = () => {
2202
2223
  a("buttonClick");
2203
2224
  };
2204
- return (d, b) => (i(), s("div", Gl, [
2205
- e.showButton ? (i(), s("button", {
2225
+ return (f, d) => (i(), r("div", Xl, [
2226
+ e.showButton ? (i(), r("button", {
2206
2227
  key: 0,
2207
- onClick: r,
2228
+ onClick: u,
2208
2229
  type: "button",
2209
2230
  title: e.buttonLabel ?? e.label,
2210
2231
  "aria-label": e.buttonLabel ?? e.label,
2211
2232
  class: "w-8 h-8 flex items-center justify-center rounded-corner transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80 hover:scale-110 active:scale-95"
2212
2233
  }, [
2213
- E("img", {
2234
+ D("img", {
2214
2235
  src: e.icon,
2215
2236
  alt: "",
2216
2237
  class: x(["w-6 h-6 transition-all duration-200", e.iconClass])
2217
- }, null, 10, Yl)
2218
- ], 8, Ql)) : (i(), s("div", Xl, [
2219
- E("img", {
2238
+ }, null, 10, Zl)
2239
+ ], 8, Jl)) : (i(), r("div", _l, [
2240
+ D("img", {
2220
2241
  src: e.icon,
2221
2242
  alt: "",
2222
2243
  class: "w-6 h-6 transition-all duration-200"
2223
- }, null, 8, Jl)
2244
+ }, null, 8, en)
2224
2245
  ])),
2225
- E("input", {
2246
+ D("input", {
2226
2247
  type: "range",
2227
2248
  min: e.min,
2228
2249
  max: e.max,
2229
2250
  value: e.modelValue,
2230
- onInput: u,
2251
+ onInput: s,
2231
2252
  "aria-label": e.label,
2232
2253
  "aria-valuetext": `${n.value}%`,
2233
2254
  class: "flex-1 transition-all duration-200 hover:scale-105"
2234
- }, null, 40, Zl),
2235
- E("span", {
2255
+ }, null, 40, tn),
2256
+ D("span", {
2236
2257
  class: x(["w-12 text-right transition-all duration-200 font-medium", o.value])
2237
- }, S(n.value) + "% ", 3)
2258
+ }, V(n.value) + "% ", 3)
2238
2259
  ]));
2239
2260
  }
2240
- }), Te = /* @__PURE__ */ z({
2261
+ }), Te = /* @__PURE__ */ L({
2241
2262
  __name: "SwitchTrack",
2242
2263
  props: {
2243
2264
  on: { type: Boolean },
2244
2265
  size: { default: "small" }
2245
2266
  },
2246
2267
  setup(e) {
2247
- const l = e, t = p(() => l.size === "small");
2248
- return (a, n) => (i(), s("span", {
2268
+ const l = e, t = v(() => l.size === "small");
2269
+ return (a, n) => (i(), r("span", {
2249
2270
  "aria-hidden": "true",
2250
2271
  class: x(["inline-flex shrink-0 items-center rounded-full border transition-colors", [
2251
2272
  t.value ? "h-6 w-11" : "h-7 w-12",
2252
2273
  e.on ? "border-transparent bg-primary" : "border-ui-border-strong bg-ui-surface"
2253
2274
  ]])
2254
2275
  }, [
2255
- E("span", {
2276
+ D("span", {
2256
2277
  class: x(["inline-block transform rounded-full shadow transition-transform", [
2257
2278
  t.value ? "h-4 w-4" : "h-5 w-5",
2258
2279
  e.on ? "bg-tx-on-primary" : "bg-tx-main",
@@ -2261,10 +2282,10 @@ const Rl = z({
2261
2282
  }, null, 2)
2262
2283
  ], 2));
2263
2284
  }
2264
- }), en = ["aria-checked", "disabled"], tn = { class: "min-w-0 flex-1" }, an = { class: "block font-medium text-sm text-tx-main" }, ln = {
2285
+ }), ln = ["aria-checked", "disabled"], nn = { class: "min-w-0 flex-1" }, on = { class: "block font-medium text-sm text-tx-main" }, rn = {
2265
2286
  key: 0,
2266
2287
  class: "mt-0.5 block text-tx-muted text-xs"
2267
- }, nn = /* @__PURE__ */ z({
2288
+ }, sn = /* @__PURE__ */ L({
2268
2289
  __name: "SwitchRow",
2269
2290
  props: {
2270
2291
  modelValue: { type: Boolean },
@@ -2277,19 +2298,19 @@ const Rl = z({
2277
2298
  emits: ["update:modelValue"],
2278
2299
  setup(e, { emit: l }) {
2279
2300
  const t = e, a = l;
2280
- return (n, o) => (i(), s("button", {
2301
+ return (n, o) => (i(), r("button", {
2281
2302
  type: "button",
2282
2303
  role: "switch",
2283
2304
  "aria-checked": e.modelValue,
2284
2305
  disabled: e.disabled,
2285
2306
  class: "flex w-full items-start gap-3 rounded-corner p-2 text-left transition-colors hover:bg-ui-surface/60 disabled:cursor-not-allowed disabled:opacity-60 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",
2286
- onClick: o[0] || (o[0] = (u) => a("update:modelValue", !t.modelValue))
2307
+ onClick: o[0] || (o[0] = (s) => a("update:modelValue", !t.modelValue))
2287
2308
  }, [
2288
2309
  O(Te, {
2289
2310
  on: e.modelValue,
2290
2311
  class: "mt-0.5"
2291
2312
  }, null, 8, ["on"]),
2292
- e.icon ? (i(), s("span", {
2313
+ e.icon ? (i(), r("span", {
2293
2314
  key: 0,
2294
2315
  class: x(["flex size-10 shrink-0 items-center justify-center rounded-corner border", e.modelValue ? "border-secondary bg-primary/20" : "border-ui-border bg-ui-surface/40"]),
2295
2316
  "aria-hidden": "true"
@@ -2301,14 +2322,14 @@ const Rl = z({
2301
2322
  alt: ""
2302
2323
  }, null, 8, ["name", "type"])
2303
2324
  ], 2)) : h("", !0),
2304
- E("span", tn, [
2305
- E("span", an, S(e.label), 1),
2306
- e.description ? (i(), s("span", ln, S(e.description), 1)) : h("", !0),
2307
- A(n.$slots, "pie")
2325
+ D("span", nn, [
2326
+ D("span", on, V(e.label), 1),
2327
+ e.description ? (i(), r("span", rn, V(e.description), 1)) : h("", !0),
2328
+ S(n.$slots, "pie")
2308
2329
  ])
2309
- ], 8, en));
2330
+ ], 8, ln));
2310
2331
  }
2311
- }), on = ["aria-checked", "aria-label", "disabled"], sn = /* @__PURE__ */ z({
2332
+ }), un = ["aria-checked", "aria-label", "disabled"], cn = /* @__PURE__ */ L({
2312
2333
  __name: "SwitchToggle",
2313
2334
  props: {
2314
2335
  modelValue: { type: Boolean },
@@ -2322,7 +2343,7 @@ const Rl = z({
2322
2343
  function n() {
2323
2344
  a("update:modelValue", !t.modelValue);
2324
2345
  }
2325
- return (o, u) => (i(), s("button", {
2346
+ return (o, s) => (i(), r("button", {
2326
2347
  type: "button",
2327
2348
  role: "switch",
2328
2349
  "aria-checked": e.modelValue,
@@ -2335,9 +2356,9 @@ const Rl = z({
2335
2356
  on: e.modelValue,
2336
2357
  size: e.size
2337
2358
  }, null, 8, ["on", "size"])
2338
- ], 8, on));
2359
+ ], 8, un));
2339
2360
  }
2340
- }), rn = ["disabled", "title", "aria-label", "aria-pressed", "aria-busy"], un = ["src"], cn = /* @__PURE__ */ z({
2361
+ }), dn = ["disabled", "title", "aria-label", "aria-pressed", "aria-busy"], fn = ["src"], mn = /* @__PURE__ */ L({
2341
2362
  __name: "ToggleControl",
2342
2363
  props: {
2343
2364
  icon: {},
@@ -2354,7 +2375,7 @@ const Rl = z({
2354
2375
  function a() {
2355
2376
  t("click");
2356
2377
  }
2357
- return (n, o) => (i(), s("button", {
2378
+ return (n, o) => (i(), r("button", {
2358
2379
  type: "button",
2359
2380
  class: x(["p-2 rounded-corner bg-ui-bg/80 hover:opacity-50 transition-all duration-300 h-17.5 w-17.5 group relative overflow-hidden hover:scale-105 hover:shadow-lg active:scale-95 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2", {
2360
2381
  "animate-pulse": e.isLoading,
@@ -2369,7 +2390,7 @@ const Rl = z({
2369
2390
  "aria-busy": e.isLoading || void 0,
2370
2391
  onClick: a
2371
2392
  }, [
2372
- E("img", {
2393
+ D("img", {
2373
2394
  src: e.icon,
2374
2395
  alt: "",
2375
2396
  class: x(["m-auto w-12.5 h-12.5 transition-all duration-300 group-hover:scale-110 relative z-10", {
@@ -2378,8 +2399,8 @@ const Rl = z({
2378
2399
  "drop-shadow-lg": e.isActive,
2379
2400
  ...e.iconClass
2380
2401
  }])
2381
- }, null, 10, un)
2382
- ], 10, rn));
2402
+ }, null, 10, fn)
2403
+ ], 10, dn));
2383
2404
  }
2384
2405
  }), at = /* @__PURE__ */ Symbol("tooltip de vasak");
2385
2406
  function lt() {
@@ -2387,7 +2408,7 @@ function lt() {
2387
2408
  if (e) return e;
2388
2409
  const l = w(!1);
2389
2410
  return {
2390
- abierto: p(() => l.value),
2411
+ abierto: v(() => l.value),
2391
2412
  disparador: w(null),
2392
2413
  ponerElDisparador: () => {
2393
2414
  },
@@ -2399,7 +2420,7 @@ function lt() {
2399
2420
  }
2400
2421
  };
2401
2422
  }
2402
- const dn = { class: "inline-block" }, fn = /* @__PURE__ */ z({
2423
+ const bn = { class: "inline-block" }, vn = /* @__PURE__ */ L({
2403
2424
  __name: "Tooltip",
2404
2425
  props: {
2405
2426
  disabled: { type: Boolean, default: !1 },
@@ -2413,22 +2434,22 @@ const dn = { class: "inline-block" }, fn = /* @__PURE__ */ z({
2413
2434
  t.value = !0;
2414
2435
  }, l.delayDuration));
2415
2436
  }
2416
- function u() {
2437
+ function s() {
2417
2438
  n && clearTimeout(n), t.value = !1;
2418
2439
  }
2419
2440
  return de(at, {
2420
- abierto: p(() => t.value && !l.disabled),
2441
+ abierto: v(() => t.value && !l.disabled),
2421
2442
  disparador: a,
2422
- ponerElDisparador: (r) => {
2423
- a.value = r;
2443
+ ponerElDisparador: (u) => {
2444
+ a.value = u;
2424
2445
  },
2425
2446
  abrir: o,
2426
- cerrar: u
2427
- }), (r, d) => (i(), s("div", dn, [
2428
- A(r.$slots, "default")
2447
+ cerrar: s
2448
+ }), (u, f) => (i(), r("div", bn, [
2449
+ S(u.$slots, "default")
2429
2450
  ]));
2430
2451
  }
2431
- }), mn = /* @__PURE__ */ z({
2452
+ }), pn = /* @__PURE__ */ L({
2432
2453
  inheritAttrs: !1,
2433
2454
  __name: "TooltipContent",
2434
2455
  props: {
@@ -2437,31 +2458,31 @@ const dn = { class: "inline-block" }, fn = /* @__PURE__ */ z({
2437
2458
  sideOffset: { default: 4 }
2438
2459
  },
2439
2460
  setup(e) {
2440
- const l = $e(), t = p(() => l.class ?? ""), a = e, n = lt(), o = p(() => n.abierto.value), u = w(null), r = w({ top: 0, left: 0 });
2441
- function d() {
2442
- const b = n.disparador.value;
2443
- if (!b || !u.value) return;
2444
- const m = b.getBoundingClientRect(), B = u.value.getBoundingClientRect();
2445
- let D = 0, L = 0;
2461
+ const l = $e(), t = v(() => l.class ?? ""), a = e, n = lt(), o = v(() => n.abierto.value), s = w(null), u = w({ top: 0, left: 0 });
2462
+ function f() {
2463
+ const d = n.disparador.value;
2464
+ if (!d || !s.value) return;
2465
+ const m = d.getBoundingClientRect(), B = s.value.getBoundingClientRect();
2466
+ let E = 0, A = 0;
2446
2467
  switch (a.side) {
2447
2468
  case "bottom":
2448
- D = m.bottom + a.sideOffset, L = m.left + m.width / 2 - B.width / 2;
2469
+ E = m.bottom + a.sideOffset, A = m.left + m.width / 2 - B.width / 2;
2449
2470
  break;
2450
2471
  case "top":
2451
- D = m.top - B.height - a.sideOffset, L = m.left + m.width / 2 - B.width / 2;
2472
+ E = m.top - B.height - a.sideOffset, A = m.left + m.width / 2 - B.width / 2;
2452
2473
  break;
2453
2474
  case "left":
2454
- L = m.left - B.width - a.sideOffset, D = m.top + m.height / 2 - B.height / 2;
2475
+ A = m.left - B.width - a.sideOffset, E = m.top + m.height / 2 - B.height / 2;
2455
2476
  break;
2456
2477
  case "right":
2457
- L = m.right + a.sideOffset, D = m.top + m.height / 2 - B.height / 2;
2478
+ A = m.right + a.sideOffset, E = m.top + m.height / 2 - B.height / 2;
2458
2479
  break;
2459
2480
  }
2460
- r.value = { top: D, left: L };
2481
+ u.value = { top: E, left: A };
2461
2482
  }
2462
- return K(o, async (b) => {
2463
- b && (await Y(), requestAnimationFrame(d));
2464
- }), (b, m) => (i(), Q(fe, { to: "body" }, [
2483
+ return K(o, async (d) => {
2484
+ d && (await Y(), requestAnimationFrame(f));
2485
+ }), (d, m) => (i(), Q(fe, { to: "body" }, [
2465
2486
  O(ye, {
2466
2487
  "enter-active-class": "transition-all duration-200 ease-in-out",
2467
2488
  "leave-active-class": "transition-all duration-200 ease-in-out",
@@ -2469,16 +2490,16 @@ const dn = { class: "inline-block" }, fn = /* @__PURE__ */ z({
2469
2490
  "leave-to-class": "opacity-0 scale-95"
2470
2491
  }, {
2471
2492
  default: W(() => [
2472
- Ce(E("div", {
2493
+ Ce(D("div", {
2473
2494
  ref_key: "globo",
2474
- ref: u,
2475
- style: se({ position: "fixed", top: `${r.value.top}px`, left: `${r.value.left}px`, zIndex: 50 }),
2495
+ ref: s,
2496
+ style: re({ position: "fixed", top: `${u.value.top}px`, left: `${u.value.left}px`, zIndex: 50 }),
2476
2497
  class: x([
2477
2498
  t.value,
2478
2499
  "pointer-events-none rounded-corner border border-secondary bg-ui-bg/80 px-2 py-1 text-sm shadow-md"
2479
2500
  ])
2480
2501
  }, [
2481
- A(b.$slots, "default")
2502
+ S(d.$slots, "default")
2482
2503
  ], 6), [
2483
2504
  [Re, o.value]
2484
2505
  ])
@@ -2487,7 +2508,7 @@ const dn = { class: "inline-block" }, fn = /* @__PURE__ */ z({
2487
2508
  })
2488
2509
  ]));
2489
2510
  }
2490
- }), bn = /* @__PURE__ */ z({
2511
+ }), yn = /* @__PURE__ */ L({
2491
2512
  __name: "TooltipTrigger",
2492
2513
  setup(e) {
2493
2514
  const l = lt(), t = w(null);
@@ -2499,22 +2520,22 @@ const dn = { class: "inline-block" }, fn = /* @__PURE__ */ z({
2499
2520
  }
2500
2521
  return J(() => {
2501
2522
  l.ponerElDisparador(a());
2502
- }), (o, u) => (i(), s("div", {
2523
+ }), (o, s) => (i(), r("div", {
2503
2524
  ref_key: "envoltorio",
2504
2525
  ref: t,
2505
2526
  class: "inline-block",
2506
2527
  onMouseenter: n,
2507
- onMouseleave: u[0] || (u[0] = (r) => q(l).cerrar()),
2528
+ onMouseleave: s[0] || (s[0] = (u) => q(l).cerrar()),
2508
2529
  onFocus: n,
2509
- onBlur: u[1] || (u[1] = (r) => q(l).cerrar())
2530
+ onBlur: s[1] || (s[1] = (u) => q(l).cerrar())
2510
2531
  }, [
2511
- A(o.$slots, "default")
2532
+ S(o.$slots, "default")
2512
2533
  ], 544));
2513
2534
  }
2514
- }), vn = ["title"], pn = ["src", "alt"], yn = {
2535
+ }), gn = ["title"], hn = ["src", "alt"], xn = {
2515
2536
  key: 0,
2516
2537
  class: "absolute bottom-1 right-1 bg-primary dark:bg-primary-dark text-white text-xs rounded-full w-4 h-4 flex items-center justify-center font-bold animate-bounce"
2517
- }, gn = /* @__PURE__ */ z({
2538
+ }, kn = /* @__PURE__ */ L({
2518
2539
  __name: "TrayIconButton",
2519
2540
  props: {
2520
2541
  icon: {},
@@ -2532,20 +2553,20 @@ const dn = { class: "inline-block" }, fn = /* @__PURE__ */ z({
2532
2553
  const t = l, a = w(!1), n = () => {
2533
2554
  t("click");
2534
2555
  };
2535
- return (o, u) => (i(), s("div", {
2556
+ return (o, s) => (i(), r("div", {
2536
2557
  class: x(["p-1 rounded-corner relative hover:bg-primary dark:hover:bg-primary-dark group transition-all duration-300", e.customClass]),
2537
2558
  title: e.tooltip,
2538
2559
  onClick: n,
2539
- onMouseenter: u[0] || (u[0] = (r) => a.value = !0),
2540
- onMouseleave: u[1] || (u[1] = (r) => a.value = !1)
2560
+ onMouseenter: s[0] || (s[0] = (u) => a.value = !0),
2561
+ onMouseleave: s[1] || (s[1] = (u) => a.value = !1)
2541
2562
  }, [
2542
- E("img", {
2563
+ D("img", {
2543
2564
  src: e.icon,
2544
2565
  alt: e.alt,
2545
2566
  class: x(["m-auto h-5.5 w-auto transition-all duration-300", e.iconClass])
2546
- }, null, 10, pn),
2547
- e.badge !== null && e.badge > 0 ? (i(), s("div", yn, S(e.badge), 1)) : h("", !0),
2548
- e.showCustomTooltip && e.customTooltipText ? (i(), s("div", {
2567
+ }, null, 10, hn),
2568
+ e.badge !== null && e.badge > 0 ? (i(), r("div", xn, V(e.badge), 1)) : h("", !0),
2569
+ e.showCustomTooltip && e.customTooltipText ? (i(), r("div", {
2549
2570
  key: 1,
2550
2571
  class: x(["absolute top-1 left-1/2 transform -translate-x-1/2 text-xs font-semibold p-1 rounded-corner transition-all duration-300 pointer-events-none background", [
2551
2572
  e.tooltipClass,
@@ -2554,17 +2575,17 @@ const dn = { class: "inline-block" }, fn = /* @__PURE__ */ z({
2554
2575
  "opacity-100 translate-y-0": a.value
2555
2576
  }
2556
2577
  ]])
2557
- }, S(e.customTooltipText), 3)) : h("", !0),
2558
- A(o.$slots, "default")
2559
- ], 42, vn));
2578
+ }, V(e.customTooltipText), 3)) : h("", !0),
2579
+ S(o.$slots, "default")
2580
+ ], 42, gn));
2560
2581
  }
2561
- }), hn = [
2582
+ }), wn = [
2562
2583
  Ut,
2563
2584
  He,
2564
2585
  Ne,
2565
2586
  Yt,
2566
2587
  H,
2567
- ra,
2588
+ sa,
2568
2589
  Ke,
2569
2590
  We,
2570
2591
  xa,
@@ -2573,39 +2594,40 @@ const dn = { class: "inline-block" }, fn = /* @__PURE__ */ z({
2573
2594
  Sa,
2574
2595
  ja,
2575
2596
  qa,
2576
- Wa,
2577
- Le,
2578
- ol,
2579
- Qe,
2580
2597
  Na,
2598
+ Ga,
2599
+ Ee,
2581
2600
  rl,
2582
- yl,
2601
+ Qe,
2602
+ Ua,
2603
+ cl,
2583
2604
  hl,
2584
2605
  kl,
2585
- $l,
2586
- zl,
2587
- Dl,
2588
- Tl,
2589
- Al,
2606
+ Cl,
2607
+ Ll,
2608
+ El,
2609
+ Bl,
2610
+ Sl,
2590
2611
  Ml,
2591
- Ol,
2592
2612
  jl,
2593
2613
  Fl,
2594
- Rl,
2614
+ ql,
2615
+ Nl,
2595
2616
  Ul,
2596
- Kl,
2597
- _l,
2598
- nn,
2617
+ Gl,
2618
+ Yl,
2619
+ an,
2599
2620
  sn,
2600
- Te,
2601
2621
  cn,
2602
- fn,
2622
+ Te,
2603
2623
  mn,
2604
- bn,
2605
- gn
2606
- ], En = {
2624
+ vn,
2625
+ pn,
2626
+ yn,
2627
+ kn
2628
+ ], Tn = {
2607
2629
  install(e) {
2608
- hn.forEach((l) => {
2630
+ wn.forEach((l) => {
2609
2631
  e.component(l.name, l);
2610
2632
  });
2611
2633
  }
@@ -2619,53 +2641,54 @@ export {
2619
2641
  Je as CLAVE_DEL_DIALOGO,
2620
2642
  _e as CLAVE_DEL_MENU,
2621
2643
  at as CLAVE_DEL_TOOLTIP,
2622
- Ee as CLAVE_DE_LA_BARRA,
2623
- rl as ConfigSection,
2624
- yl as DeviceCard,
2625
- hl as Dialog,
2626
- kl as DialogContent,
2627
- $l as DialogDescription,
2628
- zl as DialogFooter,
2629
- Dl as DialogHeader,
2630
- Tl as DialogTitle,
2631
- Al as DropdownMenu,
2632
- Ml as DropdownMenuContent,
2633
- Ol as DropdownMenuItem,
2634
- jl as DropdownMenuLabel,
2635
- Fl as DropdownMenuSeparator,
2636
- Rl as DropdownMenuTrigger,
2644
+ Le as CLAVE_DE_LA_BARRA,
2645
+ cl as ConfigSection,
2646
+ hl as DeviceCard,
2647
+ kl as Dialog,
2648
+ Cl as DialogContent,
2649
+ Ll as DialogDescription,
2650
+ El as DialogFooter,
2651
+ Bl as DialogHeader,
2652
+ Sl as DialogTitle,
2653
+ Ml as DropdownMenu,
2654
+ jl as DropdownMenuContent,
2655
+ Fl as DropdownMenuItem,
2656
+ ql as DropdownMenuLabel,
2657
+ Nl as DropdownMenuSeparator,
2658
+ Ul as DropdownMenuTrigger,
2637
2659
  qa as EmptyState,
2638
- Ul as FormGroup,
2660
+ Gl as FormGroup,
2639
2661
  De as LOS_TRES_CONTROLES,
2640
- Kl as ListCard,
2662
+ Yl as ListCard,
2663
+ Na as LoadingState,
2641
2664
  Xt as POSICIONES,
2642
- Wa as ProgressBar,
2643
- Le as SearchField,
2644
- ol as SearchSelect,
2665
+ Ga as ProgressBar,
2666
+ Ee as SearchField,
2667
+ rl as SearchSelect,
2645
2668
  Yt as SelectField,
2646
2669
  Ut as SideBar,
2647
2670
  He as SideButton,
2648
2671
  Ne as SideGroup,
2649
- _l as SliderControl,
2650
- nn as SwitchRow,
2651
- sn as SwitchToggle,
2672
+ an as SliderControl,
2673
+ sn as SwitchRow,
2674
+ cn as SwitchToggle,
2652
2675
  Te as SwitchTrack,
2653
2676
  xa as TabBar,
2654
2677
  Ge as TabItem,
2655
2678
  Qe as TextInput,
2656
2679
  H as ThemeIcon,
2657
- Na as ToastArea,
2658
- cn as ToggleControl,
2659
- fn as Tooltip,
2660
- mn as TooltipContent,
2661
- bn as TooltipTrigger,
2662
- gn as TrayIconButton,
2680
+ Ua as ToastArea,
2681
+ mn as ToggleControl,
2682
+ vn as Tooltip,
2683
+ pn as TooltipContent,
2684
+ yn as TooltipTrigger,
2685
+ kn as TrayIconButton,
2663
2686
  We as WindowControls,
2664
- ra as WindowFrame,
2665
- Ga as buscarOpciones,
2666
- En as default,
2687
+ sa as WindowFrame,
2688
+ Ya as buscarOpciones,
2689
+ Tn as default,
2667
2690
  Jt as esPosicion,
2668
- zn as olvidarLosIconosDelTema,
2691
+ En as olvidarLosIconosDelTema,
2669
2692
  we as orientacionDe,
2670
2693
  ea as posicionDe,
2671
2694
  Xe as rolDelTono,