75 lines
5.5 KiB
Markdown
75 lines
5.5 KiB
Markdown
# Shared WebUI Primitive Inventory
|
|
|
|
This 2026-08-18 inventory records the implementation state after the
|
|
product-wide structural consolidation and second duplicate-rule audit. It is
|
|
evidence for enforcement, not a substitute for the normative
|
|
[interface pattern language](../architecture/INTERFACE_PATTERN_LANGUAGE.md).
|
|
|
|
## Implemented And Enforced
|
|
|
|
| Contract | Adoption evidence | Ownership now enforced |
|
|
| --- | ---: | --- |
|
|
| `ActionToolbar` and groups | 50 source files | Raw module-prefixed toolbar elements and local toolbar definitions are rejected. Distribution, wrapping, density, grouping and panel/section surfaces are Core-owned. |
|
|
| `PageLayout` / `WorkspaceLayout` / `WorkspaceFrame` | 25 / 16 / 17 source files | Headed page anatomy, full-height viewport frames and navigation/list-detail panes no longer repeat inset, heading, notices, loading, shell height, surface, overflow or pane geometry. The raw page-frame and raw workspace exception baselines are both empty. |
|
|
| `FilterBar` | 14 source files | Catalogue and pane search/filter rows share width, surface, layout and wrapping. |
|
|
| `SelectionList` family | 19 source files | Resource navigation shares selection, title/description, leading-icon and truncation anatomy. |
|
|
| `StatePanel` | 25 source files | Whole-surface, compact and fill empty/blocked/error states replace module-local state shells. |
|
|
| `CountBadge` | 8 source files | Notification, folder, search, postbox and graph counts use one compact badge contract. |
|
|
| `ContentSection` | 5 source files | Repeated bordered/subtle editor sections and compact provenance panels share surface, density, flow and rhythm. |
|
|
| `ContentGrid` | 22 source files | Equal-column content geometry and former dashboard/settings/assignment copies are Core-owned. |
|
|
| `FormGrid` and `FormLayout` | 53 source files | Former generic/admin grids and equal-column dialog/editor copies use named collapse points and native form semantics. |
|
|
| `MetricGrid` / `MetricCard` | 31 / 33 source files | Module-local metric helpers, grids and card visual definitions were removed. |
|
|
| `DescriptionList` and `DescriptionItem` | 28 source files | Former generic property grids use semantic `dl`/`dt`/`dd` composition with central density and collapse. |
|
|
| `DefinitionPalette`, node/canvas visuals and `FloatingStatus` | 2 Dataflow/Workflow consumers each | The copied graph palette, canvas controls, minimap, node icon/port, empty overlay and activity overlay definitions are Core-owned; graph semantics remain local. |
|
|
| `DialogActions`, `DialogForm`, `DialogSection` | every Core footer / 6 / 6 source files | Footer action flow, native dialog form flow and dialog content grouping are Core-owned. |
|
|
| Standard dialog sizing | 61 reviewed specialized selectors | Any width matching the Core 460/560/680/1040/1440px scale must use `Dialog size`; the remaining decrease-only exceptions are explicit. |
|
|
|
|
`tools/checks/check-shared-webui-primitives.py` verifies Core exports and
|
|
ownership, representative consumers, the absence of the retired raw anatomy,
|
|
and composition of every `Dialog` footer through `DialogActions`.
|
|
`tools/checks/check-shared-webui-layouts.py` additionally requires the reviewed
|
|
Core and module consumers and rejects any raw page or workspace frame; there
|
|
are no remaining allow-listed layout exceptions.
|
|
|
|
## Dialog Width Classification
|
|
|
|
The remaining 61 width selectors do not duplicate the Core 460/560/680/1040/
|
|
1440px scale. They cover bounded editor widths between scale steps, high-density
|
|
definition and governance editors, preview/chooser canvases, message and file
|
|
overlays with coupled height behavior, and responsive full-canvas workflows.
|
|
Their exact selector set lives in
|
|
`tools/checks/shared-webui-dialog-width-exceptions.txt`. The focused check fails
|
|
for a new selector, a stale baseline entry, or any local width that duplicates
|
|
the Core scale.
|
|
|
|
## Audit Result And Deliberate Local Ownership
|
|
|
|
The second scan compared exact CSS declaration bodies and JSX anatomy across
|
|
every WebUI module after migration. All repeated generic structural candidates
|
|
found in that pass were promoted: viewport frames, catalogue/list shells,
|
|
filters, selectable lists, state panels, count badges, section frames,
|
|
equal-column grids, section headers, metrics, and definition-editor chrome.
|
|
The final legacy-baseline pass also migrated Access administration, Core
|
|
Settings, Docs, Mail bounce processing, and Organizations to the shared page
|
|
and workspace layouts and removed their copied responsive geometry.
|
|
|
|
The remaining cross-module declaration matches are not independent component
|
|
anatomy. They are small token-based rules such as ellipsis, muted captions,
|
|
uppercase terms, or flex-column containment applied to different semantic
|
|
elements. Moving those rules into a component would erase meaning; their
|
|
visual values already come from Core tokens. Remaining larger local layouts
|
|
are deliberately domain-owned:
|
|
|
|
- unequal-track editors, import mappings and schema/data tables;
|
|
- calendar time grids, charts, graph node shapes and graph edge semantics;
|
|
- file/mail/postbox/records explorer panes whose interaction contracts differ;
|
|
- timelines, evidence histories, recipient compositions and policy-specific
|
|
detail sections;
|
|
- compact list-row internals that cannot preserve their semantics through
|
|
`SelectionListItemContent`.
|
|
|
|
A future candidate is promoted only when a new audit identifies repeated
|
|
structure plus the same responsive, accessibility and interaction contract.
|
|
The enforcement script prevents regression for the patterns centralized in
|
|
this pass and maintains the reviewed dialog-width baseline.
|