forgebook 0.3.3 → 0.4.1

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 (713) hide show
  1. package/README.md +994 -72
  2. package/dist/bin/forgebook/agentClient.d.ts +2 -1
  3. package/dist/bin/forgebook/agentClient.js +13 -6
  4. package/dist/bin/forgebook/agentGuide.d.ts +59 -0
  5. package/dist/bin/forgebook/agentGuide.js +203 -0
  6. package/dist/bin/forgebook/agentLoopCommands.mjs +22 -42
  7. package/dist/bin/forgebook/agentSetup/agentFiles.d.ts +55 -0
  8. package/dist/bin/forgebook/agentSetup/agentFiles.js +319 -0
  9. package/dist/bin/forgebook/agentSetup/assistantHooks.d.ts +71 -0
  10. package/dist/bin/forgebook/agentSetup/assistantHooks.js +125 -0
  11. package/dist/bin/forgebook/agentSetup/ciWorkflow.d.ts +23 -0
  12. package/dist/bin/forgebook/agentSetup/ciWorkflow.js +55 -0
  13. package/dist/bin/forgebook/agentSetup/drawCandidates.d.ts +25 -0
  14. package/dist/bin/forgebook/agentSetup/drawCandidates.js +116 -0
  15. package/dist/bin/forgebook/agentSetup/drawDiagnosis.d.ts +28 -0
  16. package/dist/bin/forgebook/agentSetup/drawDiagnosis.js +134 -0
  17. package/dist/bin/forgebook/agentSetup/drawRun.d.ts +91 -0
  18. package/dist/bin/forgebook/agentSetup/drawRun.js +353 -0
  19. package/dist/bin/forgebook/agentSetup/hookNames.d.ts +7 -0
  20. package/dist/bin/forgebook/agentSetup/hookNames.js +7 -0
  21. package/dist/bin/forgebook/agentSetup/initAgentSteps.d.ts +48 -0
  22. package/dist/bin/forgebook/agentSetup/initAgentSteps.js +104 -0
  23. package/dist/bin/forgebook/agentSetup/liftedProviders.d.ts +17 -0
  24. package/dist/bin/forgebook/agentSetup/liftedProviders.js +186 -0
  25. package/dist/bin/forgebook/agentSetup/projectRunner.d.ts +46 -0
  26. package/dist/bin/forgebook/agentSetup/projectRunner.js +85 -0
  27. package/dist/bin/forgebook/agentSetup/stopHook.d.ts +65 -0
  28. package/dist/bin/forgebook/agentSetup/stopHook.js +202 -0
  29. package/dist/bin/forgebook/agentSetup/uniformPicture.d.ts +7 -0
  30. package/dist/bin/forgebook/agentSetup/uniformPicture.js +98 -0
  31. package/dist/bin/forgebook/agentSetupCommands.d.mts +14 -0
  32. package/dist/bin/forgebook/agentSetupCommands.mjs +98 -0
  33. package/dist/bin/forgebook/agentText.d.ts +23 -3
  34. package/dist/bin/forgebook/agentText.js +182 -28
  35. package/dist/bin/forgebook/agents.md +20 -191
  36. package/dist/bin/forgebook/agentsText.js +2 -1
  37. package/dist/bin/forgebook/appBuild/appBuild.d.ts +59 -0
  38. package/dist/bin/forgebook/appBuild/appBuild.js +213 -0
  39. package/dist/bin/forgebook/appBuild/appViteConfig.d.ts +96 -0
  40. package/dist/bin/forgebook/appBuild/appViteConfig.js +320 -0
  41. package/dist/bin/forgebook/appBuild/tsconfigPaths.d.ts +14 -0
  42. package/dist/bin/forgebook/appBuild/tsconfigPaths.js +80 -0
  43. package/dist/bin/forgebook/auditCommand.d.mts +8 -0
  44. package/dist/bin/forgebook/auditCommand.mjs +75 -0
  45. package/dist/bin/forgebook/auditRun.d.ts +95 -0
  46. package/dist/bin/forgebook/auditRun.js +270 -0
  47. package/dist/bin/forgebook/browserRun.d.ts +21 -0
  48. package/dist/bin/forgebook/browserRun.js +57 -0
  49. package/dist/bin/forgebook/buildFailure.d.ts +7 -0
  50. package/dist/bin/forgebook/buildFailure.js +47 -0
  51. package/dist/bin/forgebook/buildWatch.d.ts +52 -0
  52. package/dist/bin/forgebook/buildWatch.js +137 -0
  53. package/dist/bin/forgebook/builtCatalogue.js +9 -5
  54. package/dist/bin/forgebook/catalogueCommands.d.ts +9 -0
  55. package/dist/bin/forgebook/catalogueCommands.js +23 -0
  56. package/dist/bin/forgebook/catalogueVite.d.ts +5 -1
  57. package/dist/bin/forgebook/catalogueVite.js +14 -6
  58. package/dist/bin/forgebook/commandCacheClaim.d.ts +18 -0
  59. package/dist/bin/forgebook/commandCacheClaim.js +170 -0
  60. package/dist/bin/forgebook/commandServer.d.ts +8 -0
  61. package/dist/bin/forgebook/commandServer.js +61 -13
  62. package/dist/bin/forgebook/forgebookCommands.mjs +105 -28
  63. package/dist/bin/forgebook/graphCommand.d.mts +8 -0
  64. package/dist/bin/forgebook/graphCommand.mjs +84 -0
  65. package/dist/bin/forgebook/guide/commands.md +62 -0
  66. package/dist/bin/forgebook/guide/devices.md +17 -0
  67. package/dist/bin/forgebook/guide/docs-pages.md +13 -0
  68. package/dist/bin/forgebook/guide/frameworks/angular.md +22 -0
  69. package/dist/bin/forgebook/guide/frameworks/html.md +22 -0
  70. package/dist/bin/forgebook/guide/frameworks/nextjs.md +23 -0
  71. package/dist/bin/forgebook/guide/frameworks/nuxt.md +22 -0
  72. package/dist/bin/forgebook/guide/frameworks/preact.md +16 -0
  73. package/dist/bin/forgebook/guide/frameworks/react-native-web.md +21 -0
  74. package/dist/bin/forgebook/guide/frameworks/react.md +16 -0
  75. package/dist/bin/forgebook/guide/frameworks/solid.md +18 -0
  76. package/dist/bin/forgebook/guide/frameworks/svelte.md +18 -0
  77. package/dist/bin/forgebook/guide/frameworks/sveltekit.md +23 -0
  78. package/dist/bin/forgebook/guide/frameworks/vue.md +18 -0
  79. package/dist/bin/forgebook/guide/frameworks/web-components.md +21 -0
  80. package/dist/bin/forgebook/guide/links.md +29 -0
  81. package/dist/bin/forgebook/guide/setup.md +23 -0
  82. package/dist/bin/forgebook/guide/stories.md +95 -0
  83. package/dist/bin/forgebook/guide/switches.md +43 -0
  84. package/dist/bin/forgebook/guideCommand.d.mts +13 -0
  85. package/dist/bin/forgebook/guideCommand.mjs +37 -0
  86. package/dist/bin/forgebook/importers/storybook.d.ts +21 -0
  87. package/dist/bin/forgebook/importers/storybook.js +11 -5
  88. package/dist/bin/forgebook/importers/storybookFrameworks.js +1 -1
  89. package/dist/bin/forgebook/initCommands.d.mts +11 -0
  90. package/dist/bin/forgebook/initCommands.mjs +51 -78
  91. package/dist/bin/forgebook/initConfig.d.ts +5 -3
  92. package/dist/bin/forgebook/initConfig.js +6 -3
  93. package/dist/bin/forgebook/initInstall.d.ts +15 -0
  94. package/dist/bin/forgebook/initInstall.js +77 -0
  95. package/dist/bin/forgebook/initPrint.d.ts +9 -0
  96. package/dist/bin/forgebook/initPrint.js +60 -0
  97. package/dist/bin/forgebook/initRefusals.d.ts +45 -0
  98. package/dist/bin/forgebook/initRefusals.js +91 -0
  99. package/dist/bin/forgebook/initRun.d.ts +28 -0
  100. package/dist/bin/forgebook/initRun.js +311 -0
  101. package/dist/bin/forgebook/mcpCommand.mjs +38 -4
  102. package/dist/bin/forgebook/mcpGraph.d.ts +13 -0
  103. package/dist/bin/forgebook/mcpGraph.js +24 -0
  104. package/dist/bin/forgebook/mcpTokens.d.ts +14 -0
  105. package/dist/bin/forgebook/mcpTokens.js +58 -0
  106. package/dist/bin/forgebook/mcpToolParts.d.ts +7 -0
  107. package/dist/bin/forgebook/mcpToolParts.js +10 -0
  108. package/dist/bin/forgebook/mcpTools.d.ts +13 -6
  109. package/dist/bin/forgebook/mcpTools.js +57 -90
  110. package/dist/bin/forgebook/mcpVerify.d.ts +16 -0
  111. package/dist/bin/forgebook/mcpVerify.js +36 -0
  112. package/dist/bin/forgebook/migrate/codemods.d.ts +11 -0
  113. package/dist/bin/forgebook/migrate/codemods.js +61 -0
  114. package/dist/bin/forgebook/migrate/migrate.types.d.ts +117 -0
  115. package/dist/bin/forgebook/migrate/migrate.types.js +5 -0
  116. package/dist/bin/forgebook/migrate/migrateCommand.d.mts +8 -0
  117. package/dist/bin/forgebook/migrate/migrateCommand.mjs +76 -0
  118. package/dist/bin/forgebook/migrate/migrateRun.d.ts +61 -0
  119. package/dist/bin/forgebook/migrate/migrateRun.js +210 -0
  120. package/dist/bin/forgebook/migrate/migrateText.d.ts +12 -0
  121. package/dist/bin/forgebook/migrate/migrateText.js +30 -0
  122. package/dist/bin/forgebook/migrate/migrateWrite.d.ts +27 -0
  123. package/dist/bin/forgebook/migrate/migrateWrite.js +66 -0
  124. package/dist/bin/forgebook/migrate/objectEdits.d.ts +70 -0
  125. package/dist/bin/forgebook/migrate/objectEdits.js +241 -0
  126. package/dist/bin/forgebook/migrate/playOnInBuilds.d.ts +3 -0
  127. package/dist/bin/forgebook/migrate/playOnInBuilds.js +86 -0
  128. package/dist/bin/forgebook/migrate/propGroupStrings.d.ts +5 -0
  129. package/dist/bin/forgebook/migrate/propGroupStrings.js +81 -0
  130. package/dist/bin/forgebook/newProject/newProject.d.ts +39 -0
  131. package/dist/bin/forgebook/newProject/newProject.js +180 -0
  132. package/dist/bin/forgebook/newProject/newProject.types.d.ts +97 -0
  133. package/dist/bin/forgebook/newProject/newProject.types.js +6 -0
  134. package/dist/bin/forgebook/newProject/packageManagers.d.ts +51 -0
  135. package/dist/bin/forgebook/newProject/packageManagers.js +121 -0
  136. package/dist/bin/forgebook/newProject/projectEntries.d.ts +62 -0
  137. package/dist/bin/forgebook/newProject/projectEntries.js +191 -0
  138. package/dist/bin/forgebook/newProject/projectFrameworks.d.ts +57 -0
  139. package/dist/bin/forgebook/newProject/projectFrameworks.js +148 -0
  140. package/dist/bin/forgebook/newProject/projectLook.d.ts +23 -0
  141. package/dist/bin/forgebook/newProject/projectLook.js +293 -0
  142. package/dist/bin/forgebook/newProject/projectPackages.d.ts +66 -0
  143. package/dist/bin/forgebook/newProject/projectPackages.js +178 -0
  144. package/dist/bin/forgebook/newRepair.d.ts +45 -0
  145. package/dist/bin/forgebook/newRepair.js +157 -0
  146. package/dist/bin/forgebook/newRepairRun.d.ts +69 -0
  147. package/dist/bin/forgebook/newRepairRun.js +148 -0
  148. package/dist/bin/forgebook/newStories.d.ts +23 -1
  149. package/dist/bin/forgebook/newStories.js +101 -11
  150. package/dist/bin/forgebook/newStoriesFile.d.ts +20 -1
  151. package/dist/bin/forgebook/newStoriesFile.js +43 -4
  152. package/dist/bin/forgebook/prebundleRun.d.ts +3 -1
  153. package/dist/bin/forgebook/prebundleRun.js +28 -8
  154. package/dist/bin/forgebook/proofCommand.d.mts +15 -0
  155. package/dist/bin/forgebook/proofCommand.mjs +212 -0
  156. package/dist/bin/forgebook/proofRun.d.ts +63 -0
  157. package/dist/bin/forgebook/proofRun.js +412 -0
  158. package/dist/bin/forgebook/proofText.d.ts +36 -0
  159. package/dist/bin/forgebook/proofText.js +131 -0
  160. package/dist/bin/forgebook/proofWorkflow.d.ts +29 -0
  161. package/dist/bin/forgebook/proofWorkflow.js +205 -0
  162. package/dist/bin/forgebook/setArgsTool.d.ts +8 -0
  163. package/dist/bin/forgebook/setArgsTool.js +70 -0
  164. package/dist/bin/forgebook/storyCheckCommands.mjs +42 -3
  165. package/dist/bin/forgebook/storyCheckRun.d.ts +50 -0
  166. package/dist/bin/forgebook/storyCheckRun.js +83 -9
  167. package/dist/bin/forgebook/storyFileIds.d.ts +15 -0
  168. package/dist/bin/forgebook/storyFileIds.js +14 -0
  169. package/dist/bin/forgebook/stressCases.d.ts +31 -0
  170. package/dist/bin/forgebook/stressCases.js +79 -0
  171. package/dist/bin/forgebook/stressRun.d.ts +12 -0
  172. package/dist/bin/forgebook/stressRun.js +61 -0
  173. package/dist/bin/forgebook/stressText.d.ts +27 -0
  174. package/dist/bin/forgebook/stressText.js +46 -0
  175. package/dist/bin/forgebook/verifyBase.d.ts +45 -0
  176. package/dist/bin/forgebook/verifyBase.js +204 -0
  177. package/dist/bin/forgebook/verifyCommand.d.mts +13 -0
  178. package/dist/bin/forgebook/verifyCommand.mjs +125 -0
  179. package/dist/bin/forgebook/verifyRun.d.ts +63 -0
  180. package/dist/bin/forgebook/verifyRun.js +108 -0
  181. package/dist/bin/forgebook/verifyVerdict.d.ts +40 -0
  182. package/dist/bin/forgebook/verifyVerdict.js +323 -0
  183. package/dist/bin/forgebook/workflowActions.d.ts +23 -0
  184. package/dist/bin/forgebook/workflowActions.js +23 -0
  185. package/dist/bin/forgebook-docs/catalogueMarkdown.js +12 -1
  186. package/dist/src/addressArgs.d.ts +29 -5
  187. package/dist/src/addressArgs.js +58 -16
  188. package/dist/src/addressArgsParam.d.ts +54 -0
  189. package/dist/src/addressArgsParam.js +51 -0
  190. package/dist/src/addressTexts.d.ts +14 -0
  191. package/dist/src/addressTexts.js +28 -21
  192. package/dist/src/agentIndexFile.d.ts +11 -0
  193. package/dist/src/agentIndexFile.js +11 -0
  194. package/dist/src/argConditions.d.ts +52 -0
  195. package/dist/src/argConditions.js +80 -0
  196. package/dist/src/argControl.d.ts +148 -0
  197. package/dist/src/argControl.js +0 -0
  198. package/dist/src/argExpression.d.ts +21 -0
  199. package/dist/src/argExpression.js +30 -0
  200. package/dist/src/argTypes.d.ts +40 -51
  201. package/dist/src/argTypes.js +69 -185
  202. package/dist/src/argsProps.d.ts +3 -3
  203. package/dist/src/argsProps.js +11 -5
  204. package/dist/src/bundlerErrors.d.ts +29 -0
  205. package/dist/src/bundlerErrors.js +49 -0
  206. package/dist/src/catalogue.d.ts +31 -0
  207. package/dist/src/catalogue.js +13 -2
  208. package/dist/src/catalogueRefs.d.ts +75 -0
  209. package/dist/src/catalogueRefs.js +122 -0
  210. package/dist/src/componentDocs.d.ts +83 -0
  211. package/dist/src/componentDocs.js +20 -3
  212. package/dist/src/controlCode.d.ts +27 -0
  213. package/dist/src/controlCode.js +41 -0
  214. package/dist/src/frame/callValues.d.ts +19 -0
  215. package/dist/src/frame/callValues.js +58 -0
  216. package/dist/src/frame/canvasScheme.d.ts +33 -0
  217. package/dist/src/frame/canvasScheme.js +67 -0
  218. package/dist/src/frame/controlValues.d.ts +39 -0
  219. package/dist/src/frame/controlValues.js +143 -0
  220. package/dist/src/frame/frame.css +36 -3
  221. package/dist/src/frame/frameStatus.d.ts +16 -1
  222. package/dist/src/frame/frameStatus.js +16 -1
  223. package/dist/src/frame/frameView.js +4 -3
  224. package/dist/src/frame/mountFrame.d.ts +10 -1
  225. package/dist/src/frame/mountFrame.js +160 -55
  226. package/dist/src/frame/panelControls.d.ts +67 -0
  227. package/dist/src/frame/panelControls.js +110 -0
  228. package/dist/src/frame/panelValues.d.ts +35 -0
  229. package/dist/src/frame/panelValues.js +127 -0
  230. package/dist/src/frame/playActions.d.ts +39 -0
  231. package/dist/src/frame/playActions.js +98 -0
  232. package/dist/src/frame/playStepper.d.ts +28 -0
  233. package/dist/src/frame/playStepper.js +38 -0
  234. package/dist/src/frame/playStory.d.ts +9 -1
  235. package/dist/src/frame/playStory.js +49 -3
  236. package/dist/src/frame/renderer.d.ts +34 -1
  237. package/dist/src/frame/renderer.js +24 -0
  238. package/dist/src/frame/shellChannel.d.ts +1 -1
  239. package/dist/src/frame/shellChannel.js +1 -1
  240. package/dist/src/frame/shellCheck.d.ts +17 -0
  241. package/dist/src/frame/shellCheck.js +25 -0
  242. package/dist/src/frame/shellMessageCheck.d.ts +7 -0
  243. package/dist/src/frame/shellMessageCheck.js +53 -0
  244. package/dist/src/frame/storyContent.d.ts +50 -0
  245. package/dist/src/frame/storyContent.js +73 -0
  246. package/dist/src/frame/storyModule.d.ts +9 -0
  247. package/dist/src/frame/storyModule.js +20 -2
  248. package/dist/src/frame/storyRun.d.ts +15 -7
  249. package/dist/src/frame/storyRun.js +64 -15
  250. package/dist/src/frame/valueSheets.d.ts +35 -0
  251. package/dist/src/frame/valueSheets.js +99 -0
  252. package/dist/src/hotModules.d.ts +20 -0
  253. package/dist/src/hotModules.js +23 -0
  254. package/dist/src/jsxCode.d.ts +1 -14
  255. package/dist/src/jsxCode.js +46 -10
  256. package/dist/src/liveErrors.d.ts +30 -4
  257. package/dist/src/liveErrors.js +18 -3
  258. package/dist/src/messages.d.ts +77 -27
  259. package/dist/src/messages.js +58 -100
  260. package/dist/src/namedValues.d.ts +2 -26
  261. package/dist/src/namedValues.js +0 -47
  262. package/dist/src/pageConfig.d.ts +2 -0
  263. package/dist/src/playTrace.d.ts +19 -2
  264. package/dist/src/playTrace.js +10 -5
  265. package/dist/src/plugin.d.ts +10 -3
  266. package/dist/src/previewRelay.js +9 -1
  267. package/dist/src/printable.d.ts +12 -0
  268. package/dist/src/printable.js +22 -0
  269. package/dist/src/propsSignature.d.ts +37 -0
  270. package/dist/src/propsSignature.js +40 -0
  271. package/dist/src/search.d.ts +41 -5
  272. package/dist/src/search.js +93 -23
  273. package/dist/src/searchMatch.d.ts +4 -1
  274. package/dist/src/searchMatch.js +26 -5
  275. package/dist/src/searchTypos.d.ts +88 -0
  276. package/dist/src/searchTypos.js +178 -0
  277. package/dist/src/shapeValues.d.ts +86 -0
  278. package/dist/src/shapeValues.js +295 -0
  279. package/dist/src/shell/ApiReference.js +6 -3
  280. package/dist/src/shell/ApiTableBox.d.ts +15 -0
  281. package/dist/src/shell/ApiTableBox.js +11 -0
  282. package/dist/src/shell/AppearanceMenu.d.ts +4 -1
  283. package/dist/src/shell/AppearanceMenu.js +9 -6
  284. package/dist/src/shell/AuthoredHome.js +3 -1
  285. package/dist/src/shell/CodeTab.d.ts +12 -6
  286. package/dist/src/shell/CodeTab.js +47 -3
  287. package/dist/src/shell/CodeText.d.ts +1 -1
  288. package/dist/src/shell/CodeText.js +2 -3
  289. package/dist/src/shell/CompareGrid.js +1 -1
  290. package/dist/src/shell/ComponentPage.d.ts +6 -6
  291. package/dist/src/shell/ComponentPage.js +8 -2
  292. package/dist/src/shell/CustomControl.d.ts +34 -0
  293. package/dist/src/shell/CustomControl.js +125 -0
  294. package/dist/src/shell/DocContainers.js +1 -1
  295. package/dist/src/shell/DocPage.js +2 -2
  296. package/dist/src/shell/DroppedArgsList.d.ts +2 -2
  297. package/dist/src/shell/DroppedArgsList.js +1 -1
  298. package/dist/src/shell/EmbedPage.js +30 -12
  299. package/dist/src/shell/Example.d.ts +5 -1
  300. package/dist/src/shell/Example.js +16 -8
  301. package/dist/src/shell/FrameView.d.ts +6 -3
  302. package/dist/src/shell/FrameView.js +2 -2
  303. package/dist/src/shell/HomePage.d.ts +3 -1
  304. package/dist/src/shell/HomePage.js +18 -6
  305. package/dist/src/shell/InfoTip.js +2 -2
  306. package/dist/src/shell/InteractionsTab.d.ts +11 -4
  307. package/dist/src/shell/InteractionsTab.js +18 -2
  308. package/dist/src/shell/LazyPage.js +1 -1
  309. package/dist/src/shell/PackageHtml.js +3 -1
  310. package/dist/src/shell/PageWidth.d.ts +29 -0
  311. package/dist/src/shell/PageWidth.js +18 -0
  312. package/dist/src/shell/PinnedControl.js +14 -62
  313. package/dist/src/shell/PinnedControlMenu.d.ts +44 -0
  314. package/dist/src/shell/PinnedControlMenu.js +72 -0
  315. package/dist/src/shell/PropFields.d.ts +3 -1
  316. package/dist/src/shell/PropFields.js +9 -6
  317. package/dist/src/shell/PropRows.d.ts +22 -11
  318. package/dist/src/shell/PropRows.js +62 -24
  319. package/dist/src/shell/PropsTab.d.ts +12 -5
  320. package/dist/src/shell/PropsTab.js +9 -22
  321. package/dist/src/shell/RefStoryPage.d.ts +33 -0
  322. package/dist/src/shell/RefStoryPage.js +123 -0
  323. package/dist/src/shell/SearchPanel.js +51 -24
  324. package/dist/src/shell/Shell.d.ts +18 -0
  325. package/dist/src/shell/Shell.js +141 -23
  326. package/dist/src/shell/ShortcutHelp.d.ts +22 -0
  327. package/dist/src/shell/ShortcutHelp.js +66 -0
  328. package/dist/src/shell/Sidebar.d.ts +17 -4
  329. package/dist/src/shell/Sidebar.js +92 -41
  330. package/dist/src/shell/SidebarDocs.js +2 -2
  331. package/dist/src/shell/SidebarEntries.js +5 -3
  332. package/dist/src/shell/SidebarHandle.d.ts +3 -5
  333. package/dist/src/shell/SidebarHandle.js +4 -4
  334. package/dist/src/shell/SidebarRefs.d.ts +39 -0
  335. package/dist/src/shell/SidebarRefs.js +99 -0
  336. package/dist/src/shell/SidebarSearch.js +37 -9
  337. package/dist/src/shell/SignatureReference.js +3 -1
  338. package/dist/src/shell/Stage.d.ts +10 -2
  339. package/dist/src/shell/Stage.js +29 -49
  340. package/dist/src/shell/StatusBadges.d.ts +54 -0
  341. package/dist/src/shell/StatusBadges.js +77 -0
  342. package/dist/src/shell/StoryCodeBlock.d.ts +8 -19
  343. package/dist/src/shell/StoryCodeBlock.js +7 -6
  344. package/dist/src/shell/StoryPicker.d.ts +4 -2
  345. package/dist/src/shell/StoryPicker.js +3 -3
  346. package/dist/src/shell/Switch.d.ts +29 -0
  347. package/dist/src/shell/Switch.js +11 -0
  348. package/dist/src/shell/SwitchGallery.d.ts +36 -0
  349. package/dist/src/shell/SwitchGallery.js +17 -0
  350. package/dist/src/shell/SwitchGalleryPanel.d.ts +37 -0
  351. package/dist/src/shell/SwitchGalleryPanel.js +99 -0
  352. package/dist/src/shell/TagFilter.d.ts +24 -0
  353. package/dist/src/shell/TagFilter.js +45 -0
  354. package/dist/src/shell/TagViews.d.ts +39 -0
  355. package/dist/src/shell/TagViews.js +20 -0
  356. package/dist/src/shell/Toolbar.d.ts +4 -1
  357. package/dist/src/shell/Toolbar.js +17 -7
  358. package/dist/src/shell/ToolbarControl.d.ts +3 -0
  359. package/dist/src/shell/ToolbarControl.js +23 -6
  360. package/dist/src/shell/ViewMenuPanel.js +6 -1
  361. package/dist/src/shell/argChecks.d.ts +22 -0
  362. package/dist/src/shell/argChecks.js +20 -0
  363. package/dist/src/shell/asideStory.js +7 -2
  364. package/dist/src/shell/audienceSections.css +9 -9
  365. package/dist/src/shell/catalogueContext.d.ts +1 -1
  366. package/dist/src/shell/catalogueContext.js +6 -1
  367. package/dist/src/shell/codeSpans.d.ts +27 -0
  368. package/dist/src/shell/codeSpans.js +76 -0
  369. package/dist/src/shell/compareVariants.d.ts +4 -2
  370. package/dist/src/shell/compareVariants.js +16 -8
  371. package/dist/src/shell/composition.d.ts +23 -0
  372. package/dist/src/shell/composition.js +26 -0
  373. package/dist/src/shell/controlCycle.d.ts +1 -1
  374. package/dist/src/shell/controlCycle.js +3 -2
  375. package/dist/src/shell/customControls.d.ts +62 -0
  376. package/dist/src/shell/customControls.js +81 -0
  377. package/dist/src/shell/docPage.css +22 -22
  378. package/dist/src/shell/dockTabs.d.ts +19 -3
  379. package/dist/src/shell/dockTabs.js +29 -20
  380. package/dist/src/shell/embed.css +7 -7
  381. package/dist/src/shell/frameOrder.d.ts +35 -0
  382. package/dist/src/shell/frameOrder.js +45 -0
  383. package/dist/src/shell/framesOrigin.d.ts +7 -0
  384. package/dist/src/shell/framesOrigin.js +1 -1
  385. package/dist/src/shell/galleryPlace.d.ts +20 -0
  386. package/dist/src/shell/galleryPlace.js +26 -0
  387. package/dist/src/shell/icons.d.ts +1 -0
  388. package/dist/src/shell/icons.js +1 -0
  389. package/dist/src/shell/keyboard.d.ts +14 -12
  390. package/dist/src/shell/keyboard.js +21 -6
  391. package/dist/src/shell/laterStrings.d.ts +30 -0
  392. package/dist/src/shell/laterStrings.js +43 -3
  393. package/dist/src/shell/mountShell.js +3 -0
  394. package/dist/src/shell/pageStrings.d.ts +4 -0
  395. package/dist/src/shell/pageStrings.js +4 -0
  396. package/dist/src/shell/pageTagView.d.ts +18 -0
  397. package/dist/src/shell/pageTagView.js +10 -0
  398. package/dist/src/shell/playMemory.d.ts +14 -0
  399. package/dist/src/shell/playMemory.js +8 -0
  400. package/dist/src/shell/propNotes.d.ts +23 -0
  401. package/dist/src/shell/propNotes.js +37 -0
  402. package/dist/src/shell/refIndexLoad.d.ts +17 -0
  403. package/dist/src/shell/refIndexLoad.js +38 -0
  404. package/dist/src/shell/refParts.d.ts +34 -0
  405. package/dist/src/shell/refParts.js +9 -0
  406. package/dist/src/shell/refStory.css +21 -0
  407. package/dist/src/shell/refStrings.d.ts +13 -0
  408. package/dist/src/shell/refStrings.js +21 -0
  409. package/dist/src/shell/search.css +11 -11
  410. package/dist/src/shell/shell.css +376 -169
  411. package/dist/src/shell/shellScheme.js +2 -2
  412. package/dist/src/shell/shortcutHelp.css +64 -0
  413. package/dist/src/shell/stageArgs.d.ts +53 -0
  414. package/dist/src/shell/stageArgs.js +64 -0
  415. package/dist/src/shell/statusBadges.css +51 -0
  416. package/dist/src/shell/strings.d.ts +7 -16
  417. package/dist/src/shell/strings.js +12 -17
  418. package/dist/src/shell/switchGallery.css +104 -0
  419. package/dist/src/shell/tagFilter.css +46 -0
  420. package/dist/src/shell/tagView.d.ts +20 -0
  421. package/dist/src/shell/tagView.js +10 -0
  422. package/dist/src/shell/useAddressArgs.d.ts +9 -0
  423. package/dist/src/shell/useAddressArgs.js +56 -11
  424. package/dist/src/shell/useControlKeys.js +2 -2
  425. package/dist/src/shell/useEditedProblems.d.ts +6 -0
  426. package/dist/src/shell/useEditedProblems.js +40 -0
  427. package/dist/src/shell/useFrameMessages.js +3 -0
  428. package/dist/src/shell/useFrameQueue.d.ts +8 -3
  429. package/dist/src/shell/useFrameQueue.js +42 -12
  430. package/dist/src/shell/useListedTree.d.ts +13 -0
  431. package/dist/src/shell/useListedTree.js +32 -0
  432. package/dist/src/shell/usePageFrames.js +2 -2
  433. package/dist/src/shell/usePopover.d.ts +5 -0
  434. package/dist/src/shell/usePopover.js +7 -1
  435. package/dist/src/shell/useRefIndex.d.ts +22 -0
  436. package/dist/src/shell/useRefIndex.js +36 -0
  437. package/dist/src/shell/useScrollSettled.d.ts +18 -0
  438. package/dist/src/shell/useScrollSettled.js +56 -0
  439. package/dist/src/shell/useScrollStops.d.ts +20 -0
  440. package/dist/src/shell/useScrollStops.js +41 -0
  441. package/dist/src/shell/useShortcutHelp.d.ts +18 -0
  442. package/dist/src/shell/useShortcutHelp.js +32 -0
  443. package/dist/src/shell/useSidebarOverlay.d.ts +2 -1
  444. package/dist/src/shell/useSidebarOverlay.js +12 -4
  445. package/dist/src/shell/useStoryCode.d.ts +2 -1
  446. package/dist/src/shell/useStoryCode.js +12 -7
  447. package/dist/src/shell/useToolbarLayout.d.ts +5 -1
  448. package/dist/src/shell/useToolbarLayout.js +2 -2
  449. package/dist/src/shell/useWorstCase.d.ts +8 -2
  450. package/dist/src/shell/useWorstCase.js +2 -2
  451. package/dist/src/shell/valueEditors/FileEditor.d.ts +28 -0
  452. package/dist/src/shell/valueEditors/FileEditor.js +66 -0
  453. package/dist/src/shell/valueEditors/JsonEditor.d.ts +14 -0
  454. package/dist/src/shell/valueEditors/JsonEditor.js +53 -0
  455. package/dist/src/shell/valueEditors/ListEditor.d.ts +24 -0
  456. package/dist/src/shell/valueEditors/ListEditor.js +82 -0
  457. package/dist/src/shell/valueEditors/ObjectEditor.d.ts +32 -0
  458. package/dist/src/shell/valueEditors/ObjectEditor.js +70 -0
  459. package/dist/src/shell/valueEditors/PropEditor.d.ts +37 -0
  460. package/dist/src/shell/valueEditors/PropEditor.js +53 -0
  461. package/dist/src/shell/valueEditors/RecordEditor.d.ts +20 -0
  462. package/dist/src/shell/valueEditors/RecordEditor.js +84 -0
  463. package/dist/src/shell/valueEditors/SearchSelect.d.ts +42 -0
  464. package/dist/src/shell/valueEditors/SearchSelect.js +80 -0
  465. package/dist/src/shell/valueEditors/TokenEditor.d.ts +49 -0
  466. package/dist/src/shell/valueEditors/TokenEditor.js +74 -0
  467. package/dist/src/shell/valueEditors/UnionEditor.d.ts +20 -0
  468. package/dist/src/shell/valueEditors/UnionEditor.js +64 -0
  469. package/dist/src/shell/valueEditors/ValueField.d.ts +15 -0
  470. package/dist/src/shell/valueEditors/ValueField.js +148 -0
  471. package/dist/src/shell/valueEditors/editorStrings.d.ts +56 -0
  472. package/dist/src/shell/valueEditors/editorStrings.js +66 -0
  473. package/dist/src/shell/valueEditors/fieldTypes.d.ts +31 -0
  474. package/dist/src/shell/valueEditors/fieldTypes.js +0 -0
  475. package/dist/src/shell/valueEditors/valueEditors.css +153 -0
  476. package/dist/src/shell/worstArgs.d.ts +8 -5
  477. package/dist/src/shell/worstArgs.js +14 -7
  478. package/dist/src/shellTheme.d.ts +1 -1
  479. package/dist/src/shellTheme.js +15 -1
  480. package/dist/src/shellTheme.types.d.ts +4 -0
  481. package/dist/src/shellWord.d.ts +12 -0
  482. package/dist/src/shellWord.js +15 -0
  483. package/dist/src/sourceFiles.js +2 -1
  484. package/dist/src/storyArgTypes.d.ts +57 -0
  485. package/dist/src/storyArgTypes.js +195 -0
  486. package/dist/src/storyBackground.js +14 -3
  487. package/dist/src/storyCheck.d.ts +99 -3
  488. package/dist/src/storyCheck.js +39 -1
  489. package/dist/src/storyCodeText.d.ts +52 -0
  490. package/dist/src/storyCodeText.js +30 -0
  491. package/dist/src/storyControls.d.ts +103 -0
  492. package/dist/src/storyControls.js +100 -0
  493. package/dist/src/storyStatuses.d.ts +55 -0
  494. package/dist/src/storyStatuses.js +104 -0
  495. package/dist/src/storyTagNames.d.ts +25 -0
  496. package/dist/src/storyTagNames.js +25 -0
  497. package/dist/src/storyTags.d.ts +29 -0
  498. package/dist/src/storyTags.js +85 -0
  499. package/dist/src/storyTree.d.ts +13 -0
  500. package/dist/src/storyTree.js +24 -4
  501. package/dist/src/storybookArgs.d.ts +24 -0
  502. package/dist/src/storybookArgs.js +185 -0
  503. package/dist/src/switches.d.ts +66 -3
  504. package/dist/src/switches.js +42 -1
  505. package/dist/src/valueSchema.d.ts +28 -0
  506. package/dist/src/valueSchema.js +196 -0
  507. package/dist/src/valueShape.d.ts +94 -0
  508. package/dist/src/valueShape.js +25 -0
  509. package/dist/src/viewState.d.ts +8 -3
  510. package/dist/src/viewState.js +27 -10
  511. package/dist/src/vite/adapter.d.ts +40 -2
  512. package/dist/src/vite/adapter.js +1 -0
  513. package/dist/src/vite/agent.types.d.ts +354 -7
  514. package/dist/src/vite/agentApi.d.ts +23 -0
  515. package/dist/src/vite/agentApi.js +90 -17
  516. package/dist/src/vite/agentIndex.d.ts +0 -2
  517. package/dist/src/vite/agentIndex.js +5 -6
  518. package/dist/src/vite/agentRoutes.d.ts +20 -1
  519. package/dist/src/vite/agentRoutes.js +135 -66
  520. package/dist/src/vite/agentStatuses.d.ts +42 -0
  521. package/dist/src/vite/agentStatuses.js +67 -0
  522. package/dist/src/vite/agentStoryCode.d.ts +51 -0
  523. package/dist/src/vite/agentStoryCode.js +44 -0
  524. package/dist/src/vite/agentVisibility.d.ts +47 -0
  525. package/dist/src/vite/agentVisibility.js +174 -0
  526. package/dist/src/vite/appAudit.d.ts +134 -0
  527. package/dist/src/vite/appAudit.js +333 -0
  528. package/dist/src/vite/appBuildOption.d.ts +53 -0
  529. package/dist/src/vite/appBuildOption.js +55 -0
  530. package/dist/src/vite/appTokenFiles.d.ts +92 -0
  531. package/dist/src/vite/appTokenFiles.js +433 -0
  532. package/dist/src/vite/appTokens.d.ts +23 -0
  533. package/dist/src/vite/appTokens.js +275 -0
  534. package/dist/src/vite/argControlsConfig.d.ts +30 -0
  535. package/dist/src/vite/argControlsConfig.js +176 -0
  536. package/dist/src/vite/builtTexts.d.ts +10 -0
  537. package/dist/src/vite/builtTexts.js +59 -22
  538. package/dist/src/vite/catalogueConfig.d.ts +3 -1
  539. package/dist/src/vite/catalogueConfig.js +21 -4
  540. package/dist/src/vite/changeCoverage.d.ts +74 -0
  541. package/dist/src/vite/changeCoverage.js +120 -0
  542. package/dist/src/vite/changedRoute.d.ts +30 -0
  543. package/dist/src/vite/changedRoute.js +197 -0
  544. package/dist/src/vite/checkCode.d.ts +105 -3
  545. package/dist/src/vite/checkCode.js +323 -36
  546. package/dist/src/vite/checkoutWatch.d.ts +97 -0
  547. package/dist/src/vite/checkoutWatch.js +287 -0
  548. package/dist/src/vite/closeWatch.d.ts +8 -0
  549. package/dist/src/vite/closeWatch.js +1 -1
  550. package/dist/src/vite/componentCache.d.ts +8 -0
  551. package/dist/src/vite/componentCache.js +66 -0
  552. package/dist/src/vite/componentGraph.d.ts +71 -0
  553. package/dist/src/vite/componentGraph.js +133 -0
  554. package/dist/src/vite/componentRules.d.ts +33 -0
  555. package/dist/src/vite/componentRules.js +105 -0
  556. package/dist/src/vite/componentScan.d.ts +69 -0
  557. package/dist/src/vite/componentScan.js +418 -0
  558. package/dist/src/vite/compositionCheck.d.ts +15 -0
  559. package/dist/src/vite/compositionCheck.js +243 -0
  560. package/dist/src/vite/config.d.ts +67 -1
  561. package/dist/src/vite/configFile.d.ts +15 -2
  562. package/dist/src/vite/configFile.js +109 -40
  563. package/dist/src/vite/configKeys.d.ts +15 -0
  564. package/dist/src/vite/configKeys.js +172 -0
  565. package/dist/src/vite/configLoadError.d.ts +23 -0
  566. package/dist/src/vite/configLoadError.js +71 -0
  567. package/dist/src/vite/cssDeclarations.d.ts +71 -0
  568. package/dist/src/vite/cssDeclarations.js +290 -0
  569. package/dist/src/vite/cssImports.d.ts +14 -0
  570. package/dist/src/vite/cssImports.js +48 -0
  571. package/dist/src/vite/cssReferences.d.ts +54 -0
  572. package/dist/src/vite/cssReferences.js +157 -0
  573. package/dist/src/vite/cssTokenValues.d.ts +50 -0
  574. package/dist/src/vite/cssTokenValues.js +233 -0
  575. package/dist/src/vite/designTokens.d.ts +24 -0
  576. package/dist/src/vite/designTokens.js +5 -1
  577. package/dist/src/vite/docsExtractor.d.ts +9 -3
  578. package/dist/src/vite/docsExtractor.js +11 -3
  579. package/dist/src/vite/docsProgram.d.ts +17 -4
  580. package/dist/src/vite/docsProgram.js +52 -11
  581. package/dist/src/vite/docsWorker.js +7 -2
  582. package/dist/src/vite/emptyStoryGlobs.d.ts +41 -0
  583. package/dist/src/vite/emptyStoryGlobs.js +52 -0
  584. package/dist/src/vite/fileImports.d.ts +17 -0
  585. package/dist/src/vite/fileImports.js +57 -0
  586. package/dist/src/vite/findComponent.d.ts +10 -2
  587. package/dist/src/vite/findComponent.js +27 -22
  588. package/dist/src/vite/findRoute.js +3 -2
  589. package/dist/src/vite/forcedStates.d.ts +9 -2
  590. package/dist/src/vite/forcedStates.js +12 -3
  591. package/dist/src/vite/forgebookPlugin.d.ts +2 -0
  592. package/dist/src/vite/forgebookPlugin.js +55 -73
  593. package/dist/src/vite/frameErrors.d.ts +19 -0
  594. package/dist/src/vite/frameErrors.js +70 -0
  595. package/dist/src/vite/framesServer.d.ts +12 -0
  596. package/dist/src/vite/framesServer.js +21 -4
  597. package/dist/src/vite/functionComponentDocs.js +81 -12
  598. package/dist/src/vite/generatedModules.js +4 -2
  599. package/dist/src/vite/gitChange.d.ts +38 -5
  600. package/dist/src/vite/gitChange.js +71 -11
  601. package/dist/src/vite/hiddenStoryFiles.d.ts +23 -0
  602. package/dist/src/vite/hiddenStoryFiles.js +107 -0
  603. package/dist/src/vite/hotSnippets.d.ts +38 -14
  604. package/dist/src/vite/hotSnippets.js +137 -39
  605. package/dist/src/vite/importedNames.d.ts +37 -0
  606. package/dist/src/vite/importedNames.js +138 -0
  607. package/dist/src/vite/indexFields.d.ts +6 -0
  608. package/dist/src/vite/indexFields.js +21 -0
  609. package/dist/src/vite/indexStoryFile.d.ts +8 -1
  610. package/dist/src/vite/indexStoryFile.js +22 -157
  611. package/dist/src/vite/jsxCallSites.d.ts +33 -0
  612. package/dist/src/vite/jsxCallSites.js +200 -0
  613. package/dist/src/vite/jsxInScripts.d.ts +67 -0
  614. package/dist/src/vite/jsxInScripts.js +138 -0
  615. package/dist/src/vite/jsxTree.d.ts +20 -0
  616. package/dist/src/vite/jsxTree.js +163 -0
  617. package/dist/src/vite/lineAndColumn.d.ts +13 -0
  618. package/dist/src/vite/lineAndColumn.js +18 -0
  619. package/dist/src/vite/lookAlikes.d.ts +65 -0
  620. package/dist/src/vite/lookAlikes.js +228 -0
  621. package/dist/src/vite/nearestToken.d.ts +17 -0
  622. package/dist/src/vite/nearestToken.js +9 -2
  623. package/dist/src/vite/packageEntries.d.ts +42 -0
  624. package/dist/src/vite/packageEntries.js +127 -0
  625. package/dist/src/vite/pages.d.ts +9 -1
  626. package/dist/src/vite/pages.js +119 -4
  627. package/dist/src/vite/pluginConfig.js +4 -0
  628. package/dist/src/vite/pluginIds.d.ts +2 -0
  629. package/dist/src/vite/pluginIds.js +5 -1
  630. package/dist/src/vite/pluginModules.d.ts +81 -11
  631. package/dist/src/vite/pluginModules.js +109 -21
  632. package/dist/src/vite/prebundled.d.ts +57 -15
  633. package/dist/src/vite/prebundled.js +80 -0
  634. package/dist/src/vite/previewTags.d.ts +25 -0
  635. package/dist/src/vite/previewTags.js +56 -0
  636. package/dist/src/vite/projectFiles.d.ts +54 -0
  637. package/dist/src/vite/projectFiles.js +116 -0
  638. package/dist/src/vite/projectPostcss.d.ts +70 -0
  639. package/dist/src/vite/projectPostcss.js +250 -0
  640. package/dist/src/vite/propDocs.d.ts +12 -0
  641. package/dist/src/vite/propDocs.js +187 -60
  642. package/dist/src/vite/propKind.d.ts +40 -0
  643. package/dist/src/vite/propKind.js +71 -0
  644. package/dist/src/vite/propTypeNotes.d.ts +22 -0
  645. package/dist/src/vite/propTypeNotes.js +51 -0
  646. package/dist/src/vite/publishedExports.d.ts +27 -0
  647. package/dist/src/vite/publishedExports.js +298 -0
  648. package/dist/src/vite/realFolder.d.ts +6 -0
  649. package/dist/src/vite/realFolder.js +25 -0
  650. package/dist/src/vite/refsConfig.d.ts +39 -0
  651. package/dist/src/vite/refsConfig.js +54 -0
  652. package/dist/src/vite/reuseCheck.d.ts +45 -0
  653. package/dist/src/vite/reuseCheck.js +260 -0
  654. package/dist/src/vite/runningVersions.d.ts +33 -0
  655. package/dist/src/vite/runningVersions.js +25 -0
  656. package/dist/src/vite/scriptProblems.d.ts +60 -0
  657. package/dist/src/vite/scriptProblems.js +155 -0
  658. package/dist/src/vite/searchModule.js +3 -2
  659. package/dist/src/vite/searchRoute.js +4 -2
  660. package/dist/src/vite/shapeDocs.d.ts +36 -0
  661. package/dist/src/vite/shapeDocs.js +177 -0
  662. package/dist/src/vite/singleFileComponent.d.ts +17 -0
  663. package/dist/src/vite/singleFileComponent.js +83 -0
  664. package/dist/src/vite/sourceText.d.ts +34 -0
  665. package/dist/src/vite/sourceText.js +72 -0
  666. package/dist/src/vite/sourceTokens.d.ts +7 -0
  667. package/dist/src/vite/sourceTokens.js +7 -2
  668. package/dist/src/vite/stackLines.d.ts +49 -0
  669. package/dist/src/vite/stackLines.js +96 -0
  670. package/dist/src/vite/storyCode.d.ts +22 -7
  671. package/dist/src/vite/storyCode.js +263 -37
  672. package/dist/src/vite/storyCoverage.d.ts +48 -0
  673. package/dist/src/vite/storyCoverage.js +179 -0
  674. package/dist/src/vite/storyFilesModule.d.ts +48 -3
  675. package/dist/src/vite/storyFilesModule.js +105 -15
  676. package/dist/src/vite/storyPatterns.d.ts +31 -0
  677. package/dist/src/vite/storyPatterns.js +140 -5
  678. package/dist/src/vite/storyReach.d.ts +10 -2
  679. package/dist/src/vite/storyReach.js +15 -11
  680. package/dist/src/vite/storyTopLevel.d.ts +51 -0
  681. package/dist/src/vite/storyTopLevel.js +146 -0
  682. package/dist/src/vite/storylessRoutes.d.ts +4 -3
  683. package/dist/src/vite/storylessRoutes.js +210 -19
  684. package/dist/src/vite/switchValuesCheck.d.ts +19 -0
  685. package/dist/src/vite/switchValuesCheck.js +164 -0
  686. package/dist/src/vite/switchesDocument.d.ts +15 -0
  687. package/dist/src/vite/switchesDocument.js +47 -0
  688. package/dist/src/vite/tailwindConfigTokens.d.ts +41 -0
  689. package/dist/src/vite/tailwindConfigTokens.js +306 -0
  690. package/dist/src/vite/textImports.d.ts +15 -0
  691. package/dist/src/vite/textImports.js +58 -0
  692. package/dist/src/vite/textModules.d.ts +6 -5
  693. package/dist/src/vite/textModules.js +13 -8
  694. package/dist/src/vite/tokenAnswers.d.ts +6 -2
  695. package/dist/src/vite/tokenAnswers.js +11 -7
  696. package/dist/src/vite/typeParameters.d.ts +83 -0
  697. package/dist/src/vite/typeParameters.js +270 -0
  698. package/dist/src/vite/typedControls.d.ts +31 -0
  699. package/dist/src/vite/typedControls.js +66 -0
  700. package/dist/src/vite/unionProps.d.ts +37 -0
  701. package/dist/src/vite/unionProps.js +121 -0
  702. package/dist/src/vite/unresolvedTokens.d.ts +20 -0
  703. package/dist/src/vite/unresolvedTokens.js +193 -0
  704. package/dist/src/vite/usageGraph.js +10 -52
  705. package/dist/src/vite/usageGuidance.d.ts +9 -2
  706. package/dist/src/vite/usageGuidance.js +36 -8
  707. package/dist/src/vite/usageImports.d.ts +35 -0
  708. package/dist/src/vite/usageImports.js +280 -0
  709. package/dist/src/vite/visibilityRoute.d.ts +16 -0
  710. package/dist/src/vite/visibilityRoute.js +320 -0
  711. package/dist/src/worstCase.d.ts +2 -0
  712. package/dist/src/worstCase.js +2 -0
  713. package/package.json +28 -8
@@ -0,0 +1,57 @@
1
+ /**
2
+ * A story's `argTypes` as its module writes them (Storybook's): read in the frame into the form that crosses to the shell
3
+ * (`argTypes.ts`), and their `mapping` applied to the args the story receives. The commands read them the same way.
4
+ *
5
+ * @remarks
6
+ * Option values that cannot cross (a component, a function) are sent as their `mapping` keys, which the frame turns back
7
+ * into the values. Pure.
8
+ *
9
+ * @module
10
+ */
11
+ import type { StoryControlsSetting } from "@forgebook/story-format/source";
12
+ import type { PanelArgTypes, PanelControl } from "./argTypes.ts";
13
+ /** Storybook's control names, as the panel draws them (the inline variants look the same here). */
14
+ export declare const CONTROLS: Readonly<Record<string, PanelControl>>;
15
+ /**
16
+ * The `argTypes` of the meta and the story, merged: each arg's entry from both, the story's fields over the meta's.
17
+ *
18
+ * @param meta - the meta's `argTypes`.
19
+ * @param story - the story's `argTypes`.
20
+ */
21
+ export declare const mergedArgTypes: (meta: unknown, story: unknown) => Readonly<Record<string, Readonly<Record<string, unknown>>>>;
22
+ /**
23
+ * The arg types the frame sends: each entry read, and the args `parameters.controls.exclude` names hidden.
24
+ *
25
+ * @param argTypes - the merged `argTypes`.
26
+ * @param excluded - the args `parameters.controls.exclude` names.
27
+ */
28
+ export declare const panelArgTypesOf: (argTypes: Readonly<Record<string, Readonly<Record<string, unknown>>>>, excluded: readonly string[]) => PanelArgTypes;
29
+ /**
30
+ * The args with each `mapping` applied: an arg whose value is a key of its entry's `mapping` receives the value the
31
+ * key stands for, as Storybook's (an arg written as the key in the story, or chosen in the panel).
32
+ *
33
+ * @param args - the args.
34
+ * @param argTypes - the merged `argTypes`.
35
+ */
36
+ export declare const mappedArgs: (args: Readonly<Record<string, unknown>>, argTypes: Readonly<Record<string, Readonly<Record<string, unknown>>>>) => Readonly<Record<string, unknown>>;
37
+ /**
38
+ * The props the panel can set, as the story's parameters say: `false` none, a list or `{ include }` those, anything
39
+ * else every one.
40
+ *
41
+ * @param value - `parameters.controls`.
42
+ */
43
+ export declare const controlsOfParameter: (value: unknown) => StoryControlsSetting;
44
+ /**
45
+ * The args `parameters.controls.exclude` hides.
46
+ *
47
+ * @param value - `parameters.controls`.
48
+ */
49
+ export declare const excludedControls: (value: unknown) => readonly string[];
50
+ /**
51
+ * The args whose calls the Events tab records as actions: those whose value is a spy, and those whose `argTypes`
52
+ * entry names an `action`. Explicit only: no arg is recorded for its name alone.
53
+ *
54
+ * @param args - the story's args.
55
+ * @param argTypes - the merged `argTypes`.
56
+ */
57
+ export declare const actionNames: (args: Readonly<Record<string, unknown>>, argTypes: Readonly<Record<string, Readonly<Record<string, unknown>>>>) => readonly string[];
@@ -0,0 +1,195 @@
1
+ import { argConditionOf } from "./argConditions.js";
2
+ import { isArgValue } from "./messages.js";
3
+ /** Whether a value is a plain object. */
4
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
5
+ /** Storybook's control names, as the panel draws them (the inline variants look the same here). */
6
+ export const CONTROLS = {
7
+ select: "select",
8
+ radio: "radio",
9
+ "inline-radio": "radio",
10
+ check: "check",
11
+ "inline-check": "check",
12
+ "multi-select": "multi-select",
13
+ boolean: "boolean",
14
+ text: "text",
15
+ number: "number",
16
+ range: "range",
17
+ color: "color",
18
+ date: "date",
19
+ object: "object",
20
+ file: "file",
21
+ textarea: "textarea",
22
+ token: "token"
23
+ };
24
+ /** A number field of an object, when it is a finite number. */
25
+ const numberOf = (part, name) => {
26
+ const value = part[name];
27
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
28
+ };
29
+ /** The labels of a control, when every one is a text. */
30
+ const labelsOf = (value) => isRecord(value) && Object.values(value).every((label) => typeof label === "string")
31
+ ? Object.fromEntries(Object.entries(value).map(([option, label]) => [option, String(label)]))
32
+ : undefined;
33
+ /**
34
+ * The control an entry names: `false` and a disabled control are none, a name or `{ type }` is that control, and
35
+ * options without a control make a select.
36
+ */
37
+ const controlOf = (entry) => {
38
+ const control = entry["control"];
39
+ if (control === false)
40
+ return "none";
41
+ if (typeof control === "string")
42
+ return Object.hasOwn(CONTROLS, control) ? CONTROLS[control] : undefined;
43
+ if (isRecord(control)) {
44
+ if (control["disable"] === true)
45
+ return "none";
46
+ const type = control["type"];
47
+ if (typeof type === "string")
48
+ return Object.hasOwn(CONTROLS, type) ? CONTROLS[type] : undefined;
49
+ }
50
+ return Array.isArray(entry["options"]) ? "select" : undefined;
51
+ };
52
+ /**
53
+ * The options as they cross: texts and numbers as they are; any other value only through `mapping`, whose keys are
54
+ * the options then.
55
+ */
56
+ const optionsOf = (entry) => {
57
+ const options = entry["options"];
58
+ if (!Array.isArray(options))
59
+ return undefined;
60
+ return options.filter((option) => typeof option === "string" || typeof option === "number");
61
+ };
62
+ /** A name among the controls an entry writes that is none of the panel's: a custom control's. */
63
+ const customControlOf = (control) => {
64
+ if (isRecord(control) && control["disable"] === true)
65
+ return undefined;
66
+ const name = isRecord(control) ? control["type"] : control;
67
+ return typeof name === "string" && !Object.hasOwn(CONTROLS, name) ? name : undefined;
68
+ };
69
+ /** What a `token`, a `file` and a custom control say of themselves. */
70
+ const editorSettingsOf = (settings) => {
71
+ const { of, format, accept } = settings;
72
+ const own = settings["settings"];
73
+ return {
74
+ ...(own !== undefined && isArgValue(own) ? { settings: own } : {}),
75
+ ...(typeof of === "string" ? { tokens: { of, ...(typeof format === "string" ? { format } : {}) } } : {}),
76
+ ...(typeof accept === "string" ? { accept } : {})
77
+ };
78
+ };
79
+ /**
80
+ * One entry as the panel reads it.
81
+ *
82
+ * @param entry - the `argTypes` entry, the story's laid over the meta's.
83
+ * @param isExcluded - whether `parameters.controls.exclude` names the arg.
84
+ */
85
+ const panelArgTypeOf = (entry, isExcluded) => {
86
+ const control = controlOf(entry);
87
+ const options = optionsOf(entry);
88
+ const settings = isRecord(entry["control"]) ? entry["control"] : {};
89
+ const table = entry["table"];
90
+ const name = entry["name"];
91
+ const description = entry["description"];
92
+ const labels = labelsOf(settings["labels"]);
93
+ const min = numberOf(settings, "min");
94
+ const max = numberOf(settings, "max");
95
+ const step = numberOf(settings, "step");
96
+ const condition = argConditionOf(entry["if"]);
97
+ const customControl = customControlOf(entry["control"]);
98
+ return {
99
+ isHidden: isExcluded || (isRecord(table) && table["disable"] === true),
100
+ ...(typeof name === "string" ? { label: name } : {}),
101
+ ...(typeof description === "string" ? { description } : {}),
102
+ ...(control === undefined ? {} : { control }),
103
+ ...(options === undefined ? {} : { options }),
104
+ ...(labels === undefined ? {} : { labels }),
105
+ ...(min === undefined ? {} : { min }),
106
+ ...(max === undefined ? {} : { max }),
107
+ ...(step === undefined ? {} : { step }),
108
+ ...(condition === undefined ? {} : { if: condition }),
109
+ ...editorSettingsOf(settings),
110
+ ...(customControl === undefined ? {} : { customControl })
111
+ };
112
+ };
113
+ /**
114
+ * The `argTypes` of the meta and the story, merged: each arg's entry from both, the story's fields over the meta's.
115
+ *
116
+ * @param meta - the meta's `argTypes`.
117
+ * @param story - the story's `argTypes`.
118
+ */
119
+ export const mergedArgTypes = (meta, story) => {
120
+ const merged = {};
121
+ for (const part of [meta, story]) {
122
+ if (!isRecord(part))
123
+ continue;
124
+ for (const [name, entry] of Object.entries(part)) {
125
+ if (isRecord(entry))
126
+ merged[name] = { ...merged[name], ...entry };
127
+ }
128
+ }
129
+ return merged;
130
+ };
131
+ /**
132
+ * The arg types the frame sends: each entry read, and the args `parameters.controls.exclude` names hidden.
133
+ *
134
+ * @param argTypes - the merged `argTypes`.
135
+ * @param excluded - the args `parameters.controls.exclude` names.
136
+ */
137
+ export const panelArgTypesOf = (argTypes, excluded) => {
138
+ const names = [...new Set([...Object.keys(argTypes), ...excluded])];
139
+ return Object.fromEntries(names.map((name) => [name, panelArgTypeOf(argTypes[name] ?? {}, excluded.includes(name))]));
140
+ };
141
+ /**
142
+ * The args with each `mapping` applied: an arg whose value is a key of its entry's `mapping` receives the value the
143
+ * key stands for, as Storybook's (an arg written as the key in the story, or chosen in the panel).
144
+ *
145
+ * @param args - the args.
146
+ * @param argTypes - the merged `argTypes`.
147
+ */
148
+ export const mappedArgs = (args, argTypes) => Object.fromEntries(Object.entries(args).map(([name, value]) => {
149
+ const mapping = argTypes[name]?.["mapping"];
150
+ if (!isRecord(mapping) || (typeof value !== "string" && typeof value !== "number"))
151
+ return [name, value];
152
+ const key = String(value);
153
+ // the mapping's own keys only: a value a shared link chose (`constructor`) never reaches its prototype
154
+ return [name, Object.hasOwn(mapping, key) ? mapping[key] : value];
155
+ }));
156
+ /**
157
+ * The props the panel can set, as the story's parameters say: `false` none, a list or `{ include }` those, anything
158
+ * else every one.
159
+ *
160
+ * @param value - `parameters.controls`.
161
+ */
162
+ export const controlsOfParameter = (value) => {
163
+ if (value === false)
164
+ return [];
165
+ if (Array.isArray(value) && value.every((name) => typeof name === "string"))
166
+ return value;
167
+ const include = isRecord(value) ? value["include"] : undefined;
168
+ if (Array.isArray(include) && include.every((name) => typeof name === "string"))
169
+ return include;
170
+ return "all";
171
+ };
172
+ /**
173
+ * The args `parameters.controls.exclude` hides.
174
+ *
175
+ * @param value - `parameters.controls`.
176
+ */
177
+ export const excludedControls = (value) => {
178
+ const exclude = isRecord(value) ? value["exclude"] : undefined;
179
+ return Array.isArray(exclude) ? exclude.filter((name) => typeof name === "string") : [];
180
+ };
181
+ /** Whether a value is a spy (`fn()` of `storybook/test` or Vitest): a function with its calls under `mock`. */
182
+ const isSpy = (value) => typeof value === "function" && "mock" in value;
183
+ /**
184
+ * The args whose calls the Events tab records as actions: those whose value is a spy, and those whose `argTypes`
185
+ * entry names an `action`. Explicit only: no arg is recorded for its name alone.
186
+ *
187
+ * @param args - the story's args.
188
+ * @param argTypes - the merged `argTypes`.
189
+ */
190
+ export const actionNames = (args, argTypes) => [
191
+ ...new Set([
192
+ ...Object.entries(args).flatMap(([name, value]) => (isSpy(value) ? [name] : [])),
193
+ ...Object.entries(argTypes).flatMap(([name, entry]) => typeof entry["action"] === "string" || entry["action"] === true ? [name] : [])
194
+ ])
195
+ ];
@@ -1,4 +1,5 @@
1
1
  import { backdropColor } from "./backdrops.js";
2
+ import { shownSwitches } from "./switches.js";
2
3
  import { isMoreContrastOf, schemeOf } from "./viewState.js";
3
4
  /**
4
5
  * A source's page colour for a view, or the colour of the view's backdrop.
@@ -20,7 +21,17 @@ export const storyBackground = (background, view, catalogue, isSystemDark) => {
20
21
  return backdrop;
21
22
  if (background === undefined)
22
23
  return undefined;
23
- if (isDark)
24
- return isMoreContrast ? (background.darkMore ?? background.dark) : background.dark;
25
- return isMoreContrast ? (background.lightMore ?? background.light) : background.light;
24
+ const colourIn = (colours) => {
25
+ if (isDark)
26
+ return (isMoreContrast ? colours?.darkMore : undefined) ?? colours?.dark;
27
+ return (isMoreContrast ? colours?.lightMore : undefined) ?? colours?.light;
28
+ };
29
+ const values = shownSwitches(view.switches, switches);
30
+ // the first switch whose value gives this scheme's colour: a value that gives only `dark` leaves `light` to the next
31
+ for (const each of switches) {
32
+ const colour = colourIn(background.bySwitch?.[each.id]?.[values[each.id] ?? each.default]);
33
+ if (colour !== undefined)
34
+ return colour;
35
+ }
36
+ return colourIn(background);
26
37
  };
@@ -8,7 +8,8 @@
8
8
  * when it runs (the core has no browser), and reads the report back through `isStoryCheckReport`, since it crossed a
9
9
  * dynamic import. The problems are those the catalogue's browser tests fail on, with the same messages: a frame that
10
10
  * could not show its story, axe's rules, spills, overlays past the frame, and the page's errors (a failed play among
11
- * them: its rejection reaches the page). Pure.
11
+ * them: its rejection reaches the page). A story its frame gave up on is neither passed nor failed: `notVerified` says
12
+ * so. Pure.
12
13
  *
13
14
  * @module
14
15
  */
@@ -27,10 +28,24 @@ export type StoryProblem = {
27
28
  /** What is wrong, as the catalogue's tests say it. */
28
29
  readonly message: string;
29
30
  };
31
+ /**
32
+ * Something a check found that does not fail the story: a static file it asks for (an image, a font) that answers 404.
33
+ * The story still runs and a person sees what is missing, so it is said, not counted.
34
+ */
35
+ export type StoryWarning = {
36
+ /** What it is. */
37
+ readonly kind: "missing-file";
38
+ /** The file's path, with its query: the same in every run. */
39
+ readonly path: string;
40
+ /** What it means, in a sentence. */
41
+ readonly message: string;
42
+ };
30
43
  /** A story to check: its id, and the height its scene declares. */
31
44
  export type StoryCheckStory = {
32
45
  /** The story's id. */
33
46
  readonly id: string;
47
+ /** Its file, as the catalogue lists it: what a report names when the story cannot be shown. */
48
+ readonly file?: string;
34
49
  /**
35
50
  * The id an earlier rule gave it, when it differs from `id`: a baseline stored under that id is still its baseline
36
51
  * until `forgebook shot --update` stores one under its id.
@@ -57,6 +72,8 @@ export type StoryCheckRequest = {
57
72
  readonly views: readonly string[];
58
73
  /** Check every variant the catalogue's browser tests check instead of the views given. */
59
74
  readonly isAllVariants: boolean;
75
+ /** How many pages to open at once; one by default. */
76
+ readonly concurrency?: number;
60
77
  /** The model that judges what axe cannot see; none leaves the pages on this machine. */
61
78
  readonly semantic?: SemanticModel;
62
79
  };
@@ -86,6 +103,21 @@ export type StoryCheckResult = {
86
103
  readonly frame: string;
87
104
  /** The problems; none when it passes. */
88
105
  readonly problems: readonly StoryProblem[];
106
+ /** What was found that does not fail it: its missing static files. Absent when there is none. */
107
+ readonly warnings?: readonly StoryWarning[];
108
+ /**
109
+ * Why the story's checks did not run: its frame gave up waiting for what it loads, or cannot tell (status `pending`),
110
+ * so no check saw the story in its final state. Absent when they ran; present, the story has not passed, whatever
111
+ * `problems` holds.
112
+ */
113
+ readonly notVerified?: string;
114
+ /** Whether the story drew nothing a reader could see: no text, and no element with a size. Absent otherwise. */
115
+ readonly isBlank?: boolean;
116
+ /**
117
+ * Whether the frame did not wait for what the story loads, as it asks (`parameters.suspense.expected`): the checks read
118
+ * it as it first drew. Absent otherwise.
119
+ */
120
+ readonly isNotAwaited?: boolean;
89
121
  /** What the model judged, when one was asked; a text says why it could not. */
90
122
  readonly judgements?: readonly StoryJudgement[] | string;
91
123
  };
@@ -98,6 +130,67 @@ export type StoryCheckReport = {
98
130
  /** `"off"` when the catalogue checks no accessibility (`a11y: false`): no result ran axe. Absent when it does. */
99
131
  readonly a11y?: "off";
100
132
  };
133
+ /** One case of a stress run: the values given, the window, the view, and what it found that the plain story does not. */
134
+ export type StressCase = {
135
+ /** Its name: `long-text`, `unbreakable`, `huge-number`, `empty`, `rtl`, `zoom-200`, `narrow`, `dark`, `contrast`. */
136
+ readonly name: string;
137
+ /** The story's id. */
138
+ readonly storyId: string;
139
+ /** The values given over the story's own, by prop. */
140
+ readonly args: Readonly<Record<string, unknown>>;
141
+ /** The frame, in its view. */
142
+ readonly frame: string;
143
+ /** The problems the plain story does not have; none when it holds. */
144
+ readonly problems: readonly StoryProblem[];
145
+ /** Why it could not be judged: the story did not draw in it, or not in the plain case. */
146
+ readonly notVerified?: string;
147
+ };
148
+ /** One case to run, as the command builds it from the story's props and the catalogue's switches. */
149
+ export type StressCaseRequest = {
150
+ /** Its name. */
151
+ readonly name: string;
152
+ /** The values to give, as the props panel gives them. */
153
+ readonly args: Readonly<Record<string, unknown>>;
154
+ /** The view, in the address's form (`theme=dark`); empty for the default. */
155
+ readonly view: string;
156
+ /** The window's width, in CSS px; the default window's when none. */
157
+ readonly width?: number;
158
+ /** Whether the frame's document reads right to left. */
159
+ readonly isRtl?: boolean;
160
+ /** The axe rules whose finding the case's own values cause, which say nothing of the component. */
161
+ readonly expectedRules?: readonly string[];
162
+ };
163
+ /** What a stress run is asked. */
164
+ export type StressRequest = {
165
+ /** The catalogue's frame page, absolute. */
166
+ readonly frameUrl: string;
167
+ /** The stories, each with its cases. */
168
+ readonly stories: readonly {
169
+ readonly story: StoryCheckStory;
170
+ readonly cases: readonly StressCaseRequest[];
171
+ }[];
172
+ /** The catalogue's switches. */
173
+ readonly switches: readonly ViewSwitch[];
174
+ /** The catalogue's lists: its accessibility rules. */
175
+ readonly lists: CatalogueLists;
176
+ };
177
+ /** What a stress run found. */
178
+ export type StressReport = {
179
+ /** The shape's version. */
180
+ readonly schema: 1;
181
+ /** One result per story and case. */
182
+ readonly cases: readonly StressCase[];
183
+ /** The cases not run, each with its story and why: a case with nothing to set is never counted as passed. */
184
+ readonly skipped: readonly string[];
185
+ /** `"off"` when the catalogue checks no accessibility (`a11y: false`): no case ran axe. Absent when it does. */
186
+ readonly a11y?: "off";
187
+ };
188
+ /**
189
+ * Whether what the testing package answered is a stress run's report.
190
+ *
191
+ * @param value - the answer.
192
+ */
193
+ export declare const isStressReport: (value: unknown) => value is StressReport;
101
194
  /**
102
195
  * Whether what the testing package answered is a check's report.
103
196
  *
@@ -119,8 +212,11 @@ export type StoryShot = {
119
212
  readonly frame: string;
120
213
  /** The picture, a PNG file's absolute path. */
121
214
  readonly file: string;
122
- /** Why the story did not draw (`error`, or `silent` when it never said); none when it did. */
123
- readonly status?: "error" | "silent";
215
+ /**
216
+ * Why the picture is not of the story as drawn (`error`; `silent` when it never said; `pending` when the frame gave up
217
+ * on what it loads, so this may picture a fallback); none when it is.
218
+ */
219
+ readonly status?: "error" | "silent" | "pending";
124
220
  };
125
221
  /** The pictures taken. */
126
222
  export type StoryShotReport = {
@@ -1,3 +1,23 @@
1
+ /**
2
+ * Whether what the testing package answered is a stress run's report.
3
+ *
4
+ * @param value - the answer.
5
+ */
6
+ export const isStressReport = (value) => typeof value === "object" &&
7
+ value !== null &&
8
+ "schema" in value &&
9
+ value.schema === 1 &&
10
+ "cases" in value &&
11
+ Array.isArray(value.cases) &&
12
+ value.cases.every((each) => typeof each === "object" &&
13
+ each !== null &&
14
+ "name" in each &&
15
+ typeof each.name === "string" &&
16
+ "storyId" in each &&
17
+ typeof each.storyId === "string" &&
18
+ "problems" in each &&
19
+ Array.isArray(each.problems) &&
20
+ each.problems.every(isProblem));
1
21
  /** Every kind, for reading a report back. */
2
22
  const KINDS = ["frame", "axe", "spill", "overlay", "focus", "error"];
3
23
  /**
@@ -11,6 +31,19 @@ const isProblem = (value) => typeof value === "object" &&
11
31
  KINDS.some((kind) => kind === value.kind) &&
12
32
  "message" in value &&
13
33
  typeof value.message === "string";
34
+ /**
35
+ * Whether a value is a warning.
36
+ *
37
+ * @param value - the value.
38
+ */
39
+ const isWarning = (value) => typeof value === "object" &&
40
+ value !== null &&
41
+ "kind" in value &&
42
+ value.kind === "missing-file" &&
43
+ "path" in value &&
44
+ typeof value.path === "string" &&
45
+ "message" in value &&
46
+ typeof value.message === "string";
14
47
  /**
15
48
  * Whether a value is a result.
16
49
  *
@@ -26,7 +59,12 @@ const isResult = (value) => typeof value === "object" &&
26
59
  typeof value.frame === "string" &&
27
60
  "problems" in value &&
28
61
  Array.isArray(value.problems) &&
29
- value.problems.every(isProblem);
62
+ value.problems.every(isProblem) &&
63
+ (!("warnings" in value) ||
64
+ value.warnings === undefined ||
65
+ (Array.isArray(value.warnings) && value.warnings.every(isWarning))) &&
66
+ (!("notVerified" in value) || value.notVerified === undefined || typeof value.notVerified === "string") &&
67
+ (!("isNotAwaited" in value) || value.isNotAwaited === undefined || typeof value.isNotAwaited === "boolean");
30
68
  /**
31
69
  * Whether what the testing package answered is a check's report.
32
70
  *
@@ -0,0 +1,52 @@
1
+ /**
2
+ * A story's code as text, as the shell shows and copies it and as `forgebook story` gives it to an agent: its `render`
3
+ * as written, or, for a story drawn from its args, the component in the framework's code with the args its file writes
4
+ * as code (functions, elements) as written and the values of the moment for the rest.
5
+ *
6
+ * @remarks
7
+ * An arg the panel or an agent set is written from its value, not from the file's text, which no longer says what the
8
+ * story draws. Pure: the shell and the dev server read the same text.
9
+ *
10
+ * @module
11
+ */
12
+ import type { StoryCode, StoryFileCode } from "@forgebook/story-format/source";
13
+ import type { StoryCodeWriter } from "./frame/renderer.ts";
14
+ import type { PanelArgs } from "./messages.ts";
15
+ /** Which story's code, and the values its code is drawn from when it has no `render`. */
16
+ export type StoryCodeSource = {
17
+ /** The story file's code. */
18
+ readonly code: StoryFileCode;
19
+ /** The story's export name. */
20
+ readonly exportName: string;
21
+ /** The component's name as code writes it (`codeNameOf`), for the code of a story drawn from its args. */
22
+ readonly componentName: string;
23
+ /** The values of the moment: the story's args, with the panel's over them on the story page. */
24
+ readonly args: PanelArgs;
25
+ /** The args the panel or an agent set, written from their values; none by default. */
26
+ readonly edited?: readonly string[];
27
+ /**
28
+ * The code a custom control writes some values as, by arg (`controlCode.ts`): used where the file writes no code of
29
+ * its own for the arg, or the arg was set; none by default.
30
+ */
31
+ readonly argCode?: Readonly<Record<string, string>>;
32
+ };
33
+ /**
34
+ * The story's render as written, when it has one.
35
+ *
36
+ * @param source - the file's code and the story.
37
+ */
38
+ export declare const renderCodeOf: ({ code, exportName }: StoryCodeSource) => StoryCode | undefined;
39
+ /**
40
+ * The args written as code: those the story's file writes, but those the panel or an agent set, over those a control
41
+ * writes.
42
+ *
43
+ * @param source - the file's code, the story and what was set.
44
+ */
45
+ export declare const writtenArgsOf: ({ code, exportName, edited, argCode }: StoryCodeSource) => Readonly<Record<string, string>>;
46
+ /**
47
+ * The story's code as text, as copied.
48
+ *
49
+ * @param source - the file's code, the story, the component's name and the args.
50
+ * @param write - the framework's code writer, for a story drawn from its args.
51
+ */
52
+ export declare const storyCodeText: (source: StoryCodeSource, write: StoryCodeWriter) => string;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * The story's render as written, when it has one.
3
+ *
4
+ * @param source - the file's code and the story.
5
+ */
6
+ export const renderCodeOf = ({ code, exportName }) => {
7
+ const entry = code[exportName];
8
+ return entry !== undefined && "text" in entry ? entry : undefined;
9
+ };
10
+ /**
11
+ * The args written as code: those the story's file writes, but those the panel or an agent set, over those a control
12
+ * writes.
13
+ *
14
+ * @param source - the file's code, the story and what was set.
15
+ */
16
+ export const writtenArgsOf = ({ code, exportName, edited = [], argCode = {} }) => {
17
+ const entry = code[exportName];
18
+ const own = entry === undefined || !("args" in entry) ? {} : entry.args;
19
+ return {
20
+ ...argCode,
21
+ ...Object.fromEntries(Object.entries(own).filter(([name]) => !edited.includes(name)))
22
+ };
23
+ };
24
+ /**
25
+ * The story's code as text, as copied.
26
+ *
27
+ * @param source - the file's code, the story, the component's name and the args.
28
+ * @param write - the framework's code writer, for a story drawn from its args.
29
+ */
30
+ export const storyCodeText = (source, write) => renderCodeOf(source)?.text ?? write(source.componentName, source.args, writtenArgsOf(source));
@@ -0,0 +1,103 @@
1
+ /**
2
+ * What a story's controls are, for whoever sets its values without the panel: each prop's control and what its value
3
+ * looks like, as an agent reads them, and the values an agent asks to set, checked as a link's are. Pure.
4
+ *
5
+ * @module
6
+ */
7
+ import type { StoryControlsSetting } from "@forgebook/story-format/source";
8
+ import { type DroppedArg } from "./addressArgs.ts";
9
+ import { type AddressTexts } from "./addressTexts.ts";
10
+ import type { ValueSchema } from "./argControl.ts";
11
+ import { type PanelArgTypes, type PanelControl, type TokenRequest } from "./argTypes.ts";
12
+ import type { PropDocs } from "./componentDocs.ts";
13
+ import type { ControlCoders } from "./controlCode.ts";
14
+ import { type ArgValue, type PanelArgs } from "./messages.ts";
15
+ import type { NamedValues } from "./namedValues.ts";
16
+ import { type ValueShape } from "./valueShape.ts";
17
+ /** How a value of a prop is set: the panel's control, or a choice among the source's named values. */
18
+ export type ControlKind = Exclude<PanelControl, "none"> | "named" | "custom";
19
+ /** One prop a story's values can set. */
20
+ export type StoryControl = {
21
+ /** The prop's name: the key in `args`. */
22
+ readonly name: string;
23
+ /** Its control, which says what its value is. */
24
+ readonly control: ControlKind;
25
+ /** Its type, as the source writes it. */
26
+ readonly type: string;
27
+ /** Whether the prop must be passed. */
28
+ readonly isRequired: boolean;
29
+ /** What its value looks like, for a value of more than one part. */
30
+ readonly shape?: ValueShape;
31
+ /** A choice's values. */
32
+ readonly choices?: readonly (string | number)[];
33
+ /** A number's lowest value. */
34
+ readonly min?: number;
35
+ /** A number's highest value. */
36
+ readonly max?: number;
37
+ /** The names a `named` control takes, as `{ of: type, named: name }`. */
38
+ readonly named?: readonly string[];
39
+ /** A `custom` control's name, of those `argControls` registers. */
40
+ readonly custom?: string;
41
+ /** A `custom` control's `settings`, as the story writes them. */
42
+ readonly settings?: ArgValue;
43
+ /** A `custom` control's schema: what its value must fit. Left out when its module cannot be read. */
44
+ readonly schema?: ValueSchema;
45
+ /** A `token` control's tokens, and what the story receives for one (`forgebook tokens` lists them). */
46
+ readonly tokens?: TokenRequest;
47
+ };
48
+ /** The custom controls' schemas, by name. */
49
+ export type CustomSchemas = Readonly<Record<string, ValueSchema>>;
50
+ /** What a story declares of its args, as the server reads it from the story's module. */
51
+ export type StoryDeclaration = {
52
+ /** The props its component's types give. */
53
+ readonly props: readonly PropDocs[];
54
+ /** Its `argTypes`, as the panel reads them. */
55
+ readonly argTypes: PanelArgTypes;
56
+ /** The props the story lets the panel set. */
57
+ readonly controls: StoryControlsSetting;
58
+ /** The story's own args, as the panel reads them. */
59
+ readonly storyArgs: PanelArgs;
60
+ /** The source's named values. */
61
+ readonly namedValues: NamedValues;
62
+ /** The custom controls' schemas, by name, those whose module could be read. */
63
+ readonly customSchemas?: CustomSchemas;
64
+ };
65
+ /**
66
+ * The props a story's values can set.
67
+ *
68
+ * @param declaration - what the story declares.
69
+ */
70
+ export declare const storyControlsOf: (declaration: StoryDeclaration) => readonly StoryControl[];
71
+ /** What became of the values asked for. */
72
+ export type SetArgs = {
73
+ /** The values the story takes, by prop; the links carry them. */
74
+ readonly accepted: Readonly<Record<string, ArgValue>>;
75
+ /** The values left out, with the reason. */
76
+ readonly dropped: readonly DroppedArg[];
77
+ /** `args=` as the links write it; empty when none is taken. */
78
+ readonly param: string;
79
+ };
80
+ /**
81
+ * The values an agent asks to set, checked as a link's are.
82
+ *
83
+ * @param text - the values, as JSON.
84
+ * @param declaration - what the story declares.
85
+ * @param addressTexts - how the framework's stories take a link's texts; `any` by default.
86
+ */
87
+ export declare const checkedSetArgs: (text: string, declaration: StoryDeclaration, addressTexts?: AddressTexts) => SetArgs;
88
+ /** The custom controls as the server read them. */
89
+ export type CustomControlsRead = {
90
+ /** The schemas, by control. */
91
+ readonly schemas: CustomSchemas;
92
+ /** What writes each control's values as code, by control, those whose module could be read. */
93
+ readonly coders: ControlCoders;
94
+ /** Why a control could not be read, by control. */
95
+ readonly problems: Readonly<Record<string, string>>;
96
+ };
97
+ /**
98
+ * What is wrong with the custom controls a story names: one no configuration registers, or whose module did not load.
99
+ *
100
+ * @param controls - the story's controls.
101
+ * @param read - the custom controls as the server read them.
102
+ */
103
+ export declare const customControlProblems: (controls: readonly StoryControl[], read: CustomControlsRead | undefined) => readonly string[];