Skip to content

feat: add Storybook stories for pure components#7100

Merged
talissoncosta merged 15 commits intomainfrom
feat/storybook-component-stories
May 4, 2026
Merged

feat: add Storybook stories for pure components#7100
talissoncosta merged 15 commits intomainfrom
feat/storybook-component-stories

Conversation

@talissoncosta
Copy link
Copy Markdown
Contributor

@talissoncosta talissoncosta commented Apr 2, 2026

  • I have read the Contributing Guide.
  • I have added information to docs/ if required so people know about the feature.
  • I have filled in the "Changes" section below.
  • I have filled in the "How did you test this code" section below.

Changes

Closes #7179
Contributes to #6882

Add Storybook stories for the design system. 45 components organised across 8 categories. Two small design-system consolidations bundled in (Banner / ModalAlert removed, ColorSwatch + BooleanDotIndicator unified).

Coverage

  • 94% (16/17) of base primitives under web/components/base/ have stories
  • Not covered: Popover (blocked by FocusMonitor + jQuery); 5 react-select / routing internals not meant for direct consumer use
  • 45 stories total across 8 sidebar groups

Categories

Category Components
(top-level) Button, ButtonDropdown, Icons
Data Display BarChart, BooleanDotIndicator, ColorSwatch, DropdownMenu, IdentifierString, LabelWithTooltip, Logo, SettingTitle, StatItem, ToggleChip, Tooltip, VCSProviderTag
Forms Checkbox, CheckboxGroup, ChipInput, FormGroup, GhostInput, MultiSelect, Radio, SearchableSelect, Switch
Feedback EmptyState, ErrorMessage, InfoMessage, Loader, PasswordRequirements, Skeleton, WarningMessage
Patterns AccordionCard, Card, PageTitle, Panel, SettingRow
Navigation Breadcrumb, OverflowNav, SidebarLink, Tabs
Layout Column, Flex, Row
Modals InlineModal, Modal

Story conventions

  • Args + component: for primitives (autodocs props table, working Controls panel)
  • render: for stories needing state, composition, or layout demos
  • play functions on Modal, Tooltip, ButtonDropdown, DropdownMenu, OverflowNav so Chromatic captures the open / hovered / expanded state
  • Component descriptions on heavyweight stories
  • Shared withRouter decorator at documentation/components/_decorators.tsx

Component changes (non-story)

Mostly Storybook plumbing. Two design-system consolidations.

Change Why Risk
BooleanDotIndicator rewritten as <ColorSwatch shape='circle' size='lg' /> Same primitive, same shape — unify and tokenise Low — visual: 14px → 16px in 2 permission tooltips
ColorSwatch gains shape: 'square' | 'circle' Backs BooleanDotIndicator None (additive)
Banner + ModalAlert removed Both had zero consumers None
New close icon in Icon Used by ChipInput None (additive)
IonIcon → Icon in InfoMessage, AccordionCard, IdentifierString, ChipInput Stories would render placeholder spans otherwise Low — icon swap
PasswordRequirements token utilities (text-success/text-danger/fs-small) Drop inline styles Low — spacing/colour shift
Loader.tsx extracted from project-components.js Loader story imports it directly None
Webpack mocks for @ionic/react, dompurify, code-help, _data Real modules break Storybook's bundler None
Storybook Utils stub at .storybook/stubs/utils.js Real common/utils/utils has circular dep with account-store that crashes bundler. Stub may drift from prod — tracked in #7360 to drop once the cycle is broken. Low

How did you test this code?

  • npm run storybook — all 45 stories render in light and dark mode
  • play-driven stories (Modal Open, Tooltip Hovered/Placements, ButtonDropdown Open, DropdownMenu Open, OverflowNav OverflowOpen) capture the open state
  • npm run test:unit -- --testPathPatterns="convertToPConfidence|fromParam" passes
  • npx eslint --fix clean on all touched files

QA — smoke test before merge

P1 — visual changes worth a look

  • BooleanDotIndicator (14→16px circle) — Project Settings → Permissions; hover a row, check the dot
  • PasswordRequirements — Sign-up / password change; verify row spacing, icon colour, dark mode
  • InfoMessage close button — Announcement banner with isClosable; close icon should be currentColor, not red
  • ChipInput close icon (16px) — Tag inputs (segments, identity traits)
  • AccordionCard chevron — Feature Summary card open/close
  • IdentifierString info icon — Identities page, identity name with a space

P2 — should be no-op

  • Click through all 45 stories in Storybook (light + dark)
  • Spot-check Chromatic baselines vs main

Follow-ups

@talissoncosta talissoncosta requested a review from a team as a code owner April 2, 2026 03:47
@talissoncosta talissoncosta requested review from kyle-ssg and removed request for a team April 2, 2026 03:47
Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Code review skipped — your organization's overage spend limit has been reached.

Code review is billed via overage credits. To resume reviews, an organization admin can raise the monthly limit at claude.ai/admin-settings/claude-code.

Once credits are available, reopen this pull request to trigger a review.

@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 2, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

3 Skipped Deployments
Project Deployment Actions Updated (UTC)
docs Ignored Ignored Preview May 4, 2026 3:28pm
flagsmith-frontend-preview Ignored Ignored Preview May 4, 2026 3:28pm
flagsmith-frontend-staging Ignored Ignored Preview May 4, 2026 3:28pm

Request Review

@talissoncosta talissoncosta marked this pull request as draft April 2, 2026 03:47
@talissoncosta talissoncosta marked this pull request as draft April 2, 2026 03:47
@github-actions github-actions Bot added front-end Issue related to the React Front End Dashboard feature New feature or request labels Apr 2, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 2, 2026

Docker builds report

Image Build Status Security report
ghcr.io/flagsmith/flagsmith-api-test:pr-7100 Finished ✅ Skipped
ghcr.io/flagsmith/flagsmith-e2e:pr-7100 Finished ✅ Skipped
ghcr.io/flagsmith/flagsmith-api:pr-7100 Finished ✅ Results
ghcr.io/flagsmith/flagsmith:pr-7100 Finished ✅ Results
ghcr.io/flagsmith/flagsmith-private-cloud:pr-7100 Finished ✅ Results
ghcr.io/flagsmith/flagsmith-frontend:pr-7100 Finished ✅ Results

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 2, 2026

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  10 passed

Details

stats  10 tests across 7 suites
duration  23.9 seconds
commit  20167e3
info  🔄 Run: #15628 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  10 passed

Details

stats  10 tests across 7 suites
duration  29.4 seconds
commit  20167e3
info  🔄 Run: #15628 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  16 passed

Details

stats  16 tests across 13 suites
duration  34.7 seconds
commit  20167e3
info  🔄 Run: #15628 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  53.6 seconds
commit  20167e3
info  🔄 Run: #15628 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  10 passed

Details

stats  10 tests across 7 suites
duration  46.7 seconds
commit  b347360
info  🔄 Run: #15652 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  10 passed

Details

stats  10 tests across 7 suites
duration  28.4 seconds
commit  b347360
info  🔄 Run: #15652 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  52.1 seconds
commit  b347360
info  🔄 Run: #15652 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  53.5 seconds
commit  b347360
info  🔄 Run: #15652 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  43.8 seconds
commit  a1746f2
info  🔄 Run: #16404 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  50.6 seconds
commit  a1746f2
info  🔄 Run: #16404 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  1 minute, 3 seconds
commit  a1746f2
info  🔄 Run: #16404 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  53.4 seconds
commit  a1746f2
info  🔄 Run: #16404 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  45.3 seconds
commit  0ff2721
info  🔄 Run: #16409 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  52.3 seconds
commit  0ff2721
info  🔄 Run: #16409 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  8.9 seconds
commit  0ff2721
info  🔄 Run: #16409 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  1 minute, 7 seconds
commit  0ff2721
info  🔄 Run: #16409 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  24.3 seconds
commit  4aa8af6
info  🔄 Run: #16410 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  56.5 seconds
commit  4aa8af6
info  🔄 Run: #16410 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  51.7 seconds
commit  4aa8af6
info  🔄 Run: #16410 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 2 seconds
commit  4aa8af6
info  🔄 Run: #16410 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  44.3 seconds
commit  908b612
info  🔄 Run: #16411 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  28.1 seconds
commit  908b612
info  🔄 Run: #16411 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 1 second
commit  908b612
info  🔄 Run: #16411 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  44.6 seconds
commit  908b612
info  🔄 Run: #16411 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  10.6 seconds
commit  e147393
info  🔄 Run: #16413 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  6.8 seconds
commit  e147393
info  🔄 Run: #16413 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  54.4 seconds
commit  e147393
info  🔄 Run: #16413 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  1 minute, 4 seconds
commit  e147393
info  🔄 Run: #16413 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  24.5 seconds
commit  093b35e
info  🔄 Run: #16414 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  51.3 seconds
commit  093b35e
info  🔄 Run: #16414 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  59.3 seconds
commit  093b35e
info  🔄 Run: #16414 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  39.7 seconds
commit  0160498
info  🔄 Run: #16416 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  29.6 seconds
commit  c2303eb
info  🔄 Run: #16415 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  11.5 seconds
commit  0160498
info  🔄 Run: #16416 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  59.3 seconds
commit  c2303eb
info  🔄 Run: #16415 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  51.2 seconds
commit  093b35e
info  🔄 Run: #16414 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  1.5 seconds
commit  c2303eb
info  🔄 Run: #16415 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  51.7 seconds
commit  c2303eb
info  🔄 Run: #16415 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  51.7 seconds
commit  0160498
info  🔄 Run: #16416 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  1 minute, 2 seconds
commit  0160498
info  🔄 Run: #16416 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  1.1 seconds
commit  9b87ae1
info  🔄 Run: #16418 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  27.8 seconds
commit  9b87ae1
info  🔄 Run: #16418 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  54.1 seconds
commit  9b87ae1
info  🔄 Run: #16418 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  3 passed

Details

stats  3 tests across 3 suites
duration  1 minute, 1 second
commit  9b87ae1
info  🔄 Run: #16418 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  44 seconds
commit  3281d79
info  🔄 Run: #16419 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  24.5 seconds
commit  f0b409d
info  🔄 Run: #16420 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  50.4 seconds
commit  f0b409d
info  🔄 Run: #16420 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  55.7 seconds
commit  3281d79
info  🔄 Run: #16419 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute
commit  3281d79
info  🔄 Run: #16419 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 1 second
commit  f0b409d
info  🔄 Run: #16420 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  45.8 seconds
commit  3281d79
info  🔄 Run: #16419 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

failed  2 failed

Details

stats  2 tests across 2 suites
duration  40.7 seconds
commit  f0b409d
info  📦 Artifacts: View test results and HTML report
🔄 Run: #16420 (attempt 1)

Failed tests

firefox › tests/environment-permission-test.pw.ts › Environment Permission Tests › Environment-level permissions control access to features, identities, and segments @enterprise
firefox › tests/project-permission-test.pw.ts › Project Permission Tests › Project-level permissions control access to features, environments, audit logs, and segments @enterprise

### Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  41 seconds
commit  5b5eb97
info  🔄 Run: #16421 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  53 seconds
commit  5b5eb97
info  🔄 Run: #16421 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  39.5 seconds
commit  fe32e57
info  🔄 Run: #16422 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  28.9 seconds
commit  fe32e57
info  🔄 Run: #16422 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  54.7 seconds
commit  5b5eb97
info  🔄 Run: #16421 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  1 minute, 3 seconds
commit  5b5eb97
info  🔄 Run: #16421 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  54.7 seconds
commit  fe32e57
info  🔄 Run: #16422 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  43.8 seconds
commit  6aeabbd
info  🔄 Run: #16423 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  59.6 seconds
commit  fe32e57
info  🔄 Run: #16422 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  28.3 seconds
commit  6aeabbd
info  🔄 Run: #16423 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  53.2 seconds
commit  6aeabbd
info  🔄 Run: #16423 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  59.9 seconds
commit  6aeabbd
info  🔄 Run: #16423 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  43.2 seconds
commit  e3390db
info  🔄 Run: #16424 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  46.4 seconds
commit  e3390db
info  🔄 Run: #16424 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  45.2 seconds
commit  e3390db
info  🔄 Run: #16424 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  24.4 seconds
commit  c9aec9a
info  🔄 Run: #16425 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  1 minute, 2 seconds
commit  e3390db
info  🔄 Run: #16424 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  1 minute, 1 second
commit  c9aec9a
info  🔄 Run: #16425 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  54.5 seconds
commit  c9aec9a
info  🔄 Run: #16425 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  6.4 seconds
commit  a708d9b
info  🔄 Run: #16426 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  1 minute, 2 seconds
commit  c9aec9a
info  🔄 Run: #16425 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  28.3 seconds
commit  a708d9b
info  🔄 Run: #16426 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  9.2 seconds
commit  112206f
info  🔄 Run: #16427 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  54.1 seconds
commit  a708d9b
info  🔄 Run: #16426 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 1 second
commit  a708d9b
info  🔄 Run: #16426 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  51.9 seconds
commit  112206f
info  🔄 Run: #16427 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 8 seconds
commit  112206f
info  🔄 Run: #16427 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  45.2 seconds
commit  112206f
info  🔄 Run: #16427 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  11.7 seconds
commit  e80dd0b
info  🔄 Run: #16428 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  24.6 seconds
commit  e80dd0b
info  🔄 Run: #16428 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  46.9 seconds
commit  e80dd0b
info  🔄 Run: #16428 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  1 minute, 17 seconds
commit  e80dd0b
info  🔄 Run: #16428 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  40.8 seconds
commit  731f925
info  🔄 Run: #16430 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  26.7 seconds
commit  731f925
info  🔄 Run: #16430 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  3 passed

Details

stats  3 tests across 3 suites
duration  53.4 seconds
commit  731f925
info  🔄 Run: #16430 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  3 passed

Details

stats  3 tests across 3 suites
duration  4.7 seconds
commit  731f925
info  🔄 Run: #16430 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  41.1 seconds
commit  e1d0011
info  🔄 Run: #16431 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  52.5 seconds
commit  e1d0011
info  🔄 Run: #16431 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  1 minute, 3 seconds
commit  e1d0011
info  🔄 Run: #16431 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  56.7 seconds
commit  e1d0011
info  🔄 Run: #16431 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  24.4 seconds
commit  0f634a8
info  🔄 Run: #16432 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  9.1 seconds
commit  cf9334f
info  🔄 Run: #16433 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  30.6 seconds
commit  0f634a8
info  🔄 Run: #16432 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  1 minute, 2 seconds
commit  cf9334f
info  🔄 Run: #16433 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 1 second
commit  0f634a8
info  🔄 Run: #16432 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  46.6 seconds
commit  0f634a8
info  🔄 Run: #16432 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  45.8 seconds
commit  cf9334f
info  🔄 Run: #16433 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  1 minute, 13 seconds
commit  cf9334f
info  🔄 Run: #16433 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  24.7 seconds
commit  d7f82fb
info  🔄 Run: #16434 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  28.5 seconds
commit  d7f82fb
info  🔄 Run: #16434 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  45.5 seconds
commit  d7f82fb
info  🔄 Run: #16434 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  24.7 seconds
commit  a5135c2
info  🔄 Run: #16436 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  59.7 seconds
commit  d7f82fb
info  🔄 Run: #16434 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  11.6 seconds
commit  a5135c2
info  🔄 Run: #16436 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  39.6 seconds
commit  6bf95dc
info  🔄 Run: #16435 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  59.7 seconds
commit  6bf95dc
info  🔄 Run: #16435 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 5 seconds
commit  a5135c2
info  🔄 Run: #16436 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  45.4 seconds
commit  a5135c2
info  🔄 Run: #16436 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 13 seconds
commit  6bf95dc
info  🔄 Run: #16435 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  52 seconds
commit  6bf95dc
info  🔄 Run: #16435 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  25.1 seconds
commit  9e2df59
info  🔄 Run: #16437 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  50.9 seconds
commit  9e2df59
info  🔄 Run: #16437 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 5 seconds
commit  9e2df59
info  🔄 Run: #16437 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  1 minute, 4 seconds
commit  9e2df59
info  🔄 Run: #16437 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  24.4 seconds
commit  51eaa55
info  🔄 Run: #16444 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  28.6 seconds
commit  51eaa55
info  🔄 Run: #16444 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  45.6 seconds
commit  51eaa55
info  🔄 Run: #16444 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  1 minute, 11 seconds
commit  51eaa55
info  🔄 Run: #16444 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  44 seconds
commit  1a3330f
info  🔄 Run: #16445 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  11.5 seconds
commit  1a3330f
info  🔄 Run: #16445 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 4 seconds
commit  1a3330f
info  🔄 Run: #16445 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  53.9 seconds
commit  1a3330f
info  🔄 Run: #16445 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  9.5 seconds
commit  1211ec2
info  🔄 Run: #16446 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  55.7 seconds
commit  1211ec2
info  🔄 Run: #16446 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  53 seconds
commit  1211ec2
info  🔄 Run: #16446 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  58.2 seconds
commit  1211ec2
info  🔄 Run: #16446 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  10.3 seconds
commit  8b6821a
info  🔄 Run: #16447 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  13.6 seconds
commit  8b6821a
info  🔄 Run: #16447 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  47 seconds
commit  8b6821a
info  🔄 Run: #16447 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  47.5 seconds
commit  8b6821a
info  🔄 Run: #16447 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  43.8 seconds
commit  ff7e59e
info  🔄 Run: #16448 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  53.2 seconds
commit  ff7e59e
info  🔄 Run: #16448 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 6 seconds
commit  ff7e59e
info  🔄 Run: #16448 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  44.6 seconds
commit  ff7e59e
info  🔄 Run: #16448 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  9.2 seconds
commit  7bf8d92
info  🔄 Run: #16449 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  54.6 seconds
commit  7bf8d92
info  🔄 Run: #16449 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 7 seconds
commit  7bf8d92
info  🔄 Run: #16449 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  45.3 seconds
commit  7bf8d92
info  🔄 Run: #16449 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  43.8 seconds
commit  9e84d84
info  🔄 Run: #16450 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  49.8 seconds
commit  9e84d84
info  🔄 Run: #16450 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  1 minute, 12 seconds
commit  9e84d84
info  🔄 Run: #16450 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

failed  2 failed

Details

stats  2 tests across 2 suites
duration  59.1 seconds
commit  9e84d84
info  📦 Artifacts: View test results and HTML report
🔄 Run: #16450 (attempt 1)

Failed tests

firefox › tests/environment-permission-test.pw.ts › Environment Permission Tests › Environment-level permissions control access to features, identities, and segments @enterprise
firefox › tests/project-permission-test.pw.ts › Project Permission Tests › Project-level permissions control access to features, environments, audit logs, and segments @enterprise

### Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  45.9 seconds
commit  9e84d84
info  🔄 Run: #16450 (attempt 2)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  28.7 seconds
commit  14907f5
info  🔄 Run: #16488 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  10.6 seconds
commit  14907f5
info  🔄 Run: #16488 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  56.4 seconds
commit  14907f5
info  🔄 Run: #16488 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  41.4 seconds
commit  14907f5
info  🔄 Run: #16488 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  44 seconds
commit  8eaf0e4
info  🔄 Run: #16505 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  51.3 seconds
commit  8eaf0e4
info  🔄 Run: #16505 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  4.5 seconds
commit  8eaf0e4
info  🔄 Run: #16505 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  42.5 seconds
commit  8eaf0e4
info  🔄 Run: #16505 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  44.6 seconds
commit  9f2e77c
info  🔄 Run: #16506 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  57.6 seconds
commit  9f2e77c
info  🔄 Run: #16506 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  2 passed

Details

stats  2 tests across 2 suites
duration  42.4 seconds
commit  9f2e77c
info  🔄 Run: #16506 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  3 passed

Details

stats  3 tests across 3 suites
duration  1 minute, 10 seconds
commit  9f2e77c
info  🔄 Run: #16506 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  43.3 seconds
commit  83222eb
info  🔄 Run: #16512 (attempt 1)

Playwright Test Results (oss - depot-ubuntu-latest-arm-16)

passed  11 passed

Details

stats  11 tests across 8 suites
duration  49.3 seconds
commit  83222eb
info  🔄 Run: #16512 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-arm-16)

passed  17 passed

Details

stats  17 tests across 14 suites
duration  1 minute, 6 seconds
commit  83222eb
info  🔄 Run: #16512 (attempt 1)

Playwright Test Results (private-cloud - depot-ubuntu-latest-16)

passed  1 passed

Details

stats  1 test across 1 suite
duration  48.9 seconds
commit  83222eb
info  🔄 Run: #16512 (attempt 1)

Copy link
Copy Markdown

@claude claude Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Code review skipped — your organization's overage spend limit has been reached.

Code review is billed via overage credits. To resume reviews, an organization admin can raise the monthly limit at claude.ai/admin-settings/claude-code.

Once credits are available, reopen this pull request to trigger a review.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 28, 2026

Visual Regression

16 screenshots compared. See report for details.
View full report

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 30, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.44%. Comparing base (413c9b8) to head (83222eb).
⚠️ Report is 13 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #7100   +/-   ##
=======================================
  Coverage   98.44%   98.44%           
=======================================
  Files        1398     1398           
  Lines       52628    52646   +18     
=======================================
+ Hits        51808    51826   +18     
  Misses        820      820           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

talissoncosta and others added 9 commits April 30, 2026 13:13
Wire up the missing pieces for Storybook to render real app components
in isolation:

- Webpack mocks for @ionic/react / ionicons/icons (legacy IonIcon
  consumers render a placeholder span), dompurify (CJS/ESM mismatch),
  code-help and _data (CommonJS modules that break the ESM bundler)
- Stub helper utilities (escapeHtml, isSaas, fromParam, GUID, colour)
  used transitively so stories don't break on init
- preview.js wires a global ReactSelect wrapper that mirrors the app's
  project-components.js Select shim, exposes Tooltip/Row/FormGroup as
  window globals (the legacy components rely on those), and enables
  autodocs globally so stories don't repeat the tag

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Small adjustments so components render in isolation:

- IonIcon → design-system Icon in InfoMessage, AccordionCard, and
  IdentifierString (so they render a real icon in stories instead of
  the IonIcon mock placeholder)
- Loader.tsx extracted from project-components.js to a standalone
  component (the Loader story imports it directly)
- PasswordRequirements refactored to use token utility classes
  (text-success/text-danger, fs-small, list-unstyled) instead of
  inline styles
- SettingRow: type relax (\`Omit<HTMLAttributes, 'onChange'>\`) so the
  story's \`onChange\` prop typechecks
- WarningMessage: drop dead \`enabledButton\` prop and unused Constants
  import
- Checkbox: drop unused \`react-markdown\` import
- Add unit tests for the convertToPConfidence and fromParam utilities

These are no-ops in the running app — same render output — but unlock
isolated rendering in Storybook.

(EnvironmentSettingsPage.tsx: incidental Prettier whitespace change
re-applied by lint-staged on every commit; a pre-existing drift between
origin/main's content and the project's current Prettier config.)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ChipInput previously used an ionicon for the chip-remove button,
which doesn't follow the new design system Icon contract. Add a
\`close\` icon to the design-system Icon component and update ChipInput
to use it at 16px (matches the production sizing).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Banner shipped in #6883 as design-system foundation but has zero
consumers, and its current shape (variant + icon + children) is too
thin to replace InfoMessage / WarningMessage / ErrorMessage — those
carry title, isClosable, collapseId localStorage memory, action
buttons, and API-error parsing that Banner doesn't.

ModalAlert was an internal modal variant with no remaining call sites.

Drop both rather than carry unused primitives that would be redesigned
when the migration is actually planned.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ColorSwatch and BooleanDotIndicator were rendering essentially the
same primitive (a decorative coloured shape) with different
implementations. Unify them:

- Add \`shape: 'square' | 'circle'\` to ColorSwatch (default 'square')
- Rewrite BooleanDotIndicator as a thin wrapper around ColorSwatch
  with \`shape='circle'\` and \`size='lg'\`
- Use \`colorIconAction\` / \`colorIconDisabled\` — both mode-adaptive
  icon tokens — so the disabled dot stays visible against the dark-
  mode surface (the previous \`colorSurfaceMuted\` token resolved to
  slate-850 in dark mode and disappeared)

Visible change: the boolean dot grows from 14px to 16px (lg) inside
the two permission tooltips that use it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add stories for 40 components across the design system, organised
across 7 categories plus three top-level entries (Button,
ButtonDropdown, Icons):

- Data Display: BarChart, BooleanDotIndicator, ColorSwatch,
  DropdownMenu, IdentifierString, LabelWithTooltip, Logo,
  SettingTitle, StatItem, ToggleChip, Tooltip, VCSProviderTag
- Forms: Checkbox, CheckboxGroup, ChipInput, GhostInput, MultiSelect,
  Radio, SearchableSelect, Switch
- Feedback: EmptyState, ErrorMessage, InfoMessage, Loader,
  PasswordRequirements, Skeleton, WarningMessage
- Patterns: AccordionCard, Card, PageTitle, Panel, SettingRow
- Layout: Column, Flex, Row
- Modals: InlineModal, Modal
- Top-level: Button, ButtonDropdown, Icons

Conventions used:

- Args + \`component:\` for primitives so the Controls panel and
  autodocs props table light up; \`render:\` for stories that need
  state, composition, or layout demonstrations
- Component descriptions on heavyweight stories explain *what* the
  component is for, not implementation detail
- Interactive states covered with \`play\` functions on Modal, Tooltip,
  ButtonDropdown, DropdownMenu so Chromatic captures the open / hovered
  / expanded state, not just the trigger
- \`parameters.chromatic.delay: 300\` on play-driven stories so
  Chromatic waits for portal/animation settle before snapshot
- Source overrides via \`docs.source.code\` where the render function
  doesn't reflect the consumer call (PasswordRequirements)
- Token utility classes (d-flex, gap-*, etc.) and chart palette
  tokens (\`colorChart*\`) instead of inline styles and hardcoded hex
- Setting.stories.tsx renamed to SettingRow.stories.tsx to match the
  component

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The four navigation components (Breadcrumb, OverflowNav, SidebarLink,
Tabs) all need a MemoryRouter context to render in isolation. Extract
the wrapper as \`withRouter\` in documentation/components/_decorators.tsx
so each story imports it instead of inlining the helper.

Stories:

- Breadcrumb: default trail, single-level
- OverflowNav: ProjectNavbar layout, forced overflow trigger, and
  OverflowOpen with a \`play\` function that clicks the overflow
  trigger so Chromatic captures the popover
- SidebarLink: default and AllStates list
- Tabs: default theme and pill theme (uncontrolled)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Tooltip + LabelWithTooltip Hovered:
- userEvent.hover doesn't reliably trigger react-tooltip's pointer
  detection in Chromatic's headless Chrome. Switch to fireEvent and
  dispatch pointer/mouse enter+over so whichever the library is
  listening for triggers.
- Bump chromatic.delay to 800ms to clear react-tooltip's 500ms
  delayShow plus settle.

Disable Chromatic snapshots on the MDX doc pages — Introduction,
Typography, DecisionFramework, TokenMaintenance. They're prose-heavy
guides where snapshot diffs are noise rather than signal. The Icons
catalogue stays snapshotted because it does catch new icons /
regressions in the icon set.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Several layered changes get the Tooltip + LabelWithTooltip popovers
into Chromatic's snapshots:

- Build Storybook in dev mode for Chromatic. NODE_ENV=production
  strips React's act() helper, which breaks synthetic events fired
  from play functions on the deployed bundle (Storybook #19758).
  A new build-storybook:dev script wires this up via the action's
  buildScriptName.
- Switch the play functions from raw fireEvent to userEvent.hover
  + waitFor on [role="tooltip"] (queried against document.body,
  since react-tooltip portals there). waitFor blocks chromatic
  from snapshotting before the popover renders.
- Pad the trigger downward (pt-5) and bump story height to 200px
  so the place='top' popover lands inside the snapshot frame.
- For LabelWithTooltip, wait one tick before hover — the nested
  Tooltip's useEffect needs to register the react-tooltip anchor
  before the synthetic hover fires.

Also moves LabelWithTooltip to Components/Forms — it's a form-label
primitive, not data display.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Zaimwa9
Zaimwa9 previously approved these changes May 1, 2026
Copy link
Copy Markdown
Contributor

@Zaimwa9 Zaimwa9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Couple of comments that are not critical so approving. I leave it to you whether they are relevant

Comment thread frontend/documentation/components/Skeleton.stories.tsx
Comment thread frontend/documentation/components/EmptyState.stories.tsx Outdated
Comment thread frontend/documentation/components/Loader.stories.tsx Outdated
Comment thread frontend/web/components/BooleanDotIndicator.tsx
Comment thread frontend/documentation/components/Breadcrumb.stories.tsx
Comment thread frontend/documentation/components/Button.stories.tsx
talissoncosta and others added 5 commits May 4, 2026 09:13
The "When to use" prose lived only in `parameters.docs.description.story`,
which renders in the Docs tab — the Canvas just showed three skeleton
bars and no prose. Surfacing the guidance directly in the render so the
sidebar entry "When to use" actually explains when to use it.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The story had no `component`/`argTypes`/`args`, so Storybook's controls
panel sat empty. Wires up the meta with controls for title, description,
icon, iconColour, and docs link, makes Default args-driven, and adds a
WithDocsLink variant for visual coverage of the docs-link branch.

The args type is inferred via `ComponentProps<typeof EmptyState>` so
prop changes flow through automatically without widening the component's
public API. The narrowed icon list lives in `argTypes.options` only —
that's a runtime list for the dropdown UI, not a parallel prop type.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The standalone Small story (20px loader) was redundant with Sizes,
which already shows the loader at 16px/24px/40px/64px side-by-side.
Loader has no `size` enum to differentiate Small meaningfully, so
dropping it leaves Default + Sizes covering the cases that matter.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The BooleanDot story rendered two circle ColorSwatches in action/muted
colours to demo a boolean-dot use case — but BooleanDotIndicator (which
wraps ColorSwatch with shape='circle') has its own dedicated stories
(Enabled / Disabled / AllStates) covering exactly that. The Shapes
story still covers the circle variant for visual coverage.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reverts the canvas-prose approach from 1e5c6eb. Skeleton.mdx already has
a "When to use / When not to use" section that Storybook surfaces as the
"Docs" sidebar entry, so the dedicated WhenToUse story was redundant —
and rendering markdown into Canvas turned every prose edit into a noisy
Chromatic diff. Removing the story leaves the MDX as the single source
of guidance and keeps the Canvas snapshots focused on the component.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Zaimwa9
Zaimwa9 previously approved these changes May 4, 2026
Copy link
Copy Markdown
Contributor

@Zaimwa9 Zaimwa9 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks for the fixes!

Chromatic was warning that the CI build was using CLI 11.29.0,
"significantly outdated". The version is bundled inside the action,
so bumping the action major bumps the CLI in lock-step. v16 still
supports every input we use (workingDir, projectToken,
buildScriptName, exitZeroOnChanges, exitOnceUploaded, onlyChanged,
autoAcceptChanges).

Leaves the local `chromatic` npm dep on its current major — that one
is for `npx chromatic` invocations and isn't used by CI; bumping it
in this PR would regenerate ~750 lock-file entries unrelated to the
fix, which doesn't earn its keep.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature New feature or request front-end Issue related to the React Front End Dashboard

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add Storybook stories for pure components Spike: Storybook component coverage — findings and blockers

2 participants