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
@@ -1,31 +1,26 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  /**
3
- * The View menu: every control the person did not hide in it, in their order, each with its value, a handle to move
4
- * it, a pin that puts it on the toolbar and a button that hides it here (a pinned one stays on the toolbar); at its
5
- * foot the hidden controls, the wrap choice, the values' reset and the toolbar's reset.
3
+ * The View menu: its button, with a dot when one of its values is changed, and its panel (`ViewMenuPanel`): every
4
+ * control the person did not hide in it, in their order, each with its value, a handle to move it, a pin that puts it
5
+ * on the toolbar and a button that hides it here (a pinned one stays on the toolbar); at its foot the hidden controls,
6
+ * the wrap choice, the values' reset and the toolbar's reset.
6
7
  *
7
8
  * @remarks
8
- * The order is set here only, and the toolbar shows the pinned controls in it: nothing is dragged on the toolbar. A row
9
- * follows the pointer one to one while it is dragged, and the others move out of its way animated; with the keyboard,
10
- * the handle moves its row with the arrow keys and the new position is announced.
9
+ * The button is on every page and the panel only once asked for, so the panel's module loads the first time the menu
10
+ * opens, fetched already when the pointer comes over the button or the focus reaches it. The popover opens at once as
11
+ * before, and its content is drawn as soon as the module is there, the focus then going to its chosen option.
11
12
  *
12
13
  * @module
13
14
  */
14
- import { useEffect, useId, useLayoutEffect, useRef, useState } from "react";
15
- import { DEFAULT_VIEW, hasViewChanges } from "../viewState.js";
16
- import { ControlRow } from "./ControlRow.js";
15
+ import { useEffect, useLayoutEffect, useState } from "react";
16
+ import { hasViewChanges } from "../viewState.js";
17
17
  import { useCatalogue } from "./catalogueContext.js";
18
18
  import { Icon } from "./icons.js";
19
- import { NamedViews } from "./NamedViews.js";
20
19
  import { STRINGS } from "./strings.js";
21
- import { controlLabel, ToolbarControl } from "./ToolbarControl.js";
20
+ import { ToolbarControl } from "./ToolbarControl.js";
22
21
  import { usePopover } from "./usePopover.js";
23
22
  /** The room the menu keeps from the window's right edge, in CSS px. */
24
23
  const EDGE_PX = 12;
25
- /** How long the rows take to move out of a dragged row's way, in ms: the shell's `$duration-quick`. */
26
- const SHIFT_MS = 150;
27
- /** How they move: the shell's `$ease-out`, decelerating. */
28
- const SHIFT_EASING = "cubic-bezier(0.22, 1, 0.36, 1)";
29
24
  /**
30
25
  * The ids of the controls whose values the View menu answers for: those not on the toolbar (in it, or hidden, whose
31
26
  * value still applies, or pinned but moved into it for want of room), the stage's width aside, which is not a view
@@ -37,74 +32,20 @@ const SHIFT_EASING = "cubic-bezier(0.22, 1, 0.36, 1)";
37
32
  export const menuControlIds = (placed, movedIds = []) => placed
38
33
  .filter((each) => (!each.isPinned || movedIds.includes(each.control.id)) && each.control.id !== "width")
39
34
  .map((each) => each.control.id);
40
- /**
41
- * The view with the given controls' values back at their defaults.
42
- *
43
- * @param view - the view.
44
- * @param switches - the catalogue's switches.
45
- * @param ids - the controls' ids.
46
- */
47
- const withDefaults = (view, switches, ids) => ({
48
- ...view,
49
- switches: {
50
- ...view.switches,
51
- ...Object.fromEntries(switches.filter((each) => ids.includes(each.id)).map((each) => [each.id, each.default]))
52
- },
53
- backdrop: ids.includes("backdrop") ? DEFAULT_VIEW.backdrop : view.backdrop,
54
- sheets: ids.includes("sheets") ? DEFAULT_VIEW.sheets : view.sheets,
55
- text: ids.includes("text") ? DEFAULT_VIEW.text : view.text
56
- });
57
- /**
58
- * Moves the rows out of the way animated when the order changes: each row starts from where it was drawn and slides
59
- * to its new place (the dragged row aside, which follows the pointer); without motion they jump.
60
- *
61
- * @param list - the list.
62
- * @param order - the rows' ids in their order.
63
- * @param draggedId - the dragged row's id, if one is dragged.
64
- */
65
- const useShiftedRows = (list, order, draggedId) => {
66
- const tops = useRef(new Map());
67
- // biome-ignore lint/correctness/useExhaustiveDependencies: the rows are measured again whenever their order changes
68
- useLayoutEffect(() => {
69
- const rows = [...(list.current?.querySelectorAll("[data-control]") ?? [])];
70
- const isReduced = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
71
- for (const row of rows) {
72
- const id = row.dataset["control"] ?? "";
73
- const before = tops.current.get(id);
74
- tops.current.set(id, row.offsetTop);
75
- if (before === undefined || id === draggedId || isReduced)
76
- continue;
77
- // where the row is drawn now: its last place plus what a running move still shifts it by
78
- const shift = new DOMMatrixReadOnly(getComputedStyle(row).transform).m42;
79
- const start = before + shift - row.offsetTop;
80
- for (const running of row.getAnimations())
81
- running.cancel();
82
- if (start === 0)
83
- continue;
84
- row.animate([{ transform: `translateY(${start}px)` }, { transform: "translateY(0)" }], {
85
- duration: SHIFT_MS,
86
- easing: SHIFT_EASING
87
- });
88
- }
89
- }, [order]);
90
- };
91
- /**
92
- * The controls hidden in the menu, at its foot: their count, which opens them as rows like the others, each one usable
93
- * while it stays hidden, with its pin (a hidden control may still sit on the toolbar) and a button that shows it
94
- * again in its place.
95
- *
96
- * @param props - the hidden controls, the arrangement, and what every control shares.
97
- */
98
- const HiddenControls = ({ hidden, layout, ...context }) => {
99
- const [isOpen, setIsOpen] = useState(false);
100
- const listId = useId();
101
- if (hidden.length === 0)
102
- return null;
103
- return (_jsxs("div", { className: "forgebook-hidden-controls", children: [_jsxs("button", { type: "button", className: "forgebook-text-button", "aria-expanded": isOpen, "aria-controls": listId, onClick: () => setIsOpen(!isOpen), children: [STRINGS.hiddenControls(hidden.length, hidden.filter((each) => each.isPinned).length), _jsx(Icon, { name: isOpen ? "chevronDown" : "chevronRight", size: 12 })] }), isOpen ? (_jsx("ul", { id: listId, className: "forgebook-arrange-list", children: hidden.map(({ control, isPinned }) => {
104
- const label = controlLabel(control);
105
- return (_jsxs("li", { className: "forgebook-arrange", "data-control": control.id, "data-hidden": "", children: [_jsx("span", { className: "forgebook-arrange__no-handle" }), _jsx("span", { className: "forgebook-popover__label", children: label }), _jsx("div", { className: "forgebook-arrange__control", children: _jsx(ToolbarControl, { control: control, form: "row", ...context }) }), _jsx("button", { type: "button", className: "forgebook-icon-button", "aria-label": STRINGS.pinControl(label), title: STRINGS.pinControl(label), "aria-pressed": isPinned, onClick: () => layout.pin(control.id, !isPinned), children: _jsx(Icon, { name: "pin", size: 14 }) }), _jsx("button", { type: "button", className: "forgebook-icon-button", "aria-label": STRINGS.showControl(label), title: STRINGS.showControl(label), onClick: () => layout.hide(control.id, false), children: _jsx(Icon, { name: "eye", size: 14 }) })] }, control.id));
106
- }) })) : null] }));
35
+ /** The panel, once its module is there: a menu drawn after the first draws it at once. */
36
+ let loadedPanel;
37
+ /** The panel's module, fetched once: a second call while it loads, or after, gets the same answer. */
38
+ let panelModule;
39
+ /** Loads the panel's module, or gives the load already asked for. */
40
+ const loadPanel = () => {
41
+ panelModule ??= import("./ViewMenuPanel.js").then((module) => {
42
+ loadedPanel = module.ViewMenuPanel;
43
+ return module.ViewMenuPanel;
44
+ });
45
+ return panelModule;
107
46
  };
47
+ /** The panel as the menu first finds it: there when an earlier menu loaded it. */
48
+ const initialPanel = () => loadedPanel === undefined ? { status: "loading" } : { status: "ready", value: loadedPanel };
108
49
  /**
109
50
  * The View menu.
110
51
  *
@@ -112,112 +53,56 @@ const HiddenControls = ({ hidden, layout, ...context }) => {
112
53
  */
113
54
  export const ViewMenu = ({ layout, ownView, movedIds, ...context }) => {
114
55
  const { isOpen, isDrawn, setIsOpen, buttonRef, panelRef, panelId } = usePopover();
115
- const { switches } = useCatalogue();
116
- const listRef = useRef(null);
117
- const drag = useRef(undefined);
118
- const [draggedId, setDraggedId] = useState(undefined);
119
- const [announced, setAnnounced] = useState("");
120
- const hintId = useId();
121
- const shown = layout.placed.filter((each) => !each.isHidden);
122
- const hidden = layout.placed.filter((each) => each.isHidden);
56
+ const catalogue = useCatalogue();
57
+ const { switches } = catalogue;
58
+ const [panel, setPanel] = useState(initialPanel);
123
59
  const ids = menuControlIds(layout.placed, movedIds);
124
- const order = shown.map((each) => each.control.id).join(",");
125
- useShiftedRows(listRef, order, draggedId);
126
60
  // the menu never runs past the window's edges: a narrow window keeps it inside, its widest values then scroll; a
127
61
  // short one scrolls its rows, the foot staying in sight
128
62
  useLayoutEffect(() => {
129
- const panel = panelRef.current;
130
- if (!isDrawn || panel === null)
63
+ const drawn = panelRef.current;
64
+ if (!isDrawn || drawn === null)
131
65
  return;
132
66
  const keepInside = () => {
133
- const box = panel.getBoundingClientRect();
134
- panel.style.maxWidth = `${window.innerWidth - box.left - EDGE_PX}px`;
135
- panel.style.maxHeight = `${window.innerHeight - box.top - EDGE_PX}px`;
67
+ const box = drawn.getBoundingClientRect();
68
+ drawn.style.maxWidth = `${window.innerWidth - box.left - EDGE_PX}px`;
69
+ drawn.style.maxHeight = `${window.innerHeight - box.top - EDGE_PX}px`;
136
70
  };
137
71
  keepInside();
138
72
  window.addEventListener("resize", keepInside);
139
73
  return () => window.removeEventListener("resize", keepInside);
140
74
  }, [isDrawn, panelRef]);
141
- /** Keeps the dragged row under the pointer, from where its row is drawn now. */
142
- const follow = () => {
143
- const current = drag.current;
144
- const row = listRef.current?.querySelector(`[data-control="${current?.id}"]`);
145
- if (current === undefined || row === null || row === undefined)
146
- return;
147
- const offset = current.pointerY - current.startY - (row.offsetTop - current.startTop);
148
- row.style.transform = `translateY(${offset}px)`;
149
- };
150
- // after a move, the dragged row is drawn at its new place: it stays under the pointer
151
- // biome-ignore lint/correctness/useExhaustiveDependencies: follows each new order while a row is dragged
152
- useLayoutEffect(follow, [order]);
153
- /** The list's rows as they are drawn now. */
154
- const rowsNow = () => [
155
- ...(listRef.current?.querySelectorAll("[data-control]") ?? [])
156
- ];
157
- /**
158
- * Where the dragged row goes: past every other row whose middle its own middle passed, both read from the layout
159
- * (never from how a running move draws them, which would move the target under the pointer and back).
160
- *
161
- * @param id - the dragged row's id.
162
- * @param current - the drag.
163
- */
164
- const targetIndex = (id, current) => {
165
- const rows = rowsNow();
166
- const row = rows.find((each) => each.dataset["control"] === id);
167
- if (row === undefined)
168
- return 0;
169
- const center = current.startTop + (current.pointerY - current.startY) + row.offsetHeight / 2;
170
- return rows.filter((each) => each !== row && center > each.offsetTop + each.offsetHeight / 2).length;
171
- };
172
- // a menu closed while a row is dragged ends the drag
173
- const stopDrag = useRef(undefined);
174
- useEffect(() => () => stopDrag.current?.(), []);
175
- const grab = (event, id) => {
176
- const row = event.currentTarget.closest("[data-control]");
177
- if (row === null || event.button !== 0)
75
+ // the panel's module loads when the menu is first drawn, if the pointer or the focus did not ask for it already
76
+ useEffect(() => {
77
+ if (!isDrawn || panel.status !== "loading")
178
78
  return;
179
- // no text selection while dragging; the handle still takes the focus, so the arrow keys move its row next
180
- event.preventDefault();
181
- event.currentTarget.focus();
182
- window.getSelection()?.removeAllRanges();
183
- drag.current = { id, startY: event.clientY, startTop: row.offsetTop, pointerY: event.clientY };
184
- setDraggedId(id);
185
- // the window, not the handle, follows the pointer: moving the row in the page takes the handle's pointer capture
186
- // away, and the release would never arrive
187
- const moveTo = (moved) => {
188
- const current = drag.current;
189
- if (current === undefined)
190
- return;
191
- current.pointerY = moved.clientY;
192
- follow();
193
- const index = targetIndex(id, current);
194
- if (index !== rowsNow().findIndex((each) => each.dataset["control"] === id))
195
- layout.move(id, index);
196
- };
197
- const drop = () => {
198
- window.removeEventListener("pointermove", moveTo);
199
- window.removeEventListener("pointerup", drop);
200
- window.removeEventListener("pointercancel", drop);
201
- stopDrag.current = undefined;
202
- drag.current = undefined;
203
- setDraggedId(undefined);
204
- // the row settles into its place from where the pointer left it
205
- const dropped = rowsNow().find((each) => each.dataset["control"] === id);
206
- if (dropped === undefined)
207
- return;
208
- const from = dropped.style.transform;
209
- dropped.style.transform = "";
210
- if (from !== "" && !window.matchMedia("(prefers-reduced-motion: reduce)").matches)
211
- dropped.animate([{ transform: from }, { transform: "translateY(0)" }], {
212
- duration: SHIFT_MS,
213
- easing: SHIFT_EASING
214
- });
79
+ let isCurrent = true;
80
+ loadPanel()
81
+ .then((value) => {
82
+ if (isCurrent)
83
+ setPanel({ status: "ready", value });
84
+ })
85
+ .catch((error) => {
86
+ if (isCurrent)
87
+ setPanel({ status: "error", message: error instanceof Error ? error.message : String(error) });
88
+ });
89
+ return () => {
90
+ isCurrent = false;
215
91
  };
216
- stopDrag.current = drop;
217
- window.addEventListener("pointermove", moveTo);
218
- window.addEventListener("pointerup", drop);
219
- window.addEventListener("pointercancel", drop);
92
+ }, [isDrawn, panel.status]);
93
+ // a panel drawn after the menu opened takes the focus to its chosen option, as the popover does for one drawn with it
94
+ // biome-ignore lint/correctness/useExhaustiveDependencies: only the panel's arrival moves the focus
95
+ useEffect(() => {
96
+ if (panel.status !== "ready" || !isOpen)
97
+ return;
98
+ const panelElement = panelRef.current;
99
+ if (panelElement === null || panelElement.contains(document.activeElement))
100
+ return;
101
+ panelElement.querySelector("input:checked")?.focus();
102
+ }, [panel.status]);
103
+ /** Fetches the panel ahead of a press, so the menu draws it at once. */
104
+ const preload = () => {
105
+ loadPanel().catch(() => undefined);
220
106
  };
221
- return (_jsxs("div", { className: "forgebook-view-menu", children: [_jsxs("button", { ref: buttonRef, type: "button", className: "forgebook-button", "aria-expanded": isOpen, "aria-controls": panelId, onClick: (event) => setIsOpen(!isOpen, event), children: [_jsx(Icon, { name: "sliders", size: 14 }), STRINGS.view, hasViewChanges(ownView, switches, ids) ? (_jsx("span", { className: "forgebook-dot", role: "img", "aria-label": STRINGS.viewChanged })) : null, _jsx(Icon, { name: "chevronDown", size: 12 })] }), isDrawn ? (_jsxs("div", { ref: panelRef, id: panelId, className: "forgebook-popover forgebook-popover--arrange", role: "dialog", "aria-label": STRINGS.view, children: [_jsxs("div", { className: "forgebook-popover__body", children: [_jsx(NamedViews, { view: context.view, ownView: ownView, onViewChange: context.onViewChange }), _jsx("ol", { ref: listRef, className: "forgebook-arrange-list", "data-dragging": draggedId === undefined ? undefined : "", children: shown.map((each, index) => (_jsx(ControlRow, { each: each, index: index, count: shown.length, isDragged: each.control.id === draggedId, isMoved: movedIds.includes(each.control.id), isChanged: hasViewChanges(ownView, switches, [each.control.id]), layout: layout, hintId: hintId, onGrab: grab, onAnnounce: setAnnounced, ...context }, each.control.id))) }), _jsx("span", { id: hintId, className: "forgebook-visually-hidden", children: STRINGS.moveControlHint }), _jsx("span", { className: "forgebook-visually-hidden", "aria-live": "polite", children: announced }), _jsx(HiddenControls, { hidden: hidden, layout: layout, ...context }), _jsxs("label", { className: "forgebook-wrap-choice", children: [_jsx("input", { type: "checkbox", role: "switch", "aria-checked": layout.isWrapped, className: "forgebook-switch", checked: layout.isWrapped, onChange: (event) => layout.setIsWrapped(event.currentTarget.checked) }), STRINGS.wrapToolbar] })] }), _jsxs("div", { className: "forgebook-popover__foot", children: [_jsx("button", { type: "button", className: "forgebook-text-button", onClick: () => context.onViewChange(withDefaults(context.view, switches, ids)), children: STRINGS.resetView }), _jsx("button", { type: "button", className: "forgebook-text-button", title: STRINGS.toolbarInBrowser, disabled: !layout.isArranged, onClick: layout.reset, children: STRINGS.resetToolbar }), _jsx("span", { className: "forgebook-popover__note", children: STRINGS.viewInAddress })] })] })) : null] }));
107
+ return (_jsxs("div", { className: "forgebook-view-menu", children: [_jsxs("button", { ref: buttonRef, type: "button", className: "forgebook-button", "aria-expanded": isOpen, "aria-controls": panelId, onPointerEnter: preload, onFocus: preload, onClick: (event) => setIsOpen(!isOpen, event), children: [_jsx(Icon, { name: "sliders", size: 14 }), STRINGS.view, hasViewChanges(ownView, switches, ids, catalogue.audience) ? (_jsx("span", { className: "forgebook-dot", role: "img", "aria-label": STRINGS.viewChanged })) : null, _jsx(Icon, { name: "chevronDown", size: 12 })] }), isDrawn ? (_jsxs("div", { ref: panelRef, id: panelId, className: "forgebook-popover forgebook-popover--arrange", role: "dialog", "aria-label": STRINGS.view, children: [panel.status === "ready" ? (_jsx(panel.value, { layout: layout, ownView: ownView, movedIds: movedIds, ids: ids, drawControl: (control) => (_jsx(ToolbarControl, { control: control, form: "row", ...context })), ...context })) : null, panel.status === "error" ? (_jsxs("p", { className: "forgebook-problems", role: "alert", children: [STRINGS.viewMenuError, ": ", panel.message] })) : null] })) : null] }));
222
108
  };
223
- //# sourceMappingURL=ViewMenu.js.map
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The View menu's panel: the named views, the controls in their order with their handles, pins and buttons, the hidden
3
+ * controls, the wrap choice and the resets.
4
+ *
5
+ * @remarks
6
+ * Loaded the first time the menu opens (`ViewMenu`): the menu's button is on every page, its panel only once asked
7
+ * for. The order is set here only, and the toolbar shows the pinned controls in it: nothing is dragged on the toolbar.
8
+ * A row follows the pointer one to one while it is dragged, and the others move out of its way animated; with the
9
+ * keyboard, the handle moves its row with the arrow keys and the new position is announced.
10
+ *
11
+ * @module
12
+ */
13
+ import { type ReactNode } from "react";
14
+ import type { ToolbarControl as Control } from "../toolbarLayout.ts";
15
+ import { type ViewState } from "../viewState.ts";
16
+ import type { ControlContext } from "./ToolbarControl.tsx";
17
+ import type { ToolbarLayout } from "./useToolbarLayout.ts";
18
+ /** The View menu panel's props. */
19
+ export type ViewMenuPanelProps = ControlContext & {
20
+ /** The toolbar's arrangement. */
21
+ readonly layout: ToolbarLayout;
22
+ /** The pinned controls the bar has no room for now: listed here as pinned, shown here until there is room. */
23
+ readonly movedIds: readonly string[];
24
+ /** The person's own view, without what the story fixes: a value the story fixes is not a change of theirs. */
25
+ readonly ownView: ViewState;
26
+ /** The ids of the controls whose values the menu answers for (`menuControlIds`), which its reset puts back. */
27
+ readonly ids: readonly string[];
28
+ /**
29
+ * Draws a control in a row's form. The menu hands in the toolbar's own controls, which the page already has: imported
30
+ * here, they would take the modules they share with the page into chunks of their own, and the first load would grow
31
+ * by more than the panel saves.
32
+ */
33
+ readonly drawControl: (control: Control) => ReactNode;
34
+ };
35
+ /**
36
+ * The View menu's panel.
37
+ *
38
+ * @param props - the arrangement, the person's own view, the controls the menu answers for, and what every control
39
+ * shares.
40
+ */
41
+ export declare const ViewMenuPanel: ({ layout, ownView, movedIds, ids, drawControl, ...context }: ViewMenuPanelProps) => ReactNode;
@@ -0,0 +1,199 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ /**
3
+ * The View menu's panel: the named views, the controls in their order with their handles, pins and buttons, the hidden
4
+ * controls, the wrap choice and the resets.
5
+ *
6
+ * @remarks
7
+ * Loaded the first time the menu opens (`ViewMenu`): the menu's button is on every page, its panel only once asked
8
+ * for. The order is set here only, and the toolbar shows the pinned controls in it: nothing is dragged on the toolbar.
9
+ * A row follows the pointer one to one while it is dragged, and the others move out of its way animated; with the
10
+ * keyboard, the handle moves its row with the arrow keys and the new position is announced.
11
+ *
12
+ * @module
13
+ */
14
+ import { useEffect, useId, useLayoutEffect, useRef, useState } from "react";
15
+ import { DEVICE_PARAMETER } from "../deviceView.js";
16
+ import { DEFAULT_VIEW, hasViewChanges } from "../viewState.js";
17
+ import { ControlRow } from "./ControlRow.js";
18
+ import { useCatalogue } from "./catalogueContext.js";
19
+ import { controlLabel } from "./controlLabel.js";
20
+ import { Icon } from "./icons.js";
21
+ import { LATER_STRINGS } from "./laterStrings.js";
22
+ import { NamedViews } from "./NamedViews.js";
23
+ /** How long the rows take to move out of a dragged row's way, in ms: the shell's `$duration-quick`. */
24
+ const SHIFT_MS = 150;
25
+ /** How they move: the shell's `$ease-out`, decelerating. */
26
+ const SHIFT_EASING = "cubic-bezier(0.22, 1, 0.36, 1)";
27
+ /**
28
+ * The view with the given controls' values back at their defaults.
29
+ *
30
+ * @param view - the view.
31
+ * @param switches - the catalogue's switches.
32
+ * @param ids - the controls' ids.
33
+ * @param defaultAudience - the audience the catalogue starts with.
34
+ */
35
+ const withDefaults = (view, switches, ids, defaultAudience) => ({
36
+ ...view,
37
+ switches: {
38
+ ...view.switches,
39
+ ...Object.fromEntries(switches.filter((each) => ids.includes(each.id)).map((each) => [each.id, each.default]))
40
+ },
41
+ backdrop: ids.includes("backdrop") ? DEFAULT_VIEW.backdrop : view.backdrop,
42
+ sheets: ids.includes("sheets") ? DEFAULT_VIEW.sheets : view.sheets,
43
+ text: ids.includes("text") ? DEFAULT_VIEW.text : view.text,
44
+ audience: ids.includes("audience") ? defaultAudience : view.audience,
45
+ ...(ids.includes(DEVICE_PARAMETER)
46
+ ? { device: DEFAULT_VIEW.device, orientation: DEFAULT_VIEW.orientation }
47
+ : {})
48
+ });
49
+ /**
50
+ * Moves the rows out of the way animated when the order changes: each row starts from where it was drawn and slides
51
+ * to its new place (the dragged row aside, which follows the pointer); without motion they jump.
52
+ *
53
+ * @param list - the list.
54
+ * @param order - the rows' ids in their order.
55
+ * @param draggedId - the dragged row's id, if one is dragged.
56
+ */
57
+ const useShiftedRows = (list, order, draggedId) => {
58
+ const tops = useRef(new Map());
59
+ // biome-ignore lint/correctness/useExhaustiveDependencies: the rows are measured again whenever their order changes
60
+ useLayoutEffect(() => {
61
+ const rows = [...(list.current?.querySelectorAll("[data-control]") ?? [])];
62
+ const isReduced = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
63
+ for (const row of rows) {
64
+ const id = row.dataset["control"] ?? "";
65
+ const before = tops.current.get(id);
66
+ tops.current.set(id, row.offsetTop);
67
+ if (before === undefined || id === draggedId || isReduced)
68
+ continue;
69
+ // where the row is drawn now: its last place plus what a running move still shifts it by
70
+ const shift = new DOMMatrixReadOnly(getComputedStyle(row).transform).m42;
71
+ const start = before + shift - row.offsetTop;
72
+ for (const running of row.getAnimations())
73
+ running.cancel();
74
+ if (start === 0)
75
+ continue;
76
+ row.animate([{ transform: `translateY(${start}px)` }, { transform: "translateY(0)" }], {
77
+ duration: SHIFT_MS,
78
+ easing: SHIFT_EASING
79
+ });
80
+ }
81
+ }, [order]);
82
+ };
83
+ /**
84
+ * The controls hidden in the menu, at its foot: their count, which opens them as rows like the others, each one usable
85
+ * while it stays hidden, with its pin (a hidden control may still sit on the toolbar) and a button that shows it
86
+ * again in its place.
87
+ *
88
+ * @param props - the hidden controls, the arrangement, and how a control is drawn.
89
+ */
90
+ const HiddenControls = ({ hidden, layout, drawControl }) => {
91
+ const [isOpen, setIsOpen] = useState(false);
92
+ const listId = useId();
93
+ if (hidden.length === 0)
94
+ return null;
95
+ return (_jsxs("div", { className: "forgebook-hidden-controls", children: [_jsxs("button", { type: "button", className: "forgebook-text-button", "aria-expanded": isOpen, "aria-controls": listId, onClick: () => setIsOpen(!isOpen), children: [LATER_STRINGS.hiddenControls(hidden.length, hidden.filter((each) => each.isPinned).length), _jsx(Icon, { name: isOpen ? "chevronDown" : "chevronRight", size: 12 })] }), isOpen ? (_jsx("ul", { id: listId, className: "forgebook-arrange-list", children: hidden.map(({ control, isPinned }) => {
96
+ const label = controlLabel(control);
97
+ return (_jsxs("li", { className: "forgebook-arrange", "data-control": control.id, "data-hidden": "", children: [_jsx("span", { className: "forgebook-arrange__no-handle" }), _jsx("span", { className: "forgebook-popover__label", children: label }), _jsx("div", { className: "forgebook-arrange__control", children: drawControl(control) }), _jsx("button", { type: "button", className: "forgebook-icon-button", "aria-label": LATER_STRINGS.pinControl(label), title: LATER_STRINGS.pinControl(label), "aria-pressed": isPinned, onClick: () => layout.pin(control.id, !isPinned), children: _jsx(Icon, { name: "pin", size: 14 }) }), _jsx("button", { type: "button", className: "forgebook-icon-button", "aria-label": LATER_STRINGS.showControl(label), title: LATER_STRINGS.showControl(label), onClick: () => layout.hide(control.id, false), children: _jsx(Icon, { name: "eye", size: 14 }) })] }, control.id));
98
+ }) })) : null] }));
99
+ };
100
+ /**
101
+ * The View menu's panel.
102
+ *
103
+ * @param props - the arrangement, the person's own view, the controls the menu answers for, and what every control
104
+ * shares.
105
+ */
106
+ export const ViewMenuPanel = ({ layout, ownView, movedIds, ids, drawControl, ...context }) => {
107
+ const catalogue = useCatalogue();
108
+ const { switches } = catalogue;
109
+ const listRef = useRef(null);
110
+ const drag = useRef(undefined);
111
+ const [draggedId, setDraggedId] = useState(undefined);
112
+ const [announced, setAnnounced] = useState("");
113
+ const hintId = useId();
114
+ const shown = layout.placed.filter((each) => !each.isHidden);
115
+ const hidden = layout.placed.filter((each) => each.isHidden);
116
+ const order = shown.map((each) => each.control.id).join(",");
117
+ useShiftedRows(listRef, order, draggedId);
118
+ /** Keeps the dragged row under the pointer, from where its row is drawn now. */
119
+ const follow = () => {
120
+ const current = drag.current;
121
+ const row = listRef.current?.querySelector(`[data-control="${current?.id}"]`);
122
+ if (current === undefined || row === null || row === undefined)
123
+ return;
124
+ const offset = current.pointerY - current.startY - (row.offsetTop - current.startTop);
125
+ row.style.transform = `translateY(${offset}px)`;
126
+ };
127
+ // after a move, the dragged row is drawn at its new place: it stays under the pointer
128
+ // biome-ignore lint/correctness/useExhaustiveDependencies: follows each new order while a row is dragged
129
+ useLayoutEffect(follow, [order]);
130
+ /** The list's rows as they are drawn now. */
131
+ const rowsNow = () => [
132
+ ...(listRef.current?.querySelectorAll("[data-control]") ?? [])
133
+ ];
134
+ /**
135
+ * Where the dragged row goes: past every other row whose middle its own middle passed, both read from the layout
136
+ * (never from how a running move draws them, which would move the target under the pointer and back).
137
+ *
138
+ * @param id - the dragged row's id.
139
+ * @param current - the drag.
140
+ */
141
+ const targetIndex = (id, current) => {
142
+ const rows = rowsNow();
143
+ const row = rows.find((each) => each.dataset["control"] === id);
144
+ if (row === undefined)
145
+ return 0;
146
+ const center = current.startTop + (current.pointerY - current.startY) + row.offsetHeight / 2;
147
+ return rows.filter((each) => each !== row && center > each.offsetTop + each.offsetHeight / 2).length;
148
+ };
149
+ // a menu closed while a row is dragged ends the drag
150
+ const stopDrag = useRef(undefined);
151
+ useEffect(() => () => stopDrag.current?.(), []);
152
+ const grab = (event, id) => {
153
+ const row = event.currentTarget.closest("[data-control]");
154
+ if (row === null || event.button !== 0)
155
+ return;
156
+ // no text selection while dragging; the handle still takes the focus, so the arrow keys move its row next
157
+ event.preventDefault();
158
+ event.currentTarget.focus();
159
+ window.getSelection()?.removeAllRanges();
160
+ drag.current = { id, startY: event.clientY, startTop: row.offsetTop, pointerY: event.clientY };
161
+ setDraggedId(id);
162
+ // the window, not the handle, follows the pointer: moving the row in the page takes the handle's pointer capture
163
+ // away, and the release would never arrive
164
+ const moveTo = (moved) => {
165
+ const current = drag.current;
166
+ if (current === undefined)
167
+ return;
168
+ current.pointerY = moved.clientY;
169
+ follow();
170
+ const index = targetIndex(id, current);
171
+ if (index !== rowsNow().findIndex((each) => each.dataset["control"] === id))
172
+ layout.move(id, index);
173
+ };
174
+ const drop = () => {
175
+ window.removeEventListener("pointermove", moveTo);
176
+ window.removeEventListener("pointerup", drop);
177
+ window.removeEventListener("pointercancel", drop);
178
+ stopDrag.current = undefined;
179
+ drag.current = undefined;
180
+ setDraggedId(undefined);
181
+ // the row settles into its place from where the pointer left it
182
+ const dropped = rowsNow().find((each) => each.dataset["control"] === id);
183
+ if (dropped === undefined)
184
+ return;
185
+ const from = dropped.style.transform;
186
+ dropped.style.transform = "";
187
+ if (from !== "" && !window.matchMedia("(prefers-reduced-motion: reduce)").matches)
188
+ dropped.animate([{ transform: from }, { transform: "translateY(0)" }], {
189
+ duration: SHIFT_MS,
190
+ easing: SHIFT_EASING
191
+ });
192
+ };
193
+ stopDrag.current = drop;
194
+ window.addEventListener("pointermove", moveTo);
195
+ window.addEventListener("pointerup", drop);
196
+ window.addEventListener("pointercancel", drop);
197
+ };
198
+ return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "forgebook-popover__body", children: [_jsx(NamedViews, { view: context.view, ownView: ownView, onViewChange: context.onViewChange }), _jsx("ol", { ref: listRef, className: "forgebook-arrange-list", "data-dragging": draggedId === undefined ? undefined : "", children: shown.map((each, index) => (_jsx(ControlRow, { each: each, index: index, count: shown.length, isDragged: each.control.id === draggedId, isMoved: movedIds.includes(each.control.id), isChanged: hasViewChanges(ownView, switches, [each.control.id], catalogue.audience), layout: layout, hintId: hintId, onGrab: grab, onAnnounce: setAnnounced, drawControl: drawControl }, each.control.id))) }), _jsx("span", { id: hintId, className: "forgebook-visually-hidden", children: LATER_STRINGS.moveControlHint }), _jsx("span", { className: "forgebook-visually-hidden", "aria-live": "polite", children: announced }), _jsx(HiddenControls, { hidden: hidden, layout: layout, drawControl: drawControl }), _jsxs("label", { className: "forgebook-wrap-choice", children: [_jsx("input", { type: "checkbox", role: "switch", "aria-checked": layout.isWrapped, className: "forgebook-switch", checked: layout.isWrapped, onChange: (event) => layout.setIsWrapped(event.currentTarget.checked) }), LATER_STRINGS.wrapToolbar] })] }), _jsxs("div", { className: "forgebook-popover__foot", children: [_jsx("button", { type: "button", className: "forgebook-text-button", onClick: () => context.onViewChange(withDefaults(context.view, switches, ids, catalogue.audience)), children: LATER_STRINGS.resetView }), _jsx("button", { type: "button", className: "forgebook-text-button", title: LATER_STRINGS.toolbarInBrowser, disabled: !layout.isArranged, onClick: layout.reset, children: LATER_STRINGS.resetToolbar }), _jsx("span", { className: "forgebook-popover__note", children: LATER_STRINGS.viewInAddress })] })] }));
199
+ };
@@ -14,11 +14,12 @@ export type WidthFieldProps = {
14
14
  readonly shownWidth: number | undefined;
15
15
  /** Called with a typed width, kept within the catalogue's range. */
16
16
  readonly onWidthChange: (width: StageWidth) => void;
17
+ /** Why the width cannot be typed (a device sets it), shown as the field's tooltip; none while it can. */
18
+ readonly disabledNote?: string | undefined;
17
19
  };
18
20
  /**
19
21
  * The width field.
20
22
  *
21
23
  * @param props - the set and the shown width, and what a typed width does.
22
24
  */
23
- export declare const WidthField: ({ width, shownWidth, onWidthChange }: WidthFieldProps) => ReactNode;
24
- //# sourceMappingURL=WidthField.d.ts.map
25
+ export declare const WidthField: ({ width, shownWidth, onWidthChange, disabledNote }: WidthFieldProps) => ReactNode;
@@ -14,7 +14,7 @@ import { STRINGS } from "./strings.js";
14
14
  *
15
15
  * @param props - the set and the shown width, and what a typed width does.
16
16
  */
17
- export const WidthField = ({ width, shownWidth, onWidthChange }) => {
17
+ export const WidthField = ({ width, shownWidth, onWidthChange, disabledNote }) => {
18
18
  // the field's text while it is being typed in
19
19
  const [draft, setDraft] = useState(undefined);
20
20
  const { widths, widthRange } = useCatalogue();
@@ -30,11 +30,10 @@ export const WidthField = ({ width, shownWidth, onWidthChange }) => {
30
30
  };
31
31
  return (_jsxs("span", { className: "forgebook-width-field", "data-custom": isCustom ? "" : undefined, children: [_jsx("input", { className: "forgebook-width-field__input",
32
32
  // a text field with the numeric keyboard: a number field draws spin buttons the presets already do better
33
- type: "text", inputMode: "numeric", pattern: "[0-9]*", "aria-label": STRINGS.widthTyped, title: width === "fill" ? STRINGS.widthFillNote : undefined, placeholder: STRINGS.widthAuto, value: draft ?? (shown === undefined ? "" : String(shown)), onChange: (event) => setDraft(event.currentTarget.value), onBlur: commit, onKeyDown: (event) => {
33
+ type: "text", inputMode: "numeric", pattern: "[0-9]*", "aria-label": STRINGS.widthTyped, disabled: disabledNote !== undefined, title: disabledNote ?? (width === "fill" ? STRINGS.widthFillNote : undefined), placeholder: STRINGS.widthAuto, value: draft ?? (shown === undefined ? "" : String(shown)), onChange: (event) => setDraft(event.currentTarget.value), onBlur: commit, onKeyDown: (event) => {
34
34
  if (event.key === "Enter")
35
35
  commit();
36
36
  if (event.key === "Escape")
37
37
  setDraft(undefined);
38
38
  } }), _jsx("span", { className: "forgebook-width-field__unit", "aria-hidden": "true", children: "px" })] }));
39
39
  };
40
- //# sourceMappingURL=WidthField.js.map
@@ -0,0 +1,34 @@
1
+ /**
2
+ * A story's second frame, for a plugin's tab: the story beside what the tab shows, as the stage has it now.
3
+ *
4
+ * @remarks
5
+ * The tab answers this frame itself, with the panel's values and the view, and the stage leaves it alone
6
+ * (`FRAME_ASIDE_ATTRIBUTE`), so the messages stay private to the shell.
7
+ *
8
+ * @module
9
+ */
10
+ import { type PanelArgs } from "../messages.ts";
11
+ import type { PluginStoryFrame } from "../plugin.ts";
12
+ import type { LiveView, StageWidth } from "../viewState.ts";
13
+ /** How the story is drawn again. */
14
+ export type AsideStory = {
15
+ /** The frame's address, in the view shown. */
16
+ readonly address: string;
17
+ /** Its width on the stage. */
18
+ readonly width: StageWidth;
19
+ /** The colour its page has in the view; none without one. */
20
+ readonly background: string | undefined;
21
+ /** The values set in the panel, sent once it is ready. */
22
+ readonly args: PanelArgs;
23
+ /** The view's live part, sent once it is ready; none when the address already says it all (the compare view). */
24
+ readonly view: LiveView | undefined;
25
+ };
26
+ /**
27
+ * Draws a story's second frame in an element.
28
+ *
29
+ * @param target - the element.
30
+ * @param title - the frame's accessible name.
31
+ * @param aside - how the story is drawn.
32
+ * @returns what takes it away.
33
+ */
34
+ export declare const showAsideStory: (target: HTMLElement, title: string, aside: AsideStory) => PluginStoryFrame;