feat: per-section copy-link anchors + clickable health scorecard cards - #7
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
Two small SPA usability upgrades:
nodeSection) now gets an icon-only "copy link to this section" button in its summary actions slot, copying a#/node/<id>?sec=<sectionId>deep link thatroute()already resolves viafocusSection(opens + scrolls to the section on load). Wired once innodeSection, so no per-renderer plumbing.<a>linking to#/health?d=<key>in both the overview card and the Health page (the oldcompactflag is gone). Cards get a modern lift-on-hover affordance (transform + accent border, status-color left edge preserved), a:focus-visibleoutline, aprefers-reduced-motionopt-out, and a full-statearia-label.copyToClipboardhelper — extracts the clipboard-guard plumbing shared by the page-level and section-level copy-link buttons (DRY).Depends on/Referenced bynow sit after the Related ERD and just before Transformation logic, so the columns/tests/ERD detail leads and the graph-derived dependency chip lists trail.Type of change
Area
site/(data dict / builder / 3-tier SPA / deploy)frontend/(React Flow graph bundle) — E2E test only (nosrc/**change, no bundle rebuild)dbdocs.yml) / packaging / CI / docs —.claude/design_patterns.md+ refreshed demo screenshotsHow to test
Checklist
task lintpasses (ruff format --check+ruff check, incl. PLC0415).task testpasses at 100% coverage (458 passed, 100.00%).task frontend:e2epasses (62 passed). Fixed a strict-mode locator collision the new section button introduced (see note below) and added a test for the new copy-link button..claude/design_patterns.md— extended the Collapsible node-page sections pattern (addedsectionLinkButton, the section-order table reorder, and updated symbol + CSS citations in the same change).ui.js/cssonly; no data-dict shape change, payload not re-inlined.frontend/src/**change (only an E2E spec edit; no graph bundle rebuild needed).dbdocs/site/bundle/**— n/a, only edits to existingui.js/style.css.dbdocs.yml.example— n/a, no new config knob or CLI flag added.Screenshots / notes
Site change —
docs/assets/img/demo-*.pngscreenshots refreshed in this PR.E2E fix (2nd commit): the new per-section copy-link button reuses the
fs-btnstyle class, so#node-sec-erd's summary actions now hold two.fs-btnelements (copy-link + full-screen). The existing Playwright assertion.node-section-summary-actions .fs-btnhit a strict-mode "resolved to 2 elements" failure. Fix scopes the selector to[title="Toggle full screen"]; a new test covers the section copy-link button (.copiedflip on click). Behavior-neutral polish;/dbdocs-code-reviewran clean across all six dimensions.