@glasshome/widget-sdk 0.3.5 → 0.3.7

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.
package/dist/index.js CHANGED
@@ -1,34 +1,34 @@
1
- import { createSignal as F, createContext as Ee, useContext as Se, createEffect as K, untrack as ve, createMemo as A, splitProps as Ae, on as be, Show as te } from "solid-js";
2
- import { z as q } from "zod";
3
- import { GridSizeSchema as hr, PublishBodySchema as xr, PublishConfirmSchema as vr, PublishRequestSchema as br, WidgetManifestSchema as yr, formatSchemaError as wr, parseGridSize as $r, serializeGridSize as kr } from "./schemas.js";
4
- import { memo as E, effect as z, setStyleProperty as M, className as p, template as w, insert as h, style as oe, createComponent as T, addEventListener as ne, use as Ne, delegateEvents as Oe } from "solid-js/web";
5
- import { clsx as Te } from "clsx";
6
- import { twMerge as Ve } from "tailwind-merge";
7
- import { createElementSize as We } from "@solid-primitives/resize-observer";
8
- import { createForm as Ie, zodForm as Re, reset as Ge, setValue as Pe, getValue as He } from "@modular-forms/solid";
9
- function En(e) {
10
- const [t] = F(e);
11
- return t;
1
+ import { createSignal as j, createContext as Ot, useContext as Ct, createEffect as q, untrack as yt, createMemo as N, splitProps as Tt, on as wt, Show as et } from "solid-js";
2
+ import { z as X } from "zod";
3
+ import { GridSizeSchema as vr, PublishBodySchema as yr, PublishConfirmSchema as wr, PublishRequestSchema as $r, WidgetManifestSchema as pr, formatSchemaError as kr, parseGridSize as Sr, serializeGridSize as Cr } from "./schemas.js";
4
+ import { memo as _, effect as z, setStyleProperty as M, className as S, template as w, insert as b, style as ot, createComponent as T, addEventListener as nt, use as Vt, delegateEvents as At } from "solid-js/web";
5
+ import { clsx as Wt } from "clsx";
6
+ import { twMerge as Rt } from "tailwind-merge";
7
+ import { createElementSize as It } from "@solid-primitives/resize-observer";
8
+ import { createForm as Ht, zodForm as Gt, reset as Pt, setValue as Lt, getValue as Bt } from "@modular-forms/solid";
9
+ function Tn(t) {
10
+ const [e] = j(t);
11
+ return e;
12
12
  }
13
- function pe(e) {
14
- return q.toJSONSchema(e, {
15
- override: (t) => {
16
- const n = q.globalRegistry.get(t.zodSchema);
17
- return n && typeof n == "object" && Object.keys(n).length > 0 ? { ...t.jsonSchema, ...n } : t.jsonSchema;
13
+ function Mt(t) {
14
+ return X.toJSONSchema(t, {
15
+ override: (e) => {
16
+ const r = X.globalRegistry.get(e.zodSchema);
17
+ return r && typeof r == "object" && Object.keys(r).length > 0 ? { ...e.jsonSchema, ...r } : e.jsonSchema;
18
18
  }
19
19
  });
20
20
  }
21
- function Be(e) {
21
+ function jt(t) {
22
22
  try {
23
- return e.parse({});
23
+ return t.parse({});
24
24
  } catch {
25
25
  return {};
26
26
  }
27
27
  }
28
- function An(e) {
29
- return e.configSchema && (e.manifest.schema || (e.manifest.schema = pe(e.configSchema)), e.manifest.defaultConfig || (e.manifest.defaultConfig = Be(e.configSchema))), e;
28
+ function Vn(t) {
29
+ return t.configSchema && (t.manifest.schema || (t.manifest.schema = Mt(t.configSchema)), t.manifest.defaultConfig || (t.manifest.defaultConfig = jt(t.configSchema))), t;
30
30
  }
31
- const Y = {
31
+ const U = {
32
32
  /** Background layer (gradients, images, glows) */
33
33
  BACKGROUND: 0,
34
34
  /** Main content layer (icon, title, text) */
@@ -38,19 +38,19 @@ const Y = {
38
38
  /** Action layer (buttons, edit controls) */
39
39
  ACTIONS: 30
40
40
  };
41
- function Nn(e) {
41
+ function An(t) {
42
42
  }
43
- const me = Ee();
44
- function G() {
45
- const e = Se(me);
46
- if (!e)
43
+ const ht = Ot();
44
+ function I() {
45
+ const t = Ct(ht);
46
+ if (!t)
47
47
  throw new Error("useWidgetContext must be used within a Widget component");
48
- return e;
48
+ return t;
49
49
  }
50
- function S(...e) {
51
- return Ve(Te(e));
50
+ function k(...t) {
51
+ return Rt(Wt(t));
52
52
  }
53
- const Le = {
53
+ const Ft = {
54
54
  id: "classic-glass",
55
55
  name: "Classic Glass",
56
56
  description: "Default glassmorphism design with blur background and gradient",
@@ -78,7 +78,7 @@ const Le = {
78
78
  hoverScale: 1.02,
79
79
  activeScale: 0.98
80
80
  }
81
- }, je = {
81
+ }, Ut = {
82
82
  id: "minimal",
83
83
  name: "Minimal",
84
84
  description: "Clean, minimal design with no background effects",
@@ -107,7 +107,7 @@ const Le = {
107
107
  active: !1,
108
108
  focus: !0
109
109
  }
110
- }, Fe = {
110
+ }, Yt = {
111
111
  id: "compact-horizontal",
112
112
  name: "Compact Horizontal",
113
113
  description: "Horizontal layout for compact widgets",
@@ -135,160 +135,160 @@ const Le = {
135
135
  hoverScale: 1.02,
136
136
  activeScale: 0.98
137
137
  }
138
- }, fe = {
139
- "classic-glass": Le,
140
- minimal: je,
141
- "compact-horizontal": Fe
138
+ }, bt = {
139
+ "classic-glass": Ft,
140
+ minimal: Ut,
141
+ "compact-horizontal": Yt
142
142
  };
143
- function Ue(e) {
144
- return fe[e];
143
+ function Kt(t) {
144
+ return bt[t];
145
145
  }
146
- function On(e) {
147
- return e in fe;
146
+ function Wn(t) {
147
+ return t in bt;
148
148
  }
149
- function Tn() {
150
- return Object.keys(fe);
149
+ function Rn() {
150
+ return Object.keys(bt);
151
151
  }
152
- function Ce(e, t) {
153
- if (typeof e != "object" || e === null)
154
- return t;
155
- const n = { ...e };
156
- for (const i in t) {
157
- const r = t[i], a = e[i];
158
- if (r !== void 0) {
159
- if (Array.isArray(r)) {
160
- n[i] = r;
152
+ function zt(t, e) {
153
+ if (typeof t != "object" || t === null)
154
+ return e;
155
+ const r = { ...t };
156
+ for (const i in e) {
157
+ const n = e[i], a = t[i];
158
+ if (n !== void 0) {
159
+ if (Array.isArray(n)) {
160
+ r[i] = n;
161
161
  continue;
162
162
  }
163
- if (typeof r == "object" && r !== null && !Array.isArray(r)) {
164
- typeof a == "object" && a !== null ? n[i] = Ce(a, r) : n[i] = r;
163
+ if (typeof n == "object" && n !== null && !Array.isArray(n)) {
164
+ typeof a == "object" && a !== null ? r[i] = zt(a, n) : r[i] = n;
165
165
  continue;
166
166
  }
167
- n[i] = r;
167
+ r[i] = n;
168
168
  }
169
169
  }
170
- return n;
171
- }
172
- function Ye(e, t) {
173
- if (!(!e && !t))
174
- return e ? t ? {
175
- container: { ...e.container, ...t.container },
176
- class: t.class ?? e.class,
177
- cssVars: { ...e.cssVars, ...t.cssVars }
178
- } : e : t;
179
- }
180
- function Xe(e, t) {
181
- return t ?? e;
182
- }
183
- function Ke(e, t) {
184
- if (!(!e && !t))
185
- return e ? t ? {
186
- visible: { ...e.visible, ...t.visible },
187
- styles: Ce(e.styles ?? {}, t.styles ?? {}),
188
- classNames: { ...e.classNames, ...t.classNames }
189
- } : e : t;
190
- }
191
- function qe(e, t) {
192
- if (!(!e && !t))
193
- return e ? t ? {
194
- background: t.background ?? e.background,
195
- overlay: t.overlay ?? e.overlay,
196
- decorations: t.decorations ?? e.decorations
197
- } : e : t;
198
- }
199
- function Je(e, t) {
200
- if (!(!e && !t))
201
- return e ? t ? {
202
- hover: t.hover ?? e.hover,
203
- active: t.active ?? e.active,
204
- focus: t.focus ?? e.focus,
205
- hoverScale: t.hoverScale ?? e.hoverScale,
206
- activeScale: t.activeScale ?? e.activeScale
207
- } : e : t;
208
- }
209
- function he(e, t) {
170
+ return r;
171
+ }
172
+ function qt(t, e) {
173
+ if (!(!t && !e))
174
+ return t ? e ? {
175
+ container: { ...t.container, ...e.container },
176
+ class: e.class ?? t.class,
177
+ cssVars: { ...t.cssVars, ...e.cssVars }
178
+ } : t : e;
179
+ }
180
+ function Xt(t, e) {
181
+ return e ?? t;
182
+ }
183
+ function Jt(t, e) {
184
+ if (!(!t && !e))
185
+ return t ? e ? {
186
+ visible: { ...t.visible, ...e.visible },
187
+ styles: zt(t.styles ?? {}, e.styles ?? {}),
188
+ classNames: { ...t.classNames, ...e.classNames }
189
+ } : t : e;
190
+ }
191
+ function Zt(t, e) {
192
+ if (!(!t && !e))
193
+ return t ? e ? {
194
+ background: e.background ?? t.background,
195
+ overlay: e.overlay ?? t.overlay,
196
+ decorations: e.decorations ?? t.decorations
197
+ } : t : e;
198
+ }
199
+ function Qt(t, e) {
200
+ if (!(!t && !e))
201
+ return t ? e ? {
202
+ hover: e.hover ?? t.hover,
203
+ active: e.active ?? t.active,
204
+ focus: e.focus ?? t.focus,
205
+ hoverScale: e.hoverScale ?? t.hoverScale,
206
+ activeScale: e.activeScale ?? t.activeScale
207
+ } : t : e;
208
+ }
209
+ function xt(t, e) {
210
210
  return {
211
- id: t.id ?? e.id,
212
- name: t.name ?? e.name,
213
- description: t.description ?? e.description,
214
- styles: Ye(e.styles, t.styles),
215
- layout: Xe(e.layout, t.layout),
216
- elements: Ke(e.elements, t.elements),
217
- plugins: qe(e.plugins, t.plugins),
218
- interactions: Je(e.interactions, t.interactions),
219
- extends: t.extends ?? e.extends
211
+ id: e.id ?? t.id,
212
+ name: e.name ?? t.name,
213
+ description: e.description ?? t.description,
214
+ styles: qt(t.styles, e.styles),
215
+ layout: Xt(t.layout, e.layout),
216
+ elements: Jt(t.elements, e.elements),
217
+ plugins: Zt(t.plugins, e.plugins),
218
+ interactions: Qt(t.interactions, e.interactions),
219
+ extends: e.extends ?? t.extends
220
220
  };
221
221
  }
222
- function Vn(e, t) {
222
+ function In(t, e) {
223
223
  return {
224
- ...t,
225
- extends: e
224
+ ...e,
225
+ extends: t
226
226
  };
227
227
  }
228
- function Wn(...e) {
229
- if (e.length === 0)
228
+ function Hn(...t) {
229
+ if (t.length === 0)
230
230
  throw new Error("composeVariants requires at least one variant");
231
- return e.length === 1 ? e[0] : e.reduce((t, n) => he(t, n));
231
+ return t.length === 1 ? t[0] : t.reduce((e, r) => xt(e, r));
232
232
  }
233
- function In(e, t) {
234
- return he(e, { layout: t });
233
+ function Gn(t, e) {
234
+ return xt(t, { layout: e });
235
235
  }
236
- function Rn(e, t) {
237
- return he(e, {
238
- styles: { cssVars: t }
236
+ function Pn(t, e) {
237
+ return xt(t, {
238
+ styles: { cssVars: e }
239
239
  });
240
240
  }
241
- function Gn(e = "column", t = "start", n = "start", i) {
241
+ function Ln(t = "column", e = "start", r = "start", i) {
242
242
  return {
243
243
  type: "flex",
244
- direction: e,
245
- align: t,
246
- justify: n,
244
+ direction: t,
245
+ align: e,
246
+ justify: r,
247
247
  ...i
248
248
  };
249
249
  }
250
- var Ze = /* @__PURE__ */ w("<div>"), Qe = /* @__PURE__ */ w('<div class="pointer-events-none absolute inset-0 opacity-40 blur-2xl">');
251
- function et(e) {
252
- const t = G(), n = () => t.orientation() === "vertical" ? `inset(${100 - e.value}% 0 0 0)` : `inset(0 ${100 - e.value}% 0 0)`, i = () => e.color ?? "rgb(59, 130, 246)";
253
- return [E(() => E(() => !!((e.glow ?? !1) && e.value > 0))() && (() => {
254
- var r = Qe();
250
+ var te = /* @__PURE__ */ w("<div>"), ee = /* @__PURE__ */ w('<div class="pointer-events-none absolute inset-0 opacity-40 blur-2xl">');
251
+ function ne(t) {
252
+ const e = I(), r = () => e.orientation() === "vertical" ? `inset(${100 - t.value}% 0 0 0)` : `inset(0 ${100 - t.value}% 0 0)`, i = () => t.color ?? "rgb(59, 130, 246)";
253
+ return [_(() => _(() => !!((t.glow ?? !1) && t.value > 0))() && (() => {
254
+ var n = ee();
255
255
  return z((a) => {
256
- var o = i(), s = Y.BACKGROUND;
257
- return o !== a.e && M(r, "background", a.e = o), s !== a.t && M(r, "z-index", a.t = s), a;
256
+ var o = i(), s = U.BACKGROUND;
257
+ return o !== a.e && M(n, "background", a.e = o), s !== a.t && M(n, "z-index", a.t = s), a;
258
258
  }, {
259
259
  e: void 0,
260
260
  t: void 0
261
- }), r;
261
+ }), n;
262
262
  })()), (() => {
263
- var r = Ze();
263
+ var n = te();
264
264
  return z((a) => {
265
- var o = S("pointer-events-none absolute inset-0", e.isDragging ? "duration-0" : "transition-all duration-300 ease-out", e.class), s = i(), l = n(), d = e.opacity ?? 0.3, c = Y.BACKGROUND;
266
- return o !== a.e && p(r, a.e = o), s !== a.t && M(r, "background", a.t = s), l !== a.a && M(r, "clip-path", a.a = l), d !== a.o && M(r, "opacity", a.o = d), c !== a.i && M(r, "z-index", a.i = c), a;
265
+ var o = k("pointer-events-none absolute inset-0", t.isDragging ? "duration-0" : "transition-all duration-300 ease-out", t.class), s = i(), l = r(), d = t.opacity ?? 0.3, c = U.BACKGROUND;
266
+ return o !== a.e && S(n, a.e = o), s !== a.t && M(n, "background", a.t = s), l !== a.a && M(n, "clip-path", a.a = l), d !== a.o && M(n, "opacity", a.o = d), c !== a.i && M(n, "z-index", a.i = c), a;
267
267
  }, {
268
268
  e: void 0,
269
269
  t: void 0,
270
270
  a: void 0,
271
271
  o: void 0,
272
272
  i: void 0
273
- }), r;
273
+ }), n;
274
274
  })()];
275
275
  }
276
- const re = {
276
+ const rt = {
277
277
  S1: { xs: 4, sm: 4, md: 6, lg: 6, xl: 8 },
278
278
  S2: { xs: 6, sm: 8, md: 10, lg: 12, xl: 14 },
279
279
  S3: { xs: 8, sm: 10, md: 12, lg: 14, xl: 16 },
280
280
  S4: { xs: 12, sm: 14, md: 16, lg: 18, xl: 20 }
281
- }, I = {
281
+ }, W = {
282
282
  /** Extra small spacing (4-8px) */
283
- S1: (e) => `${re.S1[e]}px`,
283
+ S1: (t) => `${rt.S1[t]}px`,
284
284
  /** Small spacing (6-14px) - default for most layouts */
285
- S2: (e) => `${re.S2[e]}px`,
285
+ S2: (t) => `${rt.S2[t]}px`,
286
286
  /** Medium spacing (8-16px) */
287
- S3: (e) => `${re.S3[e]}px`,
287
+ S3: (t) => `${rt.S3[t]}px`,
288
288
  /** Large spacing (12-20px) */
289
- S4: (e) => `${re.S4[e]}px`,
289
+ S4: (t) => `${rt.S4[t]}px`,
290
290
  /** Icon container size in pixels */
291
- icon: (e) => ({
291
+ icon: (t) => ({
292
292
  xs: 32,
293
293
  // 1x1, 1x2 widgets
294
294
  sm: 40,
@@ -299,9 +299,9 @@ const re = {
299
299
  // 2x6, 3x6, 4x2 widgets
300
300
  xl: 56
301
301
  // 4x4 widgets
302
- })[e],
302
+ })[t],
303
303
  /** Icon stroke size for lucide icons */
304
- iconSize: (e) => ({
304
+ iconSize: (t) => ({
305
305
  xs: 18,
306
306
  // Smaller stroke for tiny widgets
307
307
  sm: 20,
@@ -312,9 +312,9 @@ const re = {
312
312
  // Large widgets
313
313
  xl: 28
314
314
  // Extra large widgets
315
- })[e],
315
+ })[t],
316
316
  /** Spacing between icon and title */
317
- iconToTitle: (e) => ({
317
+ iconToTitle: (t) => ({
318
318
  xs: "8px",
319
319
  // Tight spacing for small widgets
320
320
  sm: "10px",
@@ -325,9 +325,9 @@ const re = {
325
325
  // More breathing room
326
326
  xl: "16px"
327
327
  // Maximum spacing (@[400px]:mt-4 = 16px)
328
- })[e],
328
+ })[t],
329
329
  /** Container padding */
330
- container: (e) => ({
330
+ container: (t) => ({
331
331
  xs: "8px",
332
332
  // Minimal padding for tiny widgets
333
333
  sm: "16px",
@@ -336,8 +336,8 @@ const re = {
336
336
  lg: "20px",
337
337
  // More padding for larger widgets
338
338
  xl: "20px"
339
- })[e]
340
- }, tt = {
339
+ })[t]
340
+ }, re = {
341
341
  4: "gap-1",
342
342
  6: "gap-1.5",
343
343
  8: "gap-2",
@@ -348,35 +348,35 @@ const re = {
348
348
  18: "gap-[18px]",
349
349
  20: "gap-5"
350
350
  };
351
- function nt(e, t) {
352
- const n = re[e][t];
353
- return tt[n] || `gap-[${n}px]`;
351
+ function ie(t, e) {
352
+ const r = rt[t][e];
353
+ return re[r] || `gap-[${r}px]`;
354
354
  }
355
- var rt = /* @__PURE__ */ w("<div>");
356
- function it(e) {
357
- const t = G();
355
+ var ae = /* @__PURE__ */ w("<div>");
356
+ function oe(t) {
357
+ const e = I();
358
358
  return (() => {
359
- var n = rt();
360
- return h(n, () => e.children), z((i) => {
361
- var r = S(
359
+ var r = ae();
360
+ return b(r, () => t.children), z((i) => {
361
+ var n = k(
362
362
  "relative flex h-full w-full overflow-hidden",
363
363
  // Ensure controls (ml-auto divs) are above other content
364
364
  "[&_div.ml-auto]:relative [&_div.ml-auto]:z-30",
365
- t.contentLayout() === "horizontal" ? "flex-row items-center" : "flex-col justify-between",
366
- nt("S3", t.size()),
367
- e.class
368
- ), a = I.container(t.size()), o = Y.CONTENT;
369
- return r !== i.e && p(n, i.e = r), a !== i.t && M(n, "padding", i.t = a), o !== i.a && M(n, "z-index", i.a = o), i;
365
+ e.contentLayout() === "horizontal" ? "flex-row items-center" : "flex-col justify-between",
366
+ ie("S3", e.size()),
367
+ t.class
368
+ ), a = W.container(e.size()), o = U.CONTENT;
369
+ return n !== i.e && S(r, i.e = n), a !== i.t && M(r, "padding", i.t = a), o !== i.a && M(r, "z-index", i.a = o), i;
370
370
  }, {
371
371
  e: void 0,
372
372
  t: void 0,
373
373
  a: void 0
374
- }), n;
374
+ }), r;
375
375
  })();
376
376
  }
377
- const U = {
377
+ const F = {
378
378
  /** Container base text sizing */
379
- container: (e) => ({
379
+ container: (t) => ({
380
380
  xs: "text-xs",
381
381
  // Smallest widgets
382
382
  sm: "text-sm",
@@ -387,9 +387,9 @@ const U = {
387
387
  // Large widgets
388
388
  xl: "text-lg"
389
389
  // Extra large widgets
390
- })[e],
390
+ })[t],
391
391
  /** Title text sizing (main heading) */
392
- title: (e) => ({
392
+ title: (t) => ({
393
393
  xs: "text-xs",
394
394
  // 12px - Very compact
395
395
  sm: "text-xs",
@@ -400,9 +400,9 @@ const U = {
400
400
  // 14px - Maintain size
401
401
  xl: "text-sm"
402
402
  // 14px - Don't go too large for secondary text
403
- })[e],
403
+ })[t],
404
404
  /** Subtitle/secondary text sizing */
405
- subtitle: (e) => ({
405
+ subtitle: (t) => ({
406
406
  xs: "text-xs",
407
407
  // 12px - Very compact
408
408
  sm: "text-sm",
@@ -413,9 +413,9 @@ const U = {
413
413
  // 14px - Maintain size
414
414
  xl: "text-base"
415
415
  // 14px - Don't go too large for secondary text
416
- })[e],
416
+ })[t],
417
417
  /** Value display text sizing (large numbers) */
418
- value: (e) => ({
418
+ value: (t) => ({
419
419
  xs: "text-lg",
420
420
  // 18px - Still readable on small widgets
421
421
  sm: "text-xl",
@@ -426,9 +426,9 @@ const U = {
426
426
  // 30px - Very prominent
427
427
  xl: "text-4xl"
428
428
  // 36px - Maximum impact
429
- })[e],
429
+ })[t],
430
430
  /** Badge text sizing (entity count badges) */
431
- badge: (e) => ({
431
+ badge: (t) => ({
432
432
  xs: "text-xs",
433
433
  // 12px - Compact badge
434
434
  sm: "text-xs",
@@ -439,9 +439,9 @@ const U = {
439
439
  // 14px - Slightly larger for readability
440
440
  xl: "text-sm"
441
441
  // 14px - Maximum badge size
442
- })[e],
442
+ })[t],
443
443
  /** Metric label text sizing */
444
- metricLabel: (e) => ({
444
+ metricLabel: (t) => ({
445
445
  xs: "text-xs",
446
446
  // 12px - Compact labels
447
447
  sm: "text-xs",
@@ -452,9 +452,9 @@ const U = {
452
452
  // 14px - More readable on large widgets
453
453
  xl: "text-sm"
454
454
  // 14px
455
- })[e],
455
+ })[t],
456
456
  /** Metric value text sizing */
457
- metricValue: (e) => ({
457
+ metricValue: (t) => ({
458
458
  xs: "text-sm",
459
459
  // 14px - Readable metric values
460
460
  sm: "text-sm",
@@ -465,17 +465,17 @@ const U = {
465
465
  // 16px - Slightly larger
466
466
  xl: "text-base"
467
467
  // 16px
468
- })[e],
468
+ })[t],
469
469
  /** Status text (same as subtitle but semantic) */
470
- status: (e) => ({
470
+ status: (t) => ({
471
471
  xs: "text-md",
472
472
  sm: "text-xl",
473
473
  md: "text-2xl",
474
474
  lg: "text-3xl",
475
475
  xl: "text-3xl"
476
- })[e],
476
+ })[t],
477
477
  /** Empty state message text */
478
- emptyState: (e) => ({
478
+ emptyState: (t) => ({
479
479
  xs: "text-xs",
480
480
  // 12px
481
481
  sm: "text-sm",
@@ -486,59 +486,59 @@ const U = {
486
486
  // 16px
487
487
  xl: "text-base"
488
488
  // 16px
489
- })[e]
489
+ })[t]
490
490
  };
491
- var at = /* @__PURE__ */ w("<div><div>"), ot = /* @__PURE__ */ w("<div>"), st = /* @__PURE__ */ w("<h3>"), lt = /* @__PURE__ */ w("<p>"), ct = /* @__PURE__ */ w("<div class=mt-2>");
492
- function ut(e) {
493
- const t = G(), n = () => t.contentLayout() === "horizontal";
491
+ var se = /* @__PURE__ */ w("<div><div>"), le = /* @__PURE__ */ w("<div>"), ce = /* @__PURE__ */ w("<h3>"), ue = /* @__PURE__ */ w("<p>"), de = /* @__PURE__ */ w("<div class=mt-2>");
492
+ function ge(t) {
493
+ const e = I(), r = () => e.contentLayout() === "horizontal";
494
494
  return (() => {
495
- var i = at(), r = i.firstChild;
496
- return h(i, (() => {
497
- var a = E(() => !!e.icon);
495
+ var i = se(), n = i.firstChild;
496
+ return b(i, (() => {
497
+ var a = _(() => !!t.icon);
498
498
  return () => a() && (() => {
499
- var o = ot();
500
- return h(o, () => e.icon), z((s) => {
501
- var l = S("flex items-center justify-center text-foreground/30", n() ? "shrink-0" : ""), d = `${I.icon(t.size())}px`, c = `${I.icon(t.size())}px`;
502
- return l !== s.e && p(o, s.e = l), d !== s.t && M(o, "width", s.t = d), c !== s.a && M(o, "height", s.a = c), s;
499
+ var o = le();
500
+ return b(o, () => t.icon), z((s) => {
501
+ var l = k("flex items-center justify-center text-foreground/30", r() ? "shrink-0" : ""), d = `${W.icon(e.size())}px`, c = `${W.icon(e.size())}px`;
502
+ return l !== s.e && S(o, s.e = l), d !== s.t && M(o, "width", s.t = d), c !== s.a && M(o, "height", s.a = c), s;
503
503
  }, {
504
504
  e: void 0,
505
505
  t: void 0,
506
506
  a: void 0
507
507
  }), o;
508
508
  })();
509
- })(), r), h(r, (() => {
510
- var a = E(() => !!(e.title ?? "No data"));
509
+ })(), n), b(n, (() => {
510
+ var a = _(() => !!(t.title ?? "No data"));
511
511
  return () => a() && (() => {
512
- var o = st();
513
- return h(o, () => e.title ?? "No data"), z((s) => {
514
- var l = S("font-semibold text-foreground/60", U.subtitle(t.size())), d = n() ? "100%" : "80%";
515
- return l !== s.e && p(o, s.e = l), d !== s.t && M(o, "max-width", s.t = d), s;
512
+ var o = ce();
513
+ return b(o, () => t.title ?? "No data"), z((s) => {
514
+ var l = k("font-semibold text-foreground/60", F.subtitle(e.size())), d = r() ? "100%" : "80%";
515
+ return l !== s.e && S(o, s.e = l), d !== s.t && M(o, "max-width", s.t = d), s;
516
516
  }, {
517
517
  e: void 0,
518
518
  t: void 0
519
519
  }), o;
520
520
  })();
521
- })(), null), h(r, (() => {
522
- var a = E(() => !!e.message);
521
+ })(), null), b(n, (() => {
522
+ var a = _(() => !!t.message);
523
523
  return () => a() && (() => {
524
- var o = lt();
525
- return h(o, () => e.message), z((s) => {
526
- var l = S("text-foreground/50", U.emptyState(t.size())), d = n() ? "100%" : "85%";
527
- return l !== s.e && p(o, s.e = l), d !== s.t && M(o, "max-width", s.t = d), s;
524
+ var o = ue();
525
+ return b(o, () => t.message), z((s) => {
526
+ var l = k("text-foreground/50", F.emptyState(e.size())), d = r() ? "100%" : "85%";
527
+ return l !== s.e && S(o, s.e = l), d !== s.t && M(o, "max-width", s.t = d), s;
528
528
  }, {
529
529
  e: void 0,
530
530
  t: void 0
531
531
  }), o;
532
532
  })();
533
- })(), null), h(r, (() => {
534
- var a = E(() => !!e.action);
533
+ })(), null), b(n, (() => {
534
+ var a = _(() => !!t.action);
535
535
  return () => a() && (() => {
536
- var o = ct();
537
- return h(o, () => e.action), o;
536
+ var o = de();
537
+ return b(o, () => t.action), o;
538
538
  })();
539
539
  })(), null), z((a) => {
540
- var o = S("flex h-full w-full", n() ? "flex-row items-center justify-start" : "flex-col items-center justify-center text-center", e.class), s = I.S2(t.size()), l = I.container(t.size()), d = S("flex flex-col", n() ? "items-start text-left" : "items-center text-center"), c = I.S1(t.size());
541
- return o !== a.e && p(i, a.e = o), s !== a.t && M(i, "gap", a.t = s), l !== a.a && M(i, "padding", a.a = l), d !== a.o && p(r, a.o = d), c !== a.i && M(r, "gap", a.i = c), a;
540
+ var o = k("flex h-full w-full", r() ? "flex-row items-center justify-start" : "flex-col items-center justify-center text-center", t.class), s = W.S2(e.size()), l = W.container(e.size()), d = k("flex flex-col", r() ? "items-start text-left" : "items-center text-center"), c = W.S1(e.size());
541
+ return o !== a.e && S(i, a.e = o), s !== a.t && M(i, "gap", a.t = s), l !== a.a && M(i, "padding", a.a = l), d !== a.o && S(n, a.o = d), c !== a.i && M(n, "gap", a.i = c), a;
542
542
  }, {
543
543
  e: void 0,
544
544
  t: void 0,
@@ -548,117 +548,117 @@ function ut(e) {
548
548
  }), i;
549
549
  })();
550
550
  }
551
- function dt(e) {
552
- const t = e.match(/hsl\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?\s*\)/);
553
- return t ? { h: Number(t[1]), s: Number(t[2]), l: Number(t[3]) } : null;
554
- }
555
- function gt(e) {
556
- const t = e.match(/rgb\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)/);
557
- return t ? Me(Number(t[1]), Number(t[2]), Number(t[3])) : null;
558
- }
559
- function mt(e) {
560
- const t = e.match(/^#([0-9a-f]{3,8})$/i);
561
- if (!t) return null;
562
- let n = t[1];
563
- n.length === 3 && (n = n[0] + n[0] + n[1] + n[1] + n[2] + n[2]);
564
- const i = Number.parseInt(n.slice(0, 2), 16), r = Number.parseInt(n.slice(2, 4), 16), a = Number.parseInt(n.slice(4, 6), 16);
565
- return Me(i, r, a);
566
- }
567
- function Me(e, t, n) {
568
- e /= 255, t /= 255, n /= 255;
569
- const i = Math.max(e, t, n), r = Math.min(e, t, n), a = (i + r) / 2;
570
- if (i === r) return { h: 0, s: 0, l: a * 100 };
571
- const o = i - r, s = a > 0.5 ? o / (2 - i - r) : o / (i + r);
551
+ function me(t) {
552
+ const e = t.match(/hsl\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?\s*\)/);
553
+ return e ? { h: Number(e[1]), s: Number(e[2]), l: Number(e[3]) } : null;
554
+ }
555
+ function fe(t) {
556
+ const e = t.match(/rgb\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)/);
557
+ return e ? Dt(Number(e[1]), Number(e[2]), Number(e[3])) : null;
558
+ }
559
+ function he(t) {
560
+ const e = t.match(/^#([0-9a-f]{3,8})$/i);
561
+ if (!e) return null;
562
+ let r = e[1];
563
+ r.length === 3 && (r = r[0] + r[0] + r[1] + r[1] + r[2] + r[2]);
564
+ const i = Number.parseInt(r.slice(0, 2), 16), n = Number.parseInt(r.slice(2, 4), 16), a = Number.parseInt(r.slice(4, 6), 16);
565
+ return Dt(i, n, a);
566
+ }
567
+ function Dt(t, e, r) {
568
+ t /= 255, e /= 255, r /= 255;
569
+ const i = Math.max(t, e, r), n = Math.min(t, e, r), a = (i + n) / 2;
570
+ if (i === n) return { h: 0, s: 0, l: a * 100 };
571
+ const o = i - n, s = a > 0.5 ? o / (2 - i - n) : o / (i + n);
572
572
  let l = 0;
573
- return i === e ? l = ((t - n) / o + (t < n ? 6 : 0)) / 6 : i === t ? l = ((n - e) / o + 2) / 6 : l = ((e - t) / o + 4) / 6, { h: l * 360, s: s * 100, l: a * 100 };
573
+ return i === t ? l = ((e - r) / o + (e < r ? 6 : 0)) / 6 : i === e ? l = ((r - t) / o + 2) / 6 : l = ((t - e) / o + 4) / 6, { h: l * 360, s: s * 100, l: a * 100 };
574
574
  }
575
- function ft(e) {
576
- return dt(e) ?? gt(e) ?? mt(e);
575
+ function be(t) {
576
+ return me(t) ?? fe(t) ?? he(t);
577
577
  }
578
- function ye(e, t, n, i) {
579
- const r = Math.round(e), a = Math.round(Math.min(100, Math.max(0, t))), o = Math.round(Math.min(100, Math.max(0, n)));
580
- return i !== void 0 && i < 1 ? `hsla(${r}, ${a}%, ${o}%, ${i})` : `hsl(${r}, ${a}%, ${o}%)`;
578
+ function $t(t, e, r, i) {
579
+ const n = Math.round(t), a = Math.round(Math.min(100, Math.max(0, e))), o = Math.round(Math.min(100, Math.max(0, r)));
580
+ return i !== void 0 && i < 1 ? `hsla(${n}, ${a}%, ${o}%, ${i})` : `hsl(${n}, ${a}%, ${o}%)`;
581
581
  }
582
- function ht(e) {
583
- const t = ft(e);
584
- if (!t) return null;
585
- const { h: n, s: i, l: r } = t;
582
+ function xe(t) {
583
+ const e = be(t);
584
+ if (!e) return null;
585
+ const { h: r, s: i, l: n } = e;
586
586
  let a, o = Math.min(i + 10, 100);
587
- r < 25 ? (a = r + 12, o = Math.min(i + 15, 100)) : r < 40 ? a = Math.max(r - 8, 15) : a = Math.max(18, r * 0.3), i < 15 && (o = 10, a = Math.max(a, 20));
588
- const s = ye(n, o, a, 0.85), l = ye(n, Math.min(i, 90), Math.min(r, 55), 0.5);
587
+ n < 25 ? (a = n + 12, o = Math.min(i + 15, 100)) : n < 40 ? a = Math.max(n - 8, 15) : a = Math.max(18, n * 0.3), i < 15 && (o = 10, a = Math.max(a, 20));
588
+ const s = $t(r, o, a, 0.85), l = $t(r, Math.min(i, 90), Math.min(n, 55), 0.5);
589
589
  return { background: s, glow: l };
590
590
  }
591
- var xt = /* @__PURE__ */ w('<div><div class="flex items-center justify-center text-foreground">'), we = /* @__PURE__ */ w("<div>");
592
- function vt(e) {
593
- const t = G(), n = () => e.dynamicColor ? ht(e.dynamicColor) : null, i = () => !!n(), r = () => {
594
- const l = n();
591
+ var ve = /* @__PURE__ */ w('<div><div class="flex items-center justify-center text-foreground">'), pt = /* @__PURE__ */ w("<div>");
592
+ function ye(t) {
593
+ const e = I(), r = () => t.dynamicColor ? xe(t.dynamicColor) : null, i = () => !!r(), n = () => {
594
+ const l = r();
595
595
  if (l)
596
596
  return {
597
597
  "background-color": l.background
598
598
  };
599
599
  }, a = () => {
600
- const l = n();
600
+ const l = r();
601
601
  if (l)
602
602
  return {
603
603
  "box-shadow": `0 0 25px ${l.glow}`
604
604
  };
605
605
  }, o = () => {
606
606
  const l = {
607
- width: `${I.icon(t.size())}px`,
608
- height: `${I.icon(t.size())}px`,
607
+ width: `${W.icon(e.size())}px`,
608
+ height: `${W.icon(e.size())}px`,
609
609
  "border-radius": "var(--radius-sm, 12px)"
610
- }, d = r(), c = a();
610
+ }, d = n(), c = a();
611
611
  return d && Object.assign(l, d), c && Object.assign(l, c), l;
612
612
  }, s = (l, d, c) => {
613
- const b = {
614
- width: `${I.icon(t.size()) * 1.02}px`,
615
- height: `${I.icon(t.size()) * 1.02}px`,
613
+ const v = {
614
+ width: `${W.icon(e.size()) * 1.02}px`,
615
+ height: `${W.icon(e.size()) * 1.02}px`,
616
616
  "border-radius": "var(--radius-sm, 12px)",
617
- bottom: `${-I.icon(t.size()) * l}px`,
618
- right: `${-I.icon(t.size()) * (l * 0.71)}px`,
617
+ bottom: `${-W.icon(e.size()) * l}px`,
618
+ right: `${-W.icon(e.size()) * (l * 0.71)}px`,
619
619
  "z-index": d,
620
620
  opacity: c
621
- }, C = r();
622
- return C && Object.assign(b, C), b;
621
+ }, C = n();
622
+ return C && Object.assign(v, C), v;
623
623
  };
624
624
  return (() => {
625
- var l = xt(), d = l.firstChild;
626
- return h(l, (() => {
627
- var c = E(() => (e.entityCount ?? 1) >= 2);
625
+ var l = ve(), d = l.firstChild;
626
+ return b(l, (() => {
627
+ var c = _(() => (t.entityCount ?? 1) >= 2);
628
628
  return () => c() && (() => {
629
- var b = we();
629
+ var v = pt();
630
630
  return z((C) => {
631
- var f = S("absolute", !i() && (e.color ?? "bg-foreground/10")), v = s(0.14, -2, 0.45);
632
- return f !== C.e && p(b, C.e = f), C.t = oe(b, v, C.t), C;
631
+ var m = k("absolute", !i() && (t.color ?? "bg-foreground/10")), x = s(0.14, -2, 0.45);
632
+ return m !== C.e && S(v, C.e = m), C.t = ot(v, x, C.t), C;
633
633
  }, {
634
634
  e: void 0,
635
635
  t: void 0
636
- }), b;
636
+ }), v;
637
637
  })();
638
- })(), d), h(l, (() => {
639
- var c = E(() => (e.entityCount ?? 1) >= 3);
638
+ })(), d), b(l, (() => {
639
+ var c = _(() => (t.entityCount ?? 1) >= 3);
640
640
  return () => c() && (() => {
641
- var b = we();
641
+ var v = pt();
642
642
  return z((C) => {
643
- var f = S("absolute", !i() && (e.color ?? "bg-foreground/10")), v = s(0.28, -3, 0.2);
644
- return f !== C.e && p(b, C.e = f), C.t = oe(b, v, C.t), C;
643
+ var m = k("absolute", !i() && (t.color ?? "bg-foreground/10")), x = s(0.28, -3, 0.2);
644
+ return m !== C.e && S(v, C.e = m), C.t = ot(v, x, C.t), C;
645
645
  }, {
646
646
  e: void 0,
647
647
  t: void 0
648
- }), b;
648
+ }), v;
649
649
  })();
650
- })(), d), h(d, () => e.icon), z((c) => {
651
- var b = S(
650
+ })(), d), b(d, () => t.icon), z((c) => {
651
+ var v = k(
652
652
  "relative flex shrink-0 items-center justify-center transition-all",
653
653
  "pointer-events-none",
654
- e.dimmed && "opacity-50",
654
+ t.dimmed && "opacity-50",
655
655
  // Only apply Tailwind classes when not using dynamic colors
656
- !i() && e.glow && "shadow-[0_0_25px]",
657
- !i() && (e.color ?? "bg-foreground/10"),
658
- !i() && e.glow,
659
- e.class
660
- ), C = o(), f = `${I.iconSize(t.size())}px`;
661
- return b !== c.e && p(l, c.e = b), c.t = oe(l, C, c.t), f !== c.a && M(d, "font-size", c.a = f), c;
656
+ !i() && t.glow && "shadow-[0_0_25px_var(--tw-shadow-color,transparent)]",
657
+ !i() && (t.color ?? "bg-foreground/10"),
658
+ !i() && t.glow,
659
+ t.class
660
+ ), C = o(), m = `${W.iconSize(e.size())}px`;
661
+ return v !== c.e && S(l, c.e = v), c.t = ot(l, C, c.t), m !== c.a && M(d, "font-size", c.a = m), c;
662
662
  }, {
663
663
  e: void 0,
664
664
  t: void 0,
@@ -666,102 +666,102 @@ function vt(e) {
666
666
  }), l;
667
667
  })();
668
668
  }
669
- var bt = /* @__PURE__ */ w("<div>"), yt = /* @__PURE__ */ w("<div><div><span></span></div><div>"), wt = /* @__PURE__ */ w("<span class=shrink-0>"), $t = /* @__PURE__ */ w('<span class="ml-1 text-foreground/70">');
670
- function kt(e) {
671
- const t = G(), n = () => {
672
- const i = e.direction ?? "auto";
673
- return i === "auto" ? t.orientation() === "horizontal" ? "horizontal" : "vertical" : i;
669
+ var we = /* @__PURE__ */ w("<div>"), $e = /* @__PURE__ */ w("<div><div><span></span></div><div>"), pe = /* @__PURE__ */ w("<span class=shrink-0>"), ke = /* @__PURE__ */ w('<span class="ml-1 text-foreground/70">');
670
+ function Se(t) {
671
+ const e = I(), r = () => {
672
+ const i = t.direction ?? "auto";
673
+ return i === "auto" ? e.orientation() === "horizontal" ? "horizontal" : "vertical" : i;
674
674
  };
675
675
  return (() => {
676
- var i = bt();
677
- return h(i, () => e.children), z(() => p(i, S("flex", n() === "horizontal" ? "flex-row gap-4" : "flex-col gap-2", e.class))), i;
676
+ var i = we();
677
+ return b(i, () => t.children), z(() => S(i, k("flex", r() === "horizontal" ? "flex-row gap-4" : "flex-col gap-2", t.class))), i;
678
678
  })();
679
679
  }
680
- function St(e) {
681
- const t = G();
680
+ function Ce(t) {
681
+ const e = I();
682
682
  return (() => {
683
- var n = yt(), i = n.firstChild, r = i.firstChild, a = i.nextSibling;
684
- return h(i, (() => {
685
- var o = E(() => !!e.icon);
683
+ var r = $e(), i = r.firstChild, n = i.firstChild, a = i.nextSibling;
684
+ return b(i, (() => {
685
+ var o = _(() => !!t.icon);
686
686
  return () => o() && (() => {
687
- var s = wt();
688
- return h(s, () => e.icon), s;
687
+ var s = pe();
688
+ return b(s, () => t.icon), s;
689
689
  })();
690
- })(), r), h(r, () => e.label), h(a, () => e.value, null), h(a, (() => {
691
- var o = E(() => !!e.unit);
690
+ })(), n), b(n, () => t.label), b(a, () => t.value, null), b(a, (() => {
691
+ var o = _(() => !!t.unit);
692
692
  return () => o() && (() => {
693
- var s = $t();
694
- return h(s, () => e.unit), s;
693
+ var s = ke();
694
+ return b(s, () => t.unit), s;
695
695
  })();
696
696
  })(), null), z((o) => {
697
- var s = S("flex flex-col", e.dimmed && "opacity-50", e.class), l = I.S1(t.size()), d = S("flex items-center gap-1 text-foreground/60", U.metricLabel(t.size())), c = S("font-semibold text-foreground", U.metricValue(t.size()));
698
- return s !== o.e && p(n, o.e = s), l !== o.t && M(n, "gap", o.t = l), d !== o.a && p(i, o.a = d), c !== o.o && p(a, o.o = c), o;
697
+ var s = k("flex flex-col", t.dimmed && "opacity-50", t.class), l = W.S1(e.size()), d = k("flex items-center gap-1 text-foreground/60", F.metricLabel(e.size())), c = k("font-semibold text-foreground", F.metricValue(e.size()));
698
+ return s !== o.e && S(r, o.e = s), l !== o.t && M(r, "gap", o.t = l), d !== o.a && S(i, o.a = d), c !== o.o && S(a, o.o = c), o;
699
699
  }, {
700
700
  e: void 0,
701
701
  t: void 0,
702
702
  a: void 0,
703
703
  o: void 0
704
- }), n;
704
+ }), r;
705
705
  })();
706
706
  }
707
- const ze = kt;
708
- ze.Item = St;
709
- var pt = /* @__PURE__ */ w("<p>");
710
- function Ct(e) {
711
- const t = G();
707
+ const _t = Se;
708
+ _t.Item = Ce;
709
+ var Me = /* @__PURE__ */ w("<p>");
710
+ function ze(t) {
711
+ const e = I();
712
712
  return (() => {
713
- var n = pt();
714
- return h(n, (() => {
715
- var i = E(() => !!e.isUnavailable);
716
- return () => i() ? "Unavailable" : e.children;
713
+ var r = Me();
714
+ return b(r, (() => {
715
+ var i = _(() => !!t.isUnavailable);
716
+ return () => i() ? "Unavailable" : t.children;
717
717
  })()), z((i) => {
718
- var r = S("relative font-bold text-foreground", e.dimmed && "opacity-40", U.status(t.size()), e.class), a = Y.ACTIONS;
719
- return r !== i.e && p(n, i.e = r), a !== i.t && M(n, "z-index", i.t = a), i;
718
+ var n = k("relative font-bold text-foreground", t.dimmed && "opacity-40", F.status(e.size()), t.class), a = U.ACTIONS;
719
+ return n !== i.e && S(r, i.e = n), a !== i.t && M(r, "z-index", i.t = a), i;
720
720
  }, {
721
721
  e: void 0,
722
722
  t: void 0
723
- }), n;
723
+ }), r;
724
724
  })();
725
725
  }
726
- var Mt = /* @__PURE__ */ w("<p>");
727
- function zt(e) {
728
- const t = G();
726
+ var De = /* @__PURE__ */ w("<p>");
727
+ function _e(t) {
728
+ const e = I();
729
729
  return (() => {
730
- var n = Mt();
731
- return h(n, () => e.children), z(() => p(n, S("truncate font-medium text-foreground/80", e.dimmed && "text-foreground/50", U.subtitle(t.size()), e.class))), n;
730
+ var r = De();
731
+ return b(r, () => t.children), z(() => S(r, k("truncate font-medium text-foreground/80", t.dimmed && "text-foreground/50", F.subtitle(e.size()), t.class))), r;
732
732
  })();
733
733
  }
734
- var Dt = /* @__PURE__ */ w("<div><h3>"), _t = /* @__PURE__ */ w("<span>");
735
- function Et(e) {
736
- const t = G();
734
+ var Ee = /* @__PURE__ */ w("<div><h3>"), Ne = /* @__PURE__ */ w("<span>");
735
+ function Oe(t) {
736
+ const e = I();
737
737
  return (() => {
738
- var n = Dt(), i = n.firstChild;
739
- return h(i, () => e.children), h(n, (() => {
740
- var r = E(() => e.badge !== void 0 && e.badge > 0);
741
- return () => r() && (() => {
742
- var a = _t();
743
- return h(a, () => e.badge), z(() => p(a, S("shrink-0 rounded-full bg-foreground/20 px-2 py-0.5 font-medium text-foreground", U.badge(t.size())))), a;
738
+ var r = Ee(), i = r.firstChild;
739
+ return b(i, () => t.children), b(r, (() => {
740
+ var n = _(() => t.badge !== void 0 && t.badge > 0);
741
+ return () => n() && (() => {
742
+ var a = Ne();
743
+ return b(a, () => t.badge), z(() => S(a, k("shrink-0 rounded-full bg-foreground/20 px-2 py-0.5 font-medium text-foreground", F.badge(e.size())))), a;
744
744
  })();
745
- })(), null), z((r) => {
746
- var a = S("relative flex items-center", e.class), o = I.S1(t.size()), s = Y.ACTIONS, l = S("truncate text-foreground/60", U.title(t.size()));
747
- return a !== r.e && p(n, r.e = a), o !== r.t && M(n, "gap", r.t = o), s !== r.a && M(n, "z-index", r.a = s), l !== r.o && p(i, r.o = l), r;
745
+ })(), null), z((n) => {
746
+ var a = k("relative flex items-center", t.class), o = W.S1(e.size()), s = U.ACTIONS, l = k("truncate text-foreground/60", F.title(e.size()));
747
+ return a !== n.e && S(r, n.e = a), o !== n.t && M(r, "gap", n.t = o), s !== n.a && M(r, "z-index", n.a = s), l !== n.o && S(i, n.o = l), n;
748
748
  }, {
749
749
  e: void 0,
750
750
  t: void 0,
751
751
  a: void 0,
752
752
  o: void 0
753
- }), n;
753
+ }), r;
754
754
  })();
755
755
  }
756
- function Pn(e) {
756
+ function Bn(t) {
757
757
  return {
758
- icon: e.icon,
759
- title: e.title,
760
- message: e.message || `Configure this widget to add ${e.entityType || "an entity"}`
758
+ icon: t.icon,
759
+ title: t.title,
760
+ message: t.message || `Configure this widget to add ${t.entityType || "an entity"}`
761
761
  };
762
762
  }
763
- function At(e, t = !1) {
764
- if (e.length === 0)
763
+ function Te(t, e = !1) {
764
+ if (t.length === 0)
765
765
  return {
766
766
  isGroup: !1,
767
767
  state: "unknown",
@@ -774,31 +774,31 @@ function At(e, t = !1) {
774
774
  totalCount: 0,
775
775
  description: "No entities"
776
776
  };
777
- const n = e.length > 1;
778
- if (!n) {
779
- const O = e[0], P = O.state === "on", H = O.attributes?.brightness || 0, m = Math.round(H / 255 * 100);
777
+ const r = t.length > 1;
778
+ if (!r) {
779
+ const $ = t[0], O = $.state === "on", H = $.attributes?.brightness || 0, f = Math.round(H / 255 * 100);
780
780
  return {
781
781
  isGroup: !1,
782
- state: O.state,
783
- isOn: P,
784
- isUnavailable: O.state === "unavailable",
782
+ state: $.state,
783
+ isOn: O,
784
+ isUnavailable: $.state === "unavailable",
785
785
  brightness: H,
786
- brightnessPercent: m,
787
- color: $e(O),
788
- onCount: P ? 1 : 0,
786
+ brightnessPercent: f,
787
+ color: kt($),
788
+ onCount: O ? 1 : 0,
789
789
  totalCount: 1,
790
- description: P ? "On" : "Off"
790
+ description: O ? "On" : "Off"
791
791
  };
792
792
  }
793
- let i = 0, r = 0, a = 0, o = 0, s = 0, l = 0;
793
+ let i = 0, n = 0, a = 0, o = 0, s = 0, l = 0;
794
794
  const d = [];
795
- for (const O of e)
796
- switch (O.state) {
795
+ for (const $ of t)
796
+ switch ($.state) {
797
797
  case "on":
798
- i++, O.attributes?.brightness !== void 0 && (s += O.attributes.brightness, l++), O.attributes?.rgb_color && d.push(O.attributes.rgb_color);
798
+ i++, $.attributes?.brightness !== void 0 && (s += $.attributes.brightness, l++), $.attributes?.rgb_color && d.push($.attributes.rgb_color);
799
799
  break;
800
800
  case "off":
801
- r++;
801
+ n++;
802
802
  break;
803
803
  case "unknown":
804
804
  a++;
@@ -807,32 +807,32 @@ function At(e, t = !1) {
807
807
  o++;
808
808
  break;
809
809
  }
810
- const c = e.length, b = o === c, C = a + o === c, f = i > 0, v = i === c, V = r === c;
811
- let N, R;
812
- t ? b ? (N = "unavailable", R = !1) : a > 0 || o > 0 ? (N = "unknown", R = !1) : r > 0 ? (N = "off", R = !1) : (N = "on", R = !0) : b ? (N = "unavailable", R = !1) : C ? (N = "unknown", R = !1) : f ? (N = "on", R = !0) : (N = "off", R = !1);
813
- const x = l > 0 ? Math.round(s / l) : 0, y = Math.round(x / 255 * 100);
814
- let $;
810
+ const c = t.length, v = o === c, C = a + o === c, m = i > 0, x = i === c, V = n === c;
811
+ let E, R;
812
+ e ? v ? (E = "unavailable", R = !1) : a > 0 || o > 0 ? (E = "unknown", R = !1) : n > 0 ? (E = "off", R = !1) : (E = "on", R = !0) : v ? (E = "unavailable", R = !1) : C ? (E = "unknown", R = !1) : m ? (E = "on", R = !0) : (E = "off", R = !1);
813
+ const K = l > 0 ? Math.round(s / l) : 0, B = Math.round(K / 255 * 100);
814
+ let h;
815
815
  if (d.length > 0) {
816
- const O = Math.round(d.reduce((u, W) => u + W[0], 0) / d.length), P = Math.round(d.reduce((u, W) => u + W[1], 0) / d.length), H = Math.round(d.reduce((u, W) => u + W[2], 0) / d.length), m = x / 255;
817
- $ = `rgb(${Math.round(O * m)}, ${Math.round(P * m)}, ${Math.round(H * m)})`;
816
+ const $ = Math.round(d.reduce((u, A) => u + A[0], 0) / d.length), O = Math.round(d.reduce((u, A) => u + A[1], 0) / d.length), H = Math.round(d.reduce((u, A) => u + A[2], 0) / d.length), f = K / 255;
817
+ h = `rgb(${Math.round($ * f)}, ${Math.round(O * f)}, ${Math.round(H * f)})`;
818
818
  } else
819
- $ = $e(e[0]);
820
- let D;
821
- return v ? D = "All on" : V ? D = "All off" : i > 0 ? D = `${i} of ${c} on` : D = "Off", {
822
- isGroup: n,
823
- state: N,
819
+ h = kt(t[0]);
820
+ let y;
821
+ return x ? y = "All on" : V ? y = "All off" : i > 0 ? y = `${i} of ${c} on` : y = "Off", {
822
+ isGroup: r,
823
+ state: E,
824
824
  isOn: R,
825
- isUnavailable: N === "unavailable",
826
- brightness: x,
827
- brightnessPercent: y,
828
- color: $,
825
+ isUnavailable: E === "unavailable",
826
+ brightness: K,
827
+ brightnessPercent: B,
828
+ color: h,
829
829
  onCount: i,
830
830
  totalCount: c,
831
- description: D
831
+ description: y
832
832
  };
833
833
  }
834
- function Nt(e, t = "mean", n = !0) {
835
- if (e.length === 0)
834
+ function Ve(t, e = "mean", r = !0) {
835
+ if (t.length === 0)
836
836
  return {
837
837
  isGroup: !1,
838
838
  state: "unknown",
@@ -840,42 +840,42 @@ function Nt(e, t = "mean", n = !0) {
840
840
  isUnavailable: !0,
841
841
  description: "No entities"
842
842
  };
843
- const i = e.length > 1;
843
+ const i = t.length > 1;
844
844
  if (!i) {
845
- const f = e[0], v = Number.parseFloat(f.state);
846
- let V = f.state;
847
- return Number.isNaN(v) || (V = Number.isInteger(v) ? v.toString() : v.toFixed(1)), {
845
+ const m = t[0], x = Number.parseFloat(m.state);
846
+ let V = m.state;
847
+ return Number.isNaN(x) || (V = Number.isInteger(x) ? x.toString() : x.toFixed(1)), {
848
848
  isGroup: !1,
849
849
  state: V,
850
- numericValue: Number.isNaN(v) ? null : v,
851
- isUnavailable: f.state === "unavailable",
852
- unit: f.unitOfMeasurement ?? void 0,
850
+ numericValue: Number.isNaN(x) ? null : x,
851
+ isUnavailable: m.state === "unavailable",
852
+ unit: m.unitOfMeasurement ?? void 0,
853
853
  description: V
854
854
  };
855
855
  }
856
- const r = [], a = [];
856
+ const n = [], a = [];
857
857
  let o = 0, s;
858
- for (const f of e) {
859
- if (!s && f.unitOfMeasurement && (s = f.unitOfMeasurement), f.state === "unavailable") {
858
+ for (const m of t) {
859
+ if (!s && m.unitOfMeasurement && (s = m.unitOfMeasurement), m.state === "unavailable") {
860
860
  o++, a.push({
861
- entityId: f.id,
861
+ entityId: m.id,
862
862
  value: "unavailable",
863
- friendly_name: f.friendlyName
863
+ friendly_name: m.friendlyName
864
864
  });
865
865
  continue;
866
866
  }
867
- const v = Number.parseFloat(f.state);
868
- isNaN(v) ? n || a.push({
869
- entityId: f.id,
870
- value: f.state,
871
- friendly_name: f.friendlyName
872
- }) : (r.push(v), a.push({
873
- entityId: f.id,
874
- value: v,
875
- friendly_name: f.friendlyName
867
+ const x = Number.parseFloat(m.state);
868
+ isNaN(x) ? r || a.push({
869
+ entityId: m.id,
870
+ value: m.state,
871
+ friendly_name: m.friendlyName
872
+ }) : (n.push(x), a.push({
873
+ entityId: m.id,
874
+ value: x,
875
+ friendly_name: m.friendlyName
876
876
  }));
877
877
  }
878
- const l = o === e.length, d = r.length === 0;
878
+ const l = o === t.length, d = n.length === 0;
879
879
  if (l || d)
880
880
  return {
881
881
  isGroup: i,
@@ -886,41 +886,41 @@ function Nt(e, t = "mean", n = !0) {
886
886
  description: l ? "Unavailable" : "No numeric values",
887
887
  memberValues: a
888
888
  };
889
- let c, b;
890
- switch (t) {
889
+ let c, v;
890
+ switch (e) {
891
891
  case "min":
892
- c = Math.min(...r), b = "Minimum";
892
+ c = Math.min(...n), v = "Minimum";
893
893
  break;
894
894
  case "max":
895
- c = Math.max(...r), b = "Maximum";
895
+ c = Math.max(...n), v = "Maximum";
896
896
  break;
897
897
  case "mean":
898
- c = r.reduce((f, v) => f + v, 0) / r.length, b = "Average";
898
+ c = n.reduce((m, x) => m + x, 0) / n.length, v = "Average";
899
899
  break;
900
900
  case "median": {
901
- const f = [...r].sort((V, N) => V - N), v = Math.floor(f.length / 2);
902
- c = f.length % 2 === 0 ? (f[v - 1] + f[v]) / 2 : f[v], b = "Median";
901
+ const m = [...n].sort((V, E) => V - E), x = Math.floor(m.length / 2);
902
+ c = m.length % 2 === 0 ? (m[x - 1] + m[x]) / 2 : m[x], v = "Median";
903
903
  break;
904
904
  }
905
905
  case "sum":
906
- c = r.reduce((f, v) => f + v, 0), b = "Sum";
906
+ c = n.reduce((m, x) => m + x, 0), v = "Sum";
907
907
  break;
908
908
  case "last":
909
- c = r[r.length - 1], b = "Latest";
909
+ c = n[n.length - 1], v = "Latest";
910
910
  break;
911
911
  case "range":
912
- c = Math.max(...r) - Math.min(...r), b = "Range";
912
+ c = Math.max(...n) - Math.min(...n), v = "Range";
913
913
  break;
914
914
  case "product":
915
- c = r.reduce((f, v) => f * v, 1), b = "Product";
915
+ c = n.reduce((m, x) => m * x, 1), v = "Product";
916
916
  break;
917
917
  case "std_dev": {
918
- const f = r.reduce((V, N) => V + N, 0) / r.length, v = r.reduce((V, N) => V + (N - f) ** 2, 0) / r.length;
919
- c = Math.sqrt(v), b = "Std Dev";
918
+ const m = n.reduce((V, E) => V + E, 0) / n.length, x = n.reduce((V, E) => V + (E - m) ** 2, 0) / n.length;
919
+ c = Math.sqrt(x), v = "Std Dev";
920
920
  break;
921
921
  }
922
922
  default:
923
- c = r.reduce((f, v) => f + v, 0) / r.length, b = "Average";
923
+ c = n.reduce((m, x) => m + x, 0) / n.length, v = "Average";
924
924
  }
925
925
  const C = Number.isInteger(c) ? c.toString() : c.toFixed(1);
926
926
  return {
@@ -929,266 +929,267 @@ function Nt(e, t = "mean", n = !0) {
929
929
  numericValue: c,
930
930
  isUnavailable: !1,
931
931
  unit: s,
932
- description: `${b} of ${r.length}`,
932
+ description: `${v} of ${n.length}`,
933
933
  memberValues: a
934
934
  };
935
935
  }
936
- function $e(e) {
937
- if (e.state !== "on") return "rgb(100, 100, 100)";
938
- const n = (e.attributes?.brightness ?? 255) / 255;
939
- if (e.attributes?.rgb_color) {
940
- const [i, r, a] = e.attributes.rgb_color;
941
- return `rgb(${Math.round(i * n)}, ${Math.round(r * n)}, ${Math.round(a * n)})`;
936
+ function kt(t) {
937
+ if (t.state !== "on") return "rgb(100, 100, 100)";
938
+ const r = (t.attributes?.brightness ?? 255) / 255;
939
+ if (t.attributes?.rgb_color) {
940
+ const [i, n, a] = t.attributes.rgb_color;
941
+ return `rgb(${Math.round(i * r)}, ${Math.round(n * r)}, ${Math.round(a * r)})`;
942
942
  }
943
- if (e.attributes?.color_temp) {
944
- const r = 1e6 / e.attributes.color_temp / 100;
943
+ if (t.attributes?.color_temp) {
944
+ const n = 1e6 / t.attributes.color_temp / 100;
945
945
  let a, o, s;
946
- return r <= 66 ? (a = 255, o = r <= 19 ? 0 : 99.4708025861 * Math.log(r - 10) - 161.1195681661, s = r <= 19 ? 0 : r <= 66 ? 138.5177312231 * Math.log(r - 10) - 305.0447927307 : 255) : (a = 329.698727446 * (r - 60) ** -0.1332047592, o = 288.1221695283 * (r - 60) ** -0.0755148492, s = 255), a = Math.max(0, Math.min(255, a)) * n, o = Math.max(0, Math.min(255, o)) * n, s = Math.max(0, Math.min(255, s)) * n, `rgb(${Math.round(a)}, ${Math.round(o)}, ${Math.round(s)})`;
946
+ return n <= 66 ? (a = 255, o = n <= 19 ? 0 : 99.4708025861 * Math.log(n - 10) - 161.1195681661, s = n <= 19 ? 0 : n <= 66 ? 138.5177312231 * Math.log(n - 10) - 305.0447927307 : 255) : (a = 329.698727446 * (n - 60) ** -0.1332047592, o = 288.1221695283 * (n - 60) ** -0.0755148492, s = 255), a = Math.max(0, Math.min(255, a)) * r, o = Math.max(0, Math.min(255, o)) * r, s = Math.max(0, Math.min(255, s)) * r, `rgb(${Math.round(a)}, ${Math.round(o)}, ${Math.round(s)})`;
947
947
  }
948
- return `rgb(${Math.round(255 * n)}, ${Math.round(220 * n)}, ${Math.round(180 * n)})`;
948
+ return `rgb(${Math.round(255 * r)}, ${Math.round(220 * r)}, ${Math.round(180 * r)})`;
949
949
  }
950
- function Ot(e) {
951
- return e ? e.state !== "unavailable" && e.state !== "unknown" : !1;
950
+ function Ae(t) {
951
+ return t ? t.state !== "unavailable" && t.state !== "unknown" : !1;
952
952
  }
953
- function Tt(e) {
954
- if (!e) return !1;
955
- if (["on", "open", "locked", "home", "playing", "active"].includes(e.state))
953
+ function We(t) {
954
+ if (!t) return !1;
955
+ if (["on", "open", "locked", "home", "playing", "active"].includes(t.state))
956
956
  return !0;
957
- if (e.domain === "sensor") {
958
- const t = Number.parseFloat(e.state);
959
- return !isNaN(t) && t > 0;
957
+ if (t.domain === "sensor") {
958
+ const e = Number.parseFloat(t.state);
959
+ return !isNaN(e) && e > 0;
960
960
  }
961
961
  return !1;
962
962
  }
963
- function Hn(e, t = "unknown") {
964
- return e?.state ?? t;
963
+ function jn(t, e = "unknown") {
964
+ return t?.state ?? e;
965
965
  }
966
- function Bn(e, t, n) {
967
- return e?.attributes ? e.attributes[t] ?? n : n;
966
+ function Fn(t, e, r) {
967
+ return t?.attributes ? t.attributes[e] ?? r : r;
968
968
  }
969
- function Ln(e, t) {
970
- return e.filter((n) => n.state === t).length;
969
+ function Un(t, e) {
970
+ return t.filter((r) => r.state === e).length;
971
971
  }
972
- function jn(e) {
973
- return e.filter(Ot).length;
972
+ function Yn(t) {
973
+ return t.filter(Ae).length;
974
974
  }
975
- function Fn(e) {
976
- return e.filter(Tt).length;
975
+ function Kn(t) {
976
+ return t.filter(We).length;
977
977
  }
978
- function Un(e, t) {
979
- return e.length > 0 && e.every((n) => n.state === t);
978
+ function qn(t, e) {
979
+ return t.length > 0 && t.every((r) => r.state === e);
980
980
  }
981
- function Yn(e, t) {
982
- return e.some((n) => n.state === t);
981
+ function Xn(t, e) {
982
+ return t.some((r) => r.state === e);
983
983
  }
984
- function Vt(e, t, n) {
985
- const { decimals: i, scale: r = !0 } = n || {};
986
- if (typeof e == "string")
987
- return t ? `${e}${t}` : e;
988
- if (e == null || Number.isNaN(e))
989
- return t ? `--${t}` : "--";
990
- let a = e, o = t || "";
991
- r && t && (t === "W" || t === "kW" || t === "MW") && (e >= 1e6 ? (a = e / 1e6, o = "MW") : e >= 1e3 ? (a = e / 1e3, o = "kW") : o = "W"), r && t && (t === "B" || t === "KB" || t === "MB" || t === "GB") && (e >= 1073741824 ? (a = e / 1073741824, o = "GB") : e >= 1048576 ? (a = e / 1048576, o = "MB") : e >= 1024 ? (a = e / 1024, o = "KB") : o = "B");
984
+ function Re(t, e, r) {
985
+ const { decimals: i, scale: n = !0 } = r || {};
986
+ if (typeof t == "string")
987
+ return e ? `${t}${e}` : t;
988
+ if (t == null || Number.isNaN(t))
989
+ return e ? `--${e}` : "--";
990
+ let a = t, o = e || "";
991
+ n && e && (e === "W" || e === "kW" || e === "MW") && (t >= 1e6 ? (a = t / 1e6, o = "MW") : t >= 1e3 ? (a = t / 1e3, o = "kW") : o = "W"), n && e && (e === "B" || e === "KB" || e === "MB" || e === "GB") && (t >= 1073741824 ? (a = t / 1073741824, o = "GB") : t >= 1048576 ? (a = t / 1048576, o = "MB") : t >= 1024 ? (a = t / 1024, o = "KB") : o = "B");
992
992
  let s;
993
- return i !== void 0 ? s = a.toFixed(i) : a !== e ? s = a.toFixed(1) : Number.isInteger(e) ? s = e.toString() : s = Number.parseFloat(e.toFixed(2)).toString(), o ? `${s}${o}` : s;
993
+ return i !== void 0 ? s = a.toFixed(i) : a !== t ? s = a.toFixed(1) : Number.isInteger(t) ? s = t.toString() : s = Number.parseFloat(t.toFixed(2)).toString(), o ? `${s}${o}` : s;
994
994
  }
995
- function Wt(e, t) {
996
- return e == null || isNaN(e) ? null : t === "°C" ? e < 10 ? "Cold" : e < 18 ? "Cool" : e < 24 ? "Comfortable" : e < 28 ? "Warm" : "Hot" : t === "°F" ? e < 50 ? "Cold" : e < 64 ? "Cool" : e < 75 ? "Comfortable" : e < 82 ? "Warm" : "Hot" : t === "%" ? e < 20 ? "Very Low" : e < 40 ? "Low" : e < 60 ? "Medium" : e < 80 ? "High" : "Very High" : t === "ppm" ? e < 400 ? "Excellent" : e < 600 ? "Good" : e < 1e3 ? "Acceptable" : e < 1500 ? "Mediocre" : "Poor" : t === "lx" ? e < 50 ? "Dark" : e < 200 ? "Dim" : e < 500 ? "Moderate" : e < 1e3 ? "Bright" : "Very Bright" : t === "AQI" ? e <= 50 ? "Good" : e <= 100 ? "Moderate" : e <= 150 ? "Unhealthy for Sensitive" : e <= 200 ? "Unhealthy" : e <= 300 ? "Very Unhealthy" : "Hazardous" : t === "dB" ? e < 30 ? "Very Quiet" : e < 50 ? "Quiet" : e < 70 ? "Moderate" : e < 85 ? "Loud" : "Very Loud" : null;
995
+ function Ie(t, e) {
996
+ return t == null || isNaN(t) ? null : e === "°C" ? t < 10 ? "Cold" : t < 18 ? "Cool" : t < 24 ? "Comfortable" : t < 28 ? "Warm" : "Hot" : e === "°F" ? t < 50 ? "Cold" : t < 64 ? "Cool" : t < 75 ? "Comfortable" : t < 82 ? "Warm" : "Hot" : e === "%" ? t < 20 ? "Very Low" : t < 40 ? "Low" : t < 60 ? "Medium" : t < 80 ? "High" : "Very High" : e === "ppm" ? t < 400 ? "Excellent" : t < 600 ? "Good" : t < 1e3 ? "Acceptable" : t < 1500 ? "Mediocre" : "Poor" : e === "lx" ? t < 50 ? "Dark" : t < 200 ? "Dim" : t < 500 ? "Moderate" : t < 1e3 ? "Bright" : "Very Bright" : e === "AQI" ? t <= 50 ? "Good" : t <= 100 ? "Moderate" : t <= 150 ? "Unhealthy for Sensitive" : t <= 200 ? "Unhealthy" : t <= 300 ? "Very Unhealthy" : "Hazardous" : e === "dB" ? t < 30 ? "Very Quiet" : t < 50 ? "Quiet" : t < 70 ? "Moderate" : t < 85 ? "Loud" : "Very Loud" : null;
997
997
  }
998
- var It = /* @__PURE__ */ w("<div><div>"), Rt = /* @__PURE__ */ w("<div>");
999
- function Gt(e) {
1000
- const t = G();
998
+ var He = /* @__PURE__ */ w("<div><div>"), Ge = /* @__PURE__ */ w("<div>");
999
+ function Pe(t) {
1000
+ const e = I();
1001
1001
  return (() => {
1002
- var n = It(), i = n.firstChild;
1003
- return h(i, () => Vt(e.value, e.unit)), h(n, (() => {
1004
- var r = E(() => !!(e.interpret && typeof e.value == "number"));
1005
- return () => r() && (() => {
1006
- var a = Rt();
1007
- return h(a, () => Wt(e.value, e.unit)), z((o) => {
1008
- var s = S("text-foreground/60", U.subtitle(t.size())), l = I.S1(t.size());
1009
- return s !== o.e && p(a, o.e = s), l !== o.t && M(a, "margin-top", o.t = l), o;
1002
+ var r = He(), i = r.firstChild;
1003
+ return b(i, () => Re(t.value, t.unit)), b(r, (() => {
1004
+ var n = _(() => !!(t.interpret && typeof t.value == "number"));
1005
+ return () => n() && (() => {
1006
+ var a = Ge();
1007
+ return b(a, () => Ie(t.value, t.unit)), z((o) => {
1008
+ var s = k("text-foreground/60", F.subtitle(e.size())), l = W.S1(e.size());
1009
+ return s !== o.e && S(a, o.e = s), l !== o.t && M(a, "margin-top", o.t = l), o;
1010
1010
  }, {
1011
1011
  e: void 0,
1012
1012
  t: void 0
1013
1013
  }), a;
1014
1014
  })();
1015
- })(), null), z((r) => {
1016
- var a = S("flex flex-col", e.class), o = S("font-bold text-foreground", U.value(t.size()));
1017
- return a !== r.e && p(n, r.e = a), o !== r.t && p(i, r.t = o), r;
1015
+ })(), null), z((n) => {
1016
+ var a = k("flex flex-col", t.class), o = k("font-bold text-foreground", F.value(e.size()));
1017
+ return a !== n.e && S(r, n.e = a), o !== n.t && S(i, n.t = o), n;
1018
1018
  }, {
1019
1019
  e: void 0,
1020
1020
  t: void 0
1021
- }), n;
1021
+ }), r;
1022
1022
  })();
1023
1023
  }
1024
- var Pt = /* @__PURE__ */ w('<div><div><div class="relative h-full w-full">'), Ht = /* @__PURE__ */ w('<div class="pointer-events-none absolute inset-0"><div>'), Bt = /* @__PURE__ */ w('<div class="pointer-events-none absolute inset-0 animate-pulse bg-blue-500/20">'), Lt = /* @__PURE__ */ w('<div class="flex h-full w-full flex-col items-center justify-center gap-2 text-center">'), jt = /* @__PURE__ */ w('<div class="flex items-center justify-center text-white/30">'), Ft = /* @__PURE__ */ w('<h3 class="font-semibold text-sm text-white/60">'), Ut = /* @__PURE__ */ w('<p class="text-white/50 text-xs">');
1025
- function Yt(e, t) {
1026
- const n = e * t;
1027
- return n <= 2 ? "xs" : n <= 4 ? "sm" : n <= 8 ? "md" : n <= 18 ? "lg" : "xl";
1024
+ var Le = /* @__PURE__ */ w('<div><div><div class="relative h-full w-full">'), Be = /* @__PURE__ */ w('<div class="pointer-events-none absolute inset-0"><div>'), je = /* @__PURE__ */ w('<div class="pointer-events-none absolute inset-0 animate-pulse bg-blue-500/20">'), Fe = /* @__PURE__ */ w('<div class="flex h-full w-full flex-col items-center justify-center gap-2 text-center">'), Ue = /* @__PURE__ */ w('<div class="flex items-center justify-center text-white/30">'), Ye = /* @__PURE__ */ w('<h3 class="font-semibold text-sm text-white/60">'), Ke = /* @__PURE__ */ w('<p class="text-white/50 text-xs">');
1025
+ function qe(t, e) {
1026
+ const r = t * e;
1027
+ return r <= 2 ? "xs" : r <= 4 ? "sm" : r <= 8 ? "md" : r <= 18 ? "lg" : "xl";
1028
1028
  }
1029
- function Xt(e, t) {
1030
- return e > t ? "horizontal" : t > e ? "vertical" : "square";
1029
+ function Xe(t, e) {
1030
+ return t > e ? "horizontal" : e > t ? "vertical" : "square";
1031
1031
  }
1032
- function Kt(e, t) {
1033
- return t >= 150 ? "vertical" : e > t ? "horizontal" : t > e ? "vertical" : "square";
1032
+ function Je(t, e) {
1033
+ return e >= 150 ? "vertical" : t > e ? "horizontal" : e > t ? "vertical" : "square";
1034
1034
  }
1035
- function qt(e) {
1036
- let t;
1037
- const n = We(() => t), i = 2, [r, a] = F(0), [o, s] = F(0);
1038
- K(() => {
1039
- const m = Math.round(n.width ?? 0), u = Math.round(n.height ?? 0), W = ve(r), k = ve(o);
1040
- (Math.abs(m - W) > i || Math.abs(u - k) > i) && (a(m), s(u));
1035
+ function Ze(t) {
1036
+ let e;
1037
+ const r = It(() => e), i = 2, [n, a] = j(0), [o, s] = j(0);
1038
+ q(() => {
1039
+ const f = Math.round(r.width ?? 0), u = Math.round(r.height ?? 0), A = yt(n), p = yt(o);
1040
+ (Math.abs(f - A) > i || Math.abs(u - p) > i) && (a(f), s(u));
1041
1041
  });
1042
- const l = A(() => {
1043
- if (e.variant)
1044
- return typeof e.variant == "string" ? Ue(e.variant) : e.variant;
1045
- }), d = A(() => ({
1046
- width: r(),
1042
+ const l = N(() => {
1043
+ if (t.variant)
1044
+ return typeof t.variant == "string" ? Kt(t.variant) : t.variant;
1045
+ }), d = N(() => ({
1046
+ width: n(),
1047
1047
  height: o(),
1048
- gridWidth: Math.max(1, Math.round(r() / 150)),
1048
+ gridWidth: Math.max(1, Math.round(n() / 150)),
1049
1049
  gridHeight: Math.max(1, Math.round(o() / 75))
1050
1050
  }), void 0, {
1051
- equals: (m, u) => m.width === u.width && m.height === u.height && m.gridWidth === u.gridWidth && m.gridHeight === u.gridHeight
1052
- }), c = A(() => {
1053
- const m = d();
1054
- return Yt(m.gridWidth, m.gridHeight);
1055
- }), b = A(() => {
1056
- const m = d();
1057
- return Xt(m.width, m.height);
1058
- }), C = A(() => {
1059
- const m = d();
1060
- return Kt(m.width, m.height);
1061
- }), f = Se(me), v = f;
1062
- v?._isStub?.() && v._bridge && (K(() => {
1063
- v._bridge.setSize(c());
1064
- }), K(() => {
1065
- v._bridge.setOrientation(b());
1066
- }), K(() => {
1067
- v._bridge.setContentLayout(C());
1068
- }), K(() => {
1069
- v._bridge.setDimensions(d());
1070
- }), K(() => {
1071
- v._bridge.setIsStub(!1);
1051
+ equals: (f, u) => f.width === u.width && f.height === u.height && f.gridWidth === u.gridWidth && f.gridHeight === u.gridHeight
1052
+ }), c = N(() => {
1053
+ const f = d();
1054
+ return qe(f.gridWidth, f.gridHeight);
1055
+ }), v = N(() => {
1056
+ const f = d();
1057
+ return Xe(f.width, f.height);
1058
+ }), C = N(() => {
1059
+ const f = d();
1060
+ return Je(f.width, f.height);
1061
+ }), m = Ct(ht), x = m;
1062
+ x?._isStub?.() && x._bridge && (q(() => {
1063
+ x._bridge.setSize(c());
1064
+ }), q(() => {
1065
+ x._bridge.setOrientation(v());
1066
+ }), q(() => {
1067
+ x._bridge.setContentLayout(C());
1068
+ }), q(() => {
1069
+ x._bridge.setDimensions(d());
1070
+ }), q(() => {
1071
+ x._bridge.setIsStub(!1);
1072
1072
  }));
1073
1073
  const V = {
1074
1074
  size: c,
1075
- orientation: b,
1075
+ orientation: v,
1076
1076
  contentLayout: C,
1077
1077
  dimensions: d,
1078
- isEditMode: () => e.isEditMode ?? !1,
1079
- updateConfig: f?.updateConfig ?? (() => {
1078
+ isEditMode: () => t.isEditMode ?? !1,
1079
+ updateConfig: m?.updateConfig ?? (() => {
1080
1080
  })
1081
- }, N = "bg-gradient-to-br from-gray-500/20 to-gray-600/20", R = A(() => e.emptyState && !e.gradient ? N : e.gradient), x = A(() => ({
1081
+ }, E = "bg-gradient-to-br from-gray-500/20 to-gray-600/20", R = N(() => t.emptyState && !t.gradient ? E : t.gradient), K = N(() => ({
1082
1082
  "container-type": "size",
1083
1083
  "container-name": "widget",
1084
+ "touch-action": t.gestures && !t.isEditMode ? t.gestures.touchAction() : void 0,
1084
1085
  ...l()?.styles?.container,
1085
1086
  ...l()?.styles?.cssVars || {}
1086
- })), y = () => !!e.gestures && !e.isEditMode, $ = (m) => {
1087
- y() && e.gestures?.onPointerEnter(m);
1088
- }, D = (m) => {
1089
- y() && e.gestures?.onPointerDown(m);
1090
- }, O = (m) => {
1091
- y() && e.gestures?.onPointerMove(m);
1092
- }, P = (m) => {
1093
- y() && e.gestures?.onPointerUp(m);
1094
- }, H = (m) => {
1095
- y() && e.gestures?.onPointerCancel(m);
1087
+ })), B = () => !!t.gestures && !t.isEditMode, h = (f) => {
1088
+ B() && t.gestures?.onPointerEnter(f);
1089
+ }, y = (f) => {
1090
+ B() && t.gestures?.onPointerDown(f);
1091
+ }, $ = (f) => {
1092
+ B() && t.gestures?.onPointerMove(f);
1093
+ }, O = (f) => {
1094
+ B() && t.gestures?.onPointerUp(f);
1095
+ }, H = (f) => {
1096
+ B() && t.gestures?.onPointerCancel(f);
1096
1097
  };
1097
- return T(me.Provider, {
1098
+ return T(ht.Provider, {
1098
1099
  value: V,
1099
1100
  get children() {
1100
- var m = Pt(), u = m.firstChild, W = u.firstChild;
1101
- return ne(m, "pointercancel", H), ne(m, "pointerup", P), ne(m, "pointermove", O), ne(m, "pointerdown", D), ne(m, "pointerenter", $), Ne((k) => {
1102
- t = k, e.gestures?.bindElement(k);
1103
- }, m), h(u, (() => {
1104
- var k = E(() => !!e.backgroundGlow);
1105
- return () => k() && (() => {
1106
- var B = Ht(), Q = B.firstChild;
1107
- return z((L) => {
1108
- var J = Y.BACKGROUND, ue = S("absolute inset-0 opacity-20 blur-2xl", e.backgroundGlow);
1109
- return J !== L.e && M(B, "z-index", L.e = J), ue !== L.t && p(Q, L.t = ue), L;
1101
+ var f = Le(), u = f.firstChild, A = u.firstChild;
1102
+ return nt(f, "pointercancel", H), nt(f, "pointerup", O), nt(f, "pointermove", $), nt(f, "pointerdown", y), nt(f, "pointerenter", h), Vt((p) => {
1103
+ e = p, t.gestures?.bindElement(p);
1104
+ }, f), b(u, (() => {
1105
+ var p = _(() => !!t.backgroundGlow);
1106
+ return () => p() && (() => {
1107
+ var G = Be(), Q = G.firstChild;
1108
+ return z((P) => {
1109
+ var J = U.BACKGROUND, ut = k("absolute inset-0 opacity-20 blur-2xl", t.backgroundGlow);
1110
+ return J !== P.e && M(G, "z-index", P.e = J), ut !== P.t && S(Q, P.t = ut), P;
1110
1111
  }, {
1111
1112
  e: void 0,
1112
1113
  t: void 0
1113
- }), B;
1114
+ }), G;
1114
1115
  })();
1115
- })(), W), h(W, (() => {
1116
- var k = E(() => !!e.emptyState);
1117
- return () => k() ? T(Jt, {
1116
+ })(), A), b(A, (() => {
1117
+ var p = _(() => !!t.emptyState);
1118
+ return () => p() ? T(Qe, {
1118
1119
  get icon() {
1119
- return e.emptyState.icon;
1120
+ return t.emptyState.icon;
1120
1121
  },
1121
1122
  get title() {
1122
- return e.emptyState.title;
1123
+ return t.emptyState.title;
1123
1124
  },
1124
1125
  get message() {
1125
- return e.emptyState.message;
1126
+ return t.emptyState.message;
1126
1127
  }
1127
- }) : e.children;
1128
- })()), h(u, (() => {
1129
- var k = E(() => !!e.loading);
1130
- return () => k() && (() => {
1131
- var B = Bt();
1132
- return z((Q) => M(B, "z-index", Y.OVERLAY)), B;
1128
+ }) : t.children;
1129
+ })()), b(u, (() => {
1130
+ var p = _(() => !!t.loading);
1131
+ return () => p() && (() => {
1132
+ var G = je();
1133
+ return z((Q) => M(G, "z-index", U.OVERLAY)), G;
1133
1134
  })();
1134
- })(), null), z((k) => {
1135
- var B = S(
1135
+ })(), null), z((p) => {
1136
+ var G = k(
1136
1137
  "relative h-full w-full select-none rounded-xl border border-border/50",
1137
1138
  // Variant styles (lowest priority)
1138
1139
  l()?.styles?.class,
1139
1140
  // Custom class (highest priority)
1140
- e.class
1141
- ), Q = x(), L = S(
1141
+ t.class
1142
+ ), Q = K(), P = k(
1142
1143
  "relative h-full w-full overflow-hidden rounded-xl",
1143
1144
  // Gradient prop (overrides variant, auto-applied for empty state)
1144
1145
  R()
1145
- ), J = Y.CONTENT;
1146
- return B !== k.e && p(m, k.e = B), k.t = oe(m, Q, k.t), L !== k.a && p(u, k.a = L), J !== k.o && M(W, "z-index", k.o = J), k;
1146
+ ), J = U.CONTENT;
1147
+ return G !== p.e && S(f, p.e = G), p.t = ot(f, Q, p.t), P !== p.a && S(u, p.a = P), J !== p.o && M(A, "z-index", p.o = J), p;
1147
1148
  }, {
1148
1149
  e: void 0,
1149
1150
  t: void 0,
1150
1151
  a: void 0,
1151
1152
  o: void 0
1152
- }), m;
1153
+ }), f;
1153
1154
  }
1154
1155
  });
1155
1156
  }
1156
- function Jt(e) {
1157
+ function Qe(t) {
1157
1158
  return (() => {
1158
- var t = Lt();
1159
- return h(t, (() => {
1160
- var n = E(() => !!e.icon);
1161
- return () => n() && (() => {
1162
- var i = jt();
1163
- return h(i, () => e.icon), i;
1159
+ var e = Fe();
1160
+ return b(e, (() => {
1161
+ var r = _(() => !!t.icon);
1162
+ return () => r() && (() => {
1163
+ var i = Ue();
1164
+ return b(i, () => t.icon), i;
1164
1165
  })();
1165
- })(), null), h(t, (() => {
1166
- var n = E(() => !!e.title);
1167
- return () => n() && (() => {
1168
- var i = Ft();
1169
- return h(i, () => e.title), i;
1166
+ })(), null), b(e, (() => {
1167
+ var r = _(() => !!t.title);
1168
+ return () => r() && (() => {
1169
+ var i = Ye();
1170
+ return b(i, () => t.title), i;
1170
1171
  })();
1171
- })(), null), h(t, (() => {
1172
- var n = E(() => !!e.message);
1173
- return () => n() && (() => {
1174
- var i = Ut();
1175
- return h(i, () => e.message), i;
1172
+ })(), null), b(e, (() => {
1173
+ var r = _(() => !!t.message);
1174
+ return () => r() && (() => {
1175
+ var i = Ke();
1176
+ return b(i, () => t.message), i;
1176
1177
  })();
1177
- })(), null), t;
1178
+ })(), null), e;
1178
1179
  })();
1179
1180
  }
1180
- const X = qt;
1181
- X.Content = it;
1182
- X.Icon = vt;
1183
- X.Title = Et;
1184
- X.Subtitle = zt;
1185
- X.Status = Ct;
1186
- X.Value = Gt;
1187
- X.Metrics = ze;
1188
- X.EmptyState = ut;
1189
- X.SliderFill = et;
1190
- var Zt = /* @__PURE__ */ w("<div><div>");
1191
- const Qt = {
1181
+ const Y = Ze;
1182
+ Y.Content = oe;
1183
+ Y.Icon = ye;
1184
+ Y.Title = Oe;
1185
+ Y.Subtitle = _e;
1186
+ Y.Status = ze;
1187
+ Y.Value = Pe;
1188
+ Y.Metrics = _t;
1189
+ Y.EmptyState = ge;
1190
+ Y.SliderFill = ne;
1191
+ var tn = /* @__PURE__ */ w("<div><div>");
1192
+ const en = {
1192
1193
  blue: "bg-blue-500/30",
1193
1194
  green: "bg-green-500/30",
1194
1195
  red: "bg-red-500/30",
@@ -1196,69 +1197,69 @@ const Qt = {
1196
1197
  purple: "bg-purple-500/30",
1197
1198
  gray: "bg-gray-500/30"
1198
1199
  };
1199
- function Xn(e) {
1200
- const t = () => Qt[e.color] ?? e.color;
1200
+ function Jn(t) {
1201
+ const e = () => en[t.color] ?? t.color;
1201
1202
  return (() => {
1202
- var n = Zt(), i = n.firstChild;
1203
- return z((r) => {
1204
- var a = S("pointer-events-none absolute inset-0", e.class), o = Y.BACKGROUND, s = S("absolute inset-0 opacity-40 blur-3xl", t());
1205
- return a !== r.e && p(n, r.e = a), o !== r.t && M(n, "z-index", r.t = o), s !== r.a && p(i, r.a = s), r;
1203
+ var r = tn(), i = r.firstChild;
1204
+ return z((n) => {
1205
+ var a = k("pointer-events-none absolute inset-0", t.class), o = U.BACKGROUND, s = k("absolute inset-0 opacity-40 blur-3xl", e());
1206
+ return a !== n.e && S(r, n.e = a), o !== n.t && M(r, "z-index", n.t = o), s !== n.a && S(i, n.a = s), n;
1206
1207
  }, {
1207
1208
  e: void 0,
1208
1209
  t: void 0,
1209
1210
  a: void 0
1210
- }), n;
1211
+ }), r;
1211
1212
  })();
1212
1213
  }
1213
- var en = /* @__PURE__ */ w("<div>");
1214
- function Kn(e) {
1215
- const t = G(), n = () => {
1216
- const i = e.spacing ?? "S2";
1217
- return I[i](t.size());
1214
+ var nn = /* @__PURE__ */ w("<div>");
1215
+ function Zn(t) {
1216
+ const e = I(), r = () => {
1217
+ const i = t.spacing ?? "S2";
1218
+ return W[i](e.size());
1218
1219
  };
1219
1220
  return (() => {
1220
- var i = en();
1221
- return h(i, () => e.children), z((r) => {
1222
- var a = S("flex flex-col", e.class), o = n();
1223
- return a !== r.e && p(i, r.e = a), o !== r.t && M(i, "gap", r.t = o), r;
1221
+ var i = nn();
1222
+ return b(i, () => t.children), z((n) => {
1223
+ var a = k("flex flex-col", t.class), o = r();
1224
+ return a !== n.e && S(i, n.e = a), o !== n.t && M(i, "gap", n.t = o), n;
1224
1225
  }, {
1225
1226
  e: void 0,
1226
1227
  t: void 0
1227
1228
  }), i;
1228
1229
  })();
1229
1230
  }
1230
- var tn = /* @__PURE__ */ w('<span class="inline-flex size-3.5 shrink-0 items-center">'), nn = /* @__PURE__ */ w("<button type=button>"), rn = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg class=size-3.5 fill=none viewBox="0 0 24 24"stroke=currentColor stroke-width=2><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z">'), an = /* @__PURE__ */ w('<div class="rounded-lg bg-muted/30 p-2 text-center md:p-6"><p class="text-muted-foreground text-sm">No edit options available'), on = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg class=size-3.5 fill=none viewBox="0 0 24 24"stroke=currentColor stroke-width=2><line x1=4 y1=21 x2=4 y2=14></line><line x1=4 y1=10 x2=4 y2=3></line><line x1=12 y1=21 x2=12 y2=12></line><line x1=12 y1=8 x2=12 y2=3></line><line x1=20 y1=21 x2=20 y2=16></line><line x1=20 y1=12 x2=20 y2=3></line><line x1=1 y1=14 x2=7 y2=14></line><line x1=9 y1=8 x2=15 y2=8></line><line x1=17 y1=16 x2=23 y2=16>'), sn = /* @__PURE__ */ w('<div class="rounded-lg bg-muted/30 p-2 text-center md:p-6"><p class="text-muted-foreground text-sm">No additional controls'), ln = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg class=size-3.5 fill=none viewBox="0 0 24 24"stroke=currentColor stroke-width=2><path d="m8 2 1.88 1.88"></path><path d="M14.12 3.88 16 2"></path><path d="M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"></path><path d="M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"></path><path d="M12 20v-9"></path><path d="M6.53 9C4.6 8.8 3 7.1 3 5"></path><path d="M6 13H2"></path><path d="M3 21c0-2.1 1.7-3.9 3.8-4"></path><path d="M20.97 5c0 2.1-1.6 3.8-3.5 4"></path><path d="M22 13h-4"></path><path d="M17.2 17c2.1.1 3.8 1.9 3.8 4">'), cn = /* @__PURE__ */ w('<div class="rounded-lg bg-muted/30 p-2 text-center md:p-6"><p class="text-muted-foreground text-sm">No debug information available'), un = /* @__PURE__ */ w('<div class="min-w-0 shrink-0">'), dn = /* @__PURE__ */ w('<div class="flex items-center gap-2"><div class="flex h-8 items-center rounded-lg border border-border/50 bg-muted/30 p-0.5">'), gn = /* @__PURE__ */ w('<div class="min-h-0 flex-1 overflow-y-auto [scrollbar-gutter:stable]">'), mn = /* @__PURE__ */ w('<div class="flex shrink-0 items-center justify-end gap-2 border-border/50 border-t pt-3">');
1231
- function fn(e) {
1231
+ var rn = /* @__PURE__ */ w('<span class="inline-flex size-3.5 shrink-0 items-center">'), an = /* @__PURE__ */ w("<button type=button>"), on = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg class=size-3.5 fill=none viewBox="0 0 24 24"stroke=currentColor stroke-width=2><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z">'), sn = /* @__PURE__ */ w('<div class="rounded-lg bg-muted/30 p-2 text-center md:p-6"><p class="text-muted-foreground text-sm">No edit options available'), ln = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg class=size-3.5 fill=none viewBox="0 0 24 24"stroke=currentColor stroke-width=2><line x1=4 y1=21 x2=4 y2=14></line><line x1=4 y1=10 x2=4 y2=3></line><line x1=12 y1=21 x2=12 y2=12></line><line x1=12 y1=8 x2=12 y2=3></line><line x1=20 y1=21 x2=20 y2=16></line><line x1=20 y1=12 x2=20 y2=3></line><line x1=1 y1=14 x2=7 y2=14></line><line x1=9 y1=8 x2=15 y2=8></line><line x1=17 y1=16 x2=23 y2=16>'), cn = /* @__PURE__ */ w('<div class="rounded-lg bg-muted/30 p-2 text-center md:p-6"><p class="text-muted-foreground text-sm">No additional controls'), un = /* @__PURE__ */ w('<svg xmlns=http://www.w3.org/2000/svg class=size-3.5 fill=none viewBox="0 0 24 24"stroke=currentColor stroke-width=2><path d="m8 2 1.88 1.88"></path><path d="M14.12 3.88 16 2"></path><path d="M9 7.13v-1a3.003 3.003 0 1 1 6 0v1"></path><path d="M12 20c-3.3 0-6-2.7-6-6v-3a4 4 0 0 1 4-4h4a4 4 0 0 1 4 4v3c0 3.3-2.7 6-6 6"></path><path d="M12 20v-9"></path><path d="M6.53 9C4.6 8.8 3 7.1 3 5"></path><path d="M6 13H2"></path><path d="M3 21c0-2.1 1.7-3.9 3.8-4"></path><path d="M20.97 5c0 2.1-1.6 3.8-3.5 4"></path><path d="M22 13h-4"></path><path d="M17.2 17c2.1.1 3.8 1.9 3.8 4">'), dn = /* @__PURE__ */ w('<div class="rounded-lg bg-muted/30 p-2 text-center md:p-6"><p class="text-muted-foreground text-sm">No debug information available'), gn = /* @__PURE__ */ w('<div class="min-w-0 shrink-0">'), mn = /* @__PURE__ */ w('<div class="flex items-center gap-2"><div class="flex h-8 items-center rounded-lg border border-border/50 bg-muted/30 p-0.5">'), fn = /* @__PURE__ */ w('<div class="min-h-0 flex-1 overflow-y-auto [scrollbar-gutter:stable]">'), hn = /* @__PURE__ */ w('<div class="flex shrink-0 items-center justify-end gap-2 border-border/50 border-t pt-3">');
1232
+ function bn(t) {
1232
1233
  return (() => {
1233
- var t = nn();
1234
- return t.$$click = () => e.onClick(), h(t, T(te, {
1234
+ var e = an();
1235
+ return e.$$click = () => t.onClick(), b(e, T(et, {
1235
1236
  get when() {
1236
- return e.isActive;
1237
+ return t.isActive;
1237
1238
  },
1238
1239
  get children() {
1239
- var n = tn();
1240
- return h(n, () => e.icon), n;
1240
+ var r = rn();
1241
+ return b(r, () => t.icon), r;
1241
1242
  }
1242
- }), null), h(t, () => e.label, null), z(() => p(t, S("flex cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-xs transition-all duration-300 ease-in-out", e.isActive ? "gap-1.5 bg-foreground/10 font-semibold text-foreground shadow-sm" : "gap-0 text-muted-foreground hover:bg-foreground/5 hover:text-foreground"))), t;
1243
+ }), null), b(e, () => t.label, null), z(() => S(e, k("flex cursor-pointer items-center justify-center rounded-md px-3 py-1.5 text-xs transition-all duration-300 ease-in-out", t.isActive ? "gap-1.5 bg-foreground/10 font-semibold text-foreground shadow-sm" : "gap-0 text-muted-foreground hover:bg-foreground/5 hover:text-foreground"))), e;
1243
1244
  })();
1244
1245
  }
1245
- function qn(e) {
1246
- const [t] = Ae(e, ["open", "onOpenChange", "title", "onSave", "hasUnsavedChanges", "onDelete", "editContent", "controlsContent", "debugContent", "debugData", "tabs", "class", "maxWidth", "defaultTab", "headerActions", "configSchema", "config", "onConfigSave", "ResponsiveDialog", "ResponsiveDialogContent", "ResponsiveDialogHeader", "ResponsiveDialogTitle", "ResponsiveDialogDescription", "Button", "SchemaForm"]), n = () => !!t.configSchema && !!t.config && !!t.onConfigSave && !!t.SchemaForm, [i, r] = F({}), [a, o] = F(null);
1247
- K(be(() => t.config, (u) => {
1248
- u && r({
1246
+ function Qn(t) {
1247
+ const [e] = Tt(t, ["open", "onOpenChange", "title", "onSave", "hasUnsavedChanges", "onDelete", "editContent", "controlsContent", "debugContent", "debugData", "tabs", "class", "maxWidth", "defaultTab", "headerActions", "configSchema", "config", "onConfigSave", "ResponsiveDialog", "ResponsiveDialogContent", "ResponsiveDialogHeader", "ResponsiveDialogTitle", "ResponsiveDialogDescription", "Button", "SchemaForm"]), r = () => !!e.configSchema && !!e.config && !!e.onConfigSave && !!e.SchemaForm, [i, n] = j({}), [a, o] = j(null);
1248
+ q(wt(() => e.config, (u) => {
1249
+ u && n({
1249
1250
  ...u
1250
1251
  });
1251
- })), K(be(() => t.configSchema, (u) => {
1252
- u && o(pe(u));
1252
+ })), q(wt(() => e.configSchema, (u) => {
1253
+ u && o(Mt(u));
1253
1254
  }));
1254
- const s = () => n() && JSON.stringify(i()) !== JSON.stringify(t.config), l = (u) => {
1255
- !u && t.config && r({
1256
- ...t.config
1257
- }), t.onOpenChange(u);
1255
+ const s = () => r() && JSON.stringify(i()) !== JSON.stringify(e.config), l = (u) => {
1256
+ !u && e.config && n({
1257
+ ...e.config
1258
+ }), e.onOpenChange(u);
1258
1259
  }, d = () => {
1259
- t.onConfigSave?.(i());
1260
- }, [c, b] = F(t.defaultTab ?? "controls"), C = () => {
1261
- const u = t.maxWidth ?? "3xl";
1260
+ e.onConfigSave?.(i());
1261
+ }, [c, v] = j(e.defaultTab ?? "controls"), C = () => {
1262
+ const u = e.maxWidth ?? "3xl";
1262
1263
  return {
1263
1264
  sm: "max-w-sm",
1264
1265
  md: "max-w-md",
@@ -1268,136 +1269,136 @@ function qn(e) {
1268
1269
  "3xl": "max-w-3xl",
1269
1270
  "4xl": "max-w-4xl"
1270
1271
  }[u];
1271
- }, f = () => {
1272
- if (t.tabs) return t.tabs;
1272
+ }, m = () => {
1273
+ if (e.tabs) return e.tabs;
1273
1274
  const u = [];
1274
1275
  return u.push({
1275
1276
  id: "edit",
1276
1277
  label: "Edit",
1277
- icon: rn(),
1278
- content: t.editContent ?? (n() && a() ? T(O, {
1278
+ icon: on(),
1279
+ content: e.editContent ?? (r() && a() ? T($, {
1279
1280
  get schema() {
1280
1281
  return a();
1281
1282
  },
1282
1283
  get data() {
1283
1284
  return i();
1284
1285
  },
1285
- onChange: r
1286
- }) : an())
1286
+ onChange: n
1287
+ }) : sn())
1287
1288
  }), u.push({
1288
1289
  id: "controls",
1289
1290
  label: "Controls",
1290
- icon: on(),
1291
- content: t.controlsContent ?? sn()
1291
+ icon: ln(),
1292
+ content: e.controlsContent ?? cn()
1292
1293
  }), u.push({
1293
1294
  id: "debug",
1294
1295
  label: "Debug",
1295
- icon: ln(),
1296
- content: t.debugContent ?? cn()
1296
+ icon: un(),
1297
+ content: e.debugContent ?? dn()
1297
1298
  }), u;
1298
- }, v = async () => {
1299
- if (t.debugData !== void 0)
1299
+ }, x = async () => {
1300
+ if (e.debugData !== void 0)
1300
1301
  try {
1301
- const u = typeof t.debugData == "string" ? t.debugData : JSON.stringify(t.debugData, null, 2);
1302
+ const u = typeof e.debugData == "string" ? e.debugData : JSON.stringify(e.debugData, null, 2);
1302
1303
  await navigator.clipboard.writeText(u);
1303
1304
  } catch {
1304
1305
  }
1305
1306
  }, V = () => {
1306
- const u = f();
1307
- return u.find((k) => k.id === c())?.content ?? u[0]?.content;
1308
- }, N = t.ResponsiveDialog, R = t.ResponsiveDialogContent, x = t.ResponsiveDialogHeader, y = t.ResponsiveDialogTitle, $ = t.ResponsiveDialogDescription, D = t.Button, O = t.SchemaForm, P = (u) => n() ? l(u) : t.onOpenChange(u), H = () => n() ? s() : t.hasUnsavedChanges, m = () => n() ? d : t.onSave;
1309
- return T(N, {
1307
+ const u = m();
1308
+ return u.find((p) => p.id === c())?.content ?? u[0]?.content;
1309
+ }, E = e.ResponsiveDialog, R = e.ResponsiveDialogContent, K = e.ResponsiveDialogHeader, B = e.ResponsiveDialogTitle, h = e.ResponsiveDialogDescription, y = e.Button, $ = e.SchemaForm, O = (u) => r() ? l(u) : e.onOpenChange(u), H = () => r() ? s() : e.hasUnsavedChanges, f = () => r() ? d : e.onSave;
1310
+ return T(E, {
1310
1311
  get open() {
1311
- return t.open;
1312
+ return e.open;
1312
1313
  },
1313
- onOpenChange: (u) => P(u),
1314
+ onOpenChange: (u) => O(u),
1314
1315
  get children() {
1315
1316
  return T(R, {
1316
1317
  get class() {
1317
- return S(C(), t.class);
1318
+ return k(C(), e.class);
1318
1319
  },
1319
1320
  get children() {
1320
- return [T(x, {
1321
+ return [T(K, {
1321
1322
  class: "flex flex-row items-center justify-between gap-3",
1322
1323
  get children() {
1323
1324
  return [(() => {
1324
- var u = un();
1325
- return h(u, T(y, {
1325
+ var u = gn();
1326
+ return b(u, T(B, {
1326
1327
  class: "truncate leading-tight",
1327
1328
  get children() {
1328
- return t.title;
1329
+ return e.title;
1329
1330
  }
1330
- }), null), h(u, T($, {
1331
+ }), null), b(u, T(h, {
1331
1332
  class: "sr-only",
1332
1333
  children: "Widget configuration dialog"
1333
1334
  }), null), u;
1334
1335
  })(), (() => {
1335
- var u = dn(), W = u.firstChild;
1336
- return h(W, () => f().map((k) => T(fn, {
1336
+ var u = mn(), A = u.firstChild;
1337
+ return b(A, () => m().map((p) => T(bn, {
1337
1338
  get icon() {
1338
- return k.icon;
1339
+ return p.icon;
1339
1340
  },
1340
1341
  get label() {
1341
- return k.label;
1342
+ return p.label;
1342
1343
  },
1343
1344
  get isActive() {
1344
- return c() === k.id;
1345
+ return c() === p.id;
1345
1346
  },
1346
- onClick: () => b(k.id)
1347
- }))), h(u, T(te, {
1347
+ onClick: () => v(p.id)
1348
+ }))), b(u, T(et, {
1348
1349
  get when() {
1349
- return t.headerActions;
1350
+ return e.headerActions;
1350
1351
  },
1351
1352
  get children() {
1352
- return t.headerActions;
1353
+ return e.headerActions;
1353
1354
  }
1354
1355
  }), null), u;
1355
1356
  })()];
1356
1357
  }
1357
1358
  }), (() => {
1358
- var u = gn();
1359
- return h(u, V), u;
1360
- })(), T(te, {
1359
+ var u = fn();
1360
+ return b(u, V), u;
1361
+ })(), T(et, {
1361
1362
  get when() {
1362
- return E(() => c() === "edit")() && (m() || t.onDelete) || c() === "debug" && t.debugData !== void 0;
1363
+ return _(() => c() === "edit")() && (f() || e.onDelete) || c() === "debug" && e.debugData !== void 0;
1363
1364
  },
1364
1365
  get children() {
1365
- var u = mn();
1366
- return h(u, T(te, {
1366
+ var u = hn();
1367
+ return b(u, T(et, {
1367
1368
  get when() {
1368
- return E(() => c() === "edit")() && t.onDelete;
1369
+ return _(() => c() === "edit")() && e.onDelete;
1369
1370
  },
1370
1371
  get children() {
1371
- return T(D, {
1372
+ return T(y, {
1372
1373
  size: "sm",
1373
1374
  variant: "destructive",
1374
- onClick: () => t.onDelete?.(),
1375
+ onClick: () => e.onDelete?.(),
1375
1376
  children: "Delete"
1376
1377
  });
1377
1378
  }
1378
- }), null), h(u, T(te, {
1379
+ }), null), b(u, T(et, {
1379
1380
  get when() {
1380
- return E(() => c() === "edit")() && m();
1381
+ return _(() => c() === "edit")() && f();
1381
1382
  },
1382
1383
  get children() {
1383
- return T(D, {
1384
+ return T(y, {
1384
1385
  size: "sm",
1385
1386
  get disabled() {
1386
1387
  return !H();
1387
1388
  },
1388
- onClick: () => m()?.(),
1389
+ onClick: () => f()?.(),
1389
1390
  children: "Save"
1390
1391
  });
1391
1392
  }
1392
- }), null), h(u, T(te, {
1393
+ }), null), b(u, T(et, {
1393
1394
  get when() {
1394
- return E(() => c() === "debug")() && t.debugData !== void 0;
1395
+ return _(() => c() === "debug")() && e.debugData !== void 0;
1395
1396
  },
1396
1397
  get children() {
1397
- return T(D, {
1398
+ return T(y, {
1398
1399
  size: "sm",
1399
1400
  variant: "outline",
1400
- onClick: v,
1401
+ onClick: x,
1401
1402
  children: "Copy"
1402
1403
  });
1403
1404
  }
@@ -1409,314 +1410,361 @@ function qn(e) {
1409
1410
  }
1410
1411
  });
1411
1412
  }
1412
- Oe(["click"]);
1413
- const ie = 32, g = ie / 2, j = "white", se = "rgba(0,0,0,0.4)", xe = 2, le = 3;
1414
- function hn(e) {
1415
- return `url("data:image/svg+xml,${encodeURIComponent(e)}")`;
1413
+ At(["click"]);
1414
+ const it = 32, g = it / 2, L = "white", st = "rgba(0,0,0,0.4)", vt = 2, lt = 3;
1415
+ function xn(t) {
1416
+ return `url("data:image/svg+xml,${encodeURIComponent(t)}")`;
1416
1417
  }
1417
- function ce(e) {
1418
- return `<svg xmlns="http://www.w3.org/2000/svg" width="${ie}" height="${ie}" viewBox="0 0 ${ie} ${ie}">${e}</svg>`;
1418
+ function ct(t) {
1419
+ return `<svg xmlns="http://www.w3.org/2000/svg" width="${it}" height="${it}" viewBox="0 0 ${it} ${it}">${t}</svg>`;
1419
1420
  }
1420
- const xn = ce(`
1421
+ const vn = ct(`
1421
1422
  <g transform="translate(6, 2)">
1422
1423
  <!-- shadow -->
1423
- <g stroke="${se}" stroke-width="${le}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1424
+ <g stroke="${st}" stroke-width="${lt}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1424
1425
  <path d="M10 8V3a2 2 0 0 1 4 0v10l4.5-4.5a2 2 0 0 1 2.83 2.83L14 18.5c-2 2-4 3.5-8 3.5-3 0-5-2-5-5v-6a2 2 0 0 1 4 0v2"/>
1425
1426
  </g>
1426
1427
  <!-- main -->
1427
- <g stroke="${j}" stroke-width="${xe}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1428
+ <g stroke="${L}" stroke-width="${vt}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1428
1429
  <path d="M10 8V3a2 2 0 0 1 4 0v10l4.5-4.5a2 2 0 0 1 2.83 2.83L14 18.5c-2 2-4 3.5-8 3.5-3 0-5-2-5-5v-6a2 2 0 0 1 4 0v2"/>
1429
1430
  </g>
1430
1431
  </g>
1431
- `), vn = ce(`
1432
+ `), yn = ct(`
1432
1433
  <g>
1433
- <circle cx="${g}" cy="${g}" r="8" stroke="${se}" stroke-width="${le}" fill="none"/>
1434
- <circle cx="${g}" cy="${g}" r="8" stroke="${j}" stroke-width="1.5" fill="none"/>
1435
- <circle cx="${g}" cy="${g}" r="1.5" fill="${j}"/>
1434
+ <circle cx="${g}" cy="${g}" r="8" stroke="${st}" stroke-width="${lt}" fill="none"/>
1435
+ <circle cx="${g}" cy="${g}" r="8" stroke="${L}" stroke-width="1.5" fill="none"/>
1436
+ <circle cx="${g}" cy="${g}" r="1.5" fill="${L}"/>
1436
1437
  </g>
1437
- `), bn = ce(`
1438
+ `), wn = ct(`
1438
1439
  <g>
1439
1440
  <!-- shadow -->
1440
- <g stroke="${se}" stroke-width="${le}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1441
+ <g stroke="${st}" stroke-width="${lt}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1441
1442
  <line x1="6" y1="${g}" x2="26" y2="${g}"/>
1442
1443
  <polyline points="10,${g - 4} 6,${g} 10,${g + 4}"/>
1443
1444
  <polyline points="22,${g - 4} 26,${g} 22,${g + 4}"/>
1444
1445
  </g>
1445
1446
  <!-- main -->
1446
- <g stroke="${j}" stroke-width="${xe}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1447
+ <g stroke="${L}" stroke-width="${vt}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1447
1448
  <line x1="6" y1="${g}" x2="26" y2="${g}"/>
1448
1449
  <polyline points="10,${g - 4} 6,${g} 10,${g + 4}"/>
1449
1450
  <polyline points="22,${g - 4} 26,${g} 22,${g + 4}"/>
1450
1451
  </g>
1451
1452
  <!-- center grip dots -->
1452
- <circle cx="${g}" cy="${g}" r="1.5" fill="${j}"/>
1453
- <circle cx="${g - 5}" cy="${g}" r="1" fill="${j}" opacity="0.6"/>
1454
- <circle cx="${g + 5}" cy="${g}" r="1" fill="${j}" opacity="0.6"/>
1453
+ <circle cx="${g}" cy="${g}" r="1.5" fill="${L}"/>
1454
+ <circle cx="${g - 5}" cy="${g}" r="1" fill="${L}" opacity="0.6"/>
1455
+ <circle cx="${g + 5}" cy="${g}" r="1" fill="${L}" opacity="0.6"/>
1455
1456
  </g>
1456
- `), yn = ce(`
1457
+ `), $n = ct(`
1457
1458
  <g>
1458
1459
  <!-- shadow -->
1459
- <g stroke="${se}" stroke-width="${le}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1460
+ <g stroke="${st}" stroke-width="${lt}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1460
1461
  <line x1="${g}" y1="6" x2="${g}" y2="26"/>
1461
1462
  <polyline points="${g - 4},10 ${g},6 ${g + 4},10"/>
1462
1463
  <polyline points="${g - 4},22 ${g},26 ${g + 4},22"/>
1463
1464
  </g>
1464
1465
  <!-- main -->
1465
- <g stroke="${j}" stroke-width="${xe}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1466
+ <g stroke="${L}" stroke-width="${vt}" fill="none" stroke-linecap="round" stroke-linejoin="round">
1466
1467
  <line x1="${g}" y1="6" x2="${g}" y2="26"/>
1467
1468
  <polyline points="${g - 4},10 ${g},6 ${g + 4},10"/>
1468
1469
  <polyline points="${g - 4},22 ${g},26 ${g + 4},22"/>
1469
1470
  </g>
1470
1471
  <!-- center grip dots -->
1471
- <circle cx="${g}" cy="${g}" r="1.5" fill="${j}"/>
1472
- <circle cx="${g}" cy="${g - 5}" r="1" fill="${j}" opacity="0.6"/>
1473
- <circle cx="${g}" cy="${g + 5}" r="1" fill="${j}" opacity="0.6"/>
1472
+ <circle cx="${g}" cy="${g}" r="1.5" fill="${L}"/>
1473
+ <circle cx="${g}" cy="${g - 5}" r="1" fill="${L}" opacity="0.6"/>
1474
+ <circle cx="${g}" cy="${g + 5}" r="1" fill="${L}" opacity="0.6"/>
1474
1475
  </g>
1475
1476
  `);
1476
- function ae(e, t, n) {
1477
- return { css: `${hn(e)} ${t} ${n}, auto`, hotspotX: t, hotspotY: n };
1477
+ function at(t, e, r) {
1478
+ return { css: `${xn(t)} ${e} ${r}, auto`, hotspotX: e, hotspotY: r };
1478
1479
  }
1479
1480
  const Z = {
1480
- tap: ae(xn, 12, 4),
1481
- hold: ae(vn, 16, 16),
1482
- slideHorizontal: ae(bn, g, g),
1483
- slideVertical: ae(yn, g, g)
1481
+ tap: at(vn, 12, 4),
1482
+ hold: at(yn, 16, 16),
1483
+ slideHorizontal: at(wn, g, g),
1484
+ slideVertical: at($n, g, g)
1485
+ };
1486
+ function dt() {
1487
+ if (typeof window > "u") return null;
1488
+ const t = window;
1489
+ return t.Capacitor?.isNativePlatform?.() ? t.Capacitor.Plugins?.Haptics ?? null : null;
1490
+ }
1491
+ function gt(t) {
1492
+ if (!(typeof navigator > "u" || typeof navigator.vibrate != "function"))
1493
+ try {
1494
+ navigator.vibrate(t);
1495
+ } catch {
1496
+ }
1497
+ }
1498
+ const pn = {
1499
+ /** Light confirmation — fires when slide gesture arms after user holds still. */
1500
+ tick() {
1501
+ const t = dt();
1502
+ if (t) {
1503
+ t.impact({ style: "Light" }).catch(() => {
1504
+ });
1505
+ return;
1506
+ }
1507
+ gt(8);
1508
+ },
1509
+ /** Medium bump — fires when hold gesture commits (detail opening). */
1510
+ bump() {
1511
+ const t = dt();
1512
+ if (t) {
1513
+ t.impact({ style: "Medium" }).catch(() => {
1514
+ });
1515
+ return;
1516
+ }
1517
+ gt(20);
1518
+ },
1519
+ /** Stronger pulse — reserved for edit-mode pickup (future use). */
1520
+ pulse() {
1521
+ const t = dt();
1522
+ if (t) {
1523
+ t.impact({ style: "Heavy" }).catch(() => {
1524
+ });
1525
+ return;
1526
+ }
1527
+ gt([0, 15, 40, 15]);
1528
+ }
1484
1529
  };
1485
- function Jn(e, t) {
1530
+ function tr(t, e) {
1486
1531
  const n = {
1487
1532
  isDown: !1,
1533
+ isTouch: !1,
1488
1534
  startX: 0,
1489
1535
  startY: 0,
1490
- currentX: 0,
1491
- currentY: 0,
1492
1536
  startTime: 0,
1493
1537
  hasMoved: !1,
1538
+ sliding: !1,
1494
1539
  holdTimer: null,
1495
- slideActive: !1,
1496
- slideActivationTimer: null,
1497
- lockedAxis: null,
1498
1540
  element: null
1499
1541
  };
1500
- let i = null, r = null, a = null;
1501
- function o(x) {
1502
- x !== r && (a && a.disconnect(), a = new ResizeObserver((y) => {
1542
+ let a = null, o = null, s = null;
1543
+ function l(h) {
1544
+ h !== o && (s && s.disconnect(), s = new ResizeObserver((y) => {
1503
1545
  const $ = y[0];
1504
1546
  if ($) {
1505
- const D = $.borderBoxSize?.[0];
1506
- D ? i = { width: D.inlineSize, height: D.blockSize } : i = { width: $.contentRect.width, height: $.contentRect.height };
1547
+ const O = $.borderBoxSize?.[0];
1548
+ O ? a = { width: O.inlineSize, height: O.blockSize } : a = { width: $.contentRect.width, height: $.contentRect.height };
1507
1549
  }
1508
- }), r = x, a.observe(x), i = { width: x.clientWidth, height: x.clientHeight });
1550
+ }), o = h, s.observe(h), a = { width: h.clientWidth, height: h.clientHeight });
1509
1551
  }
1510
- const s = 10, l = 5, d = () => {
1511
- n.holdTimer && (clearTimeout(n.holdTimer), n.holdTimer = null), n.slideActivationTimer && (clearTimeout(n.slideActivationTimer), n.slideActivationTimer = null);
1512
- }, c = (x) => {
1513
- const $ = e().slide;
1514
- return $?.orientation === "horizontal" ? "horizontal" : $?.orientation === "vertical" ? "vertical" : x && (i || o(x), i) ? i.height > i.width ? "vertical" : "horizontal" : (t?.() ?? "horizontal") === "horizontal" ? "horizontal" : "vertical";
1515
- }, b = (x) => {
1516
- const y = e();
1552
+ const d = () => {
1553
+ n.holdTimer && (clearTimeout(n.holdTimer), n.holdTimer = null);
1554
+ }, c = () => {
1555
+ n.isDown = !1, n.hasMoved = !1, n.sliding = !1;
1556
+ }, v = (h) => {
1557
+ const $ = t().slide;
1558
+ return $?.orientation === "horizontal" ? "horizontal" : $?.orientation === "vertical" ? "vertical" : h && (a || l(h), a) ? a.height > a.width ? "vertical" : "horizontal" : (e?.() ?? "horizontal") === "horizontal" ? "horizontal" : "vertical";
1559
+ }, C = (h) => {
1560
+ const y = t();
1517
1561
  if (!(!y.tap && !y.hold && !y.slide)) {
1518
- if (x.preventDefault(), n.isDown = !0, n.element = x.currentTarget, o(n.element), n.startX = x.clientX, n.startY = x.clientY, n.currentX = x.clientX, n.currentY = x.clientY, n.startTime = Date.now(), n.hasMoved = !1, n.slideActive = !1, n.lockedAxis = null, x.currentTarget.setPointerCapture(x.pointerId), y.hold) {
1519
- const $ = y.hold.delay ?? 300;
1562
+ if (n.isDown = !0, n.isTouch = h.pointerType === "touch", n.element = h.currentTarget, l(n.element), n.startX = h.clientX, n.startY = h.clientY, n.startTime = Date.now(), n.hasMoved = !1, n.sliding = !1, y.hold) {
1563
+ const $ = y.hold.delay ?? 500;
1520
1564
  n.holdTimer = setTimeout(() => {
1521
- n.isDown && !n.hasMoved && (y.hold.action(), n.isDown = !1);
1565
+ n.holdTimer = null, !(!n.isDown || n.hasMoved) && (pn.bump(), y.hold?.action(), n.isDown = !1);
1522
1566
  }, $);
1523
1567
  }
1524
- if (y.slide) {
1525
- const $ = y.slide.activationDelay ?? 0;
1526
- $ > 0 ? n.slideActivationTimer = setTimeout(() => {
1527
- n.slideActive = !0;
1528
- }, $) : n.slideActive = !0;
1529
- }
1568
+ if (!n.isTouch && y.slide)
1569
+ try {
1570
+ h.currentTarget.setPointerCapture(h.pointerId);
1571
+ } catch {
1572
+ }
1530
1573
  }
1531
- }, C = (x) => {
1574
+ }, m = (h) => {
1532
1575
  if (!n.isDown) return;
1533
- const y = e();
1534
- n.currentX = x.clientX, n.currentY = x.clientY;
1535
- const $ = n.currentX - n.startX, D = n.currentY - n.startY, O = Math.abs($), P = Math.abs(D), H = Math.sqrt($ * $ + D * D), m = x.currentTarget, u = c(m);
1536
- if (!n.lockedAxis && H > l && (O > P ? n.lockedAxis = "horizontal" : n.lockedAxis = "vertical", y.slide && n.lockedAxis !== u)) {
1537
- m.releasePointerCapture(x.pointerId), n.isDown = !1, n.slideActive = !1, d();
1538
- return;
1576
+ const y = t(), $ = h.clientX - n.startX, O = h.clientY - n.startY;
1577
+ if (Math.sqrt($ * $ + O * O) > 10 && (d(), n.hasMoved = !0), !n.isTouch && y.slide && n.hasMoved) {
1578
+ const f = h.currentTarget, u = v(f);
1579
+ n.sliding = !0;
1580
+ const A = y.slide.min ?? 0, p = y.slide.max ?? 100, G = p - A, Q = u === "vertical" ? -O : $, P = a ?? { width: f.clientWidth, height: f.clientHeight }, J = u === "vertical" ? P.height : P.width, Et = Q / J * G, Nt = Math.max(A, Math.min(p, y.slide.value + Et));
1581
+ y.slide.onChange(Math.round(Nt)), n.startX = h.clientX, n.startY = h.clientY, h.preventDefault();
1539
1582
  }
1540
- if (H > s && (n.hasMoved = !0, d()), y.slide && n.slideActive && n.hasMoved && n.lockedAxis === u) {
1541
- const W = y.slide.min ?? 0, k = y.slide.max ?? 100, B = k - W, Q = u === "vertical" ? -D : $, L = i ?? { width: m.clientWidth, height: m.clientHeight }, J = u === "vertical" ? L.height : L.width, De = Q / J * B, _e = Math.max(W, Math.min(k, y.slide.value + De));
1542
- y.slide.onChange(Math.round(_e)), n.startX = n.currentX, n.startY = n.currentY, x.preventDefault();
1583
+ }, x = (h) => {
1584
+ const y = t(), $ = n.isDown, O = Date.now() - n.startTime, H = y.hold?.delay ?? 500;
1585
+ d(), $ && y.tap && !n.hasMoved && O < H && y.tap();
1586
+ try {
1587
+ h.currentTarget.releasePointerCapture(h.pointerId);
1588
+ } catch {
1543
1589
  }
1544
- }, f = (x) => {
1545
- if (!n.isDown) return;
1546
- const y = e(), $ = y.hold?.delay ?? 300;
1547
- if (d(), y.tap && !n.hasMoved) {
1548
- const D = Date.now() - n.startTime;
1549
- n.isDown && D < $ && y.tap();
1590
+ c();
1591
+ }, V = (h) => {
1592
+ d();
1593
+ try {
1594
+ h.currentTarget.releasePointerCapture(h.pointerId);
1595
+ } catch {
1550
1596
  }
1551
- n.isDown = !1, n.hasMoved = !1, n.slideActive = !1, n.lockedAxis = null, x.currentTarget.releasePointerCapture(x.pointerId);
1552
- }, v = (x) => {
1553
- d(), n.isDown = !1, n.hasMoved = !1, n.slideActive = !1, n.lockedAxis = null, x.currentTarget.releasePointerCapture(x.pointerId);
1554
- }, V = (x) => {
1555
- const y = e();
1597
+ c();
1598
+ }, E = (h) => {
1599
+ const y = t();
1556
1600
  if (y.slide) {
1557
1601
  const $ = y.slide.orientation;
1558
- return $ === "horizontal" ? Z.slideHorizontal.css : $ === "vertical" ? Z.slideVertical.css : (i || o(x), i && i.height > i.width ? Z.slideVertical.css : Z.slideHorizontal.css);
1602
+ return $ === "horizontal" ? Z.slideHorizontal.css : $ === "vertical" ? Z.slideVertical.css : (a || l(h), a && a.height > a.width ? Z.slideVertical.css : Z.slideHorizontal.css);
1559
1603
  }
1560
1604
  return y.tap ? Z.tap.css : y.hold ? Z.hold.css : "";
1561
1605
  };
1562
1606
  return {
1563
- onPointerDown: b,
1564
- onPointerMove: C,
1565
- onPointerUp: f,
1566
- onPointerCancel: v,
1567
- onPointerEnter: (x) => {
1568
- const y = x.currentTarget;
1569
- n.element = y, y.style.cursor = V(y);
1607
+ onPointerDown: C,
1608
+ onPointerMove: m,
1609
+ onPointerUp: x,
1610
+ onPointerCancel: V,
1611
+ onPointerEnter: (h) => {
1612
+ const y = h.currentTarget;
1613
+ n.element = y, y.style.cursor = E(y);
1614
+ },
1615
+ bindElement: (h) => {
1616
+ h && (n.element = h, l(h));
1570
1617
  },
1571
- bindElement: (x) => {
1572
- x && (n.element = x, o(x));
1618
+ touchAction: () => {
1619
+ const h = t();
1620
+ return h.tap || h.hold || h.slide ? "manipulation" : "auto";
1573
1621
  },
1574
1622
  dispose: () => {
1575
- d(), a && (a.disconnect(), a = null), r = null, i = null;
1623
+ d(), s && (s.disconnect(), s = null), o = null, a = null;
1576
1624
  }
1577
1625
  };
1578
1626
  }
1579
- function Zn(e) {
1580
- return A(() => {
1581
- const t = e.entities();
1582
- if (t.length === 0) return;
1583
- const n = {
1584
- widgetConfig: e.widgetConfig,
1585
- entities: t.map((i) => {
1586
- const r = {
1627
+ function er(t) {
1628
+ return N(() => {
1629
+ const e = t.entities();
1630
+ if (e.length === 0) return;
1631
+ const r = {
1632
+ widgetConfig: t.widgetConfig,
1633
+ entities: e.map((i) => {
1634
+ const n = {
1587
1635
  entity_id: i.id,
1588
1636
  state: i.state,
1589
1637
  domain: i.domain,
1590
1638
  friendly_name: i.friendlyName
1591
1639
  };
1592
- return e.customEntityFields ? {
1593
- ...r,
1594
- ...e.customEntityFields(i)
1595
- } : r;
1640
+ return t.customEntityFields ? {
1641
+ ...n,
1642
+ ...t.customEntityFields(i)
1643
+ } : n;
1596
1644
  })
1597
1645
  };
1598
- return e.additionalData && Object.assign(n, e.additionalData), n;
1646
+ return t.additionalData && Object.assign(r, t.additionalData), r;
1599
1647
  });
1600
1648
  }
1601
- function Qn(e = {}) {
1602
- const [t, n] = F(!1), [i, r] = F(!1);
1649
+ function nr(t = {}) {
1650
+ const [e, r] = j(!1), [i, n] = j(!1);
1603
1651
  return {
1604
1652
  save: async (s) => {
1605
- if (e.onSave) {
1606
- n(!0);
1653
+ if (t.onSave) {
1654
+ r(!0);
1607
1655
  try {
1608
- await e.onSave(s), e.onSaveSuccess?.();
1656
+ await t.onSave(s), t.onSaveSuccess?.();
1609
1657
  } finally {
1610
- n(!1);
1658
+ r(!1);
1611
1659
  }
1612
1660
  }
1613
1661
  },
1614
1662
  remove: async () => {
1615
- if (e.onDelete) {
1616
- r(!0);
1663
+ if (t.onDelete) {
1664
+ n(!0);
1617
1665
  try {
1618
- await e.onDelete(), e.onDeleteSuccess?.();
1666
+ await t.onDelete(), t.onDeleteSuccess?.();
1619
1667
  } finally {
1620
- r(!1);
1668
+ n(!1);
1621
1669
  }
1622
1670
  }
1623
1671
  },
1624
- isSaving: t,
1672
+ isSaving: e,
1625
1673
  isDeleting: i
1626
1674
  };
1627
1675
  }
1628
- function er(e = "edit") {
1629
- const [t, n] = F(!1), [i, r] = F(e);
1676
+ function rr(t = "edit") {
1677
+ const [e, r] = j(!1), [i, n] = j(t);
1630
1678
  return {
1631
- showDialog: t,
1632
- setShowDialog: n,
1633
- openDialog: () => n(!0),
1634
- closeDialog: () => n(!1),
1679
+ showDialog: e,
1680
+ setShowDialog: r,
1681
+ openDialog: () => r(!0),
1682
+ closeDialog: () => r(!1),
1635
1683
  activeTab: i,
1636
- setActiveTab: r
1684
+ setActiveTab: n
1637
1685
  };
1638
1686
  }
1639
- function tr(e) {
1640
- const t = A(() => e.entity() !== null), n = A(() => {
1641
- const r = e.entity();
1642
- return r ? e.calculateData(r) : null;
1643
- }), i = A(() => t() ? void 0 : e.emptyStateConfig);
1687
+ function ir(t) {
1688
+ const e = N(() => t.entity() !== null), r = N(() => {
1689
+ const n = t.entity();
1690
+ return n ? t.calculateData(n) : null;
1691
+ }), i = N(() => e() ? void 0 : t.emptyStateConfig);
1644
1692
  return {
1645
- entity: e.entity,
1646
- data: n,
1693
+ entity: t.entity,
1694
+ data: r,
1647
1695
  emptyState: i,
1648
- hasEntity: t
1696
+ hasEntity: e
1649
1697
  };
1650
1698
  }
1651
- function nr(e) {
1652
- const t = e.minEntities ?? 1, n = A(() => e.entities().length), i = A(() => n() >= t), r = A(() => !i() || !e.calculateGroupData ? null : e.calculateGroupData(e.entities())), a = A(() => {
1699
+ function ar(t) {
1700
+ const e = t.minEntities ?? 1, r = N(() => t.entities().length), i = N(() => r() >= e), n = N(() => !i() || !t.calculateGroupData ? null : t.calculateGroupData(t.entities())), a = N(() => {
1653
1701
  if (!i()) return;
1654
- const s = e.aggregationMode?.();
1702
+ const s = t.aggregationMode?.();
1655
1703
  if (!s || s === "none") return;
1656
- const l = e.entities();
1704
+ const l = t.entities();
1657
1705
  if (s === "light" || s === "binary-sensor" || s === "switch")
1658
- return At(l, e.allEntitiesMode);
1706
+ return Te(l, t.allEntitiesMode);
1659
1707
  if (s === "sensor") {
1660
- const d = e.sensorGroupType?.() ?? "mean";
1661
- return Nt(l, d, !0);
1708
+ const d = t.sensorGroupType?.() ?? "mean";
1709
+ return Ve(l, d, !0);
1662
1710
  }
1663
- }), o = A(() => i() ? void 0 : e.emptyStateConfig);
1711
+ }), o = N(() => i() ? void 0 : t.emptyStateConfig);
1664
1712
  return {
1665
- entities: e.entities,
1666
- groupData: r,
1713
+ entities: t.entities,
1714
+ groupData: n,
1667
1715
  aggregatedData: a,
1668
1716
  emptyState: o,
1669
1717
  hasEntities: i,
1670
- count: n
1718
+ count: r
1671
1719
  };
1672
1720
  }
1673
- function rr(e) {
1674
- const [t] = Ie({
1675
- validate: Re(e.schema),
1676
- initialValues: e.initialValues
1677
- }), n = A(() => t.dirty), i = A(() => t.submitting);
1721
+ function or(t) {
1722
+ const [e] = Ht({
1723
+ validate: Gt(t.schema),
1724
+ initialValues: t.initialValues
1725
+ }), r = N(() => e.dirty), i = N(() => e.submitting);
1678
1726
  return {
1679
- form: t,
1680
- isDirty: n,
1727
+ form: e,
1728
+ isDirty: r,
1681
1729
  isSubmitting: i,
1682
1730
  handleSubmit: (a) => {
1683
- e.onSubmit?.(a);
1731
+ t.onSubmit?.(a);
1684
1732
  },
1685
- getValue: He,
1686
- setValue: Pe,
1687
- reset: Ge
1733
+ getValue: Bt,
1734
+ setValue: Lt,
1735
+ reset: Pt
1688
1736
  };
1689
1737
  }
1690
- const de = ["xs", "sm", "md", "lg", "xl"];
1691
- function ir() {
1692
- const e = G(), t = A(() => de.indexOf(e.size())), n = A(() => {
1693
- const l = e.size();
1738
+ const mt = ["xs", "sm", "md", "lg", "xl"];
1739
+ function sr() {
1740
+ const t = I(), e = N(() => mt.indexOf(t.size())), r = N(() => {
1741
+ const l = t.size();
1694
1742
  return l === "xs" || l === "sm";
1695
- }), i = A(() => {
1696
- const l = e.size();
1743
+ }), i = N(() => {
1744
+ const l = t.size();
1697
1745
  return l === "lg" || l === "xl";
1698
- }), r = A(() => t() >= 2);
1746
+ }), n = N(() => e() >= 2);
1699
1747
  return {
1700
- isCompact: n,
1748
+ isCompact: r,
1701
1749
  isLarge: i,
1702
- showDetail: r,
1703
- showOn: (l) => l.includes(e.size()),
1704
- hideOn: (l) => !l.includes(e.size()),
1750
+ showDetail: n,
1751
+ showOn: (l) => l.includes(t.size()),
1752
+ hideOn: (l) => !l.includes(t.size()),
1705
1753
  matches: (l) => {
1706
1754
  const d = l.trim();
1707
1755
  if (d.endsWith("+")) {
1708
- const c = d.slice(0, -1), b = de.indexOf(c);
1709
- return b >= 0 && t() >= b;
1756
+ const c = d.slice(0, -1), v = mt.indexOf(c);
1757
+ return v >= 0 && e() >= v;
1710
1758
  }
1711
1759
  if (d.endsWith("-")) {
1712
- const c = d.slice(0, -1), b = de.indexOf(c);
1713
- return b >= 0 && t() <= b;
1760
+ const c = d.slice(0, -1), v = mt.indexOf(c);
1761
+ return v >= 0 && e() <= v;
1714
1762
  }
1715
- return e.size() === d;
1763
+ return t.size() === d;
1716
1764
  }
1717
1765
  };
1718
1766
  }
1719
- const _ = {
1767
+ const D = {
1720
1768
  ocean: "bg-gradient-to-br from-cyan-600/20 to-blue-700/20",
1721
1769
  sunset: "bg-gradient-to-br from-orange-500/20 to-purple-700/20",
1722
1770
  forest: "bg-gradient-to-br from-emerald-600/20 to-teal-700/20",
@@ -1734,7 +1782,7 @@ const _ = {
1734
1782
  sage: "bg-gradient-to-br from-lime-600/20 to-green-600/20",
1735
1783
  copper: "bg-gradient-to-br from-amber-600/20 to-amber-800/20",
1736
1784
  dusk: "bg-gradient-to-br from-blue-500/20 to-purple-600/20"
1737
- }, ar = {
1785
+ }, lr = {
1738
1786
  ocean: "Ocean Breeze",
1739
1787
  sunset: "Sunset Glow",
1740
1788
  forest: "Forest Dawn",
@@ -1752,30 +1800,30 @@ const _ = {
1752
1800
  sage: "Sage",
1753
1801
  copper: "Copper",
1754
1802
  dusk: "Dusk"
1755
- }, or = Object.keys(_);
1756
- function ke(e) {
1757
- const t = Object.keys(_);
1758
- let n = 0;
1759
- for (const r of e)
1760
- n = (n << 5) - n + r.charCodeAt(0), n = n & n;
1761
- const i = Math.abs(n) % t.length;
1762
- return t[i];
1763
- }
1764
- function sr(e, t) {
1765
- if (!e) {
1766
- const i = ke(t);
1767
- return _[i];
1803
+ }, cr = Object.keys(D);
1804
+ function St(t) {
1805
+ const e = Object.keys(D);
1806
+ let r = 0;
1807
+ for (const n of t)
1808
+ r = (r << 5) - r + n.charCodeAt(0), r = r & r;
1809
+ const i = Math.abs(r) % e.length;
1810
+ return e[i];
1811
+ }
1812
+ function ur(t, e) {
1813
+ if (!t) {
1814
+ const i = St(e);
1815
+ return D[i];
1768
1816
  }
1769
- if (typeof e == "string" && e in _)
1770
- return _[e];
1771
- if (typeof e == "string")
1772
- return e;
1773
- const n = ke(t);
1774
- return _[n];
1817
+ if (typeof t == "string" && t in D)
1818
+ return D[t];
1819
+ if (typeof t == "string")
1820
+ return t;
1821
+ const r = St(e);
1822
+ return D[r];
1775
1823
  }
1776
- const ee = {
1824
+ const tt = {
1777
1825
  ocean: {
1778
- gradient: _.ocean,
1826
+ gradient: D.ocean,
1779
1827
  bg: "bg-cyan-600/20",
1780
1828
  icon: "bg-cyan-500 dark:bg-cyan-400",
1781
1829
  glow: "shadow-cyan-500/50 dark:shadow-cyan-400/50",
@@ -1785,7 +1833,7 @@ const ee = {
1785
1833
  }
1786
1834
  },
1787
1835
  sunset: {
1788
- gradient: _.sunset,
1836
+ gradient: D.sunset,
1789
1837
  bg: "bg-orange-500/20",
1790
1838
  icon: "bg-orange-500 dark:bg-orange-400",
1791
1839
  glow: "shadow-orange-500/50 dark:shadow-orange-400/50",
@@ -1795,7 +1843,7 @@ const ee = {
1795
1843
  }
1796
1844
  },
1797
1845
  forest: {
1798
- gradient: _.forest,
1846
+ gradient: D.forest,
1799
1847
  bg: "bg-emerald-600/20",
1800
1848
  icon: "bg-emerald-500 dark:bg-emerald-400",
1801
1849
  glow: "shadow-emerald-500/50 dark:shadow-emerald-400/50",
@@ -1805,7 +1853,7 @@ const ee = {
1805
1853
  }
1806
1854
  },
1807
1855
  lavender: {
1808
- gradient: _.lavender,
1856
+ gradient: D.lavender,
1809
1857
  bg: "bg-purple-500/20",
1810
1858
  icon: "bg-purple-500 dark:bg-purple-400",
1811
1859
  glow: "shadow-purple-500/50 dark:shadow-purple-400/50",
@@ -1815,7 +1863,7 @@ const ee = {
1815
1863
  }
1816
1864
  },
1817
1865
  golden: {
1818
- gradient: _.golden,
1866
+ gradient: D.golden,
1819
1867
  bg: "bg-yellow-500/20",
1820
1868
  icon: "bg-yellow-500 dark:bg-yellow-400",
1821
1869
  glow: "shadow-yellow-500/50 dark:shadow-yellow-400/50",
@@ -1825,7 +1873,7 @@ const ee = {
1825
1873
  }
1826
1874
  },
1827
1875
  midnight: {
1828
- gradient: _.midnight,
1876
+ gradient: D.midnight,
1829
1877
  bg: "bg-blue-700/20",
1830
1878
  icon: "bg-blue-700 dark:bg-blue-600",
1831
1879
  glow: "shadow-blue-700/50 dark:shadow-blue-600/50",
@@ -1835,7 +1883,7 @@ const ee = {
1835
1883
  }
1836
1884
  },
1837
1885
  rose: {
1838
- gradient: _.rose,
1886
+ gradient: D.rose,
1839
1887
  bg: "bg-pink-400/20",
1840
1888
  icon: "bg-pink-500 dark:bg-pink-400",
1841
1889
  glow: "shadow-pink-500/50 dark:shadow-pink-400/50",
@@ -1845,7 +1893,7 @@ const ee = {
1845
1893
  }
1846
1894
  },
1847
1895
  mint: {
1848
- gradient: _.mint,
1896
+ gradient: D.mint,
1849
1897
  bg: "bg-green-400/20",
1850
1898
  icon: "bg-green-500 dark:bg-green-400",
1851
1899
  glow: "shadow-green-500/50 dark:shadow-green-400/50",
@@ -1855,7 +1903,7 @@ const ee = {
1855
1903
  }
1856
1904
  },
1857
1905
  slate: {
1858
- gradient: _.slate,
1906
+ gradient: D.slate,
1859
1907
  bg: "bg-slate-600/20",
1860
1908
  icon: "bg-slate-600 dark:bg-slate-500",
1861
1909
  glow: "shadow-slate-600/50 dark:shadow-slate-500/50",
@@ -1865,7 +1913,7 @@ const ee = {
1865
1913
  }
1866
1914
  },
1867
1915
  coral: {
1868
- gradient: _.coral,
1916
+ gradient: D.coral,
1869
1917
  bg: "bg-pink-300/20",
1870
1918
  icon: "bg-pink-400 dark:bg-pink-300",
1871
1919
  glow: "shadow-pink-400/50 dark:shadow-pink-300/50",
@@ -1875,7 +1923,7 @@ const ee = {
1875
1923
  }
1876
1924
  },
1877
1925
  aurora: {
1878
- gradient: _.aurora,
1926
+ gradient: D.aurora,
1879
1927
  bg: "bg-blue-500/20",
1880
1928
  icon: "bg-blue-500 dark:bg-blue-400",
1881
1929
  glow: "shadow-blue-500/50 dark:shadow-blue-400/50",
@@ -1885,7 +1933,7 @@ const ee = {
1885
1933
  }
1886
1934
  },
1887
1935
  ember: {
1888
- gradient: _.ember,
1936
+ gradient: D.ember,
1889
1937
  bg: "bg-red-500/20",
1890
1938
  icon: "bg-red-500 dark:bg-red-400",
1891
1939
  glow: "shadow-red-500/50 dark:shadow-red-400/50",
@@ -1895,7 +1943,7 @@ const ee = {
1895
1943
  }
1896
1944
  },
1897
1945
  steel: {
1898
- gradient: _.steel,
1946
+ gradient: D.steel,
1899
1947
  bg: "bg-gray-500/20",
1900
1948
  icon: "bg-gray-500 dark:bg-gray-400",
1901
1949
  glow: void 0,
@@ -1905,7 +1953,7 @@ const ee = {
1905
1953
  }
1906
1954
  },
1907
1955
  twilight: {
1908
- gradient: _.twilight,
1956
+ gradient: D.twilight,
1909
1957
  bg: "bg-violet-600/20",
1910
1958
  icon: "bg-violet-500 dark:bg-violet-400",
1911
1959
  glow: "shadow-violet-500/50 dark:shadow-violet-400/50",
@@ -1915,7 +1963,7 @@ const ee = {
1915
1963
  }
1916
1964
  },
1917
1965
  sage: {
1918
- gradient: _.sage,
1966
+ gradient: D.sage,
1919
1967
  bg: "bg-lime-600/20",
1920
1968
  icon: "bg-lime-500 dark:bg-lime-400",
1921
1969
  glow: "shadow-lime-500/50 dark:shadow-lime-400/50",
@@ -1925,7 +1973,7 @@ const ee = {
1925
1973
  }
1926
1974
  },
1927
1975
  copper: {
1928
- gradient: _.copper,
1976
+ gradient: D.copper,
1929
1977
  bg: "bg-amber-600/20",
1930
1978
  icon: "bg-amber-600 dark:bg-amber-500",
1931
1979
  glow: "shadow-amber-600/50 dark:shadow-amber-500/50",
@@ -1935,7 +1983,7 @@ const ee = {
1935
1983
  }
1936
1984
  },
1937
1985
  dusk: {
1938
- gradient: _.dusk,
1986
+ gradient: D.dusk,
1939
1987
  bg: "bg-blue-500/20",
1940
1988
  icon: "bg-blue-500 dark:bg-blue-400",
1941
1989
  glow: "shadow-blue-500/50 dark:shadow-blue-400/50",
@@ -1944,116 +1992,116 @@ const ee = {
1944
1992
  muted: "text-blue-400/60 dark:text-blue-300/60"
1945
1993
  }
1946
1994
  }
1947
- }, lr = {
1948
- unavailable: ee.steel,
1949
- active: ee.ocean,
1950
- inactive: ee.steel,
1951
- success: ee.forest,
1952
- warning: ee.ember,
1953
- error: ee.rose
1954
- }, cr = {
1995
+ }, dr = {
1996
+ unavailable: tt.steel,
1997
+ active: tt.ocean,
1998
+ inactive: tt.steel,
1999
+ success: tt.forest,
2000
+ warning: tt.ember,
2001
+ error: tt.rose
2002
+ }, gr = {
1955
2003
  /** Optional display name override (renders as text input) */
1956
- title: () => q.string().optional().meta({ title: "Title", description: "Optional display name override" }),
2004
+ title: () => X.string().optional().meta({ title: "Title", description: "Optional display name override" }),
1957
2005
  /** Multi-select entity picker for a HA domain */
1958
- entityIds: (e) => q.array(q.string()).default([]).meta({ domain: e, title: "Entities" }),
2006
+ entityIds: (t) => X.array(X.string()).default([]).meta({ domain: t, title: "Entities" }),
1959
2007
  /** Single-select entity picker for a HA domain */
1960
- singleEntity: (e) => q.array(q.string()).default([]).meta({ domain: e, title: "Entity", singleSelect: !0 }),
2008
+ singleEntity: (t) => X.array(X.string()).default([]).meta({ domain: t, title: "Entity", singleSelect: !0 }),
1961
2009
  /** Area picker dropdown */
1962
- areaId: () => q.string().optional().meta({ formType: "area-picker", title: "Area" })
2010
+ areaId: () => X.string().optional().meta({ formType: "area-picker", title: "Area" })
1963
2011
  };
1964
- let ge = null;
1965
- function wn() {
1966
- return ge || (ge = getComputedStyle(document.documentElement)), ge;
2012
+ let ft = null;
2013
+ function kn() {
2014
+ return ft || (ft = getComputedStyle(document.documentElement)), ft;
1967
2015
  }
1968
- function ur(e) {
1969
- const t = e.startsWith("--") ? e : `--${e}`;
1970
- return wn().getPropertyValue(t).trim();
2016
+ function mr(t) {
2017
+ const e = t.startsWith("--") ? t : `--${t}`;
2018
+ return kn().getPropertyValue(e).trim();
1971
2019
  }
1972
- function dr() {
2020
+ function fr() {
1973
2021
  return document.documentElement.classList.contains("dark");
1974
2022
  }
1975
- const $n = "0.3.5", kn = {
1976
- version: $n
1977
- }, gr = kn.version;
2023
+ const Sn = "0.3.7", Cn = {
2024
+ version: Sn
2025
+ }, hr = Cn.version;
1978
2026
  export {
1979
- ar as GRADIENT_NAMES,
1980
- _ as GRADIENT_PRESETS,
1981
- or as GRADIENT_PRESET_KEYS,
1982
- Xn as Glow,
1983
- hr as GridSizeSchema,
1984
- xr as PublishBodySchema,
1985
- vr as PublishConfirmSchema,
1986
- br as PublishRequestSchema,
1987
- gr as SDK_VERSION,
1988
- Y as WIDGET_Z,
1989
- X as Widget,
1990
- it as WidgetContent,
1991
- me as WidgetCtx,
1992
- qn as WidgetDialog,
1993
- ut as WidgetEmptyState,
1994
- vt as WidgetIcon,
1995
- yr as WidgetManifestSchema,
1996
- ze as WidgetMetrics,
1997
- et as WidgetSliderFill,
1998
- Kn as WidgetStack,
1999
- Ct as WidgetStatus,
2000
- zt as WidgetSubtitle,
2001
- Et as WidgetTitle,
2002
- Gt as WidgetValue,
2003
- Un as allEntitiesInState,
2004
- Yn as anyEntityInState,
2005
- Rn as applyCssVars,
2006
- In as applyLayout,
2007
- fe as builtInVariants,
2008
- At as calculateLightGroup,
2009
- Nt as calculateSensorGroup,
2010
- Le as classicGlass,
2011
- S as cn,
2012
- Fe as compactHorizontal,
2013
- Wn as composeVariants,
2014
- Fn as countActiveEntities,
2015
- jn as countAvailableEntities,
2016
- Ln as countEntitiesByState,
2017
- Pn as createEmptyStateConfig,
2018
- En as createEntity,
2019
- Gn as createFlexLayout,
2020
- An as defineWidget,
2021
- ht as deriveAdaptiveIconColors,
2022
- Vn as extendVariant,
2023
- Be as extractDefaults,
2024
- wr as formatSchemaError,
2025
- Vt as formatValue,
2026
- Ue as getBuiltInVariant,
2027
- Tn as getBuiltInVariantIds,
2028
- Bn as getEntityAttribute,
2029
- Hn as getEntityState,
2030
- sr as getGradient,
2031
- ke as getGradientFromString,
2032
- nt as getSpacingClass,
2033
- ur as getThemeToken,
2034
- ee as gradientColorPresets,
2035
- Wt as interpretValue,
2036
- On as isBuiltInVariant,
2037
- dr as isDark,
2038
- Tt as isEntityActive,
2039
- Ot as isEntityAvailable,
2040
- he as mergeVariants,
2041
- je as minimal,
2042
- $r as parseGridSize,
2043
- kr as serializeGridSize,
2044
- I as spacing,
2045
- lr as stateColors,
2046
- pe as toFormSchema,
2047
- U as typography,
2048
- Zn as useDebugData,
2049
- Qn as useWidgetConfig,
2050
- G as useWidgetContext,
2051
- er as useWidgetDialog,
2052
- tr as useWidgetEntity,
2053
- nr as useWidgetEntityGroup,
2054
- rr as useWidgetForm,
2055
- Jn as useWidgetGestures,
2056
- ir as useWidgetResponsive,
2057
- Nn as warnIfStub,
2058
- cr as widgetFields
2027
+ lr as GRADIENT_NAMES,
2028
+ D as GRADIENT_PRESETS,
2029
+ cr as GRADIENT_PRESET_KEYS,
2030
+ Jn as Glow,
2031
+ vr as GridSizeSchema,
2032
+ yr as PublishBodySchema,
2033
+ wr as PublishConfirmSchema,
2034
+ $r as PublishRequestSchema,
2035
+ hr as SDK_VERSION,
2036
+ U as WIDGET_Z,
2037
+ Y as Widget,
2038
+ oe as WidgetContent,
2039
+ ht as WidgetCtx,
2040
+ Qn as WidgetDialog,
2041
+ ge as WidgetEmptyState,
2042
+ ye as WidgetIcon,
2043
+ pr as WidgetManifestSchema,
2044
+ _t as WidgetMetrics,
2045
+ ne as WidgetSliderFill,
2046
+ Zn as WidgetStack,
2047
+ ze as WidgetStatus,
2048
+ _e as WidgetSubtitle,
2049
+ Oe as WidgetTitle,
2050
+ Pe as WidgetValue,
2051
+ qn as allEntitiesInState,
2052
+ Xn as anyEntityInState,
2053
+ Pn as applyCssVars,
2054
+ Gn as applyLayout,
2055
+ bt as builtInVariants,
2056
+ Te as calculateLightGroup,
2057
+ Ve as calculateSensorGroup,
2058
+ Ft as classicGlass,
2059
+ k as cn,
2060
+ Yt as compactHorizontal,
2061
+ Hn as composeVariants,
2062
+ Kn as countActiveEntities,
2063
+ Yn as countAvailableEntities,
2064
+ Un as countEntitiesByState,
2065
+ Bn as createEmptyStateConfig,
2066
+ Tn as createEntity,
2067
+ Ln as createFlexLayout,
2068
+ Vn as defineWidget,
2069
+ xe as deriveAdaptiveIconColors,
2070
+ In as extendVariant,
2071
+ jt as extractDefaults,
2072
+ kr as formatSchemaError,
2073
+ Re as formatValue,
2074
+ Kt as getBuiltInVariant,
2075
+ Rn as getBuiltInVariantIds,
2076
+ Fn as getEntityAttribute,
2077
+ jn as getEntityState,
2078
+ ur as getGradient,
2079
+ St as getGradientFromString,
2080
+ ie as getSpacingClass,
2081
+ mr as getThemeToken,
2082
+ tt as gradientColorPresets,
2083
+ Ie as interpretValue,
2084
+ Wn as isBuiltInVariant,
2085
+ fr as isDark,
2086
+ We as isEntityActive,
2087
+ Ae as isEntityAvailable,
2088
+ xt as mergeVariants,
2089
+ Ut as minimal,
2090
+ Sr as parseGridSize,
2091
+ Cr as serializeGridSize,
2092
+ W as spacing,
2093
+ dr as stateColors,
2094
+ Mt as toFormSchema,
2095
+ F as typography,
2096
+ er as useDebugData,
2097
+ nr as useWidgetConfig,
2098
+ I as useWidgetContext,
2099
+ rr as useWidgetDialog,
2100
+ ir as useWidgetEntity,
2101
+ ar as useWidgetEntityGroup,
2102
+ or as useWidgetForm,
2103
+ tr as useWidgetGestures,
2104
+ sr as useWidgetResponsive,
2105
+ An as warnIfStub,
2106
+ gr as widgetFields
2059
2107
  };