@vasakgroup/vue-libvasak 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,23 @@
1
+ /**
2
+ * Una fila de lista, con lo que le pongan adentro.
3
+ *
4
+ * Cuando es `clickable` se abre entera: con el mouse y **también con el
5
+ * teclado**. Lleva `role="button"` y no un `<button>` de verdad porque lo que
6
+ * entra por la ranura lo decide quien la usa, y ya hay quien mete botones
7
+ * adentro — un botón dentro de otro no es HTML válido: el navegador desanida el
8
+ * marcado y el de adentro deja de funcionar. El nombre accesible sale de ese
9
+ * mismo contenido.
10
+ *
11
+ * El papel y el foco van **atados a `clickable`**: una fila que dice ser un
12
+ * botón y no hace nada es el mismo problema al revés.
13
+ *
14
+ * Y las teclas llevan `.self` **antes** de `.prevent`, que no es un detalle: la
15
+ * tecla que alguien apreta sobre un botón de adentro **burbujea** hasta acá.
16
+ * Sin `.self`, apretar Enter en ese botón dispararía además la acción de la
17
+ * fila entera, y el `.prevent` le cancelaría al botón su propia activación —o a
18
+ * un campo de texto su salto de línea—. Con `.self` sólo responden las teclas
19
+ * que llegan a la fila misma, que es cuando la fila tiene el foco.
20
+ */
1
21
  interface Props {
2
22
  clickable?: boolean;
3
23
  customClass?: string | Record<string, boolean>;
@@ -1,11 +1,11 @@
1
1
  type __VLS_Props = {
2
2
  name: string;
3
3
  type?: 'icon' | 'symbol';
4
- size?: number;
4
+ size?: number | 'auto';
5
5
  alt?: string;
6
6
  };
7
7
  declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
8
- size: number;
8
+ size: number | "auto";
9
9
  type: "icon" | "symbol";
10
10
  alt: string;
11
11
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -1,4 +1,4 @@
1
- import { ref as w, onMounted as W, onUnmounted as ve, readonly as vt, watch as Q, defineComponent as D, toRef as Pe, useTemplateRef as pt, computed as v, createElementBlock as r, unref as F, openBlock as i, normalizeStyle as fe, createCommentVNode as x, createElementVNode as B, createVNode as O, toDisplayString as M, normalizeClass as y, renderSlot as S, createBlock as U, onBeforeUnmount as pe, Fragment as te, renderList as ue, withCtx as G, mergeModels as Re, useAttrs as Be, useId as yt, useModel as gt, withDirectives as Se, mergeProps as ce, isRef as ht, vModelSelect as xt, inject as we, getCurrentInstance as Ge, provide as ye, createTextVNode as Me, toHandlers as Qe, createSlots as wt, withModifiers as V, withKeys as R, Teleport as ge, Transition as ke, nextTick as J, TransitionGroup as kt, vShow as Ye, cloneVNode as $t, h as Ct, Comment as zt, Text as Et } from "vue";
1
+ import { ref as w, onMounted as W, onUnmounted as ve, readonly as vt, watch as Q, defineComponent as D, toRef as Pe, useTemplateRef as pt, computed as v, createElementBlock as r, unref as F, openBlock as i, normalizeStyle as fe, createCommentVNode as x, createElementVNode as B, createVNode as O, toDisplayString as M, normalizeClass as y, renderSlot as S, createBlock as U, onBeforeUnmount as pe, Fragment as te, renderList as ue, withCtx as G, mergeModels as Re, useAttrs as Ae, useId as yt, useModel as gt, withDirectives as Be, mergeProps as ce, isRef as ht, vModelSelect as xt, inject as we, getCurrentInstance as Ge, provide as ye, createTextVNode as Se, toHandlers as Qe, createSlots as wt, withModifiers as V, withKeys as P, Teleport as ge, Transition as ke, nextTick as J, TransitionGroup as kt, vShow as Ye, cloneVNode as $t, h as Ct, Comment as zt, Text as Et } from "vue";
2
2
  import { listen as Lt } from "@tauri-apps/api/event";
3
3
  import { getSymbolSource as Dt, getIconSource as Tt } from "@vasakgroup/plugin-vicons";
4
4
  import { getCurrentWindow as At } from "@tauri-apps/api/window";
@@ -6,12 +6,12 @@ import { useI18n as Bt } from "@vasakgroup/tauri-plugin-i18n";
6
6
  const St = "vicons:theme-changed", xe = /* @__PURE__ */ new Map(), re = /* @__PURE__ */ new Map(), me = w(0);
7
7
  let se = 0, be = null, ie = null;
8
8
  function Ql() {
9
- xe.clear(), re.clear(), se = 0, be = null, ie = null, me.value = 0, ae.clear(), ne.clear(), Xe = 0, ee?.disconnect(), ee = null, De = !1, X !== null && (clearTimeout(X), X = null), _ && (_.cancelado = !0), _ = null;
9
+ xe.clear(), re.clear(), se = 0, be = null, ie = null, me.value = 0, ae.clear(), ne.clear(), Xe = 0, ee?.disconnect(), ee = null, Le = !1, X !== null && (clearTimeout(X), X = null), _ && (_.cancelado = !0), _ = null;
10
10
  }
11
- const Mt = 100, ze = 10, Vt = 16, ae = /* @__PURE__ */ new Map(), ne = /* @__PURE__ */ new Set();
12
- let Xe = 0, ee = null, De = !1;
11
+ const Mt = 100, Ce = 10, Vt = 16, ae = /* @__PURE__ */ new Map(), ne = /* @__PURE__ */ new Set();
12
+ let Xe = 0, ee = null, Le = !1;
13
13
  function It() {
14
- return De ? ee : (De = !0, typeof IntersectionObserver > "u" ? null : (ee = new IntersectionObserver(
14
+ return Le ? ee : (Le = !0, typeof IntersectionObserver > "u" ? null : (ee = new IntersectionObserver(
15
15
  (e) => {
16
16
  for (const n of e) {
17
17
  const t = n.target.dataset?.iconoId;
@@ -44,13 +44,13 @@ function Rt(e) {
44
44
  async function Ft(e) {
45
45
  const n = [...ae.keys()], t = n.filter((l) => ne.has(l)), a = n.filter((l) => !ne.has(l));
46
46
  for (const l of [t, a])
47
- for (let o = 0; o < l.length; o += ze) {
47
+ for (let o = 0; o < l.length; o += Ce) {
48
48
  if (e.cancelado) return;
49
- const s = l.slice(o, o + ze);
49
+ const s = l.slice(o, o + Ce);
50
50
  if (await Promise.allSettled(
51
51
  s.map((u) => ae.get(u)?.recargar() ?? Promise.resolve())
52
52
  ), e.cancelado) return;
53
- (o + ze < l.length || l === t) && await Rt(Vt);
53
+ (o + Ce < l.length || l === t) && await Rt(Vt);
54
54
  }
55
55
  _ === e && (_ = null);
56
56
  }
@@ -69,7 +69,7 @@ function Je() {
69
69
  se <= 0 ? e() : be = e, ie = null;
70
70
  }), ie);
71
71
  }
72
- function Te() {
72
+ function De() {
73
73
  se--, !(se > 0) && (se = 0, be?.(), be = null);
74
74
  }
75
75
  function Ht(e, n) {
@@ -87,9 +87,9 @@ function Ht(e, n) {
87
87
  function Yl() {
88
88
  let e = !1;
89
89
  return W(async () => {
90
- await Je(), e && Te();
90
+ await Je(), e && De();
91
91
  }), ve(() => {
92
- e || (e = !0, Te());
92
+ e || (e = !0, De());
93
93
  }), vt(me);
94
94
  }
95
95
  function Ut(e, n) {
@@ -110,7 +110,7 @@ function Ut(e, n) {
110
110
  return W(async () => {
111
111
  await Je(), a || await s();
112
112
  }), ve(() => {
113
- a = !0, Pt(o), Te();
113
+ a = !0, Pt(o), De();
114
114
  }), Q([e, n], s), { fuente: t, mirarElemento: (u) => jt(o, u) };
115
115
  }
116
116
  const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
@@ -124,21 +124,23 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
124
124
  setup(e) {
125
125
  const n = e, { fuente: t, mirarElemento: a } = Ut(Pe(n, "name"), Pe(n, "type")), l = pt("dibujo");
126
126
  Q(l, (s) => a(s), { immediate: !0 });
127
- const o = v(() => `${n.size}px`);
127
+ const o = v(
128
+ () => n.size === "auto" ? void 0 : { width: `${n.size}px`, height: `${n.size}px` }
129
+ );
128
130
  return (s, u) => F(t) ? (i(), r("img", {
129
131
  key: 0,
130
132
  ref_key: "dibujo",
131
133
  ref: l,
132
134
  src: F(t),
133
135
  alt: e.alt,
134
- style: fe({ width: o.value, height: o.value }),
136
+ style: fe(o.value),
135
137
  class: "shrink-0 object-contain"
136
138
  }, null, 12, Kt)) : (i(), r("span", {
137
139
  key: 1,
138
140
  ref_key: "dibujo",
139
141
  ref: l,
140
- style: fe({ width: o.value, height: o.value }),
141
- class: "shrink-0"
142
+ style: fe(o.value),
143
+ class: "inline-block shrink-0"
142
144
  }, null, 4));
143
145
  }
144
146
  }), Wt = { class: "flex flex-col gap-2" }, Gt = ["aria-expanded"], Qt = {
@@ -355,7 +357,7 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
355
357
  }),
356
358
  emits: /* @__PURE__ */ Re(["change"], ["update:modelValue"]),
357
359
  setup(e, { emit: n }) {
358
- const t = e, a = Be(), l = yt(), o = v(() => a.id ?? l), s = n, [u, m] = gt(e, "modelValue", {
360
+ const t = e, a = Ae(), l = yt(), o = v(() => a.id ?? l), s = n, [u, m] = gt(e, "modelValue", {
359
361
  set(f) {
360
362
  return m.number ? Number(f) : f;
361
363
  }
@@ -367,7 +369,7 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
367
369
  class: "text-tx-muted text-xs"
368
370
  }, M(t.label), 9, da)) : x("", !0),
369
371
  B("div", fa, [
370
- Se(B("select", ce({
372
+ Be(B("select", ce({
371
373
  id: o.value,
372
374
  "onUpdate:modelValue": d[0] || (d[0] = (E) => ht(u) ? u.value = E : null),
373
375
  class: "min-w-0 flex-1 appearance-none truncate rounded-corner border border-ui-border bg-ui-surface/60 py-1.5 pr-8 pl-2 text-sm text-tx-main"
@@ -387,8 +389,8 @@ const Kt = ["src", "alt"], N = /* @__PURE__ */ D({
387
389
  ])
388
390
  ]));
389
391
  }
390
- }), Ve = /* @__PURE__ */ Symbol("barra de vasak");
391
- function Ae(e) {
392
+ }), Me = /* @__PURE__ */ Symbol("barra de vasak");
393
+ function Te(e) {
392
394
  return e === "left" || e === "right" ? "vertical" : "horizontal";
393
395
  }
394
396
  const va = ["top", "bottom", "left", "right"];
@@ -396,16 +398,16 @@ function pa(e) {
396
398
  return typeof e == "string" && va.includes(e);
397
399
  }
398
400
  function he() {
399
- const e = we(Ve, null);
401
+ const e = we(Me, null);
400
402
  if (e) return e;
401
403
  const n = w("top");
402
404
  return {
403
405
  posicion: n,
404
- orientacion: v(() => Ae(n.value)),
405
- vertical: v(() => Ae(n.value) === "vertical")
406
+ orientacion: v(() => Te(n.value)),
407
+ vertical: v(() => Te(n.value) === "vertical")
406
408
  };
407
409
  }
408
- const Ie = ["minimize", "maximize", "close"], ya = "window", ga = "barPosition";
410
+ const Ve = ["minimize", "maximize", "close"], ya = "window", ga = "barPosition";
409
411
  function ha(e) {
410
412
  const t = e?.[ya]?.[ga];
411
413
  return pa(t) ? t : null;
@@ -445,10 +447,10 @@ function et(e) {
445
447
  }
446
448
  return t;
447
449
  }
448
- const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title", "aria-label"], Ee = "flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors", tt = /* @__PURE__ */ D({
450
+ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title", "aria-label"], ze = "flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors", tt = /* @__PURE__ */ D({
449
451
  __name: "WindowControls",
450
452
  props: {
451
- controls: { default: () => Ie },
453
+ controls: { default: () => Ve },
452
454
  minimizeLabel: {},
453
455
  maximizeLabel: {},
454
456
  closeLabel: {}
@@ -487,7 +489,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
487
489
  f.value.minimize ? (i(), r("button", {
488
490
  key: 0,
489
491
  type: "button",
490
- class: y([Ee, "hover:bg-status-success"]),
492
+ class: y([ze, "hover:bg-status-success"]),
491
493
  title: l.value,
492
494
  "aria-label": l.value,
493
495
  onClick: C[0] || (C[0] = (h) => A())
@@ -501,7 +503,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
501
503
  f.value.maximize ? (i(), r("button", {
502
504
  key: 1,
503
505
  type: "button",
504
- class: y([Ee, "hover:bg-status-warning"]),
506
+ class: y([ze, "hover:bg-status-warning"]),
505
507
  title: o.value,
506
508
  "aria-label": o.value,
507
509
  onClick: C[1] || (C[1] = (h) => g())
@@ -515,7 +517,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
515
517
  f.value.close ? (i(), r("button", {
516
518
  key: 2,
517
519
  type: "button",
518
- class: y([Ee, "hover:bg-status-error"]),
520
+ class: y([ze, "hover:bg-status-error"]),
519
521
  title: s.value,
520
522
  "aria-label": s.value,
521
523
  onClick: C[2] || (C[2] = (h) => $())
@@ -544,12 +546,12 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
544
546
  minimizeLabel: {},
545
547
  maximizeLabel: {},
546
548
  closeLabel: {},
547
- controls: { default: () => Ie }
549
+ controls: { default: () => Ve }
548
550
  },
549
551
  emits: ["minimize", "maximize", "close"],
550
552
  setup(e) {
551
553
  const n = e, t = he(), a = v(() => n.position ?? t.posicion.value), l = v(() => a.value === "left" || a.value === "right");
552
- return ye(Ve, {
554
+ return ye(Me, {
553
555
  posicion: a,
554
556
  orientacion: v(() => l.value ? "vertical" : "horizontal"),
555
557
  vertical: l
@@ -562,7 +564,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
562
564
  ])) : x("", !0),
563
565
  (o.$slots.titulo || e.title) && !l.value ? (i(), r("p", za, [
564
566
  S(o.$slots, "titulo", {}, () => [
565
- Me(M(e.title), 1)
567
+ Se(M(e.title), 1)
566
568
  ])
567
569
  ])) : x("", !0),
568
570
  B("div", {
@@ -603,13 +605,13 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
603
605
  minimizeLabel: {},
604
606
  maximizeLabel: {},
605
607
  closeLabel: {},
606
- controls: { default: () => Ie },
608
+ controls: { default: () => Ve },
607
609
  hideBar: { type: Boolean, default: !1 }
608
610
  },
609
611
  emits: ["minimize", "maximize", "close"],
610
612
  setup(e) {
611
- const n = e, t = xa(), a = v(() => n.position ?? t.value), l = v(() => Ae(a.value)), o = v(() => l.value === "vertical");
612
- ye(Ve, { posicion: a, orientacion: l, vertical: o });
613
+ const n = e, t = xa(), a = v(() => n.position ?? t.value), l = v(() => Te(a.value)), o = v(() => l.value === "vertical");
614
+ ye(Me, { posicion: a, orientacion: l, vertical: o });
613
615
  const s = {
614
616
  top: "flex-col",
615
617
  bottom: "flex-col-reverse",
@@ -698,7 +700,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
698
700
  () => g.value && (h.value || t.active || !t.tab.dirty)
699
701
  ), p = v(
700
702
  () => l.value && (m.value || f.value || d.value)
701
- ), P = v(() => {
703
+ ), R = v(() => {
702
704
  const q = { position: "fixed", top: `${E.value.top}px`, zIndex: 50 };
703
705
  return o.value === "right" ? { ...q, right: `${E.value.right + He}px` } : { ...q, left: `${E.value.left + He}px` };
704
706
  });
@@ -754,19 +756,19 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
754
756
  tabindex: e.tabindex,
755
757
  onClick: k[5] || (k[5] = V((H) => a("select"), ["stop"])),
756
758
  onKeydown: [
757
- k[6] || (k[6] = R(V((H) => a("select"), ["stop"]), ["enter"])),
758
- k[7] || (k[7] = R(V((H) => a("select"), ["prevent", "stop"]), ["space"])),
759
- k[8] || (k[8] = R(V((H) => a("navegar", "anterior"), ["prevent", "stop"]), ["left"])),
760
- k[9] || (k[9] = R(V((H) => a("navegar", "anterior"), ["prevent", "stop"]), ["up"])),
761
- k[10] || (k[10] = R(V((H) => a("navegar", "siguiente"), ["prevent", "stop"]), ["right"])),
762
- k[11] || (k[11] = R(V((H) => a("navegar", "siguiente"), ["prevent", "stop"]), ["down"])),
763
- k[12] || (k[12] = R(V((H) => a("navegar", "primera"), ["prevent", "stop"]), ["home"])),
764
- k[13] || (k[13] = R(V((H) => a("navegar", "ultima"), ["prevent", "stop"]), ["end"])),
765
- k[14] || (k[14] = R(V((H) => a("mover", -1), ["alt", "prevent", "stop"]), ["left"])),
766
- k[15] || (k[15] = R(V((H) => a("mover", -1), ["alt", "prevent", "stop"]), ["up"])),
767
- k[16] || (k[16] = R(V((H) => a("mover", 1), ["alt", "prevent", "stop"]), ["right"])),
768
- k[17] || (k[17] = R(V((H) => a("mover", 1), ["alt", "prevent", "stop"]), ["down"])),
769
- k[18] || (k[18] = R(V((H) => g.value && a("close"), ["prevent", "stop"]), ["delete"]))
759
+ k[6] || (k[6] = P(V((H) => a("select"), ["stop"]), ["enter"])),
760
+ k[7] || (k[7] = P(V((H) => a("select"), ["prevent", "stop"]), ["space"])),
761
+ k[8] || (k[8] = P(V((H) => a("navegar", "anterior"), ["prevent", "stop"]), ["left"])),
762
+ k[9] || (k[9] = P(V((H) => a("navegar", "anterior"), ["prevent", "stop"]), ["up"])),
763
+ k[10] || (k[10] = P(V((H) => a("navegar", "siguiente"), ["prevent", "stop"]), ["right"])),
764
+ k[11] || (k[11] = P(V((H) => a("navegar", "siguiente"), ["prevent", "stop"]), ["down"])),
765
+ k[12] || (k[12] = P(V((H) => a("navegar", "primera"), ["prevent", "stop"]), ["home"])),
766
+ k[13] || (k[13] = P(V((H) => a("navegar", "ultima"), ["prevent", "stop"]), ["end"])),
767
+ k[14] || (k[14] = P(V((H) => a("mover", -1), ["alt", "prevent", "stop"]), ["left"])),
768
+ k[15] || (k[15] = P(V((H) => a("mover", -1), ["alt", "prevent", "stop"]), ["up"])),
769
+ k[16] || (k[16] = P(V((H) => a("mover", 1), ["alt", "prevent", "stop"]), ["right"])),
770
+ k[17] || (k[17] = P(V((H) => a("mover", 1), ["alt", "prevent", "stop"]), ["down"])),
771
+ k[18] || (k[18] = P(V((H) => g.value && a("close"), ["prevent", "stop"]), ["delete"]))
770
772
  ],
771
773
  onAuxclick: V(de, ["stop"]),
772
774
  onContextmenu: bt,
@@ -817,7 +819,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
817
819
  class: y(["flex items-center gap-2 rounded-corner border border-ui-border bg-ui-surface/95 px-3 py-1 text-sm shadow-lg", e.active ? "font-bold" : ""]),
818
820
  ref_key: "desplegadoRef",
819
821
  ref: u,
820
- style: fe(P.value),
822
+ style: fe(R.value),
821
823
  onMouseenter: k[2] || (k[2] = (H) => d.value = !0),
822
824
  onMouseleave: k[3] || (k[3] = (H) => d.value = !1),
823
825
  onFocusin: k[4] || (k[4] = (H) => d.value = !0),
@@ -872,8 +874,8 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
872
874
  if (t.fixedOrder) return;
873
875
  const b = h + c;
874
876
  if (b < 0 || b >= t.tabs.length) return;
875
- const p = [...t.tabs], [P] = p.splice(h, 1);
876
- P && (p.splice(b, 0, P), s.value = b, a("reorder", p));
877
+ const p = [...t.tabs], [R] = p.splice(h, 1);
878
+ R && (p.splice(b, 0, R), s.value = b, a("reorder", p));
877
879
  }
878
880
  function L(h) {
879
881
  const c = o.value;
@@ -917,9 +919,9 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
917
919
  m.value === p && u.value !== p ? "ring-2 ring-secondary rounded-corner" : ""
918
920
  ]]),
919
921
  draggable: !e.fixedOrder,
920
- onDragstart: (P) => A(p, P),
921
- onDragover: (P) => g(p, P),
922
- onDrop: V((P) => $(p), ["prevent"]),
922
+ onDragstart: (R) => A(p, R),
923
+ onDragover: (R) => g(p, R),
924
+ onDrop: V((R) => $(p), ["prevent"]),
923
925
  onDragend: j
924
926
  }, [
925
927
  O(nt, {
@@ -928,11 +930,11 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
928
930
  "close-label": e.closeLabel,
929
931
  "dirty-label": e.dirtyLabel,
930
932
  tabindex: p === s.value ? 0 : -1,
931
- onSelect: (P) => f(b.id),
932
- onClose: (P) => a("close", b.id),
933
- onMenu: (P) => a("menu", { id: b.id, ...P }),
934
- onNavegar: (P) => d(p, P),
935
- onMover: (P) => E(p, P)
933
+ onSelect: (R) => f(b.id),
934
+ onClose: (R) => a("close", b.id),
935
+ onMenu: (R) => a("menu", { id: b.id, ...R }),
936
+ onNavegar: (R) => d(p, R),
937
+ onMover: (R) => E(p, R)
936
938
  }, null, 8, ["tab", "active", "close-label", "dirty-label", "tabindex", "onSelect", "onClose", "onMenu", "onNavegar", "onMover"])
937
939
  ], 42, ja))), 128))
938
940
  ], 34),
@@ -1011,7 +1013,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1011
1013
  onKeydown: E[1] || (E[1] = (L) => l("keydown", L))
1012
1014
  }, null, 42, Fa));
1013
1015
  }
1014
- }), Na = { class: "pointer-events-none absolute left-2 flex items-center" }, qa = ["aria-label"], Oe = /* @__PURE__ */ D({
1016
+ }), Na = { class: "pointer-events-none absolute left-2 flex items-center" }, qa = ["aria-label"], Ie = /* @__PURE__ */ D({
1015
1017
  __name: "SearchField",
1016
1018
  props: {
1017
1019
  modelValue: { default: "" },
@@ -1063,7 +1065,7 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1063
1065
  }
1064
1066
  ), ($, j) => (i(), r("div", {
1065
1067
  class: "relative flex items-center",
1066
- onKeydown: R(L, ["enter"])
1068
+ onKeydown: P(L, ["enter"])
1067
1069
  }, [
1068
1070
  B("span", Na, [
1069
1071
  O(N, {
@@ -1155,9 +1157,9 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1155
1157
  f.value ? (i(), r("div", {
1156
1158
  key: 1,
1157
1159
  class: y(d.value),
1158
- onKeydown: R(L, ["esc"])
1160
+ onKeydown: P(L, ["esc"])
1159
1161
  }, [
1160
- O(Oe, {
1162
+ O(Ie, {
1161
1163
  ref_key: "campo",
1162
1164
  ref: u,
1163
1165
  "model-value": e.modelValue,
@@ -1233,12 +1235,12 @@ const wa = ["title", "aria-label"], ka = ["title", "aria-label"], $a = ["title",
1233
1235
  }, null, 8, Ya)) : x("", !0)
1234
1236
  ], 10, Ka));
1235
1237
  }
1236
- }), $e = (e, n) => {
1238
+ }), Oe = (e, n) => {
1237
1239
  const t = e.__vccOpts || e;
1238
1240
  for (const [a, l] of n)
1239
1241
  t[a] = l;
1240
1242
  return t;
1241
- }, Ja = /* @__PURE__ */ $e(Xa, [["__scopeId", "data-v-3c1bd6bd"]]), ot = {
1243
+ }, Ja = /* @__PURE__ */ Oe(Xa, [["__scopeId", "data-v-3c1bd6bd"]]), ot = {
1242
1244
  info: "border-ui-border bg-ui-surface/70 text-tx-main",
1243
1245
  success: "border-status-success/40 bg-status-success/10 text-tx-main",
1244
1246
  warning: "border-status-warning/40 bg-status-warning/10 text-tx-main",
@@ -1358,7 +1360,7 @@ const Za = ["role"], _a = {
1358
1360
  class: y(["pointer-events-auto rounded-corner border px-4 py-2 text-sm shadow-lg backdrop-blur-sm", F(ot)[o.tone ?? "info"]])
1359
1361
  }, [
1360
1362
  S(a.$slots, "default", { aviso: o }, () => [
1361
- Me(M(o.message), 1)
1363
+ Se(M(o.message), 1)
1362
1364
  ])
1363
1365
  ], 10, un))), 128))
1364
1366
  ]),
@@ -1401,7 +1403,7 @@ const Za = ["role"], _a = {
1401
1403
  ], 8, dn));
1402
1404
  }
1403
1405
  }), bn = /[/\-_.]/;
1404
- function Le(e, n) {
1406
+ function Ee(e, n) {
1405
1407
  if (!n) return 100;
1406
1408
  const t = n.toLowerCase();
1407
1409
  return t === e ? 0 : t.startsWith(e) ? 10 : t.split(bn).some((a) => a.startsWith(e)) ? 30 : t.includes(e) ? 40 : 100;
@@ -1411,7 +1413,7 @@ function vn(e, n) {
1411
1413
  if (!t) return e;
1412
1414
  const a = [];
1413
1415
  for (let l = 0; l < e.length; l++) {
1414
- const o = e[l], s = Le(t, o.valor), u = Le(t, o.etiqueta), m = u === 10 ? 20 : u, d = Le(t, o.detalle) === 100 ? 100 : 40, E = Math.min(s, m, d);
1416
+ const o = e[l], s = Ee(t, o.valor), u = Ee(t, o.etiqueta), m = u === 10 ? 20 : u, d = Ee(t, o.detalle) === 100 ? 100 : 40, E = Math.min(s, m, d);
1415
1417
  E !== 100 && a.push({ opcion: o, rango: E, orden: l });
1416
1418
  }
1417
1419
  return a.sort((l, o) => l.rango - o.rango || l.orden - o.orden), a.map((l) => l.opcion);
@@ -1476,7 +1478,7 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1476
1478
  const I = Number(z.getAttribute("data-indice"));
1477
1479
  return Number.isInteger(I) ? I : null;
1478
1480
  }
1479
- function P(T) {
1481
+ function R(T) {
1480
1482
  const z = p(T), I = z === null ? void 0 : A.value[z];
1481
1483
  I && j(I.valor);
1482
1484
  }
@@ -1520,12 +1522,12 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1520
1522
  "aria-haspopup": "listbox",
1521
1523
  onClick: z[0] || (z[0] = (I) => o.value ? h() : C()),
1522
1524
  onKeydown: [
1523
- z[1] || (z[1] = R(V((I) => o.value ? c(1) : C(), ["prevent"]), ["down"])),
1524
- z[2] || (z[2] = R(V((I) => o.value ? c(-1) : C(), ["prevent"]), ["up"]))
1525
+ z[1] || (z[1] = P(V((I) => o.value ? c(1) : C(), ["prevent"]), ["down"])),
1526
+ z[2] || (z[2] = P(V((I) => o.value ? c(-1) : C(), ["prevent"]), ["up"]))
1525
1527
  ]
1526
1528
  }, [
1527
1529
  B("span", gn, [
1528
- Me(M(E.value?.etiqueta ?? e.placeholder) + " ", 1),
1530
+ Se(M(E.value?.etiqueta ?? e.placeholder) + " ", 1),
1529
1531
  E.value?.detalle ? (i(), r("span", hn, M(E.value.detalle), 1)) : x("", !0)
1530
1532
  ]),
1531
1533
  O(N, {
@@ -1539,19 +1541,19 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1539
1541
  key: 0,
1540
1542
  class: y(["absolute z-20 w-full min-w-64 rounded-corner border border-ui-border-strong bg-ui-bg shadow-lg", e.up ? "bottom-full mb-1" : "mt-1"]),
1541
1543
  onKeydown: [
1542
- z[4] || (z[4] = R(V((I) => h(), ["prevent"]), ["escape"])),
1543
- z[5] || (z[5] = R(V((I) => c(1), ["prevent"]), ["down"])),
1544
- z[6] || (z[6] = R(V((I) => c(-1), ["prevent"]), ["up"])),
1545
- z[7] || (z[7] = R(V((I) => b(0), ["prevent"]), ["home"])),
1546
- z[8] || (z[8] = R(V((I) => b(A.value.length - 1), ["prevent"]), ["end"])),
1547
- z[9] || (z[9] = R(V((I) => oe(), ["prevent"]), ["enter"])),
1548
- z[10] || (z[10] = R((I) => h(!1), ["tab"]))
1544
+ z[4] || (z[4] = P(V((I) => h(), ["prevent"]), ["escape"])),
1545
+ z[5] || (z[5] = P(V((I) => c(1), ["prevent"]), ["down"])),
1546
+ z[6] || (z[6] = P(V((I) => c(-1), ["prevent"]), ["up"])),
1547
+ z[7] || (z[7] = P(V((I) => b(0), ["prevent"]), ["home"])),
1548
+ z[8] || (z[8] = P(V((I) => b(A.value.length - 1), ["prevent"]), ["end"])),
1549
+ z[9] || (z[9] = P(V((I) => oe(), ["prevent"]), ["enter"])),
1550
+ z[10] || (z[10] = P((I) => h(!1), ["tab"]))
1549
1551
  ],
1550
- onClick: P,
1552
+ onClick: R,
1551
1553
  onMousemove: le
1552
1554
  }, [
1553
1555
  B("div", xn, [
1554
- O(Oe, {
1556
+ O(Ie, {
1555
1557
  ref_key: "campo",
1556
1558
  ref: f,
1557
1559
  modelValue: l.value,
@@ -1605,7 +1607,7 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1605
1607
  S(n.$slots, "default", {}, void 0, !0)
1606
1608
  ], 2));
1607
1609
  }
1608
- }), An = /* @__PURE__ */ $e(Tn, [["__scopeId", "data-v-45bd4eab"]]), Bn = { class: "flex items-center gap-3 flex-1 min-w-0" }, Sn = ["src", "alt"], Mn = { class: "min-w-0" }, Vn = { class: "font-semibold truncate" }, In = {
1610
+ }), An = /* @__PURE__ */ Oe(Tn, [["__scopeId", "data-v-45bd4eab"]]), Bn = { class: "flex items-center gap-3 flex-1 min-w-0" }, Sn = ["src", "alt"], Mn = { class: "min-w-0" }, Vn = { class: "font-semibold truncate" }, In = {
1609
1611
  key: 0,
1610
1612
  class: "text-xs text-gray-400 truncate"
1611
1613
  }, On = {
@@ -1646,7 +1648,7 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1646
1648
  "[DeviceCard] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo."
1647
1649
  );
1648
1650
  }), (s, u) => (i(), r("div", {
1649
- class: y(["flex items-center justify-between background rounded-vsk px-6 py-3 mb-4", [{ "border-l-4 border-green-500": e.isConnected }, e.customClass]]),
1651
+ class: y(["flex items-center justify-between background rounded-corner px-6 py-3 mb-4", [{ "border-l-4 border-green-500": e.isConnected }, e.customClass]]),
1650
1652
  onClick: o
1651
1653
  }, [
1652
1654
  B("div", Bn, [
@@ -1673,7 +1675,7 @@ const yn = ["disabled", "aria-label", "aria-expanded"], gn = { class: "min-w-0 f
1673
1675
  ]),
1674
1676
  e.showActionButton ? (i(), r("button", {
1675
1677
  key: 0,
1676
- class: "bg-vsk-primary rounded-vsk px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70",
1678
+ class: "bg-primary text-tx-on-primary rounded-corner px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70",
1677
1679
  onClick: V(l, ["stop"])
1678
1680
  }, M(e.actionLabel), 1)) : x("", !0),
1679
1681
  e.showStatusIndicator && e.isConnected ? (i(), r("div", Pn)) : x("", !0)
@@ -1726,7 +1728,7 @@ const Nn = /* @__PURE__ */ D({
1726
1728
  ariaLabel: {}
1727
1729
  },
1728
1730
  setup(e) {
1729
- const n = e, t = Be(), a = v(() => t.class ?? ""), l = v(() => {
1731
+ const n = e, t = Ae(), a = v(() => t.class ?? ""), l = v(() => {
1730
1732
  const { class: C, ...h } = t;
1731
1733
  return h;
1732
1734
  }), o = v(() => n.size === "full" ? "relative z-10 h-full w-full overflow-hidden rounded-corner-window text-tx-main" : `${Un} ${n.size === "lg" ? "max-w-2xl" : "max-w-lg"}`), s = st(), u = v(() => s.abierto.value), m = w(null), f = w(null);
@@ -1845,7 +1847,7 @@ const Nn = /* @__PURE__ */ D({
1845
1847
  ], 8, Zn));
1846
1848
  }
1847
1849
  }), ut = /* @__PURE__ */ Symbol("menú de vasak");
1848
- function Ce() {
1850
+ function $e() {
1849
1851
  const e = we(ut, null);
1850
1852
  if (e) return e;
1851
1853
  const n = w(!1);
@@ -1942,7 +1944,7 @@ const el = { class: "relative inline-block" }, tl = /* @__PURE__ */ D({
1942
1944
  sideOffset: { default: 4 }
1943
1945
  },
1944
1946
  setup(e) {
1945
- const n = e, t = Ce(), { idDelMenu: a, idDeLaEtiqueta: l } = t, o = v(() => t.disparador.value), s = v(() => t.abierto.value), u = w(null), m = w({
1947
+ const n = e, t = $e(), { idDelMenu: a, idDeLaEtiqueta: l } = t, o = v(() => t.disparador.value), s = v(() => t.abierto.value), u = w(null), m = w({
1946
1948
  top: 0,
1947
1949
  left: 0,
1948
1950
  techo: null
@@ -1970,7 +1972,7 @@ const el = { class: "relative inline-block" }, tl = /* @__PURE__ */ D({
1970
1972
  }
1971
1973
  function L() {
1972
1974
  if (!o.value || !u.value) return;
1973
- const c = o.value.getBoundingClientRect(), b = u.value.scrollHeight, p = u.value.offsetWidth, P = n.side === "top" || n.side === "bottom", le = P ? b : p;
1975
+ const c = o.value.getBoundingClientRect(), b = u.value.scrollHeight, p = u.value.offsetWidth, R = n.side === "top" || n.side === "bottom", le = R ? b : p;
1974
1976
  let K = n.side;
1975
1977
  const oe = d(K, c);
1976
1978
  oe < le && d(f[K], c) > oe && (K = f[K]);
@@ -1992,7 +1994,7 @@ const el = { class: "relative inline-block" }, tl = /* @__PURE__ */ D({
1992
1994
  break;
1993
1995
  }
1994
1996
  }
1995
- if (P)
1997
+ if (R)
1996
1998
  switch (n.align) {
1997
1999
  case "start":
1998
2000
  T = c.left;
@@ -2064,8 +2066,8 @@ const el = { class: "relative inline-block" }, tl = /* @__PURE__ */ D({
2064
2066
  s.value && (c && u.value?.contains(c.target) || L());
2065
2067
  }
2066
2068
  function h(c) {
2067
- const b = c.target, p = !!b.closest("[data-dropdown-content]"), P = !!o.value?.contains(b);
2068
- !p && !P && t.cerrar();
2069
+ const b = c.target, p = !!b.closest("[data-dropdown-content]"), R = !!o.value?.contains(b);
2070
+ !p && !R && t.cerrar();
2069
2071
  }
2070
2072
  return W(() => {
2071
2073
  document.addEventListener("click", h), window.addEventListener("resize", C), window.addEventListener("scroll", C, !0);
@@ -2081,7 +2083,7 @@ const el = { class: "relative inline-block" }, tl = /* @__PURE__ */ D({
2081
2083
  onLeave: b[2] || (b[2] = (p) => p.offsetHeight)
2082
2084
  }, {
2083
2085
  default: G(() => [
2084
- Se(B("div", ce({
2086
+ Be(B("div", ce({
2085
2087
  ref_key: "contenido",
2086
2088
  ref: u
2087
2089
  }, c.$attrs, {
@@ -2123,7 +2125,7 @@ const el = { class: "relative inline-block" }, tl = /* @__PURE__ */ D({
2123
2125
  },
2124
2126
  emits: ["select", "click"],
2125
2127
  setup(e, { emit: n }) {
2126
- const t = e, a = n, l = Ce();
2128
+ const t = e, a = n, l = $e();
2127
2129
  function o(s) {
2128
2130
  t.disabled || (a("select"), a("click", s), l.cerrar({ devolverElFoco: !0 }));
2129
2131
  }
@@ -2140,8 +2142,8 @@ const el = { class: "relative inline-block" }, tl = /* @__PURE__ */ D({
2140
2142
  ]),
2141
2143
  onClick: o,
2142
2144
  onKeydown: [
2143
- R(V(o, ["prevent"]), ["enter"]),
2144
- R(V(o, ["prevent"]), ["space"])
2145
+ P(V(o, ["prevent"]), ["enter"]),
2146
+ P(V(o, ["prevent"]), ["space"])
2145
2147
  ]
2146
2148
  }, [
2147
2149
  S(s.$slots, "default")
@@ -2150,7 +2152,7 @@ const el = { class: "relative inline-block" }, tl = /* @__PURE__ */ D({
2150
2152
  }), rl = /* @__PURE__ */ D({
2151
2153
  __name: "DropdownMenuLabel",
2152
2154
  setup(e) {
2153
- const n = Ce(), t = `${ct()}-titulo`;
2155
+ const n = $e(), t = `${ct()}-titulo`;
2154
2156
  return W(() => {
2155
2157
  n.ponerLaEtiqueta(t);
2156
2158
  }), pe(() => {
@@ -2196,7 +2198,7 @@ const dl = D({
2196
2198
  disabled: { type: Boolean, default: !1 }
2197
2199
  },
2198
2200
  setup(e, { slots: n, attrs: t }) {
2199
- const a = Ce(), l = w(null);
2201
+ const a = $e(), l = w(null);
2200
2202
  function o() {
2201
2203
  a.ponerElDisparador(cl(l.value));
2202
2204
  }
@@ -2266,7 +2268,7 @@ const dl = D({
2266
2268
  S(n.$slots, "default", {}, void 0, !0)
2267
2269
  ], 2));
2268
2270
  }
2269
- }), bl = /* @__PURE__ */ $e(ml, [["__scopeId", "data-v-c0d9d9cb"]]), vl = /* @__PURE__ */ D({
2271
+ }), bl = /* @__PURE__ */ Oe(ml, [["__scopeId", "data-v-c0d9d9cb"]]), vl = ["role", "tabindex", "onKeydown"], pl = /* @__PURE__ */ D({
2270
2272
  __name: "ListCard",
2271
2273
  props: {
2272
2274
  clickable: { type: Boolean, default: !1 },
@@ -2279,18 +2281,24 @@ const dl = D({
2279
2281
  };
2280
2282
  return (o, s) => (i(), r("div", {
2281
2283
  class: y([
2282
- "flex items-center justify-between background p-3 rounded-vsk border border-vsk-primary/70 transition-colors duration-200",
2284
+ "flex items-center justify-between background p-3 rounded-corner border border-ui-border transition-colors duration-200",
2283
2285
  {
2284
- "hover:bg-vsk-primary/5 cursor-pointer": t.clickable
2286
+ "hover:bg-ui-surface/60 cursor-pointer": t.clickable
2285
2287
  },
2286
2288
  e.customClass
2287
2289
  ]),
2288
- onClick: l
2290
+ role: t.clickable ? "button" : void 0,
2291
+ tabindex: t.clickable ? 0 : void 0,
2292
+ onClick: l,
2293
+ onKeydown: [
2294
+ P(V(l, ["self", "prevent"]), ["enter"]),
2295
+ P(V(l, ["self", "prevent"]), ["space"])
2296
+ ]
2289
2297
  }, [
2290
- S(o.$slots, "default", {}, void 0, !0)
2291
- ], 2));
2298
+ S(o.$slots, "default")
2299
+ ], 42, vl));
2292
2300
  }
2293
- }), pl = /* @__PURE__ */ $e(vl, [["__scopeId", "data-v-f86d47da"]]), yl = { class: "background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-[background-color] duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80" }, gl = ["title", "aria-label"], hl = ["src"], xl = {
2301
+ }), yl = { class: "background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-[background-color] duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80" }, gl = ["title", "aria-label"], hl = ["src"], xl = {
2294
2302
  key: 1,
2295
2303
  class: "w-8 h-8 flex items-center justify-center"
2296
2304
  }, wl = ["src"], kl = ["min", "max", "value", "aria-label", "aria-valuetext"], $l = /* @__PURE__ */ D({
@@ -2595,7 +2603,7 @@ const Vl = { class: "inline-block" }, Il = /* @__PURE__ */ D({
2595
2603
  sideOffset: { default: 4 }
2596
2604
  },
2597
2605
  setup(e) {
2598
- const n = Be(), t = v(() => n.class ?? ""), a = e, l = mt(), o = v(() => l.abierto.value), s = w(null), u = w({ top: 0, left: 0 });
2606
+ const n = Ae(), t = v(() => n.class ?? ""), a = e, l = mt(), o = v(() => l.abierto.value), s = w(null), u = w({ top: 0, left: 0 });
2599
2607
  function m() {
2600
2608
  const f = l.disparador.value;
2601
2609
  if (!f || !s.value) return;
@@ -2627,7 +2635,7 @@ const Vl = { class: "inline-block" }, Il = /* @__PURE__ */ D({
2627
2635
  "leave-to-class": "opacity-0 scale-95"
2628
2636
  }, {
2629
2637
  default: G(() => [
2630
- Se(B("div", {
2638
+ Be(B("div", {
2631
2639
  ref_key: "globo",
2632
2640
  ref: s,
2633
2641
  style: fe({ position: "fixed", top: `${u.value.top}px`, left: `${u.value.left}px`, zIndex: 50 }),
@@ -2749,7 +2757,7 @@ const Vl = { class: "inline-block" }, Il = /* @__PURE__ */ D({
2749
2757
  on,
2750
2758
  sn,
2751
2759
  mn,
2752
- Oe,
2760
+ Ie,
2753
2761
  Ln,
2754
2762
  lt,
2755
2763
  cn,
@@ -2794,7 +2802,7 @@ export {
2794
2802
  rt as CLAVE_DEL_DIALOGO,
2795
2803
  ut as CLAVE_DEL_MENU,
2796
2804
  ft as CLAVE_DEL_TOOLTIP,
2797
- Ve as CLAVE_DE_LA_BARRA,
2805
+ Me as CLAVE_DE_LA_BARRA,
2798
2806
  An as ConfigSection,
2799
2807
  Rn as DeviceCard,
2800
2808
  Nn as Dialog,
@@ -2811,12 +2819,12 @@ export {
2811
2819
  dl as DropdownMenuTrigger,
2812
2820
  on as EmptyState,
2813
2821
  bl as FormGroup,
2814
- Ie as LOS_TRES_CONTROLES,
2822
+ Ve as LOS_TRES_CONTROLES,
2815
2823
  pl as ListCard,
2816
2824
  sn as LoadingState,
2817
2825
  va as POSICIONES,
2818
2826
  mn as ProgressBar,
2819
- Oe as SearchField,
2827
+ Ie as SearchField,
2820
2828
  Ln as SearchSelect,
2821
2829
  ba as SelectField,
2822
2830
  ua as SideBar,
@@ -2842,11 +2850,11 @@ export {
2842
2850
  Xl as default,
2843
2851
  pa as esPosicion,
2844
2852
  Ql as olvidarLosIconosDelTema,
2845
- Ae as orientacionDe,
2853
+ Te as orientacionDe,
2846
2854
  ha as posicionDe,
2847
2855
  it as rolDelTono,
2848
2856
  st as usarElDialogo,
2849
- Ce as usarElMenu,
2857
+ $e as usarElMenu,
2850
2858
  mt as usarElTooltip,
2851
2859
  he as usarLaBarra,
2852
2860
  xa as usarLaPosicionDeLaBarra,
@@ -1 +1 @@
1
- (function(d,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@tauri-apps/api/event"),require("@vasakgroup/plugin-vicons"),require("@tauri-apps/api/window"),require("@vasakgroup/tauri-plugin-i18n")):typeof define=="function"&&define.amd?define(["exports","vue","@tauri-apps/api/event","@vasakgroup/plugin-vicons","@tauri-apps/api/window","@vasakgroup/tauri-plugin-i18n"],e):(d=typeof globalThis<"u"?globalThis:d||self,e(d.VueLibVasak={},d.Vue,d.TauriEvent,d.VasakVicons,d.TauriWindow,d.tauriPluginI18n))})(this,(function(d,e,wt,we,Bt,Ct){"use strict";const Et="vicons:theme-changed",J=new Map,R=new Map,G=e.ref(0);let K=0,Q=null,q=null;function $t(){J.clear(),R.clear(),K=0,Q=null,q=null,G.value=0,P.clear(),j.clear(),Be=0,F?.disconnect(),F=null,ae=!1,M!==null&&(clearTimeout(M),M=null),I&&(I.cancelado=!0),I=null}const Vt=100,ne=10,zt=16,P=new Map,j=new Set;let Be=0,F=null,ae=!1;function Dt(){return ae?F:(ae=!0,typeof IntersectionObserver>"u"?null:(F=new IntersectionObserver(t=>{for(const a of t){const o=a.target.dataset?.iconoId;if(o==null)continue;const n=Number.parseInt(o,10);a.isIntersecting?j.add(n):j.delete(n)}},{threshold:0}),F))}function St(t){const a=Be++;return P.set(a,{recargar:t,elemento:null}),j.add(a),a}function Lt(t,a){const o=P.get(t);if(!o||o.elemento===a||(o.elemento&&(F?.unobserve(o.elemento),delete o.elemento.dataset.iconoId,o.elemento=null),!a))return;const n=Dt();n&&(o.elemento=a,a.dataset.iconoId=String(t),n.observe(a))}function Nt(t){const a=P.get(t);a?.elemento&&(F?.unobserve(a.elemento),delete a.elemento.dataset.iconoId),j.delete(t),P.delete(t)}let M=null,I=null;function Tt(t){return new Promise(a=>setTimeout(a,t))}async function Mt(t){const a=[...P.keys()],o=a.filter(l=>j.has(l)),n=a.filter(l=>!j.has(l));for(const l of[o,n])for(let r=0;r<l.length;r+=ne){if(t.cancelado)return;const i=l.slice(r,r+ne);if(await Promise.allSettled(i.map(s=>P.get(s)?.recargar()??Promise.resolve())),t.cancelado)return;(r+ne<l.length||l===o)&&await Tt(zt)}I===t&&(I=null)}function At(){M!==null&&(clearTimeout(M),M=null),I&&(I.cancelado=!0);const t={cancelado:!1};I=t,Mt(t)}function It(){J.clear(),R.clear(),G.value++,M!==null&&clearTimeout(M),M=setTimeout(()=>{M=null,At()},Vt)}function Ce(){return K++,Q||q?q??Promise.resolve():(q=wt.listen(Et,It).then(t=>{K<=0?t():Q=t,q=null}),q)}function le(){K--,!(K>0)&&(K=0,Q?.(),Q=null)}function Ot(t,a){const o=`${a}:${t}`,n=J.get(o);if(n!==void 0)return Promise.resolve(n);const l=R.get(o);if(l)return l;const r=G.value,i=(a==="symbol"?we.getSymbolSource(t):we.getIconSource(t)).then(s=>(G.value===r&&J.set(o,s),s)).finally(()=>{R.get(o)===i&&R.delete(o)});return R.set(o,i),i}function Pt(){let t=!1;return e.onMounted(async()=>{await Ce(),t&&le()}),e.onUnmounted(()=>{t||(t=!0,le())}),e.readonly(G)}function jt(t,a){const o=e.ref("");let n=!1,l=0;const r=St(async()=>{await i()});async function i(){const s=++l,f=t.value;if(!f){o.value="";return}const u=await Ot(f,a.value);s===l&&!n&&(o.value=u)}return e.onMounted(async()=>{await Ce(),n||await i()}),e.onUnmounted(()=>{n=!0,Nt(r),le()}),e.watch([t,a],i),{fuente:o,mirarElemento:s=>Lt(r,s)}}const Ft=["src","alt"],D=e.defineComponent({__name:"ThemeIcon",props:{name:{},type:{default:"icon"},size:{default:18},alt:{default:""}},setup(t){const a=t,{fuente:o,mirarElemento:n}=jt(e.toRef(a,"name"),e.toRef(a,"type")),l=e.useTemplateRef("dibujo");e.watch(l,i=>n(i),{immediate:!0});const r=e.computed(()=>`${a.size}px`);return(i,s)=>e.unref(o)?(e.openBlock(),e.createElementBlock("img",{key:0,ref_key:"dibujo",ref:l,src:e.unref(o),alt:t.alt,style:e.normalizeStyle({width:r.value,height:r.value}),class:"shrink-0 object-contain"},null,12,Ft)):(e.openBlock(),e.createElementBlock("span",{key:1,ref_key:"dibujo",ref:l,style:e.normalizeStyle({width:r.value,height:r.value}),class:"shrink-0"},null,4))}}),Rt={class:"flex flex-col gap-2"},Kt=["aria-expanded"],qt={key:1,class:"flex flex-col gap-1"},re=e.defineComponent({__name:"SideGroup",props:{title:{},collapsed:{type:Boolean,default:!1},defaultOpen:{type:Boolean,default:!0}},setup(t){const a=t,o=e.ref(a.defaultOpen);return e.watch(()=>a.collapsed,n=>{n&&(o.value=!0)}),(n,l)=>(e.openBlock(),e.createElementBlock("section",Rt,[t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",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","aria-expanded":o.value,onClick:l[0]||(l[0]=r=>o.value=!o.value)},[e.createElementVNode("span",null,e.toDisplayString(t.title),1),e.createVNode(D,{name:"pan-down-symbolic",type:"symbol",size:12,class:e.normalizeClass(["transition-transform duration-200",o.value?"":"-rotate-90"])},null,8,["class"])],8,Kt)),o.value||t.collapsed?(e.openBlock(),e.createElementBlock("div",qt,[e.renderSlot(n.$slots,"default")])):e.createCommentVNode("",!0)]))}}),Ut=["title","aria-label","disabled","aria-current"],Ht={key:1},Wt={key:0,class:"min-w-0 flex-1 truncate font-medium"},Gt={key:1,class:"rounded-corner bg-ui-surface px-2 py-0.5 font-semibold text-tx-muted text-xs"},ie=e.defineComponent({__name:"SideButton",props:{label:{},icon:{default:""},active:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},badge:{default:""}},emits:["click"],setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("button",{type:"button",title:t.collapsed?t.label:void 0,"aria-label":t.collapsed?t.label:void 0,disabled:t.disabled,"aria-current":t.active?"page":void 0,class:e.normalizeClass(["group relative flex w-full items-center gap-3 rounded-corner border px-3 py-2 text-left text-sm transition-[color,background-color,border-color,scale] duration-200 active:scale-[0.98]",[t.active?"border-secondary bg-primary/15 text-tx-main shadow-sm":"border-transparent bg-transparent hover:border-ui-border hover:bg-ui-surface/70",t.disabled?"cursor-not-allowed opacity-60":"cursor-pointer",t.collapsed?"justify-center px-2":""]]),onClick:o[0]||(o[0]=n=>a.$emit("click"))},[e.createElementVNode("span",{class:e.normalizeClass(["flex h-8 w-8 shrink-0 items-center justify-center rounded-corner font-semibold text-xs uppercase tracking-wide",t.active?"border-secondary bg-primary/20":""]),"aria-hidden":"true"},[t.icon?(e.openBlock(),e.createBlock(D,{key:0,name:t.icon,size:20},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Ht,e.toDisplayString(t.label.charAt(0).toUpperCase()),1))],2),t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Wt,e.toDisplayString(t.label),1)),!t.collapsed&&t.badge!==""?(e.openBlock(),e.createElementBlock("span",Gt,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0)],10,Ut))}}),Qt={key:0,class:"flex flex-col gap-2 border-ui-border border-b p-2"},Yt={class:"flex items-center gap-2"},Xt=["aria-label","aria-expanded"],Jt={key:0,class:"min-w-0 flex-1"},Zt={key:0,class:"truncate font-semibold text-sm"},_t={key:1,class:"truncate text-tx-muted text-xs"},vt={key:0},eo={key:1,class:"flex border-ui-border border-b p-2"},to=["aria-label","aria-expanded"],oo={class:"flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2"},Ee="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",$e=767,Ve=e.defineComponent({__name:"SideBar",props:{title:{default:""},subtitle:{default:""},categories:{default:()=>[]},modelValue:{default:""},collapsed:{type:Boolean,default:void 0},collapseLabel:{default:"Collapse"},expandLabel:{default:"Expand"}},emits:["update:modelValue","update:collapsed","change"],setup(t,{expose:a,emit:o}){const n=t,l=o,r=e.ref(n.collapsed??!1),i=e.ref(!1);let s=null,f=null;const u=e.computed(()=>i.value||r.value),m=e.computed(()=>!!(n.title||n.subtitle));e.computed(()=>n.categories.length>0);function B(){return document.documentElement?.clientWidth||window.innerWidth}function C(){i.value=B()<=$e}function $(){r.value=!r.value,l("update:collapsed",r.value)}function y(h){l("update:modelValue",h),l("change",h)}return e.watch(()=>n.collapsed,h=>{h!==void 0&&(r.value=h)}),e.onMounted(()=>{s=window.matchMedia(`(max-width: ${$e}px)`),C(),s.addEventListener("change",C),window.addEventListener("resize",C),typeof ResizeObserver<"u"&&document.documentElement&&(f=new ResizeObserver(C),f.observe(document.documentElement))}),e.onBeforeUnmount(()=>{s?.removeEventListener("change",C),window.removeEventListener("resize",C),f?.disconnect(),f=null}),a({collapsed:u}),(h,z)=>(e.openBlock(),e.createElementBlock("aside",{class:e.normalizeClass(["relative z-30 flex h-full shrink-0 flex-col rounded-corner border border-ui-border bg-ui-surface/70 transition-[width] duration-300",["w-[84px]",u.value?"md:w-[84px]":"md:w-72"]])},[m.value||h.$slots.header?(e.openBlock(),e.createElementBlock("header",Qt,[e.createElementVNode("div",Yt,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(Ee),"aria-label":u.value?t.expandLabel:t.collapseLabel,"aria-expanded":!u.value,onClick:$},[e.createVNode(D,{name:u.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,Xt),m.value&&!u.value?(e.openBlock(),e.createElementBlock("div",Jt,[t.title?(e.openBlock(),e.createElementBlock("p",Zt,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.subtitle?(e.openBlock(),e.createElementBlock("p",_t,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),h.$slots.header&&!u.value?(e.openBlock(),e.createElementBlock("div",vt,[e.renderSlot(h.$slots,"header",{collapsed:u.value})])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",eo,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(Ee),"aria-label":u.value?t.expandLabel:t.collapseLabel,"aria-expanded":!u.value,onClick:$},[e.createVNode(D,{name:u.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,to)])),e.createElementVNode("div",oo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.categories,x=>(e.openBlock(),e.createBlock(re,{key:x.id,title:x.title,collapsed:u.value},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.items,k=>(e.openBlock(),e.createBlock(ie,{key:k.id,label:k.label,icon:k.icon,badge:k.badge,disabled:k.disabled,collapsed:u.value,active:t.modelValue===k.id,onClick:c=>y(k.id)},null,8,["label","icon","badge","disabled","collapsed","active","onClick"]))),128))]),_:2},1032,["title","collapsed"]))),128)),e.renderSlot(h.$slots,"default",{collapsed:u.value})])],2))}}),no={class:"flex min-w-0 flex-col gap-1"},ao=["for"],lo={class:"relative flex min-w-0 items-center"},ro=["id"],ze=e.defineComponent({inheritAttrs:!1,__name:"SelectField",props:e.mergeModels({label:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(t,{emit:a}){const o=t,n=e.useAttrs(),l=e.useId(),r=e.computed(()=>n.id??l),i=a,[s,f]=e.useModel(t,"modelValue",{set(u){return f.number?Number(u):u}});return(u,m)=>(e.openBlock(),e.createElementBlock("div",no,[o.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:r.value,class:"text-tx-muted text-xs"},e.toDisplayString(o.label),9,ao)):e.createCommentVNode("",!0),e.createElementVNode("div",lo,[e.withDirectives(e.createElementVNode("select",e.mergeProps({id:r.value,"onUpdate:modelValue":m[0]||(m[0]=B=>e.isRef(s)?s.value=B:null),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"},e.unref(n),{onChange:m[1]||(m[1]=B=>i("change",B))}),[e.renderSlot(u.$slots,"default")],16,ro),[[e.vModelSelect,e.unref(s)]]),e.createVNode(D,{name:"pan-down-symbolic",type:"symbol",size:14,class:"pointer-events-none absolute right-2"})])]))}}),Z=Symbol("barra de vasak");function _(t){return t==="left"||t==="right"?"vertical":"horizontal"}const De=["top","bottom","left","right"];function Se(t){return typeof t=="string"&&De.includes(t)}function U(){const t=e.inject(Z,null);if(t)return t;const a=e.ref("top");return{posicion:a,orientacion:e.computed(()=>_(a.value)),vertical:e.computed(()=>_(a.value)==="vertical")}}const v=["minimize","maximize","close"],io="window",so="barPosition";function Le(t){const o=t?.[io]?.[so];return Se(o)?o:null}function Ne(t="top"){const a=e.ref(t);let o=null,n=!1;async function l(){try{const{readConfig:r}=await import("@vasakgroup/plugin-config-manager"),i=await r();a.value=Le(i)??t}catch{}}return e.onMounted(async()=>{await l();try{const{listen:r}=await import("@tauri-apps/api/event"),i=await r("config-changed",()=>{l()});if(n){i();return}o=i}catch{}}),e.onBeforeUnmount(()=>{n=!0,o?.(),o=null}),a}function Te(t){const a=e.getCurrentInstance(),o={};for(const n of t){const l=`on${n[0].toUpperCase()}${n.slice(1)}`;a?.vnode.props?.[l]&&(o[n]=()=>a.emit(n))}return o}const co=["title","aria-label"],mo=["title","aria-label"],uo=["title","aria-label"],se="flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors",ce=e.defineComponent({__name:"WindowControls",props:{controls:{default:()=>v},minimizeLabel:{},maximizeLabel:{},closeLabel:{}},emits:["minimize","maximize","close"],setup(t,{emit:a}){const o=t,{t:n}=Ct.useI18n(),l=e.computed(()=>o.minimizeLabel??n("ventana.minimizar")),r=e.computed(()=>o.maximizeLabel??n("ventana.maximizar")),i=e.computed(()=>o.closeLabel??n("ventana.cerrar")),s=a,{vertical:f}=U(),u=e.computed(()=>({minimize:o.controls.includes("minimize"),maximize:o.controls.includes("maximize"),close:o.controls.includes("close")}));function m(){return Bt.getCurrentWindow()}const B=e.getCurrentInstance();function C(z){return!!B?.vnode.props?.[`on${z}`]}function $(){if(C("Minimize"))return s("minimize");m().minimize()}function y(){if(C("Maximize"))return s("maximize");m().toggleMaximize()}function h(){if(C("Close"))return s("close");m().close()}return(z,x)=>t.controls.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex shrink-0 gap-1",e.unref(f)?"flex-col":""]),"data-tauri-drag-region":""},[u.value.minimize?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass([se,"hover:bg-status-success"]),title:l.value,"aria-label":l.value,onClick:x[0]||(x[0]=k=>$())},[e.createVNode(D,{name:"window-minimize",type:"symbol",size:24})],10,co)):e.createCommentVNode("",!0),u.value.maximize?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass([se,"hover:bg-status-warning"]),title:r.value,"aria-label":r.value,onClick:x[1]||(x[1]=k=>y())},[e.createVNode(D,{name:"window-maximize",type:"symbol",size:24})],10,mo)):e.createCommentVNode("",!0),u.value.close?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:e.normalizeClass([se,"hover:bg-status-error"]),title:i.value,"aria-label":i.value,onClick:x[2]||(x[2]=k=>h())},[e.createVNode(D,{name:"window-close",type:"symbol",size:24})],10,uo)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),fo={key:0,class:"flex shrink-0 items-center","data-tauri-drag-region":""},po={key:1,class:"min-w-0 shrink truncate text-sm","data-tauri-drag-region":""},de=e.defineComponent({__name:"AppBar",props:{position:{default:null},title:{default:""},minimizeLabel:{},maximizeLabel:{},closeLabel:{},controls:{default:()=>v}},emits:["minimize","maximize","close"],setup(t){const a=t,o=U(),n=e.computed(()=>a.position??o.posicion.value),l=e.computed(()=>n.value==="left"||n.value==="right");return e.provide(Z,{posicion:n,orientacion:e.computed(()=>l.value?"vertical":"horizontal"),vertical:l}),(r,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative flex shrink-0 items-center gap-2 p-1 font-title",l.value?"h-full flex-col":"w-full"]),"data-tauri-drag-region":""},[r.$slots.identidad?(e.openBlock(),e.createElementBlock("div",fo,[e.renderSlot(r.$slots,"identidad")])):e.createCommentVNode("",!0),(r.$slots.titulo||t.title)&&!l.value?(e.openBlock(),e.createElementBlock("p",po,[e.renderSlot(r.$slots,"titulo",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-0 min-w-0 flex-1 items-center gap-2 overflow-auto",l.value?"flex-col":""]),"data-tauri-drag-region":""},[e.renderSlot(r.$slots,"default")],2),r.$slots.acciones?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["flex shrink-0 items-center gap-1",l.value?"flex-col":""])},[e.renderSlot(r.$slots,"acciones")],2)):e.createCommentVNode("",!0),e.createVNode(ce,e.mergeProps({controls:t.controls,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel},e.toHandlers(e.unref(Te)(["minimize","maximize","close"]))),null,16,["controls","minimize-label","maximize-label","close-label"]),r.$slots.centro?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["pointer-events-none absolute flex items-center justify-center",l.value?"inset-x-0 top-1/2 -translate-y-1/2 flex-col":"inset-y-0 left-1/2 -translate-x-1/2"])},[e.createElementVNode("div",{class:e.normalizeClass(["pointer-events-auto flex items-center gap-2",l.value?"flex-col":""])},[e.renderSlot(r.$slots,"centro")],2)],2)):e.createCommentVNode("",!0)],2))}}),bo={class:"flex min-h-0 min-w-0 flex-1"},Me=e.defineComponent({__name:"WindowFrame",props:{position:{default:null},title:{default:""},minimizeLabel:{},maximizeLabel:{},closeLabel:{},controls:{default:()=>v},hideBar:{type:Boolean,default:!1}},emits:["minimize","maximize","close"],setup(t){const a=t,o=Ne(),n=e.computed(()=>a.position??o.value),l=e.computed(()=>_(n.value)),r=e.computed(()=>l.value==="vertical");e.provide(Z,{posicion:n,orientacion:l,vertical:r});const i={top:"flex-col",bottom:"flex-col-reverse",left:"flex-row",right:"flex-row-reverse"};return(s,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex h-screen w-screen overflow-hidden rounded-corner-window border border-ui-border bg-ui-bg/80",i[n.value]])},[t.hideBar?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(de,e.mergeProps({key:0,position:n.value,title:t.title,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel,controls:t.controls},e.toHandlers(e.unref(Te)(["minimize","maximize","close"]))),e.createSlots({default:e.withCtx(()=>[e.renderSlot(s.$slots,"barra")]),_:2},[s.$slots.identidad?{name:"identidad",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"identidad")]),key:"0"}:void 0,s.$slots.titulo?{name:"titulo",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"titulo")]),key:"1"}:void 0,s.$slots.centro?{name:"centro",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"centro")]),key:"2"}:void 0,s.$slots.acciones?{name:"acciones",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"acciones")]),key:"3"}:void 0]),1040,["position","title","minimize-label","maximize-label","close-label","controls"])),e.createElementVNode("div",bo,[e.renderSlot(s.$slots,"default")])],2))}}),yo=["aria-selected","title","aria-label","tabindex"],ko={key:1,"aria-hidden":"true"},go={key:2,class:"min-w-0 flex-1 truncate"},ho=["title","aria-label"],xo={class:"whitespace-nowrap"},wo={key:0,class:"size-2 shrink-0 rounded-full bg-current","aria-hidden":"true"},Bo=["title","aria-label"],Co=500,Ae=8,Ie=6,me=e.defineComponent({__name:"TabItem",props:{tab:{},active:{type:Boolean,default:!1},closeLabel:{default:"Close"},dirtyLabel:{default:"Unsaved changes"},tabindex:{default:0}},emits:["select","close","menu","mover","navegar"],setup(t,{emit:a}){const o=t,n=a,{vertical:l,posicion:r}=U(),i=e.ref(null),s=e.ref(null),f=e.ref(!1),u=e.ref(!1),m=e.ref(!1),B=e.ref({top:0,left:0,right:0});let C=null,$=null;const y=e.computed(()=>o.tab.closable!==!1),h=e.computed(()=>o.tab.tooltip??o.tab.label),z=e.computed(()=>o.tab.dirty?`${o.tab.label} · ${o.dirtyLabel}`:o.tab.label),x=e.computed(()=>o.tab.label.trim().charAt(0).toUpperCase()),k=e.computed(()=>f.value||m.value),c=e.computed(()=>!!o.tab.dirty&&!(k.value&&y.value)),p=e.computed(()=>y.value&&(k.value||o.active||!o.tab.dirty)),b=e.computed(()=>l.value&&(f.value||u.value||m.value)),S=e.computed(()=>{const L={position:"fixed",top:`${B.value.top}px`,zIndex:50};return r.value==="right"?{...L,right:`${B.value.right+Ie}px`}:{...L,left:`${B.value.left+Ie}px`}});function H(){const L=i.value;if(!L)return;const g=L.getBoundingClientRect();B.value={top:g.top,left:g.right,right:window.innerWidth-g.left}}function T(L){const g=L.relatedTarget;g&&s.value?.contains(g)||(m.value=!1)}function W(){f.value=!0,H()}function A(){u.value=!0,H()}function E(){C!==null&&clearTimeout(C),C=null,$=null}function w(L){L.button===0&&($={x:L.clientX,y:L.clientY},C=setTimeout(()=>{$&&n("menu",$),E()},Co))}function V(L){if(!$)return;(Math.abs(L.clientX-$.x)>Ae||Math.abs(L.clientY-$.y)>Ae)&&E()}function X(L){L.button===1&&y.value&&(L.preventDefault(),n("close"))}function Xn(L){L.preventDefault(),n("menu",{x:L.clientX,y:L.clientY})}return e.onBeforeUnmount(E),(L,g)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"raiz",ref:i,class:e.normalizeClass(["group relative flex shrink-0 cursor-pointer items-center gap-2 rounded-corner border border-ui-border transition-colors",[t.active?"bg-primary font-bold text-tx-on-primary":"bg-ui-bg/80 hover:bg-ui-surface/70",e.unref(l)?"size-8 justify-center p-0 text-sm":"w-34 max-w-34 px-3 py-1 text-sm"]]),role:"tab","aria-selected":t.active,title:h.value,"aria-label":z.value,tabindex:t.tabindex,onClick:g[5]||(g[5]=e.withModifiers(N=>n("select"),["stop"])),onKeydown:[g[6]||(g[6]=e.withKeys(e.withModifiers(N=>n("select"),["stop"]),["enter"])),g[7]||(g[7]=e.withKeys(e.withModifiers(N=>n("select"),["prevent","stop"]),["space"])),g[8]||(g[8]=e.withKeys(e.withModifiers(N=>n("navegar","anterior"),["prevent","stop"]),["left"])),g[9]||(g[9]=e.withKeys(e.withModifiers(N=>n("navegar","anterior"),["prevent","stop"]),["up"])),g[10]||(g[10]=e.withKeys(e.withModifiers(N=>n("navegar","siguiente"),["prevent","stop"]),["right"])),g[11]||(g[11]=e.withKeys(e.withModifiers(N=>n("navegar","siguiente"),["prevent","stop"]),["down"])),g[12]||(g[12]=e.withKeys(e.withModifiers(N=>n("navegar","primera"),["prevent","stop"]),["home"])),g[13]||(g[13]=e.withKeys(e.withModifiers(N=>n("navegar","ultima"),["prevent","stop"]),["end"])),g[14]||(g[14]=e.withKeys(e.withModifiers(N=>n("mover",-1),["alt","prevent","stop"]),["left"])),g[15]||(g[15]=e.withKeys(e.withModifiers(N=>n("mover",-1),["alt","prevent","stop"]),["up"])),g[16]||(g[16]=e.withKeys(e.withModifiers(N=>n("mover",1),["alt","prevent","stop"]),["right"])),g[17]||(g[17]=e.withKeys(e.withModifiers(N=>n("mover",1),["alt","prevent","stop"]),["down"])),g[18]||(g[18]=e.withKeys(e.withModifiers(N=>y.value&&n("close"),["prevent","stop"]),["delete"]))],onAuxclick:e.withModifiers(X,["stop"]),onContextmenu:Xn,onPointerdown:w,onPointermove:V,onPointerup:E,onPointerleave:E,onMouseenter:W,onMouseleave:g[19]||(g[19]=N=>f.value=!1),onFocus:A,onBlur:g[20]||(g[20]=N=>u.value=!1)},[t.tab.icon?(e.openBlock(),e.createBlock(D,{key:0,name:t.tab.icon,size:16,class:"shrink-0"},null,8,["name"])):e.unref(l)?(e.openBlock(),e.createElementBlock("span",ko,e.toDisplayString(x.value),1)):e.createCommentVNode("",!0),e.unref(l)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",go,e.toDisplayString(t.tab.label),1)),c.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(["size-2 shrink-0 rounded-full bg-current",e.unref(l)?"absolute right-0.5 top-0.5":""]),"aria-hidden":"true"},null,2)):p.value&&!e.unref(l)?(e.openBlock(),e.createElementBlock("button",{key:4,type:"button",class:"flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",title:t.closeLabel,"aria-label":`${t.closeLabel}: ${z.value}`,onClick:g[0]||(g[0]=e.withModifiers(N=>n("close"),["stop"]))},[e.createVNode(D,{name:"gtk-close",type:"symbol",size:12})],8,ho)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0 scale-95","leave-active-class":"transition duration-100 ease-in","leave-to-class":"opacity-0 scale-95"},{default:e.withCtx(()=>[b.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center gap-2 rounded-corner border border-ui-border bg-ui-surface/95 px-3 py-1 text-sm shadow-lg",t.active?"font-bold":""]),ref_key:"desplegadoRef",ref:s,style:e.normalizeStyle(S.value),onMouseenter:g[2]||(g[2]=N=>m.value=!0),onMouseleave:g[3]||(g[3]=N=>m.value=!1),onFocusin:g[4]||(g[4]=N=>m.value=!0),onFocusout:T},[e.createElementVNode("span",xo,e.toDisplayString(t.tab.label),1),t.tab.dirty?(e.openBlock(),e.createElementBlock("span",wo)):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",title:t.closeLabel,"aria-label":`${t.closeLabel}: ${z.value}`,onClick:g[1]||(g[1]=e.withModifiers(N=>n("close"),["stop"]))},[e.createVNode(D,{name:"gtk-close",type:"symbol",size:12})],8,Bo)):e.createCommentVNode("",!0)],38)):e.createCommentVNode("",!0)]),_:1})]))],42,yo))}}),Eo=["aria-orientation"],$o=["draggable","onDragstart","onDragover","onDrop"],Vo=["title","aria-label"],Oe=e.defineComponent({__name:"TabBar",props:{tabs:{},modelValue:{default:""},newLabel:{default:""},closeLabel:{default:"Close"},dirtyLabel:{default:"Unsaved changes"},fixedOrder:{type:Boolean,default:!1}},emits:["update:modelValue","select","close","new","reorder","menu"],setup(t,{emit:a}){const o=t,n=a,{vertical:l}=U(),r=e.ref(null),i=e.ref(0),s=e.ref(null),f=e.ref(null);function u(k){n("update:modelValue",k),n("select",k)}async function m(k,c){const p=o.tabs.length-1;if(p<0)return;const b=c==="primera"?0:c==="ultima"?p:c==="anterior"?(k-1+o.tabs.length)%o.tabs.length:(k+1)%o.tabs.length;i.value=b,await e.nextTick(),r.value?.querySelectorAll('[role="tab"]')?.[b]?.focus()}function B(k,c){if(o.fixedOrder)return;const p=k+c;if(p<0||p>=o.tabs.length)return;const b=[...o.tabs],[S]=b.splice(k,1);S&&(b.splice(p,0,S),i.value=p,n("reorder",b))}function C(k){const c=r.value;if(!c)return;const p=k.deltaY||k.deltaX||0,b=l.value?c.scrollTop:c.scrollLeft;l.value?c.scrollTop+=p:c.scrollLeft+=p,(l.value?c.scrollTop:c.scrollLeft)!==b&&k.preventDefault()}function $(k,c){o.fixedOrder||(s.value=k,c.dataTransfer?.setData("text/plain",String(k)),c.dataTransfer&&(c.dataTransfer.effectAllowed="move"))}function y(k,c){o.fixedOrder||s.value===null||(c.preventDefault(),f.value=k,c.dataTransfer&&(c.dataTransfer.dropEffect="move"))}function h(k){const c=s.value;if(z(),o.fixedOrder||c===null||c===k)return;const p=[...o.tabs],[b]=p.splice(c,1);b&&(p.splice(k,0,b),n("reorder",p))}function z(){s.value=null,f.value=null}const x=e.computed(()=>l.value?"flex h-full flex-col items-center gap-1 overflow-y-auto overflow-x-hidden":"flex items-center gap-1 overflow-x-auto overflow-y-hidden");return(k,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex min-h-0 min-w-0 items-center gap-1",e.unref(l)?"w-full flex-col":"h-full"]),role:"tablist","aria-orientation":e.unref(l)?"vertical":"horizontal"},[e.createElementVNode("div",{ref_key:"carril",ref:r,class:e.normalizeClass(x.value),onWheel:C},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,(p,b)=>(e.openBlock(),e.createElementBlock("div",{key:p.id,class:e.normalizeClass(["transition-opacity",[s.value===b?"opacity-40":"",f.value===b&&s.value!==b?"ring-2 ring-secondary rounded-corner":""]]),draggable:!t.fixedOrder,onDragstart:S=>$(b,S),onDragover:S=>y(b,S),onDrop:e.withModifiers(S=>h(b),["prevent"]),onDragend:z},[e.createVNode(me,{tab:p,active:p.id===t.modelValue,"close-label":t.closeLabel,"dirty-label":t.dirtyLabel,tabindex:b===i.value?0:-1,onSelect:S=>u(p.id),onClose:S=>n("close",p.id),onMenu:S=>n("menu",{id:p.id,...S}),onNavegar:S=>m(b,S),onMover:S=>B(b,S)},null,8,["tab","active","close-label","dirty-label","tabindex","onSelect","onClose","onMenu","onNavegar","onMover"])],42,$o))),128))],34),t.newLabel?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",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",title:t.newLabel,"aria-label":t.newLabel,onClick:c[0]||(c[0]=p=>n("new"))},[e.createVNode(D,{name:"gtk-add",type:"symbol",size:14})],8,Vo)):e.createCommentVNode("",!0)],10,Eo))}}),zo=["id","aria-label","type","value","placeholder","disabled","readonly","required","aria-describedby","autocomplete","aria-invalid"],ue=e.defineComponent({__name:"TextInput",props:{modelValue:{},type:{default:"text"},id:{},ariaLabel:{},describedBy:{},autocomplete:{},placeholder:{},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},invalid:{type:Boolean,default:!1},mono:{type:Boolean,default:!1},required:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1}},emits:["update:modelValue","keyup","keydown"],setup(t,{expose:a,emit:o}){const n=t,l=o;function r(m){n.lazy||l("update:modelValue",m.target.value)}function i(m){n.lazy&&l("update:modelValue",m.target.value)}const s=e.ref(null);function f(){return s.value?.focus(),s.value!==null&&document.activeElement===s.value}a({enfocar:f});const u=e.computed(()=>["w-full rounded-corner border bg-ui-surface/70 px-3 py-1.5 text-sm text-tx-main","placeholder:text-tx-muted focus:outline-none focus:ring-1 focus:ring-primary",n.invalid?"border-status-error":"border-ui-border",n.mono?"font-mono":"",n.disabled?"cursor-not-allowed opacity-60":""]);return(m,B)=>(e.openBlock(),e.createElementBlock("input",{ref_key:"campo",ref:s,id:t.id,"aria-label":t.ariaLabel,type:t.type,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,"aria-describedby":t.describedBy,autocomplete:t.autocomplete,"aria-invalid":t.invalid||void 0,class:e.normalizeClass(u.value),onInput:r,onChange:i,onKeyup:B[0]||(B[0]=C=>l("keyup",C)),onKeydown:B[1]||(B[1]=C=>l("keydown",C))},null,42,zo))}}),Do={class:"pointer-events-none absolute left-2 flex items-center"},So=["aria-label"],ee=e.defineComponent({__name:"SearchField",props:{modelValue:{default:""},placeholder:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},debounce:{default:0},clearable:{type:Boolean,default:!0},busy:{type:Boolean,default:!1},listboxId:{},activeOptionId:{},expanded:{type:Boolean}},emits:["update:modelValue","search","clear","keydown"],setup(t,{expose:a,emit:o}){const n=t,l=o,r=e.ref(null);let i;const s=e.computed(()=>n.modelValue.length>0),f=e.computed(()=>n.listboxId?{role:"combobox","aria-autocomplete":"list","aria-controls":n.listboxId,"aria-expanded":String(n.expanded),"aria-activedescendant":n.activeOptionId||void 0}:{}),u=e.computed(()=>n.clearable&&s.value&&!n.disabled);function m(){clearTimeout(i),i=void 0}function B(h){l("update:modelValue",h),!(n.debounce<=0)&&(m(),i=setTimeout(()=>l("search",h),n.debounce))}function C(){m(),l("search",n.modelValue)}function $(){m(),l("update:modelValue",""),l("clear"),y()}function y(){return r.value?.enfocar()??!1}return a({enfocar:y}),e.onMounted(async()=>{n.autofocus&&(await e.nextTick(),y())}),e.onUnmounted(m),e.watch(()=>n.disabled,h=>{h&&m()}),(h,z)=>(e.openBlock(),e.createElementBlock("div",{class:"relative flex items-center",onKeydown:e.withKeys(C,["enter"])},[e.createElementVNode("span",Do,[e.createVNode(D,{name:t.busy?"content-loading":"system-search",type:"symbol",size:14,class:e.normalizeClass(t.busy?"animate-spin opacity-70":"opacity-60")},null,8,["name","class"])]),e.createVNode(ue,e.mergeProps({ref_key:"campo",ref:r,type:"search","model-value":t.modelValue,placeholder:t.placeholder||t.label,ariaLabel:t.label||void 0},f.value,{disabled:t.disabled,class:["pl-7 [&::-webkit-search-cancel-button]:appearance-none",u.value?"pr-8":""],"onUpdate:modelValue":B,onKeydown:z[0]||(z[0]=x=>l("keydown",x))}),null,16,["model-value","placeholder","ariaLabel","disabled","class"]),u.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-1 flex size-6 items-center justify-center rounded-corner text-tx-muted hover:bg-ui-surface","aria-label":t.label?`${t.label}: vaciar`:"Vaciar",onMousedown:z[1]||(z[1]=e.withModifiers(()=>{},["prevent"])),onClick:$},[e.createVNode(D,{name:"gtk-close",type:"symbol",size:12,alt:""})],40,So)):e.createCommentVNode("",!0)],32))}}),Lo=["title","aria-label","aria-expanded"],Pe=e.defineComponent({__name:"BarSearch",props:{modelValue:{default:""},placeholder:{default:""},label:{default:"Search"},collapsed:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},debounce:{default:0}},emits:["update:modelValue","search","open","close"],setup(t,{emit:a}){const o=t,n=a,{vertical:l,posicion:r}=U(),i=e.ref(!1),s=e.ref(null),f=e.computed(()=>l.value||o.collapsed),u=e.computed(()=>!f.value||i.value),m=e.computed(()=>{if(!f.value)return"";const y="absolute z-40 w-64 rounded-corner border border-ui-border bg-ui-surface/95 p-1 shadow-lg";return r.value==="left"?`${y} left-full top-0 ml-1`:r.value==="right"?`${y} right-full top-0 mr-1`:r.value==="bottom"?`${y} bottom-full right-0 mb-1`:`${y} top-full right-0 mt-1`});async function B(){i.value=!0,n("open"),await e.nextTick(),s.value?.enfocar()}function C(){i.value&&(i.value=!1,n("close"))}function $(y){const h=y.relatedTarget;h&&y.currentTarget.contains(h)||C()}return(y,h)=>(e.openBlock(),e.createElementBlock("div",{class:"relative flex shrink-0 items-center",onFocusout:$},[f.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex size-7 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",title:t.label,"aria-label":t.label,"aria-expanded":i.value,onMousedown:h[0]||(h[0]=e.withModifiers(()=>{},["prevent"])),onClick:h[1]||(h[1]=z=>i.value?C():B())},[e.createVNode(D,{name:"system-search",type:"symbol",size:14})],40,Lo)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(m.value),onKeydown:e.withKeys(C,["esc"])},[e.createVNode(ee,{ref_key:"campo",ref:s,"model-value":t.modelValue,placeholder:t.placeholder,label:t.label,disabled:t.disabled,debounce:t.debounce,class:e.normalizeClass(f.value?"":"w-48"),"onUpdate:modelValue":h[2]||(h[2]=z=>n("update:modelValue",z)),onSearch:h[3]||(h[3]=z=>n("search",z))},null,8,["model-value","placeholder","label","disabled","debounce","class"])],34)):e.createCommentVNode("",!0)],32))}}),No=["type","disabled"],To={key:0,class:"w-4 h-4 animate-spin rounded-full border-2 border-current border-t-transparent"},Mo=["src","alt"],Ao={key:2},Io=["src","alt"],Oo=e.defineComponent({__name:"ActionButton",props:{label:{},disabled:{type:Boolean,default:!1},variant:{default:"primary"},loading:{type:Boolean,default:!1},customClass:{default:()=>({})},size:{default:"md"},fullWidth:{type:Boolean,default:!1},iconSrc:{default:""},iconAlt:{default:""},iconRight:{type:Boolean,default:!1},type:{default:"button"},stopPropagation:{type:Boolean,default:!1},preventDefault:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:a}){const o=t,n=a,l={primary:"bg-primary dark:bg-primary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-primary/90 dark:hover:bg-primary-dark/90",secondary:"bg-secondary dark:bg-secondary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-secondary/80 dark:hover:bg-secondary-dark/80",danger:"bg-status-error dark:bg-status-error-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-status-error/90 dark:hover:bg-status-error-dark/90"},r={sm:"px-2 py-1 text-xs",md:"px-3 py-1 text-sm",lg:"px-4 py-2 text-base"},i=s=>{o.stopPropagation&&s.stopPropagation(),o.preventDefault&&s.preventDefault(),!o.disabled&&!o.loading&&n("click")};return(s,f)=>(e.openBlock(),e.createElementBlock("button",{type:o.type,onClick:i,class:e.normalizeClass(["rounded-corner transition-[background-color,opacity] duration-200 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",[l[o.variant],r[o.size],o.fullWidth?"w-full":"",o.iconSrc&&!o.label?"px-2 py-2":"",t.customClass]]),disabled:o.disabled||o.loading},[t.loading?(e.openBlock(),e.createElementBlock("span",To)):e.createCommentVNode("",!0),o.iconSrc&&!o.iconRight?(e.openBlock(),e.createElementBlock("img",{key:1,src:o.iconSrc,alt:o.iconAlt||o.label,class:"w-4 h-4"},null,8,Mo)):e.createCommentVNode("",!0),o.label?(e.openBlock(),e.createElementBlock("span",Ao,e.toDisplayString(o.label),1)):e.createCommentVNode("",!0),o.iconSrc&&o.iconRight?(e.openBlock(),e.createElementBlock("img",{key:3,src:o.iconSrc,alt:o.iconAlt||o.label,class:"w-4 h-4"},null,8,Io)):e.createCommentVNode("",!0)],10,No))}}),te=(t,a)=>{const o=t.__vccOpts||t;for(const[n,l]of a)o[n]=l;return o},je=te(Oo,[["__scopeId","data-v-3c1bd6bd"]]),fe={info:"border-ui-border bg-ui-surface/70 text-tx-main",success:"border-status-success/40 bg-status-success/10 text-tx-main",warning:"border-status-warning/40 bg-status-warning/10 text-tx-main",error:"border-status-error/40 bg-status-error/10 text-tx-main"};function pe(t){return t==="error"?"alert":"status"}const Po=["role"],jo={key:0,class:"mt-0.5"},Fo={class:"min-w-0 flex-1"},Ro={key:0,class:"font-semibold"},Fe=e.defineComponent({__name:"AlertMessage",props:{tone:{default:"info"},title:{},icon:{},iconType:{default:"symbol"}},setup(t){const a=t,o=e.computed(()=>fe[a.tone]),n=e.computed(()=>pe(a.tone));return(l,r)=>(e.openBlock(),e.createElementBlock("div",{role:n.value,"aria-atomic":"true",class:e.normalizeClass(["flex gap-3 rounded-corner border px-4 py-2 text-sm",o.value])},[t.icon?(e.openBlock(),e.createElementBlock("span",jo,[e.createVNode(D,{name:t.icon,type:t.iconType,size:18,alt:""},null,8,["name","type"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Fo,[t.title?(e.openBlock(),e.createElementBlock("p",Ro,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(t.title?"mt-1":"")},[e.renderSlot(l.$slots,"default")],2)])],10,Po))}}),Ko={class:"font-medium text-sm text-tx-main"},qo={key:0,class:"text-sm text-tx-muted"},Re=e.defineComponent({__name:"EmptyState",props:{title:{},note:{},icon:{default:"dialog-information"},iconType:{default:"icon"},bordered:{type:Boolean,default:!1}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col items-center justify-center gap-3 px-8 py-12 text-center",t.bordered?"rounded-corner border border-ui-border border-dashed bg-ui-surface/20":""])},[e.createVNode(D,{name:t.icon,type:t.iconType,size:48,class:"opacity-60"},null,8,["name","type"]),e.createElementVNode("p",Ko,e.toDisplayString(t.title),1),t.note?(e.openBlock(),e.createElementBlock("p",qo,e.toDisplayString(t.note),1)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default")],2))}}),Uo={class:"text-sm text-tx-muted"},Ke=e.defineComponent({__name:"LoadingState",props:{label:{},bordered:{type:Boolean,default:!1}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{role:"status","aria-atomic":"true",class:e.normalizeClass(["flex flex-col items-center justify-center gap-4 px-8 py-12 text-center",t.bordered?"rounded-corner border border-ui-border border-dashed bg-ui-surface/20":""])},[o[0]||(o[0]=e.createElementVNode("span",{class:"h-10 w-10 animate-spin rounded-full border-4 border-ui-border border-t-primary motion-reduce:animate-none"},null,-1)),e.createElementVNode("p",Uo,e.toDisplayString(t.label),1)],2))}}),Ho=["role"],qe=e.defineComponent({__name:"ToastArea",props:{toasts:{},position:{default:"bottom-right"}},setup(t){const a=t,o=e.computed(()=>a.position==="bottom-center"?"bottom-4 left-1/2 -translate-x-1/2":"right-4 bottom-4");return(n,l)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createElementVNode("div",{class:e.normalizeClass(["pointer-events-none fixed z-60 flex flex-col gap-2",o.value])},[e.createVNode(e.TransitionGroup,{"enter-active-class":"transition-all duration-300 ease-out","leave-active-class":"transition-all duration-200 ease-in","enter-from-class":"translate-y-2 opacity-0","leave-to-class":"translate-y-2 opacity-0","move-class":"transition-transform duration-300"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.toasts,r=>(e.openBlock(),e.createElementBlock("div",{key:r.id,role:e.unref(pe)(r.tone??"info"),"aria-atomic":"true",class:e.normalizeClass(["pointer-events-auto rounded-corner border px-4 py-2 text-sm shadow-lg backdrop-blur-sm",e.unref(fe)[r.tone??"info"]])},[e.renderSlot(n.$slots,"default",{aviso:r},()=>[e.createTextVNode(e.toDisplayString(r.message),1)])],10,Ho))),128))]),_:3})],2)]))}}),Wo=["aria-label","aria-valuenow"],Go={key:1,class:"h-full w-full animate-pulse rounded-corner bg-primary motion-reduce:animate-none motion-reduce:bg-primary/40"},Ue=e.defineComponent({__name:"ProgressBar",props:{value:{},label:{},tone:{default:"normal"}},setup(t){const a=t,o={normal:"bg-primary",warning:"bg-status-warning",critical:"bg-status-error"},n=e.computed(()=>a.value===null?null:Math.max(0,Math.min(100,a.value)));return(l,r)=>(e.openBlock(),e.createElementBlock("div",{role:"progressbar","aria-label":t.label,"aria-valuenow":n.value??void 0,"aria-valuemin":"0","aria-valuemax":"100",class:"h-2 w-full overflow-hidden rounded-corner bg-ui-surface/70"},[n.value!==null?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["h-full rounded-corner transition-[width] duration-300 ease-out",o[t.tone]]),style:e.normalizeStyle({width:`${n.value}%`})},null,6)):(e.openBlock(),e.createElementBlock("div",Go))],8,Wo))}}),Qo=/[/\-_.]/;function be(t,a){if(!a)return 100;const o=a.toLowerCase();return o===t?0:o.startsWith(t)?10:o.split(Qo).some(n=>n.startsWith(t))?30:o.includes(t)?40:100}function He(t,a){const o=a.trim().toLowerCase();if(!o)return t;const n=[];for(let l=0;l<t.length;l++){const r=t[l],i=be(o,r.valor),s=be(o,r.etiqueta),f=s===10?20:s,m=be(o,r.detalle)===100?100:40,B=Math.min(i,f,m);B!==100&&n.push({opcion:r,rango:B,orden:l})}return n.sort((l,r)=>l.rango-r.rango||l.orden-r.orden),n.map(l=>l.opcion)}let We=0;function Yo(){return We+=1,`vsk-lista-${We}`}const Xo=["disabled","aria-label","aria-expanded"],Jo={class:"min-w-0 flex-1 truncate"},Zo={key:0,class:"ml-2 text-tx-muted text-xs"},_o={class:"border-ui-border border-b p-2"},vo=["id"],en={key:0,class:"p-3 text-center text-tx-muted text-xs"},tn=["id","data-indice","aria-selected"],on={class:"min-w-0 flex-1 truncate"},nn={key:0,class:"shrink-0 text-tx-muted text-xs"},an={key:1,class:"px-2 py-1 text-tx-muted text-xs"},Ge=e.defineComponent({__name:"SearchSelect",props:{modelValue:{},options:{},label:{default:""},searchPlaceholder:{default:""},emptyText:{default:""},placeholder:{default:"—"},disabled:{type:Boolean,default:!1},limit:{default:60},up:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,n=a,l=e.ref(""),r=e.ref(!1),i=e.ref(0),s=e.ref(null),f=e.ref(null),u=e.ref(null),m=Yo(),B=e.computed(()=>o.options.find(E=>E.valor===o.modelValue)??null),C=e.computed(()=>He(o.options,l.value)),$=e.computed(()=>C.value.slice(0,o.limit)),y=e.computed(()=>Math.max(0,C.value.length-o.limit)),h=e.computed(()=>$.value.length>0?`${m}-${i.value}`:void 0);function z(E){n("update:modelValue",E),k()}async function x(){r.value=!0;const E=$.value.findIndex(w=>w.valor===o.modelValue);i.value=E>=0?E:0,await e.nextTick(),u.value?.enfocar(),T()}function k(E=!0){r.value&&(r.value=!1,l.value="",E&&e.nextTick(()=>f.value?.focus()))}function c(E){const w=$.value.length;w!==0&&(i.value=(i.value+E+w)%w,T())}function p(E){i.value=E,T()}function b(E){const w=E.target?.closest?.("[data-indice]");if(!w)return null;const V=Number(w.getAttribute("data-indice"));return Number.isInteger(V)?V:null}function S(E){const w=b(E),V=w===null?void 0:$.value[w];V&&z(V.valor)}function H(E){const w=b(E);w!==null&&(i.value=w)}function T(){e.nextTick(()=>{s.value?.querySelector(`[data-indice="${i.value}"]`)?.scrollIntoView({block:"nearest"})})}function W(){const E=$.value[i.value];E&&z(E.valor)}e.watch(()=>o.disabled,E=>{E&&k(!1)}),e.watch(l,()=>{i.value=0,T()});function A(E){const w=E.relatedTarget;w&&E.currentTarget.contains(w)||k(!1)}return(E,w)=>(e.openBlock(),e.createElementBlock("div",{class:"relative",onFocusout:A},[e.createElementVNode("button",{ref_key:"boton",ref:f,type:"button",disabled:t.disabled,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","aria-label":t.label||void 0,"aria-expanded":r.value,"aria-haspopup":"listbox",onClick:w[0]||(w[0]=V=>r.value?k():x()),onKeydown:[w[1]||(w[1]=e.withKeys(e.withModifiers(V=>r.value?c(1):x(),["prevent"]),["down"])),w[2]||(w[2]=e.withKeys(e.withModifiers(V=>r.value?c(-1):x(),["prevent"]),["up"]))]},[e.createElementVNode("span",Jo,[e.createTextVNode(e.toDisplayString(B.value?.etiqueta??t.placeholder)+" ",1),B.value?.detalle?(e.openBlock(),e.createElementBlock("span",Zo,e.toDisplayString(B.value.detalle),1)):e.createCommentVNode("",!0)]),e.createVNode(D,{name:"go-down",type:"symbol",size:12,class:"shrink-0 opacity-60"})],40,Xo),r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["absolute z-20 w-full min-w-64 rounded-corner border border-ui-border-strong bg-ui-bg shadow-lg",t.up?"bottom-full mb-1":"mt-1"]),onKeydown:[w[4]||(w[4]=e.withKeys(e.withModifiers(V=>k(),["prevent"]),["escape"])),w[5]||(w[5]=e.withKeys(e.withModifiers(V=>c(1),["prevent"]),["down"])),w[6]||(w[6]=e.withKeys(e.withModifiers(V=>c(-1),["prevent"]),["up"])),w[7]||(w[7]=e.withKeys(e.withModifiers(V=>p(0),["prevent"]),["home"])),w[8]||(w[8]=e.withKeys(e.withModifiers(V=>p($.value.length-1),["prevent"]),["end"])),w[9]||(w[9]=e.withKeys(e.withModifiers(V=>W(),["prevent"]),["enter"])),w[10]||(w[10]=e.withKeys(V=>k(!1),["tab"]))],onClick:S,onMousemove:H},[e.createElementVNode("div",_o,[e.createVNode(ee,{ref_key:"campo",ref:u,modelValue:l.value,"onUpdate:modelValue":w[3]||(w[3]=V=>l.value=V),label:t.label,placeholder:t.searchPlaceholder,"listbox-id":e.unref(m),"active-option-id":h.value,expanded:r.value},null,8,["modelValue","label","placeholder","listbox-id","active-option-id","expanded"])]),e.createElementVNode("ul",{id:e.unref(m),ref_key:"lista",ref:s,role:"listbox",class:"max-h-56 overflow-y-auto p-1"},[$.value.length===0?(e.openBlock(),e.createElementBlock("li",en,e.toDisplayString(t.emptyText),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,(V,X)=>(e.openBlock(),e.createElementBlock("li",{id:`${e.unref(m)}-${X}`,key:V.valor,"data-indice":X,role:"option","aria-selected":V.valor===t.modelValue,class:e.normalizeClass(["flex cursor-pointer items-baseline gap-2 rounded-corner px-2 py-1 text-sm",[X===i.value?"bg-ui-surface":"",V.valor===t.modelValue?"font-medium text-primary":"text-tx-main"]])},[e.createElementVNode("span",on,e.toDisplayString(V.etiqueta),1),V.detalle?(e.openBlock(),e.createElementBlock("span",nn,e.toDisplayString(V.detalle),1)):e.createCommentVNode("",!0)],10,tn))),128)),y.value>0?(e.openBlock(),e.createElementBlock("li",an,"+"+e.toDisplayString(y.value),1)):e.createCommentVNode("",!0)],8,vo)],34)):e.createCommentVNode("",!0)],32))}}),ln={class:"text-base font-semibold m-0 text-primary dark:text-primary-dark"},Qe=te(e.defineComponent({__name:"ConfigSection",props:{title:{},icon:{default:""},customClass:{default:()=>({})}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-4 p-4 background rounded-corner",t.customClass])},[e.createElementVNode("h3",ln,e.toDisplayString(t.icon?`${t.icon} ${t.title}`:t.title),1),e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-45bd4eab"]]),rn={class:"flex items-center gap-3 flex-1 min-w-0"},sn=["src","alt"],cn={class:"min-w-0"},dn={class:"font-semibold truncate"},mn={key:0,class:"text-xs text-gray-400 truncate"},un={key:1,class:"text-xs text-gray-400 truncate"},fn={key:2,class:"text-xs text-gray-400 flex gap-2 mt-1"},pn={key:1,class:"w-2 h-2 rounded-full bg-green-500"},Ye=e.defineComponent({__name:"DeviceCard",props:{name:{default:""},type:{default:"icon"},icon:{default:""},title:{},subtitle:{default:""},metadata:{default:""},extraInfo:{default:()=>[]},isConnected:{type:Boolean,default:!1},showActionButton:{type:Boolean,default:!0},actionLabel:{default:"Conectar"},showStatusIndicator:{type:Boolean,default:!1},customClass:{default:""},clickable:{type:Boolean,default:!1}},emits:["action","click"],setup(t,{emit:a}){const o=t,n=a,l=()=>{n("action")},r=()=>{n("click")};return e.onMounted(()=>{o.icon&&!o.name&&console.warn("[DeviceCard] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo.")}),(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-between background rounded-vsk px-6 py-3 mb-4",[{"border-l-4 border-green-500":t.isConnected},t.customClass]]),onClick:r},[e.createElementVNode("div",rn,[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:28,alt:t.title},null,8,["name","type","alt"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:t.title,class:"h-7 w-7 shrink-0"},null,8,sn)),e.createElementVNode("div",cn,[e.createElementVNode("div",dn,e.toDisplayString(t.title),1),t.subtitle?(e.openBlock(),e.createElementBlock("div",mn,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0),t.metadata?(e.openBlock(),e.createElementBlock("div",un,e.toDisplayString(t.metadata),1)):e.createCommentVNode("",!0),t.extraInfo&&t.extraInfo.length>0?(e.openBlock(),e.createElementBlock("div",fn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.extraInfo,(f,u)=>(e.openBlock(),e.createElementBlock("span",{key:u},e.toDisplayString(f),1))),128))])):e.createCommentVNode("",!0)])]),t.showActionButton?(e.openBlock(),e.createElementBlock("button",{key:0,class:"bg-vsk-primary rounded-vsk px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70",onClick:e.withModifiers(l,["stop"])},e.toDisplayString(t.actionLabel),1)):e.createCommentVNode("",!0),t.showStatusIndicator&&t.isConnected?(e.openBlock(),e.createElementBlock("div",pn)):e.createCommentVNode("",!0)],2))}}),ye=Symbol("diálogo de vasak");function ke(){const t=e.inject(ye,null);if(t)return t;const a=e.ref(!1);return{abierto:e.computed(()=>a.value),cerrar:()=>{a.value=!1},idDelTitulo:e.ref(null),ponerElTitulo:()=>{}}}let Xe=0;function bn(){return Xe+=1,`vsk-dialogo-titulo-${Xe}`}const Je=e.defineComponent({__name:"Dialog",props:{open:{type:Boolean,default:!1}},emits:["update:open"],setup(t,{emit:a}){const o=t,n=a,l=e.ref(null);return e.provide(ye,{abierto:e.computed(()=>o.open),cerrar:()=>n("update:open",!1),idDelTitulo:l,ponerElTitulo:r=>{l.value=r}}),(r,i)=>e.renderSlot(r.$slots,"default")}}),yn={key:0,class:"absolute inset-0 rounded-corner-window bg-ui-border-dark/40"},kn=["aria-labelledby","aria-label"],gn="relative z-10 w-full rounded-corner border border-ui-border bg-ui-bg/80 p-6 text-tx-main shadow-lg",Ze=e.defineComponent({inheritAttrs:!1,__name:"DialogContent",props:{size:{default:"md"},ariaLabel:{}},setup(t){const a=t,o=e.useAttrs(),n=e.computed(()=>o.class??""),l=e.computed(()=>{const{class:x,...k}=o;return k}),r=e.computed(()=>a.size==="full"?"relative z-10 h-full w-full overflow-hidden rounded-corner-window text-tx-main":`${gn} ${a.size==="lg"?"max-w-2xl":"max-w-lg"}`),i=ke(),s=e.computed(()=>i.abierto.value),f=e.ref(null),u=e.ref(null);let m=null;function B(){return u.value?[...u.value.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')]:[]}function C(x){if(x.key==="Escape"){i.cerrar();return}if(x.key!=="Tab")return;const k=B();if(k.length===0){x.preventDefault(),u.value?.focus();return}const c=k[0],p=k[k.length-1],b=document.activeElement;x.shiftKey&&(b===c||b===u.value)?(x.preventDefault(),p.focus()):!x.shiftKey&&b===p&&(x.preventDefault(),c.focus())}function $(x){x.target===x.currentTarget&&i.cerrar()}function y(x){f.value?.contains(x.target)||C(x)}function h(){document.removeEventListener("keydown",y)}function z(){const x=m;m=null,x?.isConnected&&x.focus()}return e.watch(s,async x=>{if(x){m=document.activeElement,document.addEventListener("keydown",y),await e.nextTick(),u.value?.focus();return}h(),z()},{immediate:!0}),e.onUnmounted(()=>{h(),z()}),(x,k)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition-opacity duration-200 ease-out","leave-active-class":"transition-opacity duration-150 ease-in","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"velo",ref:f,class:"fixed inset-0 z-50 flex items-center justify-center",onClick:$,onKeydown:C},[a.size==="md"?(e.openBlock(),e.createElementBlock("div",yn)):e.createCommentVNode("",!0),e.createElementVNode("div",e.mergeProps({ref_key:"panel",ref:u,tabindex:"-1",role:"dialog","aria-modal":"true","aria-labelledby":e.unref(i).idDelTitulo.value??void 0,"aria-label":e.unref(i).idDelTitulo.value?void 0:t.ariaLabel},l.value,{class:[n.value,r.value]}),[e.renderSlot(x.$slots,"default")],16,kn)],544)):e.createCommentVNode("",!0)]),_:3})]))}}),hn={class:"text-sm text-tx-muted"},_e=e.defineComponent({__name:"DialogDescription",setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("p",hn,[e.renderSlot(a.$slots,"default")]))}}),xn={class:"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end"},ve=e.defineComponent({__name:"DialogFooter",setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",xn,[e.renderSlot(a.$slots,"default")]))}}),wn={class:"flex flex-col gap-1.5 text-center sm:text-left"},et=e.defineComponent({__name:"DialogHeader",setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",wn,[e.renderSlot(a.$slots,"default")]))}}),Bn=["id"],tt=e.defineComponent({__name:"DialogTitle",setup(t){const a=ke(),o=bn();return e.onMounted(()=>a.ponerElTitulo(o)),e.onUnmounted(()=>a.ponerElTitulo(null)),(n,l)=>(e.openBlock(),e.createElementBlock("h2",{id:e.unref(o),class:"font-semibold text-lg leading-none tracking-tight"},[e.renderSlot(n.$slots,"default")],8,Bn))}}),ge=Symbol("menú de vasak");function Y(){const t=e.inject(ge,null);if(t)return t;const a=e.ref(!1);return{abierto:a,idDelMenu:"vsk-menu-suelto",idDeLaEtiqueta:e.ref(null),ponerLaEtiqueta:()=>{},disparador:e.ref(null),ponerElDisparador:()=>{},focoAlAbrir:e.ref("ninguno"),abrir:()=>{a.value=!0},cerrar:()=>{a.value=!1},alternar:()=>{a.value=!a.value}}}let ot=0;function nt(){return ot+=1,`vsk-menu-${ot}`}const Cn={class:"relative inline-block"},at=e.defineComponent({__name:"DropdownMenu",props:{open:{type:Boolean,default:void 0}},emits:["update:open"],setup(t,{emit:a}){const o=t,n=a,l=e.ref(!1),r=e.ref(null),i=e.ref(null),s=e.ref("ninguno"),f=nt();let u=null;const m=e.computed({get:()=>o.open??l.value,set:y=>{o.open===void 0&&(l.value=y),n("update:open",y)}});e.watch(m,y=>{if(y){const h=document.activeElement;u=h instanceof HTMLElement?h:null}else s.value="ninguno"});function B(y="ninguno"){s.value=y,m.value=!0}function C(y={}){if(m.value=!1,!y.devolverElFoco)return;const h=u??r.value;h?.isConnected&&h.focus()}function $(y="ninguno"){if(m.value){C({devolverElFoco:!0});return}B(y)}return e.provide(ge,{abierto:m,idDelMenu:f,idDeLaEtiqueta:i,ponerLaEtiqueta:y=>{i.value=y},disparador:r,ponerElDisparador:y=>{r.value=y},focoAlAbrir:s,abrir:B,cerrar:C,alternar:$}),(y,h)=>(e.openBlock(),e.createElementBlock("div",Cn,[e.renderSlot(y.$slots,"default")]))}}),En=["id","aria-labelledby","inert"],$n={role:"none",class:"py-1"},O=8,lt=e.defineComponent({inheritAttrs:!1,__name:"DropdownMenuContent",props:{side:{default:"bottom"},align:{default:"start"},sideOffset:{default:4}},setup(t){const a=t,o=Y(),{idDelMenu:n,idDeLaEtiqueta:l}=o,r=e.computed(()=>o.disparador.value),i=e.computed(()=>o.abierto.value),s=e.ref(null),f=e.ref({top:0,left:0,techo:null}),u={top:"bottom",bottom:"top",left:"right",right:"left"};function m(c,p){const b=a.sideOffset+O;switch(c){case"bottom":return window.innerHeight-p.bottom-b;case"top":return p.top-b;case"right":return window.innerWidth-p.right-b;case"left":return p.left-b}}function B(c,p,b){return b<p?p:Math.min(Math.max(c,p),b)}function C(){if(!r.value||!s.value)return;const c=r.value.getBoundingClientRect(),p=s.value.scrollHeight,b=s.value.offsetWidth,S=a.side==="top"||a.side==="bottom",H=S?p:b;let T=a.side;const W=m(T,c);W<H&&m(u[T],c)>W&&(T=u[T]);let A=0,E=0,w=null;switch(T){case"bottom":{A=c.bottom+a.sideOffset,w=Math.max(window.innerHeight-A-O,0);break}case"top":{w=Math.max(m("top",c),0),A=c.top-a.sideOffset-Math.min(p,w);break}case"left":case"right":{E=T==="right"?c.right+a.sideOffset:c.left-b-a.sideOffset;const V=window.innerHeight-2*O;A=B(c.top,O,window.innerHeight-Math.min(p,V)-O),w=Math.max(window.innerHeight-A-O,0);break}}if(S)switch(a.align){case"start":E=c.left;break;case"center":E=c.left+c.width/2-b/2;break;case"end":E=c.right-b;break}E=B(E,O,window.innerWidth-b-O),f.value={top:A,left:E,techo:w}}function $(){return s.value?Array.from(s.value.querySelectorAll('[role="menuitem"]')):[]}function y(c){const p=$();if(!p.length)return;const b=p.length;p[(c%b+b)%b]?.focus()}function h(){const c=document.activeElement;return c instanceof HTMLElement?$().indexOf(c):-1}function z(c){const p=h();switch(c.key){case"ArrowDown":c.preventDefault(),y(p+1);break;case"ArrowUp":c.preventDefault(),y(p<=0?-1:p-1);break;case"Home":c.preventDefault(),y(0);break;case"End":c.preventDefault(),y(-1);break;case"Escape":c.preventDefault(),c.stopPropagation(),o.cerrar({devolverElFoco:!0});break;case"Tab":c.preventDefault(),o.cerrar({devolverElFoco:!0});break}}e.watch(i,async c=>{if(c)switch(await e.nextTick(),requestAnimationFrame(()=>{C()}),o.focoAlAbrir.value){case"primero":y(0);break;case"ultimo":y(-1);break;default:s.value?.focus()}});function x(c){i.value&&(c&&s.value?.contains(c.target)||C())}function k(c){const p=c.target,b=!!p.closest("[data-dropdown-content]"),S=!!r.value?.contains(p);!b&&!S&&o.cerrar()}return e.onMounted(()=>{document.addEventListener("click",k),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",k),window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0)}),(c,p)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-150 ease-in-out","leave-active-class":"transition-all duration-150 ease-in-out","enter-from-class":"opacity-0 scale-95","leave-to-class":"opacity-0 scale-95",onEnter:p[1]||(p[1]=b=>b.offsetHeight),onLeave:p[2]||(p[2]=b=>b.offsetHeight)},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",e.mergeProps({ref_key:"contenido",ref:s},c.$attrs,{id:e.unref(n),role:"menu",tabindex:"-1","aria-orientation":"vertical","aria-labelledby":e.unref(l)??void 0,inert:!i.value,style:{position:"fixed",top:`${f.value.top}px`,left:`${f.value.left}px`,maxHeight:f.value.techo===null?void 0:`${f.value.techo}px`,overflowY:"auto",overscrollBehavior:"contain",zIndex:50},"data-dropdown-content":"",class:"min-w-30 rounded-corner border border-primary bg-ui-bg/80 shadow-lg focus:outline-none",onClick:p[0]||(p[0]=b=>b.stopPropagation()),onKeydown:z}),[e.createElementVNode("div",$n,[e.renderSlot(c.$slots,"default")])],16,En),[[e.vShow,i.value]])]),_:3})]))}}),Vn=["aria-disabled","onKeydown"],rt=e.defineComponent({__name:"DropdownMenuItem",props:{disabled:{type:Boolean,default:!1}},emits:["select","click"],setup(t,{emit:a}){const o=t,n=a,l=Y();function r(i){o.disabled||(n("select"),n("click",i),l.cerrar({devolverElFoco:!0}))}return(i,s)=>(e.openBlock(),e.createElementBlock("div",{role:"menuitem",tabindex:"0","aria-disabled":t.disabled||void 0,class:e.normalizeClass(["px-3 py-2 text-sm transition-colors outline-none",{"opacity-50 cursor-not-allowed":t.disabled,"cursor-pointer hover:bg-primary hover:text-tx-on-primary focus-visible:bg-primary focus-visible:text-tx-on-primary":!t.disabled}]),onClick:r,onKeydown:[e.withKeys(e.withModifiers(r,["prevent"]),["enter"]),e.withKeys(e.withModifiers(r,["prevent"]),["space"])]},[e.renderSlot(i.$slots,"default")],42,Vn))}}),it=e.defineComponent({__name:"DropdownMenuLabel",setup(t){const a=Y(),o=`${nt()}-titulo`;return e.onMounted(()=>{a.ponerLaEtiqueta(o)}),e.onBeforeUnmount(()=>{a.ponerLaEtiqueta(null)}),(n,l)=>(e.openBlock(),e.createElementBlock("div",{id:o,role:"presentation",class:"px-3 py-2 text-sm font-semibold text-tx-main"},[e.renderSlot(n.$slots,"default")]))}}),zn={role:"separator","aria-orientation":"horizontal",class:"bg-ui-bg/80 my-4 h-0.5"},st=e.defineComponent({__name:"DropdownMenuSeparator",setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",zn))}});function ct(t){const a=t.filter(n=>n.type!==e.Comment&&!(n.type===e.Text&&typeof n.children=="string"&&!n.children.trim()));if(a.length!==1)return null;const o=a[0];return o.type===e.Fragment&&Array.isArray(o.children)?ct(o.children):o}function Dn(t){if(t instanceof HTMLElement)return t;const a=t?.$el;return a instanceof HTMLElement?a:null}const dt=e.defineComponent({name:"DropdownMenuTrigger",inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(t,{slots:a,attrs:o}){const n=Y(),l=e.ref(null);function r(){n.ponerElDisparador(Dn(l.value))}function i(){t.disabled||(r(),n.alternar())}function s(f){if(!t.disabled)switch(f.key){case"Enter":case" ":f.preventDefault(),r(),n.alternar("primero");break;case"ArrowDown":f.preventDefault(),r(),n.abrir("primero");break;case"ArrowUp":f.preventDefault(),r(),n.abrir("ultimo");break;case"Escape":n.abierto.value&&(f.preventDefault(),n.cerrar({devolverElFoco:!0}));break}}return()=>{const f={ref:m=>{l.value=m,r()},"aria-haspopup":"menu","aria-expanded":n.abierto.value?"true":"false","aria-controls":n.abierto.value?n.idDelMenu:void 0,onClick:i,onKeydown:s},u=a.default?.()??[];if(t.asChild){const m=ct(u);if(m)return e.cloneVNode(m,{...o,...f})}return e.h("div",{...o,class:["dropdown-menu-trigger inline-block",o.class],...f},u)}}}),Sn=["for"],mt=te(e.defineComponent({__name:"FormGroup",props:{label:{},htmlFor:{default:""},customClass:{default:()=>({})},labelClass:{default:()=>({})}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-2",t.customClass])},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.htmlFor,class:e.normalizeClass(["text-sm font-medium text-primary dark:text-primary-dark",t.labelClass])},e.toDisplayString(t.label),11,Sn)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-c0d9d9cb"]]),ut=te(e.defineComponent({__name:"ListCard",props:{clickable:{type:Boolean,default:!1},customClass:{default:()=>({})}},emits:["click"],setup(t,{emit:a}){const o=t,n=a,l=()=>{o.clickable&&n("click")};return(r,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-between background p-3 rounded-vsk border border-vsk-primary/70 transition-colors duration-200",{"hover:bg-vsk-primary/5 cursor-pointer":o.clickable},t.customClass]),onClick:l},[e.renderSlot(r.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-f86d47da"]]),Ln={class:"background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-[background-color] duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80"},Nn=["title","aria-label"],Tn=["src"],Mn={key:1,class:"w-8 h-8 flex items-center justify-center"},An=["src"],In=["min","max","value","aria-label","aria-valuetext"],ft=e.defineComponent({__name:"SliderControl",props:{name:{default:""},type:{default:"icon"},icon:{default:""},label:{},buttonLabel:{},modelValue:{},min:{default:0},max:{default:100},showButton:{type:Boolean,default:!1},iconClass:{default:()=>({})},getPercentageClass:{type:Function,default:()=>""}},emits:["update:modelValue","buttonClick"],setup(t,{emit:a}){const o=t;e.onMounted(()=>{o.icon&&!o.name&&console.warn("[SliderControl] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo.")});const n=a,l=e.computed(()=>{if(o.max<=o.min)return 0;const f=o.max-o.min,u=o.modelValue-o.min;return Math.round(u/f*100)}),r=e.computed(()=>o.getPercentageClass?o.getPercentageClass(l.value):""),i=f=>{const u=f.target;n("update:modelValue",Number(u.value))},s=()=>{n("buttonClick")};return(f,u)=>(e.openBlock(),e.createElementBlock("div",Ln,[t.showButton?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:s,type:"button",title:t.buttonLabel??t.label,"aria-label":t.buttonLabel??t.label,class:"w-8 h-8 flex items-center justify-center rounded-corner transition-[background-color,scale] duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80 hover:scale-110 active:scale-95"},[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:24,class:e.normalizeClass(t.iconClass)},null,8,["name","type","class"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:"",class:e.normalizeClass(["w-6 h-6",t.iconClass])},null,10,Tn))],8,Nn)):(e.openBlock(),e.createElementBlock("div",Mn,[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:24},null,8,["name","type"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:"",class:"w-6 h-6"},null,8,An))])),e.createElementVNode("input",{type:"range",min:t.min,max:t.max,value:t.modelValue,onInput:i,"aria-label":t.label,"aria-valuetext":`${l.value}%`,class:"flex-1 transition-[scale] duration-200 hover:scale-105"},null,40,In),e.createElementVNode("span",{class:e.normalizeClass(["w-12 text-right transition-[color] duration-200 font-medium",r.value])},e.toDisplayString(l.value)+"% ",3)]))}}),oe=e.defineComponent({__name:"SwitchTrack",props:{on:{type:Boolean},size:{default:"small"}},setup(t){const a=t,o=e.computed(()=>a.size==="small");return(n,l)=>(e.openBlock(),e.createElementBlock("span",{"aria-hidden":"true",class:e.normalizeClass(["inline-flex shrink-0 items-center rounded-full border transition-colors",[o.value?"h-6 w-11":"h-7 w-12",t.on?"border-transparent bg-primary":"border-ui-border-strong bg-ui-surface"]])},[e.createElementVNode("span",{class:e.normalizeClass(["inline-block transform rounded-full shadow transition-transform",[o.value?"h-4 w-4":"h-5 w-5",t.on?"bg-tx-on-primary":"bg-tx-main",t.on?"translate-x-6":"translate-x-1"]])},null,2)],2))}}),On=["aria-checked","disabled"],Pn={class:"min-w-0 flex-1"},jn={class:"block font-medium text-sm text-tx-main"},Fn={key:0,class:"mt-0.5 block text-tx-muted text-xs"},pt=e.defineComponent({__name:"SwitchRow",props:{modelValue:{type:Boolean},label:{},description:{},icon:{},iconType:{default:"icon"},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,n=a;return(l,r)=>(e.openBlock(),e.createElementBlock("button",{type:"button",role:"switch","aria-checked":t.modelValue,disabled:t.disabled,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",onClick:r[0]||(r[0]=i=>n("update:modelValue",!o.modelValue))},[e.createVNode(oe,{on:t.modelValue,class:"mt-0.5"},null,8,["on"]),t.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["flex size-10 shrink-0 items-center justify-center rounded-corner border",t.modelValue?"border-secondary bg-primary/20":"border-ui-border bg-ui-surface/40"]),"aria-hidden":"true"},[e.createVNode(D,{name:t.icon,type:t.iconType,size:24,alt:""},null,8,["name","type"])],2)):e.createCommentVNode("",!0),e.createElementVNode("span",Pn,[e.createElementVNode("span",jn,e.toDisplayString(t.label),1),t.description?(e.openBlock(),e.createElementBlock("span",Fn,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"pie")])],8,On))}}),Rn=["aria-checked","aria-label","disabled"],bt=e.defineComponent({__name:"SwitchToggle",props:{modelValue:{type:Boolean},label:{},disabled:{type:Boolean,default:!1},size:{default:"small"}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,n=a;function l(){n("update:modelValue",!o.modelValue)}return(r,i)=>(e.openBlock(),e.createElementBlock("button",{type:"button",role:"switch","aria-checked":t.modelValue,"aria-label":t.label,disabled:t.disabled,class:"rounded-full transition-opacity disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",onClick:l},[e.createVNode(oe,{on:t.modelValue,size:t.size},null,8,["on","size"])],8,Rn))}}),Kn=["disabled","title","aria-label","aria-pressed","aria-busy"],qn=["src"],yt=e.defineComponent({__name:"ToggleControl",props:{name:{default:""},type:{default:"icon"},icon:{default:""},label:{},pressed:{type:[Boolean,null],default:null},isActive:{type:Boolean,default:!1},isLoading:{type:Boolean,default:!1},iconClass:{default:()=>({})},customClass:{default:()=>({})}},emits:["click"],setup(t,{emit:a}){const o=t;e.onMounted(()=>{o.icon&&!o.name&&console.warn("[ToggleControl] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo.")});const n=a;function l(){n("click")}return(r,i)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(["p-2 rounded-corner bg-ui-bg/80 hover:opacity-50 transition-[opacity,scale,box-shadow] duration-300 h-17.5 w-17.5 group relative overflow-hidden hover:scale-105 hover:shadow-lg active:scale-95 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",{"animate-pulse":t.isLoading,"ring-2 ring-primary":t.isActive,"opacity-60":!t.isActive,...t.customClass}]),disabled:t.isLoading,title:t.label,"aria-label":t.label,"aria-pressed":t.pressed??void 0,"aria-busy":t.isLoading||void 0,onClick:l},[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:50,class:e.normalizeClass(["m-auto transition-[scale,filter] duration-300 group-hover:scale-110 relative z-10",{"animate-spin":t.isLoading,"filter brightness-75":!t.isActive,"drop-shadow-lg":t.isActive,...t.iconClass}])},null,8,["name","type","class"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:"",class:e.normalizeClass(["m-auto w-12.5 h-12.5 transition-[scale,filter] duration-300 group-hover:scale-110 relative z-10",{"animate-spin":t.isLoading,"filter brightness-75":!t.isActive,"drop-shadow-lg":t.isActive,...t.iconClass}])},null,10,qn))],10,Kn))}}),he=Symbol("tooltip de vasak");function xe(){const t=e.inject(he,null);if(t)return t;const a=e.ref(!1);return{abierto:e.computed(()=>a.value),disparador:e.ref(null),ponerElDisparador:()=>{},abrir:()=>{a.value=!0},cerrar:()=>{a.value=!1}}}const Un={class:"inline-block"},kt=e.defineComponent({__name:"Tooltip",props:{disabled:{type:Boolean,default:!1},delayDuration:{default:200}},setup(t){const a=t,o=e.ref(!1),n=e.ref(null);let l=null;function r(){a.disabled||(l=setTimeout(()=>{o.value=!0},a.delayDuration))}function i(){l&&clearTimeout(l),o.value=!1}return e.provide(he,{abierto:e.computed(()=>o.value&&!a.disabled),disparador:n,ponerElDisparador:s=>{n.value=s},abrir:r,cerrar:i}),(s,f)=>(e.openBlock(),e.createElementBlock("div",Un,[e.renderSlot(s.$slots,"default")]))}}),gt=e.defineComponent({inheritAttrs:!1,__name:"TooltipContent",props:{side:{default:"bottom"},align:{default:"center"},sideOffset:{default:4}},setup(t){const a=e.useAttrs(),o=e.computed(()=>a.class??""),n=t,l=xe(),r=e.computed(()=>l.abierto.value),i=e.ref(null),s=e.ref({top:0,left:0});function f(){const u=l.disparador.value;if(!u||!i.value)return;const m=u.getBoundingClientRect(),B=i.value.getBoundingClientRect();let C=0,$=0;switch(n.side){case"bottom":C=m.bottom+n.sideOffset,$=m.left+m.width/2-B.width/2;break;case"top":C=m.top-B.height-n.sideOffset,$=m.left+m.width/2-B.width/2;break;case"left":$=m.left-B.width-n.sideOffset,C=m.top+m.height/2-B.height/2;break;case"right":$=m.right+n.sideOffset,C=m.top+m.height/2-B.height/2;break}s.value={top:C,left:$}}return e.watch(r,async u=>{u&&(await e.nextTick(),requestAnimationFrame(f))}),(u,m)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-200 ease-in-out","leave-active-class":"transition-all duration-200 ease-in-out","enter-from-class":"opacity-0 scale-95","leave-to-class":"opacity-0 scale-95"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"globo",ref:i,style:e.normalizeStyle({position:"fixed",top:`${s.value.top}px`,left:`${s.value.left}px`,zIndex:50}),class:e.normalizeClass([o.value,"pointer-events-none rounded-corner border border-secondary bg-ui-bg/80 px-2 py-1 text-sm shadow-md"])},[e.renderSlot(u.$slots,"default")],6),[[e.vShow,r.value]])]),_:3})]))}}),ht=e.defineComponent({__name:"TooltipTrigger",setup(t){const a=xe(),o=e.ref(null);function n(){return o.value?o.value.firstElementChild??o.value:null}function l(){a.ponerElDisparador(n()),a.abrir()}return e.onMounted(()=>{a.ponerElDisparador(n())}),(r,i)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"envoltorio",ref:o,class:"inline-block",onMouseenter:l,onMouseleave:i[0]||(i[0]=s=>e.unref(a).cerrar()),onFocus:l,onBlur:i[1]||(i[1]=s=>e.unref(a).cerrar())},[e.renderSlot(r.$slots,"default")],544))}}),Hn=["title"],Wn=["src","alt"],Gn={key:2,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"},xt=e.defineComponent({__name:"TrayIconButton",props:{name:{default:""},type:{default:"icon"},icon:{default:""},alt:{default:""},tooltip:{default:""},badge:{default:null},iconClass:{default:()=>({})},customClass:{default:""},tooltipClass:{default:""},showCustomTooltip:{type:Boolean,default:!1},customTooltipText:{default:""}},emits:["click"],setup(t,{emit:a}){const o=t,n=a,l=e.ref(!1);e.onMounted(()=>{o.icon&&!o.name&&console.warn("[TrayIconButton] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo.")});const r=()=>{n("click")};return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-1 rounded-corner relative hover:bg-primary dark:hover:bg-primary-dark group transition-[background-color] duration-300",t.customClass]),title:t.tooltip,onClick:r,onMouseenter:s[0]||(s[0]=f=>l.value=!0),onMouseleave:s[1]||(s[1]=f=>l.value=!1)},[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:22,alt:t.alt,class:e.normalizeClass(["m-auto",t.iconClass])},null,8,["name","type","alt","class"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:t.alt,class:e.normalizeClass(["m-auto h-5.5 w-auto",t.iconClass])},null,10,Wn)),t.badge!==null&&t.badge>0?(e.openBlock(),e.createElementBlock("div",Gn,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0),t.showCustomTooltip&&t.customTooltipText?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["absolute top-1 left-1/2 transform -translate-x-1/2 text-xs font-semibold p-1 rounded-corner transition-[opacity,translate] duration-300 pointer-events-none background",[t.tooltipClass,{"opacity-0 -translate-y-2":!l.value,"opacity-100 translate-y-0":l.value}]])},e.toDisplayString(t.customTooltipText),3)):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"default")],42,Hn))}}),Qn=[Ve,ie,re,ze,D,Me,de,ce,Oe,me,Pe,je,Fe,Re,Ke,Ue,ee,Ge,ue,qe,Qe,Ye,Je,Ze,_e,ve,et,tt,at,lt,rt,it,st,dt,mt,ut,ft,pt,bt,oe,yt,kt,gt,ht,xt],Yn={install(t){Qn.forEach(a=>{t.component(a.name,a)})}};d.ActionButton=je,d.AlertMessage=Fe,d.AppBar=de,d.BarSearch=Pe,d.CLASES_POR_TONO=fe,d.CLAVE_DEL_DIALOGO=ye,d.CLAVE_DEL_MENU=ge,d.CLAVE_DEL_TOOLTIP=he,d.CLAVE_DE_LA_BARRA=Z,d.ConfigSection=Qe,d.DeviceCard=Ye,d.Dialog=Je,d.DialogContent=Ze,d.DialogDescription=_e,d.DialogFooter=ve,d.DialogHeader=et,d.DialogTitle=tt,d.DropdownMenu=at,d.DropdownMenuContent=lt,d.DropdownMenuItem=rt,d.DropdownMenuLabel=it,d.DropdownMenuSeparator=st,d.DropdownMenuTrigger=dt,d.EmptyState=Re,d.FormGroup=mt,d.LOS_TRES_CONTROLES=v,d.ListCard=ut,d.LoadingState=Ke,d.POSICIONES=De,d.ProgressBar=Ue,d.SearchField=ee,d.SearchSelect=Ge,d.SelectField=ze,d.SideBar=Ve,d.SideButton=ie,d.SideGroup=re,d.SliderControl=ft,d.SwitchRow=pt,d.SwitchToggle=bt,d.SwitchTrack=oe,d.TabBar=Oe,d.TabItem=me,d.TextInput=ue,d.ThemeIcon=D,d.ToastArea=qe,d.ToggleControl=yt,d.Tooltip=kt,d.TooltipContent=gt,d.TooltipTrigger=ht,d.TrayIconButton=xt,d.WindowControls=ce,d.WindowFrame=Me,d.buscarOpciones=He,d.default=Yn,d.esPosicion=Se,d.olvidarLosIconosDelTema=$t,d.orientacionDe=_,d.posicionDe=Le,d.rolDelTono=pe,d.usarElDialogo=ke,d.usarElMenu=Y,d.usarElTooltip=xe,d.usarLaBarra=U,d.usarLaPosicionDeLaBarra=Ne,d.usarLaVersionDelTema=Pt,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
1
+ (function(d,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue"),require("@tauri-apps/api/event"),require("@vasakgroup/plugin-vicons"),require("@tauri-apps/api/window"),require("@vasakgroup/tauri-plugin-i18n")):typeof define=="function"&&define.amd?define(["exports","vue","@tauri-apps/api/event","@vasakgroup/plugin-vicons","@tauri-apps/api/window","@vasakgroup/tauri-plugin-i18n"],e):(d=typeof globalThis<"u"?globalThis:d||self,e(d.VueLibVasak={},d.Vue,d.TauriEvent,d.VasakVicons,d.TauriWindow,d.tauriPluginI18n))})(this,(function(d,e,wt,we,Bt,Ct){"use strict";const Et="vicons:theme-changed",J=new Map,F=new Map,G=e.ref(0);let R=0,Q=null,q=null;function $t(){J.clear(),F.clear(),R=0,Q=null,q=null,G.value=0,P.clear(),j.clear(),Be=0,K?.disconnect(),K=null,ne=!1,M!==null&&(clearTimeout(M),M=null),I&&(I.cancelado=!0),I=null}const Vt=100,oe=10,zt=16,P=new Map,j=new Set;let Be=0,K=null,ne=!1;function Dt(){return ne?K:(ne=!0,typeof IntersectionObserver>"u"?null:(K=new IntersectionObserver(t=>{for(const a of t){const o=a.target.dataset?.iconoId;if(o==null)continue;const n=Number.parseInt(o,10);a.isIntersecting?j.add(n):j.delete(n)}},{threshold:0}),K))}function St(t){const a=Be++;return P.set(a,{recargar:t,elemento:null}),j.add(a),a}function Lt(t,a){const o=P.get(t);if(!o||o.elemento===a||(o.elemento&&(K?.unobserve(o.elemento),delete o.elemento.dataset.iconoId,o.elemento=null),!a))return;const n=Dt();n&&(o.elemento=a,a.dataset.iconoId=String(t),n.observe(a))}function Nt(t){const a=P.get(t);a?.elemento&&(K?.unobserve(a.elemento),delete a.elemento.dataset.iconoId),j.delete(t),P.delete(t)}let M=null,I=null;function Tt(t){return new Promise(a=>setTimeout(a,t))}async function Mt(t){const a=[...P.keys()],o=a.filter(l=>j.has(l)),n=a.filter(l=>!j.has(l));for(const l of[o,n])for(let r=0;r<l.length;r+=oe){if(t.cancelado)return;const i=l.slice(r,r+oe);if(await Promise.allSettled(i.map(s=>P.get(s)?.recargar()??Promise.resolve())),t.cancelado)return;(r+oe<l.length||l===o)&&await Tt(zt)}I===t&&(I=null)}function At(){M!==null&&(clearTimeout(M),M=null),I&&(I.cancelado=!0);const t={cancelado:!1};I=t,Mt(t)}function It(){J.clear(),F.clear(),G.value++,M!==null&&clearTimeout(M),M=setTimeout(()=>{M=null,At()},Vt)}function Ce(){return R++,Q||q?q??Promise.resolve():(q=wt.listen(Et,It).then(t=>{R<=0?t():Q=t,q=null}),q)}function ae(){R--,!(R>0)&&(R=0,Q?.(),Q=null)}function Ot(t,a){const o=`${a}:${t}`,n=J.get(o);if(n!==void 0)return Promise.resolve(n);const l=F.get(o);if(l)return l;const r=G.value,i=(a==="symbol"?we.getSymbolSource(t):we.getIconSource(t)).then(s=>(G.value===r&&J.set(o,s),s)).finally(()=>{F.get(o)===i&&F.delete(o)});return F.set(o,i),i}function Pt(){let t=!1;return e.onMounted(async()=>{await Ce(),t&&ae()}),e.onUnmounted(()=>{t||(t=!0,ae())}),e.readonly(G)}function jt(t,a){const o=e.ref("");let n=!1,l=0;const r=St(async()=>{await i()});async function i(){const s=++l,f=t.value;if(!f){o.value="";return}const u=await Ot(f,a.value);s===l&&!n&&(o.value=u)}return e.onMounted(async()=>{await Ce(),n||await i()}),e.onUnmounted(()=>{n=!0,Nt(r),ae()}),e.watch([t,a],i),{fuente:o,mirarElemento:s=>Lt(r,s)}}const Kt=["src","alt"],D=e.defineComponent({__name:"ThemeIcon",props:{name:{},type:{default:"icon"},size:{default:18},alt:{default:""}},setup(t){const a=t,{fuente:o,mirarElemento:n}=jt(e.toRef(a,"name"),e.toRef(a,"type")),l=e.useTemplateRef("dibujo");e.watch(l,i=>n(i),{immediate:!0});const r=e.computed(()=>a.size==="auto"?void 0:{width:`${a.size}px`,height:`${a.size}px`});return(i,s)=>e.unref(o)?(e.openBlock(),e.createElementBlock("img",{key:0,ref_key:"dibujo",ref:l,src:e.unref(o),alt:t.alt,style:e.normalizeStyle(r.value),class:"shrink-0 object-contain"},null,12,Kt)):(e.openBlock(),e.createElementBlock("span",{key:1,ref_key:"dibujo",ref:l,style:e.normalizeStyle(r.value),class:"inline-block shrink-0"},null,4))}}),Ft={class:"flex flex-col gap-2"},Rt=["aria-expanded"],qt={key:1,class:"flex flex-col gap-1"},le=e.defineComponent({__name:"SideGroup",props:{title:{},collapsed:{type:Boolean,default:!1},defaultOpen:{type:Boolean,default:!0}},setup(t){const a=t,o=e.ref(a.defaultOpen);return e.watch(()=>a.collapsed,n=>{n&&(o.value=!0)}),(n,l)=>(e.openBlock(),e.createElementBlock("section",Ft,[t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",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","aria-expanded":o.value,onClick:l[0]||(l[0]=r=>o.value=!o.value)},[e.createElementVNode("span",null,e.toDisplayString(t.title),1),e.createVNode(D,{name:"pan-down-symbolic",type:"symbol",size:12,class:e.normalizeClass(["transition-transform duration-200",o.value?"":"-rotate-90"])},null,8,["class"])],8,Rt)),o.value||t.collapsed?(e.openBlock(),e.createElementBlock("div",qt,[e.renderSlot(n.$slots,"default")])):e.createCommentVNode("",!0)]))}}),Ut=["title","aria-label","disabled","aria-current"],Ht={key:1},Wt={key:0,class:"min-w-0 flex-1 truncate font-medium"},Gt={key:1,class:"rounded-corner bg-ui-surface px-2 py-0.5 font-semibold text-tx-muted text-xs"},re=e.defineComponent({__name:"SideButton",props:{label:{},icon:{default:""},active:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},badge:{default:""}},emits:["click"],setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("button",{type:"button",title:t.collapsed?t.label:void 0,"aria-label":t.collapsed?t.label:void 0,disabled:t.disabled,"aria-current":t.active?"page":void 0,class:e.normalizeClass(["group relative flex w-full items-center gap-3 rounded-corner border px-3 py-2 text-left text-sm transition-[color,background-color,border-color,scale] duration-200 active:scale-[0.98]",[t.active?"border-secondary bg-primary/15 text-tx-main shadow-sm":"border-transparent bg-transparent hover:border-ui-border hover:bg-ui-surface/70",t.disabled?"cursor-not-allowed opacity-60":"cursor-pointer",t.collapsed?"justify-center px-2":""]]),onClick:o[0]||(o[0]=n=>a.$emit("click"))},[e.createElementVNode("span",{class:e.normalizeClass(["flex h-8 w-8 shrink-0 items-center justify-center rounded-corner font-semibold text-xs uppercase tracking-wide",t.active?"border-secondary bg-primary/20":""]),"aria-hidden":"true"},[t.icon?(e.openBlock(),e.createBlock(D,{key:0,name:t.icon,size:20},null,8,["name"])):(e.openBlock(),e.createElementBlock("span",Ht,e.toDisplayString(t.label.charAt(0).toUpperCase()),1))],2),t.collapsed?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",Wt,e.toDisplayString(t.label),1)),!t.collapsed&&t.badge!==""?(e.openBlock(),e.createElementBlock("span",Gt,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0)],10,Ut))}}),Qt={key:0,class:"flex flex-col gap-2 border-ui-border border-b p-2"},Yt={class:"flex items-center gap-2"},Xt=["aria-label","aria-expanded"],Jt={key:0,class:"min-w-0 flex-1"},Zt={key:0,class:"truncate font-semibold text-sm"},_t={key:1,class:"truncate text-tx-muted text-xs"},vt={key:0},eo={key:1,class:"flex border-ui-border border-b p-2"},to=["aria-label","aria-expanded"],oo={class:"flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2"},Ee="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",$e=767,Ve=e.defineComponent({__name:"SideBar",props:{title:{default:""},subtitle:{default:""},categories:{default:()=>[]},modelValue:{default:""},collapsed:{type:Boolean,default:void 0},collapseLabel:{default:"Collapse"},expandLabel:{default:"Expand"}},emits:["update:modelValue","update:collapsed","change"],setup(t,{expose:a,emit:o}){const n=t,l=o,r=e.ref(n.collapsed??!1),i=e.ref(!1);let s=null,f=null;const u=e.computed(()=>i.value||r.value),m=e.computed(()=>!!(n.title||n.subtitle));e.computed(()=>n.categories.length>0);function B(){return document.documentElement?.clientWidth||window.innerWidth}function C(){i.value=B()<=$e}function $(){r.value=!r.value,l("update:collapsed",r.value)}function y(h){l("update:modelValue",h),l("change",h)}return e.watch(()=>n.collapsed,h=>{h!==void 0&&(r.value=h)}),e.onMounted(()=>{s=window.matchMedia(`(max-width: ${$e}px)`),C(),s.addEventListener("change",C),window.addEventListener("resize",C),typeof ResizeObserver<"u"&&document.documentElement&&(f=new ResizeObserver(C),f.observe(document.documentElement))}),e.onBeforeUnmount(()=>{s?.removeEventListener("change",C),window.removeEventListener("resize",C),f?.disconnect(),f=null}),a({collapsed:u}),(h,z)=>(e.openBlock(),e.createElementBlock("aside",{class:e.normalizeClass(["relative z-30 flex h-full shrink-0 flex-col rounded-corner border border-ui-border bg-ui-surface/70 transition-[width] duration-300",["w-[84px]",u.value?"md:w-[84px]":"md:w-72"]])},[m.value||h.$slots.header?(e.openBlock(),e.createElementBlock("header",Qt,[e.createElementVNode("div",Yt,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(Ee),"aria-label":u.value?t.expandLabel:t.collapseLabel,"aria-expanded":!u.value,onClick:$},[e.createVNode(D,{name:u.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,Xt),m.value&&!u.value?(e.openBlock(),e.createElementBlock("div",Jt,[t.title?(e.openBlock(),e.createElementBlock("p",Zt,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),t.subtitle?(e.openBlock(),e.createElementBlock("p",_t,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]),h.$slots.header&&!u.value?(e.openBlock(),e.createElementBlock("div",vt,[e.renderSlot(h.$slots,"header",{collapsed:u.value})])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("div",eo,[e.createElementVNode("button",{type:"button",class:e.normalizeClass(Ee),"aria-label":u.value?t.expandLabel:t.collapseLabel,"aria-expanded":!u.value,onClick:$},[e.createVNode(D,{name:u.value?"pan-end-symbolic":"pan-start-symbolic",type:"symbol",size:16},null,8,["name"])],8,to)])),e.createElementVNode("div",oo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.categories,x=>(e.openBlock(),e.createBlock(le,{key:x.id,title:x.title,collapsed:u.value},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(x.items,k=>(e.openBlock(),e.createBlock(re,{key:k.id,label:k.label,icon:k.icon,badge:k.badge,disabled:k.disabled,collapsed:u.value,active:t.modelValue===k.id,onClick:c=>y(k.id)},null,8,["label","icon","badge","disabled","collapsed","active","onClick"]))),128))]),_:2},1032,["title","collapsed"]))),128)),e.renderSlot(h.$slots,"default",{collapsed:u.value})])],2))}}),no={class:"flex min-w-0 flex-col gap-1"},ao=["for"],lo={class:"relative flex min-w-0 items-center"},ro=["id"],ze=e.defineComponent({inheritAttrs:!1,__name:"SelectField",props:e.mergeModels({label:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:e.mergeModels(["change"],["update:modelValue"]),setup(t,{emit:a}){const o=t,n=e.useAttrs(),l=e.useId(),r=e.computed(()=>n.id??l),i=a,[s,f]=e.useModel(t,"modelValue",{set(u){return f.number?Number(u):u}});return(u,m)=>(e.openBlock(),e.createElementBlock("div",no,[o.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:r.value,class:"text-tx-muted text-xs"},e.toDisplayString(o.label),9,ao)):e.createCommentVNode("",!0),e.createElementVNode("div",lo,[e.withDirectives(e.createElementVNode("select",e.mergeProps({id:r.value,"onUpdate:modelValue":m[0]||(m[0]=B=>e.isRef(s)?s.value=B:null),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"},e.unref(n),{onChange:m[1]||(m[1]=B=>i("change",B))}),[e.renderSlot(u.$slots,"default")],16,ro),[[e.vModelSelect,e.unref(s)]]),e.createVNode(D,{name:"pan-down-symbolic",type:"symbol",size:14,class:"pointer-events-none absolute right-2"})])]))}}),Z=Symbol("barra de vasak");function _(t){return t==="left"||t==="right"?"vertical":"horizontal"}const De=["top","bottom","left","right"];function Se(t){return typeof t=="string"&&De.includes(t)}function U(){const t=e.inject(Z,null);if(t)return t;const a=e.ref("top");return{posicion:a,orientacion:e.computed(()=>_(a.value)),vertical:e.computed(()=>_(a.value)==="vertical")}}const v=["minimize","maximize","close"],io="window",so="barPosition";function Le(t){const o=t?.[io]?.[so];return Se(o)?o:null}function Ne(t="top"){const a=e.ref(t);let o=null,n=!1;async function l(){try{const{readConfig:r}=await import("@vasakgroup/plugin-config-manager"),i=await r();a.value=Le(i)??t}catch{}}return e.onMounted(async()=>{await l();try{const{listen:r}=await import("@tauri-apps/api/event"),i=await r("config-changed",()=>{l()});if(n){i();return}o=i}catch{}}),e.onBeforeUnmount(()=>{n=!0,o?.(),o=null}),a}function Te(t){const a=e.getCurrentInstance(),o={};for(const n of t){const l=`on${n[0].toUpperCase()}${n.slice(1)}`;a?.vnode.props?.[l]&&(o[n]=()=>a.emit(n))}return o}const co=["title","aria-label"],mo=["title","aria-label"],uo=["title","aria-label"],ie="flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors",se=e.defineComponent({__name:"WindowControls",props:{controls:{default:()=>v},minimizeLabel:{},maximizeLabel:{},closeLabel:{}},emits:["minimize","maximize","close"],setup(t,{emit:a}){const o=t,{t:n}=Ct.useI18n(),l=e.computed(()=>o.minimizeLabel??n("ventana.minimizar")),r=e.computed(()=>o.maximizeLabel??n("ventana.maximizar")),i=e.computed(()=>o.closeLabel??n("ventana.cerrar")),s=a,{vertical:f}=U(),u=e.computed(()=>({minimize:o.controls.includes("minimize"),maximize:o.controls.includes("maximize"),close:o.controls.includes("close")}));function m(){return Bt.getCurrentWindow()}const B=e.getCurrentInstance();function C(z){return!!B?.vnode.props?.[`on${z}`]}function $(){if(C("Minimize"))return s("minimize");m().minimize()}function y(){if(C("Maximize"))return s("maximize");m().toggleMaximize()}function h(){if(C("Close"))return s("close");m().close()}return(z,x)=>t.controls.length?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex shrink-0 gap-1",e.unref(f)?"flex-col":""]),"data-tauri-drag-region":""},[u.value.minimize?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:e.normalizeClass([ie,"hover:bg-status-success"]),title:l.value,"aria-label":l.value,onClick:x[0]||(x[0]=k=>$())},[e.createVNode(D,{name:"window-minimize",type:"symbol",size:24})],10,co)):e.createCommentVNode("",!0),u.value.maximize?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:e.normalizeClass([ie,"hover:bg-status-warning"]),title:r.value,"aria-label":r.value,onClick:x[1]||(x[1]=k=>y())},[e.createVNode(D,{name:"window-maximize",type:"symbol",size:24})],10,mo)):e.createCommentVNode("",!0),u.value.close?(e.openBlock(),e.createElementBlock("button",{key:2,type:"button",class:e.normalizeClass([ie,"hover:bg-status-error"]),title:i.value,"aria-label":i.value,onClick:x[2]||(x[2]=k=>h())},[e.createVNode(D,{name:"window-close",type:"symbol",size:24})],10,uo)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)}}),fo={key:0,class:"flex shrink-0 items-center","data-tauri-drag-region":""},po={key:1,class:"min-w-0 shrink truncate text-sm","data-tauri-drag-region":""},ce=e.defineComponent({__name:"AppBar",props:{position:{default:null},title:{default:""},minimizeLabel:{},maximizeLabel:{},closeLabel:{},controls:{default:()=>v}},emits:["minimize","maximize","close"],setup(t){const a=t,o=U(),n=e.computed(()=>a.position??o.posicion.value),l=e.computed(()=>n.value==="left"||n.value==="right");return e.provide(Z,{posicion:n,orientacion:e.computed(()=>l.value?"vertical":"horizontal"),vertical:l}),(r,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["relative flex shrink-0 items-center gap-2 p-1 font-title",l.value?"h-full flex-col":"w-full"]),"data-tauri-drag-region":""},[r.$slots.identidad?(e.openBlock(),e.createElementBlock("div",fo,[e.renderSlot(r.$slots,"identidad")])):e.createCommentVNode("",!0),(r.$slots.titulo||t.title)&&!l.value?(e.openBlock(),e.createElementBlock("p",po,[e.renderSlot(r.$slots,"titulo",{},()=>[e.createTextVNode(e.toDisplayString(t.title),1)])])):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(["flex min-h-0 min-w-0 flex-1 items-center gap-2 overflow-auto",l.value?"flex-col":""]),"data-tauri-drag-region":""},[e.renderSlot(r.$slots,"default")],2),r.$slots.acciones?(e.openBlock(),e.createElementBlock("div",{key:2,class:e.normalizeClass(["flex shrink-0 items-center gap-1",l.value?"flex-col":""])},[e.renderSlot(r.$slots,"acciones")],2)):e.createCommentVNode("",!0),e.createVNode(se,e.mergeProps({controls:t.controls,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel},e.toHandlers(e.unref(Te)(["minimize","maximize","close"]))),null,16,["controls","minimize-label","maximize-label","close-label"]),r.$slots.centro?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["pointer-events-none absolute flex items-center justify-center",l.value?"inset-x-0 top-1/2 -translate-y-1/2 flex-col":"inset-y-0 left-1/2 -translate-x-1/2"])},[e.createElementVNode("div",{class:e.normalizeClass(["pointer-events-auto flex items-center gap-2",l.value?"flex-col":""])},[e.renderSlot(r.$slots,"centro")],2)],2)):e.createCommentVNode("",!0)],2))}}),bo={class:"flex min-h-0 min-w-0 flex-1"},Me=e.defineComponent({__name:"WindowFrame",props:{position:{default:null},title:{default:""},minimizeLabel:{},maximizeLabel:{},closeLabel:{},controls:{default:()=>v},hideBar:{type:Boolean,default:!1}},emits:["minimize","maximize","close"],setup(t){const a=t,o=Ne(),n=e.computed(()=>a.position??o.value),l=e.computed(()=>_(n.value)),r=e.computed(()=>l.value==="vertical");e.provide(Z,{posicion:n,orientacion:l,vertical:r});const i={top:"flex-col",bottom:"flex-col-reverse",left:"flex-row",right:"flex-row-reverse"};return(s,f)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex h-screen w-screen overflow-hidden rounded-corner-window border border-ui-border bg-ui-bg/80",i[n.value]])},[t.hideBar?e.createCommentVNode("",!0):(e.openBlock(),e.createBlock(ce,e.mergeProps({key:0,position:n.value,title:t.title,"minimize-label":t.minimizeLabel,"maximize-label":t.maximizeLabel,"close-label":t.closeLabel,controls:t.controls},e.toHandlers(e.unref(Te)(["minimize","maximize","close"]))),e.createSlots({default:e.withCtx(()=>[e.renderSlot(s.$slots,"barra")]),_:2},[s.$slots.identidad?{name:"identidad",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"identidad")]),key:"0"}:void 0,s.$slots.titulo?{name:"titulo",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"titulo")]),key:"1"}:void 0,s.$slots.centro?{name:"centro",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"centro")]),key:"2"}:void 0,s.$slots.acciones?{name:"acciones",fn:e.withCtx(()=>[e.renderSlot(s.$slots,"acciones")]),key:"3"}:void 0]),1040,["position","title","minimize-label","maximize-label","close-label","controls"])),e.createElementVNode("div",bo,[e.renderSlot(s.$slots,"default")])],2))}}),yo=["aria-selected","title","aria-label","tabindex"],ko={key:1,"aria-hidden":"true"},go={key:2,class:"min-w-0 flex-1 truncate"},ho=["title","aria-label"],xo={class:"whitespace-nowrap"},wo={key:0,class:"size-2 shrink-0 rounded-full bg-current","aria-hidden":"true"},Bo=["title","aria-label"],Co=500,Ae=8,Ie=6,de=e.defineComponent({__name:"TabItem",props:{tab:{},active:{type:Boolean,default:!1},closeLabel:{default:"Close"},dirtyLabel:{default:"Unsaved changes"},tabindex:{default:0}},emits:["select","close","menu","mover","navegar"],setup(t,{emit:a}){const o=t,n=a,{vertical:l,posicion:r}=U(),i=e.ref(null),s=e.ref(null),f=e.ref(!1),u=e.ref(!1),m=e.ref(!1),B=e.ref({top:0,left:0,right:0});let C=null,$=null;const y=e.computed(()=>o.tab.closable!==!1),h=e.computed(()=>o.tab.tooltip??o.tab.label),z=e.computed(()=>o.tab.dirty?`${o.tab.label} · ${o.dirtyLabel}`:o.tab.label),x=e.computed(()=>o.tab.label.trim().charAt(0).toUpperCase()),k=e.computed(()=>f.value||m.value),c=e.computed(()=>!!o.tab.dirty&&!(k.value&&y.value)),p=e.computed(()=>y.value&&(k.value||o.active||!o.tab.dirty)),b=e.computed(()=>l.value&&(f.value||u.value||m.value)),S=e.computed(()=>{const L={position:"fixed",top:`${B.value.top}px`,zIndex:50};return r.value==="right"?{...L,right:`${B.value.right+Ie}px`}:{...L,left:`${B.value.left+Ie}px`}});function H(){const L=i.value;if(!L)return;const g=L.getBoundingClientRect();B.value={top:g.top,left:g.right,right:window.innerWidth-g.left}}function T(L){const g=L.relatedTarget;g&&s.value?.contains(g)||(m.value=!1)}function W(){f.value=!0,H()}function A(){u.value=!0,H()}function E(){C!==null&&clearTimeout(C),C=null,$=null}function w(L){L.button===0&&($={x:L.clientX,y:L.clientY},C=setTimeout(()=>{$&&n("menu",$),E()},Co))}function V(L){if(!$)return;(Math.abs(L.clientX-$.x)>Ae||Math.abs(L.clientY-$.y)>Ae)&&E()}function X(L){L.button===1&&y.value&&(L.preventDefault(),n("close"))}function Jn(L){L.preventDefault(),n("menu",{x:L.clientX,y:L.clientY})}return e.onBeforeUnmount(E),(L,g)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"raiz",ref:i,class:e.normalizeClass(["group relative flex shrink-0 cursor-pointer items-center gap-2 rounded-corner border border-ui-border transition-colors",[t.active?"bg-primary font-bold text-tx-on-primary":"bg-ui-bg/80 hover:bg-ui-surface/70",e.unref(l)?"size-8 justify-center p-0 text-sm":"w-34 max-w-34 px-3 py-1 text-sm"]]),role:"tab","aria-selected":t.active,title:h.value,"aria-label":z.value,tabindex:t.tabindex,onClick:g[5]||(g[5]=e.withModifiers(N=>n("select"),["stop"])),onKeydown:[g[6]||(g[6]=e.withKeys(e.withModifiers(N=>n("select"),["stop"]),["enter"])),g[7]||(g[7]=e.withKeys(e.withModifiers(N=>n("select"),["prevent","stop"]),["space"])),g[8]||(g[8]=e.withKeys(e.withModifiers(N=>n("navegar","anterior"),["prevent","stop"]),["left"])),g[9]||(g[9]=e.withKeys(e.withModifiers(N=>n("navegar","anterior"),["prevent","stop"]),["up"])),g[10]||(g[10]=e.withKeys(e.withModifiers(N=>n("navegar","siguiente"),["prevent","stop"]),["right"])),g[11]||(g[11]=e.withKeys(e.withModifiers(N=>n("navegar","siguiente"),["prevent","stop"]),["down"])),g[12]||(g[12]=e.withKeys(e.withModifiers(N=>n("navegar","primera"),["prevent","stop"]),["home"])),g[13]||(g[13]=e.withKeys(e.withModifiers(N=>n("navegar","ultima"),["prevent","stop"]),["end"])),g[14]||(g[14]=e.withKeys(e.withModifiers(N=>n("mover",-1),["alt","prevent","stop"]),["left"])),g[15]||(g[15]=e.withKeys(e.withModifiers(N=>n("mover",-1),["alt","prevent","stop"]),["up"])),g[16]||(g[16]=e.withKeys(e.withModifiers(N=>n("mover",1),["alt","prevent","stop"]),["right"])),g[17]||(g[17]=e.withKeys(e.withModifiers(N=>n("mover",1),["alt","prevent","stop"]),["down"])),g[18]||(g[18]=e.withKeys(e.withModifiers(N=>y.value&&n("close"),["prevent","stop"]),["delete"]))],onAuxclick:e.withModifiers(X,["stop"]),onContextmenu:Jn,onPointerdown:w,onPointermove:V,onPointerup:E,onPointerleave:E,onMouseenter:W,onMouseleave:g[19]||(g[19]=N=>f.value=!1),onFocus:A,onBlur:g[20]||(g[20]=N=>u.value=!1)},[t.tab.icon?(e.openBlock(),e.createBlock(D,{key:0,name:t.tab.icon,size:16,class:"shrink-0"},null,8,["name"])):e.unref(l)?(e.openBlock(),e.createElementBlock("span",ko,e.toDisplayString(x.value),1)):e.createCommentVNode("",!0),e.unref(l)?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("span",go,e.toDisplayString(t.tab.label),1)),c.value?(e.openBlock(),e.createElementBlock("span",{key:3,class:e.normalizeClass(["size-2 shrink-0 rounded-full bg-current",e.unref(l)?"absolute right-0.5 top-0.5":""]),"aria-hidden":"true"},null,2)):p.value&&!e.unref(l)?(e.openBlock(),e.createElementBlock("button",{key:4,type:"button",class:"flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",title:t.closeLabel,"aria-label":`${t.closeLabel}: ${z.value}`,onClick:g[0]||(g[0]=e.withModifiers(N=>n("close"),["stop"]))},[e.createVNode(D,{name:"gtk-close",type:"symbol",size:12})],8,ho)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition duration-150 ease-out","enter-from-class":"opacity-0 scale-95","leave-active-class":"transition duration-100 ease-in","leave-to-class":"opacity-0 scale-95"},{default:e.withCtx(()=>[b.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["flex items-center gap-2 rounded-corner border border-ui-border bg-ui-surface/95 px-3 py-1 text-sm shadow-lg",t.active?"font-bold":""]),ref_key:"desplegadoRef",ref:s,style:e.normalizeStyle(S.value),onMouseenter:g[2]||(g[2]=N=>m.value=!0),onMouseleave:g[3]||(g[3]=N=>m.value=!1),onFocusin:g[4]||(g[4]=N=>m.value=!0),onFocusout:T},[e.createElementVNode("span",xo,e.toDisplayString(t.tab.label),1),t.tab.dirty?(e.openBlock(),e.createElementBlock("span",wo)):e.createCommentVNode("",!0),y.value?(e.openBlock(),e.createElementBlock("button",{key:1,type:"button",class:"flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",title:t.closeLabel,"aria-label":`${t.closeLabel}: ${z.value}`,onClick:g[1]||(g[1]=e.withModifiers(N=>n("close"),["stop"]))},[e.createVNode(D,{name:"gtk-close",type:"symbol",size:12})],8,Bo)):e.createCommentVNode("",!0)],38)):e.createCommentVNode("",!0)]),_:1})]))],42,yo))}}),Eo=["aria-orientation"],$o=["draggable","onDragstart","onDragover","onDrop"],Vo=["title","aria-label"],Oe=e.defineComponent({__name:"TabBar",props:{tabs:{},modelValue:{default:""},newLabel:{default:""},closeLabel:{default:"Close"},dirtyLabel:{default:"Unsaved changes"},fixedOrder:{type:Boolean,default:!1}},emits:["update:modelValue","select","close","new","reorder","menu"],setup(t,{emit:a}){const o=t,n=a,{vertical:l}=U(),r=e.ref(null),i=e.ref(0),s=e.ref(null),f=e.ref(null);function u(k){n("update:modelValue",k),n("select",k)}async function m(k,c){const p=o.tabs.length-1;if(p<0)return;const b=c==="primera"?0:c==="ultima"?p:c==="anterior"?(k-1+o.tabs.length)%o.tabs.length:(k+1)%o.tabs.length;i.value=b,await e.nextTick(),r.value?.querySelectorAll('[role="tab"]')?.[b]?.focus()}function B(k,c){if(o.fixedOrder)return;const p=k+c;if(p<0||p>=o.tabs.length)return;const b=[...o.tabs],[S]=b.splice(k,1);S&&(b.splice(p,0,S),i.value=p,n("reorder",b))}function C(k){const c=r.value;if(!c)return;const p=k.deltaY||k.deltaX||0,b=l.value?c.scrollTop:c.scrollLeft;l.value?c.scrollTop+=p:c.scrollLeft+=p,(l.value?c.scrollTop:c.scrollLeft)!==b&&k.preventDefault()}function $(k,c){o.fixedOrder||(s.value=k,c.dataTransfer?.setData("text/plain",String(k)),c.dataTransfer&&(c.dataTransfer.effectAllowed="move"))}function y(k,c){o.fixedOrder||s.value===null||(c.preventDefault(),f.value=k,c.dataTransfer&&(c.dataTransfer.dropEffect="move"))}function h(k){const c=s.value;if(z(),o.fixedOrder||c===null||c===k)return;const p=[...o.tabs],[b]=p.splice(c,1);b&&(p.splice(k,0,b),n("reorder",p))}function z(){s.value=null,f.value=null}const x=e.computed(()=>l.value?"flex h-full flex-col items-center gap-1 overflow-y-auto overflow-x-hidden":"flex items-center gap-1 overflow-x-auto overflow-y-hidden");return(k,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex min-h-0 min-w-0 items-center gap-1",e.unref(l)?"w-full flex-col":"h-full"]),role:"tablist","aria-orientation":e.unref(l)?"vertical":"horizontal"},[e.createElementVNode("div",{ref_key:"carril",ref:r,class:e.normalizeClass(x.value),onWheel:C},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.tabs,(p,b)=>(e.openBlock(),e.createElementBlock("div",{key:p.id,class:e.normalizeClass(["transition-opacity",[s.value===b?"opacity-40":"",f.value===b&&s.value!==b?"ring-2 ring-secondary rounded-corner":""]]),draggable:!t.fixedOrder,onDragstart:S=>$(b,S),onDragover:S=>y(b,S),onDrop:e.withModifiers(S=>h(b),["prevent"]),onDragend:z},[e.createVNode(de,{tab:p,active:p.id===t.modelValue,"close-label":t.closeLabel,"dirty-label":t.dirtyLabel,tabindex:b===i.value?0:-1,onSelect:S=>u(p.id),onClose:S=>n("close",p.id),onMenu:S=>n("menu",{id:p.id,...S}),onNavegar:S=>m(b,S),onMover:S=>B(b,S)},null,8,["tab","active","close-label","dirty-label","tabindex","onSelect","onClose","onMenu","onNavegar","onMover"])],42,$o))),128))],34),t.newLabel?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",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",title:t.newLabel,"aria-label":t.newLabel,onClick:c[0]||(c[0]=p=>n("new"))},[e.createVNode(D,{name:"gtk-add",type:"symbol",size:14})],8,Vo)):e.createCommentVNode("",!0)],10,Eo))}}),zo=["id","aria-label","type","value","placeholder","disabled","readonly","required","aria-describedby","autocomplete","aria-invalid"],me=e.defineComponent({__name:"TextInput",props:{modelValue:{},type:{default:"text"},id:{},ariaLabel:{},describedBy:{},autocomplete:{},placeholder:{},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},invalid:{type:Boolean,default:!1},mono:{type:Boolean,default:!1},required:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1}},emits:["update:modelValue","keyup","keydown"],setup(t,{expose:a,emit:o}){const n=t,l=o;function r(m){n.lazy||l("update:modelValue",m.target.value)}function i(m){n.lazy&&l("update:modelValue",m.target.value)}const s=e.ref(null);function f(){return s.value?.focus(),s.value!==null&&document.activeElement===s.value}a({enfocar:f});const u=e.computed(()=>["w-full rounded-corner border bg-ui-surface/70 px-3 py-1.5 text-sm text-tx-main","placeholder:text-tx-muted focus:outline-none focus:ring-1 focus:ring-primary",n.invalid?"border-status-error":"border-ui-border",n.mono?"font-mono":"",n.disabled?"cursor-not-allowed opacity-60":""]);return(m,B)=>(e.openBlock(),e.createElementBlock("input",{ref_key:"campo",ref:s,id:t.id,"aria-label":t.ariaLabel,type:t.type,value:t.modelValue,placeholder:t.placeholder,disabled:t.disabled,readonly:t.readonly,required:t.required,"aria-describedby":t.describedBy,autocomplete:t.autocomplete,"aria-invalid":t.invalid||void 0,class:e.normalizeClass(u.value),onInput:r,onChange:i,onKeyup:B[0]||(B[0]=C=>l("keyup",C)),onKeydown:B[1]||(B[1]=C=>l("keydown",C))},null,42,zo))}}),Do={class:"pointer-events-none absolute left-2 flex items-center"},So=["aria-label"],ee=e.defineComponent({__name:"SearchField",props:{modelValue:{default:""},placeholder:{default:""},label:{default:""},disabled:{type:Boolean,default:!1},autofocus:{type:Boolean,default:!1},debounce:{default:0},clearable:{type:Boolean,default:!0},busy:{type:Boolean,default:!1},listboxId:{},activeOptionId:{},expanded:{type:Boolean}},emits:["update:modelValue","search","clear","keydown"],setup(t,{expose:a,emit:o}){const n=t,l=o,r=e.ref(null);let i;const s=e.computed(()=>n.modelValue.length>0),f=e.computed(()=>n.listboxId?{role:"combobox","aria-autocomplete":"list","aria-controls":n.listboxId,"aria-expanded":String(n.expanded),"aria-activedescendant":n.activeOptionId||void 0}:{}),u=e.computed(()=>n.clearable&&s.value&&!n.disabled);function m(){clearTimeout(i),i=void 0}function B(h){l("update:modelValue",h),!(n.debounce<=0)&&(m(),i=setTimeout(()=>l("search",h),n.debounce))}function C(){m(),l("search",n.modelValue)}function $(){m(),l("update:modelValue",""),l("clear"),y()}function y(){return r.value?.enfocar()??!1}return a({enfocar:y}),e.onMounted(async()=>{n.autofocus&&(await e.nextTick(),y())}),e.onUnmounted(m),e.watch(()=>n.disabled,h=>{h&&m()}),(h,z)=>(e.openBlock(),e.createElementBlock("div",{class:"relative flex items-center",onKeydown:e.withKeys(C,["enter"])},[e.createElementVNode("span",Do,[e.createVNode(D,{name:t.busy?"content-loading":"system-search",type:"symbol",size:14,class:e.normalizeClass(t.busy?"animate-spin opacity-70":"opacity-60")},null,8,["name","class"])]),e.createVNode(me,e.mergeProps({ref_key:"campo",ref:r,type:"search","model-value":t.modelValue,placeholder:t.placeholder||t.label,ariaLabel:t.label||void 0},f.value,{disabled:t.disabled,class:["pl-7 [&::-webkit-search-cancel-button]:appearance-none",u.value?"pr-8":""],"onUpdate:modelValue":B,onKeydown:z[0]||(z[0]=x=>l("keydown",x))}),null,16,["model-value","placeholder","ariaLabel","disabled","class"]),u.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"absolute right-1 flex size-6 items-center justify-center rounded-corner text-tx-muted hover:bg-ui-surface","aria-label":t.label?`${t.label}: vaciar`:"Vaciar",onMousedown:z[1]||(z[1]=e.withModifiers(()=>{},["prevent"])),onClick:$},[e.createVNode(D,{name:"gtk-close",type:"symbol",size:12,alt:""})],40,So)):e.createCommentVNode("",!0)],32))}}),Lo=["title","aria-label","aria-expanded"],Pe=e.defineComponent({__name:"BarSearch",props:{modelValue:{default:""},placeholder:{default:""},label:{default:"Search"},collapsed:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},debounce:{default:0}},emits:["update:modelValue","search","open","close"],setup(t,{emit:a}){const o=t,n=a,{vertical:l,posicion:r}=U(),i=e.ref(!1),s=e.ref(null),f=e.computed(()=>l.value||o.collapsed),u=e.computed(()=>!f.value||i.value),m=e.computed(()=>{if(!f.value)return"";const y="absolute z-40 w-64 rounded-corner border border-ui-border bg-ui-surface/95 p-1 shadow-lg";return r.value==="left"?`${y} left-full top-0 ml-1`:r.value==="right"?`${y} right-full top-0 mr-1`:r.value==="bottom"?`${y} bottom-full right-0 mb-1`:`${y} top-full right-0 mt-1`});async function B(){i.value=!0,n("open"),await e.nextTick(),s.value?.enfocar()}function C(){i.value&&(i.value=!1,n("close"))}function $(y){const h=y.relatedTarget;h&&y.currentTarget.contains(h)||C()}return(y,h)=>(e.openBlock(),e.createElementBlock("div",{class:"relative flex shrink-0 items-center",onFocusout:$},[f.value?(e.openBlock(),e.createElementBlock("button",{key:0,type:"button",class:"flex size-7 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",title:t.label,"aria-label":t.label,"aria-expanded":i.value,onMousedown:h[0]||(h[0]=e.withModifiers(()=>{},["prevent"])),onClick:h[1]||(h[1]=z=>i.value?C():B())},[e.createVNode(D,{name:"system-search",type:"symbol",size:14})],40,Lo)):e.createCommentVNode("",!0),u.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(m.value),onKeydown:e.withKeys(C,["esc"])},[e.createVNode(ee,{ref_key:"campo",ref:s,"model-value":t.modelValue,placeholder:t.placeholder,label:t.label,disabled:t.disabled,debounce:t.debounce,class:e.normalizeClass(f.value?"":"w-48"),"onUpdate:modelValue":h[2]||(h[2]=z=>n("update:modelValue",z)),onSearch:h[3]||(h[3]=z=>n("search",z))},null,8,["model-value","placeholder","label","disabled","debounce","class"])],34)):e.createCommentVNode("",!0)],32))}}),No=["type","disabled"],To={key:0,class:"w-4 h-4 animate-spin rounded-full border-2 border-current border-t-transparent"},Mo=["src","alt"],Ao={key:2},Io=["src","alt"],Oo=e.defineComponent({__name:"ActionButton",props:{label:{},disabled:{type:Boolean,default:!1},variant:{default:"primary"},loading:{type:Boolean,default:!1},customClass:{default:()=>({})},size:{default:"md"},fullWidth:{type:Boolean,default:!1},iconSrc:{default:""},iconAlt:{default:""},iconRight:{type:Boolean,default:!1},type:{default:"button"},stopPropagation:{type:Boolean,default:!1},preventDefault:{type:Boolean,default:!1}},emits:["click"],setup(t,{emit:a}){const o=t,n=a,l={primary:"bg-primary dark:bg-primary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-primary/90 dark:hover:bg-primary-dark/90",secondary:"bg-secondary dark:bg-secondary-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-secondary/80 dark:hover:bg-secondary-dark/80",danger:"bg-status-error dark:bg-status-error-dark text-tx-on-primary dark:text-tx-on-primary-dark hover:bg-status-error/90 dark:hover:bg-status-error-dark/90"},r={sm:"px-2 py-1 text-xs",md:"px-3 py-1 text-sm",lg:"px-4 py-2 text-base"},i=s=>{o.stopPropagation&&s.stopPropagation(),o.preventDefault&&s.preventDefault(),!o.disabled&&!o.loading&&n("click")};return(s,f)=>(e.openBlock(),e.createElementBlock("button",{type:o.type,onClick:i,class:e.normalizeClass(["rounded-corner transition-[background-color,opacity] duration-200 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2",[l[o.variant],r[o.size],o.fullWidth?"w-full":"",o.iconSrc&&!o.label?"px-2 py-2":"",t.customClass]]),disabled:o.disabled||o.loading},[t.loading?(e.openBlock(),e.createElementBlock("span",To)):e.createCommentVNode("",!0),o.iconSrc&&!o.iconRight?(e.openBlock(),e.createElementBlock("img",{key:1,src:o.iconSrc,alt:o.iconAlt||o.label,class:"w-4 h-4"},null,8,Mo)):e.createCommentVNode("",!0),o.label?(e.openBlock(),e.createElementBlock("span",Ao,e.toDisplayString(o.label),1)):e.createCommentVNode("",!0),o.iconSrc&&o.iconRight?(e.openBlock(),e.createElementBlock("img",{key:3,src:o.iconSrc,alt:o.iconAlt||o.label,class:"w-4 h-4"},null,8,Io)):e.createCommentVNode("",!0)],10,No))}}),ue=(t,a)=>{const o=t.__vccOpts||t;for(const[n,l]of a)o[n]=l;return o},je=ue(Oo,[["__scopeId","data-v-3c1bd6bd"]]),fe={info:"border-ui-border bg-ui-surface/70 text-tx-main",success:"border-status-success/40 bg-status-success/10 text-tx-main",warning:"border-status-warning/40 bg-status-warning/10 text-tx-main",error:"border-status-error/40 bg-status-error/10 text-tx-main"};function pe(t){return t==="error"?"alert":"status"}const Po=["role"],jo={key:0,class:"mt-0.5"},Ko={class:"min-w-0 flex-1"},Fo={key:0,class:"font-semibold"},Ke=e.defineComponent({__name:"AlertMessage",props:{tone:{default:"info"},title:{},icon:{},iconType:{default:"symbol"}},setup(t){const a=t,o=e.computed(()=>fe[a.tone]),n=e.computed(()=>pe(a.tone));return(l,r)=>(e.openBlock(),e.createElementBlock("div",{role:n.value,"aria-atomic":"true",class:e.normalizeClass(["flex gap-3 rounded-corner border px-4 py-2 text-sm",o.value])},[t.icon?(e.openBlock(),e.createElementBlock("span",jo,[e.createVNode(D,{name:t.icon,type:t.iconType,size:18,alt:""},null,8,["name","type"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Ko,[t.title?(e.openBlock(),e.createElementBlock("p",Fo,e.toDisplayString(t.title),1)):e.createCommentVNode("",!0),e.createElementVNode("div",{class:e.normalizeClass(t.title?"mt-1":"")},[e.renderSlot(l.$slots,"default")],2)])],10,Po))}}),Ro={class:"font-medium text-sm text-tx-main"},qo={key:0,class:"text-sm text-tx-muted"},Fe=e.defineComponent({__name:"EmptyState",props:{title:{},note:{},icon:{default:"dialog-information"},iconType:{default:"icon"},bordered:{type:Boolean,default:!1}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col items-center justify-center gap-3 px-8 py-12 text-center",t.bordered?"rounded-corner border border-ui-border border-dashed bg-ui-surface/20":""])},[e.createVNode(D,{name:t.icon,type:t.iconType,size:48,class:"opacity-60"},null,8,["name","type"]),e.createElementVNode("p",Ro,e.toDisplayString(t.title),1),t.note?(e.openBlock(),e.createElementBlock("p",qo,e.toDisplayString(t.note),1)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default")],2))}}),Uo={class:"text-sm text-tx-muted"},Re=e.defineComponent({__name:"LoadingState",props:{label:{},bordered:{type:Boolean,default:!1}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{role:"status","aria-atomic":"true",class:e.normalizeClass(["flex flex-col items-center justify-center gap-4 px-8 py-12 text-center",t.bordered?"rounded-corner border border-ui-border border-dashed bg-ui-surface/20":""])},[o[0]||(o[0]=e.createElementVNode("span",{class:"h-10 w-10 animate-spin rounded-full border-4 border-ui-border border-t-primary motion-reduce:animate-none"},null,-1)),e.createElementVNode("p",Uo,e.toDisplayString(t.label),1)],2))}}),Ho=["role"],qe=e.defineComponent({__name:"ToastArea",props:{toasts:{},position:{default:"bottom-right"}},setup(t){const a=t,o=e.computed(()=>a.position==="bottom-center"?"bottom-4 left-1/2 -translate-x-1/2":"right-4 bottom-4");return(n,l)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createElementVNode("div",{class:e.normalizeClass(["pointer-events-none fixed z-60 flex flex-col gap-2",o.value])},[e.createVNode(e.TransitionGroup,{"enter-active-class":"transition-all duration-300 ease-out","leave-active-class":"transition-all duration-200 ease-in","enter-from-class":"translate-y-2 opacity-0","leave-to-class":"translate-y-2 opacity-0","move-class":"transition-transform duration-300"},{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.toasts,r=>(e.openBlock(),e.createElementBlock("div",{key:r.id,role:e.unref(pe)(r.tone??"info"),"aria-atomic":"true",class:e.normalizeClass(["pointer-events-auto rounded-corner border px-4 py-2 text-sm shadow-lg backdrop-blur-sm",e.unref(fe)[r.tone??"info"]])},[e.renderSlot(n.$slots,"default",{aviso:r},()=>[e.createTextVNode(e.toDisplayString(r.message),1)])],10,Ho))),128))]),_:3})],2)]))}}),Wo=["aria-label","aria-valuenow"],Go={key:1,class:"h-full w-full animate-pulse rounded-corner bg-primary motion-reduce:animate-none motion-reduce:bg-primary/40"},Ue=e.defineComponent({__name:"ProgressBar",props:{value:{},label:{},tone:{default:"normal"}},setup(t){const a=t,o={normal:"bg-primary",warning:"bg-status-warning",critical:"bg-status-error"},n=e.computed(()=>a.value===null?null:Math.max(0,Math.min(100,a.value)));return(l,r)=>(e.openBlock(),e.createElementBlock("div",{role:"progressbar","aria-label":t.label,"aria-valuenow":n.value??void 0,"aria-valuemin":"0","aria-valuemax":"100",class:"h-2 w-full overflow-hidden rounded-corner bg-ui-surface/70"},[n.value!==null?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["h-full rounded-corner transition-[width] duration-300 ease-out",o[t.tone]]),style:e.normalizeStyle({width:`${n.value}%`})},null,6)):(e.openBlock(),e.createElementBlock("div",Go))],8,Wo))}}),Qo=/[/\-_.]/;function be(t,a){if(!a)return 100;const o=a.toLowerCase();return o===t?0:o.startsWith(t)?10:o.split(Qo).some(n=>n.startsWith(t))?30:o.includes(t)?40:100}function He(t,a){const o=a.trim().toLowerCase();if(!o)return t;const n=[];for(let l=0;l<t.length;l++){const r=t[l],i=be(o,r.valor),s=be(o,r.etiqueta),f=s===10?20:s,m=be(o,r.detalle)===100?100:40,B=Math.min(i,f,m);B!==100&&n.push({opcion:r,rango:B,orden:l})}return n.sort((l,r)=>l.rango-r.rango||l.orden-r.orden),n.map(l=>l.opcion)}let We=0;function Yo(){return We+=1,`vsk-lista-${We}`}const Xo=["disabled","aria-label","aria-expanded"],Jo={class:"min-w-0 flex-1 truncate"},Zo={key:0,class:"ml-2 text-tx-muted text-xs"},_o={class:"border-ui-border border-b p-2"},vo=["id"],en={key:0,class:"p-3 text-center text-tx-muted text-xs"},tn=["id","data-indice","aria-selected"],on={class:"min-w-0 flex-1 truncate"},nn={key:0,class:"shrink-0 text-tx-muted text-xs"},an={key:1,class:"px-2 py-1 text-tx-muted text-xs"},Ge=e.defineComponent({__name:"SearchSelect",props:{modelValue:{},options:{},label:{default:""},searchPlaceholder:{default:""},emptyText:{default:""},placeholder:{default:"—"},disabled:{type:Boolean,default:!1},limit:{default:60},up:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,n=a,l=e.ref(""),r=e.ref(!1),i=e.ref(0),s=e.ref(null),f=e.ref(null),u=e.ref(null),m=Yo(),B=e.computed(()=>o.options.find(E=>E.valor===o.modelValue)??null),C=e.computed(()=>He(o.options,l.value)),$=e.computed(()=>C.value.slice(0,o.limit)),y=e.computed(()=>Math.max(0,C.value.length-o.limit)),h=e.computed(()=>$.value.length>0?`${m}-${i.value}`:void 0);function z(E){n("update:modelValue",E),k()}async function x(){r.value=!0;const E=$.value.findIndex(w=>w.valor===o.modelValue);i.value=E>=0?E:0,await e.nextTick(),u.value?.enfocar(),T()}function k(E=!0){r.value&&(r.value=!1,l.value="",E&&e.nextTick(()=>f.value?.focus()))}function c(E){const w=$.value.length;w!==0&&(i.value=(i.value+E+w)%w,T())}function p(E){i.value=E,T()}function b(E){const w=E.target?.closest?.("[data-indice]");if(!w)return null;const V=Number(w.getAttribute("data-indice"));return Number.isInteger(V)?V:null}function S(E){const w=b(E),V=w===null?void 0:$.value[w];V&&z(V.valor)}function H(E){const w=b(E);w!==null&&(i.value=w)}function T(){e.nextTick(()=>{s.value?.querySelector(`[data-indice="${i.value}"]`)?.scrollIntoView({block:"nearest"})})}function W(){const E=$.value[i.value];E&&z(E.valor)}e.watch(()=>o.disabled,E=>{E&&k(!1)}),e.watch(l,()=>{i.value=0,T()});function A(E){const w=E.relatedTarget;w&&E.currentTarget.contains(w)||k(!1)}return(E,w)=>(e.openBlock(),e.createElementBlock("div",{class:"relative",onFocusout:A},[e.createElementVNode("button",{ref_key:"boton",ref:f,type:"button",disabled:t.disabled,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","aria-label":t.label||void 0,"aria-expanded":r.value,"aria-haspopup":"listbox",onClick:w[0]||(w[0]=V=>r.value?k():x()),onKeydown:[w[1]||(w[1]=e.withKeys(e.withModifiers(V=>r.value?c(1):x(),["prevent"]),["down"])),w[2]||(w[2]=e.withKeys(e.withModifiers(V=>r.value?c(-1):x(),["prevent"]),["up"]))]},[e.createElementVNode("span",Jo,[e.createTextVNode(e.toDisplayString(B.value?.etiqueta??t.placeholder)+" ",1),B.value?.detalle?(e.openBlock(),e.createElementBlock("span",Zo,e.toDisplayString(B.value.detalle),1)):e.createCommentVNode("",!0)]),e.createVNode(D,{name:"go-down",type:"symbol",size:12,class:"shrink-0 opacity-60"})],40,Xo),r.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["absolute z-20 w-full min-w-64 rounded-corner border border-ui-border-strong bg-ui-bg shadow-lg",t.up?"bottom-full mb-1":"mt-1"]),onKeydown:[w[4]||(w[4]=e.withKeys(e.withModifiers(V=>k(),["prevent"]),["escape"])),w[5]||(w[5]=e.withKeys(e.withModifiers(V=>c(1),["prevent"]),["down"])),w[6]||(w[6]=e.withKeys(e.withModifiers(V=>c(-1),["prevent"]),["up"])),w[7]||(w[7]=e.withKeys(e.withModifiers(V=>p(0),["prevent"]),["home"])),w[8]||(w[8]=e.withKeys(e.withModifiers(V=>p($.value.length-1),["prevent"]),["end"])),w[9]||(w[9]=e.withKeys(e.withModifiers(V=>W(),["prevent"]),["enter"])),w[10]||(w[10]=e.withKeys(V=>k(!1),["tab"]))],onClick:S,onMousemove:H},[e.createElementVNode("div",_o,[e.createVNode(ee,{ref_key:"campo",ref:u,modelValue:l.value,"onUpdate:modelValue":w[3]||(w[3]=V=>l.value=V),label:t.label,placeholder:t.searchPlaceholder,"listbox-id":e.unref(m),"active-option-id":h.value,expanded:r.value},null,8,["modelValue","label","placeholder","listbox-id","active-option-id","expanded"])]),e.createElementVNode("ul",{id:e.unref(m),ref_key:"lista",ref:s,role:"listbox",class:"max-h-56 overflow-y-auto p-1"},[$.value.length===0?(e.openBlock(),e.createElementBlock("li",en,e.toDisplayString(t.emptyText),1)):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList($.value,(V,X)=>(e.openBlock(),e.createElementBlock("li",{id:`${e.unref(m)}-${X}`,key:V.valor,"data-indice":X,role:"option","aria-selected":V.valor===t.modelValue,class:e.normalizeClass(["flex cursor-pointer items-baseline gap-2 rounded-corner px-2 py-1 text-sm",[X===i.value?"bg-ui-surface":"",V.valor===t.modelValue?"font-medium text-primary":"text-tx-main"]])},[e.createElementVNode("span",on,e.toDisplayString(V.etiqueta),1),V.detalle?(e.openBlock(),e.createElementBlock("span",nn,e.toDisplayString(V.detalle),1)):e.createCommentVNode("",!0)],10,tn))),128)),y.value>0?(e.openBlock(),e.createElementBlock("li",an,"+"+e.toDisplayString(y.value),1)):e.createCommentVNode("",!0)],8,vo)],34)):e.createCommentVNode("",!0)],32))}}),ln={class:"text-base font-semibold m-0 text-primary dark:text-primary-dark"},Qe=ue(e.defineComponent({__name:"ConfigSection",props:{title:{},icon:{default:""},customClass:{default:()=>({})}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-4 p-4 background rounded-corner",t.customClass])},[e.createElementVNode("h3",ln,e.toDisplayString(t.icon?`${t.icon} ${t.title}`:t.title),1),e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-45bd4eab"]]),rn={class:"flex items-center gap-3 flex-1 min-w-0"},sn=["src","alt"],cn={class:"min-w-0"},dn={class:"font-semibold truncate"},mn={key:0,class:"text-xs text-gray-400 truncate"},un={key:1,class:"text-xs text-gray-400 truncate"},fn={key:2,class:"text-xs text-gray-400 flex gap-2 mt-1"},pn={key:1,class:"w-2 h-2 rounded-full bg-green-500"},Ye=e.defineComponent({__name:"DeviceCard",props:{name:{default:""},type:{default:"icon"},icon:{default:""},title:{},subtitle:{default:""},metadata:{default:""},extraInfo:{default:()=>[]},isConnected:{type:Boolean,default:!1},showActionButton:{type:Boolean,default:!0},actionLabel:{default:"Conectar"},showStatusIndicator:{type:Boolean,default:!1},customClass:{default:""},clickable:{type:Boolean,default:!1}},emits:["action","click"],setup(t,{emit:a}){const o=t,n=a,l=()=>{n("action")},r=()=>{n("click")};return e.onMounted(()=>{o.icon&&!o.name&&console.warn("[DeviceCard] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo.")}),(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-between background rounded-corner px-6 py-3 mb-4",[{"border-l-4 border-green-500":t.isConnected},t.customClass]]),onClick:r},[e.createElementVNode("div",rn,[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:28,alt:t.title},null,8,["name","type","alt"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:t.title,class:"h-7 w-7 shrink-0"},null,8,sn)),e.createElementVNode("div",cn,[e.createElementVNode("div",dn,e.toDisplayString(t.title),1),t.subtitle?(e.openBlock(),e.createElementBlock("div",mn,e.toDisplayString(t.subtitle),1)):e.createCommentVNode("",!0),t.metadata?(e.openBlock(),e.createElementBlock("div",un,e.toDisplayString(t.metadata),1)):e.createCommentVNode("",!0),t.extraInfo&&t.extraInfo.length>0?(e.openBlock(),e.createElementBlock("div",fn,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(t.extraInfo,(f,u)=>(e.openBlock(),e.createElementBlock("span",{key:u},e.toDisplayString(f),1))),128))])):e.createCommentVNode("",!0)])]),t.showActionButton?(e.openBlock(),e.createElementBlock("button",{key:0,class:"bg-primary text-tx-on-primary rounded-corner px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70",onClick:e.withModifiers(l,["stop"])},e.toDisplayString(t.actionLabel),1)):e.createCommentVNode("",!0),t.showStatusIndicator&&t.isConnected?(e.openBlock(),e.createElementBlock("div",pn)):e.createCommentVNode("",!0)],2))}}),ye=Symbol("diálogo de vasak");function ke(){const t=e.inject(ye,null);if(t)return t;const a=e.ref(!1);return{abierto:e.computed(()=>a.value),cerrar:()=>{a.value=!1},idDelTitulo:e.ref(null),ponerElTitulo:()=>{}}}let Xe=0;function bn(){return Xe+=1,`vsk-dialogo-titulo-${Xe}`}const Je=e.defineComponent({__name:"Dialog",props:{open:{type:Boolean,default:!1}},emits:["update:open"],setup(t,{emit:a}){const o=t,n=a,l=e.ref(null);return e.provide(ye,{abierto:e.computed(()=>o.open),cerrar:()=>n("update:open",!1),idDelTitulo:l,ponerElTitulo:r=>{l.value=r}}),(r,i)=>e.renderSlot(r.$slots,"default")}}),yn={key:0,class:"absolute inset-0 rounded-corner-window bg-ui-border-dark/40"},kn=["aria-labelledby","aria-label"],gn="relative z-10 w-full rounded-corner border border-ui-border bg-ui-bg/80 p-6 text-tx-main shadow-lg",Ze=e.defineComponent({inheritAttrs:!1,__name:"DialogContent",props:{size:{default:"md"},ariaLabel:{}},setup(t){const a=t,o=e.useAttrs(),n=e.computed(()=>o.class??""),l=e.computed(()=>{const{class:x,...k}=o;return k}),r=e.computed(()=>a.size==="full"?"relative z-10 h-full w-full overflow-hidden rounded-corner-window text-tx-main":`${gn} ${a.size==="lg"?"max-w-2xl":"max-w-lg"}`),i=ke(),s=e.computed(()=>i.abierto.value),f=e.ref(null),u=e.ref(null);let m=null;function B(){return u.value?[...u.value.querySelectorAll('a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex="-1"])')]:[]}function C(x){if(x.key==="Escape"){i.cerrar();return}if(x.key!=="Tab")return;const k=B();if(k.length===0){x.preventDefault(),u.value?.focus();return}const c=k[0],p=k[k.length-1],b=document.activeElement;x.shiftKey&&(b===c||b===u.value)?(x.preventDefault(),p.focus()):!x.shiftKey&&b===p&&(x.preventDefault(),c.focus())}function $(x){x.target===x.currentTarget&&i.cerrar()}function y(x){f.value?.contains(x.target)||C(x)}function h(){document.removeEventListener("keydown",y)}function z(){const x=m;m=null,x?.isConnected&&x.focus()}return e.watch(s,async x=>{if(x){m=document.activeElement,document.addEventListener("keydown",y),await e.nextTick(),u.value?.focus();return}h(),z()},{immediate:!0}),e.onUnmounted(()=>{h(),z()}),(x,k)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition-opacity duration-200 ease-out","leave-active-class":"transition-opacity duration-150 ease-in","enter-from-class":"opacity-0","leave-to-class":"opacity-0"},{default:e.withCtx(()=>[s.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"velo",ref:f,class:"fixed inset-0 z-50 flex items-center justify-center",onClick:$,onKeydown:C},[a.size==="md"?(e.openBlock(),e.createElementBlock("div",yn)):e.createCommentVNode("",!0),e.createElementVNode("div",e.mergeProps({ref_key:"panel",ref:u,tabindex:"-1",role:"dialog","aria-modal":"true","aria-labelledby":e.unref(i).idDelTitulo.value??void 0,"aria-label":e.unref(i).idDelTitulo.value?void 0:t.ariaLabel},l.value,{class:[n.value,r.value]}),[e.renderSlot(x.$slots,"default")],16,kn)],544)):e.createCommentVNode("",!0)]),_:3})]))}}),hn={class:"text-sm text-tx-muted"},_e=e.defineComponent({__name:"DialogDescription",setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("p",hn,[e.renderSlot(a.$slots,"default")]))}}),xn={class:"flex flex-col-reverse gap-2 sm:flex-row sm:justify-end"},ve=e.defineComponent({__name:"DialogFooter",setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",xn,[e.renderSlot(a.$slots,"default")]))}}),wn={class:"flex flex-col gap-1.5 text-center sm:text-left"},et=e.defineComponent({__name:"DialogHeader",setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",wn,[e.renderSlot(a.$slots,"default")]))}}),Bn=["id"],tt=e.defineComponent({__name:"DialogTitle",setup(t){const a=ke(),o=bn();return e.onMounted(()=>a.ponerElTitulo(o)),e.onUnmounted(()=>a.ponerElTitulo(null)),(n,l)=>(e.openBlock(),e.createElementBlock("h2",{id:e.unref(o),class:"font-semibold text-lg leading-none tracking-tight"},[e.renderSlot(n.$slots,"default")],8,Bn))}}),ge=Symbol("menú de vasak");function Y(){const t=e.inject(ge,null);if(t)return t;const a=e.ref(!1);return{abierto:a,idDelMenu:"vsk-menu-suelto",idDeLaEtiqueta:e.ref(null),ponerLaEtiqueta:()=>{},disparador:e.ref(null),ponerElDisparador:()=>{},focoAlAbrir:e.ref("ninguno"),abrir:()=>{a.value=!0},cerrar:()=>{a.value=!1},alternar:()=>{a.value=!a.value}}}let ot=0;function nt(){return ot+=1,`vsk-menu-${ot}`}const Cn={class:"relative inline-block"},at=e.defineComponent({__name:"DropdownMenu",props:{open:{type:Boolean,default:void 0}},emits:["update:open"],setup(t,{emit:a}){const o=t,n=a,l=e.ref(!1),r=e.ref(null),i=e.ref(null),s=e.ref("ninguno"),f=nt();let u=null;const m=e.computed({get:()=>o.open??l.value,set:y=>{o.open===void 0&&(l.value=y),n("update:open",y)}});e.watch(m,y=>{if(y){const h=document.activeElement;u=h instanceof HTMLElement?h:null}else s.value="ninguno"});function B(y="ninguno"){s.value=y,m.value=!0}function C(y={}){if(m.value=!1,!y.devolverElFoco)return;const h=u??r.value;h?.isConnected&&h.focus()}function $(y="ninguno"){if(m.value){C({devolverElFoco:!0});return}B(y)}return e.provide(ge,{abierto:m,idDelMenu:f,idDeLaEtiqueta:i,ponerLaEtiqueta:y=>{i.value=y},disparador:r,ponerElDisparador:y=>{r.value=y},focoAlAbrir:s,abrir:B,cerrar:C,alternar:$}),(y,h)=>(e.openBlock(),e.createElementBlock("div",Cn,[e.renderSlot(y.$slots,"default")]))}}),En=["id","aria-labelledby","inert"],$n={role:"none",class:"py-1"},O=8,lt=e.defineComponent({inheritAttrs:!1,__name:"DropdownMenuContent",props:{side:{default:"bottom"},align:{default:"start"},sideOffset:{default:4}},setup(t){const a=t,o=Y(),{idDelMenu:n,idDeLaEtiqueta:l}=o,r=e.computed(()=>o.disparador.value),i=e.computed(()=>o.abierto.value),s=e.ref(null),f=e.ref({top:0,left:0,techo:null}),u={top:"bottom",bottom:"top",left:"right",right:"left"};function m(c,p){const b=a.sideOffset+O;switch(c){case"bottom":return window.innerHeight-p.bottom-b;case"top":return p.top-b;case"right":return window.innerWidth-p.right-b;case"left":return p.left-b}}function B(c,p,b){return b<p?p:Math.min(Math.max(c,p),b)}function C(){if(!r.value||!s.value)return;const c=r.value.getBoundingClientRect(),p=s.value.scrollHeight,b=s.value.offsetWidth,S=a.side==="top"||a.side==="bottom",H=S?p:b;let T=a.side;const W=m(T,c);W<H&&m(u[T],c)>W&&(T=u[T]);let A=0,E=0,w=null;switch(T){case"bottom":{A=c.bottom+a.sideOffset,w=Math.max(window.innerHeight-A-O,0);break}case"top":{w=Math.max(m("top",c),0),A=c.top-a.sideOffset-Math.min(p,w);break}case"left":case"right":{E=T==="right"?c.right+a.sideOffset:c.left-b-a.sideOffset;const V=window.innerHeight-2*O;A=B(c.top,O,window.innerHeight-Math.min(p,V)-O),w=Math.max(window.innerHeight-A-O,0);break}}if(S)switch(a.align){case"start":E=c.left;break;case"center":E=c.left+c.width/2-b/2;break;case"end":E=c.right-b;break}E=B(E,O,window.innerWidth-b-O),f.value={top:A,left:E,techo:w}}function $(){return s.value?Array.from(s.value.querySelectorAll('[role="menuitem"]')):[]}function y(c){const p=$();if(!p.length)return;const b=p.length;p[(c%b+b)%b]?.focus()}function h(){const c=document.activeElement;return c instanceof HTMLElement?$().indexOf(c):-1}function z(c){const p=h();switch(c.key){case"ArrowDown":c.preventDefault(),y(p+1);break;case"ArrowUp":c.preventDefault(),y(p<=0?-1:p-1);break;case"Home":c.preventDefault(),y(0);break;case"End":c.preventDefault(),y(-1);break;case"Escape":c.preventDefault(),c.stopPropagation(),o.cerrar({devolverElFoco:!0});break;case"Tab":c.preventDefault(),o.cerrar({devolverElFoco:!0});break}}e.watch(i,async c=>{if(c)switch(await e.nextTick(),requestAnimationFrame(()=>{C()}),o.focoAlAbrir.value){case"primero":y(0);break;case"ultimo":y(-1);break;default:s.value?.focus()}});function x(c){i.value&&(c&&s.value?.contains(c.target)||C())}function k(c){const p=c.target,b=!!p.closest("[data-dropdown-content]"),S=!!r.value?.contains(p);!b&&!S&&o.cerrar()}return e.onMounted(()=>{document.addEventListener("click",k),window.addEventListener("resize",x),window.addEventListener("scroll",x,!0)}),e.onBeforeUnmount(()=>{document.removeEventListener("click",k),window.removeEventListener("resize",x),window.removeEventListener("scroll",x,!0)}),(c,p)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-150 ease-in-out","leave-active-class":"transition-all duration-150 ease-in-out","enter-from-class":"opacity-0 scale-95","leave-to-class":"opacity-0 scale-95",onEnter:p[1]||(p[1]=b=>b.offsetHeight),onLeave:p[2]||(p[2]=b=>b.offsetHeight)},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",e.mergeProps({ref_key:"contenido",ref:s},c.$attrs,{id:e.unref(n),role:"menu",tabindex:"-1","aria-orientation":"vertical","aria-labelledby":e.unref(l)??void 0,inert:!i.value,style:{position:"fixed",top:`${f.value.top}px`,left:`${f.value.left}px`,maxHeight:f.value.techo===null?void 0:`${f.value.techo}px`,overflowY:"auto",overscrollBehavior:"contain",zIndex:50},"data-dropdown-content":"",class:"min-w-30 rounded-corner border border-primary bg-ui-bg/80 shadow-lg focus:outline-none",onClick:p[0]||(p[0]=b=>b.stopPropagation()),onKeydown:z}),[e.createElementVNode("div",$n,[e.renderSlot(c.$slots,"default")])],16,En),[[e.vShow,i.value]])]),_:3})]))}}),Vn=["aria-disabled","onKeydown"],rt=e.defineComponent({__name:"DropdownMenuItem",props:{disabled:{type:Boolean,default:!1}},emits:["select","click"],setup(t,{emit:a}){const o=t,n=a,l=Y();function r(i){o.disabled||(n("select"),n("click",i),l.cerrar({devolverElFoco:!0}))}return(i,s)=>(e.openBlock(),e.createElementBlock("div",{role:"menuitem",tabindex:"0","aria-disabled":t.disabled||void 0,class:e.normalizeClass(["px-3 py-2 text-sm transition-colors outline-none",{"opacity-50 cursor-not-allowed":t.disabled,"cursor-pointer hover:bg-primary hover:text-tx-on-primary focus-visible:bg-primary focus-visible:text-tx-on-primary":!t.disabled}]),onClick:r,onKeydown:[e.withKeys(e.withModifiers(r,["prevent"]),["enter"]),e.withKeys(e.withModifiers(r,["prevent"]),["space"])]},[e.renderSlot(i.$slots,"default")],42,Vn))}}),it=e.defineComponent({__name:"DropdownMenuLabel",setup(t){const a=Y(),o=`${nt()}-titulo`;return e.onMounted(()=>{a.ponerLaEtiqueta(o)}),e.onBeforeUnmount(()=>{a.ponerLaEtiqueta(null)}),(n,l)=>(e.openBlock(),e.createElementBlock("div",{id:o,role:"presentation",class:"px-3 py-2 text-sm font-semibold text-tx-main"},[e.renderSlot(n.$slots,"default")]))}}),zn={role:"separator","aria-orientation":"horizontal",class:"bg-ui-bg/80 my-4 h-0.5"},st=e.defineComponent({__name:"DropdownMenuSeparator",setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",zn))}});function ct(t){const a=t.filter(n=>n.type!==e.Comment&&!(n.type===e.Text&&typeof n.children=="string"&&!n.children.trim()));if(a.length!==1)return null;const o=a[0];return o.type===e.Fragment&&Array.isArray(o.children)?ct(o.children):o}function Dn(t){if(t instanceof HTMLElement)return t;const a=t?.$el;return a instanceof HTMLElement?a:null}const dt=e.defineComponent({name:"DropdownMenuTrigger",inheritAttrs:!1,props:{asChild:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1}},setup(t,{slots:a,attrs:o}){const n=Y(),l=e.ref(null);function r(){n.ponerElDisparador(Dn(l.value))}function i(){t.disabled||(r(),n.alternar())}function s(f){if(!t.disabled)switch(f.key){case"Enter":case" ":f.preventDefault(),r(),n.alternar("primero");break;case"ArrowDown":f.preventDefault(),r(),n.abrir("primero");break;case"ArrowUp":f.preventDefault(),r(),n.abrir("ultimo");break;case"Escape":n.abierto.value&&(f.preventDefault(),n.cerrar({devolverElFoco:!0}));break}}return()=>{const f={ref:m=>{l.value=m,r()},"aria-haspopup":"menu","aria-expanded":n.abierto.value?"true":"false","aria-controls":n.abierto.value?n.idDelMenu:void 0,onClick:i,onKeydown:s},u=a.default?.()??[];if(t.asChild){const m=ct(u);if(m)return e.cloneVNode(m,{...o,...f})}return e.h("div",{...o,class:["dropdown-menu-trigger inline-block",o.class],...f},u)}}}),Sn=["for"],mt=ue(e.defineComponent({__name:"FormGroup",props:{label:{},htmlFor:{default:""},customClass:{default:()=>({})},labelClass:{default:()=>({})}},setup(t){return(a,o)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex flex-col gap-2",t.customClass])},[t.label?(e.openBlock(),e.createElementBlock("label",{key:0,for:t.htmlFor,class:e.normalizeClass(["text-sm font-medium text-primary dark:text-primary-dark",t.labelClass])},e.toDisplayString(t.label),11,Sn)):e.createCommentVNode("",!0),e.renderSlot(a.$slots,"default",{},void 0,!0)],2))}}),[["__scopeId","data-v-c0d9d9cb"]]),Ln=["role","tabindex","onKeydown"],ut=e.defineComponent({__name:"ListCard",props:{clickable:{type:Boolean,default:!1},customClass:{default:()=>({})}},emits:["click"],setup(t,{emit:a}){const o=t,n=a,l=()=>{o.clickable&&n("click")};return(r,i)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["flex items-center justify-between background p-3 rounded-corner border border-ui-border transition-colors duration-200",{"hover:bg-ui-surface/60 cursor-pointer":o.clickable},t.customClass]),role:o.clickable?"button":void 0,tabindex:o.clickable?0:void 0,onClick:l,onKeydown:[e.withKeys(e.withModifiers(l,["self","prevent"]),["enter"]),e.withKeys(e.withModifiers(l,["self","prevent"]),["space"])]},[e.renderSlot(r.$slots,"default")],42,Ln))}}),Nn={class:"background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-[background-color] duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80"},Tn=["title","aria-label"],Mn=["src"],An={key:1,class:"w-8 h-8 flex items-center justify-center"},In=["src"],On=["min","max","value","aria-label","aria-valuetext"],ft=e.defineComponent({__name:"SliderControl",props:{name:{default:""},type:{default:"icon"},icon:{default:""},label:{},buttonLabel:{},modelValue:{},min:{default:0},max:{default:100},showButton:{type:Boolean,default:!1},iconClass:{default:()=>({})},getPercentageClass:{type:Function,default:()=>""}},emits:["update:modelValue","buttonClick"],setup(t,{emit:a}){const o=t;e.onMounted(()=>{o.icon&&!o.name&&console.warn("[SliderControl] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo.")});const n=a,l=e.computed(()=>{if(o.max<=o.min)return 0;const f=o.max-o.min,u=o.modelValue-o.min;return Math.round(u/f*100)}),r=e.computed(()=>o.getPercentageClass?o.getPercentageClass(l.value):""),i=f=>{const u=f.target;n("update:modelValue",Number(u.value))},s=()=>{n("buttonClick")};return(f,u)=>(e.openBlock(),e.createElementBlock("div",Nn,[t.showButton?(e.openBlock(),e.createElementBlock("button",{key:0,onClick:s,type:"button",title:t.buttonLabel??t.label,"aria-label":t.buttonLabel??t.label,class:"w-8 h-8 flex items-center justify-center rounded-corner transition-[background-color,scale] duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80 hover:scale-110 active:scale-95"},[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:24,class:e.normalizeClass(t.iconClass)},null,8,["name","type","class"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:"",class:e.normalizeClass(["w-6 h-6",t.iconClass])},null,10,Mn))],8,Tn)):(e.openBlock(),e.createElementBlock("div",An,[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:24},null,8,["name","type"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:"",class:"w-6 h-6"},null,8,In))])),e.createElementVNode("input",{type:"range",min:t.min,max:t.max,value:t.modelValue,onInput:i,"aria-label":t.label,"aria-valuetext":`${l.value}%`,class:"flex-1 transition-[scale] duration-200 hover:scale-105"},null,40,On),e.createElementVNode("span",{class:e.normalizeClass(["w-12 text-right transition-[color] duration-200 font-medium",r.value])},e.toDisplayString(l.value)+"% ",3)]))}}),te=e.defineComponent({__name:"SwitchTrack",props:{on:{type:Boolean},size:{default:"small"}},setup(t){const a=t,o=e.computed(()=>a.size==="small");return(n,l)=>(e.openBlock(),e.createElementBlock("span",{"aria-hidden":"true",class:e.normalizeClass(["inline-flex shrink-0 items-center rounded-full border transition-colors",[o.value?"h-6 w-11":"h-7 w-12",t.on?"border-transparent bg-primary":"border-ui-border-strong bg-ui-surface"]])},[e.createElementVNode("span",{class:e.normalizeClass(["inline-block transform rounded-full shadow transition-transform",[o.value?"h-4 w-4":"h-5 w-5",t.on?"bg-tx-on-primary":"bg-tx-main",t.on?"translate-x-6":"translate-x-1"]])},null,2)],2))}}),Pn=["aria-checked","disabled"],jn={class:"min-w-0 flex-1"},Kn={class:"block font-medium text-sm text-tx-main"},Fn={key:0,class:"mt-0.5 block text-tx-muted text-xs"},pt=e.defineComponent({__name:"SwitchRow",props:{modelValue:{type:Boolean},label:{},description:{},icon:{},iconType:{default:"icon"},disabled:{type:Boolean,default:!1}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,n=a;return(l,r)=>(e.openBlock(),e.createElementBlock("button",{type:"button",role:"switch","aria-checked":t.modelValue,disabled:t.disabled,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",onClick:r[0]||(r[0]=i=>n("update:modelValue",!o.modelValue))},[e.createVNode(te,{on:t.modelValue,class:"mt-0.5"},null,8,["on"]),t.icon?(e.openBlock(),e.createElementBlock("span",{key:0,class:e.normalizeClass(["flex size-10 shrink-0 items-center justify-center rounded-corner border",t.modelValue?"border-secondary bg-primary/20":"border-ui-border bg-ui-surface/40"]),"aria-hidden":"true"},[e.createVNode(D,{name:t.icon,type:t.iconType,size:24,alt:""},null,8,["name","type"])],2)):e.createCommentVNode("",!0),e.createElementVNode("span",jn,[e.createElementVNode("span",Kn,e.toDisplayString(t.label),1),t.description?(e.openBlock(),e.createElementBlock("span",Fn,e.toDisplayString(t.description),1)):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"pie")])],8,Pn))}}),Rn=["aria-checked","aria-label","disabled"],bt=e.defineComponent({__name:"SwitchToggle",props:{modelValue:{type:Boolean},label:{},disabled:{type:Boolean,default:!1},size:{default:"small"}},emits:["update:modelValue"],setup(t,{emit:a}){const o=t,n=a;function l(){n("update:modelValue",!o.modelValue)}return(r,i)=>(e.openBlock(),e.createElementBlock("button",{type:"button",role:"switch","aria-checked":t.modelValue,"aria-label":t.label,disabled:t.disabled,class:"rounded-full transition-opacity disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",onClick:l},[e.createVNode(te,{on:t.modelValue,size:t.size},null,8,["on","size"])],8,Rn))}}),qn=["disabled","title","aria-label","aria-pressed","aria-busy"],Un=["src"],yt=e.defineComponent({__name:"ToggleControl",props:{name:{default:""},type:{default:"icon"},icon:{default:""},label:{},pressed:{type:[Boolean,null],default:null},isActive:{type:Boolean,default:!1},isLoading:{type:Boolean,default:!1},iconClass:{default:()=>({})},customClass:{default:()=>({})}},emits:["click"],setup(t,{emit:a}){const o=t;e.onMounted(()=>{o.icon&&!o.name&&console.warn("[ToggleControl] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo.")});const n=a;function l(){n("click")}return(r,i)=>(e.openBlock(),e.createElementBlock("button",{type:"button",class:e.normalizeClass(["p-2 rounded-corner bg-ui-bg/80 hover:opacity-50 transition-[opacity,scale,box-shadow] duration-300 h-17.5 w-17.5 group relative overflow-hidden hover:scale-105 hover:shadow-lg active:scale-95 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary focus-visible:ring-offset-2",{"animate-pulse":t.isLoading,"ring-2 ring-primary":t.isActive,"opacity-60":!t.isActive,...t.customClass}]),disabled:t.isLoading,title:t.label,"aria-label":t.label,"aria-pressed":t.pressed??void 0,"aria-busy":t.isLoading||void 0,onClick:l},[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:50,class:e.normalizeClass(["m-auto transition-[scale,filter] duration-300 group-hover:scale-110 relative z-10",{"animate-spin":t.isLoading,"filter brightness-75":!t.isActive,"drop-shadow-lg":t.isActive,...t.iconClass}])},null,8,["name","type","class"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:"",class:e.normalizeClass(["m-auto w-12.5 h-12.5 transition-[scale,filter] duration-300 group-hover:scale-110 relative z-10",{"animate-spin":t.isLoading,"filter brightness-75":!t.isActive,"drop-shadow-lg":t.isActive,...t.iconClass}])},null,10,Un))],10,qn))}}),he=Symbol("tooltip de vasak");function xe(){const t=e.inject(he,null);if(t)return t;const a=e.ref(!1);return{abierto:e.computed(()=>a.value),disparador:e.ref(null),ponerElDisparador:()=>{},abrir:()=>{a.value=!0},cerrar:()=>{a.value=!1}}}const Hn={class:"inline-block"},kt=e.defineComponent({__name:"Tooltip",props:{disabled:{type:Boolean,default:!1},delayDuration:{default:200}},setup(t){const a=t,o=e.ref(!1),n=e.ref(null);let l=null;function r(){a.disabled||(l=setTimeout(()=>{o.value=!0},a.delayDuration))}function i(){l&&clearTimeout(l),o.value=!1}return e.provide(he,{abierto:e.computed(()=>o.value&&!a.disabled),disparador:n,ponerElDisparador:s=>{n.value=s},abrir:r,cerrar:i}),(s,f)=>(e.openBlock(),e.createElementBlock("div",Hn,[e.renderSlot(s.$slots,"default")]))}}),gt=e.defineComponent({inheritAttrs:!1,__name:"TooltipContent",props:{side:{default:"bottom"},align:{default:"center"},sideOffset:{default:4}},setup(t){const a=e.useAttrs(),o=e.computed(()=>a.class??""),n=t,l=xe(),r=e.computed(()=>l.abierto.value),i=e.ref(null),s=e.ref({top:0,left:0});function f(){const u=l.disparador.value;if(!u||!i.value)return;const m=u.getBoundingClientRect(),B=i.value.getBoundingClientRect();let C=0,$=0;switch(n.side){case"bottom":C=m.bottom+n.sideOffset,$=m.left+m.width/2-B.width/2;break;case"top":C=m.top-B.height-n.sideOffset,$=m.left+m.width/2-B.width/2;break;case"left":$=m.left-B.width-n.sideOffset,C=m.top+m.height/2-B.height/2;break;case"right":$=m.right+n.sideOffset,C=m.top+m.height/2-B.height/2;break}s.value={top:C,left:$}}return e.watch(r,async u=>{u&&(await e.nextTick(),requestAnimationFrame(f))}),(u,m)=>(e.openBlock(),e.createBlock(e.Teleport,{to:"body"},[e.createVNode(e.Transition,{"enter-active-class":"transition-all duration-200 ease-in-out","leave-active-class":"transition-all duration-200 ease-in-out","enter-from-class":"opacity-0 scale-95","leave-to-class":"opacity-0 scale-95"},{default:e.withCtx(()=>[e.withDirectives(e.createElementVNode("div",{ref_key:"globo",ref:i,style:e.normalizeStyle({position:"fixed",top:`${s.value.top}px`,left:`${s.value.left}px`,zIndex:50}),class:e.normalizeClass([o.value,"pointer-events-none rounded-corner border border-secondary bg-ui-bg/80 px-2 py-1 text-sm shadow-md"])},[e.renderSlot(u.$slots,"default")],6),[[e.vShow,r.value]])]),_:3})]))}}),ht=e.defineComponent({__name:"TooltipTrigger",setup(t){const a=xe(),o=e.ref(null);function n(){return o.value?o.value.firstElementChild??o.value:null}function l(){a.ponerElDisparador(n()),a.abrir()}return e.onMounted(()=>{a.ponerElDisparador(n())}),(r,i)=>(e.openBlock(),e.createElementBlock("div",{ref_key:"envoltorio",ref:o,class:"inline-block",onMouseenter:l,onMouseleave:i[0]||(i[0]=s=>e.unref(a).cerrar()),onFocus:l,onBlur:i[1]||(i[1]=s=>e.unref(a).cerrar())},[e.renderSlot(r.$slots,"default")],544))}}),Wn=["title"],Gn=["src","alt"],Qn={key:2,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"},xt=e.defineComponent({__name:"TrayIconButton",props:{name:{default:""},type:{default:"icon"},icon:{default:""},alt:{default:""},tooltip:{default:""},badge:{default:null},iconClass:{default:()=>({})},customClass:{default:""},tooltipClass:{default:""},showCustomTooltip:{type:Boolean,default:!1},customTooltipText:{default:""}},emits:["click"],setup(t,{emit:a}){const o=t,n=a,l=e.ref(!1);e.onMounted(()=>{o.icon&&!o.name&&console.warn("[TrayIconButton] «icon» está obsoleto y se va en la próxima mayor: recibe una ruta ya resuelta. Usá «name» con el nombre del icono del tema, y «type» si hace falta el símbolo.")});const r=()=>{n("click")};return(i,s)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass(["p-1 rounded-corner relative hover:bg-primary dark:hover:bg-primary-dark group transition-[background-color] duration-300",t.customClass]),title:t.tooltip,onClick:r,onMouseenter:s[0]||(s[0]=f=>l.value=!0),onMouseleave:s[1]||(s[1]=f=>l.value=!1)},[t.name?(e.openBlock(),e.createBlock(D,{key:0,name:t.name,type:t.type,size:22,alt:t.alt,class:e.normalizeClass(["m-auto",t.iconClass])},null,8,["name","type","alt","class"])):(e.openBlock(),e.createElementBlock("img",{key:1,src:t.icon,alt:t.alt,class:e.normalizeClass(["m-auto h-5.5 w-auto",t.iconClass])},null,10,Gn)),t.badge!==null&&t.badge>0?(e.openBlock(),e.createElementBlock("div",Qn,e.toDisplayString(t.badge),1)):e.createCommentVNode("",!0),t.showCustomTooltip&&t.customTooltipText?(e.openBlock(),e.createElementBlock("div",{key:3,class:e.normalizeClass(["absolute top-1 left-1/2 transform -translate-x-1/2 text-xs font-semibold p-1 rounded-corner transition-[opacity,translate] duration-300 pointer-events-none background",[t.tooltipClass,{"opacity-0 -translate-y-2":!l.value,"opacity-100 translate-y-0":l.value}]])},e.toDisplayString(t.customTooltipText),3)):e.createCommentVNode("",!0),e.renderSlot(i.$slots,"default")],42,Wn))}}),Yn=[Ve,re,le,ze,D,Me,ce,se,Oe,de,Pe,je,Ke,Fe,Re,Ue,ee,Ge,me,qe,Qe,Ye,Je,Ze,_e,ve,et,tt,at,lt,rt,it,st,dt,mt,ut,ft,pt,bt,te,yt,kt,gt,ht,xt],Xn={install(t){Yn.forEach(a=>{t.component(a.name,a)})}};d.ActionButton=je,d.AlertMessage=Ke,d.AppBar=ce,d.BarSearch=Pe,d.CLASES_POR_TONO=fe,d.CLAVE_DEL_DIALOGO=ye,d.CLAVE_DEL_MENU=ge,d.CLAVE_DEL_TOOLTIP=he,d.CLAVE_DE_LA_BARRA=Z,d.ConfigSection=Qe,d.DeviceCard=Ye,d.Dialog=Je,d.DialogContent=Ze,d.DialogDescription=_e,d.DialogFooter=ve,d.DialogHeader=et,d.DialogTitle=tt,d.DropdownMenu=at,d.DropdownMenuContent=lt,d.DropdownMenuItem=rt,d.DropdownMenuLabel=it,d.DropdownMenuSeparator=st,d.DropdownMenuTrigger=dt,d.EmptyState=Fe,d.FormGroup=mt,d.LOS_TRES_CONTROLES=v,d.ListCard=ut,d.LoadingState=Re,d.POSICIONES=De,d.ProgressBar=Ue,d.SearchField=ee,d.SearchSelect=Ge,d.SelectField=ze,d.SideBar=Ve,d.SideButton=re,d.SideGroup=le,d.SliderControl=ft,d.SwitchRow=pt,d.SwitchToggle=bt,d.SwitchTrack=te,d.TabBar=Oe,d.TabItem=de,d.TextInput=me,d.ThemeIcon=D,d.ToastArea=qe,d.ToggleControl=yt,d.Tooltip=kt,d.TooltipContent=gt,d.TooltipTrigger=ht,d.TrayIconButton=xt,d.WindowControls=se,d.WindowFrame=Me,d.buscarOpciones=He,d.default=Xn,d.esPosicion=Se,d.olvidarLosIconosDelTema=$t,d.orientacionDe=_,d.posicionDe=Le,d.rolDelTono=pe,d.usarElDialogo=ke,d.usarElMenu=Y,d.usarElTooltip=xe,d.usarLaBarra=U,d.usarLaPosicionDeLaBarra=Ne,d.usarLaVersionDelTema=Pt,Object.defineProperties(d,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vasakgroup/vue-libvasak",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "description": "Vue componenets for VSK Applications",
5
5
  "main": "./dist/vue-libvasak.umd.js",
6
6
  "module": "./dist/vue-libvasak.es.js",
@@ -53,16 +53,16 @@
53
53
  },
54
54
  "devDependencies": {
55
55
  "@happy-dom/global-registrator": "^20.14.5",
56
- "@tauri-apps/api": "^2.10.1",
56
+ "@tauri-apps/api": "^2.11.1",
57
57
  "@types/bun": "^1.4.2",
58
- "@vasakgroup/plugin-config-manager": "^2.6.0",
59
- "@vasakgroup/plugin-vicons": "^2.0.0",
58
+ "@vasakgroup/plugin-config-manager": "~2.6.1",
59
+ "@vasakgroup/plugin-vicons": "^2.2.1",
60
60
  "@vasakgroup/tauri-plugin-i18n": "^2.3.0",
61
- "@vitejs/plugin-vue": "^6.0.4",
61
+ "@vitejs/plugin-vue": "^6.0.9",
62
62
  "@vue/test-utils": "^2.5.1",
63
63
  "happy-dom": "^20.14.5",
64
64
  "typescript": "^5.9.3",
65
- "vite": "^7.3.1",
65
+ "vite": "^7.3.6",
66
66
  "vue": "^3.5.28",
67
67
  "vue-router": "^5.0.3",
68
68
  "vue-tsc": "^3.3.11"
@@ -74,5 +74,10 @@
74
74
  "typecheck": "bunx vue-tsc --noEmit",
75
75
  "test": "bun test",
76
76
  "tipos": "bunx vue-tsc --declaration --emitDeclarationOnly --noEmit false --outDir dist/types"
77
+ },
78
+ "vasak": {
79
+ "bibliotecasAtrasadas": {
80
+ "@vasakgroup/plugin-config-manager": "La 2.7.0 declara pinia ^4 y el taller está en pinia 3: subir el rango arrastra un salto mayor ajeno. Acá es sólo de desarrollo —la librería no usa pinia— pero se mantiene alineado con las dieciséis aplicaciones. Por eso el rango es ~2.6.1 y no ^2.6.1, que alcanzaría la 2.7.0 en el próximo `bun update`. Se saca al subir a pinia 4."
81
+ }
77
82
  }
78
83
  }