@mt-gloss/ui 0.1.114 → 0.1.116
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/COMMITS-CeuMPpjt.js +812 -0
- package/composites-panels.js +684 -588
- package/index.js +1759 -2027
- package/lib/composites/panels/shells/PageMgmtShell.d.ts +21 -1
- package/lib/composites/panels/shells/internals/PageMgmtFooter.d.ts +4 -0
- package/lib/composites/panels/shells/internals/PageMgmtRow.d.ts +4 -2
- package/package.json +1 -1
- package/ui.css +1 -1
- package/COMMITS-Bzrd0rgy.js +0 -542
package/composites-panels.js
CHANGED
|
@@ -1,33 +1,33 @@
|
|
|
1
|
-
import { u as
|
|
2
|
-
import { C as
|
|
3
|
-
import { jsx as a, jsxs as
|
|
4
|
-
import
|
|
5
|
-
import { useSensors as
|
|
6
|
-
import { sortableKeyboardCoordinates as
|
|
7
|
-
import { CSS as
|
|
8
|
-
import { M as
|
|
9
|
-
function
|
|
10
|
-
const e =
|
|
1
|
+
import { u as U, h as me, g as Ne, S as Se, b as we, j as I, d as M } from "./COMMITS-CeuMPpjt.js";
|
|
2
|
+
import { C as It, c as Mt, P as $t, f as Rt, i as Ft, r as Ut, e as zt } from "./COMMITS-CeuMPpjt.js";
|
|
3
|
+
import { jsx as a, jsxs as f, Fragment as z } from "react/jsx-runtime";
|
|
4
|
+
import $, { useState as E, useRef as H, createContext as he, useContext as fe, useMemo as le, useEffect as L, useCallback as x, useLayoutEffect as Ee } from "react";
|
|
5
|
+
import { useSensors as Pe, useSensor as oe, PointerSensor as xe, KeyboardSensor as Ae, DndContext as ke, closestCenter as De } from "@dnd-kit/core";
|
|
6
|
+
import { sortableKeyboardCoordinates as Oe, SortableContext as Le, horizontalListSortingStrategy as Ie, arrayMove as Me, useSortable as $e } from "@dnd-kit/sortable";
|
|
7
|
+
import { CSS as Re } from "@dnd-kit/utilities";
|
|
8
|
+
import { M as ie } from "./MetricCard-Cyoxhb_S.js";
|
|
9
|
+
function Nt() {
|
|
10
|
+
const e = U();
|
|
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
|
|
15
|
+
function Fe({ children: e }) {
|
|
16
16
|
return /* @__PURE__ */ a("div", { className: "clone-stage", children: e });
|
|
17
17
|
}
|
|
18
|
-
function
|
|
19
|
-
const
|
|
20
|
-
return /* @__PURE__ */ a("div", { className:
|
|
18
|
+
function Ue({ span: e, rotating: t = !0, children: l }) {
|
|
19
|
+
const o = ["clone-card", `span-${e}`, t ? "rotating" : ""].filter(Boolean).join(" "), n = l != null ? "full" : "fallback";
|
|
20
|
+
return /* @__PURE__ */ a("div", { className: o, "data-clone-fidelity": n, children: l });
|
|
21
21
|
}
|
|
22
|
-
function
|
|
22
|
+
function ze({
|
|
23
23
|
value: e,
|
|
24
24
|
onChange: t,
|
|
25
|
-
enabled:
|
|
26
|
-
onToggleEnabled:
|
|
25
|
+
enabled: l = !1,
|
|
26
|
+
onToggleEnabled: o
|
|
27
27
|
}) {
|
|
28
28
|
const n = "settings-threshold-enabled";
|
|
29
|
-
return /* @__PURE__ */
|
|
30
|
-
/* @__PURE__ */
|
|
29
|
+
return /* @__PURE__ */ f("div", { className: "settings-shell__field settings-shell__field--threshold", children: [
|
|
30
|
+
/* @__PURE__ */ f("div", { className: "settings-shell__toggle-row", children: [
|
|
31
31
|
/* @__PURE__ */ a("label", { htmlFor: n, className: "settings-shell__toggle-label", children: "Show threshold indicator" }),
|
|
32
32
|
/* @__PURE__ */ a(
|
|
33
33
|
"input",
|
|
@@ -36,44 +36,44 @@ function Me({
|
|
|
36
36
|
type: "checkbox",
|
|
37
37
|
role: "switch",
|
|
38
38
|
"aria-label": "Enable threshold indicator",
|
|
39
|
-
"aria-checked":
|
|
40
|
-
checked:
|
|
41
|
-
onChange: (
|
|
39
|
+
"aria-checked": l,
|
|
40
|
+
checked: l,
|
|
41
|
+
onChange: (i) => o?.(i.target.checked),
|
|
42
42
|
className: "settings-shell__toggle"
|
|
43
43
|
}
|
|
44
44
|
)
|
|
45
45
|
] }),
|
|
46
|
-
/* @__PURE__ */
|
|
47
|
-
|
|
48
|
-
/* @__PURE__ */
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
46
|
+
l ? /* @__PURE__ */ f(z, { children: [
|
|
47
|
+
/* @__PURE__ */ a("span", { className: "settings-shell__label", "aria-hidden": "true", children: "Alert level (%)" }),
|
|
48
|
+
/* @__PURE__ */ f("div", { className: "settings-shell__slider-row", children: [
|
|
49
|
+
/* @__PURE__ */ a(
|
|
50
|
+
"input",
|
|
51
|
+
{
|
|
52
|
+
id: "settings-threshold-input",
|
|
53
|
+
type: "range",
|
|
54
|
+
min: 0,
|
|
55
|
+
max: 100,
|
|
56
|
+
value: e,
|
|
57
|
+
onChange: t,
|
|
58
|
+
"aria-label": "Threshold",
|
|
59
|
+
"aria-valuenow": e,
|
|
60
|
+
"aria-valuemin": 0,
|
|
61
|
+
"aria-valuemax": 100,
|
|
62
|
+
className: "settings-shell__slider"
|
|
63
|
+
}
|
|
64
|
+
),
|
|
65
|
+
/* @__PURE__ */ f("span", { className: "settings-shell__slider-value", "aria-live": "polite", children: [
|
|
66
|
+
e,
|
|
67
|
+
"%"
|
|
68
|
+
] })
|
|
68
69
|
] })
|
|
69
|
-
] }),
|
|
70
|
-
!r && /* @__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." })
|
|
70
|
+
] }) : /* @__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." })
|
|
71
71
|
] });
|
|
72
72
|
}
|
|
73
|
-
function
|
|
74
|
-
return /* @__PURE__ */
|
|
73
|
+
function He({ value: e, onChange: t }) {
|
|
74
|
+
return /* @__PURE__ */ f("div", { className: "settings-shell__field settings-shell__field--timeframe", children: [
|
|
75
75
|
/* @__PURE__ */ a("span", { className: "settings-shell__label", "aria-hidden": "true", children: "Rolling period (days)" }),
|
|
76
|
-
/* @__PURE__ */
|
|
76
|
+
/* @__PURE__ */ f("div", { className: "settings-shell__slider-row", children: [
|
|
77
77
|
/* @__PURE__ */ a(
|
|
78
78
|
"input",
|
|
79
79
|
{
|
|
@@ -90,25 +90,25 @@ function $e({ value: e, onChange: t }) {
|
|
|
90
90
|
className: "settings-shell__slider"
|
|
91
91
|
}
|
|
92
92
|
),
|
|
93
|
-
/* @__PURE__ */
|
|
93
|
+
/* @__PURE__ */ f("span", { className: "settings-shell__slider-value", "aria-live": "polite", children: [
|
|
94
94
|
e,
|
|
95
95
|
" days"
|
|
96
96
|
] })
|
|
97
97
|
] })
|
|
98
98
|
] });
|
|
99
99
|
}
|
|
100
|
-
function
|
|
101
|
-
const { attributes:
|
|
102
|
-
transform:
|
|
100
|
+
function Ve({ id: e, onRemove: t }) {
|
|
101
|
+
const { attributes: l, listeners: o, setNodeRef: n, transform: i, transition: u, isDragging: r } = $e({ id: e }), s = {
|
|
102
|
+
transform: Re.Transform.toString(i),
|
|
103
103
|
transition: u,
|
|
104
|
-
opacity:
|
|
104
|
+
opacity: r ? 0.6 : 1
|
|
105
105
|
};
|
|
106
|
-
return /* @__PURE__ */
|
|
106
|
+
return /* @__PURE__ */ f(
|
|
107
107
|
"li",
|
|
108
108
|
{
|
|
109
109
|
ref: n,
|
|
110
110
|
style: s,
|
|
111
|
-
className: `settings-shell__slot-pill${
|
|
111
|
+
className: `settings-shell__slot-pill${r ? " settings-shell__slot-pill--dragging" : ""}`,
|
|
112
112
|
children: [
|
|
113
113
|
/* @__PURE__ */ a(
|
|
114
114
|
"button",
|
|
@@ -116,8 +116,8 @@ function Re({ id: e, onRemove: t }) {
|
|
|
116
116
|
type: "button",
|
|
117
117
|
className: "settings-shell__slot-pill__handle",
|
|
118
118
|
"aria-label": `Reorder ${e}`,
|
|
119
|
-
...
|
|
120
|
-
...
|
|
119
|
+
...l,
|
|
120
|
+
...o,
|
|
121
121
|
children: /* @__PURE__ */ a("span", { "aria-hidden": "true", className: "settings-shell__slot-pill__grip", children: "⋮⋮" })
|
|
122
122
|
}
|
|
123
123
|
),
|
|
@@ -136,35 +136,35 @@ function Re({ id: e, onRemove: t }) {
|
|
|
136
136
|
}
|
|
137
137
|
);
|
|
138
138
|
}
|
|
139
|
-
function
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
),
|
|
144
|
-
const { active:
|
|
145
|
-
if (!
|
|
146
|
-
const
|
|
147
|
-
|
|
148
|
-
},
|
|
149
|
-
t(e.filter((
|
|
139
|
+
function Ke({ value: e, onChange: t }) {
|
|
140
|
+
const l = Pe(
|
|
141
|
+
oe(xe, { activationConstraint: { distance: 4 } }),
|
|
142
|
+
oe(Ae, { coordinateGetter: Oe })
|
|
143
|
+
), o = $.useRef(!1), [n, i] = $.useState(!1), u = (s) => {
|
|
144
|
+
const { active: c, over: d } = s;
|
|
145
|
+
if (!d || c.id === d.id) return;
|
|
146
|
+
const p = e.findIndex((b) => b === c.id), h = e.findIndex((b) => b === d.id);
|
|
147
|
+
p === -1 || h === -1 || t(Me([...e], p, h));
|
|
148
|
+
}, r = (s) => {
|
|
149
|
+
o.current || (o.current = !0, i(!0)), t(e.filter((c) => c !== s));
|
|
150
150
|
};
|
|
151
|
-
return /* @__PURE__ */
|
|
151
|
+
return /* @__PURE__ */ f("div", { className: "settings-shell__field settings-shell__field--slots", "aria-label": "Stack slots", children: [
|
|
152
152
|
/* @__PURE__ */ a("span", { className: "settings-shell__label", children: "Stack slots" }),
|
|
153
|
-
/* @__PURE__ */ a(
|
|
154
|
-
e.length === 0 && /* @__PURE__ */ a("p", { className: "settings-shell__help", children: "All slots removed. Apply to commit, or Reset to restore." }),
|
|
153
|
+
/* @__PURE__ */ a(ke, { sensors: l, collisionDetection: De, onDragEnd: u, children: /* @__PURE__ */ a(Le, { items: [...e], strategy: Ie, children: /* @__PURE__ */ a("ul", { className: "settings-shell__slots-list", role: "list", children: e.map((s) => /* @__PURE__ */ a(Ve, { id: s, onRemove: () => r(s) }, s)) }) }) }),
|
|
154
|
+
e.length === 0 && n && /* @__PURE__ */ a("p", { className: "settings-shell__help", children: "All slots removed. Apply to commit, or Reset to restore." }),
|
|
155
155
|
/* @__PURE__ */ a("p", { className: "settings-shell__help settings-shell__help--small", children: "Drag to reorder · click × to remove" })
|
|
156
156
|
] });
|
|
157
157
|
}
|
|
158
|
-
const
|
|
159
|
-
function
|
|
158
|
+
const Ye = ["#1d6fd8", "#10b981", "#f59e0b", "#ef4444", "#8b5cf6"];
|
|
159
|
+
function Be({
|
|
160
160
|
value: e,
|
|
161
161
|
onSelect: t,
|
|
162
|
-
enabled:
|
|
163
|
-
onToggleEnabled:
|
|
162
|
+
enabled: l = !1,
|
|
163
|
+
onToggleEnabled: o
|
|
164
164
|
}) {
|
|
165
165
|
const n = "settings-accent-enabled";
|
|
166
|
-
return /* @__PURE__ */
|
|
167
|
-
/* @__PURE__ */
|
|
166
|
+
return /* @__PURE__ */ f("div", { className: "settings-shell__field settings-shell__field--color", role: "group", "aria-label": "Accent color", children: [
|
|
167
|
+
/* @__PURE__ */ f("div", { className: "settings-shell__toggle-row", children: [
|
|
168
168
|
/* @__PURE__ */ a("label", { htmlFor: n, className: "settings-shell__toggle-label", children: "Override default accent" }),
|
|
169
169
|
/* @__PURE__ */ a(
|
|
170
170
|
"input",
|
|
@@ -173,102 +173,102 @@ function Ve({
|
|
|
173
173
|
type: "checkbox",
|
|
174
174
|
role: "switch",
|
|
175
175
|
"aria-label": "Enable accent override",
|
|
176
|
-
"aria-checked":
|
|
177
|
-
checked:
|
|
178
|
-
onChange: (
|
|
176
|
+
"aria-checked": l,
|
|
177
|
+
checked: l,
|
|
178
|
+
onChange: (i) => o?.(i.target.checked),
|
|
179
179
|
className: "settings-shell__toggle"
|
|
180
180
|
}
|
|
181
181
|
)
|
|
182
182
|
] }),
|
|
183
|
-
/* @__PURE__ */
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
183
|
+
l ? /* @__PURE__ */ f(z, { children: [
|
|
184
|
+
/* @__PURE__ */ a("span", { className: "settings-shell__label", children: "Accent color" }),
|
|
185
|
+
/* @__PURE__ */ a("div", { className: "settings-shell__swatch-row", children: Ye.map((i) => {
|
|
186
|
+
const u = e === i;
|
|
187
|
+
return /* @__PURE__ */ a(
|
|
188
|
+
"button",
|
|
189
|
+
{
|
|
190
|
+
type: "button",
|
|
191
|
+
"aria-pressed": u,
|
|
192
|
+
"aria-label": `Accent ${i}`,
|
|
193
|
+
className: `settings-shell__swatch${u ? " settings-shell__swatch--active" : ""}`,
|
|
194
|
+
style: { backgroundColor: i },
|
|
195
|
+
onClick: () => t(i)
|
|
196
|
+
},
|
|
197
|
+
i
|
|
198
|
+
);
|
|
199
|
+
}) })
|
|
200
|
+
] }) : /* @__PURE__ */ a("p", { className: "settings-shell__help", "aria-live": "polite", children: "Off — the card uses its default accent. Turn on to override." })
|
|
201
201
|
] });
|
|
202
202
|
}
|
|
203
|
-
const
|
|
204
|
-
function
|
|
203
|
+
const We = ["Orders", "Quota", "Unassigned"], Ge = ["threshold", "timeframe", "color"];
|
|
204
|
+
function St({
|
|
205
205
|
isOpen: e,
|
|
206
206
|
cardSpan: t,
|
|
207
|
-
cardLabel:
|
|
208
|
-
cardValue:
|
|
207
|
+
cardLabel: l = "Metric",
|
|
208
|
+
cardValue: o = "—",
|
|
209
209
|
previewSlot: n,
|
|
210
|
-
dimensions:
|
|
210
|
+
dimensions: i = Ge,
|
|
211
211
|
initialTab: u,
|
|
212
|
-
initialValues:
|
|
212
|
+
initialValues: r
|
|
213
213
|
}) {
|
|
214
|
-
const s =
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}, [
|
|
218
|
-
const
|
|
219
|
-
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "threshold", value: Number(
|
|
220
|
-
},
|
|
221
|
-
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "timeframe", value: Number(
|
|
222
|
-
},
|
|
223
|
-
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "accent", value:
|
|
224
|
-
},
|
|
225
|
-
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "slots", value:
|
|
226
|
-
},
|
|
227
|
-
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "thresholdEnabled", value:
|
|
228
|
-
},
|
|
229
|
-
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "accentEnabled", value:
|
|
214
|
+
const s = U(), c = s?.state.activeTrigger, d = c?.kind === "card-overflow" ? c.cardId : null, p = me(), h = c?.span, b = t ?? h ?? 1, m = i[0] ?? "threshold", [v, w] = $.useState(u ?? m);
|
|
215
|
+
$.useEffect(() => {
|
|
216
|
+
i.includes(v) || w(m);
|
|
217
|
+
}, [i, v, m]);
|
|
218
|
+
const T = d != null ? s?.state?.bufferByCard?.[d]?.changes ?? {} : {}, y = typeof T.threshold == "number" ? T.threshold : typeof r?.threshold == "number" ? r.threshold : 80, A = typeof T.timeframe == "number" ? T.timeframe : typeof r?.timeframe == "number" ? r.timeframe : 30, V = typeof T.accent == "string" ? T.accent : typeof r?.accent == "string" ? r.accent : null, K = Array.isArray(T.slots) ? T.slots : Array.isArray(r?.slots) ? r.slots : We, D = typeof T.thresholdEnabled == "boolean" ? T.thresholdEnabled : typeof r?.thresholdEnabled == "boolean" ? r.thresholdEnabled : !1, Y = typeof T.accentEnabled == "boolean" ? T.accentEnabled : typeof r?.accentEnabled == "boolean" ? r.accentEnabled : !1, B = (C) => {
|
|
219
|
+
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "threshold", value: Number(C.target.value) });
|
|
220
|
+
}, W = (C) => {
|
|
221
|
+
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "timeframe", value: Number(C.target.value) });
|
|
222
|
+
}, re = (C) => {
|
|
223
|
+
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "accent", value: C });
|
|
224
|
+
}, G = (C) => {
|
|
225
|
+
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "slots", value: C });
|
|
226
|
+
}, g = (C) => {
|
|
227
|
+
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "thresholdEnabled", value: C });
|
|
228
|
+
}, N = (C) => {
|
|
229
|
+
d == null || s == null || s.dispatch({ type: "SET_BUFFER_VALUE", cardId: d, key: "accentEnabled", value: C });
|
|
230
230
|
};
|
|
231
|
-
return /* @__PURE__ */
|
|
232
|
-
/* @__PURE__ */ a("div", { "aria-hidden": "true", children: /* @__PURE__ */ a(
|
|
233
|
-
/* @__PURE__ */ a("div", { style: { fontSize: 9, textTransform: "uppercase", letterSpacing: "0.06em", color: "#9ca3af", marginBottom: 6 }, children:
|
|
234
|
-
/* @__PURE__ */ a("div", { style: { fontSize: 22, fontWeight: 700, color: "#111827", lineHeight: 1 }, children:
|
|
231
|
+
return /* @__PURE__ */ f("div", { className: "settings-shell", "data-shell": "settings", "aria-hidden": !e, children: [
|
|
232
|
+
/* @__PURE__ */ a("div", { "aria-hidden": "true", children: /* @__PURE__ */ a(Fe, { children: /* @__PURE__ */ a(Ue, { span: b, rotating: !p, children: n ?? /* @__PURE__ */ f(z, { children: [
|
|
233
|
+
/* @__PURE__ */ a("div", { style: { fontSize: 9, textTransform: "uppercase", letterSpacing: "0.06em", color: "#9ca3af", marginBottom: 6 }, children: l }),
|
|
234
|
+
/* @__PURE__ */ a("div", { style: { fontSize: 22, fontWeight: 700, color: "#111827", lineHeight: 1 }, children: o })
|
|
235
235
|
] }) }) }) }),
|
|
236
236
|
/* @__PURE__ */ a(
|
|
237
|
-
|
|
237
|
+
Ne,
|
|
238
238
|
{
|
|
239
|
-
dimensions:
|
|
240
|
-
activeTab:
|
|
241
|
-
onSelect:
|
|
239
|
+
dimensions: i,
|
|
240
|
+
activeTab: v,
|
|
241
|
+
onSelect: w,
|
|
242
242
|
reduced: p
|
|
243
243
|
}
|
|
244
244
|
),
|
|
245
|
-
/* @__PURE__ */
|
|
245
|
+
/* @__PURE__ */ f(
|
|
246
246
|
"div",
|
|
247
247
|
{
|
|
248
248
|
role: "tabpanel",
|
|
249
|
-
id: `settings-tabpanel-${
|
|
249
|
+
id: `settings-tabpanel-${v}`,
|
|
250
250
|
"aria-label": "Settings dimension controls",
|
|
251
251
|
tabIndex: 0,
|
|
252
252
|
className: "settings-shell__tabpanel",
|
|
253
253
|
children: [
|
|
254
|
-
|
|
255
|
-
|
|
254
|
+
v === "threshold" && /* @__PURE__ */ a(
|
|
255
|
+
ze,
|
|
256
256
|
{
|
|
257
|
-
value:
|
|
258
|
-
onChange:
|
|
259
|
-
enabled:
|
|
260
|
-
onToggleEnabled:
|
|
257
|
+
value: y,
|
|
258
|
+
onChange: B,
|
|
259
|
+
enabled: D,
|
|
260
|
+
onToggleEnabled: g
|
|
261
261
|
}
|
|
262
262
|
),
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
263
|
+
v === "timeframe" && /* @__PURE__ */ a(He, { value: A, onChange: W }),
|
|
264
|
+
v === "slots" && /* @__PURE__ */ a(Ke, { value: K, onChange: G }),
|
|
265
|
+
v === "color" && /* @__PURE__ */ a(
|
|
266
|
+
Be,
|
|
267
267
|
{
|
|
268
|
-
value:
|
|
269
|
-
onSelect:
|
|
270
|
-
enabled:
|
|
271
|
-
onToggleEnabled:
|
|
268
|
+
value: V,
|
|
269
|
+
onSelect: re,
|
|
270
|
+
enabled: Y,
|
|
271
|
+
onToggleEnabled: N
|
|
272
272
|
}
|
|
273
273
|
)
|
|
274
274
|
]
|
|
@@ -276,7 +276,7 @@ function _t({
|
|
|
276
276
|
)
|
|
277
277
|
] });
|
|
278
278
|
}
|
|
279
|
-
const
|
|
279
|
+
const ge = [
|
|
280
280
|
"Overbought",
|
|
281
281
|
"What's selling",
|
|
282
282
|
"On track vs plan",
|
|
@@ -284,7 +284,7 @@ const ne = [
|
|
|
284
284
|
"Vendor performance",
|
|
285
285
|
"Assortment mix",
|
|
286
286
|
"Customer retention"
|
|
287
|
-
],
|
|
287
|
+
], be = "Overbought", ne = {
|
|
288
288
|
Overbought: {
|
|
289
289
|
headline: "Am I overbought?",
|
|
290
290
|
helper: "Find slow-moving inventory before discount cycles eat margin."
|
|
@@ -314,8 +314,8 @@ const ne = [
|
|
|
314
314
|
helper: "Repeat-rate and lapsed-account signals from the buyer file."
|
|
315
315
|
}
|
|
316
316
|
};
|
|
317
|
-
|
|
318
|
-
const
|
|
317
|
+
ne["Customer retention"].beta = !0;
|
|
318
|
+
const ve = {
|
|
319
319
|
Overbought: {
|
|
320
320
|
primary: [
|
|
321
321
|
{
|
|
@@ -780,46 +780,46 @@ const se = {
|
|
|
780
780
|
]
|
|
781
781
|
}
|
|
782
782
|
};
|
|
783
|
-
function
|
|
783
|
+
function ye({
|
|
784
784
|
lenses: e,
|
|
785
785
|
activeLens: t,
|
|
786
|
-
onLensChange:
|
|
787
|
-
variant:
|
|
788
|
-
lensMeta: n =
|
|
786
|
+
onLensChange: l,
|
|
787
|
+
variant: o = "pills",
|
|
788
|
+
lensMeta: n = ne
|
|
789
789
|
}) {
|
|
790
|
-
return
|
|
791
|
-
const u =
|
|
792
|
-
return u && s.push("active"), /* @__PURE__ */
|
|
790
|
+
return o === "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) => {
|
|
791
|
+
const u = i === t, r = n[i], s = ["cat-pill"];
|
|
792
|
+
return u && s.push("active"), /* @__PURE__ */ f(
|
|
793
793
|
"button",
|
|
794
794
|
{
|
|
795
795
|
type: "button",
|
|
796
796
|
role: "tab",
|
|
797
797
|
"aria-selected": u,
|
|
798
798
|
className: s.join(" "),
|
|
799
|
-
"data-lens":
|
|
799
|
+
"data-lens": i,
|
|
800
800
|
onClick: () => {
|
|
801
|
-
u ||
|
|
801
|
+
u || l(i);
|
|
802
802
|
},
|
|
803
803
|
children: [
|
|
804
|
-
|
|
805
|
-
|
|
804
|
+
i,
|
|
805
|
+
r?.beta && /* @__PURE__ */ a("span", { className: "cat-pill-beta", "aria-label": "Beta", children: "BETA" })
|
|
806
806
|
]
|
|
807
807
|
},
|
|
808
|
-
|
|
808
|
+
i
|
|
809
809
|
);
|
|
810
|
-
}) }) }) : /* @__PURE__ */ a(
|
|
810
|
+
}) }) }) : /* @__PURE__ */ a(Qe, { lenses: e, activeLens: t, onLensChange: l });
|
|
811
811
|
}
|
|
812
|
-
function
|
|
812
|
+
function Qe({
|
|
813
813
|
lenses: e,
|
|
814
814
|
activeLens: t,
|
|
815
|
-
onLensChange:
|
|
815
|
+
onLensChange: l
|
|
816
816
|
}) {
|
|
817
|
-
const [
|
|
818
|
-
|
|
819
|
-
},
|
|
820
|
-
u(),
|
|
821
|
-
}, s = e.filter((
|
|
822
|
-
return /* @__PURE__ */ a("div", { className: "cat-segmented-wrap", children: /* @__PURE__ */
|
|
817
|
+
const [o, n] = E(!1), i = H(null), u = () => {
|
|
818
|
+
i.current != null && (window.clearTimeout(i.current), i.current = null);
|
|
819
|
+
}, r = () => {
|
|
820
|
+
u(), i.current = window.setTimeout(() => n(!1), 100);
|
|
821
|
+
}, s = e.filter((c) => c !== t);
|
|
822
|
+
return /* @__PURE__ */ a("div", { className: "cat-segmented-wrap", children: /* @__PURE__ */ f("div", { className: "cat-segmented", children: [
|
|
823
823
|
/* @__PURE__ */ a(
|
|
824
824
|
"button",
|
|
825
825
|
{
|
|
@@ -830,35 +830,35 @@ function Ye({
|
|
|
830
830
|
children: t
|
|
831
831
|
}
|
|
832
832
|
),
|
|
833
|
-
/* @__PURE__ */
|
|
833
|
+
/* @__PURE__ */ f(
|
|
834
834
|
"div",
|
|
835
835
|
{
|
|
836
836
|
className: "cat-seg-more",
|
|
837
837
|
onMouseEnter: () => {
|
|
838
838
|
u(), n(!0);
|
|
839
839
|
},
|
|
840
|
-
onMouseLeave:
|
|
840
|
+
onMouseLeave: r,
|
|
841
841
|
children: [
|
|
842
|
-
/* @__PURE__ */ a("button", { type: "button", className: "cat-seg cat-seg-more-btn", "aria-haspopup": "menu", "aria-expanded":
|
|
843
|
-
|
|
842
|
+
/* @__PURE__ */ a("button", { type: "button", className: "cat-seg cat-seg-more-btn", "aria-haspopup": "menu", "aria-expanded": o, children: "More ▾" }),
|
|
843
|
+
o && /* @__PURE__ */ a(
|
|
844
844
|
"div",
|
|
845
845
|
{
|
|
846
846
|
className: "cat-seg-overflow",
|
|
847
847
|
role: "menu",
|
|
848
848
|
onMouseEnter: u,
|
|
849
|
-
onMouseLeave:
|
|
850
|
-
children: s.map((
|
|
849
|
+
onMouseLeave: r,
|
|
850
|
+
children: s.map((c) => /* @__PURE__ */ a(
|
|
851
851
|
"button",
|
|
852
852
|
{
|
|
853
853
|
type: "button",
|
|
854
|
-
"data-lens":
|
|
854
|
+
"data-lens": c,
|
|
855
855
|
role: "menuitem",
|
|
856
856
|
onClick: () => {
|
|
857
|
-
|
|
857
|
+
l(c), n(!1);
|
|
858
858
|
},
|
|
859
|
-
children:
|
|
859
|
+
children: c
|
|
860
860
|
},
|
|
861
|
-
|
|
861
|
+
c
|
|
862
862
|
))
|
|
863
863
|
}
|
|
864
864
|
)
|
|
@@ -867,38 +867,38 @@ function Ye({
|
|
|
867
867
|
)
|
|
868
868
|
] }) });
|
|
869
869
|
}
|
|
870
|
-
function
|
|
870
|
+
function ee({ tiles: e, selectedTileId: t, onSelectTile: l, renderTile: o }) {
|
|
871
871
|
return /* @__PURE__ */ a("div", { className: "cat-tiles", children: e.map((n) => {
|
|
872
|
-
const
|
|
873
|
-
let
|
|
874
|
-
u ? n.subStats.length === 5 ?
|
|
872
|
+
const i = n.id === t, u = n.subStats != null && n.subStats.length > 0;
|
|
873
|
+
let r = null;
|
|
874
|
+
u ? n.subStats.length === 5 ? r = "span-5" : n.subStats.length === 3 ? r = "span-3" : r = "span-2" : n.stack === !0 && (r = "span-2");
|
|
875
875
|
const s = ["cat-tile"];
|
|
876
|
-
|
|
877
|
-
const
|
|
876
|
+
r && s.push(r), i && s.push("selected"), n.isNew && s.push("is-new"), n.startHere && s.push("start-here"), n.donut && s.push("has-donut");
|
|
877
|
+
const c = 1;
|
|
878
878
|
let d = 0.7;
|
|
879
879
|
if (n.donut) {
|
|
880
880
|
const p = /([\d.]+)\s*%/.exec(n.value);
|
|
881
881
|
if (p) {
|
|
882
|
-
const
|
|
883
|
-
Number.isFinite(
|
|
882
|
+
const h = parseFloat(p[1]);
|
|
883
|
+
Number.isFinite(h) && (d = Math.max(0, Math.min(1, h / 100)));
|
|
884
884
|
}
|
|
885
885
|
}
|
|
886
|
-
return /* @__PURE__ */
|
|
886
|
+
return /* @__PURE__ */ f(
|
|
887
887
|
"button",
|
|
888
888
|
{
|
|
889
889
|
type: "button",
|
|
890
890
|
className: s.join(" "),
|
|
891
891
|
"data-metric": n.id,
|
|
892
892
|
"data-desc": n.desc,
|
|
893
|
-
"data-col-span": String(
|
|
893
|
+
"data-col-span": String(c),
|
|
894
894
|
"data-donut": n.donut ? "true" : void 0,
|
|
895
895
|
"data-accent": n.accent,
|
|
896
|
-
"aria-pressed":
|
|
897
|
-
onClick: () =>
|
|
896
|
+
"aria-pressed": i,
|
|
897
|
+
onClick: () => l(n.id, n.desc),
|
|
898
898
|
style: n.accent ? { "--cat-tile-accent": n.accent } : void 0,
|
|
899
899
|
children: [
|
|
900
900
|
n.startHere && /* @__PURE__ */ a("span", { className: "cat-tile-start-here", "aria-hidden": "true", children: "START HERE" }),
|
|
901
|
-
|
|
901
|
+
o ? o(n) : /* @__PURE__ */ a(
|
|
902
902
|
"div",
|
|
903
903
|
{
|
|
904
904
|
className: "cat-tile-primitive-wrapper gloss-metric-card",
|
|
@@ -906,7 +906,7 @@ function V({ tiles: e, selectedTileId: t, onSelectTile: r, renderTile: c }) {
|
|
|
906
906
|
style: { pointerEvents: "none", width: "100%", height: "100%" },
|
|
907
907
|
"aria-hidden": "true",
|
|
908
908
|
children: n.donut ? /* @__PURE__ */ a(
|
|
909
|
-
|
|
909
|
+
ie,
|
|
910
910
|
{
|
|
911
911
|
variant: "donut",
|
|
912
912
|
label: n.label,
|
|
@@ -914,15 +914,15 @@ function V({ tiles: e, selectedTileId: t, onSelectTile: r, renderTile: c }) {
|
|
|
914
914
|
donutValue: d,
|
|
915
915
|
donutMax: 1,
|
|
916
916
|
accentColor: n.accent,
|
|
917
|
-
colSpan:
|
|
917
|
+
colSpan: c
|
|
918
918
|
}
|
|
919
919
|
) : /* @__PURE__ */ a(
|
|
920
|
-
|
|
920
|
+
ie,
|
|
921
921
|
{
|
|
922
922
|
variant: "standard",
|
|
923
923
|
label: n.label,
|
|
924
924
|
value: n.value,
|
|
925
|
-
colSpan:
|
|
925
|
+
colSpan: c
|
|
926
926
|
}
|
|
927
927
|
)
|
|
928
928
|
}
|
|
@@ -935,17 +935,17 @@ function V({ tiles: e, selectedTileId: t, onSelectTile: r, renderTile: c }) {
|
|
|
935
935
|
);
|
|
936
936
|
}) });
|
|
937
937
|
}
|
|
938
|
-
const
|
|
939
|
-
function
|
|
940
|
-
return
|
|
938
|
+
const ae = he(null);
|
|
939
|
+
function qe() {
|
|
940
|
+
return fe(ae);
|
|
941
941
|
}
|
|
942
|
-
function
|
|
943
|
-
const
|
|
944
|
-
if (
|
|
945
|
-
const
|
|
946
|
-
return /* @__PURE__ */
|
|
947
|
-
/* @__PURE__ */ a("div", { className: "cat-description", id: "cat-desc", children:
|
|
948
|
-
/* @__PURE__ */
|
|
942
|
+
function je({ mode: e, dispatch: t }) {
|
|
943
|
+
const l = qe();
|
|
944
|
+
if (l == null && e == null) return null;
|
|
945
|
+
const o = l?.mode ?? e ?? "add", n = l?.selectedTileId ?? null, i = l?.description ?? null, u = n == null;
|
|
946
|
+
return /* @__PURE__ */ f("div", { className: "panel-footer catalog", children: [
|
|
947
|
+
/* @__PURE__ */ a("div", { className: "cat-description", id: "cat-desc", children: i ?? /* @__PURE__ */ a("em", { children: "Tap a metric to see its description" }) }),
|
|
948
|
+
/* @__PURE__ */ f("div", { style: { display: "flex", padding: "10px 14px", gap: 8 }, children: [
|
|
949
949
|
/* @__PURE__ */ a("div", { className: "spacer", style: { flex: 1 } }),
|
|
950
950
|
/* @__PURE__ */ a(
|
|
951
951
|
"button",
|
|
@@ -957,7 +957,7 @@ function Be({ mode: e, dispatch: t }) {
|
|
|
957
957
|
children: "Cancel"
|
|
958
958
|
}
|
|
959
959
|
),
|
|
960
|
-
|
|
960
|
+
o === "add" && /* @__PURE__ */ a(
|
|
961
961
|
"button",
|
|
962
962
|
{
|
|
963
963
|
id: "btn-cat-add",
|
|
@@ -968,7 +968,7 @@ function Be({ mode: e, dispatch: t }) {
|
|
|
968
968
|
children: "Add metric"
|
|
969
969
|
}
|
|
970
970
|
),
|
|
971
|
-
|
|
971
|
+
o === "replace" && /* @__PURE__ */ a(
|
|
972
972
|
"button",
|
|
973
973
|
{
|
|
974
974
|
id: "btn-cat-replace",
|
|
@@ -982,38 +982,38 @@ function Be({ mode: e, dispatch: t }) {
|
|
|
982
982
|
] })
|
|
983
983
|
] });
|
|
984
984
|
}
|
|
985
|
-
function
|
|
985
|
+
function ce(e, t) {
|
|
986
986
|
if (t.length === 0) return !0;
|
|
987
|
-
const
|
|
988
|
-
if (e.label.toLowerCase().includes(
|
|
987
|
+
const l = t.toLowerCase();
|
|
988
|
+
if (e.label.toLowerCase().includes(l) || e.value.toLowerCase().includes(l)) return !0;
|
|
989
989
|
if (e.subStats) {
|
|
990
|
-
for (const
|
|
991
|
-
if (
|
|
990
|
+
for (const o of e.subStats)
|
|
991
|
+
if (o.label.toLowerCase().includes(l) || o.value.toLowerCase().includes(l)) return !0;
|
|
992
992
|
}
|
|
993
993
|
return !1;
|
|
994
994
|
}
|
|
995
|
-
function
|
|
995
|
+
function wt({
|
|
996
996
|
isOpen: e,
|
|
997
|
-
lenses: t =
|
|
998
|
-
defaultLens:
|
|
999
|
-
tilesByLens:
|
|
1000
|
-
lensMeta: n =
|
|
1001
|
-
footerSlot:
|
|
997
|
+
lenses: t = ge,
|
|
998
|
+
defaultLens: l = be,
|
|
999
|
+
tilesByLens: o = ve,
|
|
1000
|
+
lensMeta: n = ne,
|
|
1001
|
+
footerSlot: i,
|
|
1002
1002
|
renderTile: u
|
|
1003
1003
|
}) {
|
|
1004
|
-
const [
|
|
1005
|
-
() =>
|
|
1006
|
-
[
|
|
1007
|
-
),
|
|
1008
|
-
() => (
|
|
1009
|
-
[
|
|
1004
|
+
const [r, s] = E(l), [c, d] = E(null), [p, h] = E(null), [b, m] = E(""), v = o[r] ?? { primary: [] }, w = n[r], S = le(
|
|
1005
|
+
() => v.primary.filter((y) => ce(y, b)),
|
|
1006
|
+
[v.primary, b]
|
|
1007
|
+
), T = le(
|
|
1008
|
+
() => (v.secondary ?? []).filter((y) => ce(y, b)),
|
|
1009
|
+
[v.secondary, b]
|
|
1010
1010
|
);
|
|
1011
|
-
return /* @__PURE__ */
|
|
1012
|
-
|
|
1011
|
+
return /* @__PURE__ */ f(
|
|
1012
|
+
ae.Provider,
|
|
1013
1013
|
{
|
|
1014
|
-
value: { mode: "add", selectedTileId:
|
|
1014
|
+
value: { mode: "add", selectedTileId: c, description: p },
|
|
1015
1015
|
children: [
|
|
1016
|
-
/* @__PURE__ */
|
|
1016
|
+
/* @__PURE__ */ f("div", { "data-shell": "catalog-add", "aria-hidden": !e, children: [
|
|
1017
1017
|
/* @__PURE__ */ a("div", { className: "cat-search", children: /* @__PURE__ */ a(
|
|
1018
1018
|
"input",
|
|
1019
1019
|
{
|
|
@@ -1021,116 +1021,116 @@ function Ct({
|
|
|
1021
1021
|
className: "cat-search-input",
|
|
1022
1022
|
placeholder: "Search metrics",
|
|
1023
1023
|
"aria-label": "Search metrics",
|
|
1024
|
-
value:
|
|
1025
|
-
onChange: (
|
|
1024
|
+
value: b,
|
|
1025
|
+
onChange: (y) => m(y.target.value)
|
|
1026
1026
|
}
|
|
1027
1027
|
) }),
|
|
1028
1028
|
/* @__PURE__ */ a(
|
|
1029
|
-
|
|
1029
|
+
ye,
|
|
1030
1030
|
{
|
|
1031
1031
|
lenses: t,
|
|
1032
|
-
activeLens:
|
|
1032
|
+
activeLens: r,
|
|
1033
1033
|
lensMeta: n,
|
|
1034
1034
|
variant: "pills",
|
|
1035
|
-
onLensChange: (
|
|
1036
|
-
s(
|
|
1035
|
+
onLensChange: (y) => {
|
|
1036
|
+
s(y), d(null), h(null), m("");
|
|
1037
1037
|
}
|
|
1038
1038
|
}
|
|
1039
1039
|
),
|
|
1040
|
-
|
|
1041
|
-
/* @__PURE__ */ a("h3", { className: "cat-lens-headline", children:
|
|
1042
|
-
/* @__PURE__ */ a("p", { className: "cat-lens-helper", children:
|
|
1040
|
+
w && /* @__PURE__ */ f("div", { className: "cat-lens-meta", children: [
|
|
1041
|
+
/* @__PURE__ */ a("h3", { className: "cat-lens-headline", children: w.headline }),
|
|
1042
|
+
/* @__PURE__ */ a("p", { className: "cat-lens-helper", children: w.helper })
|
|
1043
1043
|
] }),
|
|
1044
1044
|
/* @__PURE__ */ a(
|
|
1045
|
-
|
|
1045
|
+
ee,
|
|
1046
1046
|
{
|
|
1047
|
-
tiles:
|
|
1048
|
-
selectedTileId:
|
|
1049
|
-
onSelectTile: (
|
|
1050
|
-
d(
|
|
1047
|
+
tiles: S,
|
|
1048
|
+
selectedTileId: c,
|
|
1049
|
+
onSelectTile: (y, A) => {
|
|
1050
|
+
d(y), h(A);
|
|
1051
1051
|
},
|
|
1052
1052
|
renderTile: u
|
|
1053
1053
|
}
|
|
1054
1054
|
),
|
|
1055
|
-
|
|
1055
|
+
T.length > 0 && /* @__PURE__ */ f("div", { className: "cat-more-in-lens", children: [
|
|
1056
1056
|
/* @__PURE__ */ a("div", { className: "cat-more-in-lens__heading", children: "MORE IN THIS LENS" }),
|
|
1057
1057
|
/* @__PURE__ */ a(
|
|
1058
|
-
|
|
1058
|
+
ee,
|
|
1059
1059
|
{
|
|
1060
|
-
tiles:
|
|
1061
|
-
selectedTileId:
|
|
1062
|
-
onSelectTile: (
|
|
1063
|
-
d(
|
|
1060
|
+
tiles: T,
|
|
1061
|
+
selectedTileId: c,
|
|
1062
|
+
onSelectTile: (y, A) => {
|
|
1063
|
+
d(y), h(A);
|
|
1064
1064
|
},
|
|
1065
1065
|
renderTile: u
|
|
1066
1066
|
}
|
|
1067
1067
|
)
|
|
1068
1068
|
] }),
|
|
1069
|
-
|
|
1069
|
+
S.length === 0 && T.length === 0 && b.length > 0 && /* @__PURE__ */ f("div", { className: "cat-empty", children: [
|
|
1070
1070
|
'No metrics match "',
|
|
1071
|
-
|
|
1071
|
+
b,
|
|
1072
1072
|
'".'
|
|
1073
1073
|
] })
|
|
1074
1074
|
] }),
|
|
1075
|
-
|
|
1075
|
+
i
|
|
1076
1076
|
]
|
|
1077
1077
|
}
|
|
1078
1078
|
);
|
|
1079
1079
|
}
|
|
1080
|
-
function
|
|
1080
|
+
function Et({
|
|
1081
1081
|
isOpen: e,
|
|
1082
1082
|
replacingLabel: t,
|
|
1083
|
-
lenses:
|
|
1084
|
-
defaultLens:
|
|
1085
|
-
tilesByLens: n =
|
|
1086
|
-
footerSlot:
|
|
1083
|
+
lenses: l = ge,
|
|
1084
|
+
defaultLens: o = be,
|
|
1085
|
+
tilesByLens: n = ve,
|
|
1086
|
+
footerSlot: i,
|
|
1087
1087
|
renderTile: u
|
|
1088
1088
|
}) {
|
|
1089
|
-
const [
|
|
1090
|
-
return /* @__PURE__ */
|
|
1091
|
-
|
|
1089
|
+
const [r, s] = E(o), [c, d] = E(null), [p, h] = E(null), b = n[r] ?? { primary: [] }, m = [...b.primary, ...b.secondary ?? []];
|
|
1090
|
+
return /* @__PURE__ */ f(
|
|
1091
|
+
ae.Provider,
|
|
1092
1092
|
{
|
|
1093
|
-
value: { mode: "replace", selectedTileId:
|
|
1093
|
+
value: { mode: "replace", selectedTileId: c, description: p },
|
|
1094
1094
|
children: [
|
|
1095
|
-
/* @__PURE__ */
|
|
1096
|
-
t && /* @__PURE__ */
|
|
1095
|
+
/* @__PURE__ */ f("div", { "data-shell": "catalog-replace", "aria-hidden": !e, children: [
|
|
1096
|
+
t && /* @__PURE__ */ f("p", { className: "cat-subtitle", children: [
|
|
1097
1097
|
"replacing ",
|
|
1098
1098
|
t
|
|
1099
1099
|
] }),
|
|
1100
1100
|
/* @__PURE__ */ a(
|
|
1101
|
-
|
|
1101
|
+
ye,
|
|
1102
1102
|
{
|
|
1103
|
-
lenses:
|
|
1104
|
-
activeLens:
|
|
1105
|
-
onLensChange: (
|
|
1106
|
-
s(
|
|
1103
|
+
lenses: l,
|
|
1104
|
+
activeLens: r,
|
|
1105
|
+
onLensChange: (v) => {
|
|
1106
|
+
s(v), d(null), h(null);
|
|
1107
1107
|
}
|
|
1108
1108
|
}
|
|
1109
1109
|
),
|
|
1110
1110
|
/* @__PURE__ */ a(
|
|
1111
|
-
|
|
1111
|
+
ee,
|
|
1112
1112
|
{
|
|
1113
|
-
tiles:
|
|
1114
|
-
selectedTileId:
|
|
1115
|
-
onSelectTile: (
|
|
1116
|
-
d(
|
|
1113
|
+
tiles: m,
|
|
1114
|
+
selectedTileId: c,
|
|
1115
|
+
onSelectTile: (v, w) => {
|
|
1116
|
+
d(v), h(w);
|
|
1117
1117
|
},
|
|
1118
1118
|
renderTile: u
|
|
1119
1119
|
}
|
|
1120
1120
|
)
|
|
1121
1121
|
] }),
|
|
1122
|
-
|
|
1122
|
+
i
|
|
1123
1123
|
]
|
|
1124
1124
|
}
|
|
1125
1125
|
);
|
|
1126
1126
|
}
|
|
1127
|
-
const
|
|
1128
|
-
function
|
|
1129
|
-
return
|
|
1127
|
+
const Ce = he(null);
|
|
1128
|
+
function _e() {
|
|
1129
|
+
return fe(Ce);
|
|
1130
1130
|
}
|
|
1131
|
-
function
|
|
1132
|
-
const
|
|
1133
|
-
return /* @__PURE__ */
|
|
1131
|
+
function Ze(e = {}) {
|
|
1132
|
+
const t = _e(), l = t?.createPage, o = t?.setPages;
|
|
1133
|
+
return /* @__PURE__ */ f(
|
|
1134
1134
|
"div",
|
|
1135
1135
|
{
|
|
1136
1136
|
className: "panel-footer pm",
|
|
@@ -1144,8 +1144,12 @@ function We(e = {}) {
|
|
|
1144
1144
|
type: "button",
|
|
1145
1145
|
className: "btn btn-primary",
|
|
1146
1146
|
onClick: () => {
|
|
1147
|
-
|
|
1148
|
-
|
|
1147
|
+
if (l) {
|
|
1148
|
+
l();
|
|
1149
|
+
return;
|
|
1150
|
+
}
|
|
1151
|
+
o && o((n) => [
|
|
1152
|
+
...n,
|
|
1149
1153
|
{ id: `new-${Date.now()}`, name: "Untitled", active: !1 }
|
|
1150
1154
|
]);
|
|
1151
1155
|
},
|
|
@@ -1156,36 +1160,51 @@ function We(e = {}) {
|
|
|
1156
1160
|
}
|
|
1157
1161
|
);
|
|
1158
1162
|
}
|
|
1159
|
-
function
|
|
1160
|
-
const
|
|
1161
|
-
|
|
1162
|
-
if (!
|
|
1163
|
-
const m = (
|
|
1164
|
-
|
|
1163
|
+
function de({ page: e, onRename: t, onKebab: l, onDragStart: o, onSwitchPage: n }) {
|
|
1164
|
+
const i = _e(), [u, r] = E(!1), s = H(null);
|
|
1165
|
+
L(() => {
|
|
1166
|
+
if (!u) return;
|
|
1167
|
+
const m = (v) => {
|
|
1168
|
+
s.current && (s.current.contains(v.target) || r(!1));
|
|
1165
1169
|
};
|
|
1166
1170
|
return document.addEventListener("mousedown", m, !0), () => document.removeEventListener("mousedown", m, !0);
|
|
1167
|
-
}, [
|
|
1168
|
-
const
|
|
1169
|
-
if (
|
|
1170
|
-
if (!
|
|
1171
|
+
}, [u]);
|
|
1172
|
+
const c = () => {
|
|
1173
|
+
if (r(!1), t) return t(e.id);
|
|
1174
|
+
if (!i?.renamePage) return;
|
|
1171
1175
|
const m = window.prompt("Rename page", e.name);
|
|
1172
|
-
m != null && m.trim().length > 0 &&
|
|
1173
|
-
}, i = () => {
|
|
1174
|
-
u(!1), n?.duplicatePage?.(e.id);
|
|
1176
|
+
m != null && m.trim().length > 0 && i.renamePage(e.id, m.trim());
|
|
1175
1177
|
}, d = () => {
|
|
1176
|
-
|
|
1177
|
-
}, p =
|
|
1178
|
-
|
|
1178
|
+
r(!1), i?.duplicatePage?.(e.id);
|
|
1179
|
+
}, p = () => {
|
|
1180
|
+
r(!1), i?.deletePage?.(e.id);
|
|
1181
|
+
}, h = (m) => {
|
|
1182
|
+
m.stopPropagation(), n && !e.active && n(e.id);
|
|
1183
|
+
}, b = ["pm-row"];
|
|
1184
|
+
return e.active && b.push("active"), /* @__PURE__ */ f("div", { ref: s, className: b.join(" "), "data-page-id": e.id, role: "listitem", children: [
|
|
1179
1185
|
/* @__PURE__ */ a(
|
|
1180
1186
|
"div",
|
|
1181
1187
|
{
|
|
1182
1188
|
className: "pm-handle",
|
|
1183
1189
|
"aria-hidden": "true",
|
|
1184
|
-
onMouseDown: () =>
|
|
1190
|
+
onMouseDown: () => o?.(e.id),
|
|
1185
1191
|
children: "⋮⋮"
|
|
1186
1192
|
}
|
|
1187
1193
|
),
|
|
1188
|
-
/* @__PURE__ */ a(
|
|
1194
|
+
/* @__PURE__ */ a(
|
|
1195
|
+
"div",
|
|
1196
|
+
{
|
|
1197
|
+
className: "pm-name",
|
|
1198
|
+
role: n && !e.active ? "button" : void 0,
|
|
1199
|
+
tabIndex: n && !e.active ? 0 : void 0,
|
|
1200
|
+
onClick: n ? h : void 0,
|
|
1201
|
+
onKeyDown: (m) => {
|
|
1202
|
+
!n || e.active || (m.key === "Enter" || m.key === " ") && (m.preventDefault(), m.stopPropagation(), n(e.id));
|
|
1203
|
+
},
|
|
1204
|
+
"aria-label": n && !e.active ? `Switch to ${e.name}` : void 0,
|
|
1205
|
+
children: e.name
|
|
1206
|
+
}
|
|
1207
|
+
),
|
|
1189
1208
|
/* @__PURE__ */ a(
|
|
1190
1209
|
"button",
|
|
1191
1210
|
{
|
|
@@ -1193,75 +1212,152 @@ function Ge({ page: e, onRename: t, onKebab: r, onDragStart: c }) {
|
|
|
1193
1212
|
className: "pm-kebab",
|
|
1194
1213
|
"aria-label": "Page options",
|
|
1195
1214
|
"aria-haspopup": "menu",
|
|
1196
|
-
"aria-expanded":
|
|
1215
|
+
"aria-expanded": u,
|
|
1216
|
+
onPointerDown: (m) => m.stopPropagation(),
|
|
1217
|
+
onMouseDown: (m) => m.stopPropagation(),
|
|
1197
1218
|
onClick: (m) => {
|
|
1198
|
-
if (m.stopPropagation(),
|
|
1199
|
-
|
|
1219
|
+
if (m.stopPropagation(), l) return l(e.id);
|
|
1220
|
+
r((v) => !v);
|
|
1200
1221
|
},
|
|
1201
1222
|
children: "⋯"
|
|
1202
1223
|
}
|
|
1203
1224
|
),
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
"
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
onClick:
|
|
1214
|
-
"
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1225
|
+
u && /* @__PURE__ */ f(
|
|
1226
|
+
"div",
|
|
1227
|
+
{
|
|
1228
|
+
className: "pm-kebab-menu",
|
|
1229
|
+
role: "menu",
|
|
1230
|
+
"data-page-id": e.id,
|
|
1231
|
+
onPointerDown: (m) => m.stopPropagation(),
|
|
1232
|
+
onMouseDown: (m) => m.stopPropagation(),
|
|
1233
|
+
children: [
|
|
1234
|
+
/* @__PURE__ */ a("button", { type: "button", role: "menuitem", className: "pm-kebab-menu__item", onClick: c, children: "Rename" }),
|
|
1235
|
+
/* @__PURE__ */ a("button", { type: "button", role: "menuitem", className: "pm-kebab-menu__item", onClick: d, children: "Duplicate" }),
|
|
1236
|
+
/* @__PURE__ */ a(
|
|
1237
|
+
"button",
|
|
1238
|
+
{
|
|
1239
|
+
type: "button",
|
|
1240
|
+
role: "menuitem",
|
|
1241
|
+
className: "pm-kebab-menu__item pm-kebab-menu__item--danger",
|
|
1242
|
+
onClick: p,
|
|
1243
|
+
children: "Delete"
|
|
1244
|
+
}
|
|
1245
|
+
)
|
|
1246
|
+
]
|
|
1247
|
+
}
|
|
1248
|
+
)
|
|
1219
1249
|
] });
|
|
1220
1250
|
}
|
|
1221
|
-
const
|
|
1251
|
+
const Xe = [
|
|
1222
1252
|
{ id: "p-pipeline", name: "My Pipeline", active: !0 },
|
|
1223
1253
|
{ id: "p-numbers", name: "My Numbers", active: !1 },
|
|
1224
1254
|
{ id: "p-morning", name: "My Morning", active: !1 },
|
|
1225
1255
|
{ id: "p-accounts", name: "My Accounts", active: !1 }
|
|
1226
1256
|
];
|
|
1227
|
-
function
|
|
1257
|
+
function Pt({
|
|
1228
1258
|
isOpen: e,
|
|
1229
|
-
pages: t =
|
|
1230
|
-
footerSlot:
|
|
1259
|
+
pages: t = Xe,
|
|
1260
|
+
footerSlot: l,
|
|
1261
|
+
externalPages: o,
|
|
1262
|
+
activePageId: n,
|
|
1263
|
+
onRename: i,
|
|
1264
|
+
onDuplicate: u,
|
|
1265
|
+
onDelete: r,
|
|
1266
|
+
onReorder: s,
|
|
1267
|
+
onCreatePage: c,
|
|
1268
|
+
onSwitchPage: d
|
|
1231
1269
|
}) {
|
|
1232
|
-
const [
|
|
1233
|
-
|
|
1234
|
-
}, []),
|
|
1235
|
-
|
|
1236
|
-
const
|
|
1237
|
-
if (!
|
|
1238
|
-
const
|
|
1239
|
-
id: `${
|
|
1240
|
-
name: `${
|
|
1270
|
+
const [p, h] = E(() => [...t]), b = x((g, N) => {
|
|
1271
|
+
h((C) => C.map((P) => P.id === g ? { ...P, name: N } : P));
|
|
1272
|
+
}, []), m = x((g) => {
|
|
1273
|
+
h((N) => {
|
|
1274
|
+
const C = N.find((Q) => Q.id === g);
|
|
1275
|
+
if (!C) return N;
|
|
1276
|
+
const P = {
|
|
1277
|
+
id: `${C.id}-copy-${Date.now()}`,
|
|
1278
|
+
name: `${C.name} copy`,
|
|
1241
1279
|
active: !1
|
|
1242
|
-
},
|
|
1243
|
-
return [...
|
|
1280
|
+
}, k = N.findIndex((Q) => Q.id === g);
|
|
1281
|
+
return [...N.slice(0, k + 1), P, ...N.slice(k + 1)];
|
|
1244
1282
|
});
|
|
1245
|
-
}, []),
|
|
1246
|
-
|
|
1247
|
-
}, [])
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1283
|
+
}, []), v = x((g) => {
|
|
1284
|
+
h((N) => N.filter((C) => C.id !== g));
|
|
1285
|
+
}, []), w = x((g) => {
|
|
1286
|
+
h((N) => {
|
|
1287
|
+
const C = new Map(N.map((k) => [k.id, k])), P = g.map((k) => C.get(k)).filter(Boolean);
|
|
1288
|
+
return P.length === N.length ? P : N;
|
|
1289
|
+
});
|
|
1290
|
+
}, []), S = o != null, T = S ? o : p, y = n != null ? T.map((g) => ({ ...g, active: g.id === n })) : [...T], A = i ?? (S ? void 0 : b), V = u ?? (S ? void 0 : m), K = r ?? (S ? void 0 : v), D = s ?? (S ? void 0 : w), Y = x(
|
|
1291
|
+
(g) => {
|
|
1292
|
+
S || h(g);
|
|
1293
|
+
},
|
|
1294
|
+
[S]
|
|
1295
|
+
), B = x(
|
|
1296
|
+
(g) => {
|
|
1297
|
+
const N = g[0]?.items.map((C) => C.id) ?? [];
|
|
1298
|
+
N.length > 0 && D && D(N);
|
|
1299
|
+
},
|
|
1300
|
+
[D]
|
|
1301
|
+
), W = y.map((g) => `${g.id}:${g.name}`).join("|"), G = D != null && y.length > 1 ? /* @__PURE__ */ a(
|
|
1302
|
+
Se,
|
|
1303
|
+
{
|
|
1304
|
+
zones: [
|
|
1305
|
+
{
|
|
1306
|
+
zoneKey: "pm-pages",
|
|
1307
|
+
items: y.map((g) => ({ ...g, id: g.id }))
|
|
1308
|
+
}
|
|
1309
|
+
],
|
|
1310
|
+
onZoneChange: B,
|
|
1311
|
+
renderZone: (g, N, C) => /* @__PURE__ */ a("div", { className: "pm-list", role: "list", children: C }),
|
|
1312
|
+
renderItem: (g) => /* @__PURE__ */ a(
|
|
1313
|
+
de,
|
|
1314
|
+
{
|
|
1315
|
+
page: g,
|
|
1316
|
+
onSwitchPage: d
|
|
1317
|
+
},
|
|
1318
|
+
g.id
|
|
1319
|
+
)
|
|
1320
|
+
},
|
|
1321
|
+
W
|
|
1322
|
+
) : /* @__PURE__ */ a("div", { className: "pm-list", role: "list", children: y.map((g) => /* @__PURE__ */ a(
|
|
1323
|
+
de,
|
|
1324
|
+
{
|
|
1325
|
+
page: g,
|
|
1326
|
+
onSwitchPage: d
|
|
1327
|
+
},
|
|
1328
|
+
g.id
|
|
1329
|
+
)) });
|
|
1330
|
+
return /* @__PURE__ */ a(
|
|
1331
|
+
Ce.Provider,
|
|
1332
|
+
{
|
|
1333
|
+
value: {
|
|
1334
|
+
pages: y,
|
|
1335
|
+
setPages: Y,
|
|
1336
|
+
renamePage: A,
|
|
1337
|
+
duplicatePage: V,
|
|
1338
|
+
deletePage: K,
|
|
1339
|
+
// Sprint 2026-05-20 — propagate live create binding for footer.
|
|
1340
|
+
createPage: c
|
|
1341
|
+
},
|
|
1342
|
+
children: /* @__PURE__ */ f("div", { "data-shell": "page-management", "aria-hidden": !e, children: [
|
|
1343
|
+
G,
|
|
1344
|
+
l != null && /* @__PURE__ */ a("div", { className: "pm-footer-pin", children: l })
|
|
1345
|
+
] })
|
|
1346
|
+
}
|
|
1347
|
+
);
|
|
1252
1348
|
}
|
|
1253
|
-
const
|
|
1349
|
+
const xt = {
|
|
1254
1350
|
SETTINGS: "settings",
|
|
1255
1351
|
CATALOG_ADD: "catalog-add",
|
|
1256
1352
|
CATALOG_REPLACE: "catalog-replace",
|
|
1257
1353
|
PAGE_MGMT: "page-management",
|
|
1258
1354
|
NOTIFICATION_CENTER: "notification-center"
|
|
1259
|
-
},
|
|
1355
|
+
}, Je = {
|
|
1260
1356
|
position: "fixed",
|
|
1261
1357
|
inset: 0,
|
|
1262
1358
|
pointerEvents: "none",
|
|
1263
1359
|
zIndex: 55
|
|
1264
|
-
},
|
|
1360
|
+
}, et = {
|
|
1265
1361
|
position: "absolute",
|
|
1266
1362
|
inset: 0,
|
|
1267
1363
|
zIndex: 1,
|
|
@@ -1270,86 +1366,86 @@ const Nt = {
|
|
|
1270
1366
|
pointerEvents: "none",
|
|
1271
1367
|
background: "rgba(0, 0, 0, 0.04)"
|
|
1272
1368
|
};
|
|
1273
|
-
function
|
|
1274
|
-
const { state: e, dispatch: t, getCloseLog:
|
|
1275
|
-
|
|
1369
|
+
function At() {
|
|
1370
|
+
const { state: e, dispatch: t, getCloseLog: l } = we();
|
|
1371
|
+
L(() => {
|
|
1276
1372
|
if (e.activePanelId == null) return;
|
|
1277
|
-
function
|
|
1373
|
+
function i(u) {
|
|
1278
1374
|
u.key === "Escape" && t({ type: "CLOSE_PANEL", reason: "escape-key" });
|
|
1279
1375
|
}
|
|
1280
|
-
return document.addEventListener("keydown",
|
|
1376
|
+
return document.addEventListener("keydown", i), () => document.removeEventListener("keydown", i);
|
|
1281
1377
|
}, [e.activePanelId, t]);
|
|
1282
|
-
const
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
}),
|
|
1378
|
+
const o = H(e);
|
|
1379
|
+
Ee(() => {
|
|
1380
|
+
o.current = e;
|
|
1381
|
+
}), L(() => {
|
|
1286
1382
|
if (process.env.NODE_ENV === "production") return;
|
|
1287
|
-
const
|
|
1288
|
-
return
|
|
1383
|
+
const i = window;
|
|
1384
|
+
return i.__panelsHostHandle && console.warn("[panels] multiple PanelHost/PanelHostShell instances mounted; dev handle is unreliable"), i.__panelsHostHandle = {
|
|
1289
1385
|
dispatch: t,
|
|
1290
|
-
getState: () =>
|
|
1291
|
-
getCloseLog:
|
|
1386
|
+
getState: () => o.current,
|
|
1387
|
+
getCloseLog: l
|
|
1292
1388
|
}, () => {
|
|
1293
|
-
|
|
1389
|
+
i.__panelsHostHandle?.dispatch === t && delete window.__panelsHostHandle;
|
|
1294
1390
|
};
|
|
1295
|
-
}, [t,
|
|
1296
|
-
const n =
|
|
1391
|
+
}, [t, l]);
|
|
1392
|
+
const n = x(() => {
|
|
1297
1393
|
t({ type: "CLOSE_PANEL", reason: "nav-escape-hatch" });
|
|
1298
1394
|
}, [t]);
|
|
1299
|
-
return /* @__PURE__ */ a("div", { "data-panel-host": "true", style:
|
|
1395
|
+
return /* @__PURE__ */ a("div", { "data-panel-host": "true", style: Je, children: e.activePanelId != null && /* @__PURE__ */ a(
|
|
1300
1396
|
"div",
|
|
1301
1397
|
{
|
|
1302
1398
|
"data-panel-scrim": "true",
|
|
1303
|
-
style:
|
|
1399
|
+
style: et,
|
|
1304
1400
|
onClick: n
|
|
1305
1401
|
}
|
|
1306
1402
|
) });
|
|
1307
1403
|
}
|
|
1308
|
-
const
|
|
1309
|
-
function
|
|
1310
|
-
const [t,
|
|
1311
|
-
return
|
|
1404
|
+
const tt = 700;
|
|
1405
|
+
function nt(e) {
|
|
1406
|
+
const [t, l] = E(null), o = H(null);
|
|
1407
|
+
return L(() => {
|
|
1312
1408
|
if (e != null) {
|
|
1313
|
-
|
|
1409
|
+
o.current != null && (clearTimeout(o.current), o.current = null), l(null);
|
|
1314
1410
|
return;
|
|
1315
1411
|
}
|
|
1316
|
-
return
|
|
1317
|
-
|
|
1318
|
-
},
|
|
1319
|
-
|
|
1412
|
+
return l((n) => n), o.current = setTimeout(() => {
|
|
1413
|
+
l(null), o.current = null;
|
|
1414
|
+
}, tt), () => {
|
|
1415
|
+
o.current != null && (clearTimeout(o.current), o.current = null);
|
|
1320
1416
|
};
|
|
1321
|
-
}, [e]),
|
|
1322
|
-
e != null &&
|
|
1417
|
+
}, [e]), L(() => {
|
|
1418
|
+
e != null && l(e);
|
|
1323
1419
|
}, [e]), e != null ? { panelId: e, isOpen: !0 } : t != null ? { panelId: t, isOpen: !1 } : { panelId: null, isOpen: !1 };
|
|
1324
1420
|
}
|
|
1325
|
-
function
|
|
1326
|
-
const
|
|
1327
|
-
if (
|
|
1328
|
-
const { state:
|
|
1329
|
-
if (
|
|
1330
|
-
const u =
|
|
1421
|
+
function kt({ panelComponents: e, children: t }) {
|
|
1422
|
+
const l = U();
|
|
1423
|
+
if (l == null) return null;
|
|
1424
|
+
const { state: o, dispatch: n } = l, i = nt(o.activePanelId);
|
|
1425
|
+
if (i.panelId == null) return null;
|
|
1426
|
+
const u = i.panelId, r = i.isOpen, s = e?.[u];
|
|
1331
1427
|
if (s == null && t == null)
|
|
1332
1428
|
return process.env.NODE_ENV !== "production" && console.error(
|
|
1333
1429
|
"[panels] No panel component registered for activePanelId:",
|
|
1334
1430
|
u
|
|
1335
1431
|
), null;
|
|
1336
1432
|
if (u === "settings") {
|
|
1337
|
-
const
|
|
1338
|
-
return /* @__PURE__ */ a(
|
|
1339
|
-
|
|
1433
|
+
const c = o.isDirty, d = o.activeTrigger, p = d?.kind === "card-overflow" ? d.cardId : null;
|
|
1434
|
+
return /* @__PURE__ */ a(I, { isOpen: r, children: /* @__PURE__ */ a(
|
|
1435
|
+
M,
|
|
1340
1436
|
{
|
|
1341
|
-
isOpen:
|
|
1437
|
+
isOpen: r,
|
|
1342
1438
|
title: "Configure metric",
|
|
1343
1439
|
variant: "merged-stage",
|
|
1344
1440
|
onClose: () => n({ type: "CLOSE_PANEL", reason: "header-x" }),
|
|
1345
|
-
footer: /* @__PURE__ */
|
|
1441
|
+
footer: /* @__PURE__ */ f(z, { children: [
|
|
1346
1442
|
/* @__PURE__ */ a(
|
|
1347
1443
|
"button",
|
|
1348
1444
|
{
|
|
1349
1445
|
id: "btn-reset",
|
|
1350
1446
|
type: "button",
|
|
1351
1447
|
className: "gloss-panel-chrome__footer-btn",
|
|
1352
|
-
disabled: !
|
|
1448
|
+
disabled: !c,
|
|
1353
1449
|
onClick: () => {
|
|
1354
1450
|
p != null && n({ type: "CLEAR_BUFFER", cardId: p });
|
|
1355
1451
|
},
|
|
@@ -1373,273 +1469,273 @@ function Et({ panelComponents: e, children: t }) {
|
|
|
1373
1469
|
id: "settings-apply",
|
|
1374
1470
|
type: "button",
|
|
1375
1471
|
className: "gloss-panel-chrome__footer-btn gloss-panel-chrome__footer-btn--primary",
|
|
1376
|
-
disabled: !
|
|
1472
|
+
disabled: !c,
|
|
1377
1473
|
onClick: () => n({ type: "CLOSE_PANEL", reason: "apply-button" }),
|
|
1378
1474
|
children: "Apply"
|
|
1379
1475
|
}
|
|
1380
1476
|
)
|
|
1381
1477
|
] }),
|
|
1382
|
-
children: s != null ? /* @__PURE__ */ a(s, { isOpen:
|
|
1478
|
+
children: s != null ? /* @__PURE__ */ a(s, { isOpen: r }) : t
|
|
1383
1479
|
}
|
|
1384
1480
|
) });
|
|
1385
1481
|
}
|
|
1386
1482
|
if (u === "catalog-add" || u === "catalog-replace") {
|
|
1387
1483
|
if (s == null) return null;
|
|
1388
|
-
const
|
|
1389
|
-
return /* @__PURE__ */ a(
|
|
1390
|
-
|
|
1484
|
+
const c = u === "catalog-replace" ? "replace" : "add";
|
|
1485
|
+
return /* @__PURE__ */ a(I, { isOpen: r, children: /* @__PURE__ */ a(
|
|
1486
|
+
M,
|
|
1391
1487
|
{
|
|
1392
|
-
isOpen:
|
|
1488
|
+
isOpen: r,
|
|
1393
1489
|
onClose: () => n({ type: "CLOSE_PANEL", reason: "header-x" }),
|
|
1394
1490
|
footer: null,
|
|
1395
|
-
title:
|
|
1491
|
+
title: c === "replace" ? "Replace metric" : "Add a metric",
|
|
1396
1492
|
children: /* @__PURE__ */ a(
|
|
1397
1493
|
s,
|
|
1398
1494
|
{
|
|
1399
|
-
isOpen:
|
|
1400
|
-
footerSlot: /* @__PURE__ */ a(
|
|
1495
|
+
isOpen: r,
|
|
1496
|
+
footerSlot: /* @__PURE__ */ a(je, { mode: c, dispatch: n })
|
|
1401
1497
|
}
|
|
1402
1498
|
)
|
|
1403
1499
|
}
|
|
1404
1500
|
) });
|
|
1405
1501
|
}
|
|
1406
|
-
return u === "page-management" ? s == null ? null : /* @__PURE__ */ a(
|
|
1407
|
-
|
|
1502
|
+
return u === "page-management" ? s == null ? null : /* @__PURE__ */ a(I, { isOpen: r, children: /* @__PURE__ */ a(
|
|
1503
|
+
M,
|
|
1408
1504
|
{
|
|
1409
|
-
isOpen:
|
|
1505
|
+
isOpen: r,
|
|
1410
1506
|
onClose: () => n({ type: "CLOSE_PANEL", reason: "header-x" }),
|
|
1411
1507
|
footer: null,
|
|
1412
1508
|
title: "Manage pages",
|
|
1413
|
-
children: /* @__PURE__ */ a(s, { isOpen:
|
|
1509
|
+
children: /* @__PURE__ */ a(s, { isOpen: r, footerSlot: /* @__PURE__ */ a(Ze, {}) })
|
|
1414
1510
|
}
|
|
1415
|
-
) }) : /* @__PURE__ */ a(
|
|
1416
|
-
|
|
1511
|
+
) }) : /* @__PURE__ */ a(I, { isOpen: r, children: /* @__PURE__ */ a(
|
|
1512
|
+
M,
|
|
1417
1513
|
{
|
|
1418
1514
|
isOpen: !0,
|
|
1419
1515
|
onClose: () => n({ type: "CLOSE_PANEL", reason: "header-x" }),
|
|
1420
1516
|
footer: null,
|
|
1421
|
-
children: s != null ? /* @__PURE__ */ a(s, { isOpen:
|
|
1517
|
+
children: s != null ? /* @__PURE__ */ a(s, { isOpen: r }) : t
|
|
1422
1518
|
}
|
|
1423
1519
|
) });
|
|
1424
1520
|
}
|
|
1425
|
-
function
|
|
1521
|
+
function ue(e) {
|
|
1426
1522
|
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;
|
|
1427
1523
|
}
|
|
1428
|
-
const
|
|
1429
|
-
function
|
|
1524
|
+
const at = 685, pe = 627, st = "cubic-bezier(0.22, 1, 0.36, 1)", rt = 200;
|
|
1525
|
+
function Te(e, t) {
|
|
1430
1526
|
if (typeof window > "u") return t;
|
|
1431
|
-
const
|
|
1432
|
-
if (!
|
|
1433
|
-
const
|
|
1434
|
-
return Number.isNaN(
|
|
1527
|
+
const l = window.getComputedStyle(document.documentElement).getPropertyValue(e).trim();
|
|
1528
|
+
if (!l) return t;
|
|
1529
|
+
const o = parseFloat(l);
|
|
1530
|
+
return Number.isNaN(o) ? t : l.endsWith("s") && !l.endsWith("ms") ? o * 1e3 : o;
|
|
1435
1531
|
}
|
|
1436
|
-
function
|
|
1532
|
+
function lt(e, t) {
|
|
1437
1533
|
return typeof window > "u" ? t : window.getComputedStyle(document.documentElement).getPropertyValue(e).trim() || t;
|
|
1438
1534
|
}
|
|
1439
|
-
function
|
|
1535
|
+
function R(e) {
|
|
1440
1536
|
e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger });
|
|
1441
1537
|
}
|
|
1442
|
-
function
|
|
1443
|
-
const { mountEl: t, chromeEl:
|
|
1444
|
-
if (t == null ||
|
|
1445
|
-
|
|
1538
|
+
function ot(e) {
|
|
1539
|
+
const { mountEl: t, chromeEl: l, reducedMotion: o, onAssert: n } = e;
|
|
1540
|
+
if (t == null || l == null) {
|
|
1541
|
+
R(e), n?.({ branch: "slide-fallback-no-dom", timestamp: Date.now() });
|
|
1446
1542
|
return;
|
|
1447
1543
|
}
|
|
1448
|
-
if (
|
|
1544
|
+
if (o) {
|
|
1449
1545
|
e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger }), n?.({ branch: "slide-reduced-motion", timestamp: Date.now() });
|
|
1450
1546
|
return;
|
|
1451
1547
|
}
|
|
1452
|
-
if (typeof
|
|
1453
|
-
|
|
1548
|
+
if (typeof l.animate != "function") {
|
|
1549
|
+
R(e), n?.({ branch: "slide-no-waapi", timestamp: Date.now() });
|
|
1454
1550
|
return;
|
|
1455
1551
|
}
|
|
1456
|
-
const
|
|
1457
|
-
|
|
1458
|
-
const u =
|
|
1552
|
+
const i = l.cloneNode(!0);
|
|
1553
|
+
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), l.style.zIndex = "2", e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger });
|
|
1554
|
+
const u = Te("--panel-open-dur", at), r = lt("--panel-easing", st), s = l.animate(
|
|
1459
1555
|
[{ transform: "translateY(100%)" }, { transform: "translateY(0)" }],
|
|
1460
|
-
{ duration: u, easing:
|
|
1556
|
+
{ duration: u, easing: r, fill: "forwards" }
|
|
1461
1557
|
);
|
|
1462
1558
|
s.addEventListener(
|
|
1463
1559
|
"finish",
|
|
1464
1560
|
() => {
|
|
1465
|
-
|
|
1561
|
+
i.remove(), l.style.zIndex = "", s.cancel(), n?.({ branch: "slide-complete", frozen: "cleaned", timestamp: Date.now() });
|
|
1466
1562
|
},
|
|
1467
1563
|
{ once: !0 }
|
|
1468
1564
|
);
|
|
1469
1565
|
}
|
|
1470
|
-
function
|
|
1471
|
-
const { mountEl: t, onAssert:
|
|
1566
|
+
function it(e) {
|
|
1567
|
+
const { mountEl: t, onAssert: l } = e;
|
|
1472
1568
|
if (t == null) {
|
|
1473
|
-
e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }), setTimeout(() =>
|
|
1569
|
+
e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }), setTimeout(() => R(e), pe), l?.({ branch: "handoff-fallback-no-mount", timestamp: Date.now() });
|
|
1474
1570
|
return;
|
|
1475
1571
|
}
|
|
1476
|
-
const
|
|
1477
|
-
let n = !1,
|
|
1572
|
+
const o = Te("--panel-close-dur", pe);
|
|
1573
|
+
let n = !1, i = null;
|
|
1478
1574
|
const u = (s) => {
|
|
1479
|
-
s.target !== t || s.propertyName !== "max-height" || n || (n = !0,
|
|
1480
|
-
},
|
|
1481
|
-
n || (n = !0, t.removeEventListener("transitionend", u), e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger }),
|
|
1575
|
+
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 }), l?.({ branch: "handoff-complete", timestamp: Date.now() }));
|
|
1576
|
+
}, r = () => {
|
|
1577
|
+
n || (n = !0, t.removeEventListener("transitionend", u), e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger }), l?.({ branch: "handoff-forced", timestamp: Date.now() }));
|
|
1482
1578
|
};
|
|
1483
|
-
t.addEventListener("transitionend", u), e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }),
|
|
1579
|
+
t.addEventListener("transitionend", u), e.dispatch({ type: "CLOSE_PANEL", reason: "mutex-handoff" }), i = setTimeout(r, o + rt);
|
|
1484
1580
|
}
|
|
1485
|
-
function
|
|
1486
|
-
const { state: t, onAssert:
|
|
1581
|
+
function ct(e) {
|
|
1582
|
+
const { state: t, onAssert: l } = e;
|
|
1487
1583
|
if (t.activePanelId && t.isDirty) {
|
|
1488
|
-
e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger }),
|
|
1584
|
+
e.dispatch({ type: "OPEN_PANEL", panelId: e.panelId, trigger: e.trigger }), l?.({ branch: "blocked-dirty", timestamp: Date.now() });
|
|
1489
1585
|
return;
|
|
1490
1586
|
}
|
|
1491
|
-
const
|
|
1492
|
-
if (!!t.activePanelId &&
|
|
1493
|
-
|
|
1587
|
+
const o = ue(t.activeTrigger), n = ue(e.trigger);
|
|
1588
|
+
if (!!t.activePanelId && o != null && o === n) {
|
|
1589
|
+
ot(e);
|
|
1494
1590
|
return;
|
|
1495
1591
|
}
|
|
1496
1592
|
if (t.activePanelId) {
|
|
1497
|
-
|
|
1593
|
+
it(e);
|
|
1498
1594
|
return;
|
|
1499
1595
|
}
|
|
1500
|
-
|
|
1596
|
+
R(e), l?.({ branch: "fresh-open", timestamp: Date.now() });
|
|
1501
1597
|
}
|
|
1502
|
-
function
|
|
1598
|
+
function dt() {
|
|
1503
1599
|
if (!(typeof window > "u"))
|
|
1504
1600
|
return window.__panelsAsserter;
|
|
1505
1601
|
}
|
|
1506
|
-
function
|
|
1507
|
-
const e =
|
|
1508
|
-
return
|
|
1509
|
-
(
|
|
1602
|
+
function Dt() {
|
|
1603
|
+
const e = U(), t = me();
|
|
1604
|
+
return x(
|
|
1605
|
+
(l, o) => {
|
|
1510
1606
|
if (!e)
|
|
1511
1607
|
return;
|
|
1512
|
-
const n = typeof document < "u" ? document.querySelector('[data-mount="panel"]') : null,
|
|
1513
|
-
panelId:
|
|
1514
|
-
trigger:
|
|
1608
|
+
const n = typeof document < "u" ? document.querySelector('[data-mount="panel"]') : null, i = typeof document < "u" ? document.querySelector('[data-chrome="panel"]') : null, u = {
|
|
1609
|
+
panelId: l,
|
|
1610
|
+
trigger: o,
|
|
1515
1611
|
state: e.state,
|
|
1516
1612
|
dispatch: e.dispatch,
|
|
1517
1613
|
mountEl: n,
|
|
1518
|
-
chromeEl:
|
|
1614
|
+
chromeEl: i,
|
|
1519
1615
|
reducedMotion: t,
|
|
1520
|
-
onAssert: (
|
|
1521
|
-
|
|
1616
|
+
onAssert: (r) => {
|
|
1617
|
+
dt()?.recordTransition?.(r);
|
|
1522
1618
|
}
|
|
1523
1619
|
};
|
|
1524
|
-
|
|
1620
|
+
ct(u);
|
|
1525
1621
|
},
|
|
1526
1622
|
[e, t]
|
|
1527
1623
|
);
|
|
1528
1624
|
}
|
|
1529
|
-
let
|
|
1530
|
-
function
|
|
1625
|
+
let F = !1, q = null;
|
|
1626
|
+
function te() {
|
|
1531
1627
|
const e = [];
|
|
1532
1628
|
let t = "cleaned";
|
|
1533
1629
|
document.querySelectorAll("#panel-chrome-frozen").length > 0 && (e.push("#panel-chrome-frozen"), t = "lingering");
|
|
1534
|
-
const
|
|
1535
|
-
|
|
1536
|
-
const n =
|
|
1537
|
-
|
|
1538
|
-
const u =
|
|
1630
|
+
const o = document.querySelectorAll(".gloss-panel-mount");
|
|
1631
|
+
o.length > 1 && e.push(`mount-count=${o.length}`);
|
|
1632
|
+
const n = o[0] ?? null, i = n ? n.querySelectorAll(".gloss-panel-chrome") : [];
|
|
1633
|
+
i.length > 1 && e.push(`chrome-count=${i.length}`);
|
|
1634
|
+
const u = i[0] ?? null;
|
|
1539
1635
|
if (u) {
|
|
1540
1636
|
const d = u.style.zIndex;
|
|
1541
1637
|
d !== "" && d !== "2" && e.push(`chrome-zindex=${d}`);
|
|
1542
1638
|
}
|
|
1543
|
-
const
|
|
1639
|
+
const r = n ? "present" : "absent", s = u ? "present" : "absent";
|
|
1544
1640
|
return {
|
|
1545
1641
|
valid: e.length === 0,
|
|
1546
|
-
mount:
|
|
1642
|
+
mount: r,
|
|
1547
1643
|
chrome: s,
|
|
1548
1644
|
frozen: t,
|
|
1549
1645
|
orphans: e,
|
|
1550
1646
|
timestamp: Date.now()
|
|
1551
1647
|
};
|
|
1552
1648
|
}
|
|
1553
|
-
const
|
|
1554
|
-
function
|
|
1555
|
-
return { id: e, constraint: t, expected:
|
|
1649
|
+
const j = "8px 8px 0px", Z = "64px", X = "inset(0px 0px 60px 0px)", J = "inset(0px -40px -40px -40px)";
|
|
1650
|
+
function _(e, t, l, o, n) {
|
|
1651
|
+
return { id: e, constraint: t, expected: l, actual: o, pass: n };
|
|
1556
1652
|
}
|
|
1557
|
-
function
|
|
1653
|
+
function O(e) {
|
|
1558
1654
|
const t = parseInt(e, 10);
|
|
1559
1655
|
return Number.isFinite(t) ? t : NaN;
|
|
1560
1656
|
}
|
|
1561
|
-
function
|
|
1562
|
-
const e = [], t = document.querySelector(".gloss-panel-mount"),
|
|
1657
|
+
function se() {
|
|
1658
|
+
const e = [], t = document.querySelector(".gloss-panel-mount"), l = t?.querySelector(".gloss-panel-chrome") ?? null, o = 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");
|
|
1563
1659
|
if (!t)
|
|
1564
|
-
e.push(
|
|
1660
|
+
e.push(_("C1", "mount --reveal-y matches clip-path inset-bottom Npx", "mount present", "absent", !1));
|
|
1565
1661
|
else {
|
|
1566
|
-
const
|
|
1662
|
+
const r = getComputedStyle(t), s = r.getPropertyValue("--reveal-y").trim() || t.style.getPropertyValue("--reveal-y").trim(), c = r.clipPath || t.style.clipPath || "", d = c.match(/inset\(\s*0(?:px)?\s+0(?:px)?\s+(\d+)px\s+0(?:px)?\s*\)/), p = d ? parseInt(d[1], 10) : NaN, h = O(s), b = Number.isFinite(p) && Number.isFinite(h) && p === h;
|
|
1567
1663
|
e.push(
|
|
1568
|
-
|
|
1664
|
+
_(
|
|
1569
1665
|
"C1",
|
|
1570
1666
|
"mount --reveal-y matches clip-path inset-bottom Npx",
|
|
1571
|
-
`inset(0 0 ${
|
|
1572
|
-
`--reveal-y=${s || "n/a"} clip-path=${
|
|
1573
|
-
|
|
1667
|
+
`inset(0 0 ${h}px 0) === --reveal-y(${h}px)`,
|
|
1668
|
+
`--reveal-y=${s || "n/a"} clip-path=${c || "n/a"}`,
|
|
1669
|
+
b
|
|
1574
1670
|
)
|
|
1575
1671
|
);
|
|
1576
1672
|
}
|
|
1577
1673
|
if (!t)
|
|
1578
|
-
e.push(
|
|
1674
|
+
e.push(_("C2", "mount padding constant", j, "absent", !1));
|
|
1579
1675
|
else {
|
|
1580
|
-
const
|
|
1581
|
-
e.push(
|
|
1676
|
+
const r = t.style.padding, s = getComputedStyle(t), c = r || s.padding || "", d = c === j || c === "8px 8px 0px 8px";
|
|
1677
|
+
e.push(_("C2", "mount padding constant", j, c || "n/a", d));
|
|
1582
1678
|
}
|
|
1583
1679
|
if (!t)
|
|
1584
|
-
e.push(
|
|
1680
|
+
e.push(_("C3", "mount.bottom resolves to var(--tb-h)=64px", Z, "absent", !1));
|
|
1585
1681
|
else {
|
|
1586
|
-
const s = getComputedStyle(t).bottom || t.style.bottom || "",
|
|
1587
|
-
e.push(
|
|
1682
|
+
const s = getComputedStyle(t).bottom || t.style.bottom || "", c = s === Z;
|
|
1683
|
+
e.push(_("C3", "mount.bottom resolves to var(--tb-h)=64px", Z, s || "n/a", c));
|
|
1588
1684
|
}
|
|
1589
|
-
if (!
|
|
1590
|
-
e.push(
|
|
1685
|
+
if (!l)
|
|
1686
|
+
e.push(_("C4", "panel-chrome height formula = (row-h*3)+(row-gap*3)-8px", "formula match", "absent", !1));
|
|
1591
1687
|
else {
|
|
1592
|
-
const
|
|
1593
|
-
|
|
1594
|
-
),
|
|
1595
|
-
|
|
1596
|
-
), d = s * 3 +
|
|
1688
|
+
const r = getComputedStyle(l), s = O(
|
|
1689
|
+
r.getPropertyValue("--row-h").trim() || l.style.getPropertyValue("--row-h").trim() || "0"
|
|
1690
|
+
), c = O(
|
|
1691
|
+
r.getPropertyValue("--row-gap").trim() || l.style.getPropertyValue("--row-gap").trim() || "0"
|
|
1692
|
+
), d = s * 3 + c * 3 - 8, p = O(r.height || l.style.height || ""), h = Number.isFinite(s) && Number.isFinite(c) && Number.isFinite(p) && Number.isFinite(d) && p === d;
|
|
1597
1693
|
e.push(
|
|
1598
|
-
|
|
1694
|
+
_(
|
|
1599
1695
|
"C4",
|
|
1600
1696
|
"panel-chrome height formula = (row-h*3)+(row-gap*3)-8px",
|
|
1601
|
-
`${d}px (rh=${s} rg=${
|
|
1697
|
+
`${d}px (rh=${s} rg=${c})`,
|
|
1602
1698
|
`${p}px`,
|
|
1603
|
-
|
|
1699
|
+
h
|
|
1604
1700
|
)
|
|
1605
1701
|
);
|
|
1606
1702
|
}
|
|
1607
|
-
if (!
|
|
1703
|
+
if (!o || !l)
|
|
1608
1704
|
e.push(
|
|
1609
|
-
|
|
1705
|
+
_(
|
|
1610
1706
|
"C5",
|
|
1611
1707
|
'coordinator perspective + origin "center bottom"; chrome perspective-style flat',
|
|
1612
1708
|
"present",
|
|
1613
|
-
`coordinator=${
|
|
1709
|
+
`coordinator=${o ? "present" : "absent"} chrome=${l ? "present" : "absent"}`,
|
|
1614
1710
|
!1
|
|
1615
1711
|
)
|
|
1616
1712
|
);
|
|
1617
1713
|
else {
|
|
1618
|
-
const
|
|
1714
|
+
const r = getComputedStyle(o), s = getComputedStyle(l), c = r.perspective || o.style.perspective || "", d = (r.perspectiveOrigin || o.style.perspectiveOrigin || "").trim(), p = s.perspectiveStyle || l.style.perspectiveStyle || "", v = c !== "" && c !== "none" && (d === "center bottom" || d === "50% 100%") && p === "flat";
|
|
1619
1715
|
e.push(
|
|
1620
|
-
|
|
1716
|
+
_(
|
|
1621
1717
|
"C5",
|
|
1622
1718
|
'coordinator perspective + origin "center bottom"; chrome perspective-style flat',
|
|
1623
1719
|
"perspective:not-none, origin:center bottom, chrome-style:flat",
|
|
1624
|
-
`perspective=${
|
|
1625
|
-
|
|
1720
|
+
`perspective=${c} origin=${d} chrome-style=${p}`,
|
|
1721
|
+
v
|
|
1626
1722
|
)
|
|
1627
1723
|
);
|
|
1628
1724
|
}
|
|
1629
1725
|
{
|
|
1630
|
-
let
|
|
1726
|
+
let r = !1, s = "absent";
|
|
1631
1727
|
try {
|
|
1632
|
-
for (const
|
|
1728
|
+
for (const c of Array.from(document.styleSheets)) {
|
|
1633
1729
|
let d = [];
|
|
1634
1730
|
try {
|
|
1635
|
-
d = Array.from(
|
|
1731
|
+
d = Array.from(c.cssRules ?? []);
|
|
1636
1732
|
} catch {
|
|
1637
1733
|
continue;
|
|
1638
1734
|
}
|
|
1639
1735
|
for (const p of d)
|
|
1640
1736
|
if (p.name === "stage-spin") {
|
|
1641
|
-
const
|
|
1642
|
-
|
|
1737
|
+
const b = Array.from(p.cssRules), m = b.find((y) => y.keyText === "0%" || y.keyText === "from"), v = b.find((y) => y.keyText === "100%" || y.keyText === "to"), w = m?.style.transform ?? "", S = v?.style.transform ?? "", T = /rotateY\(\s*0(?:deg)?\s*\)/;
|
|
1738
|
+
r = T.test(w) && T.test(S), s = `0%=${w || "n/a"} 100%=${S || "n/a"}`;
|
|
1643
1739
|
break;
|
|
1644
1740
|
}
|
|
1645
1741
|
if (s !== "absent") break;
|
|
@@ -1648,69 +1744,69 @@ function K() {
|
|
|
1648
1744
|
s = "inspection-error";
|
|
1649
1745
|
}
|
|
1650
1746
|
e.push(
|
|
1651
|
-
|
|
1747
|
+
_(
|
|
1652
1748
|
"C6",
|
|
1653
1749
|
"@keyframes stage-spin 0% AND 100% anchor at rotateY(0)",
|
|
1654
1750
|
"both frames rotateY(0)",
|
|
1655
1751
|
s,
|
|
1656
|
-
|
|
1752
|
+
r
|
|
1657
1753
|
)
|
|
1658
1754
|
);
|
|
1659
1755
|
}
|
|
1660
1756
|
{
|
|
1661
|
-
const
|
|
1757
|
+
const r = document.documentElement, s = getComputedStyle(r), c = s.getPropertyValue("--panel-open-dur").trim() || r.style.getPropertyValue("--panel-open-dur").trim(), d = s.getPropertyValue("--panel-close-dur").trim() || r.style.getPropertyValue("--panel-close-dur").trim(), p = 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(p) && Number.isFinite(h) && p > h;
|
|
1662
1758
|
e.push(
|
|
1663
|
-
|
|
1759
|
+
_("C7", "--panel-open-dur > --panel-close-dur", "open > close", `open=${c || "n/a"} close=${d || "n/a"}`, b)
|
|
1664
1760
|
);
|
|
1665
1761
|
}
|
|
1666
1762
|
if (!n)
|
|
1667
|
-
e.push(
|
|
1763
|
+
e.push(_("C8", "BellCutout zero computed animation/transition", "no inline timing", "absent", !1));
|
|
1668
1764
|
else {
|
|
1669
|
-
const
|
|
1765
|
+
const r = getComputedStyle(n), s = r.animationName || "", c = r.transitionProperty || "", d = (s === "" || s === "none") && (c === "" || c === "none" || c === "all");
|
|
1670
1766
|
e.push(
|
|
1671
|
-
|
|
1767
|
+
_(
|
|
1672
1768
|
"C8",
|
|
1673
1769
|
"BellCutout zero computed animation/transition",
|
|
1674
1770
|
"animation:none AND transition:none",
|
|
1675
|
-
`animation=${s || "n/a"} transition=${
|
|
1771
|
+
`animation=${s || "n/a"} transition=${c || "n/a"}`,
|
|
1676
1772
|
d
|
|
1677
1773
|
)
|
|
1678
1774
|
);
|
|
1679
1775
|
}
|
|
1680
1776
|
if (!t)
|
|
1681
|
-
e.push(
|
|
1777
|
+
e.push(_("C9", "mount closed-state clipPath", X, "absent", !1));
|
|
1682
1778
|
else {
|
|
1683
|
-
const
|
|
1684
|
-
e.push(
|
|
1779
|
+
const r = t.style.clipPath, s = getComputedStyle(t), c = r || s.clipPath || "", d = c === X;
|
|
1780
|
+
e.push(_("C9", "mount closed-state clipPath", X, c || "n/a", d));
|
|
1685
1781
|
}
|
|
1686
|
-
if (!
|
|
1687
|
-
e.push(
|
|
1782
|
+
if (!i)
|
|
1783
|
+
e.push(_("C10", "bell-popover parentElement === document.body (open)", "body", "absent", !1));
|
|
1688
1784
|
else {
|
|
1689
|
-
const
|
|
1785
|
+
const r = i.parentElement, s = r === document.body;
|
|
1690
1786
|
e.push(
|
|
1691
|
-
|
|
1787
|
+
_(
|
|
1692
1788
|
"C10",
|
|
1693
1789
|
"bell-popover parentElement === document.body (open)",
|
|
1694
1790
|
"body",
|
|
1695
|
-
|
|
1791
|
+
r === document.body ? "body" : r?.tagName ?? "n/a",
|
|
1696
1792
|
s
|
|
1697
1793
|
)
|
|
1698
1794
|
);
|
|
1699
1795
|
}
|
|
1700
|
-
if (!
|
|
1701
|
-
e.push(
|
|
1796
|
+
if (!o)
|
|
1797
|
+
e.push(_("C11", "coordinator overflow === visible", "visible", "absent", !1));
|
|
1702
1798
|
else {
|
|
1703
|
-
const s = getComputedStyle(
|
|
1704
|
-
e.push(
|
|
1799
|
+
const s = getComputedStyle(o).overflow || o.style.overflow || "", c = s === "visible";
|
|
1800
|
+
e.push(_("C11", "coordinator overflow === visible", "visible", s || "n/a", c));
|
|
1705
1801
|
}
|
|
1706
1802
|
if (!u)
|
|
1707
|
-
e.push(
|
|
1803
|
+
e.push(_("C12", "toolbar clipPath = inset(0 -40 -40 -40)", J, "absent", !1));
|
|
1708
1804
|
else {
|
|
1709
|
-
const
|
|
1710
|
-
e.push(
|
|
1805
|
+
const r = u.style.clipPath, s = getComputedStyle(u), c = r || s.clipPath || "", d = c === J;
|
|
1806
|
+
e.push(_("C12", "toolbar clipPath = inset(0 -40 -40 -40)", J, c || "n/a", d));
|
|
1711
1807
|
}
|
|
1712
1808
|
return e.push(
|
|
1713
|
-
|
|
1809
|
+
_(
|
|
1714
1810
|
"C13",
|
|
1715
1811
|
"same-position slide via WAAPI (mid-transition getAnimations().length > 0)",
|
|
1716
1812
|
"WAAPI driver wired in orchestrator (source-proof)",
|
|
@@ -1718,7 +1814,7 @@ function K() {
|
|
|
1718
1814
|
"wiring_only"
|
|
1719
1815
|
)
|
|
1720
1816
|
), e.push(
|
|
1721
|
-
|
|
1817
|
+
_(
|
|
1722
1818
|
"C14",
|
|
1723
1819
|
'cross-position handoff transitionend filtered by propertyName="max-height"',
|
|
1724
1820
|
"transitionend filter wired in orchestrator (source-proof)",
|
|
@@ -1727,11 +1823,11 @@ function K() {
|
|
|
1727
1823
|
)
|
|
1728
1824
|
), e;
|
|
1729
1825
|
}
|
|
1730
|
-
function
|
|
1731
|
-
return
|
|
1826
|
+
function ut(e) {
|
|
1827
|
+
return se().find((t) => t.id === e);
|
|
1732
1828
|
}
|
|
1733
|
-
function
|
|
1734
|
-
const e =
|
|
1829
|
+
function pt() {
|
|
1830
|
+
const e = te();
|
|
1735
1831
|
return { q12: [
|
|
1736
1832
|
{
|
|
1737
1833
|
id: "Q12-12",
|
|
@@ -1740,76 +1836,76 @@ function it() {
|
|
|
1740
1836
|
actual: `valid=${e.valid} mount=${e.mount} chrome=${e.chrome} frozen=${e.frozen} orphans=[${e.orphans.join(",")}]`,
|
|
1741
1837
|
pass: e.valid
|
|
1742
1838
|
}
|
|
1743
|
-
], cc:
|
|
1839
|
+
], cc: se() };
|
|
1744
1840
|
}
|
|
1745
|
-
function
|
|
1841
|
+
function mt() {
|
|
1746
1842
|
return {
|
|
1747
|
-
enable:
|
|
1748
|
-
disable:
|
|
1749
|
-
isEnabled: () =>
|
|
1750
|
-
getLastReport: () =>
|
|
1843
|
+
enable: ht,
|
|
1844
|
+
disable: ft,
|
|
1845
|
+
isEnabled: () => F,
|
|
1846
|
+
getLastReport: () => q,
|
|
1751
1847
|
recordTransition: (e) => {
|
|
1752
|
-
|
|
1848
|
+
F && (q = { ...e, ...te() });
|
|
1753
1849
|
},
|
|
1754
1850
|
assertOnce: () => {
|
|
1755
|
-
const e =
|
|
1756
|
-
return
|
|
1851
|
+
const e = te();
|
|
1852
|
+
return q = e, e;
|
|
1757
1853
|
},
|
|
1758
|
-
assertCcOnly:
|
|
1759
|
-
getCcRowById:
|
|
1760
|
-
assertPanelTruths:
|
|
1854
|
+
assertCcOnly: se,
|
|
1855
|
+
getCcRowById: ut,
|
|
1856
|
+
assertPanelTruths: pt
|
|
1761
1857
|
};
|
|
1762
1858
|
}
|
|
1763
|
-
function
|
|
1764
|
-
if (
|
|
1765
|
-
window.__panelsAsserter || (window.__panelsAsserter =
|
|
1859
|
+
function ht() {
|
|
1860
|
+
if (F = !0, typeof window > "u") return;
|
|
1861
|
+
window.__panelsAsserter || (window.__panelsAsserter = mt(), console.info(
|
|
1766
1862
|
"[panels] asserter enabled (P3b Q12-12 + P6 W5 cc:C1..C14). Inspect via window.__panelsAsserter."
|
|
1767
1863
|
));
|
|
1768
1864
|
}
|
|
1769
|
-
function
|
|
1770
|
-
|
|
1865
|
+
function ft() {
|
|
1866
|
+
F = !1;
|
|
1771
1867
|
}
|
|
1772
1868
|
export {
|
|
1773
|
-
|
|
1774
|
-
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1869
|
+
It as COMMITS,
|
|
1870
|
+
wt as CatalogAddShell,
|
|
1871
|
+
je as CatalogFooter,
|
|
1872
|
+
Et as CatalogReplaceShell,
|
|
1873
|
+
ae as CatalogStateContext,
|
|
1874
|
+
Ue as CloneCard,
|
|
1875
|
+
Fe as CloneStage,
|
|
1876
|
+
be as MOCK_DEFAULT_LENS,
|
|
1877
|
+
ge as MOCK_LENSES,
|
|
1878
|
+
ne as MOCK_LENS_META,
|
|
1879
|
+
Xe as MOCK_PAGES,
|
|
1880
|
+
ve as MOCK_TILES_BY_LENS,
|
|
1881
|
+
xt as PANEL_IDS,
|
|
1882
|
+
Ze as PageMgmtFooter,
|
|
1883
|
+
Pt as PageMgmtShell,
|
|
1884
|
+
Ce as PageMgmtStateContext,
|
|
1885
|
+
M as PanelChrome,
|
|
1886
|
+
Mt as PanelHost,
|
|
1887
|
+
At as PanelHostShell,
|
|
1888
|
+
I as PanelMount,
|
|
1889
|
+
$t as PanelProvider,
|
|
1890
|
+
kt as PanelSlot,
|
|
1891
|
+
St as SettingsShell,
|
|
1892
|
+
se as assertCcOnly,
|
|
1893
|
+
te as assertPanelDomShape,
|
|
1894
|
+
pt as assertPanelTruths,
|
|
1895
|
+
Rt as deriveSurfaceState,
|
|
1896
|
+
ft as disablePanelAsserter,
|
|
1897
|
+
ht as enablePanelAsserter,
|
|
1898
|
+
ut as getCcRowById,
|
|
1899
|
+
Ft as initialState,
|
|
1900
|
+
ue as positionKey,
|
|
1901
|
+
Ut as reducer,
|
|
1902
|
+
ct as transitionToPanel,
|
|
1903
|
+
qe as useCatalogState,
|
|
1904
|
+
Nt as useEditingCardId,
|
|
1905
|
+
_e as usePageMgmtState,
|
|
1906
|
+
we as usePanelContext,
|
|
1907
|
+
U as usePanelContextOptional,
|
|
1908
|
+
zt as usePanelCoordinator,
|
|
1909
|
+
me as useReducedMotionPanel,
|
|
1910
|
+
Dt as useTransitionToPanel
|
|
1815
1911
|
};
|