forgebook 0.1.3 → 0.1.5

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 (379) hide show
  1. package/README.md +99 -6
  2. package/dist/bin/forgebook/agentClient.d.ts +17 -0
  3. package/dist/bin/forgebook/agentClient.d.ts.map +1 -1
  4. package/dist/bin/forgebook/agentClient.js +21 -0
  5. package/dist/bin/forgebook/agentClient.js.map +1 -1
  6. package/dist/bin/forgebook/agentLoopCommands.d.mts +9 -0
  7. package/dist/bin/forgebook/agentLoopCommands.d.mts.map +1 -0
  8. package/dist/bin/forgebook/agentLoopCommands.mjs +217 -0
  9. package/dist/bin/forgebook/agentLoopCommands.mjs.map +1 -0
  10. package/dist/bin/forgebook/agentText.d.ts +37 -1
  11. package/dist/bin/forgebook/agentText.d.ts.map +1 -1
  12. package/dist/bin/forgebook/agentText.js +49 -2
  13. package/dist/bin/forgebook/agentText.js.map +1 -1
  14. package/dist/bin/forgebook/agents.md +51 -0
  15. package/dist/bin/forgebook/agentsText.d.ts +29 -0
  16. package/dist/bin/forgebook/agentsText.d.ts.map +1 -0
  17. package/dist/bin/forgebook/agentsText.js +48 -0
  18. package/dist/bin/forgebook/agentsText.js.map +1 -0
  19. package/dist/bin/forgebook/catalogueCommands.d.ts +51 -0
  20. package/dist/bin/forgebook/catalogueCommands.d.ts.map +1 -0
  21. package/dist/bin/forgebook/catalogueCommands.js +90 -0
  22. package/dist/bin/forgebook/catalogueCommands.js.map +1 -0
  23. package/dist/bin/forgebook/errorsRun.d.ts +27 -0
  24. package/dist/bin/forgebook/errorsRun.d.ts.map +1 -0
  25. package/dist/bin/forgebook/errorsRun.js +60 -0
  26. package/dist/bin/forgebook/errorsRun.js.map +1 -0
  27. package/dist/bin/forgebook/forgebook.mjs +121 -86
  28. package/dist/bin/forgebook/forgebook.mjs.map +1 -1
  29. package/dist/bin/forgebook/importers/storybook.d.ts +53 -0
  30. package/dist/bin/forgebook/importers/storybook.d.ts.map +1 -0
  31. package/dist/bin/forgebook/importers/storybook.js +318 -0
  32. package/dist/bin/forgebook/importers/storybook.js.map +1 -0
  33. package/dist/bin/forgebook/initCommands.d.mts +9 -0
  34. package/dist/bin/forgebook/initCommands.d.mts.map +1 -0
  35. package/dist/bin/forgebook/initCommands.mjs +86 -0
  36. package/dist/bin/forgebook/initCommands.mjs.map +1 -0
  37. package/dist/bin/forgebook/initConfig.d.ts +22 -0
  38. package/dist/bin/forgebook/initConfig.d.ts.map +1 -0
  39. package/dist/bin/forgebook/initConfig.js +51 -0
  40. package/dist/bin/forgebook/initConfig.js.map +1 -0
  41. package/dist/bin/forgebook/mcpTools.d.ts +29 -3
  42. package/dist/bin/forgebook/mcpTools.d.ts.map +1 -1
  43. package/dist/bin/forgebook/mcpTools.js +130 -7
  44. package/dist/bin/forgebook/mcpTools.js.map +1 -1
  45. package/dist/bin/forgebook/newStories.d.ts +27 -0
  46. package/dist/bin/forgebook/newStories.d.ts.map +1 -0
  47. package/dist/bin/forgebook/newStories.js +109 -0
  48. package/dist/bin/forgebook/newStories.js.map +1 -0
  49. package/dist/bin/forgebook/newStoriesFile.d.ts +18 -0
  50. package/dist/bin/forgebook/newStoriesFile.d.ts.map +1 -0
  51. package/dist/bin/forgebook/newStoriesFile.js +58 -0
  52. package/dist/bin/forgebook/newStoriesFile.js.map +1 -0
  53. package/dist/bin/forgebook/storyCheckRun.d.ts +49 -0
  54. package/dist/bin/forgebook/storyCheckRun.d.ts.map +1 -0
  55. package/dist/bin/forgebook/storyCheckRun.js +178 -0
  56. package/dist/bin/forgebook/storyCheckRun.js.map +1 -0
  57. package/dist/bin/forgebook/touchWindowRun.d.ts +17 -0
  58. package/dist/bin/forgebook/touchWindowRun.d.ts.map +1 -0
  59. package/dist/bin/forgebook/touchWindowRun.js +21 -0
  60. package/dist/bin/forgebook/touchWindowRun.js.map +1 -0
  61. package/dist/bin/forgebook-docs/catalogueDocs.d.ts +24 -0
  62. package/dist/bin/forgebook-docs/catalogueDocs.d.ts.map +1 -0
  63. package/dist/bin/forgebook-docs/catalogueDocs.js +71 -0
  64. package/dist/bin/forgebook-docs/catalogueDocs.js.map +1 -0
  65. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +8 -0
  66. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +1 -1
  67. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +3 -1
  68. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +1 -1
  69. package/dist/bin/forgebook-docs/catalogueMarkdown.js +62 -42
  70. package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +1 -1
  71. package/dist/bin/forgebook-docs/catalogueOptions.d.ts +39 -0
  72. package/dist/bin/forgebook-docs/catalogueOptions.d.ts.map +1 -0
  73. package/dist/bin/forgebook-docs/catalogueOptions.js +76 -0
  74. package/dist/bin/forgebook-docs/catalogueOptions.js.map +1 -0
  75. package/dist/bin/forgebook-docs/collectDocs.d.ts +3 -1
  76. package/dist/bin/forgebook-docs/collectDocs.d.ts.map +1 -1
  77. package/dist/bin/forgebook-docs/collectDocs.js +37 -13
  78. package/dist/bin/forgebook-docs/collectDocs.js.map +1 -1
  79. package/dist/bin/forgebook-docs/forgebook-docs.mjs +17 -80
  80. package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +1 -1
  81. package/dist/bin/forgebook-docs/llmsText.d.ts +24 -0
  82. package/dist/bin/forgebook-docs/llmsText.d.ts.map +1 -0
  83. package/dist/bin/forgebook-docs/llmsText.js +33 -0
  84. package/dist/bin/forgebook-docs/llmsText.js.map +1 -0
  85. package/dist/bin/forgebook-docs/sourceId.d.ts +9 -0
  86. package/dist/bin/forgebook-docs/sourceId.d.ts.map +1 -0
  87. package/dist/bin/forgebook-docs/sourceId.js +45 -0
  88. package/dist/bin/forgebook-docs/sourceId.js.map +1 -0
  89. package/dist/bin/frameworkDocs.d.ts +10 -0
  90. package/dist/bin/frameworkDocs.d.ts.map +1 -0
  91. package/dist/bin/frameworkDocs.js +43 -0
  92. package/dist/bin/frameworkDocs.js.map +1 -0
  93. package/dist/src/argTypes.d.ts +23 -0
  94. package/dist/src/argTypes.d.ts.map +1 -1
  95. package/dist/src/argTypes.js +27 -0
  96. package/dist/src/argTypes.js.map +1 -1
  97. package/dist/src/catalogue.d.ts +70 -3
  98. package/dist/src/catalogue.d.ts.map +1 -1
  99. package/dist/src/catalogue.js +85 -3
  100. package/dist/src/catalogue.js.map +1 -1
  101. package/dist/src/controlKeys.d.ts +85 -0
  102. package/dist/src/controlKeys.d.ts.map +1 -0
  103. package/dist/src/controlKeys.js +118 -0
  104. package/dist/src/controlKeys.js.map +1 -0
  105. package/dist/src/frame/frame.css +33 -2
  106. package/dist/src/frame/frameView.d.ts +2 -2
  107. package/dist/src/frame/frameView.d.ts.map +1 -1
  108. package/dist/src/frame/frameView.js +7 -3
  109. package/dist/src/frame/frameView.js.map +1 -1
  110. package/dist/src/frame/mountFrame.d.ts.map +1 -1
  111. package/dist/src/frame/mountFrame.js +30 -2
  112. package/dist/src/frame/mountFrame.js.map +1 -1
  113. package/dist/src/frame/spillOutline.d.ts +10 -0
  114. package/dist/src/frame/spillOutline.d.ts.map +1 -0
  115. package/dist/src/frame/spillOutline.js +80 -0
  116. package/dist/src/frame/spillOutline.js.map +1 -0
  117. package/dist/src/frame/touchDots.d.ts +32 -0
  118. package/dist/src/frame/touchDots.d.ts.map +1 -0
  119. package/dist/src/frame/touchDots.js +52 -0
  120. package/dist/src/frame/touchDots.js.map +1 -0
  121. package/dist/src/frame/touchEvents.d.ts +66 -0
  122. package/dist/src/frame/touchEvents.d.ts.map +1 -0
  123. package/dist/src/frame/touchEvents.js +152 -0
  124. package/dist/src/frame/touchEvents.js.map +1 -0
  125. package/dist/src/frame/touchGesture.d.ts +80 -0
  126. package/dist/src/frame/touchGesture.d.ts.map +1 -0
  127. package/dist/src/frame/touchGesture.js +87 -0
  128. package/dist/src/frame/touchGesture.js.map +1 -0
  129. package/dist/src/frame/touchLayer.d.ts +7 -0
  130. package/dist/src/frame/touchLayer.d.ts.map +1 -0
  131. package/dist/src/frame/touchLayer.js +399 -0
  132. package/dist/src/frame/touchLayer.js.map +1 -0
  133. package/dist/src/frame/touchScroll.d.ts +51 -0
  134. package/dist/src/frame/touchScroll.d.ts.map +1 -0
  135. package/dist/src/frame/touchScroll.js +137 -0
  136. package/dist/src/frame/touchScroll.js.map +1 -0
  137. package/dist/src/liveErrors.d.ts +57 -0
  138. package/dist/src/liveErrors.d.ts.map +1 -0
  139. package/dist/src/liveErrors.js +52 -0
  140. package/dist/src/liveErrors.js.map +1 -0
  141. package/dist/src/messages.d.ts +12 -0
  142. package/dist/src/messages.d.ts.map +1 -1
  143. package/dist/src/messages.js +4 -0
  144. package/dist/src/messages.js.map +1 -1
  145. package/dist/src/namedViews.d.ts +80 -0
  146. package/dist/src/namedViews.d.ts.map +1 -0
  147. package/dist/src/namedViews.js +88 -0
  148. package/dist/src/namedViews.js.map +1 -0
  149. package/dist/src/realTouch.d.ts +21 -0
  150. package/dist/src/realTouch.d.ts.map +1 -0
  151. package/dist/src/realTouch.js +16 -0
  152. package/dist/src/realTouch.js.map +1 -0
  153. package/dist/src/shell/AppearanceMenu.d.ts +15 -0
  154. package/dist/src/shell/AppearanceMenu.d.ts.map +1 -0
  155. package/dist/src/shell/AppearanceMenu.js +28 -0
  156. package/dist/src/shell/AppearanceMenu.js.map +1 -0
  157. package/dist/src/shell/BoxWidth.d.ts +40 -0
  158. package/dist/src/shell/BoxWidth.d.ts.map +1 -0
  159. package/dist/src/shell/BoxWidth.js +56 -0
  160. package/dist/src/shell/BoxWidth.js.map +1 -0
  161. package/dist/src/shell/ComponentPage.d.ts +17 -1
  162. package/dist/src/shell/ComponentPage.d.ts.map +1 -1
  163. package/dist/src/shell/ComponentPage.js +19 -54
  164. package/dist/src/shell/ComponentPage.js.map +1 -1
  165. package/dist/src/shell/ControlKeyField.d.ts +21 -0
  166. package/dist/src/shell/ControlKeyField.d.ts.map +1 -0
  167. package/dist/src/shell/ControlKeyField.js +46 -0
  168. package/dist/src/shell/ControlKeyField.js.map +1 -0
  169. package/dist/src/shell/ControlRow.d.ts +31 -0
  170. package/dist/src/shell/ControlRow.d.ts.map +1 -0
  171. package/dist/src/shell/ControlRow.js +30 -0
  172. package/dist/src/shell/ControlRow.js.map +1 -0
  173. package/dist/src/shell/Example.d.ts +58 -0
  174. package/dist/src/shell/Example.d.ts.map +1 -0
  175. package/dist/src/shell/Example.js +89 -0
  176. package/dist/src/shell/Example.js.map +1 -0
  177. package/dist/src/shell/InfoTip.d.ts +23 -0
  178. package/dist/src/shell/InfoTip.d.ts.map +1 -0
  179. package/dist/src/shell/InfoTip.js +51 -0
  180. package/dist/src/shell/InfoTip.js.map +1 -0
  181. package/dist/src/shell/NamedViews.d.ts +23 -0
  182. package/dist/src/shell/NamedViews.d.ts.map +1 -0
  183. package/dist/src/shell/NamedViews.js +49 -0
  184. package/dist/src/shell/NamedViews.js.map +1 -0
  185. package/dist/src/shell/PinnedControl.d.ts +25 -0
  186. package/dist/src/shell/PinnedControl.d.ts.map +1 -0
  187. package/dist/src/shell/PinnedControl.js +82 -0
  188. package/dist/src/shell/PinnedControl.js.map +1 -0
  189. package/dist/src/shell/PropsTab.d.ts +5 -2
  190. package/dist/src/shell/PropsTab.d.ts.map +1 -1
  191. package/dist/src/shell/PropsTab.js +12 -15
  192. package/dist/src/shell/PropsTab.js.map +1 -1
  193. package/dist/src/shell/Shell.d.ts.map +1 -1
  194. package/dist/src/shell/Shell.js +27 -2
  195. package/dist/src/shell/Shell.js.map +1 -1
  196. package/dist/src/shell/Sidebar.d.ts +11 -9
  197. package/dist/src/shell/Sidebar.d.ts.map +1 -1
  198. package/dist/src/shell/Sidebar.js +48 -42
  199. package/dist/src/shell/Sidebar.js.map +1 -1
  200. package/dist/src/shell/SidebarEntries.d.ts +50 -0
  201. package/dist/src/shell/SidebarEntries.d.ts.map +1 -0
  202. package/dist/src/shell/SidebarEntries.js +51 -0
  203. package/dist/src/shell/SidebarEntries.js.map +1 -0
  204. package/dist/src/shell/Stage.d.ts.map +1 -1
  205. package/dist/src/shell/Stage.js +19 -2
  206. package/dist/src/shell/Stage.js.map +1 -1
  207. package/dist/src/shell/Toolbar.d.ts +7 -3
  208. package/dist/src/shell/Toolbar.d.ts.map +1 -1
  209. package/dist/src/shell/Toolbar.js +38 -68
  210. package/dist/src/shell/Toolbar.js.map +1 -1
  211. package/dist/src/shell/ToolbarControl.d.ts +47 -0
  212. package/dist/src/shell/ToolbarControl.d.ts.map +1 -0
  213. package/dist/src/shell/ToolbarControl.js +150 -0
  214. package/dist/src/shell/ToolbarControl.js.map +1 -0
  215. package/dist/src/shell/UsedIn.d.ts +38 -0
  216. package/dist/src/shell/UsedIn.d.ts.map +1 -0
  217. package/dist/src/shell/UsedIn.js +77 -0
  218. package/dist/src/shell/UsedIn.js.map +1 -0
  219. package/dist/src/shell/ViewMenu.d.ts +37 -0
  220. package/dist/src/shell/ViewMenu.d.ts.map +1 -0
  221. package/dist/src/shell/ViewMenu.js +219 -0
  222. package/dist/src/shell/ViewMenu.js.map +1 -0
  223. package/dist/src/shell/controlCycle.d.ts +28 -0
  224. package/dist/src/shell/controlCycle.d.ts.map +1 -0
  225. package/dist/src/shell/controlCycle.js +51 -0
  226. package/dist/src/shell/controlCycle.js.map +1 -0
  227. package/dist/src/shell/dockTabs.d.ts +3 -0
  228. package/dist/src/shell/dockTabs.d.ts.map +1 -1
  229. package/dist/src/shell/dockTabs.js +1 -1
  230. package/dist/src/shell/dockTabs.js.map +1 -1
  231. package/dist/src/shell/icons.d.ts +7 -0
  232. package/dist/src/shell/icons.d.ts.map +1 -1
  233. package/dist/src/shell/icons.js +8 -1
  234. package/dist/src/shell/icons.js.map +1 -1
  235. package/dist/src/shell/keyboard.d.ts +2 -1
  236. package/dist/src/shell/keyboard.d.ts.map +1 -1
  237. package/dist/src/shell/keyboard.js +5 -2
  238. package/dist/src/shell/keyboard.js.map +1 -1
  239. package/dist/src/shell/shell.css +876 -244
  240. package/dist/src/shell/strings.d.ts +46 -0
  241. package/dist/src/shell/strings.d.ts.map +1 -1
  242. package/dist/src/shell/strings.js +46 -0
  243. package/dist/src/shell/strings.js.map +1 -1
  244. package/dist/src/shell/useAppearance.d.ts +17 -0
  245. package/dist/src/shell/useAppearance.d.ts.map +1 -0
  246. package/dist/src/shell/useAppearance.js +36 -0
  247. package/dist/src/shell/useAppearance.js.map +1 -0
  248. package/dist/src/shell/useControlKeys.d.ts +23 -0
  249. package/dist/src/shell/useControlKeys.d.ts.map +1 -0
  250. package/dist/src/shell/useControlKeys.js +44 -0
  251. package/dist/src/shell/useControlKeys.js.map +1 -0
  252. package/dist/src/shell/useFold.d.ts +27 -0
  253. package/dist/src/shell/useFold.d.ts.map +1 -0
  254. package/dist/src/shell/useFold.js +87 -0
  255. package/dist/src/shell/useFold.js.map +1 -0
  256. package/dist/src/shell/useFrameMessages.d.ts +2 -0
  257. package/dist/src/shell/useFrameMessages.d.ts.map +1 -1
  258. package/dist/src/shell/useFrameMessages.js +3 -0
  259. package/dist/src/shell/useFrameMessages.js.map +1 -1
  260. package/dist/src/shell/useFullPage.d.ts +45 -0
  261. package/dist/src/shell/useFullPage.d.ts.map +1 -0
  262. package/dist/src/shell/useFullPage.js +149 -0
  263. package/dist/src/shell/useFullPage.js.map +1 -0
  264. package/dist/src/shell/usePopover.d.ts +17 -3
  265. package/dist/src/shell/usePopover.d.ts.map +1 -1
  266. package/dist/src/shell/usePopover.js +65 -4
  267. package/dist/src/shell/usePopover.js.map +1 -1
  268. package/dist/src/shell/useStored.d.ts +13 -2
  269. package/dist/src/shell/useStored.d.ts.map +1 -1
  270. package/dist/src/shell/useStored.js +1 -1
  271. package/dist/src/shell/useStored.js.map +1 -1
  272. package/dist/src/shell/useToolbarLayout.d.ts +39 -0
  273. package/dist/src/shell/useToolbarLayout.d.ts.map +1 -0
  274. package/dist/src/shell/useToolbarLayout.js +58 -0
  275. package/dist/src/shell/useToolbarLayout.js.map +1 -0
  276. package/dist/src/shell/useToolbarOverflow.d.ts +31 -0
  277. package/dist/src/shell/useToolbarOverflow.d.ts.map +1 -0
  278. package/dist/src/shell/useToolbarOverflow.js +62 -0
  279. package/dist/src/shell/useToolbarOverflow.js.map +1 -0
  280. package/dist/src/shell/useWorstCase.d.ts +46 -0
  281. package/dist/src/shell/useWorstCase.d.ts.map +1 -0
  282. package/dist/src/shell/useWorstCase.js +42 -0
  283. package/dist/src/shell/useWorstCase.js.map +1 -0
  284. package/dist/src/shell/worstArgs.d.ts +42 -0
  285. package/dist/src/shell/worstArgs.d.ts.map +1 -0
  286. package/dist/src/shell/worstArgs.js +47 -0
  287. package/dist/src/shell/worstArgs.js.map +1 -0
  288. package/dist/src/spills.d.ts +31 -0
  289. package/dist/src/spills.d.ts.map +1 -0
  290. package/dist/src/spills.js +65 -0
  291. package/dist/src/spills.js.map +1 -0
  292. package/dist/src/storyCheck.d.ts +105 -0
  293. package/dist/src/storyCheck.d.ts.map +1 -0
  294. package/dist/src/storyCheck.js +63 -0
  295. package/dist/src/storyCheck.js.map +1 -0
  296. package/dist/src/switches.d.ts +26 -4
  297. package/dist/src/switches.d.ts.map +1 -1
  298. package/dist/src/switches.js +50 -5
  299. package/dist/src/switches.js.map +1 -1
  300. package/dist/src/toolbarLayout.d.ts +119 -0
  301. package/dist/src/toolbarLayout.d.ts.map +1 -0
  302. package/dist/src/toolbarLayout.js +155 -0
  303. package/dist/src/toolbarLayout.js.map +1 -0
  304. package/dist/src/usedIn.d.ts +60 -0
  305. package/dist/src/usedIn.d.ts.map +1 -0
  306. package/dist/src/usedIn.js +92 -0
  307. package/dist/src/usedIn.js.map +1 -0
  308. package/dist/src/viewState.d.ts +9 -11
  309. package/dist/src/viewState.d.ts.map +1 -1
  310. package/dist/src/viewState.js +24 -20
  311. package/dist/src/viewState.js.map +1 -1
  312. package/dist/src/viewWords.d.ts +26 -0
  313. package/dist/src/viewWords.d.ts.map +1 -0
  314. package/dist/src/viewWords.js +29 -0
  315. package/dist/src/viewWords.js.map +1 -0
  316. package/dist/src/vite/adapter.d.ts +13 -4
  317. package/dist/src/vite/adapter.d.ts.map +1 -1
  318. package/dist/src/vite/adapter.js +4 -2
  319. package/dist/src/vite/adapter.js.map +1 -1
  320. package/dist/src/vite/agent.types.d.ts +32 -2
  321. package/dist/src/vite/agent.types.d.ts.map +1 -1
  322. package/dist/src/vite/agentApi.d.ts +15 -3
  323. package/dist/src/vite/agentApi.d.ts.map +1 -1
  324. package/dist/src/vite/agentApi.js +63 -9
  325. package/dist/src/vite/agentApi.js.map +1 -1
  326. package/dist/src/vite/agentRoutes.d.ts +8 -3
  327. package/dist/src/vite/agentRoutes.d.ts.map +1 -1
  328. package/dist/src/vite/agentRoutes.js +84 -23
  329. package/dist/src/vite/agentRoutes.js.map +1 -1
  330. package/dist/src/vite/configFile.d.ts +2 -1
  331. package/dist/src/vite/configFile.d.ts.map +1 -1
  332. package/dist/src/vite/configFile.js +29 -11
  333. package/dist/src/vite/configFile.js.map +1 -1
  334. package/dist/src/vite/docsExtractor.d.ts +26 -2
  335. package/dist/src/vite/docsExtractor.d.ts.map +1 -1
  336. package/dist/src/vite/docsExtractor.js +12 -9
  337. package/dist/src/vite/docsExtractor.js.map +1 -1
  338. package/dist/src/vite/docsWorker.js +18 -2
  339. package/dist/src/vite/docsWorker.js.map +1 -1
  340. package/dist/src/vite/forcedStates.d.ts +6 -2
  341. package/dist/src/vite/forcedStates.d.ts.map +1 -1
  342. package/dist/src/vite/forcedStates.js +20 -4
  343. package/dist/src/vite/forcedStates.js.map +1 -1
  344. package/dist/src/vite/forgebookPlugin.d.ts.map +1 -1
  345. package/dist/src/vite/forgebookPlugin.js +104 -16
  346. package/dist/src/vite/forgebookPlugin.js.map +1 -1
  347. package/dist/src/vite/indexStoryFile.d.ts +14 -0
  348. package/dist/src/vite/indexStoryFile.d.ts.map +1 -1
  349. package/dist/src/vite/indexStoryFile.js +13 -4
  350. package/dist/src/vite/indexStoryFile.js.map +1 -1
  351. package/dist/src/vite/mcpProtocol.d.ts +9 -0
  352. package/dist/src/vite/mcpProtocol.d.ts.map +1 -1
  353. package/dist/src/vite/mcpProtocol.js +6 -3
  354. package/dist/src/vite/mcpProtocol.js.map +1 -1
  355. package/dist/src/vite/storyFilesModule.d.ts +44 -1
  356. package/dist/src/vite/storyFilesModule.d.ts.map +1 -1
  357. package/dist/src/vite/storyFilesModule.js +49 -14
  358. package/dist/src/vite/storyFilesModule.js.map +1 -1
  359. package/dist/src/vite/touchMedia.d.ts +35 -0
  360. package/dist/src/vite/touchMedia.d.ts.map +1 -0
  361. package/dist/src/vite/touchMedia.js +187 -0
  362. package/dist/src/vite/touchMedia.js.map +1 -0
  363. package/dist/src/vite/usageGraph.d.ts +45 -0
  364. package/dist/src/vite/usageGraph.d.ts.map +1 -0
  365. package/dist/src/vite/usageGraph.js +246 -0
  366. package/dist/src/vite/usageGraph.js.map +1 -0
  367. package/dist/src/vite/usageModule.d.ts +33 -0
  368. package/dist/src/vite/usageModule.d.ts.map +1 -0
  369. package/dist/src/vite/usageModule.js +135 -0
  370. package/dist/src/vite/usageModule.js.map +1 -0
  371. package/dist/src/worstCase.d.ts +16 -0
  372. package/dist/src/worstCase.d.ts.map +1 -0
  373. package/dist/src/worstCase.js +16 -0
  374. package/dist/src/worstCase.js.map +1 -0
  375. package/package.json +18 -2
  376. package/dist/src/shell/SchemeSwitches.d.ts +0 -24
  377. package/dist/src/shell/SchemeSwitches.d.ts.map +0 -1
  378. package/dist/src/shell/SchemeSwitches.js +0 -36
  379. package/dist/src/shell/SchemeSwitches.js.map +0 -1
@@ -0,0 +1,57 @@
1
+ /**
2
+ * The errors the open frames report to the dev server while someone edits: a story that could not be shown and a
3
+ * play that failed, numbered as they come, the last hundred kept, for `forgebook errors` and the MCP tool
4
+ * `recent_errors`.
5
+ *
6
+ * @remarks
7
+ * A frame sends them over Vite's own connection to the dev server (`import.meta.hot`), so a build has none and nothing
8
+ * is sent outside development. Only frames open in a browser report: a command that opens none (`forgebook check`)
9
+ * reports its own problems. Each error is numbered, so a client asks only for those after the last it read. Pure apart
10
+ * from the ring's own state.
11
+ *
12
+ * @module
13
+ */
14
+ /** The event a frame sends its errors under. */
15
+ export declare const LIVE_ERROR_EVENT = "forgebook:live-error";
16
+ /** What went wrong in a frame. */
17
+ export type LiveErrorKind = "render" | "play";
18
+ /** An error as a frame reports it. */
19
+ export type LiveErrorReport = {
20
+ /** A story that could not be shown, or a play that failed. */
21
+ readonly kind: LiveErrorKind;
22
+ /** The story's id. */
23
+ readonly storyId: string;
24
+ /** The frame's view, as its address's query writes it. */
25
+ readonly view: string;
26
+ /** What went wrong. */
27
+ readonly message: string;
28
+ };
29
+ /** An error as the dev server keeps it: numbered, with when it came. */
30
+ export type LiveError = LiveErrorReport & {
31
+ /** Its number, counted from 1 since the server started. */
32
+ readonly n: number;
33
+ /** When it came, in ISO 8601. */
34
+ readonly at: string;
35
+ };
36
+ /** The errors kept, and how to add and read them. */
37
+ export type LiveErrors = {
38
+ /** Keeps a frame's error, the oldest let go past the limit. */
39
+ readonly add: (report: LiveErrorReport, at: Date) => LiveError;
40
+ /** The errors after a number, oldest first; every one kept for 0. */
41
+ readonly since: (n: number) => LiveError[];
42
+ /** The number of the last error, 0 before any. */
43
+ readonly last: () => number;
44
+ };
45
+ /**
46
+ * Whether a frame's message is an error report.
47
+ *
48
+ * @param value - what came over the connection.
49
+ */
50
+ export declare const isLiveErrorReport: (value: unknown) => value is LiveErrorReport;
51
+ /**
52
+ * A ring of the last errors.
53
+ *
54
+ * @param limit - how many it keeps; a hundred by default.
55
+ */
56
+ export declare const createLiveErrors: (limit?: number) => LiveErrors;
57
+ //# sourceMappingURL=liveErrors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveErrors.d.ts","sourceRoot":"","sources":["../../src/liveErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,gDAAgD;AAChD,eAAO,MAAM,gBAAgB,yBAAyB,CAAC;AAEvD,kCAAkC;AAClC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE9C,sCAAsC;AACtC,MAAM,MAAM,eAAe,GAAG;IAC5B,8DAA8D;IAC9D,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,sBAAsB;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,uBAAuB;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,SAAS,GAAG,eAAe,GAAG;IACxC,2DAA2D;IAC3D,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,KAAK,SAAS,CAAC;IAC/D,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,EAAE,CAAC;IAC3C,kDAAkD;IAClD,QAAQ,CAAC,IAAI,EAAE,MAAM,MAAM,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAUzB,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,cAAW,KAAG,UAc9C,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The errors the open frames report to the dev server while someone edits: a story that could not be shown and a
3
+ * play that failed, numbered as they come, the last hundred kept, for `forgebook errors` and the MCP tool
4
+ * `recent_errors`.
5
+ *
6
+ * @remarks
7
+ * A frame sends them over Vite's own connection to the dev server (`import.meta.hot`), so a build has none and nothing
8
+ * is sent outside development. Only frames open in a browser report: a command that opens none (`forgebook check`)
9
+ * reports its own problems. Each error is numbered, so a client asks only for those after the last it read. Pure apart
10
+ * from the ring's own state.
11
+ *
12
+ * @module
13
+ */
14
+ /** The event a frame sends its errors under. */
15
+ export const LIVE_ERROR_EVENT = "forgebook:live-error";
16
+ /**
17
+ * Whether a frame's message is an error report.
18
+ *
19
+ * @param value - what came over the connection.
20
+ */
21
+ export const isLiveErrorReport = (value) => typeof value === "object" &&
22
+ value !== null &&
23
+ "kind" in value &&
24
+ (value.kind === "render" || value.kind === "play") &&
25
+ "storyId" in value &&
26
+ typeof value.storyId === "string" &&
27
+ "view" in value &&
28
+ typeof value.view === "string" &&
29
+ "message" in value &&
30
+ typeof value.message === "string";
31
+ /**
32
+ * A ring of the last errors.
33
+ *
34
+ * @param limit - how many it keeps; a hundred by default.
35
+ */
36
+ export const createLiveErrors = (limit = 100) => {
37
+ const kept = [];
38
+ let last = 0;
39
+ return {
40
+ add: (report, at) => {
41
+ last += 1;
42
+ const error = { ...report, n: last, at: at.toISOString() };
43
+ kept.push(error);
44
+ if (kept.length > limit)
45
+ kept.shift();
46
+ return error;
47
+ },
48
+ since: (n) => kept.filter((error) => error.n > n),
49
+ last: () => last
50
+ };
51
+ };
52
+ //# sourceMappingURL=liveErrors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liveErrors.js","sourceRoot":"","sources":["../../src/liveErrors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,gDAAgD;AAChD,MAAM,CAAC,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAmCvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAA4B,EAAE,CAC5E,OAAO,KAAK,KAAK,QAAQ;IACzB,KAAK,KAAK,IAAI;IACd,MAAM,IAAI,KAAK;IACf,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;IAClD,SAAS,IAAI,KAAK;IAClB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;IACjC,MAAM,IAAI,KAAK;IACf,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;IAC9B,SAAS,IAAI,KAAK;IAClB,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAAC;AAEpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,GAAG,GAAG,EAAc,EAAE;IAC1D,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,OAAO;QACL,GAAG,EAAE,CAAC,MAAuB,EAAE,EAAQ,EAAa,EAAE;YACpD,IAAI,IAAI,CAAC,CAAC;YACV,MAAM,KAAK,GAAc,EAAE,GAAG,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;YACtE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjB,IAAI,IAAI,CAAC,MAAM,GAAG,KAAK;gBAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,EAAE,CAAC,CAAS,EAAe,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QACtE,IAAI,EAAE,GAAW,EAAE,CAAC,IAAI;KACzB,CAAC;AACJ,CAAC,CAAC"}
@@ -103,6 +103,13 @@ export type FrameMessage = {
103
103
  readonly storyId: string;
104
104
  /** What went wrong. */
105
105
  readonly message: string;
106
+ } | {
107
+ /** The spills were measured again, while the shell asks for them (`forgebook:spills`). */
108
+ readonly type: "forgebook:spills";
109
+ /** The story's id. */
110
+ readonly storyId: string;
111
+ /** How many elements spill out of their parents. */
112
+ readonly count: number;
106
113
  };
107
114
  /** From the shell to a frame. */
108
115
  export type ShellMessage = {
@@ -142,6 +149,11 @@ export type ShellMessage = {
142
149
  } | {
143
150
  /** Bring the story clock back to its start and mount the story again. */
144
151
  readonly type: "forgebook:clock-restart";
152
+ } | {
153
+ /** Outline the elements that spill out of their parents and count them, or stop. */
154
+ readonly type: "forgebook:spills";
155
+ /** Whether the frame measures the spills. */
156
+ readonly isOn: boolean;
145
157
  } | {
146
158
  /** The view's live part changed: the frame applies it on its root, without loading again. */
147
159
  readonly type: "forgebook:view";
@@ -1 +1 @@
1
- {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,8 @@ export const isFrameMessage = (value) => {
73
73
  isFixedView(value["fixed"]));
74
74
  case "forgebook:size":
75
75
  return typeof value["height"] === "number";
76
+ case "forgebook:spills":
77
+ return typeof value["count"] === "number";
76
78
  case "forgebook:call":
77
79
  return (typeof value["name"] === "string" &&
78
80
  isStringList(value["values"]) &&
@@ -109,6 +111,8 @@ export const isShellMessage = (value) => {
109
111
  return isLiveView(value["view"]);
110
112
  if (value["type"] === "forgebook:clock")
111
113
  return isClockState(value["state"]);
114
+ if (value["type"] === "forgebook:spills")
115
+ return typeof value["isOn"] === "boolean";
112
116
  if (value["type"] === "forgebook:tools") {
113
117
  const tools = value["tools"];
114
118
  return Array.isArray(tools) && tools.every((tool) => MEASURE_TOOLS.some((known) => known === tool));
@@ -1 +1 @@
1
- {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,WAAW,EAAkB,MAAM,WAAW,CAAC;AACxD,OAAO,EAAE,eAAe,EAAsB,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,WAAW,EAAkB,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAmB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAkB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAiB,aAAa,EAAoB,MAAM,gBAAgB,CAAC;AA0JhF,yCAAyC;AACzC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAA8C,EAAE,CAC9E,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,2DAA2D;AAC3D,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAc,EAAsB,EAAE,CAChE,QAAQ,CAAC,KAAK,CAAC;IACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CACxB,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,OAAO,GAAG,KAAK,QAAQ;QACvB,OAAO,GAAG,KAAK,SAAS;QACxB,YAAY,CAAC,GAAG,CAAC;QACjB,UAAU,CAAC,GAAG,CAAC,CAClB,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAyC,EAAE,CACpF,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AAEtG;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAc,EAAqB,EAAE,CAC9D,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;AAE3F,+CAA+C;AAC/C,MAAM,UAAU,GAAG,CAAC,KAAc,EAAqB,EAAE,CACvD,QAAQ,CAAC,KAAK,CAAC;IACf,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC3B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,OAAO,WAAW,KAAK,QAAQ,CAAC;IACxF,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,QAAQ;IACrC,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;AAEpC,gDAAgD;AAChD,MAAM,YAAY,GAAG,CAAC,KAAc,EAAuB,EAAE,CAC3D,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,SAAS,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AAE3F,4CAA4C;AAC5C,MAAM,YAAY,GAAG,CAAC,KAAc,EAA8B,EAAE,CAClE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC;AAE1E,6EAA6E;AAC7E,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAiC,EAAE,CAC1E,KAAK,KAAK,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC;AAEzC,yEAAyE;AACzE,MAAM,UAAU,GAAG,CAAC,KAAc,EAA6C,EAAE,CAC/E,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC;AAElF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAc,EAAyB,EAAE;IACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC3E,QAAQ,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,KAAK,iBAAiB;YACpB,OAAO,CACL,OAAO,KAAK,CAAC,WAAW,CAAC,KAAK,SAAS;gBACvC,OAAO,KAAK,CAAC,UAAU,CAAC,KAAK,SAAS;gBACtC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC1B,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC7B,eAAe,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAClC,iBAAiB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBACpC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC9B,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAC5B,CAAC;QACJ,KAAK,gBAAgB;YACnB,OAAO,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC;QAC7C,KAAK,gBAAgB;YACnB,OAAO,CACL,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,QAAQ;gBACjC,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAC7B,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC/B,KAAK,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,CAClF,CAAC;QACJ,KAAK,iBAAiB,CAAC;QACvB,KAAK,uBAAuB;YAC1B,OAAO,OAAO,KAAK,CAAC,SAAS,CAAC,KAAK,QAAQ,CAAC;QAC9C,KAAK,gBAAgB;YACnB,OAAO,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACrC,KAAK,mBAAmB;YACtB,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACtF;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAc,EAAyB,EAAE;IACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IACE,KAAK,CAAC,MAAM,CAAC,KAAK,kBAAkB;QACpC,KAAK,CAAC,MAAM,CAAC,KAAK,iBAAiB;QACnC,KAAK,CAAC,MAAM,CAAC,KAAK,sBAAsB;QACxC,KAAK,CAAC,MAAM,CAAC,KAAK,yBAAyB,EAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,gBAAgB;QAAE,OAAO,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1E,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,gBAAgB;QAAE,OAAO,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,iBAAiB;QAAE,OAAO,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,iBAAiB,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC;IACtG,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,kBAAkB;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvG,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,kBAAkB,IAAI,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,KAAc,EAAU,EAAE;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3G,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,QAAQ;QACtF,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAChE,IAAI,OAAO,KAAK,KAAK,UAAU;QAAE,OAAO,GAAG,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC;IAC1F,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,aAAa,IAAI,KAAK;QAAE,OAAO,gBAAgB,CAAC;IACvE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;AAC7D,CAAC,CAAC;AAEF,kEAAkE;AAClE,MAAM,aAAa,GAAG,IAAI,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAiB,EAAE;IACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,OAAO,KAAK,KAAK,WAAW,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,IAAI,CAAC;IACxE,IAAI,aAAa,IAAI,KAAK;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,IAAI,GAAG,IAAI,OAAO,EAAU,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CACzB,KAAK,EACL,CAAC,IAAY,EAAE,KAAc,EAAW,EAAE;QACxC,IAAI,OAAO,KAAK,KAAK,UAAU;YAAE,OAAO,GAAG,CAAC;QAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,OAAO,GAAG,KAAK,GAAG,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YAChD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,OAAO,YAAY,CAAC;YACzC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,EACD,CAAC,CACF,CAAC;IACF,OAAO,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACjF,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAe,EAAU,EAAE,CACxD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,KAAoB,EAAa,EAAE;IACrE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,EAAE,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzC,OAAO,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/messages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Named views: the View menu's values saved under a name ("Dark, Italian, 360") and picked again. A reader's, kept in
3
+ * their browser, and the catalogue's own (`views` in its configuration), offered to the whole team.
4
+ *
5
+ * @remarks
6
+ * A named view holds values, never an arrangement: the switches, the background, the style sheets, the text size and
7
+ * the width. Picking one sets them as choosing each would, so the address carries the values; a name never goes in the
8
+ * address, since another reader may not have it. Pure: views in, views out.
9
+ *
10
+ * @module
11
+ */
12
+ import type { ViewState } from "./viewState.ts";
13
+ /** The values a named view holds: the View menu's. */
14
+ export type ViewValues = Pick<ViewState, "switches" | "backdrop" | "sheets" | "text" | "width">;
15
+ /** A view saved under a name. */
16
+ export type NamedView = {
17
+ /** Its name, as the reader or the catalogue wrote it. */
18
+ readonly name: string;
19
+ /** Its values. */
20
+ readonly values: ViewValues;
21
+ };
22
+ /** A view the catalogue declares, as its configuration writes it. */
23
+ export type CatalogueView = {
24
+ /** Its name. */
25
+ readonly name: string;
26
+ /** Its values, in the address's form (`theme=dark&width=360`) or as words (`"dark it 360"`). */
27
+ readonly view: string;
28
+ };
29
+ /**
30
+ * The values of a view that a named view holds.
31
+ *
32
+ * @param view - the view.
33
+ */
34
+ export declare const viewValues: (view: ViewState) => ViewValues;
35
+ /**
36
+ * The view with a named view's values set.
37
+ *
38
+ * @param view - the view shown.
39
+ * @param values - the named view's values.
40
+ */
41
+ export declare const withViewValues: (view: ViewState, values: ViewValues) => ViewState;
42
+ /**
43
+ * The reader's views with one saved: a view of the same name is replaced where it was, a new one goes last.
44
+ *
45
+ * @param views - the reader's views.
46
+ * @param saved - the view saved; its name trimmed.
47
+ * @returns the views; the same ones for an empty name.
48
+ */
49
+ export declare const withSavedView: (views: readonly NamedView[], saved: NamedView) => NamedView[];
50
+ /**
51
+ * The reader's views without one.
52
+ *
53
+ * @param views - the reader's views.
54
+ * @param name - the removed view's name.
55
+ */
56
+ export declare const withoutView: (views: readonly NamedView[], name: string) => NamedView[];
57
+ /**
58
+ * The reader's views a stored text holds; the ones this module did not write are left out.
59
+ *
60
+ * @param stored - the stored text, or none.
61
+ */
62
+ export declare const readNamedViews: (stored: string | null) => NamedView[];
63
+ /**
64
+ * The text the reader's views are stored as; empty for none.
65
+ *
66
+ * @param views - the reader's views.
67
+ */
68
+ export declare const namedViewsText: (views: readonly NamedView[]) => string;
69
+ /**
70
+ * Whether two sets of values draw the same view: a switch left at its default and one set to it are the same.
71
+ *
72
+ * @param first - one set.
73
+ * @param second - the other.
74
+ * @param switches - the catalogue's switches, for their defaults.
75
+ */
76
+ export declare const isSameView: (first: ViewValues, second: ViewValues, switches: readonly {
77
+ readonly id: string;
78
+ readonly default: string;
79
+ }[]) => boolean;
80
+ //# sourceMappingURL=namedViews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedViews.d.ts","sourceRoot":"","sources":["../../src/namedViews.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,sDAAsD;AACtD,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,UAAU,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAEhG,iCAAiC;AACjC,MAAM,MAAM,SAAS,GAAG;IACtB,yDAAyD;IACzD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,kBAAkB;IAClB,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;CAC7B,CAAC;AAEF,qEAAqE;AACrE,MAAM,MAAM,aAAa,GAAG;IAC1B,gBAAgB;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,gGAAgG;IAChG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,SAAS,KAAG,UAM3C,CAAC;AAEH;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,EAAE,QAAQ,UAAU,KAAG,SAAqC,CAAC;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,OAAO,SAAS,KAAG,SAAS,EAOtF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,OAAO,SAAS,SAAS,EAAE,EAAE,MAAM,MAAM,KAAG,SAAS,EACrC,CAAC;AAgB7C;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,GAAG,IAAI,KAAG,SAAS,EAY/D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,SAAS,SAAS,EAAE,KAAG,MACZ,CAAC;AAElD;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,OAAO,UAAU,EACjB,QAAQ,UAAU,EAClB,UAAU,SAAS;IAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,KACrE,OAO2B,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * The values of a view that a named view holds.
3
+ *
4
+ * @param view - the view.
5
+ */
6
+ export const viewValues = (view) => ({
7
+ switches: view.switches,
8
+ backdrop: view.backdrop,
9
+ sheets: view.sheets,
10
+ text: view.text,
11
+ width: view.width
12
+ });
13
+ /**
14
+ * The view with a named view's values set.
15
+ *
16
+ * @param view - the view shown.
17
+ * @param values - the named view's values.
18
+ */
19
+ export const withViewValues = (view, values) => ({ ...view, ...values });
20
+ /**
21
+ * The reader's views with one saved: a view of the same name is replaced where it was, a new one goes last.
22
+ *
23
+ * @param views - the reader's views.
24
+ * @param saved - the view saved; its name trimmed.
25
+ * @returns the views; the same ones for an empty name.
26
+ */
27
+ export const withSavedView = (views, saved) => {
28
+ const name = saved.name.trim();
29
+ if (name === "")
30
+ return [...views];
31
+ const view = { ...saved, name };
32
+ return views.some((each) => each.name === name)
33
+ ? views.map((each) => (each.name === name ? view : each))
34
+ : [...views, view];
35
+ };
36
+ /**
37
+ * The reader's views without one.
38
+ *
39
+ * @param views - the reader's views.
40
+ * @param name - the removed view's name.
41
+ */
42
+ export const withoutView = (views, name) => views.filter((each) => each.name !== name);
43
+ /** Whether a value is a plain object. */
44
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
45
+ /** Whether a value is a named view's values, as this module stores them. */
46
+ const isViewValues = (value) => isRecord(value) &&
47
+ isRecord(value["switches"]) &&
48
+ Object.values(value["switches"]).every((each) => typeof each === "string") &&
49
+ typeof value["backdrop"] === "string" &&
50
+ (value["sheets"] === "full" || value["sheets"] === "structure" || value["sheets"] === "restyled") &&
51
+ typeof value["text"] === "number" &&
52
+ (value["width"] === "fill" || typeof value["width"] === "number");
53
+ /**
54
+ * The reader's views a stored text holds; the ones this module did not write are left out.
55
+ *
56
+ * @param stored - the stored text, or none.
57
+ */
58
+ export const readNamedViews = (stored) => {
59
+ if (stored === null || stored === "")
60
+ return [];
61
+ let parsed;
62
+ try {
63
+ parsed = JSON.parse(stored);
64
+ }
65
+ catch {
66
+ return [];
67
+ }
68
+ return (Array.isArray(parsed) ? parsed : []).filter((each) => isRecord(each) && typeof each["name"] === "string" && isViewValues(each["values"]));
69
+ };
70
+ /**
71
+ * The text the reader's views are stored as; empty for none.
72
+ *
73
+ * @param views - the reader's views.
74
+ */
75
+ export const namedViewsText = (views) => views.length === 0 ? "" : JSON.stringify(views);
76
+ /**
77
+ * Whether two sets of values draw the same view: a switch left at its default and one set to it are the same.
78
+ *
79
+ * @param first - one set.
80
+ * @param second - the other.
81
+ * @param switches - the catalogue's switches, for their defaults.
82
+ */
83
+ export const isSameView = (first, second, switches) => switches.every((each) => (first.switches[each.id] ?? each.default) === (second.switches[each.id] ?? each.default)) &&
84
+ first.backdrop === second.backdrop &&
85
+ first.sheets === second.sheets &&
86
+ first.text === second.text &&
87
+ first.width === second.width;
88
+ //# sourceMappingURL=namedViews.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"namedViews.js","sourceRoot":"","sources":["../../src/namedViews.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The mark of a window where Chromium's own touch emulation runs (`forgebook dev --touch`): its pages see real touch,
3
+ * so the catalogue's simulated touch stays off there. Shared by the window that sets it (`@forgebook/testing/touch`)
4
+ * and the frame that reads it (`touchLayer.ts`).
5
+ *
6
+ * @module
7
+ */
8
+ /** The window property the touch window defines before any page script runs. */
9
+ export declare const REAL_TOUCH_FLAG = "__forgebookRealTouch";
10
+ /**
11
+ * Whether a window runs Chromium's real touch emulation.
12
+ *
13
+ * @param view - the window.
14
+ */
15
+ export declare const isRealTouchWindow: (view: Window) => boolean;
16
+ /** What `forgebook dev --touch` asks of the testing package's touch window. */
17
+ export type TouchWindowRequest = {
18
+ /** The catalogue's address. */
19
+ readonly url: string;
20
+ };
21
+ //# sourceMappingURL=realTouch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realTouch.d.ts","sourceRoot":"","sources":["../../src/realTouch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,eAAO,MAAM,eAAe,yBAAyB,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,OAAkC,CAAC;AAEpF,+EAA+E;AAC/E,MAAM,MAAM,kBAAkB,GAAG;IAC/B,+BAA+B;IAC/B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * The mark of a window where Chromium's own touch emulation runs (`forgebook dev --touch`): its pages see real touch,
3
+ * so the catalogue's simulated touch stays off there. Shared by the window that sets it (`@forgebook/testing/touch`)
4
+ * and the frame that reads it (`touchLayer.ts`).
5
+ *
6
+ * @module
7
+ */
8
+ /** The window property the touch window defines before any page script runs. */
9
+ export const REAL_TOUCH_FLAG = "__forgebookRealTouch";
10
+ /**
11
+ * Whether a window runs Chromium's real touch emulation.
12
+ *
13
+ * @param view - the window.
14
+ */
15
+ export const isRealTouchWindow = (view) => REAL_TOUCH_FLAG in view;
16
+ //# sourceMappingURL=realTouch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realTouch.js","sourceRoot":"","sources":["../../src/realTouch.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,gFAAgF;AAChF,MAAM,CAAC,MAAM,eAAe,GAAG,sBAAsB,CAAC;AAEtD;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAY,EAAW,EAAE,CAAC,eAAe,IAAI,IAAI,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The shell's appearance menu, at the sidebar's foot: a button showing the appearance picked, which opens Light, Dark
3
+ * and System. A preference about the tool, not the story, so it sits outside the View menu.
4
+ *
5
+ * @module
6
+ */
7
+ import { type ReactNode } from "react";
8
+ import type { AppearanceState } from "./useAppearance.ts";
9
+ /**
10
+ * The appearance menu.
11
+ *
12
+ * @param props - the appearance shown and its setter.
13
+ */
14
+ export declare const AppearanceMenu: ({ appearance, setAppearance }: AppearanceState) => ReactNode;
15
+ //# sourceMappingURL=AppearanceMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppearanceMenu.d.ts","sourceRoot":"","sources":["../../../src/shell/AppearanceMenu.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAmB,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAK/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAM1D;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,+BAA+B,eAAe,KAAG,SA8C/E,CAAC"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The shell's appearance menu, at the sidebar's foot: a button showing the appearance picked, which opens Light, Dark
4
+ * and System. A preference about the tool, not the story, so it sits outside the View menu.
5
+ *
6
+ * @module
7
+ */
8
+ import { useId } from "react";
9
+ import { APPEARANCES } from "../catalogue.js";
10
+ import { Icon } from "./icons.js";
11
+ import { STRINGS } from "./strings.js";
12
+ import { usePopover } from "./usePopover.js";
13
+ /** Each appearance's icon. */
14
+ const ICONS = { light: "sun", dark: "moon", system: "monitor" };
15
+ /**
16
+ * The appearance menu.
17
+ *
18
+ * @param props - the appearance shown and its setter.
19
+ */
20
+ export const AppearanceMenu = ({ appearance, setAppearance }) => {
21
+ const { isOpen, isDrawn, setIsOpen, buttonRef, panelRef, panelId } = usePopover();
22
+ const name = useId();
23
+ return (_jsxs("div", { className: "forgebook-appearance", children: [_jsxs("button", { ref: buttonRef, type: "button", className: "forgebook-button forgebook-button--quiet", "aria-expanded": isOpen, "aria-controls": panelId, onClick: (event) => setIsOpen(!isOpen, event), children: [_jsx(Icon, { name: ICONS[appearance], size: 14 }), STRINGS.appearanceOf(STRINGS.appearances[appearance])] }), isDrawn ? (_jsx("div", { ref: panelRef, id: panelId, className: "forgebook-popover forgebook-popover--up", role: "dialog", "aria-label": STRINGS.appearance, children: _jsxs("fieldset", { className: "forgebook-choices", children: [_jsx("legend", { className: "forgebook-visually-hidden", children: STRINGS.appearance }), APPEARANCES.map((each) => (_jsxs("label", { className: "forgebook-choice", children: [_jsx("input", { type: "radio", name: name, checked: each === appearance, onChange: () => {
24
+ setAppearance(each);
25
+ setIsOpen(false);
26
+ } }), _jsx(Icon, { name: ICONS[each], size: 14 }), STRINGS.appearances[each]] }, each)))] }) })) : null] }));
27
+ };
28
+ //# sourceMappingURL=AppearanceMenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppearanceMenu.js","sourceRoot":"","sources":["../../../src/shell/AppearanceMenu.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AACH,OAAO,EAAmC,KAAK,EAAE,MAAM,OAAO,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAiB,MAAM,YAAa,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,8BAA8B;AAC9B,MAAM,KAAK,GAA2C,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAExG;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAE,UAAU,EAAE,aAAa,EAAmB,EAAa,EAAE;IAC1F,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,CAAC;IAClF,MAAM,IAAI,GAAG,KAAK,EAAE,CAAC;IACrB,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aACnC,kBACE,GAAG,EAAE,SAAS,EACd,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,0CAA0C,mBACrC,MAAM,mBACN,OAAO,EACtB,OAAO,EAAE,CAAC,KAAoC,EAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,aAElF,KAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI,EAC1C,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAC/C,EACR,OAAO,CAAC,CAAC,CAAC,CACT,cACE,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,OAAO,EACX,SAAS,EAAC,yCAAyC,EACnD,IAAI,EAAC,QAAQ,gBACD,OAAO,CAAC,UAAU,YAE9B,oBAAU,SAAS,EAAC,mBAAmB,aACrC,iBAAQ,SAAS,EAAC,2BAA2B,YAAE,OAAO,CAAC,UAAU,GAAU,EAC1E,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACzB,iBAAkB,SAAS,EAAC,kBAAkB,aAC5C,gBACE,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,IAAI,KAAK,UAAU,EAC5B,QAAQ,EAAE,GAAS,EAAE;wCACnB,aAAa,CAAC,IAAI,CAAC,CAAC;wCACpB,SAAS,CAAC,KAAK,CAAC,CAAC;oCACnB,CAAC,GACD,EACF,KAAC,IAAI,IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,GAAI,EACpC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,KAXhB,IAAI,CAYR,CACT,CAAC,IACO,GACP,CACP,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * The width of an example's story while its box fills the page: set by the stage's handles or by the presets and the
3
+ * field in the box's bar, for that box only.
4
+ *
5
+ * @remarks
6
+ * The page's width (the toolbar's, in the address) is not changed: the box over the page is a moment's look, and the
7
+ * other examples keep the width they have. The box starts at the page's width and takes it again when it goes back
8
+ * to its place.
9
+ *
10
+ * @module
11
+ */
12
+ import { type ReactNode } from "react";
13
+ import type { StageWidth } from "../viewState.ts";
14
+ /** An example box's width over the page, and what sets it. */
15
+ export type BoxWidth = {
16
+ /** The story's width: the box's own over the page, the page's otherwise. */
17
+ readonly width: StageWidth;
18
+ /** Sets the box's own width; none in the list, where the stage shows no handles. */
19
+ readonly onWidthChange: ((width: StageWidth) => void) | undefined;
20
+ /** The width the story really has, in CSS px, for the field. */
21
+ readonly shownWidth: number | undefined;
22
+ /** Called with the width the story really has; none in the list. */
23
+ readonly onShownWidthChange: ((width: number | undefined) => void) | undefined;
24
+ };
25
+ /**
26
+ * An example box's width over the page.
27
+ *
28
+ * @param isOver - whether the box is over the page.
29
+ * @param pageWidth - the page's width, the toolbar's.
30
+ */
31
+ export declare const useBoxWidth: (isOver: boolean, pageWidth: StageWidth) => BoxWidth;
32
+ /**
33
+ * The width's presets and field in the bar of a box over the page.
34
+ *
35
+ * @param props - the box's width and what sets it.
36
+ */
37
+ export declare const BoxWidthControl: ({ boxWidth }: {
38
+ readonly boxWidth: BoxWidth;
39
+ }) => ReactNode;
40
+ //# sourceMappingURL=BoxWidth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxWidth.d.ts","sourceRoot":"","sources":["../../../src/shell/BoxWidth.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAEjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAOlD,8DAA8D;AAC9D,MAAM,MAAM,QAAQ,GAAG;IACrB,4EAA4E;IAC5E,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAC3B,oFAAoF;IACpF,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAClE,gEAAgE;IAChE,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,oEAAoE;IACpE,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CAChF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GAAI,QAAQ,OAAO,EAAE,WAAW,UAAU,KAAG,QAWpE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,cAAc;IAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;CAAE,KAAG,SAwB/E,CAAC"}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The width of an example's story while its box fills the page: set by the stage's handles or by the presets and the
4
+ * field in the box's bar, for that box only.
5
+ *
6
+ * @remarks
7
+ * The page's width (the toolbar's, in the address) is not changed: the box over the page is a moment's look, and the
8
+ * other examples keep the width they have. The box starts at the page's width and takes it again when it goes back
9
+ * to its place.
10
+ *
11
+ * @module
12
+ */
13
+ import { useState } from "react";
14
+ import { useCatalogue } from "./catalogueContext.js";
15
+ import { Icon } from "./icons.js";
16
+ import { Segmented } from "./Segmented.js";
17
+ import { STRINGS } from "./strings.js";
18
+ import { WidthField } from "./WidthField.js";
19
+ /**
20
+ * An example box's width over the page.
21
+ *
22
+ * @param isOver - whether the box is over the page.
23
+ * @param pageWidth - the page's width, the toolbar's.
24
+ */
25
+ export const useBoxWidth = (isOver, pageWidth) => {
26
+ const [own, setOwn] = useState(undefined);
27
+ const [shownWidth, setShownWidth] = useState(undefined);
28
+ // back in its place, the box forgets its own width, so it opens at the page's next time
29
+ if (!isOver && own !== undefined)
30
+ setOwn(undefined);
31
+ return {
32
+ width: isOver ? (own ?? pageWidth) : pageWidth,
33
+ onWidthChange: isOver ? setOwn : undefined,
34
+ shownWidth,
35
+ onShownWidthChange: isOver ? setShownWidth : undefined
36
+ };
37
+ };
38
+ /**
39
+ * The width's presets and field in the bar of a box over the page.
40
+ *
41
+ * @param props - the box's width and what sets it.
42
+ */
43
+ export const BoxWidthControl = ({ boxWidth }) => {
44
+ const { widths } = useCatalogue();
45
+ const { width, onWidthChange, shownWidth } = boxWidth;
46
+ if (onWidthChange === undefined)
47
+ return null;
48
+ return (_jsxs("div", { className: "forgebook-example__width", children: [_jsx("span", { className: "forgebook-toolbar__icon", title: STRINGS.width, children: _jsx(Icon, { name: "width", size: 14 }) }), _jsx(Segmented, { label: STRINGS.width, options: [
49
+ { value: "fill", label: STRINGS.widthFill },
50
+ ...widths.map((preset) => ({
51
+ value: preset.width,
52
+ label: preset.label ?? STRINGS.widthPx(preset.width)
53
+ }))
54
+ ], value: width, onValueChange: onWidthChange, after: _jsx(WidthField, { width: width, shownWidth: shownWidth, onWidthChange: onWidthChange }) })] }));
55
+ };
56
+ //# sourceMappingURL=BoxWidth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BoxWidth.js","sourceRoot":"","sources":["../../../src/shell/BoxWidth.tsx"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAkB,QAAQ,EAAE,MAAM,OAAO,CAAC;AAGjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAa,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAiB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAkB,CAAC;AAc9C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAe,EAAE,SAAqB,EAAY,EAAE;IAC9E,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAyB,SAAS,CAAC,CAAC;IAClE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAqB,SAAS,CAAC,CAAC;IAC5E,wFAAwF;IACxF,IAAI,CAAC,MAAM,IAAI,GAAG,KAAK,SAAS;QAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACpD,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS;QAC9C,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC1C,UAAU;QACV,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;KACvD,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,QAAQ,EAAmC,EAAa,EAAE;IAC1F,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAClC,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;IACtD,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC7C,OAAO,CACL,eAAK,SAAS,EAAC,0BAA0B,aACvC,eAAM,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,OAAO,CAAC,KAAK,YAC5D,KAAC,IAAI,IAAC,IAAI,EAAC,OAAO,EAAC,IAAI,EAAE,EAAE,GAAI,GAC1B,EACP,KAAC,SAAS,IACR,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,OAAO,EAAE;oBACP,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,SAAS,EAAE;oBAC3C,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;wBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;wBACnB,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;qBACrD,CAAC,CAAC;iBACJ,EACD,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,KAAC,UAAU,IAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,GAAI,GACzF,IACE,CACP,CAAC;AACJ,CAAC,CAAC"}