refactor(ui): unify semantic presentation and table hierarchy
This commit is contained in:
@@ -89,3 +89,29 @@ The native after proof uses actual segmented keyboard entry, not programmatic in
|
||||
Dashboard initial reads alone were sequential, but an early Retry could overlap the next repository read. All initial/retry operations now share a component-owned async gate. The renderer claims each fact's pending state before its first await, coalescing duplicate target requests. A deterministic delayed-Connections/early-Sites-retry regression reproduces the prior3 Sites invocations before Connections completed (expected1); final code waits and makes exactly one recovery read. Counts remain independent, and successful facts are not reloaded. The first async test attempt had CS4014 in NSubstitute verification; compile output is preserved separately, then meaningful red/green evidence follows.
|
||||
|
||||
Reviewed full Release suite1576/1576 passed, zero skips/failures (reviewed-full-suite.log/sb04-06-reviewed.trx). The only following production change was omitting the false ARIA override; final focused31/31 and final20 audit cases in each of UTC/Indianapolis/Tokyo pass. Native Chromium focused after proof passes including AX invalid=true. These correction checks are narrow technical regressions, not another broad screenshot/polish round. No batch commit or SB07+ expansion until parent accepts the corrected frozen source.
|
||||
|
||||
## SB07–09 review batch
|
||||
|
||||
SB07 replaces flow/status text foregrounds with the published semantic ink/deep-accent tokens; status signal borders/dots/backgrounds remain unchanged. The supported-dark palette already owned by actual site.css is retained. Local Bootstrap text utilities now bridge to those same shared ink tokens, including muted/secondary text. No new color/font literals or independent palette. A scoped trace-row rule previously suppressed keyboard outline; removing that suppression exposes the shared2px focus recipe. Before actual computed pairs include light warning1.48:1/info1.78:1 and dark success/danger about3.73:1; before keyboard trace outline was0px. The retained before JSON/calculation records exact sampled pairs, not a source-only contrast guess.
|
||||
|
||||
SB08 adopts shared page-head/h1 anatomy across44 page components/57 route declarations. Login continues to render the shared LoginCard h1; no local login theme fork. Topology title remains present while loading/failed, and Template detail has mutually exclusive placeholder/loaded titles. Existing title copy/state expressions are preserved except adding the missing LDAP/Site page titles and a subordinate Site details section label. Compact20px published heading scale is measured in actual dashboard/SMS/SMTP samples. Infrequent topology Area/expand/collapse/recheck actions use one native More actions disclosure; Instance/Refresh/search/Live updates remain visible, with existing handler/disabled/policy expressions preserved.
|
||||
|
||||
All33 manual page tables in19 files have one named keyboard-scrollable local container, reusing existing responsive/overflow ancestors rather than double wrapping. Repeated Health/connection/instance/template/import groups use contextual names. Forced light/dark thead classes are removed so shared scheme tokens own both modes; shared1.0.1 semantic row headers remain static/title case. Existing columns, row loops, actions, role checks and data bindings are retained. binding-preservation.json mechanically compares the exact event/bind/policy expression multisets across modified page source, all unchanged; source review and existing tests remain the behavioral evidence.
|
||||
|
||||
SB09 shared DataTable now emits exactly0 items for empty/filter-empty state and restores its existing count/paging range after Clear. An optional TableLabel defaults safely to Data table and updates its named keyboard overflow region. No production page currently calls this reusable component; the33 manual page table adaptations above are separate, not falsely attributed to DataTable.
|
||||
|
||||
Six new heading/table regressions failed as intended (red-heading-table.log). Topology now asserts one h1 in loading/loaded/error; table cases cover true empty, filter-empty/Clear and named keyboard region. Existing behavior-focused full suite1582/1582 passes with zero skips/failures (final-full-suite.log/sb07-09-final.trx). The subsequent optional TableLabel update assertion passes with final heading/table focused tests; only the scoped graph text-opacity correction below followed that full run. Scoped CSS uses actual computed/browser validation, not declaration-mirroring tests.
|
||||
|
||||
Actual after matrix20/20 passes in browser/results.json: flow/list/table light/dark at1440/1024/390 and actual200% browser zoom (720 CSS pixels/DPR2), plus real dashboard/SMS/SMTP component samples in both schemes at desktop/mobile. All sampled state/utility text contrast is at least4.544:1; keyboard trace focus is solid2px in the family focus color; data table scroll accepts keyboard input, empty filtering/Clear is correct, row-header computed position/static and textTransform/none are retained, and each sample has one page h1. No document overflow or browser errors. Screenshots were captured in one after inspection batch and inspected at mobile/dark and desktop/light; a subsequent focused normal-motion/ghost opacity correction is documented below; no additional broad polish round was performed. The baseline used ScriptRun graph samples; the after fixture adds outbound-kind samples to exercise the real graph status-pill branch as well as the trace.
|
||||
|
||||
These are actual components with synthetic data/read-only fixture adapters, not full authenticated deployment route captures. Topology loaded-tree geometry/touch and health operational-state ordering are still owned by later SB11/SB12; full-route integration remains SB00/SB15 acceptance work. Original G1 proof unchanged. Frozen source is source-freeze.json. No SB10+ source changes or commit before this batch review.
|
||||
|
||||
### Focused unbroken-identifier negative case
|
||||
|
||||
The broad presentation fixture initially used a hyphenated value that could wrap, so it did not establish actual horizontal overflow. A separate focused fixture-only221-character unbroken reference now proves the actual DataTable scroll region at390 and real200% zoom in both schemes: scrollWidth1989px, region350/680px, native ArrowRight moves scrollLeft, focus stays on the named region, full text length221 remains present, and document width stays390/720. Font is the shared IBM Plex Mono. focused-table-overflow.json retains all four cases. No production UI correction or extra broad screenshot round was performed for this additional negative condition.
|
||||
|
||||
### Normal-motion and predicted-ghost text opacity
|
||||
|
||||
The reduced-motion matrix alone did not cover two existing opacity paths: pending pills faded to0.6 mid-animation, and predicted ghost groups faded all labels to0.45. Focused actual before proof is pending-motion-before.json and ghost-opacity-before.json (the fixture now supplies a real PredictedFlow overlay). The decorative pending fade is removed; ghost text stays opaque while its existing dashed shape/tinted fill still conveys prediction. No state mapping, edge math, poll or callback change.
|
||||
|
||||
Focused after proof covers light/dark × normal/reduced motion, four cases: pending opacity1/no animation, ghost group opacity1, and actual title/caption/pill text contrast at least4.5:1. The SVG ghost-background calculation composites its actual fill opacity over the actual alternate lane and wrap surfaces, rather than ignoring ancestor opacity. Existing FlowGraph/FlowDebugger/FlowTrace semantics118/118 tests pass (flow-opacity-focused.log). This is a narrow readability correction after the reduced-motion matrix, not a third broad screenshot review. Last full functional baseline remains1582/1582 with only these CSS opacity changes following it.
|
||||
|
||||
Reference in New Issue
Block a user