Skip to content
Open
Show file tree
Hide file tree
Changes from 250 commits
Commits
Show all changes
558 commits
Select commit Hold shift + click to select a range
fc66fee
UI: Don't human-print shortcuts twice
Sidnioulz Sep 18, 2025
f0b8163
UI: Account for potentially undefined document in SSR
Sidnioulz Sep 18, 2025
2be76ab
UI: Modernize sb-sr-only CSS helper
Sidnioulz Sep 18, 2025
b25ac9a
UI: Add noreferrer to external links
Sidnioulz Sep 18, 2025
d8c902a
UI: Avoid subscribing listener on every render in Remount tool
Sidnioulz Sep 18, 2025
184b53f
UI: Fix initial option index edge case in Select
Sidnioulz Sep 18, 2025
c706e04
UI: Fix reverse collapse/expand label in sidebar tree
Sidnioulz Sep 18, 2025
d291255
UI: Rework open in editor feature to use a Button
Sidnioulz Sep 18, 2025
8d3771d
Tests: Refactor StatusButton selector to circumvent a failure
Sidnioulz Sep 18, 2025
5daae1d
lots of controls color tweaks
MichaelArestad Sep 18, 2025
fc7c5e9
Merge branch 'a11y-consolidation' into m/update-light-theme
MichaelArestad Sep 18, 2025
2cd7297
lots of little tweaks
MichaelArestad Sep 19, 2025
10bc115
test: Update unit tests
Sidnioulz Sep 19, 2025
66b0a4c
Tests: Rewrite more locators to avoid test failures
Sidnioulz Sep 19, 2025
6a180f5
UI: Adjust reset option look in Select
Sidnioulz Sep 19, 2025
214a0e3
Merge branch 'a11y-consolidation' into m/update-light-theme
Sidnioulz Sep 19, 2025
fa3371d
fix types and import path handling
yannbf Sep 19, 2025
db3d3cf
UI: Never disable reset on single-select Select
Sidnioulz Sep 19, 2025
9c8103e
Fix focused tests for stories with tests
ghengeveld Sep 19, 2025
9c28803
fix up ref styles
MichaelArestad Sep 19, 2025
287e6bc
Remove 'Arc' from the list of supported browsers in the opener utility
ndelangen Sep 19, 2025
3942b0b
Remove tests from children of component, as they are attached to the …
ghengeveld Sep 19, 2025
999aa03
Ensure we show the correct status icon for stories with tests
ghengeveld Sep 19, 2025
a2250f1
lots of minor fixes
MichaelArestad Sep 19, 2025
9884d89
Merge pull request #32509 from storybookjs/fix-focused-tests
ghengeveld Sep 19, 2025
8a03d0e
UI: Repair aria-readonly, labels and fieldsets in controls
Sidnioulz Sep 18, 2025
0ec3fff
textColor didn't work but color.defaultText does
MichaelArestad Sep 19, 2025
87d7840
lots of fixes to disabled states and menu colors
MichaelArestad Sep 19, 2025
6a65ac4
UI: Repair aria-readonly, labels and fieldsets in controls (#32504)
Sidnioulz Sep 19, 2025
f5bef34
UI: Update Button story for ariaDescription
Sidnioulz Sep 19, 2025
d0cd8ea
UI: Allow keyboard navigation across kb shortcut UI
Sidnioulz Aug 21, 2025
8ccdee4
test: Add unit tests for shortcut utils
Sidnioulz Aug 21, 2025
dffb64b
fixed onboarding styling
MichaelArestad Sep 19, 2025
e211d30
Merge branch 'a11y-consolidation' into m/update-light-theme
MichaelArestad Sep 19, 2025
c937061
broke summit
MichaelArestad Sep 19, 2025
0ee8e37
UI: Allow keyboard navigation across kb shortcut UI
Sidnioulz Sep 19, 2025
513836f
fix multiselect
MichaelArestad Sep 19, 2025
ee5b077
Merge branch 'a11y-consolidation' into m/update-light-theme
MichaelArestad Sep 19, 2025
ae59770
cleaned up a bit
MichaelArestad Sep 19, 2025
2be7636
more tidying up
MichaelArestad Sep 19, 2025
7366f80
fix Range border on dark
MichaelArestad Sep 19, 2025
5a26d93
Merge pull request #32503 from storybookjs/m/update-light-theme
Sidnioulz Sep 20, 2025
6b427b6
sveltekit: add context provider component for mocking sveltekit contexts
Jakeii Sep 20, 2025
d9c9808
Tests: Fix accessibility violation false positives
Sidnioulz Sep 21, 2025
6c13f3d
UI: Fix remaining aria issues with control inputs
Sidnioulz Sep 21, 2025
0f3a100
Tests: Fix accessibility violation false positives
Sidnioulz Sep 21, 2025
17f481c
Tests: Attempt other locator for flaky E2E test afterEach hook
Sidnioulz Sep 21, 2025
1b6324a
UI: Fix false positives in SelectOption stories
Sidnioulz Sep 21, 2025
1e22413
UI: Fix readonly styling on radio/checkbox controls
Sidnioulz Sep 21, 2025
edc0177
UI: Add proper focus outline to Button
Sidnioulz Sep 21, 2025
f31a74c
Merge branch 'next' into feature/test-syntax-in-csf-sb10
yannbf Sep 22, 2025
49c8fb7
Tests: Make watch mode locator more robust to avoid double matches
Sidnioulz Sep 22, 2025
44fee0f
UI: Add WithPopover and port relevant internals to use it
Sidnioulz Sep 17, 2025
0a2153f
fix: Use safer type annotation for overlay helpers
Sidnioulz Sep 17, 2025
94e3877
UI: Fix types in RefIndicator
Sidnioulz Sep 17, 2025
1af6051
Core: Add new exports
Sidnioulz Sep 17, 2025
e7922ef
UI: Fix padding regression in TagsFilter
Sidnioulz Sep 17, 2025
7bcdc69
refactor: Remove unused handler param
Sidnioulz Sep 20, 2025
69264e3
UI: Port Modal from radix to react-aria
Sidnioulz Sep 20, 2025
fdfcef5
UI: Fix missing onOpenChange trigger on initial Modal render
Sidnioulz Sep 20, 2025
d599fa3
UI: Make Modal.Title use h2 for WCAG compliance
Sidnioulz Sep 20, 2025
aec588a
UI: Fix Modal animation flicker and support reduced motion
Sidnioulz Sep 21, 2025
2dacde4
UI: Fix story tests
Sidnioulz Sep 21, 2025
528848b
Tests: Fix dialog and context-menu E2E test locators
Sidnioulz Sep 21, 2025
1f1b8ba
Tests: Increase loading timeout duration on flaky test
Sidnioulz Sep 21, 2025
f1551fe
Tests: Make E2E tests close context menu when relevant
Sidnioulz Sep 21, 2025
669680c
fix tests
yannbf Sep 22, 2025
ed68f59
update eslint-depend-plugin
beeequeue Sep 15, 2025
626956b
Merge branch 'next' into a11y-consolidation
MichaelArestad Sep 22, 2025
f0bdb40
Merge pull request #32282 from storybookjs/valentin/fix-storybook-err…
valentinpalkovic Sep 22, 2025
8fdeb1a
Merge pull request #32508 from storybookjs/norbert/remove-arc-special…
ndelangen Sep 22, 2025
772437a
fix button height and an a11y issue
MichaelArestad Sep 22, 2025
1ba5f24
Merge branch 'next' into preview-tsx
ndelangen Sep 22, 2025
488d8bc
Merge pull request #32461 from mrginglymus/preview-tsx
ndelangen Sep 22, 2025
cf97e2c
UI: Add proper focus outline to Button (#32515)
Sidnioulz Sep 22, 2025
7159dd5
Tests: Close testing module *after* reading result status
Sidnioulz Sep 22, 2025
2828dec
improve csf factories codemod
yannbf Sep 22, 2025
af718e9
UI: Port WithTooltip from popper.js to react-aria and adjust internal…
Sidnioulz Sep 17, 2025
a7988fd
chore: Remove react-popper-tooltip dep
Sidnioulz Sep 17, 2025
e914108
refactor: Remove old TODO
Sidnioulz Sep 17, 2025
b981972
UI: Add WithPopover and port Modal to react-aria (#32492)
Sidnioulz Sep 22, 2025
496cf94
UI: Port WithTooltip from popper.js to react-aria and adjust internal…
Sidnioulz Sep 22, 2025
eb48f64
UI: Fix recent rebase breakages around tooltips
Sidnioulz Sep 22, 2025
7839dfe
UI: Make preview Toolbar and core Bar implement the toolbar role
Sidnioulz Aug 13, 2025
5d4731d
UI: Rework Bar/AriaToolbar and deprecate FlexBar
Sidnioulz Aug 15, 2025
c9654d3
UI: Write AriaTabs and port addon panel, a11y tab, preview toolbar
Sidnioulz Aug 15, 2025
75f341b
fix syntax highlighter contrast
MichaelArestad Sep 22, 2025
9040e66
UI: Improve state management in AriaTabs and apply to rest of UI
Sidnioulz Aug 17, 2025
8a317f8
UI: Fix CI errors in AriaTabs
Sidnioulz Aug 18, 2025
9533eaa
test: Fix some toolbar-related tests
Sidnioulz Aug 21, 2025
520696b
UI: Switch settings page to accessible Tabs
Sidnioulz Aug 21, 2025
e59df9a
Core: Update migration.md, move react-aria to pre-bundled deps, clean…
Sidnioulz Aug 29, 2025
03462c7
Addon Jest: Port to new tabs and align UI on vitest
Sidnioulz Sep 5, 2025
a782802
Addon Docs: Port ArgsTable to new tabs
Sidnioulz Sep 5, 2025
1b78010
Merge branch 'a11y-consolidation' into m/quick-fix_syntax-highlighting
MichaelArestad Sep 22, 2025
a772005
Core: Remove Tabs/Bar components entirely
Sidnioulz Sep 5, 2025
0cd0ed1
Tests: Revert debug changes
Sidnioulz Sep 5, 2025
9612f30
Tests: Reintroduce empty lockfile for react kitchensink
Sidnioulz Sep 5, 2025
a64ff23
Core: Add 'use-sync-external-store' to runtimeExternalInclude in entr…
ndelangen Sep 5, 2025
29a0031
bust cache
ndelangen Sep 5, 2025
63b4569
Core: Add 'use-sync-external-store' dependency to package.json
ndelangen Sep 5, 2025
c83ea00
Update yarn.lock to include 'use-sync-external-store' version 1.5.0
ndelangen Sep 5, 2025
3513f00
test: Fix E2E tests linked to toolbars and tabpanels
Sidnioulz Sep 18, 2025
c381322
Core: Update code after rebase
Sidnioulz Sep 19, 2025
b9b348f
Revert "Core: Remove Tabs/Bar components entirely"
Sidnioulz Sep 19, 2025
4b3595c
Core: re-add missing component export
Sidnioulz Sep 19, 2025
395f5de
UI: Replace Tabs overflow button with fast scroll buttons
Sidnioulz Sep 19, 2025
7bde9ac
UI: Fix duplicate attrs in AriaTabs
Sidnioulz Sep 19, 2025
e9dccb1
UI: Ensure AriaTabs tools don't shrink
Sidnioulz Sep 19, 2025
aba6245
UI: Ensure TabPanel gets its id for aria-controls ID calc
Sidnioulz Sep 19, 2025
f25b4e3
Tests: Update locator
Sidnioulz Sep 19, 2025
9d13ec6
UI: Fix id prop type on AriaTabPanel
Sidnioulz Sep 19, 2025
b7ee102
UI: Rename AriaTabs and AriaToolbar components and adjust MIGRATION.md
Sidnioulz Sep 19, 2025
869486c
UI: Fix types on bars
Sidnioulz Sep 19, 2025
893041a
UI: Fix deprecated FlexBar and Tabs width calculation
Sidnioulz Sep 19, 2025
e9901ed
UI: Introduce stateless version of TabsView for the addons panel
Sidnioulz Sep 19, 2025
04a63b8
Tests: Adjust E2E locators
Sidnioulz Sep 19, 2025
15be6b9
Core: Fix components TS build OOM by not exporting RAC types
Sidnioulz Sep 22, 2025
85a2462
UI: Fix type error in deprecated tab hooks again
Sidnioulz Sep 22, 2025
f33df3c
UI: Fix syntax highlighter contrast (#32525)
Sidnioulz Sep 22, 2025
ebe087d
UI: Make preview Toolbar and core Bar implement the toolbar role (#32…
Sidnioulz Sep 22, 2025
9ff4da1
Update code/core/src/manager/components/mobile/navigation/MobileNavig…
MichaelArestad Sep 22, 2025
46bf947
Mobile About: Fix button height and an a11y label violation (#32523)
Sidnioulz Sep 22, 2025
f0ce3fe
Fix built-in tags filtering
ghengeveld Sep 22, 2025
a1da280
add E2E tests for filter types
yannbf Sep 23, 2025
0a995fa
add addons field even when there are no addons installed
yannbf Sep 23, 2025
fefa45e
Merge branch 'next' into feature/test-syntax-in-csf-sb10
yannbf Sep 23, 2025
3b7f654
Merge branch 'next' into depend-plugin
ndelangen Sep 23, 2025
8a83592
only run e2e test in react
yannbf Sep 23, 2025
407a388
Docs: Remove autodocs configuration reference from the documentation
jonniebigodes Sep 23, 2025
a25c124
fix keyboard shortcuts on e2e helper
yannbf Sep 23, 2025
5c42937
Merge branch 'next' into docs_remove_oudated_autodocs_property
jonniebigodes Sep 23, 2025
2f19c9d
Merge pull request #32526 from storybookjs/fix-built-in-tags-filtering
yannbf Sep 23, 2025
68fc759
Merge pull request #32535 from storybookjs/docs_remove_oudated_autodo…
jonniebigodes Sep 23, 2025
0ef2a79
Merge pull request #32521 from beeequeue/depend-plugin
ndelangen Sep 23, 2025
cd1be14
(lint) Wrap case into a block
alexey-kozlenkov Sep 23, 2025
5c2e33f
(chore) Fix indentation
alexey-kozlenkov Sep 23, 2025
c9d17d7
Merge branch 'next' into next
ndelangen Sep 23, 2025
f863ac3
(chore) Fix linter
alexey-kozlenkov Sep 23, 2025
8f5911d
Update CHANGELOG.md for v9.1.8 [skip ci]
storybook-bot Sep 23, 2025
2416086
Merge branch 'next' into viewport-constant-types
jonniebigodes Sep 23, 2025
6a41bf0
enable experimental async and remote functions in all Svelte sandboxes
JReinhold Sep 23, 2025
f0b7aad
rely on automatic decorator children
JReinhold Sep 23, 2025
b5a1813
Merge branch 'next' into jlk/async-svelte
JReinhold Sep 23, 2025
dea672e
Add feature flag
yannbf Sep 23, 2025
ff83d3d
Merge pull request #31931 from alexey-kozlenkov/next
ndelangen Sep 23, 2025
a5edb79
Merge branch 'next' into viewport-constant-types
ndelangen Sep 23, 2025
bc54bb1
Improve error message
yannbf Sep 23, 2025
3f1f0b0
fix sandboxes
yannbf Sep 23, 2025
badcfc9
Merge branch 'next' into jlk/async-svelte
JReinhold Sep 23, 2025
25c6d70
Merge branch 'next' of github.com:storybookjs/storybook into feat/sup…
JReinhold Sep 23, 2025
41b0ff0
change imports from src to entrypoint imports
JReinhold Sep 23, 2025
d7d1909
Merge pull request #32513 from Jakeii/jlk/async-svelte
JReinhold Sep 23, 2025
9d316ee
Merge branch 'next' of github.com:storybookjs/storybook into feat/sup…
JReinhold Sep 23, 2025
210036e
fix store mock imports
JReinhold Sep 23, 2025
a054303
WIP: DBG CI
Sidnioulz Sep 24, 2025
e043fa8
cleanup
JReinhold Sep 24, 2025
99f33b2
Merge branch 'next' of github.com:storybookjs/storybook into jeppe/sv…
JReinhold Sep 24, 2025
d4787ca
Merge branch 'next' into viewport-constant-types
ndelangen Sep 24, 2025
003012e
Refactor viewport handling in Vitest plugin and Tool component to use…
ndelangen Sep 24, 2025
c17e0ce
Update Tool component type definitions for viewportName and isRotated…
ndelangen Sep 24, 2025
6d28374
Fix types
yannbf Sep 24, 2025
2e03469
fix lint
yannbf Sep 24, 2025
5e1c061
enable test syntax in storybook:ui
yannbf Sep 24, 2025
6615e45
update svelte related packages
JReinhold Sep 24, 2025
c0914ec
Update Tool component to allow isRotated to be undefined, enhancing t…
ndelangen Sep 24, 2025
7f7d51f
enable async stories
JReinhold Sep 24, 2025
0dd561e
cleanup
JReinhold Sep 24, 2025
02995a7
provide features via the vitest integration
yannbf Sep 24, 2025
95e41e2
Merge pull request #32178 from storybookjs/clear-a11y-highlights-on-c…
ghengeveld Sep 24, 2025
f8ce0f4
Merge pull request #32172 from storybookjs/reset-on-change-story
ghengeveld Sep 24, 2025
1c283ed
Merge pull request #32324 from hpohlmeyer/viewport-constant-types
ndelangen Sep 24, 2025
bc9177c
UI: Fix post-merge regressions in Select focus management
Sidnioulz Sep 24, 2025
9b149de
Tests: Fix misc story tests linked to popovers and focus
Sidnioulz Sep 24, 2025
6e49865
UI: Fix scroll behaviour in Select
Sidnioulz Sep 24, 2025
08f3c7f
UI: Update current addon panel CSS selector
Sidnioulz Sep 24, 2025
34a2c99
Merge pull request #32455 from storybookjs/feature/test-syntax-in-csf…
yannbf Sep 24, 2025
0a5e02c
Tests: Fix locale select selector due to aria-label change
Sidnioulz Sep 24, 2025
fdf063b
UI: Deprecate Modal.CloseButton/Dialog.Close instead of deleting
Sidnioulz Sep 24, 2025
60f0bef
Tests: Fix selector in WithTooltip story
Sidnioulz Sep 24, 2025
91017dc
make url mock static in stories
JReinhold Sep 24, 2025
7673c76
Tests: Clean up module mocking checks put before fixing tabpanel rend…
Sidnioulz Sep 24, 2025
5ef0ff8
update updated docs
JReinhold Sep 24, 2025
e71e871
Merge branch 'next' into jeppe/svelte-async-component-support
JReinhold Sep 24, 2025
bac1fc7
UI: Add deprecate notice to WithTooltip startOpen
Sidnioulz Sep 24, 2025
afe4889
UI: Remove delay prop on WithPopover call in tabs
Sidnioulz Sep 24, 2025
f71856f
Merge branch 'next' into sidnioulz/issue-14442-showAddonPanel
ndelangen Sep 24, 2025
4d14ff3
clear yarn.lock content
JReinhold Sep 24, 2025
0c7723f
Merge branch 'jeppe/svelte-async-component-support' of github.com:sto…
JReinhold Sep 24, 2025
68140f7
Merge pull request #31476 from storybookjs/jeppe/svelte-async-compone…
JReinhold Sep 24, 2025
e873a2f
optimizeDeps app state mock to ensure vitest doesn't reload
JReinhold Sep 24, 2025
3fb4e61
UI: Fix padding regression in share menu
Sidnioulz Sep 24, 2025
cddea31
UI: Remove useless isMobile check
Sidnioulz Sep 24, 2025
83016bc
Tests: Ensure desktop-only story runs with a desktop viewport
Sidnioulz Sep 24, 2025
6b9ff97
Merge pull request #31369 from xeho91/feat/support-mocking-sveltekit-…
JReinhold Sep 24, 2025
d67696d
Tests: Make component-testing dialog closing routine even more robust
Sidnioulz Sep 24, 2025
87b8b51
UI: Fix focus outline inconsistencies in button/toggle/select
Sidnioulz Sep 24, 2025
3a74ce5
UI: Fix focus outlines on a few components
Sidnioulz Sep 24, 2025
66deba7
UI: Fix ContextMenu positioning regression
Sidnioulz Sep 24, 2025
ba01426
UI: Fix positioning of Open in Editor button in Toolbar
Sidnioulz Sep 24, 2025
b4aa9ad
UI: Fix missing semicolon in pseudostates labels
Sidnioulz Sep 24, 2025
da097bf
UI: Fix contrast on Select with selection
Sidnioulz Sep 24, 2025
40a4fe0
UI: Reintroduce checkbox in multiSelect Select
Sidnioulz Sep 24, 2025
993e5ac
Core: Attempt to rebuild with react-stately prebundled
Sidnioulz Sep 24, 2025
7de4606
UI: Ensure ToggleButton dark mode selected has same colors as Select
Sidnioulz Sep 24, 2025
a80c447
Core: Eliminate another instance of react-stately export
Sidnioulz Sep 24, 2025
9dcda7b
Update yarn utility to remove existing .yarnrc.yml file during instal…
ndelangen Sep 24, 2025
08e87d5
Merge branch 'next' into norbert/improve-sandboxes-yarn-script
ndelangen Sep 24, 2025
fd7b39e
Update yarn utility to handle errors when removing .yarnrc.yml file d…
ndelangen Sep 24, 2025
90f8bd8
Merge branch 'norbert/improve-sandboxes-yarn-script' of https://githu…
ndelangen Sep 24, 2025
b6e340a
Merge pull request #32551 from storybookjs/norbert/improve-sandboxes-…
ndelangen Sep 24, 2025
b92c3d2
Merge pull request #32348 from storybookjs/sidnioulz/issue-14442-show…
ndelangen Sep 24, 2025
b7f1635
UI: Further strip react-stately from our public types
Sidnioulz Sep 24, 2025
583c037
Revert "Core: Replace use-sync-external-store CJS-only shim with ESM …
Sidnioulz Sep 24, 2025
e2edf21
UI: Fix up a few more CLI story issues
Sidnioulz Sep 24, 2025
5a6569e
Tests: Relax locator for component testing module desc
Sidnioulz Sep 24, 2025
33f4e0d
Tests: Disable somewhat flaky story tests
Sidnioulz Sep 24, 2025
5bff322
Fix FloatingStatusButton background color
ghengeveld Sep 24, 2025
fff6a0f
Merge branch 'a11y-consolidation' into fix-floating-button-bgcolor
ghengeveld Sep 25, 2025
1c053c0
Merge pull request #32554 from storybookjs/fix-floating-button-bgcolor
ghengeveld Sep 25, 2025
930176c
Merge branch 'next' into a11y-consolidation
Sidnioulz Sep 26, 2025
7ac3a30
Merge branch 'a11y-consolidation' of github.com:storybookjs/storybook…
Sidnioulz Sep 26, 2025
a00e415
UI: Add missing ariaLabel prop in Tree
Sidnioulz Sep 26, 2025
94ecbea
UI: Implement kb nav in TagsFilterPanel
Sidnioulz Sep 26, 2025
7c1eb65
Tests: revert accidental change to Playwright config
Sidnioulz Sep 26, 2025
1d2be9b
Fix include/exclude button focus behavior
ghengeveld Sep 26, 2025
02861e6
Fix context menu button focus outline
ghengeveld Sep 26, 2025
4266f41
Tests: Readd testid removed by merge
Sidnioulz Sep 26, 2025
267e962
Tests: Disable flaky stories properly until we investigate them
Sidnioulz Sep 26, 2025
4bd86e2
Tests: Fix tab button locator
Sidnioulz Sep 26, 2025
c0a5180
Fix root node button hover/focus styling
ghengeveld Sep 26, 2025
5b1b470
Tests: Try to reinstate FileSearchModal story as it's used as a dep e…
Sidnioulz Sep 26, 2025
4f1938b
Tests: Disambiguate resolver
Sidnioulz Sep 26, 2025
f20e2c5
Fix chevron alignment
ghengeveld Sep 26, 2025
1024415
Remove stray console.log
ghengeveld Sep 26, 2025
c1fe255
Tests: Adjust component testing locator and count
Sidnioulz Sep 26, 2025
0dfd1a4
UI: Fix WithTooltip circular reference warning
Sidnioulz Sep 26, 2025
e83f676
Tests: Fix last e2e component testing tests
Sidnioulz Sep 26, 2025
77fcd59
Tests: Try to wait in flaky modal test
Sidnioulz Sep 26, 2025
8a65204
Tests: Reenable flaky RAC overlay stories
Sidnioulz Sep 26, 2025
f1254b9
Fix link (anchor) item outline offset to override browser default
ghengeveld Sep 26, 2025
7eb1e42
Consistent focus outlines
ghengeveld Sep 26, 2025
986af27
Prevent focus on an element that won't be visible
ghengeveld Sep 26, 2025
f0c873a
Fix chevron color and focus states for ref button
ghengeveld Sep 26, 2025
fad0c6d
Tests: Make addon actions console.log E2E test more robust
Sidnioulz Sep 26, 2025
8ca006e
Tests: Relax actions addon test further as logItem.count() doesnt mat…
Sidnioulz Sep 26, 2025
ebd17ee
Tests: Add waitFor statements to give RAC a chance to mount triggers
Sidnioulz Sep 26, 2025
a1c4bf5
Tests: Wrap one more RAC component in a waitFor
Sidnioulz Sep 26, 2025
77f026e
Tests: Strengthen timers on story test
Sidnioulz Sep 26, 2025
df215d6
Tests: Wait for button getter in A11yPanel story
Sidnioulz Sep 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ code/bench-results/
/packs
code/.nx/cache
code/.nx/workspace-data
code/.vite-inspect
.vite-inspect
.nx/cache
.nx/workspace-data
!**/fixtures/**/yarn.lock
Expand Down
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
## 9.1.8

- PreactVite: Add `node` entry point - [#32534](https://github.com/storybookjs/storybook/pull/32534), thanks @ndelangen!

## 9.1.7

- Dependencies: Update `vite-plugin-storybook-nextjs` to 2.0.7 - [#32331](https://github.com/storybookjs/storybook/pull/32331), thanks @k35o!
Expand Down
198 changes: 195 additions & 3 deletions MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,44 @@
- [Require `tsconfig.json` `moduleResolution` set to value that supports `types` condition](#require-tsconfigjson-moduleresolution-set-to-value-that-supports-types-condition)
- [`core.builder` configuration must be a fully resolved path](#corebuilder-configuration-must-be-a-fully-resolved-path)
- [Removed x-only builtin tags](#removed-x-only-builtin-tags)
- [API and Component Changes](#api-and-component-changes)
- [Button Component API Changes](#button-component-api-changes)
- [Added: ariaLabel](#added-arialabel)
- [Added: shortcut](#added-shortcut)
- [Added: tooltip](#added-tooltip)
- [Removed: active](#removed-active)
- [IconButton is deprecated](#iconbutton-is-deprecated)
- [Bar Component API Changes](#bar-component-api-changes)
- [Added: innerStyle](#added-innerstyle)
- [FlexBar is deprecated](#flexbar-is-deprecated)
- [Tabs is deprecated](#tabs-is-deprecated)
- [TabsState is deprecated](#tabsstate-is-deprecated)
- [TabWrapper is deprecated](#tabwrapper-is-deprecated)
- [TabButton is deprecated](#tabbutton-is-deprecated)
- [TabBar is removed](#tabbar-is-removed)
- [Modal Component API Changes](#modal-component-api-changes)
- [Removed: container and portalSelector](#removed-container-and-portalselector)
- [Removed: onInteractOutside](#removed-oninteractoutside)
- [Removed: onEscapeKeyDown](#removed-onescapekeydown)
- [Added: `ariaLabel`](#added-arialabel-1)
- [Renamed: Modal.Dialog.Close and Modal.CloseButton](#renamed-modaldialogclose-and-modalclosebutton)
- [ListItem, TooltipLinkList and TooltipMessage are deprecated](#listitem-tooltiplinklist-and-tooltipmessage-are-deprecated)
- [Tooltip Component API Changes](#tooltip-component-api-changes)
- [Renamed: tooltipRef](#renamed-tooltipref)
- [Removed: arrowProps and withArrows](#removed-arrowprops-and-witharrows)
- [Removed: placement](#removed-placement)
- [Changed type: color](#changed-type-color)
- [WithPopover Component Added](#withpopover-component-added)
- [WithTooltip Component API Changes](#withtooltip-component-api-changes)
- [Removed: trigger](#removed-trigger)
- [Added: triggerOnFocusOnly](#added-triggeronfocusonly)
- [Renamed: startOpen](#renamed-startopen)
- [Removed: svg, strategy, withArrows, mutationObserverOptions](#removed-svg-strategy-witharrows-mutationobserveroptions)
- [Removed: hasChrome](#removed-haschrome)
- [Removed: closeOnTriggerHidden, followCursor, closeOnOutsideClick](#removed-closeontriggerhidden-followcursor-closeonoutsideclick)
- [Removed: interactive](#removed-interactive)
- [Other changes](#other-changes)
- [WithTooltipPure and WithTooltipState are removed](#withtooltippure-and-withtooltipstate-are-removed)
- [From version 8.x to 9.0.0](#from-version-8x-to-900)
- [Core Changes and Removals](#core-changes-and-removals)
- [Dropped support for legacy packages](#dropped-support-for-legacy-packages)
Expand All @@ -26,8 +64,8 @@
- [Viewport/Backgrounds Addon synchronized configuration and `globals` usage](#viewportbackgrounds-addon-synchronized-configuration-and-globals-usage)
- [Storysource Addon removed](#storysource-addon-removed)
- [Mdx-gfm Addon removed](#mdx-gfm-addon-removed)
- [API and Component Changes](#api-and-component-changes)
- [Button Component API Changes](#button-component-api-changes)
- [API and Component Changes](#api-and-component-changes-1)
- [Button Component API Changes](#button-component-api-changes-1)
- [Icon System Updates](#icon-system-updates)
- [Sidebar Component Changes](#sidebar-component-changes)
- [Story Store API Changes](#story-store-api-changes)
Expand Down Expand Up @@ -485,6 +523,7 @@
- [Packages renaming](#packages-renaming)
- [Deprecated embedded addons](#deprecated-embedded-addons)


## From version 9.x to 10.0.0

### Core Changes
Expand Down Expand Up @@ -585,6 +624,159 @@ export const core = {
During development of Storybook [Tags](https://storybook.js.org/docs/writing-stories/tags), we created `dev-only`, `docs-only`, and `test-only` built-in tags. These tags were never documented and superseded by the currently-documented `dev`, `autodocs`, and `test` tags which provide more precise control. The outdated `x-only` tags are removed in 10.0.
During development of Storybook [Tags](https://storybook.js.org/docs/writing-stories/tags), we created `dev-only`, `docs-only`, and `test-only` built-in tags. These tags were never documented and superceded by the currently-documented `dev`, `autodocs`, and `test` tags which provide more precise control. The outdated `x-only` tags are removed in 10.0.

Comment on lines 624 to 626
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Remove duplicated paragraph and fix spelling (“superseded”).

Two consecutive sentences say the same thing; the second also misspells “superseded”. Drop the duplicate.

 During development of Storybook [Tags](https://storybook.js.org/docs/writing-stories/tags), we created `dev-only`, `docs-only`, and `test-only` built-in tags. These tags were never documented and superseded by the currently-documented `dev`, `autodocs`, and `test` tags which provide more precise control. The outdated `x-only` tags are removed in 10.0.
-During development of Storybook [Tags](https://storybook.js.org/docs/writing-stories/tags), we created `dev-only`, `docs-only`, and `test-only` built-in tags. These tags were never documented and superceded by the currently-documented `dev`, `autodocs`, and `test` tags which provide more precise control. The outdated `x-only` tags are removed in 10.0.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
During development of Storybook [Tags](https://storybook.js.org/docs/writing-stories/tags), we created `dev-only`, `docs-only`, and `test-only` built-in tags. These tags were never documented and superseded by the currently-documented `dev`, `autodocs`, and `test` tags which provide more precise control. The outdated `x-only` tags are removed in 10.0.
During development of Storybook [Tags](https://storybook.js.org/docs/writing-stories/tags), we created `dev-only`, `docs-only`, and `test-only` built-in tags. These tags were never documented and superceded by the currently-documented `dev`, `autodocs`, and `test` tags which provide more precise control. The outdated `x-only` tags are removed in 10.0.
During development of Storybook [Tags](https://storybook.js.org/docs/writing-stories/tags), we created `dev-only`, `docs-only`, and `test-only` built-in tags. These tags were never documented and superseded by the currently-documented `dev`, `autodocs`, and `test` tags which provide more precise control. The outdated `x-only` tags are removed in 10.0.
🤖 Prompt for AI Agents
In MIGRATION.md around lines 624 to 626, remove the duplicated sentence and
correct the spelling of “superseded”: keep a single sentence that explains the
old `dev-only`, `docs-only`, and `test-only` tags were undocumented and have
been superseded by `dev`, `autodocs`, and `test`, and delete the duplicate line
so the paragraph appears only once with the corrected word “superseded”.

### API and Component Changes

#### Button Component API Changes

##### Added: ariaLabel
The Button component now has a mandatory `ariaLabel` prop, to ensure that Storybook UI code is accessible to screenreader users.

When buttons have text content as children, and when that text content does not rely on visual context to be understood, you may pass `false` to the `ariaLabel` prop to indicate that an ARIA label is not necessary.

In every other case (your Button only contains an icon, has a responsive layout that can hide its text, or relies on visual context to make sense), you must pass a label to `ariaLabel`, which screenreaders will read. The label should be short and start with an action verb.

##### Added: shortcut

An optional `shortcut` prop was added for internal use. When `shortcut` is set, the Button will be appended with a human-readable string for the shortcut, and the `aria-keyshortcuts` prop will be set.

##### Added: tooltip

Button now displays a tooltip whenever `ariaLabel` or `shortcut` is set. The tooltip can be customised by passing a string to the optional `tooltip` prop.

##### Removed: active

The `active` prop was removed from Button.

The Button component has historically been used to implement Toggle and Select interactions. When you need a Button to have an active state, use ToggleButton if the active state denotes that a state or feature is enabled after pressing the Button.

Use Select if the active state denotes that the Button is open while a selection is being made, or that the Button currently has a selected value.

#### IconButton is deprecated

The IconButton component is deprecated, as it overlaps with Button. Instead, use Button with the `'ghost'` variant and `'small'` padding, and add an `ariaLabel` prop for screenreaders to announce.

IconButton will be removed in future versions.

#### Bar Component API Changes

The `Bar` component's internal layout has changed. It now applies flex positioning and applies a default item gap, that can be controlled with the `innerStyle` prop.

##### Added: innerStyle
When `scrollable` is set to `true`, `Bar` now adds an inner container that is used to ensure the scrollbar size does not impact the height of the bar. This inner container displays as 'flex' and has the following default style:

```css
width: 100%;
min-height: 40;
display: flex;
align-items: center;
gap: 6px;
padding-inline: 6px;
```
Comment on lines +667 to +674
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix invalid CSS unit in example (min-height).

min-height: 40; needs a unit.

   width: 100%;
-  min-height: 40;
+  min-height: 40px;
   display: flex;
   align-items: center;
   gap: 6px;
   padding-inline: 6px;
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```css
width: 100%;
min-height: 40;
display: flex;
align-items: center;
gap: 6px;
padding-inline: 6px;
```
width: 100%;
min-height: 40px;
display: flex;
align-items: center;
gap: 6px;
padding-inline: 6px;
🤖 Prompt for AI Agents
MIGRATION.md around lines 667 to 674: the CSS example uses an invalid value
"min-height: 40;" which lacks a unit; update it to a valid CSS unit such as
"min-height: 40px;" (or another appropriate unit like rem/em/%) so the
stylesheet is valid and renders as expected.


The inner container's style can be overridden by passing CSS properties to `innerStyle`.

#### FlexBar is deprecated

The `FlexBar` component is deprecated. Instead, use the `Bar` component and apply `justifyContent: 'space-between'` through the `innerStyle` prop.

#### Tabs is deprecated

The `Tabs` component is deprecated as it was not accessible. Instead, use the new `TabsView` component or `TabList` and `TabPanel` with the `useTabsState` hook. Note that `TabsView` does not support mixing HTML links and tabs.

#### TabsState is deprecated

The `TabsState` class is deprecated as it was not accessible. Instead, use the new `TabsView` component or `TabList` and `TabPanel` with the `useTabsState` hook. Note that `TabsView` does not support mixing HTML links and tabs.

#### TabWrapper is deprecated

The `TabWrapper` component is deprecated as it was not accessible. Instead, use the new `TabsView` component or `TabList` and `TabPanel` with the `useTabsState` hook. Note that `TabsView` does not support mixing HTML links and tabs.

#### TabButton is deprecated

The `TabButton` class is deprecated as it was not accessible. It does not have a replacement, as the new `TabList` component handles tab buttons internally.

#### TabBar is removed

The `TabBar` component, a styled bar used inside `Tabs` and not intended to be public, has been removed. It has no replacement.

#### Modal Component API Changes

##### Removed: container and portalSelector
The `container` and `portalSelector` props were not used inside Storybook, so they have been removed. The new Modal component does not support custom portal locations, because it is not recommended practice. A single portal at the end of the document ensures modals appear in their order of creation and are never cropped by CSS `overflow` properties.

##### Removed: onInteractOutside
The `onInteractOutside` prop is removed in favor of `dismissOnClickOutside`, because it was only used to close the modal when clicking outside. Use `dismissOnClickOutside` to control whether clicking outside the modal should close it or not.

##### Removed: onEscapeKeyDown
The `onEscapeKeyDown` prop is removed in favor of `dismissOnEscape`, because it was only used to close the modal when pressing Escape. Use `dismissOnEscape` to control whether pressing Escape should close it or not.

##### Added: `ariaLabel`
Modal elements must have a title to be accessible. Set that title through the mandatory `ariaLabel` prop.

##### Renamed: Modal.Dialog.Close and Modal.CloseButton
The `Modal.Dialog.Close` component and `Modal.CloseButton` components are replaced by `Modal.Close` for consistency with other components. Those names are deprecated and will be removed in a future version. You may call `<Modal.Close />` for a default close button, or `<Modal.Close asChild>...</Modal.Close>` to wrap your own custom button.

The `Modal.Close` component no longer requires an `onClick` handler to close the modal. It will automatically close the modal when clicked. If you need to perform additional actions when the close button is clicked, you can still provide an `onClick` handler, and it will be called in addition to closing the modal.
#### ListItem, TooltipLinkList and TooltipMessage are deprecated

The ListItem and TooltipLinkList components were used in Storybook to make menus, and TooltipMessage to make message popovers. However, WithTooltip does not support keyboard interactions, so these components were not accessible.

These components are now deprecated and will be removed in future versions. To replace TooltipMessage, replace WithTooltip with WithPopover, and use Popover as a base component for your popovers. To replace ListItem and TooltipLinkList, a dedicated menu component will be introduced in a future version, and Popover can be used in the meantime.

#### Tooltip Component API Changes

##### Renamed: tooltipRef
Tooltip's `ref` prop is now named `ref` for consistency.

##### Removed: arrowProps and withArrows
Comment on lines +728 to +731
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Clarify rename: it’s tooltipRefref, not “ref → ref”.

Apply this diff:

- ##### Renamed: tooltipRef
- Tooltip's `ref` prop is now named `ref` for consistency.
+ ##### Renamed: tooltipRef
+ Tooltip's `tooltipRef` prop is now named `ref` for consistency.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
##### Renamed: tooltipRef
Tooltip's `ref` prop is now named `ref` for consistency.
##### Removed: arrowProps and withArrows
##### Renamed: tooltipRef
Tooltip's `tooltipRef` prop is now named `ref` for consistency.
##### Removed: arrowProps and withArrows
🤖 Prompt for AI Agents
In MIGRATION.md around lines 728 to 731, the rename note is confusing; update
the text to clearly state that the Tooltip prop was renamed from tooltipRef to
ref (not "ref → ref"). Replace the ambiguous line with a concise clarification
like: "Renamed: tooltipRef → ref — Tooltip's ref prop was renamed from
tooltipRef to ref for consistency." Ensure wording explicitly shows the original
name (tooltipRef) and the new name (ref).

The `arrowProps` and `withArrows` props were not used in Storybook, so they have been removed.

We recommend you do not use arrows in your addon tooltips for better consistency with the Storybook UI.

##### Removed: placement
The `placement` prop was passed to help position the arrow. It has also been removed. WithToolip now entirely handles the placement of its tooltip on its own.

##### Changed type: color
Comment on lines +737 to +739
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Typo: “WithToolip” → “WithTooltip”.

Also tweak the sentence for clarity.

Apply this diff:

- The `placement` prop was passed to help position the arrow. It has also been removed. WithToolip now entirely handles the placement of its tooltip on its own.
+ The `placement` prop was passed to help position the arrow. It has also been removed. WithTooltip now entirely handles the placement of its tooltip.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
The `placement` prop was passed to help position the arrow. It has also been removed. WithToolip now entirely handles the placement of its tooltip on its own.
##### Changed type: color
The `placement` prop was passed to help position the arrow. It has also been removed. WithTooltip now entirely handles the placement of its tooltip.
##### Changed type: color
🤖 Prompt for AI Agents
In MIGRATION.md around lines 737 to 739, fix the typo "WithToolip" to
"WithTooltip" and reword the sentence for clarity; change the sentence to
something like: "The `placement` prop — previously used to position the arrow —
has been removed; WithTooltip now fully manages tooltip placement itself."
Ensure correct punctuation and grammar.

The `color` prop used to accept arbitrary colors and theme background color names. This made it difficult to use.

The prop was to the background color of the tooltip, and it was not possible to set the text color in a consistent fashion. To ensure Tooltip uses accessible colors, the prop has been limited to the following values: `'default'`, `'inverse'`, `'positive'`, `'negative'`, `'warning'` and `'none'`. The prop now controls both background and foreground colors.

#### WithPopover Component Added

The WithPopover component acts as a counterpoint to WithTooltip. When you want an interactive overlay with buttons or inputs, use WithPopover and Popover. When you want a static overlay that shows on focus or hover, use WithTooltip with TooltipNote or Tooltip.

WithPopover is based on react-aria. It must have a single child that acts as a trigger. This child must have a pressable role (can be clicked or pressed) and must be able to receive React refs. Wrap your trigger component in `forwardRef` if you notice placement issues for your popover.

#### WithTooltip Component API Changes

##### Removed: trigger
The `trigger` prop was removed to enforce better accessibility compliance. WithTooltip must not be triggered on click, as it is not reachable by keyboard. Buttons that open a popover, menu or select must use appropriate components instead.

#### Added: triggerOnFocusOnly
The `triggerOnFocusOnly` prop was added. When set, tooltips will only show on focus. Use this to provide keyboard navigation hints to keyboard users. Do not use it for other purposes.

#### Renamed: startOpen
The `startOpen` prop was renamed `defaultVisible` to match naming in other components that expose both controlled and uncontrolled visibility. The `startOpen` prop will be removed in future versions.

#### Removed: svg, strategy, withArrows, mutationObserverOptions
These prop were not used inside Storybook and have been removed.

#### Removed: hasChrome
The `hasChrome` prop was removed because it should be handled by the tooltip being shown instead. Popover and Tooltip both have a `hasChrome` prop. TooltipNote never needs this prop and does not have it.

#### Removed: closeOnTriggerHidden, followCursor, closeOnOutsideClick
The `closeOnTriggerHidden`, `followCursor` and `closeOnOutsideClick` prop has been removed. WithTooltip will now authoritatively decide when and where to show or hide its tooltip. It will always close on clicks outside the tooltip, because tooltips should never be modal.

#### Removed: interactive
Thed `interactive` prop has been removed as it does not align with our vision for accessible components with a well-defined role. Use WithPopover instead of WithTooltip to show interactive overlays.

Comment on lines +771 to +772
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Typo: “Thed” → “The”.

Apply this diff:

- Thed `interactive` prop has been removed as it does not align with our vision for accessible components with a well-defined role. Use WithPopover instead of WithTooltip to show interactive overlays.
+ The `interactive` prop has been removed as it does not align with our vision for accessible components with a well-defined role. Use WithPopover instead of WithTooltip to show interactive overlays.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Thed `interactive` prop has been removed as it does not align with our vision for accessible components with a well-defined role. Use WithPopover instead of WithTooltip to show interactive overlays.
The `interactive` prop has been removed as it does not align with our vision for accessible components with a well-defined role. Use WithPopover instead of WithTooltip to show interactive overlays.
🤖 Prompt for AI Agents
In MIGRATION.md around lines 771 to 772, there's a typo: "Thed `interactive`
prop..." should read "The `interactive` prop..."; update the text to replace
"Thed" with "The" so the sentence reads "The `interactive` prop has been
removed..." unchanged otherwise.

##### Other changes
The underlying implementation was switched from Popper.js to react-aria. Due to these changes, WithTooltip must now have a single child that has a focusable role and that can receive React refs. Wrap your trigger component in `forwardRef` if you notice placement issues for your tooltip.

#### WithTooltipPure and WithTooltipState are removed

Instead, use WithTooltip. For a controlled tooltip, use the `onVisibleChange` and `visible` props. For an uncontrolled tooltip with a default open state, use the `defaultVisible` prop.

## From version 8.x to 9.0.0

### Core Changes and Removals
Expand Down Expand Up @@ -1217,7 +1409,7 @@ Key changes:

#### Angular: Introduce `features.angularFilterNonInputControls`

Storybook has added a new feature flag `angularFilterNonInputControls` which filters out non-input controls from Angular compoennts in Storybook's controls panel.
Storybook has added a new feature flag `angularFilterNonInputControls` which filters out non-input controls from Angular components in Storybook's controls panel.

To enable it, just set the feature flag in your `.storybook/main.<js|ts> file.

Comment on lines +1412 to 1415
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix inline code formatting for path placeholder.

Missing closing backtick around the file glob placeholder.

Apply this diff:

-To enable it, just set the feature flag in your `.storybook/main.<js|ts> file.
+To enable it, just set the feature flag in your `.storybook/main.<js|ts>` file.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Storybook has added a new feature flag `angularFilterNonInputControls` which filters out non-input controls from Angular components in Storybook's controls panel.
To enable it, just set the feature flag in your `.storybook/main.<js|ts> file.
Storybook has added a new feature flag `angularFilterNonInputControls` which filters out non-input controls from Angular components in Storybook's controls panel.
To enable it, just set the feature flag in your `.storybook/main.<js|ts>` file.
🤖 Prompt for AI Agents
In MIGRATION.md around lines 1412 to 1415, the inline code span for the file
glob `.storybook/main.<js|ts>` is missing its closing backtick; update the
sentence to close the inline code backtick after the glob placeholder (i.e.,
`.storybook/main.<js|ts>`), placing the punctuation outside the code span.

Expand Down
1 change: 1 addition & 0 deletions code/.storybook/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ const config = defineMain({
},
features: {
developmentModeForBuild: true,
experimentalTestSyntax: true,
},
staticDirs: [{ from: './bench/bundle-analyzer', to: '/bundle-analyzer' }],
viteFinal: async (viteConfig, { configType }) => {
Expand Down
17 changes: 10 additions & 7 deletions code/.storybook/preview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -216,18 +216,21 @@ const decorators = [
* This decorator renders the stories side-by-side, stacked or default based on the theme switcher
* in the toolbar
*/
(StoryFn, { globals, playFunction, args, storyGlobals, parameters }) => {
(StoryFn, { globals, playFunction, testFunction, args, storyGlobals, parameters }) => {
let theme = globals.sb_theme;
let showPlayFnNotice = false;

// this makes the decorator be out of 'phase' with the actually selected theme in the toolbar
// but this is acceptable, I guess
// we need to ensure only a single rendering in chromatic
// a more 'correct' approach would be to set a specific theme global on every story that has a playFunction
if (playFunction && args.autoplay !== false && !(theme === 'light' || theme === 'dark')) {
if (
(testFunction || (playFunction && args.autoplay !== false)) &&
!(theme === 'light' || theme === 'dark')
) {
theme = 'light';
showPlayFnNotice = true;
} else if (isChromatic() && !storyGlobals.sb_theme && !playFunction) {
} else if (isChromatic() && !storyGlobals.sb_theme && !playFunction && !testFunction) {
theme = 'stacked';
}

Expand Down Expand Up @@ -282,8 +285,8 @@ const decorators = [
<>
<PlayFnNotice>
<span>
Detected play function in Chromatic. Rendering only light theme to avoid
multiple play functions in the same story.
Detected play/test function in Chromatic. Rendering only light theme to avoid
multiple play/test functions in the same story.
</span>
</PlayFnNotice>
<div style={{ marginBottom: 20 }} />
Expand Down Expand Up @@ -384,8 +387,8 @@ const parameters = {
},
backgrounds: {
options: {
light: { name: 'light', value: '#edecec' },
dark: { name: 'dark', value: '#262424' },
light: { name: 'light', value: '#F6F9FC' },
dark: { name: 'dark', value: '#1B1C1D' },
blue: { name: 'blue', value: '#1b1a2c' },
},
grid: {
Expand Down
2 changes: 1 addition & 1 deletion code/addons/a11y/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@
"publishConfig": {
"access": "public"
},
"gitHead": "a8e7fd8a655c69780bc20b9749d2699e45beae16",
"gitHead": "a8e7fd8a655c69780bc20b9749d2699e45beae17",
"storybook": {
"displayName": "Accessibility",
"icon": "https://user-images.githubusercontent.com/263385/101991665-47042f80-3c7c-11eb-8f00-64b5a18f498a.png",
Expand Down
6 changes: 3 additions & 3 deletions code/addons/a11y/src/components/A11YPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@ export const A11YPanel: React.FC = () => {
accessibility tests manually.
</p>
</div>
<Button size="medium" onClick={handleManual}>
<Button ariaLabel={false} size="medium" onClick={handleManual}>
Run accessibility scan
</Button>
<p>
Expand All @@ -208,7 +208,7 @@ export const A11YPanel: React.FC = () => {
: JSON.stringify(error, null, 2)}
</p>
</div>
<Button size="medium" onClick={handleManual}>
<Button ariaLabel={false} size="medium" onClick={handleManual}>
Rerun accessibility scan
</Button>
</>
Expand All @@ -222,7 +222,7 @@ export const A11YPanel: React.FC = () => {
test manually.
</p>
</div>
<Button size="medium" onClick={handleManual}>
<Button ariaLabel={false} size="medium" onClick={handleManual}>
Run accessibility scan
</Button>
</>
Expand Down
Loading