DO NOT MERGE - Pipeline Test: Feat/expandable heroes#1733
Open
mlsamuelson wants to merge 40 commits into
Open
Conversation
…bleHeroes Add e.preventDefault() to Enter branch in handleKeyDown, mirroring the existing Space branch. This suppresses the browser-synthesized click that follows a keydown on a <button>, which would otherwise call commit() twice and push two GA events (P2-1 finding from review cycle 1). Add T09b and T10b: userEvent.keyboard assertions that dataLayer.push is called EXACTLY once for Enter and Space respectively.
…ries Finding C (review cycle 1): - Add test-storybook script to package.json using already-installed @storybook/test-runner@^0.24.0 dev dependency. - Add Viewport320, ReducedMotion, ForcedColors stories to ExpandableHeroes so T19 (prefers-reduced-motion), T20 (320px stack), and T24 (forced-colors) have runnable story fixtures for automated and manual verification.
…ated title spec alignment Finding D: active panel rule was overriding position to 'relative', cancelling the base rule's 'position: absolute'. Remove the position override — panel keeps absolute positioning to overlay the active pane's 70% flex column. Also adds pointer-events:none default (panel) / auto (active panel). Also adds :focus-visible outline on __panel per design-doc §6 (Finding G). Finding F: switch rotated title from horizontal-tb+rotate(-90deg) to vertical-rl+rotate(180deg) per design-doc §7 spec (reads bottom-to-top).
…t regression test D1: remove unused extractStructure function from T28 describe block. D2: remove unused index parameter from handlePointerDown. T29b: add two structural assertions verifying the active panel is the immediate next sibling of .is-active tab and lacks is-hidden class, guarding against the Finding D regression (absolute overlay pattern).
…er-pane DOM (cycle 3) - Replace sibling button+panel DOM with wrapper-per-pane __item structure - __item divs are now the flex items carrying width logic (15%/70%) - Layout option β: in-flow panel inside column flex __item drives row height - Active __panel in flow inside active __item (Hero image drives item height) - Collapsed __panel display:none; button fills full item area - Update T28 test for new 3-item DOM (was 6 flat children) - Update T29b structural invariants for __item.is-active selector - Update HtmlParity story to match new wrapper DOM - P3 deferred: focus ring width (-size-spacing-1 kept; no thin-border token)
…ps to render at h:0
Aligns this branch with the project-local pipeline convention established in c54c2ca: .pipeline/ holds ephemeral run state (design doc, impl report, review report, visual report, phase log) and .intake/* holds user-supplied input assets (screenshots). Neither belongs in the repo; agents should write to these paths for the current run only. Untracks the two .pipeline/ files (design-doc.md, impl-report.md) that were committed earlier in this run before the .gitignore update was in place. Files remain on disk; the working-tree content is unchanged.
Member
Author
|
Failing with build errors. |
jsdoc-to-markdown (catharsis) cannot parse the TS arrow function syntax '(index: number, paneData: ExpandableHeroPane) => void' inside a @Property tag, breaking the docs target in 'yarn build'. Replace with the catharsis-compatible function type form 'function(number, ExpandableHeroPane): void'. Refs: unity-components skill 'JSDoc types'
…tside tablist (WCAG 1.3.1)
- Add aria-label={pane.title?.text ?? ''} on each tab button (WCAG 4.1.2)
- Remove non-viable aria-owns from tablist (axe 4.10.2 empirically proved
aria-owns does not re-scope aria-required-children)
- Wrap tablist in outer .uds-expandable-heroes-container div
- Strip role/id/aria-labelledby/tabIndex from in-tablist __panel divs;
add aria-hidden=true (decorative; sighted layout only)
- Add three semantic tabpanels as DOM siblings of the tablist; active
panel: visually-hidden class; inactive: HTML hidden attribute
- Each outside tabpanel renders <Hero> once (duplicate, bounded: 3 panes)
- Update _heroes-expandable.scss: add .uds-expandable-heroes-container
rule; update header comment + DOM diagram for Option C
- Update HtmlParity story to mirror the new dual-render DOM exactly
- Update tests: replace T29d aria-owns assertion with no-aria-owns
regression guard; add T29e/T29f/T29g/T29h/T29i; update T28/T02/T29b
for new DOM shape
axe-core 4.10.2 live verification: violations:[] on all 5 stories
vitest: 247/247 pass
build: exit 0
SCSS literal audit: clean (only 15% and 70% literals)
Collaborator
|
Storybook deployed at https://unity-uds-staging.s3.us-west-2.amazonaws.com/pr-1733/index.html |
mlsamuelson
force-pushed
the
feat/expandable-heroes
branch
from
June 29, 2026 22:39
a2f6148 to
2186884
Compare
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.
Based off
pipeline-trialbranch.Start:
kiro-cli --agent acp-orchestratorPrompt: