-
Notifications
You must be signed in to change notification settings - Fork 112
Expand file tree
/
Copy pathmain.ts
More file actions
93 lines (88 loc) · 2.37 KB
/
main.ts
File metadata and controls
93 lines (88 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
import { fileURLToPath, URL } from 'node:url';
import type { StorybookConfig } from '@storybook/react-vite';
import remarkGfm from 'remark-gfm';
import type { StoriesEntry } from 'storybook/internal/types';
import { mergeConfig } from 'vite';
import { isChromatic } from './utils.ts';
const isDevMode = process.env.NODE_ENV === 'development';
const storyList: StoriesEntry[] = isChromatic
? ['../packages/main/src/components/**/*.stories.@(tsx|jsx)']
: [
'../docs/*.mdx',
{
directory: '../docs/knowledge-base',
files: '*.mdx',
titlePrefix: 'Knowledge Base',
},
{
directory: '../packages/charts/src/components',
files: '**/*.@(mdx|stories.@(mdx|tsx))',
titlePrefix: 'Charts',
},
{
directory: '../packages/base',
files: '*.@(tsx|jsx)',
titlePrefix: 'Base',
},
{
directory: '../packages/cypress-commands',
files: '**/*.mdx',
titlePrefix: 'Testing with Cypress',
},
'../packages/main/**/*.mdx',
'../packages/main/**/*.stories.@(tsx|jsx)',
{
directory: '../packages/ai',
files: '**/*.@(mdx|stories.@(mdx|js|jsx|mjs|ts|tsx))',
titlePrefix: 'AI',
},
{
directory: '../packages/compat',
files: '**/*.@(mdx|stories.@(mdx|js|jsx|mjs|ts|tsx))',
titlePrefix: 'Legacy Components',
},
{
directory: '../patterns',
files: '**/*.@(mdx|stories.@(mdx|tsx))',
titlePrefix: 'Patterns',
},
];
const addons = [
{
name: '@storybook/addon-docs',
options: {
mdxPluginOptions: {
mdxCompileOptions: {
remarkPlugins: [remarkGfm],
},
},
},
},
];
if (isDevMode) {
addons.push('@storybook/addon-a11y');
}
const config: StorybookConfig = {
framework: {
name: '@storybook/react-vite',
options: {},
},
stories: storyList,
addons,
typescript: {
reactDocgen: 'react-docgen-typescript',
reactDocgenTypescriptOptions: {
tsconfigPath: fileURLToPath(new URL('../tsconfig.json', import.meta.url)),
shouldExtractLiteralValuesFromEnum: true,
shouldRemoveUndefinedFromOptional: true,
},
},
staticDirs: isDevMode ? ['images-dev'] : ['images'],
viteFinal: (viteConfig) =>
mergeConfig(viteConfig, {
build: {
target: 'esnext',
},
}),
};
export default config;