import type { StorybookConfig } from "@storybook/react-vite";
import type { ElectronViteConfig } from "electron-vite";
import type { UserConfig } from "vite";
const config: StorybookConfig = {
stories: ["../frontend/**/*.mdx", "../frontend/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@chromatic-com/storybook",
"@storybook/addon-interactions",
"storybook-dark-mode",
"./custom-addons/theme/register",
],
core: { builder: "@storybook/builder-vite" },
framework: {
name: "@storybook/react-vite",
options: {},
},
docs: {},
typescript: {
reactDocgen: "react-docgen-typescript",
},
async viteFinal(config) {
const { mergeConfig } = await import("vite");
const { tsImport } = await import("tsx/esm/api");
const electronViteConfig = (await tsImport("../electron.vite.config.ts", import.meta.url))
.default as ElectronViteConfig;
const mergedConfig = mergeConfig(config, electronViteConfig.renderer as UserConfig);
mergedConfig.build.outDir = "storybook-static";
return mergedConfig;
},
staticDirs: [
{ from: "../assets", to: "/assets" },
{ from: "../public/fontawesome", to: "/fontawesome" },
],
managerHead: (head) => `
${head}
`,
previewHead: (head) => `
${head}
`,
};
export default config;