waveterm/.storybook/main.ts

84 lines
2.6 KiB
TypeScript
Raw Normal View History

2024-05-25 02:44:41 +02:00
import type { StorybookConfig } from "@storybook/react-vite";
2024-06-14 08:19:32 +02:00
import type { ElectronViteConfig } from "electron-vite";
import type { UserConfig } from "vite";
2024-05-25 02:44:41 +02:00
const config: StorybookConfig = {
stories: ["../frontend/**/*.mdx", "../frontend/**/*.stories.@(js|jsx|mjs|ts|tsx)"],
2024-05-28 21:12:28 +02:00
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@chromatic-com/storybook",
"@storybook/addon-interactions",
"storybook-dark-mode",
"./custom-addons/theme/register",
2024-05-28 21:12:28 +02:00
],
2024-12-10 21:11:35 +01:00
core: { builder: "@storybook/builder-vite" },
2024-05-28 21:12:28 +02:00
framework: {
name: "@storybook/react-vite",
options: {},
},
docs: {},
typescript: {
reactDocgen: "react-docgen-typescript",
},
2024-06-14 04:46:31 +02:00
async viteFinal(config) {
const { mergeConfig } = await import("vite");
const { tsImport } = await import("tsx/esm/api");
2024-06-14 08:19:32 +02:00
const electronViteConfig = (await tsImport("../electron.vite.config.ts", import.meta.url))
.default as ElectronViteConfig;
2024-09-27 00:37:33 +02:00
const mergedConfig = mergeConfig(config, electronViteConfig.renderer as UserConfig);
mergedConfig.build.outDir = "storybook-static";
return mergedConfig;
2024-06-14 04:46:31 +02:00
},
2024-09-27 00:21:42 +02:00
staticDirs: [
2024-12-10 21:11:35 +01:00
{ from: "../assets", to: "/assets" },
{ from: "../public/fontawesome", to: "/fontawesome" },
],
managerHead: (head) => `
${head}
<link rel="shortcut icon" href="./assets/waveterm-logo-with-bg.ico" />
<link rel="icon" type="image/png" href="./assets/waveterm-logo-with-bg.png" sizes="250x250" />
<style>
.sidebar-header img {
max-width: 150px !important;
max-height: 100px !important;
}
</style>`,
previewHead: (head) => `
${head}
<link rel="stylesheet" href="./fontawesome/css/fontawesome.min.css" />
<link rel="stylesheet" href="./fontawesome/css/brands.min.css" />
<link rel="stylesheet" href="./fontawesome/css/solid.min.css" />
<link rel="stylesheet" href="./fontawesome/css/sharp-solid.min.css" />
<link rel="stylesheet" href="./fontawesome/css/sharp-regular.min.css" />
<link rel="stylesheet" href="./fontawesome/css/custom-icons.min.css" />
<style>
#storybook-docs {
[id^="anchor--"],
#stories {
a {
margin-left: -24px !important;
}
}
}
body {
background-color: #ffffff !important;
}
html.dark {
body {
background-color: #222222 !important;
}
}
</style>`,
2024-05-25 02:44:41 +02:00
};
export default config;