cursedbelt 5.99.4 → 5.99.6

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.
@@ -24,7 +24,10 @@ export interface PanelGridLeaf {
24
24
  /** A split — lays its children out along `direction` with dividers between them. */
25
25
  export interface PanelGridSplit {
26
26
  type: 'split';
27
- /** Unique within the whole grid — namespaces the persisted layout of this group. */
27
+ /**
28
+ * Unique within the whole grid — namespaces the persisted layout of this group. It need not be
29
+ * unique on the PAGE: the library's group is registered as `<this grid's useId()>:<id>`.
30
+ */
28
31
  id: string;
29
32
  /** 'horizontal' = children side-by-side; 'vertical' = children stacked. */
30
33
  direction: 'horizontal' | 'vertical';
@@ -1 +1 @@
1
- {"version":3,"file":"PanelGrid.d.ts","sourceRoot":"","sources":["../../../src/react/components/PanelGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAW,MAAM,OAAO,CAAC;AAIhD,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,oFAAoF;IACpF,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,SAAS,EAAE,YAAY,GAAG,UAAU,CAAC;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;AAE3D,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,IAAI,EAAE,cAAc,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,WAAkB,EAClB,gBAAyB,EACzB,WAAkB,EAClB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,+BA2BhB"}
1
+ {"version":3,"file":"PanelGrid.d.ts","sourceRoot":"","sources":["../../../src/react/components/PanelGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAkB,MAAM,OAAO,CAAC;AAIvD,OAAO,EAAkB,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjF,0EAA0E;AAC1E,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6EAA6E;IAC7E,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,SAAS,CAAC;IACnB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,2EAA2E;IAC3E,SAAS,EAAE,YAAY,GAAG,UAAU,CAAC;IACrC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,sFAAsF;IACtF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iFAAiF;IACjF,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC,2GAA2G;IAC3G,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;AAE3D,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,IAAI,EAAE,cAAc,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;IACzC;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAUD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,SAAS,CAAC,EACxB,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,WAAkB,EAClB,gBAAyB,EACzB,WAAkB,EAClB,SAAS,EACT,GAAG,IAAI,EACR,EAAE,cAAc,+BAoChB"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useMemo } from 'react';
2
+ import { useId, useMemo } from 'react';
3
3
  import { Group, Panel, useDefaultLayout } from 'react-resizable-panels';
4
4
  import { useMediaQuery } from '../hooks/useMediaQuery.js';
5
5
  import { cn } from '../lib/cn.js';
@@ -52,33 +52,41 @@ function leavesOf(node) {
52
52
  export function PanelGrid({ root, storageKey, disabled, withHandles = true, separatorVariant = 'line', mobileStack = true, className, ...rest }) {
53
53
  const isMobile = useMediaQuery('(max-width: 639px)');
54
54
  const flatLeaves = useMemo(() => leavesOf(root), [root]);
55
+ // 🔴 react-resizable-panels keys its group registry by `id` ACROSS THE DOCUMENT, and each Group's
56
+ // listener takes every change made under its id. `SplitPane` gave every instance the same root
57
+ // id, `'root'`, so two on one page heard each other's layouts: a collapsible panel looked itself
58
+ // up in the other group's layout, found nothing, and `toFixed` threw out of a ResizeObserver —
59
+ // before the listener applied the new layout (forge task 3981, caught by the kitchen sink's
60
+ // `test:browser:smoke`). It also put a second `id="root"` in the DOM beside the app's mount node.
61
+ // Each grid instance scopes its groups; the persisted key stays `${storageKey}:${split.id}`.
62
+ const scope = useId();
55
63
  if (mobileStack && isMobile) {
56
64
  return (_jsx("div", { ...rest, className: cn('flex flex-col', className), children: flatLeaves.map((leaf) => (_jsx("div", { className: cn('min-h-0', leaf.className), children: leaf.content }, leaf.id))) }));
57
65
  }
58
- return (_jsx(GridSplit, { ...rest, node: root, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: separatorVariant, className: cn('h-full', className) }));
66
+ return (_jsx(GridSplit, { ...rest, node: root, scope: scope, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: separatorVariant, className: cn('h-full', className) }));
59
67
  }
60
68
  function GridSplit(props) {
61
69
  // Persistence needs the useDefaultLayout hook; hooks can't be conditional,
62
70
  // so the persistent and plain variants are separate components.
63
71
  return props.storageKey ? _jsx(PersistentGridSplit, { ...props }) : _jsx(PlainGridSplit, { ...props });
64
72
  }
65
- function PlainGridSplit({ node, storageKey, disabled, withHandles, separatorVariant, className, }) {
66
- return (_jsx(Group, { id: node.id, orientation: node.direction, disabled: disabled, className: cn('flex', node.direction === 'horizontal' ? 'flex-row' : 'flex-col', className ?? node.className), children: _jsx(GridChildren, { node: node, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: separatorVariant }) }));
73
+ function PlainGridSplit({ node, scope, storageKey, disabled, withHandles, separatorVariant, className, }) {
74
+ return (_jsx(Group, { id: `${scope}:${node.id}`, orientation: node.direction, disabled: disabled, className: cn('flex', node.direction === 'horizontal' ? 'flex-row' : 'flex-col', className ?? node.className), children: _jsx(GridChildren, { node: node, scope: scope, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: separatorVariant }) }));
67
75
  }
68
- function PersistentGridSplit({ node, storageKey, disabled, withHandles, separatorVariant, className, }) {
76
+ function PersistentGridSplit({ node, scope, storageKey, disabled, withHandles, separatorVariant, className, }) {
69
77
  const { defaultLayout, onLayoutChanged } = useDefaultLayout({
70
78
  id: `${storageKey}:${node.id}`,
71
79
  onlySaveAfterUserInteractions: true,
72
80
  storage: localStorage,
73
81
  });
74
- return (_jsx(Group, { id: node.id, orientation: node.direction, defaultLayout: defaultLayout, onLayoutChanged: onLayoutChanged, disabled: disabled, className: cn('flex', node.direction === 'horizontal' ? 'flex-row' : 'flex-col', className ?? node.className), children: _jsx(GridChildren, { node: node, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: separatorVariant }) }));
82
+ return (_jsx(Group, { id: `${scope}:${node.id}`, orientation: node.direction, defaultLayout: defaultLayout, onLayoutChanged: onLayoutChanged, disabled: disabled, className: cn('flex', node.direction === 'horizontal' ? 'flex-row' : 'flex-col', className ?? node.className), children: _jsx(GridChildren, { node: node, scope: scope, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: separatorVariant }) }));
75
83
  }
76
- function GridChildren({ node, storageKey, disabled, withHandles, separatorVariant, }) {
84
+ function GridChildren({ node, scope, storageKey, disabled, withHandles, separatorVariant, }) {
77
85
  const showSeparators = node.resizable !== false;
78
86
  const variant = node.separatorVariant ?? separatorVariant;
79
- return (_jsx(_Fragment, { children: node.children.map((child, i) => (_jsx(GridCell, { child: child, direction: node.direction, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: variant, separatorBefore: i > 0 && showSeparators }, child.id))) }));
87
+ return (_jsx(_Fragment, { children: node.children.map((child, i) => (_jsx(GridCell, { child: child, scope: scope, direction: node.direction, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: variant, separatorBefore: i > 0 && showSeparators }, child.id))) }));
80
88
  }
81
- function GridCell({ child, direction, storageKey, disabled, withHandles, separatorVariant, separatorBefore, }) {
82
- return (_jsxs(_Fragment, { children: [separatorBefore && (_jsx(PanelSeparator, { direction: direction, disabled: disabled, variant: separatorVariant, withHandle: withHandles })), _jsx(Panel, { id: child.id, defaultSize: child.defaultSize, minSize: child.minSize, collapsible: true, collapsedSize: 0, className: cn('min-h-0 min-w-0', child.className), children: isSplit(child) ? (_jsx(GridSplit, { node: child, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: separatorVariant, className: 'h-full' })) : (child.content) })] }));
89
+ function GridCell({ child, scope, direction, storageKey, disabled, withHandles, separatorVariant, separatorBefore, }) {
90
+ return (_jsxs(_Fragment, { children: [separatorBefore && (_jsx(PanelSeparator, { direction: direction, disabled: disabled, variant: separatorVariant, withHandle: withHandles })), _jsx(Panel, { id: child.id, defaultSize: child.defaultSize, minSize: child.minSize, collapsible: true, collapsedSize: 0, className: cn('min-h-0 min-w-0', child.className), children: isSplit(child) ? (_jsx(GridSplit, { node: child, scope: scope, storageKey: storageKey, disabled: disabled, withHandles: withHandles, separatorVariant: separatorVariant, className: 'h-full' })) : (child.content) })] }));
83
91
  }
84
92
  //# sourceMappingURL=PanelGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PanelGrid.js","sourceRoot":"","sources":["../../../src/react/components/PanelGrid.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PanelGrid.js","sourceRoot":"","sources":["../../../src/react/components/PanelGrid.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,KAAK,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAClC,OAAO,EAAE,cAAc,EAA8B,MAAM,qBAAqB,CAAC;AA2EjF,SAAS,OAAO,CAAC,IAAmB;IAClC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/B,CAAC;AAED,SAAS,QAAQ,CAAC,IAAmB;IACnC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAM,UAAU,SAAS,CAAC,EACxB,IAAI,EACJ,UAAU,EACV,QAAQ,EACR,WAAW,GAAG,IAAI,EAClB,gBAAgB,GAAG,MAAM,EACzB,WAAW,GAAG,IAAI,EAClB,SAAS,EACT,GAAG,IAAI,EACQ;IACf,MAAM,QAAQ,GAAG,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACzD,kGAAkG;IAClG,+FAA+F;IAC/F,iGAAiG;IACjG,+FAA+F;IAC/F,4FAA4F;IAC5F,kGAAkG;IAClG,6FAA6F;IAC7F,MAAM,KAAK,GAAG,KAAK,EAAE,CAAC;IAEtB,IAAI,WAAW,IAAI,QAAQ,EAAE,CAAC;QAC5B,OAAO,CACL,iBAAS,IAAI,EAAE,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,SAAS,CAAC,YACrD,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACxB,cAAmB,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,YACxD,IAAI,CAAC,OAAO,IADL,IAAI,CAAC,EAAE,CAEX,CACP,CAAC,GACE,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,KAAC,SAAS,OACJ,IAAI,EACR,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC,GAClC,CACH,CAAC;AACJ,CAAC;AAaD,SAAS,SAAS,CAAC,KAAqB;IACtC,2EAA2E;IAC3E,gEAAgE;IAChE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAC,mBAAmB,OAAK,KAAK,GAAI,CAAC,CAAC,CAAC,KAAC,cAAc,OAAK,KAAK,GAAI,CAAC;AAC/F,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,IAAI,EACJ,KAAK,EACL,UAAU,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,SAAS,GACM;IACf,OAAO,CACL,KAAC,KAAK,IACJ,EAAE,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE,EACzB,WAAW,EAAE,IAAI,CAAC,SAAS,EAC3B,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,MAAM,EACN,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EACzD,SAAS,IAAI,IAAI,CAAC,SAAS,CAC5B,YAED,KAAC,YAAY,IACX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,GAClC,GACI,CACT,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,EAC3B,IAAI,EACJ,KAAK,EACL,UAAU,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,SAAS,GACM;IACf,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,GAAG,gBAAgB,CAAC;QAC1D,EAAE,EAAE,GAAG,UAAU,IAAI,IAAI,CAAC,EAAE,EAAE;QAC9B,6BAA6B,EAAE,IAAI;QACnC,OAAO,EAAE,YAAY;KACtB,CAAC,CAAC;IACH,OAAO,CACL,KAAC,KAAK,IACJ,EAAE,EAAE,GAAG,KAAK,IAAI,IAAI,CAAC,EAAE,EAAE,EACzB,WAAW,EAAE,IAAI,CAAC,SAAS,EAC3B,aAAa,EAAE,aAAa,EAC5B,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,EAAE,CACX,MAAM,EACN,IAAI,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EACzD,SAAS,IAAI,IAAI,CAAC,SAAS,CAC5B,YAED,KAAC,YAAY,IACX,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,GAClC,GACI,CACT,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,IAAI,EACJ,KAAK,EACL,UAAU,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,GACkB;IAClC,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;IAChD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,IAAI,gBAAgB,CAAC;IAC1D,OAAO,CACL,4BACG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAC/B,KAAC,QAAQ,IAEP,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,OAAO,EACzB,eAAe,EAAE,CAAC,GAAG,CAAC,IAAI,cAAc,IARnC,KAAK,CAAC,EAAE,CASb,CACH,CAAC,GACD,CACJ,CAAC;AACJ,CAAC;AAaD,SAAS,QAAQ,CAAC,EAChB,KAAK,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,eAAe,GACD;IACd,OAAO,CACL,8BACG,eAAe,IAAI,CAClB,KAAC,cAAc,IACb,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,WAAW,GACvB,CACH,EACD,KAAC,KAAK,IACJ,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,WAAW,QACX,aAAa,EAAE,CAAC,EAChB,SAAS,EAAE,EAAE,CAAC,iBAAiB,EAAE,KAAK,CAAC,SAAS,CAAC,YAEhD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAChB,KAAC,SAAS,IACR,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAC,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,CACF,KAAK,CAAC,OAAO,CACd,GACK,IACP,CACJ,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DenseGalleryShell.d.ts","sourceRoot":"","sources":["../../../src/react/media/DenseGalleryShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DenseGalleryShell.d.ts","sourceRoot":"","sources":["../../../src/react/media/DenseGalleryShell.tsx"],"names":[],"mappings":"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"}
@@ -64,6 +64,11 @@ rowExtraHeight, rootRef, ...rest }) {
64
64
  * bottom" whatever the arithmetic says.
65
65
  */
66
66
  const STAGE_SHARE = 0.58;
67
+ /**
68
+ * The shortest a PINNED frame is capped to, however little the window leaves it: a player's
69
+ * own control bar is most of this, and a frame shorter than its controls shows neither.
70
+ */
71
+ const PINNED_STAGE_FLOOR_PX = 96;
67
72
  /** The selected/detail view: a stage on top, titlebar + optional rail, related grid below. */
68
73
  export function DenseGalleryDetail({ stage, title, meta, actions, onStep, canStep = true, rail, stageHeight, sticky, relatedLabel, itemCount, renderTile, relatedBody, onNearEnd, loading, minColumnWidth = 160,
69
74
  // 🔴 Deliberately NOT defaulted here — see the prop's doc comment.
@@ -110,6 +115,7 @@ rowExtraHeight, fullStage: fullStageProp, onFullStageChange, stageOwnsDoubleClic
110
115
  return;
111
116
  const host = watchEl.parentElement ?? watchEl;
112
117
  let last = '';
118
+ let lastPin = null;
113
119
  const apply = () => {
114
120
  const available = host.clientHeight;
115
121
  if (!available)
@@ -167,9 +173,51 @@ rowExtraHeight, fullStage: fullStageProp, onFullStageChange, stageOwnsDoubleClic
167
173
  // Beside, the frame is measured against the SCROLLER itself: its parent also holds the
168
174
  // app's page header, and the whole point is that the picture fits the scroller's height.
169
175
  // Loop-free — the scroller's box is its parent's layout, not its content's.
176
+ /*
177
+ * 🔴 PINNED, the frame is capped so the whole band fits under the band's own ceiling.
178
+ *
179
+ * Owner, 2026-10-29, collections: *"I used the pin on a large video window and could no
180
+ * longer see the toolstrip or video controls until I used command + minus key to shrink
181
+ * the screen size to around 70%. It should keep the controls and tool strip visible at
182
+ * all sizes."* Pinned, `.cbgd-watch-top` is sticky with a `max-height` and clips what
183
+ * overflows it — the stylesheet's way of keeping files visible under it. A frame sized as
184
+ * if unpinned (a drag reaches 86% of the scroller) plus the resize rail and the titlebar
185
+ * ran past that ceiling, and the clip took the bottom of the picture, which is where the
186
+ * player's control bar is, and the titlebar under it.
187
+ *
188
+ * So the ceiling is READ from the stylesheet (one number, kept there) and the frame may
189
+ * take what the chrome leaves of it: `--cbgd-stage-pin`, which caps the dragged height
190
+ * below and the fit here. The chrome is measured from the region's top edge to the
191
+ * titlebar's bottom, never as the region's own height: clipped, that box is the ceiling,
192
+ * not its content. Loop-free for the reason the fit is — shrinking the frame moves the
193
+ * titlebar up by exactly as much. `e2e/pinned-stage.spec.ts` drags it tall and measures.
194
+ */
195
+ const titlebar = watchEl.querySelector('.cbgd-watch-titlebar');
196
+ const stackedChromePx = top && frame && titlebar && topStyle
197
+ ? Math.ceil(titlebar.getBoundingClientRect().bottom -
198
+ top.getBoundingClientRect().top -
199
+ frame.getBoundingClientRect().height +
200
+ Number.parseFloat(topStyle.paddingBottom))
201
+ : chromePx;
202
+ // `none` when unpinned or full-window (`.cbgd-watch-sticky.cbgd-watch-full`), which reads NaN:
203
+ // no pin. Full window resizes this scroller, so the observer re-reads it either way.
204
+ const ceilingPx = sticky && topStyle ? Number.parseFloat(topStyle.maxHeight) : Number.NaN;
205
+ const pinChromePx = beside ? chromePx : stackedChromePx;
206
+ const pin = Number.isFinite(ceilingPx)
207
+ ? `${Math.max(PINNED_STAGE_FLOOR_PX, Math.floor(ceilingPx - pinChromePx))}px`
208
+ : '';
209
+ if (pin !== lastPin) {
210
+ lastPin = pin;
211
+ if (pin)
212
+ watchEl.style.setProperty('--cbgd-stage-pin', pin);
213
+ else
214
+ watchEl.style.removeProperty('--cbgd-stage-pin');
215
+ }
216
+ // Clipped, the region's box under-reads the chrome; the stacked measure does not.
217
+ const fitChromePx = beside ? chromePx : chromePx > stackedChromePx ? chromePx : stackedChromePx;
170
218
  const room = beside ? watchEl.clientHeight : available;
171
- const usable = room > chromePx ? room - chromePx : 0;
172
- const fit = `min(${Math.round(usable * share)}px, var(--cbgd-stage-default))`;
219
+ const usable = room > fitChromePx ? room - fitChromePx : 0;
220
+ const fit = `min(${Math.round(usable * share)}px, var(--cbgd-stage-default)${pin ? `, ${pin}` : ''})`;
173
221
  if (fit === last)
174
222
  return;
175
223
  last = fit;
@@ -179,9 +227,13 @@ rowExtraHeight, fullStage: fullStageProp, onFullStageChange, stageOwnsDoubleClic
179
227
  observer.observe(host);
180
228
  if (host !== watchEl)
181
229
  observer.observe(watchEl);
230
+ // The titlebar too: its actions wrap with the width, and that is chrome the pin subtracts.
231
+ const titlebarEl = watchEl.querySelector('.cbgd-watch-titlebar');
232
+ if (titlebarEl)
233
+ observer.observe(titlebarEl);
182
234
  apply();
183
235
  return () => observer.disconnect();
184
- }, [watchEl]);
236
+ }, [watchEl, sticky]);
185
237
  /*
186
238
  * 🔴 Full-stage means FULL WINDOW — the browser window, not the plugin and not the screen.
187
239
  *
@@ -280,7 +332,12 @@ rowExtraHeight, fullStage: fullStageProp, onFullStageChange, stageOwnsDoubleClic
280
332
  containerPx: Math.max(0, (watchEl?.clientHeight ?? 0) - railPx),
281
333
  frameEl,
282
334
  });
283
- const effectiveStageHeight = dragHeight !== null ? `${dragHeight}px` : stageHeight;
335
+ const chosenStageHeight = dragHeight !== null ? `${dragHeight}px` : stageHeight;
336
+ // Pinned, a chosen height is still the height — up to what the pinned band can show (see
337
+ // `--cbgd-stage-pin` in the fit above). Unmeasured, the fallback is the height itself.
338
+ const effectiveStageHeight = chosenStageHeight && sticky && !fullStage
339
+ ? `min(${chosenStageHeight}, var(--cbgd-stage-pin, ${chosenStageHeight}))`
340
+ : chosenStageHeight;
284
341
  /*
285
342
  * 🔴 On a phone the action row is ONE line, and what does not fit FOLDS behind a toggle.
286
343
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DenseGalleryShell.js","sourceRoot":"","sources":["../../../src/react/media/DenseGalleryShell.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DenseGalleryShell.js","sourceRoot":"","sources":["../../../src/react/media/DenseGalleryShell.tsx"],"names":[],"mappings":"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"}
@@ -617,13 +617,20 @@
617
617
  line-height: 1;
618
618
  }
619
619
 
620
- /* Opt-in: pin the top region while the "More" grid scrolls under it. */
620
+ /* Opt-in: pin the top region while the "More" grid scrolls under it.
621
+ 🔴 `max-height` is the band's CEILING, and `DenseGalleryDetail` reads it: pinned, the frame is
622
+ capped at what the chrome leaves of it (`--cbgd-stage-pin`), so nothing is clipped — owner,
623
+ 2026-10-29: *"could no longer see the toolstrip or video controls"* (`e2e/pinned-stage.spec.ts`).
624
+ 🔴 `flex-shrink: 0` for the same report: `overflow: hidden` drops a flex item's automatic
625
+ minimum to 0, so in a short scroller the band — not `.cbgd-related`'s 160px floor — gave way,
626
+ and the cut took the titlebar. The scroller scrolls instead. */
621
627
  .cbgd-watch-sticky .cbgd-watch-top {
622
628
  position: sticky;
623
629
  top: 0;
624
630
  /* Sticky pinned region → the sticky band token (06 §1), not a raw literal. */
625
631
  z-index: var(--z-sticky);
626
632
  max-height: 70vh;
633
+ flex-shrink: 0;
627
634
  overflow: hidden;
628
635
  background: var(--background);
629
636
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cursedbelt",
3
- "version": "5.99.4",
3
+ "version": "5.99.6",
4
4
  "license": "ISC",
5
5
  "type": "module",
6
6
  "description": "The React design system of the cursedbelt split — components, styles, theme. cursedbelt-core below it; server tier in cursedbelt-server.",
@@ -90,6 +90,7 @@
90
90
  "demo:serve": "bun run demo:build && bun run scripts/demoServer.ts",
91
91
  "build": "rm -rf dist.next dist.prev && bun run scripts/generateStaticStyles.ts && bun run scripts/generateUtilityStyles.ts && bun run scripts/generateAreaStyles.ts && tsc --project tsconfig.build.json --outDir dist.next && tsc --project tsconfig.scripts.build.json --outDir dist.next/scripts && CURSEDBELT_DIST_DIR=dist.next bun run scripts/copyDistAssets.ts && CURSEDBELT_DIST_DIR=dist.next bun run scripts/checkDistExports.ts &&{ [ -d dist ] && mv dist dist.prev || true; } && mv dist.next dist && rm -rf dist.prev",
92
92
  "e2e": "playwright test --config e2e/playwright.config.ts",
93
+ "test:browser:smoke": "playwright test --config e2e/playwright.config.ts smoke.spec.ts --project=chromium",
93
94
  "e2e:filter-rail": "playwright test --config e2e/playwright.config.ts filter-rail.spec.ts",
94
95
  "e2e:table-layout": "playwright test --config e2e/playwright.config.ts table-layout.spec.ts",
95
96
  "e2e:stage-layout": "playwright test --config e2e/playwright.config.ts stage-layout.spec.ts",
@@ -965,7 +966,7 @@
965
966
  "@vidstack/react": "1.15.6",
966
967
  "@vitejs/plugin-react": "^5.2.0",
967
968
  "cursedbelt-server": "^4.43.1",
968
- "cursedops": "^0.22.0",
969
+ "cursedops": "^0.23.0",
969
970
  "diff": "^9.0.0",
970
971
  "emoji-mart": "^5.6.0",
971
972
  "hls.js": "^1.5.0",
@@ -1076,12 +1077,21 @@
1076
1077
  "why": "stylesStaticMatches / stylesUtilitiesMatches read those two files and assert they are current",
1077
1078
  "timeoutSec": 300
1078
1079
  },
1080
+ {
1081
+ "script": "test:browser:smoke",
1082
+ "needs": [
1083
+ "styles"
1084
+ ],
1085
+ "why": "the one browser proof every verify keeps (forge task 3981): the built kitchen sink boots, renders its first sections and logs no console error. Behind styles because the demo bundle is compiled from those stylesheets"
1086
+ }
1087
+ ],
1088
+ "deferred": [
1079
1089
  {
1080
1090
  "script": "e2e",
1081
1091
  "needs": [
1082
1092
  "styles"
1083
1093
  ],
1084
- "why": "the demo bundle it drives is compiled from the same stylesheets"
1094
+ "why": "the whole kitchen-sink suite — 60 specs, ~127 s, the slowest stage in the generation. The queue's suite job runs it after landing (verify --full here), and prepublishOnly's --force runs it before any publish. Behind styles because the demo bundle it drives is compiled from the same stylesheets"
1085
1095
  }
1086
1096
  ]
1087
1097
  }
@@ -14,8 +14,11 @@ import {
14
14
  } from '../demo/devServer.js';
15
15
  import { DEMO_TSCONFIG, derivePaths, readDemoTsconfig, renderPathsBlock } from '../demo/generatePaths.js';
16
16
  import pkg from '../package.json';
17
- // The declared graph, read as data — there is no scheduler in this repo to import from.
18
- const STAGES: readonly { script: string }[] = (pkg as { gate?: { stages?: { script: string }[] } }).gate?.stages ?? [];
17
+ // The declared graph, read as data — there is no scheduler in this repo to import from. Both halves:
18
+ // `e2e` is the deferred half since forge task 3981, which `verify --full`, the queue's suite job and a
19
+ // publish's `--force` run — `verifyGraph.spec.ts` pins which half it sits in.
20
+ const GATE = (pkg as { gate?: { stages?: { script: string }[]; deferred?: { script: string }[] } }).gate;
21
+ const STAGES: readonly { script: string }[] = [...(GATE?.stages ?? []), ...(GATE?.deferred ?? [])];
19
22
 
20
23
  /**
21
24
  * 🔴 The e2e suite must never be able to sit green while it drives nothing.
@@ -159,7 +162,7 @@ describe('the e2e fixture exists', () => {
159
162
  // is still in it, which the `toInclude` never checked for any of them.
160
163
  expect(
161
164
  STAGES.map((s) => s.script),
162
- '`verify` must still run the e2e suite',
165
+ 'the gate (`verify --full`) must still run the e2e suite',
163
166
  ).toContain('e2e');
164
167
  expect(pkg.scripts.e2e).toInclude('e2e/playwright.config.ts');
165
168
  });
@@ -1,4 +1,4 @@
1
- import { type ReactNode, useMemo } from 'react';
1
+ import { type ReactNode, useId, useMemo } from 'react';
2
2
  import { Group, Panel, useDefaultLayout } from 'react-resizable-panels';
3
3
  import { useMediaQuery } from '../hooks/useMediaQuery.js';
4
4
  import { cn } from '../lib/cn.js';
@@ -29,7 +29,10 @@ export interface PanelGridLeaf {
29
29
  /** A split — lays its children out along `direction` with dividers between them. */
30
30
  export interface PanelGridSplit {
31
31
  type: 'split';
32
- /** Unique within the whole grid — namespaces the persisted layout of this group. */
32
+ /**
33
+ * Unique within the whole grid — namespaces the persisted layout of this group. It need not be
34
+ * unique on the PAGE: the library's group is registered as `<this grid's useId()>:<id>`.
35
+ */
33
36
  id: string;
34
37
  /** 'horizontal' = children side-by-side; 'vertical' = children stacked. */
35
38
  direction: 'horizontal' | 'vertical';
@@ -133,6 +136,14 @@ export function PanelGrid({
133
136
  }: PanelGridProps) {
134
137
  const isMobile = useMediaQuery('(max-width: 639px)');
135
138
  const flatLeaves = useMemo(() => leavesOf(root), [root]);
139
+ // 🔴 react-resizable-panels keys its group registry by `id` ACROSS THE DOCUMENT, and each Group's
140
+ // listener takes every change made under its id. `SplitPane` gave every instance the same root
141
+ // id, `'root'`, so two on one page heard each other's layouts: a collapsible panel looked itself
142
+ // up in the other group's layout, found nothing, and `toFixed` threw out of a ResizeObserver —
143
+ // before the listener applied the new layout (forge task 3981, caught by the kitchen sink's
144
+ // `test:browser:smoke`). It also put a second `id="root"` in the DOM beside the app's mount node.
145
+ // Each grid instance scopes its groups; the persisted key stays `${storageKey}:${split.id}`.
146
+ const scope = useId();
136
147
 
137
148
  if (mobileStack && isMobile) {
138
149
  return (
@@ -150,6 +161,7 @@ export function PanelGrid({
150
161
  <GridSplit
151
162
  {...rest}
152
163
  node={root}
164
+ scope={scope}
153
165
  storageKey={storageKey}
154
166
  disabled={disabled}
155
167
  withHandles={withHandles}
@@ -161,6 +173,8 @@ export function PanelGrid({
161
173
 
162
174
  interface GridSplitProps {
163
175
  node: PanelGridSplit;
176
+ /** This grid instance's `useId()` — prefixes every Group id so two grids never share one. */
177
+ scope: string;
164
178
  storageKey: string | undefined;
165
179
  disabled: boolean | undefined;
166
180
  withHandles: boolean;
@@ -176,6 +190,7 @@ function GridSplit(props: GridSplitProps) {
176
190
 
177
191
  function PlainGridSplit({
178
192
  node,
193
+ scope,
179
194
  storageKey,
180
195
  disabled,
181
196
  withHandles,
@@ -184,7 +199,7 @@ function PlainGridSplit({
184
199
  }: GridSplitProps) {
185
200
  return (
186
201
  <Group
187
- id={node.id}
202
+ id={`${scope}:${node.id}`}
188
203
  orientation={node.direction}
189
204
  disabled={disabled}
190
205
  className={cn(
@@ -195,6 +210,7 @@ function PlainGridSplit({
195
210
  >
196
211
  <GridChildren
197
212
  node={node}
213
+ scope={scope}
198
214
  storageKey={storageKey}
199
215
  disabled={disabled}
200
216
  withHandles={withHandles}
@@ -206,6 +222,7 @@ function PlainGridSplit({
206
222
 
207
223
  function PersistentGridSplit({
208
224
  node,
225
+ scope,
209
226
  storageKey,
210
227
  disabled,
211
228
  withHandles,
@@ -219,7 +236,7 @@ function PersistentGridSplit({
219
236
  });
220
237
  return (
221
238
  <Group
222
- id={node.id}
239
+ id={`${scope}:${node.id}`}
223
240
  orientation={node.direction}
224
241
  defaultLayout={defaultLayout}
225
242
  onLayoutChanged={onLayoutChanged}
@@ -232,6 +249,7 @@ function PersistentGridSplit({
232
249
  >
233
250
  <GridChildren
234
251
  node={node}
252
+ scope={scope}
235
253
  storageKey={storageKey}
236
254
  disabled={disabled}
237
255
  withHandles={withHandles}
@@ -243,6 +261,7 @@ function PersistentGridSplit({
243
261
 
244
262
  function GridChildren({
245
263
  node,
264
+ scope,
246
265
  storageKey,
247
266
  disabled,
248
267
  withHandles,
@@ -256,6 +275,7 @@ function GridChildren({
256
275
  <GridCell
257
276
  key={child.id}
258
277
  child={child}
278
+ scope={scope}
259
279
  direction={node.direction}
260
280
  storageKey={storageKey}
261
281
  disabled={disabled}
@@ -270,6 +290,7 @@ function GridChildren({
270
290
 
271
291
  interface GridCellProps {
272
292
  child: PanelGridNode;
293
+ scope: string;
273
294
  direction: 'horizontal' | 'vertical';
274
295
  storageKey: string | undefined;
275
296
  disabled: boolean | undefined;
@@ -280,6 +301,7 @@ interface GridCellProps {
280
301
 
281
302
  function GridCell({
282
303
  child,
304
+ scope,
283
305
  direction,
284
306
  storageKey,
285
307
  disabled,
@@ -308,6 +330,7 @@ function GridCell({
308
330
  {isSplit(child) ? (
309
331
  <GridSplit
310
332
  node={child}
333
+ scope={scope}
311
334
  storageKey={storageKey}
312
335
  disabled={disabled}
313
336
  withHandles={withHandles}
@@ -32,6 +32,23 @@ describe('SplitPane', () => {
32
32
  expect(getByText('Panel C')).toBeTruthy();
33
33
  });
34
34
 
35
+ // 🔴 forge task 3981: every SplitPane registered its group as `'root'`, and react-resizable-panels
36
+ // keys groups by id across the document — two on one page heard each other's layouts and threw
37
+ // `toFixed` of undefined out of a ResizeObserver (the kitchen sink's `test:browser:smoke`), and the
38
+ // page carried a second `id="root"` beside the app's mount node.
39
+ test('two SplitPanes on one page register distinct groups, and neither is id="root"', () => {
40
+ const { container } = render(
41
+ <>
42
+ <SplitPane panels={TWO_PANELS} />
43
+ <SplitPane panels={THREE_PANELS} />
44
+ </>,
45
+ );
46
+ const ids = [...container.querySelectorAll('[data-group]')].map((g) => g.id);
47
+ expect(ids).toHaveLength(2);
48
+ expect(new Set(ids).size).toBe(2);
49
+ expect(container.querySelector('#root')).toBeNull();
50
+ });
51
+
35
52
  test('horizontal layout: Group gets flex-row class', () => {
36
53
  const { container } = render(<SplitPane panels={TWO_PANELS} />);
37
54
  const group = container.querySelector('[data-group]');
@@ -462,6 +462,12 @@ export interface DenseGalleryDetailProps {
462
462
  */
463
463
  const STAGE_SHARE = 0.58;
464
464
 
465
+ /**
466
+ * The shortest a PINNED frame is capped to, however little the window leaves it: a player's
467
+ * own control bar is most of this, and a frame shorter than its controls shows neither.
468
+ */
469
+ const PINNED_STAGE_FLOOR_PX = 96;
470
+
465
471
  /** The selected/detail view: a stage on top, titlebar + optional rail, related grid below. */
466
472
  export function DenseGalleryDetail({
467
473
  stage,
@@ -531,6 +537,7 @@ export function DenseGalleryDetail({
531
537
  if (!watchEl || typeof ResizeObserver === 'undefined') return;
532
538
  const host = watchEl.parentElement ?? watchEl;
533
539
  let last = '';
540
+ let lastPin: string | null = null;
534
541
  const apply = () => {
535
542
  const available = host.clientHeight;
536
543
  if (!available) return; // unmeasurable — the stylesheet's default stands
@@ -591,9 +598,52 @@ export function DenseGalleryDetail({
591
598
  // Beside, the frame is measured against the SCROLLER itself: its parent also holds the
592
599
  // app's page header, and the whole point is that the picture fits the scroller's height.
593
600
  // Loop-free — the scroller's box is its parent's layout, not its content's.
601
+ /*
602
+ * 🔴 PINNED, the frame is capped so the whole band fits under the band's own ceiling.
603
+ *
604
+ * Owner, 2026-10-29, collections: *"I used the pin on a large video window and could no
605
+ * longer see the toolstrip or video controls until I used command + minus key to shrink
606
+ * the screen size to around 70%. It should keep the controls and tool strip visible at
607
+ * all sizes."* Pinned, `.cbgd-watch-top` is sticky with a `max-height` and clips what
608
+ * overflows it — the stylesheet's way of keeping files visible under it. A frame sized as
609
+ * if unpinned (a drag reaches 86% of the scroller) plus the resize rail and the titlebar
610
+ * ran past that ceiling, and the clip took the bottom of the picture, which is where the
611
+ * player's control bar is, and the titlebar under it.
612
+ *
613
+ * So the ceiling is READ from the stylesheet (one number, kept there) and the frame may
614
+ * take what the chrome leaves of it: `--cbgd-stage-pin`, which caps the dragged height
615
+ * below and the fit here. The chrome is measured from the region's top edge to the
616
+ * titlebar's bottom, never as the region's own height: clipped, that box is the ceiling,
617
+ * not its content. Loop-free for the reason the fit is — shrinking the frame moves the
618
+ * titlebar up by exactly as much. `e2e/pinned-stage.spec.ts` drags it tall and measures.
619
+ */
620
+ const titlebar = watchEl.querySelector('.cbgd-watch-titlebar');
621
+ const stackedChromePx =
622
+ top && frame && titlebar && topStyle
623
+ ? Math.ceil(
624
+ titlebar.getBoundingClientRect().bottom -
625
+ top.getBoundingClientRect().top -
626
+ frame.getBoundingClientRect().height +
627
+ Number.parseFloat(topStyle.paddingBottom),
628
+ )
629
+ : chromePx;
630
+ // `none` when unpinned or full-window (`.cbgd-watch-sticky.cbgd-watch-full`), which reads NaN:
631
+ // no pin. Full window resizes this scroller, so the observer re-reads it either way.
632
+ const ceilingPx = sticky && topStyle ? Number.parseFloat(topStyle.maxHeight) : Number.NaN;
633
+ const pinChromePx = beside ? chromePx : stackedChromePx;
634
+ const pin = Number.isFinite(ceilingPx)
635
+ ? `${Math.max(PINNED_STAGE_FLOOR_PX, Math.floor(ceilingPx - pinChromePx))}px`
636
+ : '';
637
+ if (pin !== lastPin) {
638
+ lastPin = pin;
639
+ if (pin) watchEl.style.setProperty('--cbgd-stage-pin', pin);
640
+ else watchEl.style.removeProperty('--cbgd-stage-pin');
641
+ }
642
+ // Clipped, the region's box under-reads the chrome; the stacked measure does not.
643
+ const fitChromePx = beside ? chromePx : chromePx > stackedChromePx ? chromePx : stackedChromePx;
594
644
  const room = beside ? watchEl.clientHeight : available;
595
- const usable = room > chromePx ? room - chromePx : 0;
596
- const fit = `min(${Math.round(usable * share)}px, var(--cbgd-stage-default))`;
645
+ const usable = room > fitChromePx ? room - fitChromePx : 0;
646
+ const fit = `min(${Math.round(usable * share)}px, var(--cbgd-stage-default)${pin ? `, ${pin}` : ''})`;
597
647
  if (fit === last) return;
598
648
  last = fit;
599
649
  watchEl.style.setProperty('--cbgd-stage-fit', fit);
@@ -601,9 +651,12 @@ export function DenseGalleryDetail({
601
651
  const observer = new ResizeObserver(apply);
602
652
  observer.observe(host);
603
653
  if (host !== watchEl) observer.observe(watchEl);
654
+ // The titlebar too: its actions wrap with the width, and that is chrome the pin subtracts.
655
+ const titlebarEl = watchEl.querySelector('.cbgd-watch-titlebar');
656
+ if (titlebarEl) observer.observe(titlebarEl);
604
657
  apply();
605
658
  return () => observer.disconnect();
606
- }, [watchEl]);
659
+ }, [watchEl, sticky]);
607
660
  /*
608
661
  * 🔴 Full-stage means FULL WINDOW — the browser window, not the plugin and not the screen.
609
662
  *
@@ -710,7 +763,13 @@ export function DenseGalleryDetail({
710
763
  frameEl,
711
764
  });
712
765
 
713
- const effectiveStageHeight = dragHeight !== null ? `${dragHeight}px` : stageHeight;
766
+ const chosenStageHeight = dragHeight !== null ? `${dragHeight}px` : stageHeight;
767
+ // Pinned, a chosen height is still the height — up to what the pinned band can show (see
768
+ // `--cbgd-stage-pin` in the fit above). Unmeasured, the fallback is the height itself.
769
+ const effectiveStageHeight =
770
+ chosenStageHeight && sticky && !fullStage
771
+ ? `min(${chosenStageHeight}, var(--cbgd-stage-pin, ${chosenStageHeight}))`
772
+ : chosenStageHeight;
714
773
 
715
774
  /*
716
775
  * 🔴 On a phone the action row is ONE line, and what does not fit FOLDS behind a toggle.
@@ -617,13 +617,20 @@
617
617
  line-height: 1;
618
618
  }
619
619
 
620
- /* Opt-in: pin the top region while the "More" grid scrolls under it. */
620
+ /* Opt-in: pin the top region while the "More" grid scrolls under it.
621
+ 🔴 `max-height` is the band's CEILING, and `DenseGalleryDetail` reads it: pinned, the frame is
622
+ capped at what the chrome leaves of it (`--cbgd-stage-pin`), so nothing is clipped — owner,
623
+ 2026-10-29: *"could no longer see the toolstrip or video controls"* (`e2e/pinned-stage.spec.ts`).
624
+ 🔴 `flex-shrink: 0` for the same report: `overflow: hidden` drops a flex item's automatic
625
+ minimum to 0, so in a short scroller the band — not `.cbgd-related`'s 160px floor — gave way,
626
+ and the cut took the titlebar. The scroller scrolls instead. */
621
627
  .cbgd-watch-sticky .cbgd-watch-top {
622
628
  position: sticky;
623
629
  top: 0;
624
630
  /* Sticky pinned region → the sticky band token (06 §1), not a raw literal. */
625
631
  z-index: var(--z-sticky);
626
632
  max-height: 70vh;
633
+ flex-shrink: 0;
627
634
  overflow: hidden;
628
635
  background: var(--background);
629
636
  }
@@ -40,8 +40,18 @@ interface Stage {
40
40
  why?: string;
41
41
  }
42
42
 
43
- /** The declared graph, read as data. There is no import of the scheduler to drift from. */
44
- const STAGES: readonly Stage[] = (pkg as { gate?: { stages?: Stage[] } }).gate?.stages ?? [];
43
+ const GATE = (pkg as { gate?: { stages?: Stage[]; deferred?: Stage[] } }).gate;
44
+
45
+ /**
46
+ * The declared graph, read as data — BOTH halves. There is no import of the scheduler to drift from.
47
+ *
48
+ * 🔴 Since 2026-10-29 (forge task 3981) `e2e` sits in `gate.deferred`: plain `verify` runs `stages`
49
+ * and the one `test:browser:smoke` spec, while `verify --full` — the queue's `suite` job after
50
+ * landing — and `--force` run the deferred half too. Moving a stage there is not removing it, so the
51
+ * stage-set floor below reads both halves; what it must never be is in NEITHER.
52
+ */
53
+ const STAGES: readonly Stage[] = [...(GATE?.stages ?? []), ...(GATE?.deferred ?? [])];
54
+ const DEFERRED: readonly string[] = (GATE?.deferred ?? []).map((s) => s.script);
45
55
 
46
56
  /**
47
57
  * What `verify` ran before it became a graph, expanded to the leaf scripts.
@@ -118,6 +128,18 @@ describe('the verify graph', () => {
118
128
  // never let them be replaced. `--force` is the re-roll.
119
129
  expect(pkg.scripts.prepublishOnly).toInclude('--force');
120
130
  });
131
+
132
+ it('🔴 e2e is deferred, never dropped — and a publish still runs it', () => {
133
+ // `$FORGE/tools/gate.ts` → `runnable(spec, full)`: `--force` implies `--full`, which is the
134
+ // deferred half joining the graph. So the `--force` above is also what makes a publish run
135
+ // `e2e`; this pins that the suite is in the half `--force` reaches, and that `verify` keeps
136
+ // the one browser proof check-gate-graph rule 9 asks of a repo deferring its browser suite.
137
+ expect(DEFERRED).toContain('e2e');
138
+ expect(pkg.scripts.gate).not.toInclude('--full');
139
+ const smoke = (GATE?.stages ?? []).find((s) => s.script === 'test:browser:smoke');
140
+ expect(smoke, '`verify` must keep `test:browser:smoke` in `stages`').toBeTruthy();
141
+ expect((pkg.scripts as Record<string, string | undefined>)['test:browser:smoke']).toInclude('smoke.spec.ts');
142
+ });
121
143
  });
122
144
 
123
145
  describe('the two edges the graph rests on', () => {
@@ -126,7 +148,7 @@ describe('the two edges the graph rests on', () => {
126
148
  // stylesStaticMatches.spec.ts and stylesUtilitiesMatches.spec.ts assert those exact files
127
149
  // are current, and the demo bundle e2e drives is compiled from them. Any of those three
128
150
  // running beside the generators is a writer racing a reader.
129
- for (const script of ['build', 'test', 'e2e']) {
151
+ for (const script of ['build', 'test', 'e2e', 'test:browser:smoke']) {
130
152
  const stage = STAGES.find((s) => s.script === script);
131
153
  expect(stage?.needs, `\`${script}\` must wait for \`styles\``).toContain('styles');
132
154
  // 🔴 And it must say WHY. An edge nobody can explain is an edge nobody can safely