Clarify design-system documentation and unify component examples - #498
Conversation
Signed-off-by: Codex <codex@openai.com>
wesbillman
left a comment
There was a problem hiding this comment.
Carl, an automated reviewer, commenting via Wes’s GitHub account.
No introduced blockers found. 9/10; one optional excerpt correction inline. This is a comment review, not an approval.
Reviewed head ceb8b0f0027ab27db6ba41a92cb8c3c8df87c2a4 against target base 55f96c256e9af418041f7a79d838ce3fdc65b1ac, using merge-base f3676ce7215519ce576de265f6b7c23f6cacbdc2 for the PR diff. All three independent review lanes returned before consolidation.
- Existing applicable hosted checks pass. Built the standalone viewer and exercised Chromium and WebKit: preview draft retention, toast hide/restore/resolve, cross-document anchor scrolling, mobile navigation/focus/overflow, and the emitted Bestie image. Those focused checks passed with no page errors.
- Reproduced the disclosed modal/F6 escape in both engines, including with the base ToastSpecimens substituted into the head viewer. Shared Toast/Dialog source is identical to the target base; this is not a new blocker for this cleanup.
- Native and assistive-technology validation remain unperformed. Broad suites were not rerun locally; this does not claim full accessibility certification or authorize merge.
| code={`<div className="flex flex-wrap items-center gap-4"> | ||
| {(["small", "default", "large"] as const).map((size) => ( | ||
|
|
||
| <Avatar |
There was a problem hiding this comment.
Optional: retain React keys in the copyable mapped examples. Removing the viewer-only Specimen wrappers also removed their keys: the Avatar excerpts here and at lines 332–368, plus the InlineChip excerpt at lines 1236–1242, now return unkeyed components from .map(). The live previews are keyed, so their checks do not exercise the copied version, which produces React's missing-key warning. Put key={size} / key={status} on the returned Avatars and key={row.label} on InlineChip. The fixed sample arrays make this non-blocking.
* origin/main: (82 commits) Test provider connections before model selection (#500) Bundle Goose ACP with Buzz (#497) Discover saved identities across joined communities with names, pictures and retry (#291) Clarify design-system documentation and unify component examples (#498) feat(composer): convert typed Markdown live and refuse control characters committed as text (#455) fix(messages): stop three timeline scroll races that flake CI (#456) Improve Agent defaults pickers and provider keys (#392) fix(threads): keep thread history painted after scroll corrections (#493) feat(plugins): expose the agent protection service (#421) perf(sidebar): re-render only the changed row on a channel-list publish (#480) feat(agents): copy protection defaults into new agents (#420) feat(agents): support native launch protection providers (#415) fix(composer): prevent WebKit overpainting mention selections (#490) fix(composer): prevent arrow keys from inserting control characters (#488) perf(channels): fall back to one exact roster read when confirming agent adds (#485) fix(media): pause video only on comment composer focus (#483) fix(channels): dismiss management modals with outside clicks (#479) perf: reuse message date formats and stable reaction shortcuts (#477) feat(profile): run an unattended scenario file in web profiling (#476) feat(channels): administer channel members and roles (#453) ... Signed-off-by: John Tennant <jtennant@block.xyz> # Conflicts: # src/app/shell/usePanelLauncher.ts # src/bundled/agents/AgentsPage.tsx # src/bundled/agents/InventoryIdentityCard.tsx # src/bundled/agents/InventoryView.tsx # src/bundled/agents/UnifiedInventory.tsx # src/bundled/agents/index.tsx
* origin/main: (82 commits) Test provider connections before model selection (#500) Bundle Goose ACP with Buzz (#497) Discover saved identities across joined communities with names, pictures and retry (#291) Clarify design-system documentation and unify component examples (#498) feat(composer): convert typed Markdown live and refuse control characters committed as text (#455) fix(messages): stop three timeline scroll races that flake CI (#456) Improve Agent defaults pickers and provider keys (#392) fix(threads): keep thread history painted after scroll corrections (#493) feat(plugins): expose the agent protection service (#421) perf(sidebar): re-render only the changed row on a channel-list publish (#480) feat(agents): copy protection defaults into new agents (#420) feat(agents): support native launch protection providers (#415) fix(composer): prevent WebKit overpainting mention selections (#490) fix(composer): prevent arrow keys from inserting control characters (#488) perf(channels): fall back to one exact roster read when confirming agent adds (#485) fix(media): pause video only on comment composer focus (#483) fix(channels): dismiss management modals with outside clicks (#479) perf: reuse message date formats and stable reaction shortcuts (#477) feat(profile): run an unattended scenario file in web profiling (#476) feat(channels): administer channel members and roles (#453) ... Signed-off-by: Sol <49aa1f65411fd096d2e2ec144f1e7aa36fdc76d1b907cfdf7be000c66f9d3b8e@buzz.block.builderlab.xyz> # Conflicts: # src/app/shell/usePanelLauncher.ts # src/bundled/agents/AgentsPage.tsx # src/bundled/agents/InventoryIdentityCard.tsx # src/bundled/agents/InventoryView.tsx # src/bundled/agents/UnifiedInventory.tsx # src/bundled/agents/index.tsx
Clarify design-system documentation and unify component examples
The design-system viewer mixed navigation categories, text styles, spacing, and example formats. It now separates Foundations, Patterns, Guides, and Components and uses a consistent reading column, heading hierarchy, section rhythm, and responsive navigation.
Component examples share Preview/Code tabs and copyable public API excerpts, inspired by Fluid Functionalism’s documentation layout. Normal previews retain edits while reading code; toast portals hide with their preview without losing unresolved recovery state. Wide pages offer section navigation, and documentation preserves headings, lists, tables, code, and working local links.
Rewrite the six maintained design-system documents and viewer guidance in clearer language, simplify the Forms overview, remove the requested Foundation alignment page, and fix the standalone viewer’s Bestie artwork URL. Preserve the latest row-end button, flex-body dialog, and end-aligned Select examples from main.
Validation
Checked cleanup committed as
ceb8b0f0, with unchanged source content from the reviewed snapshot onf3676ce7:ceb8b0f0. The original native job timed out downloading Ubuntu packages before Rust checks ran; a targeted rerun at the unchanged head passed without code, workflow, timeout, or test changes.Browser coverage
Three scenarios added cover native navigation/focus and hash scrolling, responsive tables/token labels, and code-panel keyboard scrolling with contents navigation. These require real browser geometry and focus. One Foundation alignment scenario was removed with that deleted page; no retained behavior loses coverage. Six new React unit cases cover Markdown rendering/links, preview state, clipboard success/failure, and toast portal lifecycle.
Regression evidence: the toast portal test fails before the visibility fix and passes afterward. Earlier renderer, WebKit table-scroll, and route-contents failures also failed before their fixes and passed afterward. The modal test now waits for initial focus before testing F6, retaining the containment assertion rather than accepting an autofocus race.
Known limitations
buzz-review-completed
Screenshots
Four screenshots and capture notes are saved locally for attachment. They have not been uploaded to GitHub.