@vasakgroup/vue-libvasak 0.1.0 → 0.2.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,19 +1,19 @@
1
- import { createElementBlock as v, openBlock as f, renderSlot as R, defineComponent as C, createElementVNode as u, ref as p, onMounted as F, toDisplayString as U, unref as D, Fragment as V, createVNode as G } from "vue";
2
- const $ = (i, e) => {
3
- const t = i.__vccOpts || i;
4
- for (const [l, s] of e)
5
- t[l] = s;
6
- return t;
7
- }, H = {}, J = { class: "sidebar" };
8
- function q(i, e) {
9
- return f(), v("div", J, [
10
- R(i.$slots, "default")
1
+ import { createElementBlock as s, openBlock as o, renderSlot as k, defineComponent as y, createElementVNode as u, ref as x, onMounted as q, toDisplayString as w, unref as W, Fragment as F, createVNode as Z, normalizeClass as d, createCommentVNode as g, renderList as Q, withModifiers as Y, computed as T } from "vue";
2
+ const D = (t, e) => {
3
+ const i = t.__vccOpts || t;
4
+ for (const [l, a] of e)
5
+ i[l] = a;
6
+ return i;
7
+ }, K = {}, X = { class: "sidebar" };
8
+ function ee(t, e) {
9
+ return o(), s("div", X, [
10
+ k(t.$slots, "default")
11
11
  ]);
12
12
  }
13
- const j = /* @__PURE__ */ $(H, [["render", q]]), Z = {
13
+ const te = /* @__PURE__ */ D(K, [["render", ee]]), ie = {
14
14
  href: "#",
15
15
  class: "sidebar-button"
16
- }, Q = ["src"], Y = /* @__PURE__ */ C({
16
+ }, ne = ["src", "alt"], le = /* @__PURE__ */ y({
17
17
  __name: "SideButton",
18
18
  props: {
19
19
  title: {
@@ -25,37 +25,38 @@ const j = /* @__PURE__ */ $(H, [["render", q]]), Z = {
25
25
  default: ""
26
26
  }
27
27
  },
28
- setup(i) {
29
- return (e, t) => (f(), v("a", Z, [
28
+ setup(t) {
29
+ return (e, i) => (o(), s("a", ie, [
30
30
  u("img", {
31
- src: i.image,
31
+ src: t.image,
32
+ alt: t.title,
32
33
  class: "img-fluid"
33
- }, null, 8, Q)
34
+ }, null, 8, ne)
34
35
  ]));
35
36
  }
36
37
  });
37
- function K(i, e, t, l) {
38
- if (typeof e == "function" ? i !== e || !l : !e.has(i)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
39
- return t === "m" ? l : t === "a" ? l.call(i) : l ? l.value : e.get(i);
38
+ function ae(t, e, i, l) {
39
+ if (typeof e == "function" ? t !== e || !l : !e.has(t)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
40
+ return i === "m" ? l : i === "a" ? l.call(t) : l ? l.value : e.get(t);
40
41
  }
41
- function X(i, e, t, l, s) {
42
- if (typeof e == "function" ? i !== e || !0 : !e.has(i)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
43
- return e.set(i, t), t;
42
+ function se(t, e, i, l, a) {
43
+ if (typeof e == "function" ? t !== e || !0 : !e.has(t)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
44
+ return e.set(t, i), i;
44
45
  }
45
- var y;
46
- const o = "__TAURI_TO_IPC_KEY__";
47
- function ee(i, e = !1) {
48
- return window.__TAURI_INTERNALS__.transformCallback(i, e);
46
+ var I;
47
+ const m = "__TAURI_TO_IPC_KEY__";
48
+ function oe(t, e = !1) {
49
+ return window.__TAURI_INTERNALS__.transformCallback(t, e);
49
50
  }
50
- async function n(i, e = {}, t) {
51
- return window.__TAURI_INTERNALS__.invoke(i, e, t);
51
+ async function n(t, e = {}, i) {
52
+ return window.__TAURI_INTERNALS__.invoke(t, e, i);
52
53
  }
53
- class ie {
54
+ class re {
54
55
  get rid() {
55
- return K(this, y, "f");
56
+ return ae(this, I, "f");
56
57
  }
57
58
  constructor(e) {
58
- y.set(this, void 0), X(this, y, e);
59
+ I.set(this, void 0), se(this, I, e);
59
60
  }
60
61
  /**
61
62
  * Destroys and cleans up this resource from memory.
@@ -67,8 +68,8 @@ class ie {
67
68
  });
68
69
  }
69
70
  }
70
- y = /* @__PURE__ */ new WeakMap();
71
- class L {
71
+ I = /* @__PURE__ */ new WeakMap();
72
+ class V {
72
73
  constructor(...e) {
73
74
  this.type = "Logical", e.length === 1 ? "Logical" in e[0] ? (this.width = e[0].Logical.width, this.height = e[0].Logical.height) : (this.width = e[0].width, this.height = e[0].height) : (this.width = e[0], this.height = e[1]);
74
75
  }
@@ -88,19 +89,19 @@ class L {
88
89
  * @since 2.0.0
89
90
  */
90
91
  toPhysical(e) {
91
- return new b(this.width * e, this.height * e);
92
+ return new C(this.width * e, this.height * e);
92
93
  }
93
- [o]() {
94
+ [m]() {
94
95
  return {
95
96
  width: this.width,
96
97
  height: this.height
97
98
  };
98
99
  }
99
100
  toJSON() {
100
- return this[o]();
101
+ return this[m]();
101
102
  }
102
103
  }
103
- class b {
104
+ class C {
104
105
  constructor(...e) {
105
106
  this.type = "Physical", e.length === 1 ? "Physical" in e[0] ? (this.width = e[0].Physical.width, this.height = e[0].Physical.height) : (this.width = e[0].width, this.height = e[0].height) : (this.width = e[0], this.height = e[1]);
106
107
  }
@@ -116,29 +117,29 @@ class b {
116
117
  * ```
117
118
  */
118
119
  toLogical(e) {
119
- return new L(this.width / e, this.height / e);
120
+ return new V(this.width / e, this.height / e);
120
121
  }
121
- [o]() {
122
+ [m]() {
122
123
  return {
123
124
  width: this.width,
124
125
  height: this.height
125
126
  };
126
127
  }
127
128
  toJSON() {
128
- return this[o]();
129
+ return this[m]();
129
130
  }
130
131
  }
131
- class w {
132
+ class _ {
132
133
  constructor(e) {
133
134
  this.size = e;
134
135
  }
135
136
  toLogical(e) {
136
- return this.size instanceof L ? this.size : this.size.toLogical(e);
137
+ return this.size instanceof V ? this.size : this.size.toLogical(e);
137
138
  }
138
139
  toPhysical(e) {
139
- return this.size instanceof b ? this.size : this.size.toPhysical(e);
140
+ return this.size instanceof C ? this.size : this.size.toPhysical(e);
140
141
  }
141
- [o]() {
142
+ [m]() {
142
143
  return {
143
144
  [`${this.size.type}`]: {
144
145
  width: this.size.width,
@@ -147,10 +148,10 @@ class w {
147
148
  };
148
149
  }
149
150
  toJSON() {
150
- return this[o]();
151
+ return this[m]();
151
152
  }
152
153
  }
153
- class E {
154
+ class U {
154
155
  constructor(...e) {
155
156
  this.type = "Logical", e.length === 1 ? "Logical" in e[0] ? (this.x = e[0].Logical.x, this.y = e[0].Logical.y) : (this.x = e[0].x, this.y = e[0].y) : (this.x = e[0], this.y = e[1]);
156
157
  }
@@ -170,19 +171,19 @@ class E {
170
171
  * @since 2.0.0
171
172
  */
172
173
  toPhysical(e) {
173
- return new c(this.x * e, this.y * e);
174
+ return new p(this.x * e, this.y * e);
174
175
  }
175
- [o]() {
176
+ [m]() {
176
177
  return {
177
178
  x: this.x,
178
179
  y: this.y
179
180
  };
180
181
  }
181
182
  toJSON() {
182
- return this[o]();
183
+ return this[m]();
183
184
  }
184
185
  }
185
- class c {
186
+ class p {
186
187
  constructor(...e) {
187
188
  this.type = "Physical", e.length === 1 ? "Physical" in e[0] ? (this.x = e[0].Physical.x, this.y = e[0].Physical.y) : (this.x = e[0].x, this.y = e[0].y) : (this.x = e[0], this.y = e[1]);
188
189
  }
@@ -202,29 +203,29 @@ class c {
202
203
  * @since 2.0.0
203
204
  */
204
205
  toLogical(e) {
205
- return new E(this.x / e, this.y / e);
206
+ return new U(this.x / e, this.y / e);
206
207
  }
207
- [o]() {
208
+ [m]() {
208
209
  return {
209
210
  x: this.x,
210
211
  y: this.y
211
212
  };
212
213
  }
213
214
  toJSON() {
214
- return this[o]();
215
+ return this[m]();
215
216
  }
216
217
  }
217
- class _ {
218
+ class z {
218
219
  constructor(e) {
219
220
  this.position = e;
220
221
  }
221
222
  toLogical(e) {
222
- return this.position instanceof E ? this.position : this.position.toLogical(e);
223
+ return this.position instanceof U ? this.position : this.position.toLogical(e);
223
224
  }
224
225
  toPhysical(e) {
225
- return this.position instanceof c ? this.position : this.position.toPhysical(e);
226
+ return this.position instanceof p ? this.position : this.position.toPhysical(e);
226
227
  }
227
- [o]() {
228
+ [m]() {
228
229
  return {
229
230
  [`${this.position.type}`]: {
230
231
  x: this.position.x,
@@ -233,47 +234,47 @@ class _ {
233
234
  };
234
235
  }
235
236
  toJSON() {
236
- return this[o]();
237
+ return this[m]();
237
238
  }
238
239
  }
239
- var r;
240
- (function(i) {
241
- i.WINDOW_RESIZED = "tauri://resize", i.WINDOW_MOVED = "tauri://move", i.WINDOW_CLOSE_REQUESTED = "tauri://close-requested", i.WINDOW_DESTROYED = "tauri://destroyed", i.WINDOW_FOCUS = "tauri://focus", i.WINDOW_BLUR = "tauri://blur", i.WINDOW_SCALE_FACTOR_CHANGED = "tauri://scale-change", i.WINDOW_THEME_CHANGED = "tauri://theme-changed", i.WINDOW_CREATED = "tauri://window-created", i.WEBVIEW_CREATED = "tauri://webview-created", i.DRAG_ENTER = "tauri://drag-enter", i.DRAG_OVER = "tauri://drag-over", i.DRAG_DROP = "tauri://drag-drop", i.DRAG_LEAVE = "tauri://drag-leave";
242
- })(r || (r = {}));
243
- async function P(i, e) {
244
- window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(i, e), await n("plugin:event|unlisten", {
245
- event: i,
240
+ var b;
241
+ (function(t) {
242
+ t.WINDOW_RESIZED = "tauri://resize", t.WINDOW_MOVED = "tauri://move", t.WINDOW_CLOSE_REQUESTED = "tauri://close-requested", t.WINDOW_DESTROYED = "tauri://destroyed", t.WINDOW_FOCUS = "tauri://focus", t.WINDOW_BLUR = "tauri://blur", t.WINDOW_SCALE_FACTOR_CHANGED = "tauri://scale-change", t.WINDOW_THEME_CHANGED = "tauri://theme-changed", t.WINDOW_CREATED = "tauri://window-created", t.WEBVIEW_CREATED = "tauri://webview-created", t.DRAG_ENTER = "tauri://drag-enter", t.DRAG_OVER = "tauri://drag-over", t.DRAG_DROP = "tauri://drag-drop", t.DRAG_LEAVE = "tauri://drag-leave";
243
+ })(b || (b = {}));
244
+ async function G(t, e) {
245
+ window.__TAURI_EVENT_PLUGIN_INTERNALS__.unregisterListener(t, e), await n("plugin:event|unlisten", {
246
+ event: t,
246
247
  eventId: e
247
248
  });
248
249
  }
249
- async function T(i, e, t) {
250
+ async function H(t, e, i) {
250
251
  var l;
251
- const s = typeof t?.target == "string" ? { kind: "AnyLabel", label: t.target } : (l = t?.target) !== null && l !== void 0 ? l : { kind: "Any" };
252
+ const a = typeof i?.target == "string" ? { kind: "AnyLabel", label: i.target } : (l = i?.target) !== null && l !== void 0 ? l : { kind: "Any" };
252
253
  return n("plugin:event|listen", {
253
- event: i,
254
- target: s,
255
- handler: ee(e)
256
- }).then((d) => async () => P(i, d));
254
+ event: t,
255
+ target: a,
256
+ handler: oe(e)
257
+ }).then((c) => async () => G(t, c));
257
258
  }
258
- async function te(i, e, t) {
259
- return T(i, (l) => {
260
- P(i, l.id), e(l);
261
- }, t);
259
+ async function ue(t, e, i) {
260
+ return H(t, (l) => {
261
+ G(t, l.id), e(l);
262
+ }, i);
262
263
  }
263
- async function ne(i, e) {
264
+ async function ce(t, e) {
264
265
  await n("plugin:event|emit", {
265
- event: i,
266
+ event: t,
266
267
  payload: e
267
268
  });
268
269
  }
269
- async function le(i, e, t) {
270
+ async function de(t, e, i) {
270
271
  await n("plugin:event|emit_to", {
271
- target: typeof i == "string" ? { kind: "AnyLabel", label: i } : i,
272
+ target: typeof t == "string" ? { kind: "AnyLabel", label: t } : t,
272
273
  event: e,
273
- payload: t
274
+ payload: i
274
275
  });
275
276
  }
276
- class g extends ie {
277
+ class S extends re {
277
278
  /**
278
279
  * Creates an Image from a resource ID. For internal use only.
279
280
  *
@@ -283,12 +284,12 @@ class g extends ie {
283
284
  super(e);
284
285
  }
285
286
  /** Creates a new Image using RGBA data, in row-major order from top to bottom, and with specified width and height. */
286
- static async new(e, t, l) {
287
+ static async new(e, i, l) {
287
288
  return n("plugin:image|new", {
288
- rgba: m(e),
289
- width: t,
289
+ rgba: A(e),
290
+ width: i,
290
291
  height: l
291
- }).then((s) => new g(s));
292
+ }).then((a) => new S(a));
292
293
  }
293
294
  /**
294
295
  * Creates a new image using the provided bytes by inferring the file format.
@@ -305,8 +306,8 @@ class g extends ie {
305
306
  */
306
307
  static async fromBytes(e) {
307
308
  return n("plugin:image|from_bytes", {
308
- bytes: m(e)
309
- }).then((t) => new g(t));
309
+ bytes: A(e)
310
+ }).then((i) => new S(i));
310
311
  }
311
312
  /**
312
313
  * Creates a new image using the provided path.
@@ -321,7 +322,7 @@ class g extends ie {
321
322
  * ```
322
323
  */
323
324
  static async fromPath(e) {
324
- return n("plugin:image|from_path", { path: e }).then((t) => new g(t));
325
+ return n("plugin:image|from_path", { path: e }).then((i) => new S(i));
325
326
  }
326
327
  /** Returns the RGBA data for this image, in row-major order from top to bottom. */
327
328
  async rgba() {
@@ -334,14 +335,14 @@ class g extends ie {
334
335
  return n("plugin:image|size", { rid: this.rid });
335
336
  }
336
337
  }
337
- function m(i) {
338
- return i == null ? null : typeof i == "string" ? i : i instanceof g ? i.rid : i;
338
+ function A(t) {
339
+ return t == null ? null : typeof t == "string" ? t : t instanceof S ? t.rid : t;
339
340
  }
340
- var x;
341
- (function(i) {
342
- i[i.Critical = 1] = "Critical", i[i.Informational = 2] = "Informational";
343
- })(x || (x = {}));
344
- class se {
341
+ var B;
342
+ (function(t) {
343
+ t[t.Critical = 1] = "Critical", t[t.Informational = 2] = "Informational";
344
+ })(B || (B = {}));
345
+ class he {
345
346
  constructor(e) {
346
347
  this._preventDefault = !1, this.event = e.event, this.id = e.id;
347
348
  }
@@ -352,24 +353,24 @@ class se {
352
353
  return this._preventDefault;
353
354
  }
354
355
  }
355
- var k;
356
- (function(i) {
357
- i.None = "none", i.Normal = "normal", i.Indeterminate = "indeterminate", i.Paused = "paused", i.Error = "error";
358
- })(k || (k = {}));
359
- function B() {
360
- return new M(window.__TAURI_INTERNALS__.metadata.currentWindow.label, {
356
+ var R;
357
+ (function(t) {
358
+ t.None = "none", t.Normal = "normal", t.Indeterminate = "indeterminate", t.Paused = "paused", t.Error = "error";
359
+ })(R || (R = {}));
360
+ function j() {
361
+ return new J(window.__TAURI_INTERNALS__.metadata.currentWindow.label, {
361
362
  // @ts-expect-error `skip` is not defined in the public API but it is handled by the constructor
362
363
  skip: !0
363
364
  });
364
365
  }
365
- async function z() {
366
- return n("plugin:window|get_all_windows").then((i) => i.map((e) => new M(e, {
366
+ async function $() {
367
+ return n("plugin:window|get_all_windows").then((t) => t.map((e) => new J(e, {
367
368
  // @ts-expect-error `skip` is not defined in the public API but it is handled by the constructor
368
369
  skip: !0
369
370
  })));
370
371
  }
371
- const S = ["tauri://created", "tauri://error"];
372
- class M {
372
+ const O = ["tauri://created", "tauri://error"];
373
+ class J {
373
374
  /**
374
375
  * Creates a new Window.
375
376
  * @example
@@ -387,15 +388,15 @@ class M {
387
388
  * @param label The unique window label. Must be alphanumeric: `a-zA-Z-/:_`.
388
389
  * @returns The {@link Window} instance to communicate with the window.
389
390
  */
390
- constructor(e, t = {}) {
391
+ constructor(e, i = {}) {
391
392
  var l;
392
- this.label = e, this.listeners = /* @__PURE__ */ Object.create(null), t?.skip || n("plugin:window|create", {
393
+ this.label = e, this.listeners = /* @__PURE__ */ Object.create(null), i?.skip || n("plugin:window|create", {
393
394
  options: {
394
- ...t,
395
- parent: typeof t.parent == "string" ? t.parent : (l = t.parent) === null || l === void 0 ? void 0 : l.label,
395
+ ...i,
396
+ parent: typeof i.parent == "string" ? i.parent : (l = i.parent) === null || l === void 0 ? void 0 : l.label,
396
397
  label: e
397
398
  }
398
- }).then(async () => this.emit("tauri://created")).catch(async (s) => this.emit("tauri://error", s));
399
+ }).then(async () => this.emit("tauri://created")).catch(async (a) => this.emit("tauri://error", a));
399
400
  }
400
401
  /**
401
402
  * Gets the Window associated with the given label.
@@ -409,20 +410,20 @@ class M {
409
410
  * @returns The Window instance to communicate with the window or null if the window doesn't exist.
410
411
  */
411
412
  static async getByLabel(e) {
412
- var t;
413
- return (t = (await z()).find((l) => l.label === e)) !== null && t !== void 0 ? t : null;
413
+ var i;
414
+ return (i = (await $()).find((l) => l.label === e)) !== null && i !== void 0 ? i : null;
414
415
  }
415
416
  /**
416
417
  * Get an instance of `Window` for the current window.
417
418
  */
418
419
  static getCurrent() {
419
- return B();
420
+ return j();
420
421
  }
421
422
  /**
422
423
  * Gets a list of instances of `Window` for all available windows.
423
424
  */
424
425
  static async getAll() {
425
- return z();
426
+ return $();
426
427
  }
427
428
  /**
428
429
  * Gets the focused window.
@@ -435,7 +436,7 @@ class M {
435
436
  * @returns The Window instance or `undefined` if there is not any focused window.
436
437
  */
437
438
  static async getFocusedWindow() {
438
- for (const e of await z())
439
+ for (const e of await $())
439
440
  if (await e.isFocused())
440
441
  return e;
441
442
  return null;
@@ -459,11 +460,11 @@ class M {
459
460
  * @returns A promise resolving to a function to unlisten to the event.
460
461
  * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
461
462
  */
462
- async listen(e, t) {
463
- return this._handleTauriEvent(e, t) ? () => {
463
+ async listen(e, i) {
464
+ return this._handleTauriEvent(e, i) ? () => {
464
465
  const l = this.listeners[e];
465
- l.splice(l.indexOf(t), 1);
466
- } : T(e, t, {
466
+ l.splice(l.indexOf(i), 1);
467
+ } : H(e, i, {
467
468
  target: { kind: "Window", label: this.label }
468
469
  });
469
470
  }
@@ -486,11 +487,11 @@ class M {
486
487
  * @returns A promise resolving to a function to unlisten to the event.
487
488
  * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
488
489
  */
489
- async once(e, t) {
490
- return this._handleTauriEvent(e, t) ? () => {
490
+ async once(e, i) {
491
+ return this._handleTauriEvent(e, i) ? () => {
491
492
  const l = this.listeners[e];
492
- l.splice(l.indexOf(t), 1);
493
- } : te(e, t, {
493
+ l.splice(l.indexOf(i), 1);
494
+ } : ue(e, i, {
494
495
  target: { kind: "Window", label: this.label }
495
496
  });
496
497
  }
@@ -505,17 +506,17 @@ class M {
505
506
  * @param event Event name. Must include only alphanumeric characters, `-`, `/`, `:` and `_`.
506
507
  * @param payload Event payload.
507
508
  */
508
- async emit(e, t) {
509
- if (S.includes(e)) {
509
+ async emit(e, i) {
510
+ if (O.includes(e)) {
510
511
  for (const l of this.listeners[e] || [])
511
512
  l({
512
513
  event: e,
513
514
  id: -1,
514
- payload: t
515
+ payload: i
515
516
  });
516
517
  return;
517
518
  }
518
- return ne(e, t);
519
+ return ce(e, i);
519
520
  }
520
521
  /**
521
522
  * Emits an event to all {@link EventTarget|targets} matching the given target.
@@ -529,21 +530,21 @@ class M {
529
530
  * @param event Event name. Must include only alphanumeric characters, `-`, `/`, `:` and `_`.
530
531
  * @param payload Event payload.
531
532
  */
532
- async emitTo(e, t, l) {
533
- if (S.includes(t)) {
534
- for (const s of this.listeners[t] || [])
535
- s({
536
- event: t,
533
+ async emitTo(e, i, l) {
534
+ if (O.includes(i)) {
535
+ for (const a of this.listeners[i] || [])
536
+ a({
537
+ event: i,
537
538
  id: -1,
538
539
  payload: l
539
540
  });
540
541
  return;
541
542
  }
542
- return le(e, t, l);
543
+ return de(e, i, l);
543
544
  }
544
545
  /** @ignore */
545
- _handleTauriEvent(e, t) {
546
- return S.includes(e) ? (e in this.listeners ? this.listeners[e].push(t) : this.listeners[e] = [t], !0) : !1;
546
+ _handleTauriEvent(e, i) {
547
+ return O.includes(e) ? (e in this.listeners ? this.listeners[e].push(i) : this.listeners[e] = [i], !0) : !1;
547
548
  }
548
549
  // Getters
549
550
  /**
@@ -574,7 +575,7 @@ class M {
574
575
  async innerPosition() {
575
576
  return n("plugin:window|inner_position", {
576
577
  label: this.label
577
- }).then((e) => new c(e));
578
+ }).then((e) => new p(e));
578
579
  }
579
580
  /**
580
581
  * The position of the top-left hand corner of the window relative to the top-left hand corner of the desktop.
@@ -589,7 +590,7 @@ class M {
589
590
  async outerPosition() {
590
591
  return n("plugin:window|outer_position", {
591
592
  label: this.label
592
- }).then((e) => new c(e));
593
+ }).then((e) => new p(e));
593
594
  }
594
595
  /**
595
596
  * The physical size of the window's client area.
@@ -605,7 +606,7 @@ class M {
605
606
  async innerSize() {
606
607
  return n("plugin:window|inner_size", {
607
608
  label: this.label
608
- }).then((e) => new b(e));
609
+ }).then((e) => new C(e));
609
610
  }
610
611
  /**
611
612
  * The physical size of the entire window.
@@ -621,7 +622,7 @@ class M {
621
622
  async outerSize() {
622
623
  return n("plugin:window|outer_size", {
623
624
  label: this.label
624
- }).then((e) => new b(e));
625
+ }).then((e) => new C(e));
625
626
  }
626
627
  /**
627
628
  * Gets the window's current fullscreen state.
@@ -871,10 +872,10 @@ class M {
871
872
  * @returns A promise indicating the success or failure of the operation.
872
873
  */
873
874
  async requestUserAttention(e) {
874
- let t = null;
875
- return e && (e === x.Critical ? t = { type: "Critical" } : t = { type: "Informational" }), n("plugin:window|request_user_attention", {
875
+ let i = null;
876
+ return e && (e === B.Critical ? i = { type: "Critical" } : i = { type: "Informational" }), n("plugin:window|request_user_attention", {
876
877
  label: this.label,
877
- value: t
878
+ value: i
878
879
  });
879
880
  }
880
881
  /**
@@ -1272,7 +1273,7 @@ class M {
1272
1273
  async setSize(e) {
1273
1274
  return n("plugin:window|set_size", {
1274
1275
  label: this.label,
1275
- value: e instanceof w ? e : new w(e)
1276
+ value: e instanceof _ ? e : new _(e)
1276
1277
  });
1277
1278
  }
1278
1279
  /**
@@ -1289,7 +1290,7 @@ class M {
1289
1290
  async setMinSize(e) {
1290
1291
  return n("plugin:window|set_min_size", {
1291
1292
  label: this.label,
1292
- value: e instanceof w ? e : e ? new w(e) : null
1293
+ value: e instanceof _ ? e : e ? new _(e) : null
1293
1294
  });
1294
1295
  }
1295
1296
  /**
@@ -1306,7 +1307,7 @@ class M {
1306
1307
  async setMaxSize(e) {
1307
1308
  return n("plugin:window|set_max_size", {
1308
1309
  label: this.label,
1309
- value: e instanceof w ? e : e ? new w(e) : null
1310
+ value: e instanceof _ ? e : e ? new _(e) : null
1310
1311
  });
1311
1312
  }
1312
1313
  /**
@@ -1321,16 +1322,16 @@ class M {
1321
1322
  * @returns A promise indicating the success or failure of the operation.
1322
1323
  */
1323
1324
  async setSizeConstraints(e) {
1324
- function t(l) {
1325
+ function i(l) {
1325
1326
  return l ? { Logical: l } : null;
1326
1327
  }
1327
1328
  return n("plugin:window|set_size_constraints", {
1328
1329
  label: this.label,
1329
1330
  value: {
1330
- minWidth: t(e?.minWidth),
1331
- minHeight: t(e?.minHeight),
1332
- maxWidth: t(e?.maxWidth),
1333
- maxHeight: t(e?.maxHeight)
1331
+ minWidth: i(e?.minWidth),
1332
+ minHeight: i(e?.minHeight),
1333
+ maxWidth: i(e?.maxWidth),
1334
+ maxHeight: i(e?.maxHeight)
1334
1335
  }
1335
1336
  });
1336
1337
  }
@@ -1348,7 +1349,7 @@ class M {
1348
1349
  async setPosition(e) {
1349
1350
  return n("plugin:window|set_position", {
1350
1351
  label: this.label,
1351
- value: e instanceof _ ? e : new _(e)
1352
+ value: e instanceof z ? e : new z(e)
1352
1353
  });
1353
1354
  }
1354
1355
  /**
@@ -1442,7 +1443,7 @@ class M {
1442
1443
  async setIcon(e) {
1443
1444
  return n("plugin:window|set_icon", {
1444
1445
  label: this.label,
1445
- value: m(e)
1446
+ value: A(e)
1446
1447
  });
1447
1448
  }
1448
1449
  /**
@@ -1560,7 +1561,7 @@ class M {
1560
1561
  async setCursorPosition(e) {
1561
1562
  return n("plugin:window|set_cursor_position", {
1562
1563
  label: this.label,
1563
- value: e instanceof _ ? e : new _(e)
1564
+ value: e instanceof z ? e : new z(e)
1564
1565
  });
1565
1566
  }
1566
1567
  /**
@@ -1677,7 +1678,7 @@ class M {
1677
1678
  async setOverlayIcon(e) {
1678
1679
  return n("plugin:window|set_overlay_icon", {
1679
1680
  label: this.label,
1680
- value: e ? m(e) : void 0
1681
+ value: e ? A(e) : void 0
1681
1682
  });
1682
1683
  }
1683
1684
  /**
@@ -1766,8 +1767,8 @@ class M {
1766
1767
  * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
1767
1768
  */
1768
1769
  async onResized(e) {
1769
- return this.listen(r.WINDOW_RESIZED, (t) => {
1770
- t.payload = new b(t.payload), e(t);
1770
+ return this.listen(b.WINDOW_RESIZED, (i) => {
1771
+ i.payload = new C(i.payload), e(i);
1771
1772
  });
1772
1773
  }
1773
1774
  /**
@@ -1788,8 +1789,8 @@ class M {
1788
1789
  * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
1789
1790
  */
1790
1791
  async onMoved(e) {
1791
- return this.listen(r.WINDOW_MOVED, (t) => {
1792
- t.payload = new c(t.payload), e(t);
1792
+ return this.listen(b.WINDOW_MOVED, (i) => {
1793
+ i.payload = new p(i.payload), e(i);
1793
1794
  });
1794
1795
  }
1795
1796
  /**
@@ -1815,8 +1816,8 @@ class M {
1815
1816
  * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
1816
1817
  */
1817
1818
  async onCloseRequested(e) {
1818
- return this.listen(r.WINDOW_CLOSE_REQUESTED, async (t) => {
1819
- const l = new se(t);
1819
+ return this.listen(b.WINDOW_CLOSE_REQUESTED, async (i) => {
1820
+ const l = new he(i);
1820
1821
  await e(l), l.isPreventDefault() || await this.destroy();
1821
1822
  });
1822
1823
  }
@@ -1846,37 +1847,37 @@ class M {
1846
1847
  * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
1847
1848
  */
1848
1849
  async onDragDropEvent(e) {
1849
- const t = await this.listen(r.DRAG_ENTER, (a) => {
1850
+ const i = await this.listen(b.DRAG_ENTER, (r) => {
1850
1851
  e({
1851
- ...a,
1852
+ ...r,
1852
1853
  payload: {
1853
1854
  type: "enter",
1854
- paths: a.payload.paths,
1855
- position: new c(a.payload.position)
1855
+ paths: r.payload.paths,
1856
+ position: new p(r.payload.position)
1856
1857
  }
1857
1858
  });
1858
- }), l = await this.listen(r.DRAG_OVER, (a) => {
1859
+ }), l = await this.listen(b.DRAG_OVER, (r) => {
1859
1860
  e({
1860
- ...a,
1861
+ ...r,
1861
1862
  payload: {
1862
1863
  type: "over",
1863
- position: new c(a.payload.position)
1864
+ position: new p(r.payload.position)
1864
1865
  }
1865
1866
  });
1866
- }), s = await this.listen(r.DRAG_DROP, (a) => {
1867
+ }), a = await this.listen(b.DRAG_DROP, (r) => {
1867
1868
  e({
1868
- ...a,
1869
+ ...r,
1869
1870
  payload: {
1870
1871
  type: "drop",
1871
- paths: a.payload.paths,
1872
- position: new c(a.payload.position)
1872
+ paths: r.payload.paths,
1873
+ position: new p(r.payload.position)
1873
1874
  }
1874
1875
  });
1875
- }), d = await this.listen(r.DRAG_LEAVE, (a) => {
1876
- e({ ...a, payload: { type: "leave" } });
1876
+ }), c = await this.listen(b.DRAG_LEAVE, (r) => {
1877
+ e({ ...r, payload: { type: "leave" } });
1877
1878
  });
1878
1879
  return () => {
1879
- t(), s(), l(), d();
1880
+ i(), a(), l(), c();
1880
1881
  };
1881
1882
  }
1882
1883
  /**
@@ -1897,13 +1898,13 @@ class M {
1897
1898
  * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
1898
1899
  */
1899
1900
  async onFocusChanged(e) {
1900
- const t = await this.listen(r.WINDOW_FOCUS, (s) => {
1901
- e({ ...s, payload: !0 });
1902
- }), l = await this.listen(r.WINDOW_BLUR, (s) => {
1903
- e({ ...s, payload: !1 });
1901
+ const i = await this.listen(b.WINDOW_FOCUS, (a) => {
1902
+ e({ ...a, payload: !0 });
1903
+ }), l = await this.listen(b.WINDOW_BLUR, (a) => {
1904
+ e({ ...a, payload: !1 });
1904
1905
  });
1905
1906
  return () => {
1906
- t(), l();
1907
+ i(), l();
1907
1908
  };
1908
1909
  }
1909
1910
  /**
@@ -1928,7 +1929,7 @@ class M {
1928
1929
  * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
1929
1930
  */
1930
1931
  async onScaleChanged(e) {
1931
- return this.listen(r.WINDOW_SCALE_FACTOR_CHANGED, e);
1932
+ return this.listen(b.WINDOW_SCALE_FACTOR_CHANGED, e);
1932
1933
  }
1933
1934
  /**
1934
1935
  * Listen to the system theme change.
@@ -1948,106 +1949,113 @@ class M {
1948
1949
  * Note that removing the listener is required if your listener goes out of scope e.g. the component is unmounted.
1949
1950
  */
1950
1951
  async onThemeChanged(e) {
1951
- return this.listen(r.WINDOW_THEME_CHANGED, e);
1952
+ return this.listen(b.WINDOW_THEME_CHANGED, e);
1952
1953
  }
1953
1954
  }
1954
- var O;
1955
- (function(i) {
1956
- i.Disabled = "disabled", i.Throttle = "throttle", i.Suspend = "suspend";
1957
- })(O || (O = {}));
1958
- var A;
1959
- (function(i) {
1960
- i.AppearanceBased = "appearanceBased", i.Light = "light", i.Dark = "dark", i.MediumLight = "mediumLight", i.UltraDark = "ultraDark", i.Titlebar = "titlebar", i.Selection = "selection", i.Menu = "menu", i.Popover = "popover", i.Sidebar = "sidebar", i.HeaderView = "headerView", i.Sheet = "sheet", i.WindowBackground = "windowBackground", i.HudWindow = "hudWindow", i.FullScreenUI = "fullScreenUI", i.Tooltip = "tooltip", i.ContentBackground = "contentBackground", i.UnderWindowBackground = "underWindowBackground", i.UnderPageBackground = "underPageBackground", i.Mica = "mica", i.Blur = "blur", i.Acrylic = "acrylic", i.Tabbed = "tabbed", i.TabbedDark = "tabbedDark", i.TabbedLight = "tabbedLight";
1961
- })(A || (A = {}));
1962
1955
  var N;
1963
- (function(i) {
1964
- i.FollowsWindowActiveState = "followsWindowActiveState", i.Active = "active", i.Inactive = "inactive";
1956
+ (function(t) {
1957
+ t.Disabled = "disabled", t.Throttle = "throttle", t.Suspend = "suspend";
1965
1958
  })(N || (N = {}));
1966
- async function ae(i) {
1959
+ var E;
1960
+ (function(t) {
1961
+ t.Default = "default", t.FluentOverlay = "fluentOverlay";
1962
+ })(E || (E = {}));
1963
+ var P;
1964
+ (function(t) {
1965
+ t.AppearanceBased = "appearanceBased", t.Light = "light", t.Dark = "dark", t.MediumLight = "mediumLight", t.UltraDark = "ultraDark", t.Titlebar = "titlebar", t.Selection = "selection", t.Menu = "menu", t.Popover = "popover", t.Sidebar = "sidebar", t.HeaderView = "headerView", t.Sheet = "sheet", t.WindowBackground = "windowBackground", t.HudWindow = "hudWindow", t.FullScreenUI = "fullScreenUI", t.Tooltip = "tooltip", t.ContentBackground = "contentBackground", t.UnderWindowBackground = "underWindowBackground", t.UnderPageBackground = "underPageBackground", t.Mica = "mica", t.Blur = "blur", t.Acrylic = "acrylic", t.Tabbed = "tabbed", t.TabbedDark = "tabbedDark", t.TabbedLight = "tabbedLight";
1966
+ })(P || (P = {}));
1967
+ var M;
1968
+ (function(t) {
1969
+ t.FollowsWindowActiveState = "followsWindowActiveState", t.Active = "active", t.Inactive = "inactive";
1970
+ })(M || (M = {}));
1971
+ async function be(t, e = {}, i) {
1972
+ return window.__TAURI_INTERNALS__.invoke(t, e, i);
1973
+ }
1974
+ async function we(t) {
1967
1975
  try {
1968
- return await n("plugin:vicons|get_icon", { name: i });
1976
+ return await be("plugin:vicons|get_icon", { name: t });
1969
1977
  } catch (e) {
1970
1978
  console.error("[Icon Error] Error obteniendo icono:", e);
1971
1979
  }
1972
1980
  return "";
1973
1981
  }
1974
- function re(i) {
1982
+ function ge(t) {
1975
1983
  try {
1976
- const e = atob(i.substring(0, 32)), t = new Uint8Array(e.length);
1984
+ const e = atob(t.substring(0, 32)), i = new Uint8Array(e.length);
1977
1985
  for (let l = 0; l < e.length; l++)
1978
- t[l] = e.charCodeAt(l);
1979
- return t[0] === 137 && t[1] === 80 && t[2] === 78 && t[3] === 71 ? "image/png" : "image/svg+xml";
1986
+ i[l] = e.charCodeAt(l);
1987
+ return i[0] === 137 && i[1] === 80 && i[2] === 78 && i[3] === 71 ? "image/png" : "image/svg+xml";
1980
1988
  } catch (e) {
1981
1989
  return console.error("Error identificando tipo de imagen:", e), "image/png";
1982
1990
  }
1983
1991
  }
1984
- async function W(i) {
1992
+ async function L(t) {
1985
1993
  try {
1986
- const e = await ae(i);
1987
- return `data:${re(e)};base64,${e}`;
1994
+ const e = await we(t);
1995
+ return `data:${ge(e)};base64,${e}`;
1988
1996
  } catch (e) {
1989
1997
  return console.error("[Icon Error] Error obteniendo icono:", e), "";
1990
1998
  }
1991
1999
  }
1992
- const oe = { "data-tauri-drag-region": "" }, ue = ["src"], ce = { "data-tauri-drag-region": "" }, de = { "data-tauri-drag-region": "" }, he = ["src"], we = ["src"], be = ["src"], ge = /* @__PURE__ */ C({
2000
+ const me = { "data-tauri-drag-region": "" }, ye = ["src"], fe = { "data-tauri-drag-region": "" }, pe = { "data-tauri-drag-region": "" }, ve = ["src"], _e = ["src"], ke = ["src"], xe = /* @__PURE__ */ y({
1993
2001
  __name: "TopBar",
1994
2002
  props: {
1995
2003
  title: String,
1996
2004
  image: String
1997
2005
  },
1998
- setup(i) {
1999
- const e = p(null), t = B(), l = p(""), s = p(""), d = p(""), a = i;
2000
- return F(async () => {
2001
- l.value = await W("window-close"), s.value = await W("window-minimize"), d.value = await W("window-maximize");
2002
- }), (ye, h) => (f(), v("div", {
2006
+ setup(t) {
2007
+ const e = x(null), i = j(), l = x(""), a = x(""), c = x(""), r = t;
2008
+ return q(async () => {
2009
+ l.value = await L("window-close"), a.value = await L("window-minimize"), c.value = await L("window-maximize");
2010
+ }), (f, h) => (o(), s("div", {
2003
2011
  "data-tauri-drag-region": "",
2004
2012
  class: "flex h-8 px-4 py-1 bg-vsk-primary rounded-t-window justify-between align-center",
2005
2013
  ref_key: "bar",
2006
2014
  ref: e
2007
2015
  }, [
2008
- u("div", oe, [
2016
+ u("div", me, [
2009
2017
  u("img", {
2010
- src: a.image,
2018
+ src: r.image,
2011
2019
  "data-tauri-drag-region": "",
2012
2020
  class: "h-6 w-auto"
2013
- }, null, 8, ue)
2021
+ }, null, 8, ye)
2014
2022
  ]),
2015
- u("div", ce, U(a.title), 1),
2016
- u("div", de, [
2023
+ u("div", fe, w(r.title), 1),
2024
+ u("div", pe, [
2017
2025
  u("span", {
2018
2026
  class: "win-button",
2019
- onClick: h[0] || (h[0] = (I) => D(t).minimize())
2027
+ onClick: h[0] || (h[0] = (v) => W(i).minimize())
2020
2028
  }, [
2021
2029
  u("img", {
2022
- src: s.value,
2030
+ src: a.value,
2023
2031
  class: "h-6 w-6 inline-block",
2024
2032
  alt: "Minimize"
2025
- }, null, 8, he)
2033
+ }, null, 8, ve)
2026
2034
  ]),
2027
2035
  u("span", {
2028
2036
  class: "win-button",
2029
- onClick: h[1] || (h[1] = (I) => D(t).toggleMaximize())
2037
+ onClick: h[1] || (h[1] = (v) => W(i).toggleMaximize())
2030
2038
  }, [
2031
2039
  u("img", {
2032
- src: d.value,
2040
+ src: c.value,
2033
2041
  class: "h-6 w-6 inline-block",
2034
2042
  alt: "Maximize"
2035
- }, null, 8, we)
2043
+ }, null, 8, _e)
2036
2044
  ]),
2037
2045
  u("span", {
2038
2046
  class: "win-button",
2039
- onClick: h[2] || (h[2] = (I) => D(t).close())
2047
+ onClick: h[2] || (h[2] = (v) => W(i).close())
2040
2048
  }, [
2041
2049
  u("img", {
2042
2050
  src: l.value,
2043
2051
  class: "h-6 w-6 inline-block",
2044
2052
  alt: "Close"
2045
- }, null, 8, be)
2053
+ }, null, 8, ke)
2046
2054
  ])
2047
2055
  ])
2048
2056
  ], 512));
2049
2057
  }
2050
- }), pe = /* @__PURE__ */ C({
2058
+ }), Ce = /* @__PURE__ */ y({
2051
2059
  __name: "WindowFrame",
2052
2060
  props: {
2053
2061
  title: {
@@ -2059,26 +2067,411 @@ const oe = { "data-tauri-drag-region": "" }, ue = ["src"], ce = { "data-tauri-dr
2059
2067
  default: ""
2060
2068
  }
2061
2069
  },
2062
- setup(i) {
2063
- const e = i;
2064
- return (t, l) => (f(), v(V, null, [
2065
- G(ge, {
2070
+ setup(t) {
2071
+ const e = t;
2072
+ return (i, l) => (o(), s(F, null, [
2073
+ Z(xe, {
2066
2074
  title: e.title,
2067
2075
  image: e.image
2068
2076
  }, null, 8, ["title", "image"]),
2069
- R(t.$slots, "default")
2077
+ k(i.$slots, "default")
2070
2078
  ], 64));
2071
2079
  }
2072
- }), _e = [j, Y, pe], ve = {
2073
- install(i) {
2074
- _e.forEach((e) => {
2075
- i.component(e.name, e);
2080
+ }), Se = ["type", "disabled"], De = {
2081
+ key: 0,
2082
+ class: "w-4 h-4 animate-spin rounded-full border-2 border-current border-t-transparent"
2083
+ }, ze = ["src", "alt"], Ie = { key: 2 }, Ae = ["src", "alt"], We = /* @__PURE__ */ y({
2084
+ __name: "ActionButton",
2085
+ props: {
2086
+ label: {},
2087
+ disabled: { type: Boolean, default: !1 },
2088
+ variant: { default: "primary" },
2089
+ loading: { type: Boolean, default: !1 },
2090
+ customClass: { default: () => ({}) },
2091
+ size: { default: "md" },
2092
+ fullWidth: { type: Boolean, default: !1 },
2093
+ iconSrc: { default: "" },
2094
+ iconAlt: { default: "" },
2095
+ iconRight: { type: Boolean, default: !1 },
2096
+ type: { default: "button" },
2097
+ stopPropagation: { type: Boolean, default: !1 },
2098
+ preventDefault: { type: Boolean, default: !1 }
2099
+ },
2100
+ emits: ["click"],
2101
+ setup(t, { emit: e }) {
2102
+ const i = t, l = e, a = {
2103
+ primary: "bg-vsk-primary text-white hover:bg-vsk-primary/90",
2104
+ secondary: "bg-vsk-border text-vsk-text hover:bg-vsk-border/80",
2105
+ danger: "bg-red-600 text-white hover:bg-red-700"
2106
+ }, c = {
2107
+ sm: "px-2 py-1 text-xs",
2108
+ md: "px-3 py-1 text-sm",
2109
+ lg: "px-4 py-2 text-base"
2110
+ }, r = (f) => {
2111
+ i.stopPropagation && f.stopPropagation(), i.preventDefault && f.preventDefault(), !i.disabled && !i.loading && l("click");
2112
+ };
2113
+ return (f, h) => (o(), s("button", {
2114
+ type: i.type,
2115
+ onClick: r,
2116
+ class: d(["rounded-vsk transition-all duration-200 disabled:opacity-50 disabled:cursor-not-allowed flex items-center justify-center gap-2", [
2117
+ a[i.variant],
2118
+ c[i.size],
2119
+ i.fullWidth ? "w-full" : "",
2120
+ i.iconSrc && !i.label ? "px-2 py-2" : "",
2121
+ t.customClass
2122
+ ]]),
2123
+ disabled: i.disabled || i.loading
2124
+ }, [
2125
+ t.loading ? (o(), s("span", De)) : g("", !0),
2126
+ i.iconSrc && !i.iconRight ? (o(), s("img", {
2127
+ key: 1,
2128
+ src: i.iconSrc,
2129
+ alt: i.iconAlt || i.label,
2130
+ class: "w-4 h-4"
2131
+ }, null, 8, ze)) : g("", !0),
2132
+ i.label ? (o(), s("span", Ie, w(i.label), 1)) : g("", !0),
2133
+ i.iconSrc && i.iconRight ? (o(), s("img", {
2134
+ key: 3,
2135
+ src: i.iconSrc,
2136
+ alt: i.iconAlt || i.label,
2137
+ class: "w-4 h-4"
2138
+ }, null, 8, Ae)) : g("", !0)
2139
+ ], 10, Se));
2140
+ }
2141
+ }), $e = /* @__PURE__ */ D(We, [["__scopeId", "data-v-d1ce8923"]]), Oe = { class: "text-base font-semibold m-0 text-vsk-primary" }, Le = /* @__PURE__ */ y({
2142
+ __name: "ConfigSection",
2143
+ props: {
2144
+ title: {},
2145
+ icon: { default: "" },
2146
+ customClass: { default: () => ({}) }
2147
+ },
2148
+ setup(t) {
2149
+ return (e, i) => (o(), s("div", {
2150
+ class: d(["flex flex-col gap-4 p-4 background rounded-vsk", t.customClass])
2151
+ }, [
2152
+ u("h3", Oe, w(t.icon ? `${t.icon} ${t.title}` : t.title), 1),
2153
+ k(e.$slots, "default", {}, void 0, !0)
2154
+ ], 2));
2155
+ }
2156
+ }), Be = /* @__PURE__ */ D(Le, [["__scopeId", "data-v-89531d08"]]), Te = { class: "flex items-center gap-3 flex-1 min-w-0" }, Re = ["src", "alt"], Ne = { class: "min-w-0" }, Ee = { class: "font-semibold truncate" }, Pe = {
2157
+ key: 0,
2158
+ class: "text-xs text-gray-400 truncate"
2159
+ }, Me = {
2160
+ key: 1,
2161
+ class: "text-xs text-gray-400 truncate"
2162
+ }, Fe = {
2163
+ key: 2,
2164
+ class: "text-xs text-gray-400 flex gap-2 mt-1"
2165
+ }, Ve = {
2166
+ key: 1,
2167
+ class: "w-2 h-2 rounded-full bg-green-500"
2168
+ }, Ue = /* @__PURE__ */ y({
2169
+ __name: "DeviceCard",
2170
+ props: {
2171
+ icon: {},
2172
+ title: {},
2173
+ subtitle: { default: "" },
2174
+ metadata: { default: "" },
2175
+ extraInfo: { default: () => [] },
2176
+ isConnected: { type: Boolean, default: !1 },
2177
+ showActionButton: { type: Boolean, default: !0 },
2178
+ actionLabel: { default: "Conectar" },
2179
+ showStatusIndicator: { type: Boolean, default: !1 },
2180
+ customClass: { default: "" },
2181
+ clickable: { type: Boolean, default: !1 }
2182
+ },
2183
+ emits: ["action", "click"],
2184
+ setup(t, { emit: e }) {
2185
+ const i = e, l = () => {
2186
+ i("action");
2187
+ }, a = () => {
2188
+ i("click");
2189
+ };
2190
+ return (c, r) => (o(), s("div", {
2191
+ class: d(["flex items-center justify-between background rounded-vsk px-6 py-3 mb-4", [{ "border-l-4 border-green-500": t.isConnected }, t.customClass]]),
2192
+ onClick: a
2193
+ }, [
2194
+ u("div", Te, [
2195
+ u("img", {
2196
+ src: t.icon,
2197
+ alt: t.title,
2198
+ class: "h-7 w-7 shrink-0"
2199
+ }, null, 8, Re),
2200
+ u("div", Ne, [
2201
+ u("div", Ee, w(t.title), 1),
2202
+ t.subtitle ? (o(), s("div", Pe, w(t.subtitle), 1)) : g("", !0),
2203
+ t.metadata ? (o(), s("div", Me, w(t.metadata), 1)) : g("", !0),
2204
+ t.extraInfo && t.extraInfo.length > 0 ? (o(), s("div", Fe, [
2205
+ (o(!0), s(F, null, Q(t.extraInfo, (f, h) => (o(), s("span", { key: h }, w(f), 1))), 128))
2206
+ ])) : g("", !0)
2207
+ ])
2208
+ ]),
2209
+ t.showActionButton ? (o(), s("button", {
2210
+ key: 0,
2211
+ class: "bg-vsk-primary rounded-vsk px-4 py-2 text-sm font-semibold cursor-pointer hover:opacity-70",
2212
+ onClick: Y(l, ["stop"])
2213
+ }, w(t.actionLabel), 1)) : g("", !0),
2214
+ t.showStatusIndicator && t.isConnected ? (o(), s("div", Ve)) : g("", !0)
2215
+ ], 2));
2216
+ }
2217
+ }), Ge = ["for"], He = /* @__PURE__ */ y({
2218
+ __name: "FormGroup",
2219
+ props: {
2220
+ label: {},
2221
+ htmlFor: { default: "" },
2222
+ customClass: { default: () => ({}) },
2223
+ labelClass: { default: () => ({}) }
2224
+ },
2225
+ setup(t) {
2226
+ return (e, i) => (o(), s("div", {
2227
+ class: d(["flex flex-col gap-2", t.customClass])
2228
+ }, [
2229
+ t.label ? (o(), s("label", {
2230
+ key: 0,
2231
+ for: t.htmlFor,
2232
+ class: d(["text-sm font-medium text-vsk-primary", t.labelClass])
2233
+ }, w(t.label), 11, Ge)) : g("", !0),
2234
+ k(e.$slots, "default", {}, void 0, !0)
2235
+ ], 2));
2236
+ }
2237
+ }), je = /* @__PURE__ */ D(He, [["__scopeId", "data-v-a4bd01fc"]]), Je = /* @__PURE__ */ y({
2238
+ __name: "ListCard",
2239
+ props: {
2240
+ clickable: { type: Boolean, default: !1 },
2241
+ customClass: { default: () => ({}) }
2242
+ },
2243
+ emits: ["click"],
2244
+ setup(t, { emit: e }) {
2245
+ const i = t, l = e, a = () => {
2246
+ i.clickable && l("click");
2247
+ };
2248
+ return (c, r) => (o(), s("div", {
2249
+ class: d([
2250
+ "flex items-center justify-between background p-3 rounded-vsk border border-vsk-primary/70 transition-colors duration-200",
2251
+ {
2252
+ "hover:bg-vsk-primary/5 cursor-pointer": i.clickable
2253
+ },
2254
+ t.customClass
2255
+ ]),
2256
+ onClick: a
2257
+ }, [
2258
+ k(c.$slots, "default", {}, void 0, !0)
2259
+ ], 2));
2260
+ }
2261
+ }), qe = /* @__PURE__ */ D(Je, [["__scopeId", "data-v-f86d47da"]]), Ze = { class: "background rounded-vsk flex flex-row items-center gap-2 justify-between w-full h-auto p-4 transition-all duration-200 hover:bg-white/60 dark:hover:bg-black/60" }, Qe = ["src", "alt", "title"], Ye = {
2262
+ key: 1,
2263
+ class: "w-8 h-8 flex items-center justify-center"
2264
+ }, Ke = ["src", "alt"], Xe = ["min", "max", "value"], et = /* @__PURE__ */ y({
2265
+ __name: "SliderControl",
2266
+ props: {
2267
+ icon: {},
2268
+ alt: { default: "" },
2269
+ tooltip: { default: "" },
2270
+ modelValue: {},
2271
+ min: { default: 0 },
2272
+ max: { default: 100 },
2273
+ showButton: { type: Boolean, default: !1 },
2274
+ iconClass: { default: () => ({}) },
2275
+ getPercentageClass: { type: Function, default: () => "" }
2276
+ },
2277
+ emits: ["update:modelValue", "buttonClick"],
2278
+ setup(t, { emit: e }) {
2279
+ const i = t, l = e, a = T(() => {
2280
+ if (i.max <= i.min) return 0;
2281
+ const h = i.max - i.min, v = i.modelValue - i.min;
2282
+ return Math.round(v / h * 100);
2283
+ }), c = T(() => i.getPercentageClass ? i.getPercentageClass(a.value) : ""), r = (h) => {
2284
+ const v = h.target;
2285
+ l("update:modelValue", Number(v.value));
2286
+ }, f = () => {
2287
+ l("buttonClick");
2288
+ };
2289
+ return (h, v) => (o(), s("div", Ze, [
2290
+ t.showButton ? (o(), s("button", {
2291
+ key: 0,
2292
+ onClick: f,
2293
+ class: "w-8 h-8 flex items-center justify-center rounded-vsk transition-all duration-200 hover:bg-white/30 dark:hover:bg-black/30 hover:scale-110 active:scale-95"
2294
+ }, [
2295
+ u("img", {
2296
+ src: t.icon,
2297
+ alt: t.alt,
2298
+ title: t.tooltip,
2299
+ class: d(["w-6 h-6 transition-all duration-200", t.iconClass])
2300
+ }, null, 10, Qe)
2301
+ ])) : (o(), s("div", Ye, [
2302
+ u("img", {
2303
+ src: t.icon,
2304
+ alt: t.alt,
2305
+ class: "w-6 h-6 transition-all duration-200"
2306
+ }, null, 8, Ke)
2307
+ ])),
2308
+ u("input", {
2309
+ type: "range",
2310
+ min: t.min,
2311
+ max: t.max,
2312
+ value: t.modelValue,
2313
+ onInput: r,
2314
+ class: "flex-1 transition-all duration-200 hover:scale-105"
2315
+ }, null, 40, Xe),
2316
+ u("span", {
2317
+ class: d(["w-12 text-right transition-all duration-200 font-medium", c.value])
2318
+ }, w(a.value) + "% ", 3)
2319
+ ]));
2320
+ }
2321
+ }), tt = ["disabled"], it = /* @__PURE__ */ y({
2322
+ __name: "SwitchToggle",
2323
+ props: {
2324
+ isOn: { type: Boolean },
2325
+ disabled: { type: Boolean, default: !1 },
2326
+ size: { default: "small" },
2327
+ activeClass: { default: "bg-vsk-primary" },
2328
+ inactiveClass: { default: "background" },
2329
+ customClass: { default: "" }
2330
+ },
2331
+ emits: ["toggle"],
2332
+ setup(t, { emit: e }) {
2333
+ const i = t, l = e, a = () => {
2334
+ l("toggle", !i.isOn);
2335
+ };
2336
+ return (c, r) => (o(), s("button", {
2337
+ type: "button",
2338
+ onClick: a,
2339
+ disabled: t.disabled,
2340
+ class: d([
2341
+ "relative inline-flex items-center rounded-full transition-colors",
2342
+ t.size === "small" ? "h-6 w-11" : "h-7 w-12",
2343
+ t.isOn ? t.activeClass : t.inactiveClass,
2344
+ t.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer",
2345
+ t.customClass
2346
+ ])
2347
+ }, [
2348
+ u("span", {
2349
+ class: d([
2350
+ "inline-block transform rounded-full bg-white shadow transition-transform",
2351
+ t.size === "small" ? "h-4 w-4" : "h-6 w-6",
2352
+ t.isOn ? t.size === "small" ? "translate-x-6" : "translate-x-5" : "translate-x-1"
2353
+ ])
2354
+ }, null, 2)
2355
+ ], 10, tt));
2356
+ }
2357
+ }), nt = ["disabled"], lt = ["src", "alt", "title"], at = /* @__PURE__ */ y({
2358
+ __name: "ToggleControl",
2359
+ props: {
2360
+ icon: {},
2361
+ alt: { default: "" },
2362
+ tooltip: { default: "" },
2363
+ isActive: { type: Boolean, default: !1 },
2364
+ isLoading: { type: Boolean, default: !1 },
2365
+ iconClass: { default: () => ({}) },
2366
+ customClass: { default: () => ({}) }
2367
+ },
2368
+ emits: ["click"],
2369
+ setup(t, { emit: e }) {
2370
+ const i = e, l = () => {
2371
+ i("click");
2372
+ };
2373
+ return (a, c) => (o(), s("button", {
2374
+ onClick: l,
2375
+ class: d(["p-2 rounded-vsk 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", {
2376
+ "animate-pulse": t.isLoading,
2377
+ "ring-2 ring-vsk-primary/50": t.isActive,
2378
+ "opacity-60": !t.isActive,
2379
+ ...t.customClass
2380
+ }]),
2381
+ disabled: t.isLoading
2382
+ }, [
2383
+ u("img", {
2384
+ src: t.icon,
2385
+ alt: t.alt,
2386
+ title: t.tooltip,
2387
+ class: d(["m-auto w-12.5 h-12.5 transition-all duration-300 group-hover:scale-110 relative z-10", {
2388
+ "animate-spin": t.isLoading,
2389
+ "filter brightness-75": !t.isActive,
2390
+ "drop-shadow-lg": t.isActive,
2391
+ ...t.iconClass
2392
+ }])
2393
+ }, null, 10, lt)
2394
+ ], 10, nt));
2395
+ }
2396
+ }), st = ["title"], ot = ["src", "alt"], rt = {
2397
+ key: 0,
2398
+ class: "absolute bottom-1 right-1 bg-vsk-primary text-white text-xs rounded-full w-4 h-4 flex items-center justify-center font-bold animate-bounce"
2399
+ }, ut = /* @__PURE__ */ y({
2400
+ __name: "TrayIconButton",
2401
+ props: {
2402
+ icon: {},
2403
+ alt: { default: "" },
2404
+ tooltip: { default: "" },
2405
+ badge: { default: null },
2406
+ iconClass: { default: () => ({}) },
2407
+ customClass: { default: "" },
2408
+ tooltipClass: { default: "" },
2409
+ showCustomTooltip: { type: Boolean, default: !1 },
2410
+ customTooltipText: { default: "" }
2411
+ },
2412
+ emits: ["click"],
2413
+ setup(t, { emit: e }) {
2414
+ const i = e, l = x(!1), a = () => {
2415
+ i("click");
2416
+ };
2417
+ return (c, r) => (o(), s("div", {
2418
+ class: d(["p-1 rounded-vsk relative hover:bg-vsk-primary/30 group transition-all duration-300", t.customClass]),
2419
+ title: t.tooltip,
2420
+ onClick: a,
2421
+ onMouseenter: r[0] || (r[0] = (f) => l.value = !0),
2422
+ onMouseleave: r[1] || (r[1] = (f) => l.value = !1)
2423
+ }, [
2424
+ u("img", {
2425
+ src: t.icon,
2426
+ alt: t.alt,
2427
+ class: d(["m-auto h-5.5 w-auto transition-all duration-300", t.iconClass])
2428
+ }, null, 10, ot),
2429
+ t.badge !== null && t.badge > 0 ? (o(), s("div", rt, w(t.badge), 1)) : g("", !0),
2430
+ t.showCustomTooltip && t.customTooltipText ? (o(), s("div", {
2431
+ key: 1,
2432
+ class: d(["absolute top-1 left-1/2 transform -translate-x-1/2 text-xs font-semibold p-1 rounded-vsk transition-all duration-300 pointer-events-none background", [
2433
+ t.tooltipClass,
2434
+ {
2435
+ "opacity-0 -translate-y-2": !l.value,
2436
+ "opacity-100 translate-y-0": l.value
2437
+ }
2438
+ ]])
2439
+ }, w(t.customTooltipText), 3)) : g("", !0),
2440
+ k(c.$slots, "default")
2441
+ ], 42, st));
2442
+ }
2443
+ }), ct = [
2444
+ te,
2445
+ le,
2446
+ Ce,
2447
+ $e,
2448
+ Be,
2449
+ Ue,
2450
+ je,
2451
+ qe,
2452
+ et,
2453
+ it,
2454
+ at,
2455
+ ut
2456
+ ], ht = {
2457
+ install(t) {
2458
+ ct.forEach((e) => {
2459
+ t.component(e.name, e);
2076
2460
  });
2077
2461
  }
2078
2462
  };
2079
2463
  export {
2080
- j as SideBar,
2081
- Y as SideButton,
2082
- pe as WindowFrame,
2083
- ve as default
2464
+ $e as ActionButton,
2465
+ Be as ConfigSection,
2466
+ Ue as DeviceCard,
2467
+ je as FormGroup,
2468
+ qe as ListCard,
2469
+ te as SideBar,
2470
+ le as SideButton,
2471
+ et as SliderControl,
2472
+ it as SwitchToggle,
2473
+ at as ToggleControl,
2474
+ ut as TrayIconButton,
2475
+ Ce as WindowFrame,
2476
+ ht as default
2084
2477
  };