Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
91 commits
Select commit Hold shift + click to select a range
df5ee7e
Fix summary undefined type issue
afsalshamsudeen Sep 30, 2025
396bde6
Merge branch 'next' into fix-undefined-type-issue
afsalshamsudeen Sep 30, 2025
fc83a68
Merge branch 'next' into fix-undefined-type-issue
Sidnioulz Oct 13, 2025
bfbfdd7
Merge branch 'next' into fix-undefined-type-issue
afsalshamsudeen Oct 14, 2025
b80ec5b
fix(docs): fix !autodocs stories showing in primary preview
ia319 Oct 11, 2025
e257102
docs(blocks): clarify comment for usePrimaryStory hook
ia319 Oct 11, 2025
de5ac0f
test(docs): add unit tests for usePrimaryStory hook
ia319 Oct 20, 2025
32407f9
chore(docs): enable autodocs for StoriesParameters example
ia319 Oct 23, 2025
1068768
chore(docs): add stories for autodocs behavior testing in Primary.sto…
ia319 Oct 23, 2025
293df88
Merge branch 'next' into bug/32683
ia319 Oct 25, 2025
796471b
Merge branch 'next' into bug/32683
ia319 Oct 29, 2025
e8786c8
fix(nextjs): support top-level weight/style in localFont with string src
Chiman2937 Nov 10, 2025
0426073
Upgrade to Vitest 4
yannbf Nov 18, 2025
7cc4d03
Fix tests
yannbf Nov 19, 2025
01b435e
Merge branch '10.1-with-canary-release' into fix-undefined-type-issue
Sidnioulz Nov 19, 2025
402c73a
Merge branch 'next' into bug/32683
Sidnioulz Nov 19, 2025
61e8944
Merge branch 'next' into fix-undefined-type-issue
Sidnioulz Nov 19, 2025
fdba2c1
Merge branch 'next' into yann/vitest-v4-upgrade
yannbf Nov 20, 2025
e9acdcc
Merge branch 'next' into fix/next-font-local-weight-support
Chiman2937 Nov 25, 2025
08b56ed
Upgrade Chromatic CLI
ghengeveld Nov 25, 2025
4390ec7
Update useChecklist to provide 'ready' state, disable ChecklistWidget…
ghengeveld Nov 26, 2025
5604527
Fix play fn notice message in local storybook
yannbf Nov 26, 2025
c496071
fix cwd handling for negated globs
ia319 Nov 27, 2025
518d8c9
Angular: Honor logfile and loglevel flags
valentinpalkovic Nov 27, 2025
504b8fc
angular(builders): honor --loglevel/--logfile; normalize DefinePlugin…
valentinpalkovic Nov 27, 2025
ef1b755
Fix types
valentinpalkovic Nov 28, 2025
4ae1710
fix: re-export StorybooConfig in <framework>/node
unional Nov 28, 2025
eff8e92
fix: export globals types for a11y, backgrounds, and viewport addons
unional Nov 28, 2025
a531abd
Remove obsolete code
valentinpalkovic Nov 28, 2025
2d6c366
Fix build on windows
mrginglymus Nov 28, 2025
f0f5d63
Merge branch 'next' into upgrade-chromatic-cli
ghengeveld Nov 29, 2025
b18627b
Merge branch 'next' into yann/vitest-v4-upgrade
yannbf Dec 1, 2025
2eba882
conflict updates
yannbf Dec 1, 2025
ac93db3
Delete scripts/yarn.lock
ndelangen Dec 1, 2025
dc14507
Merge branch 'next' into upgrade-chromatic-cli
ndelangen Dec 1, 2025
0aea115
dedupe
ndelangen Dec 1, 2025
7ce4676
Make extra fixes and align Vitest versions
yannbf Dec 1, 2025
376aeb2
Merge branch 'next' into fix/negated-glob-patterns
ia319 Dec 1, 2025
0526869
fix threads options
yannbf Dec 1, 2025
4327878
fix check
yannbf Dec 1, 2025
3bd960c
Revert this: debug
yannbf Dec 1, 2025
8dc66d3
Merge remote-tracking branch 'origin/next' into valentin/angular-logl…
valentinpalkovic Dec 1, 2025
4ebfe49
Change log output from outro to info for better clarity
valentinpalkovic Dec 1, 2025
579c575
Improve error handling for log file writing across multiple components
valentinpalkovic Dec 1, 2025
38fce68
move worker setup up globally
yannbf Dec 1, 2025
c7ac92c
Merge branch 'next' into pr/ia319/33241
ndelangen Dec 1, 2025
31db5ab
Merge branch 'next' into yann/fix-local-theme-decorator
yannbf Dec 1, 2025
86e674d
Merge branch 'next' into fix-windows
valentinpalkovic Dec 1, 2025
8a2bdcc
Merge branch 'next' into fix/next-font-local-weight-support
valentinpalkovic Dec 1, 2025
5020b6e
make sanitize test platform agnostic
yannbf Dec 1, 2025
8162e1d
Merge pull request #33191 from storybookjs/yann/fix-local-theme-decor…
yannbf Dec 1, 2025
a2bface
Rework Get Started page CTA positioning and copy
Sidnioulz Nov 10, 2025
80c1992
Make create command codeblock a 'new users' variant
Sidnioulz Nov 14, 2025
3f07c01
Docs: Rewrite frameworks to focus on new users
Sidnioulz Nov 24, 2025
5df9c2a
Update docs/get-started/frameworks/react-native-web-vite.mdx
Sidnioulz Nov 25, 2025
1849c93
Docs: Remove FAQ item relating to Storybook 6
Sidnioulz Nov 25, 2025
51e571e
Docs: Make version compat more visible in framework docs
Sidnioulz Nov 26, 2025
0115ec1
Docs: Change requirements headings
Sidnioulz Nov 26, 2025
5d9610c
fix test
yannbf Dec 1, 2025
7782cf7
Merge pull request #33212 from storybookjs/valentin/angular-loglevel-…
valentinpalkovic Dec 1, 2025
b1501dd
Merge pull request #32712 from ia319/bug/32683
valentinpalkovic Dec 1, 2025
fe006e0
Merge pull request #32585 from afsalshamsudeen/fix-undefined-type-issue
valentinpalkovic Dec 1, 2025
354e26d
Merge pull request #33224 from mrginglymus/fix-windows
valentinpalkovic Dec 1, 2025
d6a9d22
Merge pull request #32998 from Chiman2937/fix/next-font-local-weight-…
valentinpalkovic Dec 1, 2025
882c30b
fix(telemetry): cache Storybook metadata by main config content hash;…
valentinpalkovic Dec 1, 2025
b549afa
dedupe packages
yannbf Dec 1, 2025
1473fe5
Merge branch 'next' into yann/vitest-v4-upgrade
yannbf Dec 1, 2025
4aee6a4
Merge pull request #33069 from storybookjs/sidnioulz/growth-www-cta-b…
kylegach Dec 1, 2025
c256dd2
fix lint
yannbf Dec 2, 2025
d3704dd
Merge branch 'next' into next
ndelangen Dec 2, 2025
2bdf4c7
final changes
yannbf Dec 2, 2025
874314a
Merge branch 'next' into yann/vitest-v4-upgrade
ndelangen Dec 2, 2025
3898e36
Merge pull request #33216 from unional/next
ndelangen Dec 2, 2025
cda9927
Merge branch 'next' into valentin/fix-telemetry-metadata-cachingn
valentinpalkovic Dec 2, 2025
0bb44c9
Update CHANGELOG.md for v10.1.3 [skip ci]
storybook-bot Dec 2, 2025
938f9ec
implement review feedback
yannbf Dec 2, 2025
a62905a
Merge branch 'yann/vitest-v4-upgrade' of github.com:storybookjs/story…
yannbf Dec 2, 2025
b2ba3be
Merge pull request #33086 from storybookjs/yann/vitest-v4-upgrade
yannbf Dec 2, 2025
1b6f7ce
Merge branch 'next' into upgrade-chromatic-cli
ghengeveld Dec 2, 2025
e44ce98
Fix: Update Webpack image aliases to use fileURLToPath for better res…
ndelangen Dec 2, 2025
833fced
Merge pull request #33176 from storybookjs/upgrade-chromatic-cli
yannbf Dec 2, 2025
28bd2de
Merge pull request #33256 from storybookjs/norbert/prevent-monorepo-i…
valentinpalkovic Dec 2, 2025
d839701
Merge branch 'next' into valentin/fix-telemetry-metadata-cachingn
valentinpalkovic Dec 2, 2025
3864300
Merge pull request #33247 from storybookjs/valentin/fix-telemetry-met…
valentinpalkovic Dec 2, 2025
453d754
Merge pull request #33241 from ia319/fix/negated-glob-patterns
valentinpalkovic Dec 2, 2025
a243195
Core: Enhance getPrettier function to provide prettier interface
valentinpalkovic Dec 2, 2025
5b91d2c
Merge branch 'next-release' into next
storybook-bot Dec 2, 2025
98a93e4
Vue: Fix URL args synchronization
valentinpalkovic Dec 2, 2025
e902a7a
Revert "Vue: Fix URL args synchronization"
valentinpalkovic Dec 2, 2025
83c5db1
Merge pull request #33260 from storybookjs/valentin/fix-prettier-type
valentinpalkovic Dec 3, 2025
cec944c
Write changelog for 10.2.0-alpha.3 [skip ci]
storybook-bot Dec 3, 2025
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
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
## 10.1.3

- Angular: Honor --loglevel and --logfile in dev/build - [#33212](https://github.com/storybookjs/storybook/pull/33212), thanks @valentinpalkovic!
- Core: Minor UI fixes - [#33218](https://github.com/storybookjs/storybook/pull/33218), thanks @ghengeveld!
- Telemetry: Add playwright-prompt - [#33229](https://github.com/storybookjs/storybook/pull/33229), thanks @valentinpalkovic!

## 10.1.2

- Checklist: Fix how state changes are reported and drop some completion restrictions - [#33217](https://github.com/storybookjs/storybook/pull/33217), thanks @ghengeveld!
Expand Down
13 changes: 13 additions & 0 deletions CHANGELOG.prerelease.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
## 10.2.0-alpha.3

- Addon Docs: Skip `!autodocs` stories when computing primary story - [#32712](https://github.com/storybookjs/storybook/pull/32712), thanks @ia319!
- Angular: Honor --loglevel and --logfile in dev/build - [#33212](https://github.com/storybookjs/storybook/pull/33212), thanks @valentinpalkovic!
- CSF: Export type to prevent `type cannot be named`-errors - [#33216](https://github.com/storybookjs/storybook/pull/33216), thanks @unional!
- Chore: Upgrade Chromatic CLI - [#33176](https://github.com/storybookjs/storybook/pull/33176), thanks @ghengeveld!
- Core: Enhance getPrettier function to provide prettier interface - [#33260](https://github.com/storybookjs/storybook/pull/33260), thanks @valentinpalkovic!
- Core: Fix cwd handling for negated globs - [#33241](https://github.com/storybookjs/storybook/pull/33241), thanks @ia319!
- NextJS: Alias image to use fileURLToPath for better resolution - [#33256](https://github.com/storybookjs/storybook/pull/33256), thanks @ndelangen!
- Nextj.js: Support top-level weight/style in next/font/local with string src - [#32998](https://github.com/storybookjs/storybook/pull/32998), thanks @Chiman2937!
- Telemetry: Cache Storybook metadata by main config content hash - [#33247](https://github.com/storybookjs/storybook/pull/33247), thanks @valentinpalkovic!
- TypeScript: Fix summary undefined type issue - [#32585](https://github.com/storybookjs/storybook/pull/32585), thanks @afsalshamsudeen!

## 10.2.0-alpha.2

- CLI: Remove any return type of getAbsolutePath - [#32977](https://github.com/storybookjs/storybook/pull/32977), thanks @nzws!
Expand Down
1 change: 1 addition & 0 deletions code/.storybook/preview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ const PlayFnNotice = styled.div(
padding: '3px 8px',
fontSize: '10px',
fontWeight: 'bold',
zIndex: 99,
'> *': {
display: 'block',
},
Expand Down
5 changes: 3 additions & 2 deletions code/.storybook/storybook.setup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,10 @@ setProjectAnnotations([
// https://vitest.dev/guide/browser/interactivity-api.html
loaders: async (context) => {
if (globalThis.__vitest_browser__) {
const vitest = await import('@vitest/browser/context');
const vitest = await import('vitest/browser');
const { userEvent: browserEvent } = vitest;
context.userEvent = browserEvent.setup();
// Unfortunately the types of userEvent don't match so we cast it
context.userEvent = (browserEvent as unknown as typeof storybookEvent).setup();
context.expect = vitestExpect;
} else {
context.userEvent = storybookEvent.setup();
Expand Down
2 changes: 1 addition & 1 deletion code/addons/a11y/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ import type { A11yTypes } from './types';

export { PARAM_KEY } from './constants';
export * from './params';
export type { A11yTypes } from './types';
export type { A11yGlobals, A11yTypes } from './types';

export default () => definePreviewAddon<A11yTypes>(addonAnnotations);
12 changes: 8 additions & 4 deletions code/addons/docs/src/blocks/blocks/Controls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { ArgsTableError, ArgsTable as PureArgsTable, TabbedArgsTable } from '../
import { DocsContext } from './DocsContext';
import { useArgs } from './useArgs';
import { useGlobals } from './useGlobals';
import { usePrimaryStory } from './usePrimaryStory';
import { getComponentName } from './utils';

type ControlsParameters = {
Expand All @@ -39,12 +40,15 @@ function extractComponentArgTypes(

export const Controls: FC<ControlsProps> = (props) => {
const { of } = props;
if ('of' in props && of === undefined) {
throw new Error('Unexpected `of={undefined}`, did you mistype a CSF file reference?');
const context = useContext(DocsContext);
const primaryStory = usePrimaryStory();

const story = of ? context.resolveOf(of, ['story']).story : primaryStory;

if (!story) {
return null;
}

const context = useContext(DocsContext);
const { story } = context.resolveOf(of || 'story', ['story']);
const { parameters, argTypes, component, subcomponents } = story;
const controlsParameters = parameters.docs?.controls || ({} as ControlsParameters);

Expand Down
22 changes: 22 additions & 0 deletions code/addons/docs/src/blocks/blocks/Primary.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import type { Meta, StoryObj } from '@storybook/react-vite';

import * as DefaultButtonStories from '../examples/Button.stories';
import * as ButtonNoAutodocsStories from '../examples/ButtonNoAutodocs.stories';
import * as ButtonSomeAutodocsStories from '../examples/ButtonSomeAutodocs.stories';
import * as StoriesParametersStories from '../examples/StoriesParameters.stories';
import { Primary } from './Primary';

Expand Down Expand Up @@ -59,3 +61,23 @@ export const WithoutToolbarOfStringMetaAttached: Story = {
},
parameters: { relativeCsfPaths: ['../examples/StoriesParameters.stories'] },
};

export const NoAutodocsExample: Story = {
name: 'Button (No Autodocs)',
args: {
of: ButtonNoAutodocsStories,
},
parameters: {
relativeCsfPaths: ['../examples/ButtonNoAutodocs.stories'],
},
};

export const SomeAutodocsExample: Story = {
name: 'Button (Some Autodocs)',
args: {
of: ButtonSomeAutodocsStories,
},
parameters: {
relativeCsfPaths: ['../examples/ButtonSomeAutodocs.stories'],
},
};
23 changes: 4 additions & 19 deletions code/addons/docs/src/blocks/blocks/Primary.tsx
Original file line number Diff line number Diff line change
@@ -1,26 +1,11 @@
import type { FC } from 'react';
import React, { useContext } from 'react';
import React from 'react';

import { DocsContext } from './DocsContext';
import { DocsStory } from './DocsStory';
import type { Of } from './useOf';
import { useOf } from './useOf';
import { usePrimaryStory } from './usePrimaryStory';

interface PrimaryProps {
/** Specify where to get the primary story from. */
of?: Of;
}

export const Primary: FC<PrimaryProps> = (props) => {
const { of } = props;
if ('of' in props && of === undefined) {
throw new Error('Unexpected `of={undefined}`, did you mistype a CSF file reference?');
}

const { csfFile } = useOf(of || 'meta', ['meta']);
const context = useContext(DocsContext);

const primaryStory = context.componentStoriesFromCSFFile(csfFile)[0];
export const Primary: FC = () => {
const primaryStory = usePrimaryStory();

return primaryStory ? (
<DocsStory of={primaryStory.moduleExport} expanded={false} __primary withToolbar />
Expand Down
66 changes: 66 additions & 0 deletions code/addons/docs/src/blocks/blocks/usePrimaryStory.test.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
// @vitest-environment happy-dom
import { renderHook } from '@testing-library/react';
import { describe, expect, it, vi } from 'vitest';

import React from 'react';
import type { FC, PropsWithChildren } from 'react';

import type { PreparedStory } from 'storybook/internal/types';

import type { DocsContextProps } from './DocsContext';
import { DocsContext } from './DocsContext';
import { usePrimaryStory } from './usePrimaryStory';

const stories: Record<string, Partial<PreparedStory>> = {
story1: { name: 'Story One', tags: ['!autodocs'] },
story2: { name: 'Story Two', tags: ['autodocs'] },
story3: { name: 'Story Three', tags: ['autodocs'] },
story4: { name: 'Story Four', tags: [] },
};

const createMockContext = (storyList: PreparedStory[]) => ({
componentStories: vi.fn(() => storyList),
});

const Wrapper: FC<PropsWithChildren<{ context: Partial<DocsContextProps> }>> = ({
children,
context,
}) => <DocsContext.Provider value={context as DocsContextProps}>{children}</DocsContext.Provider>;

describe('usePrimaryStory', () => {
it('ignores !autodocs stories', () => {
const mockContext = createMockContext([
stories.story1,
stories.story2,
stories.story3,
] as PreparedStory[]);
const { result } = renderHook(() => usePrimaryStory(), {
wrapper: ({ children }) => <Wrapper context={mockContext}>{children}</Wrapper>,
});
expect(result.current?.name).toBe('Story Two');
});

it('selects the first autodocs story', () => {
const mockContext = createMockContext([stories.story2, stories.story3] as PreparedStory[]);
const { result } = renderHook(() => usePrimaryStory(), {
wrapper: ({ children }) => <Wrapper context={mockContext}>{children}</Wrapper>,
});
expect(result.current?.name).toBe('Story Two');
});

it('returns undefined if no story has "autodocs" tag', () => {
const mockContext = createMockContext([stories.story1, stories.story4] as PreparedStory[]);
const { result } = renderHook(() => usePrimaryStory(), {
wrapper: ({ children }) => <Wrapper context={mockContext}>{children}</Wrapper>,
});
expect(result.current).toBeUndefined();
});

it('returns undefined for empty story list', () => {
const mockContext = createMockContext([]);
const { result } = renderHook(() => usePrimaryStory(), {
wrapper: ({ children }) => <Wrapper context={mockContext}>{children}</Wrapper>,
});
expect(result.current).toBeUndefined();
});
});
15 changes: 15 additions & 0 deletions code/addons/docs/src/blocks/blocks/usePrimaryStory.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { useContext } from 'react';

import type { PreparedStory } from 'storybook/internal/types';

import { DocsContext } from './DocsContext';

/**
* A hook to get the primary story for the current component's doc page. It defines the primary
* story as the first story that includes the 'autodocs' tag
*/
export const usePrimaryStory = (): PreparedStory | undefined => {
const context = useContext(DocsContext);
const stories = context.componentStories();
return stories.find((story) => story.tags.includes('autodocs'));
};
4 changes: 2 additions & 2 deletions code/addons/docs/src/blocks/components/ArgsTable/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,11 @@ export interface ArgType {
disable?: boolean;
subcategory?: string;
defaultValue?: {
summary?: string;
summary?: string | undefined;
detail?: string;
};
type?: {
summary?: string;
summary?: string | undefined;
detail?: string;
};
readonly?: boolean;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import { EmptyExample } from './EmptyExample';
const meta = {
title: 'examples/Stories for the Stories and Primary Block',
component: EmptyExample,
tags: ['autodocs'],
} satisfies Meta<typeof EmptyExample>;
export default meta;

Expand Down
6 changes: 3 additions & 3 deletions code/addons/vitest/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -76,8 +76,8 @@
"@types/micromatch": "^4.0.0",
"@types/node": "^22.0.0",
"@types/semver": "^7",
"@vitest/browser-playwright": "^4.0.1",
"@vitest/runner": "^4.0.1",
"@vitest/browser-playwright": "^4.0.14",
"@vitest/runner": "^4.0.14",
"empathic": "^2.0.0",
"es-toolkit": "^1.36.0",
"istanbul-lib-report": "^3.0.1",
Expand All @@ -93,7 +93,7 @@
"tree-kill": "^1.2.2",
"ts-dedent": "^2.2.0",
"typescript": "^5.8.3",
"vitest": "^4.0.1"
"vitest": "^4.0.14"
},
"peerDependencies": {
"@vitest/browser": "^3.0.0 || ^4.0.0",
Expand Down
14 changes: 10 additions & 4 deletions code/addons/vitest/src/node/test-manager.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { describe, expect, it, vi } from 'vitest';
import { createVitest as actualCreateVitest } from 'vitest/node';
import { beforeEach, describe, expect, it, vi } from 'vitest';

import { Channel, type ChannelTransport } from 'storybook/internal/channels';
import { experimental_MockUniversalStore } from 'storybook/internal/core-server';
Expand Down Expand Up @@ -43,14 +42,21 @@ const vitest = vi.hoisted(() => ({
},
}));

const mockCreateVitest = vi.fn();

vi.mock('vitest/node', async (importOriginal) => ({
...(await importOriginal()),
createVitest: vi.fn(() => Promise.resolve(vitest)),
createVitest: mockCreateVitest,
}));

const createVitest = vi.mocked(actualCreateVitest);
// Use the mock function directly
const createVitest = mockCreateVitest;

const transport = { setHandler: vi.fn(), send: vi.fn() } satisfies ChannelTransport;

beforeEach(() => {
createVitest.mockResolvedValue(vitest);
});
const mockChannel = new Channel({ transport });
const mockStore = new experimental_MockUniversalStore<StoreState, StoreEvent>(
{
Expand Down
2 changes: 1 addition & 1 deletion code/addons/vitest/src/node/test-manager.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { TestResult, TestState } from 'vitest/dist/node.js';
import type { TestResult, TestState } from 'vitest/node';

import type { experimental_UniversalStore } from 'storybook/internal/core-server';
import type {
Expand Down
2 changes: 1 addition & 1 deletion code/addons/vitest/src/vitest-plugin/test-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { type Report, composeStory, getCsfFactoryAnnotations } from 'storybook/p

import { setViewport } from './viewports';

declare module '@vitest/browser/context' {
declare module 'vitest/browser' {
interface BrowserCommands {
getInitialGlobals: () => Promise<Record<string, any>>;
}
Expand Down
9 changes: 7 additions & 2 deletions code/core/src/backgrounds/preview.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,12 @@ import { definePreviewAddon } from 'storybook/internal/csf';

import { PARAM_KEY } from './constants';
import { withBackgroundAndGrid } from './decorator';
import type { BackgroundTypes, BackgroundsParameters, GlobalState } from './types';
import type {
BackgroundTypes,
BackgroundsGlobals,
BackgroundsParameters,
GlobalState,
} from './types';

const decorators = globalThis.FEATURES?.backgrounds ? [withBackgroundAndGrid] : [];

Expand All @@ -21,7 +26,7 @@ const initialGlobals: Record<string, GlobalState> = {
[PARAM_KEY]: { value: undefined, grid: false },
};

export type { BackgroundTypes };
export type { BackgroundTypes, BackgroundsGlobals };

export default () =>
definePreviewAddon<BackgroundTypes>({
Expand Down
12 changes: 8 additions & 4 deletions code/core/src/bin/core.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,10 @@ addToGlobalContext('cliVersion', version);
*/

const handleCommandFailure = async (logFilePath: string | boolean): Promise<never> => {
const logFile = await logTracker.writeToFile(logFilePath);
logger.log(`Debug logs are written to: ${logFile}`);
try {
const logFile = await logTracker.writeToFile(logFilePath);
logger.log(`Debug logs are written to: ${logFile}`);
} catch {}
logger.outro('Storybook exited with an error');
process.exit(1);
};
Expand Down Expand Up @@ -66,8 +68,10 @@ const command = (name: string) =>
})
.hook('postAction', async (command) => {
if (logTracker.shouldWriteLogsToFile) {
const logFile = await logTracker.writeToFile(command.getOptionValue('logfile'));
logger.outro(`Debug logs are written to: ${logFile}`);
try {
const logFile = await logTracker.writeToFile(command.getOptionValue('logfile'));
logger.outro(`Debug logs are written to: ${logFile}`);
} catch {}
}
});

Expand Down
1 change: 0 additions & 1 deletion code/core/src/channels/index.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,7 +148,6 @@ describe('Channel', () => {
});

it('should use setImmediate if async is true', () => {
// @ts-expect-error no idea what's going on here!
global.setImmediate = vi.fn(setImmediate);

channel = new Channel({ async: true, transport });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ describe('JsPackageManager', () => {
beforeEach(() => {
// @ts-expect-error Ignore abstract class error
jsPackageManager = new JsPackageManager();
// @ts-expect-error latestVersion is a method that exists on the instance
mockLatestVersion = vi.spyOn(jsPackageManager, 'latestVersion');

vi.clearAllMocks();
Expand Down
Loading