@nice2dev/ui-buildings 1.1.9 → 1.1.10

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.mjs CHANGED
@@ -92,18 +92,18 @@ const Wn = "_root_1nq8c_1", Vn = "_shell_1nq8c_27", Hn = "_dark_1nq8c_35", Un =
92
92
  function Eo(e) {
93
93
  return Ao[e] ?? "var(--nice-primary-bg, #f0f4ff)";
94
94
  }
95
- function Ln(e) {
95
+ function $n(e) {
96
96
  if (!e.length)
97
97
  return { x: 0, y: 0 };
98
98
  const n = e.reduce((o, s) => ({ x: o.x + s.x, y: o.y + s.y }), { x: 0, y: 0 });
99
99
  return { x: n.x / e.length, y: n.y / e.length };
100
100
  }
101
- function sn(e, n = !0) {
101
+ function an(e, n = !0) {
102
102
  return e.length < 2 ? "" : e.map((o, s) => `${s === 0 ? "M" : "L"}${o.x.toFixed(1)},${o.y.toFixed(1)}`).join(" ") + (n ? " Z" : "");
103
103
  }
104
104
  function Oo(e, n) {
105
105
  if (!e)
106
- return n ? Ln(n.polygon) : null;
106
+ return n ? $n(n.polygon) : null;
107
107
  if (!n || !n.polygon.length || e.x > 1 || e.y > 1)
108
108
  return e;
109
109
  const o = n.polygon.map((l) => l.x), s = n.polygon.map((l) => l.y), a = Math.min(...o), r = Math.min(...s);
@@ -180,7 +180,7 @@ const jo = [
180
180
  energy_meter: "zap",
181
181
  hub: "wifi",
182
182
  router: "wifi"
183
- }, uf = ({
183
+ }, mf = ({
184
184
  floors: e,
185
185
  defaultFloors: n,
186
186
  devices: o = [],
@@ -476,7 +476,7 @@ const jo = [
476
476
  })(),
477
477
  g.zones.map((B) => {
478
478
  var Ge;
479
- const K = ((Ge = u.selected) == null ? void 0 : Ge.id) === B.id, _e = Ln(B.polygon), $e = B.color ?? Eo(B.type);
479
+ const K = ((Ge = u.selected) == null ? void 0 : Ge.id) === B.id, _e = $n(B.polygon), $e = B.color ?? Eo(B.type);
480
480
  return /* @__PURE__ */ i(
481
481
  "g",
482
482
  {
@@ -486,7 +486,7 @@ const jo = [
486
486
  /* @__PURE__ */ t(
487
487
  "path",
488
488
  {
489
- d: sn(B.polygon),
489
+ d: an(B.polygon),
490
490
  fill: $e,
491
491
  fillOpacity: B.opacity ?? 0.55,
492
492
  stroke: K ? "var(--nice-primary-hover, #2563eb)" : "var(--nice-text-muted, #94a3b8)",
@@ -585,7 +585,7 @@ const jo = [
585
585
  /* @__PURE__ */ t(
586
586
  "path",
587
587
  {
588
- d: sn(u.drawing, !1),
588
+ d: an(u.drawing, !1),
589
589
  fill: "none",
590
590
  stroke: "var(--nice-primary-hover, #2563eb)",
591
591
  strokeWidth: 2,
@@ -671,7 +671,7 @@ function Vo(e, n, o) {
671
671
  function dt(e, n) {
672
672
  return Math.sqrt((n.x - e.x) ** 2 + (n.y - e.y) ** 2);
673
673
  }
674
- function $n(e, n, o) {
674
+ function zn(e, n, o) {
675
675
  const s = [], a = {
676
676
  x: e.x + e.width / 2,
677
677
  y: e.y + e.height / 2
@@ -1187,7 +1187,7 @@ const Yo = [
1187
1187
  tags: ["game", "enemy"]
1188
1188
  }
1189
1189
  ];
1190
- function zn(e, n = "floor-plan") {
1190
+ function nn(e, n = "floor-plan") {
1191
1191
  const o = (/* @__PURE__ */ new Date()).toISOString();
1192
1192
  return {
1193
1193
  $schema: "https://nice2dev.com/schemas/nsp-v1.json",
@@ -1219,10 +1219,10 @@ function zn(e, n = "floor-plan") {
1219
1219
  function Xo() {
1220
1220
  return `${Date.now().toString(36)}-${Math.random().toString(36).substr(2, 9)}`;
1221
1221
  }
1222
- const an = {
1222
+ const rn = {
1223
1223
  ft: 3.28084,
1224
1224
  in: 39.3701
1225
- }, rn = {
1225
+ }, cn = {
1226
1226
  "ft²": 0.092903,
1227
1227
  acre: 4046.86
1228
1228
  };
@@ -1274,16 +1274,16 @@ function yt(e, n = "metric", o = 2) {
1274
1274
  if (n === "metric")
1275
1275
  return e < 0.01 ? rt(e * 1e3, "mm", o) : e < 1 ? rt(e * 100, "cm", o) : rt(e, "m", o);
1276
1276
  {
1277
- const s = e * an.ft;
1278
- return s < 1 ? rt(e * an.in, "in", o) : rt(s, "ft", o);
1277
+ const s = e * rn.ft;
1278
+ return s < 1 ? rt(e * rn.in, "in", o) : rt(s, "ft", o);
1279
1279
  }
1280
1280
  }
1281
1281
  function Yt(e, n = "metric", o = 2) {
1282
1282
  if (n === "metric")
1283
1283
  return e >= 1e4 ? gt(e / 1e4, "ha", o) : gt(e, "m²", o);
1284
1284
  {
1285
- const s = e / rn["ft²"];
1286
- return s >= 43560 ? gt(e / rn.acre, "acre", o) : gt(s, "ft²", o);
1285
+ const s = e / cn["ft²"];
1286
+ return s >= 43560 ? gt(e / cn.acre, "acre", o) : gt(s, "ft²", o);
1287
1287
  }
1288
1288
  }
1289
1289
  function Qo(e, n = {}) {
@@ -2318,7 +2318,7 @@ function Bn(e) {
2318
2318
  }
2319
2319
  return Math.abs(n / 2);
2320
2320
  }
2321
- function cn(e) {
2321
+ function ln(e) {
2322
2322
  if (e.length === 0)
2323
2323
  return { x: 0, y: 0, width: 0, height: 0 };
2324
2324
  let n = 1 / 0, o = 1 / 0, s = -1 / 0, a = -1 / 0;
@@ -2331,13 +2331,13 @@ function cn(e) {
2331
2331
  height: a - o
2332
2332
  };
2333
2333
  }
2334
- function ln(e) {
2334
+ function dn(e) {
2335
2335
  let n = 0;
2336
2336
  for (let s = 0; s < e.length; s++)
2337
2337
  n = e.charCodeAt(s) + ((n << 5) - n);
2338
2338
  return `hsl(${Math.abs(n) % 360}, 60%, 50%)`;
2339
2339
  }
2340
- function dn(e) {
2340
+ function un(e) {
2341
2341
  return {
2342
2342
  position: e,
2343
2343
  rotation: 0,
@@ -2352,13 +2352,13 @@ function Bt(e, n, o, s, a) {
2352
2352
  c.push(...N.boundary);
2353
2353
  for (const N of o)
2354
2354
  c.push(N.position);
2355
- const h = cn(c), y = e.map((N) => ({
2355
+ const h = ln(c), y = e.map((N) => ({
2356
2356
  id: `wall-${et()}`,
2357
2357
  type: "wall",
2358
2358
  category: "building",
2359
2359
  name: "Wall",
2360
- transform: dn(N.start),
2361
- bounds: cn([N.start, N.end]),
2360
+ transform: un(N.start),
2361
+ bounds: ln([N.start, N.end]),
2362
2362
  layer: N.layer,
2363
2363
  locked: !1,
2364
2364
  visible: !0,
@@ -2373,7 +2373,7 @@ function Bt(e, n, o, s, a) {
2373
2373
  type: N.type,
2374
2374
  category: "annotation",
2375
2375
  name: N.type,
2376
- transform: dn(N.position),
2376
+ transform: un(N.position),
2377
2377
  bounds: {
2378
2378
  x: N.position.x - 10,
2379
2379
  y: N.position.y - 10,
@@ -2395,7 +2395,7 @@ function Bt(e, n, o, s, a) {
2395
2395
  visible: !0,
2396
2396
  locked: !1,
2397
2397
  opacity: 1,
2398
- color: ln(N),
2398
+ color: dn(N),
2399
2399
  objects: [
2400
2400
  ...y.filter((m) => m.layer === N),
2401
2401
  ...d.filter((m) => m.layer === N)
@@ -2415,7 +2415,7 @@ function Bt(e, n, o, s, a) {
2415
2415
  boundary: N.boundary,
2416
2416
  floorId: l,
2417
2417
  roomIds: [],
2418
- color: ln(N.name)
2418
+ color: dn(N.name)
2419
2419
  })), f = {
2420
2420
  $schema: "https://nice2dev.com/schemas/nsp-v1.json",
2421
2421
  version: "1.0.0",
@@ -2641,7 +2641,7 @@ const $s = "_overlay_1x0xg_9", zs = "_dialog_1x0xg_55", Ts = "_header_1x0xg_103"
2641
2641
  layerIcon: na,
2642
2642
  layerName: oa,
2643
2643
  layerCount: sa
2644
- }, aa = () => /* @__PURE__ */ t("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ t("path", { d: "M15 5L5 15M5 5L15 15", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }), un = () => /* @__PURE__ */ t("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "currentColor", children: /* @__PURE__ */ t("path", { d: "M7 0a7 7 0 1 0 0 14A7 7 0 0 0 7 0zm0 12.5a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5zm.75-3.25a.75.75 0 0 1-1.5 0v-4a.75.75 0 0 1 1.5 0v4z" }) }), mn = () => /* @__PURE__ */ t("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "currentColor", children: /* @__PURE__ */ t("path", { d: "M7 0a7 7 0 1 0 0 14A7 7 0 0 0 7 0zm2.8 9.15a.5.5 0 0 1-.65.65L7 8.45l-2.15 1.35a.5.5 0 0 1-.65-.65L5.55 7 4.2 4.85a.5.5 0 0 1 .65-.65L7 5.55l2.15-1.35a.5.5 0 0 1 .65.65L8.45 7l1.35 2.15z" }) }), hn = () => /* @__PURE__ */ t("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "currentColor", children: /* @__PURE__ */ t(
2644
+ }, aa = () => /* @__PURE__ */ t("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ t("path", { d: "M15 5L5 15M5 5L15 15", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }), mn = () => /* @__PURE__ */ t("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "currentColor", children: /* @__PURE__ */ t("path", { d: "M7 0a7 7 0 1 0 0 14A7 7 0 0 0 7 0zm0 12.5a.75.75 0 1 1 0-1.5.75.75 0 0 1 0 1.5zm.75-3.25a.75.75 0 0 1-1.5 0v-4a.75.75 0 0 1 1.5 0v4z" }) }), hn = () => /* @__PURE__ */ t("svg", { width: "14", height: "14", viewBox: "0 0 14 14", fill: "currentColor", children: /* @__PURE__ */ t("path", { d: "M7 0a7 7 0 1 0 0 14A7 7 0 0 0 7 0zm2.8 9.15a.5.5 0 0 1-.65.65L7 8.45l-2.15 1.35a.5.5 0 0 1-.65-.65L5.55 7 4.2 4.85a.5.5 0 0 1 .65-.65L7 5.55l2.15-1.35a.5.5 0 0 1 .65.65L8.45 7l1.35 2.15z" }) }), pn = () => /* @__PURE__ */ t("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "currentColor", children: /* @__PURE__ */ t(
2645
2645
  "path",
2646
2646
  {
2647
2647
  d: "M6 0L0 3l6 3 6-3-6-3zM0 6l6 3 6-3M0 9l6 3 6-3",
@@ -2827,7 +2827,7 @@ function ra({ result: e, onConfirm: n, onCancel: o }) {
2827
2827
  ] }),
2828
2828
  a && a.layers.length > 0 && /* @__PURE__ */ i("div", { className: Y.section, children: [
2829
2829
  /* @__PURE__ */ i("h3", { className: Y.sectionTitle, children: [
2830
- /* @__PURE__ */ t(hn, {}),
2830
+ /* @__PURE__ */ t(pn, {}),
2831
2831
  " Layers (",
2832
2832
  a.layers.length,
2833
2833
  ")"
@@ -2836,7 +2836,7 @@ function ra({ result: e, onConfirm: n, onCancel: o }) {
2836
2836
  a.layers.slice(0, 6).map((d, v) => {
2837
2837
  var _;
2838
2838
  return /* @__PURE__ */ i("li", { className: Y.layer, children: [
2839
- /* @__PURE__ */ t("span", { className: Y.layerIcon, children: /* @__PURE__ */ t(hn, {}) }),
2839
+ /* @__PURE__ */ t("span", { className: Y.layerIcon, children: /* @__PURE__ */ t(pn, {}) }),
2840
2840
  /* @__PURE__ */ t("span", { className: Y.layerName, children: d.name }),
2841
2841
  /* @__PURE__ */ t("span", { className: Y.layerCount, children: ((_ = d.objects) == null ? void 0 : _.length) || 0 })
2842
2842
  ] }, d.id || v);
@@ -2850,14 +2850,14 @@ function ra({ result: e, onConfirm: n, onCancel: o }) {
2850
2850
  ] }),
2851
2851
  e.warnings.length > 0 && /* @__PURE__ */ i("div", { className: Y.section, children: [
2852
2852
  /* @__PURE__ */ i("h3", { className: Y.sectionTitle, children: [
2853
- /* @__PURE__ */ t(un, {}),
2853
+ /* @__PURE__ */ t(mn, {}),
2854
2854
  " Warnings (",
2855
2855
  e.warnings.length,
2856
2856
  ")"
2857
2857
  ] }),
2858
2858
  /* @__PURE__ */ i("ul", { className: Y.warningsList, children: [
2859
2859
  e.warnings.slice(0, 5).map((d, v) => /* @__PURE__ */ i("li", { className: Y.warning, children: [
2860
- /* @__PURE__ */ t("span", { className: Y.warningIcon, children: /* @__PURE__ */ t(un, {}) }),
2860
+ /* @__PURE__ */ t("span", { className: Y.warningIcon, children: /* @__PURE__ */ t(mn, {}) }),
2861
2861
  /* @__PURE__ */ t("span", { children: d.message })
2862
2862
  ] }, v)),
2863
2863
  e.warnings.length > 5 && /* @__PURE__ */ i("li", { className: Y.warning, children: [
@@ -2869,13 +2869,13 @@ function ra({ result: e, onConfirm: n, onCancel: o }) {
2869
2869
  ] }),
2870
2870
  y.length > 0 && /* @__PURE__ */ i("div", { className: Y.section, children: [
2871
2871
  /* @__PURE__ */ i("h3", { className: Y.sectionTitle, children: [
2872
- /* @__PURE__ */ t(mn, {}),
2872
+ /* @__PURE__ */ t(hn, {}),
2873
2873
  " Errors (",
2874
2874
  y.length,
2875
2875
  ")"
2876
2876
  ] }),
2877
2877
  /* @__PURE__ */ t("ul", { className: Y.warningsList, children: y.slice(0, 5).map((d, v) => /* @__PURE__ */ i("li", { className: Y.error, children: [
2878
- /* @__PURE__ */ t("span", { className: Y.errorIcon, children: /* @__PURE__ */ t(mn, {}) }),
2878
+ /* @__PURE__ */ t("span", { className: Y.errorIcon, children: /* @__PURE__ */ t(hn, {}) }),
2879
2879
  /* @__PURE__ */ t("span", { children: d.message })
2880
2880
  ] }, v)) })
2881
2881
  ] }),
@@ -2918,7 +2918,7 @@ const ca = "_overlay_1jmp3_9", la = "_dialog_1jmp3_55", da = "_header_1jmp3_103"
2918
2918
  footerRight: $a,
2919
2919
  cancelButton: za,
2920
2920
  confirmButton: Ta
2921
- }, pn = () => /* @__PURE__ */ t("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ t("path", { d: "M15 5L5 15M5 5L15 15", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }), Ma = () => /* @__PURE__ */ t(
2921
+ }, _n = () => /* @__PURE__ */ t("svg", { width: "20", height: "20", viewBox: "0 0 20 20", fill: "none", children: /* @__PURE__ */ t("path", { d: "M15 5L5 15M5 5L15 15", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round" }) }), Ma = () => /* @__PURE__ */ t(
2922
2922
  "svg",
2923
2923
  {
2924
2924
  width: "14",
@@ -2940,7 +2940,7 @@ const ca = "_overlay_1jmp3_9", la = "_dialog_1jmp3_55", da = "_header_1jmp3_103"
2940
2940
  strokeWidth: "1.5",
2941
2941
  children: /* @__PURE__ */ t("path", { d: "M4 8h8M9 5l3 3-3 3", strokeLinecap: "round", strokeLinejoin: "round" })
2942
2942
  }
2943
- ), _n = {
2943
+ ), fn = {
2944
2944
  "floor-plan": "Floor plan",
2945
2945
  walls: "Walls",
2946
2946
  rooms: "Rooms",
@@ -2984,7 +2984,7 @@ function Aa(e) {
2984
2984
  n.find((a) => a.id === s.id) || n.push(s);
2985
2985
  return n;
2986
2986
  }
2987
- function fn(e, n) {
2987
+ function gn(e, n) {
2988
2988
  const o = /* @__PURE__ */ new Map();
2989
2989
  for (const s of e) {
2990
2990
  const a = n.find((c) => c.type === s.type);
@@ -3008,7 +3008,7 @@ const Ea = ({
3008
3008
  onCancel: s
3009
3009
  }) => {
3010
3010
  const { t: a } = ke(), r = ve(() => Pa(e), [e]), l = ve(() => Aa(n), [n]), [c, h] = ne(
3011
- () => fn(r, l)
3011
+ () => gn(r, l)
3012
3012
  ), [y, d] = ne(!0), v = L((m, I) => {
3013
3013
  h((C) => {
3014
3014
  const z = new Map(C);
@@ -3019,7 +3019,7 @@ const Ea = ({
3019
3019
  const I = /* @__PURE__ */ new Map();
3020
3020
  switch (m) {
3021
3021
  case "auto":
3022
- h(fn(r, l));
3022
+ h(gn(r, l));
3023
3023
  return;
3024
3024
  case "skip-all":
3025
3025
  for (const C of r)
@@ -3056,7 +3056,7 @@ const Ea = ({
3056
3056
  children: /* @__PURE__ */ i("div", { className: le.dialog, children: [
3057
3057
  /* @__PURE__ */ i("div", { className: le.header, children: [
3058
3058
  /* @__PURE__ */ t("h2", { className: le.title, children: "Mapowanie warstw" }),
3059
- /* @__PURE__ */ t("button", { className: le.closeButton, onClick: s, children: /* @__PURE__ */ t(pn, {}) })
3059
+ /* @__PURE__ */ t("button", { className: le.closeButton, onClick: s, children: /* @__PURE__ */ t(_n, {}) })
3060
3060
  ] }),
3061
3061
  /* @__PURE__ */ t("div", { className: le.content, children: /* @__PURE__ */ t("p", { className: le.description, children: a("buildings.spatial.noLayersInFile", "The imported file contains no layers.") }) }),
3062
3062
  /* @__PURE__ */ i("div", { className: le.footer, children: [
@@ -3075,7 +3075,7 @@ const Ea = ({
3075
3075
  children: /* @__PURE__ */ i("div", { className: le.dialog, children: [
3076
3076
  /* @__PURE__ */ i("div", { className: le.header, children: [
3077
3077
  /* @__PURE__ */ t("h2", { className: le.title, children: "Mapowanie warstw" }),
3078
- /* @__PURE__ */ t("button", { className: le.closeButton, onClick: s, children: /* @__PURE__ */ t(pn, {}) })
3078
+ /* @__PURE__ */ t("button", { className: le.closeButton, onClick: s, children: /* @__PURE__ */ t(_n, {}) })
3079
3079
  ] }),
3080
3080
  /* @__PURE__ */ i("div", { className: le.content, children: [
3081
3081
  /* @__PURE__ */ t("p", { className: le.description, children: a(
@@ -3118,13 +3118,13 @@ const Ea = ({
3118
3118
  ": ",
3119
3119
  m.name,
3120
3120
  " (",
3121
- _n[m.type],
3121
+ fn[m.type],
3122
3122
  ")"
3123
3123
  ] }),
3124
3124
  l.map((I) => /* @__PURE__ */ i("option", { value: I.id, children: [
3125
3125
  I.name,
3126
3126
  " (",
3127
- _n[I.type],
3127
+ fn[I.type],
3128
3128
  ")"
3129
3129
  ] }, I.id))
3130
3130
  ]
@@ -4111,7 +4111,7 @@ const Ki = ({
4111
4111
  /* @__PURE__ */ t("path", { d: "M3 13L13 3", strokeLinecap: "round" })
4112
4112
  ]
4113
4113
  }
4114
- ), gn = () => /* @__PURE__ */ i(
4114
+ ), yn = () => /* @__PURE__ */ i(
4115
4115
  "svg",
4116
4116
  {
4117
4117
  width: "16",
@@ -4217,7 +4217,7 @@ const Hc = ({
4217
4217
  return /* @__PURE__ */ i("div", { className: D.panel, children: [
4218
4218
  /* @__PURE__ */ i("div", { className: D.header, children: [
4219
4219
  /* @__PURE__ */ i("div", { className: D.headerTitle, children: [
4220
- /* @__PURE__ */ t(gn, {}),
4220
+ /* @__PURE__ */ t(yn, {}),
4221
4221
  /* @__PURE__ */ t("h3", { className: D.title, children: c("buildings.spatial.vlan.title", "VLAN overlay") })
4222
4222
  ] }),
4223
4223
  l && /* @__PURE__ */ t(
@@ -4274,7 +4274,7 @@ const Hc = ({
4274
4274
  ] })
4275
4275
  ] }),
4276
4276
  /* @__PURE__ */ t("div", { className: D.content, children: _.length === 0 ? /* @__PURE__ */ i("div", { className: D.emptyState, children: [
4277
- /* @__PURE__ */ t(gn, {}),
4277
+ /* @__PURE__ */ t(yn, {}),
4278
4278
  /* @__PURE__ */ t("p", { children: c("buildings.spatial.vlan.empty", "No VLANs defined") }),
4279
4279
  /* @__PURE__ */ t("span", { className: D.emptyHint, children: c(
4280
4280
  "buildings.spatial.vlan.emptyHint",
@@ -5305,7 +5305,7 @@ const Nd = ({ mode: e, activeTool: n, onToolSelect: o, readOnly: s }) => {
5305
5305
  s
5306
5306
  );
5307
5307
  }) });
5308
- function yn(e) {
5308
+ function bn(e) {
5309
5309
  if (!e)
5310
5310
  return [];
5311
5311
  const n = [];
@@ -5391,8 +5391,8 @@ const Sd = [
5391
5391
  content: "Lay out floor plans across modes: draw walls, rooms and objects with the tools, manage layers, snap to the grid, then export.",
5392
5392
  placement: "auto"
5393
5393
  }
5394
- ], mf = (e) => {
5395
- var nn, on;
5394
+ ], hf = (e) => {
5395
+ var on, sn;
5396
5396
  const {
5397
5397
  defaultMode: n = "floor-plan",
5398
5398
  availableModes: o = Object.keys(st),
@@ -5568,7 +5568,7 @@ const Sd = [
5568
5568
  id: ue.id,
5569
5569
  bounds: ue.bounds
5570
5570
  }))
5571
- ), W = { x: j.x, y: j.y, width: 1, height: 1 }, J = $n(W, R, 10);
5571
+ ), W = { x: j.x, y: j.y, width: 1, height: 1 }, J = zn(W, R, 10);
5572
5572
  g({ type: "SET_GUIDES", guides: J });
5573
5573
  }
5574
5574
  ae.active && g({ type: "UPDATE_CONNECTING_PREVIEW", position: j });
@@ -5964,7 +5964,7 @@ const Sd = [
5964
5964
  {
5965
5965
  className: G.primaryBtn,
5966
5966
  onClick: () => {
5967
- const x = zn("New Project", "floor-plan");
5967
+ const x = nn("New Project", "floor-plan");
5968
5968
  g({ type: "SET_DOCUMENT", document: x });
5969
5969
  },
5970
5970
  children: "Create New Document"
@@ -6233,9 +6233,9 @@ const Sd = [
6233
6233
  Ze.label
6234
6234
  ] }),
6235
6235
  /* @__PURE__ */ i("span", { className: G.toolIndicator, children: [
6236
- ((nn = It[pe]) == null ? void 0 : nn.icon) && /* @__PURE__ */ t(A, { name: It[pe].icon, size: 14 }),
6236
+ ((on = It[pe]) == null ? void 0 : on.icon) && /* @__PURE__ */ t(A, { name: It[pe].icon, size: 14 }),
6237
6237
  " ",
6238
- (on = It[pe]) == null ? void 0 : on.label
6238
+ (sn = It[pe]) == null ? void 0 : sn.label
6239
6239
  ] }),
6240
6240
  xe.objectIds.length > 0 && /* @__PURE__ */ i("span", { className: G.selectionInfo, children: [
6241
6241
  xe.objectIds.length,
@@ -6296,7 +6296,7 @@ const Sd = [
6296
6296
  Ki,
6297
6297
  {
6298
6298
  document: ce,
6299
- connections: yn(ce),
6299
+ connections: bn(ce),
6300
6300
  onHighlightPath: (x) => {
6301
6301
  g(x ? {
6302
6302
  type: "SET_SELECTION",
@@ -6313,7 +6313,7 @@ const Sd = [
6313
6313
  Hc,
6314
6314
  {
6315
6315
  document: ce,
6316
- connections: yn(ce),
6316
+ connections: bn(ce),
6317
6317
  vlans: xd(ce),
6318
6318
  visibleVlanIds: _e,
6319
6319
  onVlanVisibilityChange: (x, j) => {
@@ -6429,7 +6429,7 @@ const Sd = [
6429
6429
  /* @__PURE__ */ t("path", { d: "M11 11l3 3", strokeLinecap: "round" })
6430
6430
  ]
6431
6431
  }
6432
- ), bn = () => /* @__PURE__ */ t(
6432
+ ), vn = () => /* @__PURE__ */ t(
6433
6433
  "svg",
6434
6434
  {
6435
6435
  width: "16",
@@ -6523,7 +6523,7 @@ const Sd = [
6523
6523
  strokeWidth: "1.5",
6524
6524
  children: /* @__PURE__ */ t("path", { d: "M12 4L4 12M4 4l8 8", strokeLinecap: "round" })
6525
6525
  }
6526
- ), vn = () => /* @__PURE__ */ i(
6526
+ ), wn = () => /* @__PURE__ */ i(
6527
6527
  "svg",
6528
6528
  {
6529
6529
  width: "16",
@@ -6538,7 +6538,7 @@ const Sd = [
6538
6538
  /* @__PURE__ */ t("path", { d: "M2 8l6 4 6-4", opacity: "0.5" })
6539
6539
  ]
6540
6540
  }
6541
- ), wn = () => /* @__PURE__ */ i(
6541
+ ), Nn = () => /* @__PURE__ */ i(
6542
6542
  "svg",
6543
6543
  {
6544
6544
  width: "16",
@@ -6609,8 +6609,8 @@ function rm(e) {
6609
6609
  const o = Math.floor(n / 60), s = n % 60;
6610
6610
  return `${o}h ${s}min`;
6611
6611
  }
6612
- const hf = ({
6613
- document: e,
6612
+ const cm = nn(""), pf = ({
6613
+ document: e = cm,
6614
6614
  initialFloorId: n,
6615
6615
  showNavigation: o = !0,
6616
6616
  showMinimap: s = !0,
@@ -7133,7 +7133,7 @@ const hf = ({
7133
7133
  className: `${M.navBtn} ${Oe ? M.active : ""}`,
7134
7134
  onClick: () => He(!Oe),
7135
7135
  children: [
7136
- /* @__PURE__ */ t(bn, {}),
7136
+ /* @__PURE__ */ t(vn, {}),
7137
7137
  /* @__PURE__ */ t("span", { children: "Nawigacja" })
7138
7138
  ]
7139
7139
  }
@@ -7144,7 +7144,7 @@ const hf = ({
7144
7144
  className: `${M.layersBtn} ${Pe ? M.active : ""}`,
7145
7145
  onClick: () => Re(!Pe),
7146
7146
  children: [
7147
- /* @__PURE__ */ t(vn, {}),
7147
+ /* @__PURE__ */ t(wn, {}),
7148
7148
  /* @__PURE__ */ t("span", { children: "Warstwy" })
7149
7149
  ]
7150
7150
  }
@@ -7155,7 +7155,7 @@ const hf = ({
7155
7155
  className: `${M.legendBtn} ${je ? M.active : ""}`,
7156
7156
  onClick: () => B(!je),
7157
7157
  children: [
7158
- /* @__PURE__ */ t(wn, {}),
7158
+ /* @__PURE__ */ t(Nn, {}),
7159
7159
  /* @__PURE__ */ t("span", { children: "Legenda" })
7160
7160
  ]
7161
7161
  }
@@ -7238,7 +7238,7 @@ const hf = ({
7238
7238
  ] }),
7239
7239
  Pe && ae && /* @__PURE__ */ i("div", { className: M.layersPanel, children: [
7240
7240
  /* @__PURE__ */ i("div", { className: M.layersPanelHeader, children: [
7241
- /* @__PURE__ */ t(vn, {}),
7241
+ /* @__PURE__ */ t(wn, {}),
7242
7242
  /* @__PURE__ */ t("span", { children: "Warstwy" }),
7243
7243
  /* @__PURE__ */ t("button", { onClick: () => Re(!1), children: /* @__PURE__ */ t(ct, {}) })
7244
7244
  ] }),
@@ -7307,7 +7307,7 @@ const hf = ({
7307
7307
  s && /* @__PURE__ */ t("div", { className: M.minimap, children: /* @__PURE__ */ t("div", { className: M.minimapContent, children: /* @__PURE__ */ t("div", { className: M.minimapViewport }) }) }),
7308
7308
  je && Xe.length > 0 && /* @__PURE__ */ i("div", { className: M.legendPanel, children: [
7309
7309
  /* @__PURE__ */ i("div", { className: M.legendPanelHeader, children: [
7310
- /* @__PURE__ */ t(wn, {}),
7310
+ /* @__PURE__ */ t(Nn, {}),
7311
7311
  /* @__PURE__ */ t("span", { children: "Legenda" }),
7312
7312
  /* @__PURE__ */ t("button", { onClick: () => B(!1), children: /* @__PURE__ */ t(ct, {}) })
7313
7313
  ] }),
@@ -7334,7 +7334,7 @@ const hf = ({
7334
7334
  oe ? ge(k) : he(k);
7335
7335
  },
7336
7336
  children: [
7337
- /* @__PURE__ */ t(bn, {}),
7337
+ /* @__PURE__ */ t(vn, {}),
7338
7338
  oe ? "Ustaw jako cel" : "Ustaw jako start"
7339
7339
  ]
7340
7340
  }
@@ -7344,7 +7344,7 @@ const hf = ({
7344
7344
  }
7345
7345
  );
7346
7346
  };
7347
- function pf(e = {}) {
7347
+ function _f(e = {}) {
7348
7348
  var he;
7349
7349
  const {
7350
7350
  initialDocument: n,
@@ -7395,7 +7395,7 @@ function pf(e = {}) {
7395
7395
  }, []), v = L(
7396
7396
  (ee = "Untitled") => {
7397
7397
  var se;
7398
- const ge = zn(ee, "floor-plan");
7398
+ const ge = nn(ee, "floor-plan");
7399
7399
  h({ document: ge, activeFloorId: ((se = ge.floors[0]) == null ? void 0 : se.id) ?? null }), r == null || r(ge);
7400
7400
  },
7401
7401
  [r]
@@ -7497,7 +7497,7 @@ function pf(e = {}) {
7497
7497
  cut: oe
7498
7498
  };
7499
7499
  }
7500
- function _f(e = {}) {
7500
+ function ff(e = {}) {
7501
7501
  const {
7502
7502
  gridSize: n = 20,
7503
7503
  enabled: o = !0,
@@ -7526,7 +7526,7 @@ function _f(e = {}) {
7526
7526
  if (!o || c.length === 0)
7527
7527
  return [];
7528
7528
  const f = { x: p.x, y: p.y, width: 0, height: 0 };
7529
- return $n(f, c, r);
7529
+ return zn(f, c, r);
7530
7530
  },
7531
7531
  [o, c, r]
7532
7532
  ), v = L(
@@ -7560,7 +7560,7 @@ function _f(e = {}) {
7560
7560
  generateGridLines: _
7561
7561
  };
7562
7562
  }
7563
- function ff(e = {}) {
7563
+ function gf(e = {}) {
7564
7564
  const {
7565
7565
  unitSystem: n = "metric",
7566
7566
  lengthUnit: o = "m",
@@ -7655,51 +7655,51 @@ function ff(e = {}) {
7655
7655
  getLength: $
7656
7656
  };
7657
7657
  }
7658
- const cm = "_root_15owo_3", lm = "_dark_15owo_25", dm = "_header_15owo_37", um = "_buildingInfo_15owo_51", mm = "_buildingName_15owo_59", hm = "_buildingAddress_15owo_81", pm = "_modeSelector_15owo_95", _m = "_modeBtn_15owo_107", fm = "_modeBtnActive_15owo_145", gm = "_weather_15owo_159", ym = "_weatherTemp_15owo_173", bm = "_weatherDesc_15owo_193", vm = "_statsRow_15owo_205", wm = "_statsCard_15owo_217", Nm = "_statsHeader_15owo_247", km = "_statsIcon_15owo_261", xm = "_statsLabel_15owo_269", Im = "_statsValue_15owo_283", Sm = "_statsSub_15owo_305", Cm = "_zoneGrid_15owo_319", Lm = "_zoneCard_15owo_333", $m = "_zoneOccupied_15owo_381", zm = "_zoneCardHeader_15owo_389", Tm = "_zoneCardIcon_15owo_403", Mm = "_zoneCardTitles_15owo_411", Bm = "_zoneCardName_15owo_421", Pm = "_zoneCardArea_15owo_449", Am = "_occupancyBadge_15owo_459", Em = "_occupancyBadgeOn_15owo_477", Om = "_sensorRow_15owo_489", Dm = "_sensorChip_15owo_503", Rm = "_sensorWarn_15owo_521", jm = "_deviceList_15owo_535", qm = "_deviceChip_15owo_547", Fm = "_deviceChipOn_15owo_585", Gm = "_deviceChipName_15owo_597", Wm = "_deviceChipVal_15owo_611", Vm = "_moreBtn_15owo_621", Hm = "_scenesBar_15owo_651", Um = "_sceneBarLabel_15owo_681", Ym = "_sceneList_15owo_699", Xm = "_sceneBtn_15owo_711", Zm = "_sceneBtnActive_15owo_741", Z = {
7659
- root: cm,
7660
- dark: lm,
7661
- header: dm,
7662
- buildingInfo: um,
7663
- buildingName: mm,
7664
- buildingAddress: hm,
7665
- modeSelector: pm,
7666
- modeBtn: _m,
7667
- modeBtnActive: fm,
7668
- weather: gm,
7669
- weatherTemp: ym,
7670
- weatherDesc: bm,
7671
- statsRow: vm,
7672
- statsCard: wm,
7673
- statsHeader: Nm,
7674
- statsIcon: km,
7675
- statsLabel: xm,
7676
- statsValue: Im,
7677
- statsSub: Sm,
7678
- zoneGrid: Cm,
7679
- zoneCard: Lm,
7680
- zoneOccupied: $m,
7681
- zoneCardHeader: zm,
7682
- zoneCardIcon: Tm,
7683
- zoneCardTitles: Mm,
7684
- zoneCardName: Bm,
7685
- zoneCardArea: Pm,
7686
- occupancyBadge: Am,
7687
- occupancyBadgeOn: Em,
7688
- sensorRow: Om,
7689
- sensorChip: Dm,
7690
- sensorWarn: Rm,
7691
- deviceList: jm,
7692
- deviceChip: qm,
7693
- deviceChipOn: Fm,
7694
- deviceChipName: Gm,
7695
- deviceChipVal: Wm,
7696
- moreBtn: Vm,
7697
- scenesBar: Hm,
7698
- sceneBarLabel: Um,
7699
- sceneList: Ym,
7700
- sceneBtn: Xm,
7701
- sceneBtnActive: Zm
7702
- }, Km = {
7658
+ const lm = "_root_15owo_3", dm = "_dark_15owo_25", um = "_header_15owo_37", mm = "_buildingInfo_15owo_51", hm = "_buildingName_15owo_59", pm = "_buildingAddress_15owo_81", _m = "_modeSelector_15owo_95", fm = "_modeBtn_15owo_107", gm = "_modeBtnActive_15owo_145", ym = "_weather_15owo_159", bm = "_weatherTemp_15owo_173", vm = "_weatherDesc_15owo_193", wm = "_statsRow_15owo_205", Nm = "_statsCard_15owo_217", km = "_statsHeader_15owo_247", xm = "_statsIcon_15owo_261", Im = "_statsLabel_15owo_269", Sm = "_statsValue_15owo_283", Cm = "_statsSub_15owo_305", Lm = "_zoneGrid_15owo_319", $m = "_zoneCard_15owo_333", zm = "_zoneOccupied_15owo_381", Tm = "_zoneCardHeader_15owo_389", Mm = "_zoneCardIcon_15owo_403", Bm = "_zoneCardTitles_15owo_411", Pm = "_zoneCardName_15owo_421", Am = "_zoneCardArea_15owo_449", Em = "_occupancyBadge_15owo_459", Om = "_occupancyBadgeOn_15owo_477", Dm = "_sensorRow_15owo_489", Rm = "_sensorChip_15owo_503", jm = "_sensorWarn_15owo_521", qm = "_deviceList_15owo_535", Fm = "_deviceChip_15owo_547", Gm = "_deviceChipOn_15owo_585", Wm = "_deviceChipName_15owo_597", Vm = "_deviceChipVal_15owo_611", Hm = "_moreBtn_15owo_621", Um = "_scenesBar_15owo_651", Ym = "_sceneBarLabel_15owo_681", Xm = "_sceneList_15owo_699", Zm = "_sceneBtn_15owo_711", Km = "_sceneBtnActive_15owo_741", Z = {
7659
+ root: lm,
7660
+ dark: dm,
7661
+ header: um,
7662
+ buildingInfo: mm,
7663
+ buildingName: hm,
7664
+ buildingAddress: pm,
7665
+ modeSelector: _m,
7666
+ modeBtn: fm,
7667
+ modeBtnActive: gm,
7668
+ weather: ym,
7669
+ weatherTemp: bm,
7670
+ weatherDesc: vm,
7671
+ statsRow: wm,
7672
+ statsCard: Nm,
7673
+ statsHeader: km,
7674
+ statsIcon: xm,
7675
+ statsLabel: Im,
7676
+ statsValue: Sm,
7677
+ statsSub: Cm,
7678
+ zoneGrid: Lm,
7679
+ zoneCard: $m,
7680
+ zoneOccupied: zm,
7681
+ zoneCardHeader: Tm,
7682
+ zoneCardIcon: Mm,
7683
+ zoneCardTitles: Bm,
7684
+ zoneCardName: Pm,
7685
+ zoneCardArea: Am,
7686
+ occupancyBadge: Em,
7687
+ occupancyBadgeOn: Om,
7688
+ sensorRow: Dm,
7689
+ sensorChip: Rm,
7690
+ sensorWarn: jm,
7691
+ deviceList: qm,
7692
+ deviceChip: Fm,
7693
+ deviceChipOn: Gm,
7694
+ deviceChipName: Wm,
7695
+ deviceChipVal: Vm,
7696
+ moreBtn: Hm,
7697
+ scenesBar: Um,
7698
+ sceneBarLabel: Ym,
7699
+ sceneList: Xm,
7700
+ sceneBtn: Zm,
7701
+ sceneBtnActive: Km
7702
+ }, Jm = {
7703
7703
  living_room: "sofa",
7704
7704
  bedroom: "bed",
7705
7705
  master_bedroom: "bed",
@@ -7728,10 +7728,10 @@ const cm = "_root_15owo_3", lm = "_dark_15owo_25", dm = "_header_15owo_37", um =
7728
7728
  it_room: "monitor",
7729
7729
  cafeteria: "utensils"
7730
7730
  };
7731
- function Jm(e) {
7732
- return Km[e] ?? "home";
7731
+ function Qm(e) {
7732
+ return Jm[e] ?? "home";
7733
7733
  }
7734
- const Qm = {
7734
+ const eh = {
7735
7735
  light: "lightbulb",
7736
7736
  dimmer: "lightbulb",
7737
7737
  rgb_light: "lightbulb",
@@ -7774,13 +7774,13 @@ const Qm = {
7774
7774
  hub: "wifi",
7775
7775
  router: "wifi"
7776
7776
  };
7777
- function eh(e, n) {
7777
+ function th(e, n) {
7778
7778
  if (!n.state)
7779
7779
  return null;
7780
7780
  const o = n.state;
7781
7781
  return typeof o.brightness == "number" ? `${o.brightness}%` : typeof o.on == "boolean" ? o.on ? e("buildings.onShort", "On") : e("buildings.offShort", "Off") : typeof o.temperature == "number" ? `${o.temperature.toFixed(1)}°` : typeof o.locked == "boolean" ? /* @__PURE__ */ t(A, { name: "lock", size: 14 }) : null;
7782
7782
  }
7783
- const th = ({
7783
+ const nh = ({
7784
7784
  zone: e,
7785
7785
  devices: n = [],
7786
7786
  expanded: o = !1,
@@ -7800,7 +7800,7 @@ const th = ({
7800
7800
  onClick: r,
7801
7801
  children: [
7802
7802
  /* @__PURE__ */ i("div", { className: Z.zoneCardHeader, children: [
7803
- /* @__PURE__ */ t("span", { className: Z.zoneCardIcon, children: /* @__PURE__ */ t(A, { name: Jm(e.type), size: 18 }) }),
7803
+ /* @__PURE__ */ t("span", { className: Z.zoneCardIcon, children: /* @__PURE__ */ t(A, { name: Qm(e.type), size: 18 }) }),
7804
7804
  /* @__PURE__ */ i("div", { className: Z.zoneCardTitles, children: [
7805
7805
  /* @__PURE__ */ t("span", { className: Z.zoneCardName, children: e.name }),
7806
7806
  e.area != null && /* @__PURE__ */ i("span", { className: Z.zoneCardArea, children: [
@@ -7844,9 +7844,9 @@ const th = ({
7844
7844
  },
7845
7845
  title: _.name,
7846
7846
  children: [
7847
- /* @__PURE__ */ t("span", { children: /* @__PURE__ */ t(A, { name: Qm[_.type] ?? "monitor", size: 14 }) }),
7847
+ /* @__PURE__ */ t("span", { children: /* @__PURE__ */ t(A, { name: eh[_.type] ?? "monitor", size: 14 }) }),
7848
7848
  /* @__PURE__ */ t("span", { className: Z.deviceChipName, children: _.name }),
7849
- /* @__PURE__ */ t("span", { className: Z.deviceChipVal, children: eh(y, _) })
7849
+ /* @__PURE__ */ t("span", { className: Z.deviceChipVal, children: th(y, _) })
7850
7850
  ]
7851
7851
  },
7852
7852
  _.id
@@ -7880,7 +7880,7 @@ const th = ({
7880
7880
  event: "Event",
7881
7881
  emergency: "Emergency",
7882
7882
  maintenance: "Maintenance"
7883
- }, Nn = {
7883
+ }, kn = {
7884
7884
  home: "home",
7885
7885
  away: "external-link",
7886
7886
  night: "eye-off",
@@ -7893,7 +7893,7 @@ const th = ({
7893
7893
  event: "calendar",
7894
7894
  emergency: "bell",
7895
7895
  maintenance: "settings"
7896
- }, nh = ({ temperature: e, description: n }) => e != null ? /* @__PURE__ */ i("div", { className: Z.weather, children: [
7896
+ }, oh = ({ temperature: e, description: n }) => e != null ? /* @__PURE__ */ i("div", { className: Z.weather, children: [
7897
7897
  /* @__PURE__ */ i("span", { className: Z.weatherTemp, children: [
7898
7898
  e,
7899
7899
  "°C"
@@ -7913,7 +7913,7 @@ const th = ({
7913
7913
  o && /* @__PURE__ */ t("div", { className: Z.statsSub, children: o })
7914
7914
  ]
7915
7915
  }
7916
- ), gf = ({
7916
+ ), yf = ({
7917
7917
  building: e,
7918
7918
  state: n,
7919
7919
  onModeChange: o,
@@ -7949,13 +7949,13 @@ const th = ({
7949
7949
  className: `${Z.modeBtn} ${z === w ? Z.modeBtnActive : ""}`,
7950
7950
  onClick: () => o == null ? void 0 : o(w),
7951
7951
  children: [
7952
- /* @__PURE__ */ t(A, { name: Nn[w], size: 16 }),
7952
+ /* @__PURE__ */ t(A, { name: kn[w], size: 16 }),
7953
7953
  /* @__PURE__ */ t("span", { children: Kt[w] })
7954
7954
  ]
7955
7955
  },
7956
7956
  w
7957
7957
  )) }),
7958
- /* @__PURE__ */ t(nh, { temperature: y == null ? void 0 : y.temperature, description: y == null ? void 0 : y.description })
7958
+ /* @__PURE__ */ t(oh, { temperature: y == null ? void 0 : y.temperature, description: y == null ? void 0 : y.description })
7959
7959
  ] }),
7960
7960
  /* @__PURE__ */ i("div", { className: Z.statsRow, children: [
7961
7961
  N != null && /* @__PURE__ */ t(
@@ -7991,7 +7991,7 @@ const th = ({
7991
7991
  /* @__PURE__ */ t(
7992
7992
  xt,
7993
7993
  {
7994
- icon: Nn[z],
7994
+ icon: kn[z],
7995
7995
  label: d("buildings.mode", "Mode"),
7996
7996
  value: d(`buildings.mode.${z}`, Kt[z]),
7997
7997
  accent: "var(--nice-accent, #8b5cf6)"
@@ -8003,7 +8003,7 @@ const th = ({
8003
8003
  (F) => (F.zones ?? []).find((S) => S.id === w.id) ? e.devices ?? [] : []
8004
8004
  ).filter((F) => F.zoneId === w.id);
8005
8005
  return /* @__PURE__ */ t(
8006
- th,
8006
+ nh,
8007
8007
  {
8008
8008
  zone: w,
8009
8009
  devices: g,
@@ -8038,86 +8038,86 @@ const th = ({
8038
8038
  ]
8039
8039
  }
8040
8040
  );
8041
- }, oh = "_deviceControl_1leqb_3", sh = "_dark_1leqb_23", ah = "_compact_1leqb_35", ih = "_offline_1leqb_43", rh = "_offlineBanner_1leqb_51", ch = "_toggleControl_1leqb_75", lh = "_toggleLabel_1leqb_89", dh = "_toggleBtn_1leqb_109", uh = "_toggleOn_1leqb_135", mh = "_blindControl_1leqb_149", hh = "_blindLabel_1leqb_159", ph = "_blindActions_1leqb_173", _h = "_blindBtn_1leqb_181", fh = "_blindSlider_1leqb_205", gh = "_blindPct_1leqb_213", yh = "_lockControl_1leqb_227", bh = "_lockLabel_1leqb_239", vh = "_lockBtn_1leqb_253", wh = "_lockLocked_1leqb_273", Nh = "_lockUnlocked_1leqb_281", kh = "_cameraControl_1leqb_295", xh = "_cameraLabel_1leqb_305", Ih = "_cameraSnapshot_1leqb_319", Sh = "_cameraPlaceholder_1leqb_331", Ch = "_cameraStatus_1leqb_355", Lh = "_cameraDot_1leqb_369", $h = "_cameraOnline_1leqb_379", zh = "_cameraOffline_1leqb_385", Th = "_sensorControl_1leqb_395", Mh = "_sensorLabel_1leqb_405", Bh = "_sensorValues_1leqb_419", Ph = "_sensorRow_1leqb_429", Ah = "_sensorKey_1leqb_443", Eh = "_sensorVal_1leqb_419", Oh = "_thermostat_1leqb_467", Dh = "_thermostatTitle_1leqb_481", Rh = "_thermostatDial_1leqb_503", jh = "_dialTempCurrent_1leqb_513", qh = "_dialTempLabel_1leqb_535", Fh = "_dialTempTarget_1leqb_545", Gh = "_dialHumidity_1leqb_565", Wh = "_thermostatAdjust_1leqb_575", Vh = "_adjustBtn_1leqb_587", Hh = "_adjustTemp_1leqb_633", Uh = "_hvacModes_1leqb_657", Yh = "_hvacModeBtn_1leqb_671", Xh = "_hvacModeBtnActive_1leqb_699", Zh = "_hvacAction_1leqb_711", Kh = "_hvacActionDot_1leqb_727", Jh = "_lightControl_1leqb_741", Qh = "_lightHeader_1leqb_753", ep = "_lightIcon_1leqb_765", tp = "_lightName_1leqb_773", np = "_lightToggle_1leqb_801", op = "_lightToggleOn_1leqb_829", sp = "_sliderRow_1leqb_841", ap = "_sliderIcon_1leqb_855", ip = "_slider_1leqb_841", rp = "_sliderVal_1leqb_879", cp = "_colorRow_1leqb_891", lp = "_colorSwatch_1leqb_905", dp = "_colorPicker_1leqb_921", up = "_colorPresets_1leqb_937", mp = "_colorPreset_1leqb_937", hp = "_lightOff_1leqb_963", O = {
8042
- deviceControl: oh,
8043
- dark: sh,
8044
- compact: ah,
8045
- offline: ih,
8046
- offlineBanner: rh,
8047
- toggleControl: ch,
8048
- toggleLabel: lh,
8049
- toggleBtn: dh,
8050
- toggleOn: uh,
8051
- blindControl: mh,
8052
- blindLabel: hh,
8053
- blindActions: ph,
8054
- blindBtn: _h,
8055
- blindSlider: fh,
8056
- blindPct: gh,
8057
- lockControl: yh,
8058
- lockLabel: bh,
8059
- lockBtn: vh,
8060
- lockLocked: wh,
8061
- lockUnlocked: Nh,
8062
- cameraControl: kh,
8063
- cameraLabel: xh,
8064
- cameraSnapshot: Ih,
8065
- cameraPlaceholder: Sh,
8066
- cameraStatus: Ch,
8067
- cameraDot: Lh,
8068
- cameraOnline: $h,
8069
- cameraOffline: zh,
8070
- sensorControl: Th,
8071
- sensorLabel: Mh,
8072
- sensorValues: Bh,
8073
- sensorRow: Ph,
8074
- sensorKey: Ah,
8075
- sensorVal: Eh,
8076
- thermostat: Oh,
8077
- thermostatTitle: Dh,
8078
- thermostatDial: Rh,
8079
- dialTempCurrent: jh,
8080
- dialTempLabel: qh,
8081
- dialTempTarget: Fh,
8082
- dialHumidity: Gh,
8083
- thermostatAdjust: Wh,
8084
- adjustBtn: Vh,
8085
- adjustTemp: Hh,
8086
- hvacModes: Uh,
8087
- hvacModeBtn: Yh,
8088
- hvacModeBtnActive: Xh,
8089
- hvacAction: Zh,
8090
- hvacActionDot: Kh,
8091
- lightControl: Jh,
8092
- lightHeader: Qh,
8093
- lightIcon: ep,
8094
- lightName: tp,
8095
- lightToggle: np,
8096
- lightToggleOn: op,
8097
- sliderRow: sp,
8098
- sliderIcon: ap,
8099
- slider: ip,
8100
- sliderVal: rp,
8101
- colorRow: cp,
8102
- colorSwatch: lp,
8103
- colorPicker: dp,
8104
- colorPresets: up,
8105
- colorPreset: mp,
8106
- lightOff: hp
8041
+ }, sh = "_deviceControl_1leqb_3", ah = "_dark_1leqb_23", ih = "_compact_1leqb_35", rh = "_offline_1leqb_43", ch = "_offlineBanner_1leqb_51", lh = "_toggleControl_1leqb_75", dh = "_toggleLabel_1leqb_89", uh = "_toggleBtn_1leqb_109", mh = "_toggleOn_1leqb_135", hh = "_blindControl_1leqb_149", ph = "_blindLabel_1leqb_159", _h = "_blindActions_1leqb_173", fh = "_blindBtn_1leqb_181", gh = "_blindSlider_1leqb_205", yh = "_blindPct_1leqb_213", bh = "_lockControl_1leqb_227", vh = "_lockLabel_1leqb_239", wh = "_lockBtn_1leqb_253", Nh = "_lockLocked_1leqb_273", kh = "_lockUnlocked_1leqb_281", xh = "_cameraControl_1leqb_295", Ih = "_cameraLabel_1leqb_305", Sh = "_cameraSnapshot_1leqb_319", Ch = "_cameraPlaceholder_1leqb_331", Lh = "_cameraStatus_1leqb_355", $h = "_cameraDot_1leqb_369", zh = "_cameraOnline_1leqb_379", Th = "_cameraOffline_1leqb_385", Mh = "_sensorControl_1leqb_395", Bh = "_sensorLabel_1leqb_405", Ph = "_sensorValues_1leqb_419", Ah = "_sensorRow_1leqb_429", Eh = "_sensorKey_1leqb_443", Oh = "_sensorVal_1leqb_419", Dh = "_thermostat_1leqb_467", Rh = "_thermostatTitle_1leqb_481", jh = "_thermostatDial_1leqb_503", qh = "_dialTempCurrent_1leqb_513", Fh = "_dialTempLabel_1leqb_535", Gh = "_dialTempTarget_1leqb_545", Wh = "_dialHumidity_1leqb_565", Vh = "_thermostatAdjust_1leqb_575", Hh = "_adjustBtn_1leqb_587", Uh = "_adjustTemp_1leqb_633", Yh = "_hvacModes_1leqb_657", Xh = "_hvacModeBtn_1leqb_671", Zh = "_hvacModeBtnActive_1leqb_699", Kh = "_hvacAction_1leqb_711", Jh = "_hvacActionDot_1leqb_727", Qh = "_lightControl_1leqb_741", ep = "_lightHeader_1leqb_753", tp = "_lightIcon_1leqb_765", np = "_lightName_1leqb_773", op = "_lightToggle_1leqb_801", sp = "_lightToggleOn_1leqb_829", ap = "_sliderRow_1leqb_841", ip = "_sliderIcon_1leqb_855", rp = "_slider_1leqb_841", cp = "_sliderVal_1leqb_879", lp = "_colorRow_1leqb_891", dp = "_colorSwatch_1leqb_905", up = "_colorPicker_1leqb_921", mp = "_colorPresets_1leqb_937", hp = "_colorPreset_1leqb_937", pp = "_lightOff_1leqb_963", O = {
8042
+ deviceControl: sh,
8043
+ dark: ah,
8044
+ compact: ih,
8045
+ offline: rh,
8046
+ offlineBanner: ch,
8047
+ toggleControl: lh,
8048
+ toggleLabel: dh,
8049
+ toggleBtn: uh,
8050
+ toggleOn: mh,
8051
+ blindControl: hh,
8052
+ blindLabel: ph,
8053
+ blindActions: _h,
8054
+ blindBtn: fh,
8055
+ blindSlider: gh,
8056
+ blindPct: yh,
8057
+ lockControl: bh,
8058
+ lockLabel: vh,
8059
+ lockBtn: wh,
8060
+ lockLocked: Nh,
8061
+ lockUnlocked: kh,
8062
+ cameraControl: xh,
8063
+ cameraLabel: Ih,
8064
+ cameraSnapshot: Sh,
8065
+ cameraPlaceholder: Ch,
8066
+ cameraStatus: Lh,
8067
+ cameraDot: $h,
8068
+ cameraOnline: zh,
8069
+ cameraOffline: Th,
8070
+ sensorControl: Mh,
8071
+ sensorLabel: Bh,
8072
+ sensorValues: Ph,
8073
+ sensorRow: Ah,
8074
+ sensorKey: Eh,
8075
+ sensorVal: Oh,
8076
+ thermostat: Dh,
8077
+ thermostatTitle: Rh,
8078
+ thermostatDial: jh,
8079
+ dialTempCurrent: qh,
8080
+ dialTempLabel: Fh,
8081
+ dialTempTarget: Gh,
8082
+ dialHumidity: Wh,
8083
+ thermostatAdjust: Vh,
8084
+ adjustBtn: Hh,
8085
+ adjustTemp: Uh,
8086
+ hvacModes: Yh,
8087
+ hvacModeBtn: Xh,
8088
+ hvacModeBtnActive: Zh,
8089
+ hvacAction: Kh,
8090
+ hvacActionDot: Jh,
8091
+ lightControl: Qh,
8092
+ lightHeader: ep,
8093
+ lightIcon: tp,
8094
+ lightName: np,
8095
+ lightToggle: op,
8096
+ lightToggleOn: sp,
8097
+ sliderRow: ap,
8098
+ sliderIcon: ip,
8099
+ slider: rp,
8100
+ sliderVal: cp,
8101
+ colorRow: lp,
8102
+ colorSwatch: dp,
8103
+ colorPicker: up,
8104
+ colorPresets: mp,
8105
+ colorPreset: hp,
8106
+ lightOff: pp
8107
8107
  };
8108
- function kn(e) {
8108
+ function xn(e) {
8109
8109
  const n = Math.max(0, Math.min(1, (e - 2700) / 3800)), o = Math.round(255 - n * 80), s = Math.round(200 + n * 30), a = Math.round(100 + n * 155);
8110
8110
  return `rgb(${o},${s},${a})`;
8111
8111
  }
8112
- function pp(e, n, o) {
8112
+ function _p(e, n, o) {
8113
8113
  return "#" + [e, n, o].map((s) => s.toString(16).padStart(2, "0")).join("");
8114
8114
  }
8115
- const _p = ["#ffffff", "#fde68a", "#fca5a5", "#93c5fd", "#86efac", "#c4b5fd"];
8116
- function xn(e) {
8115
+ const fp = ["#ffffff", "#fde68a", "#fca5a5", "#93c5fd", "#86efac", "#c4b5fd"];
8116
+ function In(e) {
8117
8117
  const n = parseInt(e.slice(1, 3), 16), o = parseInt(e.slice(3, 5), 16), s = parseInt(e.slice(5, 7), 16);
8118
8118
  return [n, o, s];
8119
8119
  }
8120
- const fp = ({
8120
+ const gp = ({
8121
8121
  device: e,
8122
8122
  onControl: n,
8123
8123
  compact: o = !1,
@@ -8131,7 +8131,7 @@ const fp = ({
8131
8131
  n == null || n(e.id, u);
8132
8132
  },
8133
8133
  [e.id, n]
8134
- ), N = v ? pp(v[0], v[1], v[2]) : "#ffffff", m = ((z = e.capabilities) == null ? void 0 : z.includes("dimming")) ?? y !== void 0, I = (b = e.capabilities) == null ? void 0 : b.includes("color_temperature"), C = (($ = e.capabilities) == null ? void 0 : $.includes("color")) || e.type === "rgb_light";
8134
+ ), N = v ? _p(v[0], v[1], v[2]) : "#ffffff", m = ((z = e.capabilities) == null ? void 0 : z.includes("dimming")) ?? y !== void 0, I = (b = e.capabilities) == null ? void 0 : b.includes("color_temperature"), C = (($ = e.capabilities) == null ? void 0 : $.includes("color")) || e.type === "rgb_light";
8135
8135
  return /* @__PURE__ */ i(
8136
8136
  "div",
8137
8137
  {
@@ -8183,7 +8183,7 @@ const fp = ({
8183
8183
  value: d,
8184
8184
  className: O.slider,
8185
8185
  style: {
8186
- background: `linear-gradient(to right, ${kn(2700)}, ${kn(6500)})`
8186
+ background: `linear-gradient(to right, ${xn(2700)}, ${xn(6500)})`
8187
8187
  },
8188
8188
  onChange: (u) => f({ colorTemperature: +u.target.value })
8189
8189
  }
@@ -8212,19 +8212,19 @@ const fp = ({
8212
8212
  value: N,
8213
8213
  className: O.colorPicker,
8214
8214
  onChange: (u) => {
8215
- const [w, g, F] = xn(u.target.value);
8215
+ const [w, g, F] = In(u.target.value);
8216
8216
  f({ rgbColor: [w, g, F] });
8217
8217
  }
8218
8218
  }
8219
8219
  ),
8220
- /* @__PURE__ */ t("div", { className: O.colorPresets, children: _p.map((u) => /* @__PURE__ */ t(
8220
+ /* @__PURE__ */ t("div", { className: O.colorPresets, children: fp.map((u) => /* @__PURE__ */ t(
8221
8221
  "button",
8222
8222
  {
8223
8223
  className: O.colorPreset,
8224
8224
  "aria-label": u,
8225
8225
  style: { background: u },
8226
8226
  onClick: () => {
8227
- const [w, g, F] = xn(u);
8227
+ const [w, g, F] = In(u);
8228
8228
  f({ rgbColor: [w, g, F] });
8229
8229
  }
8230
8230
  },
@@ -8236,21 +8236,21 @@ const fp = ({
8236
8236
  ]
8237
8237
  }
8238
8238
  );
8239
- }, In = {
8239
+ }, Sn = {
8240
8240
  heat: "Heating",
8241
8241
  cool: "Cooling",
8242
8242
  auto: "Auto",
8243
8243
  off: "Off",
8244
8244
  fan_only: "Fan",
8245
8245
  dry: "Dry"
8246
- }, gp = {
8246
+ }, yp = {
8247
8247
  heat: "zap",
8248
8248
  cool: "thermometer",
8249
8249
  auto: "refresh",
8250
8250
  off: "stop",
8251
8251
  fan_only: "wifi",
8252
8252
  dry: "droplet"
8253
- }, yp = {
8253
+ }, bp = {
8254
8254
  heating: "var(--nice-danger, #ef4444)",
8255
8255
  cooling: "var(--nice-primary, #3b82f6)",
8256
8256
  fan: "var(--nice-success, #22c55e)",
@@ -8258,15 +8258,15 @@ const fp = ({
8258
8258
  idle: "var(--nice-text-muted, #94a3b8)",
8259
8259
  off: "var(--nice-border, #e2e8f0)"
8260
8260
  };
8261
- function Sn(e, n, o, s, a) {
8261
+ function Cn(e, n, o, s, a) {
8262
8262
  const r = (v) => (v - 90) * (Math.PI / 180), l = e + o * Math.cos(r(s)), c = n + o * Math.sin(r(s)), h = e + o * Math.cos(r(a)), y = n + o * Math.sin(r(a)), d = a - s > 180 ? 1 : 0;
8263
8263
  return `M${l.toFixed(2)},${c.toFixed(2)} A${o},${o} 0 ${d},1 ${h.toFixed(2)},${y.toFixed(2)}`;
8264
8264
  }
8265
8265
  const ut = 5, St = 35, Ct = -140, Pn = 140;
8266
- function Cn(e) {
8266
+ function Ln(e) {
8267
8267
  return Ct + (e - ut) / (St - ut) * (Pn - Ct);
8268
8268
  }
8269
- const bp = ({
8269
+ const vp = ({
8270
8270
  device: e,
8271
8271
  onControl: n,
8272
8272
  compact: o = !1,
@@ -8274,7 +8274,7 @@ const bp = ({
8274
8274
  className: a,
8275
8275
  style: r
8276
8276
  }) => {
8277
- const { t: l } = ke(), c = e.state, h = (c == null ? void 0 : c.temperature) ?? 20, y = (c == null ? void 0 : c.targetTemperature) ?? 21, d = c == null ? void 0 : c.humidity, v = (c == null ? void 0 : c.mode) ?? "auto", _ = (c == null ? void 0 : c.hvacAction) ?? "idle", p = 80, f = 80, N = 60, m = Sn(p, f, N, Ct, Pn), I = Cn(Math.min(Math.max(h, ut), St)), C = Cn(Math.min(Math.max(y, ut), St)), z = Sn(p, f, N, Ct, Math.min(I, C)), b = yp[_] ?? "var(--nice-text-muted, #94a3b8)", $ = L(
8277
+ const { t: l } = ke(), c = e.state, h = (c == null ? void 0 : c.temperature) ?? 20, y = (c == null ? void 0 : c.targetTemperature) ?? 21, d = c == null ? void 0 : c.humidity, v = (c == null ? void 0 : c.mode) ?? "auto", _ = (c == null ? void 0 : c.hvacAction) ?? "idle", p = 80, f = 80, N = 60, m = Cn(p, f, N, Ct, Pn), I = Ln(Math.min(Math.max(h, ut), St)), C = Ln(Math.min(Math.max(y, ut), St)), z = Cn(p, f, N, Ct, Math.min(I, C)), b = bp[_] ?? "var(--nice-text-muted, #94a3b8)", $ = L(
8278
8278
  (w) => {
8279
8279
  const g = Math.round((y + w) * 2) / 2;
8280
8280
  g >= ut && g <= St && (n == null || n(e.id, { targetTemperature: g }));
@@ -8367,11 +8367,11 @@ const bp = ({
8367
8367
  !o && /* @__PURE__ */ t("div", { className: O.hvacModes, children: ["heat", "cool", "auto", "fan_only", "off"].map((w) => /* @__PURE__ */ t(
8368
8368
  "button",
8369
8369
  {
8370
- title: In[w],
8371
- "aria-label": In[w],
8370
+ title: Sn[w],
8371
+ "aria-label": Sn[w],
8372
8372
  className: `${O.hvacModeBtn} ${v === w ? O.hvacModeBtnActive : ""}`,
8373
8373
  onClick: () => u(w),
8374
- children: /* @__PURE__ */ t(A, { name: gp[w], size: 16 })
8374
+ children: /* @__PURE__ */ t(A, { name: yp[w], size: 16 })
8375
8375
  },
8376
8376
  w
8377
8377
  )) }),
@@ -8388,7 +8388,7 @@ const bp = ({
8388
8388
  ]
8389
8389
  }
8390
8390
  );
8391
- }, vp = ({ device: e, onControl: n }) => {
8391
+ }, wp = ({ device: e, onControl: n }) => {
8392
8392
  const { t: o } = ke(), s = e.state, a = (s == null ? void 0 : s.on) === !0;
8393
8393
  return /* @__PURE__ */ i("div", { className: O.toggleControl, children: [
8394
8394
  /* @__PURE__ */ t("span", { className: O.toggleLabel, children: e.name }),
@@ -8401,7 +8401,7 @@ const bp = ({
8401
8401
  }
8402
8402
  )
8403
8403
  ] });
8404
- }, wp = ({ device: e, onControl: n }) => {
8404
+ }, Np = ({ device: e, onControl: n }) => {
8405
8405
  const { t: o } = ke(), s = e.state, a = typeof (s == null ? void 0 : s.position) == "number" ? s.position : 50;
8406
8406
  return /* @__PURE__ */ i("div", { className: O.blindControl, children: [
8407
8407
  /* @__PURE__ */ t("span", { className: O.blindLabel, children: e.name }),
@@ -8450,7 +8450,7 @@ const bp = ({
8450
8450
  "%"
8451
8451
  ] })
8452
8452
  ] });
8453
- }, Np = ({ device: e, onControl: n }) => {
8453
+ }, kp = ({ device: e, onControl: n }) => {
8454
8454
  const { t: o } = ke(), s = e.state, a = (s == null ? void 0 : s.locked) !== !1;
8455
8455
  return /* @__PURE__ */ i("div", { className: O.lockControl, children: [
8456
8456
  /* @__PURE__ */ t("span", { className: O.lockLabel, children: e.name }),
@@ -8467,7 +8467,7 @@ const bp = ({
8467
8467
  }
8468
8468
  )
8469
8469
  ] });
8470
- }, kp = ({ device: e }) => {
8470
+ }, xp = ({ device: e }) => {
8471
8471
  const { t: n } = ke(), o = e.state;
8472
8472
  return /* @__PURE__ */ i("div", { className: O.cameraControl, children: [
8473
8473
  /* @__PURE__ */ t("span", { className: O.cameraLabel, children: e.name }),
@@ -8485,7 +8485,7 @@ const bp = ({
8485
8485
  e.status
8486
8486
  ] })
8487
8487
  ] });
8488
- }, xp = ({ device: e }) => {
8488
+ }, Ip = ({ device: e }) => {
8489
8489
  const n = e.state;
8490
8490
  return /* @__PURE__ */ i("div", { className: O.sensorControl, children: [
8491
8491
  /* @__PURE__ */ t("span", { className: O.sensorLabel, children: e.name }),
@@ -8496,7 +8496,7 @@ const bp = ({
8496
8496
  ] }, o)
8497
8497
  ) })
8498
8498
  ] });
8499
- }, yf = ({
8499
+ }, bf = ({
8500
8500
  device: e,
8501
8501
  onControl: n,
8502
8502
  compact: o = !1,
@@ -8504,15 +8504,15 @@ const bp = ({
8504
8504
  style: a,
8505
8505
  theme: r = "light"
8506
8506
  }) => {
8507
- const l = e.type, c = ["light", "dimmer", "rgb_light", "led_strip"].includes(l) ? /* @__PURE__ */ t(fp, { device: e, onControl: n, compact: o, theme: r }) : ["thermostat", "air_conditioner", "heat_pump", "floor_heating"].includes(l) ? /* @__PURE__ */ t(
8508
- bp,
8507
+ const l = e.type, c = ["light", "dimmer", "rgb_light", "led_strip"].includes(l) ? /* @__PURE__ */ t(gp, { device: e, onControl: n, compact: o, theme: r }) : ["thermostat", "air_conditioner", "heat_pump", "floor_heating"].includes(l) ? /* @__PURE__ */ t(
8508
+ vp,
8509
8509
  {
8510
8510
  device: e,
8511
8511
  onControl: n,
8512
8512
  compact: o,
8513
8513
  theme: r
8514
8514
  }
8515
- ) : ["blind", "shutter", "curtain", "awning", "garage_door"].includes(l) ? /* @__PURE__ */ t(wp, { device: e, onControl: n }) : ["lock", "door"].includes(l) ? /* @__PURE__ */ t(Np, { device: e, onControl: n }) : ["camera", "doorbell"].includes(l) ? /* @__PURE__ */ t(kp, { device: e }) : l.endsWith("_sensor") || ["motion_sensor", "smoke_detector", "water_leak_sensor", "alarm"].includes(l) ? /* @__PURE__ */ t(xp, { device: e }) : /* @__PURE__ */ t(vp, { device: e, onControl: n });
8515
+ ) : ["blind", "shutter", "curtain", "awning", "garage_door"].includes(l) ? /* @__PURE__ */ t(Np, { device: e, onControl: n }) : ["lock", "door"].includes(l) ? /* @__PURE__ */ t(kp, { device: e, onControl: n }) : ["camera", "doorbell"].includes(l) ? /* @__PURE__ */ t(xp, { device: e }) : l.endsWith("_sensor") || ["motion_sensor", "smoke_detector", "water_leak_sensor", "alarm"].includes(l) ? /* @__PURE__ */ t(Ip, { device: e }) : /* @__PURE__ */ t(wp, { device: e, onControl: n });
8516
8516
  return /* @__PURE__ */ i(
8517
8517
  "div",
8518
8518
  {
@@ -8524,43 +8524,43 @@ const bp = ({
8524
8524
  ]
8525
8525
  }
8526
8526
  );
8527
- }, Ip = "_root_ft98s_3", Sp = "_shell_ft98s_29", Cp = "_dark_ft98s_37", Lp = "_listPanel_ft98s_51", $p = "_listHeader_ft98s_79", zp = "_listTitle_ft98s_103", Tp = "_addBtn_ft98s_121", Mp = "_list_ft98s_51", Bp = "_listItem_ft98s_159", Pp = "_listItemActive_ft98s_199", Ap = "_listItemName_ft98s_213", Ep = "_listItemMeta_ft98s_241", Op = "_enableToggle_ft98s_255", Dp = "_enableOn_ft98s_273", Rp = "_detailPanel_ft98s_283", jp = "_detailHeader_ft98s_295", qp = "_nameInput_ft98s_309", Fp = "_deleteBtn_ft98s_343", Gp = "_section_ft98s_373", Wp = "_rules_ft98s_383", Vp = "_sectionHeader_ft98s_397", Hp = "_sectionTitle_ft98s_411", Up = "_sectionAddBtn_ft98s_427", Yp = "_ruleBlock_ft98s_457", Xp = "_ruleBlockHeader_ft98s_483", Zp = "_typeSelect_ft98s_497", Kp = "_removeBtn_ft98s_529", Jp = "_ruleFields_ft98s_567", Qp = "_input_ft98s_603", e_ = "_textarea_ft98s_635", t_ = "_dayPicker_ft98s_671", n_ = "_dayBtn_ft98s_683", o_ = "_dayBtnActive_ft98s_703", s_ = "_noSelection_ft98s_717", a_ = "_emptyHint_ft98s_719", q = {
8528
- root: Ip,
8529
- shell: Sp,
8530
- dark: Cp,
8531
- listPanel: Lp,
8532
- listHeader: $p,
8533
- listTitle: zp,
8534
- addBtn: Tp,
8535
- list: Mp,
8536
- listItem: Bp,
8537
- listItemActive: Pp,
8538
- listItemName: Ap,
8539
- listItemMeta: Ep,
8540
- enableToggle: Op,
8541
- enableOn: Dp,
8542
- detailPanel: Rp,
8543
- detailHeader: jp,
8544
- nameInput: qp,
8545
- deleteBtn: Fp,
8546
- section: Gp,
8547
- rules: Wp,
8548
- sectionHeader: Vp,
8549
- sectionTitle: Hp,
8550
- sectionAddBtn: Up,
8551
- ruleBlock: Yp,
8552
- ruleBlockHeader: Xp,
8553
- typeSelect: Zp,
8554
- removeBtn: Kp,
8555
- ruleFields: Jp,
8556
- input: Qp,
8557
- textarea: e_,
8558
- dayPicker: t_,
8559
- dayBtn: n_,
8560
- dayBtnActive: o_,
8561
- noSelection: s_,
8562
- emptyHint: a_
8563
- }, i_ = [
8527
+ }, Sp = "_root_ft98s_3", Cp = "_shell_ft98s_29", Lp = "_dark_ft98s_37", $p = "_listPanel_ft98s_51", zp = "_listHeader_ft98s_79", Tp = "_listTitle_ft98s_103", Mp = "_addBtn_ft98s_121", Bp = "_list_ft98s_51", Pp = "_listItem_ft98s_159", Ap = "_listItemActive_ft98s_199", Ep = "_listItemName_ft98s_213", Op = "_listItemMeta_ft98s_241", Dp = "_enableToggle_ft98s_255", Rp = "_enableOn_ft98s_273", jp = "_detailPanel_ft98s_283", qp = "_detailHeader_ft98s_295", Fp = "_nameInput_ft98s_309", Gp = "_deleteBtn_ft98s_343", Wp = "_section_ft98s_373", Vp = "_rules_ft98s_383", Hp = "_sectionHeader_ft98s_397", Up = "_sectionTitle_ft98s_411", Yp = "_sectionAddBtn_ft98s_427", Xp = "_ruleBlock_ft98s_457", Zp = "_ruleBlockHeader_ft98s_483", Kp = "_typeSelect_ft98s_497", Jp = "_removeBtn_ft98s_529", Qp = "_ruleFields_ft98s_567", e_ = "_input_ft98s_603", t_ = "_textarea_ft98s_635", n_ = "_dayPicker_ft98s_671", o_ = "_dayBtn_ft98s_683", s_ = "_dayBtnActive_ft98s_703", a_ = "_noSelection_ft98s_717", i_ = "_emptyHint_ft98s_719", q = {
8528
+ root: Sp,
8529
+ shell: Cp,
8530
+ dark: Lp,
8531
+ listPanel: $p,
8532
+ listHeader: zp,
8533
+ listTitle: Tp,
8534
+ addBtn: Mp,
8535
+ list: Bp,
8536
+ listItem: Pp,
8537
+ listItemActive: Ap,
8538
+ listItemName: Ep,
8539
+ listItemMeta: Op,
8540
+ enableToggle: Dp,
8541
+ enableOn: Rp,
8542
+ detailPanel: jp,
8543
+ detailHeader: qp,
8544
+ nameInput: Fp,
8545
+ deleteBtn: Gp,
8546
+ section: Wp,
8547
+ rules: Vp,
8548
+ sectionHeader: Hp,
8549
+ sectionTitle: Up,
8550
+ sectionAddBtn: Yp,
8551
+ ruleBlock: Xp,
8552
+ ruleBlockHeader: Zp,
8553
+ typeSelect: Kp,
8554
+ removeBtn: Jp,
8555
+ ruleFields: Qp,
8556
+ input: e_,
8557
+ textarea: t_,
8558
+ dayPicker: n_,
8559
+ dayBtn: o_,
8560
+ dayBtnActive: s_,
8561
+ noSelection: a_,
8562
+ emptyHint: i_
8563
+ }, r_ = [
8564
8564
  {
8565
8565
  target: ".nice-building-automation-editor",
8566
8566
  titleKey: "tutorial.buildingAutomationEditor.intro.title",
@@ -8575,16 +8575,16 @@ const bp = ({
8575
8575
  }, Jt = (e, n, o = 0) => {
8576
8576
  const s = e[n];
8577
8577
  return typeof s == "number" ? s : o;
8578
- }, Lt = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"], r_ = (e) => {
8578
+ }, Lt = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"], c_ = (e) => {
8579
8579
  const n = e.days;
8580
8580
  return Array.isArray(n) ? n.map((o) => typeof o == "number" ? Lt[o] : String(o)) : [...Lt.slice(0, 5)];
8581
- }, c_ = (e, n) => {
8581
+ }, l_ = (e, n) => {
8582
8582
  const o = e[n];
8583
8583
  return o && typeof o == "object" ? o : {};
8584
- }, l_ = (e) => {
8584
+ }, d_ = (e) => {
8585
8585
  const n = new Intl.DateTimeFormat(e, { weekday: "short", timeZone: "UTC" });
8586
8586
  return Array.from({ length: 7 }, (o, s) => n.format(new Date(Date.UTC(2024, 0, 1 + s))));
8587
- }, d_ = ({ trigger: e, devices: n, onChange: o, onRemove: s }) => {
8587
+ }, u_ = ({ trigger: e, devices: n, onChange: o, onRemove: s }) => {
8588
8588
  const { t: a, lang: r } = ke(), l = (c) => o({ ...e, ...c });
8589
8589
  return /* @__PURE__ */ i("div", { className: q.ruleBlock, children: [
8590
8590
  /* @__PURE__ */ i("div", { className: q.ruleBlockHeader, children: [
@@ -8632,8 +8632,8 @@ const bp = ({
8632
8632
  ] }),
8633
8633
  /* @__PURE__ */ i("label", { children: [
8634
8634
  a("buildings.field.days", "Days"),
8635
- /* @__PURE__ */ t("div", { className: q.dayPicker, children: l_(r).map((c, h) => {
8636
- const y = r_(e), d = Lt[h], v = y.includes(d);
8635
+ /* @__PURE__ */ t("div", { className: q.dayPicker, children: d_(r).map((c, h) => {
8636
+ const y = c_(e), d = Lt[h], v = y.includes(d);
8637
8637
  return /* @__PURE__ */ t(
8638
8638
  "button",
8639
8639
  {
@@ -8735,7 +8735,7 @@ const bp = ({
8735
8735
  )
8736
8736
  ] }) })
8737
8737
  ] });
8738
- }, u_ = ({
8738
+ }, m_ = ({
8739
8739
  action: e,
8740
8740
  devices: n,
8741
8741
  scenes: o,
@@ -8794,7 +8794,7 @@ const bp = ({
8794
8794
  {
8795
8795
  className: q.textarea,
8796
8796
  rows: 3,
8797
- value: JSON.stringify(c_(e, "state"), null, 2),
8797
+ value: JSON.stringify(l_(e, "state"), null, 2),
8798
8798
  onChange: (c) => {
8799
8799
  try {
8800
8800
  l({ state: JSON.parse(c.target.value) });
@@ -8896,7 +8896,7 @@ const bp = ({
8896
8896
  ] })
8897
8897
  ] })
8898
8898
  ] });
8899
- }, bf = ({
8899
+ }, vf = ({
8900
8900
  automations: e,
8901
8901
  defaultAutomations: n,
8902
8902
  devices: o = [],
@@ -9022,7 +9022,7 @@ const bp = ({
9022
9022
  )
9023
9023
  ] }),
9024
9024
  C.triggers.map((S, P) => /* @__PURE__ */ t(
9025
- d_,
9025
+ u_,
9026
9026
  {
9027
9027
  trigger: S,
9028
9028
  devices: o,
@@ -9055,7 +9055,7 @@ const bp = ({
9055
9055
  )
9056
9056
  ] }),
9057
9057
  C.actions.map((S, P) => /* @__PURE__ */ t(
9058
- u_,
9058
+ m_,
9059
9059
  {
9060
9060
  action: S,
9061
9061
  devices: o,
@@ -9075,56 +9075,56 @@ const bp = ({
9075
9075
  className: `nice-building-automation-editor ${q.root} ${d === "dark" ? q.dark : ""} ${h ?? ""}`,
9076
9076
  style: { position: "relative", ...y },
9077
9077
  children: [
9078
- /* @__PURE__ */ t("span", { style: { position: "absolute", top: 6, right: 6, zIndex: 30 }, children: /* @__PURE__ */ t(zt, { steps: Tt(v, i_) }) }),
9078
+ /* @__PURE__ */ t("span", { style: { position: "absolute", top: 6, right: 6, zIndex: 30 }, children: /* @__PURE__ */ t(zt, { steps: Tt(v, r_) }) }),
9079
9079
  /* @__PURE__ */ t(Mt, { flush: !0, className: q.shell, sidebar: w, children: g })
9080
9080
  ]
9081
9081
  }
9082
9082
  );
9083
- }, m_ = "_root_2mz7s_3", h_ = "_shell_2mz7s_29", p_ = "_dark_2mz7s_37", __ = "_gridPanel_2mz7s_51", f_ = "_gridHeader_2mz7s_79", g_ = "_gridTitle_2mz7s_103", y_ = "_addBtn_2mz7s_119", b_ = "_sceneGrid_2mz7s_147", v_ = "_sceneCard_2mz7s_165", w_ = "_sceneCardActive_2mz7s_193", N_ = "_sceneCardSelected_2mz7s_199", k_ = "_sceneCardIcon_2mz7s_207", x_ = "_sceneCardName_2mz7s_217", I_ = "_sceneCardDevices_2mz7s_235", S_ = "_activeBadge_2mz7s_253", C_ = "_activateBtn_2mz7s_263", L_ = "_emptyGrid_2mz7s_307", $_ = "_detailPanel_2mz7s_325", z_ = "_metaRow_2mz7s_343", T_ = "_iconPicker_2mz7s_355", M_ = "_currentIcon_2mz7s_363", B_ = "_iconGrid_2mz7s_381", P_ = "_iconOpt_2mz7s_397", A_ = "_iconOptActive_2mz7s_423", E_ = "_metaFields_2mz7s_433", O_ = "_nameInput_2mz7s_447", D_ = "_descInput_2mz7s_481", R_ = "_colorPicker_2mz7s_517", j_ = "_colorOpt_2mz7s_527", q_ = "_colorOptActive_2mz7s_543", F_ = "_targetsSection_2mz7s_553", G_ = "_targetsSectionHeader_2mz7s_575", W_ = "_addTargetBtn_2mz7s_597", V_ = "_targetRow_2mz7s_625", H_ = "_targetSelect_2mz7s_655", U_ = "_targetState_2mz7s_687", Y_ = "_targetField_2mz7s_701", X_ = "_tempInput_2mz7s_727", Z_ = "_removeTargetBtn_2mz7s_745", K_ = "_noTargets_2mz7s_785", J_ = "_detailActions_2mz7s_805", Q_ = "_activateFullBtn_2mz7s_819", ef = "_deleteBtn_2mz7s_851", X = {
9084
- root: m_,
9085
- shell: h_,
9086
- dark: p_,
9087
- gridPanel: __,
9088
- gridHeader: f_,
9089
- gridTitle: g_,
9090
- addBtn: y_,
9091
- sceneGrid: b_,
9092
- sceneCard: v_,
9093
- sceneCardActive: w_,
9094
- sceneCardSelected: N_,
9095
- sceneCardIcon: k_,
9096
- sceneCardName: x_,
9097
- sceneCardDevices: I_,
9098
- activeBadge: S_,
9099
- activateBtn: C_,
9100
- emptyGrid: L_,
9101
- detailPanel: $_,
9102
- metaRow: z_,
9103
- iconPicker: T_,
9104
- currentIcon: M_,
9105
- iconGrid: B_,
9106
- iconOpt: P_,
9107
- iconOptActive: A_,
9108
- metaFields: E_,
9109
- nameInput: O_,
9110
- descInput: D_,
9111
- colorPicker: R_,
9112
- colorOpt: j_,
9113
- colorOptActive: q_,
9114
- targetsSection: F_,
9115
- targetsSectionHeader: G_,
9116
- addTargetBtn: W_,
9117
- targetRow: V_,
9118
- targetSelect: H_,
9119
- targetState: U_,
9120
- targetField: Y_,
9121
- tempInput: X_,
9122
- removeTargetBtn: Z_,
9123
- noTargets: K_,
9124
- detailActions: J_,
9125
- activateFullBtn: Q_,
9126
- deleteBtn: ef
9127
- }, tf = [
9083
+ }, h_ = "_root_2mz7s_3", p_ = "_shell_2mz7s_29", __ = "_dark_2mz7s_37", f_ = "_gridPanel_2mz7s_51", g_ = "_gridHeader_2mz7s_79", y_ = "_gridTitle_2mz7s_103", b_ = "_addBtn_2mz7s_119", v_ = "_sceneGrid_2mz7s_147", w_ = "_sceneCard_2mz7s_165", N_ = "_sceneCardActive_2mz7s_193", k_ = "_sceneCardSelected_2mz7s_199", x_ = "_sceneCardIcon_2mz7s_207", I_ = "_sceneCardName_2mz7s_217", S_ = "_sceneCardDevices_2mz7s_235", C_ = "_activeBadge_2mz7s_253", L_ = "_activateBtn_2mz7s_263", $_ = "_emptyGrid_2mz7s_307", z_ = "_detailPanel_2mz7s_325", T_ = "_metaRow_2mz7s_343", M_ = "_iconPicker_2mz7s_355", B_ = "_currentIcon_2mz7s_363", P_ = "_iconGrid_2mz7s_381", A_ = "_iconOpt_2mz7s_397", E_ = "_iconOptActive_2mz7s_423", O_ = "_metaFields_2mz7s_433", D_ = "_nameInput_2mz7s_447", R_ = "_descInput_2mz7s_481", j_ = "_colorPicker_2mz7s_517", q_ = "_colorOpt_2mz7s_527", F_ = "_colorOptActive_2mz7s_543", G_ = "_targetsSection_2mz7s_553", W_ = "_targetsSectionHeader_2mz7s_575", V_ = "_addTargetBtn_2mz7s_597", H_ = "_targetRow_2mz7s_625", U_ = "_targetSelect_2mz7s_655", Y_ = "_targetState_2mz7s_687", X_ = "_targetField_2mz7s_701", Z_ = "_tempInput_2mz7s_727", K_ = "_removeTargetBtn_2mz7s_745", J_ = "_noTargets_2mz7s_785", Q_ = "_detailActions_2mz7s_805", ef = "_activateFullBtn_2mz7s_819", tf = "_deleteBtn_2mz7s_851", X = {
9084
+ root: h_,
9085
+ shell: p_,
9086
+ dark: __,
9087
+ gridPanel: f_,
9088
+ gridHeader: g_,
9089
+ gridTitle: y_,
9090
+ addBtn: b_,
9091
+ sceneGrid: v_,
9092
+ sceneCard: w_,
9093
+ sceneCardActive: N_,
9094
+ sceneCardSelected: k_,
9095
+ sceneCardIcon: x_,
9096
+ sceneCardName: I_,
9097
+ sceneCardDevices: S_,
9098
+ activeBadge: C_,
9099
+ activateBtn: L_,
9100
+ emptyGrid: $_,
9101
+ detailPanel: z_,
9102
+ metaRow: T_,
9103
+ iconPicker: M_,
9104
+ currentIcon: B_,
9105
+ iconGrid: P_,
9106
+ iconOpt: A_,
9107
+ iconOptActive: E_,
9108
+ metaFields: O_,
9109
+ nameInput: D_,
9110
+ descInput: R_,
9111
+ colorPicker: j_,
9112
+ colorOpt: q_,
9113
+ colorOptActive: F_,
9114
+ targetsSection: G_,
9115
+ targetsSectionHeader: W_,
9116
+ addTargetBtn: V_,
9117
+ targetRow: H_,
9118
+ targetSelect: U_,
9119
+ targetState: Y_,
9120
+ targetField: X_,
9121
+ tempInput: Z_,
9122
+ removeTargetBtn: K_,
9123
+ noTargets: J_,
9124
+ detailActions: Q_,
9125
+ activateFullBtn: ef,
9126
+ deleteBtn: tf
9127
+ }, nf = [
9128
9128
  {
9129
9129
  target: ".nice-scene-editor",
9130
9130
  titleKey: "tutorial.buildingSceneEditor.intro.title",
@@ -9133,13 +9133,13 @@ const bp = ({
9133
9133
  content: "Create scenes that set multiple devices at once: pick a scene, choose device target states, then save or activate it.",
9134
9134
  placement: "auto"
9135
9135
  }
9136
- ], ot = (e) => e && typeof e == "object" ? e : {}, nf = (e, n, o = !1) => {
9136
+ ], ot = (e) => e && typeof e == "object" ? e : {}, of = (e, n, o = !1) => {
9137
9137
  const s = ot(e)[n];
9138
9138
  return typeof s == "boolean" ? s : o;
9139
9139
  }, lt = (e, n, o = 0) => {
9140
9140
  const s = ot(e)[n];
9141
9141
  return typeof s == "number" ? s : o;
9142
- }, of = [
9142
+ }, sf = [
9143
9143
  "video",
9144
9144
  "eye-off",
9145
9145
  "lightbulb",
@@ -9156,7 +9156,7 @@ const bp = ({
9156
9156
  "gift",
9157
9157
  "heart",
9158
9158
  "settings"
9159
- ], sf = [
9159
+ ], af = [
9160
9160
  "var(--nice-primary-bg, #e0f2fe)",
9161
9161
  "var(--nice-accent-tint-10, #fce7f3)",
9162
9162
  "var(--nice-success-bg, #dcfce7)",
@@ -9165,7 +9165,7 @@ const bp = ({
9165
9165
  "var(--nice-danger-bg, #fee2e2)",
9166
9166
  "var(--nice-success-bg, #f0fdf4)",
9167
9167
  "#fff7ed"
9168
- ], af = ({
9168
+ ], rf = ({
9169
9169
  target: e,
9170
9170
  devices: n,
9171
9171
  onChange: o,
@@ -9196,7 +9196,7 @@ const bp = ({
9196
9196
  "input",
9197
9197
  {
9198
9198
  type: "checkbox",
9199
- checked: nf(e.state, "on", !1),
9199
+ checked: of(e.state, "on", !1),
9200
9200
  onChange: (l) => o({
9201
9201
  ...e,
9202
9202
  state: { ...ot(e.state), on: l.target.checked }
@@ -9275,7 +9275,7 @@ const bp = ({
9275
9275
  }
9276
9276
  )
9277
9277
  ] });
9278
- }, vf = ({
9278
+ }, wf = ({
9279
9279
  scenes: e,
9280
9280
  defaultScenes: n,
9281
9281
  devices: o = [],
@@ -9372,7 +9372,7 @@ const bp = ({
9372
9372
  /* @__PURE__ */ i("div", { className: X.metaRow, children: [
9373
9373
  /* @__PURE__ */ i("div", { className: X.iconPicker, children: [
9374
9374
  /* @__PURE__ */ t("span", { className: X.currentIcon, children: /* @__PURE__ */ t(A, { name: C.icon ?? "video", size: 20 }) }),
9375
- /* @__PURE__ */ t("div", { className: X.iconGrid, children: of.map((S) => /* @__PURE__ */ t(
9375
+ /* @__PURE__ */ t("div", { className: X.iconGrid, children: sf.map((S) => /* @__PURE__ */ t(
9376
9376
  "button",
9377
9377
  {
9378
9378
  className: `${X.iconOpt} ${C.icon === S ? X.iconOptActive : ""}`,
@@ -9407,7 +9407,7 @@ const bp = ({
9407
9407
  )
9408
9408
  ] })
9409
9409
  ] }),
9410
- !c && /* @__PURE__ */ t("div", { className: X.colorPicker, children: sf.map((S) => /* @__PURE__ */ t(
9410
+ !c && /* @__PURE__ */ t("div", { className: X.colorPicker, children: af.map((S) => /* @__PURE__ */ t(
9411
9411
  "button",
9412
9412
  {
9413
9413
  className: `${X.colorOpt} ${C.color === S ? X.colorOptActive : ""}`,
@@ -9426,7 +9426,7 @@ const bp = ({
9426
9426
  ] })
9427
9427
  ] }),
9428
9428
  C.deviceTargets.map((S, P) => /* @__PURE__ */ t(
9429
- af,
9429
+ rf,
9430
9430
  {
9431
9431
  target: S,
9432
9432
  devices: o,
@@ -9452,7 +9452,7 @@ const bp = ({
9452
9452
  className: `nice-scene-editor ${X.root} ${d === "dark" ? X.dark : ""} ${h ?? ""}`,
9453
9453
  style: { position: "relative", ...y },
9454
9454
  children: [
9455
- /* @__PURE__ */ t("span", { style: { position: "absolute", top: 6, right: 6, zIndex: 30 }, children: /* @__PURE__ */ t(zt, { steps: Tt(v, tf) }) }),
9455
+ /* @__PURE__ */ t("span", { style: { position: "absolute", top: 6, right: 6, zIndex: 30 }, children: /* @__PURE__ */ t(zt, { steps: Tt(v, nf) }) }),
9456
9456
  /* @__PURE__ */ t(Mt, { flush: !0, className: X.shell, sidebar: w, children: g })
9457
9457
  ]
9458
9458
  }
@@ -9461,19 +9461,19 @@ const bp = ({
9461
9461
  export {
9462
9462
  Za as LayerPanel,
9463
9463
  ti as Minimap,
9464
- bf as NiceAutomationEditor,
9465
- gf as NiceBuildingDashboard,
9466
- yf as NiceDeviceControl,
9467
- uf as NiceFloorPlanEditor,
9468
- fp as NiceLightControl,
9469
- vf as NiceSceneEditor,
9470
- mf as NiceSpatialEditor,
9471
- hf as NiceSpatialViewer,
9472
- bp as NiceThermostatControl,
9473
- th as NiceZoneCard,
9464
+ vf as NiceAutomationEditor,
9465
+ yf as NiceBuildingDashboard,
9466
+ bf as NiceDeviceControl,
9467
+ mf as NiceFloorPlanEditor,
9468
+ gp as NiceLightControl,
9469
+ wf as NiceSceneEditor,
9470
+ hf as NiceSpatialEditor,
9471
+ pf as NiceSpatialViewer,
9472
+ vp as NiceThermostatControl,
9473
+ nh as NiceZoneCard,
9474
9474
  yr as ObjectLibrary,
9475
9475
  Dr as PropertiesPanel,
9476
- ff as useMeasurement,
9477
- _f as useSnapToGrid,
9478
- pf as useSpatialEditor
9476
+ gf as useMeasurement,
9477
+ ff as useSnapToGrid,
9478
+ _f as useSpatialEditor
9479
9479
  };