@storybook/builder-vite 10.4.0-alpha.1 → 10.4.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_xphn8pkhax from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_xphn8pkhax from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_xphn8pkhax from "node:module";
1
+ import CJS_COMPAT_NODE_URL_944xwbp7518 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_944xwbp7518 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_944xwbp7518 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_xphn8pkhax.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_xphn8pkhax.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_xphn8pkhax.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_944xwbp7518.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_944xwbp7518.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_944xwbp7518.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -425,7 +425,10 @@ function generateProjectAnnotationsCodeFromPreviews(options) {
425
425
  `.trim();
426
426
  }
427
427
  function hash(value) {
428
- return value.split("").reduce((acc, char) => acc + char.charCodeAt(0), 0);
428
+ let acc = 5381;
429
+ for (let i = 0; i < value.length; i++)
430
+ acc = (acc << 5) + acc + value.charCodeAt(i) >>> 0;
431
+ return acc;
429
432
  }
430
433
 
431
434
  // src/virtual-file-names.ts
@@ -519,9 +522,12 @@ var ENTRY_PATH = "/vite-inject-mocker-entry.js", viteInjectMockerRuntime = (opti
519
522
  });
520
523
  });
521
524
  },
522
- resolveId(source) {
523
- if (source === ENTRY_PATH)
524
- return mockerRuntimePath;
525
+ resolveId: {
526
+ filter: { id: /\/vite-inject-mocker-entry\.js/ },
527
+ handler(source) {
528
+ if (source === ENTRY_PATH)
529
+ return mockerRuntimePath;
530
+ }
525
531
  },
526
532
  transformIndexHtml(html) {
527
533
  let headTag = html.match(/<head[^>]*>/);
@@ -624,14 +630,17 @@ function viteMockPlugin(options) {
624
630
  },
625
631
  {
626
632
  name: "storybook:mock-loader-preview",
627
- transform(code, id) {
628
- if (id === normalizedPreviewConfigPath)
629
- try {
630
- return rewriteSbMockImportCalls(code);
631
- } catch (e) {
632
- return logger.debug(`Could not transform sb.mock(import(...)) calls in ${id}: ${e}`), null;
633
- }
634
- return null;
633
+ transform: {
634
+ filter: { id: normalizedPreviewConfigPath },
635
+ handler(code, id) {
636
+ if (id === normalizedPreviewConfigPath)
637
+ try {
638
+ return rewriteSbMockImportCalls(code);
639
+ } catch (e) {
640
+ return logger.debug(`Could not transform sb.mock(import(...)) calls in ${id}: ${e}`), null;
641
+ }
642
+ return null;
643
+ }
635
644
  }
636
645
  }
637
646
  ];
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { Options, Builder } from 'storybook/internal/types';
2
- import { InlineConfig, UserConfig, PluginOption } from 'vite';
1
+ import { Builder, Options } from 'storybook/internal/types';
2
+ import { UserConfig, InlineConfig, PluginOption } from 'vite';
3
3
 
4
4
  type ViteStats = {
5
5
  toJson: () => any;
@@ -24,8 +24,9 @@ declare const withoutVitePlugins: <TPlugin>(plugins: TPlugin[] | undefined, name
24
24
  declare function hasVitePlugins(plugins: PluginOption[], names: string[]): Promise<boolean>;
25
25
 
26
26
  declare function bail(): Promise<void>;
27
+ declare const onModuleGraphChange: NonNullable<Builder<Options>['onModuleGraphChange']>;
27
28
  declare const start: ViteBuilder['start'];
28
29
  declare const build: ViteBuilder['build'];
29
30
  declare const corePresets: string[];
30
31
 
31
- export { type BuilderOptions, type StorybookConfigVite, type ViteBuilder, type ViteFinal, bail, build, corePresets, hasVitePlugins, start, withoutVitePlugins };
32
+ export { type BuilderOptions, type StorybookConfigVite, type ViteBuilder, type ViteFinal, bail, build, corePresets, hasVitePlugins, onModuleGraphChange, start, withoutVitePlugins };
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_xphn8pkhax from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_xphn8pkhax from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_xphn8pkhax from "node:module";
1
+ import CJS_COMPAT_NODE_URL_944xwbp7518 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_944xwbp7518 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_944xwbp7518 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_xphn8pkhax.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_xphn8pkhax.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_xphn8pkhax.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_944xwbp7518.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_944xwbp7518.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_944xwbp7518.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -24,7 +24,7 @@ import {
24
24
  normalize,
25
25
  relative,
26
26
  viteCorePlugins
27
- } from "./_node-chunks/chunk-DB754EL6.js";
27
+ } from "./_node-chunks/chunk-3XWGCUQ5.js";
28
28
 
29
29
  // ../../../node_modules/picocolors/picocolors.js
30
30
  var require_picocolors = __commonJS({
@@ -93,6 +93,7 @@ var require_picocolors = __commonJS({
93
93
  // src/index.ts
94
94
  import { readFile } from "node:fs/promises";
95
95
  import { fileURLToPath as fileURLToPath3 } from "node:url";
96
+ import { logger as logger3 } from "storybook/internal/node-logger";
96
97
  import { NoStatsForViteDevError } from "storybook/internal/server-errors";
97
98
 
98
99
  // src/build.ts
@@ -1151,40 +1152,46 @@ var wordRegex = /\w/, Mappings = class {
1151
1152
 
1152
1153
  // src/plugins/inject-export-order-plugin.ts
1153
1154
  async function injectExportOrderPlugin() {
1154
- let { createFilter } = await import("vite"), filter = createFilter([/\.stories\.([tj])sx?$/, /(stories|story).mdx$/]);
1155
+ let { createFilter } = await import("vite"), include = [/\.stories\.([tj])sx?$/, /(stories|story).mdx$/], filter = createFilter(include);
1155
1156
  return {
1156
1157
  name: "storybook:inject-export-order-plugin",
1157
1158
  // This should only run after the typescript has been transpiled
1158
1159
  enforce: "post",
1159
- async transform(code, id) {
1160
- if (!filter(id))
1161
- return;
1162
- let [, exports] = await parse(code), exportNames = exports.map((e) => code.substring(e.s, e.e));
1163
- if (exportNames.includes("__namedExportsOrder"))
1164
- return;
1165
- let s = new MagicString(code), orderedExports = exportNames.filter((e) => e !== "default");
1166
- return s.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports)};`), {
1167
- code: s.toString(),
1168
- map: s.generateMap({ hires: !0, source: id })
1169
- };
1160
+ transform: {
1161
+ filter: { id: include },
1162
+ async handler(code, id) {
1163
+ if (!filter(id))
1164
+ return;
1165
+ let [, exports] = await parse(code), exportNames = exports.map((e) => code.substring(e.s, e.e));
1166
+ if (exportNames.includes("__namedExportsOrder"))
1167
+ return;
1168
+ let s = new MagicString(code), orderedExports = exportNames.filter((e) => e !== "default");
1169
+ return s.append(`;export const __namedExportsOrder = ${JSON.stringify(orderedExports)};`), {
1170
+ code: s.toString(),
1171
+ map: s.generateMap({ hires: !0, source: id })
1172
+ };
1173
+ }
1170
1174
  }
1171
1175
  };
1172
1176
  }
1173
1177
 
1174
1178
  // src/plugins/strip-story-hmr-boundaries.ts
1175
1179
  async function stripStoryHMRBoundary() {
1176
- let { createFilter } = await import("vite"), filter = createFilter(/\.stories\.(tsx?|jsx?|svelte|vue)$/);
1180
+ let { createFilter } = await import("vite"), include = /\.stories\.(tsx?|jsx?|svelte|vue)$/, filter = createFilter(include);
1177
1181
  return {
1178
1182
  name: "storybook:strip-hmr-boundary-plugin",
1179
1183
  enforce: "post",
1180
- async transform(src, id) {
1181
- if (!filter(id))
1182
- return;
1183
- let s = new MagicString(src);
1184
- return s.replace(/import\.meta\.hot\.accept\w*/, "(function hmrBoundaryNoop(){})"), {
1185
- code: s.toString(),
1186
- map: s.generateMap({ hires: !0, source: id })
1187
- };
1184
+ transform: {
1185
+ filter: { id: include },
1186
+ async handler(src, id) {
1187
+ if (!filter(id))
1188
+ return;
1189
+ let s = new MagicString(src);
1190
+ return s.replace(/import\.meta\.hot\.accept\w*/, "(function hmrBoundaryNoop(){})"), {
1191
+ code: s.toString(),
1192
+ map: s.generateMap({ hires: !0, source: id })
1193
+ };
1194
+ }
1188
1195
  }
1189
1196
  };
1190
1197
  }
@@ -1356,7 +1363,7 @@ var escapeKeys = (key) => key.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), defau
1356
1363
  async function storybookExternalGlobalsPlugin(options) {
1357
1364
  let build3 = await options.presets.apply("build"), externals = globalsNameReferenceMap;
1358
1365
  build3?.test?.disableBlocks && (externals["@storybook/addon-docs/blocks"] = "__STORYBOOK_BLOCKS_EMPTY_MODULE__"), await init;
1359
- let { mergeAlias } = await import("vite");
1366
+ let { mergeAlias } = await import("vite"), globalsList = Object.keys(externals), globalsCodeFilter = new RegExp(globalsList.map(escapeKeys).join("|"));
1360
1367
  return {
1361
1368
  name: "storybook:external-globals-plugin",
1362
1369
  enforce: "post",
@@ -1381,21 +1388,23 @@ async function storybookExternalGlobalsPlugin(options) {
1381
1388
  };
1382
1389
  },
1383
1390
  // Replace imports with variables destructured from global scope
1384
- async transform(code, id) {
1385
- let globalsList = Object.keys(externals);
1386
- if (globalsList.every((glob) => !code.includes(glob)))
1387
- return;
1388
- let [imports] = parse(code), src = new MagicString(code);
1389
- return imports.forEach(({ n: path, ss: startPosition, se: endPosition }) => {
1390
- let packageName = path;
1391
- if (packageName && globalsList.includes(packageName)) {
1392
- let importStatement = src.slice(startPosition, endPosition), transformedImport = rewriteImport(importStatement, externals, packageName);
1393
- src.update(startPosition, endPosition, transformedImport);
1394
- }
1395
- }), {
1396
- code: src.toString(),
1397
- map: null
1398
- };
1391
+ transform: {
1392
+ filter: { code: globalsCodeFilter },
1393
+ async handler(code, id) {
1394
+ if (globalsList.every((glob) => !code.includes(glob)))
1395
+ return;
1396
+ let [imports] = parse(code), src = new MagicString(code);
1397
+ return imports.forEach(({ n: path, ss: startPosition, se: endPosition }) => {
1398
+ let packageName = path;
1399
+ if (packageName && globalsList.includes(packageName)) {
1400
+ let importStatement = src.slice(startPosition, endPosition), transformedImport = rewriteImport(importStatement, externals, packageName);
1401
+ src.update(startPosition, endPosition, transformedImport);
1402
+ }
1403
+ }), {
1404
+ code: src.toString(),
1405
+ map: null
1406
+ };
1407
+ }
1399
1408
  }
1400
1409
  };
1401
1410
  }
@@ -1533,6 +1542,43 @@ async function createViteServer(options, devServer) {
1533
1542
  return finalConfig.customLogger ??= await createViteLogger(), createServer(finalConfig);
1534
1543
  }
1535
1544
 
1545
+ // src/utils/build-module-graph.ts
1546
+ function buildModuleGraph(fileToModulesMap) {
1547
+ let moduleGraph = /* @__PURE__ */ new Map(), moduleNodeMap = /* @__PURE__ */ new WeakMap(), getModuleFileFromMap = (viteModuleNode) => {
1548
+ for (let [filePath, viteModuleSet] of fileToModulesMap.entries())
1549
+ if (viteModuleSet.has(viteModuleNode))
1550
+ return filePath;
1551
+ }, getOrCreateModuleNode = (viteModuleNode, fallbackFile) => {
1552
+ let file = viteModuleNode.file ?? fallbackFile;
1553
+ if (!file)
1554
+ return;
1555
+ let existingNode = moduleNodeMap.get(viteModuleNode);
1556
+ if (existingNode)
1557
+ return existingNode;
1558
+ let moduleNode = {
1559
+ file,
1560
+ type: viteModuleNode.type,
1561
+ importers: /* @__PURE__ */ new Set(),
1562
+ importedModules: /* @__PURE__ */ new Set()
1563
+ };
1564
+ moduleNodeMap.set(viteModuleNode, moduleNode);
1565
+ let moduleSet = moduleGraph.get(file) ?? /* @__PURE__ */ new Set();
1566
+ return moduleSet.add(moduleNode), moduleGraph.set(file, moduleSet), moduleNode;
1567
+ };
1568
+ return fileToModulesMap.forEach((viteModuleSet, filePath) => {
1569
+ viteModuleSet.forEach((viteModuleNode) => {
1570
+ let moduleNode = getOrCreateModuleNode(viteModuleNode, filePath);
1571
+ moduleNode && (viteModuleNode.importers.forEach((importer) => {
1572
+ let importerNode = getOrCreateModuleNode(importer) ?? getOrCreateModuleNode(importer, getModuleFileFromMap(importer));
1573
+ importerNode && moduleNode.importers.add(importerNode);
1574
+ }), viteModuleNode.importedModules.forEach((importedModule) => {
1575
+ let importedModuleNode = getOrCreateModuleNode(importedModule) ?? getOrCreateModuleNode(importedModule, getModuleFileFromMap(importedModule));
1576
+ importedModuleNode && moduleNode.importedModules.add(importedModuleNode);
1577
+ }));
1578
+ });
1579
+ }), moduleGraph;
1580
+ }
1581
+
1536
1582
  // src/index.ts
1537
1583
  function iframeHandler(options, server2) {
1538
1584
  return async (req, res) => {
@@ -1545,16 +1591,77 @@ function iframeHandler(options, server2) {
1545
1591
  res.setHeader("Content-Type", "text/html"), res.statusCode = 200, res.write(transformed), res.end();
1546
1592
  };
1547
1593
  }
1548
- var server;
1594
+ var server, lastBuilderOptions, listeners = /* @__PURE__ */ new Set(), debounce, watcherChangeHandler, waitForModuleGraph, moduleGraphTrackingStarted = !1;
1595
+ function clearModuleGraphPolling() {
1596
+ waitForModuleGraph && (clearInterval(waitForModuleGraph), waitForModuleGraph = void 0);
1597
+ }
1598
+ function notifyListeners(moduleGraph) {
1599
+ listeners.forEach((listener) => {
1600
+ listener({ type: "moduleGraph", moduleGraph });
1601
+ });
1602
+ }
1603
+ function notifyListenersOfStartupFailure(event) {
1604
+ listeners.forEach((listener) => {
1605
+ listener(event);
1606
+ });
1607
+ }
1549
1608
  async function bail() {
1550
- return server?.close();
1609
+ return watcherChangeHandler && (server?.watcher.off("all", watcherChangeHandler), watcherChangeHandler = void 0), clearModuleGraphPolling(), debounce && (clearTimeout(debounce), debounce = void 0), moduleGraphTrackingStarted = !1, lastBuilderOptions = void 0, listeners.clear(), server?.close();
1551
1610
  }
1552
- var start = async ({
1611
+ function startModuleGraphTracking() {
1612
+ moduleGraphTrackingStarted || listeners.size === 0 || !server || !lastBuilderOptions || (moduleGraphTrackingStarted = !0, watcherChangeHandler = () => {
1613
+ clearTimeout(debounce), debounce = setTimeout(() => {
1614
+ notifyListeners(buildModuleGraph(server.moduleGraph.fileToModulesMap));
1615
+ }, 100);
1616
+ }, startChangeDetection(lastBuilderOptions).catch((error) => {
1617
+ clearModuleGraphPolling(), logger3.error("Failed to initialize Vite change detection"), logger3.error(error instanceof Error ? error : String(error)), notifyListenersOfStartupFailure({
1618
+ type: "error",
1619
+ error: error instanceof Error ? error : new Error(String(error))
1620
+ });
1621
+ }));
1622
+ }
1623
+ var onModuleGraphChange = (cb) => (listeners.add(cb), startModuleGraphTracking(), () => {
1624
+ listeners.delete(cb);
1625
+ }), startChangeDetection = async (options) => {
1626
+ let startTime = process.hrtime(), storyIndex = await (await options.presets.apply("storyIndexGenerator")).getIndex(), importPaths = new Set(Object.values(storyIndex.entries).map((entry) => entry.importPath));
1627
+ await Promise.all(Array.from(importPaths, (importPath) => server.warmupRequest(importPath))), waitForModuleGraph = setInterval(() => {
1628
+ (async () => {
1629
+ try {
1630
+ if (!watcherChangeHandler) {
1631
+ clearModuleGraphPolling();
1632
+ return;
1633
+ }
1634
+ if (process.hrtime(startTime)[0] > 30) {
1635
+ clearModuleGraphPolling();
1636
+ let error = new Error(
1637
+ "Timed out while waiting for the Vite module graph to initialize"
1638
+ );
1639
+ logger3.error("Failed to complete Vite change detection startup"), logger3.error(error), notifyListenersOfStartupFailure({
1640
+ type: "unavailable",
1641
+ reason: error.message,
1642
+ error
1643
+ });
1644
+ return;
1645
+ }
1646
+ if (server.moduleGraph.fileToModulesMap.size > 0) {
1647
+ if (clearModuleGraphPolling(), await server.waitForRequestsIdle(), !watcherChangeHandler)
1648
+ return;
1649
+ server.watcher.on("all", watcherChangeHandler), watcherChangeHandler();
1650
+ }
1651
+ } catch (error) {
1652
+ clearModuleGraphPolling(), logger3.error("Failed to complete Vite change detection startup"), logger3.error(error instanceof Error ? error : String(error)), notifyListenersOfStartupFailure({
1653
+ type: "error",
1654
+ error: error instanceof Error ? error : new Error(String(error))
1655
+ });
1656
+ }
1657
+ })();
1658
+ }, 1e3);
1659
+ }, start = async ({
1553
1660
  startTime,
1554
1661
  options,
1555
1662
  router,
1556
1663
  server: devServer
1557
- }) => (server = await createViteServer(options, devServer), router.get("/iframe.html", iframeHandler(options, server)), router.use(server.middlewares), {
1664
+ }) => (lastBuilderOptions = options, server = await createViteServer(options, devServer), router.get("/iframe.html", iframeHandler(options, server)), router.use(server.middlewares), startModuleGraphTracking(), {
1558
1665
  bail,
1559
1666
  stats: {
1560
1667
  toJson: () => {
@@ -1568,6 +1675,7 @@ export {
1568
1675
  build2 as build,
1569
1676
  corePresets,
1570
1677
  hasVitePlugins,
1678
+ onModuleGraphChange,
1571
1679
  start,
1572
1680
  withoutVitePlugins
1573
1681
  };
package/dist/preset.js CHANGED
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_xphn8pkhax from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_xphn8pkhax from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_xphn8pkhax from "node:module";
1
+ import CJS_COMPAT_NODE_URL_944xwbp7518 from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_944xwbp7518 from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_944xwbp7518 from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_xphn8pkhax.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_xphn8pkhax.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_xphn8pkhax.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_944xwbp7518.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_944xwbp7518.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_944xwbp7518.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,7 +12,7 @@ var require = CJS_COMPAT_NODE_MODULE_xphn8pkhax.createRequire(import.meta.url);
12
12
  import {
13
13
  optimizeViteDeps,
14
14
  viteCorePlugins
15
- } from "./_node-chunks/chunk-DB754EL6.js";
15
+ } from "./_node-chunks/chunk-3XWGCUQ5.js";
16
16
  export {
17
17
  optimizeViteDeps,
18
18
  viteCorePlugins
package/input/iframe.html CHANGED
@@ -70,10 +70,10 @@
70
70
  if (hostname !== 'localhost' && globalThis.CONFIG_TYPE === 'DEVELOPMENT') {
71
71
  const message = `Failed to load the Storybook preview file 'vite-app.js':
72
72
 
73
- It looks like you're visiting the Storybook development server on another hostname than localhost: '${hostname}', but you haven't configured the necessary security features to support this.
74
- Please re-run your Storybook development server with the '--host ${hostname}' flag, or manually configure your Vite allowedHosts configuration with viteFinal.
73
+ It looks like you're visiting the Storybook development server on another hostname than localhost: '${hostname}', but you haven't configured the necessary security features to support this.
74
+ Please re-run your Storybook development server with the '--host ${hostname}' flag, or manually configure your Vite allowedHosts configuration with viteFinal.
75
75
 
76
- See:`;
76
+ See:`;
77
77
  const docs = [
78
78
  'https://storybook.js.org/docs/api/cli-options#dev',
79
79
  'https://storybook.js.org/docs/api/main-config/main-config-vite-final',
@@ -85,7 +85,7 @@ See:`;
85
85
  `<p style="color: red; max-width: 70ch">${message.replaceAll(
86
86
  '\n',
87
87
  '<br/>'
88
- )}<ul>${docs.map((doc) => `<li><a href='${doc}' target='_blank'>${doc}</a></li>`).join('')}<ul></p>`;
88
+ )}<ul>${docs.map((doc) => `<li><a href='${doc}' target='_blank'>${doc}</a></li>`).join('')}</ul></p>`;
89
89
  return;
90
90
  }
91
91
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@storybook/builder-vite",
3
- "version": "10.4.0-alpha.1",
3
+ "version": "10.4.0-alpha.11",
4
4
  "description": "A Storybook builder to dev and build with Vite",
5
5
  "keywords": [
6
6
  "storybook",
@@ -47,7 +47,7 @@
47
47
  "!src/**/*"
48
48
  ],
49
49
  "dependencies": {
50
- "@storybook/csf-plugin": "10.4.0-alpha.1",
50
+ "@storybook/csf-plugin": "10.4.0-alpha.11",
51
51
  "ts-dedent": "^2.0.0"
52
52
  },
53
53
  "devDependencies": {
@@ -62,7 +62,7 @@
62
62
  "vite": "^7.0.4"
63
63
  },
64
64
  "peerDependencies": {
65
- "storybook": "^10.4.0-alpha.1",
65
+ "storybook": "^10.4.0-alpha.11",
66
66
  "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
67
67
  },
68
68
  "publishConfig": {