@mt-gloss/ui 0.1.134 → 0.1.136

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