Skip to content

feat(spec): ADR-0047 — interface/list pages get a lean, relevant config form#1817

Merged
xuyushun441-sys merged 1 commit into
mainfrom
feat/adr-0047-interface-form-tidy
Jun 13, 2026
Merged

feat(spec): ADR-0047 — interface/list pages get a lean, relevant config form#1817
xuyushun441-sys merged 1 commit into
mainfrom
feat/adr-0047-interface-form-tidy

Conversation

@xuyushun441-sys

Copy link
Copy Markdown
Contributor

Why

On an interface/list page, the page editor showed the full generic page form — page type/template, Data Context (object/variables), and the region designer (Layout) — none of which apply to a curated list surface. The interface config was buried at the bottom with raw inputs.

This reorganises page.form.ts (the form layout served via /meta) so a list page gets only the relevant, well-ordered controls. Pairs with the objectui renderer PR (collapsible sections + multi-select widget).

Changes (packages/spec/src/ui/page.form.ts)

  • Data Context and Layout sections gain visibleOn: "data.type != 'list'" — hidden for list/interface pages (the region designer and page-level object don't apply).
  • Interface (list pages) section: collapsed: false (primary content for a list page, still collapsible), name for i18n.
  • interfaceConfig sub-fields reordered — common authoring controls first (source, sourceView, appearance, userFilters, userActions, addRecord, showRecordCount), rarely-used last (filterBy, levels, allowPrinting); source gets the ref:object picker; added helpText throughout.
  • type field helpText notes that list = interface page.

Form-definition only — no schema/runtime change. Requires pnpm --filter @objectstack/spec build.

Verification

Built the spec dist and served it from a local showcase backend; confirmed via /api/v1/meta that the page form now carries the visibleOn/collapsed/ordering above. The objectui renderer (companion PR) honours these flags — covered by component tests there.

🤖 Generated with Claude Code

… section prominent

Page form (page.form.ts) reorg so interface/list pages get a lean,
relevant panel instead of the generic page-form dump:
  • Data Context + Layout sections gain visibleOn data.type != 'list'
    (region designer / page object don't apply to a list surface)
  • Interface section: collapsed:false (primary content), name for i18n
  • interfaceConfig sub-fields reordered (common first, rare last);
    source gets the ref:object picker; sourceView/userActions/etc. helpText
  • type field helpText notes 'list' = interface page

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
spec Ready Ready Preview, Comment Jun 13, 2026 2:33pm

Request Review

@xuyushun441-sys
xuyushun441-sys merged commit 0d7ee8b into main Jun 13, 2026
12 checks passed
@xuyushun441-sys
xuyushun441-sys deleted the feat/adr-0047-interface-form-tidy branch June 13, 2026 14:39
os-zhuang added a commit that referenced this pull request Jun 20, 2026
…2072)

The landing KPIs all rendered with the neutral grey icon (object-metric's
default colorVariant) and an empty card bottom, which read flat. Opt them
into the metric palette and add a one-line sublabel so the tiles are colorful
and informative:
  • Home — Projects (blue), Tasks (purple), Accounts (teal), Open Tasks (amber)
  • My Work — Open Tasks (blue), In Review (amber), At-Risk (rose)
Each gains a description (active & planned / not done / awaiting review / …)
that fills the previously-empty space. Pairs with objectui #1817
(tabular-nums on the metric value).

Browser-verified on :5181.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants