@storybook/cli 10.4.0-alpha.9 → 10.4.0-beta.0

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.
Files changed (26) hide show
  1. package/dist/_node-chunks/{block-dependencies-versions-ZBEFJKRH.js → block-dependencies-versions-G6EVEL6U.js} +11 -11
  2. package/dist/_node-chunks/{block-experimental-addon-test-2J2EI26J.js → block-experimental-addon-test-MFHC3KUS.js} +9 -9
  3. package/dist/_node-chunks/{block-major-version-T2HMVIXA.js → block-major-version-4U4WEGMA.js} +9 -9
  4. package/dist/_node-chunks/{block-node-version-B7D6ADCG.js → block-node-version-ZHYGYUI7.js} +9 -9
  5. package/dist/_node-chunks/{block-webpack5-frameworks-735HFPAS.js → block-webpack5-frameworks-Y3AGGFNB.js} +11 -11
  6. package/dist/_node-chunks/chunk-4C3DFANT.js +115 -0
  7. package/dist/_node-chunks/chunk-6CXRNZGR.js +638 -0
  8. package/dist/_node-chunks/{chunk-CM5XGY6F.js → chunk-JYKXO3MW.js} +7 -7
  9. package/dist/_node-chunks/chunk-LIGFKPNZ.js +23 -0
  10. package/dist/_node-chunks/{chunk-HNY2PNPG.js → chunk-NBAX35QO.js} +7 -7
  11. package/dist/_node-chunks/chunk-NSIFSQMM.js +11 -0
  12. package/dist/_node-chunks/chunk-RJYKSYUS.js +20 -0
  13. package/dist/_node-chunks/{chunk-KMOZMHXY.js → chunk-XXFWAJQS.js} +6 -6
  14. package/dist/_node-chunks/{chunk-TOPUV6KI.js → chunk-ZBC5DXUL.js} +28 -17
  15. package/dist/_node-chunks/{globby-GGFRIMJG.js → globby-PHG23IID.js} +8 -8
  16. package/dist/_node-chunks/monorepo-JBBOX7QG.js +119 -0
  17. package/dist/_node-chunks/monorepo-optimized-tests-relaxed-limits-no-story-deletion-G2X5WHM3.js +119 -0
  18. package/dist/_node-chunks/optimized-tests-NI7YTCNF.js +20 -0
  19. package/dist/_node-chunks/{p-limit-SUJZ4KSM.js → p-limit-T75YPGMQ.js} +7 -7
  20. package/dist/_node-chunks/pattern-copy-play-6QEXGF3O.js +810 -0
  21. package/dist/_node-chunks/relaxed-limits-EWX3BPFO.js +115 -0
  22. package/dist/_node-chunks/{run-2DIHBNRR.js → run-CYEK3WXX.js} +1158 -295
  23. package/dist/_node-chunks/setup-WAWFVYQV.js +281 -0
  24. package/dist/bin/index.js +7 -7
  25. package/package.json +5 -4
  26. package/dist/_node-chunks/chunk-KV24PD3C.js +0 -11
@@ -0,0 +1,23 @@
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
+
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
+
9
+ // ------------------------------------------------------------
10
+ // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
+ // ------------------------------------------------------------
12
+
13
+ // src/ai/utils/docs-markdown-url.ts
14
+ function getDocsMarkdownUrl(path, projectInfo) {
15
+ let { majorVersion, renderer = "react", language = "ts" } = projectInfo ?? {}, versionSegment = majorVersion ? `/${majorVersion}` : "", params = new URLSearchParams();
16
+ renderer && params.set("renderer", renderer), params.set("language", language);
17
+ let query = params.toString();
18
+ return `https://storybook.js.org/docs${versionSegment}/${path}.md${query ? `?${query}` : ""}`;
19
+ }
20
+
21
+ export {
22
+ getDocsMarkdownUrl
23
+ };
@@ -1,17 +1,17 @@
1
- import CJS_COMPAT_NODE_URL_r0u17tnf7k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_r0u17tnf7k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_r0u17tnf7k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_r0u17tnf7k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_r0u17tnf7k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_r0u17tnf7k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
12
  import {
13
13
  __commonJS
14
- } from "./chunk-KMOZMHXY.js";
14
+ } from "./chunk-XXFWAJQS.js";
15
15
 
16
16
  // ../../../node_modules/semver/internal/constants.js
17
17
  var require_constants = __commonJS({
@@ -0,0 +1,11 @@
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
+
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
+
9
+ // ------------------------------------------------------------
10
+ // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
+ // ------------------------------------------------------------
@@ -0,0 +1,20 @@
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
+
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
+
9
+ // ------------------------------------------------------------
10
+ // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
+ // ------------------------------------------------------------
12
+
13
+ // src/ai/utils/type-import-source.ts
14
+ function getTypeImportSource(projectInfo) {
15
+ return projectInfo.framework || projectInfo.rendererPackage || "@storybook/react";
16
+ }
17
+
18
+ export {
19
+ getTypeImportSource
20
+ };
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_r0u17tnf7k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_r0u17tnf7k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_r0u17tnf7k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_r0u17tnf7k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_r0u17tnf7k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_r0u17tnf7k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_r0u17tnf7k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_r0u17tnf7k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_r0u17tnf7k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_r0u17tnf7k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_r0u17tnf7k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_r0u17tnf7k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -12,14 +12,14 @@ var require = CJS_COMPAT_NODE_MODULE_r0u17tnf7k.createRequire(import.meta.url);
12
12
  import {
13
13
  globby,
14
14
  globbySync
15
- } from "./chunk-CM5XGY6F.js";
15
+ } from "./chunk-JYKXO3MW.js";
16
16
  import {
17
17
  require_semver
18
- } from "./chunk-HNY2PNPG.js";
18
+ } from "./chunk-NBAX35QO.js";
19
19
  import {
20
20
  __commonJS,
21
21
  __toESM
22
- } from "./chunk-KMOZMHXY.js";
22
+ } from "./chunk-XXFWAJQS.js";
23
23
 
24
24
  // ../../../node_modules/picocolors/picocolors.js
25
25
  var require_picocolors = __commonJS({
@@ -123,11 +123,11 @@ var import_picocolors2 = __toESM(require_picocolors(), 1), import_semver = __toE
123
123
  // src/autoblock/index.ts
124
124
  var blockers = () => [
125
125
  // add/remove blockers here
126
- import("./block-dependencies-versions-ZBEFJKRH.js"),
127
- import("./block-node-version-B7D6ADCG.js"),
128
- import("./block-webpack5-frameworks-735HFPAS.js"),
129
- import("./block-major-version-T2HMVIXA.js"),
130
- import("./block-experimental-addon-test-2J2EI26J.js")
126
+ import("./block-dependencies-versions-G6EVEL6U.js"),
127
+ import("./block-node-version-ZHYGYUI7.js"),
128
+ import("./block-webpack5-frameworks-Y3AGGFNB.js"),
129
+ import("./block-major-version-4U4WEGMA.js"),
130
+ import("./block-experimental-addon-test-MFHC3KUS.js")
131
131
  ], autoblock = async (options, list = blockers()) => list.length === 0 ? null : await Promise.all(
132
132
  list.map(async (i) => {
133
133
  let blocker = (await i).blocker;
@@ -166,7 +166,12 @@ var getStorybookData = async ({
166
166
  mainConfigPath,
167
167
  configDir: configDirFromScript,
168
168
  previewConfigPath,
169
- versionSpecifier
169
+ versionSpecifier,
170
+ frameworkPackage,
171
+ rendererPackage,
172
+ renderer,
173
+ builderPackage,
174
+ addons
170
175
  } = await getStorybookInfo(
171
176
  userDefinedConfigDir,
172
177
  userDefinedConfigDir ? dirname2(userDefinedConfigDir) : void 0
@@ -200,7 +205,12 @@ var getStorybookData = async ({
200
205
  previewConfigPath,
201
206
  packageManager,
202
207
  storiesPaths,
203
- hasCsfFactoryPreview
208
+ hasCsfFactoryPreview,
209
+ frameworkPackage,
210
+ rendererPackage,
211
+ renderer,
212
+ builderPackage,
213
+ addons
204
214
  };
205
215
  }, updateMainConfig = async ({ mainConfigPath, dryRun }, callback) => {
206
216
  try {
@@ -341,7 +351,7 @@ var processProject = async ({
341
351
  };
342
352
  }
343
353
  }, collectProjects = async (options, configDirs, onProjectScanStart) => {
344
- let { default: pLimit } = await import("./p-limit-SUJZ4KSM.js"), currentCLIVersion = versions.storybook, limit = pLimit(5), projectPromises = configDirs.map(
354
+ let { default: pLimit } = await import("./p-limit-T75YPGMQ.js"), currentCLIVersion = versions.storybook, limit = pLimit(5), projectPromises = configDirs.map(
345
355
  (configDir) => limit(
346
356
  () => processProject({
347
357
  configDir,
@@ -592,6 +602,7 @@ After addressing this, you can try running the upgrade command again. You can al
592
602
 
593
603
  export {
594
604
  require_picocolors,
605
+ up,
595
606
  findOutdatedPackage,
596
607
  processAutoblockerResults,
597
608
  upgradeStorybookDependencies,
@@ -1,10 +1,10 @@
1
- import CJS_COMPAT_NODE_URL_r0u17tnf7k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_r0u17tnf7k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_r0u17tnf7k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_r0u17tnf7k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_r0u17tnf7k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_r0u17tnf7k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
@@ -21,8 +21,8 @@ import {
21
21
  isGitIgnoredSync,
22
22
  isIgnoredByIgnoreFiles,
23
23
  isIgnoredByIgnoreFilesSync
24
- } from "./chunk-CM5XGY6F.js";
25
- import "./chunk-KMOZMHXY.js";
24
+ } from "./chunk-JYKXO3MW.js";
25
+ import "./chunk-XXFWAJQS.js";
26
26
  export {
27
27
  convertPathToPattern,
28
28
  generateGlobTasks,
@@ -0,0 +1,119 @@
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
+
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
+
9
+ // ------------------------------------------------------------
10
+ // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
+ // ------------------------------------------------------------
12
+ import {
13
+ batchTestsRule,
14
+ buildPortalStep,
15
+ buildSharedPreviewStep,
16
+ cleanupStep,
17
+ cssCheckDOD,
18
+ discoveryStepStrict,
19
+ editOverWriteRule,
20
+ ext,
21
+ interactionPlayStep,
22
+ listDOD,
23
+ listRules,
24
+ listSteps,
25
+ monorepoRule,
26
+ monorepoStep,
27
+ mswStep,
28
+ noPolishRule,
29
+ nodeModuleReadsRule,
30
+ packageManagerRule,
31
+ preferSharedFixesRule,
32
+ readBudgetRule,
33
+ sharedPreviewDOD,
34
+ storyTagsV1DOD,
35
+ toolsVsShellRule,
36
+ typeCheckPassesStrictDOD,
37
+ verifyStep,
38
+ vitestPassesStrictDOD,
39
+ writeStoriesStep
40
+ } from "./chunk-6CXRNZGR.js";
41
+ import {
42
+ getDocsMarkdownUrl
43
+ } from "./chunk-LIGFKPNZ.js";
44
+ import "./chunk-XXFWAJQS.js";
45
+
46
+ // src/ai/setup-prompts/monorepo.ts
47
+ import { dedent } from "ts-dedent";
48
+ function instructions(projectInfo) {
49
+ let { configDir, language, needsUserOnboarding, packageManager, packageManagerName } = projectInfo, tsx = ext(language, !0), ts = ext(language, !1), docsUrl = (path) => getDocsMarkdownUrl(path, projectInfo), mswInstall = packageManager.getInstallCommand(
50
+ ["msw", "msw-storybook-addon", "mockdate"],
51
+ !0
52
+ ), ctx = {
53
+ configDir,
54
+ docsUrl,
55
+ mswInstall,
56
+ needsUserOnboarding,
57
+ packageManager,
58
+ packageManagerName,
59
+ tsx,
60
+ ts
61
+ };
62
+ return dedent`
63
+ Your goal is to make Storybook fully functional in this project: configure \`${configDir}/preview.${tsx}\` with the right decorators, add MSW for data, and write up to 10 colocated \`*.stories.${tsx}\` files. Add \`play\` functions only where they prove something non-trivial.
64
+
65
+ ## Rules of engagement (follow strictly — these are time budgets, not suggestions)
66
+
67
+ ${listRules([
68
+ toolsVsShellRule(ctx),
69
+ nodeModuleReadsRule(ctx),
70
+ monorepoRule(ctx),
71
+ readBudgetRule(ctx),
72
+ editOverWriteRule(ctx),
73
+ batchTestsRule(ctx),
74
+ packageManagerRule(ctx),
75
+ preferSharedFixesRule(ctx),
76
+ noPolishRule(ctx)
77
+ ])}
78
+
79
+ ## Plan (do not skip steps, but keep each step lean)
80
+
81
+ ${listSteps(
82
+ [
83
+ discoveryStepStrict(projectInfo, ctx),
84
+ monorepoStep(projectInfo, ctx),
85
+ buildSharedPreviewStep(projectInfo, ctx),
86
+ buildPortalStep(projectInfo, ctx),
87
+ mswStep(projectInfo, ctx),
88
+ writeStoriesStep(projectInfo, ctx),
89
+ interactionPlayStep(projectInfo, ctx),
90
+ verifyStep(projectInfo, ctx),
91
+ cleanupStep(projectInfo, ctx)
92
+ ],
93
+ { level: 3 }
94
+ )}
95
+
96
+ ## Done when
97
+
98
+ ${listDOD([
99
+ cssCheckDOD(ctx),
100
+ storyTagsV1DOD(ctx),
101
+ vitestPassesStrictDOD(ctx),
102
+ typeCheckPassesStrictDOD(ctx),
103
+ sharedPreviewDOD(ctx)
104
+ ])}
105
+
106
+ ## Reference (only fetch if stuck)
107
+
108
+ - Docs index: https://storybook.js.org/llms.txt
109
+ - Writing stories: ${docsUrl("writing-stories")}
110
+ - Decorators: ${docsUrl("writing-stories/decorators")}
111
+ - Play functions: ${docsUrl("writing-stories/play-function")}
112
+ - Vitest integration: ${docsUrl("writing-tests/vitest-plugin")}
113
+
114
+ Append \`?codeOnly=true\` to any docs URL for code-only snippets. Don't fetch unless a specific question can't be answered from this prompt.
115
+ `;
116
+ }
117
+ export {
118
+ instructions
119
+ };
@@ -0,0 +1,119 @@
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
+
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
+
9
+ // ------------------------------------------------------------
10
+ // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
+ // ------------------------------------------------------------
12
+ import {
13
+ batchTestsRule,
14
+ buildPortalStep,
15
+ buildSharedPreviewStep,
16
+ cleanupStep,
17
+ cssCheckDOD,
18
+ discoveryStepRelaxed,
19
+ editOverWriteRule,
20
+ ext,
21
+ interactionPlayStep,
22
+ listDOD,
23
+ listRules,
24
+ listSteps,
25
+ monorepoRule,
26
+ monorepoStep,
27
+ mswStep,
28
+ noPolishRule,
29
+ nodeModuleReadsRule,
30
+ packageManagerRule,
31
+ preferSharedFixesRule,
32
+ readBudgetRuleRelaxed,
33
+ sharedPreviewDOD,
34
+ storyTagsV2DOD,
35
+ toolsVsShellRule,
36
+ typeCheckPassesWhenExpectedDOD,
37
+ verifyWithAllowedFailureStep,
38
+ vitestPassesWhenExpectedDOD,
39
+ writeStoriesWithAllowedFailuresStep
40
+ } from "./chunk-6CXRNZGR.js";
41
+ import {
42
+ getDocsMarkdownUrl
43
+ } from "./chunk-LIGFKPNZ.js";
44
+ import "./chunk-XXFWAJQS.js";
45
+
46
+ // src/ai/setup-prompts/monorepo-optimized-tests-relaxed-limits-no-story-deletion.ts
47
+ import { dedent } from "ts-dedent";
48
+ function instructions(projectInfo) {
49
+ let { configDir, language, needsUserOnboarding, packageManager, packageManagerName } = projectInfo, tsx = ext(language, !0), ts = ext(language, !1), docsUrl = (path) => getDocsMarkdownUrl(path, projectInfo), mswInstall = packageManager.getInstallCommand(
50
+ ["msw", "msw-storybook-addon", "mockdate"],
51
+ !0
52
+ ), ctx = {
53
+ configDir,
54
+ docsUrl,
55
+ mswInstall,
56
+ needsUserOnboarding,
57
+ packageManager,
58
+ packageManagerName,
59
+ tsx,
60
+ ts
61
+ };
62
+ return dedent`
63
+ Your goal is to make Storybook fully functional in this project: configure \`${configDir}/preview.${tsx}\` with the right decorators, add MSW for data, and write up to 10 colocated \`*.stories.${tsx}\` files. Add \`play\` functions only where they prove something non-trivial.
64
+
65
+ ## Rules of engagement (follow strictly — these are time budgets, not suggestions)
66
+
67
+ ${listRules([
68
+ toolsVsShellRule(ctx),
69
+ nodeModuleReadsRule(ctx),
70
+ monorepoRule(ctx),
71
+ readBudgetRuleRelaxed(ctx),
72
+ editOverWriteRule(ctx),
73
+ batchTestsRule(ctx),
74
+ packageManagerRule(ctx),
75
+ preferSharedFixesRule(ctx),
76
+ noPolishRule(ctx)
77
+ ])}
78
+
79
+ ## Plan (do not skip steps, but keep each step lean)
80
+
81
+ ${listSteps(
82
+ [
83
+ discoveryStepRelaxed(projectInfo, ctx),
84
+ monorepoStep(projectInfo, ctx),
85
+ buildSharedPreviewStep(projectInfo, ctx),
86
+ buildPortalStep(projectInfo, ctx),
87
+ mswStep(projectInfo, ctx),
88
+ writeStoriesWithAllowedFailuresStep(projectInfo, ctx),
89
+ interactionPlayStep(projectInfo, ctx),
90
+ verifyWithAllowedFailureStep(projectInfo, ctx),
91
+ cleanupStep(projectInfo, ctx)
92
+ ],
93
+ { level: 3 }
94
+ )}
95
+
96
+ ## Done when
97
+
98
+ ${listDOD([
99
+ cssCheckDOD(ctx),
100
+ storyTagsV2DOD(ctx),
101
+ vitestPassesWhenExpectedDOD(ctx),
102
+ typeCheckPassesWhenExpectedDOD(ctx),
103
+ sharedPreviewDOD(ctx)
104
+ ])}
105
+
106
+ ## Reference (only fetch if stuck)
107
+
108
+ - Docs index: https://storybook.js.org/llms.txt
109
+ - Writing stories: ${docsUrl("writing-stories")}
110
+ - Decorators: ${docsUrl("writing-stories/decorators")}
111
+ - Play functions: ${docsUrl("writing-stories/play-function")}
112
+ - Vitest integration: ${docsUrl("writing-tests/vitest-plugin")}
113
+
114
+ Append \`?codeOnly=true\` to any docs URL for code-only snippets. Don't fetch unless a specific question can't be answered from this prompt.
115
+ `;
116
+ }
117
+ export {
118
+ instructions
119
+ };
@@ -0,0 +1,20 @@
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
+
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
+
9
+ // ------------------------------------------------------------
10
+ // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
+ // ------------------------------------------------------------
12
+ import {
13
+ instructions
14
+ } from "./chunk-4C3DFANT.js";
15
+ import "./chunk-6CXRNZGR.js";
16
+ import "./chunk-LIGFKPNZ.js";
17
+ import "./chunk-XXFWAJQS.js";
18
+ export {
19
+ instructions
20
+ };
@@ -1,15 +1,15 @@
1
- import CJS_COMPAT_NODE_URL_r0u17tnf7k from 'node:url';
2
- import CJS_COMPAT_NODE_PATH_r0u17tnf7k from 'node:path';
3
- import CJS_COMPAT_NODE_MODULE_r0u17tnf7k from "node:module";
1
+ import CJS_COMPAT_NODE_URL_vb9chkpq80c from 'node:url';
2
+ import CJS_COMPAT_NODE_PATH_vb9chkpq80c from 'node:path';
3
+ import CJS_COMPAT_NODE_MODULE_vb9chkpq80c from "node:module";
4
4
 
5
- var __filename = CJS_COMPAT_NODE_URL_r0u17tnf7k.fileURLToPath(import.meta.url);
6
- var __dirname = CJS_COMPAT_NODE_PATH_r0u17tnf7k.dirname(__filename);
7
- var require = CJS_COMPAT_NODE_MODULE_r0u17tnf7k.createRequire(import.meta.url);
5
+ var __filename = CJS_COMPAT_NODE_URL_vb9chkpq80c.fileURLToPath(import.meta.url);
6
+ var __dirname = CJS_COMPAT_NODE_PATH_vb9chkpq80c.dirname(__filename);
7
+ var require = CJS_COMPAT_NODE_MODULE_vb9chkpq80c.createRequire(import.meta.url);
8
8
 
9
9
  // ------------------------------------------------------------
10
10
  // end of CJS compatibility banner, injected by Storybook's esbuild configuration
11
11
  // ------------------------------------------------------------
12
- import "./chunk-KMOZMHXY.js";
12
+ import "./chunk-XXFWAJQS.js";
13
13
 
14
14
  // ../../../node_modules/yocto-queue/index.js
15
15
  var Node = class {