Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
e4ecae6
Initial plan
Copilot Feb 20, 2026
5e9ef2c
Initial plan
Copilot Feb 20, 2026
7109a11
fix: remove config spread in storybook:enforce-output-dir plugin to p…
Copilot Feb 20, 2026
b196790
Fix ESLint 10 support: replace deprecated context methods with non-de…
Copilot Feb 20, 2026
3b7f67d
Ensure telemetry is never triggered on initial load of checklist data
ghengeveld Feb 24, 2026
029f36d
Initial plan
Copilot Feb 25, 2026
810c15c
fix: use HTTP check instead of detect-port for dev/serve ready() to p…
Copilot Feb 25, 2026
60996ad
Merge pull request #33884 from storybookjs/copilot/fix-eslint-10-support
valentinpalkovic Feb 25, 2026
9873145
Merge branch 'next-release' into next
storybook-bot Feb 25, 2026
e9bbe2b
Remove test
valentinpalkovic Feb 25, 2026
22eff0e
Merge pull request #33883 from storybookjs/copilot/fix-duplicate-post…
valentinpalkovic Feb 25, 2026
c5631da
Test: Update @testing-library/jest-dom
valentinpalkovic Feb 25, 2026
2a47ef9
Merge pull request #33924 from storybookjs/copilot/fix-port-clash-in-ci
valentinpalkovic Feb 25, 2026
04fd300
Merge branch 'next' into fix-checklist-telemetry
ghengeveld Feb 25, 2026
06524f6
CLI: Fix React native web A11y issues
jonniebigodes Feb 25, 2026
e864cee
Fix JS examples
jonniebigodes Feb 25, 2026
af68e35
Fix Lint and styling issues
jonniebigodes Feb 25, 2026
879400d
Merge pull request #33937 from storybookjs/fix_rn_web_examples
valentinpalkovic Feb 25, 2026
1c3fef3
Merge pull request #33918 from storybookjs/fix-checklist-telemetry
ghengeveld Feb 25, 2026
6c85f9b
Merge pull request #33928 from storybookjs/valentin/update-testing-li…
valentinpalkovic Feb 26, 2026
204f1d1
Write changelog for 10.3.0-alpha.12 [skip ci]
storybook-bot Feb 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.prerelease.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## 10.3.0-alpha.12

- Builder-Vite: Prevent config duplication - [#33883](https://github.com/storybookjs/storybook/pull/33883), thanks @copilot-swe-agent!
- CLI: Fix React native web A11y issues - [#33937](https://github.com/storybookjs/storybook/pull/33937), thanks @jonniebigodes!
- Core: Ensure telemetry is never triggered on initial load of checklist data - [#33918](https://github.com/storybookjs/storybook/pull/33918), thanks @ghengeveld!
- Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - [#33884](https://github.com/storybookjs/storybook/pull/33884), thanks @copilot-swe-agent!
- Test: Update @testing-library/jest-dom - [#33928](https://github.com/storybookjs/storybook/pull/33928), thanks @valentinpalkovic!

## 10.3.0-alpha.11

- Addon Pseudo-states: Process all nested css rules - [#33605](https://github.com/storybookjs/storybook/pull/33605), thanks @hpohlmeyer!
Expand Down
3 changes: 1 addition & 2 deletions code/builders/builder-vite/src/build.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,7 @@ export async function build(options: Options) {
finalConfig.plugins?.push({
name: 'storybook:enforce-output-dir',
enforce: 'post',
config: (config) => ({
...config,
config: () => ({
build: {
outDir: options.outputDir,
},
Expand Down
2 changes: 1 addition & 1 deletion code/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -230,7 +230,7 @@
"dependencies": {
"@storybook/global": "^5.0.0",
"@storybook/icons": "^2.0.1",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/user-event": "^14.6.1",
"@vitest/expect": "3.2.4",
"@vitest/spy": "3.2.4",
Expand Down
6 changes: 5 additions & 1 deletion code/core/src/core-server/utils/checklist.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { experimental_UniversalStore } from 'storybook/internal/core-server';
import { logger } from 'storybook/internal/node-logger';
import { telemetry } from 'storybook/internal/telemetry';

import { dequal as deepEqual } from 'dequal';
import { throttle } from 'es-toolkit/function';
import { toMerged } from 'es-toolkit/object';

Expand Down Expand Up @@ -85,6 +84,11 @@ export async function initializeChecklist() {
saveProjectState({ items: projectValues as StoreState['items'] });
saveUserState({ items: userValues, widget: state.widget });

// Skip telemetry when loading from persistence (first transition to loaded: true)
if (!previousState.loaded) {
return;
}

// Gather items that have changed state
const { mutedItems, statusItems } = entries.reduce(
(acc, [item, { mutedAt, status }]) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,14 +44,15 @@ const styles = StyleSheet.create({
lineHeight: 1,
},
primary: {
backgroundColor: '#1ea7fd',
backgroundColor: '#555ab9',
},
primaryText: {
color: 'white',
},
secondary: {
backgroundColor: 'transparent',
borderColor: 'rgba(0, 0, 0, 0.15)',
color: '#333',
borderWidth: 1,
},
secondaryText: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,8 @@ const styles = StyleSheet.create({
},

a: {
color: '#1ea7fd',
color: '#1a237e',
textDecorationLine: 'underline',
},

ul: {
Expand All @@ -141,7 +142,7 @@ const styles = StyleSheet.create({
fontSize: 11,
lineHeight: 12,
fontWeight: '700',
color: '#66bf3c',
color: '#1a237e',
},

tipWrapper: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,15 @@ const styles = StyleSheet.create({
lineHeight: 1,
},
primary: {
backgroundColor: '#1ea7fd',
backgroundColor: '#555ab9',
},
primaryText: {
color: 'white',
},
secondary: {
backgroundColor: 'transparent',
borderColor: 'rgba(0, 0, 0, 0.15)',
color: '#333',
borderWidth: 1,
},
secondaryText: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,8 @@ const styles = StyleSheet.create({
},

a: {
color: '#1ea7fd',
color: '#1a237e',
textDecorationLine: 'underline',
},

ul: {
Expand All @@ -133,7 +134,7 @@ const styles = StyleSheet.create({
fontSize: 11,
lineHeight: 12,
fontWeight: '700',
color: '#66bf3c',
color: '#1a237e',
},

tipWrapper: {
Expand Down
2 changes: 1 addition & 1 deletion code/lib/eslint-plugin/src/rules/default-exports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ export default createStorybookRule({
},
'Program:exit': function (program: TSESTree.Program) {
if (!isCsf4Style && !hasDefaultExport && !hasStoriesOfImport) {
const componentName = getComponentName(program, context.getFilename());
const componentName = getComponentName(program, context.filename);
const firstNonImportStatement = program.body.find((n) => !isImportDeclaration(n));
const node = firstNonImportStatement || program.body[0] || program;

Expand Down
2 changes: 1 addition & 1 deletion code/lib/eslint-plugin/src/rules/meta-satisfies-type.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export default createStorybookRule({

create(context) {
// variables should be defined here
const sourceCode = context.getSourceCode();
const sourceCode = context.sourceCode;

//----------------------------------------------------------------------
// Helpers
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ export default createStorybookRule({
{
messageId: 'removeTitleInMeta',
fix(fixer) {
const fullText = context.getSourceCode().text;
const fullText = context.sourceCode.text;
const propertyTextWithExtraCharacter = fullText.slice(
titleNode.range[0],
titleNode.range[1] + 1
Expand Down
2 changes: 1 addition & 1 deletion code/lib/eslint-plugin/src/rules/prefer-pascal-case.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ export default createStorybookRule({
{
messageId: 'convertToPascalCase',
*fix(fixer) {
const fullText = context.getSourceCode().text;
const fullText = context.sourceCode.text;
const fullName = fullText.slice(id.range[0], id.range[1]);
const suffix = fullName.substring(name.length);
const pascal = toPascalCase(name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ export default createStorybookRule({
//
// import foo, { bar } from 'baz';
// ^ ^ end
const fullText = context.getSourceCode().text;
const fullText = context.sourceCode.text;
const importEnd = node.range[1];
const closingBrace = fullText.indexOf('}', end - 1);
if (closingBrace > -1 && closingBrace <= importEnd) {
Expand Down
5 changes: 3 additions & 2 deletions code/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@
"@storybook/web-components": "workspace:*",
"@storybook/web-components-vite": "workspace:*",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.2.0",
"@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch",
"@types/lodash-es": "^4.17.12",
Expand Down Expand Up @@ -220,5 +220,6 @@
"Dependency Upgrades"
]
]
}
},
"deferredNextVersion": "10.3.0-alpha.12"
}
2 changes: 1 addition & 1 deletion docs/versions/next.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version":"10.3.0-alpha.11","info":{"plain":"- Addon Pseudo-states: Process all nested css rules - [#33605](https://github.com/storybookjs/storybook/pull/33605), thanks @hpohlmeyer!\n- Core: Avoid hanging when inferring args for recursive calls on DOM elemens - [#33922](https://github.com/storybookjs/storybook/pull/33922), thanks @valentinpalkovic!\n- Core: Sanitize inputs for save from controls - [#33868](https://github.com/storybookjs/storybook/pull/33868), thanks @valentinpalkovic!\n- Telemetry: Add project age - [#33910](https://github.com/storybookjs/storybook/pull/33910), thanks @shilman!\n- Viewport: Prioritize story viewport globals and avoid user-global pollution - [#33849](https://github.com/storybookjs/storybook/pull/33849), thanks @ia319!"}}
{"version":"10.3.0-alpha.12","info":{"plain":"- Builder-Vite: Prevent config duplication - [#33883](https://github.com/storybookjs/storybook/pull/33883), thanks @copilot-swe-agent!\n- CLI: Fix React native web A11y issues - [#33937](https://github.com/storybookjs/storybook/pull/33937), thanks @jonniebigodes!\n- Core: Ensure telemetry is never triggered on initial load of checklist data - [#33918](https://github.com/storybookjs/storybook/pull/33918), thanks @ghengeveld!\n- Eslint: Fix ESLint 10 compatibility in eslint-plugin-storybook rules - [#33884](https://github.com/storybookjs/storybook/pull/33884), thanks @copilot-swe-agent!\n- Test: Update @testing-library/jest-dom - [#33928](https://github.com/storybookjs/storybook/pull/33928), thanks @valentinpalkovic!"}}
2 changes: 1 addition & 1 deletion scripts/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
"@octokit/request": "^8.4.1",
"@polka/parse": "^1.0.0-next.28",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.0.0",
"@testing-library/user-event": "^14.5.2",
"@trivago/prettier-plugin-sort-imports": "^6.0.0",
Expand Down
8 changes: 6 additions & 2 deletions scripts/tasks/dev.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import detectFreePort from 'detect-port';
import waitOn from 'wait-on';

import type { AllTemplatesKey } from '../../code/lib/cli-storybook/src/sandbox-templates';
Expand All @@ -21,7 +20,12 @@ export const dev: Task = {
dependsOn: ['sandbox'],
async ready({ key }) {
const port = getDevPort(key);
return (await detectFreePort(port)) !== port;
try {
await fetch(`http://localhost:${port}/iframe.html`, { signal: AbortSignal.timeout(1000) });
return true;
} catch {
return false;
}
},
async run({ sandboxDir, key, selectedTask }, { dryRun, debug }) {
const controller = new AbortController();
Expand Down
8 changes: 6 additions & 2 deletions scripts/tasks/serve.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
import detectFreePort from 'detect-port';
import waitOn from 'wait-on';

import type { AllTemplatesKey } from '../../code/lib/cli-storybook/src/sandbox-templates';
Expand All @@ -21,7 +20,12 @@ export const serve: Task = {
dependsOn: ['build'],
async ready({ key }) {
const port = getServePort(key);
return (await detectFreePort(port)) !== port;
try {
await fetch(`http://localhost:${port}/iframe.html`, { signal: AbortSignal.timeout(1000) });
return true;
} catch {
return false;
}
},
async run({ builtSandboxDir, key }, { debug, dryRun }) {
const port = getServePort(key);
Expand Down
27 changes: 8 additions & 19 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7950,7 +7950,7 @@ __metadata:
"@storybook/web-components": "workspace:*"
"@storybook/web-components-vite": "workspace:*"
"@testing-library/dom": "npm:^10.4.0"
"@testing-library/jest-dom": "npm:^6.6.3"
"@testing-library/jest-dom": "npm:^6.9.1"
"@testing-library/react": "npm:^16.2.0"
"@testing-library/user-event": "patch:@testing-library/user-event@npm%3A14.6.1#~/.yarn/patches/@testing-library-user-event-npm-14.6.1-5da7e1d4e2.patch"
"@types/lodash-es": "npm:^4.17.12"
Expand Down Expand Up @@ -8475,7 +8475,7 @@ __metadata:
"@octokit/request": "npm:^8.4.1"
"@polka/parse": "npm:^1.0.0-next.28"
"@testing-library/dom": "npm:^10.4.0"
"@testing-library/jest-dom": "npm:^6.6.3"
"@testing-library/jest-dom": "npm:^6.9.1"
"@testing-library/react": "npm:^16.0.0"
"@testing-library/user-event": "npm:^14.5.2"
"@trivago/prettier-plugin-sort-imports": "npm:^6.0.0"
Expand Down Expand Up @@ -8875,18 +8875,17 @@ __metadata:
languageName: node
linkType: hard

"@testing-library/jest-dom@npm:^6.6.3":
version: 6.6.3
resolution: "@testing-library/jest-dom@npm:6.6.3"
"@testing-library/jest-dom@npm:^6.9.1":
version: 6.9.1
resolution: "@testing-library/jest-dom@npm:6.9.1"
dependencies:
"@adobe/css-tools": "npm:^4.4.0"
aria-query: "npm:^5.0.0"
chalk: "npm:^3.0.0"
css.escape: "npm:^1.5.1"
dom-accessibility-api: "npm:^0.6.3"
lodash: "npm:^4.17.21"
picocolors: "npm:^1.1.1"
redent: "npm:^3.0.0"
checksum: 10c0/5566b6c0b7b0709bc244aec3aa3dc9e5f4663e8fb2b99d8cd456fc07279e59db6076cbf798f9d3099a98fca7ef4cd50e4e1f4c4dec5a60a8fad8d24a638a5bf6
checksum: 10c0/4291ebd2f0f38d14cefac142c56c337941775a5807e2a3d6f1a14c2fbd6be76a18e498ed189e95bedc97d9e8cf1738049bc76c85b5bc5e23fae7c9e10f7b3a12
languageName: node
linkType: hard

Expand Down Expand Up @@ -13272,16 +13271,6 @@ __metadata:
languageName: node
linkType: hard

"chalk@npm:^3.0.0":
version: 3.0.0
resolution: "chalk@npm:3.0.0"
dependencies:
ansi-styles: "npm:^4.1.0"
supports-color: "npm:^7.1.0"
checksum: 10c0/ee650b0a065b3d7a6fda258e75d3a86fc8e4effa55871da730a9e42ccb035bf5fd203525e5a1ef45ec2582ecc4f65b47eb11357c526b84dd29a14fb162c414d2
languageName: node
linkType: hard

"chalk@npm:^4.0.0, chalk@npm:^4.0.2, chalk@npm:^4.1.0, chalk@npm:^4.1.2":
version: 4.1.2
resolution: "chalk@npm:4.1.2"
Expand Down Expand Up @@ -28413,7 +28402,7 @@ __metadata:
"@storybook/icons": "npm:^2.0.1"
"@tanstack/react-virtual": "npm:^3.3.0"
"@testing-library/dom": "npm:^10.4.1"
"@testing-library/jest-dom": "npm:^6.6.3"
"@testing-library/jest-dom": "npm:^6.9.1"
"@testing-library/react": "npm:^14.0.0"
"@testing-library/user-event": "npm:^14.6.1"
"@types/cross-spawn": "npm:^6.0.6"
Expand Down