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
@@ -1,17 +1,18 @@
1
1
  /**
2
- * A story's `argTypes` (Storybook's): read in the frame from the meta and the story, sent to the shell in a form that
3
- * crosses between the documents, laid over the props the component's types give, and their `mapping` applied to the
4
- * args the story receives.
2
+ * A story's `argTypes` (Storybook's) as the shell reads them: in the form that crosses between the documents, laid over the
3
+ * props the component's types give. What reads them from the story's module is `storyArgTypes.ts`.
5
4
  *
6
5
  * @remarks
7
6
  * The panel's props come from the component's types (`componentDocs.ts`); `argTypes` say otherwise where a story
8
7
  * means another control, other options, other names, or an arg the types do not name. Without `argTypes` the panel
9
8
  * shows the props exactly as the types give them. Option values that cannot cross (a component, a function) are
10
- * sent as their `mapping` keys, which the frame turns back into the values. `object` and `file` controls have no
11
- * control in the panel: their args are listed for reading. Pure.
9
+ * sent as their `mapping` keys, which the frame turns back into the values. An `object` control edits the prop by the
10
+ * shape its type gives (`valueShape.ts`), by what the story's own arg looks like without one, as JSON when nothing says.
11
+ * Pure.
12
12
  *
13
13
  * @module
14
14
  */
15
+ import { isArgCondition } from "./argConditions.js";
15
16
  /**
16
17
  * Whether a prop is a colour: named so by its `argTypes`, or by the name convention (`color`, `accentColor`).
17
18
  *
@@ -30,145 +31,23 @@ export const isColorProp = (prop) => prop.control === "color" ||
30
31
  export const isNamedProp = (prop, namedValues) => prop.kind === "other" && prop.control === undefined && namedValues[prop.type] !== undefined;
31
32
  /**
32
33
  * The props the panel can set: a prop of a type the source names values for is chosen among them, a node that takes a
33
- * text is set as one; any other `other` prop, and an event, cannot be set; nor a prop the story's controls leave out.
34
+ * text is set as one, a prop with a shape by its fields; any other `other` prop, and an event, cannot be set; nor a prop
35
+ * the story's controls leave out.
34
36
  *
35
37
  * @param props - the component's props, with the story's `argTypes` laid over them.
36
38
  * @param controls - the props the story lets the panel set.
37
39
  * @param namedValues - the source's named values.
38
40
  */
39
- export const settableProps = (props, controls, namedValues) => props.filter((prop) => (prop.kind !== "other" || prop.canTakeText === true || isNamedProp(prop, namedValues)) &&
41
+ export const settableProps = (props, controls, namedValues) => props.filter((prop) => (prop.kind !== "other" ||
42
+ prop.canTakeText === true ||
43
+ prop.control === "file" ||
44
+ prop.customControl !== undefined ||
45
+ isNamedProp(prop, namedValues) ||
46
+ prop.shape !== undefined) &&
40
47
  prop.kind !== "event" &&
41
48
  (controls === "all" || controls.includes(prop.name)));
42
49
  /** Whether a value is a plain object. */
43
50
  const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
44
- /** Storybook's control names, as the panel draws them (the inline variants look the same here). */
45
- const CONTROLS = {
46
- select: "select",
47
- radio: "radio",
48
- "inline-radio": "radio",
49
- check: "check",
50
- "inline-check": "check",
51
- "multi-select": "multi-select",
52
- boolean: "boolean",
53
- text: "text",
54
- number: "number",
55
- range: "range",
56
- color: "color",
57
- date: "date",
58
- object: "none",
59
- file: "none"
60
- };
61
- /** The panel controls, for the check on arrival. */
62
- const PANEL_CONTROLS = [...new Set(Object.values(CONTROLS))];
63
- /** A number field of an object, when it is a finite number. */
64
- const numberOf = (part, name) => {
65
- const value = part[name];
66
- return typeof value === "number" && Number.isFinite(value) ? value : undefined;
67
- };
68
- /** The labels of a control, when every one is a text. */
69
- const labelsOf = (value) => isRecord(value) && Object.values(value).every((label) => typeof label === "string")
70
- ? Object.fromEntries(Object.entries(value).map(([option, label]) => [option, String(label)]))
71
- : undefined;
72
- /**
73
- * The control an entry names: `false` and a disabled control are none, a name or `{ type }` is that control, and
74
- * options without a control make a select.
75
- */
76
- const controlOf = (entry) => {
77
- const control = entry["control"];
78
- if (control === false)
79
- return "none";
80
- if (typeof control === "string")
81
- return CONTROLS[control];
82
- if (isRecord(control)) {
83
- if (control["disable"] === true)
84
- return "none";
85
- if (typeof control["type"] === "string")
86
- return CONTROLS[control["type"]];
87
- }
88
- return Array.isArray(entry["options"]) ? "select" : undefined;
89
- };
90
- /**
91
- * The options as they cross: texts and numbers as they are; any other value only through `mapping`, whose keys are
92
- * the options then.
93
- */
94
- const optionsOf = (entry) => {
95
- const options = entry["options"];
96
- if (!Array.isArray(options))
97
- return undefined;
98
- return options.filter((option) => typeof option === "string" || typeof option === "number");
99
- };
100
- /**
101
- * One entry as the panel reads it.
102
- *
103
- * @param entry - the `argTypes` entry, the story's laid over the meta's.
104
- * @param isExcluded - whether `parameters.controls.exclude` names the arg.
105
- */
106
- const panelArgTypeOf = (entry, isExcluded) => {
107
- const control = controlOf(entry);
108
- const options = optionsOf(entry);
109
- const settings = isRecord(entry["control"]) ? entry["control"] : {};
110
- const table = entry["table"];
111
- const name = entry["name"];
112
- const description = entry["description"];
113
- const labels = labelsOf(settings["labels"]);
114
- const min = numberOf(settings, "min");
115
- const max = numberOf(settings, "max");
116
- const step = numberOf(settings, "step");
117
- return {
118
- isHidden: isExcluded || (isRecord(table) && table["disable"] === true),
119
- ...(typeof name === "string" ? { label: name } : {}),
120
- ...(typeof description === "string" ? { description } : {}),
121
- ...(control === undefined ? {} : { control }),
122
- ...(options === undefined ? {} : { options }),
123
- ...(labels === undefined ? {} : { labels }),
124
- ...(min === undefined ? {} : { min }),
125
- ...(max === undefined ? {} : { max }),
126
- ...(step === undefined ? {} : { step })
127
- };
128
- };
129
- /**
130
- * The `argTypes` of the meta and the story, merged: each arg's entry from both, the story's fields over the meta's.
131
- *
132
- * @param meta - the meta's `argTypes`.
133
- * @param story - the story's `argTypes`.
134
- */
135
- export const mergedArgTypes = (meta, story) => {
136
- const merged = {};
137
- for (const part of [meta, story]) {
138
- if (!isRecord(part))
139
- continue;
140
- for (const [name, entry] of Object.entries(part)) {
141
- if (isRecord(entry))
142
- merged[name] = { ...merged[name], ...entry };
143
- }
144
- }
145
- return merged;
146
- };
147
- /**
148
- * The arg types the frame sends: each entry read, and the args `parameters.controls.exclude` names hidden.
149
- *
150
- * @param argTypes - the merged `argTypes`.
151
- * @param excluded - the args `parameters.controls.exclude` names.
152
- */
153
- export const panelArgTypesOf = (argTypes, excluded) => {
154
- const names = [...new Set([...Object.keys(argTypes), ...excluded])];
155
- return Object.fromEntries(names.map((name) => [name, panelArgTypeOf(argTypes[name] ?? {}, excluded.includes(name))]));
156
- };
157
- /**
158
- * The args with each `mapping` applied: an arg whose value is a key of its entry's `mapping` receives the value the
159
- * key stands for, as Storybook's (an arg written as the key in the story, or chosen in the panel).
160
- *
161
- * @param args - the args.
162
- * @param argTypes - the merged `argTypes`.
163
- */
164
- export const mappedArgs = (args, argTypes) => Object.fromEntries(Object.entries(args).map(([name, value]) => {
165
- const mapping = argTypes[name]?.["mapping"];
166
- if (!isRecord(mapping) || (typeof value !== "string" && typeof value !== "number"))
167
- return [name, value];
168
- const key = String(value);
169
- // the mapping's own keys only: a value a shared link chose (`constructor`) never reaches its prototype
170
- return [name, Object.hasOwn(mapping, key) ? mapping[key] : value];
171
- }));
172
51
  /** The prop kind a control sets, for the panel's groups. */
173
52
  const KIND_OF_CONTROL = {
174
53
  select: "choice",
@@ -181,21 +60,50 @@ const KIND_OF_CONTROL = {
181
60
  range: "number",
182
61
  color: "text",
183
62
  date: "number",
63
+ object: "other",
64
+ textarea: "text",
65
+ token: "text",
66
+ file: "other",
184
67
  none: "other"
185
68
  };
69
+ /**
70
+ * What a prop's editor reads of its arg type: an `object` control's shape, from its type, else from the story's own value,
71
+ * else JSON; a `token` control's tokens; what a `file` control takes.
72
+ */
73
+ const editorFieldsOf = (prop, argType, own) => {
74
+ const shapeOfOwn = own === undefined || own === null ? { kind: "json" } : { kind: "like", value: own };
75
+ return {
76
+ ...(argType.control === "object" ? { shape: prop.shape ?? shapeOfOwn } : {}),
77
+ // a `token` control that names no tokens asks for those named after its arg
78
+ ...(argType.control === "token" ? { tokens: argType.tokens ?? { of: prop.name } } : {}),
79
+ ...(argType.accept === undefined ? {} : { accept: argType.accept }),
80
+ ...(argType.customControl === undefined
81
+ ? {}
82
+ : {
83
+ kind: "other",
84
+ customControl: argType.customControl,
85
+ ...(argType.settings === undefined ? {} : { settings: argType.settings })
86
+ })
87
+ };
88
+ };
186
89
  /**
187
90
  * A prop with its arg type laid over it.
188
91
  *
189
92
  * @param prop - the prop as the types give it.
190
93
  * @param argType - its arg type.
94
+ * @param own - the story's own value of the arg: what an `object` control with no type to read draws its fields from.
191
95
  */
192
- const withArgType = (prop, argType) => {
96
+ const withArgType = (prop, argType, own) => {
193
97
  const { control } = argType;
194
98
  // a control the panel cannot draw makes the prop one it lists for reading, never one that takes a text
195
99
  const isReadOnly = control === "none";
196
- const { canTakeText: _canTakeText, ...rest } = prop;
100
+ // a control the story names wins over the one the catalogue gives the prop's type
101
+ const { customControl: _typed, ...untyped } = prop;
102
+ const { canTakeText: _canTakeText, ...rest } = untyped;
103
+ // a control the story names decides what its value is: the type's shape no longer draws nor checks it
104
+ const { shape: _shape, ...shapeless } = isReadOnly || argType.customControl !== undefined ? rest : untyped;
197
105
  return {
198
- ...(isReadOnly ? rest : prop),
106
+ ...(control === undefined && argType.customControl === undefined ? prop : shapeless),
199
107
  ...(control === undefined ? {} : { kind: KIND_OF_CONTROL[control], control }),
200
108
  ...(argType.options === undefined ? {} : { choices: argType.options }),
201
109
  ...(argType.description === undefined ? {} : { description: argType.description }),
@@ -203,58 +111,49 @@ const withArgType = (prop, argType) => {
203
111
  ...(argType.labels === undefined ? {} : { labels: argType.labels }),
204
112
  ...(argType.min === undefined ? {} : { min: argType.min }),
205
113
  ...(argType.max === undefined ? {} : { max: argType.max }),
206
- ...(argType.step === undefined ? {} : { step: argType.step })
114
+ ...(argType.step === undefined ? {} : { step: argType.step }),
115
+ ...editorFieldsOf(prop, argType, own)
207
116
  };
208
117
  };
209
118
  /** A prop the types do not name, made from its arg type alone: a text when it names no control. */
210
- const propOfArgType = (name, argType) => withArgType({ name, kind: "text", type: "", description: "", isRequired: false }, argType);
119
+ const propOfArgType = (name, argType, own) => withArgType({ name, kind: "text", type: "", description: "", isRequired: false }, argType, own);
120
+ /** A prop as its TSDoc asks: chosen among the tokens `@token` names, when it is set as a text. */
121
+ const propAsDocumented = (prop) => prop.token !== undefined && (prop.kind === "text" || prop.canTakeText === true)
122
+ ? { ...prop, kind: "text", control: "token", tokens: { of: prop.token } }
123
+ : prop;
211
124
  /**
212
125
  * The panel's props: the component's, with their arg types laid over them, the hidden ones left out, then the args
213
126
  * only the arg types name, in their order.
214
127
  *
215
128
  * @param props - the props the component's types give.
216
129
  * @param argTypes - the story's arg types; none leaves the props as they are.
130
+ * @param storyArgs - the story's own args, for an `object` control no type describes; none by default.
217
131
  */
218
- export const panelProps = (props, argTypes) => {
132
+ export const panelProps = (props, argTypes, storyArgs = {}) => {
219
133
  const typed = new Set(props.map((prop) => prop.name));
220
134
  const fromTypes = props.flatMap((prop) => {
221
135
  const argType = argTypes[prop.name];
222
136
  if (argType === undefined)
223
- return [prop];
224
- return argType.isHidden ? [] : [withArgType(prop, argType)];
137
+ return [propAsDocumented(prop)];
138
+ if (argType.isHidden)
139
+ return [];
140
+ return [
141
+ withArgType(argType.control === undefined ? propAsDocumented(prop) : prop, argType, storyArgs[prop.name])
142
+ ];
225
143
  });
226
- const fromArgTypes = Object.entries(argTypes).flatMap(([name, argType]) => typed.has(name) || argType.isHidden ? [] : [propOfArgType(name, argType)]);
144
+ const fromArgTypes = Object.entries(argTypes).flatMap(([name, argType]) => typed.has(name) || argType.isHidden ? [] : [propOfArgType(name, argType, storyArgs[name])]);
227
145
  return [...fromTypes, ...fromArgTypes];
228
146
  };
229
- /**
230
- * The props the panel can set, as the story's parameters say: `false` none, a list or `{ include }` those, anything
231
- * else every one.
232
- *
233
- * @param value - `parameters.controls`.
234
- */
235
- export const controlsOfParameter = (value) => {
236
- if (value === false)
237
- return [];
238
- if (Array.isArray(value) && value.every((name) => typeof name === "string"))
239
- return value;
240
- const include = isRecord(value) ? value["include"] : undefined;
241
- if (Array.isArray(include) && include.every((name) => typeof name === "string"))
242
- return include;
243
- return "all";
244
- };
245
- /**
246
- * The args `parameters.controls.exclude` hides.
247
- *
248
- * @param value - `parameters.controls`.
249
- */
250
- export const excludedControls = (value) => {
251
- const exclude = isRecord(value) ? value["exclude"] : undefined;
252
- return Array.isArray(exclude) ? exclude.filter((name) => typeof name === "string") : [];
253
- };
254
147
  /** Whether a value is one arg's panel arg type. */
255
148
  const isPanelArgType = (value) => isRecord(value) &&
256
149
  typeof value["isHidden"] === "boolean" &&
257
- (value["control"] === undefined || PANEL_CONTROLS.some((control) => control === value["control"])) &&
150
+ (value["if"] === undefined || isArgCondition(value["if"])) &&
151
+ (value["control"] === undefined ||
152
+ (typeof value["control"] === "string" && Object.hasOwn(KIND_OF_CONTROL, value["control"]))) &&
153
+ (value["tokens"] === undefined ||
154
+ (isRecord(value["tokens"]) && typeof value["tokens"]["of"] === "string")) &&
155
+ (value["accept"] === undefined || typeof value["accept"] === "string") &&
156
+ (value["customControl"] === undefined || typeof value["customControl"] === "string") &&
258
157
  (value["options"] === undefined ||
259
158
  (Array.isArray(value["options"]) &&
260
159
  value["options"].every((option) => typeof option === "string" || typeof option === "number")));
@@ -264,18 +163,3 @@ const isPanelArgType = (value) => isRecord(value) &&
264
163
  * @param value - the message's field.
265
164
  */
266
165
  export const isPanelArgTypes = (value) => isRecord(value) && Object.values(value).every(isPanelArgType);
267
- /** Whether a value is a spy (`fn()` of `storybook/test` or Vitest): a function with its calls under `mock`. */
268
- const isSpy = (value) => typeof value === "function" && "mock" in value;
269
- /**
270
- * The args whose calls the Events tab records as actions: those whose value is a spy, and those whose `argTypes`
271
- * entry names an `action`. Explicit only: no arg is recorded for its name alone.
272
- *
273
- * @param args - the story's args.
274
- * @param argTypes - the merged `argTypes`.
275
- */
276
- export const actionNames = (args, argTypes) => [
277
- ...new Set([
278
- ...Object.entries(args).flatMap(([name, value]) => (isSpy(value) ? [name] : [])),
279
- ...Object.entries(argTypes).flatMap(([name, entry]) => typeof entry["action"] === "string" || entry["action"] === true ? [name] : [])
280
- ])
281
- ];
@@ -4,8 +4,8 @@
4
4
  *
5
5
  * @remarks
6
6
  * An arg's kind is read from its value: a text, a number, a toggle, an event for an arg the frame records as an
7
- * action. A list or a value the source names (`namedValues`) is listed for reading, unless its type is one the source
8
- * names values for. Nothing is said of a prop the story gives no arg: without the types there is no way to know it.
7
+ * action, fields for an object or a list. A value the source names (`namedValues`) is listed for
8
+ * reading, unless its type is one the source names values for. Nothing is said of a prop the story gives no arg: without the types there is no way to know it.
9
9
  * The story's `argTypes` are laid over these as over the types' props (`argTypes.ts`). A shared link's values are
10
10
  * checked against these kinds (`addressArgs.ts`): without the types, a text arg takes any text, so a prop of a few
11
11
  * values keeps a link to them only through its `argTypes` options. Pure.
@@ -13,7 +13,7 @@
13
13
  * @module
14
14
  */
15
15
  import type { ComponentDocs, PropDocs } from "./componentDocs.ts";
16
- import type { PanelArgs } from "./messages.ts";
16
+ import { type PanelArgs } from "./messages.ts";
17
17
  /**
18
18
  * The props a story's args stand for, in the args' order, then its actions the args do not hold.
19
19
  *
@@ -4,14 +4,15 @@
4
4
  *
5
5
  * @remarks
6
6
  * An arg's kind is read from its value: a text, a number, a toggle, an event for an arg the frame records as an
7
- * action. A list or a value the source names (`namedValues`) is listed for reading, unless its type is one the source
8
- * names values for. Nothing is said of a prop the story gives no arg: without the types there is no way to know it.
7
+ * action, fields for an object or a list. A value the source names (`namedValues`) is listed for
8
+ * reading, unless its type is one the source names values for. Nothing is said of a prop the story gives no arg: without the types there is no way to know it.
9
9
  * The story's `argTypes` are laid over these as over the types' props (`argTypes.ts`). A shared link's values are
10
10
  * checked against these kinds (`addressArgs.ts`): without the types, a text arg takes any text, so a prop of a few
11
11
  * values keeps a link to them only through its `argTypes` options. Pure.
12
12
  *
13
13
  * @module
14
14
  */
15
+ import { isArgList, isNamedArg } from "./messages.js";
15
16
  /**
16
17
  * The prop an arg stands for, its kind and type read from its value.
17
18
  *
@@ -31,10 +32,15 @@ const propOfArg = (name, value, isAction) => {
31
32
  return { ...prop, kind: "toggle", type: "boolean" };
32
33
  if (value === null)
33
34
  return { ...prop, kind: "other", type: "null" };
34
- if (Array.isArray(value))
35
- return { ...prop, kind: "other", type: "array" };
36
35
  // a value the source names: its type, so the panel offers the source's values for it
37
- return { ...prop, kind: "other", type: "of" in value ? value.of : "unknown" };
36
+ if (isNamedArg(value))
37
+ return { ...prop, kind: "other", type: value.of };
38
+ return {
39
+ ...prop,
40
+ kind: "other",
41
+ type: isArgList(value) ? "array" : "object",
42
+ shape: { kind: "like", value }
43
+ };
38
44
  };
39
45
  /**
40
46
  * The props a story's args stand for, in the args' order, then its actions the args do not hold.
@@ -0,0 +1,29 @@
1
+ /**
2
+ * What a bundler's error says, as Forgebook reports it: its file, line and column when they are known, and its reason,
3
+ * without the plugin that raised it, the stack and the code frame a terminal or an overlay has room for.
4
+ *
5
+ * @remarks
6
+ * Shared by `forgebook build`, on what the build throws, and by a frame, on what the dev server says of a module it
7
+ * could not serve. Both hold the same text: Vite's transform and the build run the same parser.
8
+ *
9
+ * @module
10
+ */
11
+ /** Where in a file a bundler places an error, when it does; its column counts from 0. */
12
+ export type BundlerErrorPlace = {
13
+ /** The file, absolute. */
14
+ readonly id?: string | undefined;
15
+ /** Its line and column. */
16
+ readonly loc?: {
17
+ readonly file?: string | undefined;
18
+ readonly line: number;
19
+ readonly column: number;
20
+ } | undefined;
21
+ };
22
+ /**
23
+ * A bundler's error as lines: its place and reason first.
24
+ *
25
+ * @param message - its message, without colours.
26
+ * @param place - what the error says of its place.
27
+ * @returns the lines; none when the message says nothing.
28
+ */
29
+ export declare const bundlerErrorLines: (message: string, place?: BundlerErrorPlace) => readonly string[];
@@ -0,0 +1,49 @@
1
+ /**
2
+ * What a bundler's error says, as Forgebook reports it: its file, line and column when they are known, and its reason,
3
+ * without the plugin that raised it, the stack and the code frame a terminal or an overlay has room for.
4
+ *
5
+ * @remarks
6
+ * Shared by `forgebook build`, on what the build throws, and by a frame, on what the dev server says of a module it
7
+ * could not serve. Both hold the same text: Vite's transform and the build run the same parser.
8
+ *
9
+ * @module
10
+ */
11
+ /** The place at the head of a code frame (`╭─[ src/Broken.tsx:1:48 ]`), which a parse error alone names its file in. */
12
+ const FRAME_PLACE = /╭─\[\s*(.+?)\s*\]/;
13
+ /** A line that says nothing of the reason: a count of errors, a stack's, a code frame's. */
14
+ const NOISE = /^(?:(?:Transform|Build) failed with \d+ errors?:?$|at .*:\d+:\d+\)?$|[╭│╰─┬]|\d+\s*[│|])/;
15
+ /** The plugin or tool that raised an error, before its reason (`[PARSE_ERROR]`, `[plugin forgebook]`). */
16
+ const RAISED_BY = /^\[[^\]]+\]\s*/;
17
+ /**
18
+ * An error's place, as an editor counts: `file:line:column`, or the file alone.
19
+ *
20
+ * @param place - what the error says of it.
21
+ * @param message - its message, without colours.
22
+ */
23
+ const placeOf = ({ id, loc }, message) => {
24
+ const framed = FRAME_PLACE.exec(message)?.[1];
25
+ if (framed !== undefined)
26
+ return framed;
27
+ const file = loc?.file ?? id;
28
+ if (file === undefined || loc === undefined)
29
+ return file;
30
+ return `${file}:${loc.line}:${loc.column + 1}`;
31
+ };
32
+ /**
33
+ * A bundler's error as lines: its place and reason first.
34
+ *
35
+ * @param message - its message, without colours.
36
+ * @param place - what the error says of its place.
37
+ * @returns the lines; none when the message says nothing.
38
+ */
39
+ export const bundlerErrorLines = (message, place = {}) => {
40
+ const lines = message
41
+ .split("\n")
42
+ .map((line) => line.replace(RAISED_BY, "").trim())
43
+ .filter((line) => line !== "" && !NOISE.test(line));
44
+ const where = placeOf(place, message);
45
+ const [first, ...rest] = lines;
46
+ if (first === undefined || where === undefined || first.startsWith(where))
47
+ return lines;
48
+ return [`${where}: ${first}`, ...rest];
49
+ };
@@ -17,6 +17,7 @@ import { type Backdrop, type CustomBackdrop } from "./backdrops.ts";
17
17
  import { type ControlKeys } from "./controlKeys.ts";
18
18
  import { type DeviceDefault } from "./deviceView.ts";
19
19
  import type { CatalogueView } from "./namedViews.ts";
20
+ import type { StatusSettings } from "./storyStatuses.ts";
20
21
  import { type TouchChoice, type ViewSwitch } from "./switches.ts";
21
22
  /** A preset width of the toolbar. */
22
23
  export type StageWidthPreset = {
@@ -58,8 +59,22 @@ export type A11ySettings = {
58
59
  /** Rules turned off by id (`color-contrast`). */
59
60
  readonly disabledRules: readonly string[];
60
61
  };
62
+ /** Whether a story's play function runs when its frame opens. */
63
+ export type PlaySwitch = "on" | "off";
64
+ /**
65
+ * Why a configuration's `play` cannot be used, or none: it is written by JavaScript too, which no type stops.
66
+ *
67
+ * @param play - the value written.
68
+ */
69
+ export declare const playProblem: (play: unknown) => string | undefined;
61
70
  /** The lists a configuration may set, every one optional. */
62
71
  export type CatalogueLists = {
72
+ /**
73
+ * Whether a story's play function runs when a reader opens it. `on` on a dev server and `off` in a build by default: an
74
+ * author is checking the play, a reader of published docs did not ask for it. A reader's own choice comes first, and
75
+ * tests and `check` run every play whatever this says.
76
+ */
77
+ readonly play?: PlaySwitch;
63
78
  /** The catalogue's id, the prefix of what the browser stores for it; from its title by default. */
64
79
  readonly id?: string;
65
80
  /** The toolbar's preset widths. */
@@ -160,6 +175,13 @@ export type CatalogueLists = {
160
175
  * switch turns the ordering on or off over both.
161
176
  */
162
177
  readonly requiredFirst?: RequiredFirst;
178
+ /**
179
+ * The tags that are statuses, shown as a badge on the component's or the story's page and in the sidebar, by tag:
180
+ * `{ review: { label: "In review", tone: "caution" } }`. `review`, `experimental` and `deprecated` are declared by
181
+ * default; a catalogue's entry restyles or renames one, `false` turns one off. A meta's tags give the component's
182
+ * status, a story's the story's; the tag filter filters by them.
183
+ */
184
+ readonly statuses?: StatusSettings;
163
185
  };
164
186
  /** The shell's own appearance: light, dark, the system's, or the colour scheme of the story shown. */
165
187
  export type Appearance = "light" | "dark" | "system" | "story";
@@ -201,6 +223,10 @@ export type CatalogueSettings = {
201
223
  readonly gridStep: number;
202
224
  /** The shell's texts replaced, by name. */
203
225
  readonly strings: Readonly<Record<string, string>>;
226
+ /** Whether a story's play function runs when a reader opens it, as the catalogue says: an address names what differs. */
227
+ readonly play: PlaySwitch;
228
+ /** What a page shows unless its address names one: the reader's choice, else the catalogue's. */
229
+ readonly readerPlay: PlaySwitch;
204
230
  /** Forgebook's own controls shown, in their order. */
205
231
  readonly ownControls: readonly OwnControlId[];
206
232
  /** The controls that start on the toolbar, in their order, by id. */
@@ -226,6 +252,11 @@ export type CatalogueSettings = {
226
252
  readonly propGroups: readonly string[];
227
253
  /** Where the required props are listed when a component or a story does not say; `"in-groups"` by default. */
228
254
  readonly requiredFirst: RequiredFirst;
255
+ /**
256
+ * The statuses as the configuration declares them; the defaults are filled in where the badges are drawn
257
+ * (`storyStatuses.ts`), which load only for a catalogue whose stories have tags. None when it declares none.
258
+ */
259
+ readonly statuses: StatusSettings | undefined;
229
260
  };
230
261
  /** WCAG 2.2 at levels A and AA: the rules every story passes by default. */
231
262
  export declare const DEFAULT_A11Y_TAGS: readonly string[];
@@ -27,6 +27,14 @@ export const PANEL_TAB_IDS = ["props", "events", "play", "parts", "code", "a11y"
27
27
  * keeps its id.
28
28
  */
29
29
  export const OWN_CONTROL_IDS = [DEVICE_PARAMETER, "backdrop", "sheets", "text", "width", "audience"];
30
+ /**
31
+ * Why a configuration's `play` cannot be used, or none: it is written by JavaScript too, which no type stops.
32
+ *
33
+ * @param play - the value written.
34
+ */
35
+ export const playProblem = (play) => play === undefined || play === "on" || play === "off"
36
+ ? undefined
37
+ : `play is ${JSON.stringify(play)}: write "on" or "off"`;
30
38
  /** The appearances, in the order the reader is offered them. */
31
39
  export const APPEARANCES = ["light", "dark", "system", "story"];
32
40
  /** WCAG 2.2 at levels A and AA: the rules every story passes by default. */
@@ -79,7 +87,7 @@ const toolbarProblem = (toolbar, switches) => {
79
87
  const known = new Set([...switches.map((each) => each.id), ...OWN_CONTROL_IDS]);
80
88
  const unknown = toolbar.find((id) => !known.has(id));
81
89
  if (unknown !== undefined)
82
- return `The toolbar names "${unknown}", which is no control of the catalogue`;
90
+ return `The toolbar names "${unknown}", which is no control of the catalogue: it has ${[...known].join(", ")}`;
83
91
  const twice = toolbar.find((id, index) => toolbar.indexOf(id) !== index);
84
92
  if (twice !== undefined)
85
93
  return `The toolbar names "${twice}" twice`;
@@ -186,6 +194,8 @@ export const catalogueSettings = (title, switches, lists = {}, pluginTabs = [])
186
194
  const toolbar = named.filter((id) => !OWN_CONTROL_IDS.some((own) => own === id && !ownControls.includes(own)));
187
195
  return {
188
196
  id: lists.id ?? idOf(title),
197
+ play: lists.play ?? "on",
198
+ readerPlay: lists.play ?? "on",
189
199
  switches,
190
200
  touch: touchChoiceOf(switches),
191
201
  widths: lists.widths ?? DEFAULT_WIDTHS,
@@ -209,7 +219,8 @@ export const catalogueSettings = (title, switches, lists = {}, pluginTabs = [])
209
219
  views: catalogueViews(switches, lists.views),
210
220
  // checked when the configuration loads (`configFile.ts`): a model that is none is left out here
211
221
  device: deviceDefaultOf(NO_DEVICE, lists.device),
212
- requiredFirst: lists.requiredFirst ?? "in-groups"
222
+ requiredFirst: lists.requiredFirst ?? "in-groups",
223
+ statuses: lists.statuses
213
224
  };
214
225
  };
215
226
  /**
@@ -0,0 +1,75 @@
1
+ /** A composed catalogue, as the configuration gives it and the shell reads it. */
2
+ export type CatalogueRef = {
3
+ /** Its id, the configuration's key: in the address (`?ref=<id>&story=<id>`). */
4
+ readonly id: string;
5
+ /** Its name, as its section's heading. */
6
+ readonly title: string;
7
+ /** Its address, always ending in `/`, so its files resolve under it (`https://ds.example.com/catalogue/`). */
8
+ readonly url: string;
9
+ };
10
+ /** A story of a composed catalogue, as its index lists it. */
11
+ export type RefStory = {
12
+ /** Its id in that catalogue. */
13
+ readonly id: string;
14
+ /** The name it shows. */
15
+ readonly name: string;
16
+ };
17
+ /** A component of a composed catalogue, with its listed stories. */
18
+ export type RefComponent = {
19
+ /** Its id in that catalogue. */
20
+ readonly id: string;
21
+ /** Its whole title (`Inputs/Select`). */
22
+ readonly title: string;
23
+ /** Its stories listed in the sidebar (unlisted ones left out), in that catalogue's order. */
24
+ readonly stories: readonly RefStory[];
25
+ };
26
+ /** What the sidebar shows of a composed catalogue. */
27
+ export type RefIndex = {
28
+ /** Its components, in its order; only those with a listed story. */
29
+ readonly components: readonly RefComponent[];
30
+ };
31
+ /**
32
+ * What the sidebar shows of a composed catalogue's index, read from the parsed file.
33
+ *
34
+ * @param value - the parsed `forgebook-agent.json`.
35
+ * @returns the index; none when the value is no index of a version this one reads.
36
+ */
37
+ export declare const refIndexOf: (value: unknown) => RefIndex | undefined;
38
+ /**
39
+ * The address of a composed catalogue's index.
40
+ *
41
+ * @param ref - the composed catalogue.
42
+ */
43
+ export declare const refIndexAddress: (ref: CatalogueRef) => string;
44
+ /**
45
+ * The address of a story in a composed catalogue's own page, to open it there.
46
+ *
47
+ * @param ref - the composed catalogue.
48
+ * @param storyId - the story's id in it.
49
+ */
50
+ export declare const refStoryAddress: (ref: CatalogueRef, storyId: string) => string;
51
+ /**
52
+ * The address of a story alone in a composed catalogue's embed page, with this catalogue's switches.
53
+ *
54
+ * @remarks
55
+ * Every switch is written, defaults included: the composed catalogue's default may be another value, and the story
56
+ * shows what this catalogue's toolbar says. It keeps those it declares, with values it knows, and drops the others.
57
+ *
58
+ * @param ref - the composed catalogue.
59
+ * @param storyId - the story's id in it.
60
+ * @param switches - this catalogue's switches, by id, with the values the view gives them.
61
+ */
62
+ export declare const refEmbedAddress: (ref: CatalogueRef, storyId: string, switches: Readonly<Record<string, string>>) => string;
63
+ /**
64
+ * What is wrong with one composed catalogue of the configuration; nothing when it can be shown.
65
+ *
66
+ * @param id - its key.
67
+ * @param value - what the configuration gives it.
68
+ */
69
+ export declare const refProblem: (id: string, value: unknown) => string | undefined;
70
+ /**
71
+ * A composed catalogue's address as the shell uses it: its folder, ending in `/`.
72
+ *
73
+ * @param url - the address the configuration gives, checked by `refProblem`.
74
+ */
75
+ export declare const refFolder: (url: string) => string;