@vasakgroup/vue-libvasak 0.16.1 → 0.17.1

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