@glasshome/widget-sdk 1.26.0 → 1.27.1

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
@@ -4,8 +4,8 @@ import { z as a, z as o } from "zod";
4
4
  import { getForecasts as s, getStream as c, getWebRtcClientConfig as l, hassMediaUrl as u, sendWebRtcCandidate as d, startWebRtcSession as f, state as p, trackEntityHistory as m, untrackEntityHistory as h } from "@glasshome/sync-layer";
5
5
  import { byDomain as g, useArea as _, useCalendarEvents as v, useCamera as y, useConnection as b, useCurrency as x, useEntities as S, useEntity as ee, useEntity as te, useEntityHistory as C, useEntityStatistics as w, useForecast as ne, useHassConfig as re, useLocale as ie, useService as ae, useStore as oe, useTemperatureUnit as se, useToggle as ce, useTurnOff as le, useTurnOn as ue, useUnitSystem as de } from "@glasshome/sync-layer/solid";
6
6
  import { For as T, Show as E, children as fe, createContext as pe, createEffect as D, createMemo as O, createSignal as k, on as me, onCleanup as A, onMount as he, splitProps as ge, useContext as j } from "solid-js";
7
- import { addEventListener as _e, className as M, createComponent as N, delegateEvents as ve, effect as P, insert as F, memo as I, setAttribute as L, setStyleProperty as R, style as z, template as B, use as V } from "solid-js/web";
8
- import { Accordion as ye, AccordionContent as be, AccordionItem as xe, AccordionTrigger as Se, Badge as Ce, Badge as we, Button as Te, Button as Ee, ButtonGroup as De, ButtonGroup as Oe, Carousel as ke, CarouselContent as Ae, CarouselDots as je, CarouselItem as Me, CarouselNext as Ne, CarouselPrevious as Pe, ColorDisc as Fe, ColorSlider as Ie, ColorWheel as Le, CountPill as Re, CountPill as ze, Empty as Be, EmptyDescription as Ve, EmptyHeader as He, EmptyTitle as Ue, FactRow as H, FieldGroup as We, FieldTitle as Ge, HOLD_GRACE_MS as Ke, HOLD_MS as qe, Icon as Je, Icon as U, Input as Ye, Label as Xe, Popover as Ze, PopoverContent as Qe, Progress as $e, ResponsiveDialog as et, ResponsiveDialogBody as tt, ResponsiveDialogBody as nt, ResponsiveDialogClose as rt, ResponsiveDialogContent as it, ResponsiveDialogDescription as at, ResponsiveDialogFooter as ot, ResponsiveDialogFooter as st, ResponsiveDialogHeader as ct, ResponsiveDialogTitle as lt, SchemaForm as ut, SectionIcon as dt, SectionIcon as ft, SectionMeta as pt, SectionRow as mt, SectionTitle as ht, Select as gt, SelectContent as _t, SelectItem as vt, SelectTrigger as yt, SelectValue as bt, Slider as xt, SwatchPicker as St, Switch as Ct, Tabs as wt, Tabs as Tt, TabsContent as Et, TabsContent as Dt, TabsList as Ot, TabsList as kt, TabsTrigger as At, TabsTrigger as jt, TemperatureBar as Mt, Toggle as Nt, ToggleGroup as Pt, ToggleGroup as Ft, ToggleGroupItem as It, ToggleGroupItem as Lt, buttonVariants as Rt, copyText as zt, imagePreset as Bt, imagePreset as Vt, imageUrl as Ht, imageUrl as Ut, mediaUrl as Wt, parseColor as Gt, presetValue as Kt, spendLongPress as qt, useCopyText as Jt, useCopyText as Yt } from "@glasshome/ui/solid";
7
+ import { addEventListener as M, className as N, createComponent as P, delegateEvents as _e, effect as F, insert as I, memo as L, setAttribute as R, setStyleProperty as z, style as B, template as V, use as H } from "solid-js/web";
8
+ import { Accordion as ve, AccordionContent as ye, AccordionItem as be, AccordionTrigger as xe, Badge as Se, Badge as Ce, Button as we, Button as Te, ButtonGroup as Ee, ButtonGroup as De, Carousel as Oe, CarouselContent as ke, CarouselDots as Ae, CarouselItem as je, CarouselNext as Me, CarouselPrevious as Ne, ColorDisc as Pe, ColorSlider as Fe, ColorWheel as Ie, CountPill as Le, CountPill as Re, Empty as ze, EmptyDescription as Be, EmptyHeader as Ve, EmptyTitle as He, FactRow as Ue, FieldGroup as We, FieldTitle as Ge, HOLD_GRACE_MS as Ke, HOLD_MS as qe, Icon as Je, Icon as U, Input as Ye, Label as Xe, Popover as Ze, PopoverContent as Qe, Progress as $e, ResponsiveDialog as et, ResponsiveDialogBody as tt, ResponsiveDialogBody as nt, ResponsiveDialogClose as rt, ResponsiveDialogContent as it, ResponsiveDialogDescription as at, ResponsiveDialogFooter as ot, ResponsiveDialogFooter as st, ResponsiveDialogHeader as ct, ResponsiveDialogTitle as lt, SchemaForm as ut, SectionIcon as dt, SectionIcon as ft, SectionMeta as pt, SectionRow as mt, SectionTitle as ht, Select as gt, SelectContent as _t, SelectItem as vt, SelectTrigger as yt, SelectValue as bt, Slider as xt, SwatchPicker as St, Switch as Ct, Tabs as wt, Tabs as Tt, TabsContent as Et, TabsContent as Dt, TabsList as Ot, TabsList as kt, TabsTrigger as At, TabsTrigger as jt, TemperatureBar as Mt, Toggle as Nt, ToggleGroup as Pt, ToggleGroup as Ft, ToggleGroupItem as It, ToggleGroupItem as Lt, buttonVariants as Rt, copyText as zt, imagePreset as Bt, imagePreset as Vt, imageUrl as Ht, imageUrl as Ut, mediaUrl as Wt, parseColor as Gt, presetValue as Kt, spendLongPress as qt, useCopyText as Jt, useCopyText as Yt } from "@glasshome/ui/solid";
9
9
  import { clsx as Xt } from "clsx";
10
10
  import { twMerge as Zt } from "tailwind-merge";
11
11
  //#region src/framework/to-form-schema.ts
@@ -281,7 +281,8 @@ function Mn(e, t) {
281
281
  holdOnly: !1,
282
282
  holdTimer: null,
283
283
  graceTimer: null,
284
- element: null
284
+ element: null,
285
+ startValue: void 0
285
286
  }, [o, s] = k(null), c = null, l = null, u = null, [d, f] = k(null);
286
287
  function p(e) {
287
288
  e !== l && (u && u.disconnect(), u = new ResizeObserver((e) => {
@@ -312,14 +313,15 @@ function Mn(e, t) {
312
313
  once: !0
313
314
  });
314
315
  }, g = () => {
315
- a.isDown = !1, a.hasMoved = !1, a.sliding = !1, a.holdOnly = !1;
316
+ a.isDown = !1, a.hasMoved = !1, a.sliding = !1, a.holdOnly = !1, a.startValue = void 0;
316
317
  }, _ = (e) => {
317
318
  let n = i().slide;
318
319
  return n?.orientation === "horizontal" ? "horizontal" : n?.orientation === "vertical" ? "vertical" : e && (c || p(e), c) ? c.height > c.width ? "vertical" : "horizontal" : (t?.() ?? "horizontal") === "horizontal" ? "horizontal" : "vertical";
319
320
  }, v = (e) => {
321
+ if (e.pointerType === "touch" && !e.isPrimary) return;
320
322
  let t = i(), r = e.target instanceof Element ? e.target.closest(`${jn}, .glasshome-widget-controls`) : null, o = r !== null && r !== e.currentTarget;
321
323
  if (!(o ? !t.hold : !t.tap && !t.hold && !t.slide)) {
322
- if (a.isDown = !0, a.holdOnly = o, a.isTouch = e.pointerType === "touch", a.element = e.currentTarget, p(a.element), a.startX = e.clientX, a.startY = e.clientY, a.startTime = Date.now(), a.hasMoved = !1, a.sliding = !1, t.hold) {
324
+ if (a.isDown = !0, a.holdOnly = o, a.isTouch = e.pointerType === "touch", a.element = e.currentTarget, p(a.element), a.startX = e.clientX, a.startY = e.clientY, a.startTime = Date.now(), a.hasMoved = !1, a.sliding = !1, a.startValue = t.slide?.value, t.hold) {
323
325
  let r = t.hold.delay ?? qe, i = a.element.getBoundingClientRect(), o = e.clientX - i.left, c = e.clientY - i.top, l = Math.hypot(Math.max(o, i.width - o), Math.max(c, i.height - c));
324
326
  a.graceTimer = setTimeout(() => {
325
327
  a.graceTimer = null, s({
@@ -361,6 +363,8 @@ function Mn(e, t) {
361
363
  g();
362
364
  }, x = (e) => {
363
365
  m();
366
+ let t = i().slide;
367
+ a.sliding && t && a.startValue !== void 0 && t.onChange(a.startValue);
364
368
  try {
365
369
  e.currentTarget.releasePointerCapture(e.pointerId);
366
370
  } catch {}
@@ -438,28 +442,28 @@ function J(...e) {
438
442
  }
439
443
  //#endregion
440
444
  //#region src/framework/components/WidgetIcon.tsx
441
- var Ln = /*#__PURE__*/ B("<div class=\"glasshome-widget-icon glasshome-widget-icon-stack glasshome-widget-icon-stack-2 glass glass-tint\">"), Rn = /*#__PURE__*/ B("<div class=\"glasshome-widget-icon glasshome-widget-icon-stack glasshome-widget-icon-stack-3 glass glass-tint\">"), zn = /*#__PURE__*/ B("<div><div class=\"glasshome-widget-icon-glyph flex items-center justify-center\">");
445
+ var Ln = /*#__PURE__*/ V("<div class=\"glasshome-widget-icon glasshome-widget-icon-stack glasshome-widget-icon-stack-2 glass glass-tint\">"), Rn = /*#__PURE__*/ V("<div class=\"glasshome-widget-icon glasshome-widget-icon-stack glasshome-widget-icon-stack-3 glass glass-tint\">"), zn = /*#__PURE__*/ V("<div><div class=\"glasshome-widget-icon-glyph flex items-center justify-center\">");
442
446
  function Bn(e) {
443
447
  let t = () => e.entityCount ?? 1;
444
448
  return (() => {
445
449
  var n = zn(), r = n.firstChild;
446
- return F(n, N(E, {
450
+ return I(n, P(E, {
447
451
  get when() {
448
452
  return t() >= 2;
449
453
  },
450
454
  get children() {
451
455
  return Ln();
452
456
  }
453
- }), r), F(n, N(E, {
457
+ }), r), I(n, P(E, {
454
458
  get when() {
455
459
  return t() >= 3;
456
460
  },
457
461
  get children() {
458
462
  return Rn();
459
463
  }
460
- }), r), F(r, () => e.icon), P((t) => {
464
+ }), r), I(r, () => e.icon), F((t) => {
461
465
  var r = J("glasshome-widget-icon glass glass-tint", "pointer-events-none relative flex shrink-0 items-center justify-center transition-all", e.dimmed && "opacity-50", e.class), i = e.color ? { "--widget-icon-color": e.color } : void 0;
462
- return r !== t.e && M(n, t.e = r), t.t = z(n, i, t.t), t;
466
+ return r !== t.e && N(n, t.e = r), t.t = B(n, i, t.t), t;
463
467
  }, {
464
468
  e: void 0,
465
469
  t: void 0
@@ -468,7 +472,7 @@ function Bn(e) {
468
472
  }
469
473
  //#endregion
470
474
  //#region src/framework/components/anatomy.tsx
471
- var Vn = /*#__PURE__*/ B("<span class=glasshome-widget-eyebrow>"), Hn = /*#__PURE__*/ B("<div class=glasshome-widget-head-aside>"), Un = /*#__PURE__*/ B("<div class=glasshome-widget-head><div class=glasshome-widget-head-text><span class=glasshome-widget-name>"), Wn = /*#__PURE__*/ B("<span class=glasshome-widget-sub>"), Gn = /*#__PURE__*/ B("<span class=glasshome-widget-unit>"), Kn = /*#__PURE__*/ B("<div class=glasshome-widget-art>"), qn = /*#__PURE__*/ B("<div><div class=glasshome-widget-reading><span class=glasshome-widget-reading-value>"), Jn = /*#__PURE__*/ B("<div class=glasshome-widget-controls>"), Yn = /*#__PURE__*/ B("<div>"), Xn = /*#__PURE__*/ B("<div class=glasshome-widget-backdrop>"), Zn = /*#__PURE__*/ B("<div class=glasshome-widget-glyph aria-hidden=true>"), Qn = pe(() => !1), $n = "mdi:check";
475
+ var Vn = /*#__PURE__*/ V("<span class=glasshome-widget-eyebrow>"), Hn = /*#__PURE__*/ V("<div class=glasshome-widget-head-aside>"), Un = /*#__PURE__*/ V("<div class=glasshome-widget-head><div class=glasshome-widget-head-text><span class=glasshome-widget-name>"), Wn = /*#__PURE__*/ V("<span class=glasshome-widget-sub>"), Gn = /*#__PURE__*/ V("<span class=glasshome-widget-unit>"), Kn = /*#__PURE__*/ V("<div class=glasshome-widget-art>"), qn = /*#__PURE__*/ V("<div><div class=glasshome-widget-reading><span class=glasshome-widget-reading-value>"), Jn = /*#__PURE__*/ V("<div class=glasshome-widget-controls>"), Yn = /*#__PURE__*/ V("<div>"), Xn = /*#__PURE__*/ V("<div class=glasshome-widget-backdrop>"), Zn = /*#__PURE__*/ V("<div class=glasshome-widget-glyph aria-hidden=true>"), Qn = pe(() => !1), $n = "mdi:check";
472
476
  function er(e) {
473
477
  let t = j(Qn), n = mn(j(W));
474
478
  D(() => n?.setIcon(e.icon)), A(() => {
@@ -480,14 +484,14 @@ function er(e) {
480
484
  };
481
485
  return (() => {
482
486
  var n = Un(), o = n.firstChild, s = o.firstChild;
483
- return F(n, N(E, {
487
+ return I(n, P(E, {
484
488
  get when() {
485
489
  return e.icon;
486
490
  },
487
- children: (n) => N(Bn, {
491
+ children: (n) => P(Bn, {
488
492
  get icon() {
489
- return N(U, { get icon() {
490
- return I(() => !!t())() ? $n : n();
493
+ return P(U, { get icon() {
494
+ return L(() => !!t())() ? $n : n();
491
495
  } });
492
496
  },
493
497
  get entityCount() {
@@ -498,21 +502,21 @@ function er(e) {
498
502
  },
499
503
  class: "glasshome-widget-head-icon"
500
504
  })
501
- }), o), F(o, N(E, {
505
+ }), o), I(o, P(E, {
502
506
  get when() {
503
- return I(() => !!r())() && !a();
507
+ return L(() => !!r())() && !a();
504
508
  },
505
509
  get children() {
506
510
  var e = Vn();
507
- return F(e, r), e;
511
+ return I(e, r), e;
508
512
  }
509
- }), s), F(s, () => e.name), F(n, N(E, {
513
+ }), s), I(s, () => e.name), I(n, P(E, {
510
514
  get when() {
511
515
  return i();
512
516
  },
513
517
  get children() {
514
518
  var e = Hn();
515
- return F(e, i), e;
519
+ return I(e, i), e;
516
520
  }
517
521
  }), null), n;
518
522
  })();
@@ -521,33 +525,33 @@ function tr(e) {
521
525
  let t = fe(() => e.sub), n = fe(() => e.art), r = O(() => typeof e.value == "string" ? e.value.replace(/[\d\s.,:/%°+\-−]/g, "") : void 0), i = () => typeof e.value == "string" || typeof e.value == "number" ? String(e.value).length + (e.unit ? .5 : 0) : void 0, [a, o] = k();
522
526
  return D(me(r, () => o((e) => e === "a" ? "b" : "a"), { defer: !0 })), (() => {
523
527
  var r = qn(), o = r.firstChild, s = o.firstChild;
524
- return F(o, N(E, {
528
+ return I(o, P(E, {
525
529
  get when() {
526
530
  return t();
527
531
  },
528
532
  get children() {
529
533
  var e = Wn();
530
- return F(e, t), e;
534
+ return I(e, t), e;
531
535
  }
532
- }), s), F(s, () => e.value, null), F(s, N(E, {
536
+ }), s), I(s, () => e.value, null), I(s, P(E, {
533
537
  get when() {
534
538
  return e.unit;
535
539
  },
536
540
  get children() {
537
541
  var t = Gn();
538
- return F(t, () => e.unit), P(() => L(t, "data-degree", e.unit === "°" || void 0)), t;
542
+ return I(t, () => e.unit), F(() => R(t, "data-degree", e.unit === "°" || void 0)), t;
539
543
  }
540
- }), null), F(r, N(E, {
544
+ }), null), I(r, P(E, {
541
545
  get when() {
542
546
  return n();
543
547
  },
544
548
  get children() {
545
549
  var e = Kn();
546
- return F(e, n), e;
550
+ return I(e, n), e;
547
551
  }
548
- }), null), P((o) => {
552
+ }), null), F((o) => {
549
553
  var c = J("glasshome-widget-hero", e.class), l = n() ? "" : void 0, u = e.value === "" && !t() ? "" : void 0, d = a(), f = i();
550
- return c !== o.e && M(r, o.e = c), l !== o.t && L(r, "data-art", o.t = l), u !== o.a && L(r, "data-empty", o.a = u), d !== o.o && L(s, "data-turn", o.o = d), f !== o.i && R(s, "--value-len", o.i = f), o;
554
+ return c !== o.e && N(r, o.e = c), l !== o.t && R(r, "data-art", o.t = l), u !== o.a && R(r, "data-empty", o.a = u), d !== o.o && R(s, "data-turn", o.o = d), f !== o.i && z(s, "--value-len", o.i = f), o;
551
555
  }, {
552
556
  e: void 0,
553
557
  t: void 0,
@@ -560,40 +564,40 @@ function tr(e) {
560
564
  function nr(e) {
561
565
  return (() => {
562
566
  var t = Jn();
563
- return F(t, () => e.children), t;
567
+ return I(t, () => e.children), t;
564
568
  })();
565
569
  }
566
570
  function rr(e) {
567
- return N(Oe, {
571
+ return P(De, {
568
572
  get "aria-label"() {
569
573
  return e.label;
570
574
  },
571
575
  class: "glasshome-widget-stepper",
572
576
  get children() {
573
- return [N(Ee, {
577
+ return [P(Te, {
574
578
  variant: "outline",
575
579
  size: "icon",
576
580
  "aria-label": "Lower",
577
581
  class: "glasshome-widget-control",
578
582
  onClick: () => e.onStep(-1),
579
583
  get children() {
580
- return N(U, { icon: "mdi:minus" });
584
+ return P(U, { icon: "mdi:minus" });
581
585
  }
582
- }), N(Ee, {
586
+ }), P(Te, {
583
587
  variant: "outline",
584
588
  size: "icon",
585
589
  "aria-label": "Raise",
586
590
  class: "glasshome-widget-control",
587
591
  onClick: () => e.onStep(1),
588
592
  get children() {
589
- return N(U, { icon: "mdi:plus" });
593
+ return P(U, { icon: "mdi:plus" });
590
594
  }
591
595
  })];
592
596
  }
593
597
  });
594
598
  }
595
599
  function ir(e) {
596
- return N(Ft, {
600
+ return P(Ft, {
597
601
  get "aria-label"() {
598
602
  return e.label;
599
603
  },
@@ -606,11 +610,11 @@ function ir(e) {
606
610
  onChange: (t) => t && e.onChange(t),
607
611
  class: "glasshome-widget-choice",
608
612
  get children() {
609
- return N(T, {
613
+ return P(T, {
610
614
  get each() {
611
615
  return e.options;
612
616
  },
613
- children: (t) => N(Lt, {
617
+ children: (t) => P(Lt, {
614
618
  get value() {
615
619
  return t.value;
616
620
  },
@@ -622,7 +626,7 @@ function ir(e) {
622
626
  return t.value === e.value ? void 0 : "";
623
627
  },
624
628
  get children() {
625
- return N(U, { get icon() {
629
+ return P(U, { get icon() {
626
630
  return t.icon;
627
631
  } });
628
632
  }
@@ -633,7 +637,7 @@ function ir(e) {
633
637
  }
634
638
  function ar(e) {
635
639
  let t = In(), n = () => e.confirm ?? t, r = () => e.id ?? e["aria-label"] ?? e.icon, i = () => n().has(r());
636
- return N(Ee, {
640
+ return P(Te, {
637
641
  variant: "outline",
638
642
  get size() {
639
643
  return e.children ? "default" : "icon";
@@ -649,48 +653,48 @@ function ar(e) {
649
653
  },
650
654
  onClick: () => void n().run([r()], e.run),
651
655
  get children() {
652
- return [N(U, { get icon() {
653
- return I(() => !!i())() ? $n : e.icon;
654
- } }), I(() => e.children)];
656
+ return [P(U, { get icon() {
657
+ return L(() => !!i())() ? $n : e.icon;
658
+ } }), L(() => e.children)];
655
659
  }
656
660
  });
657
661
  }
658
662
  function or(e) {
659
- return N(we, {
663
+ return P(Ce, {
660
664
  get tone() {
661
665
  return e.tone ?? "var(--muted-foreground)";
662
666
  },
663
667
  class: "gap-1 tabular-nums",
664
668
  get children() {
665
- return [N(E, {
669
+ return [P(E, {
666
670
  get when() {
667
671
  return e.icon;
668
672
  },
669
- children: (e) => N(U, { get icon() {
673
+ children: (e) => P(U, { get icon() {
670
674
  return e();
671
675
  } })
672
- }), I(() => e.children)];
676
+ }), L(() => e.children)];
673
677
  }
674
678
  });
675
679
  }
676
680
  function sr(e) {
677
681
  return (() => {
678
682
  var t = Yn();
679
- return F(t, () => e.children), P(() => M(t, J("glasshome-widget-layer", e.class))), t;
683
+ return I(t, () => e.children), F(() => N(t, J("glasshome-widget-layer", e.class))), t;
680
684
  })();
681
685
  }
682
686
  function cr(e) {
683
687
  return (() => {
684
688
  var t = Xn();
685
- return F(t, () => e.children), t;
689
+ return I(t, () => e.children), t;
686
690
  })();
687
691
  }
688
692
  function lr(e) {
689
693
  let t = j(Qn);
690
694
  return (() => {
691
695
  var n = Zn();
692
- return F(n, N(U, { get icon() {
693
- return I(() => !!t())() ? $n : e.icon;
696
+ return I(n, P(U, { get icon() {
697
+ return L(() => !!t())() ? $n : e.icon;
694
698
  } })), n;
695
699
  })();
696
700
  }
@@ -744,16 +748,16 @@ function _r(e) {
744
748
  }
745
749
  //#endregion
746
750
  //#region src/framework/backgrounds/WidgetSliderFill.tsx
747
- var vr = /*#__PURE__*/ B("<div>"), yr = e(() => void 0, "sliderFill.color");
751
+ var vr = /*#__PURE__*/ V("<div>"), yr = e(() => void 0, "sliderFill.color");
748
752
  function br(e) {
749
753
  return e.color !== void 0 && yr(), (() => {
750
754
  var t = vr();
751
- return P((n) => {
755
+ return F((n) => {
752
756
  var r = J("glasshome-widget-slider-fill pointer-events-none absolute inset-0", e.isDragging ? "duration-0" : "transition-all duration-300 ease-out", e.class), i = {
753
757
  "--widget-fill-value": e.value,
754
758
  "z-index": ln.BACKGROUND
755
759
  };
756
- return r !== n.e && M(t, n.e = r), n.t = z(t, i, n.t), n;
760
+ return r !== n.e && N(t, n.e = r), n.t = B(t, i, n.t), n;
757
761
  }, {
758
762
  e: void 0,
759
763
  t: void 0
@@ -762,16 +766,16 @@ function br(e) {
762
766
  }
763
767
  //#endregion
764
768
  //#region src/framework/components/WidgetContent.tsx
765
- var xr = /*#__PURE__*/ B("<div>"), Sr = /\bglasshome-widget-(head|hero|controls|backdrop|glyph|layer)\b/;
769
+ var xr = /*#__PURE__*/ V("<div>"), Sr = /\bglasshome-widget-(head|hero|controls|backdrop|glyph|layer)\b/;
766
770
  function Cr(e) {
767
771
  let t = mn(j(W));
768
772
  D(() => t?.setAccent(e.accent)), A(() => t?.setAccent(void 0));
769
773
  let n = fe(() => e.children), r = O(() => n.toArray().some((e) => e instanceof Element && Sr.test(e.className)));
770
774
  return (() => {
771
775
  var t = xr();
772
- return F(t, n), P((n) => {
776
+ return I(t, n), F((n) => {
773
777
  var i = J(r() ? "glasshome-widget-grid" : "glasshome-widget-content", e.class), a = e.accent ? { "--widget-color": e.accent } : void 0;
774
- return i !== n.e && M(t, n.e = i), n.t = z(t, a, n.t), n;
778
+ return i !== n.e && N(t, n.e = i), n.t = B(t, a, n.t), n;
775
779
  }, {
776
780
  e: void 0,
777
781
  t: void 0
@@ -780,16 +784,16 @@ function Cr(e) {
780
784
  }
781
785
  //#endregion
782
786
  //#region src/framework/components/WidgetStatus.tsx
783
- var wr = /*#__PURE__*/ B("<p>");
787
+ var wr = /*#__PURE__*/ V("<p>");
784
788
  function Tr(e) {
785
789
  return (() => {
786
790
  var t = wr();
787
- return F(t, (() => {
788
- var t = I(() => !!e.isUnavailable);
791
+ return I(t, (() => {
792
+ var t = L(() => !!e.isUnavailable);
789
793
  return () => t() ? "Unavailable" : e.children;
790
- })()), P((n) => {
794
+ })()), F((n) => {
791
795
  var r = J("glasshome-widget-status", "relative", e.dimmed && "opacity-40", e.class), i = ln.ACTIONS;
792
- return r !== n.e && M(t, n.e = r), i !== n.t && R(t, "z-index", n.t = i), n;
796
+ return r !== n.e && N(t, n.e = r), i !== n.t && z(t, "z-index", n.t = i), n;
793
797
  }, {
794
798
  e: void 0,
795
799
  t: void 0
@@ -798,21 +802,21 @@ function Tr(e) {
798
802
  }
799
803
  //#endregion
800
804
  //#region src/framework/components/WidgetTitle.tsx
801
- var Er = /*#__PURE__*/ B("<span class=\"glasshome-widget-badge shrink-0\">"), Dr = /*#__PURE__*/ B("<div><h3 class=glasshome-widget-title>");
805
+ var Er = /*#__PURE__*/ V("<span class=\"glasshome-widget-badge shrink-0\">"), Dr = /*#__PURE__*/ V("<div><h3 class=glasshome-widget-title>");
802
806
  function Or(e) {
803
807
  return (() => {
804
808
  var t = Dr(), n = t.firstChild;
805
- return F(n, () => e.children), F(t, N(E, {
809
+ return I(n, () => e.children), I(t, P(E, {
806
810
  get when() {
807
- return I(() => e.badge !== void 0)() && e.badge > 0;
811
+ return L(() => e.badge !== void 0)() && e.badge > 0;
808
812
  },
809
813
  get children() {
810
814
  var t = Er();
811
- return F(t, () => e.badge), t;
815
+ return I(t, () => e.badge), t;
812
816
  }
813
- }), null), P((n) => {
817
+ }), null), F((n) => {
814
818
  var r = J("relative flex items-center gap-2", e.class), i = ln.ACTIONS;
815
- return r !== n.e && M(t, n.e = r), i !== n.t && R(t, "z-index", n.t = i), n;
819
+ return r !== n.e && N(t, n.e = r), i !== n.t && z(t, "z-index", n.t = i), n;
816
820
  }, {
817
821
  e: void 0,
818
822
  t: void 0
@@ -1053,24 +1057,24 @@ function Lr(e, t) {
1053
1057
  }
1054
1058
  //#endregion
1055
1059
  //#region src/framework/components/WidgetValue.tsx
1056
- var Rr = /*#__PURE__*/ B("<div class=glasshome-widget-subtitle>"), zr = /*#__PURE__*/ B("<div><div class=glasshome-widget-value>");
1060
+ var Rr = /*#__PURE__*/ V("<div class=glasshome-widget-subtitle>"), zr = /*#__PURE__*/ V("<div><div class=glasshome-widget-value>");
1057
1061
  function Br(e) {
1058
1062
  return (() => {
1059
1063
  var t = zr(), n = t.firstChild;
1060
- return F(n, () => Ir(e.value, e.unit)), F(t, N(E, {
1064
+ return I(n, () => Ir(e.value, e.unit)), I(t, P(E, {
1061
1065
  get when() {
1062
- return I(() => !!e.interpret)() && typeof e.value == "number";
1066
+ return L(() => !!e.interpret)() && typeof e.value == "number";
1063
1067
  },
1064
1068
  get children() {
1065
1069
  var t = Rr();
1066
- return F(t, () => Lr(e.value, e.unit)), t;
1070
+ return I(t, () => Lr(e.value, e.unit)), t;
1067
1071
  }
1068
- }), null), P(() => M(t, J("flex flex-col", e.class))), t;
1072
+ }), null), F(() => N(t, J("flex flex-col", e.class))), t;
1069
1073
  })();
1070
1074
  }
1071
1075
  //#endregion
1072
1076
  //#region src/framework/core/Widget.tsx
1073
- var Vr = /*#__PURE__*/ B("<span class=glasshome-widget-hold-flood aria-hidden=true>"), Hr = /*#__PURE__*/ B("<div class=\"glasshome-widget-halo glass-halo rounded-xl\"aria-hidden=true>"), Ur = /*#__PURE__*/ B("<div class=\"glasshome-widget-frame relative h-full w-full\"><div><div class=\"relative h-full w-full\">"), Wr = /*#__PURE__*/ B("<div class=\"glasshome-widget-loading pointer-events-none absolute inset-0 animate-pulse\">"), Gr = /*#__PURE__*/ B("<div class=\"flex h-full w-full flex-col items-center justify-center gap-2 text-center\">"), Kr = /*#__PURE__*/ B("<div class=\"text-muted-foreground flex items-center justify-center\">"), qr = /*#__PURE__*/ B("<h3 class=\"text-foreground text-sm font-semibold\">"), Jr = /*#__PURE__*/ B("<p class=\"text-muted-foreground text-xs\">"), Yr = 2e3;
1077
+ var Vr = /*#__PURE__*/ V("<span class=glasshome-widget-hold-flood aria-hidden=true>"), Hr = /*#__PURE__*/ V("<div class=\"glasshome-widget-halo glass-halo rounded-xl\"aria-hidden=true>"), Ur = /*#__PURE__*/ V("<div class=\"glasshome-widget-frame relative h-full w-full\"><div><div class=\"relative h-full w-full\">"), Wr = /*#__PURE__*/ V("<div class=\"glasshome-widget-loading pointer-events-none absolute inset-0 animate-pulse\">"), Gr = /*#__PURE__*/ V("<div class=\"flex h-full w-full flex-col items-center justify-center gap-2 text-center\">"), Kr = /*#__PURE__*/ V("<div class=\"text-muted-foreground flex items-center justify-center\">"), qr = /*#__PURE__*/ V("<h3 class=\"text-foreground text-sm font-semibold\">"), Jr = /*#__PURE__*/ V("<p class=\"text-muted-foreground text-xs\">"), Yr = 2e3;
1074
1078
  function Xr(t) {
1075
1079
  let n = j(W), r = Mn(() => ({ hold: { action: () => (G.get(n ?? {}) ?? G.get(f))?.("edit") } }));
1076
1080
  A(r.dispose);
@@ -1165,39 +1169,39 @@ function Xr(t) {
1165
1169
  height: `${w.r * 2}px`,
1166
1170
  "z-index": ln.BACKGROUND
1167
1171
  });
1168
- return N(W.Provider, {
1172
+ return P(W.Provider, {
1169
1173
  value: f,
1170
1174
  get children() {
1171
- return N(Qn.Provider, {
1175
+ return P(Qn.Provider, {
1172
1176
  value: () => t.confirmed === !0,
1173
1177
  get children() {
1174
- return N(Nn.Provider, {
1178
+ return P(Nn.Provider, {
1175
1179
  value: u,
1176
1180
  get children() {
1177
1181
  return [(() => {
1178
1182
  var e = Ur(), n = e.firstChild, i = n.firstChild;
1179
1183
  return n.$$keydown = (e) => {
1180
1184
  y() && s()?.onKeyDown?.(e);
1181
- }, _e(n, "pointercancel", te), _e(n, "pointerup", ee), _e(n, "pointermove", S), _e(n, "pointerdown", x), _e(n, "pointerenter", b), V((e) => {
1185
+ }, M(n, "pointercancel", te), M(n, "pointerup", ee), M(n, "pointermove", S), M(n, "pointerdown", x), M(n, "pointerenter", b), H((e) => {
1182
1186
  l(e), t.gestures?.bindElement(e), r.bindElement(e);
1183
- }, n), F(n, N(E, {
1187
+ }, n), I(n, P(E, {
1184
1188
  get when() {
1185
1189
  return s()?.hold;
1186
1190
  },
1187
1191
  get children() {
1188
1192
  var e = Vr();
1189
- return P((t) => {
1193
+ return F((t) => {
1190
1194
  var n = C() && !C()?.fired ? "" : void 0, r = C()?.fired ? "" : void 0, i = ne(C());
1191
- return n !== t.e && L(e, "data-hold", t.e = n), r !== t.t && L(e, "data-fired", t.t = r), t.a = z(e, i, t.a), t;
1195
+ return n !== t.e && R(e, "data-hold", t.e = n), r !== t.t && R(e, "data-fired", t.t = r), t.a = B(e, i, t.a), t;
1192
1196
  }, {
1193
1197
  e: void 0,
1194
1198
  t: void 0,
1195
1199
  a: void 0
1196
1200
  }), e;
1197
1201
  }
1198
- }), i), F(i, (() => {
1199
- var e = I(() => !!t.emptyState);
1200
- return () => e() ? N(Zr, {
1202
+ }), i), I(i, (() => {
1203
+ var e = L(() => !!t.emptyState);
1204
+ return () => e() ? P(Zr, {
1201
1205
  get icon() {
1202
1206
  return t.emptyState.icon;
1203
1207
  },
@@ -1208,27 +1212,27 @@ function Xr(t) {
1208
1212
  return t.emptyState.message;
1209
1213
  }
1210
1214
  }) : t.children;
1211
- })()), F(n, (() => {
1212
- var e = I(() => !!t.loading);
1215
+ })()), I(n, (() => {
1216
+ var e = L(() => !!t.loading);
1213
1217
  return () => e() && (() => {
1214
1218
  var e = Wr();
1215
- return P((t) => R(e, "z-index", ln.OVERLAY)), e;
1219
+ return F((t) => z(e, "z-index", ln.OVERLAY)), e;
1216
1220
  })();
1217
- })(), null), F(e, N(E, {
1221
+ })(), null), I(e, P(E, {
1218
1222
  when: !_,
1219
1223
  get children() {
1220
1224
  var e = Hr();
1221
- return P((t) => {
1225
+ return F((t) => {
1222
1226
  var n = g(), r = h() ? "" : void 0;
1223
- return t.e = z(e, n, t.e), r !== t.t && L(e, "data-toned", t.t = r), t;
1227
+ return t.e = B(e, n, t.e), r !== t.t && R(e, "data-toned", t.t = r), t;
1224
1228
  }, {
1225
1229
  e: void 0,
1226
1230
  t: void 0
1227
1231
  }), e;
1228
1232
  }
1229
- }), null), P((e) => {
1233
+ }), null), F((e) => {
1230
1234
  var r = J("glasshome-widget glass", "relative h-full w-full overflow-hidden rounded-xl select-none", p()?.class, t.class), a = v(), o = h() ? "" : void 0, s = t.confirmed || void 0, c = y() ? 0 : void 0, l = ln.CONTENT;
1231
- return r !== e.e && M(n, e.e = r), e.t = z(n, a, e.t), o !== e.a && L(n, "data-toned", e.a = o), s !== e.o && L(n, "data-confirmed", e.o = s), c !== e.i && L(n, "tabindex", e.i = c), l !== e.n && R(i, "z-index", e.n = l), e;
1235
+ return r !== e.e && N(n, e.e = r), e.t = B(n, a, e.t), o !== e.a && R(n, "data-toned", e.a = o), s !== e.o && R(n, "data-confirmed", e.o = s), c !== e.i && R(n, "tabindex", e.i = c), l !== e.n && z(i, "z-index", e.n = l), e;
1232
1236
  }, {
1233
1237
  e: void 0,
1234
1238
  t: void 0,
@@ -1237,10 +1241,10 @@ function Xr(t) {
1237
1241
  i: void 0,
1238
1242
  n: void 0
1239
1243
  }), e;
1240
- })(), N(E, {
1244
+ })(), P(E, {
1241
1245
  when: a,
1242
1246
  get children() {
1243
- return N(Ze, {
1247
+ return P(Ze, {
1244
1248
  get open() {
1245
1249
  return i?.nothingMore() ?? !1;
1246
1250
  },
@@ -1249,10 +1253,10 @@ function Xr(t) {
1249
1253
  },
1250
1254
  anchorRef: c,
1251
1255
  get children() {
1252
- return N(Qe, {
1256
+ return P(Qe, {
1253
1257
  class: "flex w-auto items-center gap-2 p-3 text-sm",
1254
1258
  get children() {
1255
- return [N(U, { icon: "mdi:information-outline" }), "No more controls for this widget"];
1259
+ return [P(U, { icon: "mdi:information-outline" }), "No more controls for this widget"];
1256
1260
  }
1257
1261
  });
1258
1262
  }
@@ -1269,32 +1273,32 @@ function Xr(t) {
1269
1273
  function Zr(e) {
1270
1274
  return (() => {
1271
1275
  var t = Gr();
1272
- return F(t, (() => {
1273
- var t = I(() => !!e.icon);
1276
+ return I(t, (() => {
1277
+ var t = L(() => !!e.icon);
1274
1278
  return () => t() && (() => {
1275
1279
  var t = Kr();
1276
- return F(t, () => e.icon), t;
1280
+ return I(t, () => e.icon), t;
1277
1281
  })();
1278
- })(), null), F(t, (() => {
1279
- var t = I(() => !!e.title);
1282
+ })(), null), I(t, (() => {
1283
+ var t = L(() => !!e.title);
1280
1284
  return () => t() && (() => {
1281
1285
  var t = qr();
1282
- return F(t, () => e.title), t;
1286
+ return I(t, () => e.title), t;
1283
1287
  })();
1284
- })(), null), F(t, (() => {
1285
- var t = I(() => !!e.message);
1288
+ })(), null), I(t, (() => {
1289
+ var t = L(() => !!e.message);
1286
1290
  return () => t() && (() => {
1287
1291
  var t = Jr();
1288
- return F(t, () => e.message), t;
1292
+ return I(t, () => e.message), t;
1289
1293
  })();
1290
1294
  })(), null), t;
1291
1295
  })();
1292
1296
  }
1293
1297
  var Y = Xr;
1294
- Y.Content = Cr, Y.Icon = Bn, Y.Title = Or, Y.Status = Tr, Y.Value = Br, Y.SliderFill = br, Y.Head = er, Y.Hero = tr, Y.Controls = nr, Y.Stepper = rr, Y.Choice = ir, Y.Action = ar, Y.Chip = or, Y.Backdrop = cr, Y.Layer = sr, Y.Glyph = lr, ve(["keydown"]);
1298
+ Y.Content = Cr, Y.Icon = Bn, Y.Title = Or, Y.Status = Tr, Y.Value = Br, Y.SliderFill = br, Y.Head = er, Y.Hero = tr, Y.Controls = nr, Y.Stepper = rr, Y.Choice = ir, Y.Action = ar, Y.Chip = or, Y.Backdrop = cr, Y.Layer = sr, Y.Glyph = lr, _e(["keydown"]);
1295
1299
  //#endregion
1296
1300
  //#region src/framework/panel/panel.tsx
1297
- var Qr = /*#__PURE__*/ B("<section class=glasshome-panel-section><h3 class=glasshome-panel-label>"), $r = /*#__PURE__*/ B("<div class=glasshome-panel-rows>"), ei = /*#__PURE__*/ B("<span class=\"glasshome-widget-slider-fill glasshome-panel-row-fill\">"), ti = /*#__PURE__*/ B("<span class=\"glasshome-widget-icon glass glasshome-panel-row-icon\">"), ni = /*#__PURE__*/ B("<span class=glasshome-panel-row-state>"), ri = /*#__PURE__*/ B("<span class=glasshome-panel-row-text><span class=glasshome-panel-row-name>"), ii = /*#__PURE__*/ B("<span class=glasshome-panel-row-trailing>"), ai = /*#__PURE__*/ B("<div class=glasshome-panel-row-wrap>"), oi = /*#__PURE__*/ B("<div>"), si = /*#__PURE__*/ B("<div class=\"glasshome-panel-facts glass\">"), ci = /*#__PURE__*/ B("<div class=glasshome-panel-fact><span class=glasshome-panel-row-text><span class=glasshome-panel-fact-label></span><span class=glasshome-panel-fact-value>"), li = 8, ui = (e, t, n) => Math.min(n, Math.max(t, e));
1301
+ var Qr = /*#__PURE__*/ V("<section class=glasshome-panel-section><h3 class=glasshome-panel-label>"), $r = /*#__PURE__*/ V("<div class=glasshome-panel-rows>"), ei = /*#__PURE__*/ V("<span class=\"glasshome-widget-slider-fill glasshome-panel-row-fill\">"), ti = /*#__PURE__*/ V("<span class=\"glasshome-widget-icon glass glasshome-panel-row-icon\">"), ni = /*#__PURE__*/ V("<span class=glasshome-panel-row-state>"), ri = /*#__PURE__*/ V("<span class=glasshome-panel-row-text><span class=glasshome-panel-row-name>"), ii = /*#__PURE__*/ V("<span class=glasshome-panel-row-trailing>"), ai = /*#__PURE__*/ V("<div class=glasshome-panel-row-wrap>"), oi = /*#__PURE__*/ V("<div>"), si = /*#__PURE__*/ V("<div class=\"glasshome-panel-facts glass\">"), ci = /*#__PURE__*/ V("<div class=glasshome-panel-fact><span class=glasshome-panel-row-text><span class=glasshome-panel-fact-label></span><span class=glasshome-panel-fact-value>"), li = 8, ui = (e, t, n) => Math.min(n, Math.max(t, e));
1298
1302
  function di(e) {
1299
1303
  let t = j(W), n, r = !1, i = !1, a, o = 0, s = (t, n) => {
1300
1304
  let r = e.slide?.();
@@ -1330,13 +1334,13 @@ function di(e) {
1330
1334
  function fi(e) {
1331
1335
  return (() => {
1332
1336
  var t = Qr(), n = t.firstChild;
1333
- return F(n, () => e.label), F(t, () => e.children, null), t;
1337
+ return I(n, () => e.label), I(t, () => e.children, null), t;
1334
1338
  })();
1335
1339
  }
1336
1340
  function pi(e) {
1337
1341
  return (() => {
1338
1342
  var t = $r();
1339
- return F(t, () => e.children), t;
1343
+ return I(t, () => e.children), t;
1340
1344
  })();
1341
1345
  }
1342
1346
  function mi(e) {
@@ -1360,23 +1364,23 @@ function mi(e) {
1360
1364
  let i = ui(n.value + r, n.min ?? 0, n.max ?? 100);
1361
1365
  n.onChange(i), n.onCommit?.(i);
1362
1366
  }, a = () => [
1363
- N(E, {
1367
+ P(E, {
1364
1368
  get when() {
1365
1369
  return r() !== void 0;
1366
1370
  },
1367
1371
  get children() {
1368
1372
  var e = ei();
1369
- return P((t) => z(e, { "--widget-fill-value": r() }, t)), e;
1373
+ return F((t) => B(e, { "--widget-fill-value": r() }, t)), e;
1370
1374
  }
1371
1375
  }),
1372
1376
  (() => {
1373
1377
  var t = ti();
1374
- return F(t, N(U, {
1378
+ return I(t, P(U, {
1375
1379
  get icon() {
1376
1380
  return e.icon;
1377
1381
  },
1378
1382
  class: "glasshome-widget-icon-glyph"
1379
- })), P((n) => {
1383
+ })), F((n) => {
1380
1384
  var r = !!e.on, i = !e.on;
1381
1385
  return r !== n.e && t.classList.toggle("glass-tint", n.e = r), i !== n.t && t.classList.toggle("glasshome-panel-row-icon-off", n.t = i), n;
1382
1386
  }, {
@@ -1386,32 +1390,32 @@ function mi(e) {
1386
1390
  })(),
1387
1391
  (() => {
1388
1392
  var t = ri(), n = t.firstChild;
1389
- return F(n, () => e.name), F(t, N(E, {
1393
+ return I(n, () => e.name), I(t, P(E, {
1390
1394
  get when() {
1391
1395
  return e.state !== void 0;
1392
1396
  },
1393
1397
  get children() {
1394
1398
  var t = ni();
1395
- return F(t, () => e.state), t;
1399
+ return I(t, () => e.state), t;
1396
1400
  }
1397
1401
  }), null), t;
1398
1402
  })()
1399
1403
  ], o = () => ({ "--widget-color": e.tone ?? "var(--tone-neutral)" });
1400
1404
  return (() => {
1401
1405
  var r = ai();
1402
- return F(r, N(E, {
1406
+ return I(r, P(E, {
1403
1407
  get when() {
1404
1408
  return t();
1405
1409
  },
1406
1410
  get fallback() {
1407
1411
  return (() => {
1408
1412
  var e = oi();
1409
- return F(e, a), P((t) => {
1413
+ return I(e, a), F((t) => {
1410
1414
  var n = `${Rt({
1411
1415
  variant: "outline",
1412
1416
  size: "none"
1413
1417
  })} glasshome-panel-row glasshome-panel-row-static`, r = o();
1414
- return n !== t.e && M(e, t.e = n), t.t = z(e, r, t.t), t;
1418
+ return n !== t.e && N(e, t.e = n), t.t = B(e, r, t.t), t;
1415
1419
  }, {
1416
1420
  e: void 0,
1417
1421
  t: void 0
@@ -1419,7 +1423,7 @@ function mi(e) {
1419
1423
  })();
1420
1424
  },
1421
1425
  get children() {
1422
- return N(Ee, {
1426
+ return P(Te, {
1423
1427
  variant: "outline",
1424
1428
  size: "none",
1425
1429
  class: "glasshome-panel-row",
@@ -1453,13 +1457,13 @@ function mi(e) {
1453
1457
  }
1454
1458
  });
1455
1459
  }
1456
- }), null), F(r, N(E, {
1460
+ }), null), I(r, P(E, {
1457
1461
  get when() {
1458
1462
  return e.trailing;
1459
1463
  },
1460
1464
  get children() {
1461
1465
  var t = ii();
1462
- return F(t, () => e.trailing), t;
1466
+ return I(t, () => e.trailing), t;
1463
1467
  }
1464
1468
  }), null), r;
1465
1469
  })();
@@ -1467,18 +1471,18 @@ function mi(e) {
1467
1471
  function hi(e) {
1468
1472
  return (() => {
1469
1473
  var t = si();
1470
- return F(t, N(T, {
1474
+ return I(t, P(T, {
1471
1475
  get each() {
1472
1476
  return e.items;
1473
1477
  },
1474
1478
  children: (e) => (() => {
1475
1479
  var t = ci(), n = t.firstChild, r = n.firstChild, i = r.nextSibling;
1476
- return F(t, N(U, {
1480
+ return I(t, P(U, {
1477
1481
  get icon() {
1478
1482
  return e.icon;
1479
1483
  },
1480
1484
  class: "glasshome-panel-fact-icon"
1481
- }), n), F(r, () => e.label), F(i, () => e.value), t;
1485
+ }), n), I(r, () => e.label), I(i, () => e.value), t;
1482
1486
  })()
1483
1487
  })), t;
1484
1488
  })();
@@ -1653,13 +1657,13 @@ function Ti(e) {
1653
1657
  let t = te(() => e.entityId), { callService: n } = an(), [r, i] = k();
1654
1658
  return D(() => {
1655
1659
  t(), i(void 0);
1656
- }), N(E, {
1660
+ }), P(E, {
1657
1661
  get when() {
1658
1662
  return t();
1659
1663
  },
1660
1664
  children: (t) => {
1661
1665
  let a = () => vi[t().domain] ?? Si, o = () => r() ?? a().level?.(t()), s = () => a().setLevel;
1662
- return N(mi, {
1666
+ return P(mi, {
1663
1667
  get icon() {
1664
1668
  let n = a().icon;
1665
1669
  return typeof n == "function" ? e.icon ?? n(t()) : e.icon ?? t().icon ?? yi[t().domain === "cover" ? t().deviceClass ?? "" : ""] ?? n;
@@ -1679,7 +1683,7 @@ function Ti(e) {
1679
1683
  return a().on(t());
1680
1684
  },
1681
1685
  get slide() {
1682
- return I(() => !!(s() && o() !== void 0))() ? {
1686
+ return L(() => !!(s() && o() !== void 0))() ? {
1683
1687
  value: o() ?? 0,
1684
1688
  onChange: i,
1685
1689
  onCommit: (e) => s()?.(n, t(), e)
@@ -1697,7 +1701,7 @@ function Ti(e) {
1697
1701
  }
1698
1702
  //#endregion
1699
1703
  //#region src/framework/dialogs/debug-view.tsx
1700
- var Ei = /*#__PURE__*/ B("<pre class=\"text-muted-foreground max-h-64 overflow-auto p-3 font-mono text-xs leading-relaxed\">"), Di = /*#__PURE__*/ B("<span class=\"flex items-center gap-2\">"), Oi = /*#__PURE__*/ B("<section class=\"flex min-w-0 flex-col gap-2\"><header class=\"flex items-center gap-3\"><div class=\"flex min-w-0 flex-1 flex-col\"></div></header><div class=\"flex flex-col gap-2\">"), ki = /*#__PURE__*/ B("<div class=\"flex flex-col\">"), Ai = /*#__PURE__*/ B("<pre class=\"text-muted-foreground max-h-96 overflow-auto p-3 font-mono text-xs leading-relaxed whitespace-pre-wrap\">");
1704
+ var Ei = /*#__PURE__*/ V("<pre class=\"text-muted-foreground max-h-64 overflow-auto p-3 font-mono text-xs leading-relaxed\">"), Di = /*#__PURE__*/ V("<span class=\"flex items-center gap-2\">"), Oi = /*#__PURE__*/ V("<section class=\"flex min-w-0 flex-col gap-2\"><header class=\"flex items-center gap-3\"><div class=\"flex min-w-0 flex-1 flex-col\"></div></header><div class=\"flex flex-col gap-2\">"), ki = /*#__PURE__*/ V("<div class=\"flex flex-col\">"), Ai = /*#__PURE__*/ V("<pre class=\"text-muted-foreground max-h-96 overflow-auto p-3 font-mono text-xs leading-relaxed whitespace-pre-wrap\">");
1701
1705
  function ji(e, t, n) {
1702
1706
  return {
1703
1707
  widgetConfig: e,
@@ -1726,7 +1730,7 @@ var Mi = (e) => JSON.stringify(e, null, 2), Ni = {
1726
1730
  };
1727
1731
  function Fi(e) {
1728
1732
  let { state: t, copy: n } = Yt();
1729
- return N(Ee, {
1733
+ return P(Te, {
1730
1734
  variant: "ghost",
1731
1735
  size: "icon",
1732
1736
  class: "size-8",
@@ -1735,7 +1739,7 @@ function Fi(e) {
1735
1739
  },
1736
1740
  onClick: () => void n(e.text()),
1737
1741
  get children() {
1738
- return N(U, {
1742
+ return P(U, {
1739
1743
  get icon() {
1740
1744
  return Ni[t()];
1741
1745
  },
@@ -1764,41 +1768,41 @@ function Bi(e) {
1764
1768
  return Number.isNaN(t.getTime()) ? e : t.toLocaleString();
1765
1769
  }
1766
1770
  function Vi(e) {
1767
- return N(mt, {
1771
+ return P(mt, {
1768
1772
  class: "overflow-hidden p-0",
1769
1773
  get children() {
1770
1774
  var t = Ei();
1771
- return F(t, () => Mi(e.value)), t;
1775
+ return I(t, () => Mi(e.value)), t;
1772
1776
  }
1773
1777
  });
1774
1778
  }
1775
1779
  function Hi(e) {
1776
- return N(ye, {
1780
+ return P(ve, {
1777
1781
  collapsible: !0,
1778
1782
  class: "border-border/50 border-t",
1779
1783
  get children() {
1780
- return N(xe, {
1784
+ return P(be, {
1781
1785
  get value() {
1782
1786
  return e.label;
1783
1787
  },
1784
1788
  get children() {
1785
- return [N(Se, {
1789
+ return [P(xe, {
1786
1790
  class: "text-muted-foreground py-3 text-xs",
1787
1791
  get children() {
1788
1792
  var t = Di();
1789
- return F(t, () => e.label, null), F(t, N(E, {
1793
+ return I(t, () => e.label, null), I(t, P(E, {
1790
1794
  get when() {
1791
1795
  return e.count !== void 0;
1792
1796
  },
1793
1797
  get children() {
1794
- return N(ze, { get children() {
1798
+ return P(Re, { get children() {
1795
1799
  return e.count;
1796
1800
  } });
1797
1801
  }
1798
1802
  }), null), t;
1799
1803
  }
1800
- }), N(be, { get children() {
1801
- return N(Vi, { get value() {
1804
+ }), P(ye, { get children() {
1805
+ return P(Vi, { get value() {
1802
1806
  return e.value;
1803
1807
  } });
1804
1808
  } })];
@@ -1810,55 +1814,55 @@ function Hi(e) {
1810
1814
  function Ui(e) {
1811
1815
  return (() => {
1812
1816
  var t = Oi(), n = t.firstChild, r = n.firstChild, i = n.nextSibling;
1813
- return F(n, N(ft, {
1817
+ return I(n, P(ft, {
1814
1818
  get icon() {
1815
1819
  return e.icon;
1816
1820
  },
1817
1821
  size: "sm"
1818
- }), r), F(r, N(Ge, {
1822
+ }), r), I(r, P(Ge, {
1819
1823
  class: "truncate",
1820
1824
  get children() {
1821
1825
  return e.title;
1822
1826
  }
1823
- }), null), F(r, N(E, {
1827
+ }), null), I(r, P(E, {
1824
1828
  get when() {
1825
1829
  return e.subtitle;
1826
1830
  },
1827
- children: (e) => N(pt, {
1831
+ children: (e) => P(pt, {
1828
1832
  class: "truncate font-mono",
1829
1833
  get children() {
1830
1834
  return e();
1831
1835
  }
1832
1836
  })
1833
- }), null), F(n, () => e.badge, null), F(n, N(Fi, {
1837
+ }), null), I(n, () => e.badge, null), I(n, P(Fi, {
1834
1838
  get label() {
1835
1839
  return `Copy ${e.title}`;
1836
1840
  },
1837
1841
  text: () => Mi(e.source)
1838
- }), null), F(i, () => e.children), t;
1842
+ }), null), I(i, () => e.children), t;
1839
1843
  })();
1840
1844
  }
1841
1845
  function Wi(e) {
1842
1846
  let t = O(() => Object.entries(e.record)), n = O(() => t().flatMap(([e, t]) => Li(t) ? [[e, t]] : [])), r = O(() => t().filter(([, e]) => !Li(e)));
1843
- return N(E, {
1847
+ return P(E, {
1844
1848
  get when() {
1845
1849
  return t().length > 0;
1846
1850
  },
1847
1851
  get fallback() {
1848
- return N(pt, { children: "Nothing set" });
1852
+ return P(pt, { children: "Nothing set" });
1849
1853
  },
1850
1854
  get children() {
1851
- return [N(E, {
1855
+ return [P(E, {
1852
1856
  get when() {
1853
1857
  return n().length > 0;
1854
1858
  },
1855
1859
  get children() {
1856
1860
  var e = ki();
1857
- return F(e, N(T, {
1861
+ return I(e, P(T, {
1858
1862
  get each() {
1859
1863
  return n();
1860
1864
  },
1861
- children: ([e, t]) => N(H, {
1865
+ children: ([e, t]) => P(Ue, {
1862
1866
  get label() {
1863
1867
  return Ii(e);
1864
1868
  },
@@ -1868,11 +1872,11 @@ function Wi(e) {
1868
1872
  })
1869
1873
  })), e;
1870
1874
  }
1871
- }), N(T, {
1875
+ }), P(T, {
1872
1876
  get each() {
1873
1877
  return r();
1874
1878
  },
1875
- children: ([e, t]) => N(Hi, {
1879
+ children: ([e, t]) => P(Hi, {
1876
1880
  get label() {
1877
1881
  return Ii(e);
1878
1882
  },
@@ -1887,7 +1891,7 @@ function Wi(e) {
1887
1891
  }
1888
1892
  function Gi(e) {
1889
1893
  let t = () => e.entity.attributes ?? {};
1890
- return N(Ui, {
1894
+ return P(Ui, {
1891
1895
  icon: "lucide:activity",
1892
1896
  get title() {
1893
1897
  return e.entity.friendly_name ?? e.entity.entity_id;
@@ -1896,7 +1900,7 @@ function Gi(e) {
1896
1900
  return e.entity.entity_id;
1897
1901
  },
1898
1902
  get badge() {
1899
- return N(we, { get children() {
1903
+ return P(Ce, { get children() {
1900
1904
  return e.entity.state;
1901
1905
  } });
1902
1906
  },
@@ -1906,48 +1910,48 @@ function Gi(e) {
1906
1910
  get children() {
1907
1911
  return [(() => {
1908
1912
  var t = ki();
1909
- return F(t, N(H, {
1913
+ return I(t, P(Ue, {
1910
1914
  label: "Domain",
1911
1915
  get children() {
1912
1916
  return e.entity.domain;
1913
1917
  }
1914
- }), null), F(t, N(E, {
1918
+ }), null), I(t, P(E, {
1915
1919
  get when() {
1916
1920
  return e.entity.device_class;
1917
1921
  },
1918
- children: (e) => N(H, {
1922
+ children: (e) => P(Ue, {
1919
1923
  label: "Device class",
1920
1924
  get children() {
1921
1925
  return e();
1922
1926
  }
1923
1927
  })
1924
- }), null), F(t, N(E, {
1928
+ }), null), I(t, P(E, {
1925
1929
  get when() {
1926
1930
  return e.entity.area_id;
1927
1931
  },
1928
- children: (e) => N(H, {
1932
+ children: (e) => P(Ue, {
1929
1933
  label: "Area",
1930
1934
  get children() {
1931
1935
  return e();
1932
1936
  }
1933
1937
  })
1934
- }), null), F(t, N(H, {
1938
+ }), null), I(t, P(Ue, {
1935
1939
  label: "Changed",
1936
1940
  get children() {
1937
1941
  return Bi(e.entity.last_changed);
1938
1942
  }
1939
- }), null), F(t, N(H, {
1943
+ }), null), I(t, P(Ue, {
1940
1944
  label: "Updated",
1941
1945
  get children() {
1942
1946
  return Bi(e.entity.last_updated);
1943
1947
  }
1944
1948
  }), null), t;
1945
- })(), N(E, {
1949
+ })(), P(E, {
1946
1950
  get when() {
1947
1951
  return zi(t()) > 0;
1948
1952
  },
1949
1953
  get children() {
1950
- return N(Hi, {
1954
+ return P(Hi, {
1951
1955
  label: "Attributes",
1952
1956
  get count() {
1953
1957
  return zi(t());
@@ -1963,31 +1967,31 @@ function Gi(e) {
1963
1967
  }
1964
1968
  function Ki(e) {
1965
1969
  let t = O(() => Object.keys(e.data).filter((e) => e !== "widgetConfig" && e !== "entities"));
1966
- return N(We, { get children() {
1970
+ return P(We, { get children() {
1967
1971
  return [
1968
- N(Ui, {
1972
+ P(Ui, {
1969
1973
  icon: "lucide:sliders-horizontal",
1970
1974
  title: "Configuration",
1971
1975
  get source() {
1972
1976
  return e.data.widgetConfig;
1973
1977
  },
1974
1978
  get children() {
1975
- return N(Wi, { get record() {
1979
+ return P(Wi, { get record() {
1976
1980
  return e.data.widgetConfig;
1977
1981
  } });
1978
1982
  }
1979
1983
  }),
1980
- N(T, {
1984
+ P(T, {
1981
1985
  get each() {
1982
1986
  return e.data.entities;
1983
1987
  },
1984
- children: (e) => N(Gi, { entity: e })
1988
+ children: (e) => P(Gi, { entity: e })
1985
1989
  }),
1986
- N(T, {
1990
+ P(T, {
1987
1991
  get each() {
1988
1992
  return t();
1989
1993
  },
1990
- children: (t) => N(Ui, {
1994
+ children: (t) => P(Ui, {
1991
1995
  icon: "lucide:braces",
1992
1996
  get title() {
1993
1997
  return Ii(t);
@@ -1996,7 +2000,7 @@ function Ki(e) {
1996
2000
  return e.data[t];
1997
2001
  },
1998
2002
  get children() {
1999
- return N(Vi, { get value() {
2003
+ return P(Vi, { get value() {
2000
2004
  return e.data[t];
2001
2005
  } });
2002
2006
  }
@@ -2012,45 +2016,45 @@ function qi(e) {
2012
2016
  }
2013
2017
  function Ji(e) {
2014
2018
  let t = O(() => qi(e.data));
2015
- return N(E, {
2019
+ return P(E, {
2016
2020
  get when() {
2017
2021
  return e.data !== void 0;
2018
2022
  },
2019
2023
  get fallback() {
2020
- return N(Be, { get children() {
2021
- return N(He, { get children() {
2022
- return [N(Ue, { children: "Nothing to inspect" }), N(Ve, { children: "This widget publishes no debug information." })];
2024
+ return P(ze, { get children() {
2025
+ return P(Ve, { get children() {
2026
+ return [P(He, { children: "Nothing to inspect" }), P(Be, { children: "This widget publishes no debug information." })];
2023
2027
  } });
2024
2028
  } });
2025
2029
  },
2026
2030
  get children() {
2027
- return N(E, {
2031
+ return P(E, {
2028
2032
  get when() {
2029
2033
  return t();
2030
2034
  },
2031
2035
  get fallback() {
2032
- return N(Ui, {
2036
+ return P(Ui, {
2033
2037
  icon: "lucide:braces",
2034
2038
  title: "Debug data",
2035
2039
  get source() {
2036
2040
  return e.data;
2037
2041
  },
2038
2042
  get children() {
2039
- return N(E, {
2043
+ return P(E, {
2040
2044
  get when() {
2041
2045
  return typeof e.data == "string";
2042
2046
  },
2043
2047
  get fallback() {
2044
- return N(Vi, { get value() {
2048
+ return P(Vi, { get value() {
2045
2049
  return e.data;
2046
2050
  } });
2047
2051
  },
2048
2052
  get children() {
2049
- return N(mt, {
2053
+ return P(mt, {
2050
2054
  class: "overflow-hidden p-0",
2051
2055
  get children() {
2052
2056
  var t = Ai();
2053
- return F(t, () => e.data), t;
2057
+ return I(t, () => e.data), t;
2054
2058
  }
2055
2059
  });
2056
2060
  }
@@ -2058,7 +2062,7 @@ function Ji(e) {
2058
2062
  }
2059
2063
  });
2060
2064
  },
2061
- children: (e) => N(Ki, { get data() {
2065
+ children: (e) => P(Ki, { get data() {
2062
2066
  return e();
2063
2067
  } })
2064
2068
  });
@@ -2081,7 +2085,7 @@ function Xi(e, t) {
2081
2085
  }
2082
2086
  //#endregion
2083
2087
  //#region src/framework/dialogs/WidgetDialog.tsx
2084
- var Zi = /*#__PURE__*/ B("<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\">"), Qi = /*#__PURE__*/ B("<div class=\"bg-muted/30 rounded-lg p-2 text-center md:p-6\"><p class=\"text-muted-foreground text-sm\">No edit options available"), $i = /*#__PURE__*/ B("<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>"), ea = /*#__PURE__*/ B("<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\">"), ta = /*#__PURE__*/ B("<div class=glasshome-sheet>"), na = /*#__PURE__*/ B("<div class=glasshome-sheet-band aria-hidden=true><img alt>"), ra = /*#__PURE__*/ B("<span class=\"glasshome-widget-icon glass glass-tint glasshome-sheet-icon\">"), ia = /*#__PURE__*/ B("<span class=\"inline-flex size-3.5 shrink-0 items-center\">"), aa = (e) => Qt(e), oa = {
2088
+ var Zi = /*#__PURE__*/ V("<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\">"), Qi = /*#__PURE__*/ V("<div class=\"bg-muted/30 rounded-lg p-2 text-center md:p-6\"><p class=\"text-muted-foreground text-sm\">No edit options available"), $i = /*#__PURE__*/ V("<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>"), ea = /*#__PURE__*/ V("<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\">"), ta = /*#__PURE__*/ V("<div class=glasshome-sheet>"), na = /*#__PURE__*/ V("<div class=glasshome-sheet-band aria-hidden=true><img alt>"), ra = /*#__PURE__*/ V("<span class=\"glasshome-widget-icon glass glass-tint glasshome-sheet-icon\">"), ia = /*#__PURE__*/ V("<span class=\"inline-flex size-3.5 shrink-0 items-center\">"), aa = (e) => Qt(e), oa = {
2085
2089
  sm: "sm",
2086
2090
  md: "md",
2087
2091
  lg: "lg",
@@ -2129,7 +2133,7 @@ function ca(e) {
2129
2133
  icon: () => Zi(),
2130
2134
  content: () => t.editContent ?? (() => {
2131
2135
  let e = t.SchemaForm, o = n() ? a() : void 0;
2132
- return !o || !e ? Qi() : N(e, {
2136
+ return !o || !e ? Qi() : P(e, {
2133
2137
  schema: o,
2134
2138
  get data() {
2135
2139
  return r();
@@ -2144,16 +2148,16 @@ function ca(e) {
2144
2148
  id: "controls",
2145
2149
  label: "Controls",
2146
2150
  icon: () => $i(),
2147
- content: () => t.controlsContent ?? N(Be, { get children() {
2148
- return N(He, { get children() {
2149
- return [N(Ue, { children: "No controls" }), N(Ve, { children: "This widget is shown as is." })];
2151
+ content: () => t.controlsContent ?? P(ze, { get children() {
2152
+ return P(Ve, { get children() {
2153
+ return [P(He, { children: "No controls" }), P(Be, { children: "This widget is shown as is." })];
2150
2154
  } });
2151
2155
  } })
2152
2156
  }), e.push({
2153
2157
  id: "debug",
2154
2158
  label: "Debug",
2155
2159
  icon: () => ea(),
2156
- content: () => t.debugContent ?? N(Ji, { get data() {
2160
+ content: () => t.debugContent ?? P(Ji, { get data() {
2157
2161
  return t.debugData;
2158
2162
  } })
2159
2163
  }), e;
@@ -2163,66 +2167,66 @@ function ca(e) {
2163
2167
  icon: t.tile?.icon ?? y?.icon(),
2164
2168
  tone: t.tile?.tone ?? y?.accent() ?? y?.tone(),
2165
2169
  backdrop: t.tile?.backdrop
2166
- }), x = () => v?.developer?.() ?? !1, S = () => V() === "controls" && t.sheet !== void 0, ee = la(), te = () => v?.anchor?.(), C = () => S() && !ee() && te() !== void 0, w = Yt(), ne = () => {
2170
+ }), x = () => v?.developer?.() ?? !1, S = () => H() === "controls" && t.sheet !== void 0, ee = la(), te = () => v?.anchor?.(), C = () => S() && !ee() && te() !== void 0, w = Yt(), ne = () => {
2167
2171
  if (t.debugData === void 0) return;
2168
2172
  let e = typeof t.debugData == "string" ? t.debugData : JSON.stringify(t.debugData, null, 2);
2169
2173
  w.copy(e);
2170
- }, re = t.ResponsiveDialog, ie = t.ResponsiveDialogContent, ae = t.ResponsiveDialogHeader, oe = t.ResponsiveDialogTitle, se = t.ResponsiveDialogDescription, ce = t.ResponsiveDialogBody ?? nt, le = t.ResponsiveDialogFooter ?? st, ue = t.Tabs ?? Tt, de = t.TabsList ?? kt, fe = t.TabsTrigger ?? jt, pe = t.TabsContent ?? Dt, he = t.Button, _e = O(me([
2174
+ }, re = t.ResponsiveDialog, ie = t.ResponsiveDialogContent, ae = t.ResponsiveDialogHeader, oe = t.ResponsiveDialogTitle, se = t.ResponsiveDialogDescription, ce = t.ResponsiveDialogBody ?? nt, le = t.ResponsiveDialogFooter ?? st, ue = t.Tabs ?? Tt, de = t.TabsList ?? kt, fe = t.TabsTrigger ?? jt, pe = t.TabsContent ?? Dt, he = t.Button, M = O(me([
2171
2175
  () => t.open,
2172
2176
  a,
2173
2177
  () => t.config,
2174
2178
  () => t.tabs
2175
- ], () => _())), M = (e) => n() ? u(e) : t.onOpenChange(e), ve = () => n() ? l() : t.hasUnsavedChanges, R = () => n() ? d : t.onSave, z = () => _e().filter((e) => e.id !== "debug" || x()), B = () => z().filter((e) => e.id !== "controls" || t.sheet === void 0), V = () => {
2176
- let e = z(), n = m() === "controls" && t.sheet === void 0 && !("controlsContent" in t) && !t.tabs ? "edit" : m();
2179
+ ], () => _())), N = (e) => n() ? u(e) : t.onOpenChange(e), _e = () => n() ? l() : t.hasUnsavedChanges, z = () => n() ? d : t.onSave, B = () => M().filter((e) => e.id !== "debug" || x()), V = () => B().filter((e) => e.id !== "controls" || t.sheet === void 0), H = () => {
2180
+ let e = B(), n = m() === "controls" && t.sheet === void 0 && !("controlsContent" in t) && !t.tabs ? "edit" : m();
2177
2181
  return e.some((e) => e.id === n) ? n : e[0]?.id ?? n;
2178
- }, ye = () => V() === "edit" && (R() || t.onDelete) || V() === "debug" && t.debugData !== void 0;
2179
- return N(re, {
2182
+ }, ve = () => H() === "edit" && (z() || t.onDelete) || H() === "debug" && t.debugData !== void 0;
2183
+ return P(re, {
2180
2184
  get open() {
2181
2185
  return t.open;
2182
2186
  },
2183
- onOpenChange: (e) => M(e),
2187
+ onOpenChange: (e) => N(e),
2184
2188
  get children() {
2185
- return N(E, {
2189
+ return P(E, {
2186
2190
  get when() {
2187
2191
  return !S();
2188
2192
  },
2189
2193
  get fallback() {
2190
- return N(ie, {
2194
+ return P(ie, {
2191
2195
  size: "sm",
2192
2196
  get ariaLabel() {
2193
2197
  return t.title;
2194
2198
  },
2195
2199
  get anchor() {
2196
- return I(() => !!C())() ? te() : void 0;
2200
+ return L(() => !!C())() ? te() : void 0;
2197
2201
  },
2198
2202
  class: "glasshome-sheet-surface",
2199
2203
  get style() {
2200
- return I(() => !!b().tone)() ? {
2204
+ return L(() => !!b().tone)() ? {
2201
2205
  "--glass-tone": b().tone,
2202
2206
  "--widget-color": b().tone
2203
2207
  } : void 0;
2204
2208
  },
2205
2209
  get children() {
2206
2210
  return [
2207
- N(E, {
2211
+ P(E, {
2208
2212
  get when() {
2209
2213
  return b().backdrop;
2210
2214
  },
2211
2215
  children: (e) => (() => {
2212
2216
  var t = na(), n = t.firstChild;
2213
- return P(() => L(n, "src", e())), t;
2217
+ return F(() => R(n, "src", e())), t;
2214
2218
  })()
2215
2219
  }),
2216
- N(ae, {
2220
+ P(ae, {
2217
2221
  class: "items-center",
2218
2222
  get media() {
2219
- return N(E, {
2223
+ return P(E, {
2220
2224
  get when() {
2221
2225
  return b().icon;
2222
2226
  },
2223
2227
  children: (e) => (() => {
2224
2228
  var t = ra();
2225
- return F(t, N(U, {
2229
+ return I(t, P(U, {
2226
2230
  get icon() {
2227
2231
  return e();
2228
2232
  },
@@ -2232,7 +2236,7 @@ function ca(e) {
2232
2236
  });
2233
2237
  },
2234
2238
  get children() {
2235
- return N(oe, {
2239
+ return P(oe, {
2236
2240
  class: "truncate",
2237
2241
  get children() {
2238
2242
  return t.title;
@@ -2240,16 +2244,16 @@ function ca(e) {
2240
2244
  });
2241
2245
  }
2242
2246
  }),
2243
- N(ce, { get children() {
2247
+ P(ce, { get children() {
2244
2248
  var e = ta();
2245
- return F(e, () => t.sheet?.()), e;
2249
+ return I(e, () => t.sheet?.()), e;
2246
2250
  } })
2247
2251
  ];
2248
2252
  }
2249
2253
  });
2250
2254
  },
2251
2255
  get children() {
2252
- return N(ie, {
2256
+ return P(ie, {
2253
2257
  get size() {
2254
2258
  return g();
2255
2259
  },
@@ -2257,70 +2261,70 @@ function ca(e) {
2257
2261
  return t.class;
2258
2262
  },
2259
2263
  get children() {
2260
- return N(ue, {
2264
+ return P(ue, {
2261
2265
  get value() {
2262
- return V();
2266
+ return H();
2263
2267
  },
2264
2268
  onChange: h,
2265
2269
  layout: "split",
2266
2270
  get children() {
2267
2271
  return [
2268
- N(ae, {
2272
+ P(ae, {
2269
2273
  class: "flex-wrap",
2270
2274
  get action() {
2271
- return [N(E, {
2275
+ return [P(E, {
2272
2276
  get when() {
2273
2277
  return x() || t.tabs !== void 0;
2274
2278
  },
2275
2279
  get children() {
2276
- return N(de, {
2280
+ return P(de, {
2277
2281
  class: "w-auto",
2278
2282
  get children() {
2279
- return N(T, {
2283
+ return P(T, {
2280
2284
  get each() {
2281
- return B();
2285
+ return V();
2282
2286
  },
2283
- children: (e) => N(fe, {
2287
+ children: (e) => P(fe, {
2284
2288
  get value() {
2285
2289
  return e.id;
2286
2290
  },
2287
2291
  get children() {
2288
2292
  return [(() => {
2289
2293
  var t = ia();
2290
- return F(t, () => e.icon()), t;
2291
- })(), I(() => e.label)];
2294
+ return I(t, () => e.icon()), t;
2295
+ })(), L(() => e.label)];
2292
2296
  }
2293
2297
  })
2294
2298
  });
2295
2299
  }
2296
2300
  });
2297
2301
  }
2298
- }), I(() => t.headerActions)];
2302
+ }), L(() => t.headerActions)];
2299
2303
  },
2300
2304
  get children() {
2301
- return [N(oe, {
2305
+ return [P(oe, {
2302
2306
  class: "truncate",
2303
2307
  get children() {
2304
2308
  return t.title;
2305
2309
  }
2306
- }), N(E, {
2310
+ }), P(E, {
2307
2311
  get when() {
2308
2312
  return t.description;
2309
2313
  },
2310
2314
  get children() {
2311
- return N(se, { get children() {
2315
+ return P(se, { get children() {
2312
2316
  return t.description;
2313
2317
  } });
2314
2318
  }
2315
2319
  })];
2316
2320
  }
2317
2321
  }),
2318
- N(ce, { get children() {
2319
- return N(T, {
2322
+ P(ce, { get children() {
2323
+ return P(T, {
2320
2324
  get each() {
2321
- return z();
2325
+ return B();
2322
2326
  },
2323
- children: (e) => N(pe, {
2327
+ children: (e) => P(pe, {
2324
2328
  get value() {
2325
2329
  return e.id;
2326
2330
  },
@@ -2330,19 +2334,19 @@ function ca(e) {
2330
2334
  })
2331
2335
  });
2332
2336
  } }),
2333
- N(E, {
2337
+ P(E, {
2334
2338
  get when() {
2335
- return ye();
2339
+ return ve();
2336
2340
  },
2337
2341
  get children() {
2338
- return N(le, { get children() {
2342
+ return P(le, { get children() {
2339
2343
  return [
2340
- N(E, {
2344
+ P(E, {
2341
2345
  get when() {
2342
- return I(() => V() === "edit")() && t.onDelete;
2346
+ return L(() => H() === "edit")() && t.onDelete;
2343
2347
  },
2344
2348
  get children() {
2345
- return N(he, {
2349
+ return P(he, {
2346
2350
  size: "sm",
2347
2351
  variant: "destructive",
2348
2352
  onClick: () => t.onDelete?.(),
@@ -2350,27 +2354,27 @@ function ca(e) {
2350
2354
  });
2351
2355
  }
2352
2356
  }),
2353
- N(E, {
2357
+ P(E, {
2354
2358
  get when() {
2355
- return I(() => V() === "edit")() && R();
2359
+ return L(() => H() === "edit")() && z();
2356
2360
  },
2357
2361
  get children() {
2358
- return N(he, {
2362
+ return P(he, {
2359
2363
  size: "sm",
2360
2364
  get disabled() {
2361
- return !ve();
2365
+ return !_e();
2362
2366
  },
2363
- onClick: () => R()?.(),
2367
+ onClick: () => z()?.(),
2364
2368
  children: "Save"
2365
2369
  });
2366
2370
  }
2367
2371
  }),
2368
- N(E, {
2372
+ P(E, {
2369
2373
  get when() {
2370
- return I(() => V() === "debug")() && t.debugData !== void 0;
2374
+ return L(() => H() === "debug")() && t.debugData !== void 0;
2371
2375
  },
2372
2376
  get children() {
2373
- return N(he, {
2377
+ return P(he, {
2374
2378
  size: "sm",
2375
2379
  variant: "outline",
2376
2380
  onClick: ne,
@@ -2849,15 +2853,35 @@ function Wa() {
2849
2853
  });
2850
2854
  }
2851
2855
  //#endregion
2856
+ //#region src/theme.ts
2857
+ var Ga = /* @__PURE__ */ new Map(), Ka;
2858
+ function qa(e) {
2859
+ let t = new MutationObserver(() => {
2860
+ for (let [t, [, n]] of Ga) n(e.classList.contains(t));
2861
+ });
2862
+ return t.observe(e, {
2863
+ attributes: !0,
2864
+ attributeFilter: ["class"]
2865
+ }), t;
2866
+ }
2867
+ function Ja(e) {
2868
+ if (typeof document > "u") return !1;
2869
+ let t = document.documentElement, n = Ga.get(e);
2870
+ return n || (n = k(t.classList.contains(e)), Ga.set(e, n), Ka ??= qa(t)), n[0](), t.classList.contains(e);
2871
+ }
2872
+ function Ya() {
2873
+ return Ja("dark");
2874
+ }
2875
+ //#endregion
2852
2876
  //#region src/framework/hooks/use-reduced-motion.ts
2853
- function Ga() {
2877
+ function Xa() {
2854
2878
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => !1;
2855
2879
  let e = window.matchMedia("(prefers-reduced-motion: reduce)"), [t, n] = k(e.matches), r = (e) => n(e.matches);
2856
- return e.addEventListener("change", r), A(() => e.removeEventListener("change", r)), t;
2880
+ return e.addEventListener("change", r), A(() => e.removeEventListener("change", r)), () => t() || Ja("reduce-motion");
2857
2881
  }
2858
2882
  //#endregion
2859
2883
  //#region src/framework/hooks/use-widget-entity-group.ts
2860
- function Ka(e) {
2884
+ function Za(e) {
2861
2885
  let t = e.minEntities ?? 1, n = O(() => e.entities().length), r = O(() => n() >= t), i = O(() => !r() || !e.calculateGroupData ? null : e.calculateGroupData(e.entities())), a = O(() => {
2862
2886
  if (!r()) return;
2863
2887
  let t = e.aggregationMode?.();
@@ -2877,7 +2901,7 @@ function Ka(e) {
2877
2901
  }
2878
2902
  //#endregion
2879
2903
  //#region src/framework/theming/svg-colors.ts
2880
- var qa = {
2904
+ var Qa = {
2881
2905
  solar: "oklch(0.74 0.18 60)",
2882
2906
  grid: "oklch(0.62 0.12 245)",
2883
2907
  battery: "oklch(0.70 0.18 145)",
@@ -2886,21 +2910,21 @@ var qa = {
2886
2910
  positive: "oklch(0.70 0.14 160)",
2887
2911
  negative: "oklch(0.64 0.22 27)"
2888
2912
  };
2889
- function Ja(e) {
2913
+ function $a(e) {
2890
2914
  return {
2891
2915
  fill: `color-mix(in oklch, ${e} 20%, transparent)`,
2892
2916
  stroke: e,
2893
2917
  solid: e
2894
2918
  };
2895
2919
  }
2896
- var Ya = Object.fromEntries(Object.entries(qa).map(([e, t]) => [e, Ja(t)])), Xa = o.enum([
2920
+ var eo = Object.fromEntries(Object.entries(Qa).map(([e, t]) => [e, $a(t)])), to = o.enum([
2897
2921
  "success",
2898
2922
  "warning",
2899
2923
  "danger",
2900
2924
  "info",
2901
2925
  "neutral",
2902
2926
  "accent"
2903
- ]), Za = {
2927
+ ]), no = {
2904
2928
  title: e(() => o.string().optional().meta({
2905
2929
  title: "Title",
2906
2930
  description: "Optional display name override"
@@ -2920,38 +2944,38 @@ var Ya = Object.fromEntries(Object.entries(qa).map(([e, t]) => [e, Ja(t)])), Xa
2920
2944
  formType: "area-picker",
2921
2945
  title: "Area"
2922
2946
  }), "widgetFields.areaId")
2923
- }, Qa = 24;
2947
+ }, ro = 24;
2924
2948
  function $(e) {
2925
2949
  let t = {};
2926
2950
  for (let [n, r] of Object.entries(e)) r !== void 0 && (t[n] = r);
2927
2951
  return t;
2928
2952
  }
2929
- function $a() {
2953
+ function io() {
2930
2954
  return o.string().optional().meta({
2931
2955
  title: "Title",
2932
2956
  description: "Optional display name override"
2933
2957
  });
2934
2958
  }
2935
- function eo(e) {
2959
+ function ao(e) {
2936
2960
  return (e.default === void 0 ? o.string().optional() : o.string().default(e.default)).meta($({
2937
2961
  title: e.title,
2938
2962
  description: e.description
2939
2963
  }));
2940
2964
  }
2941
- function to(e) {
2965
+ function oo(e) {
2942
2966
  let t = o.number();
2943
2967
  return e.min !== void 0 && (t = t.min(e.min)), e.max !== void 0 && (t = t.max(e.max)), (e.default === void 0 ? t.optional() : t.default(e.default)).meta($({
2944
2968
  title: e.title,
2945
2969
  description: e.description
2946
2970
  }));
2947
2971
  }
2948
- function no(e) {
2972
+ function so(e) {
2949
2973
  return o.boolean().default(e.default ?? !1).meta($({
2950
2974
  title: e.title,
2951
2975
  description: e.description
2952
2976
  }));
2953
2977
  }
2954
- function ro(e, t) {
2978
+ function co(e, t) {
2955
2979
  let n = o.enum(e);
2956
2980
  return (t.default === void 0 ? n.optional() : n.default(t.default)).meta($({
2957
2981
  title: t.title,
@@ -2960,14 +2984,14 @@ function ro(e, t) {
2960
2984
  icons: t.icons
2961
2985
  }));
2962
2986
  }
2963
- function io(e, t) {
2987
+ function lo(e, t) {
2964
2988
  return o.array(o.enum(e)).default([...t.default ?? []]).meta($({
2965
2989
  title: t.title,
2966
2990
  description: t.description,
2967
2991
  labels: t.labels
2968
2992
  }));
2969
2993
  }
2970
- function ao(e, t) {
2994
+ function uo(e, t) {
2971
2995
  return o.array(o.string()).default([]).meta($({
2972
2996
  domain: e,
2973
2997
  title: t?.title ?? "Entities",
@@ -2975,7 +2999,7 @@ function ao(e, t) {
2975
2999
  deviceClass: t?.deviceClass
2976
3000
  }));
2977
3001
  }
2978
- function oo(e, t) {
3002
+ function fo(e, t) {
2979
3003
  return o.array(o.string()).default([]).meta($({
2980
3004
  domain: e,
2981
3005
  title: t?.title ?? "Entity",
@@ -2984,13 +3008,13 @@ function oo(e, t) {
2984
3008
  singleSelect: !0
2985
3009
  }));
2986
3010
  }
2987
- function so(e) {
3011
+ function po(e) {
2988
3012
  return o.string().optional().meta({
2989
3013
  formType: "area-picker",
2990
3014
  title: e?.title ?? "Area"
2991
3015
  });
2992
3016
  }
2993
- function co(e) {
3017
+ function mo(e) {
2994
3018
  let t = o.string().meta($({
2995
3019
  formType: "icon-picker",
2996
3020
  title: e?.title ?? "Icon",
@@ -2998,7 +3022,7 @@ function co(e) {
2998
3022
  }));
2999
3023
  return e?.default === void 0 ? t.optional() : t.default(e.default);
3000
3024
  }
3001
- function lo(e) {
3025
+ function ho(e) {
3002
3026
  let t = e?.presets && Object.fromEntries(Object.entries(e.presets).map(([e, t]) => [e, {
3003
3027
  label: t.label,
3004
3028
  thumb: t.thumb
@@ -3010,36 +3034,36 @@ function lo(e) {
3010
3034
  }));
3011
3035
  return e?.default === void 0 ? n.optional() : n.default(e.default);
3012
3036
  }
3013
- function uo(e) {
3037
+ function go(e) {
3014
3038
  return o.array(o.string()).default([]).meta($({
3015
3039
  title: e.title,
3016
3040
  description: e.description
3017
3041
  }));
3018
3042
  }
3019
- function fo(e, t) {
3043
+ function _o(e, t) {
3020
3044
  let n = o.object(e);
3021
3045
  return n.default($t(n)).meta({ title: t.title });
3022
3046
  }
3023
- function po(e) {
3047
+ function vo(e) {
3024
3048
  return e.def;
3025
3049
  }
3026
- function mo(e) {
3050
+ function yo(e) {
3027
3051
  if (o.globalRegistry.get(e)?.formType === "list") return !0;
3028
- let t = po(e);
3029
- return t.shape ? Object.values(t.shape).some(mo) : t.options ? t.options.some(mo) : t.element ? mo(t.element) : t.innerType ? mo(t.innerType) : !1;
3052
+ let t = vo(e);
3053
+ return t.shape ? Object.values(t.shape).some(yo) : t.options ? t.options.some(yo) : t.element ? yo(t.element) : t.innerType ? yo(t.innerType) : !1;
3030
3054
  }
3031
- function ho(e) {
3032
- let t = e, n = po(t).innerType;
3033
- for (; n;) t = n, n = po(t).innerType;
3055
+ function bo(e) {
3056
+ let t = e, n = vo(t).innerType;
3057
+ for (; n;) t = n, n = vo(t).innerType;
3034
3058
  return t;
3035
3059
  }
3036
- function go(e) {
3037
- let t = po(ho(e));
3060
+ function xo(e) {
3061
+ let t = vo(bo(e));
3038
3062
  if (t.shape) return new Set(Object.keys(t.shape));
3039
3063
  if (t.options) {
3040
3064
  let e = [];
3041
3065
  for (let n of t.options) {
3042
- let t = go(n);
3066
+ let t = xo(n);
3043
3067
  if (!t) return null;
3044
3068
  e.push(t);
3045
3069
  }
@@ -3051,7 +3075,7 @@ function go(e) {
3051
3075
  }
3052
3076
  return null;
3053
3077
  }
3054
- function _o(e, t, n) {
3078
+ function So(e, t, n) {
3055
3079
  let r = { [t]: n };
3056
3080
  try {
3057
3081
  return e.parse(r);
@@ -3059,12 +3083,12 @@ function _o(e, t, n) {
3059
3083
  return r;
3060
3084
  }
3061
3085
  }
3062
- function vo(e, t) {
3086
+ function Co(e, t) {
3063
3087
  if (!Number.isInteger(t.max) || t.max < 1) throw Error(`field.list: max must be a positive integer, got ${t.max}`);
3064
- if (t.max > Qa) throw Error(`field.list: max ${t.max} exceeds the ceiling of ${Qa}`);
3088
+ if (t.max > ro) throw Error(`field.list: max ${t.max} exceeds the ceiling of ${ro}`);
3065
3089
  if (t.min !== void 0 && (!Number.isInteger(t.min) || t.min < 0 || t.min > t.max)) throw Error(`field.list: min must be an integer between 0 and max, got ${t.min}`);
3066
- if (mo(e)) throw Error("field.list: a list item cannot contain another field.list (depth 1 only)");
3067
- if (t.labelField !== void 0 && !go(e)?.has(t.labelField)) throw Error(`field.list: labelField "${t.labelField}" must name a field present in every item`);
3090
+ if (yo(e)) throw Error("field.list: a list item cannot contain another field.list (depth 1 only)");
3091
+ if (t.labelField !== void 0 && !xo(e)?.has(t.labelField)) throw Error(`field.list: labelField "${t.labelField}" must name a field present in every item`);
3068
3092
  let n = o.array(e);
3069
3093
  return t.min !== void 0 && (n = n.min(t.min)), n = n.max(t.max), n.default([]).meta($({
3070
3094
  formType: "list",
@@ -3074,7 +3098,7 @@ function vo(e, t) {
3074
3098
  labelField: t.labelField
3075
3099
  }));
3076
3100
  }
3077
- function yo(e, t, n) {
3101
+ function wo(e, t, n) {
3078
3102
  let r = Object.keys(t)[0];
3079
3103
  if (r === void 0) throw Error("field.variants: at least one variant is required");
3080
3104
  if (n.shared && e in n.shared) throw Error(`field.variants: shared fields cannot redefine the discriminator "${e}"`);
@@ -3087,7 +3111,7 @@ function yo(e, t, n) {
3087
3111
  ...r,
3088
3112
  [e]: o.literal(t)
3089
3113
  })), a = o.discriminatedUnion(e, i), s = i[0];
3090
- return a.default(s ? _o(s, e, r) : {}).meta($({
3114
+ return a.default(s ? So(s, e, r) : {}).meta($({
3091
3115
  formType: "variants",
3092
3116
  discriminator: e,
3093
3117
  title: n.title,
@@ -3095,35 +3119,35 @@ function yo(e, t, n) {
3095
3119
  labels: n.labels
3096
3120
  }));
3097
3121
  }
3098
- var bo = {
3099
- title: $a,
3100
- text: eo,
3101
- number: to,
3102
- toggle: no,
3103
- choice: ro,
3104
- choices: io,
3105
- entities: ao,
3106
- entity: oo,
3107
- area: so,
3108
- icon: co,
3109
- image: lo,
3110
- stringList: uo,
3111
- group: fo,
3112
- list: vo,
3113
- variants: yo
3122
+ var To = {
3123
+ title: io,
3124
+ text: ao,
3125
+ number: oo,
3126
+ toggle: so,
3127
+ choice: co,
3128
+ choices: lo,
3129
+ entities: uo,
3130
+ entity: fo,
3131
+ area: po,
3132
+ icon: mo,
3133
+ image: ho,
3134
+ stringList: go,
3135
+ group: _o,
3136
+ list: Co,
3137
+ variants: wo
3114
3138
  };
3115
- function xo(e) {
3139
+ function Eo(e) {
3116
3140
  return o.object(e);
3117
3141
  }
3118
3142
  //#endregion
3119
3143
  //#region src/framework/image-src.ts
3120
- function So(e, t) {
3144
+ function Do(e, t) {
3121
3145
  let n = Vt(e);
3122
3146
  return n === void 0 ? Ut(e) : t?.[n]?.src;
3123
3147
  }
3124
3148
  //#endregion
3125
3149
  //#region src/shared/spline.ts
3126
- function Co(e) {
3150
+ function Oo(e) {
3127
3151
  if (e.length < 2) return "";
3128
3152
  let t = e[0], n = e[1];
3129
3153
  if (!t || !n) return "";
@@ -3149,15 +3173,10 @@ function Co(e) {
3149
3173
  return c;
3150
3174
  }
3151
3175
  //#endregion
3152
- //#region src/theme.ts
3153
- function wo() {
3154
- return document.documentElement.classList.contains("dark");
3155
- }
3156
- //#endregion
3157
3176
  //#region src/version.ts
3158
- var To = {
3177
+ var ko = {
3159
3178
  name: "@glasshome/widget-sdk",
3160
- version: "1.26.0",
3179
+ version: "1.27.1",
3161
3180
  description: "SDK for building GlassHome dashboard widgets with SolidJS",
3162
3181
  keywords: [
3163
3182
  "dashboard",
@@ -3229,7 +3248,7 @@ var To = {
3229
3248
  lint: "oxlint --type-aware . && oxfmt --check ."
3230
3249
  },
3231
3250
  dependencies: {
3232
- "@glasshome/widget-contract": "0.6.0",
3251
+ "@glasshome/widget-contract": "0.6.1",
3233
3252
  "@tailwindcss/vite": "^4.1.13",
3234
3253
  clsx: "^2.1.1",
3235
3254
  "happy-dom": "^20.0.0",
@@ -3262,4 +3281,4 @@ var To = {
3262
3281
  engines: { node: ">=18" }
3263
3282
  }.version;
3264
3283
  //#endregion
3265
- export { Ce as Badge, Te as Button, De as ButtonGroup, ke as Carousel, Ae as CarouselContent, je as CarouselDots, Me as CarouselItem, Ne as CarouselNext, Pe as CarouselPrevious, Fe as ColorDisc, Ie as ColorSlider, Le as ColorWheel, Re as CountPill, Je as Icon, Ye as Input, Xe as Label, Ti as PanelEntityRow, hi as PanelFacts, mi as PanelRow, pi as PanelRows, fi as PanelSection, $e as Progress, et as ResponsiveDialog, tt as ResponsiveDialogBody, rt as ResponsiveDialogClose, it as ResponsiveDialogContent, at as ResponsiveDialogDescription, ot as ResponsiveDialogFooter, ct as ResponsiveDialogHeader, lt as ResponsiveDialogTitle, To as SDK_VERSION, ut as SchemaForm, dt as SectionIcon, ht as SectionTitle, gt as Select, _t as SelectContent, vt as SelectItem, yt as SelectTrigger, bt as SelectValue, xt as Slider, St as SwatchPicker, Ct as Switch, wt as Tabs, Et as TabsContent, Ot as TabsList, At as TabsTrigger, Mt as TemperatureBar, Nt as Toggle, Pt as ToggleGroup, It as ToggleGroupItem, Xa as ToneSchema, Y as Widget, ar as WidgetAction, cr as WidgetBackdrop, or as WidgetChip, ir as WidgetChoice, Cr as WidgetContent, nr as WidgetControls, W as WidgetCtx, Ji as WidgetDebugTab, Ki as WidgetDebugView, ca as WidgetDialog, lr as WidgetGlyph, er as WidgetHead, tr as WidgetHero, Bn as WidgetIcon, sr as WidgetLayer, r as WidgetManifestSchema, Nn as WidgetSizeCtx, br as WidgetSliderFill, Tr as WidgetStatus, rr as WidgetStepper, Or as WidgetTitle, Br as WidgetValue, ji as buildDebugData, g as byDomain, kr as calculateLightGroup, Ar as calculateSensorGroup, zt as copyText, Fr as countActiveEntities, xo as defineConfig, en as defineWidget, t as deprecations, bo as field, n as formatDeprecation, i as formatSchemaError, Pr as getEntityAttribute, s as getForecasts, c as getStream, l as getWebRtcClientConfig, u as hassMediaUrl, Bt as imagePreset, So as imageSrc, Ht as imageUrl, hr as injectTokens, wo as isDark, Nr as isEntityActive, wi as isPanelControllable, Wt as mediaUrl, Co as monotoneCubicPath, Gt as parseColor, Kt as presetValue, d as sendWebRtcCandidate, f as startWebRtcSession, p as state, Ya as svgColors, m as trackEntityHistory, h as untrackEntityHistory, _ as useArea, v as useCalendarEvents, y as useCamera, In as useConfirm, b as useConnection, Jt as useCopyText, x as useCurrency, Wa as useDaylight, S as useEntities, ee as useEntity, C as useEntityHistory, w as useEntityStatistics, ne as useForecast, re as useHassConfig, Ma as useIntersectionPause, ie as useLocale, ja as useMaterial, Ga as useReducedMotion, an as useService, oe as useStore, se as useTemperatureUnit, cn as useToggle, sn as useTurnOff, on as useTurnOn, de as useUnitSystem, tn as useWidgetContext, da as useWidgetDashboard, un as useWidgetDialog, Pn as useWidgetDimensions, Ka as useWidgetEntityGroup, Mn as useWidgetGestures, pa as useWidgetViewer, Za as widgetFields, a as z };
3284
+ export { Se as Badge, we as Button, Ee as ButtonGroup, Oe as Carousel, ke as CarouselContent, Ae as CarouselDots, je as CarouselItem, Me as CarouselNext, Ne as CarouselPrevious, Pe as ColorDisc, Fe as ColorSlider, Ie as ColorWheel, Le as CountPill, Je as Icon, Ye as Input, Xe as Label, Ti as PanelEntityRow, hi as PanelFacts, mi as PanelRow, pi as PanelRows, fi as PanelSection, $e as Progress, et as ResponsiveDialog, tt as ResponsiveDialogBody, rt as ResponsiveDialogClose, it as ResponsiveDialogContent, at as ResponsiveDialogDescription, ot as ResponsiveDialogFooter, ct as ResponsiveDialogHeader, lt as ResponsiveDialogTitle, ko as SDK_VERSION, ut as SchemaForm, dt as SectionIcon, ht as SectionTitle, gt as Select, _t as SelectContent, vt as SelectItem, yt as SelectTrigger, bt as SelectValue, xt as Slider, St as SwatchPicker, Ct as Switch, wt as Tabs, Et as TabsContent, Ot as TabsList, At as TabsTrigger, Mt as TemperatureBar, Nt as Toggle, Pt as ToggleGroup, It as ToggleGroupItem, to as ToneSchema, Y as Widget, ar as WidgetAction, cr as WidgetBackdrop, or as WidgetChip, ir as WidgetChoice, Cr as WidgetContent, nr as WidgetControls, W as WidgetCtx, Ji as WidgetDebugTab, Ki as WidgetDebugView, ca as WidgetDialog, lr as WidgetGlyph, er as WidgetHead, tr as WidgetHero, Bn as WidgetIcon, sr as WidgetLayer, r as WidgetManifestSchema, Nn as WidgetSizeCtx, br as WidgetSliderFill, Tr as WidgetStatus, rr as WidgetStepper, Or as WidgetTitle, Br as WidgetValue, ji as buildDebugData, g as byDomain, kr as calculateLightGroup, Ar as calculateSensorGroup, zt as copyText, Fr as countActiveEntities, Eo as defineConfig, en as defineWidget, t as deprecations, To as field, n as formatDeprecation, i as formatSchemaError, Pr as getEntityAttribute, s as getForecasts, c as getStream, l as getWebRtcClientConfig, u as hassMediaUrl, Bt as imagePreset, Do as imageSrc, Ht as imageUrl, hr as injectTokens, Ya as isDark, Nr as isEntityActive, wi as isPanelControllable, Wt as mediaUrl, Oo as monotoneCubicPath, Gt as parseColor, Kt as presetValue, d as sendWebRtcCandidate, f as startWebRtcSession, p as state, eo as svgColors, m as trackEntityHistory, h as untrackEntityHistory, _ as useArea, v as useCalendarEvents, y as useCamera, In as useConfirm, b as useConnection, Jt as useCopyText, x as useCurrency, Wa as useDaylight, S as useEntities, ee as useEntity, C as useEntityHistory, w as useEntityStatistics, ne as useForecast, re as useHassConfig, Ma as useIntersectionPause, ie as useLocale, ja as useMaterial, Xa as useReducedMotion, an as useService, oe as useStore, se as useTemperatureUnit, cn as useToggle, sn as useTurnOff, on as useTurnOn, de as useUnitSystem, tn as useWidgetContext, da as useWidgetDashboard, un as useWidgetDialog, Pn as useWidgetDimensions, Za as useWidgetEntityGroup, Mn as useWidgetGestures, pa as useWidgetViewer, no as widgetFields, a as z };