@vasakgroup/vue-libvasak 1.7.0 → 1.8.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,16 +1,16 @@
1
- import { ref as w, onMounted as W, onUnmounted as ve, readonly as vt, watch as Q, defineComponent as D, toRef as Pe, useTemplateRef as pt, computed as v, createElementBlock as r, unref as F, openBlock as i, normalizeStyle as fe, createCommentVNode as x, createElementVNode as B, createVNode as j, toDisplayString as V, normalizeClass as y, renderSlot as S, createBlock as U, onBeforeUnmount as pe, Fragment as te, renderList as ue, withCtx as G, mergeModels as Re, useAttrs as Be, useId as yt, useModel as gt, withDirectives as Se, mergeProps as ce, isRef as ht, vModelSelect as xt, inject as we, getCurrentInstance as Ge, provide as ye, createTextVNode as ke, toHandlers as Qe, createSlots as wt, withModifiers as M, withKeys as I, Teleport as ge, Transition as $e, nextTick as J, TransitionGroup as kt, vShow as Ye, cloneVNode as $t, h as Ct, Comment as zt, Text as Et } from "vue";
2
- import { listen as Lt } from "@tauri-apps/api/event";
3
- import { getSymbolSource as Dt, getIconSource as Tt } from "@vasakgroup/plugin-vicons";
4
- import { getCurrentWindow as At } from "@tauri-apps/api/window";
5
- import { useI18n as Bt } from "@vasakgroup/tauri-plugin-i18n";
6
- const St = "vicons:theme-changed", xe = /* @__PURE__ */ new Map(), re = /* @__PURE__ */ new Map(), me = w(0);
7
- let se = 0, be = null, ie = null;
1
+ import { ref as w, onMounted as W, onUnmounted as ve, readonly as vt, watch as Q, defineComponent as D, toRef as Pe, useTemplateRef as pt, computed as v, createElementBlock as s, unref as F, openBlock as i, normalizeStyle as fe, createCommentVNode as x, createElementVNode as B, createVNode as j, toDisplayString as V, normalizeClass as y, renderSlot as S, createBlock as U, onBeforeUnmount as pe, Fragment as te, renderList as ce, withCtx as G, mergeModels as Re, useAttrs as Be, useId as yt, useModel as gt, withDirectives as Se, mergeProps as le, isRef as ht, vModelSelect as xt, inject as we, getCurrentInstance as Ge, provide as ye, createTextVNode as $e, toHandlers as Qe, createSlots as wt, withModifiers as M, withKeys as I, Teleport as ge, Transition as ke, nextTick as J, TransitionGroup as $t, vShow as Ye, cloneVNode as kt, h as Ct, Comment as zt, Text as Et, resolveDynamicComponent as Lt } from "vue";
2
+ import { listen as Dt } from "@tauri-apps/api/event";
3
+ import { getSymbolSource as Tt, getIconSource as At } from "@vasakgroup/plugin-vicons";
4
+ import { getCurrentWindow as Bt } from "@tauri-apps/api/window";
5
+ import { useI18n as St } from "@vasakgroup/tauri-plugin-i18n";
6
+ const Mt = "vicons:theme-changed", xe = /* @__PURE__ */ new Map(), re = /* @__PURE__ */ new Map(), me = w(0);
7
+ let ue = 0, be = null, se = null;
8
8
  function Xl() {
9
- xe.clear(), re.clear(), se = 0, be = null, ie = null, me.value = 0, ae.clear(), ne.clear(), Xe = 0, ee?.disconnect(), ee = null, De = !1, X !== null && (clearTimeout(X), X = null), _ && (_.cancelado = !0), _ = null;
9
+ xe.clear(), re.clear(), ue = 0, be = null, se = null, me.value = 0, ae.clear(), ne.clear(), Xe = 0, ee?.disconnect(), ee = null, De = !1, X !== null && (clearTimeout(X), X = null), _ && (_.cancelado = !0), _ = null;
10
10
  }
11
- const Mt = 100, ze = 10, Vt = 16, ae = /* @__PURE__ */ new Map(), ne = /* @__PURE__ */ new Set();
11
+ const Vt = 100, ze = 10, It = 16, ae = /* @__PURE__ */ new Map(), ne = /* @__PURE__ */ new Set();
12
12
  let Xe = 0, ee = null, De = !1;
13
- function It() {
13
+ function Ot() {
14
14
  return De ? ee : (De = !0, typeof IntersectionObserver > "u" ? null : (ee = new IntersectionObserver(
15
15
  (e) => {
16
16
  for (const n of e) {
@@ -23,66 +23,66 @@ function It() {
23
23
  { threshold: 0 }
24
24
  ), ee));
25
25
  }
26
- function Ot(e) {
26
+ function jt(e) {
27
27
  const n = Xe++;
28
28
  return ae.set(n, { recargar: e, elemento: null }), ne.add(n), n;
29
29
  }
30
- function jt(e, n) {
30
+ function Pt(e, n) {
31
31
  const t = ae.get(e);
32
32
  if (!t || t.elemento === n || (t.elemento && (ee?.unobserve(t.elemento), delete t.elemento.dataset.iconoId, t.elemento = null), !n)) return;
33
- const a = It();
33
+ const a = Ot();
34
34
  a && (t.elemento = n, n.dataset.iconoId = String(e), a.observe(n));
35
35
  }
36
- function Pt(e) {
36
+ function Rt(e) {
37
37
  const n = ae.get(e);
38
38
  n?.elemento && (ee?.unobserve(n.elemento), delete n.elemento.dataset.iconoId), ne.delete(e), ae.delete(e);
39
39
  }
40
40
  let X = null, _ = null;
41
- function Rt(e) {
41
+ function Ft(e) {
42
42
  return new Promise((n) => setTimeout(n, e));
43
43
  }
44
- async function Ft(e) {
44
+ async function Nt(e) {
45
45
  const n = [...ae.keys()], t = n.filter((l) => ne.has(l)), a = n.filter((l) => !ne.has(l));
46
46
  for (const l of [t, a])
47
47
  for (let o = 0; o < l.length; o += ze) {
48
48
  if (e.cancelado) return;
49
- const s = l.slice(o, o + ze);
49
+ const r = l.slice(o, o + ze);
50
50
  if (await Promise.allSettled(
51
- s.map((u) => ae.get(u)?.recargar() ?? Promise.resolve())
51
+ r.map((u) => ae.get(u)?.recargar() ?? Promise.resolve())
52
52
  ), e.cancelado) return;
53
- (o + ze < l.length || l === t) && await Rt(Vt);
53
+ (o + ze < l.length || l === t) && await Ft(It);
54
54
  }
55
55
  _ === e && (_ = null);
56
56
  }
57
- function Nt() {
57
+ function qt() {
58
58
  X !== null && (clearTimeout(X), X = null), _ && (_.cancelado = !0);
59
59
  const e = { cancelado: !1 };
60
- _ = e, Ft(e);
60
+ _ = e, Nt(e);
61
61
  }
62
- function qt() {
62
+ function Ht() {
63
63
  xe.clear(), re.clear(), me.value++, X !== null && clearTimeout(X), X = setTimeout(() => {
64
- X = null, Nt();
65
- }, Mt);
64
+ X = null, qt();
65
+ }, Vt);
66
66
  }
67
67
  function Je() {
68
- return se++, be || ie ? ie ?? Promise.resolve() : (ie = Lt(St, qt).then((e) => {
69
- se <= 0 ? e() : be = e, ie = null;
70
- }), ie);
68
+ return ue++, be || se ? se ?? Promise.resolve() : (se = Dt(Mt, Ht).then((e) => {
69
+ ue <= 0 ? e() : be = e, se = null;
70
+ }), se);
71
71
  }
72
72
  function Te() {
73
- se--, !(se > 0) && (se = 0, be?.(), be = null);
73
+ ue--, !(ue > 0) && (ue = 0, be?.(), be = null);
74
74
  }
75
- function Ht(e, n) {
75
+ function Ut(e, n) {
76
76
  const t = `${n}:${e}`, a = xe.get(t);
77
77
  if (a !== void 0)
78
78
  return Promise.resolve(a);
79
79
  const l = re.get(t);
80
80
  if (l)
81
81
  return l;
82
- const o = me.value, s = (n === "symbol" ? Dt(e) : Tt(e)).then((u) => (me.value === o && xe.set(t, u), u)).finally(() => {
83
- re.get(t) === s && re.delete(t);
82
+ const o = me.value, r = (n === "symbol" ? Tt(e) : At(e)).then((u) => (me.value === o && xe.set(t, u), u)).finally(() => {
83
+ re.get(t) === r && re.delete(t);
84
84
  });
85
- return re.set(t, s), s;
85
+ return re.set(t, r), r;
86
86
  }
87
87
  function Jl() {
88
88
  let e = !1;
@@ -92,28 +92,28 @@ function Jl() {
92
92
  e || (e = !0, Te());
93
93
  }), vt(me);
94
94
  }
95
- function Ut(e, n) {
95
+ function Kt(e, n) {
96
96
  const t = w("");
97
97
  let a = !1, l = 0;
98
- const o = Ot(async () => {
99
- await s();
98
+ const o = jt(async () => {
99
+ await r();
100
100
  });
101
- async function s() {
102
- const u = ++l, f = e.value;
103
- if (!f) {
101
+ async function r() {
102
+ const u = ++l, d = e.value;
103
+ if (!d) {
104
104
  t.value = "";
105
105
  return;
106
106
  }
107
- const m = await Ht(f, n.value);
107
+ const m = await Ut(d, n.value);
108
108
  u === l && !a && (t.value = m);
109
109
  }
110
110
  return W(async () => {
111
- await Je(), a || await s();
111
+ await Je(), a || await r();
112
112
  }), ve(() => {
113
- a = !0, Pt(o), Te();
114
- }), Q([e, n], s), { fuente: t, mirarElemento: (u) => jt(o, u) };
113
+ a = !0, Rt(o), Te();
114
+ }), Q([e, n], r), { fuente: t, mirarElemento: (u) => Pt(o, u) };
115
115
  }
116
- const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
116
+ const Wt = ["src", "alt"], N = /* @__PURE__ */ D({
117
117
  __name: "ThemeIcon",
118
118
  props: {
119
119
  name: {},
@@ -122,12 +122,12 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
122
122
  alt: { default: "" }
123
123
  },
124
124
  setup(e) {
125
- const n = e, { fuente: t, mirarElemento: a } = Ut(Pe(n, "name"), Pe(n, "type")), l = pt("dibujo");
126
- Q(l, (s) => a(s), { immediate: !0 });
125
+ const n = e, { fuente: t, mirarElemento: a } = Kt(Pe(n, "name"), Pe(n, "type")), l = pt("dibujo");
126
+ Q(l, (r) => a(r), { immediate: !0 });
127
127
  const o = v(
128
128
  () => n.size === "auto" ? void 0 : { width: `${n.size}px`, height: `${n.size}px` }
129
129
  );
130
- return (s, u) => F(t) ? (i(), r("img", {
130
+ return (r, u) => F(t) ? (i(), s("img", {
131
131
  key: 0,
132
132
  ref_key: "dibujo",
133
133
  ref: l,
@@ -135,7 +135,7 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
135
135
  alt: e.alt,
136
136
  style: fe(o.value),
137
137
  class: "shrink-0 object-contain"
138
- }, null, 12, Kt)) : (i(), r("span", {
138
+ }, null, 12, Wt)) : (i(), s("span", {
139
139
  key: 1,
140
140
  ref_key: "dibujo",
141
141
  ref: l,
@@ -143,7 +143,7 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
143
143
  class: "inline-block shrink-0"
144
144
  }, null, 4));
145
145
  }
146
- }), Wt = { class: "flex flex-col gap-2" }, Gt = ["aria-expanded"], Qt = {
146
+ }), Gt = { class: "flex flex-col gap-2" }, Qt = ["aria-expanded"], Yt = {
147
147
  key: 1,
148
148
  class: "flex flex-col gap-1"
149
149
  }, Ze = /* @__PURE__ */ D({
@@ -160,8 +160,8 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
160
160
  (a) => {
161
161
  a && (t.value = !0);
162
162
  }
163
- ), (a, l) => (i(), r("section", Wt, [
164
- e.collapsed ? x("", !0) : (i(), r("button", {
163
+ ), (a, l) => (i(), s("section", Gt, [
164
+ e.collapsed ? x("", !0) : (i(), s("button", {
165
165
  key: 0,
166
166
  type: "button",
167
167
  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",
@@ -175,16 +175,16 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
175
175
  size: 12,
176
176
  class: y(["transition-transform duration-200", t.value ? "" : "-rotate-90"])
177
177
  }, null, 8, ["class"])
178
- ], 8, Gt)),
179
- t.value || e.collapsed ? (i(), r("div", Qt, [
178
+ ], 8, Qt)),
179
+ t.value || e.collapsed ? (i(), s("div", Yt, [
180
180
  S(a.$slots, "default")
181
181
  ])) : x("", !0)
182
182
  ]));
183
183
  }
184
- }), Yt = ["title", "aria-label", "disabled", "aria-current"], Xt = { key: 1 }, Jt = {
184
+ }), Xt = ["title", "aria-label", "disabled", "aria-current"], Jt = { key: 1 }, Zt = {
185
185
  key: 0,
186
186
  class: "min-w-0 flex-1 truncate font-medium"
187
- }, Zt = {
187
+ }, _t = {
188
188
  key: 1,
189
189
  class: "rounded-corner bg-ui-surface px-2 py-0.5 font-semibold text-tx-muted text-xs"
190
190
  }, _e = /* @__PURE__ */ D({
@@ -199,7 +199,7 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
199
199
  },
200
200
  emits: ["click"],
201
201
  setup(e) {
202
- return (n, t) => (i(), r("button", {
202
+ return (n, t) => (i(), s("button", {
203
203
  type: "button",
204
204
  title: e.collapsed ? e.label : void 0,
205
205
  "aria-label": e.collapsed ? e.label : void 0,
@@ -220,28 +220,28 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
220
220
  key: 0,
221
221
  name: e.icon,
222
222
  size: 20
223
- }, null, 8, ["name"])) : (i(), r("span", Xt, V(e.label.charAt(0).toUpperCase()), 1))
223
+ }, null, 8, ["name"])) : (i(), s("span", Jt, V(e.label.charAt(0).toUpperCase()), 1))
224
224
  ], 2),
225
- e.collapsed ? x("", !0) : (i(), r("span", Jt, V(e.label), 1)),
226
- !e.collapsed && e.badge !== "" ? (i(), r("span", Zt, V(e.badge), 1)) : x("", !0)
227
- ], 10, Yt));
225
+ e.collapsed ? x("", !0) : (i(), s("span", Zt, V(e.label), 1)),
226
+ !e.collapsed && e.badge !== "" ? (i(), s("span", _t, V(e.badge), 1)) : x("", !0)
227
+ ], 10, Xt));
228
228
  }
229
- }), _t = {
229
+ }), ea = {
230
230
  key: 0,
231
231
  class: "flex flex-col gap-2 border-ui-border border-b p-2"
232
- }, ea = { class: "flex items-center gap-2" }, ta = ["aria-label", "aria-expanded"], aa = {
232
+ }, ta = { class: "flex items-center gap-2" }, aa = ["aria-label", "aria-expanded"], na = {
233
233
  key: 0,
234
234
  class: "min-w-0 flex-1"
235
- }, na = {
235
+ }, la = {
236
236
  key: 0,
237
237
  class: "truncate font-semibold text-sm"
238
- }, la = {
238
+ }, oa = {
239
239
  key: 1,
240
240
  class: "truncate text-tx-muted text-xs"
241
- }, oa = { key: 0 }, ia = {
241
+ }, ia = { key: 0 }, sa = {
242
242
  key: 1,
243
243
  class: "flex border-ui-border border-b p-2"
244
- }, ra = ["aria-label", "aria-expanded"], sa = { class: "flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2" }, Fe = "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", Ne = 767, ua = /* @__PURE__ */ D({
244
+ }, ra = ["aria-label", "aria-expanded"], ua = { class: "flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2" }, Fe = "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", Ne = 767, ca = /* @__PURE__ */ D({
245
245
  __name: "SideBar",
246
246
  props: {
247
247
  title: { default: "" },
@@ -254,36 +254,36 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
254
254
  },
255
255
  emits: ["update:modelValue", "update:collapsed", "change"],
256
256
  setup(e, { expose: n, emit: t }) {
257
- const a = e, l = t, o = w(a.collapsed ?? !1), s = w(!1);
258
- let u = null, f = null;
259
- const m = v(() => s.value || o.value), d = v(() => !!(a.title || a.subtitle));
257
+ const a = e, l = t, o = w(a.collapsed ?? !1), r = w(!1);
258
+ let u = null, d = null;
259
+ const m = v(() => r.value || o.value), f = v(() => !!(a.title || a.subtitle));
260
260
  v(() => a.categories.length > 0);
261
261
  function E() {
262
262
  return document.documentElement?.clientWidth || window.innerWidth;
263
263
  }
264
264
  function L() {
265
- s.value = E() <= Ne;
265
+ r.value = E() <= Ne;
266
266
  }
267
267
  function A() {
268
268
  o.value = !o.value, l("update:collapsed", o.value);
269
269
  }
270
- function g($) {
271
- l("update:modelValue", $), l("change", $);
270
+ function g(k) {
271
+ l("update:modelValue", k), l("change", k);
272
272
  }
273
273
  return Q(
274
274
  () => a.collapsed,
275
- ($) => {
276
- $ !== void 0 && (o.value = $);
275
+ (k) => {
276
+ k !== void 0 && (o.value = k);
277
277
  }
278
278
  ), W(() => {
279
- u = window.matchMedia(`(max-width: ${Ne}px)`), L(), u.addEventListener("change", L), window.addEventListener("resize", L), typeof ResizeObserver < "u" && document.documentElement && (f = new ResizeObserver(L), f.observe(document.documentElement));
279
+ u = window.matchMedia(`(max-width: ${Ne}px)`), L(), u.addEventListener("change", L), window.addEventListener("resize", L), typeof ResizeObserver < "u" && document.documentElement && (d = new ResizeObserver(L), d.observe(document.documentElement));
280
280
  }), pe(() => {
281
- u?.removeEventListener("change", L), window.removeEventListener("resize", L), f?.disconnect(), f = null;
282
- }), n({ collapsed: m }), ($, P) => (i(), r("aside", {
281
+ u?.removeEventListener("change", L), window.removeEventListener("resize", L), d?.disconnect(), d = null;
282
+ }), n({ collapsed: m }), (k, P) => (i(), s("aside", {
283
283
  class: y(["relative z-30 flex h-full shrink-0 flex-col rounded-corner border border-ui-border bg-ui-surface/70 transition-[width] duration-300", ["w-[84px]", m.value ? "md:w-[84px]" : "md:w-72"]])
284
284
  }, [
285
- d.value || $.$slots.header ? (i(), r("header", _t, [
286
- B("div", ea, [
285
+ f.value || k.$slots.header ? (i(), s("header", ea, [
286
+ B("div", ta, [
287
287
  B("button", {
288
288
  type: "button",
289
289
  class: y(Fe),
@@ -296,16 +296,16 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
296
296
  type: "symbol",
297
297
  size: 16
298
298
  }, null, 8, ["name"])
299
- ], 8, ta),
300
- d.value && !m.value ? (i(), r("div", aa, [
301
- e.title ? (i(), r("p", na, V(e.title), 1)) : x("", !0),
302
- e.subtitle ? (i(), r("p", la, V(e.subtitle), 1)) : x("", !0)
299
+ ], 8, aa),
300
+ f.value && !m.value ? (i(), s("div", na, [
301
+ e.title ? (i(), s("p", la, V(e.title), 1)) : x("", !0),
302
+ e.subtitle ? (i(), s("p", oa, V(e.subtitle), 1)) : x("", !0)
303
303
  ])) : x("", !0)
304
304
  ]),
305
- $.$slots.header && !m.value ? (i(), r("div", oa, [
306
- S($.$slots, "header", { collapsed: m.value })
305
+ k.$slots.header && !m.value ? (i(), s("div", ia, [
306
+ S(k.$slots, "header", { collapsed: m.value })
307
307
  ])) : x("", !0)
308
- ])) : (i(), r("div", ia, [
308
+ ])) : (i(), s("div", sa, [
309
309
  B("button", {
310
310
  type: "button",
311
311
  class: y(Fe),
@@ -320,14 +320,14 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
320
320
  }, null, 8, ["name"])
321
321
  ], 8, ra)
322
322
  ])),
323
- B("div", sa, [
324
- (i(!0), r(te, null, ue(e.categories, (C) => (i(), U(Ze, {
323
+ B("div", ua, [
324
+ (i(!0), s(te, null, ce(e.categories, (C) => (i(), U(Ze, {
325
325
  key: C.id,
326
326
  title: C.title,
327
327
  collapsed: m.value
328
328
  }, {
329
329
  default: G(() => [
330
- (i(!0), r(te, null, ue(C.items, (h) => (i(), U(_e, {
330
+ (i(!0), s(te, null, ce(C.items, (h) => (i(), U(_e, {
331
331
  key: h.id,
332
332
  label: h.label,
333
333
  icon: h.icon,
@@ -340,11 +340,11 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
340
340
  ]),
341
341
  _: 2
342
342
  }, 1032, ["title", "collapsed"]))), 128)),
343
- S($.$slots, "default", { collapsed: m.value })
343
+ S(k.$slots, "default", { collapsed: m.value })
344
344
  ])
345
345
  ], 2));
346
346
  }
347
- }), ca = { class: "flex min-w-0 flex-col gap-1" }, da = ["for"], fa = { class: "relative flex min-w-0 items-center" }, ma = ["id"], ba = /* @__PURE__ */ D({
347
+ }), da = { class: "flex min-w-0 flex-col gap-1" }, fa = ["for"], ma = { class: "relative flex min-w-0 items-center" }, ba = ["id"], va = /* @__PURE__ */ D({
348
348
  inheritAttrs: !1,
349
349
  __name: "SelectField",
350
350
  props: /* @__PURE__ */ Re({
@@ -357,27 +357,27 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
357
357
  }),
358
358
  emits: /* @__PURE__ */ Re(["change"], ["update:modelValue"]),
359
359
  setup(e, { emit: n }) {
360
- const t = e, a = Be(), l = yt(), o = v(() => a.id ?? l), s = n, [u, f] = gt(e, "modelValue", {
360
+ const t = e, a = Be(), l = yt(), o = v(() => a.id ?? l), r = n, [u, d] = gt(e, "modelValue", {
361
361
  set(m) {
362
- return f.number ? Number(m) : m;
362
+ return d.number ? Number(m) : m;
363
363
  }
364
364
  });
365
- return (m, d) => (i(), r("div", ca, [
366
- t.label ? (i(), r("label", {
365
+ return (m, f) => (i(), s("div", da, [
366
+ t.label ? (i(), s("label", {
367
367
  key: 0,
368
368
  for: o.value,
369
369
  class: "text-tx-muted text-xs"
370
- }, V(t.label), 9, da)) : x("", !0),
371
- B("div", fa, [
372
- Se(B("select", ce({
370
+ }, V(t.label), 9, fa)) : x("", !0),
371
+ B("div", ma, [
372
+ Se(B("select", le({
373
373
  id: o.value,
374
- "onUpdate:modelValue": d[0] || (d[0] = (E) => ht(u) ? u.value = E : null),
374
+ "onUpdate:modelValue": f[0] || (f[0] = (E) => ht(u) ? u.value = E : null),
375
375
  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"
376
376
  }, F(a), {
377
- onChange: d[1] || (d[1] = (E) => s("change", E))
377
+ onChange: f[1] || (f[1] = (E) => r("change", E))
378
378
  }), [
379
379
  S(m.$slots, "default")
380
- ], 16, ma), [
380
+ ], 16, ba), [
381
381
  [xt, F(u)]
382
382
  ]),
383
383
  j(N, {
@@ -393,9 +393,9 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
393
393
  function Ae(e) {
394
394
  return e === "left" || e === "right" ? "vertical" : "horizontal";
395
395
  }
396
- const va = ["top", "bottom", "left", "right"];
397
- function pa(e) {
398
- return typeof e == "string" && va.includes(e);
396
+ const pa = ["top", "bottom", "left", "right"];
397
+ function ya(e) {
398
+ return typeof e == "string" && pa.includes(e);
399
399
  }
400
400
  function he() {
401
401
  const e = we(Me, null);
@@ -407,32 +407,32 @@ function he() {
407
407
  vertical: v(() => Ae(n.value) === "vertical")
408
408
  };
409
409
  }
410
- const Ve = ["minimize", "maximize", "close"], ya = "window", ga = "barPosition";
411
- function ha(e) {
412
- const t = e?.[ya]?.[ga];
413
- return pa(t) ? t : null;
410
+ const Ve = ["minimize", "maximize", "close"], ga = "window", ha = "barPosition";
411
+ function xa(e) {
412
+ const t = e?.[ga]?.[ha];
413
+ return ya(t) ? t : null;
414
414
  }
415
- function xa(e = "top") {
415
+ function wa(e = "top") {
416
416
  const n = w(e);
417
417
  let t = null, a = !1;
418
418
  async function l() {
419
419
  try {
420
- const { readConfig: o } = await import("@vasakgroup/plugin-config-manager"), s = await o();
421
- n.value = ha(s) ?? e;
420
+ const { readConfig: o } = await import("@vasakgroup/plugin-config-manager"), r = await o();
421
+ n.value = xa(r) ?? e;
422
422
  } catch {
423
423
  }
424
424
  }
425
425
  return W(async () => {
426
426
  await l();
427
427
  try {
428
- const { listen: o } = await import("@tauri-apps/api/event"), s = await o("config-changed", () => {
428
+ const { listen: o } = await import("@tauri-apps/api/event"), r = await o("config-changed", () => {
429
429
  l();
430
430
  });
431
431
  if (a) {
432
- s();
432
+ r();
433
433
  return;
434
434
  }
435
- t = s;
435
+ t = r;
436
436
  } catch {
437
437
  }
438
438
  }), pe(() => {
@@ -447,7 +447,7 @@ function et(e) {
447
447
  }
448
448
  return t;
449
449
  }
450
- const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title", "aria-label"], Ee = "flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors", tt = /* @__PURE__ */ D({
450
+ const $a = ["title", "aria-label"], ka = ["title", "aria-label"], Ca = ["title", "aria-label"], Ee = "flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors", tt = /* @__PURE__ */ D({
451
451
  __name: "WindowControls",
452
452
  props: {
453
453
  controls: { default: () => Ve },
@@ -457,13 +457,13 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
457
457
  },
458
458
  emits: ["minimize", "maximize", "close"],
459
459
  setup(e, { emit: n }) {
460
- const t = e, { t: a } = Bt(), l = v(() => t.minimizeLabel ?? a("ventana.minimizar")), o = v(() => t.maximizeLabel ?? a("ventana.maximizar")), s = v(() => t.closeLabel ?? a("ventana.cerrar")), u = n, { vertical: f } = he(), m = v(() => ({
460
+ const t = e, { t: a } = St(), l = v(() => t.minimizeLabel ?? a("ventana.minimizar")), o = v(() => t.maximizeLabel ?? a("ventana.maximizar")), r = v(() => t.closeLabel ?? a("ventana.cerrar")), u = n, { vertical: d } = he(), m = v(() => ({
461
461
  minimize: t.controls.includes("minimize"),
462
462
  maximize: t.controls.includes("maximize"),
463
463
  close: t.controls.includes("close")
464
464
  }));
465
- function d() {
466
- return At();
465
+ function f() {
466
+ return Bt();
467
467
  }
468
468
  const E = Ge();
469
469
  function L(P) {
@@ -471,22 +471,22 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
471
471
  }
472
472
  function A() {
473
473
  if (L("Minimize")) return u("minimize");
474
- d().minimize();
474
+ f().minimize();
475
475
  }
476
476
  function g() {
477
477
  if (L("Maximize")) return u("maximize");
478
- d().toggleMaximize();
478
+ f().toggleMaximize();
479
479
  }
480
- function $() {
480
+ function k() {
481
481
  if (L("Close")) return u("close");
482
- d().close();
482
+ f().close();
483
483
  }
484
- return (P, C) => e.controls.length ? (i(), r("div", {
484
+ return (P, C) => e.controls.length ? (i(), s("div", {
485
485
  key: 0,
486
- class: y(["flex shrink-0 gap-1", F(f) ? "flex-col" : ""]),
486
+ class: y(["flex shrink-0 gap-1", F(d) ? "flex-col" : ""]),
487
487
  "data-tauri-drag-region": ""
488
488
  }, [
489
- m.value.minimize ? (i(), r("button", {
489
+ m.value.minimize ? (i(), s("button", {
490
490
  key: 0,
491
491
  type: "button",
492
492
  class: y([Ee, "hover:bg-status-success"]),
@@ -499,8 +499,8 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
499
499
  type: "symbol",
500
500
  size: 24
501
501
  })
502
- ], 10, wa)) : x("", !0),
503
- m.value.maximize ? (i(), r("button", {
502
+ ], 10, $a)) : x("", !0),
503
+ m.value.maximize ? (i(), s("button", {
504
504
  key: 1,
505
505
  type: "button",
506
506
  class: y([Ee, "hover:bg-status-warning"]),
@@ -514,27 +514,27 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
514
514
  size: 24
515
515
  })
516
516
  ], 10, ka)) : x("", !0),
517
- m.value.close ? (i(), r("button", {
517
+ m.value.close ? (i(), s("button", {
518
518
  key: 2,
519
519
  type: "button",
520
520
  class: y([Ee, "hover:bg-status-error"]),
521
- title: s.value,
522
- "aria-label": s.value,
523
- onClick: C[2] || (C[2] = (h) => $())
521
+ title: r.value,
522
+ "aria-label": r.value,
523
+ onClick: C[2] || (C[2] = (h) => k())
524
524
  }, [
525
525
  j(N, {
526
526
  name: "window-close",
527
527
  type: "symbol",
528
528
  size: 24
529
529
  })
530
- ], 10, $a)) : x("", !0)
530
+ ], 10, Ca)) : x("", !0)
531
531
  ], 2)) : x("", !0);
532
532
  }
533
- }), Ca = {
533
+ }), za = {
534
534
  key: 0,
535
535
  class: "flex shrink-0 items-center",
536
536
  "data-tauri-drag-region": ""
537
- }, za = {
537
+ }, Ea = {
538
538
  key: 1,
539
539
  class: "min-w-0 shrink truncate text-sm",
540
540
  "data-tauri-drag-region": ""
@@ -555,16 +555,16 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
555
555
  posicion: a,
556
556
  orientacion: v(() => l.value ? "vertical" : "horizontal"),
557
557
  vertical: l
558
- }), (o, s) => (i(), r("div", {
558
+ }), (o, r) => (i(), s("div", {
559
559
  class: y(["relative flex shrink-0 items-center gap-2 p-1 font-title", l.value ? "h-full flex-col" : "w-full"]),
560
560
  "data-tauri-drag-region": ""
561
561
  }, [
562
- o.$slots.identidad ? (i(), r("div", Ca, [
562
+ o.$slots.identidad ? (i(), s("div", za, [
563
563
  S(o.$slots, "identidad")
564
564
  ])) : x("", !0),
565
- (o.$slots.titulo || e.title) && !l.value ? (i(), r("p", za, [
565
+ (o.$slots.titulo || e.title) && !l.value ? (i(), s("p", Ea, [
566
566
  S(o.$slots, "titulo", {}, () => [
567
- ke(V(e.title), 1)
567
+ $e(V(e.title), 1)
568
568
  ])
569
569
  ])) : x("", !0),
570
570
  B("div", {
@@ -573,19 +573,19 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
573
573
  }, [
574
574
  S(o.$slots, "default")
575
575
  ], 2),
576
- o.$slots.acciones ? (i(), r("div", {
576
+ o.$slots.acciones ? (i(), s("div", {
577
577
  key: 2,
578
578
  class: y(["flex shrink-0 items-center gap-1", l.value ? "flex-col" : ""])
579
579
  }, [
580
580
  S(o.$slots, "acciones")
581
581
  ], 2)) : x("", !0),
582
- j(tt, ce({
582
+ j(tt, le({
583
583
  controls: e.controls,
584
584
  "minimize-label": e.minimizeLabel,
585
585
  "maximize-label": e.maximizeLabel,
586
586
  "close-label": e.closeLabel
587
587
  }, Qe(F(et)(["minimize", "maximize", "close"]))), null, 16, ["controls", "minimize-label", "maximize-label", "close-label"]),
588
- o.$slots.centro ? (i(), r("div", {
588
+ o.$slots.centro ? (i(), s("div", {
589
589
  key: 3,
590
590
  class: y(["pointer-events-none absolute flex items-center justify-center", l.value ? "inset-x-0 top-1/2 -translate-y-1/2 flex-col" : "inset-y-0 left-1/2 -translate-x-1/2"])
591
591
  }, [
@@ -597,7 +597,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
597
597
  ], 2)) : x("", !0)
598
598
  ], 2));
599
599
  }
600
- }), Ea = { class: "flex min-h-0 min-w-0 flex-1" }, La = /* @__PURE__ */ D({
600
+ }), La = { class: "flex min-h-0 min-w-0 flex-1" }, Da = /* @__PURE__ */ D({
601
601
  __name: "WindowFrame",
602
602
  props: {
603
603
  position: { default: null },
@@ -610,18 +610,18 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
610
610
  },
611
611
  emits: ["minimize", "maximize", "close"],
612
612
  setup(e) {
613
- const n = e, t = xa(), a = v(() => n.position ?? t.value), l = v(() => Ae(a.value)), o = v(() => l.value === "vertical");
613
+ const n = e, t = wa(), a = v(() => n.position ?? t.value), l = v(() => Ae(a.value)), o = v(() => l.value === "vertical");
614
614
  ye(Me, { posicion: a, orientacion: l, vertical: o });
615
- const s = {
615
+ const r = {
616
616
  top: "flex-col",
617
617
  bottom: "flex-col-reverse",
618
618
  left: "flex-row",
619
619
  right: "flex-row-reverse"
620
620
  };
621
- return (u, f) => (i(), r("div", {
622
- class: y(["flex h-screen w-screen overflow-hidden rounded-corner-window border border-ui-border bg-ui-bg/80", s[a.value]])
621
+ return (u, d) => (i(), s("div", {
622
+ class: y(["flex h-screen w-screen overflow-hidden rounded-corner-window border border-ui-border bg-ui-bg/80", r[a.value]])
623
623
  }, [
624
- e.hideBar ? x("", !0) : (i(), U(at, ce({
624
+ e.hideBar ? x("", !0) : (i(), U(at, le({
625
625
  key: 0,
626
626
  position: a.value,
627
627
  title: e.title,
@@ -664,22 +664,22 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
664
664
  key: "3"
665
665
  } : void 0
666
666
  ]), 1040, ["position", "title", "minimize-label", "maximize-label", "close-label", "controls"])),
667
- B("div", Ea, [
667
+ B("div", La, [
668
668
  S(u.$slots, "default")
669
669
  ])
670
670
  ], 2));
671
671
  }
672
- }), Da = ["aria-selected", "title", "aria-label", "tabindex"], Ta = {
672
+ }), Ta = ["aria-selected", "title", "aria-label", "tabindex"], Aa = {
673
673
  key: 1,
674
674
  "aria-hidden": "true"
675
- }, Aa = {
675
+ }, Ba = {
676
676
  key: 2,
677
677
  class: "min-w-0 flex-1 truncate"
678
- }, Ba = ["title", "aria-label"], Sa = { class: "whitespace-nowrap" }, Ma = {
678
+ }, Sa = ["title", "aria-label"], Ma = { class: "whitespace-nowrap" }, Va = {
679
679
  key: 0,
680
680
  class: "size-2 shrink-0 rounded-full bg-current",
681
681
  "aria-hidden": "true"
682
- }, Va = ["title", "aria-label"], Ia = 500, qe = 8, He = 6, nt = /* @__PURE__ */ D({
682
+ }, Ia = ["title", "aria-label"], Oa = 500, qe = 8, He = 6, nt = /* @__PURE__ */ D({
683
683
  __name: "TabItem",
684
684
  props: {
685
685
  tab: {},
@@ -690,39 +690,39 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
690
690
  },
691
691
  emits: ["select", "close", "menu", "mover", "navegar"],
692
692
  setup(e, { emit: n }) {
693
- const t = e, a = n, { vertical: l, posicion: o } = he(), s = w(null), u = w(null), f = w(!1), m = w(!1), d = w(!1), E = w({ top: 0, left: 0, right: 0 });
693
+ const t = e, a = n, { vertical: l, posicion: o } = he(), r = w(null), u = w(null), d = w(!1), m = w(!1), f = w(!1), E = w({ top: 0, left: 0, right: 0 });
694
694
  let L = null, A = null;
695
- const g = v(() => t.tab.closable !== !1), $ = v(() => t.tab.tooltip ?? t.tab.label), P = v(
695
+ const g = v(() => t.tab.closable !== !1), k = v(() => t.tab.tooltip ?? t.tab.label), P = v(
696
696
  () => t.tab.dirty ? `${t.tab.label} · ${t.dirtyLabel}` : t.tab.label
697
- ), C = v(() => t.tab.label.trim().charAt(0).toUpperCase()), h = v(() => f.value || d.value), c = v(
697
+ ), C = v(() => t.tab.label.trim().charAt(0).toUpperCase()), h = v(() => d.value || f.value), c = v(
698
698
  () => !!t.tab.dirty && !(h.value && g.value)
699
699
  ), b = v(
700
700
  () => g.value && (h.value || t.active || !t.tab.dirty)
701
701
  ), p = v(
702
- () => l.value && (f.value || m.value || d.value)
702
+ () => l.value && (d.value || m.value || f.value)
703
703
  ), R = v(() => {
704
704
  const q = { position: "fixed", top: `${E.value.top}px`, zIndex: 50 };
705
705
  return o.value === "right" ? { ...q, right: `${E.value.right + He}px` } : { ...q, left: `${E.value.left + He}px` };
706
706
  });
707
- function le() {
708
- const q = s.value;
707
+ function oe() {
708
+ const q = r.value;
709
709
  if (!q) return;
710
- const k = q.getBoundingClientRect();
710
+ const $ = q.getBoundingClientRect();
711
711
  E.value = {
712
- top: k.top,
713
- left: k.right,
714
- right: window.innerWidth - k.left
712
+ top: $.top,
713
+ left: $.right,
714
+ right: window.innerWidth - $.left
715
715
  };
716
716
  }
717
717
  function K(q) {
718
- const k = q.relatedTarget;
719
- k && u.value?.contains(k) || (d.value = !1);
718
+ const $ = q.relatedTarget;
719
+ $ && u.value?.contains($) || (f.value = !1);
720
720
  }
721
- function oe() {
722
- f.value = !0, le();
721
+ function ie() {
722
+ d.value = !0, oe();
723
723
  }
724
724
  function Y() {
725
- m.value = !0, le();
725
+ m.value = !0, oe();
726
726
  }
727
727
  function T() {
728
728
  L !== null && clearTimeout(L), L = null, A = null;
@@ -730,7 +730,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
730
730
  function z(q) {
731
731
  q.button === 0 && (A = { x: q.clientX, y: q.clientY }, L = setTimeout(() => {
732
732
  A && a("menu", A), T();
733
- }, Ia));
733
+ }, Oa));
734
734
  }
735
735
  function O(q) {
736
736
  if (!A) return;
@@ -742,33 +742,33 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
742
742
  function bt(q) {
743
743
  q.preventDefault(), a("menu", { x: q.clientX, y: q.clientY });
744
744
  }
745
- return pe(T), (q, k) => (i(), r("div", {
745
+ return pe(T), (q, $) => (i(), s("div", {
746
746
  ref_key: "raiz",
747
- ref: s,
747
+ ref: r,
748
748
  class: y(["group relative flex shrink-0 cursor-pointer items-center gap-2 rounded-corner border border-ui-border transition-colors", [
749
749
  e.active ? "bg-primary font-bold text-tx-on-primary" : "bg-ui-bg/80 hover:bg-ui-surface/70",
750
750
  F(l) ? "size-8 justify-center p-0 text-sm" : "w-34 max-w-34 px-3 py-1 text-sm"
751
751
  ]]),
752
752
  role: "tab",
753
753
  "aria-selected": e.active,
754
- title: $.value,
754
+ title: k.value,
755
755
  "aria-label": P.value,
756
756
  tabindex: e.tabindex,
757
- onClick: k[5] || (k[5] = M((H) => a("select"), ["stop"])),
757
+ onClick: $[5] || ($[5] = M((H) => a("select"), ["stop"])),
758
758
  onKeydown: [
759
- k[6] || (k[6] = I(M((H) => a("select"), ["stop"]), ["enter"])),
760
- k[7] || (k[7] = I(M((H) => a("select"), ["prevent", "stop"]), ["space"])),
761
- k[8] || (k[8] = I(M((H) => a("navegar", "anterior"), ["prevent", "stop"]), ["left"])),
762
- k[9] || (k[9] = I(M((H) => a("navegar", "anterior"), ["prevent", "stop"]), ["up"])),
763
- k[10] || (k[10] = I(M((H) => a("navegar", "siguiente"), ["prevent", "stop"]), ["right"])),
764
- k[11] || (k[11] = I(M((H) => a("navegar", "siguiente"), ["prevent", "stop"]), ["down"])),
765
- k[12] || (k[12] = I(M((H) => a("navegar", "primera"), ["prevent", "stop"]), ["home"])),
766
- k[13] || (k[13] = I(M((H) => a("navegar", "ultima"), ["prevent", "stop"]), ["end"])),
767
- k[14] || (k[14] = I(M((H) => a("mover", -1), ["alt", "prevent", "stop"]), ["left"])),
768
- k[15] || (k[15] = I(M((H) => a("mover", -1), ["alt", "prevent", "stop"]), ["up"])),
769
- k[16] || (k[16] = I(M((H) => a("mover", 1), ["alt", "prevent", "stop"]), ["right"])),
770
- k[17] || (k[17] = I(M((H) => a("mover", 1), ["alt", "prevent", "stop"]), ["down"])),
771
- k[18] || (k[18] = I(M((H) => g.value && a("close"), ["prevent", "stop"]), ["delete"]))
759
+ $[6] || ($[6] = I(M((H) => a("select"), ["stop"]), ["enter"])),
760
+ $[7] || ($[7] = I(M((H) => a("select"), ["prevent", "stop"]), ["space"])),
761
+ $[8] || ($[8] = I(M((H) => a("navegar", "anterior"), ["prevent", "stop"]), ["left"])),
762
+ $[9] || ($[9] = I(M((H) => a("navegar", "anterior"), ["prevent", "stop"]), ["up"])),
763
+ $[10] || ($[10] = I(M((H) => a("navegar", "siguiente"), ["prevent", "stop"]), ["right"])),
764
+ $[11] || ($[11] = I(M((H) => a("navegar", "siguiente"), ["prevent", "stop"]), ["down"])),
765
+ $[12] || ($[12] = I(M((H) => a("navegar", "primera"), ["prevent", "stop"]), ["home"])),
766
+ $[13] || ($[13] = I(M((H) => a("navegar", "ultima"), ["prevent", "stop"]), ["end"])),
767
+ $[14] || ($[14] = I(M((H) => a("mover", -1), ["alt", "prevent", "stop"]), ["left"])),
768
+ $[15] || ($[15] = I(M((H) => a("mover", -1), ["alt", "prevent", "stop"]), ["up"])),
769
+ $[16] || ($[16] = I(M((H) => a("mover", 1), ["alt", "prevent", "stop"]), ["right"])),
770
+ $[17] || ($[17] = I(M((H) => a("mover", 1), ["alt", "prevent", "stop"]), ["down"])),
771
+ $[18] || ($[18] = I(M((H) => g.value && a("close"), ["prevent", "stop"]), ["delete"]))
772
772
  ],
773
773
  onAuxclick: M(de, ["stop"]),
774
774
  onContextmenu: bt,
@@ -776,79 +776,79 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
776
776
  onPointermove: O,
777
777
  onPointerup: T,
778
778
  onPointerleave: T,
779
- onMouseenter: oe,
780
- onMouseleave: k[19] || (k[19] = (H) => f.value = !1),
779
+ onMouseenter: ie,
780
+ onMouseleave: $[19] || ($[19] = (H) => d.value = !1),
781
781
  onFocus: Y,
782
- onBlur: k[20] || (k[20] = (H) => m.value = !1)
782
+ onBlur: $[20] || ($[20] = (H) => m.value = !1)
783
783
  }, [
784
784
  e.tab.icon ? (i(), U(N, {
785
785
  key: 0,
786
786
  name: e.tab.icon,
787
787
  size: 16,
788
788
  class: "shrink-0"
789
- }, null, 8, ["name"])) : F(l) ? (i(), r("span", Ta, V(C.value), 1)) : x("", !0),
790
- F(l) ? x("", !0) : (i(), r("span", Aa, V(e.tab.label), 1)),
791
- c.value ? (i(), r("span", {
789
+ }, null, 8, ["name"])) : F(l) ? (i(), s("span", Aa, V(C.value), 1)) : x("", !0),
790
+ F(l) ? x("", !0) : (i(), s("span", Ba, V(e.tab.label), 1)),
791
+ c.value ? (i(), s("span", {
792
792
  key: 3,
793
793
  class: y(["size-2 shrink-0 rounded-full bg-current", F(l) ? "absolute right-0.5 top-0.5" : ""]),
794
794
  "aria-hidden": "true"
795
- }, null, 2)) : b.value && !F(l) ? (i(), r("button", {
795
+ }, null, 2)) : b.value && !F(l) ? (i(), s("button", {
796
796
  key: 4,
797
797
  type: "button",
798
798
  class: "flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",
799
799
  title: e.closeLabel,
800
800
  "aria-label": `${e.closeLabel}: ${P.value}`,
801
- onClick: k[0] || (k[0] = M((H) => a("close"), ["stop"]))
801
+ onClick: $[0] || ($[0] = M((H) => a("close"), ["stop"]))
802
802
  }, [
803
803
  j(N, {
804
804
  name: "gtk-close",
805
805
  type: "symbol",
806
806
  size: 12
807
807
  })
808
- ], 8, Ba)) : x("", !0),
808
+ ], 8, Sa)) : x("", !0),
809
809
  (i(), U(ge, { to: "body" }, [
810
- j($e, {
810
+ j(ke, {
811
811
  "enter-active-class": "transition duration-150 ease-out",
812
812
  "enter-from-class": "opacity-0 scale-95",
813
813
  "leave-active-class": "transition duration-100 ease-in",
814
814
  "leave-to-class": "opacity-0 scale-95"
815
815
  }, {
816
816
  default: G(() => [
817
- p.value ? (i(), r("div", {
817
+ p.value ? (i(), s("div", {
818
818
  key: 0,
819
819
  class: y(["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" : ""]),
820
820
  ref_key: "desplegadoRef",
821
821
  ref: u,
822
822
  style: fe(R.value),
823
- onMouseenter: k[2] || (k[2] = (H) => d.value = !0),
824
- onMouseleave: k[3] || (k[3] = (H) => d.value = !1),
825
- onFocusin: k[4] || (k[4] = (H) => d.value = !0),
823
+ onMouseenter: $[2] || ($[2] = (H) => f.value = !0),
824
+ onMouseleave: $[3] || ($[3] = (H) => f.value = !1),
825
+ onFocusin: $[4] || ($[4] = (H) => f.value = !0),
826
826
  onFocusout: K
827
827
  }, [
828
- B("span", Sa, V(e.tab.label), 1),
829
- e.tab.dirty ? (i(), r("span", Ma)) : x("", !0),
830
- g.value ? (i(), r("button", {
828
+ B("span", Ma, V(e.tab.label), 1),
829
+ e.tab.dirty ? (i(), s("span", Va)) : x("", !0),
830
+ g.value ? (i(), s("button", {
831
831
  key: 1,
832
832
  type: "button",
833
833
  class: "flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",
834
834
  title: e.closeLabel,
835
835
  "aria-label": `${e.closeLabel}: ${P.value}`,
836
- onClick: k[1] || (k[1] = M((H) => a("close"), ["stop"]))
836
+ onClick: $[1] || ($[1] = M((H) => a("close"), ["stop"]))
837
837
  }, [
838
838
  j(N, {
839
839
  name: "gtk-close",
840
840
  type: "symbol",
841
841
  size: 12
842
842
  })
843
- ], 8, Va)) : x("", !0)
843
+ ], 8, Ia)) : x("", !0)
844
844
  ], 38)) : x("", !0)
845
845
  ]),
846
846
  _: 1
847
847
  })
848
848
  ]))
849
- ], 42, Da));
849
+ ], 42, Ta));
850
850
  }
851
- }), Oa = ["aria-orientation"], ja = ["draggable", "onDragstart", "onDragover", "onDrop"], Pa = ["title", "aria-label"], Ra = /* @__PURE__ */ D({
851
+ }), ja = ["aria-orientation"], Pa = ["draggable", "onDragstart", "onDragover", "onDrop"], Ra = ["title", "aria-label"], Fa = /* @__PURE__ */ D({
852
852
  __name: "TabBar",
853
853
  props: {
854
854
  tabs: {},
@@ -860,22 +860,22 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
860
860
  },
861
861
  emits: ["update:modelValue", "select", "close", "new", "reorder", "menu"],
862
862
  setup(e, { emit: n }) {
863
- const t = e, a = n, { vertical: l } = he(), o = w(null), s = w(0), u = w(null), f = w(null);
863
+ const t = e, a = n, { vertical: l } = he(), o = w(null), r = w(0), u = w(null), d = w(null);
864
864
  function m(h) {
865
865
  a("update:modelValue", h), a("select", h);
866
866
  }
867
- async function d(h, c) {
867
+ async function f(h, c) {
868
868
  const b = t.tabs.length - 1;
869
869
  if (b < 0) return;
870
870
  const p = c === "primera" ? 0 : c === "ultima" ? b : c === "anterior" ? (h - 1 + t.tabs.length) % t.tabs.length : (h + 1) % t.tabs.length;
871
- s.value = p, await J(), o.value?.querySelectorAll('[role="tab"]')?.[p]?.focus();
871
+ r.value = p, await J(), o.value?.querySelectorAll('[role="tab"]')?.[p]?.focus();
872
872
  }
873
873
  function E(h, c) {
874
874
  if (t.fixedOrder) return;
875
875
  const b = h + c;
876
876
  if (b < 0 || b >= t.tabs.length) return;
877
877
  const p = [...t.tabs], [R] = p.splice(h, 1);
878
- R && (p.splice(b, 0, R), s.value = b, a("reorder", p));
878
+ R && (p.splice(b, 0, R), r.value = b, a("reorder", p));
879
879
  }
880
880
  function L(h) {
881
881
  const c = o.value;
@@ -887,21 +887,21 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
887
887
  t.fixedOrder || (u.value = h, c.dataTransfer?.setData("text/plain", String(h)), c.dataTransfer && (c.dataTransfer.effectAllowed = "move"));
888
888
  }
889
889
  function g(h, c) {
890
- t.fixedOrder || u.value === null || (c.preventDefault(), f.value = h, c.dataTransfer && (c.dataTransfer.dropEffect = "move"));
890
+ t.fixedOrder || u.value === null || (c.preventDefault(), d.value = h, c.dataTransfer && (c.dataTransfer.dropEffect = "move"));
891
891
  }
892
- function $(h) {
892
+ function k(h) {
893
893
  const c = u.value;
894
894
  if (P(), t.fixedOrder || c === null || c === h) return;
895
895
  const b = [...t.tabs], [p] = b.splice(c, 1);
896
896
  p && (b.splice(h, 0, p), a("reorder", b));
897
897
  }
898
898
  function P() {
899
- u.value = null, f.value = null;
899
+ u.value = null, d.value = null;
900
900
  }
901
901
  const C = v(
902
902
  () => l.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"
903
903
  );
904
- return (h, c) => (i(), r("div", {
904
+ return (h, c) => (i(), s("div", {
905
905
  class: y(["flex min-h-0 min-w-0 items-center gap-1", F(l) ? "w-full flex-col" : "h-full"]),
906
906
  role: "tablist",
907
907
  "aria-orientation": F(l) ? "vertical" : "horizontal"
@@ -912,16 +912,16 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
912
912
  class: y(C.value),
913
913
  onWheel: L
914
914
  }, [
915
- (i(!0), r(te, null, ue(e.tabs, (b, p) => (i(), r("div", {
915
+ (i(!0), s(te, null, ce(e.tabs, (b, p) => (i(), s("div", {
916
916
  key: b.id,
917
917
  class: y(["transition-opacity", [
918
918
  u.value === p ? "opacity-40" : "",
919
- f.value === p && u.value !== p ? "ring-2 ring-secondary rounded-corner" : ""
919
+ d.value === p && u.value !== p ? "ring-2 ring-secondary rounded-corner" : ""
920
920
  ]]),
921
921
  draggable: !e.fixedOrder,
922
922
  onDragstart: (R) => A(p, R),
923
923
  onDragover: (R) => g(p, R),
924
- onDrop: M((R) => $(p), ["prevent"]),
924
+ onDrop: M((R) => k(p), ["prevent"]),
925
925
  onDragend: P
926
926
  }, [
927
927
  j(nt, {
@@ -929,16 +929,16 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
929
929
  active: b.id === e.modelValue,
930
930
  "close-label": e.closeLabel,
931
931
  "dirty-label": e.dirtyLabel,
932
- tabindex: p === s.value ? 0 : -1,
932
+ tabindex: p === r.value ? 0 : -1,
933
933
  onSelect: (R) => m(b.id),
934
934
  onClose: (R) => a("close", b.id),
935
935
  onMenu: (R) => a("menu", { id: b.id, ...R }),
936
- onNavegar: (R) => d(p, R),
936
+ onNavegar: (R) => f(p, R),
937
937
  onMover: (R) => E(p, R)
938
938
  }, null, 8, ["tab", "active", "close-label", "dirty-label", "tabindex", "onSelect", "onClose", "onMenu", "onNavegar", "onMover"])
939
- ], 42, ja))), 128))
939
+ ], 42, Pa))), 128))
940
940
  ], 34),
941
- e.newLabel ? (i(), r("button", {
941
+ e.newLabel ? (i(), s("button", {
942
942
  key: 0,
943
943
  type: "button",
944
944
  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",
@@ -951,10 +951,10 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
951
951
  type: "symbol",
952
952
  size: 14
953
953
  })
954
- ], 8, Pa)) : x("", !0)
955
- ], 10, Oa));
954
+ ], 8, Ra)) : x("", !0)
955
+ ], 10, ja));
956
956
  }
957
- }), Fa = ["id", "aria-label", "type", "value", "placeholder", "disabled", "readonly", "required", "aria-describedby", "autocomplete", "aria-invalid"], lt = /* @__PURE__ */ D({
957
+ }), Na = ["id", "aria-label", "type", "value", "placeholder", "disabled", "readonly", "required", "aria-describedby", "autocomplete", "aria-invalid"], lt = /* @__PURE__ */ D({
958
958
  __name: "TextInput",
959
959
  props: {
960
960
  modelValue: {},
@@ -974,17 +974,17 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
974
974
  emits: ["update:modelValue", "keyup", "keydown"],
975
975
  setup(e, { expose: n, emit: t }) {
976
976
  const a = e, l = t;
977
- function o(d) {
978
- a.lazy || l("update:modelValue", d.target.value);
977
+ function o(f) {
978
+ a.lazy || l("update:modelValue", f.target.value);
979
979
  }
980
- function s(d) {
981
- a.lazy && l("update:modelValue", d.target.value);
980
+ function r(f) {
981
+ a.lazy && l("update:modelValue", f.target.value);
982
982
  }
983
983
  const u = w(null);
984
- function f() {
984
+ function d() {
985
985
  return u.value?.focus(), u.value !== null && document.activeElement === u.value;
986
986
  }
987
- n({ enfocar: f });
987
+ n({ enfocar: d });
988
988
  const m = v(() => [
989
989
  "w-full rounded-corner border bg-ui-surface/70 px-3 py-1.5 text-sm text-tx-main",
990
990
  "placeholder:text-tx-muted focus:outline-none focus:ring-1 focus:ring-primary",
@@ -992,7 +992,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
992
992
  a.mono ? "font-mono" : "",
993
993
  a.disabled ? "cursor-not-allowed opacity-60" : ""
994
994
  ]);
995
- return (d, E) => (i(), r("input", {
995
+ return (f, E) => (i(), s("input", {
996
996
  ref_key: "campo",
997
997
  ref: u,
998
998
  id: e.id,
@@ -1008,12 +1008,12 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1008
1008
  "aria-invalid": e.invalid || void 0,
1009
1009
  class: y(m.value),
1010
1010
  onInput: o,
1011
- onChange: s,
1011
+ onChange: r,
1012
1012
  onKeyup: E[0] || (E[0] = (L) => l("keyup", L)),
1013
1013
  onKeydown: E[1] || (E[1] = (L) => l("keydown", L))
1014
- }, null, 42, Fa));
1014
+ }, null, 42, Na));
1015
1015
  }
1016
- }), Na = { class: "pointer-events-none absolute left-2 flex items-center" }, qa = ["aria-label"], Ie = /* @__PURE__ */ D({
1016
+ }), qa = { class: "pointer-events-none absolute left-2 flex items-center" }, Ha = ["aria-label"], Ie = /* @__PURE__ */ D({
1017
1017
  __name: "SearchField",
1018
1018
  props: {
1019
1019
  modelValue: { default: "" },
@@ -1031,8 +1031,8 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1031
1031
  emits: ["update:modelValue", "search", "clear", "keydown"],
1032
1032
  setup(e, { expose: n, emit: t }) {
1033
1033
  const a = e, l = t, o = w(null);
1034
- let s;
1035
- const u = v(() => a.modelValue.length > 0), f = v(
1034
+ let r;
1035
+ const u = v(() => a.modelValue.length > 0), d = v(
1036
1036
  () => a.listboxId ? {
1037
1037
  role: "combobox",
1038
1038
  "aria-autocomplete": "list",
@@ -1041,33 +1041,33 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1041
1041
  "aria-activedescendant": a.activeOptionId || void 0
1042
1042
  } : {}
1043
1043
  ), m = v(() => a.clearable && u.value && !a.disabled);
1044
- function d() {
1045
- clearTimeout(s), s = void 0;
1044
+ function f() {
1045
+ clearTimeout(r), r = void 0;
1046
1046
  }
1047
- function E($) {
1048
- l("update:modelValue", $), !(a.debounce <= 0) && (d(), s = setTimeout(() => l("search", $), a.debounce));
1047
+ function E(k) {
1048
+ l("update:modelValue", k), !(a.debounce <= 0) && (f(), r = setTimeout(() => l("search", k), a.debounce));
1049
1049
  }
1050
1050
  function L() {
1051
- d(), l("search", a.modelValue);
1051
+ f(), l("search", a.modelValue);
1052
1052
  }
1053
1053
  function A() {
1054
- d(), l("update:modelValue", ""), l("clear"), g();
1054
+ f(), l("update:modelValue", ""), l("clear"), g();
1055
1055
  }
1056
1056
  function g() {
1057
1057
  return o.value?.enfocar() ?? !1;
1058
1058
  }
1059
1059
  return n({ enfocar: g }), W(async () => {
1060
1060
  a.autofocus && (await J(), g());
1061
- }), ve(d), Q(
1061
+ }), ve(f), Q(
1062
1062
  () => a.disabled,
1063
- ($) => {
1064
- $ && d();
1063
+ (k) => {
1064
+ k && f();
1065
1065
  }
1066
- ), ($, P) => (i(), r("div", {
1066
+ ), (k, P) => (i(), s("div", {
1067
1067
  class: "relative flex items-center",
1068
1068
  onKeydown: I(L, ["enter"])
1069
1069
  }, [
1070
- B("span", Na, [
1070
+ B("span", qa, [
1071
1071
  j(N, {
1072
1072
  name: e.busy ? "content-loading" : "system-search",
1073
1073
  type: "symbol",
@@ -1075,20 +1075,20 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1075
1075
  class: y(e.busy ? "animate-spin opacity-70" : "opacity-60")
1076
1076
  }, null, 8, ["name", "class"])
1077
1077
  ]),
1078
- j(lt, ce({
1078
+ j(lt, le({
1079
1079
  ref_key: "campo",
1080
1080
  ref: o,
1081
1081
  type: "search",
1082
1082
  "model-value": e.modelValue,
1083
1083
  placeholder: e.placeholder || e.label,
1084
1084
  ariaLabel: e.label || void 0
1085
- }, f.value, {
1085
+ }, d.value, {
1086
1086
  disabled: e.disabled,
1087
1087
  class: ["pl-7 [&::-webkit-search-cancel-button]:appearance-none", m.value ? "pr-8" : ""],
1088
1088
  "onUpdate:modelValue": E,
1089
1089
  onKeydown: P[0] || (P[0] = (C) => l("keydown", C))
1090
1090
  }), null, 16, ["model-value", "placeholder", "ariaLabel", "disabled", "class"]),
1091
- m.value ? (i(), r("button", {
1091
+ m.value ? (i(), s("button", {
1092
1092
  key: 0,
1093
1093
  type: "button",
1094
1094
  class: "absolute right-1 flex size-6 items-center justify-center rounded-corner text-tx-muted hover:bg-ui-surface",
@@ -1103,10 +1103,10 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1103
1103
  size: 12,
1104
1104
  alt: ""
1105
1105
  })
1106
- ], 40, qa)) : x("", !0)
1106
+ ], 40, Ha)) : x("", !0)
1107
1107
  ], 32));
1108
1108
  }
1109
- }), Ha = ["title", "aria-label", "aria-expanded"], Ua = /* @__PURE__ */ D({
1109
+ }), Ua = ["title", "aria-label", "aria-expanded"], Ka = /* @__PURE__ */ D({
1110
1110
  __name: "BarSearch",
1111
1111
  props: {
1112
1112
  modelValue: { default: "" },
@@ -1118,45 +1118,45 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1118
1118
  },
1119
1119
  emits: ["update:modelValue", "search", "open", "close"],
1120
1120
  setup(e, { emit: n }) {
1121
- const t = e, a = n, { vertical: l, posicion: o } = he(), s = w(!1), u = w(null), f = v(() => l.value || t.collapsed), m = v(() => !f.value || s.value), d = v(() => {
1122
- if (!f.value) return "";
1121
+ const t = e, a = n, { vertical: l, posicion: o } = he(), r = w(!1), u = w(null), d = v(() => l.value || t.collapsed), m = v(() => !d.value || r.value), f = v(() => {
1122
+ if (!d.value) return "";
1123
1123
  const g = "absolute z-40 w-64 rounded-corner border border-ui-border bg-ui-surface/95 p-1 shadow-lg";
1124
1124
  return o.value === "left" ? `${g} left-full top-0 ml-1` : o.value === "right" ? `${g} right-full top-0 mr-1` : o.value === "bottom" ? `${g} bottom-full right-0 mb-1` : `${g} top-full right-0 mt-1`;
1125
1125
  });
1126
1126
  async function E() {
1127
- s.value = !0, a("open"), await J(), u.value?.enfocar();
1127
+ r.value = !0, a("open"), await J(), u.value?.enfocar();
1128
1128
  }
1129
1129
  function L() {
1130
- s.value && (s.value = !1, a("close"));
1130
+ r.value && (r.value = !1, a("close"));
1131
1131
  }
1132
1132
  function A(g) {
1133
- const $ = g.relatedTarget;
1134
- $ && g.currentTarget.contains($) || L();
1133
+ const k = g.relatedTarget;
1134
+ k && g.currentTarget.contains(k) || L();
1135
1135
  }
1136
- return (g, $) => (i(), r("div", {
1136
+ return (g, k) => (i(), s("div", {
1137
1137
  class: "relative flex shrink-0 items-center",
1138
1138
  onFocusout: A
1139
1139
  }, [
1140
- f.value ? (i(), r("button", {
1140
+ d.value ? (i(), s("button", {
1141
1141
  key: 0,
1142
1142
  type: "button",
1143
1143
  class: "flex size-7 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",
1144
1144
  title: e.label,
1145
1145
  "aria-label": e.label,
1146
- "aria-expanded": s.value,
1147
- onMousedown: $[0] || ($[0] = M(() => {
1146
+ "aria-expanded": r.value,
1147
+ onMousedown: k[0] || (k[0] = M(() => {
1148
1148
  }, ["prevent"])),
1149
- onClick: $[1] || ($[1] = (P) => s.value ? L() : E())
1149
+ onClick: k[1] || (k[1] = (P) => r.value ? L() : E())
1150
1150
  }, [
1151
1151
  j(N, {
1152
1152
  name: "system-search",
1153
1153
  type: "symbol",
1154
1154
  size: 14
1155
1155
  })
1156
- ], 40, Ha)) : x("", !0),
1157
- m.value ? (i(), r("div", {
1156
+ ], 40, Ua)) : x("", !0),
1157
+ m.value ? (i(), s("div", {
1158
1158
  key: 1,
1159
- class: y(d.value),
1159
+ class: y(f.value),
1160
1160
  onKeydown: I(L, ["esc"])
1161
1161
  }, [
1162
1162
  j(Ie, {
@@ -1167,17 +1167,17 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1167
1167
  label: e.label,
1168
1168
  disabled: e.disabled,
1169
1169
  debounce: e.debounce,
1170
- class: y(f.value ? "" : "w-48"),
1171
- "onUpdate:modelValue": $[2] || ($[2] = (P) => a("update:modelValue", P)),
1172
- onSearch: $[3] || ($[3] = (P) => a("search", P))
1170
+ class: y(d.value ? "" : "w-48"),
1171
+ "onUpdate:modelValue": k[2] || (k[2] = (P) => a("update:modelValue", P)),
1172
+ onSearch: k[3] || (k[3] = (P) => a("search", P))
1173
1173
  }, null, 8, ["model-value", "placeholder", "label", "disabled", "debounce", "class"])
1174
1174
  ], 34)) : x("", !0)
1175
1175
  ], 32));
1176
1176
  }
1177
- }), Ka = ["type", "disabled"], Wa = {
1177
+ }), Wa = ["type", "disabled"], Ga = {
1178
1178
  key: 0,
1179
1179
  class: "w-4 h-4 animate-spin rounded-full border-2 border-current border-t-transparent"
1180
- }, Ga = ["src", "alt"], Qa = { key: 2 }, Ya = ["src", "alt"], Xa = /* @__PURE__ */ D({
1180
+ }, Qa = ["src", "alt"], Ya = { key: 2 }, Xa = ["src", "alt"], Ja = /* @__PURE__ */ D({
1181
1181
  __name: "ActionButton",
1182
1182
  props: {
1183
1183
  label: {},
@@ -1197,19 +1197,19 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1197
1197
  emits: ["click"],
1198
1198
  setup(e, { emit: n }) {
1199
1199
  const t = e, a = n, l = {
1200
- primary: "bg-primary dark:bg-primary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-primary/90 dark:hover:bg-primary-dark/90",
1201
- secondary: "bg-secondary dark:bg-secondary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-secondary/80 dark:hover:bg-secondary-dark/80",
1202
- danger: "bg-status-error dark:bg-status-error-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-status-error/90 dark:hover:bg-status-error-dark/90"
1200
+ primary: "bg-primary text-tx-on-primary hover:bg-primary/90",
1201
+ secondary: "bg-secondary text-tx-on-primary hover:bg-secondary/80",
1202
+ danger: "bg-status-error text-tx-on-primary hover:bg-status-error/90"
1203
1203
  }, o = {
1204
1204
  sm: "px-2 py-1 text-xs",
1205
1205
  md: "px-3 py-1 text-sm",
1206
1206
  lg: "px-4 py-2 text-base"
1207
- }, s = (u) => {
1207
+ }, r = (u) => {
1208
1208
  t.stopPropagation && u.stopPropagation(), t.preventDefault && u.preventDefault(), !t.disabled && !t.loading && a("click");
1209
1209
  };
1210
- return (u, f) => (i(), r("button", {
1210
+ return (u, d) => (i(), s("button", {
1211
1211
  type: t.type,
1212
- onClick: s,
1212
+ onClick: r,
1213
1213
  class: y(["rounded-corner transition-[background-color,opacity] duration-200 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2", [
1214
1214
  l[t.variant],
1215
1215
  o[t.size],
@@ -1219,28 +1219,28 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1219
1219
  ]]),
1220
1220
  disabled: t.disabled || t.loading
1221
1221
  }, [
1222
- e.loading ? (i(), r("span", Wa)) : x("", !0),
1223
- t.iconSrc && !t.iconRight ? (i(), r("img", {
1222
+ e.loading ? (i(), s("span", Ga)) : x("", !0),
1223
+ t.iconSrc && !t.iconRight ? (i(), s("img", {
1224
1224
  key: 1,
1225
1225
  src: t.iconSrc,
1226
1226
  alt: t.iconAlt || t.label,
1227
1227
  class: "w-4 h-4"
1228
- }, null, 8, Ga)) : x("", !0),
1229
- t.label ? (i(), r("span", Qa, V(t.label), 1)) : x("", !0),
1230
- t.iconSrc && t.iconRight ? (i(), r("img", {
1228
+ }, null, 8, Qa)) : x("", !0),
1229
+ t.label ? (i(), s("span", Ya, V(t.label), 1)) : x("", !0),
1230
+ t.iconSrc && t.iconRight ? (i(), s("img", {
1231
1231
  key: 3,
1232
1232
  src: t.iconSrc,
1233
1233
  alt: t.iconAlt || t.label,
1234
1234
  class: "w-4 h-4"
1235
- }, null, 8, Ya)) : x("", !0)
1236
- ], 10, Ka));
1235
+ }, null, 8, Xa)) : x("", !0)
1236
+ ], 10, Wa));
1237
1237
  }
1238
1238
  }), Oe = (e, n) => {
1239
1239
  const t = e.__vccOpts || e;
1240
1240
  for (const [a, l] of n)
1241
1241
  t[a] = l;
1242
1242
  return t;
1243
- }, Ja = /* @__PURE__ */ Oe(Xa, [["__scopeId", "data-v-3c1bd6bd"]]), ot = {
1243
+ }, Za = /* @__PURE__ */ Oe(Ja, [["__scopeId", "data-v-69cf4563"]]), ot = {
1244
1244
  info: "border-ui-border bg-ui-surface/70 text-tx-main",
1245
1245
  success: "border-status-success/40 bg-status-success/10 text-tx-main",
1246
1246
  warning: "border-status-warning/40 bg-status-warning/10 text-tx-main",
@@ -1249,13 +1249,13 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1249
1249
  function it(e) {
1250
1250
  return e === "error" ? "alert" : "status";
1251
1251
  }
1252
- const Za = ["role"], _a = {
1252
+ const _a = ["role"], en = {
1253
1253
  key: 0,
1254
1254
  class: "mt-0.5"
1255
- }, en = { class: "min-w-0 flex-1" }, tn = {
1255
+ }, tn = { class: "min-w-0 flex-1" }, an = {
1256
1256
  key: 0,
1257
1257
  class: "font-semibold"
1258
- }, an = /* @__PURE__ */ D({
1258
+ }, nn = /* @__PURE__ */ D({
1259
1259
  __name: "AlertMessage",
1260
1260
  props: {
1261
1261
  tone: { default: "info" },
@@ -1265,12 +1265,12 @@ const Za = ["role"], _a = {
1265
1265
  },
1266
1266
  setup(e) {
1267
1267
  const n = e, t = v(() => ot[n.tone]), a = v(() => it(n.tone));
1268
- return (l, o) => (i(), r("div", {
1268
+ return (l, o) => (i(), s("div", {
1269
1269
  role: a.value,
1270
1270
  "aria-atomic": "true",
1271
1271
  class: y(["flex gap-3 rounded-corner border px-4 py-2 text-sm", t.value])
1272
1272
  }, [
1273
- e.icon ? (i(), r("span", _a, [
1273
+ e.icon ? (i(), s("span", en, [
1274
1274
  j(N, {
1275
1275
  name: e.icon,
1276
1276
  type: e.iconType,
@@ -1278,20 +1278,20 @@ const Za = ["role"], _a = {
1278
1278
  alt: ""
1279
1279
  }, null, 8, ["name", "type"])
1280
1280
  ])) : x("", !0),
1281
- B("div", en, [
1282
- e.title ? (i(), r("p", tn, V(e.title), 1)) : x("", !0),
1281
+ B("div", tn, [
1282
+ e.title ? (i(), s("p", an, V(e.title), 1)) : x("", !0),
1283
1283
  B("div", {
1284
1284
  class: y(e.title ? "mt-1" : "")
1285
1285
  }, [
1286
1286
  S(l.$slots, "default")
1287
1287
  ], 2)
1288
1288
  ])
1289
- ], 10, Za));
1289
+ ], 10, _a));
1290
1290
  }
1291
- }), nn = { class: "font-medium text-sm text-tx-main" }, ln = {
1291
+ }), ln = { class: "font-medium text-sm text-tx-main" }, on = {
1292
1292
  key: 0,
1293
1293
  class: "text-sm text-tx-muted"
1294
- }, on = /* @__PURE__ */ D({
1294
+ }, sn = /* @__PURE__ */ D({
1295
1295
  __name: "EmptyState",
1296
1296
  props: {
1297
1297
  title: {},
@@ -1301,7 +1301,7 @@ const Za = ["role"], _a = {
1301
1301
  bordered: { type: Boolean, default: !1 }
1302
1302
  },
1303
1303
  setup(e) {
1304
- return (n, t) => (i(), r("div", {
1304
+ return (n, t) => (i(), s("div", {
1305
1305
  class: y(["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" : ""])
1306
1306
  }, [
1307
1307
  j(N, {
@@ -1310,19 +1310,19 @@ const Za = ["role"], _a = {
1310
1310
  size: 48,
1311
1311
  class: "opacity-60"
1312
1312
  }, null, 8, ["name", "type"]),
1313
- B("p", nn, V(e.title), 1),
1314
- e.note ? (i(), r("p", ln, V(e.note), 1)) : x("", !0),
1313
+ B("p", ln, V(e.title), 1),
1314
+ e.note ? (i(), s("p", on, V(e.note), 1)) : x("", !0),
1315
1315
  S(n.$slots, "default")
1316
1316
  ], 2));
1317
1317
  }
1318
- }), rn = { class: "text-sm text-tx-muted" }, sn = /* @__PURE__ */ D({
1318
+ }), rn = { class: "text-sm text-tx-muted" }, un = /* @__PURE__ */ D({
1319
1319
  __name: "LoadingState",
1320
1320
  props: {
1321
1321
  label: {},
1322
1322
  bordered: { type: Boolean, default: !1 }
1323
1323
  },
1324
1324
  setup(e) {
1325
- return (n, t) => (i(), r("div", {
1325
+ return (n, t) => (i(), s("div", {
1326
1326
  role: "status",
1327
1327
  "aria-atomic": "true",
1328
1328
  class: y(["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" : ""])
@@ -1331,7 +1331,7 @@ const Za = ["role"], _a = {
1331
1331
  B("p", rn, V(e.label), 1)
1332
1332
  ], 2));
1333
1333
  }
1334
- }), un = ["role"], cn = /* @__PURE__ */ D({
1334
+ }), cn = ["role"], dn = /* @__PURE__ */ D({
1335
1335
  __name: "ToastArea",
1336
1336
  props: {
1337
1337
  toasts: {},
@@ -1345,7 +1345,7 @@ const Za = ["role"], _a = {
1345
1345
  B("div", {
1346
1346
  class: y(["pointer-events-none fixed z-60 flex flex-col gap-2", t.value])
1347
1347
  }, [
1348
- j(kt, {
1348
+ j($t, {
1349
1349
  "enter-active-class": "transition-all duration-300 ease-out",
1350
1350
  "leave-active-class": "transition-all duration-200 ease-in",
1351
1351
  "enter-from-class": "translate-y-2 opacity-0",
@@ -1353,26 +1353,26 @@ const Za = ["role"], _a = {
1353
1353
  "move-class": "transition-transform duration-300"
1354
1354
  }, {
1355
1355
  default: G(() => [
1356
- (i(!0), r(te, null, ue(e.toasts, (o) => (i(), r("div", {
1356
+ (i(!0), s(te, null, ce(e.toasts, (o) => (i(), s("div", {
1357
1357
  key: o.id,
1358
1358
  role: F(it)(o.tone ?? "info"),
1359
1359
  "aria-atomic": "true",
1360
1360
  class: y(["pointer-events-auto rounded-corner border px-4 py-2 text-sm shadow-lg backdrop-blur-sm", F(ot)[o.tone ?? "info"]])
1361
1361
  }, [
1362
1362
  S(a.$slots, "default", { aviso: o }, () => [
1363
- ke(V(o.message), 1)
1363
+ $e(V(o.message), 1)
1364
1364
  ])
1365
- ], 10, un))), 128))
1365
+ ], 10, cn))), 128))
1366
1366
  ]),
1367
1367
  _: 3
1368
1368
  })
1369
1369
  ], 2)
1370
1370
  ]));
1371
1371
  }
1372
- }), dn = ["aria-label", "aria-valuenow"], fn = {
1372
+ }), fn = ["aria-label", "aria-valuenow"], mn = {
1373
1373
  key: 1,
1374
1374
  class: "h-full w-full animate-pulse rounded-corner bg-primary motion-reduce:animate-none motion-reduce:bg-primary/40"
1375
- }, mn = /* @__PURE__ */ D({
1375
+ }, bn = /* @__PURE__ */ D({
1376
1376
  __name: "ProgressBar",
1377
1377
  props: {
1378
1378
  value: {},
@@ -1387,7 +1387,7 @@ const Za = ["role"], _a = {
1387
1387
  }, a = v(
1388
1388
  () => n.value === null ? null : Math.max(0, Math.min(100, n.value))
1389
1389
  );
1390
- return (l, o) => (i(), r("div", {
1390
+ return (l, o) => (i(), s("div", {
1391
1391
  role: "progressbar",
1392
1392
  "aria-label": e.label,
1393
1393
  "aria-valuenow": a.value ?? void 0,
@@ -1395,46 +1395,46 @@ const Za = ["role"], _a = {
1395
1395
  "aria-valuemax": "100",
1396
1396
  class: "h-2 w-full overflow-hidden rounded-corner bg-ui-surface/70"
1397
1397
  }, [
1398
- a.value !== null ? (i(), r("div", {
1398
+ a.value !== null ? (i(), s("div", {
1399
1399
  key: 0,
1400
1400
  class: y(["h-full rounded-corner transition-[width] duration-300 ease-out", t[e.tone]]),
1401
1401
  style: fe({ width: `${a.value}%` })
1402
- }, null, 6)) : (i(), r("div", fn))
1403
- ], 8, dn));
1402
+ }, null, 6)) : (i(), s("div", mn))
1403
+ ], 8, fn));
1404
1404
  }
1405
- }), bn = /[/\-_.]/;
1405
+ }), vn = /[/\-_.]/;
1406
1406
  function Le(e, n) {
1407
1407
  if (!n) return 100;
1408
1408
  const t = n.toLowerCase();
1409
- return t === e ? 0 : t.startsWith(e) ? 10 : t.split(bn).some((a) => a.startsWith(e)) ? 30 : t.includes(e) ? 40 : 100;
1409
+ return t === e ? 0 : t.startsWith(e) ? 10 : t.split(vn).some((a) => a.startsWith(e)) ? 30 : t.includes(e) ? 40 : 100;
1410
1410
  }
1411
- function vn(e, n) {
1411
+ function pn(e, n) {
1412
1412
  const t = n.trim().toLowerCase();
1413
1413
  if (!t) return e;
1414
1414
  const a = [];
1415
1415
  for (let l = 0; l < e.length; l++) {
1416
- const o = e[l], s = Le(t, o.valor), u = Le(t, o.etiqueta), f = u === 10 ? 20 : u, d = Le(t, o.detalle) === 100 ? 100 : 40, E = Math.min(s, f, d);
1416
+ const o = e[l], r = Le(t, o.valor), u = Le(t, o.etiqueta), d = u === 10 ? 20 : u, f = Le(t, o.detalle) === 100 ? 100 : 40, E = Math.min(r, d, f);
1417
1417
  E !== 100 && a.push({ opcion: o, rango: E, orden: l });
1418
1418
  }
1419
1419
  return a.sort((l, o) => l.rango - o.rango || l.orden - o.orden), a.map((l) => l.opcion);
1420
1420
  }
1421
1421
  let Ue = 0;
1422
- function pn() {
1422
+ function yn() {
1423
1423
  return Ue += 1, `vsk-lista-${Ue}`;
1424
1424
  }
1425
- const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 flex-1 truncate" }, hn = {
1425
+ const gn = ["disabled", "aria-label", "aria-expanded"], hn = { class: "min-w-0 flex-1 truncate" }, xn = {
1426
1426
  key: 0,
1427
1427
  class: "ml-2 text-tx-muted text-xs"
1428
- }, xn = { class: "border-ui-border border-b p-2" }, wn = ["id"], kn = {
1428
+ }, wn = { class: "border-ui-border border-b p-2" }, $n = ["id"], kn = {
1429
1429
  key: 0,
1430
1430
  class: "p-3 text-center text-tx-muted text-xs"
1431
- }, $n = ["id", "data-indice", "aria-selected"], Cn = { class: "min-w-0 flex-1 truncate" }, zn = {
1431
+ }, Cn = ["id", "data-indice", "aria-selected"], zn = { class: "min-w-0 flex-1 truncate" }, En = {
1432
1432
  key: 0,
1433
1433
  class: "shrink-0 text-tx-muted text-xs"
1434
- }, En = {
1434
+ }, Ln = {
1435
1435
  key: 1,
1436
1436
  class: "px-2 py-1 text-tx-muted text-xs"
1437
- }, Ln = /* @__PURE__ */ D({
1437
+ }, Dn = /* @__PURE__ */ D({
1438
1438
  __name: "SearchSelect",
1439
1439
  props: {
1440
1440
  modelValue: {},
@@ -1449,10 +1449,10 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1449
1449
  },
1450
1450
  emits: ["update:modelValue"],
1451
1451
  setup(e, { emit: n }) {
1452
- const t = e, a = n, l = w(""), o = w(!1), s = w(0), u = w(null), f = w(null), m = w(null), d = pn(), E = v(
1452
+ const t = e, a = n, l = w(""), o = w(!1), r = w(0), u = w(null), d = w(null), m = w(null), f = yn(), E = v(
1453
1453
  () => t.options.find((T) => T.valor === t.modelValue) ?? null
1454
- ), L = v(() => vn(t.options, l.value)), A = v(() => L.value.slice(0, t.limit)), g = v(() => Math.max(0, L.value.length - t.limit)), $ = v(
1455
- () => A.value.length > 0 ? `${d}-${s.value}` : void 0
1454
+ ), L = v(() => pn(t.options, l.value)), A = v(() => L.value.slice(0, t.limit)), g = v(() => Math.max(0, L.value.length - t.limit)), k = v(
1455
+ () => A.value.length > 0 ? `${f}-${r.value}` : void 0
1456
1456
  );
1457
1457
  function P(T) {
1458
1458
  a("update:modelValue", T), h();
@@ -1460,17 +1460,17 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1460
1460
  async function C() {
1461
1461
  o.value = !0;
1462
1462
  const T = A.value.findIndex((z) => z.valor === t.modelValue);
1463
- s.value = T >= 0 ? T : 0, await J(), m.value?.enfocar(), K();
1463
+ r.value = T >= 0 ? T : 0, await J(), m.value?.enfocar(), K();
1464
1464
  }
1465
1465
  function h(T = !0) {
1466
- o.value && (o.value = !1, l.value = "", T && J(() => f.value?.focus()));
1466
+ o.value && (o.value = !1, l.value = "", T && J(() => d.value?.focus()));
1467
1467
  }
1468
1468
  function c(T) {
1469
1469
  const z = A.value.length;
1470
- z !== 0 && (s.value = (s.value + T + z) % z, K());
1470
+ z !== 0 && (r.value = (r.value + T + z) % z, K());
1471
1471
  }
1472
1472
  function b(T) {
1473
- s.value = T, K();
1473
+ r.value = T, K();
1474
1474
  }
1475
1475
  function p(T) {
1476
1476
  const z = T.target?.closest?.("[data-indice]");
@@ -1482,17 +1482,17 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1482
1482
  const z = p(T), O = z === null ? void 0 : A.value[z];
1483
1483
  O && P(O.valor);
1484
1484
  }
1485
- function le(T) {
1485
+ function oe(T) {
1486
1486
  const z = p(T);
1487
- z !== null && (s.value = z);
1487
+ z !== null && (r.value = z);
1488
1488
  }
1489
1489
  function K() {
1490
1490
  J(() => {
1491
- u.value?.querySelector(`[data-indice="${s.value}"]`)?.scrollIntoView({ block: "nearest" });
1491
+ u.value?.querySelector(`[data-indice="${r.value}"]`)?.scrollIntoView({ block: "nearest" });
1492
1492
  });
1493
1493
  }
1494
- function oe() {
1495
- const T = A.value[s.value];
1494
+ function ie() {
1495
+ const T = A.value[r.value];
1496
1496
  T && P(T.valor);
1497
1497
  }
1498
1498
  Q(
@@ -1501,19 +1501,19 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1501
1501
  T && h(!1);
1502
1502
  }
1503
1503
  ), Q(l, () => {
1504
- s.value = 0, K();
1504
+ r.value = 0, K();
1505
1505
  });
1506
1506
  function Y(T) {
1507
1507
  const z = T.relatedTarget;
1508
1508
  z && T.currentTarget.contains(z) || h(!1);
1509
1509
  }
1510
- return (T, z) => (i(), r("div", {
1510
+ return (T, z) => (i(), s("div", {
1511
1511
  class: "relative",
1512
1512
  onFocusout: Y
1513
1513
  }, [
1514
1514
  B("button", {
1515
1515
  ref_key: "boton",
1516
- ref: f,
1516
+ ref: d,
1517
1517
  type: "button",
1518
1518
  disabled: e.disabled,
1519
1519
  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",
@@ -1526,9 +1526,9 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1526
1526
  z[2] || (z[2] = I(M((O) => o.value ? c(-1) : C(), ["prevent"]), ["up"]))
1527
1527
  ]
1528
1528
  }, [
1529
- B("span", gn, [
1530
- ke(V(E.value?.etiqueta ?? e.placeholder) + " ", 1),
1531
- E.value?.detalle ? (i(), r("span", hn, V(E.value.detalle), 1)) : x("", !0)
1529
+ B("span", hn, [
1530
+ $e(V(E.value?.etiqueta ?? e.placeholder) + " ", 1),
1531
+ E.value?.detalle ? (i(), s("span", xn, V(E.value.detalle), 1)) : x("", !0)
1532
1532
  ]),
1533
1533
  j(N, {
1534
1534
  name: "go-down",
@@ -1536,8 +1536,8 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1536
1536
  size: 12,
1537
1537
  class: "shrink-0 opacity-60"
1538
1538
  })
1539
- ], 40, yn),
1540
- o.value ? (i(), r("div", {
1539
+ ], 40, gn),
1540
+ o.value ? (i(), s("div", {
1541
1541
  key: 0,
1542
1542
  class: y(["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"]),
1543
1543
  onKeydown: [
@@ -1546,13 +1546,13 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1546
1546
  z[6] || (z[6] = I(M((O) => c(-1), ["prevent"]), ["up"])),
1547
1547
  z[7] || (z[7] = I(M((O) => b(0), ["prevent"]), ["home"])),
1548
1548
  z[8] || (z[8] = I(M((O) => b(A.value.length - 1), ["prevent"]), ["end"])),
1549
- z[9] || (z[9] = I(M((O) => oe(), ["prevent"]), ["enter"])),
1549
+ z[9] || (z[9] = I(M((O) => ie(), ["prevent"]), ["enter"])),
1550
1550
  z[10] || (z[10] = I((O) => h(!1), ["tab"]))
1551
1551
  ],
1552
1552
  onClick: R,
1553
- onMousemove: le
1553
+ onMousemove: oe
1554
1554
  }, [
1555
- B("div", xn, [
1555
+ B("div", wn, [
1556
1556
  j(Ie, {
1557
1557
  ref_key: "campo",
1558
1558
  ref: m,
@@ -1560,39 +1560,39 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1560
1560
  "onUpdate:modelValue": z[3] || (z[3] = (O) => l.value = O),
1561
1561
  label: e.label,
1562
1562
  placeholder: e.searchPlaceholder,
1563
- "listbox-id": F(d),
1564
- "active-option-id": $.value,
1563
+ "listbox-id": F(f),
1564
+ "active-option-id": k.value,
1565
1565
  expanded: o.value
1566
1566
  }, null, 8, ["modelValue", "label", "placeholder", "listbox-id", "active-option-id", "expanded"])
1567
1567
  ]),
1568
1568
  B("ul", {
1569
- id: F(d),
1569
+ id: F(f),
1570
1570
  ref_key: "lista",
1571
1571
  ref: u,
1572
1572
  role: "listbox",
1573
1573
  class: "max-h-56 overflow-y-auto p-1"
1574
1574
  }, [
1575
- A.value.length === 0 ? (i(), r("li", kn, V(e.emptyText), 1)) : x("", !0),
1576
- (i(!0), r(te, null, ue(A.value, (O, de) => (i(), r("li", {
1577
- id: `${F(d)}-${de}`,
1575
+ A.value.length === 0 ? (i(), s("li", kn, V(e.emptyText), 1)) : x("", !0),
1576
+ (i(!0), s(te, null, ce(A.value, (O, de) => (i(), s("li", {
1577
+ id: `${F(f)}-${de}`,
1578
1578
  key: O.valor,
1579
1579
  "data-indice": de,
1580
1580
  role: "option",
1581
1581
  "aria-selected": O.valor === e.modelValue,
1582
1582
  class: y(["flex cursor-pointer items-baseline gap-2 rounded-corner px-2 py-1 text-sm", [
1583
- de === s.value ? "bg-ui-surface" : "",
1583
+ de === r.value ? "bg-ui-surface" : "",
1584
1584
  O.valor === e.modelValue ? "font-medium text-primary" : "text-tx-main"
1585
1585
  ]])
1586
1586
  }, [
1587
- B("span", Cn, V(O.etiqueta), 1),
1588
- O.detalle ? (i(), r("span", zn, V(O.detalle), 1)) : x("", !0)
1589
- ], 10, $n))), 128)),
1590
- g.value > 0 ? (i(), r("li", En, "+" + V(g.value), 1)) : x("", !0)
1591
- ], 8, wn)
1587
+ B("span", zn, V(O.etiqueta), 1),
1588
+ O.detalle ? (i(), s("span", En, V(O.detalle), 1)) : x("", !0)
1589
+ ], 10, Cn))), 128)),
1590
+ g.value > 0 ? (i(), s("li", Ln, "+" + V(g.value), 1)) : x("", !0)
1591
+ ], 8, $n)
1592
1592
  ], 34)) : x("", !0)
1593
1593
  ], 32));
1594
1594
  }
1595
- }), Dn = { class: "text-base font-semibold m-0 text-primary dark:text-primary-dark" }, Tn = /* @__PURE__ */ D({
1595
+ }), Tn = { class: "text-base font-semibold m-0 text-primary" }, An = /* @__PURE__ */ D({
1596
1596
  __name: "ConfigSection",
1597
1597
  props: {
1598
1598
  title: {},
@@ -1600,26 +1600,26 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1600
1600
  customClass: { default: () => ({}) }
1601
1601
  },
1602
1602
  setup(e) {
1603
- return (n, t) => (i(), r("div", {
1603
+ return (n, t) => (i(), s("div", {
1604
1604
  class: y(["flex flex-col gap-4 p-4 background rounded-corner", e.customClass])
1605
1605
  }, [
1606
- B("h3", Dn, V(e.icon ? `${e.icon} ${e.title}` : e.title), 1),
1606
+ B("h3", Tn, V(e.icon ? `${e.icon} ${e.title}` : e.title), 1),
1607
1607
  S(n.$slots, "default", {}, void 0, !0)
1608
1608
  ], 2));
1609
1609
  }
1610
- }), An = /* @__PURE__ */ Oe(Tn, [["__scopeId", "data-v-45bd4eab"]]), Bn = ["role", "tabindex", "aria-label", "onKeydown"], Sn = { class: "flex items-center gap-3 flex-1 min-w-0" }, Mn = ["src", "alt"], Vn = { class: "min-w-0" }, In = { class: "font-semibold truncate" }, On = {
1610
+ }), Bn = /* @__PURE__ */ Oe(An, [["__scopeId", "data-v-47cb38fb"]]), Sn = ["role", "tabindex", "aria-label", "onKeydown"], Mn = { class: "flex items-center gap-3 flex-1 min-w-0" }, Vn = ["src", "alt"], In = { class: "min-w-0" }, On = { class: "font-semibold truncate" }, jn = {
1611
1611
  key: 0,
1612
1612
  class: "text-xs text-tx-muted truncate"
1613
- }, jn = {
1613
+ }, Pn = {
1614
1614
  key: 1,
1615
1615
  class: "text-xs text-tx-muted truncate"
1616
- }, Pn = {
1616
+ }, Rn = {
1617
1617
  key: 2,
1618
1618
  class: "text-xs text-tx-muted flex gap-3 mt-1 flex-wrap"
1619
- }, Rn = ["disabled"], Fn = {
1619
+ }, Fn = ["disabled"], Nn = {
1620
1620
  key: 1,
1621
1621
  class: "w-2 h-2 rounded-full bg-status-success"
1622
- }, Nn = /* @__PURE__ */ D({
1622
+ }, qn = /* @__PURE__ */ D({
1623
1623
  __name: "DeviceCard",
1624
1624
  props: {
1625
1625
  name: { default: "" },
@@ -1640,7 +1640,7 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1640
1640
  },
1641
1641
  emits: ["action", "click"],
1642
1642
  setup(e, { emit: n }) {
1643
- const t = e, a = (f) => typeof f == "string" ? "" : f.icon ?? "", l = (f) => typeof f == "string" ? f : f.text, o = n, s = () => {
1643
+ const t = e, a = (d) => typeof d == "string" ? "" : d.icon ?? "", l = (d) => typeof d == "string" ? d : d.text, o = n, r = () => {
1644
1644
  o("action");
1645
1645
  }, u = () => {
1646
1646
  t.clickable && o("click");
@@ -1649,7 +1649,7 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1649
1649
  t.icon && !t.name && console.warn(
1650
1650
  "[DeviceCard] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo."
1651
1651
  );
1652
- }), (f, m) => (i(), r("div", {
1652
+ }), (d, m) => (i(), s("div", {
1653
1653
  class: y(["flex items-center justify-between background rounded-corner border border-ui-border px-6 py-3 mb-4", [
1654
1654
  { "border-l-4 border-status-success": e.isConnected, "cursor-pointer": e.clickable },
1655
1655
  e.customClass
@@ -1663,52 +1663,52 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1663
1663
  I(M(u, ["self", "prevent"]), ["space"])
1664
1664
  ]
1665
1665
  }, [
1666
- B("div", Sn, [
1666
+ B("div", Mn, [
1667
1667
  e.name ? (i(), U(N, {
1668
1668
  key: 0,
1669
1669
  name: e.name,
1670
1670
  type: e.type,
1671
1671
  size: 28,
1672
1672
  alt: e.title
1673
- }, null, 8, ["name", "type", "alt"])) : (i(), r("img", {
1673
+ }, null, 8, ["name", "type", "alt"])) : (i(), s("img", {
1674
1674
  key: 1,
1675
1675
  src: e.icon,
1676
1676
  alt: e.title,
1677
1677
  class: "h-7 w-7 shrink-0"
1678
- }, null, 8, Mn)),
1679
- B("div", Vn, [
1680
- B("div", In, V(e.title), 1),
1681
- e.subtitle ? (i(), r("div", On, V(e.subtitle), 1)) : x("", !0),
1682
- e.metadata ? (i(), r("div", jn, V(e.metadata), 1)) : x("", !0),
1683
- e.extraInfo.length > 0 ? (i(), r("div", Pn, [
1684
- (i(!0), r(te, null, ue(e.extraInfo, (d, E) => (i(), r("span", {
1678
+ }, null, 8, Vn)),
1679
+ B("div", In, [
1680
+ B("div", On, V(e.title), 1),
1681
+ e.subtitle ? (i(), s("div", jn, V(e.subtitle), 1)) : x("", !0),
1682
+ e.metadata ? (i(), s("div", Pn, V(e.metadata), 1)) : x("", !0),
1683
+ e.extraInfo.length > 0 ? (i(), s("div", Rn, [
1684
+ (i(!0), s(te, null, ce(e.extraInfo, (f, E) => (i(), s("span", {
1685
1685
  key: E,
1686
1686
  class: "inline-flex items-center gap-1"
1687
1687
  }, [
1688
- a(d) ? (i(), U(N, {
1688
+ a(f) ? (i(), U(N, {
1689
1689
  key: 0,
1690
- name: a(d),
1690
+ name: a(f),
1691
1691
  type: "symbol",
1692
1692
  size: 14
1693
1693
  }, null, 8, ["name"])) : x("", !0),
1694
- ke(" " + V(l(d)), 1)
1694
+ $e(" " + V(l(f)), 1)
1695
1695
  ]))), 128))
1696
1696
  ])) : x("", !0)
1697
1697
  ])
1698
1698
  ]),
1699
- e.showActionButton ? (i(), r("button", {
1699
+ e.showActionButton ? (i(), s("button", {
1700
1700
  key: 0,
1701
1701
  type: "button",
1702
1702
  class: "bg-primary text-tx-on-primary rounded-corner px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70 disabled:opacity-50 disabled:cursor-not-allowed",
1703
1703
  disabled: e.isConnecting,
1704
- onClick: M(s, ["stop"])
1705
- }, V(e.isConnecting ? e.connectingLabel : e.actionLabel), 9, Rn)) : x("", !0),
1706
- e.showStatusIndicator && e.isConnected ? (i(), r("div", Fn)) : x("", !0)
1707
- ], 42, Bn));
1704
+ onClick: M(r, ["stop"])
1705
+ }, V(e.isConnecting ? e.connectingLabel : e.actionLabel), 9, Fn)) : x("", !0),
1706
+ e.showStatusIndicator && e.isConnected ? (i(), s("div", Nn)) : x("", !0)
1707
+ ], 42, Sn));
1708
1708
  }
1709
- }), rt = /* @__PURE__ */ Symbol("diálogo de vasak");
1710
- function st() {
1711
- const e = we(rt, null);
1709
+ }), st = /* @__PURE__ */ Symbol("diálogo de vasak");
1710
+ function rt() {
1711
+ const e = we(st, null);
1712
1712
  if (e) return e;
1713
1713
  const n = w(!1);
1714
1714
  return {
@@ -1722,10 +1722,10 @@ function st() {
1722
1722
  };
1723
1723
  }
1724
1724
  let Ke = 0;
1725
- function qn() {
1725
+ function Hn() {
1726
1726
  return Ke += 1, `vsk-dialogo-titulo-${Ke}`;
1727
1727
  }
1728
- const Hn = /* @__PURE__ */ D({
1728
+ const Un = /* @__PURE__ */ D({
1729
1729
  __name: "Dialog",
1730
1730
  props: {
1731
1731
  open: { type: Boolean, default: !1 }
@@ -1733,19 +1733,19 @@ const Hn = /* @__PURE__ */ D({
1733
1733
  emits: ["update:open"],
1734
1734
  setup(e, { emit: n }) {
1735
1735
  const t = e, a = n, l = w(null);
1736
- return ye(rt, {
1736
+ return ye(st, {
1737
1737
  abierto: v(() => t.open),
1738
1738
  cerrar: () => a("update:open", !1),
1739
1739
  idDelTitulo: l,
1740
1740
  ponerElTitulo: (o) => {
1741
1741
  l.value = o;
1742
1742
  }
1743
- }), (o, s) => S(o.$slots, "default");
1743
+ }), (o, r) => S(o.$slots, "default");
1744
1744
  }
1745
- }), Un = {
1745
+ }), Kn = {
1746
1746
  key: 0,
1747
- class: "absolute inset-0 rounded-corner-window bg-ui-border-dark/40"
1748
- }, Kn = ["aria-labelledby", "aria-label"], Wn = "relative z-10 w-full rounded-corner border border-ui-border bg-ui-bg/80 p-6 text-tx-main shadow-lg", Gn = /* @__PURE__ */ D({
1747
+ class: "absolute inset-0 rounded-corner-window bg-ui-border/40"
1748
+ }, Wn = ["aria-labelledby", "aria-label"], Gn = "relative z-10 w-full rounded-corner border border-ui-border bg-ui-bg/80 p-6 text-tx-main shadow-lg", Qn = /* @__PURE__ */ D({
1749
1749
  inheritAttrs: !1,
1750
1750
  __name: "DialogContent",
1751
1751
  props: {
@@ -1756,14 +1756,14 @@ const Hn = /* @__PURE__ */ D({
1756
1756
  const n = e, t = Be(), a = v(() => t.class ?? ""), l = v(() => {
1757
1757
  const { class: C, ...h } = t;
1758
1758
  return h;
1759
- }), o = v(() => n.size === "full" ? "relative z-10 h-full w-full overflow-hidden rounded-corner-window text-tx-main" : `${Wn} ${n.size === "lg" ? "max-w-2xl" : "max-w-lg"}`), s = st(), u = v(() => s.abierto.value), f = w(null), m = w(null);
1760
- let d = null;
1759
+ }), o = v(() => n.size === "full" ? "relative z-10 h-full w-full overflow-hidden rounded-corner-window text-tx-main" : `${Gn} ${n.size === "lg" ? "max-w-2xl" : "max-w-lg"}`), r = rt(), u = v(() => r.abierto.value), d = w(null), m = w(null);
1760
+ let f = null;
1761
1761
  function E() {
1762
1762
  return m.value ? [...m.value.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')] : [];
1763
1763
  }
1764
1764
  function L(C) {
1765
1765
  if (C.key === "Escape") {
1766
- s.cerrar();
1766
+ r.cerrar();
1767
1767
  return;
1768
1768
  }
1769
1769
  if (C.key !== "Tab") return;
@@ -1776,100 +1776,100 @@ const Hn = /* @__PURE__ */ D({
1776
1776
  C.shiftKey && (p === c || p === m.value) ? (C.preventDefault(), b.focus()) : !C.shiftKey && p === b && (C.preventDefault(), c.focus());
1777
1777
  }
1778
1778
  function A(C) {
1779
- C.target === C.currentTarget && s.cerrar();
1779
+ C.target === C.currentTarget && r.cerrar();
1780
1780
  }
1781
1781
  function g(C) {
1782
- f.value?.contains(C.target) || L(C);
1782
+ d.value?.contains(C.target) || L(C);
1783
1783
  }
1784
- function $() {
1784
+ function k() {
1785
1785
  document.removeEventListener("keydown", g);
1786
1786
  }
1787
1787
  function P() {
1788
- const C = d;
1789
- d = null, C?.isConnected && C.focus();
1788
+ const C = f;
1789
+ f = null, C?.isConnected && C.focus();
1790
1790
  }
1791
1791
  return Q(
1792
1792
  u,
1793
1793
  async (C) => {
1794
1794
  if (C) {
1795
- d = document.activeElement, document.addEventListener("keydown", g), await J(), m.value?.focus();
1795
+ f = document.activeElement, document.addEventListener("keydown", g), await J(), m.value?.focus();
1796
1796
  return;
1797
1797
  }
1798
- $(), P();
1798
+ k(), P();
1799
1799
  },
1800
1800
  // `watch` no corre para el valor inicial, y un diálogo se puede montar ya
1801
1801
  // abierto —una vista que arranca preguntando algo—. Sin esto, ése no recibe
1802
1802
  // el foco y ni Escape ni el Tab hacen nada: el `aria-modal` queda en promesa.
1803
1803
  { immediate: !0 }
1804
1804
  ), ve(() => {
1805
- $(), P();
1805
+ k(), P();
1806
1806
  }), (C, h) => (i(), U(ge, { to: "body" }, [
1807
- j($e, {
1807
+ j(ke, {
1808
1808
  "enter-active-class": "transition-opacity duration-200 ease-out",
1809
1809
  "leave-active-class": "transition-opacity duration-150 ease-in",
1810
1810
  "enter-from-class": "opacity-0",
1811
1811
  "leave-to-class": "opacity-0"
1812
1812
  }, {
1813
1813
  default: G(() => [
1814
- u.value ? (i(), r("div", {
1814
+ u.value ? (i(), s("div", {
1815
1815
  key: 0,
1816
1816
  ref_key: "velo",
1817
- ref: f,
1817
+ ref: d,
1818
1818
  class: "fixed inset-0 z-50 flex items-center justify-center",
1819
1819
  onClick: A,
1820
1820
  onKeydown: L
1821
1821
  }, [
1822
- n.size === "md" ? (i(), r("div", Un)) : x("", !0),
1823
- B("div", ce({
1822
+ n.size === "md" ? (i(), s("div", Kn)) : x("", !0),
1823
+ B("div", le({
1824
1824
  ref_key: "panel",
1825
1825
  ref: m,
1826
1826
  tabindex: "-1",
1827
1827
  role: "dialog",
1828
1828
  "aria-modal": "true",
1829
- "aria-labelledby": F(s).idDelTitulo.value ?? void 0,
1830
- "aria-label": F(s).idDelTitulo.value ? void 0 : e.ariaLabel
1829
+ "aria-labelledby": F(r).idDelTitulo.value ?? void 0,
1830
+ "aria-label": F(r).idDelTitulo.value ? void 0 : e.ariaLabel
1831
1831
  }, l.value, {
1832
1832
  class: [a.value, o.value]
1833
1833
  }), [
1834
1834
  S(C.$slots, "default")
1835
- ], 16, Kn)
1835
+ ], 16, Wn)
1836
1836
  ], 544)) : x("", !0)
1837
1837
  ]),
1838
1838
  _: 3
1839
1839
  })
1840
1840
  ]));
1841
1841
  }
1842
- }), Qn = { class: "text-sm text-tx-muted" }, Yn = /* @__PURE__ */ D({
1842
+ }), Yn = { class: "text-sm text-tx-muted" }, Xn = /* @__PURE__ */ D({
1843
1843
  __name: "DialogDescription",
1844
1844
  setup(e) {
1845
- return (n, t) => (i(), r("p", Qn, [
1845
+ return (n, t) => (i(), s("p", Yn, [
1846
1846
  S(n.$slots, "default")
1847
1847
  ]));
1848
1848
  }
1849
- }), Xn = { class: "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end" }, Jn = /* @__PURE__ */ D({
1849
+ }), Jn = { class: "flex flex-col-reverse gap-2 sm:flex-row sm:justify-end" }, Zn = /* @__PURE__ */ D({
1850
1850
  __name: "DialogFooter",
1851
1851
  setup(e) {
1852
- return (n, t) => (i(), r("div", Xn, [
1852
+ return (n, t) => (i(), s("div", Jn, [
1853
1853
  S(n.$slots, "default")
1854
1854
  ]));
1855
1855
  }
1856
- }), Zn = { class: "flex flex-col gap-1.5 text-center sm:text-left" }, _n = /* @__PURE__ */ D({
1856
+ }), _n = { class: "flex flex-col gap-1.5 text-center sm:text-left" }, el = /* @__PURE__ */ D({
1857
1857
  __name: "DialogHeader",
1858
1858
  setup(e) {
1859
- return (n, t) => (i(), r("div", Zn, [
1859
+ return (n, t) => (i(), s("div", _n, [
1860
1860
  S(n.$slots, "default")
1861
1861
  ]));
1862
1862
  }
1863
- }), el = ["id"], tl = /* @__PURE__ */ D({
1863
+ }), tl = ["id"], al = /* @__PURE__ */ D({
1864
1864
  __name: "DialogTitle",
1865
1865
  setup(e) {
1866
- const n = st(), t = qn();
1867
- return W(() => n.ponerElTitulo(t)), ve(() => n.ponerElTitulo(null)), (a, l) => (i(), r("h2", {
1866
+ const n = rt(), t = Hn();
1867
+ return W(() => n.ponerElTitulo(t)), ve(() => n.ponerElTitulo(null)), (a, l) => (i(), s("h2", {
1868
1868
  id: F(t),
1869
1869
  class: "font-semibold text-lg leading-none tracking-tight"
1870
1870
  }, [
1871
1871
  S(a.$slots, "default")
1872
- ], 8, el));
1872
+ ], 8, tl));
1873
1873
  }
1874
1874
  }), ut = /* @__PURE__ */ Symbol("menú de vasak");
1875
1875
  function Ce() {
@@ -1901,49 +1901,49 @@ let We = 0;
1901
1901
  function ct() {
1902
1902
  return We += 1, `vsk-menu-${We}`;
1903
1903
  }
1904
- const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
1904
+ const nl = { class: "relative inline-block" }, ll = /* @__PURE__ */ D({
1905
1905
  __name: "DropdownMenu",
1906
1906
  props: {
1907
1907
  open: { type: Boolean, default: void 0 }
1908
1908
  },
1909
1909
  emits: ["update:open"],
1910
1910
  setup(e, { emit: n }) {
1911
- const t = e, a = n, l = w(!1), o = w(null), s = w(null), u = w("ninguno"), f = ct();
1911
+ const t = e, a = n, l = w(!1), o = w(null), r = w(null), u = w("ninguno"), d = ct();
1912
1912
  let m = null;
1913
- const d = v({
1913
+ const f = v({
1914
1914
  get: () => t.open ?? l.value,
1915
1915
  set: (g) => {
1916
1916
  t.open === void 0 && (l.value = g), a("update:open", g);
1917
1917
  }
1918
1918
  });
1919
- Q(d, (g) => {
1919
+ Q(f, (g) => {
1920
1920
  if (g) {
1921
- const $ = document.activeElement;
1922
- m = $ instanceof HTMLElement ? $ : null;
1921
+ const k = document.activeElement;
1922
+ m = k instanceof HTMLElement ? k : null;
1923
1923
  } else
1924
1924
  u.value = "ninguno";
1925
1925
  });
1926
1926
  function E(g = "ninguno") {
1927
- u.value = g, d.value = !0;
1927
+ u.value = g, f.value = !0;
1928
1928
  }
1929
1929
  function L(g = {}) {
1930
- if (d.value = !1, !g.devolverElFoco) return;
1931
- const $ = m ?? o.value;
1932
- $?.isConnected && $.focus();
1930
+ if (f.value = !1, !g.devolverElFoco) return;
1931
+ const k = m ?? o.value;
1932
+ k?.isConnected && k.focus();
1933
1933
  }
1934
1934
  function A(g = "ninguno") {
1935
- if (d.value) {
1935
+ if (f.value) {
1936
1936
  L({ devolverElFoco: !0 });
1937
1937
  return;
1938
1938
  }
1939
1939
  E(g);
1940
1940
  }
1941
1941
  return ye(ut, {
1942
- abierto: d,
1943
- idDelMenu: f,
1944
- idDeLaEtiqueta: s,
1942
+ abierto: f,
1943
+ idDelMenu: d,
1944
+ idDeLaEtiqueta: r,
1945
1945
  ponerLaEtiqueta: (g) => {
1946
- s.value = g;
1946
+ r.value = g;
1947
1947
  },
1948
1948
  disparador: o,
1949
1949
  ponerElDisparador: (g) => {
@@ -1953,14 +1953,14 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
1953
1953
  abrir: E,
1954
1954
  cerrar: L,
1955
1955
  alternar: A
1956
- }), (g, $) => (i(), r("div", al, [
1956
+ }), (g, k) => (i(), s("div", nl, [
1957
1957
  S(g.$slots, "default")
1958
1958
  ]));
1959
1959
  }
1960
- }), ll = ["id", "aria-labelledby", "inert"], ol = {
1960
+ }), ol = ["id", "aria-labelledby", "inert"], il = {
1961
1961
  role: "none",
1962
1962
  class: "py-1"
1963
- }, Z = 8, il = /* @__PURE__ */ D({
1963
+ }, Z = 8, sl = /* @__PURE__ */ D({
1964
1964
  inheritAttrs: !1,
1965
1965
  __name: "DropdownMenuContent",
1966
1966
  props: {
@@ -1969,7 +1969,7 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
1969
1969
  sideOffset: { default: 4 }
1970
1970
  },
1971
1971
  setup(e) {
1972
- const n = e, t = Ce(), { idDelMenu: a, idDeLaEtiqueta: l } = t, o = v(() => t.disparador.value), s = v(() => t.abierto.value), u = w(null), f = w({
1972
+ const n = e, t = Ce(), { idDelMenu: a, idDeLaEtiqueta: l } = t, o = v(() => t.disparador.value), r = v(() => t.abierto.value), u = w(null), d = w({
1973
1973
  top: 0,
1974
1974
  left: 0,
1975
1975
  techo: null
@@ -1979,7 +1979,7 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
1979
1979
  left: "right",
1980
1980
  right: "left"
1981
1981
  };
1982
- function d(c, b) {
1982
+ function f(c, b) {
1983
1983
  const p = n.sideOffset + Z;
1984
1984
  switch (c) {
1985
1985
  case "bottom":
@@ -1997,10 +1997,10 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
1997
1997
  }
1998
1998
  function L() {
1999
1999
  if (!o.value || !u.value) return;
2000
- const c = o.value.getBoundingClientRect(), b = u.value.scrollHeight, p = u.value.offsetWidth, R = n.side === "top" || n.side === "bottom", le = R ? b : p;
2000
+ const c = o.value.getBoundingClientRect(), b = u.value.scrollHeight, p = u.value.offsetWidth, R = n.side === "top" || n.side === "bottom", oe = R ? b : p;
2001
2001
  let K = n.side;
2002
- const oe = d(K, c);
2003
- oe < le && d(m[K], c) > oe && (K = m[K]);
2002
+ const ie = f(K, c);
2003
+ ie < oe && f(m[K], c) > ie && (K = m[K]);
2004
2004
  let Y = 0, T = 0, z = null;
2005
2005
  switch (K) {
2006
2006
  case "bottom": {
@@ -2008,7 +2008,7 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2008
2008
  break;
2009
2009
  }
2010
2010
  case "top": {
2011
- z = Math.max(d("top", c), 0), Y = c.top - n.sideOffset - Math.min(b, z);
2011
+ z = Math.max(f("top", c), 0), Y = c.top - n.sideOffset - Math.min(b, z);
2012
2012
  break;
2013
2013
  }
2014
2014
  case "left":
@@ -2031,7 +2031,7 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2031
2031
  T = c.right - p;
2032
2032
  break;
2033
2033
  }
2034
- T = E(T, Z, window.innerWidth - p - Z), f.value = { top: Y, left: T, techo: z };
2034
+ T = E(T, Z, window.innerWidth - p - Z), d.value = { top: Y, left: T, techo: z };
2035
2035
  }
2036
2036
  function A() {
2037
2037
  return u.value ? Array.from(u.value.querySelectorAll('[role="menuitem"]')) : [];
@@ -2042,12 +2042,12 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2042
2042
  const p = b.length;
2043
2043
  b[(c % p + p) % p]?.focus();
2044
2044
  }
2045
- function $() {
2045
+ function k() {
2046
2046
  const c = document.activeElement;
2047
2047
  return c instanceof HTMLElement ? A().indexOf(c) : -1;
2048
2048
  }
2049
2049
  function P(c) {
2050
- const b = $();
2050
+ const b = k();
2051
2051
  switch (c.key) {
2052
2052
  case "ArrowDown":
2053
2053
  c.preventDefault(), g(b + 1);
@@ -2069,7 +2069,7 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2069
2069
  break;
2070
2070
  }
2071
2071
  }
2072
- Q(s, async (c) => {
2072
+ Q(r, async (c) => {
2073
2073
  if (c)
2074
2074
  switch (await J(), requestAnimationFrame(() => {
2075
2075
  L();
@@ -2088,7 +2088,7 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2088
2088
  }
2089
2089
  });
2090
2090
  function C(c) {
2091
- s.value && (c && u.value?.contains(c.target) || L());
2091
+ r.value && (c && u.value?.contains(c.target) || L());
2092
2092
  }
2093
2093
  function h(c) {
2094
2094
  const b = c.target, p = !!b.closest("[data-dropdown-content]"), R = !!o.value?.contains(b);
@@ -2099,7 +2099,7 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2099
2099
  }), pe(() => {
2100
2100
  document.removeEventListener("click", h), window.removeEventListener("resize", C), window.removeEventListener("scroll", C, !0);
2101
2101
  }), (c, b) => (i(), U(ge, { to: "body" }, [
2102
- j($e, {
2102
+ j(ke, {
2103
2103
  "enter-active-class": "transition-all duration-150 ease-in-out",
2104
2104
  "leave-active-class": "transition-all duration-150 ease-in-out",
2105
2105
  "enter-from-class": "opacity-0 scale-95",
@@ -2108,7 +2108,7 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2108
2108
  onLeave: b[2] || (b[2] = (p) => p.offsetHeight)
2109
2109
  }, {
2110
2110
  default: G(() => [
2111
- Se(B("div", ce({
2111
+ Se(B("div", le({
2112
2112
  ref_key: "contenido",
2113
2113
  ref: u
2114
2114
  }, c.$attrs, {
@@ -2117,12 +2117,12 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2117
2117
  tabindex: "-1",
2118
2118
  "aria-orientation": "vertical",
2119
2119
  "aria-labelledby": F(l) ?? void 0,
2120
- inert: !s.value,
2120
+ inert: !r.value,
2121
2121
  style: {
2122
2122
  position: "fixed",
2123
- top: `${f.value.top}px`,
2124
- left: `${f.value.left}px`,
2125
- maxHeight: f.value.techo === null ? void 0 : `${f.value.techo}px`,
2123
+ top: `${d.value.top}px`,
2124
+ left: `${d.value.left}px`,
2125
+ maxHeight: d.value.techo === null ? void 0 : `${d.value.techo}px`,
2126
2126
  overflowY: "auto",
2127
2127
  overscrollBehavior: "contain",
2128
2128
  zIndex: 50
@@ -2132,18 +2132,18 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2132
2132
  onClick: b[0] || (b[0] = (p) => p.stopPropagation()),
2133
2133
  onKeydown: P
2134
2134
  }), [
2135
- B("div", ol, [
2135
+ B("div", il, [
2136
2136
  S(c.$slots, "default")
2137
2137
  ])
2138
- ], 16, ll), [
2139
- [Ye, s.value]
2138
+ ], 16, ol), [
2139
+ [Ye, r.value]
2140
2140
  ])
2141
2141
  ]),
2142
2142
  _: 3
2143
2143
  })
2144
2144
  ]));
2145
2145
  }
2146
- }), rl = ["aria-disabled", "onKeydown"], sl = /* @__PURE__ */ D({
2146
+ }), rl = ["aria-disabled", "onKeydown"], ul = /* @__PURE__ */ D({
2147
2147
  __name: "DropdownMenuItem",
2148
2148
  props: {
2149
2149
  disabled: { type: Boolean, default: !1 }
@@ -2151,10 +2151,10 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2151
2151
  emits: ["select", "click"],
2152
2152
  setup(e, { emit: n }) {
2153
2153
  const t = e, a = n, l = Ce();
2154
- function o(s) {
2155
- t.disabled || (a("select"), a("click", s), l.cerrar({ devolverElFoco: !0 }));
2154
+ function o(r) {
2155
+ t.disabled || (a("select"), a("click", r), l.cerrar({ devolverElFoco: !0 }));
2156
2156
  }
2157
- return (s, u) => (i(), r("div", {
2157
+ return (r, u) => (i(), s("div", {
2158
2158
  role: "menuitem",
2159
2159
  tabindex: "0",
2160
2160
  "aria-disabled": e.disabled || void 0,
@@ -2171,10 +2171,10 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2171
2171
  I(M(o, ["prevent"]), ["space"])
2172
2172
  ]
2173
2173
  }, [
2174
- S(s.$slots, "default")
2174
+ S(r.$slots, "default")
2175
2175
  ], 42, rl));
2176
2176
  }
2177
- }), ul = /* @__PURE__ */ D({
2177
+ }), cl = /* @__PURE__ */ D({
2178
2178
  __name: "DropdownMenuLabel",
2179
2179
  setup(e) {
2180
2180
  const n = Ce(), t = `${ct()}-titulo`;
@@ -2182,7 +2182,7 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2182
2182
  n.ponerLaEtiqueta(t);
2183
2183
  }), pe(() => {
2184
2184
  n.ponerLaEtiqueta(null);
2185
- }), (a, l) => (i(), r("div", {
2185
+ }), (a, l) => (i(), s("div", {
2186
2186
  id: t,
2187
2187
  role: "presentation",
2188
2188
  class: "px-3 py-2 text-sm font-semibold text-tx-main"
@@ -2190,14 +2190,14 @@ const al = { class: "relative inline-block" }, nl = /* @__PURE__ */ D({
2190
2190
  S(a.$slots, "default")
2191
2191
  ]));
2192
2192
  }
2193
- }), cl = {
2193
+ }), dl = {
2194
2194
  role: "separator",
2195
2195
  "aria-orientation": "horizontal",
2196
2196
  class: "bg-ui-bg/80 my-4 h-0.5"
2197
- }, dl = /* @__PURE__ */ D({
2197
+ }, fl = /* @__PURE__ */ D({
2198
2198
  __name: "DropdownMenuSeparator",
2199
2199
  setup(e) {
2200
- return (n, t) => (i(), r("div", cl));
2200
+ return (n, t) => (i(), s("div", dl));
2201
2201
  }
2202
2202
  });
2203
2203
  function dt(e) {
@@ -2208,12 +2208,12 @@ function dt(e) {
2208
2208
  const t = n[0];
2209
2209
  return t.type === te && Array.isArray(t.children) ? dt(t.children) : t;
2210
2210
  }
2211
- function fl(e) {
2211
+ function ml(e) {
2212
2212
  if (e instanceof HTMLElement) return e;
2213
2213
  const n = e?.$el;
2214
2214
  return n instanceof HTMLElement ? n : null;
2215
2215
  }
2216
- const ml = D({
2216
+ const bl = D({
2217
2217
  name: "DropdownMenuTrigger",
2218
2218
  inheritAttrs: !1,
2219
2219
  props: {
@@ -2225,33 +2225,33 @@ const ml = D({
2225
2225
  setup(e, { slots: n, attrs: t }) {
2226
2226
  const a = Ce(), l = w(null);
2227
2227
  function o() {
2228
- a.ponerElDisparador(fl(l.value));
2228
+ a.ponerElDisparador(ml(l.value));
2229
2229
  }
2230
- function s() {
2230
+ function r() {
2231
2231
  e.disabled || (o(), a.alternar());
2232
2232
  }
2233
- function u(f) {
2233
+ function u(d) {
2234
2234
  if (!e.disabled)
2235
- switch (f.key) {
2235
+ switch (d.key) {
2236
2236
  case "Enter":
2237
2237
  case " ":
2238
- f.preventDefault(), o(), a.alternar("primero");
2238
+ d.preventDefault(), o(), a.alternar("primero");
2239
2239
  break;
2240
2240
  case "ArrowDown":
2241
- f.preventDefault(), o(), a.abrir("primero");
2241
+ d.preventDefault(), o(), a.abrir("primero");
2242
2242
  break;
2243
2243
  case "ArrowUp":
2244
- f.preventDefault(), o(), a.abrir("ultimo");
2244
+ d.preventDefault(), o(), a.abrir("ultimo");
2245
2245
  break;
2246
2246
  case "Escape":
2247
- a.abierto.value && (f.preventDefault(), a.cerrar({ devolverElFoco: !0 }));
2247
+ a.abierto.value && (d.preventDefault(), a.cerrar({ devolverElFoco: !0 }));
2248
2248
  break;
2249
2249
  }
2250
2250
  }
2251
2251
  return () => {
2252
- const f = {
2253
- ref: (d) => {
2254
- l.value = d, o();
2252
+ const d = {
2253
+ ref: (f) => {
2254
+ l.value = f, o();
2255
2255
  },
2256
2256
  "aria-haspopup": "menu",
2257
2257
  "aria-expanded": a.abierto.value ? "true" : "false",
@@ -2259,21 +2259,21 @@ const ml = D({
2259
2259
  // a un elemento que el lector no expone —el menú cerrado está
2260
2260
  // `inert`— es una referencia rota.
2261
2261
  "aria-controls": a.abierto.value ? a.idDelMenu : void 0,
2262
- onClick: s,
2262
+ onClick: r,
2263
2263
  onKeydown: u
2264
2264
  }, m = n.default?.() ?? [];
2265
2265
  if (e.asChild) {
2266
- const d = dt(m);
2267
- if (d) return $t(d, { ...t, ...f });
2266
+ const f = dt(m);
2267
+ if (f) return kt(f, { ...t, ...d });
2268
2268
  }
2269
2269
  return Ct(
2270
2270
  "div",
2271
- { ...t, class: ["dropdown-menu-trigger inline-block", t.class], ...f },
2271
+ { ...t, class: ["dropdown-menu-trigger inline-block", t.class], ...d },
2272
2272
  m
2273
2273
  );
2274
2274
  };
2275
2275
  }
2276
- }), bl = ["for"], vl = /* @__PURE__ */ D({
2276
+ }), vl = ["for"], pl = /* @__PURE__ */ D({
2277
2277
  __name: "FormGroup",
2278
2278
  props: {
2279
2279
  label: {},
@@ -2282,18 +2282,18 @@ const ml = D({
2282
2282
  labelClass: { default: () => ({}) }
2283
2283
  },
2284
2284
  setup(e) {
2285
- return (n, t) => (i(), r("div", {
2285
+ return (n, t) => (i(), s("div", {
2286
2286
  class: y(["flex flex-col gap-2", e.customClass])
2287
2287
  }, [
2288
- e.label ? (i(), r("label", {
2288
+ e.label ? (i(), s("label", {
2289
2289
  key: 0,
2290
2290
  for: e.htmlFor,
2291
- class: y(["text-sm font-medium text-primary dark:text-primary-dark", e.labelClass])
2292
- }, V(e.label), 11, bl)) : x("", !0),
2291
+ class: y(["text-sm font-medium text-primary", e.labelClass])
2292
+ }, V(e.label), 11, vl)) : x("", !0),
2293
2293
  S(n.$slots, "default", {}, void 0, !0)
2294
2294
  ], 2));
2295
2295
  }
2296
- }), pl = /* @__PURE__ */ Oe(vl, [["__scopeId", "data-v-c0d9d9cb"]]), yl = ["role", "tabindex", "onKeydown"], gl = /* @__PURE__ */ D({
2296
+ }), yl = /* @__PURE__ */ Oe(pl, [["__scopeId", "data-v-3d9a65ce"]]), gl = ["role", "tabindex", "onKeydown"], hl = /* @__PURE__ */ D({
2297
2297
  __name: "ListCard",
2298
2298
  props: {
2299
2299
  clickable: { type: Boolean, default: !1 },
@@ -2304,7 +2304,7 @@ const ml = D({
2304
2304
  const t = e, a = n, l = () => {
2305
2305
  t.clickable && a("click");
2306
2306
  };
2307
- return (o, s) => (i(), r("div", {
2307
+ return (o, r) => (i(), s("div", {
2308
2308
  class: y([
2309
2309
  "flex items-center justify-between background p-3 rounded-corner border border-ui-border transition-colors duration-200",
2310
2310
  {
@@ -2321,12 +2321,12 @@ const ml = D({
2321
2321
  ]
2322
2322
  }, [
2323
2323
  S(o.$slots, "default")
2324
- ], 42, yl));
2324
+ ], 42, gl));
2325
2325
  }
2326
- }), hl = { class: "background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-[background-color] duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80" }, xl = ["title", "aria-label"], wl = ["src"], kl = {
2326
+ }), xl = { class: "background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-[background-color] duration-200 hover:bg-ui-surface/80" }, wl = ["title", "aria-label"], $l = ["src"], kl = {
2327
2327
  key: 1,
2328
2328
  class: "w-8 h-8 flex items-center justify-center"
2329
- }, $l = ["src"], Cl = ["min", "max", "value", "aria-label", "aria-valuetext"], zl = /* @__PURE__ */ D({
2329
+ }, Cl = ["src"], zl = ["min", "max", "value", "aria-label", "aria-valuetext"], El = /* @__PURE__ */ D({
2330
2330
  __name: "SliderControl",
2331
2331
  props: {
2332
2332
  name: { default: "" },
@@ -2351,22 +2351,22 @@ const ml = D({
2351
2351
  });
2352
2352
  const a = n, l = v(() => {
2353
2353
  if (t.max <= t.min) return 0;
2354
- const f = t.max - t.min, m = t.modelValue - t.min;
2355
- return Math.round(m / f * 100);
2356
- }), o = v(() => t.getPercentageClass ? t.getPercentageClass(l.value) : ""), s = (f) => {
2357
- const m = f.target;
2354
+ const d = t.max - t.min, m = t.modelValue - t.min;
2355
+ return Math.round(m / d * 100);
2356
+ }), o = v(() => t.getPercentageClass ? t.getPercentageClass(l.value) : ""), r = (d) => {
2357
+ const m = d.target;
2358
2358
  a("update:modelValue", Number(m.value));
2359
2359
  }, u = () => {
2360
2360
  a("buttonClick");
2361
2361
  };
2362
- return (f, m) => (i(), r("div", hl, [
2363
- e.showButton ? (i(), r("button", {
2362
+ return (d, m) => (i(), s("div", xl, [
2363
+ e.showButton ? (i(), s("button", {
2364
2364
  key: 0,
2365
2365
  onClick: u,
2366
2366
  type: "button",
2367
2367
  title: e.buttonLabel ?? e.label,
2368
2368
  "aria-label": e.buttonLabel ?? e.label,
2369
- class: "w-8 h-8 flex items-center justify-center rounded-corner transition-[background-color,scale] duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80 hover:scale-110 active:scale-95"
2369
+ class: "w-8 h-8 flex items-center justify-center rounded-corner transition-[background-color,scale] duration-200 hover:bg-ui-surface/80 hover:scale-110 active:scale-95"
2370
2370
  }, [
2371
2371
  e.name ? (i(), U(N, {
2372
2372
  key: 0,
@@ -2374,35 +2374,35 @@ const ml = D({
2374
2374
  type: e.type,
2375
2375
  size: 24,
2376
2376
  class: y(e.iconClass)
2377
- }, null, 8, ["name", "type", "class"])) : (i(), r("img", {
2377
+ }, null, 8, ["name", "type", "class"])) : (i(), s("img", {
2378
2378
  key: 1,
2379
2379
  src: e.icon,
2380
2380
  alt: "",
2381
2381
  class: y(["w-6 h-6", e.iconClass])
2382
- }, null, 10, wl))
2383
- ], 8, xl)) : (i(), r("div", kl, [
2382
+ }, null, 10, $l))
2383
+ ], 8, wl)) : (i(), s("div", kl, [
2384
2384
  e.name ? (i(), U(N, {
2385
2385
  key: 0,
2386
2386
  name: e.name,
2387
2387
  type: e.type,
2388
2388
  size: 24
2389
- }, null, 8, ["name", "type"])) : (i(), r("img", {
2389
+ }, null, 8, ["name", "type"])) : (i(), s("img", {
2390
2390
  key: 1,
2391
2391
  src: e.icon,
2392
2392
  alt: "",
2393
2393
  class: "w-6 h-6"
2394
- }, null, 8, $l))
2394
+ }, null, 8, Cl))
2395
2395
  ])),
2396
2396
  B("input", {
2397
2397
  type: "range",
2398
2398
  min: e.min,
2399
2399
  max: e.max,
2400
2400
  value: e.modelValue,
2401
- onInput: s,
2401
+ onInput: r,
2402
2402
  "aria-label": e.label,
2403
2403
  "aria-valuetext": `${l.value}%`,
2404
2404
  class: "flex-1 transition-[scale] duration-200 hover:scale-105"
2405
- }, null, 40, Cl),
2405
+ }, null, 40, zl),
2406
2406
  B("span", {
2407
2407
  class: y(["w-12 text-right transition-[color] duration-200 font-medium", o.value])
2408
2408
  }, V(l.value) + "% ", 3)
@@ -2416,7 +2416,7 @@ const ml = D({
2416
2416
  },
2417
2417
  setup(e) {
2418
2418
  const n = e, t = v(() => n.size === "small");
2419
- return (a, l) => (i(), r("span", {
2419
+ return (a, l) => (i(), s("span", {
2420
2420
  "aria-hidden": "true",
2421
2421
  class: y(["inline-flex shrink-0 items-center rounded-full border transition-colors", [
2422
2422
  t.value ? "h-6 w-11" : "h-7 w-12",
@@ -2432,10 +2432,10 @@ const ml = D({
2432
2432
  }, null, 2)
2433
2433
  ], 2));
2434
2434
  }
2435
- }), El = ["aria-checked", "disabled"], Ll = { class: "min-w-0 flex-1" }, Dl = { class: "block font-medium text-sm text-tx-main" }, Tl = {
2435
+ }), Ll = ["aria-checked", "disabled"], Dl = { class: "min-w-0 flex-1" }, Tl = { class: "block font-medium text-sm text-tx-main" }, Al = {
2436
2436
  key: 0,
2437
2437
  class: "mt-0.5 block text-tx-muted text-xs"
2438
- }, Al = /* @__PURE__ */ D({
2438
+ }, Bl = /* @__PURE__ */ D({
2439
2439
  __name: "SwitchRow",
2440
2440
  props: {
2441
2441
  modelValue: { type: Boolean },
@@ -2448,19 +2448,19 @@ const ml = D({
2448
2448
  emits: ["update:modelValue"],
2449
2449
  setup(e, { emit: n }) {
2450
2450
  const t = e, a = n;
2451
- return (l, o) => (i(), r("button", {
2451
+ return (l, o) => (i(), s("button", {
2452
2452
  type: "button",
2453
2453
  role: "switch",
2454
2454
  "aria-checked": e.modelValue,
2455
2455
  disabled: e.disabled,
2456
2456
  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",
2457
- onClick: o[0] || (o[0] = (s) => a("update:modelValue", !t.modelValue))
2457
+ onClick: o[0] || (o[0] = (r) => a("update:modelValue", !t.modelValue))
2458
2458
  }, [
2459
2459
  j(je, {
2460
2460
  on: e.modelValue,
2461
2461
  class: "mt-0.5"
2462
2462
  }, null, 8, ["on"]),
2463
- e.icon ? (i(), r("span", {
2463
+ e.icon ? (i(), s("span", {
2464
2464
  key: 0,
2465
2465
  class: y(["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"]),
2466
2466
  "aria-hidden": "true"
@@ -2472,14 +2472,14 @@ const ml = D({
2472
2472
  alt: ""
2473
2473
  }, null, 8, ["name", "type"])
2474
2474
  ], 2)) : x("", !0),
2475
- B("span", Ll, [
2476
- B("span", Dl, V(e.label), 1),
2477
- e.description ? (i(), r("span", Tl, V(e.description), 1)) : x("", !0),
2475
+ B("span", Dl, [
2476
+ B("span", Tl, V(e.label), 1),
2477
+ e.description ? (i(), s("span", Al, V(e.description), 1)) : x("", !0),
2478
2478
  S(l.$slots, "pie")
2479
2479
  ])
2480
- ], 8, El));
2480
+ ], 8, Ll));
2481
2481
  }
2482
- }), Bl = ["aria-checked", "aria-label", "disabled"], Sl = /* @__PURE__ */ D({
2482
+ }), Sl = ["aria-checked", "aria-label", "disabled"], Ml = /* @__PURE__ */ D({
2483
2483
  __name: "SwitchToggle",
2484
2484
  props: {
2485
2485
  modelValue: { type: Boolean },
@@ -2493,7 +2493,7 @@ const ml = D({
2493
2493
  function l() {
2494
2494
  a("update:modelValue", !t.modelValue);
2495
2495
  }
2496
- return (o, s) => (i(), r("button", {
2496
+ return (o, r) => (i(), s("button", {
2497
2497
  type: "button",
2498
2498
  role: "switch",
2499
2499
  "aria-checked": e.modelValue,
@@ -2506,9 +2506,9 @@ const ml = D({
2506
2506
  on: e.modelValue,
2507
2507
  size: e.size
2508
2508
  }, null, 8, ["on", "size"])
2509
- ], 8, Bl));
2509
+ ], 8, Sl));
2510
2510
  }
2511
- }), Ml = ["disabled", "title", "aria-label", "aria-pressed", "aria-busy"], Vl = ["src"], Il = /* @__PURE__ */ D({
2511
+ }), Vl = ["disabled", "title", "aria-label", "aria-pressed", "aria-busy"], Il = ["src"], Ol = /* @__PURE__ */ D({
2512
2512
  __name: "ToggleControl",
2513
2513
  props: {
2514
2514
  name: { default: "" },
@@ -2533,7 +2533,7 @@ const ml = D({
2533
2533
  function l() {
2534
2534
  a("click");
2535
2535
  }
2536
- return (o, s) => (i(), r("button", {
2536
+ return (o, r) => (i(), s("button", {
2537
2537
  type: "button",
2538
2538
  class: y(["p-2 rounded-corner bg-ui-bg/80 hover:opacity-50 transition-[opacity,scale,box-shadow] 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", {
2539
2539
  "animate-pulse": e.isLoading,
@@ -2559,7 +2559,7 @@ const ml = D({
2559
2559
  "drop-shadow-lg": e.isActive,
2560
2560
  ...e.iconClass
2561
2561
  }])
2562
- }, null, 8, ["name", "type", "class"])) : (i(), r("img", {
2562
+ }, null, 8, ["name", "type", "class"])) : (i(), s("img", {
2563
2563
  key: 1,
2564
2564
  src: e.icon,
2565
2565
  alt: "",
@@ -2569,8 +2569,8 @@ const ml = D({
2569
2569
  "drop-shadow-lg": e.isActive,
2570
2570
  ...e.iconClass
2571
2571
  }])
2572
- }, null, 10, Vl))
2573
- ], 10, Ml));
2572
+ }, null, 10, Il))
2573
+ ], 10, Vl));
2574
2574
  }
2575
2575
  }), ft = /* @__PURE__ */ Symbol("tooltip de vasak");
2576
2576
  function mt() {
@@ -2590,7 +2590,7 @@ function mt() {
2590
2590
  }
2591
2591
  };
2592
2592
  }
2593
- const Ol = { class: "inline-block" }, jl = /* @__PURE__ */ D({
2593
+ const jl = { class: "inline-block" }, Pl = /* @__PURE__ */ D({
2594
2594
  __name: "Tooltip",
2595
2595
  props: {
2596
2596
  disabled: { type: Boolean, default: !1 },
@@ -2604,7 +2604,7 @@ const Ol = { class: "inline-block" }, jl = /* @__PURE__ */ D({
2604
2604
  t.value = !0;
2605
2605
  }, n.delayDuration));
2606
2606
  }
2607
- function s() {
2607
+ function r() {
2608
2608
  l && clearTimeout(l), t.value = !1;
2609
2609
  }
2610
2610
  return ye(ft, {
@@ -2614,12 +2614,12 @@ const Ol = { class: "inline-block" }, jl = /* @__PURE__ */ D({
2614
2614
  a.value = u;
2615
2615
  },
2616
2616
  abrir: o,
2617
- cerrar: s
2618
- }), (u, f) => (i(), r("div", Ol, [
2617
+ cerrar: r
2618
+ }), (u, d) => (i(), s("div", jl, [
2619
2619
  S(u.$slots, "default")
2620
2620
  ]));
2621
2621
  }
2622
- }), Pl = /* @__PURE__ */ D({
2622
+ }), Rl = /* @__PURE__ */ D({
2623
2623
  inheritAttrs: !1,
2624
2624
  __name: "TooltipContent",
2625
2625
  props: {
@@ -2628,32 +2628,32 @@ const Ol = { class: "inline-block" }, jl = /* @__PURE__ */ D({
2628
2628
  sideOffset: { default: 4 }
2629
2629
  },
2630
2630
  setup(e) {
2631
- const n = Be(), t = v(() => n.class ?? ""), a = e, l = mt(), o = v(() => l.abierto.value), s = w(null), u = w({ top: 0, left: 0 });
2632
- function f() {
2631
+ const n = Be(), t = v(() => n.class ?? ""), a = e, l = mt(), o = v(() => l.abierto.value), r = w(null), u = w({ top: 0, left: 0 });
2632
+ function d() {
2633
2633
  const m = l.disparador.value;
2634
- if (!m || !s.value) return;
2635
- const d = m.getBoundingClientRect(), E = s.value.getBoundingClientRect();
2634
+ if (!m || !r.value) return;
2635
+ const f = m.getBoundingClientRect(), E = r.value.getBoundingClientRect();
2636
2636
  let L = 0, A = 0;
2637
2637
  switch (a.side) {
2638
2638
  case "bottom":
2639
- L = d.bottom + a.sideOffset, A = d.left + d.width / 2 - E.width / 2;
2639
+ L = f.bottom + a.sideOffset, A = f.left + f.width / 2 - E.width / 2;
2640
2640
  break;
2641
2641
  case "top":
2642
- L = d.top - E.height - a.sideOffset, A = d.left + d.width / 2 - E.width / 2;
2642
+ L = f.top - E.height - a.sideOffset, A = f.left + f.width / 2 - E.width / 2;
2643
2643
  break;
2644
2644
  case "left":
2645
- A = d.left - E.width - a.sideOffset, L = d.top + d.height / 2 - E.height / 2;
2645
+ A = f.left - E.width - a.sideOffset, L = f.top + f.height / 2 - E.height / 2;
2646
2646
  break;
2647
2647
  case "right":
2648
- A = d.right + a.sideOffset, L = d.top + d.height / 2 - E.height / 2;
2648
+ A = f.right + a.sideOffset, L = f.top + f.height / 2 - E.height / 2;
2649
2649
  break;
2650
2650
  }
2651
2651
  u.value = { top: L, left: A };
2652
2652
  }
2653
2653
  return Q(o, async (m) => {
2654
- m && (await J(), requestAnimationFrame(f));
2655
- }), (m, d) => (i(), U(ge, { to: "body" }, [
2656
- j($e, {
2654
+ m && (await J(), requestAnimationFrame(d));
2655
+ }), (m, f) => (i(), U(ge, { to: "body" }, [
2656
+ j(ke, {
2657
2657
  "enter-active-class": "transition-all duration-200 ease-in-out",
2658
2658
  "leave-active-class": "transition-all duration-200 ease-in-out",
2659
2659
  "enter-from-class": "opacity-0 scale-95",
@@ -2662,7 +2662,7 @@ const Ol = { class: "inline-block" }, jl = /* @__PURE__ */ D({
2662
2662
  default: G(() => [
2663
2663
  Se(B("div", {
2664
2664
  ref_key: "globo",
2665
- ref: s,
2665
+ ref: r,
2666
2666
  style: fe({ position: "fixed", top: `${u.value.top}px`, left: `${u.value.left}px`, zIndex: 50 }),
2667
2667
  class: y([
2668
2668
  t.value,
@@ -2678,7 +2678,7 @@ const Ol = { class: "inline-block" }, jl = /* @__PURE__ */ D({
2678
2678
  })
2679
2679
  ]));
2680
2680
  }
2681
- }), Rl = /* @__PURE__ */ D({
2681
+ }), Fl = /* @__PURE__ */ D({
2682
2682
  __name: "TooltipTrigger",
2683
2683
  setup(e) {
2684
2684
  const n = mt(), t = w(null);
@@ -2690,21 +2690,21 @@ const Ol = { class: "inline-block" }, jl = /* @__PURE__ */ D({
2690
2690
  }
2691
2691
  return W(() => {
2692
2692
  n.ponerElDisparador(a());
2693
- }), (o, s) => (i(), r("div", {
2693
+ }), (o, r) => (i(), s("div", {
2694
2694
  ref_key: "envoltorio",
2695
2695
  ref: t,
2696
2696
  class: "inline-block",
2697
2697
  onMouseenter: l,
2698
- onMouseleave: s[0] || (s[0] = (u) => F(n).cerrar()),
2698
+ onMouseleave: r[0] || (r[0] = (u) => F(n).cerrar()),
2699
2699
  onFocus: l,
2700
- onBlur: s[1] || (s[1] = (u) => F(n).cerrar())
2700
+ onBlur: r[1] || (r[1] = (u) => F(n).cerrar())
2701
2701
  }, [
2702
2702
  S(o.$slots, "default")
2703
2703
  ], 544));
2704
2704
  }
2705
- }), Fl = ["title"], Nl = ["src", "alt"], ql = {
2705
+ }), Nl = ["src", "alt"], ql = {
2706
2706
  key: 2,
2707
- 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"
2707
+ class: "absolute bottom-1 right-1 bg-primary text-tx-on-primary text-xs rounded-full w-4 h-4 flex items-center justify-center font-bold animate-bounce"
2708
2708
  }, Hl = /* @__PURE__ */ D({
2709
2709
  __name: "TrayIconButton",
2710
2710
  props: {
@@ -2718,98 +2718,102 @@ const Ol = { class: "inline-block" }, jl = /* @__PURE__ */ D({
2718
2718
  customClass: { default: "" },
2719
2719
  tooltipClass: { default: "" },
2720
2720
  showCustomTooltip: { type: Boolean, default: !1 },
2721
- customTooltipText: { default: "" }
2721
+ customTooltipText: { default: "" },
2722
+ interactive: { type: Boolean, default: !0 }
2722
2723
  },
2723
2724
  emits: ["click"],
2724
2725
  setup(e, { emit: n }) {
2725
- const t = e, a = n, l = w(!1);
2726
+ const t = e, a = n, l = v(() => t.alt || t.tooltip || void 0), o = w(!1);
2726
2727
  W(() => {
2727
2728
  t.icon && !t.name && console.warn(
2728
2729
  "[TrayIconButton] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo."
2729
2730
  );
2730
2731
  });
2731
- const o = () => {
2732
+ const r = () => {
2732
2733
  a("click");
2733
2734
  };
2734
- return (s, u) => (i(), r("div", {
2735
- class: y(["p-1 rounded-corner relative hover:bg-primary dark:hover:bg-primary-dark group transition-[background-color] duration-300", e.customClass]),
2735
+ return (u, d) => (i(), U(Lt(e.interactive ? "button" : "div"), le(e.interactive ? { type: "button", "aria-label": l.value } : {}, {
2736
+ class: ["p-1 rounded-corner relative group transition-[background-color] duration-300", [e.customClass, e.interactive ? "cursor-pointer hover:bg-primary" : ""]],
2736
2737
  title: e.tooltip,
2737
- onClick: o,
2738
- onMouseenter: u[0] || (u[0] = (f) => l.value = !0),
2739
- onMouseleave: u[1] || (u[1] = (f) => l.value = !1)
2740
- }, [
2741
- e.name ? (i(), U(N, {
2742
- key: 0,
2743
- name: e.name,
2744
- type: e.type,
2745
- size: 22,
2746
- alt: e.alt,
2747
- class: y(["m-auto", e.iconClass])
2748
- }, null, 8, ["name", "type", "alt", "class"])) : (i(), r("img", {
2749
- key: 1,
2750
- src: e.icon,
2751
- alt: e.alt,
2752
- class: y(["m-auto h-5.5 w-auto", e.iconClass])
2753
- }, null, 10, Nl)),
2754
- e.badge !== null && e.badge > 0 ? (i(), r("div", ql, V(e.badge), 1)) : x("", !0),
2755
- e.showCustomTooltip && e.customTooltipText ? (i(), r("div", {
2756
- key: 3,
2757
- class: y(["absolute top-1 left-1/2 transform -translate-x-1/2 text-xs font-semibold p-1 rounded-corner transition-[opacity,translate] duration-300 pointer-events-none background", [
2758
- e.tooltipClass,
2759
- {
2760
- "opacity-0 -translate-y-2": !l.value,
2761
- "opacity-100 translate-y-0": l.value
2762
- }
2763
- ]])
2764
- }, V(e.customTooltipText), 3)) : x("", !0),
2765
- S(s.$slots, "default")
2766
- ], 42, Fl));
2738
+ onClick: r,
2739
+ onMouseenter: d[0] || (d[0] = (m) => o.value = !0),
2740
+ onMouseleave: d[1] || (d[1] = (m) => o.value = !1)
2741
+ }), {
2742
+ default: G(() => [
2743
+ e.name ? (i(), U(N, {
2744
+ key: 0,
2745
+ name: e.name,
2746
+ type: e.type,
2747
+ size: 22,
2748
+ alt: e.alt,
2749
+ class: y(["m-auto", e.iconClass])
2750
+ }, null, 8, ["name", "type", "alt", "class"])) : (i(), s("img", {
2751
+ key: 1,
2752
+ src: e.icon,
2753
+ alt: e.alt,
2754
+ class: y(["m-auto h-5.5 w-auto", e.iconClass])
2755
+ }, null, 10, Nl)),
2756
+ e.badge !== null && e.badge > 0 ? (i(), s("div", ql, V(e.badge), 1)) : x("", !0),
2757
+ e.showCustomTooltip && e.customTooltipText ? (i(), s("div", {
2758
+ key: 3,
2759
+ class: y(["absolute top-1 left-1/2 transform -translate-x-1/2 text-xs font-semibold p-1 rounded-corner transition-[opacity,translate] duration-300 pointer-events-none background", [
2760
+ e.tooltipClass,
2761
+ {
2762
+ "opacity-0 -translate-y-2": !o.value,
2763
+ "opacity-100 translate-y-0": o.value
2764
+ }
2765
+ ]])
2766
+ }, V(e.customTooltipText), 3)) : x("", !0),
2767
+ S(u.$slots, "default")
2768
+ ]),
2769
+ _: 3
2770
+ }, 16, ["class", "title"]));
2767
2771
  }
2768
2772
  }), Ul = [
2769
- ua,
2773
+ ca,
2770
2774
  _e,
2771
2775
  Ze,
2772
- ba,
2776
+ va,
2773
2777
  N,
2774
- La,
2778
+ Da,
2775
2779
  at,
2776
2780
  tt,
2777
- Ra,
2781
+ Fa,
2778
2782
  nt,
2779
- Ua,
2780
- Ja,
2781
- an,
2782
- on,
2783
+ Ka,
2784
+ Za,
2785
+ nn,
2783
2786
  sn,
2784
- mn,
2787
+ un,
2788
+ bn,
2785
2789
  Ie,
2786
- Ln,
2790
+ Dn,
2787
2791
  lt,
2788
- cn,
2789
- An,
2790
- Nn,
2791
- Hn,
2792
- Gn,
2793
- Yn,
2794
- Jn,
2795
- _n,
2796
- tl,
2797
- nl,
2798
- il,
2792
+ dn,
2793
+ Bn,
2794
+ qn,
2795
+ Un,
2796
+ Qn,
2797
+ Xn,
2798
+ Zn,
2799
+ el,
2800
+ al,
2801
+ ll,
2799
2802
  sl,
2800
2803
  ul,
2801
- dl,
2802
- ml,
2803
- pl,
2804
- gl,
2805
- zl,
2806
- Al,
2807
- Sl,
2804
+ cl,
2805
+ fl,
2806
+ bl,
2807
+ yl,
2808
+ hl,
2809
+ El,
2810
+ Bl,
2811
+ Ml,
2808
2812
  je,
2809
- Il,
2810
- jl,
2813
+ Ol,
2811
2814
  Pl,
2812
2815
  Rl,
2816
+ Fl,
2813
2817
  Hl
2814
2818
  ], Zl = {
2815
2819
  install(e) {
@@ -2819,69 +2823,69 @@ const Ol = { class: "inline-block" }, jl = /* @__PURE__ */ D({
2819
2823
  }
2820
2824
  };
2821
2825
  export {
2822
- Ja as ActionButton,
2823
- an as AlertMessage,
2826
+ Za as ActionButton,
2827
+ nn as AlertMessage,
2824
2828
  at as AppBar,
2825
- Ua as BarSearch,
2829
+ Ka as BarSearch,
2826
2830
  ot as CLASES_POR_TONO,
2827
- rt as CLAVE_DEL_DIALOGO,
2831
+ st as CLAVE_DEL_DIALOGO,
2828
2832
  ut as CLAVE_DEL_MENU,
2829
2833
  ft as CLAVE_DEL_TOOLTIP,
2830
2834
  Me as CLAVE_DE_LA_BARRA,
2831
- An as ConfigSection,
2832
- Nn as DeviceCard,
2833
- Hn as Dialog,
2834
- Gn as DialogContent,
2835
- Yn as DialogDescription,
2836
- Jn as DialogFooter,
2837
- _n as DialogHeader,
2838
- tl as DialogTitle,
2839
- nl as DropdownMenu,
2840
- il as DropdownMenuContent,
2841
- sl as DropdownMenuItem,
2842
- ul as DropdownMenuLabel,
2843
- dl as DropdownMenuSeparator,
2844
- ml as DropdownMenuTrigger,
2845
- on as EmptyState,
2846
- pl as FormGroup,
2835
+ Bn as ConfigSection,
2836
+ qn as DeviceCard,
2837
+ Un as Dialog,
2838
+ Qn as DialogContent,
2839
+ Xn as DialogDescription,
2840
+ Zn as DialogFooter,
2841
+ el as DialogHeader,
2842
+ al as DialogTitle,
2843
+ ll as DropdownMenu,
2844
+ sl as DropdownMenuContent,
2845
+ ul as DropdownMenuItem,
2846
+ cl as DropdownMenuLabel,
2847
+ fl as DropdownMenuSeparator,
2848
+ bl as DropdownMenuTrigger,
2849
+ sn as EmptyState,
2850
+ yl as FormGroup,
2847
2851
  Ve as LOS_TRES_CONTROLES,
2848
- gl as ListCard,
2849
- sn as LoadingState,
2850
- va as POSICIONES,
2851
- mn as ProgressBar,
2852
+ hl as ListCard,
2853
+ un as LoadingState,
2854
+ pa as POSICIONES,
2855
+ bn as ProgressBar,
2852
2856
  Ie as SearchField,
2853
- Ln as SearchSelect,
2854
- ba as SelectField,
2855
- ua as SideBar,
2857
+ Dn as SearchSelect,
2858
+ va as SelectField,
2859
+ ca as SideBar,
2856
2860
  _e as SideButton,
2857
2861
  Ze as SideGroup,
2858
- zl as SliderControl,
2859
- Al as SwitchRow,
2860
- Sl as SwitchToggle,
2862
+ El as SliderControl,
2863
+ Bl as SwitchRow,
2864
+ Ml as SwitchToggle,
2861
2865
  je as SwitchTrack,
2862
- Ra as TabBar,
2866
+ Fa as TabBar,
2863
2867
  nt as TabItem,
2864
2868
  lt as TextInput,
2865
2869
  N as ThemeIcon,
2866
- cn as ToastArea,
2867
- Il as ToggleControl,
2868
- jl as Tooltip,
2869
- Pl as TooltipContent,
2870
- Rl as TooltipTrigger,
2870
+ dn as ToastArea,
2871
+ Ol as ToggleControl,
2872
+ Pl as Tooltip,
2873
+ Rl as TooltipContent,
2874
+ Fl as TooltipTrigger,
2871
2875
  Hl as TrayIconButton,
2872
2876
  tt as WindowControls,
2873
- La as WindowFrame,
2874
- vn as buscarOpciones,
2877
+ Da as WindowFrame,
2878
+ pn as buscarOpciones,
2875
2879
  Zl as default,
2876
- pa as esPosicion,
2880
+ ya as esPosicion,
2877
2881
  Xl as olvidarLosIconosDelTema,
2878
2882
  Ae as orientacionDe,
2879
- ha as posicionDe,
2883
+ xa as posicionDe,
2880
2884
  it as rolDelTono,
2881
- st as usarElDialogo,
2885
+ rt as usarElDialogo,
2882
2886
  Ce as usarElMenu,
2883
2887
  mt as usarElTooltip,
2884
2888
  he as usarLaBarra,
2885
- xa as usarLaPosicionDeLaBarra,
2889
+ wa as usarLaPosicionDeLaBarra,
2886
2890
  Jl as usarLaVersionDelTema
2887
2891
  };