Merge branch 'unified-ui-testing' into yann/introduce-test-panel

This commit is contained in:
Yann Braga 2024-09-30 10:51:05 +02:00
commit 8703d630b1
104 changed files with 538 additions and 268 deletions

View File

@ -195,6 +195,22 @@ jobs:
yarn lint
- report-workflow-on-failure
- cancel-workflow-on-failure
knip:
executor:
class: large
name: sb_node_22_classic
steps:
- git-shallow-clone/checkout_advanced:
clone_options: "--depth 1 --verbose"
- attach_workspace:
at: .
- run:
name: Knip
command: |
cd code
yarn knip --no-exit-code
- report-workflow-on-failure
- cancel-workflow-on-failure
check:
executor:
class: xlarge
@ -688,6 +704,9 @@ workflows:
- lint:
requires:
- build
- knip:
requires:
- build
- check:
requires:
- build
@ -754,6 +773,9 @@ workflows:
- lint:
requires:
- build
- knip:
requires:
- build
- check:
requires:
- build
@ -821,6 +843,9 @@ workflows:
- lint:
requires:
- build
- knip:
requires:
- build
- check:
requires:
- build

View File

@ -1,3 +1,8 @@
## 8.3.4
- Addon Test: Support story name as test description - [#29147](https://github.com/storybookjs/storybook/pull/29147), thanks @InfiniteXyy!
- Addon-Interactions: Use ansi-to-html for colored test errors - [#29110](https://github.com/storybookjs/storybook/pull/29110), thanks @kasperpeulen!
## 8.3.3
- CLI: Show constraints in error when getting depndencies - [#29187](https://github.com/storybookjs/storybook/pull/29187), thanks @andrasczeh!

View File

@ -1,3 +1,11 @@
## 8.4.0-alpha.2
- CLI: Don't add `@storybook/addon-links` by default - [#29177](https://github.com/storybookjs/storybook/pull/29177), thanks @tobiasdiez!
- Core: Make `prettier` an optional peer dependency - [#29223](https://github.com/storybookjs/storybook/pull/29223), thanks @JReinhold!
- Core: Remove `handlebars` usage - [#29208](https://github.com/storybookjs/storybook/pull/29208), thanks @ndelangen!
- Core: Replace `lodash` with `es-toolkit` - [#28981](https://github.com/storybookjs/storybook/pull/28981), thanks @ndelangen!
- UI: Use production-mode `react` in manager - [#29197](https://github.com/storybookjs/storybook/pull/29197), thanks @ndelangen!
## 8.4.0-alpha.1
- Addon Test: Support story name as test description - [#29147](https://github.com/storybookjs/storybook/pull/29147), thanks @InfiniteXyy!

View File

@ -42,6 +42,13 @@ module.exports = {
'@typescript-eslint/default-param-last': 'off',
},
overrides: [
{
files: ['**/templates/virtualModuleModernEntry.js'],
rules: {
'no-underscore-dangle': 'off',
'import/no-extraneous-dependencies': 'off',
},
},
{
// this package depends on a lot of peerDependencies we don't want to specify, because npm would install them
files: ['**/frameworks/angular/template/**/*'],

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-a11y",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Test component compliance with web accessibility standards",
"keywords": [
"a11y",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-actions",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Get UI feedback when an action is performed on an interactive element",
"keywords": [
"storybook",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-backgrounds",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Switch backgrounds to view components in different settings",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-controls",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Interact with component inputs dynamically in the Storybook UI",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-docs",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Document component usage and properties in Markdown",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-essentials",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Curated addons to bring out the best of Storybook",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-mdx-gfm",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "GitHub Flavored Markdown in Storybook",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-highlight",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Highlight DOM nodes within your stories",
"keywords": [
"storybook-addons",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-interactions",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Automate, test and debug user interactions",
"keywords": [
"storybook-addons",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-jest",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "React storybook addon that show component jest report",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-links",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Link stories together to build demos and prototypes with your UI components",
"keywords": [
"storybook-addons",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-measure",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Inspect layouts by visualizing the box model",
"keywords": [
"storybook-addons",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-onboarding",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook Addon Onboarding - Introduces a new onboarding experience",
"keywords": [
"storybook-addons",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-outline",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Outline all elements with CSS to help with layout placement and alignment",
"keywords": [
"storybook-addons",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-storysource",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "View a storys source code to see how it works and paste into your app",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/experimental-addon-test",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Integrate Vitest with Storybook",
"keywords": [
"storybook-addons",

View File

@ -24,7 +24,6 @@ export class VitestManager {
this.vitest = await createVitest('test', {
watch: watchMode,
passWithNoTests: true,
standalone: true,
changed: watchMode,
// TODO:
// Do we want to enable Vite's default reporter?

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-themes",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Switch between multiple themes for you components in Storybook",
"keywords": [
"css",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-toolbars",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Create your own toolbar items that control story rendering",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-viewport",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Build responsive components by adjusting Storybooks viewport size and orientation",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-vite",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "A plugin to run and build Storybooks with Vite",
"homepage": "https://github.com/storybookjs/storybook/tree/next/code/builders/builder-vite/#readme",
"bugs": {

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-webpack5",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -41,7 +41,7 @@
"node": "./dist/loaders/export-order-loader.js",
"require": "./dist/loaders/export-order-loader.js"
},
"./templates/virtualModuleModernEntry.js.handlebars": "./templates/virtualModuleModernEntry.js.handlebars",
"./templates/virtualModuleModernEntry.js": "./templates/virtualModuleModernEntry.js",
"./templates/preview.ejs": "./templates/preview.ejs",
"./templates/virtualModuleEntry.template.js": "./templates/virtualModuleEntry.template.js",
"./templates/virtualModuleStory.template.js": "./templates/virtualModuleStory.template.js",

View File

@ -2,7 +2,6 @@ import { join, resolve } from 'node:path';
import {
getBuilderOptions,
handlebars,
loadPreviewOrConfigFile,
normalizeStories,
readTemplate,
@ -51,18 +50,28 @@ export const getVirtualModules = async (options: Options) => {
const needPipelinedImport = !!builderOptions.lazyCompilation && !isProd;
virtualModules[storiesPath] = toImportFn(stories, { needPipelinedImport });
const configEntryPath = resolve(join(workingDir, 'storybook-config-entry.js'));
virtualModules[configEntryPath] = handlebars(
virtualModules[configEntryPath] = (
await readTemplate(
require.resolve(
'@storybook/builder-webpack5/templates/virtualModuleModernEntry.js.handlebars'
)
),
{
storiesFilename,
previewAnnotations,
}
require.resolve('@storybook/builder-webpack5/templates/virtualModuleModernEntry.js')
)
)
.replaceAll(`'{{storiesFilename}}'`, `'./${storiesFilename}'`)
.replaceAll(
`'{{previewAnnotations}}'`,
previewAnnotations
.filter(Boolean)
.map((entry) => `'${entry}'`)
.join(',')
)
.replaceAll(
`'{{previewAnnotations_requires}}'`,
previewAnnotations
.filter(Boolean)
.map((entry) => `require('${entry}')`)
.join(',')
)
// We need to double escape `\` for webpack. We may have some in windows paths
).replace(/\\/g, '\\\\');
.replace(/\\/g, '\\\\');
entries.push(configEntryPath);
return {

View File

@ -0,0 +1,33 @@
import { createBrowserChannel } from 'storybook/internal/channels';
import { PreviewWeb, addons, composeConfigs } from 'storybook/internal/preview-api';
import { global } from '@storybook/global';
import { importFn } from '{{storiesFilename}}';
const getProjectAnnotations = () => composeConfigs(['{{previewAnnotations_requires}}']);
const channel = createBrowserChannel({ page: 'preview' });
addons.setChannel(channel);
if (global.CONFIG_TYPE === 'DEVELOPMENT') {
window.__STORYBOOK_SERVER_CHANNEL__ = channel;
}
const preview = new PreviewWeb(importFn, getProjectAnnotations);
window.__STORYBOOK_PREVIEW__ = preview;
window.__STORYBOOK_STORY_STORE__ = preview.storyStore;
window.__STORYBOOK_ADDONS_CHANNEL__ = channel;
if (import.meta.webpackHot) {
import.meta.webpackHot.accept('{{storiesFilename}}', () => {
// importFn has changed so we need to patch the new one in
preview.onStoriesChanged({ importFn });
});
import.meta.webpackHot.accept(['{{previewAnnotations}}'], () => {
// getProjectAnnotations has changed so we need to patch the new one in
preview.onGetProjectAnnotationsChanged({ getProjectAnnotations });
});
}

View File

@ -1,34 +0,0 @@
import { global } from '@storybook/global';
import { ClientApi, PreviewWeb, addons, composeConfigs } from 'storybook/internal/preview-api';
import { createBrowserChannel } from 'storybook/internal/channels';
import { importFn } from './{{storiesFilename}}';
const getProjectAnnotations = () =>
composeConfigs([{{#each previewAnnotations}}require('{{this}}'),{{/each}}]);
const channel = createBrowserChannel({ page: 'preview' });
addons.setChannel(channel);
if (global.CONFIG_TYPE === 'DEVELOPMENT'){
window.__STORYBOOK_SERVER_CHANNEL__ = channel;
}
const preview = new PreviewWeb(importFn, getProjectAnnotations);
window.__STORYBOOK_PREVIEW__ = preview;
window.__STORYBOOK_STORY_STORE__ = preview.storyStore;
window.__STORYBOOK_ADDONS_CHANNEL__ = channel;
if (import.meta.webpackHot) {
import.meta.webpackHot.accept('./{{storiesFilename}}', () => {
// importFn has changed so we need to patch the new one in
preview.onStoriesChanged({ importFn });
});
import.meta.webpackHot.accept([{{#each previewAnnotations}}'{{this}}',{{/each}}], () => {
// getProjectAnnotations has changed so we need to patch the new one in
preview.onGetProjectAnnotationsChanged({ getProjectAnnotations });
});
}

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"
@ -375,7 +375,6 @@
"get-npm-tarball-url": "^2.0.3",
"glob": "^10.0.0",
"globby": "^14.0.1",
"handlebars": "^4.7.7",
"jiti": "^1.21.6",
"js-yaml": "^4.1.0",
"lazy-universal-dotenv": "^4.0.0",
@ -419,6 +418,14 @@
"use-resize-observer": "^9.1.0",
"watchpack": "^2.2.0"
},
"peerDependencies": {
"prettier": "^2 || ^3"
},
"peerDependenciesMeta": {
"prettier": {
"optional": true
}
},
"publishConfig": {
"access": "public"
},

View File

@ -28,7 +28,13 @@ export const getEntries = (cwd: string) => {
define('src/preview-api/index.ts', ['browser', 'node'], true),
define('src/manager-api/index.ts', ['browser', 'node'], true, ['react']),
define('src/router/index.ts', ['browser', 'node'], true, ['react']),
define('src/components/index.ts', ['browser', 'node'], true, ['react', 'react-dom']),
define(
'src/components/index.ts',
['browser', 'node'],
true,
['react', 'react-dom'],
['prettier'] // the syntax highlighter uses prettier/standalone to format the code
),
define('src/theming/index.ts', ['browser', 'node'], true, ['react']),
define('src/theming/create.ts', ['browser', 'node'], true, ['react']),
define('src/docs-tools/index.ts', ['browser', 'node'], true),

View File

@ -18,7 +18,6 @@ export * from './utils/get-storybook-info';
export * from './utils/get-storybook-refs';
export * from './utils/glob-to-regexp';
export * from './utils/HandledError';
export * from './utils/handlebars';
export * from './utils/interpolate';
export * from './utils/interpret-files';
export * from './utils/interpret-require';

View File

@ -1,7 +0,0 @@
import Handlebars from 'handlebars';
export function handlebars(source: string, data: any) {
const template = Handlebars.compile(source);
return template(data);
}

View File

@ -1,87 +1,87 @@
// auto generated file, do not edit
export default {
'@storybook/addon-a11y': '8.4.0-alpha.1',
'@storybook/addon-actions': '8.4.0-alpha.1',
'@storybook/addon-backgrounds': '8.4.0-alpha.1',
'@storybook/addon-controls': '8.4.0-alpha.1',
'@storybook/addon-docs': '8.4.0-alpha.1',
'@storybook/addon-essentials': '8.4.0-alpha.1',
'@storybook/addon-mdx-gfm': '8.4.0-alpha.1',
'@storybook/addon-highlight': '8.4.0-alpha.1',
'@storybook/addon-interactions': '8.4.0-alpha.1',
'@storybook/addon-jest': '8.4.0-alpha.1',
'@storybook/addon-links': '8.4.0-alpha.1',
'@storybook/addon-measure': '8.4.0-alpha.1',
'@storybook/addon-onboarding': '8.4.0-alpha.1',
'@storybook/addon-outline': '8.4.0-alpha.1',
'@storybook/addon-storysource': '8.4.0-alpha.1',
'@storybook/experimental-addon-test': '8.4.0-alpha.1',
'@storybook/addon-themes': '8.4.0-alpha.1',
'@storybook/addon-toolbars': '8.4.0-alpha.1',
'@storybook/addon-viewport': '8.4.0-alpha.1',
'@storybook/builder-vite': '8.4.0-alpha.1',
'@storybook/builder-webpack5': '8.4.0-alpha.1',
'@storybook/core': '8.4.0-alpha.1',
'@storybook/builder-manager': '8.4.0-alpha.1',
'@storybook/channels': '8.4.0-alpha.1',
'@storybook/client-logger': '8.4.0-alpha.1',
'@storybook/components': '8.4.0-alpha.1',
'@storybook/core-common': '8.4.0-alpha.1',
'@storybook/core-events': '8.4.0-alpha.1',
'@storybook/core-server': '8.4.0-alpha.1',
'@storybook/csf-tools': '8.4.0-alpha.1',
'@storybook/docs-tools': '8.4.0-alpha.1',
'@storybook/manager': '8.4.0-alpha.1',
'@storybook/manager-api': '8.4.0-alpha.1',
'@storybook/node-logger': '8.4.0-alpha.1',
'@storybook/preview': '8.4.0-alpha.1',
'@storybook/preview-api': '8.4.0-alpha.1',
'@storybook/router': '8.4.0-alpha.1',
'@storybook/telemetry': '8.4.0-alpha.1',
'@storybook/theming': '8.4.0-alpha.1',
'@storybook/types': '8.4.0-alpha.1',
'@storybook/angular': '8.4.0-alpha.1',
'@storybook/ember': '8.4.0-alpha.1',
'@storybook/experimental-nextjs-vite': '8.4.0-alpha.1',
'@storybook/html-vite': '8.4.0-alpha.1',
'@storybook/html-webpack5': '8.4.0-alpha.1',
'@storybook/nextjs': '8.4.0-alpha.1',
'@storybook/preact-vite': '8.4.0-alpha.1',
'@storybook/preact-webpack5': '8.4.0-alpha.1',
'@storybook/react-vite': '8.4.0-alpha.1',
'@storybook/react-webpack5': '8.4.0-alpha.1',
'@storybook/server-webpack5': '8.4.0-alpha.1',
'@storybook/svelte-vite': '8.4.0-alpha.1',
'@storybook/svelte-webpack5': '8.4.0-alpha.1',
'@storybook/sveltekit': '8.4.0-alpha.1',
'@storybook/vue3-vite': '8.4.0-alpha.1',
'@storybook/vue3-webpack5': '8.4.0-alpha.1',
'@storybook/web-components-vite': '8.4.0-alpha.1',
'@storybook/web-components-webpack5': '8.4.0-alpha.1',
'@storybook/blocks': '8.4.0-alpha.1',
storybook: '8.4.0-alpha.1',
sb: '8.4.0-alpha.1',
'@storybook/cli': '8.4.0-alpha.1',
'@storybook/codemod': '8.4.0-alpha.1',
'@storybook/core-webpack': '8.4.0-alpha.1',
'create-storybook': '8.4.0-alpha.1',
'@storybook/csf-plugin': '8.4.0-alpha.1',
'@storybook/instrumenter': '8.4.0-alpha.1',
'@storybook/react-dom-shim': '8.4.0-alpha.1',
'@storybook/source-loader': '8.4.0-alpha.1',
'@storybook/test': '8.4.0-alpha.1',
'@storybook/preset-create-react-app': '8.4.0-alpha.1',
'@storybook/preset-html-webpack': '8.4.0-alpha.1',
'@storybook/preset-preact-webpack': '8.4.0-alpha.1',
'@storybook/preset-react-webpack': '8.4.0-alpha.1',
'@storybook/preset-server-webpack': '8.4.0-alpha.1',
'@storybook/preset-svelte-webpack': '8.4.0-alpha.1',
'@storybook/preset-vue3-webpack': '8.4.0-alpha.1',
'@storybook/html': '8.4.0-alpha.1',
'@storybook/preact': '8.4.0-alpha.1',
'@storybook/react': '8.4.0-alpha.1',
'@storybook/server': '8.4.0-alpha.1',
'@storybook/svelte': '8.4.0-alpha.1',
'@storybook/vue3': '8.4.0-alpha.1',
'@storybook/web-components': '8.4.0-alpha.1',
'@storybook/addon-a11y': '8.4.0-alpha.2',
'@storybook/addon-actions': '8.4.0-alpha.2',
'@storybook/addon-backgrounds': '8.4.0-alpha.2',
'@storybook/addon-controls': '8.4.0-alpha.2',
'@storybook/addon-docs': '8.4.0-alpha.2',
'@storybook/addon-essentials': '8.4.0-alpha.2',
'@storybook/addon-mdx-gfm': '8.4.0-alpha.2',
'@storybook/addon-highlight': '8.4.0-alpha.2',
'@storybook/addon-interactions': '8.4.0-alpha.2',
'@storybook/addon-jest': '8.4.0-alpha.2',
'@storybook/addon-links': '8.4.0-alpha.2',
'@storybook/addon-measure': '8.4.0-alpha.2',
'@storybook/addon-onboarding': '8.4.0-alpha.2',
'@storybook/addon-outline': '8.4.0-alpha.2',
'@storybook/addon-storysource': '8.4.0-alpha.2',
'@storybook/experimental-addon-test': '8.4.0-alpha.2',
'@storybook/addon-themes': '8.4.0-alpha.2',
'@storybook/addon-toolbars': '8.4.0-alpha.2',
'@storybook/addon-viewport': '8.4.0-alpha.2',
'@storybook/builder-vite': '8.4.0-alpha.2',
'@storybook/builder-webpack5': '8.4.0-alpha.2',
'@storybook/core': '8.4.0-alpha.2',
'@storybook/builder-manager': '8.4.0-alpha.2',
'@storybook/channels': '8.4.0-alpha.2',
'@storybook/client-logger': '8.4.0-alpha.2',
'@storybook/components': '8.4.0-alpha.2',
'@storybook/core-common': '8.4.0-alpha.2',
'@storybook/core-events': '8.4.0-alpha.2',
'@storybook/core-server': '8.4.0-alpha.2',
'@storybook/csf-tools': '8.4.0-alpha.2',
'@storybook/docs-tools': '8.4.0-alpha.2',
'@storybook/manager': '8.4.0-alpha.2',
'@storybook/manager-api': '8.4.0-alpha.2',
'@storybook/node-logger': '8.4.0-alpha.2',
'@storybook/preview': '8.4.0-alpha.2',
'@storybook/preview-api': '8.4.0-alpha.2',
'@storybook/router': '8.4.0-alpha.2',
'@storybook/telemetry': '8.4.0-alpha.2',
'@storybook/theming': '8.4.0-alpha.2',
'@storybook/types': '8.4.0-alpha.2',
'@storybook/angular': '8.4.0-alpha.2',
'@storybook/ember': '8.4.0-alpha.2',
'@storybook/experimental-nextjs-vite': '8.4.0-alpha.2',
'@storybook/html-vite': '8.4.0-alpha.2',
'@storybook/html-webpack5': '8.4.0-alpha.2',
'@storybook/nextjs': '8.4.0-alpha.2',
'@storybook/preact-vite': '8.4.0-alpha.2',
'@storybook/preact-webpack5': '8.4.0-alpha.2',
'@storybook/react-vite': '8.4.0-alpha.2',
'@storybook/react-webpack5': '8.4.0-alpha.2',
'@storybook/server-webpack5': '8.4.0-alpha.2',
'@storybook/svelte-vite': '8.4.0-alpha.2',
'@storybook/svelte-webpack5': '8.4.0-alpha.2',
'@storybook/sveltekit': '8.4.0-alpha.2',
'@storybook/vue3-vite': '8.4.0-alpha.2',
'@storybook/vue3-webpack5': '8.4.0-alpha.2',
'@storybook/web-components-vite': '8.4.0-alpha.2',
'@storybook/web-components-webpack5': '8.4.0-alpha.2',
'@storybook/blocks': '8.4.0-alpha.2',
storybook: '8.4.0-alpha.2',
sb: '8.4.0-alpha.2',
'@storybook/cli': '8.4.0-alpha.2',
'@storybook/codemod': '8.4.0-alpha.2',
'@storybook/core-webpack': '8.4.0-alpha.2',
'create-storybook': '8.4.0-alpha.2',
'@storybook/csf-plugin': '8.4.0-alpha.2',
'@storybook/instrumenter': '8.4.0-alpha.2',
'@storybook/react-dom-shim': '8.4.0-alpha.2',
'@storybook/source-loader': '8.4.0-alpha.2',
'@storybook/test': '8.4.0-alpha.2',
'@storybook/preset-create-react-app': '8.4.0-alpha.2',
'@storybook/preset-html-webpack': '8.4.0-alpha.2',
'@storybook/preset-preact-webpack': '8.4.0-alpha.2',
'@storybook/preset-react-webpack': '8.4.0-alpha.2',
'@storybook/preset-server-webpack': '8.4.0-alpha.2',
'@storybook/preset-svelte-webpack': '8.4.0-alpha.2',
'@storybook/preset-vue3-webpack': '8.4.0-alpha.2',
'@storybook/html': '8.4.0-alpha.2',
'@storybook/preact': '8.4.0-alpha.2',
'@storybook/react': '8.4.0-alpha.2',
'@storybook/server': '8.4.0-alpha.2',
'@storybook/svelte': '8.4.0-alpha.2',
'@storybook/vue3': '8.4.0-alpha.2',
'@storybook/web-components': '8.4.0-alpha.2',
};

View File

@ -1 +1 @@
export const version = '8.4.0-alpha.1';
export const version = '8.4.0-alpha.2';

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-manager",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook manager builder",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/channels",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/client-logger",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/components",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Core Storybook Components",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-common",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-events",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Event names used in storybook core",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-server",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/csf-tools",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Parse and manipulate CSF and Storybook config files",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/docs-tools",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Shared utility functions for frameworks to implement docs",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/manager-api",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Core Storybook Manager API & Context",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/manager",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Core Storybook UI",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/node-logger",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preview-api",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preview",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/router",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Core Storybook Router",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/telemetry",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Telemetry logging for crash reports and usage statistics",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/theming",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Core Storybook Components",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/types",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Core Storybook TS Types",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/angular",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Angular: Develop Angular components in isolation with hot reloading.",
"keywords": [
"storybook",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/ember",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Ember: Develop Ember Component in isolation with Hot Reloading.",
"homepage": "https://github.com/storybookjs/storybook/tree/next/code/frameworks/ember",
"bugs": {

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/experimental-nextjs-vite",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Next.js and Vite",
"keywords": [
"storybook",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/html-vite",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for HTML and Vite: Develop HTML in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/html-webpack5",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/nextjs",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Next.js",
"keywords": [
"storybook",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preact-vite",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Preact and Vite: Develop Preact components in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preact-webpack5",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Preact: Develop Preact Component in isolation.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/react-vite",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for React and Vite: Develop React components in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/react-webpack5",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for React: Develop React Component in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/server-webpack5",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/svelte-vite",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Svelte and Vite: Develop Svelte components in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/svelte-webpack5",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/sveltekit",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for SvelteKit",
"keywords": [
"storybook",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue3-vite",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Vue3 and Vite: Develop Vue3 components in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue3-webpack5",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/web-components-vite",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for web-components and Vite: Develop Web Components in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/web-components-webpack5",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for web-components: View web components snippets in isolation with Hot Reloading.",
"keywords": [
"lit",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/blocks",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook Doc Blocks",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "sb",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook CLI",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/cli",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook CLI",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "storybook",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook's CLI - install, dev, build, upgrade, and more",
"keywords": [
"cli",
@ -322,6 +322,14 @@
"devDependencies": {
"typescript": "^5.3.2"
},
"peerDependencies": {
"prettier": "^2 || ^3"
},
"peerDependenciesMeta": {
"prettier": {
"optional": true
}
},
"publishConfig": {
"access": "public"
},

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/codemod",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "A collection of codemod scripts written with JSCodeshift",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/core-webpack",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "create-storybook",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Initialize Storybook into your project",
"homepage": "https://github.com/storybookjs/storybook/tree/next/code/lib/create-storybook",
"bugs": {

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/csf-plugin",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Enrich CSF files via static analysis",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/instrumenter",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/react-dom-shim",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/source-loader",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Source loader",
"keywords": [
"lib",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/test",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/root",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"private": true,
"description": "Storybook root",
"homepage": "https://storybook.js.org/",
@ -36,6 +36,7 @@
"generate-sandboxes": "yarn --cwd ../scripts generate-sandboxes",
"github-release": "github-release-from-changelog",
"i": "yarn --cwd .. i",
"knip": "VITE_CJS_IGNORE_WARNING=1 ../scripts/node_modules/.bin/knip --config ../scripts/knip.config.ts",
"lint": "yarn lint:js && yarn lint:md",
"lint:ejs": "ejslint **/*.ejs",
"lint:js": "yarn lint:js:cmd . --quiet",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preset-create-react-app",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Create React App preset",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preset-html-webpack",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for HTML: View HTML snippets in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preset-preact-webpack",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Preact: Develop Preact Component in isolation.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preset-react-webpack",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for React: Develop React Component in isolation with Hot Reloading",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preset-server-webpack",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Server: View HTML snippets from a server in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preset-svelte-webpack",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Svelte: Develop Svelte Component in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preset-vue3-webpack",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook for Vue 3: Develop Vue 3 Components in isolation with Hot Reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/html",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook HTML renderer",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preact",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook Preact renderer",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/react",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook React renderer",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/server",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook Server renderer",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/svelte",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook Svelte renderer",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue3",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook Vue 3 renderer",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/web-components",
"version": "8.4.0-alpha.1",
"version": "8.4.0-alpha.2",
"description": "Storybook web-components renderer",
"keywords": [
"lit",

View File

@ -6088,7 +6088,6 @@ __metadata:
get-npm-tarball-url: "npm:^2.0.3"
glob: "npm:^10.0.0"
globby: "npm:^14.0.1"
handlebars: "npm:^4.7.7"
jiti: "npm:^1.21.6"
js-yaml: "npm:^4.1.0"
jsdoc-type-pratt-parser: "npm:^4.0.0"
@ -6137,6 +6136,11 @@ __metadata:
util: "npm:^0.12.5"
watchpack: "npm:^2.2.0"
ws: "npm:^8.2.3"
peerDependencies:
prettier: ^2 || ^3
peerDependenciesMeta:
prettier:
optional: true
languageName: unknown
linkType: soft
@ -16560,24 +16564,6 @@ __metadata:
languageName: node
linkType: hard
"handlebars@npm:^4.7.7":
version: 4.7.8
resolution: "handlebars@npm:4.7.8"
dependencies:
minimist: "npm:^1.2.5"
neo-async: "npm:^2.6.2"
source-map: "npm:^0.6.1"
uglify-js: "npm:^3.1.4"
wordwrap: "npm:^1.0.0"
dependenciesMeta:
uglify-js:
optional: true
bin:
handlebars: bin/handlebars
checksum: 10c0/7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d
languageName: node
linkType: hard
"happy-dom@npm:^14.12.0":
version: 14.12.0
resolution: "happy-dom@npm:14.12.0"
@ -20971,7 +20957,7 @@ __metadata:
languageName: node
linkType: hard
"minimist@npm:^1.0.0, minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.8":
"minimist@npm:^1.0.0, minimist@npm:^1.2.0, minimist@npm:^1.2.6, minimist@npm:^1.2.8":
version: 1.2.8
resolution: "minimist@npm:1.2.8"
checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6
@ -26319,6 +26305,11 @@ __metadata:
dependencies:
"@storybook/core": "workspace:*"
typescript: "npm:^5.3.2"
peerDependencies:
prettier: ^2 || ^3
peerDependenciesMeta:
prettier:
optional: true
bin:
getstorybook: ./bin/index.cjs
sb: ./bin/index.cjs
@ -27731,15 +27722,6 @@ __metadata:
languageName: node
linkType: hard
"uglify-js@npm:^3.1.4":
version: 3.17.4
resolution: "uglify-js@npm:3.17.4"
bin:
uglifyjs: bin/uglifyjs
checksum: 10c0/8b7fcdca69deb284fed7d2025b73eb747ce37f9aca6af53422844f46427152d5440601b6e2a033e77856a2f0591e4167153d5a21b68674ad11f662034ec13ced
languageName: node
linkType: hard
"unbox-primitive@npm:^1.0.2":
version: 1.0.2
resolution: "unbox-primitive@npm:1.0.2"
@ -29502,13 +29484,6 @@ __metadata:
languageName: node
linkType: hard
"wordwrap@npm:^1.0.0":
version: 1.0.0
resolution: "wordwrap@npm:1.0.0"
checksum: 10c0/7ed2e44f3c33c5c3e3771134d2b0aee4314c9e49c749e37f464bf69f2bcdf0cbf9419ca638098e2717cff4875c47f56a007532f6111c3319f557a2ca91278e92
languageName: node
linkType: hard
"workerpool@npm:^3.1.1":
version: 3.1.2
resolution: "workerpool@npm:3.1.2"

View File

@ -1 +1 @@
{"version":"8.4.0-alpha.1","info":{"plain":"- Addon Test: Support story name as test description - [#29147](https://github.com/storybookjs/storybook/pull/29147), thanks @InfiniteXyy!\n- Addon-Interactions: Use ansi-to-html for colored test errors - [#29110](https://github.com/storybookjs/storybook/pull/29110), thanks @kasperpeulen!\n- Angular: Fix sourceDecorator to apply excludeDecorators flag - [#29069](https://github.com/storybookjs/storybook/pull/29069), thanks @JSMike!\n- Builder-vite: Replace .at() call with [] in codegen - [#29048](https://github.com/storybookjs/storybook/pull/29048), thanks @Chudesnov!\n- CLI: Ensure `.gitignore` updated via CLI ends with a newline - [#29124](https://github.com/storybookjs/storybook/pull/29124), thanks @3w36zj6!\n- CLI: Fix skip-install for stable latest releases - [#29133](https://github.com/storybookjs/storybook/pull/29133), thanks @valentinpalkovic!\n- CLI: Show constraints in error when getting depndencies - [#29187](https://github.com/storybookjs/storybook/pull/29187), thanks @andrasczeh!\n- Core: Do not add packageManager field to package.json during `storybook dev` - [#29152](https://github.com/storybookjs/storybook/pull/29152), thanks @valentinpalkovic!\n- Core: Do not prebundle better-opn - [#29137](https://github.com/storybookjs/storybook/pull/29137), thanks @valentinpalkovic!\n- Core: Do not prebundle jsdoc-type-pratt-parser - [#29134](https://github.com/storybookjs/storybook/pull/29134), thanks @valentinpalkovic!\n- Core: Replace `fs-extra` with the native APIs - [#29126](https://github.com/storybookjs/storybook/pull/29126), thanks @ziebam!\n- Next.js: Upgrade sass-loader from ^12 to ^13 - [#29040](https://github.com/storybookjs/storybook/pull/29040), thanks @HoncharenkoZhenya!\n- React-Vite: Downgrade react-docgen-typescript plugin - [#29184](https://github.com/storybookjs/storybook/pull/29184), thanks @shilman!\n- UI: Fix composed storybook TooltipLinkList bug where href isn't passed forward - [#29175](https://github.com/storybookjs/storybook/pull/29175), thanks @JSMike!\n- Viewport-addon: Add InitialViewportKeys type to viewport addon - [#29182](https://github.com/storybookjs/storybook/pull/29182), thanks @hyeongrok7874!\n- Vite: Add jsdoc-type-pratt-parser to `optimizeDeps` - [#29179](https://github.com/storybookjs/storybook/pull/29179), thanks @tobiasdiez!"}}
{"version":"8.4.0-alpha.2","info":{"plain":"- CLI: Don't add `@storybook/addon-links` by default - [#29177](https://github.com/storybookjs/storybook/pull/29177), thanks @tobiasdiez!\n- Core: Make `prettier` an optional peer dependency - [#29223](https://github.com/storybookjs/storybook/pull/29223), thanks @JReinhold!\n- Core: Remove `handlebars` usage - [#29208](https://github.com/storybookjs/storybook/pull/29208), thanks @ndelangen!\n- Core: Replace `lodash` with `es-toolkit` - [#28981](https://github.com/storybookjs/storybook/pull/28981), thanks @ndelangen!\n- UI: Use production-mode `react` in manager - [#29197](https://github.com/storybookjs/storybook/pull/29197), thanks @ndelangen!"}}

Some files were not shown because too many files have changed in this diff Show More