forgebook 0.3.3 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (713) hide show
  1. package/README.md +994 -72
  2. package/dist/bin/forgebook/agentClient.d.ts +2 -1
  3. package/dist/bin/forgebook/agentClient.js +13 -6
  4. package/dist/bin/forgebook/agentGuide.d.ts +59 -0
  5. package/dist/bin/forgebook/agentGuide.js +203 -0
  6. package/dist/bin/forgebook/agentLoopCommands.mjs +22 -42
  7. package/dist/bin/forgebook/agentSetup/agentFiles.d.ts +55 -0
  8. package/dist/bin/forgebook/agentSetup/agentFiles.js +319 -0
  9. package/dist/bin/forgebook/agentSetup/assistantHooks.d.ts +71 -0
  10. package/dist/bin/forgebook/agentSetup/assistantHooks.js +125 -0
  11. package/dist/bin/forgebook/agentSetup/ciWorkflow.d.ts +23 -0
  12. package/dist/bin/forgebook/agentSetup/ciWorkflow.js +55 -0
  13. package/dist/bin/forgebook/agentSetup/drawCandidates.d.ts +25 -0
  14. package/dist/bin/forgebook/agentSetup/drawCandidates.js +116 -0
  15. package/dist/bin/forgebook/agentSetup/drawDiagnosis.d.ts +28 -0
  16. package/dist/bin/forgebook/agentSetup/drawDiagnosis.js +134 -0
  17. package/dist/bin/forgebook/agentSetup/drawRun.d.ts +91 -0
  18. package/dist/bin/forgebook/agentSetup/drawRun.js +353 -0
  19. package/dist/bin/forgebook/agentSetup/hookNames.d.ts +7 -0
  20. package/dist/bin/forgebook/agentSetup/hookNames.js +7 -0
  21. package/dist/bin/forgebook/agentSetup/initAgentSteps.d.ts +48 -0
  22. package/dist/bin/forgebook/agentSetup/initAgentSteps.js +104 -0
  23. package/dist/bin/forgebook/agentSetup/liftedProviders.d.ts +17 -0
  24. package/dist/bin/forgebook/agentSetup/liftedProviders.js +186 -0
  25. package/dist/bin/forgebook/agentSetup/projectRunner.d.ts +46 -0
  26. package/dist/bin/forgebook/agentSetup/projectRunner.js +85 -0
  27. package/dist/bin/forgebook/agentSetup/stopHook.d.ts +65 -0
  28. package/dist/bin/forgebook/agentSetup/stopHook.js +202 -0
  29. package/dist/bin/forgebook/agentSetup/uniformPicture.d.ts +7 -0
  30. package/dist/bin/forgebook/agentSetup/uniformPicture.js +98 -0
  31. package/dist/bin/forgebook/agentSetupCommands.d.mts +14 -0
  32. package/dist/bin/forgebook/agentSetupCommands.mjs +98 -0
  33. package/dist/bin/forgebook/agentText.d.ts +23 -3
  34. package/dist/bin/forgebook/agentText.js +182 -28
  35. package/dist/bin/forgebook/agents.md +20 -191
  36. package/dist/bin/forgebook/agentsText.js +2 -1
  37. package/dist/bin/forgebook/appBuild/appBuild.d.ts +59 -0
  38. package/dist/bin/forgebook/appBuild/appBuild.js +213 -0
  39. package/dist/bin/forgebook/appBuild/appViteConfig.d.ts +96 -0
  40. package/dist/bin/forgebook/appBuild/appViteConfig.js +320 -0
  41. package/dist/bin/forgebook/appBuild/tsconfigPaths.d.ts +14 -0
  42. package/dist/bin/forgebook/appBuild/tsconfigPaths.js +80 -0
  43. package/dist/bin/forgebook/auditCommand.d.mts +8 -0
  44. package/dist/bin/forgebook/auditCommand.mjs +75 -0
  45. package/dist/bin/forgebook/auditRun.d.ts +95 -0
  46. package/dist/bin/forgebook/auditRun.js +270 -0
  47. package/dist/bin/forgebook/browserRun.d.ts +21 -0
  48. package/dist/bin/forgebook/browserRun.js +57 -0
  49. package/dist/bin/forgebook/buildFailure.d.ts +7 -0
  50. package/dist/bin/forgebook/buildFailure.js +47 -0
  51. package/dist/bin/forgebook/buildWatch.d.ts +52 -0
  52. package/dist/bin/forgebook/buildWatch.js +137 -0
  53. package/dist/bin/forgebook/builtCatalogue.js +9 -5
  54. package/dist/bin/forgebook/catalogueCommands.d.ts +9 -0
  55. package/dist/bin/forgebook/catalogueCommands.js +23 -0
  56. package/dist/bin/forgebook/catalogueVite.d.ts +5 -1
  57. package/dist/bin/forgebook/catalogueVite.js +14 -6
  58. package/dist/bin/forgebook/commandCacheClaim.d.ts +18 -0
  59. package/dist/bin/forgebook/commandCacheClaim.js +170 -0
  60. package/dist/bin/forgebook/commandServer.d.ts +8 -0
  61. package/dist/bin/forgebook/commandServer.js +61 -13
  62. package/dist/bin/forgebook/forgebookCommands.mjs +105 -28
  63. package/dist/bin/forgebook/graphCommand.d.mts +8 -0
  64. package/dist/bin/forgebook/graphCommand.mjs +84 -0
  65. package/dist/bin/forgebook/guide/commands.md +62 -0
  66. package/dist/bin/forgebook/guide/devices.md +17 -0
  67. package/dist/bin/forgebook/guide/docs-pages.md +13 -0
  68. package/dist/bin/forgebook/guide/frameworks/angular.md +22 -0
  69. package/dist/bin/forgebook/guide/frameworks/html.md +22 -0
  70. package/dist/bin/forgebook/guide/frameworks/nextjs.md +23 -0
  71. package/dist/bin/forgebook/guide/frameworks/nuxt.md +22 -0
  72. package/dist/bin/forgebook/guide/frameworks/preact.md +16 -0
  73. package/dist/bin/forgebook/guide/frameworks/react-native-web.md +21 -0
  74. package/dist/bin/forgebook/guide/frameworks/react.md +16 -0
  75. package/dist/bin/forgebook/guide/frameworks/solid.md +18 -0
  76. package/dist/bin/forgebook/guide/frameworks/svelte.md +18 -0
  77. package/dist/bin/forgebook/guide/frameworks/sveltekit.md +23 -0
  78. package/dist/bin/forgebook/guide/frameworks/vue.md +18 -0
  79. package/dist/bin/forgebook/guide/frameworks/web-components.md +21 -0
  80. package/dist/bin/forgebook/guide/links.md +29 -0
  81. package/dist/bin/forgebook/guide/setup.md +23 -0
  82. package/dist/bin/forgebook/guide/stories.md +95 -0
  83. package/dist/bin/forgebook/guide/switches.md +43 -0
  84. package/dist/bin/forgebook/guideCommand.d.mts +13 -0
  85. package/dist/bin/forgebook/guideCommand.mjs +37 -0
  86. package/dist/bin/forgebook/importers/storybook.d.ts +21 -0
  87. package/dist/bin/forgebook/importers/storybook.js +11 -5
  88. package/dist/bin/forgebook/importers/storybookFrameworks.js +1 -1
  89. package/dist/bin/forgebook/initCommands.d.mts +11 -0
  90. package/dist/bin/forgebook/initCommands.mjs +51 -78
  91. package/dist/bin/forgebook/initConfig.d.ts +5 -3
  92. package/dist/bin/forgebook/initConfig.js +6 -3
  93. package/dist/bin/forgebook/initInstall.d.ts +15 -0
  94. package/dist/bin/forgebook/initInstall.js +77 -0
  95. package/dist/bin/forgebook/initPrint.d.ts +9 -0
  96. package/dist/bin/forgebook/initPrint.js +60 -0
  97. package/dist/bin/forgebook/initRefusals.d.ts +45 -0
  98. package/dist/bin/forgebook/initRefusals.js +91 -0
  99. package/dist/bin/forgebook/initRun.d.ts +28 -0
  100. package/dist/bin/forgebook/initRun.js +311 -0
  101. package/dist/bin/forgebook/mcpCommand.mjs +38 -4
  102. package/dist/bin/forgebook/mcpGraph.d.ts +13 -0
  103. package/dist/bin/forgebook/mcpGraph.js +24 -0
  104. package/dist/bin/forgebook/mcpTokens.d.ts +14 -0
  105. package/dist/bin/forgebook/mcpTokens.js +58 -0
  106. package/dist/bin/forgebook/mcpToolParts.d.ts +7 -0
  107. package/dist/bin/forgebook/mcpToolParts.js +10 -0
  108. package/dist/bin/forgebook/mcpTools.d.ts +13 -6
  109. package/dist/bin/forgebook/mcpTools.js +57 -90
  110. package/dist/bin/forgebook/mcpVerify.d.ts +16 -0
  111. package/dist/bin/forgebook/mcpVerify.js +36 -0
  112. package/dist/bin/forgebook/migrate/codemods.d.ts +11 -0
  113. package/dist/bin/forgebook/migrate/codemods.js +61 -0
  114. package/dist/bin/forgebook/migrate/migrate.types.d.ts +117 -0
  115. package/dist/bin/forgebook/migrate/migrate.types.js +5 -0
  116. package/dist/bin/forgebook/migrate/migrateCommand.d.mts +8 -0
  117. package/dist/bin/forgebook/migrate/migrateCommand.mjs +76 -0
  118. package/dist/bin/forgebook/migrate/migrateRun.d.ts +61 -0
  119. package/dist/bin/forgebook/migrate/migrateRun.js +210 -0
  120. package/dist/bin/forgebook/migrate/migrateText.d.ts +12 -0
  121. package/dist/bin/forgebook/migrate/migrateText.js +30 -0
  122. package/dist/bin/forgebook/migrate/migrateWrite.d.ts +27 -0
  123. package/dist/bin/forgebook/migrate/migrateWrite.js +66 -0
  124. package/dist/bin/forgebook/migrate/objectEdits.d.ts +70 -0
  125. package/dist/bin/forgebook/migrate/objectEdits.js +241 -0
  126. package/dist/bin/forgebook/migrate/playOnInBuilds.d.ts +3 -0
  127. package/dist/bin/forgebook/migrate/playOnInBuilds.js +86 -0
  128. package/dist/bin/forgebook/migrate/propGroupStrings.d.ts +5 -0
  129. package/dist/bin/forgebook/migrate/propGroupStrings.js +81 -0
  130. package/dist/bin/forgebook/newProject/newProject.d.ts +39 -0
  131. package/dist/bin/forgebook/newProject/newProject.js +180 -0
  132. package/dist/bin/forgebook/newProject/newProject.types.d.ts +97 -0
  133. package/dist/bin/forgebook/newProject/newProject.types.js +6 -0
  134. package/dist/bin/forgebook/newProject/packageManagers.d.ts +51 -0
  135. package/dist/bin/forgebook/newProject/packageManagers.js +121 -0
  136. package/dist/bin/forgebook/newProject/projectEntries.d.ts +62 -0
  137. package/dist/bin/forgebook/newProject/projectEntries.js +191 -0
  138. package/dist/bin/forgebook/newProject/projectFrameworks.d.ts +57 -0
  139. package/dist/bin/forgebook/newProject/projectFrameworks.js +148 -0
  140. package/dist/bin/forgebook/newProject/projectLook.d.ts +23 -0
  141. package/dist/bin/forgebook/newProject/projectLook.js +293 -0
  142. package/dist/bin/forgebook/newProject/projectPackages.d.ts +66 -0
  143. package/dist/bin/forgebook/newProject/projectPackages.js +178 -0
  144. package/dist/bin/forgebook/newRepair.d.ts +45 -0
  145. package/dist/bin/forgebook/newRepair.js +157 -0
  146. package/dist/bin/forgebook/newRepairRun.d.ts +69 -0
  147. package/dist/bin/forgebook/newRepairRun.js +148 -0
  148. package/dist/bin/forgebook/newStories.d.ts +23 -1
  149. package/dist/bin/forgebook/newStories.js +101 -11
  150. package/dist/bin/forgebook/newStoriesFile.d.ts +20 -1
  151. package/dist/bin/forgebook/newStoriesFile.js +43 -4
  152. package/dist/bin/forgebook/prebundleRun.d.ts +3 -1
  153. package/dist/bin/forgebook/prebundleRun.js +28 -8
  154. package/dist/bin/forgebook/proofCommand.d.mts +15 -0
  155. package/dist/bin/forgebook/proofCommand.mjs +212 -0
  156. package/dist/bin/forgebook/proofRun.d.ts +63 -0
  157. package/dist/bin/forgebook/proofRun.js +412 -0
  158. package/dist/bin/forgebook/proofText.d.ts +36 -0
  159. package/dist/bin/forgebook/proofText.js +131 -0
  160. package/dist/bin/forgebook/proofWorkflow.d.ts +29 -0
  161. package/dist/bin/forgebook/proofWorkflow.js +205 -0
  162. package/dist/bin/forgebook/setArgsTool.d.ts +8 -0
  163. package/dist/bin/forgebook/setArgsTool.js +70 -0
  164. package/dist/bin/forgebook/storyCheckCommands.mjs +42 -3
  165. package/dist/bin/forgebook/storyCheckRun.d.ts +50 -0
  166. package/dist/bin/forgebook/storyCheckRun.js +83 -9
  167. package/dist/bin/forgebook/storyFileIds.d.ts +15 -0
  168. package/dist/bin/forgebook/storyFileIds.js +14 -0
  169. package/dist/bin/forgebook/stressCases.d.ts +31 -0
  170. package/dist/bin/forgebook/stressCases.js +79 -0
  171. package/dist/bin/forgebook/stressRun.d.ts +12 -0
  172. package/dist/bin/forgebook/stressRun.js +61 -0
  173. package/dist/bin/forgebook/stressText.d.ts +27 -0
  174. package/dist/bin/forgebook/stressText.js +46 -0
  175. package/dist/bin/forgebook/verifyBase.d.ts +45 -0
  176. package/dist/bin/forgebook/verifyBase.js +204 -0
  177. package/dist/bin/forgebook/verifyCommand.d.mts +13 -0
  178. package/dist/bin/forgebook/verifyCommand.mjs +125 -0
  179. package/dist/bin/forgebook/verifyRun.d.ts +63 -0
  180. package/dist/bin/forgebook/verifyRun.js +108 -0
  181. package/dist/bin/forgebook/verifyVerdict.d.ts +40 -0
  182. package/dist/bin/forgebook/verifyVerdict.js +323 -0
  183. package/dist/bin/forgebook/workflowActions.d.ts +23 -0
  184. package/dist/bin/forgebook/workflowActions.js +23 -0
  185. package/dist/bin/forgebook-docs/catalogueMarkdown.js +12 -1
  186. package/dist/src/addressArgs.d.ts +29 -5
  187. package/dist/src/addressArgs.js +58 -16
  188. package/dist/src/addressArgsParam.d.ts +54 -0
  189. package/dist/src/addressArgsParam.js +51 -0
  190. package/dist/src/addressTexts.d.ts +14 -0
  191. package/dist/src/addressTexts.js +28 -21
  192. package/dist/src/agentIndexFile.d.ts +11 -0
  193. package/dist/src/agentIndexFile.js +11 -0
  194. package/dist/src/argConditions.d.ts +52 -0
  195. package/dist/src/argConditions.js +80 -0
  196. package/dist/src/argControl.d.ts +148 -0
  197. package/dist/src/argControl.js +0 -0
  198. package/dist/src/argExpression.d.ts +21 -0
  199. package/dist/src/argExpression.js +30 -0
  200. package/dist/src/argTypes.d.ts +40 -51
  201. package/dist/src/argTypes.js +69 -185
  202. package/dist/src/argsProps.d.ts +3 -3
  203. package/dist/src/argsProps.js +11 -5
  204. package/dist/src/bundlerErrors.d.ts +29 -0
  205. package/dist/src/bundlerErrors.js +49 -0
  206. package/dist/src/catalogue.d.ts +31 -0
  207. package/dist/src/catalogue.js +13 -2
  208. package/dist/src/catalogueRefs.d.ts +75 -0
  209. package/dist/src/catalogueRefs.js +122 -0
  210. package/dist/src/componentDocs.d.ts +83 -0
  211. package/dist/src/componentDocs.js +20 -3
  212. package/dist/src/controlCode.d.ts +27 -0
  213. package/dist/src/controlCode.js +41 -0
  214. package/dist/src/frame/callValues.d.ts +19 -0
  215. package/dist/src/frame/callValues.js +58 -0
  216. package/dist/src/frame/canvasScheme.d.ts +33 -0
  217. package/dist/src/frame/canvasScheme.js +67 -0
  218. package/dist/src/frame/controlValues.d.ts +39 -0
  219. package/dist/src/frame/controlValues.js +143 -0
  220. package/dist/src/frame/frame.css +36 -3
  221. package/dist/src/frame/frameStatus.d.ts +16 -1
  222. package/dist/src/frame/frameStatus.js +16 -1
  223. package/dist/src/frame/frameView.js +4 -3
  224. package/dist/src/frame/mountFrame.d.ts +10 -1
  225. package/dist/src/frame/mountFrame.js +160 -55
  226. package/dist/src/frame/panelControls.d.ts +67 -0
  227. package/dist/src/frame/panelControls.js +110 -0
  228. package/dist/src/frame/panelValues.d.ts +35 -0
  229. package/dist/src/frame/panelValues.js +127 -0
  230. package/dist/src/frame/playActions.d.ts +39 -0
  231. package/dist/src/frame/playActions.js +98 -0
  232. package/dist/src/frame/playStepper.d.ts +28 -0
  233. package/dist/src/frame/playStepper.js +38 -0
  234. package/dist/src/frame/playStory.d.ts +9 -1
  235. package/dist/src/frame/playStory.js +49 -3
  236. package/dist/src/frame/renderer.d.ts +34 -1
  237. package/dist/src/frame/renderer.js +24 -0
  238. package/dist/src/frame/shellChannel.d.ts +1 -1
  239. package/dist/src/frame/shellChannel.js +1 -1
  240. package/dist/src/frame/shellCheck.d.ts +17 -0
  241. package/dist/src/frame/shellCheck.js +25 -0
  242. package/dist/src/frame/shellMessageCheck.d.ts +7 -0
  243. package/dist/src/frame/shellMessageCheck.js +53 -0
  244. package/dist/src/frame/storyContent.d.ts +50 -0
  245. package/dist/src/frame/storyContent.js +73 -0
  246. package/dist/src/frame/storyModule.d.ts +9 -0
  247. package/dist/src/frame/storyModule.js +20 -2
  248. package/dist/src/frame/storyRun.d.ts +15 -7
  249. package/dist/src/frame/storyRun.js +64 -15
  250. package/dist/src/frame/valueSheets.d.ts +35 -0
  251. package/dist/src/frame/valueSheets.js +99 -0
  252. package/dist/src/hotModules.d.ts +20 -0
  253. package/dist/src/hotModules.js +23 -0
  254. package/dist/src/jsxCode.d.ts +1 -14
  255. package/dist/src/jsxCode.js +46 -10
  256. package/dist/src/liveErrors.d.ts +30 -4
  257. package/dist/src/liveErrors.js +18 -3
  258. package/dist/src/messages.d.ts +77 -27
  259. package/dist/src/messages.js +58 -100
  260. package/dist/src/namedValues.d.ts +2 -26
  261. package/dist/src/namedValues.js +0 -47
  262. package/dist/src/pageConfig.d.ts +2 -0
  263. package/dist/src/playTrace.d.ts +19 -2
  264. package/dist/src/playTrace.js +10 -5
  265. package/dist/src/plugin.d.ts +10 -3
  266. package/dist/src/previewRelay.js +9 -1
  267. package/dist/src/printable.d.ts +12 -0
  268. package/dist/src/printable.js +22 -0
  269. package/dist/src/propsSignature.d.ts +37 -0
  270. package/dist/src/propsSignature.js +40 -0
  271. package/dist/src/search.d.ts +41 -5
  272. package/dist/src/search.js +93 -23
  273. package/dist/src/searchMatch.d.ts +4 -1
  274. package/dist/src/searchMatch.js +26 -5
  275. package/dist/src/searchTypos.d.ts +88 -0
  276. package/dist/src/searchTypos.js +178 -0
  277. package/dist/src/shapeValues.d.ts +86 -0
  278. package/dist/src/shapeValues.js +295 -0
  279. package/dist/src/shell/ApiReference.js +6 -3
  280. package/dist/src/shell/ApiTableBox.d.ts +15 -0
  281. package/dist/src/shell/ApiTableBox.js +11 -0
  282. package/dist/src/shell/AppearanceMenu.d.ts +4 -1
  283. package/dist/src/shell/AppearanceMenu.js +9 -6
  284. package/dist/src/shell/AuthoredHome.js +3 -1
  285. package/dist/src/shell/CodeTab.d.ts +12 -6
  286. package/dist/src/shell/CodeTab.js +47 -3
  287. package/dist/src/shell/CodeText.d.ts +1 -1
  288. package/dist/src/shell/CodeText.js +2 -3
  289. package/dist/src/shell/CompareGrid.js +1 -1
  290. package/dist/src/shell/ComponentPage.d.ts +6 -6
  291. package/dist/src/shell/ComponentPage.js +8 -2
  292. package/dist/src/shell/CustomControl.d.ts +34 -0
  293. package/dist/src/shell/CustomControl.js +125 -0
  294. package/dist/src/shell/DocContainers.js +1 -1
  295. package/dist/src/shell/DocPage.js +2 -2
  296. package/dist/src/shell/DroppedArgsList.d.ts +2 -2
  297. package/dist/src/shell/DroppedArgsList.js +1 -1
  298. package/dist/src/shell/EmbedPage.js +30 -12
  299. package/dist/src/shell/Example.d.ts +5 -1
  300. package/dist/src/shell/Example.js +16 -8
  301. package/dist/src/shell/FrameView.d.ts +6 -3
  302. package/dist/src/shell/FrameView.js +2 -2
  303. package/dist/src/shell/HomePage.d.ts +3 -1
  304. package/dist/src/shell/HomePage.js +18 -6
  305. package/dist/src/shell/InfoTip.js +2 -2
  306. package/dist/src/shell/InteractionsTab.d.ts +11 -4
  307. package/dist/src/shell/InteractionsTab.js +18 -2
  308. package/dist/src/shell/LazyPage.js +1 -1
  309. package/dist/src/shell/PackageHtml.js +3 -1
  310. package/dist/src/shell/PageWidth.d.ts +29 -0
  311. package/dist/src/shell/PageWidth.js +18 -0
  312. package/dist/src/shell/PinnedControl.js +14 -62
  313. package/dist/src/shell/PinnedControlMenu.d.ts +44 -0
  314. package/dist/src/shell/PinnedControlMenu.js +72 -0
  315. package/dist/src/shell/PropFields.d.ts +3 -1
  316. package/dist/src/shell/PropFields.js +9 -6
  317. package/dist/src/shell/PropRows.d.ts +22 -11
  318. package/dist/src/shell/PropRows.js +62 -24
  319. package/dist/src/shell/PropsTab.d.ts +12 -5
  320. package/dist/src/shell/PropsTab.js +9 -22
  321. package/dist/src/shell/RefStoryPage.d.ts +33 -0
  322. package/dist/src/shell/RefStoryPage.js +123 -0
  323. package/dist/src/shell/SearchPanel.js +51 -24
  324. package/dist/src/shell/Shell.d.ts +18 -0
  325. package/dist/src/shell/Shell.js +141 -23
  326. package/dist/src/shell/ShortcutHelp.d.ts +22 -0
  327. package/dist/src/shell/ShortcutHelp.js +66 -0
  328. package/dist/src/shell/Sidebar.d.ts +17 -4
  329. package/dist/src/shell/Sidebar.js +92 -41
  330. package/dist/src/shell/SidebarDocs.js +2 -2
  331. package/dist/src/shell/SidebarEntries.js +5 -3
  332. package/dist/src/shell/SidebarHandle.d.ts +3 -5
  333. package/dist/src/shell/SidebarHandle.js +4 -4
  334. package/dist/src/shell/SidebarRefs.d.ts +39 -0
  335. package/dist/src/shell/SidebarRefs.js +99 -0
  336. package/dist/src/shell/SidebarSearch.js +37 -9
  337. package/dist/src/shell/SignatureReference.js +3 -1
  338. package/dist/src/shell/Stage.d.ts +10 -2
  339. package/dist/src/shell/Stage.js +29 -49
  340. package/dist/src/shell/StatusBadges.d.ts +54 -0
  341. package/dist/src/shell/StatusBadges.js +77 -0
  342. package/dist/src/shell/StoryCodeBlock.d.ts +8 -19
  343. package/dist/src/shell/StoryCodeBlock.js +7 -6
  344. package/dist/src/shell/StoryPicker.d.ts +4 -2
  345. package/dist/src/shell/StoryPicker.js +3 -3
  346. package/dist/src/shell/Switch.d.ts +29 -0
  347. package/dist/src/shell/Switch.js +11 -0
  348. package/dist/src/shell/SwitchGallery.d.ts +36 -0
  349. package/dist/src/shell/SwitchGallery.js +17 -0
  350. package/dist/src/shell/SwitchGalleryPanel.d.ts +37 -0
  351. package/dist/src/shell/SwitchGalleryPanel.js +99 -0
  352. package/dist/src/shell/TagFilter.d.ts +24 -0
  353. package/dist/src/shell/TagFilter.js +45 -0
  354. package/dist/src/shell/TagViews.d.ts +39 -0
  355. package/dist/src/shell/TagViews.js +20 -0
  356. package/dist/src/shell/Toolbar.d.ts +4 -1
  357. package/dist/src/shell/Toolbar.js +17 -7
  358. package/dist/src/shell/ToolbarControl.d.ts +3 -0
  359. package/dist/src/shell/ToolbarControl.js +23 -6
  360. package/dist/src/shell/ViewMenuPanel.js +6 -1
  361. package/dist/src/shell/argChecks.d.ts +22 -0
  362. package/dist/src/shell/argChecks.js +20 -0
  363. package/dist/src/shell/asideStory.js +7 -2
  364. package/dist/src/shell/audienceSections.css +9 -9
  365. package/dist/src/shell/catalogueContext.d.ts +1 -1
  366. package/dist/src/shell/catalogueContext.js +6 -1
  367. package/dist/src/shell/codeSpans.d.ts +27 -0
  368. package/dist/src/shell/codeSpans.js +76 -0
  369. package/dist/src/shell/compareVariants.d.ts +4 -2
  370. package/dist/src/shell/compareVariants.js +16 -8
  371. package/dist/src/shell/composition.d.ts +23 -0
  372. package/dist/src/shell/composition.js +26 -0
  373. package/dist/src/shell/controlCycle.d.ts +1 -1
  374. package/dist/src/shell/controlCycle.js +3 -2
  375. package/dist/src/shell/customControls.d.ts +62 -0
  376. package/dist/src/shell/customControls.js +81 -0
  377. package/dist/src/shell/docPage.css +22 -22
  378. package/dist/src/shell/dockTabs.d.ts +19 -3
  379. package/dist/src/shell/dockTabs.js +29 -20
  380. package/dist/src/shell/embed.css +7 -7
  381. package/dist/src/shell/frameOrder.d.ts +35 -0
  382. package/dist/src/shell/frameOrder.js +45 -0
  383. package/dist/src/shell/framesOrigin.d.ts +7 -0
  384. package/dist/src/shell/framesOrigin.js +1 -1
  385. package/dist/src/shell/galleryPlace.d.ts +20 -0
  386. package/dist/src/shell/galleryPlace.js +26 -0
  387. package/dist/src/shell/icons.d.ts +1 -0
  388. package/dist/src/shell/icons.js +1 -0
  389. package/dist/src/shell/keyboard.d.ts +14 -12
  390. package/dist/src/shell/keyboard.js +21 -6
  391. package/dist/src/shell/laterStrings.d.ts +30 -0
  392. package/dist/src/shell/laterStrings.js +43 -3
  393. package/dist/src/shell/mountShell.js +3 -0
  394. package/dist/src/shell/pageStrings.d.ts +4 -0
  395. package/dist/src/shell/pageStrings.js +4 -0
  396. package/dist/src/shell/pageTagView.d.ts +18 -0
  397. package/dist/src/shell/pageTagView.js +10 -0
  398. package/dist/src/shell/playMemory.d.ts +14 -0
  399. package/dist/src/shell/playMemory.js +8 -0
  400. package/dist/src/shell/propNotes.d.ts +23 -0
  401. package/dist/src/shell/propNotes.js +37 -0
  402. package/dist/src/shell/refIndexLoad.d.ts +17 -0
  403. package/dist/src/shell/refIndexLoad.js +38 -0
  404. package/dist/src/shell/refParts.d.ts +34 -0
  405. package/dist/src/shell/refParts.js +9 -0
  406. package/dist/src/shell/refStory.css +21 -0
  407. package/dist/src/shell/refStrings.d.ts +13 -0
  408. package/dist/src/shell/refStrings.js +21 -0
  409. package/dist/src/shell/search.css +11 -11
  410. package/dist/src/shell/shell.css +376 -169
  411. package/dist/src/shell/shellScheme.js +2 -2
  412. package/dist/src/shell/shortcutHelp.css +64 -0
  413. package/dist/src/shell/stageArgs.d.ts +53 -0
  414. package/dist/src/shell/stageArgs.js +64 -0
  415. package/dist/src/shell/statusBadges.css +51 -0
  416. package/dist/src/shell/strings.d.ts +7 -16
  417. package/dist/src/shell/strings.js +12 -17
  418. package/dist/src/shell/switchGallery.css +104 -0
  419. package/dist/src/shell/tagFilter.css +46 -0
  420. package/dist/src/shell/tagView.d.ts +20 -0
  421. package/dist/src/shell/tagView.js +10 -0
  422. package/dist/src/shell/useAddressArgs.d.ts +9 -0
  423. package/dist/src/shell/useAddressArgs.js +56 -11
  424. package/dist/src/shell/useControlKeys.js +2 -2
  425. package/dist/src/shell/useEditedProblems.d.ts +6 -0
  426. package/dist/src/shell/useEditedProblems.js +40 -0
  427. package/dist/src/shell/useFrameMessages.js +3 -0
  428. package/dist/src/shell/useFrameQueue.d.ts +8 -3
  429. package/dist/src/shell/useFrameQueue.js +42 -12
  430. package/dist/src/shell/useListedTree.d.ts +13 -0
  431. package/dist/src/shell/useListedTree.js +32 -0
  432. package/dist/src/shell/usePageFrames.js +2 -2
  433. package/dist/src/shell/usePopover.d.ts +5 -0
  434. package/dist/src/shell/usePopover.js +7 -1
  435. package/dist/src/shell/useRefIndex.d.ts +22 -0
  436. package/dist/src/shell/useRefIndex.js +36 -0
  437. package/dist/src/shell/useScrollSettled.d.ts +18 -0
  438. package/dist/src/shell/useScrollSettled.js +56 -0
  439. package/dist/src/shell/useScrollStops.d.ts +20 -0
  440. package/dist/src/shell/useScrollStops.js +41 -0
  441. package/dist/src/shell/useShortcutHelp.d.ts +18 -0
  442. package/dist/src/shell/useShortcutHelp.js +32 -0
  443. package/dist/src/shell/useSidebarOverlay.d.ts +2 -1
  444. package/dist/src/shell/useSidebarOverlay.js +12 -4
  445. package/dist/src/shell/useStoryCode.d.ts +2 -1
  446. package/dist/src/shell/useStoryCode.js +12 -7
  447. package/dist/src/shell/useToolbarLayout.d.ts +5 -1
  448. package/dist/src/shell/useToolbarLayout.js +2 -2
  449. package/dist/src/shell/useWorstCase.d.ts +8 -2
  450. package/dist/src/shell/useWorstCase.js +2 -2
  451. package/dist/src/shell/valueEditors/FileEditor.d.ts +28 -0
  452. package/dist/src/shell/valueEditors/FileEditor.js +66 -0
  453. package/dist/src/shell/valueEditors/JsonEditor.d.ts +14 -0
  454. package/dist/src/shell/valueEditors/JsonEditor.js +53 -0
  455. package/dist/src/shell/valueEditors/ListEditor.d.ts +24 -0
  456. package/dist/src/shell/valueEditors/ListEditor.js +82 -0
  457. package/dist/src/shell/valueEditors/ObjectEditor.d.ts +32 -0
  458. package/dist/src/shell/valueEditors/ObjectEditor.js +70 -0
  459. package/dist/src/shell/valueEditors/PropEditor.d.ts +37 -0
  460. package/dist/src/shell/valueEditors/PropEditor.js +53 -0
  461. package/dist/src/shell/valueEditors/RecordEditor.d.ts +20 -0
  462. package/dist/src/shell/valueEditors/RecordEditor.js +84 -0
  463. package/dist/src/shell/valueEditors/SearchSelect.d.ts +42 -0
  464. package/dist/src/shell/valueEditors/SearchSelect.js +80 -0
  465. package/dist/src/shell/valueEditors/TokenEditor.d.ts +49 -0
  466. package/dist/src/shell/valueEditors/TokenEditor.js +74 -0
  467. package/dist/src/shell/valueEditors/UnionEditor.d.ts +20 -0
  468. package/dist/src/shell/valueEditors/UnionEditor.js +64 -0
  469. package/dist/src/shell/valueEditors/ValueField.d.ts +15 -0
  470. package/dist/src/shell/valueEditors/ValueField.js +148 -0
  471. package/dist/src/shell/valueEditors/editorStrings.d.ts +56 -0
  472. package/dist/src/shell/valueEditors/editorStrings.js +66 -0
  473. package/dist/src/shell/valueEditors/fieldTypes.d.ts +31 -0
  474. package/dist/src/shell/valueEditors/fieldTypes.js +0 -0
  475. package/dist/src/shell/valueEditors/valueEditors.css +153 -0
  476. package/dist/src/shell/worstArgs.d.ts +8 -5
  477. package/dist/src/shell/worstArgs.js +14 -7
  478. package/dist/src/shellTheme.d.ts +1 -1
  479. package/dist/src/shellTheme.js +15 -1
  480. package/dist/src/shellTheme.types.d.ts +4 -0
  481. package/dist/src/shellWord.d.ts +12 -0
  482. package/dist/src/shellWord.js +15 -0
  483. package/dist/src/sourceFiles.js +2 -1
  484. package/dist/src/storyArgTypes.d.ts +57 -0
  485. package/dist/src/storyArgTypes.js +195 -0
  486. package/dist/src/storyBackground.js +14 -3
  487. package/dist/src/storyCheck.d.ts +99 -3
  488. package/dist/src/storyCheck.js +39 -1
  489. package/dist/src/storyCodeText.d.ts +52 -0
  490. package/dist/src/storyCodeText.js +30 -0
  491. package/dist/src/storyControls.d.ts +103 -0
  492. package/dist/src/storyControls.js +100 -0
  493. package/dist/src/storyStatuses.d.ts +55 -0
  494. package/dist/src/storyStatuses.js +104 -0
  495. package/dist/src/storyTagNames.d.ts +25 -0
  496. package/dist/src/storyTagNames.js +25 -0
  497. package/dist/src/storyTags.d.ts +29 -0
  498. package/dist/src/storyTags.js +85 -0
  499. package/dist/src/storyTree.d.ts +13 -0
  500. package/dist/src/storyTree.js +24 -4
  501. package/dist/src/storybookArgs.d.ts +24 -0
  502. package/dist/src/storybookArgs.js +185 -0
  503. package/dist/src/switches.d.ts +66 -3
  504. package/dist/src/switches.js +42 -1
  505. package/dist/src/valueSchema.d.ts +28 -0
  506. package/dist/src/valueSchema.js +196 -0
  507. package/dist/src/valueShape.d.ts +94 -0
  508. package/dist/src/valueShape.js +25 -0
  509. package/dist/src/viewState.d.ts +8 -3
  510. package/dist/src/viewState.js +27 -10
  511. package/dist/src/vite/adapter.d.ts +40 -2
  512. package/dist/src/vite/adapter.js +1 -0
  513. package/dist/src/vite/agent.types.d.ts +354 -7
  514. package/dist/src/vite/agentApi.d.ts +23 -0
  515. package/dist/src/vite/agentApi.js +90 -17
  516. package/dist/src/vite/agentIndex.d.ts +0 -2
  517. package/dist/src/vite/agentIndex.js +5 -6
  518. package/dist/src/vite/agentRoutes.d.ts +20 -1
  519. package/dist/src/vite/agentRoutes.js +135 -66
  520. package/dist/src/vite/agentStatuses.d.ts +42 -0
  521. package/dist/src/vite/agentStatuses.js +67 -0
  522. package/dist/src/vite/agentStoryCode.d.ts +51 -0
  523. package/dist/src/vite/agentStoryCode.js +44 -0
  524. package/dist/src/vite/agentVisibility.d.ts +47 -0
  525. package/dist/src/vite/agentVisibility.js +174 -0
  526. package/dist/src/vite/appAudit.d.ts +134 -0
  527. package/dist/src/vite/appAudit.js +333 -0
  528. package/dist/src/vite/appBuildOption.d.ts +53 -0
  529. package/dist/src/vite/appBuildOption.js +55 -0
  530. package/dist/src/vite/appTokenFiles.d.ts +92 -0
  531. package/dist/src/vite/appTokenFiles.js +433 -0
  532. package/dist/src/vite/appTokens.d.ts +23 -0
  533. package/dist/src/vite/appTokens.js +275 -0
  534. package/dist/src/vite/argControlsConfig.d.ts +30 -0
  535. package/dist/src/vite/argControlsConfig.js +176 -0
  536. package/dist/src/vite/builtTexts.d.ts +10 -0
  537. package/dist/src/vite/builtTexts.js +59 -22
  538. package/dist/src/vite/catalogueConfig.d.ts +3 -1
  539. package/dist/src/vite/catalogueConfig.js +21 -4
  540. package/dist/src/vite/changeCoverage.d.ts +74 -0
  541. package/dist/src/vite/changeCoverage.js +120 -0
  542. package/dist/src/vite/changedRoute.d.ts +30 -0
  543. package/dist/src/vite/changedRoute.js +197 -0
  544. package/dist/src/vite/checkCode.d.ts +105 -3
  545. package/dist/src/vite/checkCode.js +323 -36
  546. package/dist/src/vite/checkoutWatch.d.ts +97 -0
  547. package/dist/src/vite/checkoutWatch.js +287 -0
  548. package/dist/src/vite/closeWatch.d.ts +8 -0
  549. package/dist/src/vite/closeWatch.js +1 -1
  550. package/dist/src/vite/componentCache.d.ts +8 -0
  551. package/dist/src/vite/componentCache.js +66 -0
  552. package/dist/src/vite/componentGraph.d.ts +71 -0
  553. package/dist/src/vite/componentGraph.js +133 -0
  554. package/dist/src/vite/componentRules.d.ts +33 -0
  555. package/dist/src/vite/componentRules.js +105 -0
  556. package/dist/src/vite/componentScan.d.ts +69 -0
  557. package/dist/src/vite/componentScan.js +418 -0
  558. package/dist/src/vite/compositionCheck.d.ts +15 -0
  559. package/dist/src/vite/compositionCheck.js +243 -0
  560. package/dist/src/vite/config.d.ts +67 -1
  561. package/dist/src/vite/configFile.d.ts +15 -2
  562. package/dist/src/vite/configFile.js +109 -40
  563. package/dist/src/vite/configKeys.d.ts +15 -0
  564. package/dist/src/vite/configKeys.js +172 -0
  565. package/dist/src/vite/configLoadError.d.ts +23 -0
  566. package/dist/src/vite/configLoadError.js +71 -0
  567. package/dist/src/vite/cssDeclarations.d.ts +71 -0
  568. package/dist/src/vite/cssDeclarations.js +290 -0
  569. package/dist/src/vite/cssImports.d.ts +14 -0
  570. package/dist/src/vite/cssImports.js +48 -0
  571. package/dist/src/vite/cssReferences.d.ts +54 -0
  572. package/dist/src/vite/cssReferences.js +157 -0
  573. package/dist/src/vite/cssTokenValues.d.ts +50 -0
  574. package/dist/src/vite/cssTokenValues.js +233 -0
  575. package/dist/src/vite/designTokens.d.ts +24 -0
  576. package/dist/src/vite/designTokens.js +5 -1
  577. package/dist/src/vite/docsExtractor.d.ts +9 -3
  578. package/dist/src/vite/docsExtractor.js +11 -3
  579. package/dist/src/vite/docsProgram.d.ts +17 -4
  580. package/dist/src/vite/docsProgram.js +52 -11
  581. package/dist/src/vite/docsWorker.js +7 -2
  582. package/dist/src/vite/emptyStoryGlobs.d.ts +41 -0
  583. package/dist/src/vite/emptyStoryGlobs.js +52 -0
  584. package/dist/src/vite/fileImports.d.ts +17 -0
  585. package/dist/src/vite/fileImports.js +57 -0
  586. package/dist/src/vite/findComponent.d.ts +10 -2
  587. package/dist/src/vite/findComponent.js +27 -22
  588. package/dist/src/vite/findRoute.js +3 -2
  589. package/dist/src/vite/forcedStates.d.ts +9 -2
  590. package/dist/src/vite/forcedStates.js +12 -3
  591. package/dist/src/vite/forgebookPlugin.d.ts +2 -0
  592. package/dist/src/vite/forgebookPlugin.js +55 -73
  593. package/dist/src/vite/frameErrors.d.ts +19 -0
  594. package/dist/src/vite/frameErrors.js +70 -0
  595. package/dist/src/vite/framesServer.d.ts +12 -0
  596. package/dist/src/vite/framesServer.js +21 -4
  597. package/dist/src/vite/functionComponentDocs.js +81 -12
  598. package/dist/src/vite/generatedModules.js +4 -2
  599. package/dist/src/vite/gitChange.d.ts +38 -5
  600. package/dist/src/vite/gitChange.js +71 -11
  601. package/dist/src/vite/hiddenStoryFiles.d.ts +23 -0
  602. package/dist/src/vite/hiddenStoryFiles.js +107 -0
  603. package/dist/src/vite/hotSnippets.d.ts +38 -14
  604. package/dist/src/vite/hotSnippets.js +137 -39
  605. package/dist/src/vite/importedNames.d.ts +37 -0
  606. package/dist/src/vite/importedNames.js +138 -0
  607. package/dist/src/vite/indexFields.d.ts +6 -0
  608. package/dist/src/vite/indexFields.js +21 -0
  609. package/dist/src/vite/indexStoryFile.d.ts +8 -1
  610. package/dist/src/vite/indexStoryFile.js +22 -157
  611. package/dist/src/vite/jsxCallSites.d.ts +33 -0
  612. package/dist/src/vite/jsxCallSites.js +200 -0
  613. package/dist/src/vite/jsxInScripts.d.ts +67 -0
  614. package/dist/src/vite/jsxInScripts.js +138 -0
  615. package/dist/src/vite/jsxTree.d.ts +20 -0
  616. package/dist/src/vite/jsxTree.js +163 -0
  617. package/dist/src/vite/lineAndColumn.d.ts +13 -0
  618. package/dist/src/vite/lineAndColumn.js +18 -0
  619. package/dist/src/vite/lookAlikes.d.ts +65 -0
  620. package/dist/src/vite/lookAlikes.js +228 -0
  621. package/dist/src/vite/nearestToken.d.ts +17 -0
  622. package/dist/src/vite/nearestToken.js +9 -2
  623. package/dist/src/vite/packageEntries.d.ts +42 -0
  624. package/dist/src/vite/packageEntries.js +127 -0
  625. package/dist/src/vite/pages.d.ts +9 -1
  626. package/dist/src/vite/pages.js +119 -4
  627. package/dist/src/vite/pluginConfig.js +4 -0
  628. package/dist/src/vite/pluginIds.d.ts +2 -0
  629. package/dist/src/vite/pluginIds.js +5 -1
  630. package/dist/src/vite/pluginModules.d.ts +81 -11
  631. package/dist/src/vite/pluginModules.js +109 -21
  632. package/dist/src/vite/prebundled.d.ts +57 -15
  633. package/dist/src/vite/prebundled.js +80 -0
  634. package/dist/src/vite/previewTags.d.ts +25 -0
  635. package/dist/src/vite/previewTags.js +56 -0
  636. package/dist/src/vite/projectFiles.d.ts +54 -0
  637. package/dist/src/vite/projectFiles.js +116 -0
  638. package/dist/src/vite/projectPostcss.d.ts +70 -0
  639. package/dist/src/vite/projectPostcss.js +250 -0
  640. package/dist/src/vite/propDocs.d.ts +12 -0
  641. package/dist/src/vite/propDocs.js +187 -60
  642. package/dist/src/vite/propKind.d.ts +40 -0
  643. package/dist/src/vite/propKind.js +71 -0
  644. package/dist/src/vite/propTypeNotes.d.ts +22 -0
  645. package/dist/src/vite/propTypeNotes.js +51 -0
  646. package/dist/src/vite/publishedExports.d.ts +27 -0
  647. package/dist/src/vite/publishedExports.js +298 -0
  648. package/dist/src/vite/realFolder.d.ts +6 -0
  649. package/dist/src/vite/realFolder.js +25 -0
  650. package/dist/src/vite/refsConfig.d.ts +39 -0
  651. package/dist/src/vite/refsConfig.js +54 -0
  652. package/dist/src/vite/reuseCheck.d.ts +45 -0
  653. package/dist/src/vite/reuseCheck.js +260 -0
  654. package/dist/src/vite/runningVersions.d.ts +33 -0
  655. package/dist/src/vite/runningVersions.js +25 -0
  656. package/dist/src/vite/scriptProblems.d.ts +60 -0
  657. package/dist/src/vite/scriptProblems.js +155 -0
  658. package/dist/src/vite/searchModule.js +3 -2
  659. package/dist/src/vite/searchRoute.js +4 -2
  660. package/dist/src/vite/shapeDocs.d.ts +36 -0
  661. package/dist/src/vite/shapeDocs.js +177 -0
  662. package/dist/src/vite/singleFileComponent.d.ts +17 -0
  663. package/dist/src/vite/singleFileComponent.js +83 -0
  664. package/dist/src/vite/sourceText.d.ts +34 -0
  665. package/dist/src/vite/sourceText.js +72 -0
  666. package/dist/src/vite/sourceTokens.d.ts +7 -0
  667. package/dist/src/vite/sourceTokens.js +7 -2
  668. package/dist/src/vite/stackLines.d.ts +49 -0
  669. package/dist/src/vite/stackLines.js +96 -0
  670. package/dist/src/vite/storyCode.d.ts +22 -7
  671. package/dist/src/vite/storyCode.js +263 -37
  672. package/dist/src/vite/storyCoverage.d.ts +48 -0
  673. package/dist/src/vite/storyCoverage.js +179 -0
  674. package/dist/src/vite/storyFilesModule.d.ts +48 -3
  675. package/dist/src/vite/storyFilesModule.js +105 -15
  676. package/dist/src/vite/storyPatterns.d.ts +31 -0
  677. package/dist/src/vite/storyPatterns.js +140 -5
  678. package/dist/src/vite/storyReach.d.ts +10 -2
  679. package/dist/src/vite/storyReach.js +15 -11
  680. package/dist/src/vite/storyTopLevel.d.ts +51 -0
  681. package/dist/src/vite/storyTopLevel.js +146 -0
  682. package/dist/src/vite/storylessRoutes.d.ts +4 -3
  683. package/dist/src/vite/storylessRoutes.js +210 -19
  684. package/dist/src/vite/switchValuesCheck.d.ts +19 -0
  685. package/dist/src/vite/switchValuesCheck.js +164 -0
  686. package/dist/src/vite/switchesDocument.d.ts +15 -0
  687. package/dist/src/vite/switchesDocument.js +47 -0
  688. package/dist/src/vite/tailwindConfigTokens.d.ts +41 -0
  689. package/dist/src/vite/tailwindConfigTokens.js +306 -0
  690. package/dist/src/vite/textImports.d.ts +15 -0
  691. package/dist/src/vite/textImports.js +58 -0
  692. package/dist/src/vite/textModules.d.ts +6 -5
  693. package/dist/src/vite/textModules.js +13 -8
  694. package/dist/src/vite/tokenAnswers.d.ts +6 -2
  695. package/dist/src/vite/tokenAnswers.js +11 -7
  696. package/dist/src/vite/typeParameters.d.ts +83 -0
  697. package/dist/src/vite/typeParameters.js +270 -0
  698. package/dist/src/vite/typedControls.d.ts +31 -0
  699. package/dist/src/vite/typedControls.js +66 -0
  700. package/dist/src/vite/unionProps.d.ts +37 -0
  701. package/dist/src/vite/unionProps.js +121 -0
  702. package/dist/src/vite/unresolvedTokens.d.ts +20 -0
  703. package/dist/src/vite/unresolvedTokens.js +193 -0
  704. package/dist/src/vite/usageGraph.js +10 -52
  705. package/dist/src/vite/usageGuidance.d.ts +9 -2
  706. package/dist/src/vite/usageGuidance.js +36 -8
  707. package/dist/src/vite/usageImports.d.ts +35 -0
  708. package/dist/src/vite/usageImports.js +280 -0
  709. package/dist/src/vite/visibilityRoute.d.ts +16 -0
  710. package/dist/src/vite/visibilityRoute.js +320 -0
  711. package/dist/src/worstCase.d.ts +2 -0
  712. package/dist/src/worstCase.js +2 -0
  713. package/package.json +28 -8
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Which of a project's components look like the same one.
3
+ *
4
+ * @remarks
5
+ * Pure. A name alone says little (every feature has a `Header`), so it takes a second sign (a telling root, shared props,
6
+ * the same classes) to call two alike; and a component that renders the other is built on it, which is what reuse looks
7
+ * like.
8
+ *
9
+ * @module
10
+ */
11
+ import type { ScannedComponent } from "./componentScan.ts";
12
+ /** Two or more components that look like one. */
13
+ export type LookAlike = {
14
+ /** How sure this is: `high` has two signs beyond the name, or a name and a look. */
15
+ readonly confidence: "high" | "medium";
16
+ /** What they have in common. */
17
+ readonly why: string;
18
+ /** The components. */
19
+ readonly members: readonly Pick<ScannedComponent, "name" | "file" | "line">[];
20
+ };
21
+ /**
22
+ * The sign of a copy, the surest there is, so it counts twice.
23
+ */
24
+ export declare const SAME_CODE = "the same code";
25
+ /**
26
+ * What a component's name says it is, without the words for which of a kind it is.
27
+ *
28
+ * @param name - its name.
29
+ */
30
+ export declare const stemOf: (name: string) => string;
31
+ /**
32
+ * What two components have in common, each a sign they are one.
33
+ *
34
+ * @param first - one.
35
+ * @param second - the other.
36
+ */
37
+ export declare const signsBetween: (first: ScannedComponent, second: ScannedComponent) => string[];
38
+ /**
39
+ * Whether a component of a name renders by hand the element a component of that name exists for: an agent's way of
40
+ * rebuilding one, whatever the other's root (often a slot this cannot read) and props.
41
+ *
42
+ * @param added - the new one.
43
+ * @param stem - what both names say they are.
44
+ */
45
+ export declare const isRebuilt: (added: ScannedComponent, stem: string) => boolean;
46
+ /**
47
+ * Whether one is built on the other: reuse, not a copy.
48
+ *
49
+ * @param first - one.
50
+ * @param second - the other.
51
+ */
52
+ export declare const isBuiltOn: (first: ScannedComponent, second: ScannedComponent) => boolean;
53
+ /**
54
+ * Whether a component is one to share: a screen is one of a kind, however alike its layout.
55
+ *
56
+ * @param component - the component.
57
+ */
58
+ export declare const isShareable: ({ file, name }: Pick<ScannedComponent, "file" | "name">) => boolean;
59
+ /**
60
+ * The components that look like one: first by name, then by look across names. Screens are left out: each is one of a
61
+ * kind, however alike their layouts.
62
+ *
63
+ * @param components - every component of the project.
64
+ */
65
+ export declare const lookAlikes: (components: readonly ScannedComponent[]) => LookAlike[];
@@ -0,0 +1,228 @@
1
+ /** Words around a name that say which of a kind it is, and not what kind. */
2
+ const VARIANT_WORD = /^(?:Primary|Secondary|Tertiary|Base|Custom|Styled|My|App|New|Old|Legacy|Simple|Default|Main|Ui|UI|Shared|Common|Core|Basic|Generic|Global|Small|Large|Big|V\d+)$/;
3
+ /** Names of one thing, in the words code uses. */
4
+ const SAME_THING = {
5
+ Btn: "Button",
6
+ Modal: "Dialog",
7
+ Popup: "Dialog",
8
+ Spinner: "Loader",
9
+ Pill: "Badge",
10
+ Chip: "Badge",
11
+ Textbox: "Input",
12
+ TextField: "Input",
13
+ TextInput: "Input",
14
+ Dropdown: "Select",
15
+ Snackbar: "Toast"
16
+ };
17
+ /** Names so general, or given by a framework's convention, that two of them have nothing to do with each other. */
18
+ const GENERAL_NAME = /^(?:App|Page|Layout|Root|Loading|Error|NotFound|Template|Default|Index|Home|Main|Provider|Providers|Wrapper|Container|Content|Header|Footer|Item|Row|Icon|Form|Title|Label|Link|Section|Component|Body|View|Screen|List|Logo)$/;
19
+ /** A file that is a route or an entry, whose component is the screen and not something to share. */
20
+ const ROUTE_FILE = /(?:^|\/)(?:page|layout|route|loading|error|not-found|template|default|_app|_document|\+page|\+layout|\+error)\.[^/]+$|(?:^|\/)(?:routes|pages|screens|views)\//;
21
+ /** A name that says it is a screen or a framework's hook into one. */
22
+ const SCREEN_NAME = /(?:Page|Layout|Screen|View|Boundary|Fallback|Route)$/;
23
+ /** What every component may render at its root, which says nothing of what it is; a project's component is reuse. */
24
+ const TELLING_ROOT = /^(?:button|a|input|select|textarea|label|dialog|table|nav|form|img|ul|ol|progress|meter)$/;
25
+ /** The roots whose look alone tells two components are one: what a person presses or fills in. */
26
+ const CONTROL_ROOT = /^(?:button|a|input|select|textarea|label)$/;
27
+ /** Props every component takes, which say nothing of what it is. */
28
+ const UNTELLING_PROPS = new Set([
29
+ "children",
30
+ "className",
31
+ "class",
32
+ "style",
33
+ "id",
34
+ "ref",
35
+ "key",
36
+ "props",
37
+ "slot"
38
+ ]);
39
+ /**
40
+ * The sign of a copy, the surest there is, so it counts twice.
41
+ */
42
+ export const SAME_CODE = "the same code";
43
+ /** The sign of two components with one look. */
44
+ const SAME_CLASSES = "nearly the same classes";
45
+ /** How much two lists of classes share, to read as one look. */
46
+ const SAME_LOOK = 0.7;
47
+ /** Fewer classes than this say nothing of a look. */
48
+ const FEWEST_CLASSES = 4;
49
+ /** How many controls are compared by look, each with each: more are left out rather than let a report take minutes. */
50
+ const MOST_COMPARED = 2000;
51
+ /** How many components of one name are compared: past this they are a convention, not copies. */
52
+ const MOST_OF_A_NAME = 60;
53
+ /** Fewer shared props than this are a coincidence. */
54
+ const FEWEST_PROPS = 2;
55
+ /**
56
+ * What a component's name says it is, without the words for which of a kind it is.
57
+ *
58
+ * @param name - its name.
59
+ */
60
+ export const stemOf = (name) => {
61
+ const words = name.match(/[A-Z]+(?![a-z])|[A-Z][a-z0-9]*|[a-z0-9]+/g) ?? [name];
62
+ const told = words.filter((word, index) => !(VARIANT_WORD.test(word) && words.length > 1 && index < words.length));
63
+ const kept = told.length === 0 ? words : told;
64
+ const whole = kept.join("");
65
+ const last = kept.at(-1) ?? "";
66
+ return SAME_THING[whole] ?? [...kept.slice(0, -1), SAME_THING[last] ?? last].join("");
67
+ };
68
+ /** How much two lists have in common, from 0 to 1. */
69
+ const overlap = (first, second) => {
70
+ const [a, b] = [new Set(first), new Set(second)];
71
+ const shared = [...a].filter((each) => b.has(each)).length;
72
+ return a.size + b.size === 0 ? 0 : shared / (a.size + b.size - shared);
73
+ };
74
+ /**
75
+ * What two components have in common, each a sign they are one.
76
+ *
77
+ * @param first - one.
78
+ * @param second - the other.
79
+ */
80
+ export const signsBetween = (first, second) => {
81
+ const shared = first.props.filter((prop) => !UNTELLING_PROPS.has(prop) && second.props.includes(prop));
82
+ const hasSameLook = first.classes.length >= FEWEST_CLASSES &&
83
+ second.classes.length >= FEWEST_CLASSES &&
84
+ overlap(first.classes, second.classes) >= SAME_LOOK;
85
+ return [
86
+ ...(first.code !== undefined && first.code === second.code ? [SAME_CODE, SAME_CODE] : []),
87
+ ...(first.root !== undefined && first.root === second.root && TELLING_ROOT.test(first.root)
88
+ ? [`both render ${first.root}`]
89
+ : []),
90
+ ...(shared.length >= FEWEST_PROPS ? [`both take ${shared.slice(0, 4).join(", ")}`] : []),
91
+ ...(hasSameLook ? [SAME_CLASSES] : [])
92
+ ];
93
+ };
94
+ /** What a name's last word says it would render, for what a person presses or fills in. */
95
+ const NATIVE_OF = {
96
+ Button: "button",
97
+ Input: "input",
98
+ Select: "select",
99
+ Textarea: "textarea",
100
+ Link: "a",
101
+ Dialog: "dialog"
102
+ };
103
+ /**
104
+ * Whether a component of a name renders by hand the element a component of that name exists for: an agent's way of
105
+ * rebuilding one, whatever the other's root (often a slot this cannot read) and props.
106
+ *
107
+ * @param added - the new one.
108
+ * @param stem - what both names say they are.
109
+ */
110
+ export const isRebuilt = (added, stem) => {
111
+ const last = stem.match(/[A-Z][a-z0-9]*/g)?.at(-1) ?? stem;
112
+ const native = NATIVE_OF[stem];
113
+ return stem === last && native !== undefined && added.root === native;
114
+ };
115
+ /**
116
+ * Whether one is built on the other: reuse, not a copy.
117
+ *
118
+ * @param first - one.
119
+ * @param second - the other.
120
+ */
121
+ export const isBuiltOn = (first, second) => first.renders.includes(second.name) || second.renders.includes(first.name);
122
+ /**
123
+ * Whether a component is one to share: a screen is one of a kind, however alike its layout.
124
+ *
125
+ * @param component - the component.
126
+ */
127
+ export const isShareable = ({ file, name }) => !ROUTE_FILE.test(file) && !SCREEN_NAME.test(name);
128
+ /** Joins pairs that share a component into groups. */
129
+ const joined = (pairs) => {
130
+ const parents = new Map();
131
+ const rootOfGroup = (each) => {
132
+ let root = each;
133
+ for (let parent = parents.get(root); parent !== undefined; parent = parents.get(root))
134
+ root = parent;
135
+ if (root !== each)
136
+ parents.set(each, root);
137
+ return root;
138
+ };
139
+ const members = new Set(pairs.flat());
140
+ for (const [first, second] of pairs) {
141
+ const [one, two] = [rootOfGroup(first), rootOfGroup(second)];
142
+ if (one !== two)
143
+ parents.set(one, two);
144
+ }
145
+ const groups = new Map();
146
+ for (const each of members) {
147
+ const root = rootOfGroup(each);
148
+ groups.set(root, [...(groups.get(root) ?? []), each]);
149
+ }
150
+ return [...groups.values()];
151
+ };
152
+ /** The groups of one name whose members have signs of being one, any member against any other. */
153
+ const groupsOfName = (stem, members) => {
154
+ const pairs = members.slice(0, MOST_OF_A_NAME).flatMap((first, index) => members.slice(index + 1, MOST_OF_A_NAME).flatMap((second) => {
155
+ if (first.file === second.file || isBuiltOn(first, second))
156
+ return [];
157
+ const signs = signsBetween(first, second);
158
+ // a general name with one thing in common is two things that happen to share a word
159
+ return signs.length >= (GENERAL_NAME.test(stem) ? 2 : 1) ? [[first, second]] : [];
160
+ }));
161
+ return joined(pairs).map((group) => {
162
+ const signs = [
163
+ ...new Set(group.flatMap((one, index) => group.slice(index + 1).flatMap((two) => signsBetween(one, two))))
164
+ ];
165
+ return {
166
+ confidence: signs.length >= 2 || signs.includes(SAME_CODE) ? "high" : "medium",
167
+ why: `named alike (${stem}): ${signs.join(", ")}`,
168
+ members: group.map(({ name, file, line }) => ({ name, file, line }))
169
+ };
170
+ });
171
+ };
172
+ /** Controls that look alike whatever they are called: the same element, with nearly the same classes and the same props. */
173
+ const groupsByLook = (components) => {
174
+ const pairs = components.flatMap((first, index) => components.slice(index + 1).flatMap((second) => {
175
+ if (first.file === second.file || isBuiltOn(first, second))
176
+ return [];
177
+ const isSameLook = first.root === second.root && signsBetween(first, second).includes(SAME_CLASSES);
178
+ return isSameLook ? [[first, second]] : [];
179
+ }));
180
+ return joined(pairs).map((members) => ({
181
+ confidence: "medium",
182
+ why: `all render ${members[0]?.root ?? "the same"}, with nearly the same classes`,
183
+ members: members.map(({ name, file, line }) => ({ name, file, line }))
184
+ }));
185
+ };
186
+ /** Copies under other names: nothing but the code tells them, and that is enough. */
187
+ const groupsByCode = (components, inGroup) => {
188
+ const byCode = new Map();
189
+ for (const each of components) {
190
+ if (each.code !== undefined && !inGroup.has(`${each.file}\0${each.name}`)) {
191
+ byCode.set(each.code, [...(byCode.get(each.code) ?? []), each]);
192
+ }
193
+ }
194
+ return [...byCode.values()].flatMap((members) => {
195
+ const files = new Set(members.map(({ file }) => file));
196
+ return files.size < 2
197
+ ? []
198
+ : [
199
+ {
200
+ confidence: "high",
201
+ why: SAME_CODE,
202
+ members: members.map(({ name, file, line }) => ({ name, file, line }))
203
+ }
204
+ ];
205
+ });
206
+ };
207
+ /**
208
+ * The components that look like one: first by name, then by look across names. Screens are left out: each is one of a
209
+ * kind, however alike their layouts.
210
+ *
211
+ * @param components - every component of the project.
212
+ */
213
+ export const lookAlikes = (components) => {
214
+ const shareable = components.filter(isShareable);
215
+ const byStem = new Map();
216
+ for (const each of shareable) {
217
+ const stem = stemOf(each.name);
218
+ byStem.set(stem, [...(byStem.get(stem) ?? []), each]);
219
+ }
220
+ const named = [...byStem].flatMap(([stem, members]) => groupsOfName(stem, members));
221
+ const inGroup = new Set(named.flatMap(({ members }) => members.map(({ file, name }) => `${file}\0${name}`)));
222
+ const looked = shareable
223
+ .filter((each) => CONTROL_ROOT.test(each.root ?? "") &&
224
+ each.classes.length >= FEWEST_CLASSES &&
225
+ !inGroup.has(`${each.file}\0${each.name}`))
226
+ .slice(0, MOST_COMPARED);
227
+ return [...named, ...groupsByLook(looked), ...groupsByCode(shareable, inGroup)].toSorted((first, second) => Number(first.confidence === "medium") - Number(second.confidence === "medium"));
228
+ };
@@ -40,6 +40,23 @@ export type NearestTokens = {
40
40
  /** Why the question could not be answered: the value or the type could not be read. */
41
41
  readonly reason?: string;
42
42
  };
43
+ /** A colour in Oklab, with its alpha. */
44
+ export type OklabColor = {
45
+ /** Its lightness, from 0 to 1. */
46
+ readonly l: number;
47
+ /** How far from green to red. */
48
+ readonly a: number;
49
+ /** How far from blue to yellow. */
50
+ readonly b: number;
51
+ /** Its opacity, from 0 to 1. */
52
+ readonly alpha: number;
53
+ };
54
+ /**
55
+ * A colour as CSS writes it, in Oklab; none for what cannot be read. Keywords beyond these three carry no design.
56
+ *
57
+ * @param written - the colour, as code writes it.
58
+ */
59
+ export declare const parsedColor: (written: string) => OklabColor | undefined;
43
60
  /**
44
61
  * The tokens nearest a value, nearest first. Deprecated tokens are left out: code must not move onto one.
45
62
  *
@@ -131,6 +131,9 @@ const functionColor = (text) => {
131
131
  if (call === undefined)
132
132
  return undefined;
133
133
  const { name, parts, alpha } = call;
134
+ // more channels than a colour has is text that happens to start like one
135
+ if (parts.length > (name === "color" ? 4 : 3))
136
+ return undefined;
134
137
  const [first = "", second = "", third = "", fourth = ""] = parts;
135
138
  const fromRgb = () => fromSrgb(percentOf(first, 255) / 255, percentOf(second, 255) / 255, percentOf(third, 255) / 255, alpha);
136
139
  const fromHsl = () => {
@@ -155,8 +158,12 @@ const functionColor = (text) => {
155
158
  };
156
159
  return convert[name]?.();
157
160
  };
158
- /** A colour as CSS writes it, in Oklab; none for what cannot be read. Keywords beyond these three carry no design. */
159
- const parsedColor = (written) => {
161
+ /**
162
+ * A colour as CSS writes it, in Oklab; none for what cannot be read. Keywords beyond these three carry no design.
163
+ *
164
+ * @param written - the colour, as code writes it.
165
+ */
166
+ export const parsedColor = (written) => {
160
167
  const text = written.trim().toLowerCase();
161
168
  if (text === "transparent")
162
169
  return fromSrgb(0, 0, 0, 0);
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Which source files a package publishes: its manifest's entries, led back from the build they name to the file they
3
+ * are built from.
4
+ *
5
+ * @remarks
6
+ * Pure. A manifest names what is built (`./dist/index.js`), which a fresh clone does not hold and an agent never reads, so
7
+ * each entry is looked for under `src` by what is left of its path once the build's folders are taken off, the longest
8
+ * rest first (`dist/esm/button/index.js` is `src/dist/esm/button/index`, then `src/esm/button/index`, then `src/button/index`, each
9
+ * under `src/js` too, where a JavaScript library may keep its sources). What cannot be led back is
10
+ * named, and never read as a package with nothing in it. A private package counts only when it has an entry to
11
+ * import: a workspace's shared library is published to its neighbours, while an application or a monorepo's root is not.
12
+ *
13
+ * @module
14
+ */
15
+ /** What a package publishes. */
16
+ export type PackageEntries = {
17
+ /** The entries' source files, absolute. */
18
+ readonly entries: readonly string[];
19
+ /** The entries that could not be led back to a source, as the manifest writes them. */
20
+ readonly unread: readonly string[];
21
+ };
22
+ /** What `packageEntries` asks of the disk. */
23
+ export type EntryDisk = {
24
+ /** Whether a file exists, by its absolute path. */
25
+ readonly exists: (file: string) => boolean;
26
+ /** Every file under a folder, absolute; none when it does not exist. */
27
+ readonly filesUnder: (folder: string) => readonly string[];
28
+ };
29
+ /**
30
+ * Whether a package publishes anything: public, or private with an entry its neighbours import.
31
+ *
32
+ * @param manifest - the package's manifest.
33
+ */
34
+ export declare const isPublished: (manifest: unknown) => boolean;
35
+ /**
36
+ * What a package publishes, as source files.
37
+ *
38
+ * @param manifest - the package's manifest.
39
+ * @param dir - its folder, absolute, with no trailing slash.
40
+ * @param disk - what is asked of the disk.
41
+ */
42
+ export declare const packageEntries: (manifest: unknown, dir: string, disk: EntryDisk) => PackageEntries;
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Which source files a package publishes: its manifest's entries, led back from the build they name to the file they
3
+ * are built from.
4
+ *
5
+ * @remarks
6
+ * Pure. A manifest names what is built (`./dist/index.js`), which a fresh clone does not hold and an agent never reads, so
7
+ * each entry is looked for under `src` by what is left of its path once the build's folders are taken off, the longest
8
+ * rest first (`dist/esm/button/index.js` is `src/dist/esm/button/index`, then `src/esm/button/index`, then `src/button/index`, each
9
+ * under `src/js` too, where a JavaScript library may keep its sources). What cannot be led back is
10
+ * named, and never read as a package with nothing in it. A private package counts only when it has an entry to
11
+ * import: a workspace's shared library is published to its neighbours, while an application or a monorepo's root is not.
12
+ *
13
+ * @module
14
+ */
15
+ /** The extensions an entry's source may have, the likeliest first. */
16
+ const SOURCE_EXTENSIONS = [".ts", ".tsx", ".mts", ".jsx", ".js", ".mjs", ".vue", ".svelte"];
17
+ /** A file a manifest may name that has no components to follow. */
18
+ const NOT_CODE = /\.(?:css|scss|sass|less|json|svg|png|d\.[cm]?ts|map)$/;
19
+ /** A file a pattern's folder holds that no one imports from the package: its stories and tests. */
20
+ const NOT_PUBLISHED = /\.(?:stories|test|spec)\.[^/]+$|(?:^|\/)__(?:tests|stories|mocks)__\//;
21
+ /** A file that is written by hand wherever it sits: a JavaScript file may be a build's. */
22
+ const WRITTEN_SOURCE = /\.(?:[cm]?tsx?|jsx|vue|svelte)$/;
23
+ /** Whether a value is a plain object. */
24
+ const isManifest = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
25
+ /** Every path an `exports` value leads to, whatever its conditions. */
26
+ const exportTargets = (value) => {
27
+ if (typeof value === "string")
28
+ return [value];
29
+ if (Array.isArray(value))
30
+ return value.flatMap(exportTargets);
31
+ return isManifest(value) ? Object.values(value).flatMap(exportTargets) : [];
32
+ };
33
+ /**
34
+ * The paths a manifest names, with no duplicates. A path climbing out of the package is left to be named as unread: Node
35
+ * refuses one, and following it would read what the repository does not hold.
36
+ */
37
+ const namedPaths = (manifest) => {
38
+ const fields = [manifest["source"], manifest["svelte"], manifest["module"], manifest["main"]].filter((each) => typeof each === "string");
39
+ return [...new Set([...exportTargets(manifest["exports"]), ...fields])].filter((each) => !NOT_CODE.test(each));
40
+ };
41
+ /** Whether a path a manifest names climbs out of its package. */
42
+ const climbsOut = (path) => path.split("/").includes("..");
43
+ /**
44
+ * Whether a package publishes anything: public, or private with an entry its neighbours import.
45
+ *
46
+ * @param manifest - the package's manifest.
47
+ */
48
+ export const isPublished = (manifest) => {
49
+ if (!isManifest(manifest) || typeof manifest["name"] !== "string")
50
+ return false;
51
+ if (manifest["private"] !== true)
52
+ return true;
53
+ return manifest["exports"] !== undefined || manifest["source"] !== undefined;
54
+ };
55
+ /** A path's folders and its name without its extension. */
56
+ const withoutExtension = (path) => path.replace(/^\.\//, "").replace(/\.[cm]?[jt]sx?$/, "");
57
+ /** The first source file a path with no extension is, as a file or a folder's index. */
58
+ const sourceAt = (bare, exists) => {
59
+ for (const form of [bare, `${bare}/index`]) {
60
+ for (const extension of SOURCE_EXTENSIONS) {
61
+ if (exists(`${form}${extension}`))
62
+ return `${form}${extension}`;
63
+ }
64
+ }
65
+ return undefined;
66
+ };
67
+ /** The source of a built path: under `src`, by the longest rest of the path that is there. */
68
+ const builtFrom = (path, dir, exists) => {
69
+ const parts = withoutExtension(path).split("/");
70
+ for (let start = 0; start < parts.length; start += 1) {
71
+ const rest = parts.slice(start).join("/");
72
+ const found = sourceAt(`${dir}/src/${rest}`, exists) ?? sourceAt(`${dir}/src/js/${rest}`, exists);
73
+ if (found !== undefined)
74
+ return found;
75
+ }
76
+ return undefined;
77
+ };
78
+ /** The sources a `./dist/*.js` pattern stands for: every source under the folder the pattern's start leads to. */
79
+ const patternSources = (path, dir, disk) => {
80
+ const [start = ""] = path.split("*");
81
+ const parts = start.replace(/^\.\//, "").split("/").slice(0, -1);
82
+ for (let from = 0; from <= parts.length; from += 1) {
83
+ const rest = parts.slice(from).join("/");
84
+ const folder = from === 0 ? `${dir}/${rest}` : `${dir}/src${rest === "" ? "" : `/${rest}`}`;
85
+ const inSource = disk.filesUnder(folder);
86
+ const sources = inSource.filter((file) => WRITTEN_SOURCE.test(file) && !NOT_CODE.test(file) && !NOT_PUBLISHED.test(file));
87
+ if (sources.length > 0)
88
+ return sources;
89
+ }
90
+ return [];
91
+ };
92
+ /** The sources one path a manifest names stands for: none when it cannot be led back. */
93
+ const sourcesOf = (path, dir, disk) => {
94
+ if (climbsOut(path))
95
+ return [];
96
+ if (path.includes("*"))
97
+ return patternSources(path, dir, disk);
98
+ const named = `${dir}/${path.replace(/^\.\//, "")}`;
99
+ if (disk.exists(named) && WRITTEN_SOURCE.test(named))
100
+ return [named];
101
+ const built = builtFrom(path, dir, disk.exists);
102
+ if (built !== undefined)
103
+ return [built];
104
+ return disk.exists(named) ? [named] : [];
105
+ };
106
+ /**
107
+ * What a package publishes, as source files.
108
+ *
109
+ * @param manifest - the package's manifest.
110
+ * @param dir - its folder, absolute, with no trailing slash.
111
+ * @param disk - what is asked of the disk.
112
+ */
113
+ export const packageEntries = (manifest, dir, disk) => {
114
+ if (!isManifest(manifest))
115
+ return { entries: [], unread: [] };
116
+ const paths = namedPaths(manifest);
117
+ // a manifest with no entries at all means an index, as Node reads it
118
+ if (paths.length === 0) {
119
+ const index = sourceAt(`${dir}/src/index`, disk.exists) ?? sourceAt(`${dir}/index`, disk.exists);
120
+ return { entries: index === undefined ? [] : [index], unread: [] };
121
+ }
122
+ const found = paths.map((path) => ({ path, sources: sourcesOf(path, dir, disk) }));
123
+ return {
124
+ entries: [...new Set(found.flatMap(({ sources }) => sources))],
125
+ unread: found.filter(({ sources }) => sources.length === 0).map(({ path }) => path)
126
+ };
127
+ };
@@ -9,6 +9,8 @@ export type PageFile = (typeof PAGE_FILES)[number];
9
9
  export declare const CONFIG_MODULE = "virtual:forgebook/config";
10
10
  /** The module the shell reads the design tokens from, imported on first use: a page that shows none never loads it. */
11
11
  export declare const TOKENS_MODULE = "virtual:forgebook/tokens";
12
+ /** The previews of the catalogue's galleries, with each picture's address: loaded when a gallery first opens. */
13
+ export declare const SWITCH_PREVIEWS_MODULE = "virtual:forgebook/switch-previews";
12
14
  /**
13
15
  * The entries the pages load, by page: file names in the configuration's folder, never written to disk. Named as
14
16
  * files rather than virtual modules because the build names a page's chunk and its style sheet after its entry, and a
@@ -59,13 +61,19 @@ export declare const pageModuleOf: (path: string, dir: string, paths?: VitePaths
59
61
  * @param placement - where the frames run, which the frame's load guard tells its errors by.
60
62
  */
61
63
  export declare const pageHtml: (page: PageFile, config: ResolvedConfig, placement: FramesPlacement) => string;
64
+ /**
65
+ * The module of the galleries' previews: by switch id then value, with each picture's address.
66
+ *
67
+ * @param config - the configuration.
68
+ */
69
+ export declare const switchPreviewsModule: (config: Pick<ResolvedConfig, "switches">) => string;
62
70
  /**
63
71
  * The configuration's data, as the pages' module exports it.
64
72
  *
65
73
  * @param config - the configuration.
66
74
  * @param frames - where the frames run: known on the dev server once both of its ports listen.
67
75
  */
68
- export declare const configModule: (config: ResolvedConfig, frames: FramesPlacement) => string;
76
+ export declare const configModule: (config: Pick<ResolvedConfig, "title" | "heights" | "switches" | "stories" | "languages" | "lists">, frames: FramesPlacement, isServing: boolean) => string;
69
77
  /** The module the entry loads the written home's view from, on first use. */
70
78
  export declare const WRITTEN_HOME_MODULE = "forgebook/shell/home";
71
79
  /** The module the entry loads the code that draws the plugins' views from, on first use. */