@mt-gloss/ui 0.0.47 → 0.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/{BaseAsyncButton-nFOdhiBv.js → BaseAsyncButton-usdApZUY.js} +8 -8
  2. package/{Expandable-BdC9RXOI.js → Expandable-CsLVYNv3.js} +4769 -4877
  3. package/catalog.js +39 -40
  4. package/index.d.ts +2 -0
  5. package/index.js +1639 -1326
  6. package/internals.js +1 -1
  7. package/lib/composites/dashboard/BottomToolbar/BottomToolbar.d.ts +19 -0
  8. package/lib/composites/dashboard/BottomToolbar/SectionDots.d.ts +14 -0
  9. package/lib/composites/dashboard/BottomToolbar/index.d.ts +4 -0
  10. package/lib/composites/dashboard/index.d.ts +1 -0
  11. package/lib/facade/data-display.d.ts +0 -2
  12. package/lib/primitives/dashboard/DropAnchorCell/DropAnchorCell.d.ts +29 -0
  13. package/lib/primitives/dashboard/DropAnchorCell/index.d.ts +2 -0
  14. package/lib/primitives/dashboard/EmptyCellPackAffordance/EmptyCellPackAffordance.d.ts +17 -0
  15. package/lib/primitives/dashboard/EmptyCellPackAffordance/index.d.ts +2 -0
  16. package/lib/primitives/dashboard/MetricCard/CardShell.d.ts +1 -1
  17. package/lib/primitives/dashboard/MetricCard/__tests__/_testSupport/gridHoverListeners.d.ts +29 -0
  18. package/lib/primitives/dashboard/MetricCard/__tests__/nyquist-10.fixture.d.ts +93 -0
  19. package/lib/primitives/dashboard/MetricCard/gridInteractionPhysics.d.ts +29 -0
  20. package/lib/primitives/dashboard/MetricCard/index.d.ts +2 -2
  21. package/lib/primitives/dashboard/MetricCard/types.d.ts +15 -0
  22. package/lib/primitives/dashboard/MetricCard/useEdgeHoverResize.d.ts +26 -11
  23. package/lib/primitives/dashboard/ResizeEnvelope/ResizeEnvelope.d.ts +41 -0
  24. package/lib/primitives/dashboard/ResizeEnvelope/index.d.ts +2 -0
  25. package/lib/primitives/dashboard/SectionDivider/SectionDivider.d.ts +29 -0
  26. package/lib/primitives/dashboard/SectionDivider/index.d.ts +2 -0
  27. package/lib/primitives/dashboard/SpilloverArc/SpilloverArc.d.ts +30 -0
  28. package/lib/primitives/dashboard/SpilloverArc/index.d.ts +2 -0
  29. package/lib/primitives/dashboard/index.d.ts +5 -0
  30. package/lib/primitives/overlays/ActionStrip/index.d.ts +0 -2
  31. package/lib/primitives/overlays/ActionStrip/types.d.ts +5 -1
  32. package/package.json +1 -1
  33. package/ui.css +1 -1
  34. package/lib/primitives/dashboard/MetricCard/useSlideOutReveal.d.ts +0 -1
  35. package/lib/primitives/overlays/ActionStrip/useSlideOutReveal.d.ts +0 -47
package/index.js CHANGED
@@ -1,161 +1,162 @@
1
- import { N as da, T as ua, O as ma, Q as pa, a3 as ga, b6 as fa, az as ha, ah as ba, Z as va, an as ya, K as wa, a8 as Da, bo as Ca, P as Na, B as ka, a as xa, y as Sa, H as Ta, bi as _a, F as Ia, J as Ra, A as Ma, z as Pa, bh as Fa, E as Ea, D as Oa, bx as Aa, b as La, C as $a, L as Ba, o as Ka, ad as Wa, aN as Ga, y as Ha, H as Va, F as za, J as Za, A as Ua, z as Ya, E as qa, D as ja, a$ as Xa, b2 as Qa, b1 as Ja, b0 as er, b3 as tr, aC as nr, a5 as ar, a4 as rr, aq as sr, k as or, m as ir, aF as lr, ab as cr, b8 as dr, a9 as ur, bp as mr, Y as pr, bH as gr, bG as fr, bI as hr, ap as br, aQ as vr, ba as yr, bM as wr, bv as Dr, n as Cr, am as Nr, bB as kr, bs as xr, a0 as Sr, ar as Tr, a2 as _r, bA as Ir, G as Rr, d as Mr, aa as Pr, bJ as Fr, aT as Er, r as Or, v as Ar, I as Lr, g as $r, aw as Br, bN as Kr, M as Wr, w as Gr, U as Hr, X as Vr, V as zr, W as Zr, as as Ur, bg as Yr, bP as qr, bL as jr, ao as Xr, t as Qr, bq as Jr, aS as es, aj as ts, aK as ns, ag as as, al as rs, au as ss, aR as os, ac as is, at as ls, c as cs, R as ds, j as us, p as ms, aH as ps, by as gs, bz as fs, ai as hs, ae as bs, h as vs, x as ys, b7 as ws, af as Ds, bO as Cs, bc as Ns, bf as ks, bd as xs, be as Ss, i as Ts, b9 as _s, bn as Is, S as Rs, bk as Ms, bl as Ps, av as Fs, bb as Es, bQ as Os, ak as As, s as Ls, bK as $s, l as Bs, f as Ks, q as Ws, _ as Gs, $ as Hs, a7 as Vs, bj as zs, bw as Zs, bD as Us, aA as Ys, aB as qs, a6 as js, aO as Xs, aP as Qs, aD as Js, aE as eo, aG as to, aV as no, aW as ao, bF as ro, bE as so, aY as oo, aZ as io, ax as lo, ay as co, b5 as uo, b4 as mo, a_ as po, aL as go, aM as fo, aX as ho, aI as bo, aJ as vo, u as yo, bC as wo, br as Do, bt as Co, bu as No, aU as ko, a1 as xo, e as So, bm as To } from "./Expandable-BdC9RXOI.js";
2
- import { jsxs as $, jsx as u } from "react/jsx-runtime";
3
- import G, { useRef as R, useEffect as L, useState as K, useCallback as f, forwardRef as Ve, useMemo as ae, createContext as ze, useContext as Ze } from "react";
4
- import { motion as Te, useMotionValue as Ue, animate as De, useDragControls as Ye } from "framer-motion";
5
- import { B as qe, U as ve } from "./UIContext-C3E-k7HI.js";
6
- import { a as Io, u as Ro } from "./UIContext-C3E-k7HI.js";
7
- import { createPortal as je } from "react-dom";
8
- import { DEFAULT_MARKET_PRESETS as Po, DEFAULT_PINNED as Fo, PERIOD_OPTIONS as Eo, ROLLING_OPTIONS as Oo, TODAY_PRESET as Ao, findPreset as Lo, formatDateRange as $o, formatMarketDates as Bo, formatTrend as Ko, formatValue as Wo, generateMarketId as Go, getAllPresets as Ho, getDateRangeForPreset as Vo, getPresetLabel as zo, isInRange as Zo, isMarketActive as Uo, isSameDay as Yo, normalizePresetId as qo, toUppercasePresetId as jo } from "@mt-gloss/utils";
9
- import Xe from "@mui/icons-material/AccessTime";
10
- import Qe from "@mui/icons-material/Tune";
11
- import Je from "@mui/icons-material/ViewColumn";
12
- import et from "@mui/icons-material/AspectRatio";
13
- import tt from "@mui/icons-material/Palette";
14
- import nt from "@mui/icons-material/PushPin";
15
- function vn(e = {}) {
16
- const { enabled: t = !0, returnTo: a } = e, n = R(null);
17
- return L(() => {
18
- t && (n.current = a || document.activeElement);
19
- }, [t, a]), L(() => () => {
20
- t && n.current && setTimeout(() => {
21
- n.current?.focus?.();
1
+ import { N as Dn, T as Cn, O as Nn, Q as _n, a3 as kn, b6 as Sn, az as xn, ah as Tn, Z as In, an as Rn, K as Mn, a8 as Fn, bn as Pn, P as En, B as On, a as An, y as Ln, H as $n, bi as Bn, F as Kn, J as zn, A as Wn, z as Gn, bh as Hn, E as Vn, D as Un, bw as Zn, b as jn, C as Yn, L as qn, o as Qn, ad as Xn, aN as Jn, y as er, H as tr, F as ar, J as nr, A as rr, z as sr, E as or, D as ir, a$ as lr, b2 as dr, b1 as cr, b0 as ur, b3 as mr, aC as pr, a5 as gr, a4 as fr, aq as hr, k as br, m as vr, aF as yr, ab as wr, b8 as Dr, a9 as Cr, bo as Nr, Y as _r, bG as kr, bF as Sr, bH as xr, ap as Tr, aQ as Ir, ba as Rr, bL as Mr, bu as Fr, n as Pr, am as Er, bA as Or, br as Ar, a0 as Lr, ar as $r, a2 as Br, bz as Kr, G as zr, d as Wr, aa as Gr, bI as Hr, aT as Vr, r as Ur, v as Zr, I as jr, g as Yr, aw as qr, bM as Qr, M as Xr, w as Jr, U as es, X as ts, V as as, W as ns, as as rs, bg as ss, bO as os, bK as is, ao as ls, t as ds, bp as cs, aS as us, aj as ms, aK as ps, ag as gs, al as fs, au as hs, aR as bs, ac as vs, at as ys, c as ws, R as Ds, j as Cs, p as Ns, aH as _s, bx as ks, by as Ss, ai as xs, ae as Ts, h as Is, x as Rs, b7 as Ms, af as Fs, bN as Ps, bc as Es, bf as Os, bd as As, be as Ls, i as $s, b9 as Bs, bm as Ks, S as zs, bk as Ws, bl as Gs, av as Hs, bb as Vs, bP as Us, ak as Zs, s as js, bJ as Ys, l as qs, f as Qs, q as Xs, _ as Js, $ as eo, a7 as to, bj as ao, bv as no, bC as ro, aA as so, aB as oo, a6 as io, aO as lo, aP as co, aD as uo, aE as mo, aG as po, aV as go, aW as fo, bE as ho, bD as bo, aY as vo, aZ as yo, ax as wo, ay as Do, b5 as Co, b4 as No, a_ as _o, aL as ko, aM as So, aX as xo, aI as To, aJ as Io, u as Ro, bB as Mo, bq as Fo, bs as Po, bt as Eo, aU as Oo, a1 as Ao, e as Lo } from "./Expandable-CsLVYNv3.js";
2
+ import { jsxs as A, jsx as c } from "react/jsx-runtime";
3
+ import * as Ue from "react";
4
+ import G, { useRef as R, useEffect as $, useState as z, useCallback as v, forwardRef as Ze, useMemo as ne, createContext as je, useContext as Ye } from "react";
5
+ import { motion as Te, useMotionValue as qe, animate as Ce, useDragControls as Qe } from "framer-motion";
6
+ import { B as Xe, U as ye } from "./UIContext-C3E-k7HI.js";
7
+ import { a as Bo, u as Ko } from "./UIContext-C3E-k7HI.js";
8
+ import { createPortal as Je } from "react-dom";
9
+ import { DEFAULT_MARKET_PRESETS as Wo, DEFAULT_PINNED as Go, PERIOD_OPTIONS as Ho, ROLLING_OPTIONS as Vo, TODAY_PRESET as Uo, findPreset as Zo, formatDateRange as jo, formatMarketDates as Yo, formatTrend as qo, formatValue as Qo, generateMarketId as Xo, getAllPresets as Jo, getDateRangeForPreset as ei, getPresetLabel as ti, isInRange as ai, isMarketActive as ni, isSameDay as ri, normalizePresetId as si, toUppercasePresetId as oi } from "@mt-gloss/utils";
10
+ import et from "@mui/icons-material/AccessTime";
11
+ import tt from "@mui/icons-material/Tune";
12
+ import at from "@mui/icons-material/ViewColumn";
13
+ import nt from "@mui/icons-material/AspectRatio";
14
+ import rt from "@mui/icons-material/Palette";
15
+ import st from "@mui/icons-material/PushPin";
16
+ function Da(e = {}) {
17
+ const { enabled: t = !0, returnTo: n } = e, a = R(null);
18
+ return $(() => {
19
+ t && (a.current = n || document.activeElement);
20
+ }, [t, n]), $(() => () => {
21
+ t && a.current && setTimeout(() => {
22
+ a.current?.focus?.();
22
23
  }, 0);
23
- }, [t]), n;
24
+ }, [t]), a;
24
25
  }
25
- function yn(e) {
26
+ function Ca(e) {
26
27
  const {
27
28
  items: t,
28
- activeIndex: a,
29
- onActiveIndexChange: n,
30
- loop: s = !0,
31
- orientation: o = "vertical",
32
- enabled: c = !0,
33
- isItemDisabled: p,
34
- onSelect: h,
35
- onEscape: m
36
- } = e, [D, C] = K(-1), i = a !== void 0 ? a : D, l = f(
37
- (r) => {
38
- a === void 0 && C(r), n?.(r);
29
+ activeIndex: n,
30
+ onActiveIndexChange: a,
31
+ loop: r = !0,
32
+ orientation: s = "vertical",
33
+ enabled: o = !0,
34
+ isItemDisabled: l,
35
+ onSelect: b,
36
+ onEscape: p
37
+ } = e, [y, C] = z(-1), u = n !== void 0 ? n : y, d = v(
38
+ (i) => {
39
+ n === void 0 && C(i), a?.(i);
39
40
  },
40
- [a, n]
41
- ), b = f(() => t.map((r, d) => ({ item: r, index: d })).filter(({ item: r, index: d }) => !p?.(r, d)).map(({ index: r }) => r), [t, p]), M = f(
42
- (r, d) => {
43
- const v = b();
44
- if (v.length === 0) return -1;
45
- const N = v.indexOf(r);
41
+ [n, a]
42
+ ), g = v(() => t.map((i, m) => ({ item: i, index: m })).filter(({ item: i, index: m }) => !l?.(i, m)).map(({ index: i }) => i), [t, l]), x = v(
43
+ (i, m) => {
44
+ const h = g();
45
+ if (h.length === 0) return -1;
46
+ const N = h.indexOf(i);
46
47
  if (N === -1)
47
- return d === 1 ? v.find((T) => T > r) ?? (s ? v[0] : -1) : [...v].reverse().find((E) => E < r) ?? (s ? v[v.length - 1] : -1);
48
- let k = N + d;
49
- return s ? k = (k + v.length) % v.length : k = Math.max(0, Math.min(v.length - 1, k)), v[k];
48
+ return m === 1 ? h.find((F) => F > i) ?? (r ? h[0] : -1) : [...h].reverse().find((I) => I < i) ?? (r ? h[h.length - 1] : -1);
49
+ let _ = N + m;
50
+ return r ? _ = (_ + h.length) % h.length : _ = Math.max(0, Math.min(h.length - 1, _)), h[_];
50
51
  },
51
- [b, s]
52
- ), g = f(() => {
53
- const r = b();
54
- r.length > 0 && l(r[0]);
55
- }, [b, l]), x = f(() => {
56
- const r = b();
57
- r.length > 0 && l(r[r.length - 1]);
58
- }, [b, l]), F = f(() => {
59
- const r = M(i, 1);
60
- r !== -1 && l(r);
61
- }, [i, M, l]), w = f(() => {
62
- const r = M(i, -1);
63
- r !== -1 && l(r);
64
- }, [i, M, l]), S = f(() => {
65
- l(-1);
66
- }, [l]), _ = f(
67
- (r) => {
68
- if (!c) return;
69
- const { key: d } = r, v = d === "ArrowUp" && (o === "vertical" || o === "both"), N = d === "ArrowDown" && (o === "vertical" || o === "both"), k = d === "ArrowLeft" && (o === "horizontal" || o === "both"), T = d === "ArrowRight" && (o === "horizontal" || o === "both");
70
- if (v || k) {
71
- r.preventDefault(), i === -1 ? x() : w();
52
+ [g, r]
53
+ ), f = v(() => {
54
+ const i = g();
55
+ i.length > 0 && d(i[0]);
56
+ }, [g, d]), k = v(() => {
57
+ const i = g();
58
+ i.length > 0 && d(i[i.length - 1]);
59
+ }, [g, d]), M = v(() => {
60
+ const i = x(u, 1);
61
+ i !== -1 && d(i);
62
+ }, [u, x, d]), D = v(() => {
63
+ const i = x(u, -1);
64
+ i !== -1 && d(i);
65
+ }, [u, x, d]), S = v(() => {
66
+ d(-1);
67
+ }, [d]), T = v(
68
+ (i) => {
69
+ if (!o) return;
70
+ const { key: m } = i, h = m === "ArrowUp" && (s === "vertical" || s === "both"), N = m === "ArrowDown" && (s === "vertical" || s === "both"), _ = m === "ArrowLeft" && (s === "horizontal" || s === "both"), F = m === "ArrowRight" && (s === "horizontal" || s === "both");
71
+ if (h || _) {
72
+ i.preventDefault(), u === -1 ? k() : D();
72
73
  return;
73
74
  }
74
- if (N || T) {
75
- r.preventDefault(), i === -1 ? g() : F();
75
+ if (N || F) {
76
+ i.preventDefault(), u === -1 ? f() : M();
76
77
  return;
77
78
  }
78
- if (d === "Home") {
79
- r.preventDefault(), g();
79
+ if (m === "Home") {
80
+ i.preventDefault(), f();
80
81
  return;
81
82
  }
82
- if (d === "End") {
83
- r.preventDefault(), x();
83
+ if (m === "End") {
84
+ i.preventDefault(), k();
84
85
  return;
85
86
  }
86
- if ((d === "Enter" || d === " ") && i >= 0 && i < t.length) {
87
- r.preventDefault();
88
- const E = t[i];
89
- p?.(E, i) || h?.(E, i);
87
+ if ((m === "Enter" || m === " ") && u >= 0 && u < t.length) {
88
+ i.preventDefault();
89
+ const I = t[u];
90
+ l?.(I, u) || b?.(I, u);
90
91
  return;
91
92
  }
92
- if (d === "Escape") {
93
- m?.();
93
+ if (m === "Escape") {
94
+ p?.();
94
95
  return;
95
96
  }
96
97
  },
97
98
  [
98
- c,
99
99
  o,
100
- i,
100
+ s,
101
+ u,
101
102
  t,
102
- g,
103
- x,
104
- F,
105
- w,
106
- p,
107
- h,
108
- m
103
+ f,
104
+ k,
105
+ M,
106
+ D,
107
+ l,
108
+ b,
109
+ p
109
110
  ]
110
111
  );
111
112
  return {
112
- focusedIndex: i,
113
- setFocusedIndex: l,
114
- handleKeyDown: _,
115
- focusFirst: g,
116
- focusLast: x,
117
- focusNext: F,
118
- focusPrevious: w,
113
+ focusedIndex: u,
114
+ setFocusedIndex: d,
115
+ handleKeyDown: T,
116
+ focusFirst: f,
117
+ focusLast: k,
118
+ focusNext: M,
119
+ focusPrevious: D,
119
120
  resetFocus: S
120
121
  };
121
122
  }
122
- const oe = (e) => {
123
- }, at = {
123
+ const ie = (e) => {
124
+ }, ot = {
124
125
  id: "entity-filter-1",
125
126
  label: "Customer: Acme Corp",
126
127
  field: "customer",
127
128
  value: "acme-corp-123",
128
- onRemove: oe
129
- }, rt = {
129
+ onRemove: ie
130
+ }, it = {
130
131
  id: "status-filter-1",
131
132
  label: "Status: Open",
132
133
  field: "status",
133
134
  value: "open",
134
- onRemove: oe
135
- }, st = {
135
+ onRemove: ie
136
+ }, lt = {
136
137
  id: "date-filter-1",
137
138
  label: "Date: Mar 1 - Mar 15",
138
139
  field: "dateRange",
139
140
  value: "2026-03-01..2026-03-15",
140
- onRemove: oe
141
- }, ot = {
141
+ onRemove: ie
142
+ }, dt = {
142
143
  id: "mfg-filter-1",
143
144
  label: "Manufacturer: Widget Co",
144
145
  field: "manufacturer",
145
146
  value: "widget-co-456",
146
- onRemove: oe
147
- }, wn = [
148
- at,
149
- rt,
150
- st,
151
- ot
152
- ], Dn = {
147
+ onRemove: ie
148
+ }, Na = [
149
+ ot,
150
+ it,
151
+ lt,
152
+ dt
153
+ ], _a = {
153
154
  id: "metric-toggle",
154
155
  tabs: [
155
156
  { id: "$", label: "$", mono: !0 },
156
157
  { id: "#", label: "#", mono: !0 }
157
158
  ]
158
- }, Cn = {
159
+ }, ka = {
159
160
  id: "entity-type",
160
161
  tabs: [
161
162
  { id: "orders", label: "Orders" },
@@ -163,7 +164,7 @@ const oe = (e) => {
163
164
  { id: "customers", label: "Customers" },
164
165
  { id: "manufacturers", label: "Manufacturers" }
165
166
  ]
166
- }, Nn = {
167
+ }, Sa = {
167
168
  id: "time-frame",
168
169
  tabs: [
169
170
  { id: "MTD", label: "MTD" },
@@ -171,30 +172,30 @@ const oe = (e) => {
171
172
  { id: "YTD", label: "YTD" },
172
173
  { id: "LYTD", label: "LYTD" }
173
174
  ]
174
- }, kn = [
175
+ }, xa = [
175
176
  { variant: "block", width: "100%", height: 16 },
176
177
  { variant: "block", width: 200, height: 32, borderRadius: 8 },
177
178
  { variant: "block", width: "80%", height: 12, borderRadius: "4px" },
178
179
  { variant: "block", width: 120, height: 44, borderRadius: 22 }
179
- ], xn = [
180
+ ], Ta = [
180
181
  { variant: "text", lines: 3, lineHeight: 14, gap: 8 },
181
182
  { variant: "text", lines: 2, lineHeight: 16, gap: 10 },
182
183
  { variant: "text", lines: 5, lineHeight: 12, gap: 6 }
183
- ], Sn = [
184
+ ], Ia = [
184
185
  { variant: "circle", size: 24 },
185
186
  { variant: "circle", size: 40 },
186
187
  { variant: "circle", size: 64 }
187
- ], Tn = [
188
+ ], Ra = [
188
189
  { bars: 10, maxHeight: 120 },
189
190
  { bars: 5, maxHeight: 80 }
190
- ], _n = [
191
+ ], Ma = [
191
192
  { rows: 5, columns: 3, hasCheckbox: !1, rowHeight: 44 },
192
193
  { rows: 8, columns: 5, hasCheckbox: !0, rowHeight: 44 }
193
- ], In = [
194
+ ], Fa = [
194
195
  { variant: "value", colSpan: 1 },
195
196
  { variant: "trend", colSpan: 2 },
196
197
  { variant: "target", colSpan: 1 }
197
- ], Ce = {
198
+ ], Ne = {
198
199
  position: "fixed",
199
200
  zIndex: 9999,
200
201
  background: "rgba(255,255,255,0.92)",
@@ -206,7 +207,7 @@ const oe = (e) => {
206
207
  minWidth: 148,
207
208
  paddingTop: 4,
208
209
  paddingBottom: 4
209
- }, pe = (e) => ({
210
+ }, ge = (e) => ({
210
211
  padding: "6px 12px",
211
212
  fontSize: 12,
212
213
  lineHeight: 1.4,
@@ -220,151 +221,151 @@ const oe = (e) => {
220
221
  width: "100%",
221
222
  textAlign: "left",
222
223
  border: "none"
223
- }), it = (e) => ({
224
- ...pe(e),
224
+ }), ct = (e) => ({
225
+ ...ge(e),
225
226
  color: e ? "#4338ca" : "#4f46e5",
226
227
  fontWeight: 600
227
- }), lt = {
228
+ }), ut = {
228
229
  height: 1,
229
230
  background: "rgba(0,0,0,0.06)",
230
231
  margin: "3px 10px"
231
232
  };
232
- function ct({
233
+ function mt({
233
234
  open: e,
234
235
  anchorEl: t,
235
- statusId: a,
236
- onOpenInTable: n,
237
- onShowOnGraph: s,
238
- overflowActions: o,
239
- onClose: c
236
+ statusId: n,
237
+ onOpenInTable: a,
238
+ onShowOnGraph: r,
239
+ overflowActions: s,
240
+ onClose: o
240
241
  }) {
241
- const [p, h] = K(null), m = R(null), D = f(() => {
242
- if (!t) return { ...Ce, top: 0, left: 0 };
243
- const l = t.getBoundingClientRect();
242
+ const [l, b] = z(null), p = R(null), y = v(() => {
243
+ if (!t) return { ...Ne, top: 0, left: 0 };
244
+ const d = t.getBoundingClientRect();
244
245
  return {
245
- ...Ce,
246
- top: l.bottom + 4,
247
- left: l.left
246
+ ...Ne,
247
+ top: d.bottom + 4,
248
+ left: d.left
248
249
  };
249
250
  }, [t]);
250
- if (L(() => {
251
+ if ($(() => {
251
252
  if (!e) return;
252
- const l = (b) => {
253
- b.key === "Escape" && c();
253
+ const d = (g) => {
254
+ g.key === "Escape" && o();
254
255
  };
255
- return document.addEventListener("keydown", l), () => document.removeEventListener("keydown", l);
256
- }, [e, c]), L(() => {
256
+ return document.addEventListener("keydown", d), () => document.removeEventListener("keydown", d);
257
+ }, [e, o]), $(() => {
257
258
  if (!e) return;
258
- const l = (b) => {
259
- m.current && !m.current.contains(b.target) && c();
259
+ const d = (g) => {
260
+ p.current && !p.current.contains(g.target) && o();
260
261
  };
261
- return document.addEventListener("pointerdown", l, !0), () => document.removeEventListener("pointerdown", l, !0);
262
- }, [e, c]), !e) return null;
263
- const C = o && o.length > 0, i = /* @__PURE__ */ $(
262
+ return document.addEventListener("pointerdown", d, !0), () => document.removeEventListener("pointerdown", d, !0);
263
+ }, [e, o]), !e) return null;
264
+ const C = s && s.length > 0, u = /* @__PURE__ */ A(
264
265
  "div",
265
266
  {
266
- ref: m,
267
- "data-status-chip-menu": a,
267
+ ref: p,
268
+ "data-status-chip-menu": n,
268
269
  role: "menu",
269
270
  "aria-label": "Status actions",
270
- style: D(),
271
+ style: y(),
271
272
  children: [
272
- /* @__PURE__ */ u(
273
+ /* @__PURE__ */ c(
273
274
  "button",
274
275
  {
275
276
  role: "menuitem",
276
- style: it(p === "__primary"),
277
- onMouseEnter: () => h("__primary"),
278
- onMouseLeave: () => h(null),
277
+ style: ct(l === "__primary"),
278
+ onMouseEnter: () => b("__primary"),
279
+ onMouseLeave: () => b(null),
279
280
  onClick: () => {
280
- n(a), c();
281
+ a(n), o();
281
282
  },
282
283
  children: "Open in table"
283
284
  }
284
285
  ),
285
- /* @__PURE__ */ u(
286
+ /* @__PURE__ */ c(
286
287
  "button",
287
288
  {
288
289
  role: "menuitem",
289
- style: pe(p === "__graph"),
290
- onMouseEnter: () => h("__graph"),
291
- onMouseLeave: () => h(null),
290
+ style: ge(l === "__graph"),
291
+ onMouseEnter: () => b("__graph"),
292
+ onMouseLeave: () => b(null),
292
293
  onClick: () => {
293
- s(a), c();
294
+ r(n), o();
294
295
  },
295
296
  children: "Show on graph"
296
297
  }
297
298
  ),
298
- C && /* @__PURE__ */ u("div", { style: lt }),
299
- C && o?.map((l) => /* @__PURE__ */ u(
299
+ C && /* @__PURE__ */ c("div", { style: ut }),
300
+ C && s?.map((d) => /* @__PURE__ */ c(
300
301
  "button",
301
302
  {
302
303
  role: "menuitem",
303
- style: pe(p === l.id),
304
- onMouseEnter: () => h(l.id),
305
- onMouseLeave: () => h(null),
304
+ style: ge(l === d.id),
305
+ onMouseEnter: () => b(d.id),
306
+ onMouseLeave: () => b(null),
306
307
  onClick: () => {
307
- l.onSelect(a), c();
308
+ d.onSelect(n), o();
308
309
  },
309
- children: l.label
310
+ children: d.label
310
311
  },
311
- l.id
312
+ d.id
312
313
  ))
313
314
  ]
314
315
  }
315
316
  );
316
- return je(i, document.body);
317
+ return Je(u, document.body);
317
318
  }
318
- ct.displayName = "StatusSlotChipMenu";
319
- const dt = Ve(
320
- function({ state: t, onPointerDown: a, onPointerUp: n, onPointerEnter: s, onPointerLeave: o, onKeyboardStep: c, edge: p = "right", ariaLabel: h = "Resize card" }, m) {
321
- const D = t === "handle-visible" || t === "dragging" || t === "settling", C = (b) => {
319
+ mt.displayName = "StatusSlotChipMenu";
320
+ const pt = Ze(
321
+ function({ state: t, onPointerDown: n, onPointerUp: a, onPointerEnter: r, onPointerLeave: s, onKeyboardStep: o, edge: l = "right", ariaLabel: b = "Resize card" }, p) {
322
+ const y = t === "handle-visible" || t === "dragging" || t === "settling", C = (g) => {
322
323
  try {
323
- b.currentTarget.setPointerCapture(b.pointerId);
324
+ g.currentTarget.setPointerCapture(g.pointerId);
324
325
  } catch {
325
326
  }
326
- a(b);
327
- }, i = (b) => {
327
+ n(g);
328
+ }, u = (g) => {
328
329
  try {
329
- b.currentTarget.hasPointerCapture?.(b.pointerId) && b.currentTarget.releasePointerCapture(b.pointerId);
330
+ g.currentTarget.hasPointerCapture?.(g.pointerId) && g.currentTarget.releasePointerCapture(g.pointerId);
330
331
  } catch {
331
332
  }
332
- n(b);
333
- }, l = (b) => {
334
- !D || !c || (b.key === "ArrowRight" ? (b.preventDefault(), c("grow")) : b.key === "ArrowLeft" && (b.preventDefault(), c("shrink")));
333
+ a(g);
334
+ }, d = (g) => {
335
+ !y || !o || (g.key === "ArrowRight" ? (g.preventDefault(), o("grow")) : g.key === "ArrowLeft" && (g.preventDefault(), o("shrink")));
335
336
  };
336
- return /* @__PURE__ */ u(
337
+ return /* @__PURE__ */ c(
337
338
  "button",
338
339
  {
339
- ref: m,
340
+ ref: p,
340
341
  type: "button",
341
- "aria-label": h,
342
- "data-edge": p,
342
+ "aria-label": b,
343
+ "data-edge": l,
343
344
  "data-resize-state": t,
344
345
  className: [
345
346
  "gloss-edge-handle",
346
- `gloss-edge-handle--${p}`,
347
- D ? "gloss-edge-handle--visible" : ""
347
+ `gloss-edge-handle--${l}`,
348
+ y ? "gloss-edge-handle--visible" : ""
348
349
  ].filter(Boolean).join(" "),
349
350
  onPointerDown: C,
350
- onPointerUp: i,
351
- onPointerEnter: s,
352
- onPointerLeave: o,
353
- onKeyDown: l,
354
- tabIndex: D ? 0 : -1
351
+ onPointerUp: u,
352
+ onPointerEnter: r,
353
+ onPointerLeave: s,
354
+ onKeyDown: d,
355
+ tabIndex: y ? 0 : -1
355
356
  }
356
357
  );
357
358
  }
358
359
  );
359
- dt.displayName = "EdgeHoverHandle";
360
- function ut({
360
+ pt.displayName = "EdgeHoverHandle";
361
+ function gt({
361
362
  visible: e,
362
363
  targetColSpan: t,
363
- ghostWidth: a,
364
- enterMs: n = 180,
365
- exitMs: s = 120
364
+ ghostWidth: n,
365
+ enterMs: a = 180,
366
+ exitMs: r = 120
366
367
  }) {
367
- return /* @__PURE__ */ u(
368
+ return /* @__PURE__ */ c(
368
369
  Te.div,
369
370
  {
370
371
  "aria-hidden": "true",
@@ -375,14 +376,14 @@ function ut({
375
376
  e ? "gloss-ghost-preview--visible" : ""
376
377
  ].filter(Boolean).join(" "),
377
378
  style: {
378
- width: a,
379
- transitionDuration: `${e ? n : s}ms`
379
+ width: n,
380
+ transitionDuration: `${e ? a : r}ms`
380
381
  }
381
382
  }
382
383
  );
383
384
  }
384
- ut.displayName = "GhostPreview";
385
- class mt {
385
+ gt.displayName = "GhostPreview";
386
+ class ft {
386
387
  constructor() {
387
388
  this.samples = [], this.capacity = 3;
388
389
  }
@@ -406,14 +407,14 @@ class mt {
406
407
  const t = this.samples.length;
407
408
  if (t < 2) return 0;
408
409
  if (t === 2) {
409
- const [h, m] = this.samples, D = Math.max(1, m.t - h.t);
410
- return (m.x - h.x) / D * 1e3;
410
+ const [b, p] = this.samples, y = Math.max(1, p.t - b.t);
411
+ return (p.x - b.x) / y * 1e3;
411
412
  }
412
- const [a, n, s] = this.samples, o = (s.x - n.x) / Math.max(1, s.t - n.t) * 1e3, c = (n.x - a.x) / Math.max(1, n.t - a.t) * 1e3, p = c;
413
- return (o * 3 + c * 2 + p * 1) / 6;
413
+ const [n, a, r] = this.samples, s = (r.x - a.x) / Math.max(1, r.t - a.t) * 1e3, o = (a.x - n.x) / Math.max(1, a.t - n.t) * 1e3, l = o;
414
+ return (s * 3 + o * 2 + l * 1) / 6;
414
415
  }
415
416
  }
416
- const _e = {
417
+ const Ie = {
417
418
  // Spring (D-08). Retuned 260419 — damping 35 → 22 so the commit spring
418
419
  // has visible overshoot (ζ ≈ 0.49, ~13–17% overshoot, ~350ms settle). The
419
420
  // prior ζ ≈ 0.78 was imperceptible to users. Debug slug:
@@ -433,220 +434,241 @@ const _e = {
433
434
  // Velocity multiplier (D-03b panel)
434
435
  velocityMultiplier: 1
435
436
  };
436
- function Rn({
437
+ function Pa({
437
438
  currentColSpan: e,
438
439
  stackable: t,
439
- onResize: a,
440
- onCancel: n,
441
- step: s = 180,
442
- gap: o = 0,
443
- tuning: c,
444
- dwellMs: p = 120,
445
- enterMs: h = 180,
446
- exitMs: m = 120,
447
- maxColSpan: D = 3,
448
- containerRef: C
440
+ onResize: n,
441
+ onCancel: a,
442
+ step: r = 180,
443
+ gap: s = 0,
444
+ tuning: o,
445
+ dwellMs: l = 120,
446
+ enterMs: b = 180,
447
+ exitMs: p = 120,
448
+ maxColSpan: y = 3,
449
+ containerRef: C,
450
+ forceIdle: u
449
451
  }) {
450
- const [i, l] = K("idle"), [b, M] = K(e), g = R(null), x = R(null), F = R(null), w = R(s), S = R(o), _ = R(0), r = R("idle");
451
- L(() => {
452
- r.current = i;
453
- }, [i]);
454
- const d = Ue(0), v = R(null), N = f(() => {
455
- const y = v.current;
456
- if (y) {
452
+ const [d, g] = z("idle"), [x, f] = z(e), k = R(null), M = R(null), D = R(null), S = R(r), T = R(s), i = R(0), m = R("idle");
453
+ $(() => {
454
+ m.current = d;
455
+ }, [d]);
456
+ const h = qe(0), N = R(null), _ = v(() => {
457
+ const w = N.current;
458
+ if (w) {
457
459
  try {
458
- y.stop();
460
+ w.stop();
459
461
  } catch {
460
462
  }
461
- v.current = null;
463
+ N.current = null;
462
464
  }
463
- }, []), k = f(
464
- (y) => {
465
- const P = w.current, I = S.current;
466
- return y * P + (y - 1) * I;
465
+ }, []), F = v(
466
+ (w) => {
467
+ const P = S.current, E = T.current;
468
+ return w * P + (w - 1) * E;
467
469
  },
468
470
  []
469
- ), T = R(new mt()), E = R(e);
470
- L(() => {
471
- E.current = b;
472
- }, [b]);
473
- const O = ae(() => ({ ..._e, ...c ?? {} }), [c]), B = f(() => {
474
- g.current && (clearTimeout(g.current), g.current = null);
475
- }, []), z = f(() => {
476
- x.current && (clearTimeout(x.current), x.current = null);
477
- }, []), V = f(() => {
478
- l((y) => y === "settling" || y !== "idle" ? y : (g.current = setTimeout(() => l("handle-visible"), p), "dwelling"));
479
- }, [p]), U = f(() => {
480
- B(), l((y) => y === "dwelling" || y === "handle-visible" ? "idle" : y);
481
- }, [B]), j = f(
482
- (y, P, I) => {
483
- const A = w.current, J = A * O.snapInFraction, X = A * O.snapOutFraction, Q = P - I;
471
+ ), I = R(new ft()), V = R(e);
472
+ $(() => {
473
+ V.current = x;
474
+ }, [x]);
475
+ const O = ne(() => ({ ...Ie, ...o ?? {} }), [o]), W = v(() => {
476
+ k.current && (clearTimeout(k.current), k.current = null);
477
+ }, []), L = v(() => {
478
+ M.current && (clearTimeout(M.current), M.current = null);
479
+ }, []);
480
+ $(() => {
481
+ u && (m.current === "dragging" || m.current === "settling" || (W(), L(), m.current = "idle", g("idle")));
482
+ }, [u, W, L]);
483
+ const X = v(() => {
484
+ g((w) => w === "settling" || w !== "idle" ? w : (k.current = setTimeout(() => g("handle-visible"), l), "dwelling"));
485
+ }, [l]), re = v(() => {
486
+ W(), g((w) => w === "dwelling" || w === "handle-visible" ? "idle" : w);
487
+ }, [W]), B = v(
488
+ (w, P, E) => {
489
+ const K = S.current, J = K * O.snapInFraction, q = K * O.snapOutFraction, Q = P - E;
484
490
  let H = Q;
485
- for (; I + H < 3; ) {
486
- const ee = H * A + (H < 0 ? X : J);
487
- if (y >= ee) H += 1;
491
+ for (; E + H < 3; ) {
492
+ const ee = H * K + (H < 0 ? q : J);
493
+ if (w >= ee) H += 1;
488
494
  else break;
489
495
  }
490
496
  if (H === Q)
491
- for (; I + H > 1; ) {
492
- const ee = H * A - (H > 0 ? X : J);
493
- if (y <= ee) H -= 1;
497
+ for (; E + H > 1; ) {
498
+ const ee = H * K - (H > 0 ? q : J);
499
+ if (w <= ee) H -= 1;
494
500
  else break;
495
501
  }
496
- return Math.min(3, Math.max(1, I + H));
502
+ return Math.min(3, Math.max(1, E + H));
497
503
  },
498
504
  [O.snapInFraction, O.snapOutFraction]
499
- ), W = f(
500
- (y) => {
501
- if (r.current !== "handle-visible") return;
502
- N(), F.current = y.clientX, w.current = s, S.current = o;
503
- const P = e * s + (e - 1) * o;
504
- _.current = P, T.current.clear(), T.current.push({ x: y.clientX, t: performance.now() }), d.jump(P), r.current = "dragging", l("dragging");
505
+ ), Be = v(
506
+ (w) => {
507
+ if (m.current !== "handle-visible") return;
508
+ _(), D.current = w.clientX, S.current = r, T.current = s;
509
+ const P = e * r + (e - 1) * s;
510
+ i.current = P, I.current.clear(), I.current.push({ x: w.clientX, t: performance.now() }), h.jump(P), m.current = "dragging", g("dragging");
505
511
  },
506
- [s, o, e, d, N]
507
- ), ye = f(
508
- (y) => y * w.current + (y - 1) * S.current,
512
+ [r, s, e, h, _]
513
+ ), we = v(
514
+ (w) => w * S.current + (w - 1) * T.current,
509
515
  []
510
- ), re = f(
511
- (y, P) => {
512
- const I = ye(y), A = y !== e;
516
+ ), se = v(
517
+ (w, P) => {
518
+ const E = we(w), K = w !== e;
513
519
  if (typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
514
- d.jump(I), A && P ? a({ direction: P, targetColSpan: y, mode: t ? "slot-fill" : "sparkline-fidelity" }) : A || n?.(), d.jump(0), r.current = "idle", l("idle");
520
+ h.jump(E), K && P ? n({ direction: P, targetColSpan: w, mode: t ? "slot-fill" : "sparkline-fidelity" }) : K || a?.(), h.jump(0), m.current = "idle", g("idle");
515
521
  return;
516
522
  }
517
- const X = T.current.getWeightedVelocity() * O.velocityMultiplier;
518
- r.current = "settling", l("settling"), N(), v.current = De(d, I, {
523
+ const q = I.current.getWeightedVelocity() * O.velocityMultiplier;
524
+ m.current = "settling", g("settling"), _(), N.current = Ce(h, E, {
519
525
  type: "spring",
520
526
  stiffness: O.stiffness,
521
527
  damping: O.damping,
522
528
  mass: O.mass,
523
- velocity: X,
529
+ velocity: q,
524
530
  onComplete: () => {
525
- v.current = null, A && P ? a({ direction: P, targetColSpan: y, mode: t ? "slot-fill" : "sparkline-fidelity" }) : A || n?.(), d.jump(0), r.current = "idle", l("idle");
531
+ N.current = null, K && P ? n({ direction: P, targetColSpan: w, mode: t ? "slot-fill" : "sparkline-fidelity" }) : K || a?.(), h.jump(0), m.current = "idle", g("idle");
526
532
  }
527
533
  });
528
534
  },
529
- [ye, e, t, a, n, d, O, N]
530
- ), $e = f(
531
- (y) => {
532
- if (r.current !== "dragging") return;
533
- const P = y.clientX - (F.current ?? y.clientX);
534
- T.current.push({ x: y.clientX, t: performance.now() });
535
- const I = j(P, E.current, e), A = I > e ? "grow" : I < e ? "shrink" : null;
536
- re(I, A);
535
+ [we, e, t, n, a, h, O, _]
536
+ ), Ke = v(
537
+ (w) => {
538
+ if (m.current !== "dragging") return;
539
+ const P = w.clientX - (D.current ?? w.clientX);
540
+ I.current.push({ x: w.clientX, t: performance.now() });
541
+ const E = B(P, V.current, e), K = E > e ? "grow" : E < e ? "shrink" : null;
542
+ se(E, K);
537
543
  },
538
- [j, e, re]
539
- ), ie = f(() => {
540
- if (B(), r.current === "dragging") {
541
- const y = _.current;
544
+ [B, e, se]
545
+ ), le = v(() => {
546
+ if (W(), m.current === "dragging") {
547
+ const w = i.current;
542
548
  if (typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
543
- d.jump(y), n?.(), d.jump(0), r.current = "idle", l("idle");
549
+ h.jump(w), a?.(), h.jump(0), m.current = "idle", g("idle");
544
550
  return;
545
551
  }
546
- const I = T.current.getWeightedVelocity();
547
- r.current = "settling", l("settling"), N(), v.current = De(d, y, {
552
+ const E = I.current.getWeightedVelocity();
553
+ m.current = "settling", g("settling"), _(), N.current = Ce(h, w, {
548
554
  type: "spring",
549
555
  stiffness: O.stiffness,
550
556
  damping: O.damping,
551
557
  mass: O.mass,
552
- velocity: I,
558
+ velocity: E,
553
559
  onComplete: () => {
554
- v.current = null, n?.(), d.jump(0), r.current = "idle", l("idle");
560
+ N.current = null, a?.(), h.jump(0), m.current = "idle", g("idle");
555
561
  }
556
562
  });
557
563
  return;
558
564
  }
559
- r.current === "handle-visible" && (n?.(), r.current = "cancelled", l("cancelled"));
560
- }, [B, d, n, O, N]);
561
- L(() => {
562
- if (i !== "dragging" && i !== "handle-visible") return;
563
- const y = (P) => {
564
- P.key === "Escape" && ie();
565
+ m.current === "handle-visible" && (a?.(), m.current = "cancelled", g("cancelled"));
566
+ }, [W, h, a, O, _]);
567
+ $(() => {
568
+ if (d !== "dragging" && d !== "handle-visible") return;
569
+ const w = (P) => {
570
+ P.key === "Escape" && le();
565
571
  };
566
- return window.addEventListener("keydown", y), () => window.removeEventListener("keydown", y);
567
- }, [i, ie]), L(() => {
568
- if (i !== "dragging") {
569
- M(e);
572
+ return window.addEventListener("keydown", w), () => window.removeEventListener("keydown", w);
573
+ }, [d, le]), $(() => {
574
+ if (d !== "dragging") {
575
+ f(e);
570
576
  return;
571
577
  }
572
- const y = (P) => {
573
- const I = P.clientX - (F.current ?? P.clientX), A = _.current, J = k(1), X = k(D), Q = A + I, H = Math.max(J, Math.min(X, Q));
574
- d.set(H);
575
- const le = w.current, ee = (D - e) * le, Ge = (1 - e) * le, He = Math.max(Ge, Math.min(ee, I));
576
- T.current.push({ x: P.clientX, t: performance.now() });
577
- const ce = j(He, E.current, e);
578
- ce !== E.current && (E.current = ce, M(ce));
579
- };
580
- return window.addEventListener("pointermove", y), () => window.removeEventListener("pointermove", y);
581
- }, [i, e, d, j, D, k]), L(() => () => {
582
- B(), z();
583
- }, [B, z]), L(() => {
584
- if (!C || i !== "dwelling" && i !== "handle-visible") return;
585
- const y = (P) => {
586
- const I = C.current;
587
- if (!I) return;
588
- const A = P.target;
589
- A instanceof Node && I.contains(A) || U();
578
+ const w = (P) => {
579
+ const E = P.clientX - (D.current ?? P.clientX), K = i.current, J = F(1), q = F(y), Q = K + E, H = Math.max(J, Math.min(q, Q));
580
+ h.set(H);
581
+ const de = S.current, ee = (y - e) * de, He = (1 - e) * de, Ve = Math.max(He, Math.min(ee, E));
582
+ I.current.push({ x: P.clientX, t: performance.now() });
583
+ const ce = B(Ve, V.current, e);
584
+ ce !== V.current && (V.current = ce, f(ce));
590
585
  };
591
- return window.addEventListener("pointermove", y), () => window.removeEventListener("pointermove", y);
592
- }, [i, C, U]), L(() => {
593
- if (i !== "cancelled") return;
594
- const y = setTimeout(() => l("idle"), m);
595
- return () => clearTimeout(y);
596
- }, [i, m]);
597
- const Be = f(
598
- (y) => {
599
- if (r.current === "settling") return;
600
- const I = Math.min(3, Math.max(1, e + (y === "grow" ? 1 : -1)));
601
- if (I === e) return;
602
- w.current = s, S.current = o, T.current.clear();
603
- const A = e * s + (e - 1) * o;
604
- _.current = A, d.jump(A), re(I, y);
586
+ return window.addEventListener("pointermove", w), () => window.removeEventListener("pointermove", w);
587
+ }, [d, e, h, B, y, F]), $(() => () => {
588
+ W(), L();
589
+ }, [W, L]), $(() => {
590
+ if (d !== "cancelled") return;
591
+ const w = setTimeout(() => g("idle"), p);
592
+ return () => clearTimeout(w);
593
+ }, [d, p]);
594
+ const ze = v(
595
+ (w) => {
596
+ if (m.current === "settling") return;
597
+ const E = Math.min(3, Math.max(1, e + (w === "grow" ? 1 : -1)));
598
+ if (E === e) return;
599
+ S.current = r, T.current = s, I.current.clear();
600
+ const K = e * r + (e - 1) * s;
601
+ i.current = K, h.jump(K), se(E, w);
605
602
  },
606
- [e, s, o, d, re]
607
- ), we = f(() => {
608
- z(), x.current = setTimeout(() => {
609
- r.current === "handle-visible" && (r.current = "idle", l("idle"));
603
+ [e, r, s, h, se]
604
+ ), De = v(() => {
605
+ L(), M.current = setTimeout(() => {
606
+ m.current === "handle-visible" && (m.current = "idle", g("idle"));
610
607
  }, 5e3);
611
- }, [z]), Ke = f(() => {
612
- r.current === "idle" && (B(), r.current = "handle-visible", l("handle-visible"), we());
613
- }, [B, we]), We = f(() => {
614
- z(), r.current === "handle-visible" && (r.current = "idle", l("idle"));
615
- }, [z]);
608
+ }, [L]), We = v(() => {
609
+ m.current === "idle" && (W(), m.current = "handle-visible", g("handle-visible"), De());
610
+ }, [W, De]), Ge = v(() => {
611
+ L(), m.current === "handle-visible" && (m.current = "idle", g("idle"));
612
+ }, [L]);
616
613
  return {
617
- state: i,
618
- enterEdgeZone: V,
619
- leaveEdgeZone: U,
614
+ state: d,
615
+ enterEdgeZone: X,
616
+ leaveEdgeZone: re,
620
617
  handleProps: {
621
- onPointerDown: W,
622
- onPointerUp: $e,
618
+ onPointerDown: Be,
619
+ onPointerUp: Ke,
623
620
  // Bug E: handle continues zone presence so pointer crossing sentinel→handle
624
621
  // doesn't collapse state. handle's pointerenter = stay in zone.
625
- onPointerEnter: V,
626
- onPointerLeave: U
622
+ onPointerEnter: X,
623
+ onPointerLeave: re
627
624
  },
628
- previewColSpan: b,
625
+ previewColSpan: x,
629
626
  ghostProps: {
630
- visible: i === "dragging" || i === "settling",
631
- targetColSpan: b,
632
- ghostWidth: d,
633
- enterMs: h,
634
- exitMs: m
627
+ visible: d === "dragging" || d === "settling",
628
+ targetColSpan: x,
629
+ ghostWidth: h,
630
+ enterMs: b,
631
+ exitMs: p
635
632
  },
636
- onKeyboardStep: Be,
637
- onTouchReveal: Ke,
638
- onTouchDismiss: We,
639
- cancel: ie
633
+ onKeyboardStep: ze,
634
+ onTouchReveal: We,
635
+ onTouchDismiss: Ge,
636
+ cancel: le
640
637
  };
641
638
  }
642
- function Mn(e) {
643
- const { cardWidthPx: t, slotCount: a, activeSlotIdx: n, pillWidthPx: s } = e;
644
- if (n == null || !Number.isFinite(t) || t <= 0 || !Number.isFinite(a) || a <= 0 || !Number.isInteger(n) || n < 0 || n >= a)
639
+ const Y = {
640
+ // Cascade (D-08, D-10)
641
+ staggerMs: 50,
642
+ reverseStaggerMs: 30,
643
+ // Resize envelope (D-07)
644
+ envelopeEnterMs: 180,
645
+ envelopeExitMs: 140,
646
+ // Rubber-band (D-12)
647
+ rubberBandRatio: 0.33,
648
+ // Drag edge (D-16)
649
+ dragEdgeHoldMs: 400,
650
+ // Spillover (D-18)
651
+ spilloverArcDurationMs: 600,
652
+ spilloverStaggerMs: 50,
653
+ // Drop anchor (D-14)
654
+ anchorProximityOpacities: [0.8, 0.5, 0.3, 0.15],
655
+ anchorFadeStaggerMs: 30,
656
+ // Edit session (D-21)
657
+ editStandbyMs: 4e3,
658
+ editFadeOutMs: 600,
659
+ // Section dividers (D-22)
660
+ sectionDividerFadeInMs: 120,
661
+ sectionDividerFadeOutMs: 80,
662
+ sectionDividerStaggerMs: 40
663
+ };
664
+ function Ea(e) {
665
+ const { cardWidthPx: t, slotCount: n, activeSlotIdx: a, pillWidthPx: r } = e;
666
+ if (a == null || !Number.isFinite(t) || t <= 0 || !Number.isFinite(n) || n <= 0 || !Number.isInteger(a) || a < 0 || a >= n)
645
667
  return;
646
- const o = (n + 0.5) * (t / a);
647
- return s != null && Number.isFinite(s) && s > 0 ? o - s / 2 : o;
668
+ const s = (a + 0.5) * (t / n);
669
+ return r != null && Number.isFinite(r) && r > 0 ? s - r / 2 : s;
648
670
  }
649
- const Pn = [
671
+ const Oa = [
650
672
  // 1. Standard: Total Revenue
651
673
  {
652
674
  variant: "standard",
@@ -750,24 +772,24 @@ const Pn = [
750
772
  { value: 9, color: "#6b7280", label: "Other" }
751
773
  ]
752
774
  }
753
- ], pt = {
775
+ ], ht = {
754
776
  variant: "standard",
755
777
  label: "Total Revenue",
756
778
  isLoading: !0
757
- }, gt = {
779
+ }, bt = {
758
780
  variant: "standard",
759
781
  label: "Total Revenue",
760
782
  value: 125430,
761
783
  valueFormat: { prefix: "$", abbreviated: !0 },
762
784
  isError: !0
763
- }, ft = {
785
+ }, vt = {
764
786
  variant: "standard",
765
787
  label: "Total Revenue",
766
788
  value: null,
767
789
  valueFormat: { prefix: "$", abbreviated: !0 },
768
790
  isEmpty: !0,
769
791
  subtitle: "No data"
770
- }, ht = {
792
+ }, yt = {
771
793
  variant: "standard",
772
794
  label: "Total Revenue",
773
795
  value: 125430,
@@ -775,7 +797,7 @@ const Pn = [
775
797
  trend: { value: 12.5, direction: "up" },
776
798
  subtitle: "MTD",
777
799
  isStale: !0
778
- }, bt = {
800
+ }, wt = {
779
801
  variant: "sparkline",
780
802
  label: "Daily Orders",
781
803
  value: 847,
@@ -784,7 +806,7 @@ const Pn = [
784
806
  sparklineData: [42, 38, 51, 47, 55, 60, 58, 63, 57, 62, 68, 71, 65, 59],
785
807
  accentColor: "#6366f1",
786
808
  isStale: !0
787
- }, vt = {
809
+ }, Dt = {
788
810
  variant: "donut",
789
811
  label: "Order Fill Rate",
790
812
  value: 78,
@@ -795,14 +817,14 @@ const Pn = [
795
817
  donutMax: 100,
796
818
  accentColor: "#10b981",
797
819
  isStale: !0
798
- }, Fn = [
799
- pt,
800
- gt,
801
- ft,
820
+ }, Aa = [
802
821
  ht,
803
822
  bt,
804
- vt
805
- ], En = {
823
+ vt,
824
+ yt,
825
+ wt,
826
+ Dt
827
+ ], La = {
806
828
  variant: "sparkline",
807
829
  label: "Daily Orders",
808
830
  value: 847,
@@ -825,7 +847,7 @@ const Pn = [
825
847
  59
826
848
  ],
827
849
  accentColor: "#6366f1"
828
- }, On = {
850
+ }, $a = {
829
851
  variant: "sparkline",
830
852
  label: "New Customers",
831
853
  value: 23,
@@ -864,21 +886,21 @@ const Pn = [
864
886
  19
865
887
  ],
866
888
  accentColor: "#10b981"
867
- }, An = {
889
+ }, Ba = {
868
890
  variant: "standard",
869
891
  label: "Total Revenue",
870
892
  value: 125430,
871
893
  valueFormat: { prefix: "$", abbreviated: !0 },
872
894
  trend: { value: 12.5, direction: "up" },
873
895
  subtitle: "MTD"
874
- }, Ln = {
896
+ }, Ka = {
875
897
  variant: "standard",
876
898
  label: "Returns",
877
899
  value: 3280,
878
900
  valueFormat: { prefix: "$", abbreviated: !0 },
879
901
  trend: { value: -8.3, direction: "down" },
880
902
  subtitle: "MTD"
881
- }, $n = {
903
+ }, za = {
882
904
  variant: "standard",
883
905
  label: "Avg Order Value",
884
906
  value: 487,
@@ -886,33 +908,33 @@ const Pn = [
886
908
  trend: { value: 0, direction: "flat" },
887
909
  subtitle: "QTD"
888
910
  };
889
- function Ie({
911
+ function Re({
890
912
  open: e,
891
913
  onDismiss: t,
892
- anchorRef: a,
893
- pages: n,
894
- activePageId: s,
895
- onPageChange: o,
896
- onCreatePage: c,
897
- onManagePages: p
914
+ anchorRef: n,
915
+ pages: a,
916
+ activePageId: r,
917
+ onPageChange: s,
918
+ onCreatePage: o,
919
+ onManagePages: l
898
920
  }) {
899
- const h = f(
900
- (i) => {
901
- o(i), t();
921
+ const b = v(
922
+ (u) => {
923
+ s(u), t();
902
924
  },
903
- [o, t]
904
- ), m = f(
905
- (i, l) => {
906
- (l.key === "Enter" || l.key === " ") && (l.preventDefault(), h(i));
925
+ [s, t]
926
+ ), p = v(
927
+ (u, d) => {
928
+ (d.key === "Enter" || d.key === " ") && (d.preventDefault(), b(u));
907
929
  },
908
- [h]
909
- ), D = f(() => {
910
- c(), t();
911
- }, [c, t]), C = f(() => {
912
- p(), t();
913
- }, [p, t]);
914
- return /* @__PURE__ */ $(
915
- qe,
930
+ [b]
931
+ ), y = v(() => {
932
+ o(), t();
933
+ }, [o, t]), C = v(() => {
934
+ l(), t();
935
+ }, [l, t]);
936
+ return /* @__PURE__ */ A(
937
+ Xe,
916
938
  {
917
939
  definition: {
918
940
  placement: "bottom-end",
@@ -922,53 +944,53 @@ function Ie({
922
944
  },
923
945
  open: e,
924
946
  onDismiss: t,
925
- anchorRef: a,
947
+ anchorRef: n,
926
948
  className: "gloss-page-dropdown",
927
949
  children: [
928
- /* @__PURE__ */ u("ul", { role: "menu", className: "gloss-page-dropdown__list", children: n.map((i) => {
929
- const l = i.id === s;
930
- return /* @__PURE__ */ $(
950
+ /* @__PURE__ */ c("ul", { role: "menu", className: "gloss-page-dropdown__list", children: a.map((u) => {
951
+ const d = u.id === r;
952
+ return /* @__PURE__ */ A(
931
953
  "li",
932
954
  {
933
955
  role: "menuitemradio",
934
- "aria-checked": l,
935
- "aria-current": l ? "page" : void 0,
956
+ "aria-checked": d,
957
+ "aria-current": d ? "page" : void 0,
936
958
  tabIndex: 0,
937
- className: `gloss-page-dropdown__item${l ? " gloss-page-dropdown__item--active" : ""}`,
938
- onClick: () => h(i.id),
939
- onKeyDown: (b) => m(i.id, b),
959
+ className: `gloss-page-dropdown__item${d ? " gloss-page-dropdown__item--active" : ""}`,
960
+ onClick: () => b(u.id),
961
+ onKeyDown: (g) => p(u.id, g),
940
962
  children: [
941
- /* @__PURE__ */ u(
963
+ /* @__PURE__ */ c(
942
964
  "span",
943
965
  {
944
- className: `gloss-page-dropdown__dot${l ? " gloss-page-dropdown__dot--active" : ""}`
966
+ className: `gloss-page-dropdown__dot${d ? " gloss-page-dropdown__dot--active" : ""}`
945
967
  }
946
968
  ),
947
- /* @__PURE__ */ u(
969
+ /* @__PURE__ */ c(
948
970
  "span",
949
971
  {
950
- className: `gloss-page-dropdown__name${i.named ? "" : " gloss-page-dropdown__name--unnamed"}`,
951
- children: i.name
972
+ className: `gloss-page-dropdown__name${u.named ? "" : " gloss-page-dropdown__name--unnamed"}`,
973
+ children: u.name
952
974
  }
953
975
  ),
954
- /* @__PURE__ */ u("span", { className: "gloss-page-dropdown__count", children: i.cardCount })
976
+ /* @__PURE__ */ c("span", { className: "gloss-page-dropdown__count", children: u.cardCount })
955
977
  ]
956
978
  },
957
- i.id
979
+ u.id
958
980
  );
959
981
  }) }),
960
- /* @__PURE__ */ u("hr", { className: "gloss-page-dropdown__separator" }),
961
- /* @__PURE__ */ u(
982
+ /* @__PURE__ */ c("hr", { className: "gloss-page-dropdown__separator" }),
983
+ /* @__PURE__ */ c(
962
984
  "button",
963
985
  {
964
986
  role: "menuitem",
965
987
  className: "gloss-page-dropdown__action",
966
- onClick: D,
988
+ onClick: y,
967
989
  children: "+ New page"
968
990
  }
969
991
  ),
970
- /* @__PURE__ */ u("hr", { className: "gloss-page-dropdown__separator" }),
971
- /* @__PURE__ */ u(
992
+ /* @__PURE__ */ c("hr", { className: "gloss-page-dropdown__separator" }),
993
+ /* @__PURE__ */ c(
972
994
  "button",
973
995
  {
974
996
  role: "menuitem",
@@ -981,70 +1003,70 @@ function Ie({
981
1003
  }
982
1004
  );
983
1005
  }
984
- Ie.displayName = "PageDropdown";
985
- const yt = function({
1006
+ Re.displayName = "PageDropdown";
1007
+ const Ct = function({
986
1008
  currentIndex: t,
987
- total: a,
988
- pages: n,
989
- onPageChange: s,
990
- onCreatePage: o,
991
- onManagePages: c,
992
- maskRadius: p = "var(--gloss-radius-md)"
1009
+ total: n,
1010
+ pages: a,
1011
+ onPageChange: r,
1012
+ onCreatePage: s,
1013
+ onManagePages: o,
1014
+ maskRadius: l = "var(--gloss-radius-md)"
993
1015
  }) {
994
- const h = R(null), [m, D] = K(!1), C = f(() => {
995
- D((b) => !b);
996
- }, []), i = f(() => {
997
- D(!1);
998
- }, []), l = n[t]?.id ?? "";
999
- return /* @__PURE__ */ $(
1016
+ const b = R(null), [p, y] = z(!1), C = v(() => {
1017
+ y((g) => !g);
1018
+ }, []), u = v(() => {
1019
+ y(!1);
1020
+ }, []), d = a[t]?.id ?? "";
1021
+ return /* @__PURE__ */ A(
1000
1022
  "div",
1001
1023
  {
1002
1024
  className: "gloss-page-chip",
1003
- ref: h,
1025
+ ref: b,
1004
1026
  style: { position: "absolute", top: 0, right: 0 },
1005
1027
  "data-page-chip": !0,
1006
1028
  children: [
1007
- /* @__PURE__ */ u(
1029
+ /* @__PURE__ */ c(
1008
1030
  "div",
1009
1031
  {
1010
1032
  className: "gloss-page-chip__nuzzle",
1011
- style: { "--_nuzzle-r": p }
1033
+ style: { "--_nuzzle-r": l }
1012
1034
  }
1013
1035
  ),
1014
- /* @__PURE__ */ $(
1036
+ /* @__PURE__ */ A(
1015
1037
  "button",
1016
1038
  {
1017
1039
  className: "gloss-page-chip__trigger",
1018
1040
  "aria-haspopup": "menu",
1019
- "aria-expanded": m,
1020
- "aria-label": `Page ${t + 1} of ${a}. Click to switch pages.`,
1041
+ "aria-expanded": p,
1042
+ "aria-label": `Page ${t + 1} of ${n}. Click to switch pages.`,
1021
1043
  onClick: C,
1022
1044
  children: [
1023
1045
  t + 1,
1024
1046
  " / ",
1025
- a
1047
+ n
1026
1048
  ]
1027
1049
  }
1028
1050
  ),
1029
- /* @__PURE__ */ u(
1030
- Ie,
1051
+ /* @__PURE__ */ c(
1052
+ Re,
1031
1053
  {
1032
- open: m,
1033
- onDismiss: i,
1034
- anchorRef: h,
1035
- pages: n,
1036
- activePageId: l,
1037
- onPageChange: s,
1038
- onCreatePage: o,
1039
- onManagePages: c
1054
+ open: p,
1055
+ onDismiss: u,
1056
+ anchorRef: b,
1057
+ pages: a,
1058
+ activePageId: d,
1059
+ onPageChange: r,
1060
+ onCreatePage: s,
1061
+ onManagePages: o
1040
1062
  }
1041
1063
  )
1042
1064
  ]
1043
1065
  }
1044
1066
  );
1045
1067
  };
1046
- yt.displayName = "PageChip";
1047
- const Bn = [
1068
+ Ct.displayName = "PageChip";
1069
+ const Wa = [
1048
1070
  {
1049
1071
  id: "ORD-1001",
1050
1072
  orderNumber: "ORD-1001",
@@ -1177,7 +1199,7 @@ const Bn = [
1177
1199
  date: "2026-03-01",
1178
1200
  skuCount: 9
1179
1201
  }
1180
- ], Kn = [
1202
+ ], Ga = [
1181
1203
  {
1182
1204
  id: "ITEM-001",
1183
1205
  sku: "PB-4520",
@@ -1311,16 +1333,16 @@ const Bn = [
1311
1333
  lastDate: "2026-03-01"
1312
1334
  }
1313
1335
  ];
1314
- function ge(e) {
1336
+ function fe(e) {
1315
1337
  return "$" + e.toLocaleString("en-US", { minimumFractionDigits: 2, maximumFractionDigits: 2 });
1316
1338
  }
1317
- function Re(e) {
1339
+ function Me(e) {
1318
1340
  return e.toLocaleString("en-US");
1319
1341
  }
1320
- function Me(e) {
1342
+ function Fe(e) {
1321
1343
  return new Date(e).toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" });
1322
1344
  }
1323
- const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" } }, "—"), Wn = [
1345
+ const ae = G.createElement("span", { style: { color: "var(--color-text-muted)" } }, "—"), Ha = [
1324
1346
  {
1325
1347
  field: "id",
1326
1348
  headerName: "Order",
@@ -1350,7 +1372,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1350
1372
  align: "right",
1351
1373
  headerAlign: "right",
1352
1374
  cellClassName: "gloss-tabular-nums",
1353
- renderCell: ({ row: e }) => e.skuCount ? Re(e.skuCount) : ne
1375
+ renderCell: ({ row: e }) => e.skuCount ? Me(e.skuCount) : ae
1354
1376
  },
1355
1377
  {
1356
1378
  field: "total",
@@ -1360,7 +1382,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1360
1382
  align: "right",
1361
1383
  headerAlign: "right",
1362
1384
  cellClassName: "gloss-tabular-nums",
1363
- renderCell: ({ row: e }) => e.total ? ge(e.total) : ne
1385
+ renderCell: ({ row: e }) => e.total ? fe(e.total) : ae
1364
1386
  },
1365
1387
  {
1366
1388
  field: "date",
@@ -1370,9 +1392,9 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1370
1392
  align: "right",
1371
1393
  headerAlign: "right",
1372
1394
  cellClassName: "gloss-tabular-nums",
1373
- renderCell: ({ row: e }) => e.date ? Me(e.date) : ""
1395
+ renderCell: ({ row: e }) => e.date ? Fe(e.date) : ""
1374
1396
  }
1375
- ], Gn = [
1397
+ ], Va = [
1376
1398
  {
1377
1399
  field: "sku",
1378
1400
  headerName: "Item ID",
@@ -1404,7 +1426,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1404
1426
  align: "right",
1405
1427
  headerAlign: "right",
1406
1428
  cellClassName: "gloss-tabular-nums",
1407
- renderCell: ({ row: e }) => e.price ? ge(e.price) : ne
1429
+ renderCell: ({ row: e }) => e.price ? fe(e.price) : ae
1408
1430
  },
1409
1431
  {
1410
1432
  field: "quantity",
@@ -1414,7 +1436,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1414
1436
  align: "right",
1415
1437
  headerAlign: "right",
1416
1438
  cellClassName: "gloss-tabular-nums gloss-drillable",
1417
- renderCell: ({ row: e }) => e.quantity ? Re(e.quantity) : ne
1439
+ renderCell: ({ row: e }) => e.quantity ? Me(e.quantity) : ae
1418
1440
  },
1419
1441
  {
1420
1442
  field: "total",
@@ -1424,7 +1446,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1424
1446
  align: "right",
1425
1447
  headerAlign: "right",
1426
1448
  cellClassName: "gloss-tabular-nums gloss-drillable",
1427
- renderCell: ({ row: e }) => e.total ? ge(e.total) : ne
1449
+ renderCell: ({ row: e }) => e.total ? fe(e.total) : ae
1428
1450
  },
1429
1451
  {
1430
1452
  field: "lastDate",
@@ -1434,23 +1456,23 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1434
1456
  align: "right",
1435
1457
  headerAlign: "right",
1436
1458
  cellClassName: "gloss-tabular-nums",
1437
- renderCell: ({ row: e }) => e.lastDate ? Me(e.lastDate) : ""
1459
+ renderCell: ({ row: e }) => e.lastDate ? Fe(e.lastDate) : ""
1438
1460
  }
1439
- ], wt = [
1461
+ ], Nt = [
1440
1462
  { id: "c-001", label: "ABC Home Goods" },
1441
1463
  { id: "c-002", label: "Riverside Retail" },
1442
1464
  { id: "c-003", label: "Mountain View Store" },
1443
1465
  { id: "c-004", label: "Downtown Decor" },
1444
1466
  { id: "c-005", label: "Pacific Coast Imports" }
1445
- ], Dt = [
1467
+ ], _t = [
1446
1468
  { id: "i-001", label: "Classic Linen Throw Pillow" },
1447
1469
  { id: "i-002", label: "Coastal Wave Candle Set" },
1448
1470
  { id: "i-003", label: "Walnut Console Table" },
1449
1471
  { id: "i-004", label: "Hand-Blown Glass Vase" },
1450
1472
  { id: "i-005", label: "Velvet Accent Cushion" }
1451
- ], de = (e) => {
1452
- }, Ct = (e) => {
1453
- }, Ne = (e, t) => {
1473
+ ], ue = (e) => {
1474
+ }, kt = (e) => {
1475
+ }, _e = (e, t) => {
1454
1476
  }, Pe = {
1455
1477
  vizState: {
1456
1478
  type: "orders",
@@ -1459,16 +1481,16 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1459
1481
  byItem: { id: null, name: null },
1460
1482
  timeFrame: "MTD"
1461
1483
  },
1462
- onTypeChange: de,
1463
- onQuantChange: Ct,
1464
- onEntityTypeChange: de,
1465
- onEntitySelect: Ne,
1466
- onItemSelect: Ne,
1467
- onTimeFrameChange: de,
1484
+ onTypeChange: ue,
1485
+ onQuantChange: kt,
1486
+ onEntityTypeChange: ue,
1487
+ onEntitySelect: _e,
1488
+ onItemSelect: _e,
1489
+ onTimeFrameChange: ue,
1468
1490
  userType: "sales-agency",
1469
- entityFilterOptions: wt,
1470
- itemFilterOptions: Dt
1471
- }, Hn = {
1491
+ entityFilterOptions: Nt,
1492
+ itemFilterOptions: _t
1493
+ }, Ua = {
1472
1494
  ...Pe,
1473
1495
  vizState: {
1474
1496
  type: "items",
@@ -1477,7 +1499,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1477
1499
  byItem: { id: "i-003", name: "Walnut Console Table" },
1478
1500
  timeFrame: "YTD"
1479
1501
  }
1480
- }, Vn = {
1502
+ }, Za = {
1481
1503
  ...Pe,
1482
1504
  vizState: {
1483
1505
  type: "orders",
@@ -1490,7 +1512,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1490
1512
  entityFilterOptions: [
1491
1513
  { id: "customers", label: "Customers" }
1492
1514
  ]
1493
- }, Nt = [
1515
+ }, St = [
1494
1516
  {
1495
1517
  id: "recent-orders",
1496
1518
  label: "Recent Orders",
@@ -1536,7 +1558,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1536
1558
  routeKey: "customer.profile",
1537
1559
  subtitle: "Opens in RepTime"
1538
1560
  }
1539
- ], kt = [
1561
+ ], xt = [
1540
1562
  {
1541
1563
  id: "order-items",
1542
1564
  label: "Items in Order",
@@ -1565,7 +1587,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1565
1587
  cellKinds: ["orderId"],
1566
1588
  graphType: "timeline"
1567
1589
  }
1568
- ], xt = [
1590
+ ], Tt = [
1569
1591
  {
1570
1592
  id: "graph-metric",
1571
1593
  label: "Graph This Metric",
@@ -1593,14 +1615,14 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1593
1615
  cellKinds: ["numeric"],
1594
1616
  tabType: "orders"
1595
1617
  }
1596
- ], zn = {
1597
- entityName: Nt,
1598
- orderId: kt,
1599
- numeric: xt
1600
- }, Zn = [
1618
+ ], ja = {
1619
+ entityName: St,
1620
+ orderId: xt,
1621
+ numeric: Tt
1622
+ }, Ya = [
1601
1623
  new Date((/* @__PURE__ */ new Date()).getFullYear(), (/* @__PURE__ */ new Date()).getMonth(), (/* @__PURE__ */ new Date()).getDate() - 29),
1602
1624
  /* @__PURE__ */ new Date()
1603
- ], Un = {
1625
+ ], qa = {
1604
1626
  rangeA: [
1605
1627
  new Date((/* @__PURE__ */ new Date()).getFullYear(), (/* @__PURE__ */ new Date()).getMonth(), 1),
1606
1628
  /* @__PURE__ */ new Date()
@@ -1613,7 +1635,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1613
1635
  new Date((/* @__PURE__ */ new Date()).getFullYear(), (/* @__PURE__ */ new Date()).getMonth() - 2, 1),
1614
1636
  new Date((/* @__PURE__ */ new Date()).getFullYear(), (/* @__PURE__ */ new Date()).getMonth() - 1, 0)
1615
1637
  ]
1616
- }, Yn = {
1638
+ }, Qa = {
1617
1639
  version: 4,
1618
1640
  lastPreset: "mtd",
1619
1641
  pinnedPreset: "mtd",
@@ -1621,7 +1643,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1621
1643
  rangeCount: 1,
1622
1644
  lastPresetB: null,
1623
1645
  lastPresetC: null
1624
- }, qn = [
1646
+ }, Xa = [
1625
1647
  {
1626
1648
  id: "atlanta-jan",
1627
1649
  label: "Atlanta Market",
@@ -1643,7 +1665,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1643
1665
  endDate: new Date(2026, 3, 22),
1644
1666
  location: "Chicago, IL"
1645
1667
  }
1646
- ], jn = [
1668
+ ], Ja = [
1647
1669
  {
1648
1670
  id: "custom-regional-1",
1649
1671
  label: "Southeast Regional Expo",
@@ -1660,7 +1682,7 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1660
1682
  location: "Portland, OR",
1661
1683
  isCustom: !0
1662
1684
  }
1663
- ], Xn = [
1685
+ ], en = [
1664
1686
  {
1665
1687
  id: "atlanta-jan",
1666
1688
  label: "Atlanta Market",
@@ -1677,133 +1699,133 @@ const ne = G.createElement("span", { style: { color: "var(--color-text-muted)" }
1677
1699
  location: "New York, NY",
1678
1700
  active: !0
1679
1701
  }
1680
- ], Qn = [
1702
+ ], tn = [
1681
1703
  { id: "7d", label: "7D" },
1682
1704
  { id: "30d", label: "30D" },
1683
1705
  { id: "60d", label: "60D" },
1684
1706
  { id: "90d", label: "90D" }
1685
- ], Jn = [
1707
+ ], an = [
1686
1708
  { id: "mtd", label: "MTD" },
1687
1709
  { id: "qtd", label: "QTD" },
1688
1710
  { id: "ytd", label: "YTD" },
1689
1711
  { id: "lytd", label: "LYTD" }
1690
- ], St = {
1712
+ ], It = {
1691
1713
  timeframe: "Time Frame",
1692
1714
  threshold: "Thresholds",
1693
1715
  slots: "Slots",
1694
1716
  size: "Size",
1695
1717
  color: "Color",
1696
1718
  pinned: "Pinned"
1697
- }, Tt = {
1698
- timeframe: Xe,
1699
- threshold: Qe,
1700
- slots: Je,
1701
- size: et,
1702
- color: tt,
1703
- pinned: nt
1719
+ }, Rt = {
1720
+ timeframe: et,
1721
+ threshold: tt,
1722
+ slots: at,
1723
+ size: nt,
1724
+ color: rt,
1725
+ pinned: st
1704
1726
  };
1705
1727
  function ke(...e) {
1706
1728
  return e.filter(Boolean).join(" ");
1707
1729
  }
1708
- function _t() {
1709
- const [e, t] = K(() => typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches);
1710
- return L(() => {
1730
+ function Mt() {
1731
+ const [e, t] = z(() => typeof window > "u" || typeof window.matchMedia != "function" ? !1 : window.matchMedia("(prefers-reduced-motion: reduce)").matches);
1732
+ return $(() => {
1711
1733
  if (typeof window > "u" || typeof window.matchMedia != "function") return;
1712
- const a = window.matchMedia("(prefers-reduced-motion: reduce)"), n = (s) => t(s.matches);
1713
- return typeof a.addEventListener == "function" ? (a.addEventListener("change", n), () => a.removeEventListener("change", n)) : (a.addListener?.(n), () => {
1714
- a.removeListener?.(n);
1734
+ const n = window.matchMedia("(prefers-reduced-motion: reduce)"), a = (r) => t(r.matches);
1735
+ return typeof n.addEventListener == "function" ? (n.addEventListener("change", a), () => n.removeEventListener("change", a)) : (n.addListener?.(a), () => {
1736
+ n.removeListener?.(a);
1715
1737
  });
1716
1738
  }, []), e;
1717
1739
  }
1718
- const It = ({
1740
+ const Ft = ({
1719
1741
  dimensions: e,
1720
1742
  onDimensionSelect: t,
1721
- activeDimension: a,
1722
- ariaCardTypeLabel: n,
1723
- className: s
1743
+ activeDimension: n,
1744
+ ariaCardTypeLabel: a,
1745
+ className: r
1724
1746
  }) => {
1725
- const o = R(null), c = R([]), p = _t(), h = ae(() => Array.from(e), [e]);
1726
- if (h.length === 0) return null;
1727
- const m = n ? `Configure ${n}: choose a dimension` : void 0, D = p ? "10ms" : "200ms", C = (i, l) => {
1728
- const b = h.length - 1, M = (g) => {
1729
- const x = c.current[g];
1730
- x && x.focus();
1747
+ const s = R(null), o = R([]), l = Mt(), b = ne(() => Array.from(e), [e]);
1748
+ if (b.length === 0) return null;
1749
+ const p = a ? `Configure ${a}: choose a dimension` : void 0, y = l ? "10ms" : "200ms", C = (u, d) => {
1750
+ const g = b.length - 1, x = (f) => {
1751
+ const k = o.current[f];
1752
+ k && k.focus();
1731
1753
  };
1732
- switch (i.key) {
1754
+ switch (u.key) {
1733
1755
  case "ArrowRight":
1734
1756
  case "ArrowDown": {
1735
- i.preventDefault(), M(l === b ? 0 : l + 1);
1757
+ u.preventDefault(), x(d === g ? 0 : d + 1);
1736
1758
  break;
1737
1759
  }
1738
1760
  case "ArrowLeft":
1739
1761
  case "ArrowUp": {
1740
- i.preventDefault(), M(l === 0 ? b : l - 1);
1762
+ u.preventDefault(), x(d === 0 ? g : d - 1);
1741
1763
  break;
1742
1764
  }
1743
1765
  case "Home": {
1744
- i.preventDefault(), M(0);
1766
+ u.preventDefault(), x(0);
1745
1767
  break;
1746
1768
  }
1747
1769
  case "End": {
1748
- i.preventDefault(), M(b);
1770
+ u.preventDefault(), x(g);
1749
1771
  break;
1750
1772
  }
1751
1773
  case "Enter":
1752
1774
  case " ": {
1753
- i.preventDefault(), t(h[l]);
1775
+ u.preventDefault(), t(b[d]);
1754
1776
  break;
1755
1777
  }
1756
1778
  }
1757
1779
  };
1758
- return /* @__PURE__ */ u(
1780
+ return /* @__PURE__ */ c(
1759
1781
  "div",
1760
1782
  {
1761
- ref: o,
1783
+ ref: s,
1762
1784
  role: "group",
1763
- "aria-label": m,
1764
- className: ke("gloss-reconfig-backside-buttons", s),
1785
+ "aria-label": p,
1786
+ className: ke("gloss-reconfig-backside-buttons", r),
1765
1787
  style: {
1766
1788
  // Expose the reduced-motion-resolved duration as a CSS custom prop
1767
1789
  // so the SCSS transition rule can consume it without a nested media
1768
1790
  // query in the JS. Also surfaces the value for the unit test.
1769
- "--gloss-reconfig-backside-buttons-transition-duration": D
1791
+ "--gloss-reconfig-backside-buttons-transition-duration": y
1770
1792
  },
1771
- children: h.map((i, l) => {
1772
- const b = Tt[i], M = a === i;
1773
- return /* @__PURE__ */ $(
1793
+ children: b.map((u, d) => {
1794
+ const g = Rt[u], x = n === u;
1795
+ return /* @__PURE__ */ A(
1774
1796
  "button",
1775
1797
  {
1776
- ref: (g) => {
1777
- c.current[l] = g;
1798
+ ref: (f) => {
1799
+ o.current[d] = f;
1778
1800
  },
1779
1801
  type: "button",
1780
- "data-dimension": i,
1802
+ "data-dimension": u,
1781
1803
  className: ke(
1782
1804
  "gloss-reconfig-backside-buttons__button",
1783
- M && "gloss-reconfig-backside-buttons__button--active"
1805
+ x && "gloss-reconfig-backside-buttons__button--active"
1784
1806
  ),
1785
- "aria-current": M ? "true" : void 0,
1786
- onClick: () => t(i),
1787
- onKeyDown: (g) => C(g, l),
1807
+ "aria-current": x ? "true" : void 0,
1808
+ onClick: () => t(u),
1809
+ onKeyDown: (f) => C(f, d),
1788
1810
  children: [
1789
- /* @__PURE__ */ u(
1790
- b,
1811
+ /* @__PURE__ */ c(
1812
+ g,
1791
1813
  {
1792
1814
  className: "gloss-reconfig-backside-buttons__button-icon",
1793
1815
  "aria-hidden": "true"
1794
1816
  }
1795
1817
  ),
1796
- /* @__PURE__ */ u("span", { className: "gloss-reconfig-backside-buttons__button-label", children: St[i] })
1818
+ /* @__PURE__ */ c("span", { className: "gloss-reconfig-backside-buttons__button-label", children: It[u] })
1797
1819
  ]
1798
1820
  },
1799
- i
1821
+ u
1800
1822
  );
1801
1823
  })
1802
1824
  }
1803
1825
  );
1804
1826
  };
1805
- It.displayName = "ReconfigBacksideButtons";
1806
- function Z(e, t) {
1827
+ Ft.displayName = "ReconfigBacksideButtons";
1828
+ function U(e, t) {
1807
1829
  return {
1808
1830
  id: e,
1809
1831
  colSpan: 1,
@@ -1823,38 +1845,38 @@ function Z(e, t) {
1823
1845
  }, t)
1824
1846
  };
1825
1847
  }
1826
- function xe(e, t) {
1848
+ function Se(e, t) {
1827
1849
  return {
1828
- ...Z(e, t),
1850
+ ...U(e, t),
1829
1851
  colSpan: 2
1830
1852
  };
1831
1853
  }
1832
- const ea = [
1833
- Z("total-revenue", "Total Revenue"),
1834
- Z("total-orders", "Total Orders"),
1835
- xe("revenue-trend", "Revenue Trend (2x)"),
1836
- Z("avg-order", "Avg Order Value"),
1837
- Z("new-customers", "New Customers"),
1838
- Z("top-salesperson", "Top Salesperson"),
1839
- xe("order-trend", "Order Trend (2x)"),
1840
- Z("repeat-rate", "Repeat Rate"),
1841
- Z("open-orders", "Open Orders"),
1842
- Z("shipped-orders", "Shipped Orders")
1843
- ], ta = {
1854
+ const nn = [
1855
+ U("total-revenue", "Total Revenue"),
1856
+ U("total-orders", "Total Orders"),
1857
+ Se("revenue-trend", "Revenue Trend (2x)"),
1858
+ U("avg-order", "Avg Order Value"),
1859
+ U("new-customers", "New Customers"),
1860
+ U("top-salesperson", "Top Salesperson"),
1861
+ Se("order-trend", "Order Trend (2x)"),
1862
+ U("repeat-rate", "Repeat Rate"),
1863
+ U("open-orders", "Open Orders"),
1864
+ U("shipped-orders", "Shipped Orders")
1865
+ ], rn = {
1844
1866
  columns: 6,
1845
1867
  rowHeight: 120,
1846
1868
  gap: 15,
1847
1869
  maxRows: 3,
1848
1870
  currentPage: 0,
1849
1871
  totalPages: 1
1850
- }, na = {
1872
+ }, sn = {
1851
1873
  columns: 9,
1852
1874
  rowHeight: 120,
1853
1875
  gap: 15,
1854
1876
  maxRows: 3,
1855
1877
  currentPage: 0,
1856
1878
  totalPages: 2
1857
- }, aa = {
1879
+ }, on = {
1858
1880
  columns: 12,
1859
1881
  rowHeight: 120,
1860
1882
  gap: 15,
@@ -1862,15 +1884,15 @@ const ea = [
1862
1884
  currentPage: 0,
1863
1885
  totalPages: 3
1864
1886
  };
1865
- function ue(e) {
1887
+ function me(e) {
1866
1888
  return G.createElement("span", { style: { fontSize: 14 } }, e);
1867
1889
  }
1868
- const ra = [
1890
+ const ln = [
1869
1891
  {
1870
1892
  id: "all-orders",
1871
1893
  type: "orders",
1872
1894
  name: "All Orders",
1873
- icon: ue("📋"),
1895
+ icon: me("📋"),
1874
1896
  closable: !1,
1875
1897
  autoCreated: !0
1876
1898
  },
@@ -1878,17 +1900,17 @@ const ra = [
1878
1900
  id: "open-orders",
1879
1901
  type: "orders",
1880
1902
  name: "Open Orders",
1881
- icon: ue("📦"),
1903
+ icon: me("📦"),
1882
1904
  closable: !0
1883
1905
  },
1884
1906
  {
1885
1907
  id: "shipped-orders",
1886
1908
  type: "orders",
1887
1909
  name: "Shipped Orders",
1888
- icon: ue("🚚"),
1910
+ icon: me("🚚"),
1889
1911
  closable: !0
1890
1912
  }
1891
- ], sa = [
1913
+ ], dn = [
1892
1914
  {
1893
1915
  id: "orders-main",
1894
1916
  type: "orders",
@@ -1914,7 +1936,7 @@ const ra = [
1914
1936
  name: "Customers",
1915
1937
  closable: !0
1916
1938
  }
1917
- ], oa = [
1939
+ ], cn = [
1918
1940
  {
1919
1941
  id: "only-tab",
1920
1942
  type: "orders",
@@ -1922,7 +1944,7 @@ const ra = [
1922
1944
  closable: !1,
1923
1945
  autoCreated: !0
1924
1946
  }
1925
- ], ia = [
1947
+ ], un = [
1926
1948
  { id: "tab-1", type: "orders", name: "All Orders", closable: !1, autoCreated: !0 },
1927
1949
  { id: "tab-2", type: "orders", name: "Open Orders", closable: !0 },
1928
1950
  { id: "tab-3", type: "orders", name: "Shipped Orders", closable: !0 },
@@ -1934,7 +1956,7 @@ const ra = [
1934
1956
  { id: "tab-9", type: "order-items", name: "Order #12345", closable: !0 },
1935
1957
  { id: "tab-10", type: "orders", name: "Recent 30D", closable: !0 }
1936
1958
  ];
1937
- function fe(e) {
1959
+ function he(e) {
1938
1960
  switch (e) {
1939
1961
  case "wide":
1940
1962
  return { cols: 2, rows: 1 };
@@ -1945,40 +1967,40 @@ function fe(e) {
1945
1967
  return { cols: 1, rows: 1 };
1946
1968
  }
1947
1969
  }
1948
- function Rt(e) {
1970
+ function Pt(e) {
1949
1971
  let t = 0;
1950
- for (const n of e) {
1951
- const s = fe(n.size), o = n.gridPosition.col + s.cols - 1;
1952
- o > t && (t = o);
1972
+ for (const a of e) {
1973
+ const r = he(a.size), s = a.gridPosition.col + r.cols - 1;
1974
+ s > t && (t = s);
1953
1975
  }
1954
1976
  return `repeat(${t > 0 ? t : Math.max(e.length, 1)}, minmax(0, 1fr))`;
1955
1977
  }
1956
- const Mt = function(t) {
1978
+ const Et = function(t) {
1957
1979
  if (t.renderMode === "discrete")
1958
- return /* @__PURE__ */ u(
1980
+ return /* @__PURE__ */ c(
1959
1981
  "div",
1960
1982
  {
1961
1983
  className: "gloss-metric-group gloss-metric-group--discrete",
1962
1984
  style: { display: "contents" },
1963
- children: t.cards.map((s) => {
1964
- const o = fe(s.size);
1965
- return /* @__PURE__ */ u(
1985
+ children: t.cards.map((r) => {
1986
+ const s = he(r.size);
1987
+ return /* @__PURE__ */ c(
1966
1988
  "div",
1967
1989
  {
1968
1990
  className: "gloss-metric-group__slot",
1969
1991
  style: {
1970
- gridColumn: `${s.gridPosition.col} / span ${o.cols}`,
1971
- gridRow: `${s.gridPosition.row} / span ${o.rows}`
1992
+ gridColumn: `${r.gridPosition.col} / span ${s.cols}`,
1993
+ gridRow: `${r.gridPosition.row} / span ${s.rows}`
1972
1994
  },
1973
- children: s.children
1995
+ children: r.children
1974
1996
  },
1975
- s.key
1997
+ r.key
1976
1998
  );
1977
1999
  })
1978
2000
  }
1979
2001
  );
1980
- const { cards: a, composite: n } = t;
1981
- return /* @__PURE__ */ $(
2002
+ const { cards: n, composite: a } = t;
2003
+ return /* @__PURE__ */ A(
1982
2004
  "div",
1983
2005
  {
1984
2006
  className: "gloss-metric-group gloss-metric-group--composite",
@@ -1993,50 +2015,50 @@ const Mt = function(t) {
1993
2015
  padding: "10px 12px 8px",
1994
2016
  overflow: "visible"
1995
2017
  },
1996
- role: n?.label ? "group" : void 0,
1997
- "aria-label": n?.label,
2018
+ role: a?.label ? "group" : void 0,
2019
+ "aria-label": a?.label,
1998
2020
  tabIndex: void 0,
1999
2021
  children: [
2000
- n?.accentColor && /* @__PURE__ */ u(
2022
+ a?.accentColor && /* @__PURE__ */ c(
2001
2023
  "div",
2002
2024
  {
2003
2025
  className: "gloss-metric-group__accent",
2004
- style: { background: n.accentColor }
2026
+ style: { background: a.accentColor }
2005
2027
  }
2006
2028
  ),
2007
- n?.label && /* @__PURE__ */ $("div", { className: "gloss-metric-group__label", children: [
2008
- /* @__PURE__ */ u("span", { children: n.label }),
2009
- n?.trend && /* @__PURE__ */ u(
2029
+ a?.label && /* @__PURE__ */ A("div", { className: "gloss-metric-group__label", children: [
2030
+ /* @__PURE__ */ c("span", { children: a.label }),
2031
+ a?.trend && /* @__PURE__ */ c(
2010
2032
  "span",
2011
2033
  {
2012
2034
  className: "gloss-metric-group__trend",
2013
- "data-direction": n.trend.direction,
2014
- children: n.trend.delta
2035
+ "data-direction": a.trend.direction,
2036
+ children: a.trend.delta
2015
2037
  }
2016
2038
  )
2017
2039
  ] }),
2018
- /* @__PURE__ */ u(
2040
+ /* @__PURE__ */ c(
2019
2041
  "div",
2020
2042
  {
2021
2043
  className: "gloss-metric-group__slots",
2022
2044
  style: {
2023
2045
  display: "grid",
2024
2046
  gap: "var(--gloss-spacing-2, 8px)",
2025
- gridTemplateColumns: Rt(a)
2047
+ gridTemplateColumns: Pt(n)
2026
2048
  },
2027
- children: a.map((s) => {
2028
- const o = fe(s.size);
2029
- return /* @__PURE__ */ u(
2049
+ children: n.map((r) => {
2050
+ const s = he(r.size);
2051
+ return /* @__PURE__ */ c(
2030
2052
  "div",
2031
2053
  {
2032
2054
  className: "gloss-metric-group__slot--composite",
2033
2055
  style: {
2034
- gridColumn: `${s.gridPosition.col} / span ${o.cols}`,
2035
- gridRow: `${s.gridPosition.row} / span ${o.rows}`
2056
+ gridColumn: `${r.gridPosition.col} / span ${s.cols}`,
2057
+ gridRow: `${r.gridPosition.row} / span ${s.rows}`
2036
2058
  },
2037
- children: s.children
2059
+ children: r.children
2038
2060
  },
2039
- s.key
2061
+ r.key
2040
2062
  );
2041
2063
  })
2042
2064
  }
@@ -2045,48 +2067,48 @@ const Mt = function(t) {
2045
2067
  }
2046
2068
  );
2047
2069
  };
2048
- Mt.displayName = "MetricGroupContainer";
2049
- const Fe = "resize.tuning.dev", Pt = {
2050
- ..._e,
2070
+ Et.displayName = "MetricGroupContainer";
2071
+ const Ee = "resize.tuning.dev", Ot = {
2072
+ ...Ie,
2051
2073
  snapInPx: 60,
2052
2074
  snapOutPx: 90
2053
- }, q = Pt;
2054
- function Ft() {
2055
- if (typeof window > "u") return { ...q };
2075
+ }, j = Ot;
2076
+ function At() {
2077
+ if (typeof window > "u") return { ...j };
2056
2078
  try {
2057
- const e = window.localStorage.getItem(Fe);
2058
- if (!e) return { ...q };
2079
+ const e = window.localStorage.getItem(Ee);
2080
+ if (!e) return { ...j };
2059
2081
  const t = JSON.parse(e);
2060
- return !t || typeof t != "object" || Array.isArray(t) ? { ...q } : { ...q, ...t };
2082
+ return !t || typeof t != "object" || Array.isArray(t) ? { ...j } : { ...j, ...t };
2061
2083
  } catch {
2062
- return { ...q };
2084
+ return { ...j };
2063
2085
  }
2064
2086
  }
2065
- function Et() {
2066
- const [e, t] = K(() => Ft());
2067
- L(() => {
2087
+ function Lt() {
2088
+ const [e, t] = z(() => At());
2089
+ $(() => {
2068
2090
  if (!(typeof window > "u"))
2069
2091
  try {
2070
- window.localStorage.setItem(Fe, JSON.stringify(e));
2092
+ window.localStorage.setItem(Ee, JSON.stringify(e));
2071
2093
  } catch {
2072
2094
  }
2073
2095
  }, [e]);
2074
- const a = f(
2075
- (o, c) => {
2076
- t((p) => ({ ...p, [o]: c }));
2096
+ const n = v(
2097
+ (s, o) => {
2098
+ t((l) => ({ ...l, [s]: o }));
2077
2099
  },
2078
2100
  []
2079
- ), n = f(
2080
- (o) => {
2081
- t((c) => ({ ...c, [o]: q[o] }));
2101
+ ), a = v(
2102
+ (s) => {
2103
+ t((o) => ({ ...o, [s]: j[s] }));
2082
2104
  },
2083
2105
  []
2084
- ), s = f(() => {
2085
- t({ ...q });
2106
+ ), r = v(() => {
2107
+ t({ ...j });
2086
2108
  }, []);
2087
- return { values: e, setValue: a, resetRow: n, resetAll: s };
2109
+ return { values: e, setValue: n, resetRow: a, resetAll: r };
2088
2110
  }
2089
- const Ot = [
2111
+ const $t = [
2090
2112
  { key: "stiffness", label: "Spring stiffness", unit: "", min: 100, max: 1e3, step: 10 },
2091
2113
  { key: "damping", label: "Spring damping", unit: "", min: 10, max: 60, step: 1 },
2092
2114
  { key: "mass", label: "Spring mass", unit: "", min: 0.5, max: 2, step: 0.1 },
@@ -2097,11 +2119,11 @@ const Ot = [
2097
2119
  { key: "blueprintFadeOutMs", label: "Blueprint fade out", unit: "ms", min: 60, max: 400, step: 10 },
2098
2120
  { key: "velocityMultiplier", label: "Velocity multiplier", unit: "×", min: 0, max: 2, step: 0.05 }
2099
2121
  ];
2100
- function At(e, t) {
2122
+ function Bt(e, t) {
2101
2123
  return t >= 1 ? String(Math.round(e)) : t >= 0.1 ? e.toFixed(1) : e.toFixed(2);
2102
2124
  }
2103
- function Lt() {
2104
- return /* @__PURE__ */ $(
2125
+ function Kt() {
2126
+ return /* @__PURE__ */ A(
2105
2127
  "svg",
2106
2128
  {
2107
2129
  width: "14",
@@ -2114,32 +2136,32 @@ function Lt() {
2114
2136
  strokeLinejoin: "round",
2115
2137
  "aria-hidden": "true",
2116
2138
  children: [
2117
- /* @__PURE__ */ u("path", { d: "M3 12a9 9 0 1 0 3-6.7L3 8" }),
2118
- /* @__PURE__ */ u("polyline", { points: "3 3 3 8 8 8" })
2139
+ /* @__PURE__ */ c("path", { d: "M3 12a9 9 0 1 0 3-6.7L3 8" }),
2140
+ /* @__PURE__ */ c("polyline", { points: "3 3 3 8 8 8" })
2119
2141
  ]
2120
2142
  }
2121
2143
  );
2122
2144
  }
2123
- function $t({ spec: e, value: t, onChange: a, onReset: n, flashing: s }) {
2124
- const o = f(
2125
- (c) => {
2126
- (c.key === "r" || c.key === "R") && (c.preventDefault(), n());
2145
+ function zt({ spec: e, value: t, onChange: n, onReset: a, flashing: r }) {
2146
+ const s = v(
2147
+ (o) => {
2148
+ (o.key === "r" || o.key === "R") && (o.preventDefault(), a());
2127
2149
  },
2128
- [n]
2150
+ [a]
2129
2151
  );
2130
- return /* @__PURE__ */ $(
2152
+ return /* @__PURE__ */ A(
2131
2153
  "div",
2132
2154
  {
2133
- className: `gloss-dev-tuning-panel__row${s ? " gloss-dev-tuning-panel__row--flash" : ""}`,
2155
+ className: `gloss-dev-tuning-panel__row${r ? " gloss-dev-tuning-panel__row--flash" : ""}`,
2134
2156
  "data-tuning-row": e.key,
2135
- onKeyDown: o,
2157
+ onKeyDown: s,
2136
2158
  children: [
2137
- /* @__PURE__ */ u("label", { className: "gloss-dev-tuning-panel__label", htmlFor: `gloss-dtp-${e.key}`, children: e.label }),
2138
- /* @__PURE__ */ $("span", { className: "gloss-dev-tuning-panel__value", "aria-live": "off", children: [
2139
- At(t, e.step),
2159
+ /* @__PURE__ */ c("label", { className: "gloss-dev-tuning-panel__label", htmlFor: `gloss-dtp-${e.key}`, children: e.label }),
2160
+ /* @__PURE__ */ A("span", { className: "gloss-dev-tuning-panel__value", "aria-live": "off", children: [
2161
+ Bt(t, e.step),
2140
2162
  e.unit ? ` ${e.unit}` : ""
2141
2163
  ] }),
2142
- /* @__PURE__ */ u(
2164
+ /* @__PURE__ */ c(
2143
2165
  "input",
2144
2166
  {
2145
2167
  id: `gloss-dtp-${e.key}`,
@@ -2150,24 +2172,24 @@ function $t({ spec: e, value: t, onChange: a, onReset: n, flashing: s }) {
2150
2172
  step: e.step,
2151
2173
  value: t,
2152
2174
  "aria-label": e.label,
2153
- onChange: (c) => a(Number(c.target.value))
2175
+ onChange: (o) => n(Number(o.target.value))
2154
2176
  }
2155
2177
  ),
2156
- /* @__PURE__ */ u(
2178
+ /* @__PURE__ */ c(
2157
2179
  "button",
2158
2180
  {
2159
2181
  type: "button",
2160
2182
  className: "gloss-dev-tuning-panel__reset",
2161
2183
  "aria-label": `Reset ${e.label}`,
2162
- onClick: n,
2163
- children: /* @__PURE__ */ u(Lt, {})
2184
+ onClick: a,
2185
+ children: /* @__PURE__ */ c(Kt, {})
2164
2186
  }
2165
2187
  )
2166
2188
  ]
2167
2189
  }
2168
2190
  );
2169
2191
  }
2170
- function Bt() {
2192
+ function Wt() {
2171
2193
  if (typeof process < "u" && process.env && process.env.NODE_ENV === "production" || typeof window > "u") return !1;
2172
2194
  try {
2173
2195
  return new URLSearchParams(window.location.search).has("devtune");
@@ -2175,22 +2197,22 @@ function Bt() {
2175
2197
  return !1;
2176
2198
  }
2177
2199
  }
2178
- function Kt(e = {}) {
2179
- return Bt() ? /* @__PURE__ */ u(Wt, {}) : null;
2200
+ function Gt(e = {}) {
2201
+ return Wt() ? /* @__PURE__ */ c(Ht, {}) : null;
2180
2202
  }
2181
- Kt.displayName = "DevTuningPanel";
2182
- function Wt() {
2183
- const e = Et(), { values: t, setValue: a, resetRow: n, resetAll: s } = e, [o, c] = K(null), p = R(null), h = f((i) => {
2184
- p.current && clearTimeout(p.current), c(i), p.current = setTimeout(() => {
2185
- c(null), p.current = null;
2203
+ Gt.displayName = "DevTuningPanel";
2204
+ function Ht() {
2205
+ const e = Lt(), { values: t, setValue: n, resetRow: a, resetAll: r } = e, [s, o] = z(null), l = R(null), b = v((u) => {
2206
+ l.current && clearTimeout(l.current), o(u), l.current = setTimeout(() => {
2207
+ o(null), l.current = null;
2186
2208
  }, 200);
2187
- }, []), m = f(
2188
- (i, l) => {
2189
- a(i, l), i === "snapInPx" && l > t.snapOutPx && (a("snapOutPx", l), h("snapOutPx"));
2209
+ }, []), p = v(
2210
+ (u, d) => {
2211
+ n(u, d), u === "snapInPx" && d > t.snapOutPx && (n("snapOutPx", d), b("snapOutPx"));
2190
2212
  },
2191
- [a, t.snapOutPx, h]
2192
- ), D = ae(() => Ot, []), C = Ye();
2193
- return /* @__PURE__ */ $(
2213
+ [n, t.snapOutPx, b]
2214
+ ), y = ne(() => $t, []), C = Qe();
2215
+ return /* @__PURE__ */ A(
2194
2216
  Te.div,
2195
2217
  {
2196
2218
  className: "gloss-dev-tuning-panel",
@@ -2202,34 +2224,34 @@ function Wt() {
2202
2224
  dragControls: C,
2203
2225
  dragMomentum: !1,
2204
2226
  children: [
2205
- /* @__PURE__ */ $(
2227
+ /* @__PURE__ */ A(
2206
2228
  "div",
2207
2229
  {
2208
2230
  className: "gloss-dev-tuning-panel__header",
2209
- onPointerDown: (i) => C.start(i),
2231
+ onPointerDown: (u) => C.start(u),
2210
2232
  children: [
2211
- /* @__PURE__ */ u("span", { className: "gloss-dev-tuning-panel__title", children: "Resize Tuning — dev only" }),
2212
- /* @__PURE__ */ u("span", { className: "gloss-dev-tuning-panel__hint", children: "?devtune=1" })
2233
+ /* @__PURE__ */ c("span", { className: "gloss-dev-tuning-panel__title", children: "Resize Tuning — dev only" }),
2234
+ /* @__PURE__ */ c("span", { className: "gloss-dev-tuning-panel__hint", children: "?devtune=1" })
2213
2235
  ]
2214
2236
  }
2215
2237
  ),
2216
- /* @__PURE__ */ u("div", { className: "gloss-dev-tuning-panel__body", children: D.map((i) => /* @__PURE__ */ u(
2217
- $t,
2238
+ /* @__PURE__ */ c("div", { className: "gloss-dev-tuning-panel__body", children: y.map((u) => /* @__PURE__ */ c(
2239
+ zt,
2218
2240
  {
2219
- spec: i,
2220
- value: t[i.key],
2221
- onChange: (l) => m(i.key, l),
2222
- onReset: () => n(i.key),
2223
- flashing: o === i.key
2241
+ spec: u,
2242
+ value: t[u.key],
2243
+ onChange: (d) => p(u.key, d),
2244
+ onReset: () => a(u.key),
2245
+ flashing: s === u.key
2224
2246
  },
2225
- i.key
2247
+ u.key
2226
2248
  )) }),
2227
- /* @__PURE__ */ u("div", { className: "gloss-dev-tuning-panel__footer", children: /* @__PURE__ */ u(
2249
+ /* @__PURE__ */ c("div", { className: "gloss-dev-tuning-panel__footer", children: /* @__PURE__ */ c(
2228
2250
  "button",
2229
2251
  {
2230
2252
  type: "button",
2231
2253
  className: "gloss-dev-tuning-panel__reset-all",
2232
- onClick: s,
2254
+ onClick: r,
2233
2255
  children: "Reset all"
2234
2256
  }
2235
2257
  ) })
@@ -2237,7 +2259,191 @@ function Wt() {
2237
2259
  }
2238
2260
  );
2239
2261
  }
2240
- const Y = {
2262
+ function mn({
2263
+ state: e,
2264
+ originX: t,
2265
+ originY: n,
2266
+ leftEdgeX: a,
2267
+ rightEdgeX: r,
2268
+ minBoundaryX: s,
2269
+ snapBoundariesX: o,
2270
+ topY: l,
2271
+ bottomY: b,
2272
+ enterMs: p = Y.envelopeEnterMs,
2273
+ exitMs: y = Y.envelopeExitMs,
2274
+ className: C,
2275
+ style: u
2276
+ }) {
2277
+ if (e === "hidden") return null;
2278
+ const d = Math.max(0, r - a), g = Math.max(0, b - l), x = {
2279
+ "--gloss-resize-envelope-enter-ms": `${p}ms`,
2280
+ "--gloss-resize-envelope-exit-ms": `${y}ms`,
2281
+ "--gloss-resize-envelope-origin-x": `${t - a}px`,
2282
+ "--gloss-resize-envelope-origin-y": `${n - l}px`,
2283
+ left: a,
2284
+ top: l,
2285
+ width: d,
2286
+ height: g,
2287
+ ...u
2288
+ };
2289
+ return /* @__PURE__ */ A(
2290
+ "div",
2291
+ {
2292
+ className: ["gloss-resize-envelope", `gloss-resize-envelope--state-${e}`, C].filter(Boolean).join(" "),
2293
+ "data-state": e,
2294
+ "data-testid": "gloss-resize-envelope",
2295
+ style: x,
2296
+ "aria-hidden": "true",
2297
+ children: [
2298
+ /* @__PURE__ */ c(
2299
+ "div",
2300
+ {
2301
+ className: "gloss-resize-envelope__edge gloss-resize-envelope__edge--left",
2302
+ "data-edge": "left",
2303
+ style: { left: 0 }
2304
+ }
2305
+ ),
2306
+ /* @__PURE__ */ c(
2307
+ "div",
2308
+ {
2309
+ className: "gloss-resize-envelope__edge gloss-resize-envelope__edge--min-boundary",
2310
+ "data-edge": "min-boundary",
2311
+ style: { left: s - a }
2312
+ }
2313
+ ),
2314
+ /* @__PURE__ */ c(
2315
+ "div",
2316
+ {
2317
+ className: "gloss-resize-envelope__edge gloss-resize-envelope__edge--right",
2318
+ "data-edge": "right",
2319
+ style: { left: d - 1 }
2320
+ }
2321
+ ),
2322
+ o.filter((f) => f > s && f < r).map((f) => /* @__PURE__ */ c(
2323
+ "div",
2324
+ {
2325
+ className: "gloss-resize-envelope__snap-line",
2326
+ "data-snap-line": !0,
2327
+ style: { left: f - a }
2328
+ },
2329
+ f
2330
+ ))
2331
+ ]
2332
+ }
2333
+ );
2334
+ }
2335
+ function pn({
2336
+ density: e,
2337
+ canAccept: t,
2338
+ blocked: n = !1,
2339
+ className: a,
2340
+ children: r,
2341
+ ...s
2342
+ }) {
2343
+ return /* @__PURE__ */ c(
2344
+ "div",
2345
+ {
2346
+ ...s,
2347
+ "data-density": e,
2348
+ "data-can-accept": t ? "true" : "false",
2349
+ "data-blocked": n ? "true" : void 0,
2350
+ "data-testid": "gloss-drop-anchor-cell",
2351
+ className: [
2352
+ "gloss-drop-anchor-cell",
2353
+ n && "gloss-drop-anchor-cell--blocked-pulse",
2354
+ a
2355
+ ].filter(Boolean).join(" "),
2356
+ children: r
2357
+ }
2358
+ );
2359
+ }
2360
+ function Vt(e, t, n, a) {
2361
+ const r = (e + n) / 2, s = Math.min(t, a) - 40;
2362
+ return `M${e},${t} Q${r},${s} ${n},${a}`;
2363
+ }
2364
+ function gn({
2365
+ segments: e,
2366
+ durationMs: t = Y.spilloverArcDurationMs,
2367
+ staggerMs: n = Y.spilloverStaggerMs,
2368
+ className: a,
2369
+ style: r
2370
+ }) {
2371
+ return e.length === 0 ? null : /* @__PURE__ */ c(
2372
+ "svg",
2373
+ {
2374
+ className: ["gloss-spillover-arc", a].filter(Boolean).join(" "),
2375
+ "data-testid": "gloss-spillover-arc",
2376
+ "aria-hidden": "true",
2377
+ style: { position: "absolute", inset: 0, pointerEvents: "none", ...r },
2378
+ children: e.map((s, o) => /* @__PURE__ */ c(
2379
+ "path",
2380
+ {
2381
+ "data-arc-id": s.id,
2382
+ className: "gloss-spillover-arc__path",
2383
+ d: Vt(s.fromX, s.fromY, s.toX, s.toY),
2384
+ style: {
2385
+ animationDelay: `${o * n}ms`,
2386
+ animationDuration: `${t}ms`
2387
+ }
2388
+ },
2389
+ s.id
2390
+ ))
2391
+ }
2392
+ );
2393
+ }
2394
+ function fn({
2395
+ state: e,
2396
+ staggerIndex: t = 0,
2397
+ fadeInMs: n = Y.sectionDividerFadeInMs,
2398
+ fadeOutMs: a = Y.sectionDividerFadeOutMs,
2399
+ staggerMs: r = Y.sectionDividerStaggerMs,
2400
+ className: s,
2401
+ style: o,
2402
+ ...l
2403
+ }) {
2404
+ const b = {
2405
+ "--gloss-section-divider-fade-in-ms": `${n}ms`,
2406
+ "--gloss-section-divider-fade-out-ms": `${a}ms`,
2407
+ "--gloss-section-divider-stagger-delay": `${t * r}ms`,
2408
+ ...o
2409
+ };
2410
+ return /* @__PURE__ */ c(
2411
+ "div",
2412
+ {
2413
+ ...l,
2414
+ "data-state": e,
2415
+ "data-testid": "gloss-section-divider",
2416
+ "aria-hidden": "true",
2417
+ className: [
2418
+ "gloss-section-divider",
2419
+ `gloss-section-divider--state-${e}`,
2420
+ s
2421
+ ].filter(Boolean).join(" "),
2422
+ style: b
2423
+ }
2424
+ );
2425
+ }
2426
+ function hn({
2427
+ enabled: e,
2428
+ onPack: t,
2429
+ ariaLabel: n = "Pack row (shift cards left)",
2430
+ className: a,
2431
+ style: r
2432
+ }) {
2433
+ return e ? /* @__PURE__ */ c(
2434
+ "button",
2435
+ {
2436
+ type: "button",
2437
+ "data-testid": "gloss-empty-cell-pack",
2438
+ "aria-label": n,
2439
+ className: ["gloss-empty-cell-pack-affordance", a].filter(Boolean).join(" "),
2440
+ style: r,
2441
+ onClick: t,
2442
+ children: /* @__PURE__ */ c("span", { "aria-hidden": "true", className: "gloss-empty-cell-pack-affordance__glyph", children: "×" })
2443
+ }
2444
+ ) : null;
2445
+ }
2446
+ const Z = {
2241
2447
  "gloss-inline-nudge": "_gloss-inline-nudge_kdk88_34",
2242
2448
  "gloss-inline-nudge__message": "_gloss-inline-nudge__message_kdk88_65",
2243
2449
  "gloss-inline-nudge__actions": "_gloss-inline-nudge__actions_kdk88_72",
@@ -2245,58 +2451,58 @@ const Y = {
2245
2451
  "gloss-inline-nudge__btn--action": "_gloss-inline-nudge__btn--action_kdk88_88",
2246
2452
  "gloss-inline-nudge__btn--dismiss": "_gloss-inline-nudge__btn--dismiss_kdk88_96"
2247
2453
  };
2248
- function Gt({
2454
+ function Ut({
2249
2455
  message: e,
2250
2456
  primaryAction: t,
2251
- onDismiss: a,
2252
- anchorEl: n,
2253
- anchorSelector: s
2457
+ onDismiss: n,
2458
+ anchorEl: a,
2459
+ anchorSelector: r
2254
2460
  }) {
2255
- const [o, c] = G.useState(null), p = G.useMemo(
2461
+ const [s, o] = G.useState(null), l = G.useMemo(
2256
2462
  () => typeof window < "u" && window.matchMedia ? window.matchMedia("(prefers-reduced-motion: reduce)").matches : !1,
2257
2463
  []
2258
2464
  );
2259
2465
  G.useEffect(() => {
2260
- !n && !s && (typeof process > "u" || process.env.NODE_ENV !== "production") && console.error(
2466
+ !a && !r && (typeof process > "u" || process.env.NODE_ENV !== "production") && console.error(
2261
2467
  "[InlineNudge] requires anchorEl or anchorSelector. AP-07: Do not mount InlineNudge in Layout/** or _app.tsx."
2262
2468
  );
2263
- }, [n, s]), G.useLayoutEffect(() => {
2264
- let m = null;
2265
- if (n ? m = n : s && (m = document.querySelector(s)), m) {
2266
- const D = m.getBoundingClientRect();
2267
- c({
2268
- top: D.bottom + window.scrollY + 6,
2269
- left: D.left + window.scrollX
2469
+ }, [a, r]), G.useLayoutEffect(() => {
2470
+ let p = null;
2471
+ if (a ? p = a : r && (p = document.querySelector(r)), p) {
2472
+ const y = p.getBoundingClientRect();
2473
+ o({
2474
+ top: y.bottom + window.scrollY + 6,
2475
+ left: y.left + window.scrollX
2270
2476
  });
2271
2477
  }
2272
- }, [n, s]);
2273
- const h = o ? { top: o.top, left: o.left } : {};
2274
- return /* @__PURE__ */ $(
2478
+ }, [a, r]);
2479
+ const b = s ? { top: s.top, left: s.left } : {};
2480
+ return /* @__PURE__ */ A(
2275
2481
  "div",
2276
2482
  {
2277
- className: Y["gloss-inline-nudge"],
2278
- style: h,
2483
+ className: Z["gloss-inline-nudge"],
2484
+ style: b,
2279
2485
  role: "status",
2280
2486
  "aria-live": "polite",
2281
- "data-reduced-motion": p ? "true" : void 0,
2487
+ "data-reduced-motion": l ? "true" : void 0,
2282
2488
  children: [
2283
- /* @__PURE__ */ u("span", { className: Y["gloss-inline-nudge__message"], children: e }),
2284
- /* @__PURE__ */ $("div", { className: Y["gloss-inline-nudge__actions"], children: [
2285
- /* @__PURE__ */ u(
2489
+ /* @__PURE__ */ c("span", { className: Z["gloss-inline-nudge__message"], children: e }),
2490
+ /* @__PURE__ */ A("div", { className: Z["gloss-inline-nudge__actions"], children: [
2491
+ /* @__PURE__ */ c(
2286
2492
  "button",
2287
2493
  {
2288
2494
  type: "button",
2289
- className: `${Y["gloss-inline-nudge__btn"]} ${Y["gloss-inline-nudge__btn--action"]}`,
2495
+ className: `${Z["gloss-inline-nudge__btn"]} ${Z["gloss-inline-nudge__btn--action"]}`,
2290
2496
  onClick: t.onClick,
2291
2497
  children: t.label
2292
2498
  }
2293
2499
  ),
2294
- /* @__PURE__ */ u(
2500
+ /* @__PURE__ */ c(
2295
2501
  "button",
2296
2502
  {
2297
2503
  type: "button",
2298
- className: `${Y["gloss-inline-nudge__btn"]} ${Y["gloss-inline-nudge__btn--dismiss"]}`,
2299
- onClick: a,
2504
+ className: `${Z["gloss-inline-nudge__btn"]} ${Z["gloss-inline-nudge__btn--dismiss"]}`,
2505
+ onClick: n,
2300
2506
  "aria-label": "Dismiss",
2301
2507
  children: "Dismiss"
2302
2508
  }
@@ -2306,395 +2512,395 @@ function Gt({
2306
2512
  }
2307
2513
  );
2308
2514
  }
2309
- Gt.displayName = "InlineNudge";
2310
- function he(e) {
2515
+ Ut.displayName = "InlineNudge";
2516
+ function be(e) {
2311
2517
  return e.colorToken ? `var(--gloss-color-${e.colorToken}, ${e.color ?? "#888"})` : e.color ?? "#888";
2312
2518
  }
2313
- function Ht(e, t, a) {
2314
- if (a <= t) {
2315
- const c = e[0], p = c ? he(c) : "#888";
2316
- return `linear-gradient(to right, ${p}, ${p})`;
2519
+ function Zt(e, t, n) {
2520
+ if (n <= t) {
2521
+ const o = e[0], l = o ? be(o) : "#888";
2522
+ return `linear-gradient(to right, ${l}, ${l})`;
2317
2523
  }
2318
- const n = a - t, o = [...e].sort((c, p) => c.value - p.value).map((c) => {
2319
- const p = (c.value - t) / n * 100;
2320
- return `${he(c)} ${p.toFixed(2)}%`;
2524
+ const a = n - t, s = [...e].sort((o, l) => o.value - l.value).map((o) => {
2525
+ const l = (o.value - t) / a * 100;
2526
+ return `${be(o)} ${l.toFixed(2)}%`;
2321
2527
  });
2322
- return o.length === 0 ? "linear-gradient(to right, #888 0%, #888 100%)" : o.length === 1 ? `linear-gradient(to right, ${o[0]}, ${o[0]})` : `linear-gradient(to right, ${o.join(", ")})`;
2528
+ return s.length === 0 ? "linear-gradient(to right, #888 0%, #888 100%)" : s.length === 1 ? `linear-gradient(to right, ${s[0]}, ${s[0]})` : `linear-gradient(to right, ${s.join(", ")})`;
2323
2529
  }
2324
- function Vt(e) {
2530
+ function jt(e) {
2325
2531
  return e.map((t) => `${t.id}:${t.value}`).join("|");
2326
2532
  }
2327
- function zt({
2533
+ function Yt({
2328
2534
  stops: e,
2329
2535
  onChange: t,
2330
- min: a = 0,
2331
- max: n = 100,
2332
- step: s,
2333
- disabled: o = !1
2536
+ min: n = 0,
2537
+ max: a = 100,
2538
+ step: r,
2539
+ disabled: s = !1
2334
2540
  }) {
2335
- const c = s === void 0 ? 0.01 : !Number.isFinite(s) || s <= 0 ? (process.env.NODE_ENV !== "production" && console.warn(
2336
- `ThresholdRamp: step (${s}) must be a positive finite number; falling back to 0.01.`
2337
- ), 0.01) : s, p = f(
2338
- (r) => Math.round(r / c) * c,
2339
- [c]
2340
- ), h = R(null), [m, D] = K(null), [C, i] = K(e), l = Vt(e), b = R(l);
2341
- L(() => {
2342
- b.current !== l && (b.current = l, !m && i(e));
2343
- }, [l, e, m]);
2344
- const M = ae(() => Ht(C, a, n), [C, a, n]), g = f(
2345
- (r) => {
2346
- if (!h.current) return a;
2347
- const d = h.current.getBoundingClientRect(), v = d.width || 1, N = Math.max(0, Math.min(1, (r - d.left) / v)), k = a + N * (n - a);
2348
- return p(k);
2541
+ const o = r === void 0 ? 0.01 : !Number.isFinite(r) || r <= 0 ? (process.env.NODE_ENV !== "production" && console.warn(
2542
+ `ThresholdRamp: step (${r}) must be a positive finite number; falling back to 0.01.`
2543
+ ), 0.01) : r, l = v(
2544
+ (i) => Math.round(i / o) * o,
2545
+ [o]
2546
+ ), b = R(null), [p, y] = z(null), [C, u] = z(e), d = jt(e), g = R(d);
2547
+ $(() => {
2548
+ g.current !== d && (g.current = d, !p && u(e));
2549
+ }, [d, e, p]);
2550
+ const x = ne(() => Zt(C, n, a), [C, n, a]), f = v(
2551
+ (i) => {
2552
+ if (!b.current) return n;
2553
+ const m = b.current.getBoundingClientRect(), h = m.width || 1, N = Math.max(0, Math.min(1, (i - m.left) / h)), _ = n + N * (a - n);
2554
+ return l(_);
2349
2555
  },
2350
- [a, n, p]
2556
+ [n, a, l]
2351
2557
  );
2352
- L(() => {
2353
- n <= a && process.env.NODE_ENV !== "production" && console.warn(
2354
- `ThresholdRamp: max (${n}) must be greater than min (${a}); rendering degenerate strip.`
2558
+ $(() => {
2559
+ a <= n && process.env.NODE_ENV !== "production" && console.warn(
2560
+ `ThresholdRamp: max (${a}) must be greater than min (${n}); rendering degenerate strip.`
2355
2561
  );
2356
- }, [a, n]);
2357
- const x = f(
2358
- (r, d) => {
2359
- const v = C.find((N) => N.id === d);
2360
- o || v?.disabled || (r.preventDefault(), D(d));
2562
+ }, [n, a]);
2563
+ const k = v(
2564
+ (i, m) => {
2565
+ const h = C.find((N) => N.id === m);
2566
+ s || h?.disabled || (i.preventDefault(), y(m));
2361
2567
  },
2362
- [o, C]
2363
- ), F = R(C);
2364
- F.current = C;
2365
- const w = R(t);
2366
- w.current = t, L(() => {
2367
- if (!m) return;
2368
- const r = (v) => {
2369
- const N = g(v.clientX);
2370
- i(
2371
- (k) => k.map((T) => T.id === m ? { ...T, value: N } : T)
2568
+ [s, C]
2569
+ ), M = R(C);
2570
+ M.current = C;
2571
+ const D = R(t);
2572
+ D.current = t, $(() => {
2573
+ if (!p) return;
2574
+ const i = (h) => {
2575
+ const N = f(h.clientX);
2576
+ u(
2577
+ (_) => _.map((F) => F.id === p ? { ...F, value: N } : F)
2372
2578
  );
2373
- }, d = (v) => {
2374
- const N = g(v.clientX), k = F.current.map(
2375
- (T) => T.id === m ? { ...T, value: N } : T
2579
+ }, m = (h) => {
2580
+ const N = f(h.clientX), _ = M.current.map(
2581
+ (F) => F.id === p ? { ...F, value: N } : F
2376
2582
  );
2377
- i(k), D(null), w.current(k);
2583
+ u(_), y(null), D.current(_);
2378
2584
  };
2379
- return window.addEventListener("pointermove", r), window.addEventListener("pointerup", d), window.addEventListener("pointercancel", d), () => {
2380
- window.removeEventListener("pointermove", r), window.removeEventListener("pointerup", d), window.removeEventListener("pointercancel", d);
2585
+ return window.addEventListener("pointermove", i), window.addEventListener("pointerup", m), window.addEventListener("pointercancel", m), () => {
2586
+ window.removeEventListener("pointermove", i), window.removeEventListener("pointerup", m), window.removeEventListener("pointercancel", m);
2381
2587
  };
2382
- }, [m, g]);
2383
- const S = n - a > 0 ? n - a : 1, _ = f(
2384
- (r, d) => {
2385
- if (o || d.disabled) return;
2386
- const v = n - a;
2387
- if (v <= 0) return;
2388
- const N = r.shiftKey ? v / 20 : v / 100;
2389
- let k = d.value;
2390
- switch (r.key) {
2588
+ }, [p, f]);
2589
+ const S = a - n > 0 ? a - n : 1, T = v(
2590
+ (i, m) => {
2591
+ if (s || m.disabled) return;
2592
+ const h = a - n;
2593
+ if (h <= 0) return;
2594
+ const N = i.shiftKey ? h / 20 : h / 100;
2595
+ let _ = m.value;
2596
+ switch (i.key) {
2391
2597
  case "ArrowRight":
2392
2598
  case "ArrowUp":
2393
- k = d.value + N;
2599
+ _ = m.value + N;
2394
2600
  break;
2395
2601
  case "ArrowLeft":
2396
2602
  case "ArrowDown":
2397
- k = d.value - N;
2603
+ _ = m.value - N;
2398
2604
  break;
2399
2605
  case "Home":
2400
- k = a;
2606
+ _ = n;
2401
2607
  break;
2402
2608
  case "End":
2403
- k = n;
2609
+ _ = a;
2404
2610
  break;
2405
2611
  default:
2406
2612
  return;
2407
2613
  }
2408
- r.preventDefault();
2409
- const T = Math.max(a, Math.min(n, k)), E = p(T);
2410
- if (E === d.value) return;
2411
- const O = C.map(
2412
- (B) => B.id === d.id ? { ...B, value: E } : B
2614
+ i.preventDefault();
2615
+ const F = Math.max(n, Math.min(a, _)), I = l(F);
2616
+ if (I === m.value) return;
2617
+ const V = C.map(
2618
+ (O) => O.id === m.id ? { ...O, value: I } : O
2413
2619
  );
2414
- i(O), t(O);
2620
+ u(V), t(V);
2415
2621
  },
2416
- [o, a, n, C, t, p]
2622
+ [s, n, a, C, t, l]
2417
2623
  );
2418
- return /* @__PURE__ */ u("div", { className: "gloss-threshold-ramp", "data-disabled": o || void 0, children: /* @__PURE__ */ u(
2624
+ return /* @__PURE__ */ c("div", { className: "gloss-threshold-ramp", "data-disabled": s || void 0, children: /* @__PURE__ */ c(
2419
2625
  "div",
2420
2626
  {
2421
- ref: h,
2627
+ ref: b,
2422
2628
  className: "gloss-threshold-ramp__track",
2423
- style: { background: M },
2424
- children: C.map((r) => {
2425
- const d = (r.value - a) / S * 100;
2426
- return /* @__PURE__ */ u(
2629
+ style: { background: x },
2630
+ children: C.map((i) => {
2631
+ const m = (i.value - n) / S * 100;
2632
+ return /* @__PURE__ */ c(
2427
2633
  "span",
2428
2634
  {
2429
2635
  className: "gloss-threshold-ramp__stop",
2430
2636
  style: {
2431
- left: `${d}%`,
2432
- color: he(r)
2637
+ left: `${m}%`,
2638
+ color: be(i)
2433
2639
  },
2434
- "data-disabled": r.disabled || void 0,
2435
- "data-dragging": m === r.id || void 0,
2436
- onPointerDown: (v) => x(v, r.id),
2437
- onKeyDown: (v) => _(v, r),
2438
- "aria-label": r.label ?? `Stop at ${r.value}`,
2640
+ "data-disabled": i.disabled || void 0,
2641
+ "data-dragging": p === i.id || void 0,
2642
+ onPointerDown: (h) => k(h, i.id),
2643
+ onKeyDown: (h) => T(h, i),
2644
+ "aria-label": i.label ?? `Stop at ${i.value}`,
2439
2645
  role: "slider",
2440
- "aria-valuenow": r.value,
2441
- "aria-valuemin": a,
2442
- "aria-valuemax": n,
2443
- "aria-disabled": r.disabled || o || void 0,
2444
- tabIndex: r.disabled || o ? -1 : 0
2646
+ "aria-valuenow": i.value,
2647
+ "aria-valuemin": n,
2648
+ "aria-valuemax": a,
2649
+ "aria-disabled": i.disabled || s || void 0,
2650
+ tabIndex: i.disabled || s ? -1 : 0
2445
2651
  },
2446
- r.id
2652
+ i.id
2447
2653
  );
2448
2654
  })
2449
2655
  }
2450
2656
  ) });
2451
2657
  }
2452
- zt.displayName = "ThresholdRamp";
2453
- const Ee = ze(null);
2454
- function Zt() {
2455
- return Ze(Ee);
2658
+ Yt.displayName = "ThresholdRamp";
2659
+ const Oe = je(null);
2660
+ function qt() {
2661
+ return Ye(Oe);
2456
2662
  }
2457
- function Ut({ option: e }) {
2458
- const t = Zt(), a = t?.isSelected(e.value) ?? !1, n = e.disabled || t?.groupDisabled, s = f(() => {
2459
- n || t?.select(e.value);
2460
- }, [n, t, e.value]), o = f(
2461
- (m) => {
2462
- n || t?.onKeyNav(m, e.value);
2663
+ function Qt({ option: e }) {
2664
+ const t = qt(), n = t?.isSelected(e.value) ?? !1, a = e.disabled || t?.groupDisabled, r = v(() => {
2665
+ a || t?.select(e.value);
2666
+ }, [a, t, e.value]), s = v(
2667
+ (p) => {
2668
+ a || t?.onKeyNav(p, e.value);
2463
2669
  },
2464
- [n, t, e.value]
2465
- ), c = e.colorToken ? `var(--gloss-color-${e.colorToken}, ${e.color ?? "#888"})` : e.color ?? "#888", p = t?.firstFocusableValue === e.value, h = n ? -1 : p ? 0 : -1;
2466
- return /* @__PURE__ */ u(
2670
+ [a, t, e.value]
2671
+ ), o = e.colorToken ? `var(--gloss-color-${e.colorToken}, ${e.color ?? "#888"})` : e.color ?? "#888", l = t?.firstFocusableValue === e.value, b = a ? -1 : l ? 0 : -1;
2672
+ return /* @__PURE__ */ c(
2467
2673
  "button",
2468
2674
  {
2469
- ref: (m) => t?.registerRef(e.value, m),
2675
+ ref: (p) => t?.registerRef(e.value, p),
2470
2676
  type: "button",
2471
2677
  role: "radio",
2472
- "aria-checked": a,
2678
+ "aria-checked": n,
2473
2679
  className: "gloss-preset-swatch-row__swatch",
2474
- style: { backgroundColor: c },
2475
- "data-selected": a || void 0,
2476
- "data-disabled": n || void 0,
2477
- ...process.env.NODE_ENV === "test" ? { "data-bg-color": c } : {},
2680
+ style: { backgroundColor: o },
2681
+ "data-selected": n || void 0,
2682
+ "data-disabled": a || void 0,
2683
+ ...process.env.NODE_ENV === "test" ? { "data-bg-color": o } : {},
2478
2684
  "aria-label": e.label ?? e.value,
2479
- "aria-disabled": n,
2480
- disabled: n,
2481
- tabIndex: h,
2482
- onClick: s,
2483
- onKeyDown: o
2685
+ "aria-disabled": a,
2686
+ disabled: a,
2687
+ tabIndex: b,
2688
+ onClick: r,
2689
+ onKeyDown: s
2484
2690
  }
2485
2691
  );
2486
2692
  }
2487
- function Yt({
2693
+ function Xt({
2488
2694
  swatches: e,
2489
2695
  value: t,
2490
- defaultValue: a,
2491
- onChange: n,
2492
- disabled: s = !1,
2493
- name: o
2696
+ defaultValue: n,
2697
+ onChange: a,
2698
+ disabled: r = !1,
2699
+ name: s
2494
2700
  }) {
2495
- const c = t !== void 0, [p, h] = K(a), m = c ? t : p, D = f(
2496
- (w) => {
2497
- c || h(w), n?.(w);
2701
+ const o = t !== void 0, [l, b] = z(n), p = o ? t : l, y = v(
2702
+ (D) => {
2703
+ o || b(D), a?.(D);
2498
2704
  },
2499
- [c, n]
2500
- ), C = f(
2501
- (w) => m === w,
2502
- [m]
2503
- ), i = R(/* @__PURE__ */ new Map()), l = f((w, S) => {
2504
- S ? i.current.set(w, S) : i.current.delete(w);
2505
- }, []), b = e.filter((w) => !w.disabled && !s), M = b.find((w) => w.value === m)?.value ?? b[0]?.value, g = f((w) => {
2506
- const S = i.current.get(w);
2705
+ [o, a]
2706
+ ), C = v(
2707
+ (D) => p === D,
2708
+ [p]
2709
+ ), u = R(/* @__PURE__ */ new Map()), d = v((D, S) => {
2710
+ S ? u.current.set(D, S) : u.current.delete(D);
2711
+ }, []), g = e.filter((D) => !D.disabled && !r), x = g.find((D) => D.value === p)?.value ?? g[0]?.value, f = v((D) => {
2712
+ const S = u.current.get(D);
2507
2713
  S && S.focus();
2508
- }, []), x = f(
2509
- (w, S) => {
2510
- if (s) return;
2511
- const _ = e.filter((N) => !N.disabled);
2512
- if (_.length === 0) return;
2513
- const r = _.findIndex((N) => N.value === S);
2514
- if (r === -1) return;
2515
- let d = r;
2516
- switch (w.key) {
2714
+ }, []), k = v(
2715
+ (D, S) => {
2716
+ if (r) return;
2717
+ const T = e.filter((N) => !N.disabled);
2718
+ if (T.length === 0) return;
2719
+ const i = T.findIndex((N) => N.value === S);
2720
+ if (i === -1) return;
2721
+ let m = i;
2722
+ switch (D.key) {
2517
2723
  case "ArrowRight":
2518
2724
  case "ArrowDown":
2519
- d = (r + 1) % _.length;
2725
+ m = (i + 1) % T.length;
2520
2726
  break;
2521
2727
  case "ArrowLeft":
2522
2728
  case "ArrowUp":
2523
- d = (r - 1 + _.length) % _.length;
2729
+ m = (i - 1 + T.length) % T.length;
2524
2730
  break;
2525
2731
  case "Home":
2526
- d = 0;
2732
+ m = 0;
2527
2733
  break;
2528
2734
  case "End":
2529
- d = _.length - 1;
2735
+ m = T.length - 1;
2530
2736
  break;
2531
2737
  case " ":
2532
2738
  case "Enter":
2533
- w.preventDefault(), D(S);
2739
+ D.preventDefault(), y(S);
2534
2740
  return;
2535
2741
  default:
2536
2742
  return;
2537
2743
  }
2538
- w.preventDefault();
2539
- const v = _[d].value;
2540
- g(v), D(v);
2744
+ D.preventDefault();
2745
+ const h = T[m].value;
2746
+ f(h), y(h);
2541
2747
  },
2542
- [s, e, D, g]
2543
- ), F = {
2544
- selectedValue: m,
2545
- select: D,
2748
+ [r, e, y, f]
2749
+ ), M = {
2750
+ selectedValue: p,
2751
+ select: y,
2546
2752
  isSelected: C,
2547
- groupDisabled: s,
2548
- name: o,
2549
- registerRef: l,
2550
- firstFocusableValue: M,
2551
- onKeyNav: x
2753
+ groupDisabled: r,
2754
+ name: s,
2755
+ registerRef: d,
2756
+ firstFocusableValue: x,
2757
+ onKeyNav: k
2552
2758
  };
2553
- return /* @__PURE__ */ u(Ee.Provider, { value: F, children: /* @__PURE__ */ u(
2759
+ return /* @__PURE__ */ c(Oe.Provider, { value: M, children: /* @__PURE__ */ c(
2554
2760
  "div",
2555
2761
  {
2556
2762
  className: "gloss-preset-swatch-row",
2557
2763
  role: "radiogroup",
2558
- "aria-label": o,
2559
- "aria-disabled": s,
2560
- "data-disabled": s || void 0,
2561
- children: e.map((w) => /* @__PURE__ */ u(Ut, { option: w }, w.value))
2764
+ "aria-label": s,
2765
+ "aria-disabled": r,
2766
+ "data-disabled": r || void 0,
2767
+ children: e.map((D) => /* @__PURE__ */ c(Qt, { option: D }, D.value))
2562
2768
  }
2563
2769
  ) });
2564
2770
  }
2565
- Yt.displayName = "PresetSwatchRow";
2566
- function be(e, t) {
2567
- for (const a of e)
2568
- if (a.items.some((n) => n.id === t))
2569
- return a.zoneKey;
2771
+ Xt.displayName = "PresetSwatchRow";
2772
+ function ve(e, t) {
2773
+ for (const n of e)
2774
+ if (n.items.some((a) => a.id === t))
2775
+ return n.zoneKey;
2570
2776
  return null;
2571
2777
  }
2572
- function Se(e, t) {
2573
- const a = e.find((n) => n.zoneKey === t);
2574
- return a ? a.zoneKey : be(e, t);
2778
+ function xe(e, t) {
2779
+ const n = e.find((a) => a.zoneKey === t);
2780
+ return n ? n.zoneKey : ve(e, t);
2575
2781
  }
2576
- function qt(e, t, a) {
2577
- const n = [...e], [s] = n.splice(t, 1);
2578
- return n.splice(a, 0, s), n;
2782
+ function Jt(e, t, n) {
2783
+ const a = [...e], [r] = a.splice(t, 1);
2784
+ return a.splice(n, 0, r), a;
2579
2785
  }
2580
- function jt(e) {
2581
- return e.map((t) => `${t.zoneKey}:${t.items.map((a) => a.id).join(",")}`).join("|");
2786
+ function ea(e) {
2787
+ return e.map((t) => `${t.zoneKey}:${t.items.map((n) => n.id).join(",")}`).join("|");
2582
2788
  }
2583
- function Xt(e) {
2584
- const [t, a] = K(
2585
- () => e.zones.map((g) => g.maxItems !== void 0 && g.items.length > g.maxItems ? (process.env.NODE_ENV !== "production" && console.warn(
2586
- `useSortableZones: zone "${g.zoneKey}" exceeds maxItems (${g.items.length} > ${g.maxItems}); trimming to cap.`
2587
- ), { ...g, items: g.items.slice(0, g.maxItems) }) : g)
2588
- ), [n, s] = K(null), [o, c] = K(null), p = R(null), h = R(e.onZoneChange);
2589
- h.current = e.onZoneChange;
2590
- const m = ae(
2591
- () => jt(e.zones),
2789
+ function ta(e) {
2790
+ const [t, n] = z(
2791
+ () => e.zones.map((f) => f.maxItems !== void 0 && f.items.length > f.maxItems ? (process.env.NODE_ENV !== "production" && console.warn(
2792
+ `useSortableZones: zone "${f.zoneKey}" exceeds maxItems (${f.items.length} > ${f.maxItems}); trimming to cap.`
2793
+ ), { ...f, items: f.items.slice(0, f.maxItems) }) : f)
2794
+ ), [a, r] = z(null), [s, o] = z(null), l = R(null), b = R(e.onZoneChange);
2795
+ b.current = e.onZoneChange;
2796
+ const p = ne(
2797
+ () => ea(e.zones),
2592
2798
  [e.zones]
2593
- ), D = R(m);
2594
- L(() => {
2595
- D.current !== m && (D.current = m, !n && a(
2596
- e.zones.map((g) => g.maxItems !== void 0 && g.items.length > g.maxItems ? (process.env.NODE_ENV !== "production" && console.warn(
2597
- `useSortableZones: zone "${g.zoneKey}" exceeds maxItems (${g.items.length} > ${g.maxItems}); trimming to cap.`
2598
- ), { ...g, items: g.items.slice(0, g.maxItems) }) : g)
2799
+ ), y = R(p);
2800
+ $(() => {
2801
+ y.current !== p && (y.current = p, !a && n(
2802
+ e.zones.map((f) => f.maxItems !== void 0 && f.items.length > f.maxItems ? (process.env.NODE_ENV !== "production" && console.warn(
2803
+ `useSortableZones: zone "${f.zoneKey}" exceeds maxItems (${f.items.length} > ${f.maxItems}); trimming to cap.`
2804
+ ), { ...f, items: f.items.slice(0, f.maxItems) }) : f)
2599
2805
  ));
2600
- }, [m, e.zones, n]);
2601
- const C = f(
2602
- (g) => {
2603
- const x = g.active.id;
2604
- let F = null, w = null;
2806
+ }, [p, e.zones, a]);
2807
+ const C = v(
2808
+ (f) => {
2809
+ const k = f.active.id;
2810
+ let M = null, D = null;
2605
2811
  for (const S of t) {
2606
- const _ = S.items.find((r) => r.id === x);
2607
- if (_) {
2608
- F = _, w = S.zoneKey;
2812
+ const T = S.items.find((i) => i.id === k);
2813
+ if (T) {
2814
+ M = T, D = S.zoneKey;
2609
2815
  break;
2610
2816
  }
2611
2817
  }
2612
- p.current = w, s(F), c(w);
2818
+ l.current = D, r(M), o(D);
2613
2819
  },
2614
2820
  [t]
2615
- ), i = f(
2616
- (g) => {
2617
- if (!g.over) {
2618
- c(p.current);
2821
+ ), u = v(
2822
+ (f) => {
2823
+ if (!f.over) {
2824
+ o(l.current);
2619
2825
  return;
2620
2826
  }
2621
- const x = Se(t, g.over.id);
2622
- c(x);
2827
+ const k = xe(t, f.over.id);
2828
+ o(k);
2623
2829
  },
2624
2830
  [t]
2625
- ), l = f(
2626
- (g) => {
2627
- const { active: x, over: F } = g, w = () => {
2628
- p.current = null, s(null), c(null);
2831
+ ), d = v(
2832
+ (f) => {
2833
+ const { active: k, over: M } = f, D = () => {
2834
+ l.current = null, r(null), o(null);
2629
2835
  };
2630
- if (!F) {
2631
- w();
2836
+ if (!M) {
2837
+ D();
2632
2838
  return;
2633
2839
  }
2634
- const S = be(t, x.id), _ = Se(t, F.id);
2635
- if (!S || !_) {
2636
- w();
2840
+ const S = ve(t, k.id), T = xe(t, M.id);
2841
+ if (!S || !T) {
2842
+ D();
2637
2843
  return;
2638
2844
  }
2639
- let r = t.map((d) => ({ ...d, items: [...d.items] }));
2640
- if (S === _) {
2641
- const d = r.findIndex((E) => E.zoneKey === S), v = r[d], N = v.items.findIndex((E) => E.id === x.id), k = v.items.findIndex((E) => E.id === F.id), T = k >= 0 ? k : Math.max(0, v.items.length - 1);
2642
- r[d] = {
2643
- ...v,
2644
- items: qt(v.items, N, T)
2845
+ let i = t.map((m) => ({ ...m, items: [...m.items] }));
2846
+ if (S === T) {
2847
+ const m = i.findIndex((I) => I.zoneKey === S), h = i[m], N = h.items.findIndex((I) => I.id === k.id), _ = h.items.findIndex((I) => I.id === M.id), F = _ >= 0 ? _ : Math.max(0, h.items.length - 1);
2848
+ i[m] = {
2849
+ ...h,
2850
+ items: Jt(h.items, N, F)
2645
2851
  };
2646
2852
  } else {
2647
- const d = r.findIndex((W) => W.zoneKey === S), v = r.findIndex((W) => W.zoneKey === _), N = r[d], k = r[v], T = N.items.find((W) => W.id === x.id);
2648
- if (!T) {
2649
- w();
2853
+ const m = i.findIndex((B) => B.zoneKey === S), h = i.findIndex((B) => B.zoneKey === T), N = i[m], _ = i[h], F = N.items.find((B) => B.id === k.id);
2854
+ if (!F) {
2855
+ D();
2650
2856
  return;
2651
2857
  }
2652
- const E = N.items.filter((W) => W.id !== x.id), O = k.items.findIndex((W) => W.id === F.id), B = O >= 0 ? O : k.items.length;
2653
- let z = E, V = [...k.items];
2654
- if (k.maxItems !== void 0 && V.length >= k.maxItems) {
2655
- const W = V[V.length - 1];
2656
- V = V.slice(0, k.maxItems - 1), z = [...E, W];
2858
+ const I = N.items.filter((B) => B.id !== k.id), V = _.items.findIndex((B) => B.id === M.id), O = V >= 0 ? V : _.items.length;
2859
+ let W = I, L = [..._.items];
2860
+ if (_.maxItems !== void 0 && L.length >= _.maxItems) {
2861
+ const B = L[L.length - 1];
2862
+ L = L.slice(0, _.maxItems - 1), W = [...I, B];
2657
2863
  }
2658
- const U = Math.min(B, V.length), j = [
2659
- ...V.slice(0, U),
2660
- T,
2661
- ...V.slice(U)
2864
+ const X = Math.min(O, L.length), re = [
2865
+ ...L.slice(0, X),
2866
+ F,
2867
+ ...L.slice(X)
2662
2868
  ];
2663
- r[d] = { ...N, items: z }, r[v] = { ...k, items: j };
2869
+ i[m] = { ...N, items: W }, i[h] = { ..._, items: re };
2664
2870
  }
2665
- a(r), h.current?.(r), w();
2871
+ n(i), b.current?.(i), D();
2666
2872
  },
2667
2873
  [t]
2668
- ), b = f(
2669
- (g) => ({
2670
- id: g,
2671
- "data-zone-key": g
2874
+ ), g = v(
2875
+ (f) => ({
2876
+ id: f,
2877
+ "data-zone-key": f
2672
2878
  }),
2673
2879
  []
2674
- ), M = f(
2675
- (g) => {
2676
- const x = be(t, g.id) ?? "";
2880
+ ), x = v(
2881
+ (f) => {
2882
+ const k = ve(t, f.id) ?? "";
2677
2883
  return {
2678
- id: g.id,
2679
- "data-item-id": g.id,
2680
- "data-zone-key": x
2884
+ id: f.id,
2885
+ "data-item-id": f.id,
2886
+ "data-zone-key": k
2681
2887
  };
2682
2888
  },
2683
2889
  [t]
2684
2890
  );
2685
2891
  return {
2686
2892
  zones: t,
2687
- activeZone: o,
2688
- activeItem: n,
2689
- getZoneProps: b,
2690
- getItemProps: M,
2893
+ activeZone: s,
2894
+ activeItem: a,
2895
+ getZoneProps: g,
2896
+ getItemProps: x,
2691
2897
  handleDragStart: C,
2692
- handleDragOver: i,
2693
- handleDragEnd: l
2898
+ handleDragOver: u,
2899
+ handleDragEnd: d
2694
2900
  };
2695
2901
  }
2696
- let te = null, se = null, me = !1;
2697
- const Qt = [
2902
+ let te = null, oe = null, pe = !1;
2903
+ const aa = [
2698
2904
  "DndContext",
2699
2905
  "DragOverlay",
2700
2906
  "useSensors",
@@ -2703,433 +2909,540 @@ const Qt = [
2703
2909
  "PointerSensor",
2704
2910
  "KeyboardSensor",
2705
2911
  "closestCenter"
2706
- ], Jt = [
2912
+ ], na = [
2707
2913
  "SortableContext",
2708
2914
  "useSortable",
2709
2915
  "verticalListSortingStrategy"
2710
2916
  ];
2711
- function en(e, t) {
2712
- const a = [], n = e ?? {};
2713
- for (const o of Qt)
2714
- n[o] === void 0 && a.push(`@dnd-kit/core:${o}`);
2715
- const s = t ?? {};
2716
- for (const o of Jt)
2717
- s[o] === void 0 && a.push(`@dnd-kit/sortable:${o}`);
2718
- return a.length === 0 ? { ok: !0 } : { ok: !1, missing: a };
2917
+ function ra(e, t) {
2918
+ const n = [], a = e ?? {};
2919
+ for (const s of aa)
2920
+ a[s] === void 0 && n.push(`@dnd-kit/core:${s}`);
2921
+ const r = t ?? {};
2922
+ for (const s of na)
2923
+ r[s] === void 0 && n.push(`@dnd-kit/sortable:${s}`);
2924
+ return n.length === 0 ? { ok: !0 } : { ok: !1, missing: n };
2719
2925
  }
2720
- function tn() {
2721
- return te ? Promise.resolve(te) : me ? Promise.resolve(null) : se || (se = (async () => {
2926
+ function sa() {
2927
+ return te ? Promise.resolve(te) : pe ? Promise.resolve(null) : oe || (oe = (async () => {
2722
2928
  try {
2723
- const [e, t, a] = await Promise.all([
2929
+ const [e, t, n] = await Promise.all([
2724
2930
  import("@dnd-kit/core"),
2725
2931
  import("@dnd-kit/sortable"),
2726
2932
  import("@dnd-kit/utilities").catch(() => (process.env.NODE_ENV !== "production" && console.warn(
2727
2933
  "SortableZones: @dnd-kit/utilities failed to load; drag-overlay positioning will fall back (items may teleport instead of slide)."
2728
2934
  ), {}))
2729
- ]), n = en(e, t);
2730
- return n.ok ? (te = {
2935
+ ]), a = ra(e, t);
2936
+ return a.ok ? (te = {
2731
2937
  core: e,
2732
2938
  sortable: t,
2733
- utilities: a
2734
- }, te) : (me = !0, process.env.NODE_ENV !== "production" && console.error(
2735
- `SortableZones: @dnd-kit shape mismatch — missing exports: ${n.missing.join(", ")}. Check installed versions against optionalDependencies in @mt-gloss/ui.`
2939
+ utilities: n
2940
+ }, te) : (pe = !0, process.env.NODE_ENV !== "production" && console.error(
2941
+ `SortableZones: @dnd-kit shape mismatch — missing exports: ${a.missing.join(", ")}. Check installed versions against optionalDependencies in @mt-gloss/ui.`
2736
2942
  ), null);
2737
2943
  } catch {
2738
- return me = !0, null;
2944
+ return pe = !0, null;
2739
2945
  }
2740
- })(), se);
2946
+ })(), oe);
2741
2947
  }
2742
- function nn(e) {
2743
- const { zones: t, onZoneChange: a, renderZone: n, renderItem: s, renderDragOverlay: o } = e, c = Xt({ zones: t, onZoneChange: a }), [p, h] = G.useState(te);
2948
+ function oa(e) {
2949
+ const { zones: t, onZoneChange: n, renderZone: a, renderItem: r, renderDragOverlay: s } = e, o = ta({ zones: t, onZoneChange: n }), [l, b] = G.useState(te);
2744
2950
  return G.useEffect(() => {
2745
- if (p) return;
2746
- let m = !0;
2747
- return tn().then((D) => {
2748
- m && h(D);
2951
+ if (l) return;
2952
+ let p = !0;
2953
+ return sa().then((y) => {
2954
+ p && b(y);
2749
2955
  }), () => {
2750
- m = !1;
2956
+ p = !1;
2751
2957
  };
2752
- }, [p]), p ? /* @__PURE__ */ u(
2753
- Oe,
2958
+ }, [l]), l ? /* @__PURE__ */ c(
2959
+ Ae,
2754
2960
  {
2755
- state: c,
2756
- modules: p,
2757
- renderZone: n,
2758
- renderItem: s,
2759
- renderDragOverlay: o
2961
+ state: o,
2962
+ modules: l,
2963
+ renderZone: a,
2964
+ renderItem: r,
2965
+ renderDragOverlay: s
2760
2966
  }
2761
- ) : /* @__PURE__ */ u("div", { "data-sortable-zones-passive": "true", children: c.zones.map((m) => {
2762
- const D = m.items.map((C) => /* @__PURE__ */ u(G.Fragment, { children: s(C) }, C.id));
2763
- return /* @__PURE__ */ u("div", { ...c.getZoneProps(m.zoneKey), children: n(m.zoneKey, m.items, D) }, m.zoneKey);
2967
+ ) : /* @__PURE__ */ c("div", { "data-sortable-zones-passive": "true", children: o.zones.map((p) => {
2968
+ const y = p.items.map((C) => /* @__PURE__ */ c(G.Fragment, { children: r(C) }, C.id));
2969
+ return /* @__PURE__ */ c("div", { ...o.getZoneProps(p.zoneKey), children: a(p.zoneKey, p.items, y) }, p.zoneKey);
2764
2970
  }) });
2765
2971
  }
2766
- nn.displayName = "SortableZones";
2767
- function Oe({
2972
+ oa.displayName = "SortableZones";
2973
+ function Ae({
2768
2974
  state: e,
2769
2975
  modules: t,
2770
- renderZone: a,
2771
- renderItem: n,
2772
- renderDragOverlay: s
2976
+ renderZone: n,
2977
+ renderItem: a,
2978
+ renderDragOverlay: r
2773
2979
  }) {
2774
- const { core: o, sortable: c, utilities: p } = t, { DndContext: h, DragOverlay: m, useSensors: D, useSensor: C, useDroppable: i, PointerSensor: l, KeyboardSensor: b, closestCenter: M } = o, { SortableContext: g, verticalListSortingStrategy: x } = c, F = D(
2775
- C(l, { activationConstraint: { distance: 5 } }),
2776
- C(b)
2777
- ), w = h, S = m, _ = g;
2778
- return /* @__PURE__ */ $(
2779
- w,
2980
+ const { core: s, sortable: o, utilities: l } = t, { DndContext: b, DragOverlay: p, useSensors: y, useSensor: C, useDroppable: u, PointerSensor: d, KeyboardSensor: g, closestCenter: x } = s, { SortableContext: f, verticalListSortingStrategy: k } = o, M = y(
2981
+ C(d, { activationConstraint: { distance: 5 } }),
2982
+ C(g)
2983
+ ), D = b, S = p, T = f;
2984
+ return /* @__PURE__ */ A(
2985
+ D,
2780
2986
  {
2781
- sensors: F,
2782
- collisionDetection: M,
2987
+ sensors: M,
2988
+ collisionDetection: x,
2783
2989
  onDragStart: e.handleDragStart,
2784
2990
  onDragOver: e.handleDragOver,
2785
2991
  onDragEnd: e.handleDragEnd,
2786
2992
  children: [
2787
- e.zones.map((r) => {
2788
- const d = r.items.map((N) => N.id), v = r.items.map((N) => /* @__PURE__ */ u(
2789
- Ae,
2993
+ e.zones.map((i) => {
2994
+ const m = i.items.map((N) => N.id), h = i.items.map((N) => /* @__PURE__ */ c(
2995
+ Le,
2790
2996
  {
2791
2997
  id: N.id,
2792
- useSortable: c.useSortable,
2793
- cssHelper: p.CSS,
2794
- children: n(N)
2998
+ useSortable: o.useSortable,
2999
+ cssHelper: l.CSS,
3000
+ children: a(N)
2795
3001
  },
2796
3002
  N.id
2797
3003
  ));
2798
- return /* @__PURE__ */ u(
2799
- Le,
3004
+ return /* @__PURE__ */ c(
3005
+ $e,
2800
3006
  {
2801
- zoneKey: r.zoneKey,
2802
- zoneProps: e.getZoneProps(r.zoneKey),
2803
- useDroppable: i,
2804
- children: /* @__PURE__ */ u(_, { items: d, strategy: x, children: a(r.zoneKey, r.items, v) })
3007
+ zoneKey: i.zoneKey,
3008
+ zoneProps: e.getZoneProps(i.zoneKey),
3009
+ useDroppable: u,
3010
+ children: /* @__PURE__ */ c(T, { items: m, strategy: k, children: n(i.zoneKey, i.items, h) })
2805
3011
  },
2806
- r.zoneKey
3012
+ i.zoneKey
2807
3013
  );
2808
3014
  }),
2809
- /* @__PURE__ */ u(S, { children: e.activeItem ? s?.(e.activeItem) ?? n(e.activeItem) : null })
3015
+ /* @__PURE__ */ c(S, { children: e.activeItem ? r?.(e.activeItem) ?? a(e.activeItem) : null })
2810
3016
  ]
2811
3017
  }
2812
3018
  );
2813
3019
  }
2814
- Oe.displayName = "SortableZonesInner";
2815
- function Ae({ id: e, useSortable: t, cssHelper: a, children: n }) {
2816
- const { attributes: s, listeners: o, setNodeRef: c, transform: p, transition: h, isDragging: m } = t({ id: e }), D = {
2817
- transform: a?.Transform?.toString(p) ?? void 0,
2818
- transition: h,
2819
- opacity: m ? 0.5 : 1
3020
+ Ae.displayName = "SortableZonesInner";
3021
+ function Le({ id: e, useSortable: t, cssHelper: n, children: a }) {
3022
+ const { attributes: r, listeners: s, setNodeRef: o, transform: l, transition: b, isDragging: p } = t({ id: e }), y = {
3023
+ transform: n?.Transform?.toString(l) ?? void 0,
3024
+ transition: b,
3025
+ opacity: p ? 0.5 : 1
2820
3026
  };
2821
- return /* @__PURE__ */ u("div", { ref: c, style: D, "data-sortable-item-id": e, ...s, ...o, children: n });
3027
+ return /* @__PURE__ */ c("div", { ref: o, style: y, "data-sortable-item-id": e, ...r, ...s, children: a });
2822
3028
  }
2823
- Ae.displayName = "SortableItem";
2824
- function Le({
3029
+ Le.displayName = "SortableItem";
3030
+ function $e({
2825
3031
  zoneKey: e,
2826
3032
  zoneProps: t,
2827
- useDroppable: a,
2828
- children: n
3033
+ useDroppable: n,
3034
+ children: a
2829
3035
  }) {
2830
- const { setNodeRef: s, isOver: o } = a({ id: e });
2831
- return /* @__PURE__ */ u("div", { ref: s, "data-zone-is-over": o || void 0, ...t, children: n });
3036
+ const { setNodeRef: r, isOver: s } = n({ id: e });
3037
+ return /* @__PURE__ */ c("div", { ref: r, "data-zone-is-over": s || void 0, ...t, children: a });
3038
+ }
3039
+ $e.displayName = "ZoneDroppable";
3040
+ function bn({
3041
+ slotLeft: e,
3042
+ slotCenter: t,
3043
+ slotRight: n,
3044
+ height: a = 36,
3045
+ className: r,
3046
+ style: s,
3047
+ "aria-label": o = "Dashboard navigation"
3048
+ }) {
3049
+ const l = {
3050
+ "--gloss-bottom-toolbar-height": `${a}px`,
3051
+ ...s
3052
+ };
3053
+ return /* @__PURE__ */ A(
3054
+ "div",
3055
+ {
3056
+ role: "toolbar",
3057
+ "aria-label": o,
3058
+ "data-testid": "gloss-bottom-toolbar",
3059
+ className: ["gloss-bottom-toolbar", r].filter(Boolean).join(" "),
3060
+ style: l,
3061
+ children: [
3062
+ /* @__PURE__ */ c(
3063
+ "div",
3064
+ {
3065
+ className: "gloss-bottom-toolbar__slot gloss-bottom-toolbar__slot--left",
3066
+ "data-slot": "left",
3067
+ children: e
3068
+ }
3069
+ ),
3070
+ /* @__PURE__ */ c(
3071
+ "div",
3072
+ {
3073
+ className: "gloss-bottom-toolbar__slot gloss-bottom-toolbar__slot--center",
3074
+ "data-slot": "center",
3075
+ children: t
3076
+ }
3077
+ ),
3078
+ /* @__PURE__ */ c(
3079
+ "div",
3080
+ {
3081
+ className: "gloss-bottom-toolbar__slot gloss-bottom-toolbar__slot--right",
3082
+ "data-slot": "right",
3083
+ children: n
3084
+ }
3085
+ )
3086
+ ]
3087
+ }
3088
+ );
3089
+ }
3090
+ function vn({
3091
+ count: e,
3092
+ currentIndex: t,
3093
+ onSelect: n,
3094
+ "aria-label": a = "Sections"
3095
+ }) {
3096
+ const r = Ue.useRef([]);
3097
+ return r.current.length = e, /* @__PURE__ */ c(
3098
+ "div",
3099
+ {
3100
+ role: "tablist",
3101
+ "aria-label": a,
3102
+ "data-testid": "gloss-section-dots",
3103
+ className: "gloss-section-dots",
3104
+ onKeyDown: (o) => {
3105
+ if (e !== 0) {
3106
+ if (o.key === "ArrowRight") {
3107
+ o.preventDefault();
3108
+ const l = (t + 1) % e;
3109
+ n(l), requestAnimationFrame(() => r.current[l]?.focus());
3110
+ } else if (o.key === "ArrowLeft") {
3111
+ o.preventDefault();
3112
+ const l = (t - 1 + e) % e;
3113
+ n(l), requestAnimationFrame(() => r.current[l]?.focus());
3114
+ }
3115
+ }
3116
+ },
3117
+ children: Array.from({ length: e }, (o, l) => /* @__PURE__ */ c(
3118
+ "button",
3119
+ {
3120
+ ref: (b) => {
3121
+ r.current[l] = b;
3122
+ },
3123
+ type: "button",
3124
+ role: "tab",
3125
+ "aria-selected": l === t,
3126
+ "aria-label": `Section ${l + 1}`,
3127
+ "data-state": l === t ? "current" : "hollow",
3128
+ "data-section-index": l,
3129
+ className: [
3130
+ "gloss-section-dots__dot",
3131
+ l === t && "gloss-section-dots__dot--current"
3132
+ ].filter(Boolean).join(" "),
3133
+ onClick: () => n(l)
3134
+ },
3135
+ l
3136
+ ))
3137
+ }
3138
+ );
2832
3139
  }
2833
- Le.displayName = "ZoneDroppable";
2834
- const an = G.forwardRef(({ density: e = "compact", children: t, ...a }, n) => {
2835
- const s = { ...a };
2836
- return delete s.className, delete s.style, /* @__PURE__ */ u("div", { ref: n, className: "gloss-container-toolbar", role: "toolbar", ...s, children: /* @__PURE__ */ u(ve, { region: "toolbar", density: e, children: t }) });
3140
+ const ia = G.forwardRef(({ density: e = "compact", children: t, ...n }, a) => {
3141
+ const r = { ...n };
3142
+ return delete r.className, delete r.style, /* @__PURE__ */ c("div", { ref: a, className: "gloss-container-toolbar", role: "toolbar", ...r, children: /* @__PURE__ */ c(ye, { region: "toolbar", density: e, children: t }) });
2837
3143
  });
2838
- an.displayName = "ContainerToolbar";
2839
- const rn = G.forwardRef(({ legend: e, description: t, density: a = "default", children: n, ...s }, o) => {
2840
- const c = { ...s };
2841
- return delete c.className, delete c.style, /* @__PURE__ */ $("fieldset", { ref: o, className: "gloss-container-form-section", ...c, children: [
2842
- e && /* @__PURE__ */ u("legend", { className: "gloss-container-form-section__legend", children: e }),
2843
- t && /* @__PURE__ */ u("p", { className: "gloss-container-form-section__description", children: t }),
2844
- /* @__PURE__ */ u(ve, { region: "form-section", density: a, children: n })
3144
+ ia.displayName = "ContainerToolbar";
3145
+ const la = G.forwardRef(({ legend: e, description: t, density: n = "default", children: a, ...r }, s) => {
3146
+ const o = { ...r };
3147
+ return delete o.className, delete o.style, /* @__PURE__ */ A("fieldset", { ref: s, className: "gloss-container-form-section", ...o, children: [
3148
+ e && /* @__PURE__ */ c("legend", { className: "gloss-container-form-section__legend", children: e }),
3149
+ t && /* @__PURE__ */ c("p", { className: "gloss-container-form-section__description", children: t }),
3150
+ /* @__PURE__ */ c(ye, { region: "form-section", density: n, children: a })
2845
3151
  ] });
2846
3152
  });
2847
- rn.displayName = "ContainerFormSection";
2848
- const sn = G.forwardRef(({ density: e = "compact", children: t, ...a }, n) => {
2849
- const s = { ...a };
2850
- return delete s.className, delete s.style, /* @__PURE__ */ u("div", { ref: n, className: "gloss-container-table", ...s, children: /* @__PURE__ */ u(ve, { region: "table", density: e, children: t }) });
3153
+ la.displayName = "ContainerFormSection";
3154
+ const da = G.forwardRef(({ density: e = "compact", children: t, ...n }, a) => {
3155
+ const r = { ...n };
3156
+ return delete r.className, delete r.style, /* @__PURE__ */ c("div", { ref: a, className: "gloss-container-table", ...r, children: /* @__PURE__ */ c(ye, { region: "table", density: e, children: t }) });
2851
3157
  });
2852
- sn.displayName = "ContainerTable";
3158
+ da.displayName = "ContainerTable";
2853
3159
  export {
2854
- da as Accordion,
2855
- ua as AccordionContent,
2856
- ma as AccordionItem,
2857
- pa as AccordionTrigger,
2858
- ga as ActionStrip,
2859
- fa as Actionable,
2860
- ha as AddressGroup,
2861
- ba as AddressSelect,
2862
- va as AsyncLoader,
2863
- ya as Autocomplete,
2864
- wa as Badge,
2865
- Da as BarChartCard,
2866
- Ca as BarsBg,
2867
- Na as Button,
2868
- ka as ButtonGroup,
2869
- xa as ButtonGroupContext,
2870
- Sa as Card,
2871
- Ta as CardActions,
2872
- _a as CardBack,
2873
- Ia as CardBody,
2874
- Ra as CardFooter,
2875
- Ma as CardHeader,
2876
- Pa as CardMedia,
2877
- Fa as CardShell,
2878
- Ea as CardSubtitle,
2879
- Oa as CardTitle,
2880
- Aa as ChartControlBar,
2881
- La as Checkbox,
2882
- $a as CheckboxGroup,
2883
- Ba as Chip,
2884
- Ka as ColorPicker,
2885
- Wa as ComparisonCard,
2886
- Ga as ContactForm,
2887
- Ha as ContainerCard,
2888
- Va as ContainerCardActions,
2889
- za as ContainerCardBody,
2890
- Za as ContainerCardFooter,
2891
- Ua as ContainerCardHeader,
2892
- Ya as ContainerCardMedia,
2893
- qa as ContainerCardSubtitle,
2894
- ja as ContainerCardTitle,
2895
- Xa as ContainerDialog,
2896
- Qa as ContainerDialogActions,
2897
- Ja as ContainerDialogBody,
2898
- er as ContainerDialogHeader,
2899
- rn as ContainerFormSection,
2900
- tr as ContainerPanel,
2901
- sn as ContainerTable,
2902
- an as ContainerToolbar,
2903
- nr as CreditCardForm,
2904
- ar as DEFAULT_FOOTER_IDS,
2905
- Po as DEFAULT_MARKET_PRESETS,
2906
- rr as DEFAULT_OVERFLOW_IDS,
2907
- Fo as DEFAULT_PINNED,
2908
- _e as DEFAULT_RESIZE_PHYSICS,
2909
- sr as DataTable,
2910
- or as DatePicker,
2911
- ir as DateRangePicker,
2912
- lr as DestructiveModal,
2913
- Kt as DevTuningPanel,
2914
- cr as DirectionCard,
2915
- dr as Dismissible,
2916
- ur as DistributionCard,
2917
- mr as DonutChart,
2918
- pr as Dropdown,
2919
- gr as ENTITY_FILTER_KEYS,
2920
- fr as ENTITY_PROFILE_ROUTES,
2921
- hr as ENTITY_TYPE_PLURAL,
2922
- dt as EdgeHoverHandle,
2923
- br as EntityPicker,
2924
- vr as EntitySearchPanel,
2925
- yr as Expandable,
2926
- wr as ExpandableChip,
2927
- Dr as FLIP_AND_STAGE_TIMINGS,
2928
- Cr as FileUpload,
2929
- Nr as FilterChip,
2930
- kr as FilterInput,
2931
- xr as FlipAndStageProvider,
2932
- Sr as Form,
2933
- Tr as FormDialog,
2934
- _r as FormField,
2935
- Ir as FusedShape,
2936
- ut as GhostPreview,
2937
- Rr as GroupCheckbox,
2938
- Mr as GroupRadio,
2939
- Pr as HighlightCard,
2940
- Fr as HybridDatePicker,
2941
- Er as ImportWizard,
2942
- Gt as InlineNudge,
2943
- Or as Input,
2944
- Ar as InputAddon,
2945
- Lr as InputGroup,
2946
- $r as Link,
2947
- Br as LoginForm,
2948
- Kr as MarketPresetRow,
2949
- Wr as MaskPresets,
2950
- Gr as MaskedInput,
2951
- Hr as Menu,
2952
- Vr as MenuDivider,
2953
- zr as MenuGroup,
2954
- Zr as MenuItem,
2955
- Ur as MergePrompt,
2956
- Yr as MetricCard,
2957
- qr as MetricCardGrid,
2958
- Mt as MetricGroupContainer,
2959
- jr as MiniCalendar,
2960
- Xr as MultiSelect,
2961
- Qr as NumberInput,
2962
- Jr as ObjectArrow,
2963
- es as OrderFilterBar,
2964
- Eo as PERIOD_OPTIONS,
2965
- yt as PageChip,
2966
- Ie as PageDropdown,
2967
- ts as PasswordInput,
2968
- ns as PaymentForm,
2969
- as as PaymentMethodSelect,
2970
- rs as PhoneInput,
2971
- ss as PinToMetric,
2972
- Yt as PresetSwatchRow,
2973
- os as ProfileCard,
2974
- is as ProgressCard,
2975
- ls as QuickConfigPanel,
2976
- St as RECONFIG_BACKSIDE_LABELS,
2977
- Oo as ROLLING_OPTIONS,
2978
- cs as Radio,
2979
- ds as RadioGroup,
2980
- us as RangeSlider,
2981
- ms as Rating,
2982
- It as ReconfigBacksideButtons,
2983
- ps as RegistrationForm,
2984
- gs as Row1Controls,
2985
- fs as Row2FilterTray,
2986
- hs as SearchInput,
2987
- bs as SegmentCard,
2988
- vs as SegmentedControl,
2989
- ys as Select,
2990
- ws as Selectable,
2991
- Ds as SimpleMetricCard,
2992
- Cs as SimpleSelector,
2993
- Ns as Skeleton,
2994
- ks as SkeletonCard,
2995
- xs as SkeletonChart,
2996
- Ss as SkeletonTable,
2997
- Ts as Slider,
2998
- _s as Sortable,
2999
- nn as SortableZones,
3000
- Is as SparklineBg,
3001
- Rs as SplitButton,
3002
- Ms as StackedGroupCard,
3003
- Ps as StatusModeCard,
3004
- ct as StatusSlotChipMenu,
3005
- Fs as Stepper,
3006
- Ao as TODAY_PRESET,
3007
- q as TUNING_DEFAULTS,
3008
- Fe as TUNING_STORAGE_KEY,
3009
- Es as TabGroup,
3010
- Os as TabbedDataView,
3011
- As as TagInput,
3012
- Ls as Textarea,
3013
- zt as ThresholdRamp,
3014
- $s as TimeFrame,
3015
- Bs as TimePicker,
3016
- Ks as Toggle,
3017
- Ws as Tooltip,
3018
- Gs as Transition,
3019
- Hs as TransitionGroup,
3020
- Vs as TrendCard,
3021
- zs as TrendIndicator,
3022
- Io as UIContext,
3023
- ve as UIContextProvider,
3024
- Zs as UnifiedBreakdownTable,
3025
- Us as UnifiedContextMenu,
3026
- mt as VelocityBuffer,
3027
- Ys as addressGroupMetadata,
3028
- qs as addressSchema,
3029
- wn as allChips,
3030
- Fn as allStateFixtures,
3031
- Pn as allVariantFixtures,
3032
- kn as blockSamples,
3033
- js as buildDefaultOverflow,
3034
- In as cardSamples,
3035
- Tn as chartSamples,
3036
- Sn as circleSamples,
3037
- ta as compactLayout,
3038
- Vn as compactState,
3039
- Mn as computeGutterAnchorX,
3040
- Xs as contactFormMetadata,
3041
- Qs as contactSchema,
3042
- zn as contextMenuFixtures,
3043
- Js as creditCardFormMetadata,
3044
- eo as creditCardSchema,
3045
- st as dateChip,
3160
+ Dn as Accordion,
3161
+ Cn as AccordionContent,
3162
+ Nn as AccordionItem,
3163
+ _n as AccordionTrigger,
3164
+ kn as ActionStrip,
3165
+ Sn as Actionable,
3166
+ xn as AddressGroup,
3167
+ Tn as AddressSelect,
3168
+ In as AsyncLoader,
3169
+ Rn as Autocomplete,
3170
+ Mn as Badge,
3171
+ Fn as BarChartCard,
3172
+ Pn as BarsBg,
3173
+ bn as BottomToolbar,
3174
+ En as Button,
3175
+ On as ButtonGroup,
3176
+ An as ButtonGroupContext,
3177
+ Ln as Card,
3178
+ $n as CardActions,
3179
+ Bn as CardBack,
3180
+ Kn as CardBody,
3181
+ zn as CardFooter,
3182
+ Wn as CardHeader,
3183
+ Gn as CardMedia,
3184
+ Hn as CardShell,
3185
+ Vn as CardSubtitle,
3186
+ Un as CardTitle,
3187
+ Zn as ChartControlBar,
3188
+ jn as Checkbox,
3189
+ Yn as CheckboxGroup,
3190
+ qn as Chip,
3191
+ Qn as ColorPicker,
3192
+ Xn as ComparisonCard,
3193
+ Jn as ContactForm,
3194
+ er as ContainerCard,
3195
+ tr as ContainerCardActions,
3196
+ ar as ContainerCardBody,
3197
+ nr as ContainerCardFooter,
3198
+ rr as ContainerCardHeader,
3199
+ sr as ContainerCardMedia,
3200
+ or as ContainerCardSubtitle,
3201
+ ir as ContainerCardTitle,
3202
+ lr as ContainerDialog,
3203
+ dr as ContainerDialogActions,
3204
+ cr as ContainerDialogBody,
3205
+ ur as ContainerDialogHeader,
3206
+ la as ContainerFormSection,
3207
+ mr as ContainerPanel,
3208
+ da as ContainerTable,
3209
+ ia as ContainerToolbar,
3210
+ pr as CreditCardForm,
3211
+ gr as DEFAULT_FOOTER_IDS,
3212
+ Y as DEFAULT_GRID_INTERACTION_PHYSICS,
3213
+ Wo as DEFAULT_MARKET_PRESETS,
3214
+ fr as DEFAULT_OVERFLOW_IDS,
3215
+ Go as DEFAULT_PINNED,
3216
+ Ie as DEFAULT_RESIZE_PHYSICS,
3217
+ hr as DataTable,
3218
+ br as DatePicker,
3219
+ vr as DateRangePicker,
3220
+ yr as DestructiveModal,
3221
+ Gt as DevTuningPanel,
3222
+ wr as DirectionCard,
3223
+ Dr as Dismissible,
3224
+ Cr as DistributionCard,
3225
+ Nr as DonutChart,
3226
+ pn as DropAnchorCell,
3227
+ _r as Dropdown,
3228
+ kr as ENTITY_FILTER_KEYS,
3229
+ Sr as ENTITY_PROFILE_ROUTES,
3230
+ xr as ENTITY_TYPE_PLURAL,
3231
+ pt as EdgeHoverHandle,
3232
+ hn as EmptyCellPackAffordance,
3233
+ Tr as EntityPicker,
3234
+ Ir as EntitySearchPanel,
3235
+ Rr as Expandable,
3236
+ Mr as ExpandableChip,
3237
+ Fr as FLIP_AND_STAGE_TIMINGS,
3238
+ Pr as FileUpload,
3239
+ Er as FilterChip,
3240
+ Or as FilterInput,
3241
+ Ar as FlipAndStageProvider,
3242
+ Lr as Form,
3243
+ $r as FormDialog,
3244
+ Br as FormField,
3245
+ Kr as FusedShape,
3246
+ gt as GhostPreview,
3247
+ zr as GroupCheckbox,
3248
+ Wr as GroupRadio,
3249
+ Gr as HighlightCard,
3250
+ Hr as HybridDatePicker,
3251
+ Vr as ImportWizard,
3252
+ Ut as InlineNudge,
3253
+ Ur as Input,
3254
+ Zr as InputAddon,
3255
+ jr as InputGroup,
3256
+ Yr as Link,
3257
+ qr as LoginForm,
3258
+ Qr as MarketPresetRow,
3259
+ Xr as MaskPresets,
3260
+ Jr as MaskedInput,
3261
+ es as Menu,
3262
+ ts as MenuDivider,
3263
+ as as MenuGroup,
3264
+ ns as MenuItem,
3265
+ rs as MergePrompt,
3266
+ ss as MetricCard,
3267
+ os as MetricCardGrid,
3268
+ Et as MetricGroupContainer,
3269
+ is as MiniCalendar,
3270
+ ls as MultiSelect,
3271
+ ds as NumberInput,
3272
+ cs as ObjectArrow,
3273
+ us as OrderFilterBar,
3274
+ Ho as PERIOD_OPTIONS,
3275
+ Ct as PageChip,
3276
+ Re as PageDropdown,
3277
+ ms as PasswordInput,
3278
+ ps as PaymentForm,
3279
+ gs as PaymentMethodSelect,
3280
+ fs as PhoneInput,
3281
+ hs as PinToMetric,
3282
+ Xt as PresetSwatchRow,
3283
+ bs as ProfileCard,
3284
+ vs as ProgressCard,
3285
+ ys as QuickConfigPanel,
3286
+ It as RECONFIG_BACKSIDE_LABELS,
3287
+ Vo as ROLLING_OPTIONS,
3288
+ ws as Radio,
3289
+ Ds as RadioGroup,
3290
+ Cs as RangeSlider,
3291
+ Ns as Rating,
3292
+ Ft as ReconfigBacksideButtons,
3293
+ _s as RegistrationForm,
3294
+ mn as ResizeEnvelope,
3295
+ ks as Row1Controls,
3296
+ Ss as Row2FilterTray,
3297
+ xs as SearchInput,
3298
+ fn as SectionDivider,
3299
+ vn as SectionDots,
3300
+ Ts as SegmentCard,
3301
+ Is as SegmentedControl,
3302
+ Rs as Select,
3303
+ Ms as Selectable,
3304
+ Fs as SimpleMetricCard,
3305
+ Ps as SimpleSelector,
3306
+ Es as Skeleton,
3307
+ Os as SkeletonCard,
3308
+ As as SkeletonChart,
3309
+ Ls as SkeletonTable,
3310
+ $s as Slider,
3311
+ Bs as Sortable,
3312
+ oa as SortableZones,
3313
+ Ks as SparklineBg,
3314
+ gn as SpilloverArc,
3315
+ zs as SplitButton,
3316
+ Ws as StackedGroupCard,
3317
+ Gs as StatusModeCard,
3318
+ mt as StatusSlotChipMenu,
3319
+ Hs as Stepper,
3320
+ Uo as TODAY_PRESET,
3321
+ j as TUNING_DEFAULTS,
3322
+ Ee as TUNING_STORAGE_KEY,
3323
+ Vs as TabGroup,
3324
+ Us as TabbedDataView,
3325
+ Zs as TagInput,
3326
+ js as Textarea,
3327
+ Yt as ThresholdRamp,
3328
+ Ys as TimeFrame,
3329
+ qs as TimePicker,
3330
+ Qs as Toggle,
3331
+ Xs as Tooltip,
3332
+ Js as Transition,
3333
+ eo as TransitionGroup,
3334
+ to as TrendCard,
3335
+ ao as TrendIndicator,
3336
+ Bo as UIContext,
3337
+ ye as UIContextProvider,
3338
+ no as UnifiedBreakdownTable,
3339
+ ro as UnifiedContextMenu,
3340
+ ft as VelocityBuffer,
3341
+ so as addressGroupMetadata,
3342
+ oo as addressSchema,
3343
+ Na as allChips,
3344
+ Aa as allStateFixtures,
3345
+ Oa as allVariantFixtures,
3346
+ xa as blockSamples,
3347
+ io as buildDefaultOverflow,
3348
+ Fa as cardSamples,
3349
+ Ra as chartSamples,
3350
+ Ia as circleSamples,
3351
+ rn as compactLayout,
3352
+ Za as compactState,
3353
+ Ea as computeGutterAnchorX,
3354
+ lo as contactFormMetadata,
3355
+ co as contactSchema,
3356
+ ja as contextMenuFixtures,
3357
+ uo as creditCardFormMetadata,
3358
+ mo as creditCardSchema,
3359
+ lt as dateChip,
3046
3360
  Pe as defaultControlBarState,
3047
- to as destructiveModalMetadata,
3048
- no as durations,
3049
- ao as easings,
3050
- ft as emptyFixture,
3051
- at as entityChip,
3052
- Nt as entityNameActions,
3053
- Cn as entityTabGroup,
3054
- gt as errorFixture,
3055
- Hn as filteredState,
3056
- Lo as findPreset,
3057
- $o as formatDateRange,
3058
- Bo as formatMarketDates,
3059
- Ko as formatTrend,
3060
- Wo as formatValue,
3061
- aa as fullLayout,
3062
- Go as generateMarketId,
3063
- ro as generateTabId,
3064
- Ho as getAllPresets,
3065
- Vo as getDateRangeForPreset,
3066
- so as getMenuActions,
3067
- zo as getPresetLabel,
3068
- oo as getTransitionStyle,
3069
- ea as gridCards,
3070
- io as interpolate,
3071
- Zo as isInRange,
3072
- Uo as isMarketActive,
3073
- Yo as isSameDay,
3074
- Gn as itemColumns,
3075
- Kn as itemRows,
3076
- pt as loadingFixture,
3077
- lo as loginFormMetadata,
3078
- co as loginSchema,
3079
- ot as manufacturerChip,
3080
- ia as manyTabs,
3081
- uo as mergeHandlers,
3082
- mo as mergeRefs,
3083
- Dn as metricTabGroup,
3084
- sa as mixedTabs,
3085
- qo as normalizePresetId,
3086
- xt as numericActions,
3087
- Wn as orderColumns,
3088
- kt as orderIdActions,
3089
- Bn as orderRows,
3090
- ra as ordersTabs,
3091
- po as parseNumericValue,
3092
- go as paymentFormMetadata,
3093
- fo as paymentSchema,
3094
- ho as presets,
3095
- bo as registrationFormMetadata,
3096
- vo as registrationSchema,
3097
- Un as sampleCompareRanges,
3098
- jn as sampleCustomMarkets,
3099
- Zn as sampleDateRange,
3100
- Xn as sampleMarketPresetData,
3101
- qn as sampleMarkets,
3102
- Jn as samplePeriodPresets,
3103
- Yn as samplePreferences,
3104
- Qn as samplePresets,
3105
- oa as singleTab,
3106
- En as sparklineFixture,
3107
- On as sparklineUpFixture,
3108
- vt as staleDonutFixture,
3109
- ht as staleFixture,
3110
- bt as staleSparklineFixture,
3111
- An as standardFixture,
3112
- $n as standardFlatFixture,
3113
- na as standardLayout,
3114
- Ln as standardNegativeFixture,
3115
- rt as statusChip,
3116
- _n as tableSamples,
3117
- xn as textSamples,
3118
- Nn as timeFrameTabGroup,
3119
- jo as toUppercasePresetId,
3120
- yn as useArrowNavigation,
3121
- yo as useCheckboxGroupContext,
3122
- Rn as useEdgeHoverResize,
3123
- wo as useFilterLayout,
3124
- Do as useFlipAndStage,
3125
- Co as useFlipAndStageContext,
3126
- No as useFlipAndStageContextOptional,
3127
- vn as useFocusReturn,
3128
- ko as useFocusTrap,
3129
- xo as useFormContext,
3130
- So as useRadioGroupContext,
3131
- Et as useResizeTuning,
3132
- To as useSlideOutReveal,
3133
- Xt as useSortableZones,
3134
- Ro as useUIContext
3361
+ po as destructiveModalMetadata,
3362
+ go as durations,
3363
+ fo as easings,
3364
+ vt as emptyFixture,
3365
+ ot as entityChip,
3366
+ St as entityNameActions,
3367
+ ka as entityTabGroup,
3368
+ bt as errorFixture,
3369
+ Ua as filteredState,
3370
+ Zo as findPreset,
3371
+ jo as formatDateRange,
3372
+ Yo as formatMarketDates,
3373
+ qo as formatTrend,
3374
+ Qo as formatValue,
3375
+ on as fullLayout,
3376
+ Xo as generateMarketId,
3377
+ ho as generateTabId,
3378
+ Jo as getAllPresets,
3379
+ ei as getDateRangeForPreset,
3380
+ bo as getMenuActions,
3381
+ ti as getPresetLabel,
3382
+ vo as getTransitionStyle,
3383
+ nn as gridCards,
3384
+ yo as interpolate,
3385
+ ai as isInRange,
3386
+ ni as isMarketActive,
3387
+ ri as isSameDay,
3388
+ Va as itemColumns,
3389
+ Ga as itemRows,
3390
+ ht as loadingFixture,
3391
+ wo as loginFormMetadata,
3392
+ Do as loginSchema,
3393
+ dt as manufacturerChip,
3394
+ un as manyTabs,
3395
+ Co as mergeHandlers,
3396
+ No as mergeRefs,
3397
+ _a as metricTabGroup,
3398
+ dn as mixedTabs,
3399
+ si as normalizePresetId,
3400
+ Tt as numericActions,
3401
+ Ha as orderColumns,
3402
+ xt as orderIdActions,
3403
+ Wa as orderRows,
3404
+ ln as ordersTabs,
3405
+ _o as parseNumericValue,
3406
+ ko as paymentFormMetadata,
3407
+ So as paymentSchema,
3408
+ xo as presets,
3409
+ To as registrationFormMetadata,
3410
+ Io as registrationSchema,
3411
+ qa as sampleCompareRanges,
3412
+ Ja as sampleCustomMarkets,
3413
+ Ya as sampleDateRange,
3414
+ en as sampleMarketPresetData,
3415
+ Xa as sampleMarkets,
3416
+ an as samplePeriodPresets,
3417
+ Qa as samplePreferences,
3418
+ tn as samplePresets,
3419
+ cn as singleTab,
3420
+ La as sparklineFixture,
3421
+ $a as sparklineUpFixture,
3422
+ Dt as staleDonutFixture,
3423
+ yt as staleFixture,
3424
+ wt as staleSparklineFixture,
3425
+ Ba as standardFixture,
3426
+ za as standardFlatFixture,
3427
+ sn as standardLayout,
3428
+ Ka as standardNegativeFixture,
3429
+ it as statusChip,
3430
+ Ma as tableSamples,
3431
+ Ta as textSamples,
3432
+ Sa as timeFrameTabGroup,
3433
+ oi as toUppercasePresetId,
3434
+ Ca as useArrowNavigation,
3435
+ Ro as useCheckboxGroupContext,
3436
+ Pa as useEdgeHoverResize,
3437
+ Mo as useFilterLayout,
3438
+ Fo as useFlipAndStage,
3439
+ Po as useFlipAndStageContext,
3440
+ Eo as useFlipAndStageContextOptional,
3441
+ Da as useFocusReturn,
3442
+ Oo as useFocusTrap,
3443
+ Ao as useFormContext,
3444
+ Lo as useRadioGroupContext,
3445
+ Lt as useResizeTuning,
3446
+ ta as useSortableZones,
3447
+ Ko as useUIContext
3135
3448
  };