@glasshome/widget-sdk 0.3.4 → 0.3.6

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