@mt-gloss/ui 0.1.121 → 0.1.122

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.
@@ -1,7 +1,7 @@
1
- import { u as O, h as fe, j as V, g as we, S as Ee, b as Pe, k as xe } from "./COMMITS-8eHelQHO.js";
2
- import { C as Ut, N as zt, o as Ht, d as Vt, p as Bt, l as Kt, c as Yt, n as Wt, P as Gt, m as Qt, f as qt, i as jt, r as Zt, e as Xt } from "./COMMITS-8eHelQHO.js";
3
- import { jsx as n, jsxs as f, Fragment as B } from "react/jsx-runtime";
4
- import U, { useState as x, useRef as K, createContext as ge, useContext as be, useMemo as ie, useEffect as R, useCallback as L, useLayoutEffect as Ae } from "react";
1
+ import { u as O, h as fe, j as B, g as we, S as Ee, b as Pe, k as xe } from "./COMMITS-C1VHNgld.js";
2
+ import { C as Ut, N as zt, o as Ht, d as Vt, p as Bt, l as Kt, c as Yt, n as Wt, P as Gt, m as Qt, f as qt, i as jt, r as Zt, e as Xt } from "./COMMITS-C1VHNgld.js";
3
+ import { jsx as n, jsxs as f, Fragment as K } from "react/jsx-runtime";
4
+ import z, { useState as x, useRef as Y, createContext as ge, useContext as be, useMemo as ie, useEffect as F, useCallback as D, useLayoutEffect as Ae } from "react";
5
5
  import { useSensors as ke, useSensor as ce, PointerSensor as De, KeyboardSensor as Le, DndContext as Oe, closestCenter as Me } from "@dnd-kit/core";
6
6
  import { sortableKeyboardCoordinates as Ie, SortableContext as $e, horizontalListSortingStrategy as Re, arrayMove as Fe, useSortable as Ue } from "@dnd-kit/sortable";
7
7
  import { CSS as ze } from "@dnd-kit/utilities";
@@ -46,7 +46,7 @@ function Ve({
46
46
  }
47
47
  )
48
48
  ] }),
49
- r ? /* @__PURE__ */ f(B, { children: [
49
+ r ? /* @__PURE__ */ f(K, { children: [
50
50
  /* @__PURE__ */ n("span", { className: "settings-shell__label", "aria-hidden": "true", children: "Alert level (%)" }),
51
51
  /* @__PURE__ */ f("div", { className: "settings-shell__slider-row", children: [
52
52
  /* @__PURE__ */ n(
@@ -143,7 +143,7 @@ function Ye({ value: e, onChange: t }) {
143
143
  const r = ke(
144
144
  ce(De, { activationConstraint: { distance: 4 } }),
145
145
  ce(Le, { coordinateGetter: Ie })
146
- ), l = U.useRef(!1), [a, i] = U.useState(!1), u = (s) => {
146
+ ), l = z.useRef(!1), [a, i] = z.useState(!1), u = (s) => {
147
147
  const { active: c, over: d } = s;
148
148
  if (!d || c.id === d.id) return;
149
149
  const m = e.findIndex((b) => b === c.id), h = e.findIndex((b) => b === d.id);
@@ -182,7 +182,7 @@ function Ge({
182
182
  }
183
183
  )
184
184
  ] }),
185
- r ? /* @__PURE__ */ f(B, { children: [
185
+ r ? /* @__PURE__ */ f(K, { children: [
186
186
  /* @__PURE__ */ n("span", { className: "settings-shell__label", children: "Accent color" }),
187
187
  /* @__PURE__ */ n("div", { className: "settings-shell__swatch-row", children: We.map((i) => {
188
188
  const u = e === i;
@@ -213,11 +213,11 @@ function Pt({
213
213
  initialTab: u,
214
214
  initialValues: o
215
215
  }) {
216
- const s = O(), c = s?.state.activeTrigger, d = c?.kind === "card-overflow" ? c.cardId : null, m = fe(), h = c?.span, b = t ?? h ?? 1, p = i[0] ?? "threshold", [y, E] = U.useState(u ?? p);
217
- U.useEffect(() => {
218
- i.includes(y) || E(p);
219
- }, [i, y, p]);
220
- const v = d != null ? s?.state?.bufferByCard?.[d]?.changes ?? {} : {}, N = typeof v.threshold == "number" ? v.threshold : typeof o?.threshold == "number" ? o.threshold : 80, I = typeof v.timeframe == "number" ? v.timeframe : typeof o?.timeframe == "number" ? o.timeframe : 30, $ = typeof v.accent == "string" ? v.accent : typeof o?.accent == "string" ? o.accent : null, w = Array.isArray(v.slots) ? v.slots : Array.isArray(o?.slots) ? o.slots : Qe, A = typeof v.thresholdEnabled == "boolean" ? v.thresholdEnabled : typeof o?.thresholdEnabled == "boolean" ? o.thresholdEnabled : !1, Y = typeof v.accentEnabled == "boolean" ? v.accentEnabled : typeof o?.accentEnabled == "boolean" ? o.accentEnabled : !1, W = (P) => {
216
+ const s = O(), c = s?.state.activeTrigger, d = c?.kind === "card-overflow" ? c.cardId : null, m = fe(), h = c?.span, b = t ?? h ?? 1, p = i[0] ?? "threshold", [_, E] = z.useState(u ?? p);
217
+ z.useEffect(() => {
218
+ i.includes(_) || E(p);
219
+ }, [i, _, p]);
220
+ const v = d != null ? s?.state?.bufferByCard?.[d]?.changes ?? {} : {}, N = typeof v.threshold == "number" ? v.threshold : typeof o?.threshold == "number" ? o.threshold : 80, I = typeof v.timeframe == "number" ? v.timeframe : typeof o?.timeframe == "number" ? o.timeframe : 30, $ = typeof v.accent == "string" ? v.accent : typeof o?.accent == "string" ? o.accent : null, R = Array.isArray(v.slots) ? v.slots : Array.isArray(o?.slots) ? o.slots : Qe, T = typeof v.thresholdEnabled == "boolean" ? v.thresholdEnabled : typeof o?.thresholdEnabled == "boolean" ? o.thresholdEnabled : !1, L = typeof v.accentEnabled == "boolean" ? v.accentEnabled : typeof o?.accentEnabled == "boolean" ? o.accentEnabled : !1, W = (P) => {
221
221
  d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "threshold", value: Number(P.target.value) });
222
222
  }, G = (P) => {
223
223
  d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "timeframe", value: Number(P.target.value) });
@@ -229,13 +229,13 @@ function Pt({
229
229
  d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "thresholdEnabled", value: P });
230
230
  }, g = (P) => {
231
231
  d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "accentEnabled", value: P });
232
- }, C = s?.state.isDirty ?? !1, S = d;
232
+ }, C = s?.state.isDirty ?? !1, w = d;
233
233
  return /* @__PURE__ */ n(
234
- V,
234
+ B,
235
235
  {
236
236
  variant: "with-stage",
237
237
  onClose: () => s?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }),
238
- stage: /* @__PURE__ */ n(He, { span: b, rotating: !m, children: a ?? /* @__PURE__ */ f(B, { children: [
238
+ stage: /* @__PURE__ */ n(He, { span: b, rotating: !m, children: a ?? /* @__PURE__ */ f(K, { children: [
239
239
  /* @__PURE__ */ n("div", { style: { fontSize: 9, textTransform: "uppercase", letterSpacing: "0.06em", color: "#9ca3af", marginBottom: 6 }, children: r }),
240
240
  /* @__PURE__ */ n("div", { style: { fontSize: 22, fontWeight: 700, color: "#111827", lineHeight: 1 }, children: l })
241
241
  ] }) }),
@@ -243,7 +243,7 @@ function Pt({
243
243
  we,
244
244
  {
245
245
  dimensions: i,
246
- activeTab: y,
246
+ activeTab: _,
247
247
  onSelect: E,
248
248
  reduced: m
249
249
  }
@@ -257,7 +257,7 @@ function Pt({
257
257
  className: "gloss-panel-chrome-v2__footer-btn",
258
258
  disabled: !C,
259
259
  onClick: () => {
260
- S != null && s?.dispatch({ type: "CLEAR_BUFFER", cardId: S });
260
+ w != null && s?.dispatch({ type: "CLEAR_BUFFER", cardId: w });
261
261
  },
262
262
  children: "Reset"
263
263
  }
@@ -278,28 +278,28 @@ function Pt({
278
278
  "div",
279
279
  {
280
280
  role: "tabpanel",
281
- id: `settings-tabpanel-${y}`,
281
+ id: `settings-tabpanel-${_}`,
282
282
  "aria-label": "Settings dimension controls",
283
283
  tabIndex: 0,
284
284
  className: "settings-shell__tabpanel",
285
285
  children: [
286
- y === "threshold" && /* @__PURE__ */ n(
286
+ _ === "threshold" && /* @__PURE__ */ n(
287
287
  Ve,
288
288
  {
289
289
  value: N,
290
290
  onChange: W,
291
- enabled: A,
291
+ enabled: T,
292
292
  onToggleEnabled: q
293
293
  }
294
294
  ),
295
- y === "timeframe" && /* @__PURE__ */ n(Be, { value: I, onChange: G }),
296
- y === "slots" && /* @__PURE__ */ n(Ye, { value: w, onChange: Q }),
297
- y === "color" && /* @__PURE__ */ n(
295
+ _ === "timeframe" && /* @__PURE__ */ n(Be, { value: I, onChange: G }),
296
+ _ === "slots" && /* @__PURE__ */ n(Ye, { value: R, onChange: Q }),
297
+ _ === "color" && /* @__PURE__ */ n(
298
298
  Ge,
299
299
  {
300
300
  value: $,
301
301
  onSelect: le,
302
- enabled: Y,
302
+ enabled: L,
303
303
  onToggleEnabled: g
304
304
  }
305
305
  )
@@ -847,7 +847,7 @@ function je({
847
847
  activeLens: t,
848
848
  onLensChange: r
849
849
  }) {
850
- const [l, a] = x(!1), i = K(null), u = () => {
850
+ const [l, a] = x(!1), i = Y(null), u = () => {
851
851
  i.current != null && (window.clearTimeout(i.current), i.current = null);
852
852
  }, o = () => {
853
853
  u(), i.current = window.setTimeout(() => a(!1), 100);
@@ -1035,25 +1035,28 @@ function At({
1035
1035
  defaultLens: r = ye,
1036
1036
  tilesByLens: l = _e,
1037
1037
  lensMeta: a = ae,
1038
- renderTile: i
1038
+ renderTile: i,
1039
+ onAdd: u
1039
1040
  }) {
1040
- const u = O(), [o, s] = x(r), [c, d] = x(null), [m, h] = x(null), [b, p] = x(""), y = l[o] ?? { primary: [] }, E = a[o], T = ie(
1041
- () => y.primary.filter((w) => ue(w, b)),
1042
- [y.primary, b]
1043
- ), v = ie(
1044
- () => (y.secondary ?? []).filter((w) => ue(w, b)),
1045
- [y.secondary, b]
1046
- ), N = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "apply-button" }), I = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }), $ = c == null;
1041
+ const o = O(), [s, c] = x(r), [d, m] = x(null), [h, b] = x(null), [p, _] = x(""), E = l[s] ?? { primary: [] }, S = a[s], v = ie(
1042
+ () => E.primary.filter((T) => ue(T, p)),
1043
+ [E.primary, p]
1044
+ ), N = ie(
1045
+ () => (E.secondary ?? []).filter((T) => ue(T, p)),
1046
+ [E.secondary, p]
1047
+ ), I = () => {
1048
+ d != null && u?.(d), o?.dispatch({ type: "CLOSE_PANEL", reason: "apply-button" });
1049
+ }, $ = () => o?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }), R = d == null;
1047
1050
  return /* @__PURE__ */ n(
1048
1051
  se.Provider,
1049
1052
  {
1050
- value: { mode: "add", selectedTileId: c, description: m },
1053
+ value: { mode: "add", selectedTileId: d, description: h },
1051
1054
  children: /* @__PURE__ */ n(
1052
- V,
1055
+ B,
1053
1056
  {
1054
1057
  variant: "no-stage",
1055
1058
  title: "Add a metric",
1056
- onClose: I,
1059
+ onClose: $,
1057
1060
  footer: {
1058
1061
  left: /* @__PURE__ */ n(Ze, {}),
1059
1062
  right: /* @__PURE__ */ n(
@@ -1062,8 +1065,8 @@ function At({
1062
1065
  id: "btn-cat-add",
1063
1066
  type: "button",
1064
1067
  className: "gloss-panel-chrome-v2__footer-btn gloss-panel-chrome-v2__footer-btn--primary",
1065
- disabled: $,
1066
- onClick: N,
1068
+ disabled: R,
1069
+ onClick: I,
1067
1070
  children: "Add metric"
1068
1071
  }
1069
1072
  )
@@ -1076,54 +1079,54 @@ function At({
1076
1079
  className: "cat-search-input",
1077
1080
  placeholder: "Search metrics",
1078
1081
  "aria-label": "Search metrics",
1079
- value: b,
1080
- onChange: (w) => p(w.target.value)
1082
+ value: p,
1083
+ onChange: (T) => _(T.target.value)
1081
1084
  }
1082
1085
  ) }),
1083
1086
  /* @__PURE__ */ n(
1084
1087
  Ce,
1085
1088
  {
1086
1089
  lenses: t,
1087
- activeLens: o,
1090
+ activeLens: s,
1088
1091
  lensMeta: a,
1089
1092
  variant: "pills",
1090
- onLensChange: (w) => {
1091
- s(w), d(null), h(null), p("");
1093
+ onLensChange: (T) => {
1094
+ c(T), m(null), b(null), _("");
1092
1095
  }
1093
1096
  }
1094
1097
  ),
1095
- E && /* @__PURE__ */ f("div", { className: "cat-lens-meta", children: [
1096
- /* @__PURE__ */ n("h3", { className: "cat-lens-headline", children: E.headline }),
1097
- /* @__PURE__ */ n("p", { className: "cat-lens-helper", children: E.helper })
1098
+ S && /* @__PURE__ */ f("div", { className: "cat-lens-meta", children: [
1099
+ /* @__PURE__ */ n("h3", { className: "cat-lens-headline", children: S.headline }),
1100
+ /* @__PURE__ */ n("p", { className: "cat-lens-helper", children: S.helper })
1098
1101
  ] }),
1099
1102
  /* @__PURE__ */ n(
1100
1103
  te,
1101
1104
  {
1102
- tiles: T,
1103
- selectedTileId: c,
1104
- onSelectTile: (w, A) => {
1105
- d(w), h(A);
1105
+ tiles: v,
1106
+ selectedTileId: d,
1107
+ onSelectTile: (T, L) => {
1108
+ m(T), b(L);
1106
1109
  },
1107
1110
  renderTile: i
1108
1111
  }
1109
1112
  ),
1110
- v.length > 0 && /* @__PURE__ */ f("div", { className: "cat-more-in-lens", children: [
1113
+ N.length > 0 && /* @__PURE__ */ f("div", { className: "cat-more-in-lens", children: [
1111
1114
  /* @__PURE__ */ n("div", { className: "cat-more-in-lens__heading", children: "MORE IN THIS LENS" }),
1112
1115
  /* @__PURE__ */ n(
1113
1116
  te,
1114
1117
  {
1115
- tiles: v,
1116
- selectedTileId: c,
1117
- onSelectTile: (w, A) => {
1118
- d(w), h(A);
1118
+ tiles: N,
1119
+ selectedTileId: d,
1120
+ onSelectTile: (T, L) => {
1121
+ m(T), b(L);
1119
1122
  },
1120
1123
  renderTile: i
1121
1124
  }
1122
1125
  )
1123
1126
  ] }),
1124
- T.length === 0 && v.length === 0 && b.length > 0 && /* @__PURE__ */ f("div", { className: "cat-empty", children: [
1127
+ v.length === 0 && N.length === 0 && p.length > 0 && /* @__PURE__ */ f("div", { className: "cat-empty", children: [
1125
1128
  'No metrics match "',
1126
- b,
1129
+ p,
1127
1130
  '".'
1128
1131
  ] })
1129
1132
  ] })
@@ -1134,7 +1137,7 @@ function At({
1134
1137
  }
1135
1138
  function Xe() {
1136
1139
  const t = re()?.description ?? null;
1137
- return t == null ? /* @__PURE__ */ n("em", { children: "Tap a metric to see its description" }) : /* @__PURE__ */ n(B, { children: t });
1140
+ return t == null ? /* @__PURE__ */ n("em", { children: "Tap a metric to see its description" }) : /* @__PURE__ */ n(K, { children: t });
1138
1141
  }
1139
1142
  function kt({
1140
1143
  isOpen: e,
@@ -1144,13 +1147,13 @@ function kt({
1144
1147
  tilesByLens: a = _e,
1145
1148
  renderTile: i
1146
1149
  }) {
1147
- const u = O(), [o, s] = x(l), [c, d] = x(null), [m, h] = x(null), b = a[o] ?? { primary: [] }, p = [...b.primary, ...b.secondary ?? []], y = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "apply-button" }), E = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }), T = c == null;
1150
+ const u = O(), [o, s] = x(l), [c, d] = x(null), [m, h] = x(null), b = a[o] ?? { primary: [] }, p = [...b.primary, ...b.secondary ?? []], _ = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "apply-button" }), E = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }), S = c == null;
1148
1151
  return /* @__PURE__ */ n(
1149
1152
  se.Provider,
1150
1153
  {
1151
1154
  value: { mode: "replace", selectedTileId: c, description: m },
1152
1155
  children: /* @__PURE__ */ n(
1153
- V,
1156
+ B,
1154
1157
  {
1155
1158
  variant: "no-stage",
1156
1159
  title: "Replace metric",
@@ -1163,8 +1166,8 @@ function kt({
1163
1166
  id: "btn-cat-replace",
1164
1167
  type: "button",
1165
1168
  className: "gloss-panel-chrome-v2__footer-btn gloss-panel-chrome-v2__footer-btn--primary",
1166
- disabled: T,
1167
- onClick: y,
1169
+ disabled: S,
1170
+ onClick: _,
1168
1171
  children: "Replace metric"
1169
1172
  }
1170
1173
  )
@@ -1238,11 +1241,11 @@ function Je(e = {}) {
1238
1241
  );
1239
1242
  }
1240
1243
  function pe({ page: e, onRename: t, onKebab: r, onDragStart: l, onSwitchPage: a }) {
1241
- const i = Te(), [u, o] = x(!1), s = K(null);
1242
- R(() => {
1244
+ const i = Te(), [u, o] = x(!1), s = Y(null);
1245
+ F(() => {
1243
1246
  if (!u) return;
1244
- const p = (y) => {
1245
- s.current && (s.current.contains(y.target) || o(!1));
1247
+ const p = (_) => {
1248
+ s.current && (s.current.contains(_.target) || o(!1));
1246
1249
  };
1247
1250
  return document.addEventListener("mousedown", p, !0), () => document.removeEventListener("mousedown", p, !0);
1248
1251
  }, [u]);
@@ -1294,7 +1297,7 @@ function pe({ page: e, onRename: t, onKebab: r, onDragStart: l, onSwitchPage: a
1294
1297
  onMouseDown: (p) => p.stopPropagation(),
1295
1298
  onClick: (p) => {
1296
1299
  if (p.stopPropagation(), r) return r(e.id);
1297
- o((y) => !y);
1300
+ o((_) => !_);
1298
1301
  },
1299
1302
  children: "⋯"
1300
1303
  }
@@ -1343,38 +1346,38 @@ function Dt({
1343
1346
  onCreatePage: s,
1344
1347
  onSwitchPage: c
1345
1348
  }) {
1346
- const d = O(), [m, h] = x(() => [...t]), b = L((g, C) => {
1347
- h((S) => S.map((k) => k.id === g ? { ...k, name: C } : k));
1348
- }, []), p = L((g) => {
1349
+ const d = O(), [m, h] = x(() => [...t]), b = D((g, C) => {
1350
+ h((w) => w.map((A) => A.id === g ? { ...A, name: C } : A));
1351
+ }, []), p = D((g) => {
1349
1352
  h((C) => {
1350
- const S = C.find((F) => F.id === g);
1351
- if (!S) return C;
1352
- const k = {
1353
- id: `${S.id}-copy-${Date.now()}`,
1354
- name: `${S.name} copy`,
1353
+ const w = C.find((U) => U.id === g);
1354
+ if (!w) return C;
1355
+ const A = {
1356
+ id: `${w.id}-copy-${Date.now()}`,
1357
+ name: `${w.name} copy`,
1355
1358
  active: !1
1356
- }, D = C.findIndex((F) => F.id === g);
1357
- return [...C.slice(0, D + 1), k, ...C.slice(D + 1)];
1359
+ }, k = C.findIndex((U) => U.id === g);
1360
+ return [...C.slice(0, k + 1), A, ...C.slice(k + 1)];
1358
1361
  });
1359
- }, []), y = L((g) => {
1360
- h((C) => C.filter((S) => S.id !== g));
1361
- }, []), E = L((g) => {
1362
+ }, []), _ = D((g) => {
1363
+ h((C) => C.filter((w) => w.id !== g));
1364
+ }, []), E = D((g) => {
1362
1365
  h((C) => {
1363
- const S = new Map(C.map((D) => [D.id, D])), k = g.map((D) => S.get(D)).filter(Boolean);
1364
- return k.length === C.length ? k : C;
1366
+ const w = new Map(C.map((k) => [k.id, k])), A = g.map((k) => w.get(k)).filter(Boolean);
1367
+ return A.length === C.length ? A : C;
1365
1368
  });
1366
- }, []), T = r != null, v = T ? r : m, N = l != null ? v.map((g) => ({ ...g, active: g.id === l })) : [...v], I = a ?? (T ? void 0 : b), $ = i ?? (T ? void 0 : p), w = u ?? (T ? void 0 : y), A = o ?? (T ? void 0 : E), Y = L(
1369
+ }, []), S = r != null, v = S ? r : m, N = l != null ? v.map((g) => ({ ...g, active: g.id === l })) : [...v], I = a ?? (S ? void 0 : b), $ = i ?? (S ? void 0 : p), R = u ?? (S ? void 0 : _), T = o ?? (S ? void 0 : E), L = D(
1367
1370
  (g) => {
1368
- T || h(g);
1371
+ S || h(g);
1369
1372
  },
1370
- [T]
1371
- ), W = L(
1373
+ [S]
1374
+ ), W = D(
1372
1375
  (g) => {
1373
- const C = g[0]?.items.map((S) => S.id) ?? [];
1374
- C.length > 0 && A && A(C);
1376
+ const C = g[0]?.items.map((w) => w.id) ?? [];
1377
+ C.length > 0 && T && T(C);
1375
1378
  },
1376
- [A]
1377
- ), G = N.map((g) => `${g.id}:${g.name}`).join("|"), Q = A != null && N.length > 1 ? /* @__PURE__ */ n(
1379
+ [T]
1380
+ ), G = N.map((g) => `${g.id}:${g.name}`).join("|"), Q = T != null && N.length > 1 ? /* @__PURE__ */ n(
1378
1381
  Ee,
1379
1382
  {
1380
1383
  zones: [
@@ -1384,7 +1387,7 @@ function Dt({
1384
1387
  }
1385
1388
  ],
1386
1389
  onZoneChange: W,
1387
- renderZone: (g, C, S) => /* @__PURE__ */ n("div", { className: "pm-list", role: "list", children: S }),
1390
+ renderZone: (g, C, w) => /* @__PURE__ */ n("div", { className: "pm-list", role: "list", children: w }),
1388
1391
  renderItem: (g) => /* @__PURE__ */ n(
1389
1392
  pe,
1390
1393
  {
@@ -1408,15 +1411,15 @@ function Dt({
1408
1411
  {
1409
1412
  value: {
1410
1413
  pages: N,
1411
- setPages: Y,
1414
+ setPages: L,
1412
1415
  renamePage: I,
1413
1416
  duplicatePage: $,
1414
- deletePage: w,
1417
+ deletePage: R,
1415
1418
  // Sprint 2026-05-20 — propagate live create binding for footer.
1416
1419
  createPage: s
1417
1420
  },
1418
1421
  children: /* @__PURE__ */ n(
1419
- V,
1422
+ B,
1420
1423
  {
1421
1424
  variant: "no-stage",
1422
1425
  title: "Manage pages",
@@ -1450,17 +1453,17 @@ const Lt = {
1450
1453
  };
1451
1454
  function Ot() {
1452
1455
  const { state: e, dispatch: t, getCloseLog: r } = Pe();
1453
- R(() => {
1456
+ F(() => {
1454
1457
  if (e.activePanelId == null) return;
1455
1458
  function i(u) {
1456
1459
  u.key === "Escape" && t({ type: "CLOSE_PANEL", reason: "escape-key" });
1457
1460
  }
1458
1461
  return document.addEventListener("keydown", i), () => document.removeEventListener("keydown", i);
1459
1462
  }, [e.activePanelId, t]);
1460
- const l = K(e);
1463
+ const l = Y(e);
1461
1464
  Ae(() => {
1462
1465
  l.current = e;
1463
- }), R(() => {
1466
+ }), F(() => {
1464
1467
  if (process.env.NODE_ENV === "production") return;
1465
1468
  const i = window;
1466
1469
  return i.__panelsHostHandle && console.warn("[panels] multiple PanelHost/PanelHostShell instances mounted; dev handle is unreliable"), i.__panelsHostHandle = {
@@ -1471,7 +1474,7 @@ function Ot() {
1471
1474
  i.__panelsHostHandle?.dispatch === t && delete window.__panelsHostHandle;
1472
1475
  };
1473
1476
  }, [t, r]);
1474
- const a = L(() => {
1477
+ const a = D(() => {
1475
1478
  t({ type: "CLOSE_PANEL", reason: "nav-escape-hatch" });
1476
1479
  }, [t]);
1477
1480
  return /* @__PURE__ */ n("div", { "data-panel-host": "true", style: tt, children: e.activePanelId != null && /* @__PURE__ */ n(
@@ -1485,8 +1488,8 @@ function Ot() {
1485
1488
  }
1486
1489
  const at = 700;
1487
1490
  function st(e) {
1488
- const [t, r] = x(null), l = K(null);
1489
- return R(() => {
1491
+ const [t, r] = x(null), l = Y(null);
1492
+ return F(() => {
1490
1493
  if (e != null) {
1491
1494
  l.current != null && (clearTimeout(l.current), l.current = null), r(null);
1492
1495
  return;
@@ -1496,7 +1499,7 @@ function st(e) {
1496
1499
  }, at), () => {
1497
1500
  l.current != null && (clearTimeout(l.current), l.current = null);
1498
1501
  };
1499
- }, [e]), R(() => {
1502
+ }, [e]), F(() => {
1500
1503
  e != null && r(e);
1501
1504
  }, [e]), e != null ? { panelId: e, isOpen: !0 } : t != null ? { panelId: t, isOpen: !1 } : { panelId: null, isOpen: !1 };
1502
1505
  }
@@ -1523,13 +1526,13 @@ function Se(e, t) {
1523
1526
  function it(e, t) {
1524
1527
  return typeof window > "u" ? t : window.getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t;
1525
1528
  }
1526
- function z(e) {
1529
+ function H(e) {
1527
1530
  e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger });
1528
1531
  }
1529
1532
  function ct(e) {
1530
1533
  const { mountEl: t, chromeEl: r, reducedMotion: l, onAssert: a } = e;
1531
1534
  if (t == null || r == null) {
1532
- z(e), a?.({ branch: "slide-fallback-no-dom", timestamp: Date.now() });
1535
+ H(e), a?.({ branch: "slide-fallback-no-dom", timestamp: Date.now() });
1533
1536
  return;
1534
1537
  }
1535
1538
  if (l) {
@@ -1537,7 +1540,7 @@ function ct(e) {
1537
1540
  return;
1538
1541
  }
1539
1542
  if (typeof r.animate != "function") {
1540
- z(e), a?.({ branch: "slide-no-waapi", timestamp: Date.now() });
1543
+ H(e), a?.({ branch: "slide-no-waapi", timestamp: Date.now() });
1541
1544
  return;
1542
1545
  }
1543
1546
  const i = r.cloneNode(!0);
@@ -1557,7 +1560,7 @@ function ct(e) {
1557
1560
  function dt(e) {
1558
1561
  const { mountEl: t, onAssert: r } = e;
1559
1562
  if (t == null) {
1560
- e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }), setTimeout(() => z(e), he), r?.({ branch: "handoff-fallback-no-mount", timestamp: Date.now() });
1563
+ e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }), setTimeout(() => H(e), he), r?.({ branch: "handoff-fallback-no-mount", timestamp: Date.now() });
1561
1564
  return;
1562
1565
  }
1563
1566
  const l = Se("--panel-close-dur", he);
@@ -1584,7 +1587,7 @@ function ut(e) {
1584
1587
  dt(e);
1585
1588
  return;
1586
1589
  }
1587
- z(e), r?.({ branch: "fresh-open", timestamp: Date.now() });
1590
+ H(e), r?.({ branch: "fresh-open", timestamp: Date.now() });
1588
1591
  }
1589
1592
  function pt() {
1590
1593
  if (!(typeof window > "u"))
@@ -1592,7 +1595,7 @@ function pt() {
1592
1595
  }
1593
1596
  function It() {
1594
1597
  const e = O(), t = fe();
1595
- return L(
1598
+ return D(
1596
1599
  (r, l) => {
1597
1600
  if (!e)
1598
1601
  return;
@@ -1616,7 +1619,7 @@ function It() {
1616
1619
  function $t({ children: e }) {
1617
1620
  return /* @__PURE__ */ n("div", { className: "clone-stage", children: e });
1618
1621
  }
1619
- let H = !1, j = null;
1622
+ let V = !1, j = null;
1620
1623
  function ne() {
1621
1624
  const e = [];
1622
1625
  let t = "cleaned";
@@ -1641,7 +1644,7 @@ function ne() {
1641
1644
  };
1642
1645
  }
1643
1646
  const Z = "8px 8px 0px", X = "64px", J = "inset(0px 0px 60px 0px)", ee = "inset(0px -40px -40px -40px)";
1644
- function _(e, t, r, l, a) {
1647
+ function y(e, t, r, l, a) {
1645
1648
  return { id: e, constraint: t, expected: r, actual: l, pass: a };
1646
1649
  }
1647
1650
  function M(e) {
@@ -1651,11 +1654,11 @@ function M(e) {
1651
1654
  function oe() {
1652
1655
  const e = [], t = document.querySelector(".gloss-panel-mount"), r = t?.querySelector(".gloss-panel-chrome") ?? null, l = document.querySelector(".gloss-panel-coordinator") ?? document.querySelector("[data-panel-coordinator]"), a = document.querySelector(".bell-cutout"), i = document.querySelector(".bell-popover"), u = document.querySelector(".gloss-bottom-toolbar");
1653
1656
  if (!t)
1654
- e.push(_("C1", "mount --reveal-y matches clip-path inset-bottom Npx", "mount present", "absent", !1));
1657
+ e.push(y("C1", "mount --reveal-y matches clip-path inset-bottom Npx", "mount present", "absent", !1));
1655
1658
  else {
1656
1659
  const o = getComputedStyle(t), s = o.getPropertyValue("--reveal-y").trim() || t.style.getPropertyValue("--reveal-y").trim(), c = o.clipPath || t.style.clipPath || "", d = c.match(/inset\(\s*0(?:px)?\s+0(?:px)?\s+(\d+)px\s+0(?:px)?\s*\)/), m = d ? parseInt(d[1], 10) : NaN, h = M(s), b = Number.isFinite(m) && Number.isFinite(h) && m === h;
1657
1660
  e.push(
1658
- _(
1661
+ y(
1659
1662
  "C1",
1660
1663
  "mount --reveal-y matches clip-path inset-bottom Npx",
1661
1664
  `inset(0 0 ${h}px 0) === --reveal-y(${h}px)`,
@@ -1665,19 +1668,19 @@ function oe() {
1665
1668
  );
1666
1669
  }
1667
1670
  if (!t)
1668
- e.push(_("C2", "mount padding constant", Z, "absent", !1));
1671
+ e.push(y("C2", "mount padding constant", Z, "absent", !1));
1669
1672
  else {
1670
1673
  const o = t.style.padding, s = getComputedStyle(t), c = o || s.padding || "", d = c === Z || c === "8px 8px 0px 8px";
1671
- e.push(_("C2", "mount padding constant", Z, c || "n/a", d));
1674
+ e.push(y("C2", "mount padding constant", Z, c || "n/a", d));
1672
1675
  }
1673
1676
  if (!t)
1674
- e.push(_("C3", "mount.bottom resolves to var(--tb-h)=64px", X, "absent", !1));
1677
+ e.push(y("C3", "mount.bottom resolves to var(--tb-h)=64px", X, "absent", !1));
1675
1678
  else {
1676
1679
  const s = getComputedStyle(t).bottom || t.style.bottom || "", c = s === X;
1677
- e.push(_("C3", "mount.bottom resolves to var(--tb-h)=64px", X, s || "n/a", c));
1680
+ e.push(y("C3", "mount.bottom resolves to var(--tb-h)=64px", X, s || "n/a", c));
1678
1681
  }
1679
1682
  if (!r)
1680
- e.push(_("C4", "panel-chrome height formula = (row-h*3)+(row-gap*3)-8px", "formula match", "absent", !1));
1683
+ e.push(y("C4", "panel-chrome height formula = (row-h*3)+(row-gap*3)-8px", "formula match", "absent", !1));
1681
1684
  else {
1682
1685
  const o = getComputedStyle(r), s = M(
1683
1686
  o.getPropertyValue("--row-h").trim() || r.style.getPropertyValue("--row-h").trim() || "0"
@@ -1685,7 +1688,7 @@ function oe() {
1685
1688
  o.getPropertyValue("--row-gap").trim() || r.style.getPropertyValue("--row-gap").trim() || "0"
1686
1689
  ), d = s * 3 + c * 3 - 8, m = M(o.height || r.style.height || ""), h = Number.isFinite(s) && Number.isFinite(c) && Number.isFinite(m) && Number.isFinite(d) && m === d;
1687
1690
  e.push(
1688
- _(
1691
+ y(
1689
1692
  "C4",
1690
1693
  "panel-chrome height formula = (row-h*3)+(row-gap*3)-8px",
1691
1694
  `${d}px (rh=${s} rg=${c})`,
@@ -1696,7 +1699,7 @@ function oe() {
1696
1699
  }
1697
1700
  if (!l || !r)
1698
1701
  e.push(
1699
- _(
1702
+ y(
1700
1703
  "C5",
1701
1704
  'coordinator perspective + origin "center bottom"; chrome perspective-style flat',
1702
1705
  "present",
@@ -1705,14 +1708,14 @@ function oe() {
1705
1708
  )
1706
1709
  );
1707
1710
  else {
1708
- const o = getComputedStyle(l), s = getComputedStyle(r), c = o.perspective || l.style.perspective || "", d = (o.perspectiveOrigin || l.style.perspectiveOrigin || "").trim(), m = s.perspectiveStyle || r.style.perspectiveStyle || "", y = c !== "" && c !== "none" && (d === "center bottom" || d === "50% 100%") && m === "flat";
1711
+ const o = getComputedStyle(l), s = getComputedStyle(r), c = o.perspective || l.style.perspective || "", d = (o.perspectiveOrigin || l.style.perspectiveOrigin || "").trim(), m = s.perspectiveStyle || r.style.perspectiveStyle || "", _ = c !== "" && c !== "none" && (d === "center bottom" || d === "50% 100%") && m === "flat";
1709
1712
  e.push(
1710
- _(
1713
+ y(
1711
1714
  "C5",
1712
1715
  'coordinator perspective + origin "center bottom"; chrome perspective-style flat',
1713
1716
  "perspective:not-none, origin:center bottom, chrome-style:flat",
1714
1717
  `perspective=${c} origin=${d} chrome-style=${m}`,
1715
- y
1718
+ _
1716
1719
  )
1717
1720
  );
1718
1721
  }
@@ -1728,8 +1731,8 @@ function oe() {
1728
1731
  }
1729
1732
  for (const m of d)
1730
1733
  if (m.name === "stage-spin") {
1731
- const b = Array.from(m.cssRules), p = b.find((N) => N.keyText === "0%" || N.keyText === "from"), y = b.find((N) => N.keyText === "100%" || N.keyText === "to"), E = p?.style.transform ?? "", T = y?.style.transform ?? "", v = /rotateY\(\s*0(?:deg)?\s*\)/;
1732
- o = v.test(E) && v.test(T), s = `0%=${E || "n/a"} 100%=${T || "n/a"}`;
1734
+ const b = Array.from(m.cssRules), p = b.find((N) => N.keyText === "0%" || N.keyText === "from"), _ = b.find((N) => N.keyText === "100%" || N.keyText === "to"), E = p?.style.transform ?? "", S = _?.style.transform ?? "", v = /rotateY\(\s*0(?:deg)?\s*\)/;
1735
+ o = v.test(E) && v.test(S), s = `0%=${E || "n/a"} 100%=${S || "n/a"}`;
1733
1736
  break;
1734
1737
  }
1735
1738
  if (s !== "absent") break;
@@ -1738,7 +1741,7 @@ function oe() {
1738
1741
  s = "inspection-error";
1739
1742
  }
1740
1743
  e.push(
1741
- _(
1744
+ y(
1742
1745
  "C6",
1743
1746
  "@keyframes stage-spin 0% AND 100% anchor at rotateY(0)",
1744
1747
  "both frames rotateY(0)",
@@ -1750,15 +1753,15 @@ function oe() {
1750
1753
  {
1751
1754
  const o = document.documentElement, s = getComputedStyle(o), c = s.getPropertyValue("--panel-open-dur").trim() || o.style.getPropertyValue("--panel-open-dur").trim(), d = s.getPropertyValue("--panel-close-dur").trim() || o.style.getPropertyValue("--panel-close-dur").trim(), m = M(c) || parseFloat(c) * (c.endsWith("s") && !c.endsWith("ms") ? 1e3 : 1), h = M(d) || parseFloat(d) * (d.endsWith("s") && !d.endsWith("ms") ? 1e3 : 1), b = Number.isFinite(m) && Number.isFinite(h) && m > h;
1752
1755
  e.push(
1753
- _("C7", "--panel-open-dur > --panel-close-dur", "open > close", `open=${c || "n/a"} close=${d || "n/a"}`, b)
1756
+ y("C7", "--panel-open-dur > --panel-close-dur", "open > close", `open=${c || "n/a"} close=${d || "n/a"}`, b)
1754
1757
  );
1755
1758
  }
1756
1759
  if (!a)
1757
- e.push(_("C8", "BellCutout zero computed animation/transition", "no inline timing", "absent", !1));
1760
+ e.push(y("C8", "BellCutout zero computed animation/transition", "no inline timing", "absent", !1));
1758
1761
  else {
1759
1762
  const o = getComputedStyle(a), s = o.animationName || "", c = o.transitionProperty || "", d = (s === "" || s === "none") && (c === "" || c === "none" || c === "all");
1760
1763
  e.push(
1761
- _(
1764
+ y(
1762
1765
  "C8",
1763
1766
  "BellCutout zero computed animation/transition",
1764
1767
  "animation:none AND transition:none",
@@ -1768,17 +1771,17 @@ function oe() {
1768
1771
  );
1769
1772
  }
1770
1773
  if (!t)
1771
- e.push(_("C9", "mount closed-state clipPath", J, "absent", !1));
1774
+ e.push(y("C9", "mount closed-state clipPath", J, "absent", !1));
1772
1775
  else {
1773
1776
  const o = t.style.clipPath, s = getComputedStyle(t), c = o || s.clipPath || "", d = c === J;
1774
- e.push(_("C9", "mount closed-state clipPath", J, c || "n/a", d));
1777
+ e.push(y("C9", "mount closed-state clipPath", J, c || "n/a", d));
1775
1778
  }
1776
1779
  if (!i)
1777
- e.push(_("C10", "bell-popover parentElement === document.body (open)", "body", "absent", !1));
1780
+ e.push(y("C10", "bell-popover parentElement === document.body (open)", "body", "absent", !1));
1778
1781
  else {
1779
1782
  const o = i.parentElement, s = o === document.body;
1780
1783
  e.push(
1781
- _(
1784
+ y(
1782
1785
  "C10",
1783
1786
  "bell-popover parentElement === document.body (open)",
1784
1787
  "body",
@@ -1788,19 +1791,19 @@ function oe() {
1788
1791
  );
1789
1792
  }
1790
1793
  if (!l)
1791
- e.push(_("C11", "coordinator overflow === visible", "visible", "absent", !1));
1794
+ e.push(y("C11", "coordinator overflow === visible", "visible", "absent", !1));
1792
1795
  else {
1793
1796
  const s = getComputedStyle(l).overflow || l.style.overflow || "", c = s === "visible";
1794
- e.push(_("C11", "coordinator overflow === visible", "visible", s || "n/a", c));
1797
+ e.push(y("C11", "coordinator overflow === visible", "visible", s || "n/a", c));
1795
1798
  }
1796
1799
  if (!u)
1797
- e.push(_("C12", "toolbar clipPath = inset(0 -40 -40 -40)", ee, "absent", !1));
1800
+ e.push(y("C12", "toolbar clipPath = inset(0 -40 -40 -40)", ee, "absent", !1));
1798
1801
  else {
1799
1802
  const o = u.style.clipPath, s = getComputedStyle(u), c = o || s.clipPath || "", d = c === ee;
1800
- e.push(_("C12", "toolbar clipPath = inset(0 -40 -40 -40)", ee, c || "n/a", d));
1803
+ e.push(y("C12", "toolbar clipPath = inset(0 -40 -40 -40)", ee, c || "n/a", d));
1801
1804
  }
1802
1805
  return e.push(
1803
- _(
1806
+ y(
1804
1807
  "C13",
1805
1808
  "same-position slide via WAAPI (mid-transition getAnimations().length > 0)",
1806
1809
  "WAAPI driver wired in orchestrator (source-proof)",
@@ -1808,7 +1811,7 @@ function oe() {
1808
1811
  "wiring_only"
1809
1812
  )
1810
1813
  ), e.push(
1811
- _(
1814
+ y(
1812
1815
  "C14",
1813
1816
  'cross-position handoff transitionend filtered by propertyName="max-height"',
1814
1817
  "transitionend filter wired in orchestrator (source-proof)",
@@ -1836,10 +1839,10 @@ function ft() {
1836
1839
  return {
1837
1840
  enable: gt,
1838
1841
  disable: bt,
1839
- isEnabled: () => H,
1842
+ isEnabled: () => V,
1840
1843
  getLastReport: () => j,
1841
1844
  recordTransition: (e) => {
1842
- H && (j = { ...e, ...ne() });
1845
+ V && (j = { ...e, ...ne() });
1843
1846
  },
1844
1847
  assertOnce: () => {
1845
1848
  const e = ne();
@@ -1851,13 +1854,13 @@ function ft() {
1851
1854
  };
1852
1855
  }
1853
1856
  function gt() {
1854
- if (H = !0, typeof window > "u") return;
1857
+ if (V = !0, typeof window > "u") return;
1855
1858
  window.__panelsAsserter || (window.__panelsAsserter = ft(), console.info(
1856
1859
  "[panels] asserter enabled (P3b Q12-12 + P6 W5 cc:C1..C14). Inspect via window.__panelsAsserter."
1857
1860
  ));
1858
1861
  }
1859
1862
  function bt() {
1860
- H = !1;
1863
+ V = !1;
1861
1864
  }
1862
1865
  export {
1863
1866
  Ut as COMMITS,
@@ -1879,7 +1882,7 @@ export {
1879
1882
  Ne as PageMgmtStateContext,
1880
1883
  Ht as PanelBody,
1881
1884
  Vt as PanelChrome,
1882
- V as PanelChromeV2,
1885
+ B as PanelChromeV2,
1883
1886
  Bt as PanelFooter,
1884
1887
  Et as PanelFooterMessage,
1885
1888
  Kt as PanelHeader,