@glasshome/widget-sdk 1.25.2 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { deprecate as e, deprecations as t, formatDeprecation as n } from "./dep
2
2
  import { WidgetManifestSchema as r, formatSchemaError as i } from "./schemas.js";
3
3
  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
- 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 C, useEntityHistory as w, useEntityStatistics as te, 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";
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
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
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";
@@ -1070,8 +1070,8 @@ function Br(e) {
1070
1070
  }
1071
1071
  //#endregion
1072
1072
  //#region src/framework/core/Widget.tsx
1073
- var Vr = /*#__PURE__*/ V("<span class=glasshome-widget-hold-flood aria-hidden=true>"), Hr = /*#__PURE__*/ V("<div class=\"glasshome-widget-frame relative h-full w-full\"><div><div class=\"relative h-full w-full\"></div></div><div class=\"glasshome-widget-halo glass-halo rounded-xl\"aria-hidden=true>"), Ur = /*#__PURE__*/ V("<div class=\"glasshome-widget-loading pointer-events-none absolute inset-0 animate-pulse\">"), Wr = /*#__PURE__*/ V("<div class=\"flex h-full w-full flex-col items-center justify-center gap-2 text-center\">"), Gr = /*#__PURE__*/ V("<div class=\"text-muted-foreground flex items-center justify-center\">"), Kr = /*#__PURE__*/ V("<h3 class=\"text-foreground text-sm font-semibold\">"), qr = /*#__PURE__*/ V("<p class=\"text-muted-foreground text-xs\">"), Jr = 2e3;
1074
- function Yr(t) {
1073
+ 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
+ function Xr(t) {
1075
1075
  let n = j(W), r = Mn(() => ({ hold: { action: () => (G.get(n ?? {}) ?? G.get(f))?.("edit") } }));
1076
1076
  A(r.dispose);
1077
1077
  let i = mn(n), a = !!n && !(fn in n), o = Mn(() => ({ hold: i?.hasSheet() ? { action: () => (G.get(n ?? {}) ?? G.get(f))?.() } : void 0 }));
@@ -1079,7 +1079,7 @@ function Yr(t) {
1079
1079
  let s = () => t.emptyState && n ? r : t.gestures ?? (a ? o : void 0);
1080
1080
  a && (D(() => n?.onHoldable?.(!t.emptyState && !!s()?.holds?.())), A(() => n?.onHoldable?.(!1))), D(() => {
1081
1081
  if (!a || !i?.nothingMore()) return;
1082
- let e = setTimeout(() => i.setNothingMore(!1), Jr);
1082
+ let e = setTimeout(() => i.setNothingMore(!1), Yr);
1083
1083
  A(() => clearTimeout(e));
1084
1084
  }), D(() => i?.setTone(t.color ?? (t.tone ? `var(--tone-${t.tone})` : void 0)));
1085
1085
  let [c, l] = k(), [u, d] = k({
@@ -1118,7 +1118,18 @@ function Yr(t) {
1118
1118
  ...t.tone ? { "--widget-color": `var(--tone-${t.tone})` } : {},
1119
1119
  ...t.color ? { "--widget-color": t.color } : {},
1120
1120
  ...h() ? { "--glass-tone": "var(--widget-color)" } : {}
1121
- })), _ = O(() => ({
1121
+ })), _ = a && !!n?.onShell;
1122
+ if (a) {
1123
+ let e = O(() => {
1124
+ let e = p()?.cssVars, n = e?.["--glass-tone"], r = e?.["--glass-lift"], i = typeof r == "string" && r.trim() !== "" ? Number(r) : r;
1125
+ return {
1126
+ tone: h() ? t.color ?? `var(--tone-${t.tone})` : typeof n == "string" ? n : null,
1127
+ lift: typeof i == "number" && Number.isFinite(i) ? i : null
1128
+ };
1129
+ }, void 0, { equals: (e, t) => e.tone === t.tone && e.lift === t.lift });
1130
+ D(() => n?.onShell?.(e())), A(() => n?.onShell?.(null));
1131
+ }
1132
+ let v = O(() => ({
1122
1133
  "container-type": "size",
1123
1134
  "container-name": "widget",
1124
1135
  "touch-action": s() && !t.isEditMode ? s()?.touchAction() : void 0,
@@ -1129,21 +1140,21 @@ function Yr(t) {
1129
1140
  "--glass-tone-2": t.colorTo
1130
1141
  } : {},
1131
1142
  ...t.gradient ? { "background-image": m() } : {}
1132
- })), v = () => !!s() && !t.isEditMode, y = (e) => {
1133
- v() && s()?.onPointerEnter(e);
1134
- }, b = (e) => {
1135
- v() && s()?.onPointerDown(e);
1143
+ })), y = () => !!s() && !t.isEditMode, b = (e) => {
1144
+ y() && s()?.onPointerEnter(e);
1136
1145
  }, x = (e) => {
1137
- v() && s()?.onPointerMove(e);
1146
+ y() && s()?.onPointerDown(e);
1138
1147
  }, S = (e) => {
1139
- v() && s()?.onPointerUp(e);
1148
+ y() && s()?.onPointerMove(e);
1140
1149
  }, ee = (e) => {
1141
- v() && s()?.onPointerCancel(e);
1150
+ y() && s()?.onPointerUp(e);
1151
+ }, te = (e) => {
1152
+ y() && s()?.onPointerCancel(e);
1142
1153
  }, C = () => s()?.hold?.() ?? null, w = {
1143
1154
  x: 0,
1144
1155
  y: 0,
1145
1156
  r: 0
1146
- }, te = (e) => (e && Object.assign(w, {
1157
+ }, ne = (e) => (e && Object.assign(w, {
1147
1158
  x: e.x,
1148
1159
  y: e.y,
1149
1160
  r: e.r
@@ -1164,10 +1175,10 @@ function Yr(t) {
1164
1175
  value: u,
1165
1176
  get children() {
1166
1177
  return [(() => {
1167
- var e = Hr(), n = e.firstChild, i = n.firstChild, a = n.nextSibling;
1178
+ var e = Ur(), n = e.firstChild, i = n.firstChild;
1168
1179
  return n.$$keydown = (e) => {
1169
- v() && s()?.onKeyDown?.(e);
1170
- }, M(n, "pointercancel", ee), M(n, "pointerup", S), M(n, "pointermove", x), M(n, "pointerdown", b), M(n, "pointerenter", y), H((e) => {
1180
+ y() && s()?.onKeyDown?.(e);
1181
+ }, M(n, "pointercancel", te), M(n, "pointerup", ee), M(n, "pointermove", S), M(n, "pointerdown", x), M(n, "pointerenter", b), H((e) => {
1171
1182
  l(e), t.gestures?.bindElement(e), r.bindElement(e);
1172
1183
  }, n), I(n, P(E, {
1173
1184
  get when() {
@@ -1176,7 +1187,7 @@ function Yr(t) {
1176
1187
  get children() {
1177
1188
  var e = Vr();
1178
1189
  return F((t) => {
1179
- var n = C() && !C()?.fired ? "" : void 0, r = C()?.fired ? "" : void 0, i = te(C());
1190
+ var n = C() && !C()?.fired ? "" : void 0, r = C()?.fired ? "" : void 0, i = ne(C());
1180
1191
  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;
1181
1192
  }, {
1182
1193
  e: void 0,
@@ -1186,7 +1197,7 @@ function Yr(t) {
1186
1197
  }
1187
1198
  }), i), I(i, (() => {
1188
1199
  var e = L(() => !!t.emptyState);
1189
- return () => e() ? P(Xr, {
1200
+ return () => e() ? P(Zr, {
1190
1201
  get icon() {
1191
1202
  return t.emptyState.icon;
1192
1203
  },
@@ -1200,21 +1211,31 @@ function Yr(t) {
1200
1211
  })()), I(n, (() => {
1201
1212
  var e = L(() => !!t.loading);
1202
1213
  return () => e() && (() => {
1203
- var e = Ur();
1214
+ var e = Wr();
1204
1215
  return F((t) => z(e, "z-index", ln.OVERLAY)), e;
1205
1216
  })();
1206
- })(), null), F((e) => {
1207
- var r = J("glasshome-widget glass", "relative h-full w-full overflow-hidden rounded-xl select-none", p()?.class, t.class), o = _(), s = h() ? "" : void 0, c = t.confirmed || void 0, l = v() ? 0 : void 0, u = ln.CONTENT, d = g(), f = h() ? "" : void 0;
1208
- return r !== e.e && N(n, e.e = r), e.t = B(n, o, e.t), s !== e.a && R(n, "data-toned", e.a = s), c !== e.o && R(n, "data-confirmed", e.o = c), l !== e.i && R(n, "tabindex", e.i = l), u !== e.n && z(i, "z-index", e.n = u), e.s = B(a, d, e.s), f !== e.h && R(a, "data-toned", e.h = f), e;
1217
+ })(), null), I(e, P(E, {
1218
+ when: !_,
1219
+ get children() {
1220
+ var e = Hr();
1221
+ return F((t) => {
1222
+ var n = g(), r = h() ? "" : void 0;
1223
+ return t.e = B(e, n, t.e), r !== t.t && R(e, "data-toned", t.t = r), t;
1224
+ }, {
1225
+ e: void 0,
1226
+ t: void 0
1227
+ }), e;
1228
+ }
1229
+ }), null), F((e) => {
1230
+ 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 && 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;
1209
1232
  }, {
1210
1233
  e: void 0,
1211
1234
  t: void 0,
1212
1235
  a: void 0,
1213
1236
  o: void 0,
1214
1237
  i: void 0,
1215
- n: void 0,
1216
- s: void 0,
1217
- h: void 0
1238
+ n: void 0
1218
1239
  }), e;
1219
1240
  })(), P(E, {
1220
1241
  when: a,
@@ -1245,41 +1266,41 @@ function Yr(t) {
1245
1266
  }
1246
1267
  });
1247
1268
  }
1248
- function Xr(e) {
1269
+ function Zr(e) {
1249
1270
  return (() => {
1250
- var t = Wr();
1271
+ var t = Gr();
1251
1272
  return I(t, (() => {
1252
1273
  var t = L(() => !!e.icon);
1253
1274
  return () => t() && (() => {
1254
- var t = Gr();
1275
+ var t = Kr();
1255
1276
  return I(t, () => e.icon), t;
1256
1277
  })();
1257
1278
  })(), null), I(t, (() => {
1258
1279
  var t = L(() => !!e.title);
1259
1280
  return () => t() && (() => {
1260
- var t = Kr();
1281
+ var t = qr();
1261
1282
  return I(t, () => e.title), t;
1262
1283
  })();
1263
1284
  })(), null), I(t, (() => {
1264
1285
  var t = L(() => !!e.message);
1265
1286
  return () => t() && (() => {
1266
- var t = qr();
1287
+ var t = Jr();
1267
1288
  return I(t, () => e.message), t;
1268
1289
  })();
1269
1290
  })(), null), t;
1270
1291
  })();
1271
1292
  }
1272
- var Y = Yr;
1293
+ var Y = Xr;
1273
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, _e(["keydown"]);
1274
1295
  //#endregion
1275
1296
  //#region src/framework/panel/panel.tsx
1276
- var Zr = /*#__PURE__*/ V("<section class=glasshome-panel-section><h3 class=glasshome-panel-label>"), Qr = /*#__PURE__*/ V("<div class=glasshome-panel-rows>"), $r = /*#__PURE__*/ V("<span class=\"glasshome-widget-slider-fill glasshome-panel-row-fill\">"), ei = /*#__PURE__*/ V("<span class=\"glasshome-widget-icon glass glasshome-panel-row-icon\">"), ti = /*#__PURE__*/ V("<span class=glasshome-panel-row-state>"), ni = /*#__PURE__*/ V("<span class=glasshome-panel-row-text><span class=glasshome-panel-row-name>"), ri = /*#__PURE__*/ V("<span class=glasshome-panel-row-trailing>"), ii = /*#__PURE__*/ V("<div class=glasshome-panel-row-wrap>"), ai = /*#__PURE__*/ V("<div>"), oi = /*#__PURE__*/ V("<div class=\"glasshome-panel-facts glass\">"), si = /*#__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>"), ci = 8, li = (e, t, n) => Math.min(n, Math.max(t, e));
1277
- function ui(e) {
1297
+ 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
+ function di(e) {
1278
1299
  let t = j(W), n, r = !1, i = !1, a, o = 0, s = (t, n) => {
1279
1300
  let r = e.slide?.();
1280
1301
  if (!r) return 0;
1281
1302
  let i = t.getBoundingClientRect(), a = e.axis === "x" ? (n.clientX - i.left) / i.width : 1 - (n.clientY - i.top) / i.height, o = r.min ?? 0, s = r.max ?? 100;
1282
- return Math.round(li(o + a * (s - o), o, s));
1303
+ return Math.round(ui(o + a * (s - o), o, s));
1283
1304
  }, c = () => {
1284
1305
  clearTimeout(a), n = void 0;
1285
1306
  };
@@ -1298,7 +1319,7 @@ function ui(e) {
1298
1319
  onPointerMove: (t) => {
1299
1320
  if (!n || t.pointerId !== n.id || i) return;
1300
1321
  let c = t.currentTarget, l = e.axis === "x" ? Math.abs(t.clientX - n.x) : Math.abs(t.clientY - n.y);
1301
- !r && e.slide?.() && l > ci && (r = !0, clearTimeout(a)), r ? (o = s(c, t), e.slide?.()?.onChange(o)) : Math.hypot(t.clientX - n.x, t.clientY - n.y) > ci && clearTimeout(a);
1322
+ !r && e.slide?.() && l > li && (r = !0, clearTimeout(a)), r ? (o = s(c, t), e.slide?.()?.onChange(o)) : Math.hypot(t.clientX - n.x, t.clientY - n.y) > li && clearTimeout(a);
1302
1323
  },
1303
1324
  onPointerUp: (t) => {
1304
1325
  n && t.pointerId === n.id && (r ? e.slide?.()?.onCommit?.(o) : i || e.onTap?.(), c());
@@ -1306,20 +1327,20 @@ function ui(e) {
1306
1327
  onPointerCancel: c
1307
1328
  };
1308
1329
  }
1309
- function di(e) {
1330
+ function fi(e) {
1310
1331
  return (() => {
1311
- var t = Zr(), n = t.firstChild;
1332
+ var t = Qr(), n = t.firstChild;
1312
1333
  return I(n, () => e.label), I(t, () => e.children, null), t;
1313
1334
  })();
1314
1335
  }
1315
- function fi(e) {
1336
+ function pi(e) {
1316
1337
  return (() => {
1317
- var t = Qr();
1338
+ var t = $r();
1318
1339
  return I(t, () => e.children), t;
1319
1340
  })();
1320
1341
  }
1321
- function pi(e) {
1322
- let t = () => !!(e.onTap || e.slide || e.onHold), n = ui({
1342
+ function mi(e) {
1343
+ let t = () => !!(e.onTap || e.slide || e.onHold), n = di({
1323
1344
  axis: "x",
1324
1345
  slide: () => e.slide,
1325
1346
  onTap: () => e.onTap?.(),
@@ -1336,7 +1357,7 @@ function pi(e) {
1336
1357
  let r = t.key === "ArrowRight" || t.key === "ArrowUp" ? 5 : t.key === "ArrowLeft" || t.key === "ArrowDown" ? -5 : 0;
1337
1358
  if (!r) return;
1338
1359
  t.preventDefault();
1339
- let i = li(n.value + r, n.min ?? 0, n.max ?? 100);
1360
+ let i = ui(n.value + r, n.min ?? 0, n.max ?? 100);
1340
1361
  n.onChange(i), n.onCommit?.(i);
1341
1362
  }, a = () => [
1342
1363
  P(E, {
@@ -1344,12 +1365,12 @@ function pi(e) {
1344
1365
  return r() !== void 0;
1345
1366
  },
1346
1367
  get children() {
1347
- var e = $r();
1368
+ var e = ei();
1348
1369
  return F((t) => B(e, { "--widget-fill-value": r() }, t)), e;
1349
1370
  }
1350
1371
  }),
1351
1372
  (() => {
1352
- var t = ei();
1373
+ var t = ti();
1353
1374
  return I(t, P(U, {
1354
1375
  get icon() {
1355
1376
  return e.icon;
@@ -1364,27 +1385,27 @@ function pi(e) {
1364
1385
  }), t;
1365
1386
  })(),
1366
1387
  (() => {
1367
- var t = ni(), n = t.firstChild;
1388
+ var t = ri(), n = t.firstChild;
1368
1389
  return I(n, () => e.name), I(t, P(E, {
1369
1390
  get when() {
1370
1391
  return e.state !== void 0;
1371
1392
  },
1372
1393
  get children() {
1373
- var t = ti();
1394
+ var t = ni();
1374
1395
  return I(t, () => e.state), t;
1375
1396
  }
1376
1397
  }), null), t;
1377
1398
  })()
1378
1399
  ], o = () => ({ "--widget-color": e.tone ?? "var(--tone-neutral)" });
1379
1400
  return (() => {
1380
- var r = ii();
1401
+ var r = ai();
1381
1402
  return I(r, P(E, {
1382
1403
  get when() {
1383
1404
  return t();
1384
1405
  },
1385
1406
  get fallback() {
1386
1407
  return (() => {
1387
- var e = ai();
1408
+ var e = oi();
1388
1409
  return I(e, a), F((t) => {
1389
1410
  var n = `${Rt({
1390
1411
  variant: "outline",
@@ -1437,21 +1458,21 @@ function pi(e) {
1437
1458
  return e.trailing;
1438
1459
  },
1439
1460
  get children() {
1440
- var t = ri();
1461
+ var t = ii();
1441
1462
  return I(t, () => e.trailing), t;
1442
1463
  }
1443
1464
  }), null), r;
1444
1465
  })();
1445
1466
  }
1446
- function mi(e) {
1467
+ function hi(e) {
1447
1468
  return (() => {
1448
- var t = oi();
1469
+ var t = si();
1449
1470
  return I(t, P(T, {
1450
1471
  get each() {
1451
1472
  return e.items;
1452
1473
  },
1453
1474
  children: (e) => (() => {
1454
- var t = si(), n = t.firstChild, r = n.firstChild, i = r.nextSibling;
1475
+ var t = ci(), n = t.firstChild, r = n.firstChild, i = r.nextSibling;
1455
1476
  return I(t, P(U, {
1456
1477
  get icon() {
1457
1478
  return e.icon;
@@ -1464,7 +1485,7 @@ function mi(e) {
1464
1485
  }
1465
1486
  //#endregion
1466
1487
  //#region src/framework/panel/panel-entity.tsx
1467
- var hi = (e) => typeof e == "number" ? Math.round(e) : void 0, gi = (e) => e.charAt(0).toUpperCase() + e.slice(1).replaceAll("_", " "), X = (e) => ({ entity_id: e.id }), _i = {
1488
+ var gi = (e) => typeof e == "number" ? Math.round(e) : void 0, _i = (e) => e.charAt(0).toUpperCase() + e.slice(1).replaceAll("_", " "), X = (e) => ({ entity_id: e.id }), vi = {
1468
1489
  light: {
1469
1490
  icon: "mdi:lightbulb",
1470
1491
  tone: (e) => {
@@ -1504,10 +1525,10 @@ var hi = (e) => typeof e == "number" ? Math.round(e) : void 0, gi = (e) => e.cha
1504
1525
  on: (e) => e.state === "on",
1505
1526
  state: (e) => {
1506
1527
  if (e.state !== "on") return "Off";
1507
- let t = hi(e.attributes.percentage);
1528
+ let t = gi(e.attributes.percentage);
1508
1529
  return t === void 0 ? "On" : `${t}%`;
1509
1530
  },
1510
- level: (e) => e.state === "on" ? hi(e.attributes.percentage) ?? 100 : 0,
1531
+ level: (e) => e.state === "on" ? gi(e.attributes.percentage) ?? 100 : 0,
1511
1532
  setLevel: (e, t, n) => e("fan", "set_percentage", { percentage: n }, X(t)),
1512
1533
  tap: (e, t) => e("fan", "toggle", {}, X(t))
1513
1534
  },
@@ -1516,10 +1537,10 @@ var hi = (e) => typeof e == "number" ? Math.round(e) : void 0, gi = (e) => e.cha
1516
1537
  tone: "var(--tone-info)",
1517
1538
  on: (e) => e.state !== "closed",
1518
1539
  state: (e) => {
1519
- let t = hi(e.attributes.current_position), n = gi(e.state);
1540
+ let t = gi(e.attributes.current_position), n = _i(e.state);
1520
1541
  return t !== void 0 && e.state === "open" ? `${n} · ${t}%` : n;
1521
1542
  },
1522
- level: (e) => hi(e.attributes.current_position),
1543
+ level: (e) => gi(e.attributes.current_position),
1523
1544
  setLevel: (e, t, n) => e("cover", "set_cover_position", { position: n }, X(t)),
1524
1545
  tap: (e, t) => e("cover", t.state === "closed" ? "open_cover" : "close_cover", {}, X(t))
1525
1546
  },
@@ -1527,7 +1548,7 @@ var hi = (e) => typeof e == "number" ? Math.round(e) : void 0, gi = (e) => e.cha
1527
1548
  icon: (e) => e.state === "locked" ? "mdi:lock" : "mdi:lock-open-variant",
1528
1549
  tone: "var(--tone-success)",
1529
1550
  on: (e) => e.state === "locked",
1530
- state: (e) => gi(e.state),
1551
+ state: (e) => _i(e.state),
1531
1552
  tap: (e, t) => e("lock", t.state === "locked" ? "unlock" : "lock", {}, X(t))
1532
1553
  },
1533
1554
  climate: {
@@ -1537,14 +1558,14 @@ var hi = (e) => typeof e == "number" ? Math.round(e) : void 0, gi = (e) => e.cha
1537
1558
  state: (e) => {
1538
1559
  if (e.state === "off") return "Off";
1539
1560
  let t = e.attributes.temperature;
1540
- return typeof t == "number" ? `${gi(e.state)} · ${t}°` : gi(e.state);
1561
+ return typeof t == "number" ? `${_i(e.state)} · ${t}°` : _i(e.state);
1541
1562
  }
1542
1563
  },
1543
1564
  media_player: {
1544
1565
  icon: "mdi:speaker",
1545
1566
  tone: "var(--tone-accent)",
1546
1567
  on: (e) => e.state === "playing",
1547
- state: (e) => typeof e.attributes.media_title == "string" && e.state !== "off" ? e.attributes.media_title : gi(e.state),
1568
+ state: (e) => typeof e.attributes.media_title == "string" && e.state !== "off" ? e.attributes.media_title : _i(e.state),
1548
1569
  level: (e) => typeof e.attributes.volume_level == "number" ? Math.round(e.attributes.volume_level * 100) : void 0,
1549
1570
  setLevel: (e, t, n) => e("media_player", "volume_set", { volume_level: n / 100 }, X(t)),
1550
1571
  tap: (e, t) => e("media_player", "media_play_pause", {}, X(t))
@@ -1554,7 +1575,7 @@ var hi = (e) => typeof e == "number" ? Math.round(e) : void 0, gi = (e) => e.cha
1554
1575
  tone: "var(--tone-info)",
1555
1576
  on: (e) => e.state === "on",
1556
1577
  state: (e) => {
1557
- let t = yi[e.deviceClass ?? ""] ?? ["On", "Off"];
1578
+ let t = bi[e.deviceClass ?? ""] ?? ["On", "Off"];
1558
1579
  return e.state === "on" ? t[0] : t[1];
1559
1580
  }
1560
1581
  },
@@ -1562,14 +1583,14 @@ var hi = (e) => typeof e == "number" ? Math.round(e) : void 0, gi = (e) => e.cha
1562
1583
  icon: "mdi:gesture-tap-button",
1563
1584
  tone: "var(--tone-accent)",
1564
1585
  on: () => !1,
1565
- state: (e) => bi(e.state),
1586
+ state: (e) => xi(e.state),
1566
1587
  tap: (e, t) => e("button", "press", {}, X(t))
1567
1588
  },
1568
1589
  input_button: {
1569
1590
  icon: "mdi:gesture-tap-button",
1570
1591
  tone: "var(--tone-accent)",
1571
1592
  on: () => !1,
1572
- state: (e) => bi(e.state),
1593
+ state: (e) => xi(e.state),
1573
1594
  tap: (e, t) => e("input_button", "press", {}, X(t))
1574
1595
  },
1575
1596
  scene: {
@@ -1586,14 +1607,14 @@ var hi = (e) => typeof e == "number" ? Math.round(e) : void 0, gi = (e) => e.cha
1586
1607
  state: (e) => e.state === "on" ? "Running" : "Tap to run",
1587
1608
  tap: (e, t) => e("script", "turn_on", {}, X(t))
1588
1609
  }
1589
- }, vi = {
1610
+ }, yi = {
1590
1611
  garage: "mdi:garage",
1591
1612
  gate: "mdi:gate",
1592
1613
  door: "mdi:door",
1593
1614
  curtain: "mdi:curtains",
1594
1615
  shutter: "mdi:window-shutter",
1595
1616
  awning: "mdi:awning"
1596
- }, yi = {
1617
+ }, bi = {
1597
1618
  door: ["Open", "Closed"],
1598
1619
  window: ["Open", "Closed"],
1599
1620
  garage_door: ["Open", "Closed"],
@@ -1607,29 +1628,29 @@ var hi = (e) => typeof e == "number" ? Math.round(e) : void 0, gi = (e) => e.cha
1607
1628
  battery: ["Low", "Normal"],
1608
1629
  connectivity: ["Connected", "Disconnected"]
1609
1630
  };
1610
- function bi(e) {
1631
+ function xi(e) {
1611
1632
  let t = Date.parse(e);
1612
1633
  return Number.isNaN(t) ? "Never pressed" : new Date(t).toLocaleTimeString([], {
1613
1634
  hour: "2-digit",
1614
1635
  minute: "2-digit"
1615
1636
  });
1616
1637
  }
1617
- var xi = {
1638
+ var Si = {
1618
1639
  icon: "mdi:circle-medium",
1619
1640
  tone: "var(--tone-neutral)",
1620
1641
  on: (e) => e.state === "on",
1621
- state: (e) => gi(e.state)
1642
+ state: (e) => _i(e.state)
1622
1643
  };
1623
- function Si(e, t) {
1644
+ function Ci(e, t) {
1624
1645
  if (!t || e.length <= t.length || !e.toLowerCase().startsWith(t.toLowerCase())) return e;
1625
1646
  let n = e.slice(t.length).trim();
1626
1647
  return n ? n.charAt(0).toUpperCase() + n.slice(1) : e;
1627
1648
  }
1628
- function Ci(e) {
1629
- return !!_i[e]?.tap || !!_i[e]?.setLevel;
1630
- }
1631
1649
  function wi(e) {
1632
- let t = C(() => e.entityId), { callService: n } = an(), [r, i] = k();
1650
+ return !!vi[e]?.tap || !!vi[e]?.setLevel;
1651
+ }
1652
+ function Ti(e) {
1653
+ let t = te(() => e.entityId), { callService: n } = an(), [r, i] = k();
1633
1654
  return D(() => {
1634
1655
  t(), i(void 0);
1635
1656
  }), P(E, {
@@ -1637,14 +1658,14 @@ function wi(e) {
1637
1658
  return t();
1638
1659
  },
1639
1660
  children: (t) => {
1640
- let a = () => _i[t().domain] ?? xi, o = () => r() ?? a().level?.(t()), s = () => a().setLevel;
1641
- return P(pi, {
1661
+ let a = () => vi[t().domain] ?? Si, o = () => r() ?? a().level?.(t()), s = () => a().setLevel;
1662
+ return P(mi, {
1642
1663
  get icon() {
1643
1664
  let n = a().icon;
1644
- return typeof n == "function" ? e.icon ?? n(t()) : e.icon ?? t().icon ?? vi[t().domain === "cover" ? t().deviceClass ?? "" : ""] ?? n;
1665
+ return typeof n == "function" ? e.icon ?? n(t()) : e.icon ?? t().icon ?? yi[t().domain === "cover" ? t().deviceClass ?? "" : ""] ?? n;
1645
1666
  },
1646
1667
  get name() {
1647
- return e.name ?? Si(t().friendlyName ?? t().id, e.within);
1668
+ return e.name ?? Ci(t().friendlyName ?? t().id, e.within);
1648
1669
  },
1649
1670
  get state() {
1650
1671
  return a().state(t());
@@ -1676,8 +1697,8 @@ function wi(e) {
1676
1697
  }
1677
1698
  //#endregion
1678
1699
  //#region src/framework/dialogs/debug-view.tsx
1679
- var Ti = /*#__PURE__*/ V("<pre class=\"text-muted-foreground max-h-64 overflow-auto p-3 font-mono text-xs leading-relaxed\">"), Ei = /*#__PURE__*/ V("<span class=\"flex items-center gap-2\">"), Di = /*#__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\">"), Oi = /*#__PURE__*/ V("<div class=\"flex flex-col\">"), ki = /*#__PURE__*/ V("<pre class=\"text-muted-foreground max-h-96 overflow-auto p-3 font-mono text-xs leading-relaxed whitespace-pre-wrap\">");
1680
- function Ai(e, t, n) {
1700
+ 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
+ function ji(e, t, n) {
1681
1702
  return {
1682
1703
  widgetConfig: e,
1683
1704
  entities: t.map((e) => ({
@@ -1694,16 +1715,16 @@ function Ai(e, t, n) {
1694
1715
  ...n
1695
1716
  };
1696
1717
  }
1697
- var ji = (e) => JSON.stringify(e, null, 2), Mi = {
1718
+ var Mi = (e) => JSON.stringify(e, null, 2), Ni = {
1698
1719
  idle: "lucide:copy",
1699
1720
  copied: "lucide:check",
1700
1721
  failed: "lucide:triangle-alert"
1701
- }, Ni = {
1722
+ }, Pi = {
1702
1723
  idle: "text-muted-foreground",
1703
1724
  copied: "text-success",
1704
1725
  failed: "text-destructive"
1705
1726
  };
1706
- function Pi(e) {
1727
+ function Fi(e) {
1707
1728
  let { state: t, copy: n } = Yt();
1708
1729
  return P(Te, {
1709
1730
  variant: "ghost",
@@ -1716,42 +1737,42 @@ function Pi(e) {
1716
1737
  get children() {
1717
1738
  return P(U, {
1718
1739
  get icon() {
1719
- return Mi[t()];
1740
+ return Ni[t()];
1720
1741
  },
1721
1742
  width: 16,
1722
1743
  height: 16,
1723
1744
  get class() {
1724
- return Ni[t()];
1745
+ return Pi[t()];
1725
1746
  }
1726
1747
  });
1727
1748
  }
1728
1749
  });
1729
1750
  }
1730
- function Fi(e) {
1751
+ function Ii(e) {
1731
1752
  let t = e.replace(/([a-z\d])([A-Z])/g, "$1 $2").replace(/[_-]+/g, " ");
1732
1753
  return t.charAt(0).toUpperCase() + t.slice(1).toLowerCase();
1733
1754
  }
1734
- var Ii = (e) => e === null || typeof e != "object" && typeof e != "function";
1735
- function Li(e) {
1755
+ var Li = (e) => e === null || typeof e != "object" && typeof e != "function";
1756
+ function Ri(e) {
1736
1757
  return e == null ? "None" : String(e);
1737
1758
  }
1738
- function Ri(e) {
1759
+ function zi(e) {
1739
1760
  return Array.isArray(e) ? e.length : typeof e == "object" && e ? Object.keys(e).length : 0;
1740
1761
  }
1741
- function zi(e) {
1762
+ function Bi(e) {
1742
1763
  let t = new Date(e);
1743
1764
  return Number.isNaN(t.getTime()) ? e : t.toLocaleString();
1744
1765
  }
1745
- function Bi(e) {
1766
+ function Vi(e) {
1746
1767
  return P(mt, {
1747
1768
  class: "overflow-hidden p-0",
1748
1769
  get children() {
1749
- var t = Ti();
1750
- return I(t, () => ji(e.value)), t;
1770
+ var t = Ei();
1771
+ return I(t, () => Mi(e.value)), t;
1751
1772
  }
1752
1773
  });
1753
1774
  }
1754
- function Vi(e) {
1775
+ function Hi(e) {
1755
1776
  return P(ve, {
1756
1777
  collapsible: !0,
1757
1778
  class: "border-border/50 border-t",
@@ -1764,7 +1785,7 @@ function Vi(e) {
1764
1785
  return [P(xe, {
1765
1786
  class: "text-muted-foreground py-3 text-xs",
1766
1787
  get children() {
1767
- var t = Ei();
1788
+ var t = Di();
1768
1789
  return I(t, () => e.label, null), I(t, P(E, {
1769
1790
  get when() {
1770
1791
  return e.count !== void 0;
@@ -1777,7 +1798,7 @@ function Vi(e) {
1777
1798
  }), null), t;
1778
1799
  }
1779
1800
  }), P(ye, { get children() {
1780
- return P(Bi, { get value() {
1801
+ return P(Vi, { get value() {
1781
1802
  return e.value;
1782
1803
  } });
1783
1804
  } })];
@@ -1786,9 +1807,9 @@ function Vi(e) {
1786
1807
  }
1787
1808
  });
1788
1809
  }
1789
- function Hi(e) {
1810
+ function Ui(e) {
1790
1811
  return (() => {
1791
- var t = Di(), n = t.firstChild, r = n.firstChild, i = n.nextSibling;
1812
+ var t = Oi(), n = t.firstChild, r = n.firstChild, i = n.nextSibling;
1792
1813
  return I(n, P(ft, {
1793
1814
  get icon() {
1794
1815
  return e.icon;
@@ -1809,16 +1830,16 @@ function Hi(e) {
1809
1830
  return e();
1810
1831
  }
1811
1832
  })
1812
- }), null), I(n, () => e.badge, null), I(n, P(Pi, {
1833
+ }), null), I(n, () => e.badge, null), I(n, P(Fi, {
1813
1834
  get label() {
1814
1835
  return `Copy ${e.title}`;
1815
1836
  },
1816
- text: () => ji(e.source)
1837
+ text: () => Mi(e.source)
1817
1838
  }), null), I(i, () => e.children), t;
1818
1839
  })();
1819
1840
  }
1820
- function Ui(e) {
1821
- let t = O(() => Object.entries(e.record)), n = O(() => t().flatMap(([e, t]) => Ii(t) ? [[e, t]] : [])), r = O(() => t().filter(([, e]) => !Ii(e)));
1841
+ function Wi(e) {
1842
+ let t = O(() => Object.entries(e.record)), n = O(() => t().flatMap(([e, t]) => Li(t) ? [[e, t]] : [])), r = O(() => t().filter(([, e]) => !Li(e)));
1822
1843
  return P(E, {
1823
1844
  get when() {
1824
1845
  return t().length > 0;
@@ -1832,17 +1853,17 @@ function Ui(e) {
1832
1853
  return n().length > 0;
1833
1854
  },
1834
1855
  get children() {
1835
- var e = Oi();
1856
+ var e = ki();
1836
1857
  return I(e, P(T, {
1837
1858
  get each() {
1838
1859
  return n();
1839
1860
  },
1840
1861
  children: ([e, t]) => P(Ue, {
1841
1862
  get label() {
1842
- return Fi(e);
1863
+ return Ii(e);
1843
1864
  },
1844
1865
  get children() {
1845
- return Li(t);
1866
+ return Ri(t);
1846
1867
  }
1847
1868
  })
1848
1869
  })), e;
@@ -1851,12 +1872,12 @@ function Ui(e) {
1851
1872
  get each() {
1852
1873
  return r();
1853
1874
  },
1854
- children: ([e, t]) => P(Vi, {
1875
+ children: ([e, t]) => P(Hi, {
1855
1876
  get label() {
1856
- return Fi(e);
1877
+ return Ii(e);
1857
1878
  },
1858
1879
  get count() {
1859
- return Ri(t);
1880
+ return zi(t);
1860
1881
  },
1861
1882
  value: t
1862
1883
  })
@@ -1864,9 +1885,9 @@ function Ui(e) {
1864
1885
  }
1865
1886
  });
1866
1887
  }
1867
- function Wi(e) {
1888
+ function Gi(e) {
1868
1889
  let t = () => e.entity.attributes ?? {};
1869
- return P(Hi, {
1890
+ return P(Ui, {
1870
1891
  icon: "lucide:activity",
1871
1892
  get title() {
1872
1893
  return e.entity.friendly_name ?? e.entity.entity_id;
@@ -1884,7 +1905,7 @@ function Wi(e) {
1884
1905
  },
1885
1906
  get children() {
1886
1907
  return [(() => {
1887
- var t = Oi();
1908
+ var t = ki();
1888
1909
  return I(t, P(Ue, {
1889
1910
  label: "Domain",
1890
1911
  get children() {
@@ -1913,23 +1934,23 @@ function Wi(e) {
1913
1934
  }), null), I(t, P(Ue, {
1914
1935
  label: "Changed",
1915
1936
  get children() {
1916
- return zi(e.entity.last_changed);
1937
+ return Bi(e.entity.last_changed);
1917
1938
  }
1918
1939
  }), null), I(t, P(Ue, {
1919
1940
  label: "Updated",
1920
1941
  get children() {
1921
- return zi(e.entity.last_updated);
1942
+ return Bi(e.entity.last_updated);
1922
1943
  }
1923
1944
  }), null), t;
1924
1945
  })(), P(E, {
1925
1946
  get when() {
1926
- return Ri(t()) > 0;
1947
+ return zi(t()) > 0;
1927
1948
  },
1928
1949
  get children() {
1929
- return P(Vi, {
1950
+ return P(Hi, {
1930
1951
  label: "Attributes",
1931
1952
  get count() {
1932
- return Ri(t());
1953
+ return zi(t());
1933
1954
  },
1934
1955
  get value() {
1935
1956
  return t();
@@ -1940,18 +1961,18 @@ function Wi(e) {
1940
1961
  }
1941
1962
  });
1942
1963
  }
1943
- function Gi(e) {
1964
+ function Ki(e) {
1944
1965
  let t = O(() => Object.keys(e.data).filter((e) => e !== "widgetConfig" && e !== "entities"));
1945
1966
  return P(We, { get children() {
1946
1967
  return [
1947
- P(Hi, {
1968
+ P(Ui, {
1948
1969
  icon: "lucide:sliders-horizontal",
1949
1970
  title: "Configuration",
1950
1971
  get source() {
1951
1972
  return e.data.widgetConfig;
1952
1973
  },
1953
1974
  get children() {
1954
- return P(Ui, { get record() {
1975
+ return P(Wi, { get record() {
1955
1976
  return e.data.widgetConfig;
1956
1977
  } });
1957
1978
  }
@@ -1960,22 +1981,22 @@ function Gi(e) {
1960
1981
  get each() {
1961
1982
  return e.data.entities;
1962
1983
  },
1963
- children: (e) => P(Wi, { entity: e })
1984
+ children: (e) => P(Gi, { entity: e })
1964
1985
  }),
1965
1986
  P(T, {
1966
1987
  get each() {
1967
1988
  return t();
1968
1989
  },
1969
- children: (t) => P(Hi, {
1990
+ children: (t) => P(Ui, {
1970
1991
  icon: "lucide:braces",
1971
1992
  get title() {
1972
- return Fi(t);
1993
+ return Ii(t);
1973
1994
  },
1974
1995
  get source() {
1975
1996
  return e.data[t];
1976
1997
  },
1977
1998
  get children() {
1978
- return P(Bi, { get value() {
1999
+ return P(Vi, { get value() {
1979
2000
  return e.data[t];
1980
2001
  } });
1981
2002
  }
@@ -1984,13 +2005,13 @@ function Gi(e) {
1984
2005
  ];
1985
2006
  } });
1986
2007
  }
1987
- function Ki(e) {
2008
+ function qi(e) {
1988
2009
  if (typeof e != "object" || !e) return;
1989
2010
  let t = e;
1990
2011
  return Array.isArray(t.entities) && typeof t.widgetConfig == "object" ? t : void 0;
1991
2012
  }
1992
- function qi(e) {
1993
- let t = O(() => Ki(e.data));
2013
+ function Ji(e) {
2014
+ let t = O(() => qi(e.data));
1994
2015
  return P(E, {
1995
2016
  get when() {
1996
2017
  return e.data !== void 0;
@@ -2008,7 +2029,7 @@ function qi(e) {
2008
2029
  return t();
2009
2030
  },
2010
2031
  get fallback() {
2011
- return P(Hi, {
2032
+ return P(Ui, {
2012
2033
  icon: "lucide:braces",
2013
2034
  title: "Debug data",
2014
2035
  get source() {
@@ -2020,7 +2041,7 @@ function qi(e) {
2020
2041
  return typeof e.data == "string";
2021
2042
  },
2022
2043
  get fallback() {
2023
- return P(Bi, { get value() {
2044
+ return P(Vi, { get value() {
2024
2045
  return e.data;
2025
2046
  } });
2026
2047
  },
@@ -2028,7 +2049,7 @@ function qi(e) {
2028
2049
  return P(mt, {
2029
2050
  class: "overflow-hidden p-0",
2030
2051
  get children() {
2031
- var t = ki();
2052
+ var t = Ai();
2032
2053
  return I(t, () => e.data), t;
2033
2054
  }
2034
2055
  });
@@ -2037,7 +2058,7 @@ function qi(e) {
2037
2058
  }
2038
2059
  });
2039
2060
  },
2040
- children: (e) => P(Gi, { get data() {
2061
+ children: (e) => P(Ki, { get data() {
2041
2062
  return e();
2042
2063
  } })
2043
2064
  });
@@ -2046,21 +2067,21 @@ function qi(e) {
2046
2067
  }
2047
2068
  //#endregion
2048
2069
  //#region src/framework/dialogs/validate-config.ts
2049
- function Ji(e) {
2070
+ function Yi(e) {
2050
2071
  let t = "";
2051
2072
  for (let n of e) t += typeof n == "number" ? `[${n}]` : t ? `.${String(n)}` : String(n);
2052
2073
  return t;
2053
2074
  }
2054
- function Yi(e, t) {
2075
+ function Xi(e, t) {
2055
2076
  let n = e.safeParse(t);
2056
2077
  return n.success ? null : n.error.issues.map((e) => {
2057
- let t = Ji(e.path);
2078
+ let t = Yi(e.path);
2058
2079
  return t ? `${t}: ${e.message}` : e.message;
2059
2080
  });
2060
2081
  }
2061
2082
  //#endregion
2062
2083
  //#region src/framework/dialogs/WidgetDialog.tsx
2063
- var Xi = /*#__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\">"), Zi = /*#__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"), Qi = /*#__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>"), $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><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\">"), ea = /*#__PURE__*/ V("<div class=glasshome-sheet>"), ta = /*#__PURE__*/ V("<div class=glasshome-sheet-band aria-hidden=true><img alt>"), na = /*#__PURE__*/ V("<span class=\"glasshome-widget-icon glass glass-tint glasshome-sheet-icon\">"), ra = /*#__PURE__*/ V("<span class=\"inline-flex size-3.5 shrink-0 items-center\">"), ia = (e) => Qt(e), aa = {
2084
+ 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 = {
2064
2085
  sm: "sm",
2065
2086
  md: "md",
2066
2087
  lg: "lg",
@@ -2069,24 +2090,24 @@ var Xi = /*#__PURE__*/ V("<svg xmlns=http://www.w3.org/2000/svg class=size-3.5 f
2069
2090
  "2xl": "xl",
2070
2091
  "3xl": "xl",
2071
2092
  "4xl": "full"
2072
- }, oa = {
2093
+ }, sa = {
2073
2094
  idle: "Copy all",
2074
2095
  copied: "Copied",
2075
2096
  failed: "Copy failed"
2076
2097
  };
2077
- function sa(e) {
2098
+ function ca(e) {
2078
2099
  let [t] = ge(e, /* @__PURE__ */ "open.onOpenChange.title.description.onSave.hasUnsavedChanges.onDelete.editContent.controlsContent.sheet.tile.debugContent.debugData.tabs.class.maxWidth.defaultTab.activeTab.onActiveTabChange.headerActions.configSchema.config.onConfigSave.ResponsiveDialog.ResponsiveDialogContent.ResponsiveDialogHeader.ResponsiveDialogTitle.ResponsiveDialogDescription.ResponsiveDialogBody.ResponsiveDialogFooter.Button.SchemaForm.Tabs.TabsList.TabsTrigger.TabsContent".split(".")), n = () => !!t.configSchema && !!t.config && !!t.onConfigSave && !!t.SchemaForm, [r, i] = k({}), [a, o] = k(null), [s, c] = k([]);
2079
2100
  D(me(() => t.config, (e) => {
2080
2101
  e && i({ ...e });
2081
2102
  })), D(me(() => t.configSchema, (e) => {
2082
- e && o(ia(e));
2103
+ e && o(aa(e));
2083
2104
  }));
2084
2105
  let l = () => n() && JSON.stringify(r()) !== JSON.stringify(t.config), u = (e) => {
2085
2106
  !e && t.config && (i({ ...t.config }), c([])), t.onOpenChange(e);
2086
2107
  }, d = () => {
2087
2108
  let e = t.configSchema;
2088
2109
  if (e) {
2089
- let t = Yi(e, r());
2110
+ let t = Xi(e, r());
2090
2111
  if (t) {
2091
2112
  c(t);
2092
2113
  return;
@@ -2095,7 +2116,7 @@ function sa(e) {
2095
2116
  c([]), t.onConfigSave?.(r());
2096
2117
  }, [f, p] = k(t.defaultTab ?? "controls"), m = () => t.activeTab ?? f(), h = (e) => {
2097
2118
  t.onActiveTabChange ? t.onActiveTabChange(e) : p(e);
2098
- }, g = () => aa[t.maxWidth ?? "xl"], _ = () => {
2119
+ }, g = () => oa[t.maxWidth ?? "xl"], _ = () => {
2099
2120
  if (t.tabs) return t.tabs.map((e) => ({
2100
2121
  ...e,
2101
2122
  icon: () => e.icon,
@@ -2105,10 +2126,10 @@ function sa(e) {
2105
2126
  return e.push({
2106
2127
  id: "edit",
2107
2128
  label: "Edit",
2108
- icon: () => Xi(),
2129
+ icon: () => Zi(),
2109
2130
  content: () => t.editContent ?? (() => {
2110
2131
  let e = t.SchemaForm, o = n() ? a() : void 0;
2111
- return !o || !e ? Zi() : P(e, {
2132
+ return !o || !e ? Qi() : P(e, {
2112
2133
  schema: o,
2113
2134
  get data() {
2114
2135
  return r();
@@ -2122,7 +2143,7 @@ function sa(e) {
2122
2143
  }), e.push({
2123
2144
  id: "controls",
2124
2145
  label: "Controls",
2125
- icon: () => Qi(),
2146
+ icon: () => $i(),
2126
2147
  content: () => t.controlsContent ?? P(ze, { get children() {
2127
2148
  return P(Ve, { get children() {
2128
2149
  return [P(He, { children: "No controls" }), P(Be, { children: "This widget is shown as is." })];
@@ -2131,8 +2152,8 @@ function sa(e) {
2131
2152
  }), e.push({
2132
2153
  id: "debug",
2133
2154
  label: "Debug",
2134
- icon: () => $i(),
2135
- content: () => t.debugContent ?? P(qi, { get data() {
2155
+ icon: () => ea(),
2156
+ content: () => t.debugContent ?? P(Ji, { get data() {
2136
2157
  return t.debugData;
2137
2158
  } })
2138
2159
  }), e;
@@ -2142,10 +2163,10 @@ function sa(e) {
2142
2163
  icon: t.tile?.icon ?? y?.icon(),
2143
2164
  tone: t.tile?.tone ?? y?.accent() ?? y?.tone(),
2144
2165
  backdrop: t.tile?.backdrop
2145
- }), x = () => v?.developer?.() ?? !1, S = () => H() === "controls" && t.sheet !== void 0, ee = ca(), C = () => v?.anchor?.(), w = () => S() && !ee() && C() !== void 0, te = Yt(), ne = () => {
2166
+ }), 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 = () => {
2146
2167
  if (t.debugData === void 0) return;
2147
2168
  let e = typeof t.debugData == "string" ? t.debugData : JSON.stringify(t.debugData, null, 2);
2148
- te.copy(e);
2169
+ w.copy(e);
2149
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, M = O(me([
2150
2171
  () => t.open,
2151
2172
  a,
@@ -2172,7 +2193,7 @@ function sa(e) {
2172
2193
  return t.title;
2173
2194
  },
2174
2195
  get anchor() {
2175
- return L(() => !!w())() ? C() : void 0;
2196
+ return L(() => !!C())() ? te() : void 0;
2176
2197
  },
2177
2198
  class: "glasshome-sheet-surface",
2178
2199
  get style() {
@@ -2188,7 +2209,7 @@ function sa(e) {
2188
2209
  return b().backdrop;
2189
2210
  },
2190
2211
  children: (e) => (() => {
2191
- var t = ta(), n = t.firstChild;
2212
+ var t = na(), n = t.firstChild;
2192
2213
  return F(() => R(n, "src", e())), t;
2193
2214
  })()
2194
2215
  }),
@@ -2200,7 +2221,7 @@ function sa(e) {
2200
2221
  return b().icon;
2201
2222
  },
2202
2223
  children: (e) => (() => {
2203
- var t = na();
2224
+ var t = ra();
2204
2225
  return I(t, P(U, {
2205
2226
  get icon() {
2206
2227
  return e();
@@ -2220,7 +2241,7 @@ function sa(e) {
2220
2241
  }
2221
2242
  }),
2222
2243
  P(ce, { get children() {
2223
- var e = ea();
2244
+ var e = ta();
2224
2245
  return I(e, () => t.sheet?.()), e;
2225
2246
  } })
2226
2247
  ];
@@ -2265,7 +2286,7 @@ function sa(e) {
2265
2286
  },
2266
2287
  get children() {
2267
2288
  return [(() => {
2268
- var t = ra();
2289
+ var t = ia();
2269
2290
  return I(t, () => e.icon()), t;
2270
2291
  })(), L(() => e.label)];
2271
2292
  }
@@ -2354,7 +2375,7 @@ function sa(e) {
2354
2375
  variant: "outline",
2355
2376
  onClick: ne,
2356
2377
  get children() {
2357
- return oa[te.state()];
2378
+ return sa[w.state()];
2358
2379
  }
2359
2380
  });
2360
2381
  }
@@ -2373,7 +2394,7 @@ function sa(e) {
2373
2394
  }
2374
2395
  });
2375
2396
  }
2376
- function ca() {
2397
+ function la() {
2377
2398
  let e = "(max-width: 639px)", [t, n] = k(typeof window < "u" && window.matchMedia(e).matches);
2378
2399
  return he(() => {
2379
2400
  let t = window.matchMedia(e), r = () => n(t.matches);
@@ -2382,77 +2403,77 @@ function ca() {
2382
2403
  }
2383
2404
  //#endregion
2384
2405
  //#region src/framework/hooks/use-widget-dashboard.ts
2385
- var la = {
2406
+ var ua = {
2386
2407
  name: "",
2387
2408
  icon: "",
2388
2409
  areaId: null
2389
2410
  };
2390
- function ua() {
2411
+ function da() {
2391
2412
  let e = j(W);
2392
- return () => e?.dashboard?.() ?? la;
2413
+ return () => e?.dashboard?.() ?? ua;
2393
2414
  }
2394
2415
  //#endregion
2395
2416
  //#region src/framework/hooks/use-widget-viewer.ts
2396
- var da = { name: null };
2397
- function fa() {
2417
+ var fa = { name: null };
2418
+ function pa() {
2398
2419
  let e = j(W);
2399
- return () => e?.viewer?.() ?? da;
2420
+ return () => e?.viewer?.() ?? fa;
2400
2421
  }
2401
2422
  //#endregion
2402
2423
  //#region node_modules/@glasshome/ui/dist/tokens/index.js
2403
- var pa = /^oklch\(\s*([+-]?(?:\d+\.?\d*|\.\d+))\s+([+-]?(?:\d+\.?\d*|\.\d+))\s+([+-]?(?:\d+\.?\d*|\.\d+))\s*\)$/i;
2404
- function ma(e, t, n) {
2424
+ var ma = /^oklch\(\s*([+-]?(?:\d+\.?\d*|\.\d+))\s+([+-]?(?:\d+\.?\d*|\.\d+))\s+([+-]?(?:\d+\.?\d*|\.\d+))\s*\)$/i;
2425
+ function ha(e, t, n) {
2405
2426
  return Math.min(Math.max(e, t), n);
2406
2427
  }
2407
- function ha(e) {
2428
+ function ga(e) {
2408
2429
  return String(Number.isInteger(e) ? e : Number(e.toFixed(6)));
2409
2430
  }
2410
- function ga(e) {
2411
- let t = pa.exec(e.trim());
2431
+ function _a(e) {
2432
+ let t = ma.exec(e.trim());
2412
2433
  return t ? {
2413
2434
  l: Number(t[1]),
2414
2435
  c: Number(t[2]),
2415
2436
  h: Number(t[3])
2416
2437
  } : null;
2417
2438
  }
2418
- function _a(e, t, n) {
2419
- return `oklch(${ha(e)} ${ha(t)} ${ha(n)})`;
2420
- }
2421
- function va(e, t) {
2422
- let n = ga(e);
2423
- return n ? _a(ma(n.l + t, 0, 1), n.c, n.h) : e;
2439
+ function va(e, t, n) {
2440
+ return `oklch(${ga(e)} ${ga(t)} ${ga(n)})`;
2424
2441
  }
2425
2442
  function ya(e, t) {
2426
- let n = ga(e);
2427
- return n ? _a(ma(t, 0, 1), ma(n.c * .8, 0, .4), n.h) : e;
2443
+ let n = _a(e);
2444
+ return n ? va(ha(n.l + t, 0, 1), n.c, n.h) : e;
2428
2445
  }
2429
2446
  function ba(e, t) {
2447
+ let n = _a(e);
2448
+ return n ? va(ha(t, 0, 1), ha(n.c * .8, 0, .4), n.h) : e;
2449
+ }
2450
+ function xa(e, t) {
2430
2451
  return {
2431
2452
  ...e,
2432
2453
  popover: e.card,
2433
- muted: t === "light" ? va(e.background, -.015) : va(e.background, .1),
2454
+ muted: t === "light" ? ya(e.background, -.015) : ya(e.background, .1),
2434
2455
  mutedForeground: t === "light" ? "oklch(0.44 0 0)" : "oklch(0.71 0 0)",
2435
- input: t === "light" ? va(e.border, .01) : va(e.border, .04),
2456
+ input: t === "light" ? ya(e.border, .01) : ya(e.border, .04),
2436
2457
  ring: e.accent,
2437
2458
  destructive: t === "light" ? "oklch(0.54 0.19 23.0704)" : "oklch(0.7106 0.1661 22.2162)"
2438
2459
  };
2439
2460
  }
2440
- function xa(e) {
2441
- return ba({
2442
- primary: va(e.primary, .15),
2443
- accent: va(e.accent, .1),
2444
- secondary: ya(e.secondary, .14),
2445
- border: ya(e.border, .26),
2446
- card: ya(e.card, .17),
2447
- background: ya(e.background, .12)
2461
+ function Sa(e) {
2462
+ return xa({
2463
+ primary: ya(e.primary, .15),
2464
+ accent: ya(e.accent, .1),
2465
+ secondary: ba(e.secondary, .14),
2466
+ border: ba(e.border, .26),
2467
+ card: ba(e.card, .17),
2468
+ background: ba(e.background, .12)
2448
2469
  }, "dark");
2449
2470
  }
2450
- var Sa = {
2471
+ var Ca = {
2451
2472
  edgeWidth: 1,
2452
2473
  edgeInk: 0,
2453
2474
  edgeAccent: 0,
2454
2475
  inkLift: 0
2455
- }, Ca = {
2476
+ }, wa = {
2456
2477
  frosted: {
2457
2478
  blur: 24,
2458
2479
  clarity: 60,
@@ -2460,7 +2481,7 @@ var Sa = {
2460
2481
  tint: 1,
2461
2482
  glow: 0,
2462
2483
  ink: 0,
2463
- ...Sa
2484
+ ...Ca
2464
2485
  },
2465
2486
  frost: {
2466
2487
  blur: 24,
@@ -2469,7 +2490,7 @@ var Sa = {
2469
2490
  tint: 1,
2470
2491
  glow: 0,
2471
2492
  ink: 0,
2472
- ...Sa,
2493
+ ...Ca,
2473
2494
  grain: .4
2474
2495
  },
2475
2496
  paper: {
@@ -2479,7 +2500,7 @@ var Sa = {
2479
2500
  tint: .85,
2480
2501
  glow: 0,
2481
2502
  ink: 0,
2482
- ...Sa,
2503
+ ...Ca,
2483
2504
  edgeInk: .3,
2484
2505
  sheen: 0,
2485
2506
  edge: .2,
@@ -2509,13 +2530,13 @@ var Sa = {
2509
2530
  tint: .7,
2510
2531
  glow: 0,
2511
2532
  ink: 1,
2512
- ...Sa,
2533
+ ...Ca,
2513
2534
  inkLift: 1
2514
2535
  }
2515
- }, wa = {
2536
+ }, Ta = {
2516
2537
  v: 1,
2517
2538
  preset: "frosted"
2518
- }, Ta = {
2539
+ }, Ea = {
2519
2540
  blur: [0, 48],
2520
2541
  clarity: [0, 100],
2521
2542
  depth: [0, 2],
@@ -2535,7 +2556,7 @@ var Sa = {
2535
2556
  washAngle: [0, 360],
2536
2557
  relief: [0, 2],
2537
2558
  fill: [0, .6]
2538
- }, Ea = {
2559
+ }, Da = {
2539
2560
  vibrancy: 1,
2540
2561
  inset: 0,
2541
2562
  lightFrom: 315,
@@ -2551,10 +2572,10 @@ var Sa = {
2551
2572
  relief: 1,
2552
2573
  accent: "theme",
2553
2574
  fill: 0
2554
- }, Da = Object.keys(Ta);
2555
- function Oa(e) {
2556
- let { edgeWidth: t, edgeInk: n, edgeAccent: r, inkLift: i, ...a } = Ca[e.preset], o = {
2557
- ...Ea,
2575
+ }, Oa = Object.keys(Ea);
2576
+ function ka(e) {
2577
+ let { edgeWidth: t, edgeInk: n, edgeAccent: r, inkLift: i, ...a } = wa[e.preset], o = {
2578
+ ...Da,
2558
2579
  ...a,
2559
2580
  ...e.dials
2560
2581
  }, s = {
@@ -2563,7 +2584,7 @@ function Oa(e) {
2563
2584
  sheen: o.sheen ?? o.depth,
2564
2585
  shadow: o.shadow ?? o.depth
2565
2586
  };
2566
- for (let e of Da) s[e] = ma(s[e], ...Ta[e]);
2587
+ for (let e of Oa) s[e] = ha(s[e], ...Ea[e]);
2567
2588
  return s;
2568
2589
  }
2569
2590
  function Z(e, t) {
@@ -2590,8 +2611,8 @@ function Q(e, t, n, r, i, a, o, s) {
2590
2611
  swatch: r,
2591
2612
  material: s,
2592
2613
  colors: {
2593
- light: ba(i, "light"),
2594
- dark: o ? ba(o, "dark") : xa(i)
2614
+ light: xa(i, "light"),
2615
+ dark: o ? xa(o, "dark") : Sa(i)
2595
2616
  },
2596
2617
  background: a
2597
2618
  };
@@ -2759,17 +2780,17 @@ Z("glass-house", {
2759
2780
  });
2760
2781
  //#endregion
2761
2782
  //#region src/framework/hooks/use-material.ts
2762
- var ka = {
2763
- id: wa.preset,
2764
- terms: Oa(wa)
2783
+ var Aa = {
2784
+ id: Ta.preset,
2785
+ terms: ka(Ta)
2765
2786
  };
2766
- function Aa() {
2787
+ function ja() {
2767
2788
  let e = j(W);
2768
- return () => e?.material?.() ?? ka;
2789
+ return () => e?.material?.() ?? Aa;
2769
2790
  }
2770
2791
  //#endregion
2771
2792
  //#region src/framework/hooks/use-intersection-pause.ts
2772
- function ja(e) {
2793
+ function Ma(e) {
2773
2794
  if (typeof IntersectionObserver > "u") return () => !1;
2774
2795
  let [t, n] = k(!1), r = new IntersectionObserver((e) => {
2775
2796
  let t = e[0];
@@ -2782,40 +2803,40 @@ function ja(e) {
2782
2803
  }
2783
2804
  //#endregion
2784
2805
  //#region src/framework/hooks/use-daylight.ts
2785
- var Ma = -6, Na = 864e5;
2786
- function Pa(e, t) {
2806
+ var Na = -6, Pa = 864e5;
2807
+ function Fa(e, t) {
2787
2808
  let n = e.next_rising ? Date.parse(e.next_rising) : NaN, r = e.next_setting ? Date.parse(e.next_setting) : NaN;
2788
2809
  if (!Number.isFinite(n) || !Number.isFinite(r)) return;
2789
- let [i, a] = e.state === "above_horizon" ? [n - Na, r] : [r - Na, n], o = a - i;
2810
+ let [i, a] = e.state === "above_horizon" ? [n - Pa, r] : [r - Pa, n], o = a - i;
2790
2811
  if (!(o <= 0)) return Math.min(1, Math.max(0, (t.getTime() - i) / o));
2791
2812
  }
2792
- var Fa = 20, Ia = 7;
2793
- function La(e, t) {
2813
+ var Ia = 20, La = 7;
2814
+ function Ra(e, t) {
2794
2815
  if (e && (e.state === "above_horizon" || e.state === "below_horizon")) {
2795
- let n = e.elevation, r = e.state === "above_horizon" ? "day" : n !== void 0 && n > Ma ? e.rising ? "dawn" : "dusk" : "night";
2816
+ let n = e.elevation, r = e.state === "above_horizon" ? "day" : n !== void 0 && n > Na ? e.rising ? "dawn" : "dusk" : "night";
2796
2817
  return {
2797
2818
  phase: r,
2798
2819
  isNight: r === "night",
2799
2820
  elevation: n,
2800
- progress: Pa(e, t)
2821
+ progress: Fa(e, t)
2801
2822
  };
2802
2823
  }
2803
- let n = t.getHours(), r = n >= Fa || n < Ia ? "night" : "day";
2824
+ let n = t.getHours(), r = n >= Ia || n < La ? "night" : "day";
2804
2825
  return {
2805
2826
  phase: r,
2806
2827
  isNight: r === "night"
2807
2828
  };
2808
2829
  }
2809
- var [Ra, za] = k(/* @__PURE__ */ new Date()), Ba = 0, Va;
2810
- function Ha() {
2811
- return Ba++, Va ||= (za(/* @__PURE__ */ new Date()), setInterval(() => za(/* @__PURE__ */ new Date()), 6e4)), () => {
2812
- Ba--, Ba === 0 && Va && (clearInterval(Va), Va = void 0);
2830
+ var [za, Ba] = k(/* @__PURE__ */ new Date()), Va = 0, Ha;
2831
+ function Ua() {
2832
+ return Va++, Ha ||= (Ba(/* @__PURE__ */ new Date()), setInterval(() => Ba(/* @__PURE__ */ new Date()), 6e4)), () => {
2833
+ Va--, Va === 0 && Ha && (clearInterval(Ha), Ha = void 0);
2813
2834
  };
2814
2835
  }
2815
- function Ua() {
2816
- let e = C("sun.sun");
2836
+ function Wa() {
2837
+ let e = te("sun.sun");
2817
2838
  return D(() => {
2818
- e() || A(Ha());
2839
+ e() || A(Ua());
2819
2840
  }), O(() => {
2820
2841
  let t = e(), n = t ? {
2821
2842
  state: t.state,
@@ -2824,19 +2845,39 @@ function Ua() {
2824
2845
  next_rising: t.attributes?.next_rising,
2825
2846
  next_setting: t.attributes?.next_setting
2826
2847
  } : void 0;
2827
- return La(n, n ? /* @__PURE__ */ new Date() : Ra());
2848
+ return Ra(n, n ? /* @__PURE__ */ new Date() : za());
2828
2849
  });
2829
2850
  }
2830
2851
  //#endregion
2852
+ //#region src/theme.ts
2853
+ var Ga = /* @__PURE__ */ new Map(), Ka;
2854
+ function qa(e) {
2855
+ let t = new MutationObserver(() => {
2856
+ for (let [t, [, n]] of Ga) n(e.classList.contains(t));
2857
+ });
2858
+ return t.observe(e, {
2859
+ attributes: !0,
2860
+ attributeFilter: ["class"]
2861
+ }), t;
2862
+ }
2863
+ function Ja(e) {
2864
+ if (typeof document > "u") return !1;
2865
+ let t = document.documentElement, n = Ga.get(e);
2866
+ return n || (n = k(t.classList.contains(e)), Ga.set(e, n), Ka ??= qa(t)), n[0](), t.classList.contains(e);
2867
+ }
2868
+ function Ya() {
2869
+ return Ja("dark");
2870
+ }
2871
+ //#endregion
2831
2872
  //#region src/framework/hooks/use-reduced-motion.ts
2832
- function Wa() {
2873
+ function Xa() {
2833
2874
  if (typeof window > "u" || typeof window.matchMedia != "function") return () => !1;
2834
2875
  let e = window.matchMedia("(prefers-reduced-motion: reduce)"), [t, n] = k(e.matches), r = (e) => n(e.matches);
2835
- return e.addEventListener("change", r), A(() => e.removeEventListener("change", r)), t;
2876
+ return e.addEventListener("change", r), A(() => e.removeEventListener("change", r)), () => t() || Ja("reduce-motion");
2836
2877
  }
2837
2878
  //#endregion
2838
2879
  //#region src/framework/hooks/use-widget-entity-group.ts
2839
- function Ga(e) {
2880
+ function Za(e) {
2840
2881
  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(() => {
2841
2882
  if (!r()) return;
2842
2883
  let t = e.aggregationMode?.();
@@ -2856,7 +2897,7 @@ function Ga(e) {
2856
2897
  }
2857
2898
  //#endregion
2858
2899
  //#region src/framework/theming/svg-colors.ts
2859
- var Ka = {
2900
+ var Qa = {
2860
2901
  solar: "oklch(0.74 0.18 60)",
2861
2902
  grid: "oklch(0.62 0.12 245)",
2862
2903
  battery: "oklch(0.70 0.18 145)",
@@ -2865,21 +2906,21 @@ var Ka = {
2865
2906
  positive: "oklch(0.70 0.14 160)",
2866
2907
  negative: "oklch(0.64 0.22 27)"
2867
2908
  };
2868
- function qa(e) {
2909
+ function $a(e) {
2869
2910
  return {
2870
2911
  fill: `color-mix(in oklch, ${e} 20%, transparent)`,
2871
2912
  stroke: e,
2872
2913
  solid: e
2873
2914
  };
2874
2915
  }
2875
- var Ja = Object.fromEntries(Object.entries(Ka).map(([e, t]) => [e, qa(t)])), Ya = o.enum([
2916
+ var eo = Object.fromEntries(Object.entries(Qa).map(([e, t]) => [e, $a(t)])), to = o.enum([
2876
2917
  "success",
2877
2918
  "warning",
2878
2919
  "danger",
2879
2920
  "info",
2880
2921
  "neutral",
2881
2922
  "accent"
2882
- ]), Xa = {
2923
+ ]), no = {
2883
2924
  title: e(() => o.string().optional().meta({
2884
2925
  title: "Title",
2885
2926
  description: "Optional display name override"
@@ -2899,38 +2940,38 @@ var Ja = Object.fromEntries(Object.entries(Ka).map(([e, t]) => [e, qa(t)])), Ya
2899
2940
  formType: "area-picker",
2900
2941
  title: "Area"
2901
2942
  }), "widgetFields.areaId")
2902
- }, Za = 24;
2943
+ }, ro = 24;
2903
2944
  function $(e) {
2904
2945
  let t = {};
2905
2946
  for (let [n, r] of Object.entries(e)) r !== void 0 && (t[n] = r);
2906
2947
  return t;
2907
2948
  }
2908
- function Qa() {
2949
+ function io() {
2909
2950
  return o.string().optional().meta({
2910
2951
  title: "Title",
2911
2952
  description: "Optional display name override"
2912
2953
  });
2913
2954
  }
2914
- function $a(e) {
2955
+ function ao(e) {
2915
2956
  return (e.default === void 0 ? o.string().optional() : o.string().default(e.default)).meta($({
2916
2957
  title: e.title,
2917
2958
  description: e.description
2918
2959
  }));
2919
2960
  }
2920
- function eo(e) {
2961
+ function oo(e) {
2921
2962
  let t = o.number();
2922
2963
  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($({
2923
2964
  title: e.title,
2924
2965
  description: e.description
2925
2966
  }));
2926
2967
  }
2927
- function to(e) {
2968
+ function so(e) {
2928
2969
  return o.boolean().default(e.default ?? !1).meta($({
2929
2970
  title: e.title,
2930
2971
  description: e.description
2931
2972
  }));
2932
2973
  }
2933
- function no(e, t) {
2974
+ function co(e, t) {
2934
2975
  let n = o.enum(e);
2935
2976
  return (t.default === void 0 ? n.optional() : n.default(t.default)).meta($({
2936
2977
  title: t.title,
@@ -2939,14 +2980,14 @@ function no(e, t) {
2939
2980
  icons: t.icons
2940
2981
  }));
2941
2982
  }
2942
- function ro(e, t) {
2983
+ function lo(e, t) {
2943
2984
  return o.array(o.enum(e)).default([...t.default ?? []]).meta($({
2944
2985
  title: t.title,
2945
2986
  description: t.description,
2946
2987
  labels: t.labels
2947
2988
  }));
2948
2989
  }
2949
- function io(e, t) {
2990
+ function uo(e, t) {
2950
2991
  return o.array(o.string()).default([]).meta($({
2951
2992
  domain: e,
2952
2993
  title: t?.title ?? "Entities",
@@ -2954,7 +2995,7 @@ function io(e, t) {
2954
2995
  deviceClass: t?.deviceClass
2955
2996
  }));
2956
2997
  }
2957
- function ao(e, t) {
2998
+ function fo(e, t) {
2958
2999
  return o.array(o.string()).default([]).meta($({
2959
3000
  domain: e,
2960
3001
  title: t?.title ?? "Entity",
@@ -2963,13 +3004,13 @@ function ao(e, t) {
2963
3004
  singleSelect: !0
2964
3005
  }));
2965
3006
  }
2966
- function oo(e) {
3007
+ function po(e) {
2967
3008
  return o.string().optional().meta({
2968
3009
  formType: "area-picker",
2969
3010
  title: e?.title ?? "Area"
2970
3011
  });
2971
3012
  }
2972
- function so(e) {
3013
+ function mo(e) {
2973
3014
  let t = o.string().meta($({
2974
3015
  formType: "icon-picker",
2975
3016
  title: e?.title ?? "Icon",
@@ -2977,7 +3018,7 @@ function so(e) {
2977
3018
  }));
2978
3019
  return e?.default === void 0 ? t.optional() : t.default(e.default);
2979
3020
  }
2980
- function co(e) {
3021
+ function ho(e) {
2981
3022
  let t = e?.presets && Object.fromEntries(Object.entries(e.presets).map(([e, t]) => [e, {
2982
3023
  label: t.label,
2983
3024
  thumb: t.thumb
@@ -2989,36 +3030,36 @@ function co(e) {
2989
3030
  }));
2990
3031
  return e?.default === void 0 ? n.optional() : n.default(e.default);
2991
3032
  }
2992
- function lo(e) {
3033
+ function go(e) {
2993
3034
  return o.array(o.string()).default([]).meta($({
2994
3035
  title: e.title,
2995
3036
  description: e.description
2996
3037
  }));
2997
3038
  }
2998
- function uo(e, t) {
3039
+ function _o(e, t) {
2999
3040
  let n = o.object(e);
3000
3041
  return n.default($t(n)).meta({ title: t.title });
3001
3042
  }
3002
- function fo(e) {
3043
+ function vo(e) {
3003
3044
  return e.def;
3004
3045
  }
3005
- function po(e) {
3046
+ function yo(e) {
3006
3047
  if (o.globalRegistry.get(e)?.formType === "list") return !0;
3007
- let t = fo(e);
3008
- return t.shape ? Object.values(t.shape).some(po) : t.options ? t.options.some(po) : t.element ? po(t.element) : t.innerType ? po(t.innerType) : !1;
3048
+ let t = vo(e);
3049
+ 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;
3009
3050
  }
3010
- function mo(e) {
3011
- let t = e, n = fo(t).innerType;
3012
- for (; n;) t = n, n = fo(t).innerType;
3051
+ function bo(e) {
3052
+ let t = e, n = vo(t).innerType;
3053
+ for (; n;) t = n, n = vo(t).innerType;
3013
3054
  return t;
3014
3055
  }
3015
- function ho(e) {
3016
- let t = fo(mo(e));
3056
+ function xo(e) {
3057
+ let t = vo(bo(e));
3017
3058
  if (t.shape) return new Set(Object.keys(t.shape));
3018
3059
  if (t.options) {
3019
3060
  let e = [];
3020
3061
  for (let n of t.options) {
3021
- let t = ho(n);
3062
+ let t = xo(n);
3022
3063
  if (!t) return null;
3023
3064
  e.push(t);
3024
3065
  }
@@ -3030,7 +3071,7 @@ function ho(e) {
3030
3071
  }
3031
3072
  return null;
3032
3073
  }
3033
- function go(e, t, n) {
3074
+ function So(e, t, n) {
3034
3075
  let r = { [t]: n };
3035
3076
  try {
3036
3077
  return e.parse(r);
@@ -3038,12 +3079,12 @@ function go(e, t, n) {
3038
3079
  return r;
3039
3080
  }
3040
3081
  }
3041
- function _o(e, t) {
3082
+ function Co(e, t) {
3042
3083
  if (!Number.isInteger(t.max) || t.max < 1) throw Error(`field.list: max must be a positive integer, got ${t.max}`);
3043
- if (t.max > Za) throw Error(`field.list: max ${t.max} exceeds the ceiling of ${Za}`);
3084
+ if (t.max > ro) throw Error(`field.list: max ${t.max} exceeds the ceiling of ${ro}`);
3044
3085
  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}`);
3045
- if (po(e)) throw Error("field.list: a list item cannot contain another field.list (depth 1 only)");
3046
- if (t.labelField !== void 0 && !ho(e)?.has(t.labelField)) throw Error(`field.list: labelField "${t.labelField}" must name a field present in every item`);
3086
+ if (yo(e)) throw Error("field.list: a list item cannot contain another field.list (depth 1 only)");
3087
+ 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`);
3047
3088
  let n = o.array(e);
3048
3089
  return t.min !== void 0 && (n = n.min(t.min)), n = n.max(t.max), n.default([]).meta($({
3049
3090
  formType: "list",
@@ -3053,7 +3094,7 @@ function _o(e, t) {
3053
3094
  labelField: t.labelField
3054
3095
  }));
3055
3096
  }
3056
- function vo(e, t, n) {
3097
+ function wo(e, t, n) {
3057
3098
  let r = Object.keys(t)[0];
3058
3099
  if (r === void 0) throw Error("field.variants: at least one variant is required");
3059
3100
  if (n.shared && e in n.shared) throw Error(`field.variants: shared fields cannot redefine the discriminator "${e}"`);
@@ -3066,7 +3107,7 @@ function vo(e, t, n) {
3066
3107
  ...r,
3067
3108
  [e]: o.literal(t)
3068
3109
  })), a = o.discriminatedUnion(e, i), s = i[0];
3069
- return a.default(s ? go(s, e, r) : {}).meta($({
3110
+ return a.default(s ? So(s, e, r) : {}).meta($({
3070
3111
  formType: "variants",
3071
3112
  discriminator: e,
3072
3113
  title: n.title,
@@ -3074,35 +3115,35 @@ function vo(e, t, n) {
3074
3115
  labels: n.labels
3075
3116
  }));
3076
3117
  }
3077
- var yo = {
3078
- title: Qa,
3079
- text: $a,
3080
- number: eo,
3081
- toggle: to,
3082
- choice: no,
3083
- choices: ro,
3084
- entities: io,
3085
- entity: ao,
3086
- area: oo,
3087
- icon: so,
3088
- image: co,
3089
- stringList: lo,
3090
- group: uo,
3091
- list: _o,
3092
- variants: vo
3118
+ var To = {
3119
+ title: io,
3120
+ text: ao,
3121
+ number: oo,
3122
+ toggle: so,
3123
+ choice: co,
3124
+ choices: lo,
3125
+ entities: uo,
3126
+ entity: fo,
3127
+ area: po,
3128
+ icon: mo,
3129
+ image: ho,
3130
+ stringList: go,
3131
+ group: _o,
3132
+ list: Co,
3133
+ variants: wo
3093
3134
  };
3094
- function bo(e) {
3135
+ function Eo(e) {
3095
3136
  return o.object(e);
3096
3137
  }
3097
3138
  //#endregion
3098
3139
  //#region src/framework/image-src.ts
3099
- function xo(e, t) {
3140
+ function Do(e, t) {
3100
3141
  let n = Vt(e);
3101
3142
  return n === void 0 ? Ut(e) : t?.[n]?.src;
3102
3143
  }
3103
3144
  //#endregion
3104
3145
  //#region src/shared/spline.ts
3105
- function So(e) {
3146
+ function Oo(e) {
3106
3147
  if (e.length < 2) return "";
3107
3148
  let t = e[0], n = e[1];
3108
3149
  if (!t || !n) return "";
@@ -3128,15 +3169,10 @@ function So(e) {
3128
3169
  return c;
3129
3170
  }
3130
3171
  //#endregion
3131
- //#region src/theme.ts
3132
- function Co() {
3133
- return document.documentElement.classList.contains("dark");
3134
- }
3135
- //#endregion
3136
3172
  //#region src/version.ts
3137
- var wo = {
3173
+ var ko = {
3138
3174
  name: "@glasshome/widget-sdk",
3139
- version: "1.25.2",
3175
+ version: "1.27.0",
3140
3176
  description: "SDK for building GlassHome dashboard widgets with SolidJS",
3141
3177
  keywords: [
3142
3178
  "dashboard",
@@ -3241,4 +3277,4 @@ var wo = {
3241
3277
  engines: { node: ">=18" }
3242
3278
  }.version;
3243
3279
  //#endregion
3244
- 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, wi as PanelEntityRow, mi as PanelFacts, pi as PanelRow, fi as PanelRows, di 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, wo 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, Ya 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, qi as WidgetDebugTab, Gi as WidgetDebugView, sa 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, Ai as buildDebugData, g as byDomain, kr as calculateLightGroup, Ar as calculateSensorGroup, zt as copyText, Fr as countActiveEntities, bo as defineConfig, en as defineWidget, t as deprecations, yo 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, xo as imageSrc, Ht as imageUrl, hr as injectTokens, Co as isDark, Nr as isEntityActive, Ci as isPanelControllable, Wt as mediaUrl, So as monotoneCubicPath, Gt as parseColor, Kt as presetValue, d as sendWebRtcCandidate, f as startWebRtcSession, p as state, Ja 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, Ua as useDaylight, S as useEntities, ee as useEntity, w as useEntityHistory, te as useEntityStatistics, ne as useForecast, re as useHassConfig, ja as useIntersectionPause, ie as useLocale, Aa as useMaterial, Wa 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, ua as useWidgetDashboard, un as useWidgetDialog, Pn as useWidgetDimensions, Ga as useWidgetEntityGroup, Mn as useWidgetGestures, fa as useWidgetViewer, Xa as widgetFields, a as z };
3280
+ 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 };