import type { StorybookConfig } from '@storybook/nextjs-vite' import { mergeConfig } from 'vite' const config: StorybookConfig = { framework: '@storybook/nextjs-vite', stories: ['../lib/**/*.mdx', '../lib/**/*.stories.@(js|jsx|mjs|ts|tsx)'], addons: [ '@storybook/addon-links', '@storybook/addon-themes', '@storybook/addon-vitest', '@storybook/addon-docs', '@storybook/addon-a11y', 'storybook-react-intl', ], core: { disableTelemetry: true, }, async viteFinal(config) { return mergeConfig(config, { plugins: [ // Add babel plugin for react-intl transformation { name: 'formatjs-transform', async transform(code, id) { if (id.includes('node_modules')) return if (!/\.(jsx?|tsx?)$/.test(id)) return const babel = await import('@babel/core') const result = babel.transformSync(code, { plugins: [ [ 'formatjs', { idInterpolationPattern: '[sha512:contenthash:base64:6]', ast: true, }, ], ], filename: id, }) return result?.code }, }, ], }) }, } export default config