Merge branch 'next' into patch-1

This commit is contained in:
jonniebigodes 2025-02-18 14:10:42 +00:00 committed by GitHub
commit e5e659c00a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
99 changed files with 264 additions and 203 deletions

View File

@ -1,3 +1,8 @@
## 8.6.0-beta.2
- CLI: Reimplement features prompt logic to handle `--yes` and fix `--features` - [#30534](https://github.com/storybookjs/storybook/pull/30534), thanks @ghengeveld!
- Telemetry: Don't count example stories towards CSF feature stats - [#30561](https://github.com/storybookjs/storybook/pull/30561), thanks @shilman!
## 8.6.0-beta.1
- Builder-Vite: Fix defaulting to allowing all hosts - [#30523](https://github.com/storybookjs/storybook/pull/30523), thanks @JReinhold!

View File

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

View File

@ -1 +1 @@
import './dist/preview';
export * from './dist/preview';

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-actions",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Switch backgrounds to view components in different settings",
"keywords": [
"addon",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-controls",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Document component usage and properties in Markdown",
"keywords": [
"addon",

View File

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

View File

@ -0,0 +1 @@
module.exports = require('./dist/preset');

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-links",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Inspect layouts by visualizing the box model",
"keywords": [
"storybook-addons",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-onboarding",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Integrate Vitest with Storybook",
"keywords": [
"storybook-addons",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/addon-themes",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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 @@
import type { Options } from 'storybook/internal/types';
import { genDynamicImport, genImport, genObjectFromRawEntries } from 'knitwork';
import { genDynamicImport, genObjectFromRawEntries } from 'knitwork';
import { normalize, relative } from 'pathe';
import { dedent } from 'ts-dedent';

View File

@ -1,6 +1,8 @@
import { getFrameworkName, loadPreviewOrConfigFile } from 'storybook/internal/common';
import type { Options, PreviewAnnotation } from 'storybook/internal/types';
import { dedent } from 'ts-dedent';
import { processPreviewAnnotation } from './utils/process-preview-annotation';
import { SB_VIRTUAL_FILES, getResolvedVirtualModuleId } from './virtual-file-names';
@ -21,7 +23,7 @@ export async function generateModernIframeScriptCode(options: Options, projectRo
// This is pulled out to a variable because it is reused in both the initial page load
// and the HMR handler. We don't use the hot.accept callback params because only the changed
// modules are provided, the rest are null. We can just re-import everything again in that case.
const getPreviewAnnotationsFunction = `
const getPreviewAnnotationsFunction = dedent`
const getProjectAnnotations = async (hmrPreviewAnnotationModules = []) => {
const preview = await import('${previewFileUrl}');
@ -43,25 +45,25 @@ export async function generateModernIframeScriptCode(options: Options, projectRo
const generateHMRHandler = (frameworkName: string): string => {
// Web components are not compatible with HMR, so disable HMR, reload page instead.
if (frameworkName === '@storybook/web-components-vite') {
return `
return dedent`
if (import.meta.hot) {
import.meta.hot.decline();
}`.trim();
}
return `
return dedent`
if (import.meta.hot) {
import.meta.hot.accept('${SB_VIRTUAL_FILES.VIRTUAL_STORIES_FILE}', (newModule) => {
// importFn has changed so we need to patch the new one in
window.__STORYBOOK_PREVIEW__.onStoriesChanged({ importFn: newModule.importFn });
// importFn has changed so we need to patch the new one in
window.__STORYBOOK_PREVIEW__.onStoriesChanged({ importFn: newModule.importFn });
});
import.meta.hot.accept(${JSON.stringify(previewAnnotationURLs)}, (previewAnnotationModules) => {
${getPreviewAnnotationsFunction}
// getProjectAnnotations has changed so we need to patch the new one in
window.__STORYBOOK_PREVIEW__.onGetProjectAnnotationsChanged({ getProjectAnnotations: () => getProjectAnnotations(previewAnnotationModules) });
});
}`.trim();
import.meta.hot.accept(${JSON.stringify(previewAnnotationURLs)}, (previewAnnotationModules) => {
${getPreviewAnnotationsFunction}
// getProjectAnnotations has changed so we need to patch the new one in
window.__STORYBOOK_PREVIEW__.onGetProjectAnnotationsChanged({ getProjectAnnotations: () => getProjectAnnotations(previewAnnotationModules) });
});
}`.trim();
};
/**
@ -72,24 +74,22 @@ export async function generateModernIframeScriptCode(options: Options, projectRo
*
* @todo Inline variable and remove `noinspection`
*/
const code = `
const code = dedent`
import { setup } from 'storybook/internal/preview/runtime';
import '${SB_VIRTUAL_FILES.VIRTUAL_ADDON_SETUP_FILE}';
setup();
import { composeConfigs, PreviewWeb, ClientApi } from 'storybook/internal/preview-api';
import { composeConfigs, PreviewWeb } from 'storybook/internal/preview-api';
import { isPreview } from 'storybook/internal/csf';
import { importFn } from '${SB_VIRTUAL_FILES.VIRTUAL_STORIES_FILE}';
${getPreviewAnnotationsFunction}
${getPreviewAnnotationsFunction}
window.__STORYBOOK_PREVIEW__ = window.__STORYBOOK_PREVIEW__ || new PreviewWeb(importFn, getProjectAnnotations);
window.__STORYBOOK_PREVIEW__ = window.__STORYBOOK_PREVIEW__ || new PreviewWeb(importFn, getProjectAnnotations);
window.__STORYBOOK_STORY_STORE__ = window.__STORYBOOK_STORY_STORE__ || window.__STORYBOOK_PREVIEW__.storyStore;
window.__STORYBOOK_STORY_STORE__ = window.__STORYBOOK_STORY_STORE__ || window.__STORYBOOK_PREVIEW__.storyStore;
${generateHMRHandler(frameworkName)};
`.trim();
${generateHMRHandler(frameworkName)};`.trim();
return code;
}

View File

@ -9,17 +9,17 @@ import type { Plugin } from 'vite';
export async function stripStoryHMRBoundary(): Promise<Plugin> {
const { createFilter } = await import('vite');
const filter = createFilter(/\.stories\.([tj])sx?$/);
const filter = createFilter(/\.stories\.\w+$/);
return {
name: 'storybook:strip-hmr-boundary-plugin',
enforce: 'post',
async transform(src: string, id: string) {
async transform(src, id) {
if (!filter(id)) {
return undefined;
}
const s = new MagicString(src);
s.replace(/import\.meta\.hot\.accept\(\);/, '');
s.replace(/import\.meta\.hot\.accept\w*/, '(function hmrBoundaryNoop(){})');
return {
code: s.toString(),

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/builder-webpack5",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Storybook framework-agnostic API",
"keywords": [
"storybook"

View File

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

View File

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

View File

@ -345,6 +345,19 @@ describe('StoryIndexGenerator', () => {
"title": "D",
"type": "story",
},
"example-button--story-one": {
"componentPath": undefined,
"id": "example-button--story-one",
"importPath": "./src/Button.stories.ts",
"name": "Story One",
"tags": [
"dev",
"test",
"foobar",
],
"title": "Example/Button",
"type": "story",
},
"first-nested-deeply-f--story-one": {
"componentPath": undefined,
"id": "first-nested-deeply-f--story-one",
@ -599,6 +612,19 @@ describe('StoryIndexGenerator', () => {
"title": "D",
"type": "story",
},
"example-button--story-one": {
"componentPath": undefined,
"id": "example-button--story-one",
"importPath": "./src/Button.stories.ts",
"name": "Story One",
"tags": [
"dev",
"test",
"foobar",
],
"title": "Example/Button",
"type": "story",
},
"first-nested-deeply-f--story-one": {
"componentPath": undefined,
"id": "first-nested-deeply-f--story-one",
@ -767,6 +793,8 @@ describe('StoryIndexGenerator', () => {
"a--story-one",
"b--docs",
"b--story-one",
"example-button--docs",
"example-button--story-one",
"d--docs",
"d--story-one",
"h--docs",
@ -809,6 +837,8 @@ describe('StoryIndexGenerator', () => {
"a--story-one",
"b--docs",
"b--story-one",
"example-button--docs",
"example-button--story-one",
"d--docs",
"d--story-one",
"h--docs",
@ -1797,6 +1827,7 @@ describe('StoryIndexGenerator', () => {
"second-nested-g--story-one",
"componentreference--docs",
"notitle--docs",
"example-button--story-one",
"h--story-one",
"componentpath-extension--story-one",
"componentpath-noextension--story-one",
@ -1825,7 +1856,7 @@ describe('StoryIndexGenerator', () => {
const generator = new StoryIndexGenerator([specifier], options);
await generator.initialize();
await generator.getIndex();
expect(readCsfMock).toHaveBeenCalledTimes(11);
expect(readCsfMock).toHaveBeenCalledTimes(12);
readCsfMock.mockClear();
await generator.getIndex();
@ -1883,7 +1914,7 @@ describe('StoryIndexGenerator', () => {
const generator = new StoryIndexGenerator([specifier], options);
await generator.initialize();
await generator.getIndex();
expect(readCsfMock).toHaveBeenCalledTimes(11);
expect(readCsfMock).toHaveBeenCalledTimes(12);
generator.invalidate(specifier, './src/B.stories.ts', false);
@ -1968,7 +1999,7 @@ describe('StoryIndexGenerator', () => {
const generator = new StoryIndexGenerator([specifier], options);
await generator.initialize();
await generator.getIndex();
expect(readCsfMock).toHaveBeenCalledTimes(11);
expect(readCsfMock).toHaveBeenCalledTimes(12);
generator.invalidate(specifier, './src/B.stories.ts', true);
@ -2007,7 +2038,7 @@ describe('StoryIndexGenerator', () => {
const generator = new StoryIndexGenerator([specifier], options);
await generator.initialize();
await generator.getIndex();
expect(readCsfMock).toHaveBeenCalledTimes(11);
expect(readCsfMock).toHaveBeenCalledTimes(12);
generator.invalidate(specifier, './src/B.stories.ts', true);

View File

@ -5,6 +5,7 @@ import { dirname, extname, join, normalize, relative, resolve, sep } from 'node:
import { commonGlobOptions, normalizeStoryPath } from '@storybook/core/common';
import { combineTags, storyNameFromExport, toId } from '@storybook/core/csf';
import { isExampleStoryId } from '@storybook/core/telemetry';
import type {
DocsIndexEntry,
DocsOptions,
@ -269,7 +270,10 @@ export class StoryIndexGenerator {
return item;
}
addStats(item.extra.stats, statsSummary);
// don't count example stories towards feature usage stats
if (!isExampleStoryId(item.id)) {
addStats(item.extra.stats, statsSummary);
}
// Drop extra data used for internal bookkeeping
const { extra, ...existing } = item;

View File

@ -0,0 +1,8 @@
const component = {};
export default {
title: 'Example/Button',
component,
tags: ['foobar'],
};
export const StoryOne = {};

View File

@ -255,6 +255,18 @@ describe('useStoriesJson', () => {
"title": "docs2/Yabbadabbadooo",
"type": "docs",
},
"example-button--story-one": {
"id": "example-button--story-one",
"importPath": "./src/Button.stories.ts",
"name": "Story One",
"tags": [
"dev",
"test",
"foobar",
],
"title": "Example/Button",
"type": "story",
},
"first-nested-deeply-f--story-one": {
"id": "first-nested-deeply-f--story-one",
"importPath": "./src/first-nested/deeply/F.stories.js",

View File

@ -1 +1 @@
export const version = '8.6.0-beta.1';
export const version = '8.6.0-beta.2';

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/angular",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Storybook for Next.js and Vite",
"keywords": [
"storybook",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/html-vite",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Storybook for Next.js",
"keywords": [
"storybook",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preact-vite",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Storybook for Preact: Develop Preact Component in isolation.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/react-native-web-vite",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Develop react-native components an isolated web environment with hot reloading.",
"keywords": [
"storybook"

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/react-vite",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Storybook for SvelteKit",
"keywords": [
"storybook",

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/vue3-vite",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Storybook Doc Blocks",
"keywords": [
"storybook"

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "storybook",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Storybook's CLI - install, dev, build, upgrade, and more",
"keywords": [
"cli",

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "create-storybook",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Enrich CSF files via static analysis",
"keywords": [
"storybook"

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/root",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.2",
"private": true,
"description": "Storybook root",
"homepage": "https://storybook.js.org/",

View File

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

View File

@ -1,6 +1,6 @@
{
"name": "@storybook/preset-html-webpack",
"version": "8.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.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.6.0-beta.1",
"version": "8.6.0-beta.2",
"description": "Storybook HTML renderer",
"keywords": [
"storybook"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1 +1 @@
{"version":"8.6.0-beta.1","info":{"plain":"- Builder-Vite: Fix defaulting to allowing all hosts - [#30523](https://github.com/storybookjs/storybook/pull/30523), thanks @JReinhold!\n- React: Fix incorrect import in preview.ts - [#30542](https://github.com/storybookjs/storybook/pull/30542), thanks @mrginglymus!\n- Tags: Add story/meta usage telemetry - [#30555](https://github.com/storybookjs/storybook/pull/30555), thanks @shilman!\n- UI: Fix tags sort for browser back-compat - [#30547](https://github.com/storybookjs/storybook/pull/30547), thanks @shilman!"}}
{"version":"8.6.0-beta.2","info":{"plain":"- CLI: Reimplement features prompt logic to handle `--yes` and fix `--features` - [#30534](https://github.com/storybookjs/storybook/pull/30534), thanks @ghengeveld!\n- Telemetry: Don't count example stories towards CSF feature stats - [#30561](https://github.com/storybookjs/storybook/pull/30561), thanks @shilman!"}}