@mt-gloss/ui 0.1.81 → 0.1.82

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/catalog.js CHANGED
@@ -1,8 +1,8 @@
1
- import { A as I, Q as N, E as B, J as x, L as D, D as F, F as A, H as M, K as v, T as R, U as W, V as H, b1 as _, W as k, b2 as L, b3 as z, b4 as E, X as G, Y as $, Z as O } from "./Expandable-Deyl6mWK.js";
2
- import { a5 as Ne, b8 as Be, aB as xe, aj as De, $ as Fe, ap as Ae, bV as Me, N as ve, aa as Re, bo as We, P as He, B as _e, bj as ke, C as Le, by as ze, b as Ee, c as Ge, O as $e, q as Oe, af as Ve, aP as we, aE as Xe, as as je, m as Ue, o as Ze, aH as qe, ad as Je, ba as Ke, ab as Qe, bp as Ye, _ as ea, ar as aa, aS as sa, bc as ta, p as ra, ao as oa, a2 as ia, at as na, a4 as la, ac as da, bK as ca, aV as ga, t as ma, I as pa, i as ua, ay as ba, M as fa, y as ha, au as ya, bi as Ta, bQ as Sa, aq as Pa, w as Ca, bq as Ia, aU as Na, b5 as Ba, al as xa, aM as Da, ai as Fa, an as Aa, aw as Ma, bX as va, aT as Ra, bW as Wa, ae as Ha, e as _a, R as ka, l as La, r as za, aJ as Ea, ak as Ga, ag as $a, j as Oa, z as Va, b9 as wa, ah as Xa, be as ja, bh as Ua, bf as Za, bg as qa, k as Ja, bb as Ka, bn as Qa, S as Ya, bl as es, ax as as, bd as ss, bR as ts, am as rs, bU as os, v as is, bL as ns, n as ls, h as ds, s as cs, a0 as gs, a9 as ms, bk as ps, bx as us, bE as bs, aD as fs, a8 as hs, aR as ys, aG as Ts, aA as Ss, aO as Ps, aL as Cs, a3 as Is } from "./Expandable-Deyl6mWK.js";
1
+ import { P as I, a as N, b as B, c as x, d as D, e as F, f as A, g as M, h as v, i as R, j as W, k as _, C as H, l as k, m as z, n as L, o as E, p as G, q as $, r as O } from "./Expandable-8IsJX0iR.js";
2
+ import { $ as Ne, b2 as Be, aL as xe, aF as De, b0 as Fe, ai as Ae, Q as Me, N as ve, au as Re, a2 as We, t as _e, aY as He, _ as ke, X as ze, a7 as Le, z as Ee, a_ as Ge, O as $e, K as Oe, av as Ve, aR as we, aJ as Xe, al as je, G as Ze, I as Ue, aT as qe, aw as Je, b4 as Ke, ax as Qe, a3 as Ye, ao as ea, ak as aa, aU as sa, b6 as ta, J as ra, ah as oa, b7 as ia, an as na, b9 as la, ay as da, a6 as ca, aX as ga, u as ma, aZ as pa, S as ua, aH as fa, M as ha, x as ba, aq as ya, W as Ta, a9 as Sa, aj as Pa, w as Ca, a4 as Ia, aW as Na, R as Ba, aB as xa, aP as Da, aG as Fa, aE as Aa, am as Ma, U as va, aV as Ra, T as Wa, az as _a, A as Ha, a$ as ka, F as za, L as La, aN as Ea, aC as Ga, aA as $a, D as Oa, y as Va, b3 as wa, at as Xa, ad as ja, ae as Za, af as Ua, ag as qa, E as Ja, b5 as Ka, a1 as Qa, ap as Ya, Z as es, ar as as, ac as ss, aa as ts, aD as rs, s as os, v as is, a5 as ns, H as ls, B as ds, V as cs, b1 as gs, as as ms, Y as ps, ab as us, a8 as fs, aM as hs, a0 as bs, aS as ys, aK as Ts, aI as Ss, aQ as Ps, aO as Cs, b8 as Is } from "./Expandable-8IsJX0iR.js";
3
3
  import { jsx as c, jsxs as S } from "react/jsx-runtime";
4
- import { C as e, T as a, ae as V, S as s, E as u, R as m, f as w, Z as X } from "./UIContext-DP6JGCto.js";
5
- import { B as j, a as U, e as Z, c as q, d as J, b as K } from "./BaseAsyncButton-Cq_l7clO.js";
4
+ import { C as e, T as a, aa as V, S as s, E as u, R as m, c as w, Z as X } from "./UIContext-C7m-9sGv.js";
5
+ import { B as j, a as Z, e as U, c as q, d as J, b as K } from "./BaseAsyncButton-BE4m1Eff.js";
6
6
  import { formatDateRange as Bs, resolveEvent as xs, resolvePreset as Ds, smartDateFormat as Fs } from "@mt-gloss/utils/dateInterpretation";
7
7
  const Q = {
8
8
  page: {
@@ -145,7 +145,7 @@ const se = {
145
145
  `gloss-preset-value--${r}`
146
146
  ].join(" ");
147
147
  return /* @__PURE__ */ c(
148
- U,
148
+ Z,
149
149
  {
150
150
  as: o.as,
151
151
  definition: t,
@@ -204,8 +204,8 @@ function ne(l) {
204
204
  rightIcon: t,
205
205
  children: g,
206
206
  ...p
207
- } = l, f = { ...p };
208
- delete f.className, delete f.style, delete f.definition;
207
+ } = l, h = { ...p };
208
+ delete h.className, delete h.style, delete h.definition;
209
209
  const P = {
210
210
  ...ie,
211
211
  ...re[i],
@@ -216,14 +216,14 @@ function ne(l) {
216
216
  `gloss-preset-async-button--${r}`
217
217
  ].join(" ");
218
218
  return /* @__PURE__ */ S(
219
- Z,
219
+ U,
220
220
  {
221
- as: f.as,
221
+ as: h.as,
222
222
  definition: P,
223
223
  loading: n,
224
224
  disabled: d,
225
225
  className: C,
226
- ...f,
226
+ ...h,
227
227
  children: [
228
228
  o && /* @__PURE__ */ c("span", { className: "gloss-preset-async-button__icon gloss-preset-async-button__icon--left", children: o }),
229
229
  g && /* @__PURE__ */ c("span", { className: "gloss-preset-async-button__label", children: g }),
@@ -339,7 +339,7 @@ const pe = {
339
339
  }, ue = {
340
340
  color: e.TextSecondary
341
341
  };
342
- function be(l) {
342
+ function fe(l) {
343
343
  const { separator: i = "/", size: r = "md", children: n } = l, d = {
344
344
  ...ue,
345
345
  ...pe[r]
@@ -357,20 +357,20 @@ function be(l) {
357
357
  }
358
358
  );
359
359
  }
360
- be.displayName = "PresetBreadcrumbs";
361
- const b = I;
362
- b.Header = B;
363
- b.Body = x;
364
- b.Footer = D;
365
- b.Media = F;
366
- b.Title = A;
367
- b.Subtitle = M;
368
- b.Actions = v;
369
- const h = N;
370
- h.Item = R;
371
- h.Trigger = W;
372
- h.Content = H;
373
- const fe = {
360
+ fe.displayName = "PresetBreadcrumbs";
361
+ const f = I;
362
+ f.Header = B;
363
+ f.Body = x;
364
+ f.Footer = D;
365
+ f.Media = F;
366
+ f.Title = A;
367
+ f.Subtitle = M;
368
+ f.Actions = v;
369
+ const b = N;
370
+ b.Item = R;
371
+ b.Trigger = W;
372
+ b.Content = _;
373
+ const he = {
374
374
  info: {
375
375
  bg: e.Blue50,
376
376
  shadow: u.Hover,
@@ -396,7 +396,7 @@ const fe = {
396
396
  padding: s.Md
397
397
  }
398
398
  };
399
- function he({
399
+ function be({
400
400
  open: l,
401
401
  onDismiss: i,
402
402
  variant: r = "info",
@@ -405,7 +405,7 @@ function he({
405
405
  children: o
406
406
  }) {
407
407
  const t = {
408
- ...fe[r],
408
+ ...he[r],
409
409
  zIndex: X.Toast,
410
410
  position: n,
411
411
  duration: d
@@ -421,17 +421,17 @@ function he({
421
421
  }
422
422
  );
423
423
  }
424
- he.displayName = "PresetToast";
425
- const y = _;
426
- y.Header = L;
427
- y.Body = z;
424
+ be.displayName = "PresetToast";
425
+ const y = H;
426
+ y.Header = z;
427
+ y.Body = L;
428
428
  y.Actions = E;
429
429
  const T = k;
430
430
  T.Group = G;
431
431
  T.Item = $;
432
432
  T.Divider = O;
433
433
  export {
434
- h as Accordion,
434
+ b as Accordion,
435
435
  Ne as ActionStrip,
436
436
  Be as Actionable,
437
437
  xe as AddressGroup,
@@ -444,13 +444,13 @@ export {
444
444
  ve as Badge,
445
445
  Re as BarChartCard,
446
446
  We as BarsBg,
447
- be as Breadcrumbs,
448
- He as Button,
449
- _e as ButtonGroup,
450
- b as Card,
447
+ fe as Breadcrumbs,
448
+ _e as Button,
449
+ He as ButtonGroup,
450
+ f as Card,
451
451
  ke as CardBack,
452
- Le as CardShell,
453
- ze as ChartControlBar,
452
+ ze as CardShell,
453
+ Le as ChartControlBar,
454
454
  Ee as Checkbox,
455
455
  Ge as CheckboxGroup,
456
456
  $e as Chip,
@@ -459,8 +459,8 @@ export {
459
459
  we as ContactForm,
460
460
  Xe as CreditCardForm,
461
461
  je as DataTable,
462
- Ue as DatePicker,
463
- Ze as DateRangePicker,
462
+ Ze as DatePicker,
463
+ Ue as DateRangePicker,
464
464
  qe as DestructiveModal,
465
465
  y as Dialog,
466
466
  Je as DirectionCard,
@@ -484,9 +484,9 @@ export {
484
484
  pa as InputGroup,
485
485
  ae as Label,
486
486
  ua as Link,
487
- ba as LoginForm,
488
- fa as MaskPresets,
489
- ha as MaskedInput,
487
+ fa as LoginForm,
488
+ ha as MaskPresets,
489
+ ba as MaskedInput,
490
490
  T as Menu,
491
491
  ya as MergePrompt,
492
492
  Ta as MetricCard,
@@ -504,11 +504,11 @@ export {
504
504
  va as Popover,
505
505
  Ra as ProfileCard,
506
506
  Wa as ProgressBar,
507
- Ha as ProgressCard,
508
- _a as Radio,
507
+ _a as ProgressCard,
508
+ Ha as Radio,
509
509
  ka as RadioGroup,
510
- La as RangeSlider,
511
- za as Rating,
510
+ za as RangeSlider,
511
+ La as Rating,
512
512
  Ea as RegistrationForm,
513
513
  Ga as SearchInput,
514
514
  $a as SegmentCard,
@@ -517,8 +517,8 @@ export {
517
517
  wa as Selectable,
518
518
  Xa as SimpleMetricCard,
519
519
  ja as Skeleton,
520
- Ua as SkeletonCard,
521
- Za as SkeletonChart,
520
+ Za as SkeletonCard,
521
+ Ua as SkeletonChart,
522
522
  qa as SkeletonTable,
523
523
  Ja as Slider,
524
524
  Ka as Sortable,
@@ -534,17 +534,17 @@ export {
534
534
  ns as TimeFrame,
535
535
  ls as TimePicker,
536
536
  Y as Title,
537
- he as Toast,
537
+ be as Toast,
538
538
  ds as Toggle,
539
539
  cs as Tooltip,
540
540
  gs as Transition,
541
541
  ms as TrendCard,
542
542
  ps as TrendIndicator,
543
543
  us as UnifiedBreakdownTable,
544
- bs as UnifiedContextMenu,
544
+ fs as UnifiedContextMenu,
545
545
  te as Value,
546
- fs as addressSchema,
547
- hs as buildDefaultOverflow,
546
+ hs as addressSchema,
547
+ bs as buildDefaultOverflow,
548
548
  ys as contactSchema,
549
549
  Ts as creditCardSchema,
550
550
  Bs as formatDateRangeInterpretation,
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Composites/panels entry point — flat-root mirror for the subpath export
3
+ * '@mt-gloss/ui/composites/panels'.
4
+ *
5
+ * Mirrors the catalog.ts / internals.ts shape so that vite emits
6
+ * `dist/libs/gloss-ui/composites-panels.{js,d.ts}` at the package root,
7
+ * matching the package.json exports map (F12).
8
+ *
9
+ * Usage:
10
+ * import { PanelProvider, PanelHost } from '@mt-gloss/ui/composites/panels';
11
+ */
12
+ export * from './lib/composites/panels/index';
@@ -0,0 +1,13 @@
1
+ import { C as s, c as t, b as r, P as n, e as o, i, r as l, u as P, a as u, d as C } from "./COMMITS-BcbOliuF.js";
2
+ export {
3
+ s as COMMITS,
4
+ t as PanelChrome,
5
+ r as PanelHost,
6
+ n as PanelProvider,
7
+ o as deriveSurfaceState,
8
+ i as initialState,
9
+ l as reducer,
10
+ P as usePanelContext,
11
+ u as usePanelContextOptional,
12
+ C as usePanelCoordinator
13
+ };
package/index.d.ts CHANGED
@@ -366,3 +366,5 @@ export { UIContext, UIContextProvider, useUIContext, ContainerCard, ContainerCar
366
366
  export type { UIContextValue, UIRegion, UIDensity, UIContextProviderProps, ContainerCardProps, ContainerCardVariant, ContainerDialogProps, ContainerDialogHeaderProps, ContainerDialogBodyProps, ContainerDialogActionsProps, ContainerPanelProps, ContainerToolbarProps, ContainerFormSectionProps, ContainerTableProps, } from './lib/containers';
367
367
  export { mergeRefs, mergeHandlers, Actionable, Selectable, Dismissible, Sortable, Expandable, } from './lib/wrappers';
368
368
  export type { ActionableProps, SelectableProps, DismissibleProps, SortableProps, ExpandableProps, } from './lib/wrappers';
369
+ export { PanelProvider, usePanelContext, usePanelContextOptional, PanelHost, PanelChrome, usePanelCoordinator, reducer as panelsReducer, initialState as panelsInitialState, deriveSurfaceState as panelsDeriveSurfaceState, COMMITS as PANEL_COMMITS, } from './lib/composites/panels';
370
+ export type { PanelProviderProps, PanelHostProps, PanelChromeProps, PanelShellProps, UsePanelCoordinatorReturn, PanelId, PanelState, PanelAction, CloseReason, SurfaceState, TriggerContext, SideEffect, CloseLogEntry, LockHint, } from './lib/composites/panels';
package/index.js CHANGED
@@ -1,13 +1,14 @@
1
- import { u as Ze, C as qe } from "./Expandable-Deyl6mWK.js";
2
- import { Q as Sr, V as kr, T as Dr, U as xr, a5 as Tr, b8 as Rr, aB as Mr, aj as Pr, $ as Ir, ap as Er, N as Ar, aa as Fr, bo as Or, P as Lr, B as $r, a as zr, A as Br, K as Kr, bj as Gr, J as Hr, L as Wr, E as Vr, D as jr, H as Ur, F as Yr, by as Zr, b as qr, c as Qr, O as Xr, q as Jr, af as es, aP as ts, A as as, K as ns, J as rs, L as ss, E as is, D as os, H as ls, F as cs, b1 as ds, b4 as us, b3 as ms, b2 as gs, b5 as ps, aE as hs, a7 as fs, a6 as bs, as as vs, m as ys, o as ws, aH as _s, ad as Cs, ba as Ns, ab as Ss, bp as ks, _ as Ds, bI as xs, bH as Ts, bJ as Rs, ar as Ms, aS as Ps, bc as Is, bN as Es, bw as As, p as Fs, ao as Os, bC as Ls, bt as $s, a2 as zs, at as Bs, a4 as Ks, bB as Gs, bS as Hs, G as Ws, f as Vs, ac as js, bK as Us, aV as Ys, t as Zs, x as qs, I as Qs, i as Xs, ay as Js, bO as ei, M as ti, y as ai, W as ni, Z as ri, X as si, Y as ii, au as oi, bi as li, bQ as ci, bM as di, aq as ui, w as mi, bq as gi, aU as pi, al as hi, aM as fi, ai as bi, an as vi, aw as yi, aT as wi, ae as _i, av as Ci, e as Ni, R as Si, l as ki, r as Di, aJ as xi, bz as Ti, bA as Ri, ak as Mi, ag as Pi, j as Ii, z as Ei, b9 as Ai, ah as Fi, bP as Oi, be as Li, bh as $i, bf as zi, bg as Bi, k as Ki, bb as Gi, bn as Hi, S as Wi, bl as Vi, bm as ji, ax as Ui, bd as Yi, bR as Zi, am as qi, v as Qi, bL as Xi, n as Ji, h as eo, s as to, a0 as ao, a1 as no, a9 as ro, bk as so, bx as io, bE as oo, aC as lo, aD as co, a8 as uo, aQ as mo, aR as go, aF as po, aG as ho, aI as fo, aX as bo, aY as vo, br as yo, bG as wo, bF as _o, a_ as Co, a$ as No, az as So, aA as ko, b7 as Do, b6 as xo, b0 as To, aN as Ro, aO as Mo, aZ as Po, aK as Io, aL as Eo, d as Ao, bD as Fo, bs as Oo, bu as Lo, bv as $o, aW as zo, a3 as Bo, bT as Ko, g as Go } from "./Expandable-Deyl6mWK.js";
1
+ import { ba as Ze, X as qe } from "./Expandable-8IsJX0iR.js";
2
+ import { a as Sr, k as kr, i as Dr, j as xr, $ as Tr, b2 as Rr, aL as Mr, aF as Pr, b0 as Ir, ai as Er, N as Ar, au as Fr, a2 as Or, t as Lr, aY as $r, bb as zr, P as Br, h as Kr, _ as Gr, c as Hr, d as Wr, b as Vr, e as jr, g as Ur, f as Yr, a7 as Zr, z as qr, a_ as Qr, O as Xr, K as Jr, av as es, aR as ts, P as as, h as ns, c as rs, d as ss, b as is, e as os, g as ls, f as cs, C as ds, o as us, n as ms, m as gs, R as ps, aJ as hs, bj as fs, bi as bs, al as vs, G as ys, I as ws, aT as _s, aw as Cs, b4 as Ns, ax as Ss, a3 as ks, ao as Ds, bQ as xs, bP as Ts, bR as Rs, ak as Ms, aU as Ps, b6 as Is, bT as Es, bH as As, J as Fs, ah as Os, bL as Ls, bE as $s, b7 as zs, an as Bs, b9 as Ks, bK as Gs, bW as Hs, bc as Ws, be as Vs, ay as js, a6 as Us, aX as Ys, u as Zs, bg as qs, aZ as Qs, S as Xs, aH as Js, bU as ei, M as ti, x as ai, l as ni, r as ri, p as si, q as ii, aq as oi, W as li, a9 as ci, bS as di, aj as ui, w as mi, a4 as gi, aW as pi, aB as hi, aP as fi, aG as bi, aE as vi, am as yi, aV as wi, az as _i, bk as Ci, A as Ni, a$ as Si, F as ki, L as Di, aN as xi, bI as Ti, bJ as Ri, aC as Mi, aA as Pi, D as Ii, y as Ei, b3 as Ai, at as Fi, bV as Oi, ad as Li, ae as $i, af as zi, ag as Bi, E as Ki, b5 as Gi, a1 as Hi, ap as Wi, Z as Vi, bB as ji, ar as Ui, ac as Yi, aa as Zi, aD as qi, v as Qi, a5 as Xi, H as Ji, B as eo, V as to, b1 as ao, bh as no, as as ro, Y as so, ab as io, a8 as oo, bm as lo, aM as co, a0 as uo, br as mo, aS as go, bn as po, aK as ho, bo as fo, bt as bo, bu as vo, bC as yo, bO as wo, bN as _o, bw as Co, bx as No, bl as So, aI as ko, bA as Do, bz as xo, by as To, bq as Ro, aQ as Mo, bv as Po, bp as Io, aO as Eo, bd as Ao, bM as Fo, bD as Oo, bF as Lo, bG as $o, bs as zo, b8 as Bo, bX as Ko, bf as Go } from "./Expandable-8IsJX0iR.js";
3
3
  import { jsxs as w, jsx as r, Fragment as $ } from "react/jsx-runtime";
4
4
  import * as B from "react";
5
5
  import F, { useRef as P, useEffect as A, useState as E, useCallback as C, useId as Qe, forwardRef as Xe, useMemo as re, createContext as Je, useContext as et } from "react";
6
6
  import { motion as G, useMotionValue as tt, AnimatePresence as at, useDragControls as nt } from "framer-motion";
7
- import { B as rt, a as X, b as ce, U as fe } from "./UIContext-DP6JGCto.js";
8
- import { c as Wo, u as Vo } from "./UIContext-DP6JGCto.js";
7
+ import { ab as rt, a as X, a9 as ce, ai as fe } from "./UIContext-C7m-9sGv.js";
8
+ import { ah as Wo, aj as Vo } from "./UIContext-C7m-9sGv.js";
9
+ import { C as Uo, c as Yo, b as Zo, P as qo, e as Qo, i as Xo, r as Jo, u as el, a as tl, d as al } from "./COMMITS-BcbOliuF.js";
9
10
  import { createPortal as st } from "react-dom";
10
- import { DEFAULT_MARKET_PRESETS as Uo, DEFAULT_PINNED as Yo, PERIOD_OPTIONS as Zo, ROLLING_OPTIONS as qo, TODAY_PRESET as Qo, findPreset as Xo, formatDateRange as Jo, formatMarketDates as el, formatTrend as tl, formatValue as al, generateMarketId as nl, getAllPresets as rl, getDateRangeForPreset as sl, getPresetLabel as il, isInRange as ol, isMarketActive as ll, isSameDay as cl, normalizePresetId as dl, toUppercasePresetId as ul } from "@mt-gloss/utils";
11
+ import { DEFAULT_MARKET_PRESETS as rl, DEFAULT_PINNED as sl, PERIOD_OPTIONS as il, ROLLING_OPTIONS as ol, TODAY_PRESET as ll, findPreset as cl, formatDateRange as dl, formatMarketDates as ul, formatTrend as ml, formatValue as gl, generateMarketId as pl, getAllPresets as hl, getDateRangeForPreset as fl, getPresetLabel as bl, isInRange as vl, isMarketActive as yl, isSameDay as wl, normalizePresetId as _l, toUppercasePresetId as Cl } from "@mt-gloss/utils";
11
12
  import it from "@mui/icons-material/AccessTime";
12
13
  import ot from "@mui/icons-material/Tune";
13
14
  import lt from "@mui/icons-material/ViewColumn";
@@ -4686,9 +4687,9 @@ export {
4686
4687
  hs as CreditCardForm,
4687
4688
  fs as DEFAULT_FOOTER_IDS,
4688
4689
  U as DEFAULT_GRID_INTERACTION_PHYSICS,
4689
- Uo as DEFAULT_MARKET_PRESETS,
4690
+ rl as DEFAULT_MARKET_PRESETS,
4690
4691
  bs as DEFAULT_OVERFLOW_IDS,
4691
- Yo as DEFAULT_PINNED,
4692
+ sl as DEFAULT_PINNED,
4692
4693
  _t as DEFAULT_RESIZE_PHYSICS,
4693
4694
  Ie as DEFAULT_RESIZE_PILL_PHYSICS,
4694
4695
  vs as DataTable,
@@ -4760,11 +4761,15 @@ export {
4760
4761
  mi as NumberInput,
4761
4762
  gi as ObjectArrow,
4762
4763
  pi as OrderFilterBar,
4763
- Zo as PERIOD_OPTIONS,
4764
+ Uo as PANEL_COMMITS,
4765
+ il as PERIOD_OPTIONS,
4764
4766
  or as PaceCard,
4765
4767
  lr as PaceTilePreview,
4766
4768
  Et as PageChip,
4767
4769
  Oe as PageDropdown,
4770
+ Yo as PanelChrome,
4771
+ Zo as PanelHost,
4772
+ qo as PanelProvider,
4768
4773
  hi as PasswordInput,
4769
4774
  fi as PaymentForm,
4770
4775
  bi as PaymentMethodSelect,
@@ -4775,7 +4780,7 @@ export {
4775
4780
  _i as ProgressCard,
4776
4781
  Ci as QuickConfigPanel,
4777
4782
  Bt as RECONFIG_BACKSIDE_LABELS,
4778
- qo as ROLLING_OPTIONS,
4783
+ ol as ROLLING_OPTIONS,
4779
4784
  Ni as Radio,
4780
4785
  Si as RadioGroup,
4781
4786
  ki as RangeSlider,
@@ -4824,7 +4829,7 @@ export {
4824
4829
  yt as StatusSlotChipMenu,
4825
4830
  Ui as Stepper,
4826
4831
  De as SwingReveal,
4827
- Qo as TODAY_PRESET,
4832
+ ll as TODAY_PRESET,
4828
4833
  V as TUNING_DEFAULTS,
4829
4834
  Be as TUNING_STORAGE_KEY,
4830
4835
  Yi as TabGroup,
@@ -4879,26 +4884,26 @@ export {
4879
4884
  Tt as errorFixture,
4880
4885
  yo as evaluateTintCondition,
4881
4886
  Rn as filteredState,
4882
- Xo as findPreset,
4883
- Jo as formatDateRange,
4884
- el as formatMarketDates,
4885
- tl as formatTrend,
4886
- al as formatValue,
4887
+ cl as findPreset,
4888
+ dl as formatDateRange,
4889
+ ul as formatMarketDates,
4890
+ ml as formatTrend,
4891
+ gl as formatValue,
4887
4892
  Hn as fullLayout,
4888
- nl as generateMarketId,
4893
+ pl as generateMarketId,
4889
4894
  wo as generateTabId,
4890
- rl as getAllPresets,
4891
- sl as getDateRangeForPreset,
4895
+ hl as getAllPresets,
4896
+ fl as getDateRangeForPreset,
4892
4897
  _o as getMenuActions,
4893
4898
  Ke as getMotionMode,
4894
- il as getPresetLabel,
4899
+ bl as getPresetLabel,
4895
4900
  Co as getTransitionStyle,
4896
4901
  Bn as gridCards,
4897
4902
  cr as gridChannels,
4898
4903
  No as interpolate,
4899
- ol as isInRange,
4900
- ll as isMarketActive,
4901
- cl as isSameDay,
4904
+ vl as isInRange,
4905
+ yl as isMarketActive,
4906
+ wl as isSameDay,
4902
4907
  Tn as itemColumns,
4903
4908
  Dn as itemRows,
4904
4909
  xt as loadingFixture,
@@ -4910,7 +4915,7 @@ export {
4910
4915
  xo as mergeRefs,
4911
4916
  sn as metricTabGroup,
4912
4917
  Vn as mixedTabs,
4913
- dl as normalizePresetId,
4918
+ _l as normalizePresetId,
4914
4919
  zt as numericActions,
4915
4920
  xn as orderColumns,
4916
4921
  $t as orderIdActions,
@@ -4918,6 +4923,9 @@ export {
4918
4923
  Wn as ordersTabs,
4919
4924
  Me as paletteHex,
4920
4925
  j as paletteVars,
4926
+ Qo as panelsDeriveSurfaceState,
4927
+ Xo as panelsInitialState,
4928
+ Jo as panelsReducer,
4921
4929
  To as parseNumericValue,
4922
4930
  Ro as paymentFormMetadata,
4923
4931
  Mo as paymentSchema,
@@ -4950,7 +4958,7 @@ export {
4950
4958
  gn as tableSamples,
4951
4959
  dn as textSamples,
4952
4960
  ln as timeFrameTabGroup,
4953
- ul as toUppercasePresetId,
4961
+ Cl as toUppercasePresetId,
4954
4962
  Ze as useAffordanceVisibility,
4955
4963
  nn as useArrowNavigation,
4956
4964
  Ao as useCheckboxGroupContext,
@@ -4962,6 +4970,9 @@ export {
4962
4970
  zo as useFocusTrap,
4963
4971
  Bo as useFormContext,
4964
4972
  Ko as useGestureState,
4973
+ el as usePanelContext,
4974
+ tl as usePanelContextOptional,
4975
+ al as usePanelCoordinator,
4965
4976
  Go as useRadioGroupContext,
4966
4977
  yr as useResizeChoreography,
4967
4978
  fn as useResizePill,
package/internals.js CHANGED
@@ -1,7 +1,7 @@
1
- import { d as B } from "./UIContext-DP6JGCto.js";
2
- import { G as A, J as I, H, I as M, af as $, ah as R, a as E, i as F, v as O, F as U, x as z, y as W, w as L, z as j, D as G, A as V, l as X, ai as Z, a8 as q, ab as J, aa as K, a9 as Q, ac as Y, V as aa, X as sa, Y as ea, W as oa, a1 as ta, a2 as la, f as ra, a5 as ia, a7 as da, a6 as na, h as ca, j as Ba, aj as ga, a4 as ba, K as ma, N as ua, L as pa, M as ya, a3 as ha, B as _a, ag as fa, m as va, ad as Ca, P as ka, Q as Da, o as Ta, q as wa, s as xa, r as Sa, p as Na, t as Pa, e as Aa, b as Ia, k as Ha, _ as Ma, a0 as $a, $ as Ra, ae as Ea, n as Fa, O as Oa, g as Ua, C as za, E as Wa, R as La, S as ja, T as Ga, c as Va, U as Xa, Z as Za, u as qa } from "./UIContext-DP6JGCto.js";
1
+ import { B } from "./UIContext-C7m-9sGv.js";
2
+ import { z as A, F as I, A as H, D as M, ac as $, ae as R, a as E, f as F, r as O, y as U, t as z, u as W, s as L, v as j, x as G, w as V, i as X, af as Z, a3 as q, a6 as J, a5 as K, a4 as Q, a7 as Y, N as aa, P as sa, Q as ea, O as oa, X as ta, Y as la, c as ra, a0 as ia, a2 as da, a1 as na, e as ca, g as Ba, ag as ga, $ as ba, G as ma, J as ua, H as pa, I as ya, _ as ha, ab as _a, ad as fa, j as va, a8 as Ca, L as ka, M as Da, l as Ta, n as wa, p as xa, o as Sa, m as Na, q as Pa, b as Aa, a9 as Ia, h as Ha, U as Ma, W as $a, V as Ra, aa as Ea, k as Fa, K as Oa, d as Ua, C as za, E as Wa, R as La, S as ja, T as Ga, ah as Va, ai as Xa, Z as Za, aj as qa } from "./UIContext-C7m-9sGv.js";
3
3
  import { jsx as d, jsxs as g, Fragment as b } from "react/jsx-runtime";
4
- import { c as Ka, e as Qa, d as Ya, B as as, b as ss, a as es } from "./BaseAsyncButton-Cq_l7clO.js";
4
+ import { c as Ka, e as Qa, d as Ya, B as as, b as ss, a as es } from "./BaseAsyncButton-BE4m1Eff.js";
5
5
  const T = {
6
6
  DurationFast: "var(--gloss-motion-duration-fast)",
7
7
  DurationNormal: "var(--gloss-motion-duration-normal)",
@@ -0,0 +1,7 @@
1
+ import { ReactNode } from 'react';
2
+ export interface PanelChromeProps {
3
+ children: ReactNode;
4
+ onClose: () => void;
5
+ isOpen?: boolean;
6
+ }
7
+ export declare function PanelChrome({ children, onClose, isOpen }: PanelChromeProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { ComponentType } from 'react';
2
+ import { PanelId } from './coordinator/types';
3
+ /**
4
+ * Shape contract for panel shell components (F10).
5
+ * Receives `isOpen` so future plans may always-mount panels and rely on this
6
+ * prop for animation gating; P1 mounts only the active panel.
7
+ */
8
+ export interface PanelShellProps {
9
+ isOpen: boolean;
10
+ }
11
+ export interface PanelHostProps {
12
+ /**
13
+ * Map of PanelId → shell component. Only the active panel mounts in P1.
14
+ * F8 — callers SHOULD declare this at module scope as a `const` for
15
+ * referential stability.
16
+ */
17
+ panelComponents: Partial<Record<PanelId, ComponentType<PanelShellProps>>>;
18
+ }
19
+ export declare function PanelHost({ panelComponents }: PanelHostProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import { ReactNode } from 'react';
2
+ export interface PanelProviderProps {
3
+ children: ReactNode;
4
+ }
5
+ export declare function PanelProvider({ children }: PanelProviderProps): import("react/jsx-runtime").JSX.Element;
6
+ export { usePanelContext, usePanelContextOptional } from './hooks/usePanelContext';
@@ -0,0 +1,2 @@
1
+ import { CloseReason } from './types';
2
+ export declare const COMMITS: Record<CloseReason, boolean>;
@@ -0,0 +1,3 @@
1
+ import { PanelAction, PanelState } from './types';
2
+ export declare const initialState: PanelState;
3
+ export declare function reducer(state: PanelState, action: PanelAction): PanelState;
@@ -0,0 +1,2 @@
1
+ import { PanelState, SurfaceState } from './types';
2
+ export declare function deriveSurfaceState(state: PanelState): SurfaceState;
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Panel system — type contract.
3
+ *
4
+ * Authority: `.planning/spikes/toolbar/panels/SPIKE-DELIVERABLES.md` §1.2 (PanelId),
5
+ * §1.3 (SurfaceState), §1.10/§1.15 (CloseReason taxonomy), §1.17 (TriggerContext).
6
+ *
7
+ * P1 reach: reducer only OPENs/CLOSEs `'notification-center'`; other PanelIds are
8
+ * present in the union but emit INVALID_DISPATCH per F15 branch 3. Surface-state
9
+ * derivation in P1 reaches `'idle'` + `'notif-center'` only; other branches return
10
+ * `'idle'` with a TODO until P2 extends the reducer to full 7-state.
11
+ *
12
+ * Plan refs:
13
+ * F1 — exhaustive types ship Day 1
14
+ * F4 — `lastClose` carries `{ panelId, reason }` so closeLog pump can append
15
+ * F6 — `SCHEDULE_TIMER` is a SideEffect, NOT a PanelAction (external callers
16
+ * cannot dispatch it). Only `OPEN_PANEL | CLOSE_PANEL | DRAIN_SIDE_EFFECTS`
17
+ * are dispatchable.
18
+ * F9 + F21 — `NAV_ESCAPE_HATCH` carries dual P1 meaning: backdrop-click AND
19
+ * page-nav escape; spike enum has no `BACKDROP_CLICK` literal.
20
+ */
21
+ export type PanelId = 'settings' | 'catalog-add' | 'catalog-replace' | 'page-management' | 'notification-center';
22
+ export type CloseReason = 'cancel-button' | 'apply-button' | 'header-x' | 'escape-key' | 'page-nav' | 'mutex-handoff' | 'ghost-anchor' | 'viewport-collapse' | 'unmount' | 'nav-escape-hatch';
23
+ export type SurfaceState = 'idle' | 'bell-cutout-only' | 'panel-clean' | 'panel-dirty' | 'panel-clean+cutout' | 'panel-dirty+cutout' | 'notif-center';
24
+ export type TriggerContext = {
25
+ kind: 'bell';
26
+ } | {
27
+ kind: 'card-overflow';
28
+ cardId: string;
29
+ sectionIndex: number;
30
+ action: 'configure' | 'replace';
31
+ } | {
32
+ kind: 'empty-cell';
33
+ sectionIndex: number;
34
+ cellPosition: {
35
+ row: number;
36
+ col: number;
37
+ };
38
+ } | {
39
+ kind: 'manage-pages-action';
40
+ global: true;
41
+ align: 'left';
42
+ };
43
+ export interface CloseLogEntry {
44
+ panelId: PanelId;
45
+ reason: CloseReason;
46
+ at: number;
47
+ /**
48
+ * F21 — When `reason === 'nav-escape-hatch'`, the same enum literal fires for
49
+ * both backdrop-click AND page-nav escape. Future analytics MUST inspect this
50
+ * note before attributing UX intent.
51
+ */
52
+ note?: string;
53
+ }
54
+ export type SideEffect = {
55
+ type: 'SCHEDULE_TIMER';
56
+ ms: number;
57
+ action: PanelAction;
58
+ } | {
59
+ type: 'INVALID_DISPATCH';
60
+ reason: string;
61
+ };
62
+ export interface PanelState {
63
+ activePanelId: PanelId | null;
64
+ lastClose: {
65
+ panelId: PanelId;
66
+ reason: CloseReason;
67
+ } | null;
68
+ pendingSideEffects: SideEffect[];
69
+ }
70
+ export type PanelAction = {
71
+ type: 'OPEN_PANEL';
72
+ panelId: PanelId;
73
+ trigger: TriggerContext;
74
+ } | {
75
+ type: 'CLOSE_PANEL';
76
+ reason: CloseReason;
77
+ } | {
78
+ type: 'DRAIN_SIDE_EFFECTS';
79
+ };
80
+ export interface LockHint {
81
+ blockedTrigger: TriggerContext;
82
+ activeCardId: string | null;
83
+ expiresAt: number;
84
+ }
@@ -0,0 +1,4 @@
1
+ import { UsePanelCoordinatorReturn } from './usePanelCoordinator';
2
+ export declare const PanelContext: import('react').Context<UsePanelCoordinatorReturn | null>;
3
+ export declare function usePanelContext(): UsePanelCoordinatorReturn;
4
+ export declare function usePanelContextOptional(): UsePanelCoordinatorReturn | null;
@@ -0,0 +1,8 @@
1
+ import { CloseLogEntry, PanelAction, PanelState, SurfaceState } from '../coordinator/types';
2
+ export interface UsePanelCoordinatorReturn {
3
+ state: PanelState;
4
+ surfaceState: SurfaceState;
5
+ dispatch: React.Dispatch<PanelAction>;
6
+ getCloseLog: () => CloseLogEntry[];
7
+ }
8
+ export declare function usePanelCoordinator(): UsePanelCoordinatorReturn;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @mt-gloss/ui/composites/panels — panel-system foundation.
3
+ *
4
+ * Consumers (reptime-cloud P1) import:
5
+ * import { PanelProvider, PanelHost } from '@mt-gloss/ui/composites/panels';
6
+ *
7
+ * Subpath export wired in package.json (F12); flat package-root artifact
8
+ * `composites-panels.js` matching existing `internals` + `catalog` pattern.
9
+ */
10
+ export { PanelProvider, usePanelContext, usePanelContextOptional } from './PanelProvider';
11
+ export { PanelHost } from './PanelHost';
12
+ export { PanelChrome } from './PanelChrome';
13
+ export type { PanelHostProps, PanelShellProps } from './PanelHost';
14
+ export type { PanelProviderProps } from './PanelProvider';
15
+ export type { PanelChromeProps } from './PanelChrome';
16
+ export { usePanelCoordinator } from './hooks/usePanelCoordinator';
17
+ export type { UsePanelCoordinatorReturn } from './hooks/usePanelCoordinator';
18
+ export { reducer, initialState } from './coordinator/coordinator';
19
+ export { deriveSurfaceState } from './coordinator/deriveSurfaceState';
20
+ export { COMMITS } from './coordinator/COMMITS';
21
+ export type { PanelId, PanelState, PanelAction, CloseReason, SurfaceState, TriggerContext, SideEffect, CloseLogEntry, LockHint, } from './coordinator/types';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mt-gloss/ui",
3
- "version": "0.1.81",
3
+ "version": "0.1.82",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "restricted"
@@ -38,6 +38,17 @@
38
38
  },
39
39
  "default": "./catalog.js"
40
40
  },
41
+ "./composites/panels": {
42
+ "import": {
43
+ "types": "./composites-panels.d.ts",
44
+ "default": "./composites-panels.js"
45
+ },
46
+ "require": {
47
+ "types": "./composites-panels.d.ts",
48
+ "default": "./composites-panels.js"
49
+ },
50
+ "default": "./composites-panels.js"
51
+ },
41
52
  "./styles.css": "./ui.css"
42
53
  },
43
54
  "files": [