forgebook 0.1.7 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1114) hide show
  1. package/README.md +906 -23
  2. package/dist/bin/forgebook/agentClient.d.ts +30 -1
  3. package/dist/bin/forgebook/agentClient.js +155 -14
  4. package/dist/bin/forgebook/agentLoopCommands.d.mts +0 -1
  5. package/dist/bin/forgebook/agentLoopCommands.mjs +161 -40
  6. package/dist/bin/forgebook/agentText.d.ts +74 -3
  7. package/dist/bin/forgebook/agentText.js +192 -8
  8. package/dist/bin/forgebook/agents.md +145 -7
  9. package/dist/bin/forgebook/agentsText.d.ts +7 -3
  10. package/dist/bin/forgebook/agentsText.js +7 -3
  11. package/dist/bin/forgebook/builtCatalogue.d.ts +31 -0
  12. package/dist/bin/forgebook/builtCatalogue.js +96 -0
  13. package/dist/bin/forgebook/catalogueCommands.d.ts +22 -3
  14. package/dist/bin/forgebook/catalogueCommands.js +21 -2
  15. package/dist/bin/forgebook/catalogueVite.d.ts +51 -9
  16. package/dist/bin/forgebook/catalogueVite.js +95 -9
  17. package/dist/bin/forgebook/checkCodeRun.d.ts +8 -0
  18. package/dist/bin/forgebook/checkCodeRun.js +27 -0
  19. package/dist/bin/forgebook/commandServer.d.ts +11 -0
  20. package/dist/bin/forgebook/commandServer.js +39 -0
  21. package/dist/bin/forgebook/compileCache.d.ts +7 -0
  22. package/dist/bin/forgebook/compileCache.js +24 -0
  23. package/dist/bin/forgebook/devCommands.d.mts +14 -0
  24. package/dist/bin/forgebook/devCommands.mjs +104 -0
  25. package/dist/bin/forgebook/errorsRun.d.ts +0 -1
  26. package/dist/bin/forgebook/errorsRun.js +0 -1
  27. package/dist/bin/forgebook/forgebook.d.mts +0 -1
  28. package/dist/bin/forgebook/forgebook.mjs +18 -302
  29. package/dist/bin/forgebook/forgebookCommands.d.mts +1 -0
  30. package/dist/bin/forgebook/forgebookCommands.mjs +292 -0
  31. package/dist/bin/forgebook/importers/storybook.d.ts +10 -4
  32. package/dist/bin/forgebook/importers/storybook.js +71 -45
  33. package/dist/bin/forgebook/importers/storybookAngular.d.ts +15 -0
  34. package/dist/bin/forgebook/importers/storybookAngular.js +97 -0
  35. package/dist/bin/forgebook/importers/storybookFrameworks.d.ts +53 -0
  36. package/dist/bin/forgebook/importers/storybookFrameworks.js +180 -0
  37. package/dist/bin/forgebook/importers/storybookReactNative.d.ts +40 -0
  38. package/dist/bin/forgebook/importers/storybookReactNative.js +179 -0
  39. package/dist/bin/forgebook/initCommands.d.mts +0 -1
  40. package/dist/bin/forgebook/initCommands.mjs +23 -12
  41. package/dist/bin/forgebook/initConfig.d.ts +0 -1
  42. package/dist/bin/forgebook/initConfig.js +17 -3
  43. package/dist/bin/forgebook/mcpCommand.d.mts +8 -0
  44. package/dist/bin/forgebook/mcpCommand.mjs +99 -0
  45. package/dist/bin/forgebook/mcpPreview.d.ts +32 -0
  46. package/dist/bin/forgebook/mcpPreview.js +107 -0
  47. package/dist/bin/forgebook/mcpToolParts.d.ts +28 -0
  48. package/dist/bin/forgebook/mcpToolParts.js +24 -0
  49. package/dist/bin/forgebook/mcpTools.d.ts +12 -6
  50. package/dist/bin/forgebook/mcpTools.js +148 -27
  51. package/dist/bin/forgebook/newStories.d.ts +2 -3
  52. package/dist/bin/forgebook/newStories.js +4 -3
  53. package/dist/bin/forgebook/newStoriesFile.d.ts +3 -4
  54. package/dist/bin/forgebook/newStoriesFile.js +23 -11
  55. package/dist/bin/forgebook/pageTools.d.ts +8 -0
  56. package/dist/bin/forgebook/pageTools.js +71 -0
  57. package/dist/bin/forgebook/pagesCommands.d.mts +14 -0
  58. package/dist/bin/forgebook/pagesCommands.mjs +109 -0
  59. package/dist/bin/forgebook/prebundleChild.d.ts +1 -0
  60. package/dist/bin/forgebook/prebundleChild.js +34 -0
  61. package/dist/bin/forgebook/prebundleRun.d.ts +22 -0
  62. package/dist/bin/forgebook/prebundleRun.js +49 -0
  63. package/dist/bin/forgebook/prebundleStart.d.ts +44 -0
  64. package/dist/bin/forgebook/prebundleStart.js +82 -0
  65. package/dist/bin/forgebook/semanticOptions.d.ts +45 -0
  66. package/dist/bin/forgebook/semanticOptions.js +36 -0
  67. package/dist/bin/forgebook/storyCheckCommands.d.mts +13 -0
  68. package/dist/bin/forgebook/storyCheckCommands.mjs +69 -0
  69. package/dist/bin/forgebook/storyCheckRun.d.ts +40 -6
  70. package/dist/bin/forgebook/storyCheckRun.js +90 -16
  71. package/dist/bin/forgebook/tokensRun.d.ts +41 -0
  72. package/dist/bin/forgebook/tokensRun.js +42 -0
  73. package/dist/bin/forgebook/touchWindowRun.d.ts +0 -1
  74. package/dist/bin/forgebook/touchWindowRun.js +0 -1
  75. package/dist/bin/forgebook/visualCommands.d.mts +37 -0
  76. package/dist/bin/forgebook/visualCommands.mjs +162 -0
  77. package/dist/bin/forgebook/viteCache.d.ts +48 -0
  78. package/dist/bin/forgebook/viteCache.js +112 -0
  79. package/dist/bin/forgebook-docs/catalogueDocs.d.ts +1 -2
  80. package/dist/bin/forgebook-docs/catalogueDocs.js +8 -5
  81. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +24 -3
  82. package/dist/bin/forgebook-docs/catalogueDocs.types.js +0 -1
  83. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +0 -1
  84. package/dist/bin/forgebook-docs/catalogueMarkdown.js +88 -24
  85. package/dist/bin/forgebook-docs/catalogueOptions.d.ts +1 -2
  86. package/dist/bin/forgebook-docs/catalogueOptions.js +8 -2
  87. package/dist/bin/forgebook-docs/collectDocs.d.ts +4 -4
  88. package/dist/bin/forgebook-docs/collectDocs.js +128 -29
  89. package/dist/bin/forgebook-docs/forgebook-docs.d.mts +0 -1
  90. package/dist/bin/forgebook-docs/forgebook-docs.mjs +0 -1
  91. package/dist/bin/forgebook-docs/llmsText.d.ts +5 -1
  92. package/dist/bin/forgebook-docs/llmsText.js +5 -2
  93. package/dist/bin/forgebook-docs/moduleDocs.d.ts +0 -1
  94. package/dist/bin/forgebook-docs/moduleDocs.js +0 -1
  95. package/dist/bin/forgebook-docs/sassDocs.d.ts +0 -1
  96. package/dist/bin/forgebook-docs/sassDocs.js +0 -1
  97. package/dist/bin/forgebook-texts/forgebook-texts.d.mts +0 -1
  98. package/dist/bin/forgebook-texts/forgebook-texts.mjs +1 -2
  99. package/dist/bin/forgebook-texts/storyTextsReport.d.ts +0 -1
  100. package/dist/bin/forgebook-texts/storyTextsReport.js +0 -1
  101. package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts +0 -1
  102. package/dist/bin/forgebook-texts/storyTextsReport.types.js +0 -1
  103. package/dist/bin/frameworkDocs.d.ts +0 -1
  104. package/dist/bin/frameworkDocs.js +0 -1
  105. package/dist/src/a11y.d.ts +0 -1
  106. package/dist/src/a11y.js +0 -1
  107. package/dist/src/addressArgs.d.ts +74 -0
  108. package/dist/src/addressArgs.js +109 -0
  109. package/dist/src/addressTexts.d.ts +35 -0
  110. package/dist/src/addressTexts.js +51 -0
  111. package/dist/src/argTypes.d.ts +0 -1
  112. package/dist/src/argTypes.js +2 -2
  113. package/dist/src/audiences.d.ts +17 -0
  114. package/dist/src/audiences.js +15 -0
  115. package/dist/src/backdrops.d.ts +39 -40
  116. package/dist/src/backdrops.js +37 -174
  117. package/dist/src/catalogue.d.ts +57 -21
  118. package/dist/src/catalogue.js +34 -15
  119. package/dist/src/codeLiteral.d.ts +41 -0
  120. package/dist/src/codeLiteral.js +51 -0
  121. package/dist/src/componentDocs.d.ts +86 -1
  122. package/dist/src/componentDocs.js +33 -3
  123. package/dist/src/controlKeys.d.ts +0 -1
  124. package/dist/src/controlKeys.js +2 -2
  125. package/dist/src/deviceDrawing.d.ts +114 -0
  126. package/dist/src/deviceDrawing.js +358 -0
  127. package/dist/src/deviceMenuView.d.ts +17 -0
  128. package/dist/src/deviceMenuView.js +22 -0
  129. package/dist/src/devicePicture.d.ts +57 -0
  130. package/dist/src/devicePicture.js +104 -0
  131. package/dist/src/deviceView.d.ts +172 -0
  132. package/dist/src/deviceView.js +111 -0
  133. package/dist/src/devices.d.ts +115 -0
  134. package/dist/src/devices.js +135 -0
  135. package/dist/src/docAnchors.d.ts +27 -0
  136. package/dist/src/docAnchors.js +33 -0
  137. package/dist/src/docPages.d.ts +203 -0
  138. package/dist/src/docPages.js +169 -0
  139. package/dist/src/embed.d.ts +32 -0
  140. package/dist/src/embed.js +24 -0
  141. package/dist/src/embedCode.d.ts +31 -0
  142. package/dist/src/embedCode.js +88 -0
  143. package/dist/src/frame/backdropPictures.d.ts +29 -0
  144. package/dist/src/frame/backdropPictures.js +187 -0
  145. package/dist/src/frame/checkStory.d.ts +6 -3
  146. package/dist/src/frame/checkStory.js +76 -5
  147. package/dist/src/frame/followTouch.d.ts +9 -0
  148. package/dist/src/frame/followTouch.js +43 -0
  149. package/dist/src/frame/frame.css +8 -3
  150. package/dist/src/frame/frameClock.d.ts +0 -1
  151. package/dist/src/frame/frameClock.js +0 -1
  152. package/dist/src/frame/frameStatus.d.ts +2 -1
  153. package/dist/src/frame/frameStatus.js +2 -1
  154. package/dist/src/frame/frameView.d.ts +0 -1
  155. package/dist/src/frame/frameView.js +1 -2
  156. package/dist/src/frame/matrixLayout.d.ts +0 -1
  157. package/dist/src/frame/matrixLayout.js +0 -1
  158. package/dist/src/frame/measureTools.d.ts +0 -1
  159. package/dist/src/frame/measureTools.js +0 -1
  160. package/dist/src/frame/mountFrame.d.ts +10 -3
  161. package/dist/src/frame/mountFrame.js +162 -63
  162. package/dist/src/frame/playStory.d.ts +0 -1
  163. package/dist/src/frame/playStory.js +0 -1
  164. package/dist/src/frame/pluginFrames.d.ts +31 -0
  165. package/dist/src/frame/pluginFrames.js +23 -0
  166. package/dist/src/frame/renderer.d.ts +50 -12
  167. package/dist/src/frame/renderer.js +27 -6
  168. package/dist/src/frame/settle.d.ts +0 -1
  169. package/dist/src/frame/settle.js +0 -1
  170. package/dist/src/frame/shellChannel.d.ts +47 -0
  171. package/dist/src/frame/shellChannel.js +39 -0
  172. package/dist/src/frame/spillOutline.d.ts +0 -1
  173. package/dist/src/frame/spillOutline.js +0 -1
  174. package/dist/src/frame/staleModule.d.ts +14 -2
  175. package/dist/src/frame/staleModule.js +19 -2
  176. package/dist/src/frame/storyCanvas.d.ts +0 -1
  177. package/dist/src/frame/storyCanvas.js +0 -1
  178. package/dist/src/frame/storyHooks.d.ts +0 -1
  179. package/dist/src/frame/storyHooks.js +0 -1
  180. package/dist/src/frame/storyModule.d.ts +13 -2
  181. package/dist/src/frame/storyModule.js +45 -3
  182. package/dist/src/frame/storyRun.d.ts +21 -4
  183. package/dist/src/frame/storyRun.js +100 -19
  184. package/dist/src/frame/touchDots.d.ts +0 -1
  185. package/dist/src/frame/touchDots.js +0 -1
  186. package/dist/src/frame/touchEvents.d.ts +0 -1
  187. package/dist/src/frame/touchEvents.js +0 -1
  188. package/dist/src/frame/touchGesture.d.ts +0 -1
  189. package/dist/src/frame/touchGesture.js +0 -1
  190. package/dist/src/frame/touchLayer.d.ts +3 -3
  191. package/dist/src/frame/touchLayer.js +4 -30
  192. package/dist/src/frame/touchScroll.d.ts +0 -1
  193. package/dist/src/frame/touchScroll.js +0 -1
  194. package/dist/src/frameOrigins.d.ts +62 -0
  195. package/dist/src/frameOrigins.js +49 -0
  196. package/dist/src/hotModules.d.ts +48 -0
  197. package/dist/src/hotModules.js +53 -0
  198. package/dist/src/jsxCode.d.ts +22 -0
  199. package/dist/src/jsxCode.js +36 -0
  200. package/dist/src/languages.d.ts +0 -1
  201. package/dist/src/languages.js +0 -1
  202. package/dist/src/liveErrors.d.ts +0 -1
  203. package/dist/src/liveErrors.js +0 -1
  204. package/dist/src/matrix.d.ts +0 -1
  205. package/dist/src/matrix.js +0 -1
  206. package/dist/src/messages.d.ts +28 -2
  207. package/dist/src/messages.js +24 -3
  208. package/dist/src/namedValues.d.ts +11 -1
  209. package/dist/src/namedValues.js +25 -2
  210. package/dist/src/namedViews.d.ts +1 -13
  211. package/dist/src/namedViews.js +30 -7
  212. package/dist/src/packedText.d.ts +21 -0
  213. package/dist/src/packedText.js +36 -0
  214. package/dist/src/pageAddress.d.ts +26 -0
  215. package/dist/src/pageAddress.js +39 -0
  216. package/dist/src/pageConfig.d.ts +3 -1
  217. package/dist/src/pageConfig.js +0 -1
  218. package/dist/src/pageTree.d.ts +79 -0
  219. package/dist/src/pageTree.js +108 -0
  220. package/dist/src/playTrace.d.ts +0 -1
  221. package/dist/src/playTrace.js +0 -1
  222. package/dist/src/plugin.d.ts +230 -0
  223. package/dist/src/plugin.js +12 -0
  224. package/dist/src/pluginReact.d.ts +23 -0
  225. package/dist/src/pluginReact.js +24 -0
  226. package/dist/src/previewRelay.d.ts +40 -0
  227. package/dist/src/previewRelay.js +69 -0
  228. package/dist/src/previewTexts.d.ts +26 -0
  229. package/dist/src/previewTexts.js +33 -0
  230. package/dist/src/previewView.d.ts +31 -0
  231. package/dist/src/previewView.js +264 -0
  232. package/dist/src/propGroups.d.ts +46 -0
  233. package/dist/src/propGroups.js +59 -0
  234. package/dist/src/realTouch.d.ts +1 -2
  235. package/dist/src/realTouch.js +1 -2
  236. package/dist/src/safeAreaParameter.d.ts +42 -0
  237. package/dist/src/safeAreaParameter.js +50 -0
  238. package/dist/src/search.d.ts +154 -0
  239. package/dist/src/search.js +265 -0
  240. package/dist/src/searchIndex.d.ts +61 -0
  241. package/dist/src/searchIndex.js +55 -0
  242. package/dist/src/searchMarks.d.ts +29 -0
  243. package/dist/src/searchMarks.js +165 -0
  244. package/dist/src/searchMatch.d.ts +58 -0
  245. package/dist/src/searchMatch.js +127 -0
  246. package/dist/src/shell/A11yTab.d.ts +0 -7
  247. package/dist/src/shell/A11yTab.js +4 -15
  248. package/dist/src/shell/AnchorScroll.d.ts +25 -0
  249. package/dist/src/shell/AnchorScroll.js +10 -0
  250. package/dist/src/shell/ApiReference.d.ts +12 -4
  251. package/dist/src/shell/ApiReference.js +74 -19
  252. package/dist/src/shell/AppearanceMenu.d.ts +1 -2
  253. package/dist/src/shell/AppearanceMenu.js +8 -5
  254. package/dist/src/shell/AudienceSections.d.ts +106 -0
  255. package/dist/src/shell/AudienceSections.js +154 -0
  256. package/dist/src/shell/AuthoredHome.d.ts +37 -0
  257. package/dist/src/shell/AuthoredHome.js +96 -0
  258. package/dist/src/shell/BoxWidth.d.ts +0 -1
  259. package/dist/src/shell/BoxWidth.js +0 -1
  260. package/dist/src/shell/ClockBar.d.ts +19 -0
  261. package/dist/src/shell/ClockBar.js +15 -0
  262. package/dist/src/shell/ClockControls.d.ts +5 -9
  263. package/dist/src/shell/ClockControls.js +13 -16
  264. package/dist/src/shell/Code.d.ts +0 -1
  265. package/dist/src/shell/Code.js +0 -1
  266. package/dist/src/shell/CodeTab.d.ts +0 -1
  267. package/dist/src/shell/CodeTab.js +2 -2
  268. package/dist/src/shell/CodeText.d.ts +0 -1
  269. package/dist/src/shell/CodeText.js +0 -1
  270. package/dist/src/shell/CompareGrid.d.ts +37 -0
  271. package/dist/src/shell/CompareGrid.js +24 -0
  272. package/dist/src/shell/ComponentPage.d.ts +45 -7
  273. package/dist/src/shell/ComponentPage.js +107 -49
  274. package/dist/src/shell/ControlKeyField.d.ts +0 -1
  275. package/dist/src/shell/ControlKeyField.js +3 -4
  276. package/dist/src/shell/ControlRow.d.ts +4 -4
  277. package/dist/src/shell/ControlRow.js +5 -5
  278. package/dist/src/shell/DeviceControl.d.ts +31 -0
  279. package/dist/src/shell/DeviceControl.js +33 -0
  280. package/dist/src/shell/DeviceSlot.d.ts +114 -0
  281. package/dist/src/shell/DeviceSlot.js +134 -0
  282. package/dist/src/shell/DocBlocks.d.ts +100 -0
  283. package/dist/src/shell/DocBlocks.js +206 -0
  284. package/dist/src/shell/DocContainers.d.ts +70 -0
  285. package/dist/src/shell/DocContainers.js +94 -0
  286. package/dist/src/shell/DocContents.d.ts +29 -0
  287. package/dist/src/shell/DocContents.js +88 -0
  288. package/dist/src/shell/DocPage.d.ts +69 -0
  289. package/dist/src/shell/DocPage.js +141 -0
  290. package/dist/src/shell/Dock.d.ts +1 -2
  291. package/dist/src/shell/Dock.js +1 -2
  292. package/dist/src/shell/DroppedArgsList.d.ts +26 -0
  293. package/dist/src/shell/DroppedArgsList.js +8 -0
  294. package/dist/src/shell/DroppedArgsNote.d.ts +14 -0
  295. package/dist/src/shell/DroppedArgsNote.js +10 -0
  296. package/dist/src/shell/EmbedButton.d.ts +19 -0
  297. package/dist/src/shell/EmbedButton.js +96 -0
  298. package/dist/src/shell/EmbedPage.d.ts +23 -0
  299. package/dist/src/shell/EmbedPage.js +168 -0
  300. package/dist/src/shell/EmbedPanel.d.ts +25 -0
  301. package/dist/src/shell/EmbedPanel.js +46 -0
  302. package/dist/src/shell/EventsTab.d.ts +0 -1
  303. package/dist/src/shell/EventsTab.js +2 -3
  304. package/dist/src/shell/Example.d.ts +20 -2
  305. package/dist/src/shell/Example.js +75 -22
  306. package/dist/src/shell/FrameView.d.ts +1 -2
  307. package/dist/src/shell/FrameView.js +4 -4
  308. package/dist/src/shell/HomePage.d.ts +78 -4
  309. package/dist/src/shell/HomePage.js +53 -14
  310. package/dist/src/shell/HomePieces.d.ts +40 -0
  311. package/dist/src/shell/HomePieces.js +29 -0
  312. package/dist/src/shell/InfoTip.d.ts +0 -1
  313. package/dist/src/shell/InfoTip.js +0 -1
  314. package/dist/src/shell/InteractionsTab.d.ts +0 -7
  315. package/dist/src/shell/InteractionsTab.js +3 -9
  316. package/dist/src/shell/LazyHost.d.ts +16 -0
  317. package/dist/src/shell/LazyHost.js +42 -0
  318. package/dist/src/shell/LazyPage.d.ts +24 -0
  319. package/dist/src/shell/LazyPage.js +9 -0
  320. package/dist/src/shell/LogicMark.d.ts +9 -0
  321. package/dist/src/shell/LogicMark.js +5 -0
  322. package/dist/src/shell/MatrixPicker.d.ts +0 -1
  323. package/dist/src/shell/MatrixPicker.js +0 -1
  324. package/dist/src/shell/NamedViews.d.ts +0 -1
  325. package/dist/src/shell/NamedViews.js +4 -5
  326. package/dist/src/shell/PackageHtml.d.ts +0 -1
  327. package/dist/src/shell/PackageHtml.js +0 -1
  328. package/dist/src/shell/PartsTab.d.ts +0 -7
  329. package/dist/src/shell/PartsTab.js +3 -13
  330. package/dist/src/shell/PinnedControl.d.ts +0 -1
  331. package/dist/src/shell/PinnedControl.js +2 -2
  332. package/dist/src/shell/PluginBlockHost.d.ts +46 -0
  333. package/dist/src/shell/PluginBlockHost.js +39 -0
  334. package/dist/src/shell/PluginTabHost.d.ts +32 -0
  335. package/dist/src/shell/PluginTabHost.js +25 -0
  336. package/dist/src/shell/PluginViewHost.d.ts +37 -0
  337. package/dist/src/shell/PluginViewHost.js +89 -0
  338. package/dist/src/shell/PropFields.d.ts +0 -1
  339. package/dist/src/shell/PropFields.js +0 -1
  340. package/dist/src/shell/PropsTab.d.ts +11 -2
  341. package/dist/src/shell/PropsTab.js +31 -5
  342. package/dist/src/shell/SearchPanel.d.ts +63 -0
  343. package/dist/src/shell/SearchPanel.js +209 -0
  344. package/dist/src/shell/Segmented.d.ts +0 -1
  345. package/dist/src/shell/Segmented.js +0 -1
  346. package/dist/src/shell/Shell.d.ts +34 -6
  347. package/dist/src/shell/Shell.js +292 -84
  348. package/dist/src/shell/Sidebar.d.ts +20 -5
  349. package/dist/src/shell/Sidebar.js +23 -56
  350. package/dist/src/shell/SidebarDocs.d.ts +38 -0
  351. package/dist/src/shell/SidebarDocs.js +30 -0
  352. package/dist/src/shell/SidebarEntries.d.ts +10 -2
  353. package/dist/src/shell/SidebarEntries.js +3 -3
  354. package/dist/src/shell/SidebarHandle.d.ts +0 -1
  355. package/dist/src/shell/SidebarHandle.js +0 -1
  356. package/dist/src/shell/SidebarSearch.d.ts +40 -0
  357. package/dist/src/shell/SidebarSearch.js +85 -0
  358. package/dist/src/shell/SignatureReference.d.ts +25 -0
  359. package/dist/src/shell/SignatureReference.js +25 -0
  360. package/dist/src/shell/Stage.d.ts +9 -4
  361. package/dist/src/shell/Stage.js +121 -60
  362. package/dist/src/shell/StageCompare.d.ts +14 -0
  363. package/dist/src/shell/StageCompare.js +11 -0
  364. package/dist/src/shell/StageTools.d.ts +0 -1
  365. package/dist/src/shell/StageTools.js +0 -1
  366. package/dist/src/shell/StageViewport.d.ts +7 -3
  367. package/dist/src/shell/StageViewport.js +4 -5
  368. package/dist/src/shell/StoryBar.d.ts +40 -0
  369. package/dist/src/shell/StoryBar.js +23 -0
  370. package/dist/src/shell/StoryCodeBlock.d.ts +1 -2
  371. package/dist/src/shell/StoryCodeBlock.js +0 -1
  372. package/dist/src/shell/StoryCoverage.d.ts +36 -0
  373. package/dist/src/shell/StoryCoverage.js +126 -0
  374. package/dist/src/shell/StoryPicker.d.ts +0 -1
  375. package/dist/src/shell/StoryPicker.js +0 -1
  376. package/dist/src/shell/Toolbar.d.ts +9 -3
  377. package/dist/src/shell/Toolbar.js +12 -7
  378. package/dist/src/shell/ToolbarControl.d.ts +6 -8
  379. package/dist/src/shell/ToolbarControl.js +28 -20
  380. package/dist/src/shell/UsedIn.d.ts +5 -6
  381. package/dist/src/shell/UsedIn.js +7 -20
  382. package/dist/src/shell/ViewMenu.d.ts +7 -7
  383. package/dist/src/shell/ViewMenu.js +61 -176
  384. package/dist/src/shell/ViewMenuPanel.d.ts +41 -0
  385. package/dist/src/shell/ViewMenuPanel.js +199 -0
  386. package/dist/src/shell/WidthField.d.ts +3 -2
  387. package/dist/src/shell/WidthField.js +2 -3
  388. package/dist/src/shell/asideStory.d.ts +34 -0
  389. package/dist/src/shell/asideStory.js +55 -0
  390. package/dist/src/shell/audienceLayout.d.ts +39 -0
  391. package/dist/src/shell/audienceLayout.js +33 -0
  392. package/dist/src/shell/audiencePage.d.ts +113 -0
  393. package/dist/src/shell/audiencePage.js +144 -0
  394. package/dist/src/shell/audienceSections.css +95 -0
  395. package/dist/src/shell/catalogueContext.d.ts +24 -2
  396. package/dist/src/shell/catalogueContext.js +12 -9
  397. package/dist/src/shell/codeTokens.d.ts +0 -1
  398. package/dist/src/shell/codeTokens.js +0 -1
  399. package/dist/src/shell/codeWriter.d.ts +0 -1
  400. package/dist/src/shell/codeWriter.js +0 -1
  401. package/dist/src/shell/compareVariants.d.ts +3 -3
  402. package/dist/src/shell/compareVariants.js +6 -5
  403. package/dist/src/shell/controlCycle.d.ts +0 -1
  404. package/dist/src/shell/controlCycle.js +13 -1
  405. package/dist/src/shell/controlLabel.d.ts +7 -0
  406. package/dist/src/shell/controlLabel.js +17 -0
  407. package/dist/src/shell/device/deviceFrame.css +42 -0
  408. package/dist/src/shell/device/deviceParts.d.ts +90 -0
  409. package/dist/src/shell/device/deviceParts.js +120 -0
  410. package/dist/src/shell/docPage.css +451 -0
  411. package/dist/src/shell/dockTabs.d.ts +15 -4
  412. package/dist/src/shell/dockTabs.js +69 -26
  413. package/dist/src/shell/embed.css +74 -0
  414. package/dist/src/shell/filesCode.d.ts +21 -0
  415. package/dist/src/shell/filesCode.js +37 -0
  416. package/dist/src/shell/forgebookMark.d.ts +15 -0
  417. package/dist/src/shell/forgebookMark.js +28 -0
  418. package/dist/src/shell/framesOrigin.d.ts +23 -0
  419. package/dist/src/shell/framesOrigin.js +69 -0
  420. package/dist/src/shell/icons.d.ts +4 -1
  421. package/dist/src/shell/icons.js +4 -1
  422. package/dist/src/shell/keyboard.d.ts +0 -1
  423. package/dist/src/shell/keyboard.js +0 -1
  424. package/dist/src/shell/laterStrings.d.ts +91 -0
  425. package/dist/src/shell/laterStrings.js +102 -0
  426. package/dist/src/shell/lazyModule.d.ts +49 -0
  427. package/dist/src/shell/lazyModule.js +72 -0
  428. package/dist/src/shell/lazyTab.d.ts +21 -0
  429. package/dist/src/shell/lazyTab.js +9 -0
  430. package/dist/src/shell/logicView.d.ts +24 -0
  431. package/dist/src/shell/logicView.js +39 -0
  432. package/dist/src/shell/mountShell.d.ts +5 -3
  433. package/dist/src/shell/mountShell.js +43 -12
  434. package/dist/src/shell/pageStrings.d.ts +24 -0
  435. package/dist/src/shell/pageStrings.js +26 -0
  436. package/dist/src/shell/pluginHosts.d.ts +9 -0
  437. package/dist/src/shell/pluginHosts.js +6 -0
  438. package/dist/src/shell/pluginHostsContext.d.ts +20 -0
  439. package/dist/src/shell/pluginHostsContext.js +16 -0
  440. package/dist/src/shell/pluginTabs.d.ts +63 -0
  441. package/dist/src/shell/pluginTabs.js +60 -0
  442. package/dist/src/shell/search.css +172 -0
  443. package/dist/src/shell/searchStrings.d.ts +24 -0
  444. package/dist/src/shell/searchStrings.js +31 -0
  445. package/dist/src/shell/shell.css +310 -136
  446. package/dist/src/shell/shellScheme.d.ts +37 -0
  447. package/dist/src/shell/shellScheme.js +32 -0
  448. package/dist/src/shell/storyTouch.d.ts +19 -6
  449. package/dist/src/shell/storyTouch.js +26 -4
  450. package/dist/src/shell/strings.d.ts +62 -80
  451. package/dist/src/shell/strings.js +60 -79
  452. package/dist/src/shell/switchView.d.ts +0 -1
  453. package/dist/src/shell/switchView.js +0 -1
  454. package/dist/src/shell/tabSummaries.d.ts +31 -0
  455. package/dist/src/shell/tabSummaries.js +27 -0
  456. package/dist/src/shell/treeSearch.d.ts +39 -3
  457. package/dist/src/shell/treeSearch.js +27 -1
  458. package/dist/src/shell/useAddressArgs.d.ts +55 -0
  459. package/dist/src/shell/useAddressArgs.js +62 -0
  460. package/dist/src/shell/useAnchorScroll.d.ts +24 -0
  461. package/dist/src/shell/useAnchorScroll.js +90 -0
  462. package/dist/src/shell/useAppearance.d.ts +7 -2
  463. package/dist/src/shell/useAppearance.js +14 -5
  464. package/dist/src/shell/useComponentDocs.d.ts +0 -1
  465. package/dist/src/shell/useComponentDocs.js +0 -1
  466. package/dist/src/shell/useControlKeys.d.ts +2 -1
  467. package/dist/src/shell/useControlKeys.js +2 -3
  468. package/dist/src/shell/useCopy.d.ts +2 -1
  469. package/dist/src/shell/useCopy.js +11 -6
  470. package/dist/src/shell/useFold.d.ts +0 -1
  471. package/dist/src/shell/useFold.js +0 -1
  472. package/dist/src/shell/useFrameMessages.d.ts +19 -4
  473. package/dist/src/shell/useFrameMessages.js +23 -7
  474. package/dist/src/shell/useFrameQueue.d.ts +7 -3
  475. package/dist/src/shell/useFrameQueue.js +39 -22
  476. package/dist/src/shell/useFullPage.d.ts +0 -1
  477. package/dist/src/shell/useFullPage.js +0 -1
  478. package/dist/src/shell/useLiveView.d.ts +0 -1
  479. package/dist/src/shell/useLiveView.js +0 -1
  480. package/dist/src/shell/useLoaded.d.ts +1 -2
  481. package/dist/src/shell/useLoaded.js +28 -6
  482. package/dist/src/shell/usePageDoc.d.ts +0 -1
  483. package/dist/src/shell/usePageDoc.js +0 -1
  484. package/dist/src/shell/usePageFrames.d.ts +46 -0
  485. package/dist/src/shell/usePageFrames.js +50 -0
  486. package/dist/src/shell/usePluginTabs.d.ts +18 -0
  487. package/dist/src/shell/usePluginTabs.js +45 -0
  488. package/dist/src/shell/usePopover.d.ts +0 -1
  489. package/dist/src/shell/usePopover.js +0 -1
  490. package/dist/src/shell/useProseLinks.d.ts +14 -0
  491. package/dist/src/shell/useProseLinks.js +30 -0
  492. package/dist/src/shell/useRecentPages.d.ts +3 -4
  493. package/dist/src/shell/useRecentPages.js +1 -2
  494. package/dist/src/shell/useScrollMemory.d.ts +9 -1
  495. package/dist/src/shell/useScrollMemory.js +2 -3
  496. package/dist/src/shell/useSearchIndex.d.ts +24 -0
  497. package/dist/src/shell/useSearchIndex.js +51 -0
  498. package/dist/src/shell/useShownView.d.ts +35 -0
  499. package/dist/src/shell/useShownView.js +36 -0
  500. package/dist/src/shell/useSidebarLayout.d.ts +0 -1
  501. package/dist/src/shell/useSidebarLayout.js +0 -1
  502. package/dist/src/shell/useStored.d.ts +13 -1
  503. package/dist/src/shell/useStored.js +13 -5
  504. package/dist/src/shell/useStoryCheck.d.ts +20 -0
  505. package/dist/src/shell/useStoryCheck.js +33 -0
  506. package/dist/src/shell/useStoryCode.d.ts +0 -1
  507. package/dist/src/shell/useStoryCode.js +0 -1
  508. package/dist/src/shell/useStoryHeights.d.ts +0 -1
  509. package/dist/src/shell/useStoryHeights.js +0 -1
  510. package/dist/src/shell/useStoryIdsElement.d.ts +0 -1
  511. package/dist/src/shell/useStoryIdsElement.js +0 -1
  512. package/dist/src/shell/useStoryKeys.d.ts +0 -1
  513. package/dist/src/shell/useStoryKeys.js +0 -1
  514. package/dist/src/shell/useSyncedTab.d.ts +8 -0
  515. package/dist/src/shell/useSyncedTab.js +60 -0
  516. package/dist/src/shell/useSystemDark.d.ts +0 -1
  517. package/dist/src/shell/useSystemDark.js +0 -1
  518. package/dist/src/shell/useToolbarLayout.d.ts +0 -1
  519. package/dist/src/shell/useToolbarLayout.js +0 -1
  520. package/dist/src/shell/useToolbarOverflow.d.ts +0 -1
  521. package/dist/src/shell/useToolbarOverflow.js +0 -1
  522. package/dist/src/shell/useWorstCase.d.ts +0 -1
  523. package/dist/src/shell/useWorstCase.js +2 -2
  524. package/dist/src/shell/worstArgs.d.ts +0 -1
  525. package/dist/src/shell/worstArgs.js +0 -1
  526. package/dist/src/shellTheme.d.ts +64 -0
  527. package/dist/src/shellTheme.js +274 -0
  528. package/dist/src/shellTheme.types.d.ts +93 -0
  529. package/dist/src/shellTheme.types.js +10 -0
  530. package/dist/src/sourceFiles.d.ts +17 -3
  531. package/dist/src/sourceFiles.js +27 -1
  532. package/dist/src/spills.d.ts +0 -1
  533. package/dist/src/spills.js +0 -1
  534. package/dist/src/storyBackground.d.ts +0 -1
  535. package/dist/src/storyBackground.js +0 -1
  536. package/dist/src/storyCheck.d.ts +88 -2
  537. package/dist/src/storyCheck.js +12 -2
  538. package/dist/src/storyClock.d.ts +0 -1
  539. package/dist/src/storyClock.js +0 -1
  540. package/dist/src/storyGlobals.d.ts +0 -1
  541. package/dist/src/storyGlobals.js +0 -1
  542. package/dist/src/storyHeights.d.ts +0 -1
  543. package/dist/src/storyHeights.js +0 -1
  544. package/dist/src/storyIds.d.ts +36 -0
  545. package/dist/src/storyIds.js +52 -0
  546. package/dist/src/storyIdsElement.d.ts +0 -1
  547. package/dist/src/storyIdsElement.js +0 -1
  548. package/dist/src/storyTexts.d.ts +11 -5
  549. package/dist/src/storyTexts.js +16 -5
  550. package/dist/src/storyTree.d.ts +88 -25
  551. package/dist/src/storyTree.js +219 -126
  552. package/dist/src/switches.d.ts +0 -1
  553. package/dist/src/switches.js +6 -2
  554. package/dist/src/toolbarLayout.d.ts +0 -1
  555. package/dist/src/toolbarLayout.js +0 -1
  556. package/dist/src/treePlaces.d.ts +60 -0
  557. package/dist/src/treePlaces.js +89 -0
  558. package/dist/src/usedIn.d.ts +28 -1
  559. package/dist/src/usedIn.js +93 -3
  560. package/dist/src/viewState.d.ts +37 -9
  561. package/dist/src/viewState.js +67 -9
  562. package/dist/src/viewWords.d.ts +0 -13
  563. package/dist/src/viewWords.js +41 -3
  564. package/dist/src/vite/adapter.d.ts +62 -1
  565. package/dist/src/vite/adapter.js +20 -2
  566. package/dist/src/vite/agent.types.d.ts +281 -7
  567. package/dist/src/vite/agent.types.js +11 -1
  568. package/dist/src/vite/agentApi.d.ts +55 -2
  569. package/dist/src/vite/agentApi.js +131 -8
  570. package/dist/src/vite/agentIds.d.ts +25 -0
  571. package/dist/src/vite/agentIds.js +41 -0
  572. package/dist/src/vite/agentIndex.d.ts +63 -0
  573. package/dist/src/vite/agentIndex.js +91 -0
  574. package/dist/src/vite/agentIndexRoute.d.ts +10 -0
  575. package/dist/src/vite/agentIndexRoute.js +35 -0
  576. package/dist/src/vite/agentRoutes.d.ts +80 -19
  577. package/dist/src/vite/agentRoutes.js +167 -24
  578. package/dist/src/vite/autoTitle.d.ts +0 -1
  579. package/dist/src/vite/autoTitle.js +0 -1
  580. package/dist/src/vite/axeScript.d.ts +20 -0
  581. package/dist/src/vite/axeScript.js +60 -0
  582. package/dist/src/vite/builtTexts.d.ts +75 -0
  583. package/dist/src/vite/builtTexts.js +142 -0
  584. package/dist/src/vite/catalogueConfig.d.ts +10 -0
  585. package/dist/src/vite/catalogueConfig.js +64 -0
  586. package/dist/src/vite/checkCode.d.ts +67 -0
  587. package/dist/src/vite/checkCode.js +145 -0
  588. package/dist/src/vite/closeWatch.d.ts +96 -0
  589. package/dist/src/vite/closeWatch.js +219 -0
  590. package/dist/src/vite/codeFence.d.ts +78 -0
  591. package/dist/src/vite/codeFence.js +267 -0
  592. package/dist/src/vite/componentImport.d.ts +8 -0
  593. package/dist/src/vite/componentImport.js +35 -0
  594. package/dist/src/vite/componentPage.d.ts +15 -2
  595. package/dist/src/vite/componentPage.js +55 -16
  596. package/dist/src/vite/config.d.ts +51 -3
  597. package/dist/src/vite/config.js +0 -1
  598. package/dist/src/vite/configFile.d.ts +65 -9
  599. package/dist/src/vite/configFile.js +182 -28
  600. package/dist/src/vite/designTokens.d.ts +75 -0
  601. package/dist/src/vite/designTokens.js +382 -0
  602. package/dist/src/vite/diskCache.d.ts +51 -0
  603. package/dist/src/vite/diskCache.js +211 -0
  604. package/dist/src/vite/docDirectives.d.ts +116 -0
  605. package/dist/src/vite/docDirectives.js +425 -0
  606. package/dist/src/vite/docMarkdown.d.ts +76 -0
  607. package/dist/src/vite/docMarkdown.js +150 -0
  608. package/dist/src/vite/docPageBlocks.d.ts +64 -0
  609. package/dist/src/vite/docPageBlocks.js +322 -0
  610. package/dist/src/vite/docPageLinks.d.ts +72 -0
  611. package/dist/src/vite/docPageLinks.js +135 -0
  612. package/dist/src/vite/docPageMarkdown.d.ts +86 -0
  613. package/dist/src/vite/docPageMarkdown.js +133 -0
  614. package/dist/src/vite/docPageRender.d.ts +27 -0
  615. package/dist/src/vite/docPageRender.js +199 -0
  616. package/dist/src/vite/docPageTokens.d.ts +91 -0
  617. package/dist/src/vite/docPageTokens.js +186 -0
  618. package/dist/src/vite/docPagesModule.d.ts +50 -0
  619. package/dist/src/vite/docPagesModule.js +118 -0
  620. package/dist/src/vite/docPagesRoute.d.ts +38 -0
  621. package/dist/src/vite/docPagesRoute.js +154 -0
  622. package/dist/src/vite/docsDependencies.d.ts +6 -0
  623. package/dist/src/vite/docsDependencies.js +150 -0
  624. package/dist/src/vite/docsExtractor.d.ts +44 -3
  625. package/dist/src/vite/docsExtractor.js +160 -26
  626. package/dist/src/vite/docsProgram.d.ts +89 -9
  627. package/dist/src/vite/docsProgram.js +413 -50
  628. package/dist/src/vite/docsWorker.d.ts +0 -1
  629. package/dist/src/vite/docsWorker.js +49 -15
  630. package/dist/src/vite/figmaLink.d.ts +26 -0
  631. package/dist/src/vite/figmaLink.js +92 -0
  632. package/dist/src/vite/findComponent.d.ts +32 -0
  633. package/dist/src/vite/findComponent.js +52 -0
  634. package/dist/src/vite/findRoute.d.ts +14 -0
  635. package/dist/src/vite/findRoute.js +62 -0
  636. package/dist/src/vite/forcedStates.d.ts +0 -1
  637. package/dist/src/vite/forcedStates.js +0 -1
  638. package/dist/src/vite/forgebookPlugin.d.ts +1 -2
  639. package/dist/src/vite/forgebookPlugin.js +330 -263
  640. package/dist/src/vite/framesConfig.d.ts +89 -0
  641. package/dist/src/vite/framesConfig.js +149 -0
  642. package/dist/src/vite/framesServer.d.ts +43 -0
  643. package/dist/src/vite/framesServer.js +326 -0
  644. package/dist/src/vite/functionComponentDocs.d.ts +26 -0
  645. package/dist/src/vite/functionComponentDocs.js +193 -0
  646. package/dist/src/vite/gitChange.d.ts +56 -0
  647. package/dist/src/vite/gitChange.js +86 -0
  648. package/dist/src/vite/heightsRoute.d.ts +24 -0
  649. package/dist/src/vite/heightsRoute.js +42 -0
  650. package/dist/src/vite/highlightCode.d.ts +0 -1
  651. package/dist/src/vite/highlightCode.js +8 -27
  652. package/dist/src/vite/hotSnippets.d.ts +86 -0
  653. package/dist/src/vite/hotSnippets.js +168 -0
  654. package/dist/src/vite/indexFields.d.ts +61 -0
  655. package/dist/src/vite/indexFields.js +149 -0
  656. package/dist/src/vite/indexStoryFile.d.ts +20 -19
  657. package/dist/src/vite/indexStoryFile.js +172 -201
  658. package/dist/src/vite/indexedParameters.d.ts +10 -0
  659. package/dist/src/vite/indexedParameters.js +110 -0
  660. package/dist/src/vite/mcpProtocol.d.ts +36 -2
  661. package/dist/src/vite/mcpProtocol.js +100 -15
  662. package/dist/src/vite/moduleSummary.d.ts +17 -0
  663. package/dist/src/vite/moduleSummary.js +40 -0
  664. package/dist/src/vite/nearestToken.d.ts +50 -0
  665. package/dist/src/vite/nearestToken.js +295 -0
  666. package/dist/src/vite/originGuard.d.ts +87 -0
  667. package/dist/src/vite/originGuard.js +163 -0
  668. package/dist/src/vite/packedModule.d.ts +40 -0
  669. package/dist/src/vite/packedModule.js +74 -0
  670. package/dist/src/vite/pages.d.ts +63 -10
  671. package/dist/src/vite/pages.js +264 -33
  672. package/dist/src/vite/parsedFiles.d.ts +18 -0
  673. package/dist/src/vite/parsedFiles.js +91 -0
  674. package/dist/src/vite/plainGrammars.d.ts +20 -0
  675. package/dist/src/vite/plainGrammars.js +113 -0
  676. package/dist/src/vite/pluginConfig.d.ts +47 -0
  677. package/dist/src/vite/pluginConfig.js +220 -0
  678. package/dist/src/vite/pluginIds.d.ts +20 -0
  679. package/dist/src/vite/pluginIds.js +61 -0
  680. package/dist/src/vite/pluginModules.d.ts +140 -0
  681. package/dist/src/vite/pluginModules.js +176 -0
  682. package/dist/src/vite/prebundled.d.ts +18 -5
  683. package/dist/src/vite/prebundled.js +28 -18
  684. package/dist/src/vite/previewPages.d.ts +14 -0
  685. package/dist/src/vite/previewPages.js +81 -0
  686. package/dist/src/vite/previewRoute.d.ts +8 -0
  687. package/dist/src/vite/previewRoute.js +8 -0
  688. package/dist/src/vite/previewRunner.d.ts +56 -0
  689. package/dist/src/vite/previewRunner.js +207 -0
  690. package/dist/src/vite/propDocs.d.ts +60 -0
  691. package/dist/src/vite/propDocs.js +387 -0
  692. package/dist/src/vite/searchModule.d.ts +40 -0
  693. package/dist/src/vite/searchModule.js +212 -0
  694. package/dist/src/vite/searchRoute.d.ts +7 -0
  695. package/dist/src/vite/searchRoute.js +79 -0
  696. package/dist/src/vite/serverConditions.d.ts +31 -0
  697. package/dist/src/vite/serverConditions.js +69 -0
  698. package/dist/src/vite/signatureDocs.d.ts +18 -0
  699. package/dist/src/vite/signatureDocs.js +64 -0
  700. package/dist/src/vite/sourceTokens.d.ts +57 -0
  701. package/dist/src/vite/sourceTokens.js +164 -0
  702. package/dist/src/vite/storyCode.d.ts +0 -1
  703. package/dist/src/vite/storyCode.js +2 -3
  704. package/dist/src/vite/storyExports.d.ts +32 -0
  705. package/dist/src/vite/storyExports.js +27 -0
  706. package/dist/src/vite/storyFilesModule.d.ts +56 -4
  707. package/dist/src/vite/storyFilesModule.js +122 -34
  708. package/dist/src/vite/storyMeta.d.ts +20 -11
  709. package/dist/src/vite/storyMeta.js +74 -38
  710. package/dist/src/vite/storyParse.d.ts +18 -0
  711. package/dist/src/vite/storyParse.js +20 -0
  712. package/dist/src/vite/storyPlay.d.ts +29 -0
  713. package/dist/src/vite/storyPlay.js +54 -0
  714. package/dist/src/vite/storyReach.d.ts +42 -0
  715. package/dist/src/vite/storyReach.js +43 -0
  716. package/dist/src/vite/storylessRoutes.d.ts +29 -0
  717. package/dist/src/vite/storylessRoutes.js +126 -0
  718. package/dist/src/vite/textModules.d.ts +63 -0
  719. package/dist/src/vite/textModules.js +132 -0
  720. package/dist/src/vite/textQueries.d.ts +20 -0
  721. package/dist/src/vite/textQueries.js +20 -0
  722. package/dist/src/vite/themeFromTokens.d.ts +35 -0
  723. package/dist/src/vite/themeFromTokens.js +73 -0
  724. package/dist/src/vite/tokenAnswers.d.ts +20 -0
  725. package/dist/src/vite/tokenAnswers.js +86 -0
  726. package/dist/src/vite/tokenClashes.d.ts +44 -0
  727. package/dist/src/vite/tokenClashes.js +45 -0
  728. package/dist/src/vite/touchMedia.d.ts +0 -1
  729. package/dist/src/vite/touchMedia.js +0 -1
  730. package/dist/src/vite/typeScriptPieces.d.ts +0 -1
  731. package/dist/src/vite/typeScriptPieces.js +2 -3
  732. package/dist/src/vite/usageGraph.d.ts +6 -1
  733. package/dist/src/vite/usageGraph.js +41 -7
  734. package/dist/src/vite/usageGuidance.d.ts +33 -0
  735. package/dist/src/vite/usageGuidance.js +45 -0
  736. package/dist/src/vite/usageModule.d.ts +0 -1
  737. package/dist/src/vite/usageModule.js +0 -1
  738. package/dist/src/vite/vitePaths.d.ts +53 -0
  739. package/dist/src/vite/vitePaths.js +53 -0
  740. package/dist/src/worstCase.d.ts +0 -1
  741. package/dist/src/worstCase.js +0 -1
  742. package/package.json +66 -3
  743. package/dist/bin/forgebook/agentClient.d.ts.map +0 -1
  744. package/dist/bin/forgebook/agentClient.js.map +0 -1
  745. package/dist/bin/forgebook/agentLoopCommands.d.mts.map +0 -1
  746. package/dist/bin/forgebook/agentLoopCommands.mjs.map +0 -1
  747. package/dist/bin/forgebook/agentText.d.ts.map +0 -1
  748. package/dist/bin/forgebook/agentText.js.map +0 -1
  749. package/dist/bin/forgebook/agentsText.d.ts.map +0 -1
  750. package/dist/bin/forgebook/agentsText.js.map +0 -1
  751. package/dist/bin/forgebook/catalogueCommands.d.ts.map +0 -1
  752. package/dist/bin/forgebook/catalogueCommands.js.map +0 -1
  753. package/dist/bin/forgebook/catalogueVite.d.ts.map +0 -1
  754. package/dist/bin/forgebook/catalogueVite.js.map +0 -1
  755. package/dist/bin/forgebook/errorsRun.d.ts.map +0 -1
  756. package/dist/bin/forgebook/errorsRun.js.map +0 -1
  757. package/dist/bin/forgebook/forgebook.d.mts.map +0 -1
  758. package/dist/bin/forgebook/forgebook.mjs.map +0 -1
  759. package/dist/bin/forgebook/importers/storybook.d.ts.map +0 -1
  760. package/dist/bin/forgebook/importers/storybook.js.map +0 -1
  761. package/dist/bin/forgebook/initCommands.d.mts.map +0 -1
  762. package/dist/bin/forgebook/initCommands.mjs.map +0 -1
  763. package/dist/bin/forgebook/initConfig.d.ts.map +0 -1
  764. package/dist/bin/forgebook/initConfig.js.map +0 -1
  765. package/dist/bin/forgebook/mcpTools.d.ts.map +0 -1
  766. package/dist/bin/forgebook/mcpTools.js.map +0 -1
  767. package/dist/bin/forgebook/newStories.d.ts.map +0 -1
  768. package/dist/bin/forgebook/newStories.js.map +0 -1
  769. package/dist/bin/forgebook/newStoriesFile.d.ts.map +0 -1
  770. package/dist/bin/forgebook/newStoriesFile.js.map +0 -1
  771. package/dist/bin/forgebook/storyCheckRun.d.ts.map +0 -1
  772. package/dist/bin/forgebook/storyCheckRun.js.map +0 -1
  773. package/dist/bin/forgebook/touchWindowRun.d.ts.map +0 -1
  774. package/dist/bin/forgebook/touchWindowRun.js.map +0 -1
  775. package/dist/bin/forgebook-docs/catalogueDocs.d.ts.map +0 -1
  776. package/dist/bin/forgebook-docs/catalogueDocs.js.map +0 -1
  777. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +0 -1
  778. package/dist/bin/forgebook-docs/catalogueDocs.types.js.map +0 -1
  779. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +0 -1
  780. package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +0 -1
  781. package/dist/bin/forgebook-docs/catalogueOptions.d.ts.map +0 -1
  782. package/dist/bin/forgebook-docs/catalogueOptions.js.map +0 -1
  783. package/dist/bin/forgebook-docs/collectDocs.d.ts.map +0 -1
  784. package/dist/bin/forgebook-docs/collectDocs.js.map +0 -1
  785. package/dist/bin/forgebook-docs/forgebook-docs.d.mts.map +0 -1
  786. package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +0 -1
  787. package/dist/bin/forgebook-docs/llmsText.d.ts.map +0 -1
  788. package/dist/bin/forgebook-docs/llmsText.js.map +0 -1
  789. package/dist/bin/forgebook-docs/moduleDocs.d.ts.map +0 -1
  790. package/dist/bin/forgebook-docs/moduleDocs.js.map +0 -1
  791. package/dist/bin/forgebook-docs/sassDocs.d.ts.map +0 -1
  792. package/dist/bin/forgebook-docs/sassDocs.js.map +0 -1
  793. package/dist/bin/forgebook-docs/sourceId.d.ts +0 -9
  794. package/dist/bin/forgebook-docs/sourceId.d.ts.map +0 -1
  795. package/dist/bin/forgebook-docs/sourceId.js +0 -45
  796. package/dist/bin/forgebook-docs/sourceId.js.map +0 -1
  797. package/dist/bin/forgebook-texts/forgebook-texts.d.mts.map +0 -1
  798. package/dist/bin/forgebook-texts/forgebook-texts.mjs.map +0 -1
  799. package/dist/bin/forgebook-texts/storyTextsReport.d.ts.map +0 -1
  800. package/dist/bin/forgebook-texts/storyTextsReport.js.map +0 -1
  801. package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts.map +0 -1
  802. package/dist/bin/forgebook-texts/storyTextsReport.types.js.map +0 -1
  803. package/dist/bin/frameworkDocs.d.ts.map +0 -1
  804. package/dist/bin/frameworkDocs.js.map +0 -1
  805. package/dist/src/a11y.d.ts.map +0 -1
  806. package/dist/src/a11y.js.map +0 -1
  807. package/dist/src/argTypes.d.ts.map +0 -1
  808. package/dist/src/argTypes.js.map +0 -1
  809. package/dist/src/backdrops.d.ts.map +0 -1
  810. package/dist/src/backdrops.js.map +0 -1
  811. package/dist/src/catalogue.d.ts.map +0 -1
  812. package/dist/src/catalogue.js.map +0 -1
  813. package/dist/src/componentDocs.d.ts.map +0 -1
  814. package/dist/src/componentDocs.js.map +0 -1
  815. package/dist/src/controlKeys.d.ts.map +0 -1
  816. package/dist/src/controlKeys.js.map +0 -1
  817. package/dist/src/frame/checkStory.d.ts.map +0 -1
  818. package/dist/src/frame/checkStory.js.map +0 -1
  819. package/dist/src/frame/frameClock.d.ts.map +0 -1
  820. package/dist/src/frame/frameClock.js.map +0 -1
  821. package/dist/src/frame/frameStatus.d.ts.map +0 -1
  822. package/dist/src/frame/frameStatus.js.map +0 -1
  823. package/dist/src/frame/frameView.d.ts.map +0 -1
  824. package/dist/src/frame/frameView.js.map +0 -1
  825. package/dist/src/frame/matrixLayout.d.ts.map +0 -1
  826. package/dist/src/frame/matrixLayout.js.map +0 -1
  827. package/dist/src/frame/measureTools.d.ts.map +0 -1
  828. package/dist/src/frame/measureTools.js.map +0 -1
  829. package/dist/src/frame/mountFrame.d.ts.map +0 -1
  830. package/dist/src/frame/mountFrame.js.map +0 -1
  831. package/dist/src/frame/playStory.d.ts.map +0 -1
  832. package/dist/src/frame/playStory.js.map +0 -1
  833. package/dist/src/frame/renderer.d.ts.map +0 -1
  834. package/dist/src/frame/renderer.js.map +0 -1
  835. package/dist/src/frame/settle.d.ts.map +0 -1
  836. package/dist/src/frame/settle.js.map +0 -1
  837. package/dist/src/frame/spillOutline.d.ts.map +0 -1
  838. package/dist/src/frame/spillOutline.js.map +0 -1
  839. package/dist/src/frame/staleModule.d.ts.map +0 -1
  840. package/dist/src/frame/staleModule.js.map +0 -1
  841. package/dist/src/frame/storyCanvas.d.ts.map +0 -1
  842. package/dist/src/frame/storyCanvas.js.map +0 -1
  843. package/dist/src/frame/storyHooks.d.ts.map +0 -1
  844. package/dist/src/frame/storyHooks.js.map +0 -1
  845. package/dist/src/frame/storyModule.d.ts.map +0 -1
  846. package/dist/src/frame/storyModule.js.map +0 -1
  847. package/dist/src/frame/storyRun.d.ts.map +0 -1
  848. package/dist/src/frame/storyRun.js.map +0 -1
  849. package/dist/src/frame/touchDots.d.ts.map +0 -1
  850. package/dist/src/frame/touchDots.js.map +0 -1
  851. package/dist/src/frame/touchEvents.d.ts.map +0 -1
  852. package/dist/src/frame/touchEvents.js.map +0 -1
  853. package/dist/src/frame/touchGesture.d.ts.map +0 -1
  854. package/dist/src/frame/touchGesture.js.map +0 -1
  855. package/dist/src/frame/touchLayer.d.ts.map +0 -1
  856. package/dist/src/frame/touchLayer.js.map +0 -1
  857. package/dist/src/frame/touchScroll.d.ts.map +0 -1
  858. package/dist/src/frame/touchScroll.js.map +0 -1
  859. package/dist/src/languages.d.ts.map +0 -1
  860. package/dist/src/languages.js.map +0 -1
  861. package/dist/src/liveErrors.d.ts.map +0 -1
  862. package/dist/src/liveErrors.js.map +0 -1
  863. package/dist/src/matrix.d.ts.map +0 -1
  864. package/dist/src/matrix.js.map +0 -1
  865. package/dist/src/messages.d.ts.map +0 -1
  866. package/dist/src/messages.js.map +0 -1
  867. package/dist/src/namedValues.d.ts.map +0 -1
  868. package/dist/src/namedValues.js.map +0 -1
  869. package/dist/src/namedViews.d.ts.map +0 -1
  870. package/dist/src/namedViews.js.map +0 -1
  871. package/dist/src/pageConfig.d.ts.map +0 -1
  872. package/dist/src/pageConfig.js.map +0 -1
  873. package/dist/src/playTrace.d.ts.map +0 -1
  874. package/dist/src/playTrace.js.map +0 -1
  875. package/dist/src/realTouch.d.ts.map +0 -1
  876. package/dist/src/realTouch.js.map +0 -1
  877. package/dist/src/shell/A11yTab.d.ts.map +0 -1
  878. package/dist/src/shell/A11yTab.js.map +0 -1
  879. package/dist/src/shell/ApiReference.d.ts.map +0 -1
  880. package/dist/src/shell/ApiReference.js.map +0 -1
  881. package/dist/src/shell/AppearanceMenu.d.ts.map +0 -1
  882. package/dist/src/shell/AppearanceMenu.js.map +0 -1
  883. package/dist/src/shell/BoxWidth.d.ts.map +0 -1
  884. package/dist/src/shell/BoxWidth.js.map +0 -1
  885. package/dist/src/shell/ClockControls.d.ts.map +0 -1
  886. package/dist/src/shell/ClockControls.js.map +0 -1
  887. package/dist/src/shell/Code.d.ts.map +0 -1
  888. package/dist/src/shell/Code.js.map +0 -1
  889. package/dist/src/shell/CodeTab.d.ts.map +0 -1
  890. package/dist/src/shell/CodeTab.js.map +0 -1
  891. package/dist/src/shell/CodeText.d.ts.map +0 -1
  892. package/dist/src/shell/CodeText.js.map +0 -1
  893. package/dist/src/shell/ComponentPage.d.ts.map +0 -1
  894. package/dist/src/shell/ComponentPage.js.map +0 -1
  895. package/dist/src/shell/ControlKeyField.d.ts.map +0 -1
  896. package/dist/src/shell/ControlKeyField.js.map +0 -1
  897. package/dist/src/shell/ControlRow.d.ts.map +0 -1
  898. package/dist/src/shell/ControlRow.js.map +0 -1
  899. package/dist/src/shell/Dock.d.ts.map +0 -1
  900. package/dist/src/shell/Dock.js.map +0 -1
  901. package/dist/src/shell/EventsTab.d.ts.map +0 -1
  902. package/dist/src/shell/EventsTab.js.map +0 -1
  903. package/dist/src/shell/Example.d.ts.map +0 -1
  904. package/dist/src/shell/Example.js.map +0 -1
  905. package/dist/src/shell/FrameView.d.ts.map +0 -1
  906. package/dist/src/shell/FrameView.js.map +0 -1
  907. package/dist/src/shell/HomePage.d.ts.map +0 -1
  908. package/dist/src/shell/HomePage.js.map +0 -1
  909. package/dist/src/shell/InfoTip.d.ts.map +0 -1
  910. package/dist/src/shell/InfoTip.js.map +0 -1
  911. package/dist/src/shell/InteractionsTab.d.ts.map +0 -1
  912. package/dist/src/shell/InteractionsTab.js.map +0 -1
  913. package/dist/src/shell/MatrixPicker.d.ts.map +0 -1
  914. package/dist/src/shell/MatrixPicker.js.map +0 -1
  915. package/dist/src/shell/NamedViews.d.ts.map +0 -1
  916. package/dist/src/shell/NamedViews.js.map +0 -1
  917. package/dist/src/shell/PackageHtml.d.ts.map +0 -1
  918. package/dist/src/shell/PackageHtml.js.map +0 -1
  919. package/dist/src/shell/PartsTab.d.ts.map +0 -1
  920. package/dist/src/shell/PartsTab.js.map +0 -1
  921. package/dist/src/shell/PinnedControl.d.ts.map +0 -1
  922. package/dist/src/shell/PinnedControl.js.map +0 -1
  923. package/dist/src/shell/PropFields.d.ts.map +0 -1
  924. package/dist/src/shell/PropFields.js.map +0 -1
  925. package/dist/src/shell/PropsTab.d.ts.map +0 -1
  926. package/dist/src/shell/PropsTab.js.map +0 -1
  927. package/dist/src/shell/Segmented.d.ts.map +0 -1
  928. package/dist/src/shell/Segmented.js.map +0 -1
  929. package/dist/src/shell/Shell.d.ts.map +0 -1
  930. package/dist/src/shell/Shell.js.map +0 -1
  931. package/dist/src/shell/Sidebar.d.ts.map +0 -1
  932. package/dist/src/shell/Sidebar.js.map +0 -1
  933. package/dist/src/shell/SidebarEntries.d.ts.map +0 -1
  934. package/dist/src/shell/SidebarEntries.js.map +0 -1
  935. package/dist/src/shell/SidebarHandle.d.ts.map +0 -1
  936. package/dist/src/shell/SidebarHandle.js.map +0 -1
  937. package/dist/src/shell/Stage.d.ts.map +0 -1
  938. package/dist/src/shell/Stage.js.map +0 -1
  939. package/dist/src/shell/StageTools.d.ts.map +0 -1
  940. package/dist/src/shell/StageTools.js.map +0 -1
  941. package/dist/src/shell/StageViewport.d.ts.map +0 -1
  942. package/dist/src/shell/StageViewport.js.map +0 -1
  943. package/dist/src/shell/StoryCodeBlock.d.ts.map +0 -1
  944. package/dist/src/shell/StoryCodeBlock.js.map +0 -1
  945. package/dist/src/shell/StoryPicker.d.ts.map +0 -1
  946. package/dist/src/shell/StoryPicker.js.map +0 -1
  947. package/dist/src/shell/Toolbar.d.ts.map +0 -1
  948. package/dist/src/shell/Toolbar.js.map +0 -1
  949. package/dist/src/shell/ToolbarControl.d.ts.map +0 -1
  950. package/dist/src/shell/ToolbarControl.js.map +0 -1
  951. package/dist/src/shell/UsedIn.d.ts.map +0 -1
  952. package/dist/src/shell/UsedIn.js.map +0 -1
  953. package/dist/src/shell/ViewMenu.d.ts.map +0 -1
  954. package/dist/src/shell/ViewMenu.js.map +0 -1
  955. package/dist/src/shell/WidthField.d.ts.map +0 -1
  956. package/dist/src/shell/WidthField.js.map +0 -1
  957. package/dist/src/shell/catalogueContext.d.ts.map +0 -1
  958. package/dist/src/shell/catalogueContext.js.map +0 -1
  959. package/dist/src/shell/codeTokens.d.ts.map +0 -1
  960. package/dist/src/shell/codeTokens.js.map +0 -1
  961. package/dist/src/shell/codeWriter.d.ts.map +0 -1
  962. package/dist/src/shell/codeWriter.js.map +0 -1
  963. package/dist/src/shell/compareVariants.d.ts.map +0 -1
  964. package/dist/src/shell/compareVariants.js.map +0 -1
  965. package/dist/src/shell/controlCycle.d.ts.map +0 -1
  966. package/dist/src/shell/controlCycle.js.map +0 -1
  967. package/dist/src/shell/dockTabs.d.ts.map +0 -1
  968. package/dist/src/shell/dockTabs.js.map +0 -1
  969. package/dist/src/shell/icons.d.ts.map +0 -1
  970. package/dist/src/shell/icons.js.map +0 -1
  971. package/dist/src/shell/keyboard.d.ts.map +0 -1
  972. package/dist/src/shell/keyboard.js.map +0 -1
  973. package/dist/src/shell/mountShell.d.ts.map +0 -1
  974. package/dist/src/shell/mountShell.js.map +0 -1
  975. package/dist/src/shell/storyTouch.d.ts.map +0 -1
  976. package/dist/src/shell/storyTouch.js.map +0 -1
  977. package/dist/src/shell/strings.d.ts.map +0 -1
  978. package/dist/src/shell/strings.js.map +0 -1
  979. package/dist/src/shell/switchView.d.ts.map +0 -1
  980. package/dist/src/shell/switchView.js.map +0 -1
  981. package/dist/src/shell/treeSearch.d.ts.map +0 -1
  982. package/dist/src/shell/treeSearch.js.map +0 -1
  983. package/dist/src/shell/useAppearance.d.ts.map +0 -1
  984. package/dist/src/shell/useAppearance.js.map +0 -1
  985. package/dist/src/shell/useComponentDocs.d.ts.map +0 -1
  986. package/dist/src/shell/useComponentDocs.js.map +0 -1
  987. package/dist/src/shell/useControlKeys.d.ts.map +0 -1
  988. package/dist/src/shell/useControlKeys.js.map +0 -1
  989. package/dist/src/shell/useCopy.d.ts.map +0 -1
  990. package/dist/src/shell/useCopy.js.map +0 -1
  991. package/dist/src/shell/useFold.d.ts.map +0 -1
  992. package/dist/src/shell/useFold.js.map +0 -1
  993. package/dist/src/shell/useFrameMessages.d.ts.map +0 -1
  994. package/dist/src/shell/useFrameMessages.js.map +0 -1
  995. package/dist/src/shell/useFrameQueue.d.ts.map +0 -1
  996. package/dist/src/shell/useFrameQueue.js.map +0 -1
  997. package/dist/src/shell/useFullPage.d.ts.map +0 -1
  998. package/dist/src/shell/useFullPage.js.map +0 -1
  999. package/dist/src/shell/useLiveView.d.ts.map +0 -1
  1000. package/dist/src/shell/useLiveView.js.map +0 -1
  1001. package/dist/src/shell/useLoaded.d.ts.map +0 -1
  1002. package/dist/src/shell/useLoaded.js.map +0 -1
  1003. package/dist/src/shell/usePageDoc.d.ts.map +0 -1
  1004. package/dist/src/shell/usePageDoc.js.map +0 -1
  1005. package/dist/src/shell/usePopover.d.ts.map +0 -1
  1006. package/dist/src/shell/usePopover.js.map +0 -1
  1007. package/dist/src/shell/useRecentPages.d.ts.map +0 -1
  1008. package/dist/src/shell/useRecentPages.js.map +0 -1
  1009. package/dist/src/shell/useScrollMemory.d.ts.map +0 -1
  1010. package/dist/src/shell/useScrollMemory.js.map +0 -1
  1011. package/dist/src/shell/useSidebarLayout.d.ts.map +0 -1
  1012. package/dist/src/shell/useSidebarLayout.js.map +0 -1
  1013. package/dist/src/shell/useStored.d.ts.map +0 -1
  1014. package/dist/src/shell/useStored.js.map +0 -1
  1015. package/dist/src/shell/useStoryCode.d.ts.map +0 -1
  1016. package/dist/src/shell/useStoryCode.js.map +0 -1
  1017. package/dist/src/shell/useStoryHeights.d.ts.map +0 -1
  1018. package/dist/src/shell/useStoryHeights.js.map +0 -1
  1019. package/dist/src/shell/useStoryIdsElement.d.ts.map +0 -1
  1020. package/dist/src/shell/useStoryIdsElement.js.map +0 -1
  1021. package/dist/src/shell/useStoryKeys.d.ts.map +0 -1
  1022. package/dist/src/shell/useStoryKeys.js.map +0 -1
  1023. package/dist/src/shell/useSystemDark.d.ts.map +0 -1
  1024. package/dist/src/shell/useSystemDark.js.map +0 -1
  1025. package/dist/src/shell/useToolbarLayout.d.ts.map +0 -1
  1026. package/dist/src/shell/useToolbarLayout.js.map +0 -1
  1027. package/dist/src/shell/useToolbarOverflow.d.ts.map +0 -1
  1028. package/dist/src/shell/useToolbarOverflow.js.map +0 -1
  1029. package/dist/src/shell/useWorstCase.d.ts.map +0 -1
  1030. package/dist/src/shell/useWorstCase.js.map +0 -1
  1031. package/dist/src/shell/worstArgs.d.ts.map +0 -1
  1032. package/dist/src/shell/worstArgs.js.map +0 -1
  1033. package/dist/src/sourceFiles.d.ts.map +0 -1
  1034. package/dist/src/sourceFiles.js.map +0 -1
  1035. package/dist/src/spills.d.ts.map +0 -1
  1036. package/dist/src/spills.js.map +0 -1
  1037. package/dist/src/storyBackground.d.ts.map +0 -1
  1038. package/dist/src/storyBackground.js.map +0 -1
  1039. package/dist/src/storyCheck.d.ts.map +0 -1
  1040. package/dist/src/storyCheck.js.map +0 -1
  1041. package/dist/src/storyClock.d.ts.map +0 -1
  1042. package/dist/src/storyClock.js.map +0 -1
  1043. package/dist/src/storyGlobals.d.ts.map +0 -1
  1044. package/dist/src/storyGlobals.js.map +0 -1
  1045. package/dist/src/storyHeights.d.ts.map +0 -1
  1046. package/dist/src/storyHeights.js.map +0 -1
  1047. package/dist/src/storyIdsElement.d.ts.map +0 -1
  1048. package/dist/src/storyIdsElement.js.map +0 -1
  1049. package/dist/src/storyTexts.d.ts.map +0 -1
  1050. package/dist/src/storyTexts.js.map +0 -1
  1051. package/dist/src/storyTree.d.ts.map +0 -1
  1052. package/dist/src/storyTree.js.map +0 -1
  1053. package/dist/src/switches.d.ts.map +0 -1
  1054. package/dist/src/switches.js.map +0 -1
  1055. package/dist/src/toolbarLayout.d.ts.map +0 -1
  1056. package/dist/src/toolbarLayout.js.map +0 -1
  1057. package/dist/src/usedIn.d.ts.map +0 -1
  1058. package/dist/src/usedIn.js.map +0 -1
  1059. package/dist/src/viewState.d.ts.map +0 -1
  1060. package/dist/src/viewState.js.map +0 -1
  1061. package/dist/src/viewWords.d.ts.map +0 -1
  1062. package/dist/src/viewWords.js.map +0 -1
  1063. package/dist/src/vite/adapter.d.ts.map +0 -1
  1064. package/dist/src/vite/adapter.js.map +0 -1
  1065. package/dist/src/vite/agent.types.d.ts.map +0 -1
  1066. package/dist/src/vite/agent.types.js.map +0 -1
  1067. package/dist/src/vite/agentApi.d.ts.map +0 -1
  1068. package/dist/src/vite/agentApi.js.map +0 -1
  1069. package/dist/src/vite/agentRoutes.d.ts.map +0 -1
  1070. package/dist/src/vite/agentRoutes.js.map +0 -1
  1071. package/dist/src/vite/autoTitle.d.ts.map +0 -1
  1072. package/dist/src/vite/autoTitle.js.map +0 -1
  1073. package/dist/src/vite/componentPage.d.ts.map +0 -1
  1074. package/dist/src/vite/componentPage.js.map +0 -1
  1075. package/dist/src/vite/config.d.ts.map +0 -1
  1076. package/dist/src/vite/config.js.map +0 -1
  1077. package/dist/src/vite/configFile.d.ts.map +0 -1
  1078. package/dist/src/vite/configFile.js.map +0 -1
  1079. package/dist/src/vite/docsExtractor.d.ts.map +0 -1
  1080. package/dist/src/vite/docsExtractor.js.map +0 -1
  1081. package/dist/src/vite/docsProgram.d.ts.map +0 -1
  1082. package/dist/src/vite/docsProgram.js.map +0 -1
  1083. package/dist/src/vite/docsWorker.d.ts.map +0 -1
  1084. package/dist/src/vite/docsWorker.js.map +0 -1
  1085. package/dist/src/vite/forcedStates.d.ts.map +0 -1
  1086. package/dist/src/vite/forcedStates.js.map +0 -1
  1087. package/dist/src/vite/forgebookPlugin.d.ts.map +0 -1
  1088. package/dist/src/vite/forgebookPlugin.js.map +0 -1
  1089. package/dist/src/vite/highlightCode.d.ts.map +0 -1
  1090. package/dist/src/vite/highlightCode.js.map +0 -1
  1091. package/dist/src/vite/indexStoryFile.d.ts.map +0 -1
  1092. package/dist/src/vite/indexStoryFile.js.map +0 -1
  1093. package/dist/src/vite/mcpProtocol.d.ts.map +0 -1
  1094. package/dist/src/vite/mcpProtocol.js.map +0 -1
  1095. package/dist/src/vite/pages.d.ts.map +0 -1
  1096. package/dist/src/vite/pages.js.map +0 -1
  1097. package/dist/src/vite/prebundled.d.ts.map +0 -1
  1098. package/dist/src/vite/prebundled.js.map +0 -1
  1099. package/dist/src/vite/storyCode.d.ts.map +0 -1
  1100. package/dist/src/vite/storyCode.js.map +0 -1
  1101. package/dist/src/vite/storyFilesModule.d.ts.map +0 -1
  1102. package/dist/src/vite/storyFilesModule.js.map +0 -1
  1103. package/dist/src/vite/storyMeta.d.ts.map +0 -1
  1104. package/dist/src/vite/storyMeta.js.map +0 -1
  1105. package/dist/src/vite/touchMedia.d.ts.map +0 -1
  1106. package/dist/src/vite/touchMedia.js.map +0 -1
  1107. package/dist/src/vite/typeScriptPieces.d.ts.map +0 -1
  1108. package/dist/src/vite/typeScriptPieces.js.map +0 -1
  1109. package/dist/src/vite/usageGraph.d.ts.map +0 -1
  1110. package/dist/src/vite/usageGraph.js.map +0 -1
  1111. package/dist/src/vite/usageModule.d.ts.map +0 -1
  1112. package/dist/src/vite/usageModule.js.map +0 -1
  1113. package/dist/src/worstCase.d.ts.map +0 -1
  1114. package/dist/src/worstCase.js.map +0 -1
@@ -0,0 +1,25 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * A plugin's tab in the panel: what it is told. The dock draws a tab's content only while it is chosen, so a view's own
4
+ * state goes when another tab is chosen; a frame's report does not, since the stage keeps it.
5
+ *
6
+ * @module
7
+ */
8
+ import { useCallback, useMemo, useRef } from "react";
9
+ import { showAsideStory } from "./asideStory.js";
10
+ import { PluginViewHost, pluginText, useShellAppearance } from "./PluginViewHost.js";
11
+ /**
12
+ * A plugin's tab.
13
+ *
14
+ * @param props - how it loads, and what it is told.
15
+ */
16
+ export const PluginTabHost = ({ load, pluginId, strings, story, report, aside }) => {
17
+ const appearance = useShellAppearance();
18
+ // read when the view asks: the stage of that moment, without a new context for every change of the stage
19
+ const asideRef = useRef(aside);
20
+ asideRef.current = aside;
21
+ const showStory = useCallback((target, { title }) => showAsideStory(target, title, asideRef.current), []);
22
+ const text = useMemo(() => pluginText(strings, pluginId), [strings, pluginId]);
23
+ const context = useMemo(() => ({ appearance, text, story, report, showStory }), [appearance, text, story, report, showStory]);
24
+ return _jsx(PluginViewHost, { load: load, context: context });
25
+ };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * A plugin's view in its place: loads its module, hands it an element and its context, keeps it up to date, and takes
3
+ * it away.
4
+ *
5
+ * @remarks
6
+ * Loads with the first plugin view shown. A view is someone else's code: one that cannot load, or that throws, is said
7
+ * in its place and leaves the shell standing.
8
+ *
9
+ * @module
10
+ */
11
+ import { type ReactNode } from "react";
12
+ import type { PluginTabContext, PluginView, PluginViewContext } from "../plugin.ts";
13
+ /**
14
+ * The shell's appearance, followed while a view is shown.
15
+ *
16
+ * @returns the appearance.
17
+ */
18
+ export declare const useShellAppearance: () => PluginTabContext["appearance"];
19
+ /**
20
+ * What a plugin's text says.
21
+ *
22
+ * @param strings - the texts the catalogue replaces, by name.
23
+ * @param pluginId - the plugin's id.
24
+ * @returns the context's `text`.
25
+ */
26
+ export declare const pluginText: (strings: Readonly<Record<string, string>>, pluginId: string) => PluginViewContext["text"];
27
+ /**
28
+ * A plugin's view.
29
+ *
30
+ * @param props - how it loads, and what it is told.
31
+ */
32
+ export declare const PluginViewHost: <TContext extends PluginViewContext>({ load, context }: {
33
+ readonly load: () => Promise<{
34
+ readonly view: PluginView<TContext>;
35
+ }>;
36
+ readonly context: TContext;
37
+ }) => ReactNode;
@@ -0,0 +1,89 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * A plugin's view in its place: loads its module, hands it an element and its context, keeps it up to date, and takes
4
+ * it away.
5
+ *
6
+ * @remarks
7
+ * Loads with the first plugin view shown. A view is someone else's code: one that cannot load, or that throws, is said
8
+ * in its place and leaves the shell standing.
9
+ *
10
+ * @module
11
+ */
12
+ import { useEffect, useRef, useState } from "react";
13
+ import { LATER_STRINGS } from "./laterStrings.js";
14
+ import { APPEARANCE_ATTRIBUTE } from "./useAppearance.js";
15
+ /** The shell's appearance, as its root says it now. */
16
+ const appearanceNow = () => document.documentElement.getAttribute(APPEARANCE_ATTRIBUTE) === "dark" ? "dark" : "light";
17
+ /**
18
+ * The shell's appearance, followed while a view is shown.
19
+ *
20
+ * @returns the appearance.
21
+ */
22
+ export const useShellAppearance = () => {
23
+ const [appearance, setAppearance] = useState(appearanceNow);
24
+ useEffect(() => {
25
+ const observer = new MutationObserver(() => setAppearance(appearanceNow()));
26
+ observer.observe(document.documentElement, { attributes: true, attributeFilter: [APPEARANCE_ATTRIBUTE] });
27
+ return () => observer.disconnect();
28
+ }, []);
29
+ return appearance;
30
+ };
31
+ /**
32
+ * What a plugin's text says.
33
+ *
34
+ * @param strings - the texts the catalogue replaces, by name.
35
+ * @param pluginId - the plugin's id.
36
+ * @returns the context's `text`.
37
+ */
38
+ export const pluginText = (strings, pluginId) => (key, fallback, values = {}) => (strings[`plugin.${pluginId}.${key}`] ?? fallback).replace(/\{(\w+)\}/g, (written, name) => values[name] ?? written);
39
+ /** An error as a sentence. */
40
+ const messageOf = (error) => (error instanceof Error ? error.message : String(error));
41
+ /**
42
+ * A plugin's view.
43
+ *
44
+ * @param props - how it loads, and what it is told.
45
+ */
46
+ export const PluginViewHost = ({ load, context }) => {
47
+ const targetRef = useRef(null);
48
+ const viewRef = useRef(undefined);
49
+ const [problem, setProblem] = useState(undefined);
50
+ const contextRef = useRef(context);
51
+ contextRef.current = context;
52
+ useEffect(() => {
53
+ let isCurrent = true;
54
+ load()
55
+ .then((module) => {
56
+ const target = targetRef.current;
57
+ if (isCurrent && target !== null)
58
+ viewRef.current = module.view(target, contextRef.current);
59
+ })
60
+ .catch((error) => {
61
+ if (isCurrent)
62
+ setProblem(messageOf(error));
63
+ });
64
+ return () => {
65
+ isCurrent = false;
66
+ try {
67
+ viewRef.current?.unmount();
68
+ }
69
+ catch (error) {
70
+ // nobody is left to read it in place, and thrown here it would take the shell down
71
+ window.reportError(error);
72
+ }
73
+ viewRef.current = undefined;
74
+ };
75
+ }, [load]);
76
+ useEffect(() => {
77
+ try {
78
+ viewRef.current?.update(context);
79
+ }
80
+ catch (error) {
81
+ setProblem(messageOf(error));
82
+ }
83
+ }, [context]);
84
+ if (problem !== undefined) {
85
+ return (_jsxs("p", { className: "forgebook-problems", role: "alert", children: [LATER_STRINGS.pluginError, ": ", problem] }));
86
+ }
87
+ // no box of its own: a view's height reads its place's
88
+ return _jsx("div", { ref: targetRef, style: { display: "contents" } });
89
+ };
@@ -28,4 +28,3 @@ export declare const NumberField: ({ prop, value, descriptionId, onValueChange }
28
28
  readonly descriptionId: string;
29
29
  readonly onValueChange: OnValueChange;
30
30
  }) => ReactNode;
31
- //# sourceMappingURL=PropFields.d.ts.map
@@ -78,4 +78,3 @@ export const NumberField = ({ prop, value, descriptionId, onValueChange }) => {
78
78
  const change = (text) => onValueChange(prop.name, text === "" ? undefined : Number(text));
79
79
  return (_jsxs(_Fragment, { children: [prop.control === "range" ? (_jsx("input", { type: "range", "aria-label": label, "aria-describedby": descriptionId, ...bounds, value: typeof value === "number" ? value : (prop.min ?? 0), onChange: (event) => change(event.target.value) })) : null, _jsx("input", { type: "number", "aria-label": prop.control === "range" ? STRINGS.rangeValue(label) : label, "aria-describedby": descriptionId, ...bounds, value: textOf(value), onChange: (event) => change(event.target.value) })] }));
80
80
  };
81
- //# sourceMappingURL=PropFields.js.map
@@ -5,6 +5,11 @@
5
5
  * (`argTypes.ts`): a control they name (a list, buttons, checkboxes, a range, a colour, a date) wins over the one
6
6
  * the prop's type gives.
7
7
  *
8
+ * @remarks
9
+ * Props whose TSDoc names a group (`@group Selection`) are listed under its name after the others, as the API reference
10
+ * lists them (`propGroups.ts`): each group's controls, its toggles, then its props the panel cannot set. Each starts
11
+ * open, and a reader may fold it away. A component whose props name no group shows the tab as it always was.
12
+ *
8
13
  * @module
9
14
  */
10
15
  import type { StoryControlsSetting } from "@forgebook/story-format/source";
@@ -38,11 +43,15 @@ export type PropsTabProps = {
38
43
  readonly namedValues?: NamedValues | undefined;
39
44
  /** The props the story gives a text by its key, by name; none by default. */
40
45
  readonly textArgs?: Readonly<Record<string, TextArgNote>>;
46
+ /**
47
+ * The prop groups the component's meta lists first, in order (`parameters.propGroups`), ahead of the catalogue's;
48
+ * none by default.
49
+ */
50
+ readonly componentGroups?: readonly string[];
41
51
  };
42
52
  /**
43
53
  * The Props tab.
44
54
  *
45
55
  * @param props - the props, the values, which props the story lets the panel set, and the setters.
46
56
  */
47
- export declare const PropsTab: ({ props, values, controls, onValueChange, onReset, worstCase, namedValues, textArgs }: PropsTabProps) => ReactNode;
48
- //# sourceMappingURL=PropsTab.d.ts.map
57
+ export declare const PropsTab: ({ props, values, controls, onValueChange, onReset, worstCase, namedValues, textArgs, componentGroups }: PropsTabProps) => ReactNode;
@@ -2,12 +2,17 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useId } from "react";
3
3
  import { isColorProp, isNamedProp, settableProps } from "../argTypes.js";
4
4
  import { isNamedArg } from "../messages.js";
5
+ import { groupedProps, propGroupOrder } from "../propGroups.js";
6
+ import { useCatalogue } from "./catalogueContext.js";
7
+ import { Icon } from "./icons.js";
5
8
  import { ChoiceControl, NumberField, textOf } from "./PropFields.js";
6
9
  import { STRINGS } from "./strings.js";
7
10
  /** A CSS colour as the colour picker takes it (`#rrggbb`), or black when the value is not one. */
8
11
  const pickerColor = (value) => typeof value === "string" && /^#[0-9a-f]{6}$/i.test(value) ? value : "#000000";
9
12
  /** No prop named by a text key. */
10
13
  const NO_TEXT_ARGS = {};
14
+ /** No group named first. */
15
+ const NO_GROUPS = [];
11
16
  /** A prop's name, whether it is required, and its type (whole in the tooltip when it is cut). */
12
17
  const PropHead = ({ prop }) => (_jsxs("div", { className: "forgebook-prop__head", children: [_jsxs("code", { className: "forgebook-prop__name", children: [prop.label ?? prop.name, prop.isRequired ? (_jsx("span", { className: "forgebook-prop__required", title: STRINGS.required, children: "*" })) : null] }), _jsx("code", { className: "forgebook-prop__type", title: prop.type, children: prop.type })] }));
13
18
  /** A prop's description and default, under its control. */
@@ -46,6 +51,20 @@ const Toggle = ({ prop, value, onValueChange }) => {
46
51
  const descriptionId = useId();
47
52
  return (_jsxs("label", { className: "forgebook-toggle", title: prop.description, children: [_jsx("input", { type: "checkbox", checked: value === true, "aria-describedby": descriptionId, onChange: (event) => onValueChange(prop.name, event.target.checked) }), _jsx("code", { children: prop.label ?? prop.name }), _jsx("span", { id: descriptionId, className: "forgebook-visually-hidden", children: prop.description })] }));
48
53
  };
54
+ /** A prop the panel cannot set: its name, its type and its description, for reading. */
55
+ const ReadOnlyProp = ({ prop }) => (_jsxs("div", { className: "forgebook-prop", children: [_jsx(PropHead, { prop: prop }), _jsx("p", { className: "forgebook-prop__description", children: prop.description })] }));
56
+ /**
57
+ * A group the props' TSDoc names, under its name: its controls in the order of the props, its toggles, then the props
58
+ * the panel cannot set.
59
+ *
60
+ * @param props - the group's name and props, and how each prop is drawn.
61
+ */
62
+ const NamedGroup = ({ name, props, isSettable, control, toggle }) => {
63
+ const controls = props.filter((prop) => isSettable(prop) && prop.kind !== "toggle");
64
+ const toggles = props.filter((prop) => isSettable(prop) && prop.kind === "toggle");
65
+ const others = props.filter((prop) => !isSettable(prop));
66
+ return (_jsx("div", { className: "forgebook-prop-group", children: _jsxs("details", { className: "forgebook-fold", open: true, children: [_jsxs("summary", { className: "forgebook-fold__summary forgebook-prop-group__title", children: [_jsx(Icon, { name: "chevronRight", size: 12 }), _jsx("h3", { className: "forgebook-fold__name", children: name }), _jsx("span", { className: "forgebook-fold__count", children: STRINGS.propCount(props.length) })] }), _jsxs("div", { className: "forgebook-prop-group__body", children: [controls.length === 0 ? null : _jsx("div", { className: "forgebook-prop-grid", children: controls.map(control) }), toggles.length === 0 ? null : _jsx("div", { className: "forgebook-toggles", children: toggles.map(toggle) }), others.length === 0 ? null : (_jsx("div", { className: "forgebook-prop-grid", children: others.map((prop) => (_jsx(ReadOnlyProp, { prop: prop }, prop.name))) }))] })] }) }));
67
+ };
49
68
  /**
50
69
  * The worst case's button, and once it is on, how many elements spill (the frame outlines them).
51
70
  *
@@ -57,9 +76,17 @@ const WorstCaseControl = ({ worstCase }) => (_jsxs(_Fragment, { children: [_jsx(
57
76
  *
58
77
  * @param props - the props, the values, which props the story lets the panel set, and the setters.
59
78
  */
60
- export const PropsTab = ({ props, values, controls, onValueChange, onReset, worstCase, namedValues = {}, textArgs = NO_TEXT_ARGS }) => {
79
+ export const PropsTab = ({ props, values, controls, onValueChange, onReset, worstCase, namedValues = {}, textArgs = NO_TEXT_ARGS, componentGroups = NO_GROUPS }) => {
80
+ const catalogue = useCatalogue();
61
81
  const isNamed = (prop) => isNamedProp(prop, namedValues);
62
- const settable = settableProps(props, controls, namedValues);
82
+ const allSettable = settableProps(props, controls, namedValues);
83
+ const isSettable = (prop) => allSettable.includes(prop);
84
+ const propGroups = groupedProps(props.filter((prop) => prop.kind !== "event"), propGroupOrder(componentGroups, catalogue.propGroups));
85
+ // the props that name no group are drawn as the tab always drew them, by control
86
+ const ungrouped = propGroups.find((group) => group.name === undefined)?.props ?? [];
87
+ const settable = allSettable.filter((prop) => ungrouped.includes(prop));
88
+ const control = (prop) => (_jsx(PropControl, { prop: prop, value: values[prop.name], named: isNamed(prop) ? namedValues[prop.type] : undefined, textArg: textArgs[prop.name], onValueChange: onValueChange }, prop.name));
89
+ const toggle = (prop) => (_jsx(Toggle, { prop: prop, value: values[prop.name], onValueChange: onValueChange }, prop.name));
63
90
  const groups = [
64
91
  {
65
92
  title: STRINGS.propGroups.choice,
@@ -71,8 +98,7 @@ export const PropsTab = ({ props, values, controls, onValueChange, onReset, wors
71
98
  }
72
99
  ].filter((group) => group.props.length > 0);
73
100
  const toggles = settable.filter((prop) => prop.kind === "toggle");
74
- const others = props.filter((prop) => prop.kind !== "event" && !settable.includes(prop));
101
+ const others = ungrouped.filter((prop) => !isSettable(prop));
75
102
  const hasControls = controls === "all" || controls.length > 0;
76
- return (_jsxs("div", { className: "forgebook-tab-props", children: [hasControls ? null : _jsx("p", { className: "forgebook-tab-note", children: STRINGS.fixedExamples }), groups.map((group) => (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: group.title }), _jsx("div", { className: "forgebook-prop-grid", children: group.props.map((prop) => (_jsx(PropControl, { prop: prop, value: values[prop.name], named: isNamed(prop) ? namedValues[prop.type] : undefined, textArg: textArgs[prop.name], onValueChange: onValueChange }, prop.name))) })] }, group.title))), toggles.length === 0 ? null : (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: STRINGS.propGroups.toggle }), _jsx("div", { className: "forgebook-toggles", children: toggles.map((prop) => (_jsx(Toggle, { prop: prop, value: values[prop.name], onValueChange: onValueChange }, prop.name))) })] })), others.length === 0 ? null : (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: hasControls ? STRINGS.otherProps : STRINGS.allProps }), _jsx("div", { className: "forgebook-prop-grid", children: others.map((prop) => (_jsxs("div", { className: "forgebook-prop", children: [_jsx(PropHead, { prop: prop }), _jsx("p", { className: "forgebook-prop__description", children: prop.description })] }, prop.name))) })] })), hasControls ? (_jsxs("div", { className: "forgebook-tab-foot", children: [_jsx("button", { type: "button", className: "forgebook-text-button", onClick: onReset, children: STRINGS.resetArgs }), worstCase?.canApply === true ? _jsx(WorstCaseControl, { worstCase: worstCase }) : null] })) : null] }));
103
+ return (_jsxs("div", { className: "forgebook-tab-props", children: [hasControls ? null : _jsx("p", { className: "forgebook-tab-note", children: STRINGS.fixedExamples }), groups.map((group) => (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: group.title }), _jsx("div", { className: "forgebook-prop-grid", children: group.props.map(control) })] }, group.title))), toggles.length === 0 ? null : (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: STRINGS.propGroups.toggle }), _jsx("div", { className: "forgebook-toggles", children: toggles.map(toggle) })] })), others.length === 0 ? null : (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: hasControls ? STRINGS.otherProps : STRINGS.allProps }), _jsx("div", { className: "forgebook-prop-grid", children: others.map((prop) => (_jsx(ReadOnlyProp, { prop: prop }, prop.name))) })] })), propGroups.map((group) => group.name === undefined ? null : (_jsx(NamedGroup, { name: group.name, props: group.props, isSettable: isSettable, control: control, toggle: toggle }, group.name))), hasControls ? (_jsxs("div", { className: "forgebook-tab-foot", children: [_jsx("button", { type: "button", className: "forgebook-text-button", onClick: onReset, children: STRINGS.resetArgs }), worstCase?.canApply === true ? _jsx(WorstCaseControl, { worstCase: worstCase }) : null] })) : null] }));
77
104
  };
78
- //# sourceMappingURL=PropsTab.js.map
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The search's results: beside the sidebar, what the words find across the catalogue, each component or docs page with
3
+ * what matched inside it and why, and a key for every move.
4
+ *
5
+ * @remarks
6
+ * Loaded with its style sheet on first use, and it loads the index only when something is typed, so a reader who never
7
+ * searches pays for neither. The focus stays in the search field, as a list that follows the words needs: the arrows
8
+ * move the row `aria-activedescendant` names. Every row is a real link, so a modified press opens a new tab. The results
9
+ * sit beside the tree, which goes on filtering by name: the tree is for browsing what the words leave, this list for
10
+ * going to the exact place.
11
+ *
12
+ * @module
13
+ */
14
+ import "./search.scss";
15
+ import type { StorySource } from "@forgebook/story-format/source";
16
+ import { type ReactNode, type RefObject } from "react";
17
+ import { type SearchTarget } from "../search.ts";
18
+ import type { StoryTree } from "../storyTree.ts";
19
+ import { shownTree } from "./treeSearch.ts";
20
+ /** What the search field asks of the list. */
21
+ export type SearchPanelKeys = {
22
+ /**
23
+ * Answers a key pressed in the field.
24
+ *
25
+ * @param key - the key.
26
+ * @param hasModifier - whether a key that opens a new tab is held.
27
+ * @returns whether the list used it.
28
+ */
29
+ readonly press: (key: string, hasModifier: boolean) => boolean;
30
+ };
31
+ /** The list's props. */
32
+ export type SearchPanelProps = {
33
+ /** The tree. */
34
+ readonly tree: StoryTree;
35
+ /** The sources, with the loaders of their index. */
36
+ readonly sources: readonly StorySource[];
37
+ /** What was typed. */
38
+ readonly query: string;
39
+ /** Whether the list shows: closed, it stays mounted, so the index and the place are kept. */
40
+ readonly isOpen: boolean;
41
+ /** The search field: the list opens from where it is. */
42
+ readonly field: RefObject<HTMLInputElement | null>;
43
+ /** The sidebar's width, in CSS px. */
44
+ readonly sidebarWidth: number;
45
+ /** Called with the tree's filter, which comes with the list. */
46
+ readonly onFilterReady: (filter: typeof shownTree) => void;
47
+ /** The address of a result. */
48
+ readonly hrefOf: (target: SearchTarget) => string;
49
+ /** Goes to a result. */
50
+ readonly onOpen: (target: SearchTarget) => void;
51
+ /** Called with the highlighted row's element id. */
52
+ readonly onActiveChange: (id: string | undefined) => void;
53
+ /** Filled with what the field asks of the list. */
54
+ readonly keysRef: RefObject<SearchPanelKeys | null>;
55
+ /** The list's element id, for the field's `aria-controls`. */
56
+ readonly id: string;
57
+ };
58
+ /**
59
+ * The search's results.
60
+ *
61
+ * @param props - what was typed, what can be found and how to go to it.
62
+ */
63
+ export declare const SearchPanel: ({ tree, sources, query, isOpen, field, sidebarWidth, onFilterReady, hrefOf, onOpen, onActiveChange, keysRef, id }: SearchPanelProps) => ReactNode;
@@ -0,0 +1,209 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * The search's results: beside the sidebar, what the words find across the catalogue, each component or docs page with
4
+ * what matched inside it and why, and a key for every move.
5
+ *
6
+ * @remarks
7
+ * Loaded with its style sheet on first use, and it loads the index only when something is typed, so a reader who never
8
+ * searches pays for neither. The focus stays in the search field, as a list that follows the words needs: the arrows
9
+ * move the row `aria-activedescendant` names. Every row is a real link, so a modified press opens a new tab. The results
10
+ * sit beside the tree, which goes on filtering by name: the tree is for browsing what the words leave, this list for
11
+ * going to the exact place.
12
+ *
13
+ * @module
14
+ */
15
+ import "./search.css";
16
+ import { useDeferredValue, useEffect, useId, useImperativeHandle, useLayoutEffect, useMemo, useRef, useState } from "react";
17
+ import { searchables, searchCatalogue } from "../search.js";
18
+ import { SEARCH_STRINGS } from "./searchStrings.js";
19
+ import { shownTree } from "./treeSearch.js";
20
+ import { useSearchIndex } from "./useSearchIndex.js";
21
+ /** How much a page shows: what a person reads before refining the words. */
22
+ const LIMITS = { results: 24, hits: 3 };
23
+ /** The narrowest window where the list opens beside the sidebar: a smaller one has it over the sidebar, under the field. */
24
+ const BESIDE_WIDTH = 720;
25
+ /** The room between the field and the list when the list opens under it, in CSS px. */
26
+ const LIST_GAP = 6;
27
+ /** The room the list leaves around it, in CSS px. */
28
+ const LIST_MARGIN = 8;
29
+ /** The list's widest: long enough for a sentence around a match. */
30
+ const LIST_WIDTH = "38rem";
31
+ /**
32
+ * Where the list sits: beside the sidebar, or under the field on a small window.
33
+ *
34
+ * @param field - where the field is.
35
+ * @param sidebarWidth - the sidebar's width, in CSS px.
36
+ */
37
+ const listPlace = (field, sidebarWidth) => {
38
+ if (window.innerWidth < BESIDE_WIDTH)
39
+ return { top: field.bottom + LIST_GAP, insetInline: LIST_MARGIN };
40
+ const start = sidebarWidth + LIST_MARGIN;
41
+ return {
42
+ top: field.top,
43
+ insetInlineStart: start,
44
+ width: `min(${LIST_WIDTH}, calc(100vw - ${start + LIST_MARGIN}px))`
45
+ };
46
+ };
47
+ /** How far each key moves the highlighted row. */
48
+ const KEY_STEPS = { ArrowDown: 1, ArrowUp: -1 };
49
+ /** The name of each kind of hit. */
50
+ const HIT_NAMES = {
51
+ prop: SEARCH_STRINGS.hitProp,
52
+ event: SEARCH_STRINGS.hitEvent,
53
+ story: SEARCH_STRINGS.hitStory,
54
+ heading: SEARCH_STRINGS.hitHeading,
55
+ text: SEARCH_STRINGS.hitText,
56
+ description: SEARCH_STRINGS.hitDescription
57
+ };
58
+ /** Whether a press is a modified one, left to the browser: a new tab or a download. */
59
+ const isModified = (event) => event.metaKey || event.ctrlKey || event.shiftKey || event.button !== 0;
60
+ /**
61
+ * A text with what matched marked.
62
+ *
63
+ * @param props - the pieces.
64
+ */
65
+ const Marked = ({ pieces }) => pieces.map((piece, place) =>
66
+ // the pieces of a text never move: their place is who they are
67
+ // biome-ignore lint/suspicious/noArrayIndexKey: see above
68
+ piece.isMatch ? _jsx("mark", { children: piece.text }, place) : _jsx("span", { children: piece.text }, place));
69
+ /** What a reason says. */
70
+ const reasonText = ({ place, means }) => {
71
+ if (means !== undefined)
72
+ return SEARCH_STRINGS.means(means);
73
+ if (place === "keyword")
74
+ return SEARCH_STRINGS.reasonKeyword;
75
+ return place === "title" ? SEARCH_STRINGS.reasonPlace : undefined;
76
+ };
77
+ /**
78
+ * A row's link.
79
+ *
80
+ * @param props - the row, whether it is highlighted, and how it opens.
81
+ */
82
+ const RowLink = ({ row, isActive, hrefOf, onOpen, onActive, className, children }) => (_jsx("a", { id: row.id, role: "option", tabIndex: -1, "aria-selected": isActive, "data-active": isActive ? "" : undefined, className: className, href: hrefOf(row.target), onPointerMove: onActive, onClick: (event) => {
83
+ if (isModified(event))
84
+ return;
85
+ event.preventDefault();
86
+ onOpen(row.target);
87
+ }, children: children }));
88
+ /**
89
+ * A hit's line: what it is, its name, the words around the match.
90
+ *
91
+ * @param props - the hit.
92
+ */
93
+ const HitLine = ({ hit }) => (_jsxs(_Fragment, { children: [_jsx("span", { className: "forgebook-result__why", children: HIT_NAMES[hit.kind] }), _jsxs("span", { className: "forgebook-result__body", children: [hit.label === undefined ? null : (_jsx("span", { className: "forgebook-result__label", "data-code": hit.kind === "prop" || hit.kind === "event" ? "" : undefined, children: _jsx(Marked, { pieces: hit.label }) })), hit.snippet.length === 0 ? null : (_jsx("span", { className: "forgebook-result__snippet", children: _jsx(Marked, { pieces: hit.snippet }) }))] })] }));
94
+ /**
95
+ * A result's own line: its name, where it sits, and why its name is there.
96
+ *
97
+ * @param props - the result.
98
+ */
99
+ const ResultLine = ({ result }) => {
100
+ const reasons = result.reasons.flatMap((reason) => reasonText(reason) ?? []);
101
+ return (_jsxs(_Fragment, { children: [_jsx("span", { className: "forgebook-result__name", children: _jsx(Marked, { pieces: result.name }) }), reasons.map((reason) => (_jsx("span", { className: "forgebook-result__why", children: reason }, reason))), _jsx("span", { className: "forgebook-result__place", children: result.place }), _jsx("span", { className: "forgebook-result__kind", children: result.kind === "page" ? SEARCH_STRINGS.kindPage : SEARCH_STRINGS.kindComponent })] }));
102
+ };
103
+ /**
104
+ * What a result leaves out: how much more is inside it, and the words it does not hold; nothing when it leaves out
105
+ * nothing.
106
+ *
107
+ * @param props - the result, and how many of its hits are listed.
108
+ */
109
+ const ResultNote = ({ result, listed }) => {
110
+ const more = result.hitCount - listed;
111
+ if (more === 0 && result.missed.length === 0)
112
+ return null;
113
+ return (_jsxs("p", { className: "forgebook-result__note", children: [more > 0 ? _jsx("span", { children: SEARCH_STRINGS.more(more) }) : null, result.missed.length > 0 ? _jsx("span", { children: SEARCH_STRINGS.missing(result.missed.join(", ")) }) : null] }));
114
+ };
115
+ /** The answer's rows, for the keys and the list. */
116
+ const useResultRows = (answer) => {
117
+ const baseId = useId();
118
+ return useMemo(() => answer.results.map((result, place) => ({
119
+ result,
120
+ own: { id: `${baseId}-${place}`, target: result.target },
121
+ hits: result.hits.map((hit, hitPlace) => ({
122
+ hit,
123
+ row: { id: `${baseId}-${place}-${hitPlace}`, target: hit.target }
124
+ }))
125
+ })), [answer, baseId]);
126
+ };
127
+ /** The highlighted row: moved by the keys and the pointer, kept in view, named to the field. */
128
+ const useActiveRow = ({ rows, isShown, hrefOf, onOpen, onActiveChange, keysRef }) => {
129
+ const [place, setPlace] = useState(0);
130
+ // new words, or an index that arrived, change what each place holds: Enter must not open what the reader never saw
131
+ // biome-ignore lint/correctness/useExhaustiveDependencies: the rows are what resets it
132
+ useEffect(() => setPlace(0), [rows]);
133
+ const active = rows[Math.min(place, rows.length - 1)];
134
+ const activeId = isShown ? active?.id : undefined;
135
+ useEffect(() => onActiveChange(activeId), [activeId, onActiveChange]);
136
+ const listRef = useRef(null);
137
+ useEffect(() => {
138
+ if (activeId === undefined)
139
+ return;
140
+ listRef.current?.querySelector(`[id="${CSS.escape(activeId)}"]`)?.scrollIntoView({ block: "nearest" });
141
+ }, [activeId]);
142
+ useImperativeHandle(keysRef, () => ({
143
+ press: (key, hasModifier) => {
144
+ if (activeId === undefined || active === undefined)
145
+ return false;
146
+ const step = KEY_STEPS[key];
147
+ if (step !== undefined)
148
+ setPlace((row) => (row + step + rows.length) % rows.length);
149
+ else if (key !== "Enter")
150
+ return false;
151
+ else if (hasModifier)
152
+ window.open(hrefOf(active.target), "_blank", "noopener");
153
+ else
154
+ onOpen(active.target);
155
+ return true;
156
+ }
157
+ }));
158
+ return { active, setActive: (row) => setPlace(rows.indexOf(row)), listRef };
159
+ };
160
+ /** The answer's state, in a line: how many results, what is still coming, what could not be read. */
161
+ const PanelStatus = ({ total, query, isLoading, hasFailed }) => (_jsxs("p", { className: "forgebook-search-panel__status", role: "status", children: [total === 0 && !isLoading ? _jsx("span", { children: SEARCH_STRINGS.nothing(query.trim()) }) : null, total > 0 ? _jsx("span", { children: SEARCH_STRINGS.count(total) }) : null, isLoading ? _jsx("span", { children: SEARCH_STRINGS.reading }) : null, hasFailed ? _jsx("span", { children: SEARCH_STRINGS.unreadable }) : null] }));
162
+ /**
163
+ * The search's results.
164
+ *
165
+ * @param props - what was typed, what can be found and how to go to it.
166
+ */
167
+ export const SearchPanel = ({ tree, sources, query, isOpen, field, sidebarWidth, onFilterReady, hrefOf, onOpen, onActiveChange, keysRef, id }) => {
168
+ useEffect(() => onFilterReady(shownTree), [onFilterReady]);
169
+ // the index is asked for once, by the first words
170
+ const hasQuery = query.trim() !== "";
171
+ const [isWanted, setIsWanted] = useState(hasQuery);
172
+ if (hasQuery && !isWanted)
173
+ setIsWanted(true);
174
+ const { indexes, isLoading, hasFailed } = useSearchIndex(sources, isWanted);
175
+ const all = useMemo(() => searchables(tree, indexes), [tree, indexes]);
176
+ // the field never waits for a long list
177
+ const words = useDeferredValue(query);
178
+ const answer = useMemo(() => searchCatalogue(all, words, LIMITS), [all, words]);
179
+ const results = useResultRows(answer);
180
+ const rows = useMemo(() => results.flatMap(({ own, hits }) => [own, ...hits.map(({ row }) => row)]), [results]);
181
+ const isShown = isOpen && hasQuery;
182
+ const panelRef = useRef(null);
183
+ // in the top layer: the sidebar's own stacking would otherwise leave the list under the page it opens over
184
+ useLayoutEffect(() => {
185
+ if (isShown)
186
+ panelRef.current?.showPopover();
187
+ }, [isShown]);
188
+ const rect = isShown ? field.current?.closest("label")?.getBoundingClientRect() : undefined;
189
+ const { active, setActive, listRef } = useActiveRow({
190
+ rows,
191
+ isShown,
192
+ hrefOf,
193
+ onOpen,
194
+ onActiveChange,
195
+ keysRef
196
+ });
197
+ if (!isShown)
198
+ return null;
199
+ const rowProps = (row) => ({
200
+ row,
201
+ hrefOf,
202
+ onOpen,
203
+ isActive: row.id === active?.id,
204
+ onActive: () => setActive(row)
205
+ });
206
+ return (_jsxs("section", { ref: panelRef, popover: "manual", className: "forgebook-search-panel", "aria-label": SEARCH_STRINGS.results, "data-ready": isLoading ? undefined : "", style: rect === undefined ? undefined : listPlace(rect, sidebarWidth),
207
+ // the focus stays in the field: a press here would take it away and close the list before it opens anything
208
+ onMouseDown: (event) => event.preventDefault(), children: [_jsx(PanelStatus, { total: answer.total, query: query, isLoading: isLoading, hasFailed: hasFailed }), _jsx("div", { id: id, ref: listRef, className: "forgebook-search-panel__list", role: "listbox", "aria-label": SEARCH_STRINGS.results, children: results.map(({ result, own, hits }) => (_jsxs("div", { className: "forgebook-result", children: [_jsx(RowLink, { ...rowProps(own), className: "forgebook-result__own", children: _jsx(ResultLine, { result: result }) }), hits.map(({ hit, row }) => (_jsx(RowLink, { ...rowProps(row), className: "forgebook-result__hit", children: _jsx(HitLine, { hit: hit }) }, row.id))), _jsx(ResultNote, { result: result, listed: hits.length })] }, own.id))) }), _jsxs("p", { className: "forgebook-search-panel__keys", children: [_jsx("kbd", { children: "\u2191" }), _jsx("kbd", { children: "\u2193" }), " ", SEARCH_STRINGS.keyMove, " ", _jsx("kbd", { children: "\u21B5" }), " ", SEARCH_STRINGS.keyOpen, " ", _jsx("kbd", { children: "esc" }), " ", SEARCH_STRINGS.keyClear] })] }));
209
+ };
@@ -38,4 +38,3 @@ export type SegmentedProps<TValue extends string | number> = {
38
38
  * @param props - the options and the chosen value.
39
39
  */
40
40
  export declare const Segmented: <TValue extends string | number>({ label, options, value, onValueChange, isDisabled, disabledNote, after }: SegmentedProps<TValue>) => ReactNode;
41
- //# sourceMappingURL=Segmented.d.ts.map
@@ -16,4 +16,3 @@ export const Segmented = ({ label, options, value, onValueChange, isDisabled = f
16
16
  const name = useId();
17
17
  return (_jsxs("fieldset", { className: "forgebook-segmented", disabled: isDisabled, title: isDisabled ? disabledNote : undefined, children: [_jsx("legend", { className: "forgebook-visually-hidden", children: label }), options.map((option) => (_jsxs("label", { className: "forgebook-segmented__option", title: option.icon ? option.label : undefined, children: [_jsx("input", { type: "radio", className: "forgebook-visually-hidden", name: name, checked: option.value === value, "aria-label": option.icon ? option.label : undefined, onChange: () => onValueChange(option.value) }), _jsx("span", { className: "forgebook-segmented__face", children: option.icon ? _jsx(Icon, { name: option.icon, size: 14 }) : option.label })] }, String(option.value)))), after] }));
18
18
  };
19
- //# sourceMappingURL=Segmented.js.map
@@ -5,18 +5,24 @@
5
5
  * @module
6
6
  */
7
7
  import type { StoryLanguage, StorySource } from "@forgebook/story-format/source";
8
- import { type ReactNode } from "react";
9
- import { type CatalogueLists } from "../catalogue.ts";
10
- import { type ViewSwitch } from "../switches.ts";
8
+ import { type ComponentType, type ReactNode } from "react";
9
+ import { type AddressTexts } from "../addressTexts.ts";
10
+ import type { CatalogueLists } from "../catalogue.ts";
11
+ import type { ViewSwitch } from "../switches.ts";
12
+ import type { WrittenHomeProps } from "./AuthoredHome.tsx";
13
+ import { type LoadPluginHosts } from "./pluginHostsContext.ts";
14
+ import type { ShellPlugin } from "./pluginTabs.tsx";
11
15
  /** What an app passes to the shell. */
12
16
  export type ShellConfig = {
13
17
  /** The catalogue's name, in the page title and the sidebar. */
14
18
  readonly title: string;
15
19
  /**
16
20
  * The catalogue's logo, the URL of a square image: beside its name in the sidebar and as the page's icon. None by
17
- * default: the catalogue's own mark. The catalogue belongs to whoever mounts it, so the logo is theirs to give.
21
+ * default: Forgebook's mark. The catalogue belongs to whoever mounts it, so the logo is theirs to give.
18
22
  */
19
23
  readonly logo?: string;
24
+ /** Whether a catalogue without a logo shows Forgebook's mark; off, it shows its name alone. On by default. */
25
+ readonly hasBranding?: boolean;
20
26
  /**
21
27
  * The stories' measured heights, the address of the file `forgebook-heights` writes (relative to the page): a story's
22
28
  * box waits at its height while it loads. None by default, and a missing file is none: boxes then wait at a guess.
@@ -24,7 +30,10 @@ export type ShellConfig = {
24
30
  readonly heights?: string;
25
31
  /** The sources, in the order the sidebar lists them. */
26
32
  readonly sources: readonly StorySource[];
27
- /** The frame page's address, relative to the shell's (`frame.html`). */
33
+ /**
34
+ * The frame page's address: relative to the shell's (`frame.html`) when the frames share its origin, on the frames'
35
+ * origin otherwise (`mountShell` makes it).
36
+ */
28
37
  readonly frameUrl: string;
29
38
  /**
30
39
  * The languages every story can be drawn in (the View menu's Language row); none turns them off. Give the frame
@@ -38,6 +47,26 @@ export type ShellConfig = {
38
47
  readonly switches?: readonly ViewSwitch[];
39
48
  /** The catalogue's lists (its widths, zoom steps, backgrounds, story groups…); the defaults when none. */
40
49
  readonly lists?: CatalogueLists;
50
+ /**
51
+ * Loads the catalogue's written home (`forgebook.home.md`), drawn in place of the generated home: the page's entry
52
+ * gives it only for a catalogue that has one, so the others' first load carries nothing of it. None keeps the
53
+ * generated home.
54
+ */
55
+ readonly home?: () => Promise<ComponentType<WrittenHomeProps>>;
56
+ /** Loads the catalogue's design tokens, on first use; none when it has none. */
57
+ readonly loadTokens?: () => Promise<unknown>;
58
+ /** The plugins with views (the generated page passes them); none by default. */
59
+ readonly plugins?: readonly ShellPlugin[];
60
+ /**
61
+ * Loads the code that draws the plugins' views (`forgebook/shell/plugin-hosts`): the generated page gives it only
62
+ * with plugins that have views, so a catalogue without one ships none of it. None draws no plugin's view.
63
+ */
64
+ readonly pluginHosts?: LoadPluginHosts;
65
+ /**
66
+ * How the framework's stories take the texts the address carries (`addressTexts.ts`): `plain` keeps a shared link's
67
+ * texts that are not plain words from a story that may write them into markup. `any` by default.
68
+ */
69
+ readonly addressTexts?: AddressTexts;
41
70
  };
42
71
  /**
43
72
  * The catalogue's page: its settings computed once from the configuration (its switches, its languages' switch, its
@@ -46,4 +75,3 @@ export type ShellConfig = {
46
75
  * @param props - the configuration.
47
76
  */
48
77
  export declare const Shell: (props: ShellConfig) => ReactNode;
49
- //# sourceMappingURL=Shell.d.ts.map