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,12 +1,14 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isArgShown } from "../argConditions.js";
2
3
  import { panelProps } from "../argTypes.js";
3
4
  import { codeNameOf } from "../componentDocs.js";
4
5
  import { lazyModule } from "./lazyModule.js";
5
6
  import { LazyTab } from "./lazyTab.js";
6
7
  import { PropsTab } from "./PropsTab.js";
7
- import { SignatureReference } from "./SignatureReference.js";
8
8
  import { STRINGS } from "./strings.js";
9
9
  import { a11yHint, interactionsHint, styleHooks } from "./tabSummaries.js";
10
+ /** The Signature tab's reference, loaded when a story about logic first shows it. */
11
+ const SIGNATURE_TAB = lazyModule(() => import("./SignatureReference.js").then((module) => module.SignatureReference));
10
12
  /** The Events tab, its module, loaded when the tab is first chosen. */
11
13
  const EVENTS_TAB = lazyModule(() => import("./EventsTab.js").then((module) => module.EventsTab));
12
14
  /** The Interactions tab, its module, loaded when the tab is first chosen. */
@@ -25,15 +27,20 @@ const notice = (text, isProblem) => (_jsx("p", { className: isProblem ? "forgebo
25
27
  * @param input - what the tabs are built from.
26
28
  * @param props - the props, from the types with the `argTypes` laid over them.
27
29
  */
28
- const propsTab = (input, props) => props.some((prop) => prop.kind !== "event")
29
- ? [
30
- {
31
- id: "props",
32
- label: STRINGS.tabs.props,
33
- content: (_jsx(PropsTab, { props: props, values: input.values, controls: input.controls, onValueChange: input.onValueChange, onReset: input.onReset, worstCase: input.worstCase, namedValues: input.namedValues, textArgs: input.textArgs, componentGroups: input.propGroups, requiredFirst: input.story.requiredFirst }))
34
- }
35
- ]
36
- : [];
30
+ const propsTab = (input, all) => {
31
+ // the condition is the moment's, so it is tested here and not where the props are declared: a value set while an arg
32
+ // is hidden, from the address or the story, is still the story's
33
+ const props = all.filter((prop) => isArgShown(input.argTypes[prop.name]?.if, input.values, input.globals));
34
+ return props.some((prop) => prop.kind !== "event")
35
+ ? [
36
+ {
37
+ id: "props",
38
+ label: STRINGS.tabs.props,
39
+ content: (_jsx(PropsTab, { props: props, values: input.values, panelArgs: input.panelArgs, loadTokens: input.loadTokens, argControls: input.argControls, controls: input.controls, onValueChange: input.onValueChange, onReset: input.onReset, worstCase: input.worstCase, namedValues: input.namedValues, textArgs: input.textArgs, componentGroups: input.propGroups, requiredFirst: input.story.requiredFirst }))
40
+ }
41
+ ]
42
+ : [];
43
+ };
37
44
  /**
38
45
  * The events the Events tab lists: the component's, then the story's actions its types do not name.
39
46
  *
@@ -72,9 +79,9 @@ const docsTabs = (input) => {
72
79
  // a story without a component (a render of its own) still has the args its `argTypes` name
73
80
  if (docs.status === "none") {
74
81
  return [
75
- ...propsTab(input, panelProps([], input.argTypes)),
82
+ ...propsTab(input, panelProps([], input.argTypes, input.storyArgs)),
76
83
  ...eventsTab(input, eventsOf([], input.actions)),
77
- ...(input.trace === undefined ? [] : [interactionsTab(input.trace, input.onPlayAgain)])
84
+ ...(input.trace === undefined ? [] : [interactionsTab(input.trace, input)])
78
85
  ];
79
86
  }
80
87
  // the docs' place while they load or fail: the tab the story opens on once they are read
@@ -83,7 +90,7 @@ const docsTabs = (input) => {
83
90
  : { id: "props", label: STRINGS.tabs.props };
84
91
  // the play's trace comes from the frame, not from the docs: a first read of a project's docs can take seconds, and a
85
92
  // play that finished meanwhile is shown without waiting for them, or when they fail
86
- const played = input.trace === undefined ? [] : [interactionsTab(input.trace, input.onPlayAgain)];
93
+ const played = input.trace === undefined ? [] : [interactionsTab(input.trace, input)];
87
94
  if (docs.status === "loading")
88
95
  return [{ ...docsTab, content: notice(STRINGS.docsLoading, false) }, ...played];
89
96
  if (docs.status === "error") {
@@ -94,10 +101,10 @@ const docsTabs = (input) => {
94
101
  if (input.story.isLogic)
95
102
  return logicTabs(input, component);
96
103
  const tabs = [];
97
- tabs.push(...propsTab(input, panelProps(component.props, input.argTypes)));
104
+ tabs.push(...propsTab(input, panelProps(component.props, input.argTypes, input.storyArgs)));
98
105
  tabs.push(...eventsTab(input, events));
99
106
  if (input.trace !== undefined)
100
- tabs.push(interactionsTab(input.trace, input.onPlayAgain));
107
+ tabs.push(interactionsTab(input.trace, input));
101
108
  if (component.parts.length > 0 || styleHooks(component).length > 0) {
102
109
  tabs.push({
103
110
  id: "parts",
@@ -122,19 +129,19 @@ const logicTabs = (input, component) => {
122
129
  tabs.push({
123
130
  id: "signature",
124
131
  label: STRINGS.tabs.signature,
125
- content: (_jsx("div", { className: "forgebook-signature-tab", children: _jsx(SignatureReference, { name: component.name, signature: component.signature }) }))
132
+ content: (_jsx("div", { className: "forgebook-signature-tab", children: _jsx(LazyTab, { module: SIGNATURE_TAB, tabProps: { name: component.name, signature: component.signature } }) }))
126
133
  });
127
134
  }
128
135
  if (input.trace !== undefined)
129
- tabs.push(interactionsTab(input.trace, input.onPlayAgain));
136
+ tabs.push(interactionsTab(input.trace, input));
130
137
  return tabs;
131
138
  };
132
139
  /** The Interactions tab of a story whose play ran. */
133
- const interactionsTab = (trace, onPlayAgain) => ({
140
+ const interactionsTab = (trace, { onPlayStep, view, onViewChange }) => ({
134
141
  id: "play",
135
142
  label: STRINGS.tabs.play,
136
143
  hint: interactionsHint(trace),
137
- content: _jsx(LazyTab, { module: INTERACTIONS_TAB, tabProps: { trace, onPlayAgain } })
144
+ content: _jsx(LazyTab, { module: INTERACTIONS_TAB, tabProps: { trace, onPlayStep, view, onViewChange } })
138
145
  });
139
146
  /** The Code tab, when the story file has code: loading, loaded, or failed to load. */
140
147
  const codeTabs = (input) => {
@@ -160,7 +167,9 @@ const codeTabs = (input) => {
160
167
  code: code.value,
161
168
  exportName: input.story.exportName,
162
169
  componentName: docs.status === "ready" ? codeNameOf(docs.value) : input.componentName,
163
- args: input.values
170
+ args: input.values,
171
+ edited: Object.keys(input.panelArgs),
172
+ panel: input
164
173
  } }))
165
174
  }
166
175
  ];
@@ -10,7 +10,7 @@
10
10
  .forgebook-embed__message {
11
11
  margin: 0;
12
12
  padding: 1rem;
13
- font: 400 0.8125rem/1.4 var(--forgebook-font-sans);
13
+ font: var(--forgebook-text-body);
14
14
  color: var(--forgebook-text-secondary);
15
15
  }
16
16
  .forgebook-embed__message[data-failed] {
@@ -30,7 +30,7 @@
30
30
  }
31
31
  .forgebook-embed-panel__hint {
32
32
  margin: 0;
33
- font: 400 0.6875rem/1.35 var(--forgebook-font-sans);
33
+ font: var(--forgebook-text-caption);
34
34
  color: var(--forgebook-text-secondary);
35
35
  }
36
36
  .forgebook-embed-panel__hint[data-warning] {
@@ -44,7 +44,7 @@
44
44
  }
45
45
  .forgebook-embed-field__label {
46
46
  grid-column: 1/-1;
47
- font: 500 0.75rem/1.3 var(--forgebook-font-sans);
47
+ font: var(--forgebook-text-control);
48
48
  color: var(--forgebook-text-secondary);
49
49
  }
50
50
  .forgebook-embed-field__value {
@@ -54,21 +54,21 @@
54
54
  padding: 0.375rem 0.5rem;
55
55
  border: 0;
56
56
  border-radius: var(--forgebook-radius-control);
57
- font: 400 0.6875rem/1.6 var(--forgebook-font-mono);
57
+ font: var(--forgebook-text-mono-small);
58
58
  color: var(--forgebook-text);
59
59
  background: var(--forgebook-fill-quiet);
60
60
  box-shadow: inset 0 0 0 1px var(--forgebook-edge-field);
61
61
  }
62
62
  .forgebook-embed-field__value:focus-visible {
63
- outline: 2px solid color-mix(in srgb, var(--forgebook-accent) 35%, transparent);
63
+ outline: 2px solid var(--forgebook-focus-halo);
64
64
  outline-offset: 0;
65
- box-shadow: inset 0 0 0 1px var(--forgebook-accent);
65
+ box-shadow: var(--forgebook-focus-edge);
66
66
  }
67
67
  .forgebook-embed-panel__follow {
68
68
  display: flex;
69
69
  gap: 0.5rem;
70
70
  align-items: center;
71
- font: 500 0.75rem/1.3 var(--forgebook-font-sans);
71
+ font: var(--forgebook-text-control);
72
72
  color: var(--forgebook-text);
73
73
  }
74
74
  }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Which waiting frames of a page start first: the ones the reader is looking at, then their neighbours outward.
3
+ *
4
+ * @remarks
5
+ * A page lists its stories top to bottom, but the reader may be anywhere on it: after a scroll to the end, the stories
6
+ * in view must not wait behind the ones above them that are still near. Read by `useFrameQueue`.
7
+ *
8
+ * @module
9
+ */
10
+ /** A box's vertical extent, in the same coordinates as the visible part of the page. */
11
+ export type VerticalBox = {
12
+ /** Its top edge, in CSS px. */
13
+ readonly top: number;
14
+ /** Its bottom edge, in CSS px. */
15
+ readonly bottom: number;
16
+ };
17
+ /**
18
+ * How far a box is from the visible part of the page: 0 when any of it is in view, otherwise the gap to the nearest
19
+ * edge.
20
+ *
21
+ * @param box - the box of a story's frame.
22
+ * @param view - the visible part of the page.
23
+ * @returns The distance, in CSS px.
24
+ */
25
+ export declare const distanceFromView: (box: VerticalBox, view: VerticalBox) => number;
26
+ /**
27
+ * The frames to start now: the nearest to the visible part first, in the page's order among equals, at most `free`.
28
+ *
29
+ * @param waiting - the stories waiting for their frame, in the page's order.
30
+ * @param distances - each story's distance from the visible part, in CSS px; a story with none comes after every
31
+ * other.
32
+ * @param free - how many frames may start.
33
+ * @returns The stories to start, nearest first.
34
+ */
35
+ export declare const nearestFrames: (waiting: readonly string[], distances: ReadonlyMap<string, number>, free: number) => string[];
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Which waiting frames of a page start first: the ones the reader is looking at, then their neighbours outward.
3
+ *
4
+ * @remarks
5
+ * A page lists its stories top to bottom, but the reader may be anywhere on it: after a scroll to the end, the stories
6
+ * in view must not wait behind the ones above them that are still near. Read by `useFrameQueue`.
7
+ *
8
+ * @module
9
+ */
10
+ /**
11
+ * How far a box is from the visible part of the page: 0 when any of it is in view, otherwise the gap to the nearest
12
+ * edge.
13
+ *
14
+ * @param box - the box of a story's frame.
15
+ * @param view - the visible part of the page.
16
+ * @returns The distance, in CSS px.
17
+ */
18
+ export const distanceFromView = (box, view) => {
19
+ if (box.bottom <= view.top)
20
+ return view.top - box.bottom;
21
+ if (box.top >= view.bottom)
22
+ return box.top - view.bottom;
23
+ return 0;
24
+ };
25
+ /**
26
+ * The frames to start now: the nearest to the visible part first, in the page's order among equals, at most `free`.
27
+ *
28
+ * @param waiting - the stories waiting for their frame, in the page's order.
29
+ * @param distances - each story's distance from the visible part, in CSS px; a story with none comes after every
30
+ * other.
31
+ * @param free - how many frames may start.
32
+ * @returns The stories to start, nearest first.
33
+ */
34
+ export const nearestFrames = (waiting, distances, free) => {
35
+ const distanceOf = (storyId) => distances.get(storyId) ?? Number.POSITIVE_INFINITY;
36
+ // a stable sort keeps the page's order among stories at the same distance, the demo first among those in view
37
+ // (compared rather than subtracted: two stories with no distance would give NaN)
38
+ const byDistance = (first, second) => {
39
+ const [one, other] = [distanceOf(first), distanceOf(second)];
40
+ if (one === other)
41
+ return 0;
42
+ return one < other ? -1 : 1;
43
+ };
44
+ return [...waiting].sort(byDistance).slice(0, Math.max(0, free));
45
+ };
@@ -12,6 +12,13 @@ export declare const framesOrigin: () => string;
12
12
  * @param event - the message's event.
13
13
  */
14
14
  export declare const isFromFrames: (event: MessageEvent) => boolean;
15
+ /**
16
+ * What a story's frame may do, as a sandbox: everything a page does but navigate the catalogue's tab, which a story's
17
+ * link could otherwise send to any address. The frames keep their own origin (`allow-same-origin`): it is not the
18
+ * catalogue's, so the pair gives the story nothing of the catalogue's. Frames on the catalogue's own origin get none:
19
+ * there the pair would let a story lift its own sandbox, and browsers warn of it.
20
+ */
21
+ export declare const FRAME_SANDBOX: string;
15
22
  /** What a story's frame element is given, wherever the shell draws one. */
16
23
  export type StoryFrameAttributes = {
17
24
  /** The browser features it may use. */
@@ -51,7 +51,7 @@ const FRAME_PERMISSIONS = [
51
51
  * catalogue's, so the pair gives the story nothing of the catalogue's. Frames on the catalogue's own origin get none:
52
52
  * there the pair would let a story lift its own sandbox, and browsers warn of it.
53
53
  */
54
- const FRAME_SANDBOX = [
54
+ export const FRAME_SANDBOX = [
55
55
  "allow-scripts",
56
56
  "allow-same-origin",
57
57
  "allow-forms",
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Where a gallery's menu sits: under its button, or over it when only there it fits, always inside the window. Pure.
3
+ *
4
+ * @module
5
+ */
6
+ /**
7
+ * The menu's place, in CSS px from the window's corner.
8
+ *
9
+ * @param button - the button's box.
10
+ * @param panel - the menu's size.
11
+ * @param room - the window's size.
12
+ * @returns where its top and left corner go.
13
+ */
14
+ export declare const galleryPlace: (button: Pick<DOMRect, "top" | "bottom" | "left">, panel: Pick<DOMRect, "width" | "height">, room: {
15
+ readonly width: number;
16
+ readonly height: number;
17
+ }) => {
18
+ readonly top: number;
19
+ readonly left: number;
20
+ };
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Where a gallery's menu sits: under its button, or over it when only there it fits, always inside the window. Pure.
3
+ *
4
+ * @module
5
+ */
6
+ /** The room kept between the menu and its button or the window's edge, in CSS px. */
7
+ const GAP = 6;
8
+ /**
9
+ * The menu's place, in CSS px from the window's corner.
10
+ *
11
+ * @param button - the button's box.
12
+ * @param panel - the menu's size.
13
+ * @param room - the window's size.
14
+ * @returns where its top and left corner go.
15
+ */
16
+ export const galleryPlace = (button, panel, room) => {
17
+ const below = button.bottom + GAP;
18
+ const above = button.top - GAP - panel.height;
19
+ const isBelowFit = below + panel.height <= room.height - GAP;
20
+ const top = isBelowFit || above < GAP ? below : above;
21
+ return {
22
+ // a menu taller than the room on both sides starts as high as it can and scrolls
23
+ top: Math.max(GAP, Math.min(top, room.height - GAP - panel.height)),
24
+ left: Math.max(GAP, Math.min(button.left, room.width - GAP - panel.width))
25
+ };
26
+ };
@@ -31,6 +31,7 @@ declare const PATHS: {
31
31
  readonly turn: "M2.5 9.5h7a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-7a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1ZM12 12.5a2.5 2.5 0 0 0 2.5-2.5V8.5M13.5 10l1-1.5 1 1.5";
32
32
  readonly device: "M5.5 1.5h5a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1v-11a1 1 0 0 1 1-1ZM7.25 3.5h1.5";
33
33
  readonly plus: "M8 3.5v9M3.5 8h9";
34
+ readonly noValue: "M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2ZM3.8 3.8l8.4 8.4";
34
35
  readonly minus: "M3.5 8h9";
35
36
  readonly hash: "M6 2.5 5 13.5M11 2.5l-1 11M3 6h10.5M2.5 10H13";
36
37
  readonly check: "m3.5 8.5 3 3 6-7";
@@ -26,6 +26,7 @@ const PATHS = {
26
26
  turn: "M2.5 9.5h7a1 1 0 0 0 1-1v-4a1 1 0 0 0-1-1h-7a1 1 0 0 0-1 1v4a1 1 0 0 0 1 1ZM12 12.5a2.5 2.5 0 0 0 2.5-2.5V8.5M13.5 10l1-1.5 1 1.5",
27
27
  device: "M5.5 1.5h5a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1h-5a1 1 0 0 1-1-1v-11a1 1 0 0 1 1-1ZM7.25 3.5h1.5",
28
28
  plus: "M8 3.5v9M3.5 8h9",
29
+ noValue: "M8 2a6 6 0 1 0 0 12A6 6 0 0 0 8 2ZM3.8 3.8l8.4 8.4",
29
30
  minus: "M3.5 8h9",
30
31
  hash: "M6 2.5 5 13.5M11 2.5l-1 11M3 6h10.5M2.5 10H13",
31
32
  check: "m3.5 8.5 3 3 6-7",
@@ -1,20 +1,22 @@
1
+ /** Where this browser keeps the reader's choice: a person's habit, the same in every catalogue of an origin. */
2
+ export declare const SINGLE_KEYS_STORED = "forgebook-single-keys";
1
3
  /**
2
- * The shell's keys: `/` goes to the search, `[` and `]` open the previous and the next story in the sidebar's order.
3
- * A key typed into a field, or with a modifier, is the field's or the browser's.
4
+ * Whether a key event happens while the user types: in a field that takes text, a select or editable content, or in a
5
+ * custom element (a catalogue's control, a plugin's panel), whose keys are its own whatever it draws. A toolbar's segment
6
+ * (a radio) or a toggle keeps the page's keys, so they work right after a press on one.
4
7
  *
5
- * @remarks
6
- * The keys work while the shell has the focus; a frame keeps its own keys, so a story's keyboard behaviour is never
7
- * taken over. Pure, apart from reading the event's target.
8
- *
9
- * @module
8
+ * @param target - the event's target.
10
9
  */
10
+ export declare const isTyping: (target: EventTarget | null) => boolean;
11
+ /** What a key without a modifier reads of its event. */
12
+ export type SingleKeyEvent = Pick<KeyboardEvent, "target"> & Partial<Pick<KeyboardEvent, "composedPath">>;
11
13
  /**
12
- * Whether a key event happens while the user types: in a field that takes text, a select or editable content. A
13
- * toolbar's segment (a radio) or a toggle keeps the page's keys, so they work right after a press on one.
14
+ * Whether a key without a modifier is the shell's: the reader left them on and nothing is typed into. The whole path of
15
+ * the event is read: from inside a shadow root it names only the host, and a custom element keeps what is pressed in it.
14
16
  *
15
- * @param target - the event's target.
17
+ * @param event - the key's event.
16
18
  */
17
- export declare const isTyping: (target: EventTarget | null) => boolean;
19
+ export declare const isSingleKeyFree: (event: SingleKeyEvent) => boolean;
18
20
  /** The move a key asks for in the list of stories. */
19
21
  export type StoryStep = -1 | 1;
20
22
  /**
@@ -22,7 +24,7 @@ export type StoryStep = -1 | 1;
22
24
  *
23
25
  * @param event - the key, its modifiers and its target.
24
26
  */
25
- export declare const storyStep: (event: Pick<KeyboardEvent, "key" | "metaKey" | "ctrlKey" | "altKey" | "target">) => StoryStep | undefined;
27
+ export declare const storyStep: (event: Pick<KeyboardEvent, "key" | "metaKey" | "ctrlKey" | "altKey"> & SingleKeyEvent) => StoryStep | undefined;
26
28
  /**
27
29
  * The id a step leads to: the neighbour of the current story, or the first (or last) story from a page that is not
28
30
  * a story's; none past either end.
@@ -1,34 +1,49 @@
1
1
  /**
2
- * The shell's keys: `/` goes to the search, `[` and `]` open the previous and the next story in the sidebar's order.
3
- * A key typed into a field, or with a modifier, is the field's or the browser's.
2
+ * The shell's keys: `/` goes to the search, `[` and `]` open the previous and the next story in the sidebar's order,
3
+ * `?` lists them. A key typed into a field or a custom element, or with a modifier, is theirs or the browser's; a reader
4
+ * can turn every key without a modifier off.
4
5
  *
5
6
  * @remarks
6
7
  * The keys work while the shell has the focus; a frame keeps its own keys, so a story's keyboard behaviour is never
7
- * taken over. Pure, apart from reading the event's target.
8
+ * taken over. Pure, apart from reading the event's target and the reader's choice.
8
9
  *
9
10
  * @module
10
11
  */
12
+ import { readStored } from "./useStored.js";
13
+ /** Where this browser keeps the reader's choice: a person's habit, the same in every catalogue of an origin. */
14
+ export const SINGLE_KEYS_STORED = "forgebook-single-keys";
15
+ /** Whether the reader left the keys without a modifier on, as they are unless turned off. */
16
+ const areSingleKeysOn = () => readStored(SINGLE_KEYS_STORED) !== "off";
11
17
  /** The inputs that take no text: a key pressed on one is the page's, not the field's. */
12
18
  const NOT_TEXT_INPUTS = ["checkbox", "radio", "button", "submit", "reset", "range", "color", "file"];
13
19
  /**
14
- * Whether a key event happens while the user types: in a field that takes text, a select or editable content. A
15
- * toolbar's segment (a radio) or a toggle keeps the page's keys, so they work right after a press on one.
20
+ * Whether a key event happens while the user types: in a field that takes text, a select or editable content, or in a
21
+ * custom element (a catalogue's control, a plugin's panel), whose keys are its own whatever it draws. A toolbar's segment
22
+ * (a radio) or a toggle keeps the page's keys, so they work right after a press on one.
16
23
  *
17
24
  * @param target - the event's target.
18
25
  */
19
26
  export const isTyping = (target) => typeof HTMLElement !== "undefined" &&
20
27
  target instanceof HTMLElement &&
21
28
  (target.isContentEditable ||
29
+ target.localName.includes("-") ||
22
30
  (target instanceof HTMLInputElement && !NOT_TEXT_INPUTS.includes(target.type)) ||
23
31
  target instanceof HTMLTextAreaElement ||
24
32
  target instanceof HTMLSelectElement);
33
+ /**
34
+ * Whether a key without a modifier is the shell's: the reader left them on and nothing is typed into. The whole path of
35
+ * the event is read: from inside a shadow root it names only the host, and a custom element keeps what is pressed in it.
36
+ *
37
+ * @param event - the key's event.
38
+ */
39
+ export const isSingleKeyFree = (event) => areSingleKeysOn() && !(event.composedPath?.() ?? [event.target]).some(isTyping);
25
40
  /**
26
41
  * The step a key asks for: `[` the previous story, `]` the next; none for any other key or one with a modifier.
27
42
  *
28
43
  * @param event - the key, its modifiers and its target.
29
44
  */
30
45
  export const storyStep = (event) => {
31
- if (event.metaKey || event.ctrlKey || event.altKey || isTyping(event.target))
46
+ if (event.metaKey || event.ctrlKey || event.altKey || !isSingleKeyFree(event))
32
47
  return undefined;
33
48
  if (event.key === "[")
34
49
  return -1;
@@ -1,6 +1,17 @@
1
1
  /** The later parts' texts, as shown: Forgebook's, with the catalogue's replacements. */
2
2
  export declare const LATER_STRINGS: {
3
+ docsNav: string;
4
+ aboutControl: (control: string) => string;
5
+ signatureParameter: string;
6
+ signatureReturns: string;
7
+ signatureNone: string;
8
+ apiType: string;
9
+ apiWhat: string;
3
10
  audienceError: string;
11
+ controlMenu: (label: string) => string;
12
+ unpinControl: string;
13
+ hideInView: string;
14
+ showInView: string;
4
15
  controlKey: (control: string, key: string | undefined) => string;
5
16
  changeKey: string;
6
17
  pressAKey: string;
@@ -36,6 +47,14 @@ export declare const LATER_STRINGS: {
36
47
  playTitle: string;
37
48
  playTime: (ms: number) => string;
38
49
  playAgain: string;
50
+ playRun: string;
51
+ playOnOpen: string;
52
+ playOff: string;
53
+ playStepThrough: string;
54
+ playNext: string;
55
+ playContinue: string;
56
+ playPaused: (action: string) => string;
57
+ playActionsNote: string;
39
58
  playNoSteps: string;
40
59
  codeFromArgs: string;
41
60
  codeRender: string;
@@ -59,6 +78,13 @@ export declare const LATER_STRINGS: {
59
78
  apiMember: string;
60
79
  memberCount: (count: number) => string;
61
80
  membersOf: (type: string) => string;
81
+ propOnlyWhen: (prop: string, values: readonly string[], orOmitted: boolean) => string;
82
+ propGeneric: (parameter: string, type: string, shownAs: "constraint" | "default" | "unknown") => string;
83
+ propUnresolved: (name: string) => string;
84
+ propAny: string;
85
+ propsUntyped: string;
86
+ propsNoSignature: string;
87
+ propsOutsidePackage: (count: number) => string;
62
88
  showCode: string;
63
89
  hideCode: string;
64
90
  openStory: string;
@@ -74,11 +100,15 @@ export declare const LATER_STRINGS: {
74
100
  backToPlace: string;
75
101
  backToPlaceNamed: (name: string) => string;
76
102
  examples: string;
103
+ pageContained: string;
77
104
  pageError: string;
78
105
  droppedArgs: string;
79
106
  droppedArgReasons: {
80
107
  undeclared: string;
81
108
  type: string;
109
+ unreadable: string;
110
+ markup: string;
111
+ control: string;
82
112
  };
83
113
  removeDroppedArgs: string;
84
114
  events: string;
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * The texts of the shell's parts that load after the first screen, but for the home and the docs pages
3
- * (`pageStrings.ts`): a component's page, the panel's tabs but Props, the View menu's panel, the embed panel and page,
3
+ * (`pageStrings.ts`): a component's page, the panel's tabs but Props, the View menu's panel, a pinned control's menu, the embed panel and page,
4
4
  * the comparison, the story clock's bar, the plugins' hosts and the note on args a link dropped. They load with the
5
5
  * first of those parts, so a first load carries none of them.
6
6
  *
@@ -14,7 +14,18 @@
14
14
  import { lateStrings } from "./strings.js";
15
15
  /** The later parts' texts, as shown: Forgebook's, with the catalogue's replacements. */
16
16
  export const LATER_STRINGS = lateStrings({
17
+ docsNav: "Docs",
18
+ aboutControl: (control) => `About ${control}`,
19
+ signatureParameter: "Parameter",
20
+ signatureReturns: "Returns",
21
+ signatureNone: "It takes no parameters.",
22
+ apiType: "Type",
23
+ apiWhat: "What it does",
17
24
  audienceError: "This part of the page could not be loaded",
25
+ controlMenu: (label) => `${label} on the toolbar`,
26
+ unpinControl: "Remove from the toolbar",
27
+ hideInView: "Hide in View",
28
+ showInView: "Show in View",
18
29
  controlKey: (control, key) => key === undefined ? `${control}: no key` : `${control}: key ${key.toUpperCase()}`,
19
30
  changeKey: "Change the key: press it, then the new key; Backspace takes it away",
20
31
  pressAKey: "Press a key",
@@ -50,6 +61,14 @@ export const LATER_STRINGS = lateStrings({
50
61
  playTitle: "Play function",
51
62
  playTime: (ms) => `${ms} ms`,
52
63
  playAgain: "Run again",
64
+ playRun: "Run",
65
+ playOnOpen: "Play stories when they open",
66
+ playOff: "This story has a play function. It has not run: run it, or have stories play when they open.",
67
+ playStepThrough: "Step through",
68
+ playNext: "Next",
69
+ playContinue: "Continue",
70
+ playPaused: (action) => `Next: ${action}`,
71
+ playActionsNote: "The log and the stepping follow the canvas and userEvent of the play's context; what a play imports itself runs unrecorded.",
53
72
  playNoSteps: "The play names no steps: wrap its parts in step(label, run) to see them here.",
54
73
  codeFromArgs: "from the args",
55
74
  codeRender: "the story's render",
@@ -73,6 +92,20 @@ export const LATER_STRINGS = lateStrings({
73
92
  apiMember: "Member",
74
93
  memberCount: (count) => `${count} ${count === 1 ? "member" : "members"}`,
75
94
  membersOf: (type) => `Members of ${type}`,
95
+ // the names and types below come written as code spans (`codeSpans.ts`), since a type may hold backticks
96
+ propOnlyWhen: (prop, values, orOmitted) => {
97
+ if (values.length === 0)
98
+ return `Only when ${prop} is left out.`;
99
+ return `Only when ${prop} is ${values.join(" or ")}${orOmitted ? ", or left out" : ""}.`;
100
+ },
101
+ propGeneric: (parameter, type, shownAs) => shownAs === "unknown"
102
+ ? `${parameter} is generic, with no constraint: shown as \`unknown\`.`
103
+ : `${parameter} is generic: shown as its ${shownAs}, ${type}.`,
104
+ propUnresolved: (name) => `${name} cannot be found, so this type is read as \`any\`.`,
105
+ propAny: "Typed `any`: nothing is known of its values.",
106
+ propsUntyped: "Its props are typed `any`, so none can be listed.",
107
+ propsNoSignature: "Its type cannot be called with props, so none can be listed.",
108
+ propsOutsidePackage: (count) => `${count === 1 ? "Its one prop comes" : `All ${count} of its props come`} from outside its package (an element's attributes), which the reference leaves out.`,
76
109
  showCode: "Show code",
77
110
  hideCode: "Hide code",
78
111
  openStory: "Open the story",
@@ -86,11 +119,18 @@ export const LATER_STRINGS = lateStrings({
86
119
  fillPage: "Fill the page",
87
120
  fillPageNamed: (name) => `Fill the page with ${name}`,
88
121
  backToPlace: "Back to its place",
89
- backToPlaceNamed: (name) => `Put ${name} back in its place`,
122
+ backToPlaceNamed: (name) => `Back to its place: ${name}`,
90
123
  examples: "Examples",
124
+ pageContained: "Contained width",
91
125
  pageError: "The component's page could not be read",
92
126
  droppedArgs: "The link sets values this story does not take; they were left out:",
93
- droppedArgReasons: { undeclared: "not one of its props", type: "not of the prop's type" },
127
+ droppedArgReasons: {
128
+ undeclared: "not one of its props",
129
+ type: "not of the prop's type",
130
+ unreadable: "its value could not be read",
131
+ markup: "this framework writes it into HTML, so a link may give only plain text",
132
+ control: "its control refuses it, or could not be loaded"
133
+ },
94
134
  removeDroppedArgs: "Remove them from the address",
95
135
  events: "Events",
96
136
  calls: "Calls",
@@ -10,6 +10,7 @@ import { createRoot } from "react-dom/client";
10
10
  import { isEmbedAddress } from "../embed.js";
11
11
  import { framePageAddress, pageOrigins, SAME_ORIGIN } from "../frameOrigins.js";
12
12
  import { CodeWriterContext } from "./codeWriter.js";
13
+ import { HAS_REFS, setShellRefs } from "./composition.js";
13
14
  import { FORGEBOOK_MARK_URL } from "./forgebookMark.js";
14
15
  import { setFramesOrigin } from "./framesOrigin.js";
15
16
  import { Shell } from "./Shell.js";
@@ -57,6 +58,8 @@ export const mountShell = (container, config) => {
57
58
  // set before anything renders, the embed included: its story's frame runs on the frames' origin too
58
59
  const origins = pageOrigins(frames, window.location, "catalogue");
59
60
  setFramesOrigin(origins.frames);
61
+ if (HAS_REFS)
62
+ setShellRefs(config.refs);
60
63
  const shell = {
61
64
  ...page,
62
65
  frameUrl: framePageAddress(page.frameUrl, origins.frames, window.location.pathname)
@@ -1,6 +1,10 @@
1
1
  /** The texts of the home and the docs pages, the catalogue's replacements applied. */
2
2
  export declare const PAGE_STRINGS: {
3
3
  homeEmpty: string;
4
+ homeNoStoryTitle: string;
5
+ homeNoStoryLead: string;
6
+ homeNoStoryHelp: string;
7
+ homeNoStoryCommand: string;
4
8
  homeSummary: (components: number, sources: number) => string;
5
9
  homeIntroError: string;
6
10
  recentlyOpened: string;
@@ -9,6 +9,10 @@ import { lateStrings } from "./strings.js";
9
9
  /** The texts of the home and the docs pages, the catalogue's replacements applied. */
10
10
  export const PAGE_STRINGS = lateStrings({
11
11
  homeEmpty: "No stories yet: a source with story files shows its families here.",
12
+ homeNoStoryTitle: "No stories yet",
13
+ homeNoStoryLead: "This catalogue lists the story files these patterns match, and none is there yet:",
14
+ homeNoStoryHelp: "Save a file one of them matches, and it shows here. To have one written from a component, run:",
15
+ homeNoStoryCommand: "npx forgebook new src/Button.tsx",
12
16
  homeSummary: (components, sources) => `${components} ${components === 1 ? "component" : "components"} in ${sources} ${sources === 1 ? "library" : "libraries"}.`,
13
17
  homeIntroError: "The library's introduction could not be read",
14
18
  recentlyOpened: "Recently opened",
@@ -0,0 +1,18 @@
1
+ /**
2
+ * What a story's tags draw on a component's page (its status, a story's own), loaded from the page's own chunk with the
3
+ * same module as the sidebar's (`TagViews.tsx`).
4
+ *
5
+ * @remarks
6
+ * Kept apart from `tagView.tsx`, which the first load carries: imported by the pages that load later too, that module
7
+ * would be split out of the first load's chunk into one of its own, a request and some bytes more on every first load.
8
+ *
9
+ * @module
10
+ */
11
+ import type { ReactNode } from "react";
12
+ import type { TagViewProps } from "./TagViews.tsx";
13
+ /**
14
+ * What the tags draw in one place of a component's page, once its code is there.
15
+ *
16
+ * @param props - the place, and what it reads.
17
+ */
18
+ export declare const PageTagView: (props: TagViewProps) => ReactNode;