forgebook 0.1.8 → 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 (1124) hide show
  1. package/README.md +875 -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 +141 -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 -17
  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 +22 -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 +67 -19
  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 +122 -30
  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 +56 -20
  118. package/dist/src/catalogue.js +33 -14
  119. package/dist/src/codeLiteral.d.ts +41 -0
  120. package/dist/src/codeLiteral.js +51 -0
  121. package/dist/src/componentDocs.d.ts +57 -1
  122. package/dist/src/componentDocs.js +20 -3
  123. package/dist/src/controlKeys.d.ts +0 -1
  124. package/dist/src/controlKeys.js +0 -1
  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 +11 -4
  251. package/dist/src/shell/ApiReference.js +73 -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 +105 -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 +0 -1
  321. package/dist/src/shell/LogicMark.js +0 -1
  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 +271 -70
  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 +9 -1
  353. package/dist/src/shell/SidebarEntries.js +1 -2
  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 +0 -1
  359. package/dist/src/shell/SignatureReference.js +1 -2
  360. package/dist/src/shell/Stage.d.ts +9 -4
  361. package/dist/src/shell/Stage.js +112 -59
  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 +7 -3
  377. package/dist/src/shell/Toolbar.js +6 -6
  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 +0 -1
  402. package/dist/src/shell/compareVariants.js +2 -2
  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 +13 -5
  412. package/dist/src/shell/dockTabs.js +40 -18
  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 +3 -1
  421. package/dist/src/shell/icons.js +3 -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 +0 -12
  431. package/dist/src/shell/logicView.js +2 -2
  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 +285 -139
  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 +56 -80
  451. package/dist/src/shell/strings.js +53 -78
  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 +3 -1
  499. package/dist/src/shell/useShownView.js +5 -5
  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 +86 -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 +79 -25
  551. package/dist/src/storyTree.js +211 -127
  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 +279 -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 +130 -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 +321 -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 +0 -1
  649. package/dist/src/vite/heightsRoute.js +0 -1
  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 +19 -18
  657. package/dist/src/vite/indexStoryFile.js +165 -221
  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 +68 -5
  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/LogicMark.d.ts.map +0 -1
  914. package/dist/src/shell/LogicMark.js.map +0 -1
  915. package/dist/src/shell/MatrixPicker.d.ts.map +0 -1
  916. package/dist/src/shell/MatrixPicker.js.map +0 -1
  917. package/dist/src/shell/NamedViews.d.ts.map +0 -1
  918. package/dist/src/shell/NamedViews.js.map +0 -1
  919. package/dist/src/shell/PackageHtml.d.ts.map +0 -1
  920. package/dist/src/shell/PackageHtml.js.map +0 -1
  921. package/dist/src/shell/PartsTab.d.ts.map +0 -1
  922. package/dist/src/shell/PartsTab.js.map +0 -1
  923. package/dist/src/shell/PinnedControl.d.ts.map +0 -1
  924. package/dist/src/shell/PinnedControl.js.map +0 -1
  925. package/dist/src/shell/PropFields.d.ts.map +0 -1
  926. package/dist/src/shell/PropFields.js.map +0 -1
  927. package/dist/src/shell/PropsTab.d.ts.map +0 -1
  928. package/dist/src/shell/PropsTab.js.map +0 -1
  929. package/dist/src/shell/Segmented.d.ts.map +0 -1
  930. package/dist/src/shell/Segmented.js.map +0 -1
  931. package/dist/src/shell/Shell.d.ts.map +0 -1
  932. package/dist/src/shell/Shell.js.map +0 -1
  933. package/dist/src/shell/Sidebar.d.ts.map +0 -1
  934. package/dist/src/shell/Sidebar.js.map +0 -1
  935. package/dist/src/shell/SidebarEntries.d.ts.map +0 -1
  936. package/dist/src/shell/SidebarEntries.js.map +0 -1
  937. package/dist/src/shell/SidebarHandle.d.ts.map +0 -1
  938. package/dist/src/shell/SidebarHandle.js.map +0 -1
  939. package/dist/src/shell/SignatureReference.d.ts.map +0 -1
  940. package/dist/src/shell/SignatureReference.js.map +0 -1
  941. package/dist/src/shell/Stage.d.ts.map +0 -1
  942. package/dist/src/shell/Stage.js.map +0 -1
  943. package/dist/src/shell/StageTools.d.ts.map +0 -1
  944. package/dist/src/shell/StageTools.js.map +0 -1
  945. package/dist/src/shell/StageViewport.d.ts.map +0 -1
  946. package/dist/src/shell/StageViewport.js.map +0 -1
  947. package/dist/src/shell/StoryCodeBlock.d.ts.map +0 -1
  948. package/dist/src/shell/StoryCodeBlock.js.map +0 -1
  949. package/dist/src/shell/StoryPicker.d.ts.map +0 -1
  950. package/dist/src/shell/StoryPicker.js.map +0 -1
  951. package/dist/src/shell/Toolbar.d.ts.map +0 -1
  952. package/dist/src/shell/Toolbar.js.map +0 -1
  953. package/dist/src/shell/ToolbarControl.d.ts.map +0 -1
  954. package/dist/src/shell/ToolbarControl.js.map +0 -1
  955. package/dist/src/shell/UsedIn.d.ts.map +0 -1
  956. package/dist/src/shell/UsedIn.js.map +0 -1
  957. package/dist/src/shell/ViewMenu.d.ts.map +0 -1
  958. package/dist/src/shell/ViewMenu.js.map +0 -1
  959. package/dist/src/shell/WidthField.d.ts.map +0 -1
  960. package/dist/src/shell/WidthField.js.map +0 -1
  961. package/dist/src/shell/catalogueContext.d.ts.map +0 -1
  962. package/dist/src/shell/catalogueContext.js.map +0 -1
  963. package/dist/src/shell/codeTokens.d.ts.map +0 -1
  964. package/dist/src/shell/codeTokens.js.map +0 -1
  965. package/dist/src/shell/codeWriter.d.ts.map +0 -1
  966. package/dist/src/shell/codeWriter.js.map +0 -1
  967. package/dist/src/shell/compareVariants.d.ts.map +0 -1
  968. package/dist/src/shell/compareVariants.js.map +0 -1
  969. package/dist/src/shell/controlCycle.d.ts.map +0 -1
  970. package/dist/src/shell/controlCycle.js.map +0 -1
  971. package/dist/src/shell/dockTabs.d.ts.map +0 -1
  972. package/dist/src/shell/dockTabs.js.map +0 -1
  973. package/dist/src/shell/icons.d.ts.map +0 -1
  974. package/dist/src/shell/icons.js.map +0 -1
  975. package/dist/src/shell/keyboard.d.ts.map +0 -1
  976. package/dist/src/shell/keyboard.js.map +0 -1
  977. package/dist/src/shell/logicView.d.ts.map +0 -1
  978. package/dist/src/shell/logicView.js.map +0 -1
  979. package/dist/src/shell/mountShell.d.ts.map +0 -1
  980. package/dist/src/shell/mountShell.js.map +0 -1
  981. package/dist/src/shell/storyTouch.d.ts.map +0 -1
  982. package/dist/src/shell/storyTouch.js.map +0 -1
  983. package/dist/src/shell/strings.d.ts.map +0 -1
  984. package/dist/src/shell/strings.js.map +0 -1
  985. package/dist/src/shell/switchView.d.ts.map +0 -1
  986. package/dist/src/shell/switchView.js.map +0 -1
  987. package/dist/src/shell/treeSearch.d.ts.map +0 -1
  988. package/dist/src/shell/treeSearch.js.map +0 -1
  989. package/dist/src/shell/useAppearance.d.ts.map +0 -1
  990. package/dist/src/shell/useAppearance.js.map +0 -1
  991. package/dist/src/shell/useComponentDocs.d.ts.map +0 -1
  992. package/dist/src/shell/useComponentDocs.js.map +0 -1
  993. package/dist/src/shell/useControlKeys.d.ts.map +0 -1
  994. package/dist/src/shell/useControlKeys.js.map +0 -1
  995. package/dist/src/shell/useCopy.d.ts.map +0 -1
  996. package/dist/src/shell/useCopy.js.map +0 -1
  997. package/dist/src/shell/useFold.d.ts.map +0 -1
  998. package/dist/src/shell/useFold.js.map +0 -1
  999. package/dist/src/shell/useFrameMessages.d.ts.map +0 -1
  1000. package/dist/src/shell/useFrameMessages.js.map +0 -1
  1001. package/dist/src/shell/useFrameQueue.d.ts.map +0 -1
  1002. package/dist/src/shell/useFrameQueue.js.map +0 -1
  1003. package/dist/src/shell/useFullPage.d.ts.map +0 -1
  1004. package/dist/src/shell/useFullPage.js.map +0 -1
  1005. package/dist/src/shell/useLiveView.d.ts.map +0 -1
  1006. package/dist/src/shell/useLiveView.js.map +0 -1
  1007. package/dist/src/shell/useLoaded.d.ts.map +0 -1
  1008. package/dist/src/shell/useLoaded.js.map +0 -1
  1009. package/dist/src/shell/usePageDoc.d.ts.map +0 -1
  1010. package/dist/src/shell/usePageDoc.js.map +0 -1
  1011. package/dist/src/shell/usePopover.d.ts.map +0 -1
  1012. package/dist/src/shell/usePopover.js.map +0 -1
  1013. package/dist/src/shell/useRecentPages.d.ts.map +0 -1
  1014. package/dist/src/shell/useRecentPages.js.map +0 -1
  1015. package/dist/src/shell/useScrollMemory.d.ts.map +0 -1
  1016. package/dist/src/shell/useScrollMemory.js.map +0 -1
  1017. package/dist/src/shell/useShownView.d.ts.map +0 -1
  1018. package/dist/src/shell/useShownView.js.map +0 -1
  1019. package/dist/src/shell/useSidebarLayout.d.ts.map +0 -1
  1020. package/dist/src/shell/useSidebarLayout.js.map +0 -1
  1021. package/dist/src/shell/useStored.d.ts.map +0 -1
  1022. package/dist/src/shell/useStored.js.map +0 -1
  1023. package/dist/src/shell/useStoryCode.d.ts.map +0 -1
  1024. package/dist/src/shell/useStoryCode.js.map +0 -1
  1025. package/dist/src/shell/useStoryHeights.d.ts.map +0 -1
  1026. package/dist/src/shell/useStoryHeights.js.map +0 -1
  1027. package/dist/src/shell/useStoryIdsElement.d.ts.map +0 -1
  1028. package/dist/src/shell/useStoryIdsElement.js.map +0 -1
  1029. package/dist/src/shell/useStoryKeys.d.ts.map +0 -1
  1030. package/dist/src/shell/useStoryKeys.js.map +0 -1
  1031. package/dist/src/shell/useSystemDark.d.ts.map +0 -1
  1032. package/dist/src/shell/useSystemDark.js.map +0 -1
  1033. package/dist/src/shell/useToolbarLayout.d.ts.map +0 -1
  1034. package/dist/src/shell/useToolbarLayout.js.map +0 -1
  1035. package/dist/src/shell/useToolbarOverflow.d.ts.map +0 -1
  1036. package/dist/src/shell/useToolbarOverflow.js.map +0 -1
  1037. package/dist/src/shell/useWorstCase.d.ts.map +0 -1
  1038. package/dist/src/shell/useWorstCase.js.map +0 -1
  1039. package/dist/src/shell/worstArgs.d.ts.map +0 -1
  1040. package/dist/src/shell/worstArgs.js.map +0 -1
  1041. package/dist/src/sourceFiles.d.ts.map +0 -1
  1042. package/dist/src/sourceFiles.js.map +0 -1
  1043. package/dist/src/spills.d.ts.map +0 -1
  1044. package/dist/src/spills.js.map +0 -1
  1045. package/dist/src/storyBackground.d.ts.map +0 -1
  1046. package/dist/src/storyBackground.js.map +0 -1
  1047. package/dist/src/storyCheck.d.ts.map +0 -1
  1048. package/dist/src/storyCheck.js.map +0 -1
  1049. package/dist/src/storyClock.d.ts.map +0 -1
  1050. package/dist/src/storyClock.js.map +0 -1
  1051. package/dist/src/storyGlobals.d.ts.map +0 -1
  1052. package/dist/src/storyGlobals.js.map +0 -1
  1053. package/dist/src/storyHeights.d.ts.map +0 -1
  1054. package/dist/src/storyHeights.js.map +0 -1
  1055. package/dist/src/storyIdsElement.d.ts.map +0 -1
  1056. package/dist/src/storyIdsElement.js.map +0 -1
  1057. package/dist/src/storyTexts.d.ts.map +0 -1
  1058. package/dist/src/storyTexts.js.map +0 -1
  1059. package/dist/src/storyTree.d.ts.map +0 -1
  1060. package/dist/src/storyTree.js.map +0 -1
  1061. package/dist/src/switches.d.ts.map +0 -1
  1062. package/dist/src/switches.js.map +0 -1
  1063. package/dist/src/toolbarLayout.d.ts.map +0 -1
  1064. package/dist/src/toolbarLayout.js.map +0 -1
  1065. package/dist/src/usedIn.d.ts.map +0 -1
  1066. package/dist/src/usedIn.js.map +0 -1
  1067. package/dist/src/viewState.d.ts.map +0 -1
  1068. package/dist/src/viewState.js.map +0 -1
  1069. package/dist/src/viewWords.d.ts.map +0 -1
  1070. package/dist/src/viewWords.js.map +0 -1
  1071. package/dist/src/vite/adapter.d.ts.map +0 -1
  1072. package/dist/src/vite/adapter.js.map +0 -1
  1073. package/dist/src/vite/agent.types.d.ts.map +0 -1
  1074. package/dist/src/vite/agent.types.js.map +0 -1
  1075. package/dist/src/vite/agentApi.d.ts.map +0 -1
  1076. package/dist/src/vite/agentApi.js.map +0 -1
  1077. package/dist/src/vite/agentRoutes.d.ts.map +0 -1
  1078. package/dist/src/vite/agentRoutes.js.map +0 -1
  1079. package/dist/src/vite/autoTitle.d.ts.map +0 -1
  1080. package/dist/src/vite/autoTitle.js.map +0 -1
  1081. package/dist/src/vite/componentPage.d.ts.map +0 -1
  1082. package/dist/src/vite/componentPage.js.map +0 -1
  1083. package/dist/src/vite/config.d.ts.map +0 -1
  1084. package/dist/src/vite/config.js.map +0 -1
  1085. package/dist/src/vite/configFile.d.ts.map +0 -1
  1086. package/dist/src/vite/configFile.js.map +0 -1
  1087. package/dist/src/vite/docsExtractor.d.ts.map +0 -1
  1088. package/dist/src/vite/docsExtractor.js.map +0 -1
  1089. package/dist/src/vite/docsProgram.d.ts.map +0 -1
  1090. package/dist/src/vite/docsProgram.js.map +0 -1
  1091. package/dist/src/vite/docsWorker.d.ts.map +0 -1
  1092. package/dist/src/vite/docsWorker.js.map +0 -1
  1093. package/dist/src/vite/forcedStates.d.ts.map +0 -1
  1094. package/dist/src/vite/forcedStates.js.map +0 -1
  1095. package/dist/src/vite/forgebookPlugin.d.ts.map +0 -1
  1096. package/dist/src/vite/forgebookPlugin.js.map +0 -1
  1097. package/dist/src/vite/heightsRoute.d.ts.map +0 -1
  1098. package/dist/src/vite/heightsRoute.js.map +0 -1
  1099. package/dist/src/vite/highlightCode.d.ts.map +0 -1
  1100. package/dist/src/vite/highlightCode.js.map +0 -1
  1101. package/dist/src/vite/indexStoryFile.d.ts.map +0 -1
  1102. package/dist/src/vite/indexStoryFile.js.map +0 -1
  1103. package/dist/src/vite/mcpProtocol.d.ts.map +0 -1
  1104. package/dist/src/vite/mcpProtocol.js.map +0 -1
  1105. package/dist/src/vite/pages.d.ts.map +0 -1
  1106. package/dist/src/vite/pages.js.map +0 -1
  1107. package/dist/src/vite/prebundled.d.ts.map +0 -1
  1108. package/dist/src/vite/prebundled.js.map +0 -1
  1109. package/dist/src/vite/storyCode.d.ts.map +0 -1
  1110. package/dist/src/vite/storyCode.js.map +0 -1
  1111. package/dist/src/vite/storyFilesModule.d.ts.map +0 -1
  1112. package/dist/src/vite/storyFilesModule.js.map +0 -1
  1113. package/dist/src/vite/storyMeta.d.ts.map +0 -1
  1114. package/dist/src/vite/storyMeta.js.map +0 -1
  1115. package/dist/src/vite/touchMedia.d.ts.map +0 -1
  1116. package/dist/src/vite/touchMedia.js.map +0 -1
  1117. package/dist/src/vite/typeScriptPieces.d.ts.map +0 -1
  1118. package/dist/src/vite/typeScriptPieces.js.map +0 -1
  1119. package/dist/src/vite/usageGraph.d.ts.map +0 -1
  1120. package/dist/src/vite/usageGraph.js.map +0 -1
  1121. package/dist/src/vite/usageModule.d.ts.map +0 -1
  1122. package/dist/src/vite/usageModule.js.map +0 -1
  1123. package/dist/src/worstCase.d.ts.map +0 -1
  1124. package/dist/src/worstCase.js.map +0 -1
@@ -0,0 +1,382 @@
1
+ /**
2
+ * Design tokens read from DTCG files (the Design Tokens Format, 2025.10): a flat list with references followed and
3
+ * themes applied, every value as CSS writes it.
4
+ *
5
+ * @remarks
6
+ * Pure: parsed JSON in, tokens out. The format has no themes of its own, so a theme is a file of its own read over the
7
+ * base (`tokens: ["tokens.json", { file: "dark.json", mode: "dark" }]`). References are followed over base and theme
8
+ * together: a theme can alias the base, and a base alias follows what a theme overrides, which is why semantic tokens
9
+ * over a palette change with the theme at all. That is why files are collected first and resolved only once all are
10
+ * known. A token that cannot be used is named in `problems` with its file, and the others stay usable: nothing vanishes
11
+ * in silence, since a token an agent cannot find is a colour it writes by hand.
12
+ *
13
+ * Files of a catalogue's sources are read before its own, so its aliases reach a library's palette and a later file
14
+ * replaces an earlier one's token. Within one author's files that is plain layering; between authors it is a clash,
15
+ * reported and never refused: the catalogue is what puts the libraries together, so its value is the one in use.
16
+ *
17
+ * @module
18
+ */
19
+ import { tokenClashes } from "./tokenClashes.js";
20
+ /** A reference to a token in a value: nothing but its name in braces. */
21
+ const ALIAS = /^\{([^{}]+)\}$/;
22
+ /** What a token or group name may not hold: the format reserves them for references. */
23
+ const RESERVED_IN_NAME = /[.{}]/;
24
+ /** The key of the token a group holds under its own name. */
25
+ const ROOT_KEY = "$root";
26
+ /** Whether a value is an object with named fields. */
27
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
28
+ /** A field as text, when it is text. */
29
+ const textField = (node, field) => {
30
+ const value = node[field];
31
+ return typeof value === "string" ? value : undefined;
32
+ };
33
+ /** What a node says of deprecation: the key's presence decides, since `false` clears what a group set. */
34
+ const deprecationOf = (node, inherited) => {
35
+ if (!("$deprecated" in node))
36
+ return inherited;
37
+ const value = node["$deprecated"];
38
+ if (value === true)
39
+ return "Deprecated.";
40
+ return typeof value === "string" ? value : undefined;
41
+ };
42
+ /** A JSON pointer's target in a document; none when it leads nowhere. */
43
+ const pointed = (root, pointer) => {
44
+ let current = root;
45
+ for (const part of pointer.replace(/^#\/?/, "").split("/")) {
46
+ if (part === "")
47
+ continue;
48
+ const key = part.replace(/~1/g, "/").replace(/~0/g, "~");
49
+ if (Array.isArray(current))
50
+ current = current[Number(key)];
51
+ else if (isRecord(current))
52
+ current = current[key];
53
+ else
54
+ return undefined;
55
+ }
56
+ return current;
57
+ };
58
+ /** Everything under a node with its `$ref`s replaced by what they point at, a node's own fields winning. */
59
+ const withoutRefs = (node, root, through, problems) => {
60
+ if (Array.isArray(node))
61
+ return node.map((each) => withoutRefs(each, root, through, problems));
62
+ if (!isRecord(node))
63
+ return node;
64
+ const pointer = textField(node, "$ref");
65
+ const own = Object.fromEntries(Object.entries(node)
66
+ .filter(([key]) => key !== "$ref")
67
+ .map(([key, value]) => [key, withoutRefs(value, root, through, problems)]));
68
+ if (pointer === undefined)
69
+ return own;
70
+ if (through.has(pointer)) {
71
+ problems.push(`$ref ${pointer} leads back to itself`);
72
+ return own;
73
+ }
74
+ const target = pointed(root, pointer);
75
+ if (target === undefined) {
76
+ problems.push(`$ref ${pointer} leads nowhere`);
77
+ return own;
78
+ }
79
+ const expanded = withoutRefs(target, root, new Set([...through, pointer]), problems);
80
+ return isRecord(expanded) ? { ...expanded, ...own } : expanded;
81
+ };
82
+ /** A group's fields over the one it extends: a local token replaces the inherited one whole, a group merges. */
83
+ const mergedGroup = (base, local) => {
84
+ const merged = { ...base };
85
+ for (const [key, value] of Object.entries(local)) {
86
+ const known = merged[key];
87
+ const areGroups = isRecord(value) && isRecord(known) && !("$value" in value) && !("$value" in known);
88
+ merged[key] = areGroups ? mergedGroup(known, value) : value;
89
+ }
90
+ return merged;
91
+ };
92
+ /** A group with what it extends applied, the groups under it included. */
93
+ const withExtends = (group, root, through, problems) => {
94
+ const reference = textField(group, "$extends");
95
+ const name = reference === undefined ? undefined : ALIAS.exec(reference)?.[1];
96
+ let base = {};
97
+ if (name !== undefined) {
98
+ const target = pointed(root, name.split(".").join("/"));
99
+ if (through.has(name))
100
+ problems.push(`$extends {${name}} leads back to itself`);
101
+ else if (!isRecord(target))
102
+ problems.push(`$extends {${name}} leads nowhere`);
103
+ else if ("$value" in target)
104
+ problems.push(`$extends {${name}} names a token, not a group`);
105
+ else
106
+ base = withExtends(target, root, new Set([...through, name]), problems);
107
+ }
108
+ const own = Object.fromEntries(Object.entries(group)
109
+ .filter(([key]) => key !== "$extends")
110
+ .map(([key, value]) => [
111
+ key,
112
+ isRecord(value) && !("$value" in value) && !key.startsWith("$")
113
+ ? withExtends(value, root, through, problems)
114
+ : value
115
+ ]));
116
+ return mergedGroup(base, own);
117
+ };
118
+ /** One token's raw form. */
119
+ const rawToken = (node, name, inherited) => ({
120
+ name,
121
+ ownType: textField(node, "$type"),
122
+ groupType: inherited.type,
123
+ value: node["$value"],
124
+ description: textField(node, "$description"),
125
+ deprecated: deprecationOf(node, inherited.deprecated),
126
+ label: inherited.label,
127
+ source: inherited.source
128
+ });
129
+ /** Every token under a group, what the group says of type and deprecation reaching its tokens. */
130
+ const collected = (group, path, inherited, problems) => {
131
+ const passed = {
132
+ ...inherited,
133
+ type: textField(group, "$type") ?? inherited.type,
134
+ deprecated: deprecationOf(group, inherited.deprecated)
135
+ };
136
+ return Object.entries(group).flatMap(([key, node]) => {
137
+ if (!isRecord(node) || (key.startsWith("$") && key !== ROOT_KEY))
138
+ return [];
139
+ const nodePath = [...path, key];
140
+ const name = nodePath.join(".");
141
+ if (RESERVED_IN_NAME.test(key)) {
142
+ problems.push(`${name}: a name cannot hold ".", "{" or "}"`);
143
+ return [];
144
+ }
145
+ if (!("$value" in node))
146
+ return collected(node, nodePath, passed, problems);
147
+ const children = Object.keys(node).filter((child) => !child.startsWith("$"));
148
+ if (children.length > 0)
149
+ problems.push(`${name}: a token cannot also be a group (${children.join(", ")})`);
150
+ return [rawToken(node, name, passed)];
151
+ });
152
+ };
153
+ /** A file's raw tokens. */
154
+ const fileTokens = (input, problems) => {
155
+ const local = [];
156
+ const inherited = { type: undefined, deprecated: undefined, label: input.label, source: input.source };
157
+ let raw = [];
158
+ if (!isRecord(input.file))
159
+ local.push("the file is not a group of tokens");
160
+ else {
161
+ try {
162
+ const root = withoutRefs(input.file, input.file, new Set(), local);
163
+ raw = collected(withExtends(asRecord(root), input.file, new Set(), local), [], inherited, local);
164
+ }
165
+ catch (error) {
166
+ // a file nested past the stack costs that file, not every other author's tokens
167
+ local.push(error instanceof Error ? error.message : String(error));
168
+ }
169
+ }
170
+ problems.push(...local.map((problem) => `${input.label}: ${problem}`));
171
+ return raw;
172
+ };
173
+ /** A value known to be a record, for the document's root. */
174
+ const asRecord = (value) => (isRecord(value) ? value : {});
175
+ /** A font name, quoted unless it is a plain identifier or a generic family. */
176
+ const fontName = (name) => (/^-?[a-zA-Z_][\w-]*$/.test(name) ? name : JSON.stringify(name));
177
+ /** A number of 0 to 1 as two hexadecimal digits. */
178
+ const hexByte = (part) => Math.round(Math.min(1, Math.max(0, part)) * 255)
179
+ .toString(16)
180
+ .padStart(2, "0");
181
+ /** What `color()` cannot write: these spaces are CSS functions of their own. */
182
+ const FUNCTION_SPACES = {
183
+ hsl: ([h, s, l]) => `hsl(${h} ${s}% ${l}%)`,
184
+ hwb: ([h, w, b]) => `hwb(${h} ${w}% ${b}%)`,
185
+ lab: ([l, a, b]) => `lab(${l}% ${a} ${b})`,
186
+ lch: ([l, c, h]) => `lch(${l}% ${c} ${h})`,
187
+ oklab: ([l, a, b]) => `oklab(${l} ${a} ${b})`,
188
+ oklch: ([l, c, h]) => `oklch(${l} ${c} ${h})`
189
+ };
190
+ /** A colour with its alpha added to a function's text. */
191
+ const withAlpha = (text, alpha) => alpha >= 1 ? text : `${text.slice(0, -1)} / ${alpha})`;
192
+ /**
193
+ * A colour object as CSS writes it. Its `hex` is only a fallback, so it is taken in sRGB alone: elsewhere it would hide
194
+ * the colour itself, and with an alpha it would drop it.
195
+ */
196
+ const colorText = (color) => {
197
+ const space = textField(color, "colorSpace");
198
+ const parts = color["components"];
199
+ if (space === undefined || !Array.isArray(parts))
200
+ return undefined;
201
+ const alpha = typeof color["alpha"] === "number" ? color["alpha"] : 1;
202
+ const isNumeric = parts.every((part) => typeof part === "number");
203
+ if (space === "srgb" && isNumeric) {
204
+ const hex = `#${parts.map((part) => hexByte(Number(part))).join("")}`;
205
+ return alpha >= 1 ? (textField(color, "hex") ?? hex) : `${hex}${hexByte(alpha)}`;
206
+ }
207
+ const written = parts.map(String);
208
+ const own = FUNCTION_SPACES[space];
209
+ return withAlpha(own === undefined ? `color(${space} ${written.join(" ")})` : own(written), alpha);
210
+ };
211
+ /** Parts of a value written as CSS, where the parts have a CSS form; a composite keeps its fields. */
212
+ const cssParts = (value) => {
213
+ if (Array.isArray(value))
214
+ return value.map(cssParts);
215
+ if (!isRecord(value))
216
+ return value;
217
+ const color = colorText(value);
218
+ if (color !== undefined)
219
+ return color;
220
+ if ("value" in value && "unit" in value)
221
+ return `${String(value["value"])}${String(value["unit"])}`;
222
+ return Object.fromEntries(Object.entries(value).map(([key, part]) => [key, cssParts(part)]));
223
+ };
224
+ /** A value as CSS writes it; a composite as JSON of its parts. */
225
+ const valueText = (value, type) => {
226
+ if (type === "fontFamily") {
227
+ return (Array.isArray(value) ? value : [value]).map((name) => fontName(String(name))).join(", ");
228
+ }
229
+ if (type === "cubicBezier" && Array.isArray(value))
230
+ return `cubic-bezier(${value.join(", ")})`;
231
+ if (typeof value === "string" || typeof value === "number")
232
+ return String(value);
233
+ const parts = cssParts(value);
234
+ return typeof parts === "string" ? parts : JSON.stringify(parts);
235
+ };
236
+ /** The name a value references, when it is nothing else. */
237
+ const aliasOf = (value) => typeof value === "string" ? ALIAS.exec(value)?.[1] : undefined;
238
+ /** A value with every reference followed. Throws the problem's text, caught for its token. */
239
+ const followed = (value, byName, through) => {
240
+ const name = aliasOf(value);
241
+ if (name !== undefined) {
242
+ if (through.has(name))
243
+ throw new Error(`the alias {${name}} leads back to itself`);
244
+ const target = byName.get(name);
245
+ if (target === undefined)
246
+ throw new Error(`the alias {${name}} leads nowhere`);
247
+ return followed(target.value, byName, new Set([...through, name]));
248
+ }
249
+ if (Array.isArray(value))
250
+ return value.map((part) => followed(part, byName, through));
251
+ if (isRecord(value)) {
252
+ return Object.fromEntries(Object.entries(value).map(([key, part]) => [key, followed(part, byName, through)]));
253
+ }
254
+ return value;
255
+ };
256
+ /** A token's type: its own, then what its alias resolves to, then its group's, as the format orders them. */
257
+ const typeOf = (raw, byName, seen) => {
258
+ if (raw.ownType !== undefined)
259
+ return raw.ownType;
260
+ const name = aliasOf(raw.value);
261
+ const target = name === undefined || seen.has(name) ? undefined : byName.get(name);
262
+ const aliased = target === undefined ? undefined : typeOf(target, byName, new Set([...seen, target.name]));
263
+ const replaced = raw.replaces === undefined ? undefined : typeOf(raw.replaces, byName, seen);
264
+ return aliased ?? raw.groupType ?? replaced;
265
+ };
266
+ /** What a token comes to under a set of tokens, or why it cannot be used. */
267
+ const resolvedValue = (raw, byName) => {
268
+ const type = typeOf(raw, byName, new Set([raw.name]));
269
+ if (type === undefined)
270
+ return `${raw.name}: no $type, on it or on its groups`;
271
+ const name = aliasOf(raw.value);
272
+ const target = name === undefined ? undefined : byName.get(name);
273
+ const targetType = target === undefined ? undefined : typeOf(target, byName, new Set([target.name]));
274
+ if (raw.ownType !== undefined && targetType !== undefined && raw.ownType !== targetType) {
275
+ return `${raw.name}: it says ${raw.ownType}, its alias is ${targetType}`;
276
+ }
277
+ try {
278
+ return { text: valueText(followed(raw.value, byName, new Set([raw.name])), type), type };
279
+ }
280
+ catch (error) {
281
+ return `${raw.name}: ${error instanceof Error ? error.message : String(error)}`;
282
+ }
283
+ };
284
+ /** The token a raw one makes, its values in each theme filled in afterwards. */
285
+ const tokenOf = (raw, value, type) => {
286
+ const alias = aliasOf(raw.value);
287
+ return {
288
+ name: raw.name,
289
+ type,
290
+ value,
291
+ ...(alias === undefined ? {} : { alias }),
292
+ ...(raw.description === undefined ? {} : { description: raw.description }),
293
+ ...(raw.deprecated === undefined ? {} : { deprecated: raw.deprecated }),
294
+ ...(raw.source === undefined ? {} : { source: raw.source }),
295
+ modes: {}
296
+ };
297
+ };
298
+ /**
299
+ * The tokens of files by name, the later file replacing. A file over another writes the value and little else, so what
300
+ * it leaves out is the replaced token's: it retunes the token, it does not make a new one.
301
+ */
302
+ const byNameOf = (lists) => {
303
+ const merged = new Map();
304
+ for (const token of lists.flat()) {
305
+ const known = merged.get(token.name);
306
+ merged.set(token.name, known === undefined
307
+ ? token
308
+ : {
309
+ ...token,
310
+ replaces: known,
311
+ description: token.description ?? known.description,
312
+ deprecated: token.deprecated ?? known.deprecated
313
+ });
314
+ }
315
+ return merged;
316
+ };
317
+ /** Each token's value in a theme, with a problem for what the theme itself broke. */
318
+ const themeValues = (own, base, problems) => {
319
+ const merged = byNameOf([[...base.values()], own]);
320
+ const names = new Set(own.map((token) => token.name));
321
+ const values = new Map();
322
+ for (const raw of merged.values()) {
323
+ const result = resolvedValue(raw, merged);
324
+ if (typeof result !== "string")
325
+ values.set(raw.name, { ...result, raw });
326
+ else if (names.has(raw.name))
327
+ problems.push(`${raw.label}: ${result}`);
328
+ }
329
+ return values;
330
+ };
331
+ /** A theme's values on the tokens: a token it names, one a reference changed, and one only it has. */
332
+ const applyTheme = (tokens, mode, own, values) => {
333
+ for (const [name, value] of values) {
334
+ const known = tokens.get(name);
335
+ if (known === undefined) {
336
+ tokens.set(name, {
337
+ ...tokenOf(value.raw, value.text, value.type),
338
+ isThemeOnly: true,
339
+ modes: { [mode]: value.text }
340
+ });
341
+ }
342
+ else if (value.text !== known.value || own.some((token) => token.name === name)) {
343
+ tokens.set(name, { ...known, modes: { ...known.modes, [mode]: value.text } });
344
+ }
345
+ }
346
+ };
347
+ /**
348
+ * Reads the files of a catalogue: the base first, then each theme over it. A theme gives a token a value when it names
349
+ * the token, or when a reference brings it a different one. The files of one theme are one layer, the later replacing,
350
+ * so a catalogue's dark file reaches what a library's dark file sets.
351
+ *
352
+ * @param inputs - the files: each source's in the catalogue's order, then the catalogue's own.
353
+ */
354
+ export const readTokens = (inputs) => {
355
+ const problems = [];
356
+ const files = inputs.map(({ mode, ...input }) => ({ mode, raw: fileTokens({ mode, ...input }, problems) }));
357
+ const layer = (mode) => byNameOf(files.filter((file) => file.mode === mode).map((file) => file.raw));
358
+ const base = layer(undefined);
359
+ const tokens = new Map();
360
+ for (const raw of base.values()) {
361
+ const result = resolvedValue(raw, base);
362
+ if (typeof result !== "string")
363
+ tokens.set(raw.name, tokenOf(raw, result.text, result.type));
364
+ else
365
+ problems.push(`${raw.label}: ${result}`);
366
+ }
367
+ for (const mode of new Set(files.flatMap((file) => (file.mode === undefined ? [] : [file.mode])))) {
368
+ const own = [...layer(mode).values()];
369
+ applyTheme(tokens, mode, own, themeValues(own, base, problems));
370
+ }
371
+ return { tokens: [...tokens.values()], problems, clashes: tokenClashes(files) };
372
+ };
373
+ /**
374
+ * The tokens of a category: a type (`color`), or a first group (`space`).
375
+ *
376
+ * @param tokens - the tokens.
377
+ * @param category - the category; none for all of them.
378
+ */
379
+ export const filteredTokens = (tokens, category) => tokens.filter((token) => category === undefined ||
380
+ token.type === category ||
381
+ token.name === category ||
382
+ token.name.startsWith(`${category}.`));
@@ -0,0 +1,51 @@
1
+ /** A disk cache of one kind of answer. */
2
+ export type DiskCache<TValue> = {
3
+ /** The answer kept under a key, when everything it was made from is unchanged. */
4
+ readonly read: (key: string) => TValue | undefined;
5
+ /** Keeps an answer under a key, with the paths it was made from, stamped (`stampPaths`). */
6
+ readonly write: (key: string, value: TValue, stamps: readonly PathStamp[]) => void;
7
+ /** Whether it keeps any answer, fresh or not: none on a project's first start. */
8
+ readonly isEmpty: () => boolean;
9
+ };
10
+ /** A path and its stamp; `null` for a path that does not exist, which may appear later. */
11
+ export type PathStamp = readonly [path: string, stamp: string | null, changedAt: string | null];
12
+ /**
13
+ * The stamps of the paths an answer was made from, taken once it is made.
14
+ *
15
+ * @param paths - files and folders; repeats are stamped once.
16
+ */
17
+ export declare const stampPaths: (paths: readonly string[]) => PathStamp[];
18
+ /** The time now, in nanoseconds since the epoch: what `isSettledSince` compares a path's last change with. */
19
+ export declare const nowNs: () => bigint;
20
+ /**
21
+ * How long before an answer's making a change still counts as made during it, in nanoseconds. A file system writes
22
+ * times with its own clock and grain (two seconds on FAT, a coarse kernel clock on Linux) and some update them late,
23
+ * so a change made while the answer was read can carry a time a little before its start.
24
+ */
25
+ export declare const SETTLE_MARGIN_NS = 3000000000n;
26
+ /**
27
+ * Whether no path changed since shortly before an answer's making started (`SETTLE_MARGIN_NS`): one that did may have
28
+ * been read before or after its change, so the answer is not kept; the next one made after it settles is.
29
+ *
30
+ * @param stamps - the paths' stamps, taken once the answer was made.
31
+ * @param since - when its making started (`nowNs`).
32
+ */
33
+ export declare const isSettledSince: (stamps: readonly PathStamp[], since: bigint) => boolean;
34
+ /**
35
+ * What the answers of a piece of code depend on besides their files: every file of its folders, and the manifests of
36
+ * the packages it reads with, by stamp (or by text, for a file that changed just before, `codeFileStamp`), so another
37
+ * version installed, or an edit of a source while developing it, makes every kept answer a miss.
38
+ *
39
+ * @param folders - the folders of the code that makes the answers.
40
+ * @param files - other files it depends on (the manifests of the parser, the compiler, the highlighter).
41
+ * @param since - when the stamp is taken; now unless a test says otherwise.
42
+ */
43
+ export declare const codeStamp: (folders: readonly string[], files?: readonly string[], since?: bigint) => string;
44
+ /**
45
+ * A cache in a folder.
46
+ *
47
+ * @param folder - the folder, created on the first write.
48
+ * @param code - the stamp of the code that makes the answers (`codeStamp`): another one is a miss.
49
+ * @param isValue - whether what was read is an answer: a file written by another version may hold anything.
50
+ */
51
+ export declare const diskCache: <TValue>(folder: string, code: string, isValue: (value: unknown) => value is TValue & {}) => DiskCache<TValue>;
@@ -0,0 +1,211 @@
1
+ /**
2
+ * What a dev server worked out once and need not work out again, kept on disk: a story file's component docs, its
3
+ * code, a group's "Used in", a pattern's index; each with the paths it was made from, stamped as they were read.
4
+ *
5
+ * @remarks
6
+ * A story's page reads its component's docs at once, and those need a TypeScript program: more memory than the rest of
7
+ * the server. Kept here, a later start answers from a file and starts no worker until something changes.
8
+ *
9
+ * An entry is reused only while nothing it was made from changed:
10
+ * - every path it depends on keeps its stamp (`stampPaths`): a file's change and modification times, size and inode;
11
+ * a folder's list of names, so a file added beside one an import found, which the import may now find, is a miss,
12
+ * while a save that replaces a file is not; a path that was missing must still be missing;
13
+ * - the code that made it is the same (`codeStamp`): another version of Forgebook, of the framework's adapter or of
14
+ * the tools they read with, or an edit of their sources, is a miss; a file changed within the margin below is
15
+ * stamped by its text, since no later answer waits for it to settle.
16
+ *
17
+ * Paths are stamped once the answer is made, and an answer is kept only when none of them changed after its making
18
+ * started (`isSettledSince`): an edit made while it was being read would otherwise be stamped beside the old answer.
19
+ * The same wait makes a file system's time grain harmless: a kept stamp's last change is older than the margin, so a
20
+ * later save, even of the same size, carries a later time.
21
+ *
22
+ * The folder sits in Vite's cache folder, so what clears that clears this. A cache that cannot be read or written is
23
+ * only a slower start: every failure here is a miss.
24
+ *
25
+ * @module
26
+ */
27
+ import { createHash } from "node:crypto";
28
+ import { closeSync, lstatSync, mkdirSync, openSync, readdirSync, readFileSync, renameSync, statSync, unlinkSync, writeSync } from "node:fs";
29
+ import { join } from "node:path";
30
+ /** The largest entry read back, in bytes: anything larger was not written here. */
31
+ const MOST_BYTES = 64 * 1024 * 1024;
32
+ /** Whether a value is a path's stamp. */
33
+ const isPathStamp = (value) => Array.isArray(value) &&
34
+ typeof value[0] === "string" &&
35
+ (typeof value[1] === "string" || value[1] === null) &&
36
+ (typeof value[2] === "string" || value[2] === null);
37
+ /** Whether a parsed file is an entry. */
38
+ const isEntry = (value) => typeof value === "object" &&
39
+ value !== null &&
40
+ "code" in value &&
41
+ typeof value.code === "string" &&
42
+ "value" in value &&
43
+ "paths" in value &&
44
+ Array.isArray(value.paths) &&
45
+ value.paths.every(isPathStamp);
46
+ /**
47
+ * A path's stamp as it is now, with when it last changed (nanoseconds since the epoch, as a text).
48
+ *
49
+ * @param path - a file or a folder.
50
+ */
51
+ const stampOf = (path) => {
52
+ const stats = statSync(path, { bigint: true, throwIfNoEntry: false });
53
+ if (stats === undefined)
54
+ return [path, null, null];
55
+ if (!stats.isDirectory())
56
+ return [path, `${stats.ctimeNs}:${stats.mtimeNs}:${stats.size}:${stats.ino}`, String(stats.ctimeNs)];
57
+ const names = readdirSync(path).sort().join("\0");
58
+ return [path, `dir:${createHash("sha256").update(names).digest("hex")}`, String(stats.ctimeNs)];
59
+ };
60
+ /**
61
+ * The stamps of the paths an answer was made from, taken once it is made.
62
+ *
63
+ * @param paths - files and folders; repeats are stamped once.
64
+ */
65
+ export const stampPaths = (paths) => [...new Set(paths)].map(stampOf);
66
+ /** The time now, in nanoseconds since the epoch: what `isSettledSince` compares a path's last change with. */
67
+ export const nowNs = () => BigInt(Date.now()) * 1000000n;
68
+ /**
69
+ * How long before an answer's making a change still counts as made during it, in nanoseconds. A file system writes
70
+ * times with its own clock and grain (two seconds on FAT, a coarse kernel clock on Linux) and some update them late,
71
+ * so a change made while the answer was read can carry a time a little before its start.
72
+ */
73
+ export const SETTLE_MARGIN_NS = 3000000000n;
74
+ /**
75
+ * Whether no path changed since shortly before an answer's making started (`SETTLE_MARGIN_NS`): one that did may have
76
+ * been read before or after its change, so the answer is not kept; the next one made after it settles is.
77
+ *
78
+ * @param stamps - the paths' stamps, taken once the answer was made.
79
+ * @param since - when its making started (`nowNs`).
80
+ */
81
+ export const isSettledSince = (stamps, since) => stamps.every(([, , changedAt]) => changedAt === null || BigInt(changedAt) < since - SETTLE_MARGIN_NS);
82
+ /**
83
+ * A file's part of a code stamp: its stamp, or the hash of its text when it changed shortly before `since`. A file
84
+ * system's times have a grain (a clock tick on Windows), so two same-size saves in one tick leave the same stamp; a
85
+ * code stamp is taken once at a start, with no answer made after it to wait for (`isSettledSince`), so a file still
86
+ * within the margin is read instead. Only those are read: after an install, the first start reads the package once.
87
+ *
88
+ * @param path - a file or a folder of the code.
89
+ * @param since - when the code stamp is taken (`nowNs`).
90
+ */
91
+ const codeFileStamp = (path, since) => {
92
+ const stamped = stampOf(path);
93
+ const [, stamp] = stamped;
94
+ if (stamp === null)
95
+ return "";
96
+ // a folder's stamp is its names, which have no grain
97
+ if (stamp.startsWith("dir:") || isSettledSince([stamped], since))
98
+ return stamp;
99
+ try {
100
+ return `text:${createHash("sha256").update(readFileSync(path)).digest("hex")}`;
101
+ }
102
+ catch {
103
+ // gone since it was stamped: its stamp still tells it apart from the file that was there
104
+ return stamp;
105
+ }
106
+ };
107
+ /**
108
+ * What the answers of a piece of code depend on besides their files: every file of its folders, and the manifests of
109
+ * the packages it reads with, by stamp (or by text, for a file that changed just before, `codeFileStamp`), so another
110
+ * version installed, or an edit of a source while developing it, makes every kept answer a miss.
111
+ *
112
+ * @param folders - the folders of the code that makes the answers.
113
+ * @param files - other files it depends on (the manifests of the parser, the compiler, the highlighter).
114
+ * @param since - when the stamp is taken; now unless a test says otherwise.
115
+ */
116
+ export const codeStamp = (folders, files = [], since = nowNs()) => {
117
+ const hash = createHash("sha256");
118
+ for (const folder of [...new Set(folders)].sort()) {
119
+ const names = readdirSync(folder, { recursive: true, encoding: "utf8" }).sort();
120
+ for (const name of names)
121
+ hash.update(`${name}\0${codeFileStamp(join(folder, name), since)}\0`);
122
+ }
123
+ for (const file of [...new Set(files)].sort())
124
+ hash.update(`${file}\0${codeFileStamp(file, since)}\0`);
125
+ return hash.digest("hex");
126
+ };
127
+ /**
128
+ * The text of an entry's file, when it is a plain file of a size this cache writes.
129
+ *
130
+ * @param path - the entry's file.
131
+ */
132
+ const entryText = (path) => {
133
+ const stats = lstatSync(path, { throwIfNoEntry: false });
134
+ if (stats === undefined || !stats.isFile() || stats.size > MOST_BYTES)
135
+ return undefined;
136
+ return readFileSync(path, "utf8");
137
+ };
138
+ /**
139
+ * Writes a file whole, in place of what was there: renamed into place, so a reader, or a server stopped halfway,
140
+ * never meets half a file; created anew, so a link left in the folder is not followed.
141
+ *
142
+ * @param path - the file.
143
+ * @param text - its text.
144
+ */
145
+ const writeWhole = (path, text) => {
146
+ const partial = `${path}.${process.pid}.${Date.now()}`;
147
+ try {
148
+ const descriptor = openSync(partial, "wx");
149
+ try {
150
+ writeSync(descriptor, text);
151
+ }
152
+ finally {
153
+ closeSync(descriptor);
154
+ }
155
+ renameSync(partial, path);
156
+ }
157
+ catch {
158
+ // a cache that cannot be written is a slower next start; what was left half done goes
159
+ try {
160
+ unlinkSync(partial);
161
+ }
162
+ catch {
163
+ // never created
164
+ }
165
+ }
166
+ };
167
+ /**
168
+ * A cache in a folder.
169
+ *
170
+ * @param folder - the folder, created on the first write.
171
+ * @param code - the stamp of the code that makes the answers (`codeStamp`): another one is a miss.
172
+ * @param isValue - whether what was read is an answer: a file written by another version may hold anything.
173
+ */
174
+ export const diskCache = (folder, code, isValue) => {
175
+ const path = (key) => join(folder, `${createHash("sha256").update(key).digest("hex").slice(0, 32)}.json`);
176
+ return {
177
+ read: (key) => {
178
+ try {
179
+ const text = entryText(path(key));
180
+ if (text === undefined)
181
+ return undefined;
182
+ const entry = JSON.parse(text);
183
+ if (!isEntry(entry) || entry.code !== code)
184
+ return undefined;
185
+ const isFresh = entry.paths.every(([name, stamp]) => stampOf(name)[1] === stamp);
186
+ return isFresh && isValue(entry.value) ? entry.value : undefined;
187
+ }
188
+ catch {
189
+ return undefined;
190
+ }
191
+ },
192
+ write: (key, value, stamps) => {
193
+ const entry = { code, paths: stamps, value };
194
+ try {
195
+ mkdirSync(folder, { recursive: true });
196
+ }
197
+ catch {
198
+ return;
199
+ }
200
+ writeWhole(path(key), JSON.stringify(entry));
201
+ },
202
+ isEmpty: () => {
203
+ try {
204
+ return !readdirSync(folder).some((name) => name.endsWith(".json"));
205
+ }
206
+ catch {
207
+ return true;
208
+ }
209
+ }
210
+ };
211
+ };