@mt-gloss/ui 0.1.106 → 0.1.108
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/{BaseAsyncButton-Cq_l7clO.js → BaseAsyncButton-aDQ_TjJi.js} +30 -29
- package/BaseText-Dxbk1JJa.js +66 -0
- package/{COMMITS-kaUvc5jL.js → COMMITS-DG0Q_9DU.js} +89 -81
- package/{Expandable-BcmIxWR8.js → Expandable-DFHxVkCF.js} +3493 -4181
- package/MetricCard-Cyoxhb_S.js +697 -0
- package/{UIContext-DP6JGCto.js → UIContext-Dm0GYHFT.js} +564 -626
- package/catalog.js +122 -120
- package/composites-panels.js +1124 -537
- package/index.js +329 -327
- package/internals.js +81 -80
- package/lib/composites/panels/PanelChrome.d.ts +15 -1
- package/lib/composites/panels/coordinator/settingsBufferSchemas.d.ts +2 -2
- package/lib/composites/panels/index.d.ts +2 -2
- package/lib/composites/panels/shells/CatalogAddShell.d.ts +6 -4
- package/lib/composites/panels/shells/CatalogReplaceShell.d.ts +2 -2
- package/lib/composites/panels/shells/PageMgmtShell.d.ts +1 -1
- package/lib/composites/panels/shells/SettingsShell.d.ts +46 -3
- package/lib/composites/panels/shells/index.d.ts +2 -2
- package/lib/composites/panels/shells/internals/CatalogLensPicker.d.ts +14 -1
- package/lib/composites/panels/shells/internals/CatalogTileGrid.d.ts +3 -0
- package/lib/composites/panels/shells/internals/PageMgmtFooter.d.ts +7 -0
- package/lib/composites/panels/shells/internals/PageMgmtRow.d.ts +3 -0
- package/lib/composites/panels/shells/internals/catalog-mocks.d.ts +59 -7
- package/lib/composites/panels/shells/settings/SlotsControls.d.ts +5 -1
- package/package.json +1 -1
- package/ui.css +1 -1
|
@@ -1,48 +1,49 @@
|
|
|
1
1
|
import { jsx as o, jsxs as m } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
3
|
-
import b, { useEffect as
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
import { c as p } from "./BaseText-Dxbk1JJa.js";
|
|
3
|
+
import b, { useEffect as B } from "react";
|
|
4
|
+
import { b as f, ah as g, e as _ } from "./UIContext-Dm0GYHFT.js";
|
|
5
|
+
const h = function(t) {
|
|
6
|
+
const { as: e, htmlFor: s, className: l, ...n } = t;
|
|
6
7
|
return /* @__PURE__ */ o(
|
|
7
8
|
p,
|
|
8
9
|
{
|
|
9
10
|
as: e || "label",
|
|
10
11
|
htmlFor: s,
|
|
11
|
-
className:
|
|
12
|
+
className: l ? `gloss-base-label ${l}` : "gloss-base-label",
|
|
12
13
|
...n
|
|
13
14
|
}
|
|
14
15
|
);
|
|
15
16
|
};
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
const { as: e, className: s, ...
|
|
17
|
+
h.displayName = "BaseLabel";
|
|
18
|
+
const N = function(t) {
|
|
19
|
+
const { as: e, className: s, ...l } = t;
|
|
19
20
|
return /* @__PURE__ */ o(
|
|
20
21
|
p,
|
|
21
22
|
{
|
|
22
23
|
as: e || "span",
|
|
23
24
|
"data-role": "value",
|
|
24
25
|
className: s ? `gloss-base-value ${s}` : "gloss-base-value",
|
|
25
|
-
...
|
|
26
|
+
...l
|
|
26
27
|
}
|
|
27
28
|
);
|
|
28
29
|
};
|
|
29
|
-
|
|
30
|
+
N.displayName = "BaseValue";
|
|
30
31
|
function v({
|
|
31
32
|
definition: a,
|
|
32
|
-
open:
|
|
33
|
+
open: t,
|
|
33
34
|
onDismiss: e,
|
|
34
35
|
className: s,
|
|
35
|
-
style:
|
|
36
|
+
style: l,
|
|
36
37
|
children: n
|
|
37
38
|
}) {
|
|
38
39
|
const c = a?.position ?? "top-right", r = a?.duration ?? 0;
|
|
39
|
-
|
|
40
|
-
if (!
|
|
40
|
+
B(() => {
|
|
41
|
+
if (!t || r <= 0 || !e) return;
|
|
41
42
|
const y = setTimeout(() => {
|
|
42
43
|
e();
|
|
43
44
|
}, r);
|
|
44
45
|
return () => clearTimeout(y);
|
|
45
|
-
}, [
|
|
46
|
+
}, [t, r, e]);
|
|
46
47
|
const i = {
|
|
47
48
|
portal: !0,
|
|
48
49
|
dismissOnClickOutside: !1,
|
|
@@ -54,16 +55,16 @@ function v({
|
|
|
54
55
|
zIndex: a?.zIndex
|
|
55
56
|
}, u = ["gloss-base-toast", `gloss-base-toast--${c}`];
|
|
56
57
|
return s && u.push(s), /* @__PURE__ */ o(
|
|
57
|
-
|
|
58
|
+
f,
|
|
58
59
|
{
|
|
59
60
|
definition: i,
|
|
60
|
-
open:
|
|
61
|
+
open: t,
|
|
61
62
|
onDismiss: e,
|
|
62
63
|
children: /* @__PURE__ */ o(
|
|
63
64
|
"div",
|
|
64
65
|
{
|
|
65
66
|
className: u.join(" "),
|
|
66
|
-
style:
|
|
67
|
+
style: l,
|
|
67
68
|
role: "status",
|
|
68
69
|
"aria-live": "polite",
|
|
69
70
|
children: n
|
|
@@ -82,11 +83,11 @@ const A = {
|
|
|
82
83
|
iconColor: "--_icon-color"
|
|
83
84
|
};
|
|
84
85
|
function C(a) {
|
|
85
|
-
const { definition:
|
|
86
|
+
const { definition: t, className: e, style: s, role: l, children: n, ...c } = a, { style: r, dataAttrs: i } = g(t, A);
|
|
86
87
|
return /* @__PURE__ */ o(
|
|
87
88
|
"div",
|
|
88
89
|
{
|
|
89
|
-
role:
|
|
90
|
+
role: l || "alert",
|
|
90
91
|
className: e ? `gloss-base-alert ${e}` : "gloss-base-alert",
|
|
91
92
|
style: { ...r, ...s },
|
|
92
93
|
...i,
|
|
@@ -102,8 +103,8 @@ const S = {
|
|
|
102
103
|
fontSize: "--_font-size"
|
|
103
104
|
};
|
|
104
105
|
function $(a) {
|
|
105
|
-
const { definition:
|
|
106
|
-
|
|
106
|
+
const { definition: t, separator: e = "/", className: s, style: l, children: n } = a, { style: c } = g(
|
|
107
|
+
t,
|
|
107
108
|
S
|
|
108
109
|
), r = b.Children.toArray(n);
|
|
109
110
|
return /* @__PURE__ */ o(
|
|
@@ -111,7 +112,7 @@ function $(a) {
|
|
|
111
112
|
{
|
|
112
113
|
"aria-label": "Breadcrumb",
|
|
113
114
|
className: s ? `gloss-base-breadcrumbs-nav ${s}` : "gloss-base-breadcrumbs-nav",
|
|
114
|
-
style: { ...c, ...
|
|
115
|
+
style: { ...c, ...l },
|
|
115
116
|
children: /* @__PURE__ */ o("ol", { className: "gloss-base-breadcrumbs", children: r.map((i, d) => {
|
|
116
117
|
const u = d === r.length - 1;
|
|
117
118
|
return /* @__PURE__ */ m(b.Fragment, { children: [
|
|
@@ -132,10 +133,10 @@ function $(a) {
|
|
|
132
133
|
$.displayName = "BaseBreadcrumbs";
|
|
133
134
|
function T(a) {
|
|
134
135
|
const {
|
|
135
|
-
as:
|
|
136
|
+
as: t,
|
|
136
137
|
definition: e,
|
|
137
138
|
loading: s = !1,
|
|
138
|
-
disabled:
|
|
139
|
+
disabled: l = !1,
|
|
139
140
|
className: n,
|
|
140
141
|
style: c,
|
|
141
142
|
children: r,
|
|
@@ -147,9 +148,9 @@ function T(a) {
|
|
|
147
148
|
return /* @__PURE__ */ m(
|
|
148
149
|
_,
|
|
149
150
|
{
|
|
150
|
-
as:
|
|
151
|
+
as: t,
|
|
151
152
|
definition: e,
|
|
152
|
-
disabled:
|
|
153
|
+
disabled: l || s,
|
|
153
154
|
loading: s,
|
|
154
155
|
className: d,
|
|
155
156
|
style: c,
|
|
@@ -170,8 +171,8 @@ function T(a) {
|
|
|
170
171
|
}
|
|
171
172
|
T.displayName = "BaseAsyncButton";
|
|
172
173
|
export {
|
|
173
|
-
|
|
174
|
-
|
|
174
|
+
h as B,
|
|
175
|
+
N as a,
|
|
175
176
|
v as b,
|
|
176
177
|
C as c,
|
|
177
178
|
$ as d,
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
2
|
+
function f(r) {
|
|
3
|
+
const { as: n, definition: a, className: s, style: o, children: d, ...l } = r, e = n || "div", i = { ...o };
|
|
4
|
+
a?.padding && (i["--_padding"] = a.padding), a?.paddingX && (i["--_px"] = a.paddingX), a?.paddingY && (i["--_py"] = a.paddingY), a?.margin && (i["--_margin"] = a.margin), a?.gap && (i["--_gap"] = a.gap), a?.bg && (i["--_bg"] = a.bg), a?.border && (i["--_border"] = a.border), a?.radius && (i["--_radius"] = a.radius);
|
|
5
|
+
const t = {};
|
|
6
|
+
return a?.display && (t["data-display"] = a.display), a?.direction && (t["data-direction"] = a.direction), a?.align && (t["data-align"] = a.align), a?.justify && (t["data-justify"] = a.justify), a?.wrap && (t["data-wrap"] = ""), a?.paddingX && (t["data-has-px"] = ""), a?.paddingY && (t["data-has-py"] = ""), /* @__PURE__ */ c(
|
|
7
|
+
e,
|
|
8
|
+
{
|
|
9
|
+
className: s ? `gloss-base-box ${s}` : "gloss-base-box",
|
|
10
|
+
style: i,
|
|
11
|
+
...t,
|
|
12
|
+
...l,
|
|
13
|
+
children: d
|
|
14
|
+
}
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
f.displayName = "BaseBox";
|
|
18
|
+
function g(r) {
|
|
19
|
+
const { as: n, definition: a, className: s, style: o, ...d } = r, l = n || "hr", e = { ...o };
|
|
20
|
+
a?.color && (e["--_color"] = a.color), a?.thickness && (e["--_thickness"] = a.thickness), a?.spacing && (e["--_spacing"] = a.spacing);
|
|
21
|
+
const i = {};
|
|
22
|
+
return a?.orientation === "vertical" && (i["data-orientation"] = "vertical"), /* @__PURE__ */ c(
|
|
23
|
+
l,
|
|
24
|
+
{
|
|
25
|
+
className: s ? `gloss-base-divider ${s}` : "gloss-base-divider",
|
|
26
|
+
style: e,
|
|
27
|
+
...i,
|
|
28
|
+
...d
|
|
29
|
+
}
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
g.displayName = "BaseDivider";
|
|
33
|
+
function p(r) {
|
|
34
|
+
const { as: n, definition: a, className: s, style: o, children: d, ...l } = r, e = n || "span", i = { ...o };
|
|
35
|
+
a?.fontFamily && (i["--_font-family"] = a.fontFamily), a?.fontSize && (i["--_font-size"] = a.fontSize), a?.fontWeight && (i["--_font-weight"] = a.fontWeight), a?.lineHeight && (i["--_line-height"] = a.lineHeight), a?.letterSpacing && (i["--_letter-spacing"] = a.letterSpacing), a?.color && (i["--_color"] = a.color);
|
|
36
|
+
const t = {};
|
|
37
|
+
return a?.align && (t["data-align"] = a.align), a?.truncate && (t["data-truncate"] = ""), a?.wrap && (t["data-wrap"] = a.wrap), /* @__PURE__ */ c(
|
|
38
|
+
e,
|
|
39
|
+
{
|
|
40
|
+
className: s ? `gloss-base-typography ${s}` : "gloss-base-typography",
|
|
41
|
+
style: i,
|
|
42
|
+
...t,
|
|
43
|
+
...l,
|
|
44
|
+
children: d
|
|
45
|
+
}
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
p.displayName = "BaseTypography";
|
|
49
|
+
const y = function(n) {
|
|
50
|
+
const { as: a, className: s, ...o } = n;
|
|
51
|
+
return /* @__PURE__ */ c(
|
|
52
|
+
p,
|
|
53
|
+
{
|
|
54
|
+
as: a || "span",
|
|
55
|
+
className: s ? `gloss-base-text ${s}` : "gloss-base-text",
|
|
56
|
+
...o
|
|
57
|
+
}
|
|
58
|
+
);
|
|
59
|
+
};
|
|
60
|
+
y.displayName = "BaseText";
|
|
61
|
+
export {
|
|
62
|
+
f as B,
|
|
63
|
+
y as a,
|
|
64
|
+
g as b,
|
|
65
|
+
p as c
|
|
66
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { jsx as c, jsxs as
|
|
1
|
+
import { jsx as c, jsxs as E } from "react/jsx-runtime";
|
|
2
2
|
import { motion as L } from "framer-motion";
|
|
3
|
-
import { useSyncExternalStore as O, createContext as T, useContext as
|
|
4
|
-
import { z as
|
|
3
|
+
import { useSyncExternalStore as O, createContext as T, useContext as y, useReducer as N, useRef as C, useEffect as d, useMemo as S, useCallback as I, useLayoutEffect as _, useState as w } from "react";
|
|
4
|
+
import { z as f } from "zod";
|
|
5
5
|
const x = "(prefers-reduced-motion: reduce)";
|
|
6
6
|
function b() {
|
|
7
7
|
return typeof window > "u" || typeof window.matchMedia != "function" ? null : window.matchMedia(x);
|
|
@@ -29,7 +29,7 @@ const R = {
|
|
|
29
29
|
slots: "Slots",
|
|
30
30
|
color: "Color"
|
|
31
31
|
};
|
|
32
|
-
function
|
|
32
|
+
function B({
|
|
33
33
|
dimensions: e,
|
|
34
34
|
activeTab: n,
|
|
35
35
|
onSelect: t,
|
|
@@ -39,8 +39,8 @@ function k({
|
|
|
39
39
|
}) {
|
|
40
40
|
const s = P(), i = r ?? s;
|
|
41
41
|
if (e.length < 2) return null;
|
|
42
|
-
const u = (o) => l?.[o] ?? R[o],
|
|
43
|
-
o.key === "ArrowRight" ? (o.preventDefault(), t(e[(
|
|
42
|
+
const u = (o) => l?.[o] ?? R[o], h = (o, p) => {
|
|
43
|
+
o.key === "ArrowRight" ? (o.preventDefault(), t(e[(p + 1) % e.length])) : o.key === "ArrowLeft" ? (o.preventDefault(), t(e[(p - 1 + e.length) % e.length])) : o.key === "Home" ? (o.preventDefault(), t(e[0])) : o.key === "End" && (o.preventDefault(), t(e[e.length - 1]));
|
|
44
44
|
};
|
|
45
45
|
return /* @__PURE__ */ c(
|
|
46
46
|
"div",
|
|
@@ -48,23 +48,23 @@ function k({
|
|
|
48
48
|
role: "tablist",
|
|
49
49
|
"aria-label": a,
|
|
50
50
|
className: "settings-tab-strip",
|
|
51
|
-
children: e.map((o,
|
|
52
|
-
const
|
|
53
|
-
return /* @__PURE__ */
|
|
51
|
+
children: e.map((o, p) => {
|
|
52
|
+
const g = n === o;
|
|
53
|
+
return /* @__PURE__ */ E(
|
|
54
54
|
"button",
|
|
55
55
|
{
|
|
56
56
|
role: "tab",
|
|
57
57
|
type: "button",
|
|
58
58
|
id: `settings-tab-${o}`,
|
|
59
|
-
"aria-selected":
|
|
59
|
+
"aria-selected": g,
|
|
60
60
|
"aria-controls": `settings-tabpanel-${o}`,
|
|
61
|
-
tabIndex:
|
|
62
|
-
className: `settings-tab-strip__tab${
|
|
61
|
+
tabIndex: g ? 0 : -1,
|
|
62
|
+
className: `settings-tab-strip__tab${g ? " settings-tab-strip__tab--active" : ""}`,
|
|
63
63
|
onClick: () => t(o),
|
|
64
|
-
onKeyDown: (D) =>
|
|
64
|
+
onKeyDown: (D) => h(D, p),
|
|
65
65
|
children: [
|
|
66
66
|
/* @__PURE__ */ c("span", { className: "settings-tab-strip__label", children: u(o) }),
|
|
67
|
-
|
|
67
|
+
g && !i && /* @__PURE__ */ c(
|
|
68
68
|
L.span,
|
|
69
69
|
{
|
|
70
70
|
layoutId: "settings-active-tab-indicator",
|
|
@@ -82,10 +82,10 @@ function k({
|
|
|
82
82
|
}
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
|
-
|
|
86
|
-
const
|
|
87
|
-
function
|
|
88
|
-
const e =
|
|
85
|
+
B.displayName = "SettingsTabStrip";
|
|
86
|
+
const v = T(null);
|
|
87
|
+
function k() {
|
|
88
|
+
const e = y(v);
|
|
89
89
|
if (!e)
|
|
90
90
|
throw new Error(
|
|
91
91
|
"[panels] usePanelContext must be used inside <PanelProvider>. See @mt-gloss/ui/composites/panels."
|
|
@@ -93,10 +93,10 @@ function B() {
|
|
|
93
93
|
return e;
|
|
94
94
|
}
|
|
95
95
|
function ie() {
|
|
96
|
-
return
|
|
96
|
+
return y(v);
|
|
97
97
|
}
|
|
98
|
-
const M =
|
|
99
|
-
function
|
|
98
|
+
const M = f.number().min(0).max(100), U = f.number().min(7).max(90), V = f.enum(["#1d6fd8", "#10b981", "#f59e0b", "#ef4444", "#8b5cf6"]), K = f.array(f.string().min(1)).max(3);
|
|
99
|
+
function j(e, n) {
|
|
100
100
|
if (e === "threshold") {
|
|
101
101
|
const t = M.safeParse(n);
|
|
102
102
|
return t.success ? t.data : 80;
|
|
@@ -109,9 +109,13 @@ function K(e, n) {
|
|
|
109
109
|
const t = V.safeParse(n);
|
|
110
110
|
return t.success ? t.data : null;
|
|
111
111
|
}
|
|
112
|
+
if (e === "slots") {
|
|
113
|
+
const t = K.safeParse(n);
|
|
114
|
+
return t.success ? t.data : [];
|
|
115
|
+
}
|
|
112
116
|
return n;
|
|
113
117
|
}
|
|
114
|
-
const
|
|
118
|
+
const q = {
|
|
115
119
|
activePanelId: null,
|
|
116
120
|
activeTrigger: null,
|
|
117
121
|
bellCutoutOpen: !1,
|
|
@@ -121,8 +125,8 @@ const j = {
|
|
|
121
125
|
bufferByCard: {},
|
|
122
126
|
lastClose: null,
|
|
123
127
|
pendingSideEffects: []
|
|
124
|
-
},
|
|
125
|
-
function
|
|
128
|
+
}, m = /* @__PURE__ */ new Set(["settings"]);
|
|
129
|
+
function z(e, n) {
|
|
126
130
|
if (e == null || e.kind !== n.kind) return !1;
|
|
127
131
|
switch (e.kind) {
|
|
128
132
|
case "bell":
|
|
@@ -137,7 +141,7 @@ function q(e, n) {
|
|
|
137
141
|
return e.action === n.action && e.blockedCardId === n.blockedCardId && e.activeCardId === n.activeCardId;
|
|
138
142
|
}
|
|
139
143
|
}
|
|
140
|
-
function
|
|
144
|
+
function Y(e, n) {
|
|
141
145
|
switch (n.type) {
|
|
142
146
|
case "OPEN_PANEL": {
|
|
143
147
|
if (e.activePanelId && e.isDirty)
|
|
@@ -155,7 +159,7 @@ function z(e, n) {
|
|
|
155
159
|
}
|
|
156
160
|
]
|
|
157
161
|
};
|
|
158
|
-
if (e.activePanelId === n.panelId &&
|
|
162
|
+
if (e.activePanelId === n.panelId && z(e.activeTrigger, n.trigger))
|
|
159
163
|
return e;
|
|
160
164
|
const t = e.activePanelId != null ? [
|
|
161
165
|
{
|
|
@@ -217,7 +221,7 @@ function z(e, n) {
|
|
|
217
221
|
case "CLOSE_BELL_CUTOUT":
|
|
218
222
|
return e.bellCutoutOpen ? { ...e, bellCutoutOpen: !1 } : e;
|
|
219
223
|
case "SET_BUFFER_VALUE": {
|
|
220
|
-
if (e.activePanelId == null || !
|
|
224
|
+
if (e.activePanelId == null || !m.has(e.activePanelId))
|
|
221
225
|
return {
|
|
222
226
|
...e,
|
|
223
227
|
pendingSideEffects: [
|
|
@@ -225,7 +229,7 @@ function z(e, n) {
|
|
|
225
229
|
{ type: "INVALID_DISPATCH", reason: "no-buffer-panel" }
|
|
226
230
|
]
|
|
227
231
|
};
|
|
228
|
-
const t = e.bufferByCard[n.cardId], r = t == null, l =
|
|
232
|
+
const t = e.bufferByCard[n.cardId], r = t == null, l = j(n.key, n.value);
|
|
229
233
|
if (!r && t.changes[n.key] === l)
|
|
230
234
|
return e;
|
|
231
235
|
const s = { kind: "settings", changes: {
|
|
@@ -263,7 +267,7 @@ function z(e, n) {
|
|
|
263
267
|
};
|
|
264
268
|
}
|
|
265
269
|
case "BUFFER_BECOMES_DIRTY":
|
|
266
|
-
return e.activePanelId == null || !
|
|
270
|
+
return e.activePanelId == null || !m.has(e.activePanelId) ? {
|
|
267
271
|
...e,
|
|
268
272
|
pendingSideEffects: [
|
|
269
273
|
...e.pendingSideEffects,
|
|
@@ -299,11 +303,11 @@ function z(e, n) {
|
|
|
299
303
|
return e;
|
|
300
304
|
}
|
|
301
305
|
}
|
|
302
|
-
function
|
|
306
|
+
function $(e) {
|
|
303
307
|
return e.activePanelId === "notification-center" ? "notif-center" : e.activePanelId != null && e.bellCutoutOpen ? e.isDirty ? "panel-dirty+cutout" : "panel-clean+cutout" : e.activePanelId != null ? e.isDirty ? "panel-dirty" : "panel-clean" : e.bellCutoutOpen ? "bell-cutout-only" : "idle";
|
|
304
308
|
}
|
|
305
|
-
function
|
|
306
|
-
const [e, n] =
|
|
309
|
+
function Q() {
|
|
310
|
+
const [e, n] = N(Y, q), t = C([]), r = C(null);
|
|
307
311
|
d(() => () => {
|
|
308
312
|
r.current != null && (window.clearTimeout(r.current), r.current = null);
|
|
309
313
|
}, []), d(() => {
|
|
@@ -336,53 +340,57 @@ function $() {
|
|
|
336
340
|
s
|
|
337
341
|
];
|
|
338
342
|
}, [e.lastClose]);
|
|
339
|
-
const l =
|
|
340
|
-
() =>
|
|
343
|
+
const l = S(
|
|
344
|
+
() => $(e),
|
|
341
345
|
[e.activePanelId, e.bellCutoutOpen, e.isDirty]
|
|
342
346
|
), a = I(() => t.current.slice(), []);
|
|
343
347
|
return { state: e, surfaceState: l, dispatch: n, getCloseLog: a };
|
|
344
348
|
}
|
|
345
|
-
function
|
|
346
|
-
const n =
|
|
349
|
+
function oe({ children: e }) {
|
|
350
|
+
const n = Q(), t = S(
|
|
347
351
|
() => n,
|
|
348
352
|
// Re-publish only when one of the four coordinator fields changes identity.
|
|
349
353
|
// dispatch + getCloseLog are stable. state + surfaceState change on dispatch.
|
|
350
354
|
[n.state, n.surfaceState, n.dispatch, n.getCloseLog]
|
|
351
355
|
);
|
|
352
|
-
return /* @__PURE__ */ c(
|
|
356
|
+
return /* @__PURE__ */ c(v.Provider, { value: t, children: e });
|
|
353
357
|
}
|
|
354
|
-
const
|
|
358
|
+
const W = {
|
|
355
359
|
position: "relative",
|
|
356
360
|
pointerEvents: "auto"
|
|
357
361
|
};
|
|
358
|
-
function
|
|
359
|
-
return /* @__PURE__ */
|
|
362
|
+
function G({ children: e, onClose: n, footer: t, title: r, variant: l = "default" }) {
|
|
363
|
+
return /* @__PURE__ */ E(
|
|
360
364
|
"div",
|
|
361
365
|
{
|
|
362
366
|
"data-chrome": "panel",
|
|
367
|
+
"data-chrome-variant": l,
|
|
363
368
|
role: "dialog",
|
|
364
369
|
"aria-modal": "true",
|
|
365
|
-
className: "gloss-panel-chrome",
|
|
366
|
-
style:
|
|
370
|
+
className: l === "merged-stage" ? "gloss-panel-chrome gloss-panel-chrome--merged-stage" : "gloss-panel-chrome",
|
|
371
|
+
style: W,
|
|
367
372
|
children: [
|
|
368
|
-
/* @__PURE__ */
|
|
369
|
-
"
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
373
|
+
/* @__PURE__ */ E("div", { className: "gloss-panel-chrome__header", children: [
|
|
374
|
+
r != null && /* @__PURE__ */ c("span", { className: "gloss-panel-chrome__title", children: r }),
|
|
375
|
+
/* @__PURE__ */ c(
|
|
376
|
+
"button",
|
|
377
|
+
{
|
|
378
|
+
id: "panel-close",
|
|
379
|
+
type: "button",
|
|
380
|
+
"aria-label": "Close panel",
|
|
381
|
+
className: "gloss-panel-chrome__close",
|
|
382
|
+
onClick: n,
|
|
383
|
+
children: "×"
|
|
384
|
+
}
|
|
385
|
+
)
|
|
386
|
+
] }),
|
|
379
387
|
/* @__PURE__ */ c("div", { className: "gloss-panel-chrome__body", children: e }),
|
|
380
388
|
t != null && /* @__PURE__ */ c("div", { className: "gloss-panel-chrome__footer", children: t })
|
|
381
389
|
]
|
|
382
390
|
}
|
|
383
391
|
);
|
|
384
392
|
}
|
|
385
|
-
function
|
|
393
|
+
function J(e) {
|
|
386
394
|
if (process.env.NODE_ENV === "production" || !e || !e.parentElement) return;
|
|
387
395
|
const n = e.parentElement, t = window.getComputedStyle(n);
|
|
388
396
|
t.perspective === "none" && console.warn(
|
|
@@ -393,12 +401,12 @@ function G(e) {
|
|
|
393
401
|
n
|
|
394
402
|
);
|
|
395
403
|
}
|
|
396
|
-
function
|
|
397
|
-
const t = P(), r =
|
|
404
|
+
function X({ isOpen: e, children: n }) {
|
|
405
|
+
const t = P(), r = C(null);
|
|
398
406
|
_(() => {
|
|
399
|
-
|
|
407
|
+
J(r.current);
|
|
400
408
|
}, []);
|
|
401
|
-
const [l, a] =
|
|
409
|
+
const [l, a] = w(!1);
|
|
402
410
|
d(() => {
|
|
403
411
|
if (!e) {
|
|
404
412
|
a(!1);
|
|
@@ -423,7 +431,7 @@ function J({ isOpen: e, children: n }) {
|
|
|
423
431
|
}
|
|
424
432
|
);
|
|
425
433
|
}
|
|
426
|
-
const
|
|
434
|
+
const Z = {
|
|
427
435
|
position: "fixed",
|
|
428
436
|
top: 0,
|
|
429
437
|
left: 0,
|
|
@@ -434,7 +442,7 @@ const X = {
|
|
|
434
442
|
overflow: "visible",
|
|
435
443
|
pointerEvents: "none",
|
|
436
444
|
zIndex: 55
|
|
437
|
-
},
|
|
445
|
+
}, ee = {
|
|
438
446
|
position: "fixed",
|
|
439
447
|
top: "var(--tb-h, 60px)",
|
|
440
448
|
left: 0,
|
|
@@ -450,21 +458,21 @@ const X = {
|
|
|
450
458
|
pointerEvents: "none",
|
|
451
459
|
background: "rgba(0, 0, 0, 0.04)"
|
|
452
460
|
};
|
|
453
|
-
function
|
|
454
|
-
const { state: n, dispatch: t, getCloseLog: r } =
|
|
461
|
+
function ae({ panelComponents: e }) {
|
|
462
|
+
const { state: n, dispatch: t, getCloseLog: r } = k(), l = n.activePanelId ? e[n.activePanelId] : null;
|
|
455
463
|
n.activePanelId && !l && process.env.NODE_ENV !== "production" && console.error(
|
|
456
464
|
"[panels] No panel component registered for activePanelId:",
|
|
457
465
|
n.activePanelId
|
|
458
466
|
), d(() => {
|
|
459
467
|
if (n.activePanelId == null) return;
|
|
460
|
-
function u(
|
|
461
|
-
|
|
468
|
+
function u(h) {
|
|
469
|
+
h.key === "Escape" && t({ type: "CLOSE_PANEL", reason: "escape-key" });
|
|
462
470
|
}
|
|
463
471
|
return document.addEventListener("keydown", u), () => {
|
|
464
472
|
document.removeEventListener("keydown", u);
|
|
465
473
|
};
|
|
466
474
|
}, [n.activePanelId, t]);
|
|
467
|
-
const a =
|
|
475
|
+
const a = C(n);
|
|
468
476
|
_(() => {
|
|
469
477
|
a.current = n;
|
|
470
478
|
}), d(() => {
|
|
@@ -481,17 +489,17 @@ function oe({ panelComponents: e }) {
|
|
|
481
489
|
const s = I(() => {
|
|
482
490
|
t({ type: "CLOSE_PANEL", reason: "nav-escape-hatch" });
|
|
483
491
|
}, [t]), i = n.activePanelId != null && l != null;
|
|
484
|
-
return /* @__PURE__ */
|
|
492
|
+
return /* @__PURE__ */ E("div", { "data-panel-host": "true", style: Z, children: [
|
|
485
493
|
i && /* @__PURE__ */ c(
|
|
486
494
|
"div",
|
|
487
495
|
{
|
|
488
496
|
"data-panel-scrim": "true",
|
|
489
|
-
style:
|
|
497
|
+
style: ee,
|
|
490
498
|
onClick: s
|
|
491
499
|
}
|
|
492
500
|
),
|
|
493
|
-
/* @__PURE__ */ c(
|
|
494
|
-
|
|
501
|
+
/* @__PURE__ */ c(X, { isOpen: i, children: i && /* @__PURE__ */ c(
|
|
502
|
+
G,
|
|
495
503
|
{
|
|
496
504
|
isOpen: !0,
|
|
497
505
|
onClose: () => t({ type: "CLOSE_PANEL", reason: "header-x" }),
|
|
@@ -500,7 +508,7 @@ function oe({ panelComponents: e }) {
|
|
|
500
508
|
) })
|
|
501
509
|
] });
|
|
502
510
|
}
|
|
503
|
-
const
|
|
511
|
+
const se = {
|
|
504
512
|
"apply-button": !0,
|
|
505
513
|
// the ONLY commit reason
|
|
506
514
|
"cancel-button": !1,
|
|
@@ -514,17 +522,17 @@ const ae = {
|
|
|
514
522
|
"nav-escape-hatch": !1
|
|
515
523
|
};
|
|
516
524
|
export {
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
+
se as C,
|
|
526
|
+
oe as P,
|
|
527
|
+
B as S,
|
|
528
|
+
k as a,
|
|
529
|
+
ae as b,
|
|
530
|
+
G as c,
|
|
531
|
+
Q as d,
|
|
532
|
+
$ as e,
|
|
525
533
|
P as f,
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
534
|
+
X as g,
|
|
535
|
+
q as i,
|
|
536
|
+
Y as r,
|
|
529
537
|
ie as u
|
|
530
538
|
};
|