@mt-gloss/ui 0.1.133 → 0.1.135

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.
Files changed (37) hide show
  1. package/{COMMITS-WBmqrmdI.js → COMMITS-B_qGBoy7.js} +171 -183
  2. package/{Expandable-D0vngX68.js → Expandable-DA4NFzCR.js} +2768 -2720
  3. package/catalog.js +2 -2
  4. package/composites-panels.js +451 -543
  5. package/index.js +1233 -1215
  6. package/lib/composites/forms/PasswordInput.d.ts +6 -1
  7. package/lib/composites/forms/PhoneInput.d.ts +6 -1
  8. package/lib/composites/forms/SearchInput.d.ts +6 -1
  9. package/lib/composites/forms/TagInput.d.ts +6 -1
  10. package/lib/composites/inputs/FilterChip.d.ts +6 -1
  11. package/lib/composites/overlay/SplitButton/SplitButton.d.ts +6 -1
  12. package/lib/composites/panels/coordinator/settingsBufferSchemas.d.ts +4 -9
  13. package/lib/composites/panels/index.d.ts +2 -0
  14. package/lib/composites/panels/shells/MetricInfoShell.d.ts +29 -0
  15. package/lib/composites/panels/shells/SettingsShell.d.ts +4 -13
  16. package/lib/composites/panels/shells/index.d.ts +2 -0
  17. package/lib/composites/panels/shells/settings/index.d.ts +3 -4
  18. package/lib/containers/ContainerDialog/ContainerDialog.d.ts +18 -3
  19. package/lib/containers/ContainerFormSection/ContainerFormSection.d.ts +6 -1
  20. package/lib/containers/ContainerPanel/ContainerPanel.d.ts +6 -1
  21. package/lib/containers/ContainerTable/ContainerTable.d.ts +6 -1
  22. package/lib/containers/ContainerToolbar/ContainerToolbar.d.ts +6 -1
  23. package/lib/primitives/dashboard/ResizePill/ResizePill.d.ts +7 -1
  24. package/lib/wrappers/Actionable/Actionable.d.ts +6 -1
  25. package/lib/wrappers/AsyncLoader/AsyncLoader.d.ts +6 -1
  26. package/lib/wrappers/ButtonGroup/ButtonGroup.d.ts +6 -1
  27. package/lib/wrappers/CheckboxGroup/CheckboxGroup.d.ts +6 -1
  28. package/lib/wrappers/Dismissible/Dismissible.d.ts +6 -1
  29. package/lib/wrappers/Expandable/Expandable.d.ts +6 -1
  30. package/lib/wrappers/InputGroup/InputGroup.d.ts +12 -2
  31. package/lib/wrappers/RadioGroup/RadioGroup.d.ts +6 -1
  32. package/lib/wrappers/Selectable/Selectable.d.ts +6 -1
  33. package/lib/wrappers/Sortable/Sortable.d.ts +6 -1
  34. package/package.json +1 -1
  35. package/ui.css +1 -1
  36. package/lib/composites/panels/shells/settings/ColorControls.d.ts +0 -13
  37. package/lib/composites/panels/shells/settings/ThresholdControls.d.ts +0 -10
@@ -1,82 +1,31 @@
1
- import { u as M, g as he, h as Y, f as we, S as Te, b as Pe, j as Ae } from "./COMMITS-WBmqrmdI.js";
2
- import { C as zt, N as Ht, n as Ut, o as Bt, k as Yt, c as Vt, m as Kt, P as qt, l as Qt, e as Wt, i as Gt, r as jt, d as Zt } from "./COMMITS-WBmqrmdI.js";
3
- import { jsx as a, jsxs as f, Fragment as V } from "react/jsx-runtime";
4
- import H, { useState as A, useRef as K, createContext as fe, useContext as ge, useMemo as le, useEffect as F, useCallback as L, useLayoutEffect as xe } from "react";
5
- import { useSensors as ke, useSensor as ie, PointerSensor as De, KeyboardSensor as Le, DndContext as Me, closestCenter as Oe } from "@dnd-kit/core";
1
+ import { u as D, g as X, h as z, f as we, S as Te, b as xe, j as Ee } from "./COMMITS-B_qGBoy7.js";
2
+ import { C as Rt, N as $t, n as Ft, o as zt, k as Ht, c as Bt, m as Ut, P as Yt, l as Vt, e as Kt, i as qt, r as Qt, d as Wt } from "./COMMITS-B_qGBoy7.js";
3
+ import { jsx as a, jsxs as b, Fragment as ue } from "react/jsx-runtime";
4
+ import H, { useState as x, useRef as Y, createContext as pe, useContext as me, useMemo as se, useEffect as F, useCallback as L, useLayoutEffect as Ae } from "react";
5
+ import { useSensors as De, useSensor as re, PointerSensor as ke, KeyboardSensor as Le, DndContext as Me, closestCenter as Oe } from "@dnd-kit/core";
6
6
  import { sortableKeyboardCoordinates as Ie, SortableContext as Re, horizontalListSortingStrategy as $e, arrayMove as Fe, useSortable as ze } from "@dnd-kit/sortable";
7
7
  import { CSS as He } from "@dnd-kit/utilities";
8
- import { M as ce } from "./MetricCard-DOPtBpek.js";
9
- function wt() {
10
- const e = M();
8
+ import { M as oe } from "./MetricCard-DOPtBpek.js";
9
+ function _t() {
10
+ const e = D();
11
11
  if (e?.state.activePanelId !== "settings") return null;
12
12
  const t = e.state.activeTrigger;
13
13
  return t?.kind === "card-overflow" ? t.cardId : null;
14
14
  }
15
- function Ue({ span: e, rotating: t = !0, children: r }) {
15
+ function he({ span: e, rotating: t = !0, children: r }) {
16
16
  const l = ["clone-card", `span-${e}`, t ? "rotating" : ""].filter(Boolean).join(" "), n = r != null ? "full" : "fallback";
17
17
  return /* @__PURE__ */ a("div", { className: l, "data-clone-fidelity": n, children: r });
18
18
  }
19
- function Tt({ primary: e, secondary: t }) {
20
- return /* @__PURE__ */ f("div", { className: "gloss-panel-chrome-v2__footer-msg", children: [
19
+ function St({ primary: e, secondary: t }) {
20
+ return /* @__PURE__ */ b("div", { className: "gloss-panel-chrome-v2__footer-msg", children: [
21
21
  /* @__PURE__ */ a("span", { className: "gloss-panel-chrome-v2__footer-msg-primary", children: e }),
22
22
  t != null && /* @__PURE__ */ a("span", { className: "gloss-panel-chrome-v2__footer-msg-secondary", children: t })
23
23
  ] });
24
24
  }
25
- function Be({
26
- value: e,
27
- onChange: t,
28
- enabled: r = !1,
29
- onToggleEnabled: l
30
- }) {
31
- const n = "settings-threshold-enabled";
32
- return /* @__PURE__ */ f("div", { className: "settings-shell__field settings-shell__field--threshold", children: [
33
- /* @__PURE__ */ f("div", { className: "settings-shell__toggle-row", children: [
34
- /* @__PURE__ */ a("label", { htmlFor: n, className: "settings-shell__toggle-label", children: "Show threshold indicator" }),
35
- /* @__PURE__ */ a(
36
- "input",
37
- {
38
- id: n,
39
- type: "checkbox",
40
- role: "switch",
41
- "aria-label": "Enable threshold indicator",
42
- "aria-checked": r,
43
- checked: r,
44
- onChange: (i) => l?.(i.target.checked),
45
- className: "settings-shell__toggle"
46
- }
47
- )
48
- ] }),
49
- r ? /* @__PURE__ */ f(V, { children: [
50
- /* @__PURE__ */ a("span", { className: "settings-shell__label", "aria-hidden": "true", children: "Alert level (%)" }),
51
- /* @__PURE__ */ f("div", { className: "settings-shell__slider-row", children: [
52
- /* @__PURE__ */ a(
53
- "input",
54
- {
55
- id: "settings-threshold-input",
56
- type: "range",
57
- min: 0,
58
- max: 100,
59
- value: e,
60
- onChange: t,
61
- "aria-label": "Threshold",
62
- "aria-valuenow": e,
63
- "aria-valuemin": 0,
64
- "aria-valuemax": 100,
65
- className: "settings-shell__slider"
66
- }
67
- ),
68
- /* @__PURE__ */ f("span", { className: "settings-shell__slider-value", "aria-live": "polite", children: [
69
- e,
70
- "%"
71
- ] })
72
- ] })
73
- ] }) : /* @__PURE__ */ a("p", { className: "settings-shell__help", "aria-live": "polite", children: "Off — the card uses its default styling. Turn on to tint values below the threshold." })
74
- ] });
75
- }
76
- function Ye({ value: e, onChange: t }) {
77
- return /* @__PURE__ */ f("div", { className: "settings-shell__field settings-shell__field--timeframe", children: [
25
+ function Be({ value: e, onChange: t }) {
26
+ return /* @__PURE__ */ b("div", { className: "settings-shell__field settings-shell__field--timeframe", children: [
78
27
  /* @__PURE__ */ a("span", { className: "settings-shell__label", "aria-hidden": "true", children: "Rolling period (days)" }),
79
- /* @__PURE__ */ f("div", { className: "settings-shell__slider-row", children: [
28
+ /* @__PURE__ */ b("div", { className: "settings-shell__slider-row", children: [
80
29
  /* @__PURE__ */ a(
81
30
  "input",
82
31
  {
@@ -93,20 +42,20 @@ function Ye({ value: e, onChange: t }) {
93
42
  className: "settings-shell__slider"
94
43
  }
95
44
  ),
96
- /* @__PURE__ */ f("span", { className: "settings-shell__slider-value", "aria-live": "polite", children: [
45
+ /* @__PURE__ */ b("span", { className: "settings-shell__slider-value", "aria-live": "polite", children: [
97
46
  e,
98
47
  " days"
99
48
  ] })
100
49
  ] })
101
50
  ] });
102
51
  }
103
- function Ve({ id: e, onRemove: t }) {
104
- const { attributes: r, listeners: l, setNodeRef: n, transform: i, transition: u, isDragging: o } = ze({ id: e }), s = {
105
- transform: He.Transform.toString(i),
52
+ function Ue({ id: e, onRemove: t }) {
53
+ const { attributes: r, listeners: l, setNodeRef: n, transform: c, transition: u, isDragging: o } = ze({ id: e }), s = {
54
+ transform: He.Transform.toString(c),
106
55
  transition: u,
107
56
  opacity: o ? 0.6 : 1
108
57
  };
109
- return /* @__PURE__ */ f(
58
+ return /* @__PURE__ */ b(
110
59
  "li",
111
60
  {
112
61
  ref: n,
@@ -139,112 +88,59 @@ function Ve({ id: e, onRemove: t }) {
139
88
  }
140
89
  );
141
90
  }
142
- function Ke({ value: e, onChange: t }) {
143
- const r = ke(
144
- ie(De, { activationConstraint: { distance: 4 } }),
145
- ie(Le, { coordinateGetter: Ie })
146
- ), l = H.useRef(!1), [n, i] = H.useState(!1), u = (s) => {
147
- const { active: c, over: d } = s;
148
- if (!d || c.id === d.id) return;
149
- const m = e.findIndex((b) => b === c.id), h = e.findIndex((b) => b === d.id);
91
+ function Ye({ value: e, onChange: t }) {
92
+ const r = De(
93
+ re(ke, { activationConstraint: { distance: 4 } }),
94
+ re(Le, { coordinateGetter: Ie })
95
+ ), l = H.useRef(!1), [n, c] = H.useState(!1), u = (s) => {
96
+ const { active: i, over: d } = s;
97
+ if (!d || i.id === d.id) return;
98
+ const m = e.findIndex((g) => g === i.id), h = e.findIndex((g) => g === d.id);
150
99
  m === -1 || h === -1 || t(Fe([...e], m, h));
151
100
  }, o = (s) => {
152
- l.current || (l.current = !0, i(!0)), t(e.filter((c) => c !== s));
101
+ l.current || (l.current = !0, c(!0)), t(e.filter((i) => i !== s));
153
102
  };
154
- return /* @__PURE__ */ f("div", { className: "settings-shell__field settings-shell__field--slots", "aria-label": "Stack slots", children: [
155
- /* @__PURE__ */ a(Me, { sensors: r, collisionDetection: Oe, onDragEnd: u, children: /* @__PURE__ */ a(Re, { items: [...e], strategy: $e, children: /* @__PURE__ */ a("ul", { className: "settings-shell__slots-list", role: "list", children: e.map((s) => /* @__PURE__ */ a(Ve, { id: s, onRemove: () => o(s) }, s)) }) }) }),
103
+ return /* @__PURE__ */ b("div", { className: "settings-shell__field settings-shell__field--slots", "aria-label": "Stack slots", children: [
104
+ /* @__PURE__ */ a(Me, { sensors: r, collisionDetection: Oe, onDragEnd: u, children: /* @__PURE__ */ a(Re, { items: [...e], strategy: $e, children: /* @__PURE__ */ a("ul", { className: "settings-shell__slots-list", role: "list", children: e.map((s) => /* @__PURE__ */ a(Ue, { id: s, onRemove: () => o(s) }, s)) }) }) }),
156
105
  e.length === 0 && n && /* @__PURE__ */ a("p", { className: "settings-shell__help", children: "All slots removed. Apply to commit, or Reset to restore." }),
157
106
  /* @__PURE__ */ a("p", { className: "settings-shell__help settings-shell__help--small", children: "Drag to reorder · click × to remove" })
158
107
  ] });
159
108
  }
160
- const qe = ["#1d6fd8", "#10b981", "#f59e0b", "#ef4444", "#8b5cf6"];
161
- function Qe({
162
- value: e,
163
- onSelect: t,
164
- enabled: r = !1,
165
- onToggleEnabled: l
166
- }) {
167
- const n = "settings-accent-enabled";
168
- return /* @__PURE__ */ f("div", { className: "settings-shell__field settings-shell__field--color", role: "group", "aria-label": "Accent color", children: [
169
- /* @__PURE__ */ f("div", { className: "settings-shell__toggle-row", children: [
170
- /* @__PURE__ */ a("label", { htmlFor: n, className: "settings-shell__toggle-label", children: "Override default accent" }),
171
- /* @__PURE__ */ a(
172
- "input",
173
- {
174
- id: n,
175
- type: "checkbox",
176
- role: "switch",
177
- "aria-label": "Enable accent override",
178
- "aria-checked": r,
179
- checked: r,
180
- onChange: (i) => l?.(i.target.checked),
181
- className: "settings-shell__toggle"
182
- }
183
- )
184
- ] }),
185
- r ? /* @__PURE__ */ f(V, { children: [
186
- /* @__PURE__ */ a("span", { className: "settings-shell__label", children: "Accent color" }),
187
- /* @__PURE__ */ a("div", { className: "settings-shell__swatch-row", children: qe.map((i) => {
188
- const u = e === i;
189
- return /* @__PURE__ */ a(
190
- "button",
191
- {
192
- type: "button",
193
- "aria-pressed": u,
194
- "aria-label": `Accent ${i}`,
195
- className: `settings-shell__swatch${u ? " settings-shell__swatch--active" : ""}`,
196
- style: { backgroundColor: i },
197
- onClick: () => t(i)
198
- },
199
- i
200
- );
201
- }) })
202
- ] }) : /* @__PURE__ */ a("p", { className: "settings-shell__help", "aria-live": "polite", children: "Off — the card uses its default accent. Turn on to override." })
203
- ] });
204
- }
205
- const We = ["Orders", "Quota", "Unassigned"], Ge = ["threshold", "timeframe", "color"];
109
+ const Ve = ["Orders", "Quota", "Unassigned"], Ke = ["timeframe"];
206
110
  function Pt({
207
111
  isOpen: e,
208
112
  cardSpan: t,
209
113
  cardLabel: r = "Metric",
210
114
  cardValue: l = "—",
211
115
  previewSlot: n,
212
- dimensions: i = Ge,
116
+ dimensions: c = Ke,
213
117
  initialTab: u,
214
118
  initialValues: o
215
119
  }) {
216
- const s = M(), c = s?.state.activeTrigger, d = c?.kind === "card-overflow" ? c.cardId : null, m = he(), h = c?.span, b = t ?? h ?? 1, p = i[0] ?? "threshold", [_, T] = H.useState(u ?? p);
120
+ const s = D(), i = s?.state.activeTrigger, d = i?.kind === "card-overflow" ? i.cardId : null, m = X(), h = i?.span, g = t ?? h ?? 1, p = c[0] ?? "timeframe", [v, w] = H.useState(u ?? p);
217
121
  H.useEffect(() => {
218
- i.includes(_) || T(p);
219
- }, [i, _, p]);
220
- const y = d != null ? s?.state?.bufferByCard?.[d]?.changes ?? {} : {}, N = typeof y.threshold == "number" ? y.threshold : typeof o?.threshold == "number" ? o.threshold : 80, I = typeof y.timeframe == "number" ? y.timeframe : typeof o?.timeframe == "number" ? o.timeframe : 30, R = typeof y.accent == "string" ? y.accent : typeof o?.accent == "string" ? o.accent : null, $ = Array.isArray(y.slots) ? y.slots : Array.isArray(o?.slots) ? o.slots : We, S = typeof y.thresholdEnabled == "boolean" ? y.thresholdEnabled : typeof o?.thresholdEnabled == "boolean" ? o.thresholdEnabled : !1, D = typeof y.accentEnabled == "boolean" ? y.accentEnabled : typeof o?.accentEnabled == "boolean" ? o.accentEnabled : !1, q = (P) => {
221
- d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "threshold", value: Number(P.target.value) });
222
- }, Q = (P) => {
223
- d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "timeframe", value: Number(P.target.value) });
224
- }, oe = (P) => {
225
- d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "accent", value: P });
226
- }, W = (P) => {
227
- d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "slots", value: P });
228
- }, G = (P) => {
229
- d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "thresholdEnabled", value: P });
230
- }, g = (P) => {
231
- d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "accentEnabled", value: P });
232
- }, C = s?.state.isDirty ?? !1, w = d;
122
+ c.includes(v) || w(p);
123
+ }, [c, v, p]);
124
+ const S = d != null ? s?.state?.bufferByCard?.[d]?.changes ?? {} : {}, C = typeof S.timeframe == "number" ? S.timeframe : typeof o?.timeframe == "number" ? o.timeframe : 30, O = Array.isArray(S.slots) ? S.slots : Array.isArray(o?.slots) ? o.slots : Ve, I = ($) => {
125
+ d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "timeframe", value: Number($.target.value) });
126
+ }, R = ($) => {
127
+ d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "slots", value: $ });
128
+ }, N = s?.state.isDirty ?? !1, E = d;
233
129
  return /* @__PURE__ */ a(
234
- Y,
130
+ z,
235
131
  {
236
132
  variant: "with-stage",
237
133
  onClose: () => s?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }),
238
- stage: /* @__PURE__ */ a(Ue, { span: b, rotating: !m, children: n ?? /* @__PURE__ */ f(V, { children: [
134
+ stage: /* @__PURE__ */ a(he, { span: g, rotating: !m, children: n ?? /* @__PURE__ */ b(ue, { children: [
239
135
  /* @__PURE__ */ a("div", { style: { fontSize: 9, textTransform: "uppercase", letterSpacing: "0.06em", color: "#9ca3af", marginBottom: 6 }, children: r }),
240
136
  /* @__PURE__ */ a("div", { style: { fontSize: 22, fontWeight: 700, color: "#111827", lineHeight: 1 }, children: l })
241
137
  ] }) }),
242
138
  navigation: /* @__PURE__ */ a(
243
139
  we,
244
140
  {
245
- dimensions: i,
246
- activeTab: _,
247
- onSelect: T,
141
+ dimensions: c,
142
+ activeTab: v,
143
+ onSelect: w,
248
144
  reduced: m
249
145
  }
250
146
  ),
@@ -255,9 +151,9 @@ function Pt({
255
151
  id: "btn-reset",
256
152
  type: "button",
257
153
  className: "gloss-panel-chrome-v2__footer-btn",
258
- disabled: !C,
154
+ disabled: !N,
259
155
  onClick: () => {
260
- w != null && s?.dispatch({ type: "CLEAR_BUFFER", cardId: w });
156
+ E != null && s?.dispatch({ type: "CLEAR_BUFFER", cardId: E });
261
157
  },
262
158
  children: "Reset"
263
159
  }
@@ -268,55 +164,66 @@ function Pt({
268
164
  id: "settings-apply",
269
165
  type: "button",
270
166
  className: "gloss-panel-chrome-v2__footer-btn gloss-panel-chrome-v2__footer-btn--primary",
271
- disabled: !C,
167
+ disabled: !N,
272
168
  onClick: () => s?.dispatch({ type: "CLOSE_PANEL", reason: "apply-button" }),
273
169
  children: "Apply"
274
170
  }
275
171
  )
276
172
  },
277
- children: /* @__PURE__ */ a("div", { className: "settings-shell", "data-shell": "settings", "aria-hidden": !e, children: /* @__PURE__ */ f(
173
+ children: /* @__PURE__ */ a("div", { className: "settings-shell", "data-shell": "settings", "aria-hidden": !e, children: /* @__PURE__ */ b(
278
174
  "div",
279
175
  {
280
176
  role: "tabpanel",
281
- id: `settings-tabpanel-${_}`,
177
+ id: `settings-tabpanel-${v}`,
282
178
  "aria-label": "Settings dimension controls",
283
179
  tabIndex: 0,
284
180
  className: "settings-shell__tabpanel",
285
181
  children: [
286
- _ === "threshold" && /* @__PURE__ */ a(
287
- Be,
288
- {
289
- value: N,
290
- onChange: q,
291
- enabled: S,
292
- onToggleEnabled: G
293
- }
294
- ),
295
- _ === "timeframe" && /* @__PURE__ */ a(Ye, { value: I, onChange: Q }),
296
- _ === "slots" && /* @__PURE__ */ a(Ke, { value: $, onChange: W }),
297
- _ === "color" && /* @__PURE__ */ a(
298
- Qe,
299
- {
300
- value: R,
301
- onSelect: oe,
302
- enabled: D,
303
- onToggleEnabled: g
304
- }
305
- )
182
+ v === "timeframe" && /* @__PURE__ */ a(Be, { value: C, onChange: I }),
183
+ v === "slots" && /* @__PURE__ */ a(Ye, { value: O, onChange: R })
306
184
  ]
307
185
  }
308
186
  ) })
309
187
  }
310
188
  );
311
189
  }
312
- const be = [
190
+ function qe({
191
+ isOpen: e,
192
+ cardSpan: t,
193
+ previewSlot: r,
194
+ metricInfo: l
195
+ }) {
196
+ const n = D(), c = n?.state.activeTrigger, u = X(), o = c?.span;
197
+ return /* @__PURE__ */ a(
198
+ z,
199
+ {
200
+ variant: "with-stage",
201
+ onClose: () => n?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }),
202
+ stage: /* @__PURE__ */ a(he, { span: t ?? o ?? 1, rotating: !u, children: r }),
203
+ children: /* @__PURE__ */ b(
204
+ "div",
205
+ {
206
+ className: "metric-info-shell",
207
+ "data-shell": "metric-info",
208
+ "aria-hidden": !e,
209
+ children: [
210
+ /* @__PURE__ */ a("h2", { className: "metric-info-shell__title", children: l.title }),
211
+ /* @__PURE__ */ a("p", { className: "metric-info-shell__description", children: l.description })
212
+ ]
213
+ }
214
+ )
215
+ }
216
+ );
217
+ }
218
+ qe.displayName = "MetricInfoShell";
219
+ const fe = [
313
220
  "Revenue",
314
221
  "Order flow",
315
222
  "Rep performance",
316
223
  "Brand portfolio",
317
224
  "Account coverage",
318
225
  "Commission"
319
- ], ye = "Revenue", ve = {
226
+ ], ge = "Revenue", ye = {
320
227
  Revenue: {
321
228
  headline: "Are we hitting our number?",
322
229
  helper: "Top-line sales, growth, average order value, and pace-to-plan signals."
@@ -341,7 +248,7 @@ const be = [
341
248
  headline: "What's our commission rate?",
342
249
  helper: "Outstanding balances, aging buckets, and effective commission yield."
343
250
  }
344
- }, _e = {
251
+ }, be = {
345
252
  Revenue: {
346
253
  primary: [
347
254
  {
@@ -626,46 +533,46 @@ const be = [
626
533
  ]
627
534
  }
628
535
  };
629
- function Ce({
536
+ function ve({
630
537
  lenses: e,
631
538
  activeLens: t,
632
539
  onLensChange: r,
633
540
  variant: l = "pills",
634
- lensMeta: n = ve
541
+ lensMeta: n = ye
635
542
  }) {
636
- return l === "pills" ? /* @__PURE__ */ a("div", { className: "cat-pills-wrap", children: /* @__PURE__ */ a("div", { className: "cat-pills", role: "tablist", "aria-label": "Metric lenses", children: e.map((i) => {
637
- const u = i === t, o = n[i], s = ["cat-pill"];
638
- return u && s.push("active"), /* @__PURE__ */ f(
543
+ return l === "pills" ? /* @__PURE__ */ a("div", { className: "cat-pills-wrap", children: /* @__PURE__ */ a("div", { className: "cat-pills", role: "tablist", "aria-label": "Metric lenses", children: e.map((c) => {
544
+ const u = c === t, o = n[c], s = ["cat-pill"];
545
+ return u && s.push("active"), /* @__PURE__ */ b(
639
546
  "button",
640
547
  {
641
548
  type: "button",
642
549
  role: "tab",
643
550
  "aria-selected": u,
644
551
  className: s.join(" "),
645
- "data-lens": i,
552
+ "data-lens": c,
646
553
  onClick: () => {
647
- u || r(i);
554
+ u || r(c);
648
555
  },
649
556
  children: [
650
- i,
557
+ c,
651
558
  o?.beta && /* @__PURE__ */ a("span", { className: "cat-pill-beta", "aria-label": "Beta", children: "BETA" })
652
559
  ]
653
560
  },
654
- i
561
+ c
655
562
  );
656
- }) }) }) : /* @__PURE__ */ a(je, { lenses: e, activeLens: t, onLensChange: r });
563
+ }) }) }) : /* @__PURE__ */ a(Qe, { lenses: e, activeLens: t, onLensChange: r });
657
564
  }
658
- function je({
565
+ function Qe({
659
566
  lenses: e,
660
567
  activeLens: t,
661
568
  onLensChange: r
662
569
  }) {
663
- const [l, n] = A(!1), i = K(null), u = () => {
664
- i.current != null && (window.clearTimeout(i.current), i.current = null);
570
+ const [l, n] = x(!1), c = Y(null), u = () => {
571
+ c.current != null && (window.clearTimeout(c.current), c.current = null);
665
572
  }, o = () => {
666
- u(), i.current = window.setTimeout(() => n(!1), 100);
667
- }, s = e.filter((c) => c !== t);
668
- return /* @__PURE__ */ a("div", { className: "cat-segmented-wrap", children: /* @__PURE__ */ f("div", { className: "cat-segmented", children: [
573
+ u(), c.current = window.setTimeout(() => n(!1), 100);
574
+ }, s = e.filter((i) => i !== t);
575
+ return /* @__PURE__ */ a("div", { className: "cat-segmented-wrap", children: /* @__PURE__ */ b("div", { className: "cat-segmented", children: [
669
576
  /* @__PURE__ */ a(
670
577
  "button",
671
578
  {
@@ -676,7 +583,7 @@ function je({
676
583
  children: t
677
584
  }
678
585
  ),
679
- /* @__PURE__ */ f(
586
+ /* @__PURE__ */ b(
680
587
  "div",
681
588
  {
682
589
  className: "cat-seg-more",
@@ -693,18 +600,18 @@ function je({
693
600
  role: "menu",
694
601
  onMouseEnter: u,
695
602
  onMouseLeave: o,
696
- children: s.map((c) => /* @__PURE__ */ a(
603
+ children: s.map((i) => /* @__PURE__ */ a(
697
604
  "button",
698
605
  {
699
606
  type: "button",
700
- "data-lens": c,
607
+ "data-lens": i,
701
608
  role: "menuitem",
702
609
  onClick: () => {
703
- r(c), n(!1);
610
+ r(i), n(!1);
704
611
  },
705
- children: c
612
+ children: i
706
613
  },
707
- c
614
+ i
708
615
  ))
709
616
  }
710
617
  )
@@ -713,14 +620,14 @@ function je({
713
620
  )
714
621
  ] }) });
715
622
  }
716
- function te({ tiles: e, selectedTileId: t, onSelectTile: r, renderTile: l }) {
623
+ function j({ tiles: e, selectedTileId: t, onSelectTile: r, renderTile: l }) {
717
624
  return /* @__PURE__ */ a("div", { className: "cat-tiles", children: e.map((n) => {
718
- const i = n.id === t, u = n.subStats != null && n.subStats.length > 0;
625
+ const c = n.id === t, u = n.subStats != null && n.subStats.length > 0;
719
626
  let o = null;
720
627
  u ? n.subStats.length === 5 ? o = "span-5" : n.subStats.length === 3 ? o = "span-3" : o = "span-2" : n.stack === !0 && (o = "span-2");
721
628
  const s = ["cat-tile"];
722
- o && s.push(o), i && s.push("selected"), n.isNew && s.push("is-new"), n.startHere && s.push("start-here"), n.donut && s.push("has-donut");
723
- const c = 1;
629
+ o && s.push(o), c && s.push("selected"), n.isNew && s.push("is-new"), n.startHere && s.push("start-here"), n.donut && s.push("has-donut");
630
+ const i = 1;
724
631
  let d = 0.7;
725
632
  if (n.donut) {
726
633
  const m = /([\d.]+)\s*%/.exec(n.value);
@@ -729,17 +636,17 @@ function te({ tiles: e, selectedTileId: t, onSelectTile: r, renderTile: l }) {
729
636
  Number.isFinite(h) && (d = Math.max(0, Math.min(1, h / 100)));
730
637
  }
731
638
  }
732
- return /* @__PURE__ */ f(
639
+ return /* @__PURE__ */ b(
733
640
  "button",
734
641
  {
735
642
  type: "button",
736
643
  className: s.join(" "),
737
644
  "data-metric": n.id,
738
645
  "data-desc": n.desc,
739
- "data-col-span": String(c),
646
+ "data-col-span": String(i),
740
647
  "data-donut": n.donut ? "true" : void 0,
741
648
  "data-accent": n.accent,
742
- "aria-pressed": i,
649
+ "aria-pressed": c,
743
650
  onClick: () => r(n.id, n.desc),
744
651
  style: n.accent ? { "--cat-tile-accent": n.accent } : void 0,
745
652
  children: [
@@ -752,7 +659,7 @@ function te({ tiles: e, selectedTileId: t, onSelectTile: r, renderTile: l }) {
752
659
  style: { pointerEvents: "none", width: "100%", height: "100%" },
753
660
  "aria-hidden": "true",
754
661
  children: n.donut ? /* @__PURE__ */ a(
755
- ce,
662
+ oe,
756
663
  {
757
664
  variant: "donut",
758
665
  label: n.label,
@@ -760,15 +667,15 @@ function te({ tiles: e, selectedTileId: t, onSelectTile: r, renderTile: l }) {
760
667
  donutValue: d,
761
668
  donutMax: 1,
762
669
  accentColor: n.accent,
763
- colSpan: c
670
+ colSpan: i
764
671
  }
765
672
  ) : /* @__PURE__ */ a(
766
- ce,
673
+ oe,
767
674
  {
768
675
  variant: "standard",
769
676
  label: n.label,
770
677
  value: n.value,
771
- colSpan: c
678
+ colSpan: i
772
679
  }
773
680
  )
774
681
  }
@@ -781,17 +688,17 @@ function te({ tiles: e, selectedTileId: t, onSelectTile: r, renderTile: l }) {
781
688
  );
782
689
  }) });
783
690
  }
784
- const ae = fe(null);
785
- function se() {
786
- return ge(ae);
691
+ const J = pe(null);
692
+ function ee() {
693
+ return me(J);
787
694
  }
788
- function At({ mode: e, dispatch: t }) {
789
- const r = se();
695
+ function wt({ mode: e, dispatch: t }) {
696
+ const r = ee();
790
697
  if (r == null && e == null) return null;
791
- const l = r?.mode ?? e ?? "add", n = r?.selectedTileId ?? null, i = r?.description ?? null, u = n == null;
792
- return /* @__PURE__ */ f("div", { className: "panel-footer catalog", children: [
793
- /* @__PURE__ */ a("div", { className: "cat-description", id: "cat-desc", children: i ?? /* @__PURE__ */ a("em", { children: "Tap a metric to see its description" }) }),
794
- /* @__PURE__ */ f("div", { style: { display: "flex", padding: "10px 14px", gap: 8 }, children: [
698
+ const l = r?.mode ?? e ?? "add", n = r?.selectedTileId ?? null, c = r?.description ?? null, u = n == null;
699
+ return /* @__PURE__ */ b("div", { className: "panel-footer catalog", children: [
700
+ /* @__PURE__ */ a("div", { className: "cat-description", id: "cat-desc", children: c ?? /* @__PURE__ */ a("em", { children: "Tap a metric to see its description" }) }),
701
+ /* @__PURE__ */ b("div", { style: { display: "flex", padding: "10px 14px", gap: 8 }, children: [
795
702
  /* @__PURE__ */ a("div", { className: "spacer", style: { flex: 1 } }),
796
703
  /* @__PURE__ */ a(
797
704
  "button",
@@ -828,7 +735,7 @@ function At({ mode: e, dispatch: t }) {
828
735
  ] })
829
736
  ] });
830
737
  }
831
- function de(e, t) {
738
+ function le(e, t) {
832
739
  if (t.length === 0) return !0;
833
740
  const r = t.toLowerCase();
834
741
  if (e.label.toLowerCase().includes(r) || e.value.toLowerCase().includes(r)) return !0;
@@ -838,53 +745,53 @@ function de(e, t) {
838
745
  }
839
746
  return !1;
840
747
  }
841
- function Ze() {
842
- const t = se()?.description ?? null;
748
+ function We() {
749
+ const t = ee()?.description ?? null;
843
750
  return t == null ? /* @__PURE__ */ a("span", { style: { fontStyle: "italic" }, children: "Tap a metric to see its description" }) : /* @__PURE__ */ a("span", { children: t });
844
751
  }
845
- function xt({
752
+ function Tt({
846
753
  isOpen: e,
847
- lenses: t = be,
848
- defaultLens: r = ye,
849
- tilesByLens: l = _e,
850
- lensMeta: n = ve,
851
- renderTile: i,
754
+ lenses: t = fe,
755
+ defaultLens: r = ge,
756
+ tilesByLens: l = be,
757
+ lensMeta: n = ye,
758
+ renderTile: c,
852
759
  onAdd: u
853
760
  }) {
854
- const o = M(), [s, c] = A(r), [d, m] = A(null), [h, b] = A(null), [p, _] = A(""), T = l[s] ?? { primary: [] }, E = n[s], y = le(
855
- () => T.primary.filter((S) => de(S, p)),
856
- [T.primary, p]
857
- ), N = le(
858
- () => (T.secondary ?? []).filter((S) => de(S, p)),
859
- [T.secondary, p]
860
- ), I = () => {
761
+ const o = D(), [s, i] = x(r), [d, m] = x(null), [h, g] = x(null), [p, v] = x(""), w = l[s] ?? { primary: [] }, _ = n[s], S = se(
762
+ () => w.primary.filter((N) => le(N, p)),
763
+ [w.primary, p]
764
+ ), C = se(
765
+ () => (w.secondary ?? []).filter((N) => le(N, p)),
766
+ [w.secondary, p]
767
+ ), O = () => {
861
768
  d != null && u?.(d), o?.dispatch({ type: "CLOSE_PANEL", reason: "apply-button" });
862
- }, R = () => o?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }), $ = d == null;
769
+ }, I = () => o?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }), R = d == null;
863
770
  return /* @__PURE__ */ a(
864
- ae.Provider,
771
+ J.Provider,
865
772
  {
866
773
  value: { mode: "add", selectedTileId: d, description: h },
867
774
  children: /* @__PURE__ */ a(
868
- Y,
775
+ z,
869
776
  {
870
777
  variant: "no-stage",
871
778
  title: "Add a metric",
872
- onClose: R,
779
+ onClose: I,
873
780
  footer: {
874
- left: /* @__PURE__ */ a(Ze, {}),
781
+ left: /* @__PURE__ */ a(We, {}),
875
782
  right: /* @__PURE__ */ a(
876
783
  "button",
877
784
  {
878
785
  id: "btn-cat-add",
879
786
  type: "button",
880
787
  className: "gloss-panel-chrome-v2__footer-btn gloss-panel-chrome-v2__footer-btn--primary",
881
- disabled: $,
882
- onClick: I,
788
+ disabled: R,
789
+ onClick: O,
883
790
  children: "Add metric"
884
791
  }
885
792
  )
886
793
  },
887
- children: /* @__PURE__ */ f("div", { "data-shell": "catalog-add", "aria-hidden": !e, children: [
794
+ children: /* @__PURE__ */ b("div", { "data-shell": "catalog-add", "aria-hidden": !e, children: [
888
795
  /* @__PURE__ */ a("div", { className: "cat-search", children: /* @__PURE__ */ a(
889
796
  "input",
890
797
  {
@@ -893,51 +800,51 @@ function xt({
893
800
  placeholder: "Search metrics",
894
801
  "aria-label": "Search metrics",
895
802
  value: p,
896
- onChange: (S) => _(S.target.value)
803
+ onChange: (N) => v(N.target.value)
897
804
  }
898
805
  ) }),
899
806
  /* @__PURE__ */ a(
900
- Ce,
807
+ ve,
901
808
  {
902
809
  lenses: t,
903
810
  activeLens: s,
904
811
  lensMeta: n,
905
812
  variant: "pills",
906
- onLensChange: (S) => {
907
- c(S), m(null), b(null), _("");
813
+ onLensChange: (N) => {
814
+ i(N), m(null), g(null), v("");
908
815
  }
909
816
  }
910
817
  ),
911
- E && /* @__PURE__ */ f("div", { className: "cat-lens-meta", children: [
912
- /* @__PURE__ */ a("h3", { className: "cat-lens-headline", children: E.headline }),
913
- /* @__PURE__ */ a("p", { className: "cat-lens-helper", children: E.helper })
818
+ _ && /* @__PURE__ */ b("div", { className: "cat-lens-meta", children: [
819
+ /* @__PURE__ */ a("h3", { className: "cat-lens-headline", children: _.headline }),
820
+ /* @__PURE__ */ a("p", { className: "cat-lens-helper", children: _.helper })
914
821
  ] }),
915
822
  /* @__PURE__ */ a(
916
- te,
823
+ j,
917
824
  {
918
- tiles: y,
825
+ tiles: S,
919
826
  selectedTileId: d,
920
- onSelectTile: (S, D) => {
921
- m(S), b(D);
827
+ onSelectTile: (N, E) => {
828
+ m(N), g(E);
922
829
  },
923
- renderTile: i
830
+ renderTile: c
924
831
  }
925
832
  ),
926
- N.length > 0 && /* @__PURE__ */ f("div", { className: "cat-more-in-lens", children: [
833
+ C.length > 0 && /* @__PURE__ */ b("div", { className: "cat-more-in-lens", children: [
927
834
  /* @__PURE__ */ a("div", { className: "cat-more-in-lens__heading", children: "MORE IN THIS LENS" }),
928
835
  /* @__PURE__ */ a(
929
- te,
836
+ j,
930
837
  {
931
- tiles: N,
838
+ tiles: C,
932
839
  selectedTileId: d,
933
- onSelectTile: (S, D) => {
934
- m(S), b(D);
840
+ onSelectTile: (N, E) => {
841
+ m(N), g(E);
935
842
  },
936
- renderTile: i
843
+ renderTile: c
937
844
  }
938
845
  )
939
846
  ] }),
940
- y.length === 0 && N.length === 0 && p.length > 0 && /* @__PURE__ */ f("div", { className: "cat-empty", children: [
847
+ S.length === 0 && C.length === 0 && p.length > 0 && /* @__PURE__ */ b("div", { className: "cat-empty", children: [
941
848
  'No metrics match "',
942
849
  p,
943
850
  '".'
@@ -948,67 +855,67 @@ function xt({
948
855
  }
949
856
  );
950
857
  }
951
- function Xe() {
952
- const t = se()?.description ?? null;
953
- return t == null ? /* @__PURE__ */ a("em", { children: "Tap a metric to see its description" }) : /* @__PURE__ */ a(V, { children: t });
858
+ function Ge() {
859
+ const t = ee()?.description ?? null;
860
+ return t == null ? /* @__PURE__ */ a("em", { children: "Tap a metric to see its description" }) : /* @__PURE__ */ a(ue, { children: t });
954
861
  }
955
- function kt({
862
+ function xt({
956
863
  isOpen: e,
957
864
  replacingLabel: t,
958
- lenses: r = be,
959
- defaultLens: l = ye,
960
- tilesByLens: n = _e,
961
- renderTile: i
865
+ lenses: r = fe,
866
+ defaultLens: l = ge,
867
+ tilesByLens: n = be,
868
+ renderTile: c
962
869
  }) {
963
- const u = M(), [o, s] = A(l), [c, d] = A(null), [m, h] = A(null), b = n[o] ?? { primary: [] }, p = [...b.primary, ...b.secondary ?? []], _ = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "apply-button" }), T = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }), E = c == null;
870
+ const u = D(), [o, s] = x(l), [i, d] = x(null), [m, h] = x(null), g = n[o] ?? { primary: [] }, p = [...g.primary, ...g.secondary ?? []], v = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "apply-button" }), w = () => u?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" }), _ = i == null;
964
871
  return /* @__PURE__ */ a(
965
- ae.Provider,
872
+ J.Provider,
966
873
  {
967
- value: { mode: "replace", selectedTileId: c, description: m },
874
+ value: { mode: "replace", selectedTileId: i, description: m },
968
875
  children: /* @__PURE__ */ a(
969
- Y,
876
+ z,
970
877
  {
971
878
  variant: "no-stage",
972
879
  title: "Replace metric",
973
- onClose: T,
880
+ onClose: w,
974
881
  footer: {
975
- left: /* @__PURE__ */ a(Xe, {}),
882
+ left: /* @__PURE__ */ a(Ge, {}),
976
883
  right: /* @__PURE__ */ a(
977
884
  "button",
978
885
  {
979
886
  id: "btn-cat-replace",
980
887
  type: "button",
981
888
  className: "gloss-panel-chrome-v2__footer-btn gloss-panel-chrome-v2__footer-btn--primary",
982
- disabled: E,
983
- onClick: _,
889
+ disabled: _,
890
+ onClick: v,
984
891
  children: "Replace metric"
985
892
  }
986
893
  )
987
894
  },
988
- children: /* @__PURE__ */ f("div", { "data-shell": "catalog-replace", "aria-hidden": !e, children: [
989
- t && /* @__PURE__ */ f("p", { className: "cat-subtitle", children: [
895
+ children: /* @__PURE__ */ b("div", { "data-shell": "catalog-replace", "aria-hidden": !e, children: [
896
+ t && /* @__PURE__ */ b("p", { className: "cat-subtitle", children: [
990
897
  "replacing ",
991
898
  t
992
899
  ] }),
993
900
  /* @__PURE__ */ a(
994
- Ce,
901
+ ve,
995
902
  {
996
903
  lenses: r,
997
904
  activeLens: o,
998
- onLensChange: (y) => {
999
- s(y), d(null), h(null);
905
+ onLensChange: (S) => {
906
+ s(S), d(null), h(null);
1000
907
  }
1001
908
  }
1002
909
  ),
1003
910
  /* @__PURE__ */ a(
1004
- te,
911
+ j,
1005
912
  {
1006
913
  tiles: p,
1007
- selectedTileId: c,
1008
- onSelectTile: (y, N) => {
1009
- d(y), h(N);
914
+ selectedTileId: i,
915
+ onSelectTile: (S, C) => {
916
+ d(S), h(C);
1010
917
  },
1011
- renderTile: i
918
+ renderTile: c
1012
919
  }
1013
920
  )
1014
921
  ] })
@@ -1017,13 +924,13 @@ function kt({
1017
924
  }
1018
925
  );
1019
926
  }
1020
- const Ne = fe(null);
1021
- function Se() {
1022
- return ge(Ne);
927
+ const Ce = pe(null);
928
+ function Ne() {
929
+ return me(Ce);
1023
930
  }
1024
- function Je(e = {}) {
1025
- const t = Se(), r = t?.createPage, l = t?.setPages;
1026
- return /* @__PURE__ */ f(
931
+ function je(e = {}) {
932
+ const t = Ne(), r = t?.createPage, l = t?.setPages;
933
+ return /* @__PURE__ */ b(
1027
934
  "div",
1028
935
  {
1029
936
  className: "panel-footer pm",
@@ -1053,28 +960,28 @@ function Je(e = {}) {
1053
960
  }
1054
961
  );
1055
962
  }
1056
- function ue({ page: e, onRename: t, onKebab: r, onDragStart: l, onSwitchPage: n }) {
1057
- const i = Se(), [u, o] = A(!1), s = K(null);
963
+ function ie({ page: e, onRename: t, onKebab: r, onDragStart: l, onSwitchPage: n }) {
964
+ const c = Ne(), [u, o] = x(!1), s = Y(null);
1058
965
  F(() => {
1059
966
  if (!u) return;
1060
- const p = (_) => {
1061
- s.current && (s.current.contains(_.target) || o(!1));
967
+ const p = (v) => {
968
+ s.current && (s.current.contains(v.target) || o(!1));
1062
969
  };
1063
970
  return document.addEventListener("mousedown", p, !0), () => document.removeEventListener("mousedown", p, !0);
1064
971
  }, [u]);
1065
- const c = () => {
972
+ const i = () => {
1066
973
  if (o(!1), t) return t(e.id);
1067
- if (!i?.renamePage) return;
974
+ if (!c?.renamePage) return;
1068
975
  const p = window.prompt("Rename page", e.name);
1069
- p != null && p.trim().length > 0 && i.renamePage(e.id, p.trim());
976
+ p != null && p.trim().length > 0 && c.renamePage(e.id, p.trim());
1070
977
  }, d = () => {
1071
- o(!1), i?.duplicatePage?.(e.id);
978
+ o(!1), c?.duplicatePage?.(e.id);
1072
979
  }, m = () => {
1073
- o(!1), i?.deletePage?.(e.id);
980
+ o(!1), c?.deletePage?.(e.id);
1074
981
  }, h = (p) => {
1075
982
  p.stopPropagation(), n && !e.active && n(e.id);
1076
- }, b = ["pm-row"];
1077
- return e.active && b.push("active"), /* @__PURE__ */ f("div", { ref: s, className: b.join(" "), "data-page-id": e.id, role: "listitem", children: [
983
+ }, g = ["pm-row"];
984
+ return e.active && g.push("active"), /* @__PURE__ */ b("div", { ref: s, className: g.join(" "), "data-page-id": e.id, role: "listitem", children: [
1078
985
  /* @__PURE__ */ a(
1079
986
  "div",
1080
987
  {
@@ -1110,12 +1017,12 @@ function ue({ page: e, onRename: t, onKebab: r, onDragStart: l, onSwitchPage: n
1110
1017
  onMouseDown: (p) => p.stopPropagation(),
1111
1018
  onClick: (p) => {
1112
1019
  if (p.stopPropagation(), r) return r(e.id);
1113
- o((_) => !_);
1020
+ o((v) => !v);
1114
1021
  },
1115
1022
  children: "⋯"
1116
1023
  }
1117
1024
  ),
1118
- u && /* @__PURE__ */ f(
1025
+ u && /* @__PURE__ */ b(
1119
1026
  "div",
1120
1027
  {
1121
1028
  className: "pm-kebab-menu",
@@ -1124,7 +1031,7 @@ function ue({ page: e, onRename: t, onKebab: r, onDragStart: l, onSwitchPage: n
1124
1031
  onPointerDown: (p) => p.stopPropagation(),
1125
1032
  onMouseDown: (p) => p.stopPropagation(),
1126
1033
  children: [
1127
- /* @__PURE__ */ a("button", { type: "button", role: "menuitem", className: "pm-kebab-menu__item", onClick: c, children: "Rename" }),
1034
+ /* @__PURE__ */ a("button", { type: "button", role: "menuitem", className: "pm-kebab-menu__item", onClick: i, children: "Rename" }),
1128
1035
  /* @__PURE__ */ a("button", { type: "button", role: "menuitem", className: "pm-kebab-menu__item", onClick: d, children: "Duplicate" }),
1129
1036
  /* @__PURE__ */ a(
1130
1037
  "button",
@@ -1141,121 +1048,121 @@ function ue({ page: e, onRename: t, onKebab: r, onDragStart: l, onSwitchPage: n
1141
1048
  )
1142
1049
  ] });
1143
1050
  }
1144
- const et = [
1051
+ const Ze = [
1145
1052
  { id: "p-pipeline", name: "My Pipeline", active: !0 },
1146
1053
  { id: "p-numbers", name: "My Numbers", active: !1 },
1147
1054
  { id: "p-morning", name: "My Morning", active: !1 },
1148
1055
  { id: "p-accounts", name: "My Accounts", active: !1 }
1149
1056
  ];
1150
- function Dt({
1057
+ function Et({
1151
1058
  isOpen: e,
1152
- pages: t = et,
1059
+ pages: t = Ze,
1153
1060
  externalPages: r,
1154
1061
  activePageId: l,
1155
1062
  onRename: n,
1156
- onDuplicate: i,
1063
+ onDuplicate: c,
1157
1064
  onDelete: u,
1158
1065
  onReorder: o,
1159
1066
  onCreatePage: s,
1160
- onSwitchPage: c
1067
+ onSwitchPage: i
1161
1068
  }) {
1162
- const d = M(), [m, h] = A(() => [...t]), b = L((g, C) => {
1163
- h((w) => w.map((x) => x.id === g ? { ...x, name: C } : x));
1164
- }, []), p = L((g) => {
1165
- h((C) => {
1166
- const w = C.find((z) => z.id === g);
1167
- if (!w) return C;
1168
- const x = {
1169
- id: `${w.id}-copy-${Date.now()}`,
1170
- name: `${w.name} copy`,
1069
+ const d = D(), [m, h] = x(() => [...t]), g = L((f, P) => {
1070
+ h((T) => T.map((A) => A.id === f ? { ...A, name: P } : A));
1071
+ }, []), p = L((f) => {
1072
+ h((P) => {
1073
+ const T = P.find((V) => V.id === f);
1074
+ if (!T) return P;
1075
+ const A = {
1076
+ id: `${T.id}-copy-${Date.now()}`,
1077
+ name: `${T.name} copy`,
1171
1078
  active: !1
1172
- }, k = C.findIndex((z) => z.id === g);
1173
- return [...C.slice(0, k + 1), x, ...C.slice(k + 1)];
1079
+ }, k = P.findIndex((V) => V.id === f);
1080
+ return [...P.slice(0, k + 1), A, ...P.slice(k + 1)];
1174
1081
  });
1175
- }, []), _ = L((g) => {
1176
- h((C) => C.filter((w) => w.id !== g));
1177
- }, []), T = L((g) => {
1178
- h((C) => {
1179
- const w = new Map(C.map((k) => [k.id, k])), x = g.map((k) => w.get(k)).filter(Boolean);
1180
- return x.length === C.length ? x : C;
1082
+ }, []), v = L((f) => {
1083
+ h((P) => P.filter((T) => T.id !== f));
1084
+ }, []), w = L((f) => {
1085
+ h((P) => {
1086
+ const T = new Map(P.map((k) => [k.id, k])), A = f.map((k) => T.get(k)).filter(Boolean);
1087
+ return A.length === P.length ? A : P;
1181
1088
  });
1182
- }, []), E = r != null, y = E ? r : m, N = l != null ? y.map((g) => ({ ...g, active: g.id === l })) : [...y], I = n ?? (E ? void 0 : b), R = i ?? (E ? void 0 : p), $ = u ?? (E ? void 0 : _), S = o ?? (E ? void 0 : T), D = L(
1183
- (g) => {
1184
- E || h(g);
1089
+ }, []), _ = r != null, S = _ ? r : m, C = l != null ? S.map((f) => ({ ...f, active: f.id === l })) : [...S], O = n ?? (_ ? void 0 : g), I = c ?? (_ ? void 0 : p), R = u ?? (_ ? void 0 : v), N = o ?? (_ ? void 0 : w), E = L(
1090
+ (f) => {
1091
+ _ || h(f);
1185
1092
  },
1186
- [E]
1187
- ), q = L(
1188
- (g) => {
1189
- const C = g[0]?.items.map((w) => w.id) ?? [];
1190
- C.length > 0 && S && S(C);
1093
+ [_]
1094
+ ), ne = L(
1095
+ (f) => {
1096
+ const P = f[0]?.items.map((T) => T.id) ?? [];
1097
+ P.length > 0 && N && N(P);
1191
1098
  },
1192
- [S]
1193
- ), Q = N.map((g) => `${g.id}:${g.name}`).join("|"), W = S != null && N.length > 1 ? /* @__PURE__ */ a(
1099
+ [N]
1100
+ ), ae = C.map((f) => `${f.id}:${f.name}`).join("|"), $ = N != null && C.length > 1 ? /* @__PURE__ */ a(
1194
1101
  Te,
1195
1102
  {
1196
1103
  zones: [
1197
1104
  {
1198
1105
  zoneKey: "pm-pages",
1199
- items: N.map((g) => ({ ...g, id: g.id }))
1106
+ items: C.map((f) => ({ ...f, id: f.id }))
1200
1107
  }
1201
1108
  ],
1202
- onZoneChange: q,
1203
- renderZone: (g, C, w) => /* @__PURE__ */ a("div", { className: "pm-list", role: "list", children: w }),
1204
- renderItem: (g) => /* @__PURE__ */ a(
1205
- ue,
1109
+ onZoneChange: ne,
1110
+ renderZone: (f, P, T) => /* @__PURE__ */ a("div", { className: "pm-list", role: "list", children: T }),
1111
+ renderItem: (f) => /* @__PURE__ */ a(
1112
+ ie,
1206
1113
  {
1207
- page: g,
1208
- onSwitchPage: c
1114
+ page: f,
1115
+ onSwitchPage: i
1209
1116
  },
1210
- g.id
1117
+ f.id
1211
1118
  )
1212
1119
  },
1213
- Q
1214
- ) : /* @__PURE__ */ a("div", { className: "pm-list", role: "list", children: N.map((g) => /* @__PURE__ */ a(
1215
- ue,
1120
+ ae
1121
+ ) : /* @__PURE__ */ a("div", { className: "pm-list", role: "list", children: C.map((f) => /* @__PURE__ */ a(
1122
+ ie,
1216
1123
  {
1217
- page: g,
1218
- onSwitchPage: c
1124
+ page: f,
1125
+ onSwitchPage: i
1219
1126
  },
1220
- g.id
1221
- )) }), G = () => d?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" });
1127
+ f.id
1128
+ )) }), Pe = () => d?.dispatch({ type: "CLOSE_PANEL", reason: "header-x" });
1222
1129
  return /* @__PURE__ */ a(
1223
- Ne.Provider,
1130
+ Ce.Provider,
1224
1131
  {
1225
1132
  value: {
1226
- pages: N,
1227
- setPages: D,
1228
- renamePage: I,
1229
- duplicatePage: R,
1230
- deletePage: $,
1133
+ pages: C,
1134
+ setPages: E,
1135
+ renamePage: O,
1136
+ duplicatePage: I,
1137
+ deletePage: R,
1231
1138
  // Sprint 2026-05-20 — propagate live create binding for footer.
1232
1139
  createPage: s
1233
1140
  },
1234
1141
  children: /* @__PURE__ */ a(
1235
- Y,
1142
+ z,
1236
1143
  {
1237
1144
  variant: "no-stage",
1238
1145
  title: "Manage pages",
1239
- onClose: G,
1240
- footer: { right: /* @__PURE__ */ a(Je, {}) },
1241
- children: /* @__PURE__ */ a("div", { "data-shell": "page-management", "aria-hidden": !e, children: W })
1146
+ onClose: Pe,
1147
+ footer: { right: /* @__PURE__ */ a(je, {}) },
1148
+ children: /* @__PURE__ */ a("div", { "data-shell": "page-management", "aria-hidden": !e, children: $ })
1242
1149
  }
1243
1150
  )
1244
1151
  }
1245
1152
  );
1246
1153
  }
1247
- const Lt = {
1154
+ const At = {
1248
1155
  SETTINGS: "settings",
1249
1156
  CATALOG_ADD: "catalog-add",
1250
1157
  CATALOG_REPLACE: "catalog-replace",
1251
1158
  PAGE_MGMT: "page-management",
1252
1159
  NOTIFICATION_CENTER: "notification-center"
1253
- }, tt = {
1160
+ }, Xe = {
1254
1161
  position: "fixed",
1255
1162
  inset: 0,
1256
1163
  pointerEvents: "none",
1257
1164
  zIndex: 55
1258
- }, nt = {
1165
+ }, Je = {
1259
1166
  position: "absolute",
1260
1167
  inset: 0,
1261
1168
  zIndex: 1,
@@ -1264,17 +1171,17 @@ const Lt = {
1264
1171
  pointerEvents: "none",
1265
1172
  background: "rgba(0, 0, 0, 0.04)"
1266
1173
  };
1267
- function Mt() {
1268
- const { state: e, dispatch: t, getCloseLog: r } = Pe();
1174
+ function Dt() {
1175
+ const { state: e, dispatch: t, getCloseLog: r } = xe();
1269
1176
  F(() => {
1270
1177
  if (e.activePanelId == null) return;
1271
- function n(i) {
1272
- i.key === "Escape" && t({ type: "CLOSE_PANEL", reason: "escape-key" });
1178
+ function n(c) {
1179
+ c.key === "Escape" && t({ type: "CLOSE_PANEL", reason: "escape-key" });
1273
1180
  }
1274
1181
  return document.addEventListener("keydown", n), () => document.removeEventListener("keydown", n);
1275
1182
  }, [e.activePanelId, t]);
1276
- const l = K(e);
1277
- return xe(() => {
1183
+ const l = Y(e);
1184
+ return Ae(() => {
1278
1185
  l.current = e;
1279
1186
  }), F(() => {
1280
1187
  if (process.env.NODE_ENV === "production") return;
@@ -1286,17 +1193,17 @@ function Mt() {
1286
1193
  }, () => {
1287
1194
  n.__panelsHostHandle?.dispatch === t && delete window.__panelsHostHandle;
1288
1195
  };
1289
- }, [t, r]), /* @__PURE__ */ a("div", { "data-panel-host": "true", style: tt, children: e.activePanelId != null && /* @__PURE__ */ a(
1196
+ }, [t, r]), /* @__PURE__ */ a("div", { "data-panel-host": "true", style: Xe, children: e.activePanelId != null && /* @__PURE__ */ a(
1290
1197
  "div",
1291
1198
  {
1292
1199
  "data-panel-scrim": "true",
1293
- style: nt
1200
+ style: Je
1294
1201
  }
1295
1202
  ) });
1296
1203
  }
1297
- const at = 700;
1298
- function st(e, t) {
1299
- const [r, l] = A(null), n = K(null);
1204
+ const et = 700;
1205
+ function tt(e, t) {
1206
+ const [r, l] = x(null), n = Y(null);
1300
1207
  return F(() => {
1301
1208
  if (e != null) {
1302
1209
  n.current != null && (clearTimeout(n.current), n.current = null), l(null);
@@ -1308,43 +1215,43 @@ function st(e, t) {
1308
1215
  }
1309
1216
  return n.current = setTimeout(() => {
1310
1217
  l(null), n.current = null;
1311
- }, at), () => {
1218
+ }, et), () => {
1312
1219
  n.current != null && (clearTimeout(n.current), n.current = null);
1313
1220
  };
1314
1221
  }, [e, t]), F(() => {
1315
1222
  e != null && l(e);
1316
1223
  }, [e]), e != null ? { panelId: e, isOpen: !0 } : r != null ? { panelId: r, isOpen: !1 } : { panelId: null, isOpen: !1 };
1317
1224
  }
1318
- function Ot({ panelComponents: e, children: t }) {
1319
- const r = M(), l = r?.state.lastClose?.reason === "section-hidden", n = st(r?.state.activePanelId ?? null, l);
1225
+ function kt({ panelComponents: e, children: t }) {
1226
+ const r = D(), l = r?.state.lastClose?.reason === "section-hidden", n = tt(r?.state.activePanelId ?? null, l);
1320
1227
  if (r == null || n.panelId == null) return null;
1321
- const i = n.panelId, u = n.isOpen, o = e?.[i];
1228
+ const c = n.panelId, u = n.isOpen, o = e?.[c];
1322
1229
  return o == null && t == null ? (process.env.NODE_ENV !== "production" && console.error(
1323
1230
  "[panels] No panel component registered for activePanelId:",
1324
- i
1325
- ), null) : /* @__PURE__ */ a(Ae, { isOpen: u, children: o != null ? /* @__PURE__ */ a(o, { isOpen: u }) : t });
1231
+ c
1232
+ ), null) : /* @__PURE__ */ a(Ee, { isOpen: u, children: o != null ? /* @__PURE__ */ a(o, { isOpen: u }) : t });
1326
1233
  }
1327
- function pe(e) {
1234
+ function ce(e) {
1328
1235
  return e === null ? null : e.kind === "manage-pages-action" ? `global-${e.align ?? "left"}` : e.kind === "card-overflow" || e.kind === "empty-cell" ? `section-${e.sectionIndex}` : null;
1329
1236
  }
1330
- const rt = 685, me = 627, ot = "cubic-bezier(0.22, 1, 0.36, 1)", lt = 200;
1331
- function Ee(e, t) {
1237
+ const nt = 685, de = 627, at = "cubic-bezier(0.22, 1, 0.36, 1)", st = 200;
1238
+ function _e(e, t) {
1332
1239
  if (typeof window > "u") return t;
1333
1240
  const r = window.getComputedStyle(document.documentElement).getPropertyValue(e).trim();
1334
1241
  if (!r) return t;
1335
1242
  const l = parseFloat(r);
1336
1243
  return Number.isNaN(l) ? t : r.endsWith("s") && !r.endsWith("ms") ? l * 1e3 : l;
1337
1244
  }
1338
- function it(e, t) {
1245
+ function rt(e, t) {
1339
1246
  return typeof window > "u" ? t : window.getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t;
1340
1247
  }
1341
- function U(e) {
1248
+ function B(e) {
1342
1249
  e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger });
1343
1250
  }
1344
- function ct(e) {
1251
+ function ot(e) {
1345
1252
  const { mountEl: t, chromeEl: r, reducedMotion: l, onAssert: n } = e;
1346
1253
  if (t == null || r == null) {
1347
- U(e), n?.({ branch: "slide-fallback-no-dom", timestamp: Date.now() });
1254
+ B(e), n?.({ branch: "slide-fallback-no-dom", timestamp: Date.now() });
1348
1255
  return;
1349
1256
  }
1350
1257
  if (l) {
@@ -1352,95 +1259,95 @@ function ct(e) {
1352
1259
  return;
1353
1260
  }
1354
1261
  if (typeof r.animate != "function") {
1355
- U(e), n?.({ branch: "slide-no-waapi", timestamp: Date.now() });
1262
+ B(e), n?.({ branch: "slide-no-waapi", timestamp: Date.now() });
1356
1263
  return;
1357
1264
  }
1358
- const i = r.cloneNode(!0);
1359
- i.id = "panel-chrome-frozen", i.style.cssText = "position:absolute;left:8px;right:8px;top:8px;z-index:1;pointer-events:none;", t.appendChild(i), r.style.zIndex = "2", e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger });
1360
- const u = Ee("--panel-open-dur", rt), o = it("--panel-easing", ot), s = r.animate(
1265
+ const c = r.cloneNode(!0);
1266
+ c.id = "panel-chrome-frozen", c.style.cssText = "position:absolute;left:8px;right:8px;top:8px;z-index:1;pointer-events:none;", t.appendChild(c), r.style.zIndex = "2", e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger });
1267
+ const u = _e("--panel-open-dur", nt), o = rt("--panel-easing", at), s = r.animate(
1361
1268
  [{ transform: "translateY(100%)" }, { transform: "translateY(0)" }],
1362
1269
  { duration: u, easing: o, fill: "forwards" }
1363
1270
  );
1364
1271
  s.addEventListener(
1365
1272
  "finish",
1366
1273
  () => {
1367
- i.remove(), r.style.zIndex = "", s.cancel(), n?.({ branch: "slide-complete", frozen: "cleaned", timestamp: Date.now() });
1274
+ c.remove(), r.style.zIndex = "", s.cancel(), n?.({ branch: "slide-complete", frozen: "cleaned", timestamp: Date.now() });
1368
1275
  },
1369
1276
  { once: !0 }
1370
1277
  );
1371
1278
  }
1372
- function dt(e) {
1279
+ function lt(e) {
1373
1280
  const { mountEl: t, onAssert: r } = e;
1374
1281
  if (t == null) {
1375
- e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }), setTimeout(() => U(e), me), r?.({ branch: "handoff-fallback-no-mount", timestamp: Date.now() });
1282
+ e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }), setTimeout(() => B(e), de), r?.({ branch: "handoff-fallback-no-mount", timestamp: Date.now() });
1376
1283
  return;
1377
1284
  }
1378
- const l = Ee("--panel-close-dur", me);
1379
- let n = !1, i = null;
1285
+ const l = _e("--panel-close-dur", de);
1286
+ let n = !1, c = null;
1380
1287
  const u = (s) => {
1381
- s.target !== t || s.propertyName !== "max-height" || n || (n = !0, i != null && clearTimeout(i), t.removeEventListener("transitionend", u), e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger }), r?.({ branch: "handoff-complete", timestamp: Date.now() }));
1288
+ s.target !== t || s.propertyName !== "max-height" || n || (n = !0, c != null && clearTimeout(c), t.removeEventListener("transitionend", u), e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger }), r?.({ branch: "handoff-complete", timestamp: Date.now() }));
1382
1289
  }, o = () => {
1383
1290
  n || (n = !0, t.removeEventListener("transitionend", u), e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger }), r?.({ branch: "handoff-forced", timestamp: Date.now() }));
1384
1291
  };
1385
- t.addEventListener("transitionend", u), e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }), i = setTimeout(o, l + lt);
1292
+ t.addEventListener("transitionend", u), e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }), c = setTimeout(o, l + st);
1386
1293
  }
1387
- function ut(e) {
1294
+ function it(e) {
1388
1295
  const { state: t, onAssert: r } = e;
1389
1296
  if (t.activePanelId && t.isDirty) {
1390
1297
  e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger }), r?.({ branch: "blocked-dirty", timestamp: Date.now() });
1391
1298
  return;
1392
1299
  }
1393
- const l = pe(t.activeTrigger), n = pe(e.trigger);
1300
+ const l = ce(t.activeTrigger), n = ce(e.trigger);
1394
1301
  if (!!t.activePanelId && l != null && l === n) {
1395
- ct(e);
1302
+ ot(e);
1396
1303
  return;
1397
1304
  }
1398
1305
  if (t.activePanelId) {
1399
- dt(e);
1306
+ lt(e);
1400
1307
  return;
1401
1308
  }
1402
- U(e), r?.({ branch: "fresh-open", timestamp: Date.now() });
1309
+ B(e), r?.({ branch: "fresh-open", timestamp: Date.now() });
1403
1310
  }
1404
- function pt() {
1311
+ function ct() {
1405
1312
  if (!(typeof window > "u"))
1406
1313
  return window.__panelsAsserter;
1407
1314
  }
1408
- function It() {
1409
- const e = M(), t = he();
1315
+ function Lt() {
1316
+ const e = D(), t = X();
1410
1317
  return L(
1411
1318
  (r, l) => {
1412
1319
  if (!e)
1413
1320
  return;
1414
- const n = typeof document < "u" ? document.querySelector('[data-mount="panel"]') : null, i = typeof document < "u" ? document.querySelector('[data-chrome="panel"]') : null, u = {
1321
+ const n = typeof document < "u" ? document.querySelector('[data-mount="panel"]') : null, c = typeof document < "u" ? document.querySelector('[data-chrome="panel"]') : null, u = {
1415
1322
  panelId: r,
1416
1323
  trigger: l,
1417
1324
  state: e.state,
1418
1325
  dispatch: e.dispatch,
1419
1326
  mountEl: n,
1420
- chromeEl: i,
1327
+ chromeEl: c,
1421
1328
  reducedMotion: t,
1422
1329
  onAssert: (o) => {
1423
- pt()?.recordTransition?.(o);
1330
+ ct()?.recordTransition?.(o);
1424
1331
  }
1425
1332
  };
1426
- ut(u);
1333
+ it(u);
1427
1334
  },
1428
1335
  [e, t]
1429
1336
  );
1430
1337
  }
1431
- function Rt({ children: e }) {
1338
+ function Mt({ children: e }) {
1432
1339
  return /* @__PURE__ */ a("div", { className: "clone-stage", children: e });
1433
1340
  }
1434
- let B = !1, j = null;
1435
- function ne() {
1341
+ let U = !1, K = null;
1342
+ function Z() {
1436
1343
  const e = [];
1437
1344
  let t = "cleaned";
1438
1345
  document.querySelectorAll("#panel-chrome-frozen").length > 0 && (e.push("#panel-chrome-frozen"), t = "lingering");
1439
1346
  const l = document.querySelectorAll(".gloss-panel-mount");
1440
1347
  l.length > 1 && e.push(`mount-count=${l.length}`);
1441
- const n = l[0] ?? null, i = n ? n.querySelectorAll(".gloss-panel-chrome") : [];
1442
- i.length > 1 && e.push(`chrome-count=${i.length}`);
1443
- const u = i[0] ?? null;
1348
+ const n = l[0] ?? null, c = n ? n.querySelectorAll(".gloss-panel-chrome") : [];
1349
+ c.length > 1 && e.push(`chrome-count=${c.length}`);
1350
+ const u = c[0] ?? null;
1444
1351
  if (u) {
1445
1352
  const d = u.style.zIndex;
1446
1353
  d !== "" && d !== "2" && e.push(`chrome-zindex=${d}`);
@@ -1455,55 +1362,55 @@ function ne() {
1455
1362
  timestamp: Date.now()
1456
1363
  };
1457
1364
  }
1458
- const Z = "8px 8px 0px", X = "64px", J = "inset(0px 0px 60px 0px)", ee = "inset(0px -40px -40px -40px)";
1459
- function v(e, t, r, l, n) {
1365
+ const q = "8px 8px 0px", Q = "64px", W = "inset(0px 0px 60px 0px)", G = "inset(0px -40px -40px -40px)";
1366
+ function y(e, t, r, l, n) {
1460
1367
  return { id: e, constraint: t, expected: r, actual: l, pass: n };
1461
1368
  }
1462
- function O(e) {
1369
+ function M(e) {
1463
1370
  const t = parseInt(e, 10);
1464
1371
  return Number.isFinite(t) ? t : NaN;
1465
1372
  }
1466
- function re() {
1467
- 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]"), n = document.querySelector(".bell-cutout"), i = document.querySelector(".bell-popover"), u = document.querySelector(".gloss-bottom-toolbar");
1373
+ function te() {
1374
+ 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]"), n = document.querySelector(".bell-cutout"), c = document.querySelector(".bell-popover"), u = document.querySelector(".gloss-bottom-toolbar");
1468
1375
  if (!t)
1469
- e.push(v("C1", "mount --reveal-y matches clip-path inset-bottom Npx", "mount present", "absent", !1));
1376
+ e.push(y("C1", "mount --reveal-y matches clip-path inset-bottom Npx", "mount present", "absent", !1));
1470
1377
  else {
1471
- 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 = O(s), b = Number.isFinite(m) && Number.isFinite(h) && m === h;
1378
+ const o = getComputedStyle(t), s = o.getPropertyValue("--reveal-y").trim() || t.style.getPropertyValue("--reveal-y").trim(), i = o.clipPath || t.style.clipPath || "", d = i.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), g = Number.isFinite(m) && Number.isFinite(h) && m === h;
1472
1379
  e.push(
1473
- v(
1380
+ y(
1474
1381
  "C1",
1475
1382
  "mount --reveal-y matches clip-path inset-bottom Npx",
1476
1383
  `inset(0 0 ${h}px 0) === --reveal-y(${h}px)`,
1477
- `--reveal-y=${s || "n/a"} clip-path=${c || "n/a"}`,
1478
- b
1384
+ `--reveal-y=${s || "n/a"} clip-path=${i || "n/a"}`,
1385
+ g
1479
1386
  )
1480
1387
  );
1481
1388
  }
1482
1389
  if (!t)
1483
- e.push(v("C2", "mount padding constant", Z, "absent", !1));
1390
+ e.push(y("C2", "mount padding constant", q, "absent", !1));
1484
1391
  else {
1485
- const o = t.style.padding, s = getComputedStyle(t), c = o || s.padding || "", d = c === Z || c === "8px 8px 0px 8px";
1486
- e.push(v("C2", "mount padding constant", Z, c || "n/a", d));
1392
+ const o = t.style.padding, s = getComputedStyle(t), i = o || s.padding || "", d = i === q || i === "8px 8px 0px 8px";
1393
+ e.push(y("C2", "mount padding constant", q, i || "n/a", d));
1487
1394
  }
1488
1395
  if (!t)
1489
- e.push(v("C3", "mount.bottom resolves to var(--tb-h)=64px", X, "absent", !1));
1396
+ e.push(y("C3", "mount.bottom resolves to var(--tb-h)=64px", Q, "absent", !1));
1490
1397
  else {
1491
- const s = getComputedStyle(t).bottom || t.style.bottom || "", c = s === X;
1492
- e.push(v("C3", "mount.bottom resolves to var(--tb-h)=64px", X, s || "n/a", c));
1398
+ const s = getComputedStyle(t).bottom || t.style.bottom || "", i = s === Q;
1399
+ e.push(y("C3", "mount.bottom resolves to var(--tb-h)=64px", Q, s || "n/a", i));
1493
1400
  }
1494
1401
  if (!r)
1495
- e.push(v("C4", "panel-chrome height formula = (row-h*3)+(row-gap*3)-8px", "formula match", "absent", !1));
1402
+ e.push(y("C4", "panel-chrome height formula = (row-h*3)+(row-gap*3)-8px", "formula match", "absent", !1));
1496
1403
  else {
1497
- const o = getComputedStyle(r), s = O(
1404
+ const o = getComputedStyle(r), s = M(
1498
1405
  o.getPropertyValue("--row-h").trim() || r.style.getPropertyValue("--row-h").trim() || "0"
1499
- ), c = O(
1406
+ ), i = M(
1500
1407
  o.getPropertyValue("--row-gap").trim() || r.style.getPropertyValue("--row-gap").trim() || "0"
1501
- ), d = s * 3 + c * 3 - 8, m = O(o.height || r.style.height || ""), h = Number.isFinite(s) && Number.isFinite(c) && Number.isFinite(m) && Number.isFinite(d) && m === d;
1408
+ ), d = s * 3 + i * 3 - 8, m = M(o.height || r.style.height || ""), h = Number.isFinite(s) && Number.isFinite(i) && Number.isFinite(m) && Number.isFinite(d) && m === d;
1502
1409
  e.push(
1503
- v(
1410
+ y(
1504
1411
  "C4",
1505
1412
  "panel-chrome height formula = (row-h*3)+(row-gap*3)-8px",
1506
- `${d}px (rh=${s} rg=${c})`,
1413
+ `${d}px (rh=${s} rg=${i})`,
1507
1414
  `${m}px`,
1508
1415
  h
1509
1416
  )
@@ -1511,7 +1418,7 @@ function re() {
1511
1418
  }
1512
1419
  if (!l || !r)
1513
1420
  e.push(
1514
- v(
1421
+ y(
1515
1422
  "C5",
1516
1423
  'coordinator perspective + origin "center bottom"; chrome perspective-style flat',
1517
1424
  "present",
@@ -1520,31 +1427,31 @@ function re() {
1520
1427
  )
1521
1428
  );
1522
1429
  else {
1523
- 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";
1430
+ const o = getComputedStyle(l), s = getComputedStyle(r), i = o.perspective || l.style.perspective || "", d = (o.perspectiveOrigin || l.style.perspectiveOrigin || "").trim(), m = s.perspectiveStyle || r.style.perspectiveStyle || "", v = i !== "" && i !== "none" && (d === "center bottom" || d === "50% 100%") && m === "flat";
1524
1431
  e.push(
1525
- v(
1432
+ y(
1526
1433
  "C5",
1527
1434
  'coordinator perspective + origin "center bottom"; chrome perspective-style flat',
1528
1435
  "perspective:not-none, origin:center bottom, chrome-style:flat",
1529
- `perspective=${c} origin=${d} chrome-style=${m}`,
1530
- _
1436
+ `perspective=${i} origin=${d} chrome-style=${m}`,
1437
+ v
1531
1438
  )
1532
1439
  );
1533
1440
  }
1534
1441
  {
1535
1442
  let o = !1, s = "absent";
1536
1443
  try {
1537
- for (const c of Array.from(document.styleSheets)) {
1444
+ for (const i of Array.from(document.styleSheets)) {
1538
1445
  let d = [];
1539
1446
  try {
1540
- d = Array.from(c.cssRules ?? []);
1447
+ d = Array.from(i.cssRules ?? []);
1541
1448
  } catch {
1542
1449
  continue;
1543
1450
  }
1544
1451
  for (const m of d)
1545
1452
  if (m.name === "stage-spin") {
1546
- 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"), T = p?.style.transform ?? "", E = _?.style.transform ?? "", y = /rotateY\(\s*0(?:deg)?\s*\)/;
1547
- o = y.test(T) && y.test(E), s = `0%=${T || "n/a"} 100%=${E || "n/a"}`;
1453
+ const g = Array.from(m.cssRules), p = g.find((C) => C.keyText === "0%" || C.keyText === "from"), v = g.find((C) => C.keyText === "100%" || C.keyText === "to"), w = p?.style.transform ?? "", _ = v?.style.transform ?? "", S = /rotateY\(\s*0(?:deg)?\s*\)/;
1454
+ o = S.test(w) && S.test(_), s = `0%=${w || "n/a"} 100%=${_ || "n/a"}`;
1548
1455
  break;
1549
1456
  }
1550
1457
  if (s !== "absent") break;
@@ -1553,7 +1460,7 @@ function re() {
1553
1460
  s = "inspection-error";
1554
1461
  }
1555
1462
  e.push(
1556
- v(
1463
+ y(
1557
1464
  "C6",
1558
1465
  "@keyframes stage-spin 0% AND 100% anchor at rotateY(0)",
1559
1466
  "both frames rotateY(0)",
@@ -1563,37 +1470,37 @@ function re() {
1563
1470
  );
1564
1471
  }
1565
1472
  {
1566
- 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 = O(c) || parseFloat(c) * (c.endsWith("s") && !c.endsWith("ms") ? 1e3 : 1), h = O(d) || parseFloat(d) * (d.endsWith("s") && !d.endsWith("ms") ? 1e3 : 1), b = Number.isFinite(m) && Number.isFinite(h) && m > h;
1473
+ const o = document.documentElement, s = getComputedStyle(o), i = 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(i) || parseFloat(i) * (i.endsWith("s") && !i.endsWith("ms") ? 1e3 : 1), h = M(d) || parseFloat(d) * (d.endsWith("s") && !d.endsWith("ms") ? 1e3 : 1), g = Number.isFinite(m) && Number.isFinite(h) && m > h;
1567
1474
  e.push(
1568
- v("C7", "--panel-open-dur > --panel-close-dur", "open > close", `open=${c || "n/a"} close=${d || "n/a"}`, b)
1475
+ y("C7", "--panel-open-dur > --panel-close-dur", "open > close", `open=${i || "n/a"} close=${d || "n/a"}`, g)
1569
1476
  );
1570
1477
  }
1571
1478
  if (!n)
1572
- e.push(v("C8", "BellCutout zero computed animation/transition", "no inline timing", "absent", !1));
1479
+ e.push(y("C8", "BellCutout zero computed animation/transition", "no inline timing", "absent", !1));
1573
1480
  else {
1574
- const o = getComputedStyle(n), s = o.animationName || "", c = o.transitionProperty || "", d = (s === "" || s === "none") && (c === "" || c === "none" || c === "all");
1481
+ const o = getComputedStyle(n), s = o.animationName || "", i = o.transitionProperty || "", d = (s === "" || s === "none") && (i === "" || i === "none" || i === "all");
1575
1482
  e.push(
1576
- v(
1483
+ y(
1577
1484
  "C8",
1578
1485
  "BellCutout zero computed animation/transition",
1579
1486
  "animation:none AND transition:none",
1580
- `animation=${s || "n/a"} transition=${c || "n/a"}`,
1487
+ `animation=${s || "n/a"} transition=${i || "n/a"}`,
1581
1488
  d
1582
1489
  )
1583
1490
  );
1584
1491
  }
1585
1492
  if (!t)
1586
- e.push(v("C9", "mount closed-state clipPath", J, "absent", !1));
1493
+ e.push(y("C9", "mount closed-state clipPath", W, "absent", !1));
1587
1494
  else {
1588
- const o = t.style.clipPath, s = getComputedStyle(t), c = o || s.clipPath || "", d = c === J;
1589
- e.push(v("C9", "mount closed-state clipPath", J, c || "n/a", d));
1495
+ const o = t.style.clipPath, s = getComputedStyle(t), i = o || s.clipPath || "", d = i === W;
1496
+ e.push(y("C9", "mount closed-state clipPath", W, i || "n/a", d));
1590
1497
  }
1591
- if (!i)
1592
- e.push(v("C10", "bell-popover parentElement === document.body (open)", "body", "absent", !1));
1498
+ if (!c)
1499
+ e.push(y("C10", "bell-popover parentElement === document.body (open)", "body", "absent", !1));
1593
1500
  else {
1594
- const o = i.parentElement, s = o === document.body;
1501
+ const o = c.parentElement, s = o === document.body;
1595
1502
  e.push(
1596
- v(
1503
+ y(
1597
1504
  "C10",
1598
1505
  "bell-popover parentElement === document.body (open)",
1599
1506
  "body",
@@ -1603,19 +1510,19 @@ function re() {
1603
1510
  );
1604
1511
  }
1605
1512
  if (!l)
1606
- e.push(v("C11", "coordinator overflow === visible", "visible", "absent", !1));
1513
+ e.push(y("C11", "coordinator overflow === visible", "visible", "absent", !1));
1607
1514
  else {
1608
- const s = getComputedStyle(l).overflow || l.style.overflow || "", c = s === "visible";
1609
- e.push(v("C11", "coordinator overflow === visible", "visible", s || "n/a", c));
1515
+ const s = getComputedStyle(l).overflow || l.style.overflow || "", i = s === "visible";
1516
+ e.push(y("C11", "coordinator overflow === visible", "visible", s || "n/a", i));
1610
1517
  }
1611
1518
  if (!u)
1612
- e.push(v("C12", "toolbar clipPath = inset(0 -40 -40 -40)", ee, "absent", !1));
1519
+ e.push(y("C12", "toolbar clipPath = inset(0 -40 -40 -40)", G, "absent", !1));
1613
1520
  else {
1614
- const o = u.style.clipPath, s = getComputedStyle(u), c = o || s.clipPath || "", d = c === ee;
1615
- e.push(v("C12", "toolbar clipPath = inset(0 -40 -40 -40)", ee, c || "n/a", d));
1521
+ const o = u.style.clipPath, s = getComputedStyle(u), i = o || s.clipPath || "", d = i === G;
1522
+ e.push(y("C12", "toolbar clipPath = inset(0 -40 -40 -40)", G, i || "n/a", d));
1616
1523
  }
1617
1524
  return e.push(
1618
- v(
1525
+ y(
1619
1526
  "C13",
1620
1527
  "same-position slide via WAAPI (mid-transition getAnimations().length > 0)",
1621
1528
  "WAAPI driver wired in orchestrator (source-proof)",
@@ -1623,7 +1530,7 @@ function re() {
1623
1530
  "wiring_only"
1624
1531
  )
1625
1532
  ), e.push(
1626
- v(
1533
+ y(
1627
1534
  "C14",
1628
1535
  'cross-position handoff transitionend filtered by propertyName="max-height"',
1629
1536
  "transitionend filter wired in orchestrator (source-proof)",
@@ -1632,11 +1539,11 @@ function re() {
1632
1539
  )
1633
1540
  ), e;
1634
1541
  }
1635
- function mt(e) {
1636
- return re().find((t) => t.id === e);
1542
+ function dt(e) {
1543
+ return te().find((t) => t.id === e);
1637
1544
  }
1638
- function ht() {
1639
- const e = ne();
1545
+ function ut() {
1546
+ const e = Z();
1640
1547
  return { q12: [
1641
1548
  {
1642
1549
  id: "Q12-12",
@@ -1645,83 +1552,84 @@ function ht() {
1645
1552
  actual: `valid=${e.valid} mount=${e.mount} chrome=${e.chrome} frozen=${e.frozen} orphans=[${e.orphans.join(",")}]`,
1646
1553
  pass: e.valid
1647
1554
  }
1648
- ], cc: re() };
1555
+ ], cc: te() };
1649
1556
  }
1650
- function ft() {
1557
+ function pt() {
1651
1558
  return {
1652
- enable: gt,
1653
- disable: bt,
1654
- isEnabled: () => B,
1655
- getLastReport: () => j,
1559
+ enable: mt,
1560
+ disable: ht,
1561
+ isEnabled: () => U,
1562
+ getLastReport: () => K,
1656
1563
  recordTransition: (e) => {
1657
- B && (j = { ...e, ...ne() });
1564
+ U && (K = { ...e, ...Z() });
1658
1565
  },
1659
1566
  assertOnce: () => {
1660
- const e = ne();
1661
- return j = e, e;
1567
+ const e = Z();
1568
+ return K = e, e;
1662
1569
  },
1663
- assertCcOnly: re,
1664
- getCcRowById: mt,
1665
- assertPanelTruths: ht
1570
+ assertCcOnly: te,
1571
+ getCcRowById: dt,
1572
+ assertPanelTruths: ut
1666
1573
  };
1667
1574
  }
1668
- function gt() {
1669
- if (B = !0, typeof window > "u") return;
1670
- window.__panelsAsserter || (window.__panelsAsserter = ft(), console.info(
1575
+ function mt() {
1576
+ if (U = !0, typeof window > "u") return;
1577
+ window.__panelsAsserter || (window.__panelsAsserter = pt(), console.info(
1671
1578
  "[panels] asserter enabled (P3b Q12-12 + P6 W5 cc:C1..C14). Inspect via window.__panelsAsserter."
1672
1579
  ));
1673
1580
  }
1674
- function bt() {
1675
- B = !1;
1581
+ function ht() {
1582
+ U = !1;
1676
1583
  }
1677
1584
  export {
1678
- zt as COMMITS,
1679
- xt as CatalogAddShell,
1680
- At as CatalogFooter,
1681
- kt as CatalogReplaceShell,
1682
- ae as CatalogStateContext,
1683
- Ue as CloneCard,
1684
- Rt as CloneStage,
1685
- ye as MOCK_DEFAULT_LENS,
1686
- be as MOCK_LENSES,
1687
- ve as MOCK_LENS_META,
1688
- et as MOCK_PAGES,
1689
- _e as MOCK_TILES_BY_LENS,
1690
- Ht as NotificationCenterShell,
1691
- Lt as PANEL_IDS,
1692
- Je as PageMgmtFooter,
1693
- Dt as PageMgmtShell,
1694
- Ne as PageMgmtStateContext,
1695
- Ut as PanelBody,
1696
- Y as PanelChromeV2,
1697
- Bt as PanelFooter,
1698
- Tt as PanelFooterMessage,
1699
- Yt as PanelHeader,
1700
- Vt as PanelHost,
1701
- Mt as PanelHostShell,
1702
- Ae as PanelMount,
1703
- Kt as PanelNavigation,
1704
- qt as PanelProvider,
1705
- Ot as PanelSlot,
1706
- Qt as PanelStage,
1585
+ Rt as COMMITS,
1586
+ Tt as CatalogAddShell,
1587
+ wt as CatalogFooter,
1588
+ xt as CatalogReplaceShell,
1589
+ J as CatalogStateContext,
1590
+ he as CloneCard,
1591
+ Mt as CloneStage,
1592
+ ge as MOCK_DEFAULT_LENS,
1593
+ fe as MOCK_LENSES,
1594
+ ye as MOCK_LENS_META,
1595
+ Ze as MOCK_PAGES,
1596
+ be as MOCK_TILES_BY_LENS,
1597
+ qe as MetricInfoShell,
1598
+ $t as NotificationCenterShell,
1599
+ At as PANEL_IDS,
1600
+ je as PageMgmtFooter,
1601
+ Et as PageMgmtShell,
1602
+ Ce as PageMgmtStateContext,
1603
+ Ft as PanelBody,
1604
+ z as PanelChromeV2,
1605
+ zt as PanelFooter,
1606
+ St as PanelFooterMessage,
1607
+ Ht as PanelHeader,
1608
+ Bt as PanelHost,
1609
+ Dt as PanelHostShell,
1610
+ Ee as PanelMount,
1611
+ Ut as PanelNavigation,
1612
+ Yt as PanelProvider,
1613
+ kt as PanelSlot,
1614
+ Vt as PanelStage,
1707
1615
  Pt as SettingsShell,
1708
- re as assertCcOnly,
1709
- ne as assertPanelDomShape,
1710
- ht as assertPanelTruths,
1711
- Wt as deriveSurfaceState,
1712
- bt as disablePanelAsserter,
1713
- gt as enablePanelAsserter,
1714
- mt as getCcRowById,
1715
- Gt as initialState,
1716
- pe as positionKey,
1717
- jt as reducer,
1718
- ut as transitionToPanel,
1719
- se as useCatalogState,
1720
- wt as useEditingCardId,
1721
- Se as usePageMgmtState,
1722
- Pe as usePanelContext,
1723
- M as usePanelContextOptional,
1724
- Zt as usePanelCoordinator,
1725
- he as useReducedMotionPanel,
1726
- It as useTransitionToPanel
1616
+ te as assertCcOnly,
1617
+ Z as assertPanelDomShape,
1618
+ ut as assertPanelTruths,
1619
+ Kt as deriveSurfaceState,
1620
+ ht as disablePanelAsserter,
1621
+ mt as enablePanelAsserter,
1622
+ dt as getCcRowById,
1623
+ qt as initialState,
1624
+ ce as positionKey,
1625
+ Qt as reducer,
1626
+ it as transitionToPanel,
1627
+ ee as useCatalogState,
1628
+ _t as useEditingCardId,
1629
+ Ne as usePageMgmtState,
1630
+ xe as usePanelContext,
1631
+ D as usePanelContextOptional,
1632
+ Wt as usePanelCoordinator,
1633
+ X as useReducedMotionPanel,
1634
+ Lt as useTransitionToPanel
1727
1635
  };