@vasakgroup/vue-libvasak 0.5.0 → 0.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,31 +1,31 @@
1
- import { ref as w, onMounted as W, onUnmounted as Me, watch as K, defineComponent as L, toRef as oe, computed as k, createElementBlock as s, unref as P, openBlock as n, normalizeStyle as _, createCommentVNode as g, createElementVNode as $, createVNode as F, toDisplayString as M, normalizeClass as p, renderSlot as S, createBlock as R, onBeforeUnmount as G, Fragment as U, renderList as Y, withCtx as q, mergeModels as Se, useAttrs as Te, useId as Ie, useModel as Oe, withDirectives as de, mergeProps as fe, isRef as Ve, vModelSelect as je, inject as me, provide as te, createTextVNode as Pe, createSlots as Fe, withModifiers as A, withKeys as j, Teleport as be, Transition as ve, nextTick as ae, vShow as Ne, cloneVNode as Re, h as qe, Comment as He, Text as Ue } from "vue";
2
- import { listen as We } from "@tauri-apps/api/event";
3
- import { getSymbolSource as Ke, getIconSource as Ge } from "@vasakgroup/plugin-vicons";
4
- import { getCurrentWindow as Xe } from "@tauri-apps/api/window";
5
- function Ye(e, l) {
1
+ import { ref as w, onMounted as W, onUnmounted as Oe, watch as K, defineComponent as z, toRef as se, computed as x, createElementBlock as i, unref as P, openBlock as l, normalizeStyle as ee, createCommentVNode as g, createElementVNode as C, createVNode as F, toDisplayString as I, normalizeClass as p, renderSlot as A, createBlock as q, onBeforeUnmount as G, Fragment as U, renderList as Y, withCtx as R, mergeModels as je, useAttrs as Ve, useId as Pe, useModel as Fe, withDirectives as me, mergeProps as J, isRef as Ne, vModelSelect as Re, inject as be, getCurrentInstance as ve, provide as ae, createTextVNode as qe, toHandlers as pe, createSlots as He, withModifiers as T, withKeys as V, Teleport as ge, Transition as ye, nextTick as ne, vShow as Ue, cloneVNode as We, h as Ke, Comment as Ge, Text as Xe } from "vue";
2
+ import { listen as Ye } from "@tauri-apps/api/event";
3
+ import { getSymbolSource as Je, getIconSource as Qe } from "@vasakgroup/plugin-vicons";
4
+ import { getCurrentWindow as Ze } from "@tauri-apps/api/window";
5
+ function _e(e, n) {
6
6
  const t = w("");
7
- let a = null, o = !1, i = 0;
7
+ let a = null, o = !1, s = 0;
8
8
  async function u() {
9
- const r = ++i, f = e.value;
10
- if (!f) {
9
+ const r = ++s, c = e.value;
10
+ if (!c) {
11
11
  t.value = "";
12
12
  return;
13
13
  }
14
- const b = l.value === "symbol" ? await Ke(f) : await Ge(f);
15
- r === i && (t.value = b);
14
+ const b = n.value === "symbol" ? await Je(c) : await Qe(c);
15
+ r === s && (t.value = b);
16
16
  }
17
17
  return W(async () => {
18
- const r = await We("vicons:theme-changed", u);
18
+ const r = await Ye("vicons:theme-changed", u);
19
19
  if (o) {
20
20
  r();
21
21
  return;
22
22
  }
23
23
  a = r, await u();
24
- }), Me(() => {
24
+ }), Oe(() => {
25
25
  o = !0, a?.();
26
26
  }), K(e, u), t;
27
27
  }
28
- const Je = ["src", "alt"], N = /* @__PURE__ */ L({
28
+ const et = ["src", "alt"], N = /* @__PURE__ */ z({
29
29
  __name: "ThemeIcon",
30
30
  props: {
31
31
  name: {},
@@ -34,23 +34,23 @@ const Je = ["src", "alt"], N = /* @__PURE__ */ L({
34
34
  alt: { default: "" }
35
35
  },
36
36
  setup(e) {
37
- const l = e, t = Ye(oe(l, "name"), oe(l, "type")), a = k(() => `${l.size}px`);
38
- return (o, i) => P(t) ? (n(), s("img", {
37
+ const n = e, t = _e(se(n, "name"), se(n, "type")), a = x(() => `${n.size}px`);
38
+ return (o, s) => P(t) ? (l(), i("img", {
39
39
  key: 0,
40
40
  src: P(t),
41
41
  alt: e.alt,
42
- style: _({ width: a.value, height: a.value }),
42
+ style: ee({ width: a.value, height: a.value }),
43
43
  class: "shrink-0 object-contain"
44
- }, null, 12, Je)) : (n(), s("span", {
44
+ }, null, 12, et)) : (l(), i("span", {
45
45
  key: 1,
46
- style: _({ width: a.value, height: a.value }),
46
+ style: ee({ width: a.value, height: a.value }),
47
47
  class: "shrink-0"
48
48
  }, null, 4));
49
49
  }
50
- }), Qe = { class: "flex flex-col gap-2" }, Ze = ["aria-expanded"], _e = {
50
+ }), tt = { class: "flex flex-col gap-2" }, at = ["aria-expanded"], nt = {
51
51
  key: 1,
52
52
  class: "flex flex-col gap-1"
53
- }, pe = /* @__PURE__ */ L({
53
+ }, he = /* @__PURE__ */ z({
54
54
  __name: "SideGroup",
55
55
  props: {
56
56
  title: {},
@@ -58,40 +58,40 @@ const Je = ["src", "alt"], N = /* @__PURE__ */ L({
58
58
  defaultOpen: { type: Boolean, default: !0 }
59
59
  },
60
60
  setup(e) {
61
- const l = e, t = w(l.defaultOpen);
61
+ const n = e, t = w(n.defaultOpen);
62
62
  return K(
63
- () => l.collapsed,
63
+ () => n.collapsed,
64
64
  (a) => {
65
65
  a && (t.value = !0);
66
66
  }
67
- ), (a, o) => (n(), s("section", Qe, [
68
- e.collapsed ? g("", !0) : (n(), s("button", {
67
+ ), (a, o) => (l(), i("section", tt, [
68
+ e.collapsed ? g("", !0) : (l(), i("button", {
69
69
  key: 0,
70
70
  type: "button",
71
71
  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",
72
72
  "aria-expanded": t.value,
73
- onClick: o[0] || (o[0] = (i) => t.value = !t.value)
73
+ onClick: o[0] || (o[0] = (s) => t.value = !t.value)
74
74
  }, [
75
- $("span", null, M(e.title), 1),
75
+ C("span", null, I(e.title), 1),
76
76
  F(N, {
77
77
  name: "pan-down-symbolic",
78
78
  type: "symbol",
79
79
  size: 12,
80
80
  class: p(["transition-transform duration-200", t.value ? "" : "-rotate-90"])
81
81
  }, null, 8, ["class"])
82
- ], 8, Ze)),
83
- t.value || e.collapsed ? (n(), s("div", _e, [
84
- S(a.$slots, "default")
82
+ ], 8, at)),
83
+ t.value || e.collapsed ? (l(), i("div", nt, [
84
+ A(a.$slots, "default")
85
85
  ])) : g("", !0)
86
86
  ]));
87
87
  }
88
- }), et = ["title", "aria-label", "disabled", "aria-current"], tt = { key: 1 }, at = {
88
+ }), lt = ["title", "aria-label", "disabled", "aria-current"], ot = { key: 1 }, it = {
89
89
  key: 0,
90
90
  class: "min-w-0 flex-1 truncate font-medium"
91
- }, lt = {
91
+ }, st = {
92
92
  key: 1,
93
93
  class: "rounded-corner bg-ui-surface px-2 py-0.5 font-semibold text-tx-muted text-xs"
94
- }, ge = /* @__PURE__ */ L({
94
+ }, xe = /* @__PURE__ */ z({
95
95
  __name: "SideButton",
96
96
  props: {
97
97
  label: {},
@@ -103,7 +103,7 @@ const Je = ["src", "alt"], N = /* @__PURE__ */ L({
103
103
  },
104
104
  emits: ["click"],
105
105
  setup(e) {
106
- return (l, t) => (n(), s("button", {
106
+ return (n, t) => (l(), i("button", {
107
107
  type: "button",
108
108
  title: e.collapsed ? e.label : void 0,
109
109
  "aria-label": e.collapsed ? e.label : void 0,
@@ -114,38 +114,38 @@ const Je = ["src", "alt"], N = /* @__PURE__ */ L({
114
114
  e.disabled ? "cursor-not-allowed opacity-60" : "cursor-pointer",
115
115
  e.collapsed ? "justify-center px-2" : ""
116
116
  ]]),
117
- onClick: t[0] || (t[0] = (a) => l.$emit("click"))
117
+ onClick: t[0] || (t[0] = (a) => n.$emit("click"))
118
118
  }, [
119
- $("span", {
119
+ C("span", {
120
120
  class: p(["flex h-8 w-8 shrink-0 items-center justify-center rounded-corner font-semibold text-xs uppercase tracking-wide", e.active ? "border-secondary bg-primary/20" : ""]),
121
121
  "aria-hidden": "true"
122
122
  }, [
123
- e.icon ? (n(), R(N, {
123
+ e.icon ? (l(), q(N, {
124
124
  key: 0,
125
125
  name: e.icon,
126
126
  size: 20
127
- }, null, 8, ["name"])) : (n(), s("span", tt, M(e.label.charAt(0).toUpperCase()), 1))
127
+ }, null, 8, ["name"])) : (l(), i("span", ot, I(e.label.charAt(0).toUpperCase()), 1))
128
128
  ], 2),
129
- e.collapsed ? g("", !0) : (n(), s("span", at, M(e.label), 1)),
130
- !e.collapsed && e.badge !== "" ? (n(), s("span", lt, M(e.badge), 1)) : g("", !0)
131
- ], 10, et));
129
+ e.collapsed ? g("", !0) : (l(), i("span", it, I(e.label), 1)),
130
+ !e.collapsed && e.badge !== "" ? (l(), i("span", st, I(e.badge), 1)) : g("", !0)
131
+ ], 10, lt));
132
132
  }
133
- }), nt = {
133
+ }), rt = {
134
134
  key: 0,
135
135
  class: "flex flex-col gap-2 border-ui-border border-b p-2"
136
- }, ot = { class: "flex items-center gap-2" }, it = ["aria-label", "aria-expanded"], st = {
136
+ }, ut = { class: "flex items-center gap-2" }, ct = ["aria-label", "aria-expanded"], dt = {
137
137
  key: 0,
138
138
  class: "min-w-0 flex-1"
139
- }, rt = {
139
+ }, ft = {
140
140
  key: 0,
141
141
  class: "truncate font-semibold text-sm"
142
- }, ut = {
142
+ }, mt = {
143
143
  key: 1,
144
144
  class: "truncate text-tx-muted text-xs"
145
- }, ct = { key: 0 }, dt = {
145
+ }, bt = { key: 0 }, vt = {
146
146
  key: 1,
147
147
  class: "flex border-ui-border border-b p-2"
148
- }, ft = ["aria-label", "aria-expanded"], mt = { class: "flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2" }, ie = "hidden h-8 w-8 shrink-0 items-center justify-center rounded-corner border border-ui-border bg-ui-surface/70 transition-colors hover:bg-ui-surface md:inline-flex", se = 767, bt = /* @__PURE__ */ L({
148
+ }, pt = ["aria-label", "aria-expanded"], gt = { class: "flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-2" }, re = "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", ue = 767, yt = /* @__PURE__ */ z({
149
149
  __name: "SideBar",
150
150
  props: {
151
151
  title: { default: "" },
@@ -157,19 +157,19 @@ const Je = ["src", "alt"], N = /* @__PURE__ */ L({
157
157
  expandLabel: { default: "Expand" }
158
158
  },
159
159
  emits: ["update:modelValue", "update:collapsed", "change"],
160
- setup(e, { expose: l, emit: t }) {
161
- const a = e, o = t, i = w(a.collapsed ?? !1), u = w(!1);
162
- let r = null, f = null;
163
- const b = k(() => u.value || i.value), C = k(() => !!(a.title || a.subtitle));
164
- k(() => a.categories.length > 0);
165
- function T() {
160
+ setup(e, { expose: n, emit: t }) {
161
+ const a = e, o = t, s = w(a.collapsed ?? !1), u = w(!1);
162
+ let r = null, c = null;
163
+ const b = x(() => u.value || s.value), $ = x(() => !!(a.title || a.subtitle));
164
+ x(() => a.categories.length > 0);
165
+ function M() {
166
166
  return document.documentElement?.clientWidth || window.innerWidth;
167
167
  }
168
- function E() {
169
- u.value = T() <= se;
168
+ function L() {
169
+ u.value = M() <= ue;
170
170
  }
171
- function V() {
172
- i.value = !i.value, o("update:collapsed", i.value);
171
+ function E() {
172
+ s.value = !s.value, o("update:collapsed", s.value);
173
173
  }
174
174
  function y(h) {
175
175
  o("update:modelValue", h), o("change", h);
@@ -177,81 +177,81 @@ const Je = ["src", "alt"], N = /* @__PURE__ */ L({
177
177
  return K(
178
178
  () => a.collapsed,
179
179
  (h) => {
180
- h !== void 0 && (i.value = h);
180
+ h !== void 0 && (s.value = h);
181
181
  }
182
182
  ), W(() => {
183
- r = window.matchMedia(`(max-width: ${se}px)`), E(), r.addEventListener("change", E), window.addEventListener("resize", E), typeof ResizeObserver < "u" && document.documentElement && (f = new ResizeObserver(E), f.observe(document.documentElement));
183
+ r = window.matchMedia(`(max-width: ${ue}px)`), L(), r.addEventListener("change", L), window.addEventListener("resize", L), typeof ResizeObserver < "u" && document.documentElement && (c = new ResizeObserver(L), c.observe(document.documentElement));
184
184
  }), G(() => {
185
- r?.removeEventListener("change", E), window.removeEventListener("resize", E), f?.disconnect(), f = null;
186
- }), l({ collapsed: b }), (h, m) => (n(), s("aside", {
185
+ r?.removeEventListener("change", L), window.removeEventListener("resize", L), c?.disconnect(), c = null;
186
+ }), n({ collapsed: b }), (h, m) => (l(), i("aside", {
187
187
  class: p(["relative z-30 flex h-full shrink-0 flex-col rounded-corner border border-ui-border bg-ui-surface/70 transition-all duration-300", ["w-[84px]", b.value ? "md:w-[84px]" : "md:w-72"]])
188
188
  }, [
189
- C.value || h.$slots.header ? (n(), s("header", nt, [
190
- $("div", ot, [
191
- $("button", {
189
+ $.value || h.$slots.header ? (l(), i("header", rt, [
190
+ C("div", ut, [
191
+ C("button", {
192
192
  type: "button",
193
- class: p(ie),
193
+ class: p(re),
194
194
  "aria-label": b.value ? e.expandLabel : e.collapseLabel,
195
195
  "aria-expanded": !b.value,
196
- onClick: V
196
+ onClick: E
197
197
  }, [
198
198
  F(N, {
199
199
  name: b.value ? "pan-end-symbolic" : "pan-start-symbolic",
200
200
  type: "symbol",
201
201
  size: 16
202
202
  }, null, 8, ["name"])
203
- ], 8, it),
204
- C.value && !b.value ? (n(), s("div", st, [
205
- e.title ? (n(), s("p", rt, M(e.title), 1)) : g("", !0),
206
- e.subtitle ? (n(), s("p", ut, M(e.subtitle), 1)) : g("", !0)
203
+ ], 8, ct),
204
+ $.value && !b.value ? (l(), i("div", dt, [
205
+ e.title ? (l(), i("p", ft, I(e.title), 1)) : g("", !0),
206
+ e.subtitle ? (l(), i("p", mt, I(e.subtitle), 1)) : g("", !0)
207
207
  ])) : g("", !0)
208
208
  ]),
209
- h.$slots.header && !b.value ? (n(), s("div", ct, [
210
- S(h.$slots, "header", { collapsed: b.value })
209
+ h.$slots.header && !b.value ? (l(), i("div", bt, [
210
+ A(h.$slots, "header", { collapsed: b.value })
211
211
  ])) : g("", !0)
212
- ])) : (n(), s("div", dt, [
213
- $("button", {
212
+ ])) : (l(), i("div", vt, [
213
+ C("button", {
214
214
  type: "button",
215
- class: p(ie),
215
+ class: p(re),
216
216
  "aria-label": b.value ? e.expandLabel : e.collapseLabel,
217
217
  "aria-expanded": !b.value,
218
- onClick: V
218
+ onClick: E
219
219
  }, [
220
220
  F(N, {
221
221
  name: b.value ? "pan-end-symbolic" : "pan-start-symbolic",
222
222
  type: "symbol",
223
223
  size: 16
224
224
  }, null, 8, ["name"])
225
- ], 8, ft)
225
+ ], 8, pt)
226
226
  ])),
227
- $("div", mt, [
228
- (n(!0), s(U, null, Y(e.categories, (x) => (n(), R(pe, {
229
- key: x.id,
230
- title: x.title,
227
+ C("div", gt, [
228
+ (l(!0), i(U, null, Y(e.categories, (k) => (l(), q(he, {
229
+ key: k.id,
230
+ title: k.title,
231
231
  collapsed: b.value
232
232
  }, {
233
- default: q(() => [
234
- (n(!0), s(U, null, Y(x.items, (c) => (n(), R(ge, {
235
- key: c.id,
236
- label: c.label,
237
- icon: c.icon,
238
- badge: c.badge,
239
- disabled: c.disabled,
233
+ default: R(() => [
234
+ (l(!0), i(U, null, Y(k.items, (d) => (l(), q(xe, {
235
+ key: d.id,
236
+ label: d.label,
237
+ icon: d.icon,
238
+ badge: d.badge,
239
+ disabled: d.disabled,
240
240
  collapsed: b.value,
241
- active: e.modelValue === c.id,
242
- onClick: (v) => y(c.id)
241
+ active: e.modelValue === d.id,
242
+ onClick: (v) => y(d.id)
243
243
  }, null, 8, ["label", "icon", "badge", "disabled", "collapsed", "active", "onClick"]))), 128))
244
244
  ]),
245
245
  _: 2
246
246
  }, 1032, ["title", "collapsed"]))), 128)),
247
- S(h.$slots, "default", { collapsed: b.value })
247
+ A(h.$slots, "default", { collapsed: b.value })
248
248
  ])
249
249
  ], 2));
250
250
  }
251
- }), vt = { class: "flex min-w-0 flex-col gap-1" }, pt = ["for"], gt = { class: "relative flex min-w-0 items-center" }, yt = ["id"], ht = /* @__PURE__ */ L({
251
+ }), ht = { class: "flex min-w-0 flex-col gap-1" }, xt = ["for"], kt = { class: "relative flex min-w-0 items-center" }, wt = ["id"], $t = /* @__PURE__ */ z({
252
252
  inheritAttrs: !1,
253
253
  __name: "SelectField",
254
- props: /* @__PURE__ */ Se({
254
+ props: /* @__PURE__ */ je({
255
255
  label: {}
256
256
  }, {
257
257
  modelValue: {
@@ -261,26 +261,26 @@ const Je = ["src", "alt"], N = /* @__PURE__ */ L({
261
261
  }),
262
262
  emits: ["update:modelValue"],
263
263
  setup(e) {
264
- const l = e, t = Te(), a = Ie(), o = k(() => t.id ?? a), [i, u] = Oe(e, "modelValue", {
264
+ const n = e, t = Ve(), a = Pe(), o = x(() => t.id ?? a), [s, u] = Fe(e, "modelValue", {
265
265
  set(r) {
266
266
  return u.number ? Number(r) : r;
267
267
  }
268
268
  });
269
- return (r, f) => (n(), s("div", vt, [
270
- l.label ? (n(), s("label", {
269
+ return (r, c) => (l(), i("div", ht, [
270
+ n.label ? (l(), i("label", {
271
271
  key: 0,
272
272
  for: o.value,
273
273
  class: "text-tx-muted text-xs"
274
- }, M(l.label), 9, pt)) : g("", !0),
275
- $("div", gt, [
276
- de($("select", fe({
274
+ }, I(n.label), 9, xt)) : g("", !0),
275
+ C("div", kt, [
276
+ me(C("select", J({
277
277
  id: o.value,
278
- "onUpdate:modelValue": f[0] || (f[0] = (b) => Ve(i) ? i.value = b : null),
278
+ "onUpdate:modelValue": c[0] || (c[0] = (b) => Ne(s) ? s.value = b : null),
279
279
  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"
280
280
  }, P(t)), [
281
- S(r.$slots, "default")
282
- ], 16, yt), [
283
- [je, P(i)]
281
+ A(r.$slots, "default")
282
+ ], 16, wt), [
283
+ [Re, P(s)]
284
284
  ]),
285
285
  F(N, {
286
286
  name: "pan-down-symbolic",
@@ -292,42 +292,42 @@ const Je = ["src", "alt"], N = /* @__PURE__ */ L({
292
292
  ]));
293
293
  }
294
294
  }), le = /* @__PURE__ */ Symbol("barra de vasak");
295
- function ee(e) {
295
+ function te(e) {
296
296
  return e === "left" || e === "right" ? "vertical" : "horizontal";
297
297
  }
298
- const xt = ["top", "bottom", "left", "right"];
299
- function kt(e) {
300
- return typeof e == "string" && xt.includes(e);
298
+ const Ct = ["top", "bottom", "left", "right"];
299
+ function zt(e) {
300
+ return typeof e == "string" && Ct.includes(e);
301
301
  }
302
302
  function X() {
303
- const e = me(le, null);
303
+ const e = be(le, null);
304
304
  if (e) return e;
305
- const l = w("top");
305
+ const n = w("top");
306
306
  return {
307
- posicion: l,
308
- orientacion: k(() => ee(l.value)),
309
- vertical: k(() => ee(l.value) === "vertical")
307
+ posicion: n,
308
+ orientacion: x(() => te(n.value)),
309
+ vertical: x(() => te(n.value) === "vertical")
310
310
  };
311
311
  }
312
- const wt = "window", $t = "barPosition";
313
- function Ct(e) {
314
- const t = e?.[wt]?.[$t];
315
- return kt(t) ? t : null;
312
+ const oe = ["minimize", "maximize", "close"], Lt = "window", Et = "barPosition";
313
+ function Dt(e) {
314
+ const t = e?.[Lt]?.[Et];
315
+ return zt(t) ? t : null;
316
316
  }
317
- function Lt(e = "top") {
318
- const l = w(e);
317
+ function Bt(e = "top") {
318
+ const n = w(e);
319
319
  let t = null, a = !1;
320
320
  async function o() {
321
321
  try {
322
- const { readConfig: i } = await import("@vasakgroup/plugin-config-manager"), u = await i();
323
- l.value = Ct(u) ?? e;
322
+ const { readConfig: s } = await import("@vasakgroup/plugin-config-manager"), u = await s();
323
+ n.value = Dt(u) ?? e;
324
324
  } catch {
325
325
  }
326
326
  }
327
327
  return W(async () => {
328
328
  await o();
329
329
  try {
330
- const { listen: i } = await import("@tauri-apps/api/event"), u = await i("config-changed", () => {
330
+ const { listen: s } = await import("@tauri-apps/api/event"), u = await s("config-changed", () => {
331
331
  o();
332
332
  });
333
333
  if (a) {
@@ -339,71 +339,105 @@ function Lt(e = "top") {
339
339
  }
340
340
  }), G(() => {
341
341
  a = !0, t?.(), t = null;
342
- }), l;
342
+ }), n;
343
+ }
344
+ function ke(e) {
345
+ const n = ve(), t = {};
346
+ for (const a of e) {
347
+ const o = `on${a[0].toUpperCase()}${a.slice(1)}`;
348
+ n?.vnode.props?.[o] && (t[a] = () => n.emit(a));
349
+ }
350
+ return t;
343
351
  }
344
- const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title", "aria-label"], Z = "flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors", ye = /* @__PURE__ */ L({
352
+ const At = ["title", "aria-label"], Mt = ["title", "aria-label"], St = ["title", "aria-label"], _ = "flex items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 p-1 transition-colors", we = /* @__PURE__ */ z({
345
353
  __name: "WindowControls",
346
354
  props: {
355
+ controls: { default: () => oe },
347
356
  minimizeLabel: { default: "Minimize" },
348
357
  maximizeLabel: { default: "Maximize" },
349
358
  closeLabel: { default: "Close" }
350
359
  },
351
- setup(e) {
352
- const { vertical: l } = X();
353
- function t() {
354
- return Xe();
360
+ emits: ["minimize", "maximize", "close"],
361
+ setup(e, { emit: n }) {
362
+ const t = e, a = n, { vertical: o } = X(), s = x(() => ({
363
+ minimize: t.controls.includes("minimize"),
364
+ maximize: t.controls.includes("maximize"),
365
+ close: t.controls.includes("close")
366
+ }));
367
+ function u() {
368
+ return Ze();
369
+ }
370
+ const r = ve();
371
+ function c(L) {
372
+ return !!r?.vnode.props?.[`on${L}`];
355
373
  }
356
- return (a, o) => (n(), s("div", {
357
- class: p(["flex shrink-0 gap-1", P(l) ? "flex-col" : ""]),
374
+ function b() {
375
+ if (c("Minimize")) return a("minimize");
376
+ u().minimize();
377
+ }
378
+ function $() {
379
+ if (c("Maximize")) return a("maximize");
380
+ u().toggleMaximize();
381
+ }
382
+ function M() {
383
+ if (c("Close")) return a("close");
384
+ u().close();
385
+ }
386
+ return (L, E) => e.controls.length ? (l(), i("div", {
387
+ key: 0,
388
+ class: p(["flex shrink-0 gap-1", P(o) ? "flex-col" : ""]),
358
389
  "data-tauri-drag-region": ""
359
390
  }, [
360
- $("button", {
391
+ s.value.minimize ? (l(), i("button", {
392
+ key: 0,
361
393
  type: "button",
362
- class: p([Z, "hover:bg-status-success"]),
394
+ class: p([_, "hover:bg-status-success"]),
363
395
  title: e.minimizeLabel,
364
396
  "aria-label": e.minimizeLabel,
365
- onClick: o[0] || (o[0] = (i) => t().minimize())
397
+ onClick: E[0] || (E[0] = (y) => b())
366
398
  }, [
367
399
  F(N, {
368
400
  name: "window-minimize",
369
401
  size: 24
370
402
  })
371
- ], 10, zt),
372
- $("button", {
403
+ ], 10, At)) : g("", !0),
404
+ s.value.maximize ? (l(), i("button", {
405
+ key: 1,
373
406
  type: "button",
374
- class: p([Z, "hover:bg-status-warning"]),
407
+ class: p([_, "hover:bg-status-warning"]),
375
408
  title: e.maximizeLabel,
376
409
  "aria-label": e.maximizeLabel,
377
- onClick: o[1] || (o[1] = (i) => t().toggleMaximize())
410
+ onClick: E[1] || (E[1] = (y) => $())
378
411
  }, [
379
412
  F(N, {
380
413
  name: "window-maximize",
381
414
  size: 24
382
415
  })
383
- ], 10, Dt),
384
- $("button", {
416
+ ], 10, Mt)) : g("", !0),
417
+ s.value.close ? (l(), i("button", {
418
+ key: 2,
385
419
  type: "button",
386
- class: p([Z, "hover:bg-status-error"]),
420
+ class: p([_, "hover:bg-status-error"]),
387
421
  title: e.closeLabel,
388
422
  "aria-label": e.closeLabel,
389
- onClick: o[2] || (o[2] = (i) => t().close())
423
+ onClick: E[2] || (E[2] = (y) => M())
390
424
  }, [
391
425
  F(N, {
392
426
  name: "window-close",
393
427
  size: 24
394
428
  })
395
- ], 10, Et)
396
- ], 2));
429
+ ], 10, St)) : g("", !0)
430
+ ], 2)) : g("", !0);
397
431
  }
398
- }), Bt = {
432
+ }), Tt = {
399
433
  key: 0,
400
434
  class: "flex shrink-0 items-center",
401
435
  "data-tauri-drag-region": ""
402
- }, At = {
436
+ }, It = {
403
437
  key: 1,
404
438
  class: "min-w-0 shrink truncate text-sm",
405
439
  "data-tauri-drag-region": ""
406
- }, he = /* @__PURE__ */ L({
440
+ }, $e = /* @__PURE__ */ z({
407
441
  __name: "AppBar",
408
442
  props: {
409
443
  position: { default: null },
@@ -411,47 +445,58 @@ const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title",
411
445
  minimizeLabel: { default: "Minimize" },
412
446
  maximizeLabel: { default: "Maximize" },
413
447
  closeLabel: { default: "Close" },
414
- hideControls: { type: Boolean, default: !1 }
448
+ controls: { default: () => oe }
415
449
  },
450
+ emits: ["minimize", "maximize", "close"],
416
451
  setup(e) {
417
- const l = e, t = X(), a = k(() => l.position ?? t.posicion.value), o = k(() => a.value === "left" || a.value === "right");
418
- return te(le, {
452
+ const n = e, t = X(), a = x(() => n.position ?? t.posicion.value), o = x(() => a.value === "left" || a.value === "right");
453
+ return ae(le, {
419
454
  posicion: a,
420
- orientacion: k(() => o.value ? "vertical" : "horizontal"),
455
+ orientacion: x(() => o.value ? "vertical" : "horizontal"),
421
456
  vertical: o
422
- }), (i, u) => (n(), s("div", {
423
- class: p(["flex shrink-0 items-center gap-2 p-1 font-title", o.value ? "h-full flex-col" : "w-full"]),
457
+ }), (s, u) => (l(), i("div", {
458
+ class: p(["relative flex shrink-0 items-center gap-2 p-1 font-title", o.value ? "h-full flex-col" : "w-full"]),
424
459
  "data-tauri-drag-region": ""
425
460
  }, [
426
- i.$slots.identidad ? (n(), s("div", Bt, [
427
- S(i.$slots, "identidad")
461
+ s.$slots.identidad ? (l(), i("div", Tt, [
462
+ A(s.$slots, "identidad")
428
463
  ])) : g("", !0),
429
- (i.$slots.titulo || e.title) && !o.value ? (n(), s("p", At, [
430
- S(i.$slots, "titulo", {}, () => [
431
- Pe(M(e.title), 1)
464
+ (s.$slots.titulo || e.title) && !o.value ? (l(), i("p", It, [
465
+ A(s.$slots, "titulo", {}, () => [
466
+ qe(I(e.title), 1)
432
467
  ])
433
468
  ])) : g("", !0),
434
- $("div", {
469
+ C("div", {
435
470
  class: p(["flex min-h-0 min-w-0 flex-1 items-center gap-2 overflow-auto", o.value ? "flex-col" : ""]),
436
471
  "data-tauri-drag-region": ""
437
472
  }, [
438
- S(i.$slots, "default")
473
+ A(s.$slots, "default")
439
474
  ], 2),
440
- i.$slots.acciones ? (n(), s("div", {
475
+ s.$slots.acciones ? (l(), i("div", {
441
476
  key: 2,
442
477
  class: p(["flex shrink-0 items-center gap-1", o.value ? "flex-col" : ""])
443
478
  }, [
444
- S(i.$slots, "acciones")
479
+ A(s.$slots, "acciones")
445
480
  ], 2)) : g("", !0),
446
- e.hideControls ? g("", !0) : (n(), R(ye, {
447
- key: 3,
481
+ F(we, J({
482
+ controls: e.controls,
448
483
  "minimize-label": e.minimizeLabel,
449
484
  "maximize-label": e.maximizeLabel,
450
485
  "close-label": e.closeLabel
451
- }, null, 8, ["minimize-label", "maximize-label", "close-label"]))
486
+ }, pe(P(ke)(["minimize", "maximize", "close"]))), null, 16, ["controls", "minimize-label", "maximize-label", "close-label"]),
487
+ s.$slots.centro ? (l(), i("div", {
488
+ key: 3,
489
+ class: p(["pointer-events-none absolute flex items-center justify-center", o.value ? "inset-x-0 top-1/2 -translate-y-1/2 flex-col" : "inset-y-0 left-1/2 -translate-x-1/2"])
490
+ }, [
491
+ C("div", {
492
+ class: p(["pointer-events-auto flex items-center gap-2", o.value ? "flex-col" : ""])
493
+ }, [
494
+ A(s.$slots, "centro")
495
+ ], 2)
496
+ ], 2)) : g("", !0)
452
497
  ], 2));
453
498
  }
454
- }), Mt = { class: "flex min-h-0 min-w-0 flex-1" }, St = /* @__PURE__ */ L({
499
+ }), Ot = { class: "flex min-h-0 min-w-0 flex-1" }, jt = /* @__PURE__ */ z({
455
500
  __name: "WindowFrame",
456
501
  props: {
457
502
  position: { default: null },
@@ -459,73 +504,81 @@ const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title",
459
504
  minimizeLabel: { default: "Minimize" },
460
505
  maximizeLabel: { default: "Maximize" },
461
506
  closeLabel: { default: "Close" },
462
- hideControls: { type: Boolean, default: !1 },
507
+ controls: { default: () => oe },
463
508
  hideBar: { type: Boolean, default: !1 }
464
509
  },
510
+ emits: ["minimize", "maximize", "close"],
465
511
  setup(e) {
466
- const l = e, t = Lt(), a = k(() => l.position ?? t.value), o = k(() => ee(a.value)), i = k(() => o.value === "vertical");
467
- te(le, { posicion: a, orientacion: o, vertical: i });
512
+ const n = e, t = Bt(), a = x(() => n.position ?? t.value), o = x(() => te(a.value)), s = x(() => o.value === "vertical");
513
+ ae(le, { posicion: a, orientacion: o, vertical: s });
468
514
  const u = {
469
515
  top: "flex-col",
470
516
  bottom: "flex-col-reverse",
471
517
  left: "flex-row",
472
518
  right: "flex-row-reverse"
473
519
  };
474
- return (r, f) => (n(), s("div", {
520
+ return (r, c) => (l(), i("div", {
475
521
  class: p(["flex h-screen w-screen overflow-hidden rounded-corner-window border border-ui-border bg-ui-bg/80", u[a.value]])
476
522
  }, [
477
- e.hideBar ? g("", !0) : (n(), R(he, {
523
+ e.hideBar ? g("", !0) : (l(), q($e, J({
478
524
  key: 0,
479
525
  position: a.value,
480
526
  title: e.title,
481
527
  "minimize-label": e.minimizeLabel,
482
528
  "maximize-label": e.maximizeLabel,
483
529
  "close-label": e.closeLabel,
484
- "hide-controls": e.hideControls
485
- }, Fe({
486
- default: q(() => [
487
- S(r.$slots, "barra")
530
+ controls: e.controls
531
+ }, pe(P(ke)(["minimize", "maximize", "close"]))), He({
532
+ default: R(() => [
533
+ A(r.$slots, "barra")
488
534
  ]),
489
535
  _: 2
490
536
  }, [
491
537
  r.$slots.identidad ? {
492
538
  name: "identidad",
493
- fn: q(() => [
494
- S(r.$slots, "identidad")
539
+ fn: R(() => [
540
+ A(r.$slots, "identidad")
495
541
  ]),
496
542
  key: "0"
497
543
  } : void 0,
498
544
  r.$slots.titulo ? {
499
545
  name: "titulo",
500
- fn: q(() => [
501
- S(r.$slots, "titulo")
546
+ fn: R(() => [
547
+ A(r.$slots, "titulo")
502
548
  ]),
503
549
  key: "1"
504
550
  } : void 0,
551
+ r.$slots.centro ? {
552
+ name: "centro",
553
+ fn: R(() => [
554
+ A(r.$slots, "centro")
555
+ ]),
556
+ key: "2"
557
+ } : void 0,
505
558
  r.$slots.acciones ? {
506
559
  name: "acciones",
507
- fn: q(() => [
508
- S(r.$slots, "acciones")
560
+ fn: R(() => [
561
+ A(r.$slots, "acciones")
509
562
  ]),
510
- key: "2"
563
+ key: "3"
511
564
  } : void 0
512
- ]), 1032, ["position", "title", "minimize-label", "maximize-label", "close-label", "hide-controls"])),
513
- $("div", Mt, [
514
- S(r.$slots, "default")
565
+ ]), 1040, ["position", "title", "minimize-label", "maximize-label", "close-label", "controls"])),
566
+ C("div", Ot, [
567
+ A(r.$slots, "default")
515
568
  ])
516
569
  ], 2));
517
570
  }
518
- }), Tt = ["aria-selected", "title", "aria-label", "tabindex"], It = {
571
+ }), Vt = ["aria-selected", "title", "aria-label", "tabindex"], Pt = {
519
572
  key: 1,
520
573
  "aria-hidden": "true"
521
- }, Ot = {
574
+ }, Ft = {
522
575
  key: 2,
523
576
  class: "min-w-0 flex-1 truncate"
524
- }, Vt = ["title", "aria-label"], jt = { class: "whitespace-nowrap" }, Pt = {
577
+ }, Nt = ["title", "aria-label"], Rt = { class: "whitespace-nowrap" }, qt = {
525
578
  key: 0,
526
579
  class: "size-2 shrink-0 rounded-full bg-current",
527
580
  "aria-hidden": "true"
528
- }, Ft = ["title", "aria-label"], Nt = 500, re = 8, ue = 6, xe = /* @__PURE__ */ L({
581
+ }, Ht = ["title", "aria-label"], Ut = 500, ce = 8, de = 6, Ce = /* @__PURE__ */ z({
529
582
  __name: "TabItem",
530
583
  props: {
531
584
  tab: {},
@@ -535,60 +588,60 @@ const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title",
535
588
  tabindex: { default: 0 }
536
589
  },
537
590
  emits: ["select", "close", "menu", "mover", "navegar"],
538
- setup(e, { emit: l }) {
539
- const t = e, a = l, { vertical: o, posicion: i } = X(), u = w(null), r = w(null), f = w(!1), b = w(!1), C = w(!1), T = w({ top: 0, left: 0, right: 0 });
540
- let E = null, V = null;
541
- const y = k(() => t.tab.closable !== !1), h = k(() => t.tab.tooltip ?? t.tab.label), m = k(
591
+ setup(e, { emit: n }) {
592
+ const t = e, a = n, { vertical: o, posicion: s } = X(), u = w(null), r = w(null), c = w(!1), b = w(!1), $ = w(!1), M = w({ top: 0, left: 0, right: 0 });
593
+ let L = null, E = null;
594
+ const y = x(() => t.tab.closable !== !1), h = x(() => t.tab.tooltip ?? t.tab.label), m = x(
542
595
  () => t.tab.dirty ? `${t.tab.label} · ${t.dirtyLabel}` : t.tab.label
543
- ), x = k(() => t.tab.label.trim().charAt(0).toUpperCase()), c = k(() => f.value || C.value), v = k(
544
- () => !!t.tab.dirty && !(c.value && y.value)
545
- ), z = k(
546
- () => y.value && (c.value || t.active || !t.tab.dirty)
547
- ), D = k(
548
- () => o.value && (f.value || b.value || C.value)
549
- ), O = k(() => {
550
- const B = { position: "fixed", top: `${T.value.top}px`, zIndex: 50 };
551
- return i.value === "right" ? { ...B, right: `${T.value.right + ue}px` } : { ...B, left: `${T.value.left + ue}px` };
596
+ ), k = x(() => t.tab.label.trim().charAt(0).toUpperCase()), d = x(() => c.value || $.value), v = x(
597
+ () => !!t.tab.dirty && !(d.value && y.value)
598
+ ), D = x(
599
+ () => y.value && (d.value || t.active || !t.tab.dirty)
600
+ ), B = x(
601
+ () => o.value && (c.value || b.value || $.value)
602
+ ), j = x(() => {
603
+ const S = { position: "fixed", top: `${M.value.top}px`, zIndex: 50 };
604
+ return s.value === "right" ? { ...S, right: `${M.value.right + de}px` } : { ...S, left: `${M.value.left + de}px` };
552
605
  });
553
- function ne() {
554
- const B = u.value;
555
- if (!B) return;
556
- const d = B.getBoundingClientRect();
557
- T.value = {
558
- top: d.top,
559
- left: d.right,
560
- right: window.innerWidth - d.left
606
+ function ie() {
607
+ const S = u.value;
608
+ if (!S) return;
609
+ const f = S.getBoundingClientRect();
610
+ M.value = {
611
+ top: f.top,
612
+ left: f.right,
613
+ right: window.innerWidth - f.left
561
614
  };
562
615
  }
563
- function Ce(B) {
564
- const d = B.relatedTarget;
565
- d && r.value?.contains(d) || (C.value = !1);
616
+ function De(S) {
617
+ const f = S.relatedTarget;
618
+ f && r.value?.contains(f) || ($.value = !1);
566
619
  }
567
- function Le() {
568
- f.value = !0, ne();
620
+ function Be() {
621
+ c.value = !0, ie();
569
622
  }
570
- function ze() {
571
- b.value = !0, ne();
623
+ function Ae() {
624
+ b.value = !0, ie();
572
625
  }
573
626
  function H() {
574
- E !== null && clearTimeout(E), E = null, V = null;
627
+ L !== null && clearTimeout(L), L = null, E = null;
575
628
  }
576
- function De(B) {
577
- B.button === 0 && (V = { x: B.clientX, y: B.clientY }, E = setTimeout(() => {
578
- V && a("menu", V), H();
579
- }, Nt));
629
+ function Me(S) {
630
+ S.button === 0 && (E = { x: S.clientX, y: S.clientY }, L = setTimeout(() => {
631
+ E && a("menu", E), H();
632
+ }, Ut));
580
633
  }
581
- function Ee(B) {
582
- if (!V) return;
583
- (Math.abs(B.clientX - V.x) > re || Math.abs(B.clientY - V.y) > re) && H();
634
+ function Se(S) {
635
+ if (!E) return;
636
+ (Math.abs(S.clientX - E.x) > ce || Math.abs(S.clientY - E.y) > ce) && H();
584
637
  }
585
- function Be(B) {
586
- B.button === 1 && y.value && (B.preventDefault(), a("close"));
638
+ function Te(S) {
639
+ S.button === 1 && y.value && (S.preventDefault(), a("close"));
587
640
  }
588
- function Ae(B) {
589
- B.preventDefault(), a("menu", { x: B.clientX, y: B.clientY });
641
+ function Ie(S) {
642
+ S.preventDefault(), a("menu", { x: S.clientX, y: S.clientY });
590
643
  }
591
- return G(H), (B, d) => (n(), s("div", {
644
+ return G(H), (S, f) => (l(), i("div", {
592
645
  ref_key: "raiz",
593
646
  ref: u,
594
647
  class: p(["group relative flex shrink-0 cursor-pointer items-center gap-2 rounded-corner border border-ui-border transition-colors", [
@@ -600,101 +653,101 @@ const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title",
600
653
  title: h.value,
601
654
  "aria-label": m.value,
602
655
  tabindex: e.tabindex,
603
- onClick: d[5] || (d[5] = A((I) => a("select"), ["stop"])),
656
+ onClick: f[5] || (f[5] = T((O) => a("select"), ["stop"])),
604
657
  onKeydown: [
605
- d[6] || (d[6] = j(A((I) => a("select"), ["stop"]), ["enter"])),
606
- d[7] || (d[7] = j(A((I) => a("select"), ["prevent", "stop"]), ["space"])),
607
- d[8] || (d[8] = j(A((I) => a("navegar", "anterior"), ["prevent", "stop"]), ["left"])),
608
- d[9] || (d[9] = j(A((I) => a("navegar", "anterior"), ["prevent", "stop"]), ["up"])),
609
- d[10] || (d[10] = j(A((I) => a("navegar", "siguiente"), ["prevent", "stop"]), ["right"])),
610
- d[11] || (d[11] = j(A((I) => a("navegar", "siguiente"), ["prevent", "stop"]), ["down"])),
611
- d[12] || (d[12] = j(A((I) => a("navegar", "primera"), ["prevent", "stop"]), ["home"])),
612
- d[13] || (d[13] = j(A((I) => a("navegar", "ultima"), ["prevent", "stop"]), ["end"])),
613
- d[14] || (d[14] = j(A((I) => a("mover", -1), ["alt", "prevent", "stop"]), ["left"])),
614
- d[15] || (d[15] = j(A((I) => a("mover", -1), ["alt", "prevent", "stop"]), ["up"])),
615
- d[16] || (d[16] = j(A((I) => a("mover", 1), ["alt", "prevent", "stop"]), ["right"])),
616
- d[17] || (d[17] = j(A((I) => a("mover", 1), ["alt", "prevent", "stop"]), ["down"])),
617
- d[18] || (d[18] = j(A((I) => y.value && a("close"), ["prevent", "stop"]), ["delete"]))
658
+ f[6] || (f[6] = V(T((O) => a("select"), ["stop"]), ["enter"])),
659
+ f[7] || (f[7] = V(T((O) => a("select"), ["prevent", "stop"]), ["space"])),
660
+ f[8] || (f[8] = V(T((O) => a("navegar", "anterior"), ["prevent", "stop"]), ["left"])),
661
+ f[9] || (f[9] = V(T((O) => a("navegar", "anterior"), ["prevent", "stop"]), ["up"])),
662
+ f[10] || (f[10] = V(T((O) => a("navegar", "siguiente"), ["prevent", "stop"]), ["right"])),
663
+ f[11] || (f[11] = V(T((O) => a("navegar", "siguiente"), ["prevent", "stop"]), ["down"])),
664
+ f[12] || (f[12] = V(T((O) => a("navegar", "primera"), ["prevent", "stop"]), ["home"])),
665
+ f[13] || (f[13] = V(T((O) => a("navegar", "ultima"), ["prevent", "stop"]), ["end"])),
666
+ f[14] || (f[14] = V(T((O) => a("mover", -1), ["alt", "prevent", "stop"]), ["left"])),
667
+ f[15] || (f[15] = V(T((O) => a("mover", -1), ["alt", "prevent", "stop"]), ["up"])),
668
+ f[16] || (f[16] = V(T((O) => a("mover", 1), ["alt", "prevent", "stop"]), ["right"])),
669
+ f[17] || (f[17] = V(T((O) => a("mover", 1), ["alt", "prevent", "stop"]), ["down"])),
670
+ f[18] || (f[18] = V(T((O) => y.value && a("close"), ["prevent", "stop"]), ["delete"]))
618
671
  ],
619
- onAuxclick: A(Be, ["stop"]),
620
- onContextmenu: Ae,
621
- onPointerdown: De,
622
- onPointermove: Ee,
672
+ onAuxclick: T(Te, ["stop"]),
673
+ onContextmenu: Ie,
674
+ onPointerdown: Me,
675
+ onPointermove: Se,
623
676
  onPointerup: H,
624
677
  onPointerleave: H,
625
- onMouseenter: Le,
626
- onMouseleave: d[19] || (d[19] = (I) => f.value = !1),
627
- onFocus: ze,
628
- onBlur: d[20] || (d[20] = (I) => b.value = !1)
678
+ onMouseenter: Be,
679
+ onMouseleave: f[19] || (f[19] = (O) => c.value = !1),
680
+ onFocus: Ae,
681
+ onBlur: f[20] || (f[20] = (O) => b.value = !1)
629
682
  }, [
630
- e.tab.icon ? (n(), R(N, {
683
+ e.tab.icon ? (l(), q(N, {
631
684
  key: 0,
632
685
  name: e.tab.icon,
633
686
  size: 16,
634
687
  class: "shrink-0"
635
- }, null, 8, ["name"])) : P(o) ? (n(), s("span", It, M(x.value), 1)) : g("", !0),
636
- P(o) ? g("", !0) : (n(), s("span", Ot, M(e.tab.label), 1)),
637
- v.value ? (n(), s("span", {
688
+ }, null, 8, ["name"])) : P(o) ? (l(), i("span", Pt, I(k.value), 1)) : g("", !0),
689
+ P(o) ? g("", !0) : (l(), i("span", Ft, I(e.tab.label), 1)),
690
+ v.value ? (l(), i("span", {
638
691
  key: 3,
639
692
  class: p(["size-2 shrink-0 rounded-full bg-current", P(o) ? "absolute right-0.5 top-0.5" : ""]),
640
693
  "aria-hidden": "true"
641
- }, null, 2)) : z.value && !P(o) ? (n(), s("button", {
694
+ }, null, 2)) : D.value && !P(o) ? (l(), i("button", {
642
695
  key: 4,
643
696
  type: "button",
644
697
  class: "flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",
645
698
  title: e.closeLabel,
646
699
  "aria-label": `${e.closeLabel}: ${m.value}`,
647
- onClick: d[0] || (d[0] = A((I) => a("close"), ["stop"]))
700
+ onClick: f[0] || (f[0] = T((O) => a("close"), ["stop"]))
648
701
  }, [
649
702
  F(N, {
650
703
  name: "gtk-close",
651
704
  type: "symbol",
652
705
  size: 12
653
706
  })
654
- ], 8, Vt)) : g("", !0),
655
- (n(), R(be, { to: "body" }, [
656
- F(ve, {
707
+ ], 8, Nt)) : g("", !0),
708
+ (l(), q(ge, { to: "body" }, [
709
+ F(ye, {
657
710
  "enter-active-class": "transition duration-150 ease-out",
658
711
  "enter-from-class": "opacity-0 scale-95",
659
712
  "leave-active-class": "transition duration-100 ease-in",
660
713
  "leave-to-class": "opacity-0 scale-95"
661
714
  }, {
662
- default: q(() => [
663
- D.value ? (n(), s("div", {
715
+ default: R(() => [
716
+ B.value ? (l(), i("div", {
664
717
  key: 0,
665
718
  class: p(["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" : ""]),
666
719
  ref_key: "desplegadoRef",
667
720
  ref: r,
668
- style: _(O.value),
669
- onMouseenter: d[2] || (d[2] = (I) => C.value = !0),
670
- onMouseleave: d[3] || (d[3] = (I) => C.value = !1),
671
- onFocusin: d[4] || (d[4] = (I) => C.value = !0),
672
- onFocusout: Ce
721
+ style: ee(j.value),
722
+ onMouseenter: f[2] || (f[2] = (O) => $.value = !0),
723
+ onMouseleave: f[3] || (f[3] = (O) => $.value = !1),
724
+ onFocusin: f[4] || (f[4] = (O) => $.value = !0),
725
+ onFocusout: De
673
726
  }, [
674
- $("span", jt, M(e.tab.label), 1),
675
- e.tab.dirty ? (n(), s("span", Pt)) : g("", !0),
676
- y.value ? (n(), s("button", {
727
+ C("span", Rt, I(e.tab.label), 1),
728
+ e.tab.dirty ? (l(), i("span", qt)) : g("", !0),
729
+ y.value ? (l(), i("button", {
677
730
  key: 1,
678
731
  type: "button",
679
732
  class: "flex size-4 shrink-0 items-center justify-center rounded-corner-sm hover:bg-ui-surface",
680
733
  title: e.closeLabel,
681
734
  "aria-label": `${e.closeLabel}: ${m.value}`,
682
- onClick: d[1] || (d[1] = A((I) => a("close"), ["stop"]))
735
+ onClick: f[1] || (f[1] = T((O) => a("close"), ["stop"]))
683
736
  }, [
684
737
  F(N, {
685
738
  name: "gtk-close",
686
739
  type: "symbol",
687
740
  size: 12
688
741
  })
689
- ], 8, Ft)) : g("", !0)
742
+ ], 8, Ht)) : g("", !0)
690
743
  ], 38)) : g("", !0)
691
744
  ]),
692
745
  _: 1
693
746
  })
694
747
  ]))
695
- ], 42, Tt));
748
+ ], 42, Vt));
696
749
  }
697
- }), Rt = ["aria-orientation"], qt = ["draggable", "onDragstart", "onDragover", "onDrop"], Ht = ["title", "aria-label"], Ut = /* @__PURE__ */ L({
750
+ }), Wt = ["aria-orientation"], Kt = ["draggable", "onDragstart", "onDragover", "onDrop"], Gt = ["title", "aria-label"], Xt = /* @__PURE__ */ z({
698
751
  __name: "TabBar",
699
752
  props: {
700
753
  tabs: {},
@@ -705,102 +758,102 @@ const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title",
705
758
  fixedOrder: { type: Boolean, default: !1 }
706
759
  },
707
760
  emits: ["update:modelValue", "select", "close", "new", "reorder", "menu"],
708
- setup(e, { emit: l }) {
709
- const t = e, a = l, { vertical: o } = X(), i = w(null), u = w(0), r = w(null), f = w(null);
710
- function b(c) {
711
- a("update:modelValue", c), a("select", c);
761
+ setup(e, { emit: n }) {
762
+ const t = e, a = n, { vertical: o } = X(), s = w(null), u = w(0), r = w(null), c = w(null);
763
+ function b(d) {
764
+ a("update:modelValue", d), a("select", d);
712
765
  }
713
- async function C(c, v) {
714
- const z = t.tabs.length - 1;
715
- if (z < 0) return;
716
- const D = v === "primera" ? 0 : v === "ultima" ? z : v === "anterior" ? (c - 1 + t.tabs.length) % t.tabs.length : (c + 1) % t.tabs.length;
717
- u.value = D, await ae(), i.value?.querySelectorAll('[role="tab"]')?.[D]?.focus();
766
+ async function $(d, v) {
767
+ const D = t.tabs.length - 1;
768
+ if (D < 0) return;
769
+ const B = v === "primera" ? 0 : v === "ultima" ? D : v === "anterior" ? (d - 1 + t.tabs.length) % t.tabs.length : (d + 1) % t.tabs.length;
770
+ u.value = B, await ne(), s.value?.querySelectorAll('[role="tab"]')?.[B]?.focus();
718
771
  }
719
- function T(c, v) {
772
+ function M(d, v) {
720
773
  if (t.fixedOrder) return;
721
- const z = c + v;
722
- if (z < 0 || z >= t.tabs.length) return;
723
- const D = [...t.tabs], [O] = D.splice(c, 1);
724
- O && (D.splice(z, 0, O), u.value = z, a("reorder", D));
774
+ const D = d + v;
775
+ if (D < 0 || D >= t.tabs.length) return;
776
+ const B = [...t.tabs], [j] = B.splice(d, 1);
777
+ j && (B.splice(D, 0, j), u.value = D, a("reorder", B));
725
778
  }
726
- function E(c) {
727
- const v = i.value;
779
+ function L(d) {
780
+ const v = s.value;
728
781
  if (!v) return;
729
- const z = c.deltaY || c.deltaX || 0, D = o.value ? v.scrollTop : v.scrollLeft;
730
- o.value ? v.scrollTop += z : v.scrollLeft += z, (o.value ? v.scrollTop : v.scrollLeft) !== D && c.preventDefault();
782
+ const D = d.deltaY || d.deltaX || 0, B = o.value ? v.scrollTop : v.scrollLeft;
783
+ o.value ? v.scrollTop += D : v.scrollLeft += D, (o.value ? v.scrollTop : v.scrollLeft) !== B && d.preventDefault();
731
784
  }
732
- function V(c, v) {
733
- t.fixedOrder || (r.value = c, v.dataTransfer?.setData("text/plain", String(c)), v.dataTransfer && (v.dataTransfer.effectAllowed = "move"));
785
+ function E(d, v) {
786
+ t.fixedOrder || (r.value = d, v.dataTransfer?.setData("text/plain", String(d)), v.dataTransfer && (v.dataTransfer.effectAllowed = "move"));
734
787
  }
735
- function y(c, v) {
736
- t.fixedOrder || r.value === null || (v.preventDefault(), f.value = c, v.dataTransfer && (v.dataTransfer.dropEffect = "move"));
788
+ function y(d, v) {
789
+ t.fixedOrder || r.value === null || (v.preventDefault(), c.value = d, v.dataTransfer && (v.dataTransfer.dropEffect = "move"));
737
790
  }
738
- function h(c) {
791
+ function h(d) {
739
792
  const v = r.value;
740
- if (m(), t.fixedOrder || v === null || v === c) return;
741
- const z = [...t.tabs], [D] = z.splice(v, 1);
742
- D && (z.splice(c, 0, D), a("reorder", z));
793
+ if (m(), t.fixedOrder || v === null || v === d) return;
794
+ const D = [...t.tabs], [B] = D.splice(v, 1);
795
+ B && (D.splice(d, 0, B), a("reorder", D));
743
796
  }
744
797
  function m() {
745
- r.value = null, f.value = null;
798
+ r.value = null, c.value = null;
746
799
  }
747
- const x = k(
800
+ const k = x(
748
801
  () => o.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"
749
802
  );
750
- return (c, v) => (n(), s("div", {
803
+ return (d, v) => (l(), i("div", {
751
804
  class: p(["flex min-h-0 min-w-0 items-center gap-1", P(o) ? "w-full flex-col" : "h-full"]),
752
805
  role: "tablist",
753
806
  "aria-orientation": P(o) ? "vertical" : "horizontal"
754
807
  }, [
755
- $("div", {
808
+ C("div", {
756
809
  ref_key: "carril",
757
- ref: i,
758
- class: p(x.value),
759
- onWheel: E
810
+ ref: s,
811
+ class: p(k.value),
812
+ onWheel: L
760
813
  }, [
761
- (n(!0), s(U, null, Y(e.tabs, (z, D) => (n(), s("div", {
762
- key: z.id,
814
+ (l(!0), i(U, null, Y(e.tabs, (D, B) => (l(), i("div", {
815
+ key: D.id,
763
816
  class: p(["transition-opacity", [
764
- r.value === D ? "opacity-40" : "",
765
- f.value === D && r.value !== D ? "ring-2 ring-secondary rounded-corner" : ""
817
+ r.value === B ? "opacity-40" : "",
818
+ c.value === B && r.value !== B ? "ring-2 ring-secondary rounded-corner" : ""
766
819
  ]]),
767
820
  draggable: !e.fixedOrder,
768
- onDragstart: (O) => V(D, O),
769
- onDragover: (O) => y(D, O),
770
- onDrop: A((O) => h(D), ["prevent"]),
821
+ onDragstart: (j) => E(B, j),
822
+ onDragover: (j) => y(B, j),
823
+ onDrop: T((j) => h(B), ["prevent"]),
771
824
  onDragend: m
772
825
  }, [
773
- F(xe, {
774
- tab: z,
775
- active: z.id === e.modelValue,
826
+ F(Ce, {
827
+ tab: D,
828
+ active: D.id === e.modelValue,
776
829
  "close-label": e.closeLabel,
777
830
  "dirty-label": e.dirtyLabel,
778
- tabindex: D === u.value ? 0 : -1,
779
- onSelect: (O) => b(z.id),
780
- onClose: (O) => a("close", z.id),
781
- onMenu: (O) => a("menu", { id: z.id, ...O }),
782
- onNavegar: (O) => C(D, O),
783
- onMover: (O) => T(D, O)
831
+ tabindex: B === u.value ? 0 : -1,
832
+ onSelect: (j) => b(D.id),
833
+ onClose: (j) => a("close", D.id),
834
+ onMenu: (j) => a("menu", { id: D.id, ...j }),
835
+ onNavegar: (j) => $(B, j),
836
+ onMover: (j) => M(B, j)
784
837
  }, null, 8, ["tab", "active", "close-label", "dirty-label", "tabindex", "onSelect", "onClose", "onMenu", "onNavegar", "onMover"])
785
- ], 42, qt))), 128))
838
+ ], 42, Kt))), 128))
786
839
  ], 34),
787
- e.newLabel ? (n(), s("button", {
840
+ e.newLabel ? (l(), i("button", {
788
841
  key: 0,
789
842
  type: "button",
790
843
  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",
791
844
  title: e.newLabel,
792
845
  "aria-label": e.newLabel,
793
- onClick: v[0] || (v[0] = (z) => a("new"))
846
+ onClick: v[0] || (v[0] = (D) => a("new"))
794
847
  }, [
795
848
  F(N, {
796
849
  name: "gtk-add",
797
850
  type: "symbol",
798
851
  size: 14
799
852
  })
800
- ], 8, Ht)) : g("", !0)
801
- ], 10, Rt));
853
+ ], 8, Gt)) : g("", !0)
854
+ ], 10, Wt));
802
855
  }
803
- }), Wt = { class: "relative flex shrink-0 items-center" }, Kt = ["title", "aria-label", "aria-expanded"], Gt = ["value", "placeholder", "aria-label"], Xt = /* @__PURE__ */ L({
856
+ }), Yt = { class: "relative flex shrink-0 items-center" }, Jt = ["title", "aria-label", "aria-expanded"], Qt = ["value", "placeholder", "aria-label"], Zt = /* @__PURE__ */ z({
804
857
  __name: "BarSearch",
805
858
  props: {
806
859
  modelValue: { default: "" },
@@ -809,68 +862,68 @@ const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title",
809
862
  collapsed: { type: Boolean, default: !1 }
810
863
  },
811
864
  emits: ["update:modelValue", "search", "open", "close"],
812
- setup(e, { emit: l }) {
813
- const t = e, a = l, { vertical: o, posicion: i } = X(), u = w(!1), r = w(null), f = k(() => o.value || t.collapsed), b = k(() => !f.value || u.value), C = k(() => {
814
- if (!f.value) return "";
865
+ setup(e, { emit: n }) {
866
+ const t = e, a = n, { vertical: o, posicion: s } = X(), u = w(!1), r = w(null), c = x(() => o.value || t.collapsed), b = x(() => !c.value || u.value), $ = x(() => {
867
+ if (!c.value) return "";
815
868
  const h = "absolute z-40 w-64 rounded-corner border border-ui-border bg-ui-surface/95 p-1 shadow-lg";
816
- return i.value === "left" ? `${h} left-full top-0 ml-1` : i.value === "right" ? `${h} right-full top-0 mr-1` : i.value === "bottom" ? `${h} bottom-full right-0 mb-1` : `${h} top-full right-0 mt-1`;
869
+ return s.value === "left" ? `${h} left-full top-0 ml-1` : s.value === "right" ? `${h} right-full top-0 mr-1` : s.value === "bottom" ? `${h} bottom-full right-0 mb-1` : `${h} top-full right-0 mt-1`;
817
870
  });
818
- async function T() {
819
- u.value = !0, a("open"), await ae(), r.value?.focus();
871
+ async function M() {
872
+ u.value = !0, a("open"), await ne(), r.value?.focus();
820
873
  }
821
- function E() {
874
+ function L() {
822
875
  u.value && (u.value = !1, a("close"));
823
876
  }
824
- function V(h) {
877
+ function E(h) {
825
878
  a("update:modelValue", h.target.value);
826
879
  }
827
880
  function y() {
828
881
  a("search", t.modelValue);
829
882
  }
830
- return (h, m) => (n(), s("div", Wt, [
831
- f.value ? (n(), s("button", {
883
+ return (h, m) => (l(), i("div", Yt, [
884
+ c.value ? (l(), i("button", {
832
885
  key: 0,
833
886
  type: "button",
834
887
  class: "flex size-7 items-center justify-center rounded-corner border border-ui-border bg-ui-bg/80 hover:bg-ui-surface/70",
835
888
  title: e.label,
836
889
  "aria-label": e.label,
837
890
  "aria-expanded": u.value,
838
- onMousedown: m[0] || (m[0] = A(() => {
891
+ onMousedown: m[0] || (m[0] = T(() => {
839
892
  }, ["prevent"])),
840
- onClick: m[1] || (m[1] = (x) => u.value ? E() : T())
893
+ onClick: m[1] || (m[1] = (k) => u.value ? L() : M())
841
894
  }, [
842
895
  F(N, {
843
896
  name: "system-search",
844
897
  type: "symbol",
845
898
  size: 14
846
899
  })
847
- ], 40, Kt)) : g("", !0),
848
- b.value ? (n(), s("div", {
900
+ ], 40, Jt)) : g("", !0),
901
+ b.value ? (l(), i("div", {
849
902
  key: 1,
850
- class: p(C.value)
903
+ class: p($.value)
851
904
  }, [
852
- $("input", {
905
+ C("input", {
853
906
  ref_key: "campo",
854
907
  ref: r,
855
908
  type: "search",
856
- class: p(["w-full rounded-corner border border-ui-border bg-ui-bg/80 px-2 py-1 text-sm outline-none focus:border-ui-border-strong", f.value ? "" : "w-48"]),
909
+ class: p(["w-full rounded-corner border border-ui-border bg-ui-bg/80 px-2 py-1 text-sm outline-none focus:border-ui-border-strong", c.value ? "" : "w-48"]),
857
910
  value: e.modelValue,
858
911
  placeholder: e.placeholder || e.label,
859
912
  "aria-label": e.label,
860
- onInput: V,
913
+ onInput: E,
861
914
  onKeydown: [
862
- j(y, ["enter"]),
863
- j(E, ["esc"])
915
+ V(y, ["enter"]),
916
+ V(L, ["esc"])
864
917
  ],
865
- onBlur: E
866
- }, null, 42, Gt)
918
+ onBlur: L
919
+ }, null, 42, Qt)
867
920
  ], 2)) : g("", !0)
868
921
  ]));
869
922
  }
870
- }), Yt = ["type", "disabled"], Jt = {
923
+ }), _t = ["type", "disabled"], ea = {
871
924
  key: 0,
872
925
  class: "w-4 h-4 animate-spin rounded-full border-2 border-current border-t-transparent"
873
- }, Qt = ["src", "alt"], Zt = { key: 2 }, _t = ["src", "alt"], ea = /* @__PURE__ */ L({
926
+ }, ta = ["src", "alt"], aa = { key: 2 }, na = ["src", "alt"], la = /* @__PURE__ */ z({
874
927
  __name: "ActionButton",
875
928
  props: {
876
929
  label: {},
@@ -888,52 +941,52 @@ const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title",
888
941
  preventDefault: { type: Boolean, default: !1 }
889
942
  },
890
943
  emits: ["click"],
891
- setup(e, { emit: l }) {
892
- const t = e, a = l, o = {
944
+ setup(e, { emit: n }) {
945
+ const t = e, a = n, o = {
893
946
  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",
894
947
  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",
895
948
  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"
896
- }, i = {
949
+ }, s = {
897
950
  sm: "px-2 py-1 text-xs",
898
951
  md: "px-3 py-1 text-sm",
899
952
  lg: "px-4 py-2 text-base"
900
953
  }, u = (r) => {
901
954
  t.stopPropagation && r.stopPropagation(), t.preventDefault && r.preventDefault(), !t.disabled && !t.loading && a("click");
902
955
  };
903
- return (r, f) => (n(), s("button", {
956
+ return (r, c) => (l(), i("button", {
904
957
  type: t.type,
905
958
  onClick: u,
906
959
  class: p(["rounded-corner transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2", [
907
960
  o[t.variant],
908
- i[t.size],
961
+ s[t.size],
909
962
  t.fullWidth ? "w-full" : "",
910
963
  t.iconSrc && !t.label ? "px-2 py-2" : "",
911
964
  e.customClass
912
965
  ]]),
913
966
  disabled: t.disabled || t.loading
914
967
  }, [
915
- e.loading ? (n(), s("span", Jt)) : g("", !0),
916
- t.iconSrc && !t.iconRight ? (n(), s("img", {
968
+ e.loading ? (l(), i("span", ea)) : g("", !0),
969
+ t.iconSrc && !t.iconRight ? (l(), i("img", {
917
970
  key: 1,
918
971
  src: t.iconSrc,
919
972
  alt: t.iconAlt || t.label,
920
973
  class: "w-4 h-4"
921
- }, null, 8, Qt)) : g("", !0),
922
- t.label ? (n(), s("span", Zt, M(t.label), 1)) : g("", !0),
923
- t.iconSrc && t.iconRight ? (n(), s("img", {
974
+ }, null, 8, ta)) : g("", !0),
975
+ t.label ? (l(), i("span", aa, I(t.label), 1)) : g("", !0),
976
+ t.iconSrc && t.iconRight ? (l(), i("img", {
924
977
  key: 3,
925
978
  src: t.iconSrc,
926
979
  alt: t.iconAlt || t.label,
927
980
  class: "w-4 h-4"
928
- }, null, 8, _t)) : g("", !0)
929
- ], 10, Yt));
981
+ }, null, 8, na)) : g("", !0)
982
+ ], 10, _t));
930
983
  }
931
- }), J = (e, l) => {
984
+ }), Q = (e, n) => {
932
985
  const t = e.__vccOpts || e;
933
- for (const [a, o] of l)
986
+ for (const [a, o] of n)
934
987
  t[a] = o;
935
988
  return t;
936
- }, ta = /* @__PURE__ */ J(ea, [["__scopeId", "data-v-2eaf6e27"]]), aa = { class: "text-base font-semibold m-0 text-primary dark:text-primary-dark" }, la = /* @__PURE__ */ L({
989
+ }, oa = /* @__PURE__ */ Q(la, [["__scopeId", "data-v-2eaf6e27"]]), ia = { class: "text-base font-semibold m-0 text-primary dark:text-primary-dark" }, sa = /* @__PURE__ */ z({
937
990
  __name: "ConfigSection",
938
991
  props: {
939
992
  title: {},
@@ -941,26 +994,26 @@ const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title",
941
994
  customClass: { default: () => ({}) }
942
995
  },
943
996
  setup(e) {
944
- return (l, t) => (n(), s("div", {
997
+ return (n, t) => (l(), i("div", {
945
998
  class: p(["flex flex-col gap-4 p-4 background rounded-corner", e.customClass])
946
999
  }, [
947
- $("h3", aa, M(e.icon ? `${e.icon} ${e.title}` : e.title), 1),
948
- S(l.$slots, "default", {}, void 0, !0)
1000
+ C("h3", ia, I(e.icon ? `${e.icon} ${e.title}` : e.title), 1),
1001
+ A(n.$slots, "default", {}, void 0, !0)
949
1002
  ], 2));
950
1003
  }
951
- }), na = /* @__PURE__ */ J(la, [["__scopeId", "data-v-45bd4eab"]]), oa = { class: "flex items-center gap-3 flex-1 min-w-0" }, ia = ["src", "alt"], sa = { class: "min-w-0" }, ra = { class: "font-semibold truncate" }, ua = {
1004
+ }), ra = /* @__PURE__ */ Q(sa, [["__scopeId", "data-v-45bd4eab"]]), ua = { class: "flex items-center gap-3 flex-1 min-w-0" }, ca = ["src", "alt"], da = { class: "min-w-0" }, fa = { class: "font-semibold truncate" }, ma = {
952
1005
  key: 0,
953
1006
  class: "text-xs text-gray-400 truncate"
954
- }, ca = {
1007
+ }, ba = {
955
1008
  key: 1,
956
1009
  class: "text-xs text-gray-400 truncate"
957
- }, da = {
1010
+ }, va = {
958
1011
  key: 2,
959
1012
  class: "text-xs text-gray-400 flex gap-2 mt-1"
960
- }, fa = {
1013
+ }, pa = {
961
1014
  key: 1,
962
1015
  class: "w-2 h-2 rounded-full bg-green-500"
963
- }, ma = /* @__PURE__ */ L({
1016
+ }, ga = /* @__PURE__ */ z({
964
1017
  __name: "DeviceCard",
965
1018
  props: {
966
1019
  icon: {},
@@ -976,46 +1029,46 @@ const zt = ["title", "aria-label"], Dt = ["title", "aria-label"], Et = ["title",
976
1029
  clickable: { type: Boolean, default: !1 }
977
1030
  },
978
1031
  emits: ["action", "click"],
979
- setup(e, { emit: l }) {
980
- const t = l, a = () => {
1032
+ setup(e, { emit: n }) {
1033
+ const t = n, a = () => {
981
1034
  t("action");
982
1035
  }, o = () => {
983
1036
  t("click");
984
1037
  };
985
- return (i, u) => (n(), s("div", {
1038
+ return (s, u) => (l(), i("div", {
986
1039
  class: p(["flex items-center justify-between background rounded-vsk px-6 py-3 mb-4", [{ "border-l-4 border-green-500": e.isConnected }, e.customClass]]),
987
1040
  onClick: o
988
1041
  }, [
989
- $("div", oa, [
990
- $("img", {
1042
+ C("div", ua, [
1043
+ C("img", {
991
1044
  src: e.icon,
992
1045
  alt: e.title,
993
1046
  class: "h-7 w-7 shrink-0"
994
- }, null, 8, ia),
995
- $("div", sa, [
996
- $("div", ra, M(e.title), 1),
997
- e.subtitle ? (n(), s("div", ua, M(e.subtitle), 1)) : g("", !0),
998
- e.metadata ? (n(), s("div", ca, M(e.metadata), 1)) : g("", !0),
999
- e.extraInfo && e.extraInfo.length > 0 ? (n(), s("div", da, [
1000
- (n(!0), s(U, null, Y(e.extraInfo, (r, f) => (n(), s("span", { key: f }, M(r), 1))), 128))
1047
+ }, null, 8, ca),
1048
+ C("div", da, [
1049
+ C("div", fa, I(e.title), 1),
1050
+ e.subtitle ? (l(), i("div", ma, I(e.subtitle), 1)) : g("", !0),
1051
+ e.metadata ? (l(), i("div", ba, I(e.metadata), 1)) : g("", !0),
1052
+ e.extraInfo && e.extraInfo.length > 0 ? (l(), i("div", va, [
1053
+ (l(!0), i(U, null, Y(e.extraInfo, (r, c) => (l(), i("span", { key: c }, I(r), 1))), 128))
1001
1054
  ])) : g("", !0)
1002
1055
  ])
1003
1056
  ]),
1004
- e.showActionButton ? (n(), s("button", {
1057
+ e.showActionButton ? (l(), i("button", {
1005
1058
  key: 0,
1006
1059
  class: "bg-vsk-primary rounded-vsk px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70",
1007
- onClick: A(a, ["stop"])
1008
- }, M(e.actionLabel), 1)) : g("", !0),
1009
- e.showStatusIndicator && e.isConnected ? (n(), s("div", fa)) : g("", !0)
1060
+ onClick: T(a, ["stop"])
1061
+ }, I(e.actionLabel), 1)) : g("", !0),
1062
+ e.showStatusIndicator && e.isConnected ? (l(), i("div", pa)) : g("", !0)
1010
1063
  ], 2));
1011
1064
  }
1012
- }), ke = /* @__PURE__ */ Symbol("menú de vasak");
1013
- function Q() {
1014
- const e = me(ke, null);
1065
+ }), ze = /* @__PURE__ */ Symbol("menú de vasak");
1066
+ function Z() {
1067
+ const e = be(ze, null);
1015
1068
  if (e) return e;
1016
- const l = w(!1);
1069
+ const n = w(!1);
1017
1070
  return {
1018
- abierto: l,
1071
+ abierto: n,
1019
1072
  idDelMenu: "vsk-menu-suelto",
1020
1073
  idDeLaEtiqueta: w(null),
1021
1074
  ponerLaEtiqueta: () => {
@@ -1025,80 +1078,80 @@ function Q() {
1025
1078
  },
1026
1079
  focoAlAbrir: w("ninguno"),
1027
1080
  abrir: () => {
1028
- l.value = !0;
1081
+ n.value = !0;
1029
1082
  },
1030
1083
  cerrar: () => {
1031
- l.value = !1;
1084
+ n.value = !1;
1032
1085
  },
1033
1086
  alternar: () => {
1034
- l.value = !l.value;
1087
+ n.value = !n.value;
1035
1088
  }
1036
1089
  };
1037
1090
  }
1038
- let ce = 0;
1039
- function we() {
1040
- return ce += 1, `vsk-menu-${ce}`;
1091
+ let fe = 0;
1092
+ function Le() {
1093
+ return fe += 1, `vsk-menu-${fe}`;
1041
1094
  }
1042
- const ba = { class: "relative inline-block" }, va = /* @__PURE__ */ L({
1095
+ const ya = { class: "relative inline-block" }, ha = /* @__PURE__ */ z({
1043
1096
  __name: "DropdownMenu",
1044
1097
  props: {
1045
1098
  open: { type: Boolean, default: void 0 }
1046
1099
  },
1047
1100
  emits: ["update:open"],
1048
- setup(e, { emit: l }) {
1049
- const t = e, a = l, o = w(!1), i = w(null), u = w(null), r = w("ninguno"), f = we();
1101
+ setup(e, { emit: n }) {
1102
+ const t = e, a = n, o = w(!1), s = w(null), u = w(null), r = w("ninguno"), c = Le();
1050
1103
  let b = null;
1051
- const C = k({
1104
+ const $ = x({
1052
1105
  get: () => t.open ?? o.value,
1053
1106
  set: (y) => {
1054
1107
  t.open === void 0 && (o.value = y), a("update:open", y);
1055
1108
  }
1056
1109
  });
1057
- K(C, (y) => {
1110
+ K($, (y) => {
1058
1111
  if (y) {
1059
1112
  const h = document.activeElement;
1060
1113
  b = h instanceof HTMLElement ? h : null;
1061
1114
  } else
1062
1115
  r.value = "ninguno";
1063
1116
  });
1064
- function T(y = "ninguno") {
1065
- r.value = y, C.value = !0;
1117
+ function M(y = "ninguno") {
1118
+ r.value = y, $.value = !0;
1066
1119
  }
1067
- function E(y = {}) {
1068
- if (C.value = !1, !y.devolverElFoco) return;
1069
- const h = b ?? i.value;
1120
+ function L(y = {}) {
1121
+ if ($.value = !1, !y.devolverElFoco) return;
1122
+ const h = b ?? s.value;
1070
1123
  h?.isConnected && h.focus();
1071
1124
  }
1072
- function V(y = "ninguno") {
1073
- if (C.value) {
1074
- E({ devolverElFoco: !0 });
1125
+ function E(y = "ninguno") {
1126
+ if ($.value) {
1127
+ L({ devolverElFoco: !0 });
1075
1128
  return;
1076
1129
  }
1077
- T(y);
1130
+ M(y);
1078
1131
  }
1079
- return te(ke, {
1080
- abierto: C,
1081
- idDelMenu: f,
1132
+ return ae(ze, {
1133
+ abierto: $,
1134
+ idDelMenu: c,
1082
1135
  idDeLaEtiqueta: u,
1083
1136
  ponerLaEtiqueta: (y) => {
1084
1137
  u.value = y;
1085
1138
  },
1086
- disparador: i,
1139
+ disparador: s,
1087
1140
  ponerElDisparador: (y) => {
1088
- i.value = y;
1141
+ s.value = y;
1089
1142
  },
1090
1143
  focoAlAbrir: r,
1091
- abrir: T,
1092
- cerrar: E,
1093
- alternar: V
1094
- }), (y, h) => (n(), s("div", ba, [
1095
- S(y.$slots, "default")
1144
+ abrir: M,
1145
+ cerrar: L,
1146
+ alternar: E
1147
+ }), (y, h) => (l(), i("div", ya, [
1148
+ A(y.$slots, "default")
1096
1149
  ]));
1097
1150
  }
1098
- }), pa = ["id", "aria-labelledby", "inert"], ga = {
1151
+ }), xa = ["id", "aria-labelledby", "inert"], ka = {
1099
1152
  role: "none",
1100
1153
  class: "py-1"
1101
- }, ya = /* @__PURE__ */ L({
1154
+ }, wa = /* @__PURE__ */ z({
1102
1155
  inheritAttrs: !1,
1103
1156
  __name: "DropdownMenuContent",
1104
1157
  props: {
@@ -1107,65 +1160,65 @@ const ba = { class: "relative inline-block" }, va = /* @__PURE__ */ L({
1107
1160
  sideOffset: { default: 4 }
1108
1161
  },
1109
1162
  setup(e) {
1110
- const l = e, t = Q(), { idDelMenu: a, idDeLaEtiqueta: o } = t, i = k(() => t.disparador.value), u = k(() => t.abierto.value), r = w(null), f = w({ top: 0, left: 0 });
1163
+ const n = e, t = Z(), { idDelMenu: a, idDeLaEtiqueta: o } = t, s = x(() => t.disparador.value), u = x(() => t.abierto.value), r = w(null), c = w({ top: 0, left: 0 });
1111
1164
  function b() {
1112
- if (!i.value || !r.value) return;
1113
- const m = i.value.getBoundingClientRect(), x = r.value.getBoundingClientRect();
1114
- let c = 0, v = 0;
1115
- switch (l.side) {
1165
+ if (!s.value || !r.value) return;
1166
+ const m = s.value.getBoundingClientRect(), k = r.value.getBoundingClientRect();
1167
+ let d = 0, v = 0;
1168
+ switch (n.side) {
1116
1169
  case "bottom":
1117
- c = m.bottom + l.sideOffset;
1170
+ d = m.bottom + n.sideOffset;
1118
1171
  break;
1119
1172
  case "top":
1120
- c = m.top - x.height - l.sideOffset;
1173
+ d = m.top - k.height - n.sideOffset;
1121
1174
  break;
1122
1175
  case "left":
1123
- v = m.left - x.width - l.sideOffset, c = m.top;
1176
+ v = m.left - k.width - n.sideOffset, d = m.top;
1124
1177
  break;
1125
1178
  case "right":
1126
- v = m.right + l.sideOffset, c = m.top;
1179
+ v = m.right + n.sideOffset, d = m.top;
1127
1180
  break;
1128
1181
  }
1129
- switch (l.align) {
1182
+ switch (n.align) {
1130
1183
  case "start":
1131
- (l.side === "bottom" || l.side === "top") && (v = m.left);
1184
+ (n.side === "bottom" || n.side === "top") && (v = m.left);
1132
1185
  break;
1133
1186
  case "center":
1134
- (l.side === "bottom" || l.side === "top") && (v = m.left + m.width / 2 - x.width / 2);
1187
+ (n.side === "bottom" || n.side === "top") && (v = m.left + m.width / 2 - k.width / 2);
1135
1188
  break;
1136
1189
  case "end":
1137
- (l.side === "bottom" || l.side === "top") && (v = m.right - x.width);
1190
+ (n.side === "bottom" || n.side === "top") && (v = m.right - k.width);
1138
1191
  break;
1139
1192
  }
1140
- f.value = { top: c, left: v };
1193
+ c.value = { top: d, left: v };
1141
1194
  }
1142
- function C() {
1195
+ function $() {
1143
1196
  return r.value ? Array.from(r.value.querySelectorAll('[role="menuitem"]')) : [];
1144
1197
  }
1145
- function T(m) {
1146
- const x = C();
1147
- if (!x.length) return;
1148
- const c = x.length;
1149
- x[(m % c + c) % c]?.focus();
1198
+ function M(m) {
1199
+ const k = $();
1200
+ if (!k.length) return;
1201
+ const d = k.length;
1202
+ k[(m % d + d) % d]?.focus();
1150
1203
  }
1151
- function E() {
1204
+ function L() {
1152
1205
  const m = document.activeElement;
1153
- return m instanceof HTMLElement ? C().indexOf(m) : -1;
1206
+ return m instanceof HTMLElement ? $().indexOf(m) : -1;
1154
1207
  }
1155
- function V(m) {
1156
- const x = E();
1208
+ function E(m) {
1209
+ const k = L();
1157
1210
  switch (m.key) {
1158
1211
  case "ArrowDown":
1159
- m.preventDefault(), T(x + 1);
1212
+ m.preventDefault(), M(k + 1);
1160
1213
  break;
1161
1214
  case "ArrowUp":
1162
- m.preventDefault(), T(x <= 0 ? -1 : x - 1);
1215
+ m.preventDefault(), M(k <= 0 ? -1 : k - 1);
1163
1216
  break;
1164
1217
  case "Home":
1165
- m.preventDefault(), T(0);
1218
+ m.preventDefault(), M(0);
1166
1219
  break;
1167
1220
  case "End":
1168
- m.preventDefault(), T(-1);
1221
+ m.preventDefault(), M(-1);
1169
1222
  break;
1170
1223
  case "Escape":
1171
1224
  m.preventDefault(), m.stopPropagation(), t.cerrar({ devolverElFoco: !0 });
@@ -1177,14 +1230,14 @@ const ba = { class: "relative inline-block" }, va = /* @__PURE__ */ L({
1177
1230
  }
1178
1231
  K(u, async (m) => {
1179
1232
  if (m)
1180
- switch (await ae(), requestAnimationFrame(() => {
1233
+ switch (await ne(), requestAnimationFrame(() => {
1181
1234
  b();
1182
1235
  }), t.focoAlAbrir.value) {
1183
1236
  case "primero":
1184
- T(0);
1237
+ M(0);
1185
1238
  break;
1186
1239
  case "ultimo":
1187
- T(-1);
1240
+ M(-1);
1188
1241
  break;
1189
1242
  // Abierto con el ratón: el foco va al menú y no a un ítem —no hay
1190
1243
  // ninguno elegido todavía—, que es lo que deja andar las flechas y el
@@ -1197,24 +1250,24 @@ const ba = { class: "relative inline-block" }, va = /* @__PURE__ */ L({
1197
1250
  u.value && b();
1198
1251
  }
1199
1252
  function h(m) {
1200
- const x = m.target, c = !!x.closest("[dropdown-content]"), v = !!i.value?.contains(x);
1201
- !c && !v && t.cerrar();
1253
+ const k = m.target, d = !!k.closest("[dropdown-content]"), v = !!s.value?.contains(k);
1254
+ !d && !v && t.cerrar();
1202
1255
  }
1203
1256
  return W(() => {
1204
1257
  document.addEventListener("click", h), window.addEventListener("resize", y), window.addEventListener("scroll", y, !0);
1205
1258
  }), G(() => {
1206
1259
  document.removeEventListener("click", h), window.removeEventListener("resize", y), window.removeEventListener("scroll", y, !0);
1207
- }), (m, x) => (n(), R(be, { to: "body" }, [
1208
- F(ve, {
1260
+ }), (m, k) => (l(), q(ge, { to: "body" }, [
1261
+ F(ye, {
1209
1262
  "enter-active-class": "transition-all duration-150 ease-in-out",
1210
1263
  "leave-active-class": "transition-all duration-150 ease-in-out",
1211
1264
  "enter-from-class": "opacity-0 scale-95",
1212
1265
  "leave-to-class": "opacity-0 scale-95",
1213
- onEnter: x[1] || (x[1] = (c) => c.offsetHeight),
1214
- onLeave: x[2] || (x[2] = (c) => c.offsetHeight)
1266
+ onEnter: k[1] || (k[1] = (d) => d.offsetHeight),
1267
+ onLeave: k[2] || (k[2] = (d) => d.offsetHeight)
1215
1268
  }, {
1216
- default: q(() => [
1217
- de($("div", fe({
1269
+ default: R(() => [
1270
+ me(C("div", J({
1218
1271
  ref_key: "contenido",
1219
1272
  ref: r
1220
1273
  }, m.$attrs, {
@@ -1224,35 +1277,35 @@ const ba = { class: "relative inline-block" }, va = /* @__PURE__ */ L({
1224
1277
  "aria-orientation": "vertical",
1225
1278
  "aria-labelledby": P(o) ?? void 0,
1226
1279
  inert: !u.value,
1227
- style: { position: "fixed", top: `${f.value.top}px`, left: `${f.value.left}px`, zIndex: 50 },
1280
+ style: { position: "fixed", top: `${c.value.top}px`, left: `${c.value.left}px`, zIndex: 50 },
1228
1281
  "dropdown-content": "",
1229
1282
  class: "min-w-30 rounded-corner border border-primary bg-ui-bg/80 shadow-lg focus:outline-none",
1230
- onClick: x[0] || (x[0] = (c) => c.stopPropagation()),
1231
- onKeydown: V
1283
+ onClick: k[0] || (k[0] = (d) => d.stopPropagation()),
1284
+ onKeydown: E
1232
1285
  }), [
1233
- $("div", ga, [
1234
- S(m.$slots, "default")
1286
+ C("div", ka, [
1287
+ A(m.$slots, "default")
1235
1288
  ])
1236
- ], 16, pa), [
1237
- [Ne, u.value]
1289
+ ], 16, xa), [
1290
+ [Ue, u.value]
1238
1291
  ])
1239
1292
  ]),
1240
1293
  _: 3
1241
1294
  })
1242
1295
  ]));
1243
1296
  }
1244
- }), ha = ["aria-disabled", "onKeydown"], xa = /* @__PURE__ */ L({
1297
+ }), $a = ["aria-disabled", "onKeydown"], Ca = /* @__PURE__ */ z({
1245
1298
  __name: "DropdownMenuItem",
1246
1299
  props: {
1247
1300
  disabled: { type: Boolean, default: !1 }
1248
1301
  },
1249
1302
  emits: ["select", "click"],
1250
- setup(e, { emit: l }) {
1251
- const t = e, a = l, o = Q();
1252
- function i(u) {
1303
+ setup(e, { emit: n }) {
1304
+ const t = e, a = n, o = Z();
1305
+ function s(u) {
1253
1306
  t.disabled || (a("select"), a("click", u), o.cerrar({ devolverElFoco: !0 }));
1254
1307
  }
1255
- return (u, r) => (n(), s("div", {
1308
+ return (u, r) => (l(), i("div", {
1256
1309
  role: "menuitem",
1257
1310
  tabindex: "0",
1258
1311
  "aria-disabled": e.disabled || void 0,
@@ -1263,55 +1316,55 @@ const ba = { class: "relative inline-block" }, va = /* @__PURE__ */ L({
1263
1316
  "cursor-pointer hover:bg-primary hover:text-tx-on-primary focus-visible:bg-primary focus-visible:text-tx-on-primary": !e.disabled
1264
1317
  }
1265
1318
  ]),
1266
- onClick: i,
1319
+ onClick: s,
1267
1320
  onKeydown: [
1268
- j(A(i, ["prevent"]), ["enter"]),
1269
- j(A(i, ["prevent"]), ["space"])
1321
+ V(T(s, ["prevent"]), ["enter"]),
1322
+ V(T(s, ["prevent"]), ["space"])
1270
1323
  ]
1271
1324
  }, [
1272
- S(u.$slots, "default")
1273
- ], 42, ha));
1325
+ A(u.$slots, "default")
1326
+ ], 42, $a));
1274
1327
  }
1275
- }), ka = /* @__PURE__ */ L({
1328
+ }), za = /* @__PURE__ */ z({
1276
1329
  __name: "DropdownMenuLabel",
1277
1330
  setup(e) {
1278
- const l = Q(), t = `${we()}-titulo`;
1331
+ const n = Z(), t = `${Le()}-titulo`;
1279
1332
  return W(() => {
1280
- l.ponerLaEtiqueta(t);
1333
+ n.ponerLaEtiqueta(t);
1281
1334
  }), G(() => {
1282
- l.ponerLaEtiqueta(null);
1283
- }), (a, o) => (n(), s("div", {
1335
+ n.ponerLaEtiqueta(null);
1336
+ }), (a, o) => (l(), i("div", {
1284
1337
  id: t,
1285
1338
  role: "presentation",
1286
1339
  class: "px-3 py-2 text-sm font-semibold text-tx-main"
1287
1340
  }, [
1288
- S(a.$slots, "default")
1341
+ A(a.$slots, "default")
1289
1342
  ]));
1290
1343
  }
1291
- }), wa = {
1344
+ }), La = {
1292
1345
  role: "separator",
1293
1346
  "aria-orientation": "horizontal",
1294
1347
  class: "bg-ui-bg/80 my-4 h-0.5"
1295
- }, $a = /* @__PURE__ */ L({
1348
+ }, Ea = /* @__PURE__ */ z({
1296
1349
  __name: "DropdownMenuSeparator",
1297
1350
  setup(e) {
1298
- return (l, t) => (n(), s("div", wa));
1351
+ return (n, t) => (l(), i("div", La));
1299
1352
  }
1300
1353
  });
1301
- function $e(e) {
1302
- const l = e.filter(
1303
- (a) => a.type !== He && !(a.type === Ue && typeof a.children == "string" && !a.children.trim())
1354
+ function Ee(e) {
1355
+ const n = e.filter(
1356
+ (a) => a.type !== Ge && !(a.type === Xe && typeof a.children == "string" && !a.children.trim())
1304
1357
  );
1305
- if (l.length !== 1) return null;
1306
- const t = l[0];
1307
- return t.type === U && Array.isArray(t.children) ? $e(t.children) : t;
1358
+ if (n.length !== 1) return null;
1359
+ const t = n[0];
1360
+ return t.type === U && Array.isArray(t.children) ? Ee(t.children) : t;
1308
1361
  }
1309
- function Ca(e) {
1362
+ function Da(e) {
1310
1363
  if (e instanceof HTMLElement) return e;
1311
- const l = e?.$el;
1312
- return l instanceof HTMLElement ? l : null;
1364
+ const n = e?.$el;
1365
+ return n instanceof HTMLElement ? n : null;
1313
1366
  }
1314
- const La = L({
1367
+ const Ba = z({
1315
1368
  name: "DropdownMenuTrigger",
1316
1369
  inheritAttrs: !1,
1317
1370
  props: {
@@ -1320,36 +1373,36 @@ const La = L({
1320
1373
  /** El disparador no abre nada; lo abre la aplicación por su cuenta. */
1321
1374
  disabled: { type: Boolean, default: !1 }
1322
1375
  },
1323
- setup(e, { slots: l, attrs: t }) {
1324
- const a = Q(), o = w(null);
1325
- function i() {
1326
- a.ponerElDisparador(Ca(o.value));
1376
+ setup(e, { slots: n, attrs: t }) {
1377
+ const a = Z(), o = w(null);
1378
+ function s() {
1379
+ a.ponerElDisparador(Da(o.value));
1327
1380
  }
1328
1381
  function u() {
1329
- e.disabled || (i(), a.alternar());
1382
+ e.disabled || (s(), a.alternar());
1330
1383
  }
1331
- function r(f) {
1384
+ function r(c) {
1332
1385
  if (!e.disabled)
1333
- switch (f.key) {
1386
+ switch (c.key) {
1334
1387
  case "Enter":
1335
1388
  case " ":
1336
- f.preventDefault(), i(), a.alternar("primero");
1389
+ c.preventDefault(), s(), a.alternar("primero");
1337
1390
  break;
1338
1391
  case "ArrowDown":
1339
- f.preventDefault(), i(), a.abrir("primero");
1392
+ c.preventDefault(), s(), a.abrir("primero");
1340
1393
  break;
1341
1394
  case "ArrowUp":
1342
- f.preventDefault(), i(), a.abrir("ultimo");
1395
+ c.preventDefault(), s(), a.abrir("ultimo");
1343
1396
  break;
1344
1397
  case "Escape":
1345
- a.abierto.value && (f.preventDefault(), a.cerrar({ devolverElFoco: !0 }));
1398
+ a.abierto.value && (c.preventDefault(), a.cerrar({ devolverElFoco: !0 }));
1346
1399
  break;
1347
1400
  }
1348
1401
  }
1349
1402
  return () => {
1350
- const f = {
1351
- ref: (C) => {
1352
- o.value = C, i();
1403
+ const c = {
1404
+ ref: ($) => {
1405
+ o.value = $, s();
1353
1406
  },
1354
1407
  "aria-haspopup": "menu",
1355
1408
  "aria-expanded": a.abierto.value ? "true" : "false",
@@ -1359,19 +1412,19 @@ const La = L({
1359
1412
  "aria-controls": a.abierto.value ? a.idDelMenu : void 0,
1360
1413
  onClick: u,
1361
1414
  onKeydown: r
1362
- }, b = l.default?.() ?? [];
1415
+ }, b = n.default?.() ?? [];
1363
1416
  if (e.asChild) {
1364
- const C = $e(b);
1365
- if (C) return Re(C, { ...t, ...f });
1417
+ const $ = Ee(b);
1418
+ if ($) return We($, { ...t, ...c });
1366
1419
  }
1367
- return qe(
1420
+ return Ke(
1368
1421
  "div",
1369
- { ...t, class: ["dropdown-menu-trigger inline-block", t.class], ...f },
1422
+ { ...t, class: ["dropdown-menu-trigger inline-block", t.class], ...c },
1370
1423
  b
1371
1424
  );
1372
1425
  };
1373
1426
  }
1374
- }), za = ["for"], Da = /* @__PURE__ */ L({
1427
+ }), Aa = ["for"], Ma = /* @__PURE__ */ z({
1375
1428
  __name: "FormGroup",
1376
1429
  props: {
1377
1430
  label: {},
@@ -1380,29 +1433,29 @@ const La = L({
1380
1433
  labelClass: { default: () => ({}) }
1381
1434
  },
1382
1435
  setup(e) {
1383
- return (l, t) => (n(), s("div", {
1436
+ return (n, t) => (l(), i("div", {
1384
1437
  class: p(["flex flex-col gap-2", e.customClass])
1385
1438
  }, [
1386
- e.label ? (n(), s("label", {
1439
+ e.label ? (l(), i("label", {
1387
1440
  key: 0,
1388
1441
  for: e.htmlFor,
1389
1442
  class: p(["text-sm font-medium text-primary dark:text-primary-dark", e.labelClass])
1390
- }, M(e.label), 11, za)) : g("", !0),
1391
- S(l.$slots, "default", {}, void 0, !0)
1443
+ }, I(e.label), 11, Aa)) : g("", !0),
1444
+ A(n.$slots, "default", {}, void 0, !0)
1392
1445
  ], 2));
1393
1446
  }
1394
- }), Ea = /* @__PURE__ */ J(Da, [["__scopeId", "data-v-c0d9d9cb"]]), Ba = /* @__PURE__ */ L({
1447
+ }), Sa = /* @__PURE__ */ Q(Ma, [["__scopeId", "data-v-c0d9d9cb"]]), Ta = /* @__PURE__ */ z({
1395
1448
  __name: "ListCard",
1396
1449
  props: {
1397
1450
  clickable: { type: Boolean, default: !1 },
1398
1451
  customClass: { default: () => ({}) }
1399
1452
  },
1400
1453
  emits: ["click"],
1401
- setup(e, { emit: l }) {
1402
- const t = e, a = l, o = () => {
1454
+ setup(e, { emit: n }) {
1455
+ const t = e, a = n, o = () => {
1403
1456
  t.clickable && a("click");
1404
1457
  };
1405
- return (i, u) => (n(), s("div", {
1458
+ return (s, u) => (l(), i("div", {
1406
1459
  class: p([
1407
1460
  "flex items-center justify-between background p-3 rounded-vsk border border-vsk-primary/70 transition-colors duration-200",
1408
1461
  {
@@ -1412,13 +1465,13 @@ const La = L({
1412
1465
  ]),
1413
1466
  onClick: o
1414
1467
  }, [
1415
- S(i.$slots, "default", {}, void 0, !0)
1468
+ A(s.$slots, "default", {}, void 0, !0)
1416
1469
  ], 2));
1417
1470
  }
1418
- }), Aa = /* @__PURE__ */ J(Ba, [["__scopeId", "data-v-f86d47da"]]), Ma = { class: "background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80" }, Sa = ["src", "alt", "title"], Ta = {
1471
+ }), Ia = /* @__PURE__ */ Q(Ta, [["__scopeId", "data-v-f86d47da"]]), Oa = { class: "background rounded-corner flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80" }, ja = ["src", "alt", "title"], Va = {
1419
1472
  key: 1,
1420
1473
  class: "w-8 h-8 flex items-center justify-center"
1421
- }, Ia = ["src", "alt"], Oa = ["min", "max", "value"], Va = /* @__PURE__ */ L({
1474
+ }, Pa = ["src", "alt"], Fa = ["min", "max", "value"], Na = /* @__PURE__ */ z({
1422
1475
  __name: "SliderControl",
1423
1476
  props: {
1424
1477
  icon: {},
@@ -1432,50 +1485,50 @@ const La = L({
1432
1485
  getPercentageClass: { type: Function, default: () => "" }
1433
1486
  },
1434
1487
  emits: ["update:modelValue", "buttonClick"],
1435
- setup(e, { emit: l }) {
1436
- const t = e, a = l, o = k(() => {
1488
+ setup(e, { emit: n }) {
1489
+ const t = e, a = n, o = x(() => {
1437
1490
  if (t.max <= t.min) return 0;
1438
- const f = t.max - t.min, b = t.modelValue - t.min;
1439
- return Math.round(b / f * 100);
1440
- }), i = k(() => t.getPercentageClass ? t.getPercentageClass(o.value) : ""), u = (f) => {
1441
- const b = f.target;
1491
+ const c = t.max - t.min, b = t.modelValue - t.min;
1492
+ return Math.round(b / c * 100);
1493
+ }), s = x(() => t.getPercentageClass ? t.getPercentageClass(o.value) : ""), u = (c) => {
1494
+ const b = c.target;
1442
1495
  a("update:modelValue", Number(b.value));
1443
1496
  }, r = () => {
1444
1497
  a("buttonClick");
1445
1498
  };
1446
- return (f, b) => (n(), s("div", Ma, [
1447
- e.showButton ? (n(), s("button", {
1499
+ return (c, b) => (l(), i("div", Oa, [
1500
+ e.showButton ? (l(), i("button", {
1448
1501
  key: 0,
1449
1502
  onClick: r,
1450
1503
  class: "w-8 h-8 flex items-center justify-center rounded-corner transition-all duration-200 hover:bg-ui-surface/80 dark:hover:bg-ui-surface-dark/80 hover:scale-110 active:scale-95"
1451
1504
  }, [
1452
- $("img", {
1505
+ C("img", {
1453
1506
  src: e.icon,
1454
1507
  alt: e.alt,
1455
1508
  title: e.tooltip,
1456
1509
  class: p(["w-6 h-6 transition-all duration-200", e.iconClass])
1457
- }, null, 10, Sa)
1458
- ])) : (n(), s("div", Ta, [
1459
- $("img", {
1510
+ }, null, 10, ja)
1511
+ ])) : (l(), i("div", Va, [
1512
+ C("img", {
1460
1513
  src: e.icon,
1461
1514
  alt: e.alt,
1462
1515
  class: "w-6 h-6 transition-all duration-200"
1463
- }, null, 8, Ia)
1516
+ }, null, 8, Pa)
1464
1517
  ])),
1465
- $("input", {
1518
+ C("input", {
1466
1519
  type: "range",
1467
1520
  min: e.min,
1468
1521
  max: e.max,
1469
1522
  value: e.modelValue,
1470
1523
  onInput: u,
1471
1524
  class: "flex-1 transition-all duration-200 hover:scale-105"
1472
- }, null, 40, Oa),
1473
- $("span", {
1474
- class: p(["w-12 text-right transition-all duration-200 font-medium", i.value])
1475
- }, M(o.value) + "% ", 3)
1525
+ }, null, 40, Fa),
1526
+ C("span", {
1527
+ class: p(["w-12 text-right transition-all duration-200 font-medium", s.value])
1528
+ }, I(o.value) + "% ", 3)
1476
1529
  ]));
1477
1530
  }
1478
- }), ja = ["disabled"], Pa = /* @__PURE__ */ L({
1531
+ }), Ra = ["disabled"], qa = /* @__PURE__ */ z({
1479
1532
  __name: "SwitchToggle",
1480
1533
  props: {
1481
1534
  isOn: { type: Boolean },
@@ -1486,11 +1539,11 @@ const La = L({
1486
1539
  customClass: { default: "" }
1487
1540
  },
1488
1541
  emits: ["toggle"],
1489
- setup(e, { emit: l }) {
1490
- const t = e, a = l, o = () => {
1542
+ setup(e, { emit: n }) {
1543
+ const t = e, a = n, o = () => {
1491
1544
  a("toggle", !t.isOn);
1492
1545
  };
1493
- return (i, u) => (n(), s("button", {
1546
+ return (s, u) => (l(), i("button", {
1494
1547
  type: "button",
1495
1548
  onClick: o,
1496
1549
  disabled: e.disabled,
@@ -1502,16 +1555,16 @@ const La = L({
1502
1555
  e.customClass
1503
1556
  ])
1504
1557
  }, [
1505
- $("span", {
1558
+ C("span", {
1506
1559
  class: p([
1507
1560
  "inline-block transform rounded-full bg-white shadow transition-transform",
1508
1561
  e.size === "small" ? "h-4 w-4" : "h-6 w-6",
1509
1562
  e.isOn ? e.size === "small" ? "translate-x-6" : "translate-x-5" : "translate-x-1"
1510
1563
  ])
1511
1564
  }, null, 2)
1512
- ], 10, ja));
1565
+ ], 10, Ra));
1513
1566
  }
1514
- }), Fa = ["disabled"], Na = ["src", "alt", "title"], Ra = /* @__PURE__ */ L({
1567
+ }), Ha = ["disabled"], Ua = ["src", "alt", "title"], Wa = /* @__PURE__ */ z({
1515
1568
  __name: "ToggleControl",
1516
1569
  props: {
1517
1570
  icon: {},
@@ -1523,11 +1576,11 @@ const La = L({
1523
1576
  customClass: { default: () => ({}) }
1524
1577
  },
1525
1578
  emits: ["click"],
1526
- setup(e, { emit: l }) {
1527
- const t = l, a = () => {
1579
+ setup(e, { emit: n }) {
1580
+ const t = n, a = () => {
1528
1581
  t("click");
1529
1582
  };
1530
- return (o, i) => (n(), s("button", {
1583
+ return (o, s) => (l(), i("button", {
1531
1584
  onClick: a,
1532
1585
  class: p(["p-2 rounded-corner background hover:opacity-50 transition-all duration-300 h-17.5 w-17.5 group relative overflow-hidden hover:scale-105 hover:shadow-lg active:scale-95", {
1533
1586
  "animate-pulse": e.isLoading,
@@ -1537,7 +1590,7 @@ const La = L({
1537
1590
  }]),
1538
1591
  disabled: e.isLoading
1539
1592
  }, [
1540
- $("img", {
1593
+ C("img", {
1541
1594
  src: e.icon,
1542
1595
  alt: e.alt,
1543
1596
  title: e.tooltip,
@@ -1547,13 +1600,13 @@ const La = L({
1547
1600
  "drop-shadow-lg": e.isActive,
1548
1601
  ...e.iconClass
1549
1602
  }])
1550
- }, null, 10, Na)
1551
- ], 10, Fa));
1603
+ }, null, 10, Ua)
1604
+ ], 10, Ha));
1552
1605
  }
1553
- }), qa = ["title"], Ha = ["src", "alt"], Ua = {
1606
+ }), Ka = ["title"], Ga = ["src", "alt"], Xa = {
1554
1607
  key: 0,
1555
1608
  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"
1556
- }, Wa = /* @__PURE__ */ L({
1609
+ }, Ya = /* @__PURE__ */ z({
1557
1610
  __name: "TrayIconButton",
1558
1611
  props: {
1559
1612
  icon: {},
@@ -1567,24 +1620,24 @@ const La = L({
1567
1620
  customTooltipText: { default: "" }
1568
1621
  },
1569
1622
  emits: ["click"],
1570
- setup(e, { emit: l }) {
1571
- const t = l, a = w(!1), o = () => {
1623
+ setup(e, { emit: n }) {
1624
+ const t = n, a = w(!1), o = () => {
1572
1625
  t("click");
1573
1626
  };
1574
- return (i, u) => (n(), s("div", {
1627
+ return (s, u) => (l(), i("div", {
1575
1628
  class: p(["p-1 rounded-corner relative hover:bg-primary dark:hover:bg-primary-dark group transition-all duration-300", e.customClass]),
1576
1629
  title: e.tooltip,
1577
1630
  onClick: o,
1578
1631
  onMouseenter: u[0] || (u[0] = (r) => a.value = !0),
1579
1632
  onMouseleave: u[1] || (u[1] = (r) => a.value = !1)
1580
1633
  }, [
1581
- $("img", {
1634
+ C("img", {
1582
1635
  src: e.icon,
1583
1636
  alt: e.alt,
1584
1637
  class: p(["m-auto h-5.5 w-auto transition-all duration-300", e.iconClass])
1585
- }, null, 10, Ha),
1586
- e.badge !== null && e.badge > 0 ? (n(), s("div", Ua, M(e.badge), 1)) : g("", !0),
1587
- e.showCustomTooltip && e.customTooltipText ? (n(), s("div", {
1638
+ }, null, 10, Ga),
1639
+ e.badge !== null && e.badge > 0 ? (l(), i("div", Xa, I(e.badge), 1)) : g("", !0),
1640
+ e.showCustomTooltip && e.customTooltipText ? (l(), i("div", {
1588
1641
  key: 1,
1589
1642
  class: p(["absolute top-1 left-1/2 transform -translate-x-1/2 text-xs font-semibold p-1 rounded-corner transition-all duration-300 pointer-events-none background", [
1590
1643
  e.tooltipClass,
@@ -1593,79 +1646,80 @@ const La = L({
1593
1646
  "opacity-100 translate-y-0": a.value
1594
1647
  }
1595
1648
  ]])
1596
- }, M(e.customTooltipText), 3)) : g("", !0),
1597
- S(i.$slots, "default")
1598
- ], 42, qa));
1649
+ }, I(e.customTooltipText), 3)) : g("", !0),
1650
+ A(s.$slots, "default")
1651
+ ], 42, Ka));
1599
1652
  }
1600
- }), Ka = [
1601
- bt,
1602
- ge,
1603
- pe,
1604
- ht,
1605
- N,
1606
- St,
1607
- he,
1608
- ye,
1609
- Ut,
1653
+ }), Ja = [
1654
+ yt,
1610
1655
  xe,
1656
+ he,
1657
+ $t,
1658
+ N,
1659
+ jt,
1660
+ $e,
1661
+ we,
1611
1662
  Xt,
1612
- ta,
1613
- na,
1614
- ma,
1615
- va,
1616
- ya,
1617
- xa,
1618
- ka,
1619
- $a,
1620
- La,
1663
+ Ce,
1664
+ Zt,
1665
+ oa,
1666
+ ra,
1667
+ ga,
1668
+ ha,
1669
+ wa,
1670
+ Ca,
1671
+ za,
1621
1672
  Ea,
1622
- Aa,
1623
- Va,
1624
- Pa,
1625
- Ra,
1626
- Wa
1627
- ], Qa = {
1673
+ Ba,
1674
+ Sa,
1675
+ Ia,
1676
+ Na,
1677
+ qa,
1678
+ Wa,
1679
+ Ya
1680
+ ], tn = {
1628
1681
  install(e) {
1629
- Ka.forEach((l) => {
1630
- e.component(l.name, l);
1682
+ Ja.forEach((n) => {
1683
+ e.component(n.name, n);
1631
1684
  });
1632
1685
  }
1633
1686
  };
1634
1687
  export {
1635
- ta as ActionButton,
1636
- he as AppBar,
1637
- Xt as BarSearch,
1638
- ke as CLAVE_DEL_MENU,
1688
+ oa as ActionButton,
1689
+ $e as AppBar,
1690
+ Zt as BarSearch,
1691
+ ze as CLAVE_DEL_MENU,
1639
1692
  le as CLAVE_DE_LA_BARRA,
1640
- na as ConfigSection,
1641
- ma as DeviceCard,
1642
- va as DropdownMenu,
1643
- ya as DropdownMenuContent,
1644
- xa as DropdownMenuItem,
1645
- ka as DropdownMenuLabel,
1646
- $a as DropdownMenuSeparator,
1647
- La as DropdownMenuTrigger,
1648
- Ea as FormGroup,
1649
- Aa as ListCard,
1650
- xt as POSICIONES,
1651
- ht as SelectField,
1652
- bt as SideBar,
1653
- ge as SideButton,
1654
- pe as SideGroup,
1655
- Va as SliderControl,
1656
- Pa as SwitchToggle,
1657
- Ut as TabBar,
1658
- xe as TabItem,
1693
+ ra as ConfigSection,
1694
+ ga as DeviceCard,
1695
+ ha as DropdownMenu,
1696
+ wa as DropdownMenuContent,
1697
+ Ca as DropdownMenuItem,
1698
+ za as DropdownMenuLabel,
1699
+ Ea as DropdownMenuSeparator,
1700
+ Ba as DropdownMenuTrigger,
1701
+ Sa as FormGroup,
1702
+ oe as LOS_TRES_CONTROLES,
1703
+ Ia as ListCard,
1704
+ Ct as POSICIONES,
1705
+ $t as SelectField,
1706
+ yt as SideBar,
1707
+ xe as SideButton,
1708
+ he as SideGroup,
1709
+ Na as SliderControl,
1710
+ qa as SwitchToggle,
1711
+ Xt as TabBar,
1712
+ Ce as TabItem,
1659
1713
  N as ThemeIcon,
1660
- Ra as ToggleControl,
1661
- Wa as TrayIconButton,
1662
- ye as WindowControls,
1663
- St as WindowFrame,
1664
- Qa as default,
1665
- kt as esPosicion,
1666
- ee as orientacionDe,
1667
- Ct as posicionDe,
1668
- Q as usarElMenu,
1714
+ Wa as ToggleControl,
1715
+ Ya as TrayIconButton,
1716
+ we as WindowControls,
1717
+ jt as WindowFrame,
1718
+ tn as default,
1719
+ zt as esPosicion,
1720
+ te as orientacionDe,
1721
+ Dt as posicionDe,
1722
+ Z as usarElMenu,
1669
1723
  X as usarLaBarra,
1670
- Lt as usarLaPosicionDeLaBarra
1724
+ Bt as usarLaPosicionDeLaBarra
1671
1725
  };