diff --git a/.changeset/drawer-bucket-pointer-ruling.md b/.changeset/drawer-bucket-pointer-ruling.md new file mode 100644 index 0000000000..8b3aaa773c --- /dev/null +++ b/.changeset/drawer-bucket-pointer-ruling.md @@ -0,0 +1,25 @@ +--- +--- + +Comment text only, zero-pixel: the record-drawer `size: 'lg'` bucket question is +recorded as ruled, and the three in-code pointers stop naming closed cards as its +open home. + +`ObjectKanban`, `ObjectCalendar` and `ObjectGantt` each carried a comment saying +the bucket question "stays open" on objectui#6303 / objectui#6259. Both cards had +closed, so the pointer chain terminated on closed cards and the question it +pointed at was tracked nowhere. It has since been ruled: objectui#6584, +2026-08-27 — the record-navigation drawer stays on the CSS literal, with no +convergence on the `size: 'lg'` bucket, because that bucket (`min(92vw, 960px)`) +is up to 53% wider below a 1600px viewport and there was no demand for the +change. + +The three comments now cite objectui#6584 and state the ruling and its date. The +measurement prose they carry (`min(92vw, 960px)` vs `min(960px, 60vw)`) is kept +verbatim — it is still true and it is the reason the ruling went the way it did. +`RecordDetailDrawer`'s `width` docblock, the single code home of the literal that +all three renderers fall through to, gains the same note so the record lives at +the line a future editor would actually change. + +No published behaviour changes: no default, `width` expression, `size` prop or +runtime value is touched. diff --git a/packages/plugin-calendar/src/ObjectCalendar.tsx b/packages/plugin-calendar/src/ObjectCalendar.tsx index 5dead55eb3..da01968331 100644 --- a/packages/plugin-calendar/src/ObjectCalendar.tsx +++ b/packages/plugin-calendar/src/ObjectCalendar.tsx @@ -478,8 +478,13 @@ export const ObjectCalendar: React.FC = ({ // // Deliberately NOT converged on `size: 'lg'` either: that bucket is // `min(92vw, 960px)`, which agrees with the above only at viewport >= 1600px - // and is up to 53% wider below it. That move is a real behaviour change and - // stays open on #6303 for a human ruling. + // and is up to 53% wider below it. That move is a real behaviour change, and + // it was RULED AGAINST: objectui#6584, 2026-08-27 — stays on the CSS + // literal; no bucket convergence. All four surfaces (gantt, kanban, + // calendar, RecordDetailDrawer) keep today's pixels. The question is + // CLOSED, not open — do not re-open it as a cleanup. If bucket-vocabulary + // unification ever becomes a product direction that is a fresh ruling, + // with visual-regression evidence across all four surfaces in one stroke. const navConfig = (schema as any).navigation ?? { mode: 'drawer' }; const navIsOverlay = navConfig.mode === 'drawer' || navConfig.mode === 'modal' || navConfig.mode === 'split' || navConfig.mode === 'popover'; const navigation = useNavigationOverlay({ diff --git a/packages/plugin-detail/src/RecordDetailDrawer.tsx b/packages/plugin-detail/src/RecordDetailDrawer.tsx index da15724a89..81e41d75c0 100644 --- a/packages/plugin-detail/src/RecordDetailDrawer.tsx +++ b/packages/plugin-detail/src/RecordDetailDrawer.tsx @@ -77,6 +77,15 @@ export interface RecordDetailDrawerProps { * `min(960px, 60vw)` which fills ~60% of typical desktop viewports * (the prior `max-w-2xl` cap felt cramped on wide screens). * + * That default is the single code home of the literal repo-wide: the + * gantt, kanban and calendar renderers deliberately spell no width and + * let `undefined` fall through to here. Converging it on the `size: 'lg'` + * bucket (`min(92vw, 960px)` — up to 53% wider below a 1600px viewport) + * was RULED AGAINST: objectui#6584, 2026-08-27 — stays on the CSS + * literal; no bucket convergence. The question is CLOSED, not open. A + * future move to the bucket is a fresh ruling, with visual-regression + * evidence across all four surfaces in one stroke. + * * Note: when `resizable` is true (the default), this is only used * as the initial width — the user's drag-resized width takes over * and is persisted to localStorage keyed by `objectName`. diff --git a/packages/plugin-gantt/src/ObjectGantt.tsx b/packages/plugin-gantt/src/ObjectGantt.tsx index b8e552ad06..677650a239 100644 --- a/packages/plugin-gantt/src/ObjectGantt.tsx +++ b/packages/plugin-gantt/src/ObjectGantt.tsx @@ -1322,8 +1322,14 @@ export const ObjectGantt: React.FC = ({ // Deliberately NOT converged on `size: 'lg'`: that bucket is // `min(92vw, 960px)`, which agrees with the above only at viewport >= // 1600px and is up to 53% wider below it. Whether the renderers should move - // to the bucket is open (#6259), and spans kanban/calendar/RecordDetailDrawer - // as one decision (#6303). + // to the bucket was asked here (#6259) and then carried across + // kanban/calendar/RecordDetailDrawer as one decision (#6303); both of those + // cards closed on their `width` half, and the bucket half was RULED AGAINST + // on its own card: objectui#6584, 2026-08-27 — stays on the CSS literal; no + // bucket convergence. All four surfaces keep today's pixels. The question is + // CLOSED, not open — do not re-open it as a cleanup. If bucket-vocabulary + // unification ever becomes a product direction that is a fresh ruling, with + // visual-regression evidence across all four surfaces in one stroke. const navConfig = schema.navigation ?? { mode: 'drawer' }; const navIsOverlay = navConfig.mode === 'drawer' || navConfig.mode === 'modal' || navConfig.mode === 'split' || navConfig.mode === 'popover'; const navigation = useNavigationOverlay({ diff --git a/packages/plugin-kanban/src/ObjectKanban.tsx b/packages/plugin-kanban/src/ObjectKanban.tsx index ace66b9604..1609c92139 100644 --- a/packages/plugin-kanban/src/ObjectKanban.tsx +++ b/packages/plugin-kanban/src/ObjectKanban.tsx @@ -708,8 +708,13 @@ export const ObjectKanban: React.FC = ({ // // Deliberately NOT converged on `size: 'lg'` either: that bucket is // `min(92vw, 960px)`, which agrees with the above only at viewport >= 1600px - // and is up to 53% wider below it. That move is a real behaviour change and - // stays open on #6303 for a human ruling. + // and is up to 53% wider below it. That move is a real behaviour change, and + // it was RULED AGAINST: objectui#6584, 2026-08-27 — stays on the CSS + // literal; no bucket convergence. All four surfaces (gantt, kanban, + // calendar, RecordDetailDrawer) keep today's pixels. The question is + // CLOSED, not open — do not re-open it as a cleanup. If bucket-vocabulary + // unification ever becomes a product direction that is a fresh ruling, + // with visual-regression evidence across all four surfaces in one stroke. const navConfig = (schema as any).navigation ?? { mode: 'drawer' }; // When this kanban is embedded in an ObjectView, the parent provides // `onRowClick`/`onCardClick` and owns the unified record-detail overlay.