You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat(plugin-form,plugin-view): consume adaptive record surface + semantic span; fix#2515 (#2578)
Step 2 (objectui renderer) of #2578:
- autoLayout: resolveColSpan — span-aware (`span:'full'` → whole row), clamps a
legacy colSpan to the current grid (never overflows), and lays each section
out at its own column density. applyAutoColSpan gains a `sectionColumns` arg.
- ObjectForm (simple/grouped path): honour per-section `columns` within the
shared form grid, and carry `span`/`colSpan` from section field defs — fixes#2515 (section.columns was ignored; grouped fields rendered single-column).
- FormField.span ('auto'|'full') added to @object-ui/types; carried through
sectionFields.
- ObjectView: default the record surface from field count via a local
deriveRecordSurface mirror (field-heavy → full page; mobile → page); explicit
schema.layout / navigation config still wins. Consolidate to the
@objectstack/spec export when objectui adopts spec >= 11.10.
autoLayout 43 tests (16 new); plugin-form 173 tests green; changed files type-clean.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(app-shell): auto full-page record surface for field-heavy objects in the console (#2578)
The console renders app-shell's ObjectView, which owns the record-detail
surface (defaulted to 'drawer'). Wire deriveRecordSurface so a FIELD-HEAVY
object's record peek defaults to a full page — automating the "a heavy detail
object can set navigation.mode = 'page'" note the code already carried — while
light objects keep the drawer peek. An authored view/object `navigation` still
wins. Also export deriveRecordSurface from @object-ui/plugin-view.
Browser-verified against a live showcase server: field_zoo (57 fields) row-click
navigates to a full /record page; product (6 fields) opens a drawer overlay.
turbo type-check green (29/29).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* feat(plugin-form,plugin-view,app-shell): responsive column cap + runtime overlay width (#2578)
- inferColumns: scale the column CAP with field count (<=3->1, <=8->2, <=15->3,
16+->4). The cap is an upper bound; CSS container queries pick the ACTUAL
column count from the form's real width, so the same form goes 1->2->3->4
columns as a drawer widens or becomes a page.
- recordSurface: deriveOverlaySize + overlayWidthFor — map a size bucket (or
'auto' from field count) to a viewport-clamped width min(cap, 92vw). Consumes
spec NavigationConfig.size (no inert key).
- app-shell ObjectView: detailNavigation resolves size->width at runtime; the
auto drawer is sized to the content. Authored navigation still wins.
- types: ViewNavigationConfig.size.
autoLayout 43 tests; turbo type-check 29/29.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* docs(changeset): adaptive record surface + span + responsive columns (framework#2578)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
0 commit comments