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