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