forgebook 0.1.3 → 0.1.4

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 (339) hide show
  1. package/README.md +74 -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 +46 -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 +109 -84
  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 +39 -0
  54. package/dist/bin/forgebook/storyCheckRun.d.ts.map +1 -0
  55. package/dist/bin/forgebook/storyCheckRun.js +177 -0
  56. package/dist/bin/forgebook/storyCheckRun.js.map +1 -0
  57. package/dist/bin/forgebook-docs/catalogueDocs.d.ts +24 -0
  58. package/dist/bin/forgebook-docs/catalogueDocs.d.ts.map +1 -0
  59. package/dist/bin/forgebook-docs/catalogueDocs.js +71 -0
  60. package/dist/bin/forgebook-docs/catalogueDocs.js.map +1 -0
  61. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +8 -0
  62. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +1 -1
  63. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +3 -1
  64. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +1 -1
  65. package/dist/bin/forgebook-docs/catalogueMarkdown.js +62 -42
  66. package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +1 -1
  67. package/dist/bin/forgebook-docs/catalogueOptions.d.ts +39 -0
  68. package/dist/bin/forgebook-docs/catalogueOptions.d.ts.map +1 -0
  69. package/dist/bin/forgebook-docs/catalogueOptions.js +76 -0
  70. package/dist/bin/forgebook-docs/catalogueOptions.js.map +1 -0
  71. package/dist/bin/forgebook-docs/collectDocs.d.ts +3 -1
  72. package/dist/bin/forgebook-docs/collectDocs.d.ts.map +1 -1
  73. package/dist/bin/forgebook-docs/collectDocs.js +37 -13
  74. package/dist/bin/forgebook-docs/collectDocs.js.map +1 -1
  75. package/dist/bin/forgebook-docs/forgebook-docs.mjs +17 -80
  76. package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +1 -1
  77. package/dist/bin/forgebook-docs/llmsText.d.ts +24 -0
  78. package/dist/bin/forgebook-docs/llmsText.d.ts.map +1 -0
  79. package/dist/bin/forgebook-docs/llmsText.js +33 -0
  80. package/dist/bin/forgebook-docs/llmsText.js.map +1 -0
  81. package/dist/bin/forgebook-docs/sourceId.d.ts +9 -0
  82. package/dist/bin/forgebook-docs/sourceId.d.ts.map +1 -0
  83. package/dist/bin/forgebook-docs/sourceId.js +45 -0
  84. package/dist/bin/forgebook-docs/sourceId.js.map +1 -0
  85. package/dist/bin/frameworkDocs.d.ts +10 -0
  86. package/dist/bin/frameworkDocs.d.ts.map +1 -0
  87. package/dist/bin/frameworkDocs.js +43 -0
  88. package/dist/bin/frameworkDocs.js.map +1 -0
  89. package/dist/src/argTypes.d.ts +23 -0
  90. package/dist/src/argTypes.d.ts.map +1 -1
  91. package/dist/src/argTypes.js +27 -0
  92. package/dist/src/argTypes.js.map +1 -1
  93. package/dist/src/catalogue.d.ts +70 -3
  94. package/dist/src/catalogue.d.ts.map +1 -1
  95. package/dist/src/catalogue.js +85 -3
  96. package/dist/src/catalogue.js.map +1 -1
  97. package/dist/src/controlKeys.d.ts +85 -0
  98. package/dist/src/controlKeys.d.ts.map +1 -0
  99. package/dist/src/controlKeys.js +118 -0
  100. package/dist/src/controlKeys.js.map +1 -0
  101. package/dist/src/frame/frame.css +33 -2
  102. package/dist/src/frame/frameView.d.ts +2 -2
  103. package/dist/src/frame/frameView.d.ts.map +1 -1
  104. package/dist/src/frame/frameView.js +7 -3
  105. package/dist/src/frame/frameView.js.map +1 -1
  106. package/dist/src/frame/mountFrame.d.ts.map +1 -1
  107. package/dist/src/frame/mountFrame.js +26 -2
  108. package/dist/src/frame/mountFrame.js.map +1 -1
  109. package/dist/src/frame/spillOutline.d.ts +10 -0
  110. package/dist/src/frame/spillOutline.d.ts.map +1 -0
  111. package/dist/src/frame/spillOutline.js +80 -0
  112. package/dist/src/frame/spillOutline.js.map +1 -0
  113. package/dist/src/liveErrors.d.ts +57 -0
  114. package/dist/src/liveErrors.d.ts.map +1 -0
  115. package/dist/src/liveErrors.js +52 -0
  116. package/dist/src/liveErrors.js.map +1 -0
  117. package/dist/src/messages.d.ts +12 -0
  118. package/dist/src/messages.d.ts.map +1 -1
  119. package/dist/src/messages.js +4 -0
  120. package/dist/src/messages.js.map +1 -1
  121. package/dist/src/namedViews.d.ts +80 -0
  122. package/dist/src/namedViews.d.ts.map +1 -0
  123. package/dist/src/namedViews.js +88 -0
  124. package/dist/src/namedViews.js.map +1 -0
  125. package/dist/src/shell/AppearanceMenu.d.ts +15 -0
  126. package/dist/src/shell/AppearanceMenu.d.ts.map +1 -0
  127. package/dist/src/shell/AppearanceMenu.js +28 -0
  128. package/dist/src/shell/AppearanceMenu.js.map +1 -0
  129. package/dist/src/shell/BoxWidth.d.ts +40 -0
  130. package/dist/src/shell/BoxWidth.d.ts.map +1 -0
  131. package/dist/src/shell/BoxWidth.js +56 -0
  132. package/dist/src/shell/BoxWidth.js.map +1 -0
  133. package/dist/src/shell/ComponentPage.d.ts +17 -1
  134. package/dist/src/shell/ComponentPage.d.ts.map +1 -1
  135. package/dist/src/shell/ComponentPage.js +19 -54
  136. package/dist/src/shell/ComponentPage.js.map +1 -1
  137. package/dist/src/shell/ControlKeyField.d.ts +21 -0
  138. package/dist/src/shell/ControlKeyField.d.ts.map +1 -0
  139. package/dist/src/shell/ControlKeyField.js +46 -0
  140. package/dist/src/shell/ControlKeyField.js.map +1 -0
  141. package/dist/src/shell/ControlRow.d.ts +31 -0
  142. package/dist/src/shell/ControlRow.d.ts.map +1 -0
  143. package/dist/src/shell/ControlRow.js +27 -0
  144. package/dist/src/shell/ControlRow.js.map +1 -0
  145. package/dist/src/shell/Example.d.ts +58 -0
  146. package/dist/src/shell/Example.d.ts.map +1 -0
  147. package/dist/src/shell/Example.js +89 -0
  148. package/dist/src/shell/Example.js.map +1 -0
  149. package/dist/src/shell/NamedViews.d.ts +23 -0
  150. package/dist/src/shell/NamedViews.d.ts.map +1 -0
  151. package/dist/src/shell/NamedViews.js +49 -0
  152. package/dist/src/shell/NamedViews.js.map +1 -0
  153. package/dist/src/shell/PinnedControl.d.ts +25 -0
  154. package/dist/src/shell/PinnedControl.d.ts.map +1 -0
  155. package/dist/src/shell/PinnedControl.js +81 -0
  156. package/dist/src/shell/PinnedControl.js.map +1 -0
  157. package/dist/src/shell/PropsTab.d.ts +5 -2
  158. package/dist/src/shell/PropsTab.d.ts.map +1 -1
  159. package/dist/src/shell/PropsTab.js +12 -15
  160. package/dist/src/shell/PropsTab.js.map +1 -1
  161. package/dist/src/shell/Shell.d.ts.map +1 -1
  162. package/dist/src/shell/Shell.js +27 -2
  163. package/dist/src/shell/Shell.js.map +1 -1
  164. package/dist/src/shell/Sidebar.d.ts +11 -9
  165. package/dist/src/shell/Sidebar.d.ts.map +1 -1
  166. package/dist/src/shell/Sidebar.js +48 -42
  167. package/dist/src/shell/Sidebar.js.map +1 -1
  168. package/dist/src/shell/SidebarEntries.d.ts +50 -0
  169. package/dist/src/shell/SidebarEntries.d.ts.map +1 -0
  170. package/dist/src/shell/SidebarEntries.js +51 -0
  171. package/dist/src/shell/SidebarEntries.js.map +1 -0
  172. package/dist/src/shell/Stage.d.ts.map +1 -1
  173. package/dist/src/shell/Stage.js +19 -2
  174. package/dist/src/shell/Stage.js.map +1 -1
  175. package/dist/src/shell/Toolbar.d.ts +7 -3
  176. package/dist/src/shell/Toolbar.d.ts.map +1 -1
  177. package/dist/src/shell/Toolbar.js +38 -68
  178. package/dist/src/shell/Toolbar.js.map +1 -1
  179. package/dist/src/shell/ToolbarControl.d.ts +47 -0
  180. package/dist/src/shell/ToolbarControl.d.ts.map +1 -0
  181. package/dist/src/shell/ToolbarControl.js +150 -0
  182. package/dist/src/shell/ToolbarControl.js.map +1 -0
  183. package/dist/src/shell/UsedIn.d.ts +38 -0
  184. package/dist/src/shell/UsedIn.d.ts.map +1 -0
  185. package/dist/src/shell/UsedIn.js +77 -0
  186. package/dist/src/shell/UsedIn.js.map +1 -0
  187. package/dist/src/shell/ViewMenu.d.ts +37 -0
  188. package/dist/src/shell/ViewMenu.d.ts.map +1 -0
  189. package/dist/src/shell/ViewMenu.js +216 -0
  190. package/dist/src/shell/ViewMenu.js.map +1 -0
  191. package/dist/src/shell/controlCycle.d.ts +28 -0
  192. package/dist/src/shell/controlCycle.d.ts.map +1 -0
  193. package/dist/src/shell/controlCycle.js +51 -0
  194. package/dist/src/shell/controlCycle.js.map +1 -0
  195. package/dist/src/shell/dockTabs.d.ts +3 -0
  196. package/dist/src/shell/dockTabs.d.ts.map +1 -1
  197. package/dist/src/shell/dockTabs.js +1 -1
  198. package/dist/src/shell/dockTabs.js.map +1 -1
  199. package/dist/src/shell/icons.d.ts +6 -0
  200. package/dist/src/shell/icons.d.ts.map +1 -1
  201. package/dist/src/shell/icons.js +7 -1
  202. package/dist/src/shell/icons.js.map +1 -1
  203. package/dist/src/shell/keyboard.d.ts +2 -1
  204. package/dist/src/shell/keyboard.d.ts.map +1 -1
  205. package/dist/src/shell/keyboard.js +5 -2
  206. package/dist/src/shell/keyboard.js.map +1 -1
  207. package/dist/src/shell/shell.css +826 -243
  208. package/dist/src/shell/strings.d.ts +45 -0
  209. package/dist/src/shell/strings.d.ts.map +1 -1
  210. package/dist/src/shell/strings.js +45 -0
  211. package/dist/src/shell/strings.js.map +1 -1
  212. package/dist/src/shell/useAppearance.d.ts +17 -0
  213. package/dist/src/shell/useAppearance.d.ts.map +1 -0
  214. package/dist/src/shell/useAppearance.js +36 -0
  215. package/dist/src/shell/useAppearance.js.map +1 -0
  216. package/dist/src/shell/useControlKeys.d.ts +23 -0
  217. package/dist/src/shell/useControlKeys.d.ts.map +1 -0
  218. package/dist/src/shell/useControlKeys.js +44 -0
  219. package/dist/src/shell/useControlKeys.js.map +1 -0
  220. package/dist/src/shell/useFold.d.ts +27 -0
  221. package/dist/src/shell/useFold.d.ts.map +1 -0
  222. package/dist/src/shell/useFold.js +87 -0
  223. package/dist/src/shell/useFold.js.map +1 -0
  224. package/dist/src/shell/useFrameMessages.d.ts +2 -0
  225. package/dist/src/shell/useFrameMessages.d.ts.map +1 -1
  226. package/dist/src/shell/useFrameMessages.js +3 -0
  227. package/dist/src/shell/useFrameMessages.js.map +1 -1
  228. package/dist/src/shell/useFullPage.d.ts +45 -0
  229. package/dist/src/shell/useFullPage.d.ts.map +1 -0
  230. package/dist/src/shell/useFullPage.js +149 -0
  231. package/dist/src/shell/useFullPage.js.map +1 -0
  232. package/dist/src/shell/usePopover.d.ts +17 -3
  233. package/dist/src/shell/usePopover.d.ts.map +1 -1
  234. package/dist/src/shell/usePopover.js +65 -4
  235. package/dist/src/shell/usePopover.js.map +1 -1
  236. package/dist/src/shell/useStored.d.ts +13 -2
  237. package/dist/src/shell/useStored.d.ts.map +1 -1
  238. package/dist/src/shell/useStored.js +1 -1
  239. package/dist/src/shell/useStored.js.map +1 -1
  240. package/dist/src/shell/useToolbarLayout.d.ts +39 -0
  241. package/dist/src/shell/useToolbarLayout.d.ts.map +1 -0
  242. package/dist/src/shell/useToolbarLayout.js +58 -0
  243. package/dist/src/shell/useToolbarLayout.js.map +1 -0
  244. package/dist/src/shell/useToolbarOverflow.d.ts +31 -0
  245. package/dist/src/shell/useToolbarOverflow.d.ts.map +1 -0
  246. package/dist/src/shell/useToolbarOverflow.js +62 -0
  247. package/dist/src/shell/useToolbarOverflow.js.map +1 -0
  248. package/dist/src/shell/useWorstCase.d.ts +46 -0
  249. package/dist/src/shell/useWorstCase.d.ts.map +1 -0
  250. package/dist/src/shell/useWorstCase.js +42 -0
  251. package/dist/src/shell/useWorstCase.js.map +1 -0
  252. package/dist/src/shell/worstArgs.d.ts +42 -0
  253. package/dist/src/shell/worstArgs.d.ts.map +1 -0
  254. package/dist/src/shell/worstArgs.js +47 -0
  255. package/dist/src/shell/worstArgs.js.map +1 -0
  256. package/dist/src/spills.d.ts +31 -0
  257. package/dist/src/spills.d.ts.map +1 -0
  258. package/dist/src/spills.js +65 -0
  259. package/dist/src/spills.js.map +1 -0
  260. package/dist/src/storyCheck.d.ts +105 -0
  261. package/dist/src/storyCheck.d.ts.map +1 -0
  262. package/dist/src/storyCheck.js +63 -0
  263. package/dist/src/storyCheck.js.map +1 -0
  264. package/dist/src/switches.d.ts +16 -4
  265. package/dist/src/switches.d.ts.map +1 -1
  266. package/dist/src/switches.js +30 -5
  267. package/dist/src/switches.js.map +1 -1
  268. package/dist/src/toolbarLayout.d.ts +119 -0
  269. package/dist/src/toolbarLayout.d.ts.map +1 -0
  270. package/dist/src/toolbarLayout.js +155 -0
  271. package/dist/src/toolbarLayout.js.map +1 -0
  272. package/dist/src/usedIn.d.ts +60 -0
  273. package/dist/src/usedIn.d.ts.map +1 -0
  274. package/dist/src/usedIn.js +92 -0
  275. package/dist/src/usedIn.js.map +1 -0
  276. package/dist/src/viewState.d.ts +6 -10
  277. package/dist/src/viewState.d.ts.map +1 -1
  278. package/dist/src/viewState.js +20 -18
  279. package/dist/src/viewState.js.map +1 -1
  280. package/dist/src/viewWords.d.ts +26 -0
  281. package/dist/src/viewWords.d.ts.map +1 -0
  282. package/dist/src/viewWords.js +29 -0
  283. package/dist/src/viewWords.js.map +1 -0
  284. package/dist/src/vite/adapter.d.ts +13 -4
  285. package/dist/src/vite/adapter.d.ts.map +1 -1
  286. package/dist/src/vite/adapter.js +4 -2
  287. package/dist/src/vite/adapter.js.map +1 -1
  288. package/dist/src/vite/agent.types.d.ts +32 -2
  289. package/dist/src/vite/agent.types.d.ts.map +1 -1
  290. package/dist/src/vite/agentApi.d.ts +15 -3
  291. package/dist/src/vite/agentApi.d.ts.map +1 -1
  292. package/dist/src/vite/agentApi.js +63 -9
  293. package/dist/src/vite/agentApi.js.map +1 -1
  294. package/dist/src/vite/agentRoutes.d.ts +8 -3
  295. package/dist/src/vite/agentRoutes.d.ts.map +1 -1
  296. package/dist/src/vite/agentRoutes.js +84 -23
  297. package/dist/src/vite/agentRoutes.js.map +1 -1
  298. package/dist/src/vite/configFile.d.ts +2 -1
  299. package/dist/src/vite/configFile.d.ts.map +1 -1
  300. package/dist/src/vite/configFile.js +29 -11
  301. package/dist/src/vite/configFile.js.map +1 -1
  302. package/dist/src/vite/docsExtractor.d.ts +26 -2
  303. package/dist/src/vite/docsExtractor.d.ts.map +1 -1
  304. package/dist/src/vite/docsExtractor.js +12 -9
  305. package/dist/src/vite/docsExtractor.js.map +1 -1
  306. package/dist/src/vite/docsWorker.js +18 -2
  307. package/dist/src/vite/docsWorker.js.map +1 -1
  308. package/dist/src/vite/forgebookPlugin.d.ts.map +1 -1
  309. package/dist/src/vite/forgebookPlugin.js +109 -16
  310. package/dist/src/vite/forgebookPlugin.js.map +1 -1
  311. package/dist/src/vite/indexStoryFile.d.ts +14 -0
  312. package/dist/src/vite/indexStoryFile.d.ts.map +1 -1
  313. package/dist/src/vite/indexStoryFile.js +13 -4
  314. package/dist/src/vite/indexStoryFile.js.map +1 -1
  315. package/dist/src/vite/mcpProtocol.d.ts +9 -0
  316. package/dist/src/vite/mcpProtocol.d.ts.map +1 -1
  317. package/dist/src/vite/mcpProtocol.js +6 -3
  318. package/dist/src/vite/mcpProtocol.js.map +1 -1
  319. package/dist/src/vite/storyFilesModule.d.ts +28 -1
  320. package/dist/src/vite/storyFilesModule.d.ts.map +1 -1
  321. package/dist/src/vite/storyFilesModule.js +34 -14
  322. package/dist/src/vite/storyFilesModule.js.map +1 -1
  323. package/dist/src/vite/usageGraph.d.ts +45 -0
  324. package/dist/src/vite/usageGraph.d.ts.map +1 -0
  325. package/dist/src/vite/usageGraph.js +246 -0
  326. package/dist/src/vite/usageGraph.js.map +1 -0
  327. package/dist/src/vite/usageModule.d.ts +33 -0
  328. package/dist/src/vite/usageModule.d.ts.map +1 -0
  329. package/dist/src/vite/usageModule.js +135 -0
  330. package/dist/src/vite/usageModule.js.map +1 -0
  331. package/dist/src/worstCase.d.ts +16 -0
  332. package/dist/src/worstCase.d.ts.map +1 -0
  333. package/dist/src/worstCase.js +16 -0
  334. package/dist/src/worstCase.js.map +1 -0
  335. package/package.json +14 -2
  336. package/dist/src/shell/SchemeSwitches.d.ts +0 -24
  337. package/dist/src/shell/SchemeSwitches.d.ts.map +0 -1
  338. package/dist/src/shell/SchemeSwitches.js +0 -36
  339. package/dist/src/shell/SchemeSwitches.js.map +0 -1
@@ -27,6 +27,15 @@ declare const shellStrings: {
27
27
  related: string;
28
28
  view: string;
29
29
  viewChanged: string;
30
+ controlChanged: (control: string) => string;
31
+ controlKey: (control: string, key: string | undefined) => string;
32
+ cycleKey: (control: string, key: string) => string;
33
+ changeKey: string;
34
+ pressAKey: string;
35
+ namedViews: string;
36
+ saveView: string;
37
+ viewName: string;
38
+ removeView: (name: string) => string;
30
39
  backdrop: string;
31
40
  backdropPlain: string;
32
41
  sheets: string;
@@ -39,6 +48,21 @@ declare const shellStrings: {
39
48
  textScale: (scale: TextScale) => string;
40
49
  resetView: string;
41
50
  viewInAddress: string;
51
+ pinControl: (label: string) => string;
52
+ hideControl: (label: string) => string;
53
+ showControl: (label: string) => string;
54
+ moveControl: (label: string) => string;
55
+ moveControlHint: string;
56
+ controlMoved: (label: string, position: number, count: number) => string;
57
+ controlMenu: (label: string) => string;
58
+ unpinControl: string;
59
+ hideInView: string;
60
+ showInView: string;
61
+ pinnedNoRoom: string;
62
+ resetToolbar: string;
63
+ wrapToolbar: string;
64
+ hiddenControls: (count: number) => string;
65
+ toolbarInBrowser: string;
42
66
  compare: string;
43
67
  compareOff: string;
44
68
  compareText: string;
@@ -127,6 +151,17 @@ declare const shellStrings: {
127
151
  showCode: string;
128
152
  hideCode: string;
129
153
  openStory: string;
154
+ usedIn: string;
155
+ usedInLoading: string;
156
+ usedInNone: string;
157
+ usedInThrough: string;
158
+ usedInMore: (count: number) => string;
159
+ usedInStories: (count: number) => string;
160
+ openStoryNamed: (name: string) => string;
161
+ fillPage: string;
162
+ fillPageNamed: (name: string) => string;
163
+ backToPlace: string;
164
+ backToPlaceNamed: (name: string) => string;
130
165
  examples: string;
131
166
  pageError: string;
132
167
  storyLabel: string;
@@ -156,6 +191,16 @@ declare const shellStrings: {
156
191
  setByStory: string;
157
192
  required: string;
158
193
  resetArgs: string;
194
+ appearance: string;
195
+ appearanceOf: (name: string) => string;
196
+ appearances: {
197
+ light: string;
198
+ dark: string;
199
+ system: string;
200
+ };
201
+ worstCase: string;
202
+ worstCaseHint: string;
203
+ spills: (count: number) => string;
159
204
  events: string;
160
205
  calls: string;
161
206
  noCalls: string;
@@ -1 +1 @@
1
- {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../../src/shell/strings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE/D,4GAA4G;AAE5G,QAAA,MAAM,YAAY;;;;;;;;wBAQI,MAAM,KAAG,MAAM;;yBAEd,MAAM,KAAG,MAAM;uBACjB,MAAM,KAAG,MAAM;qBACjB,MAAM,KAAG,MAAM;;;;;;;;;;;;;uBAYb,SAAS,KAAG,MAAM;;;;;;;wBAOjB,SAAS,MAAM,EAAE,KAAG,MAAM;0BACxB,SAAS,MAAM,EAAE,KAAG,MAAM;;;qBAG/B,MAAM,KAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAmCjB,MAAM,KAAG,MAAM;;;;;;;;;;;;;;;;;;;uBAmBX,MAAM,KAAG,MAAM;;;;;;;;;;sBAUhB,MAAM,KAAG,MAAM;;;;;;;;;;;;;;;4BAeT,MAAM,SAAS,MAAM,KAAG,MAAM;;;8BAG5B,MAAM,WAAW,MAAM,KAAG,MAAM;;;6BAIjC,MAAM,KAAG,MAAM;qBACvB,MAAM,KAAG,MAAM;;uBAEb,MAAM,KAAG,MAAM;2BAEX,MAAM,KAAG,MAAM;;;;;;;;;0BAMhB,MAAM,KAAG,MAAM;;sBAEnB,MAAM,KAAG,MAAM;uBACd,MAAM,KAAG,MAAM;;;;;;;;;uBASf,MAAM,KAAG,MAAM;;;;;;;;CAQnC,CAAC;AAEF,yBAAyB;AACzB,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C,mCAAmC;AACnC,eAAO,MAAM,OAAO,EAAE,YAA2B,CAAC;AA6BlD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,cAAc,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAG,IAEjF,CAAC"}
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../../src/shell/strings.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,EAAgB,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE/D,4GAA4G;AAE5G,QAAA,MAAM,YAAY;;;;;;;;wBAQI,MAAM,KAAG,MAAM;;yBAEd,MAAM,KAAG,MAAM;uBACjB,MAAM,KAAG,MAAM;qBACjB,MAAM,KAAG,MAAM;;;;8BAIN,MAAM,KAAG,MAAM;0BACnB,MAAM,OAAO,MAAM,GAAG,SAAS,KAAG,MAAM;wBAE1C,MAAM,OAAO,MAAM,KAAG,MAAM;;;;;;uBAO7B,MAAM,KAAG,MAAM;;;;;;;;;;uBASf,SAAS,KAAG,MAAM;;;wBAGjB,MAAM,KAAG,MAAM;yBACd,MAAM,KAAG,MAAM;yBACf,MAAM,KAAG,MAAM;yBACf,MAAM,KAAG,MAAM;;0BAEd,MAAM,YAAY,MAAM,SAAS,MAAM,KAAG,MAAM;yBAEjD,MAAM,KAAG,MAAM;;;;;;;4BAOZ,MAAM,KAAG,MAAM;;;;;;wBAMnB,SAAS,MAAM,EAAE,KAAG,MAAM;0BACxB,SAAS,MAAM,EAAE,KAAG,MAAM;;;qBAG/B,MAAM,KAAG,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAmCjB,MAAM,KAAG,MAAM;;;;;;;;;;;;;;;;;;;uBAmBX,MAAM,KAAG,MAAM;;;;;;;;;;sBAUhB,MAAM,KAAG,MAAM;;;;;;;;;;;;;;;;wBAgBb,MAAM,KAAG,MAAM;2BACZ,MAAM,KAAG,MAAM;2BACf,MAAM,KAAG,MAAM;;0BAEhB,MAAM,KAAG,MAAM;;6BAEZ,MAAM,KAAG,MAAM;;;;4BAIhB,MAAM,SAAS,MAAM,KAAG,MAAM;;;8BAG5B,MAAM,WAAW,MAAM,KAAG,MAAM;;;6BAIjC,MAAM,KAAG,MAAM;qBACvB,MAAM,KAAG,MAAM;;uBAEb,MAAM,KAAG,MAAM;2BAEX,MAAM,KAAG,MAAM;;;;;;;;;0BAMhB,MAAM,KAAG,MAAM;;sBAEnB,MAAM,KAAG,MAAM;uBACd,MAAM,KAAG,MAAM;;;;;yBAKb,MAAM,KAAG,MAAM;;;;;;;;oBAKpB,MAAM,KAAG,MAAM;;;;;;uBASZ,MAAM,KAAG,MAAM;;;;;;;;CAQnC,CAAC;AAEF,yBAAyB;AACzB,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAE/C,mCAAmC;AACnC,eAAO,MAAM,OAAO,EAAE,YAA2B,CAAC;AA6BlD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,cAAc,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,KAAG,IAEjF,CAAC"}
@@ -16,6 +16,15 @@ const shellStrings = {
16
16
  related: "Related",
17
17
  view: "View",
18
18
  viewChanged: "A view setting is changed",
19
+ controlChanged: (control) => `${control}: changed`,
20
+ controlKey: (control, key) => key === undefined ? `${control}: no key` : `${control}: key ${key.toUpperCase()}`,
21
+ cycleKey: (control, key) => `${control}: press ${key} for the next value, Shift+${key} for the one before`,
22
+ changeKey: "Change the key: press it, then the new key; Backspace takes it away",
23
+ pressAKey: "Press a key",
24
+ namedViews: "Views",
25
+ saveView: "Save view…",
26
+ viewName: "View name",
27
+ removeView: (name) => `Remove the view ${name}`,
19
28
  backdrop: "Background",
20
29
  backdropPlain: "Plain",
21
30
  sheets: "Styles",
@@ -24,6 +33,21 @@ const shellStrings = {
24
33
  textScale: (scale) => `${scale}%`,
25
34
  resetView: "Reset to defaults",
26
35
  viewInAddress: "Saved in the address",
36
+ pinControl: (label) => `Pin ${label} to the toolbar`,
37
+ hideControl: (label) => `Hide ${label} in View`,
38
+ showControl: (label) => `Show ${label}`,
39
+ moveControl: (label) => `Move ${label}`,
40
+ moveControlHint: "Drag, or press the arrow keys",
41
+ controlMoved: (label, position, count) => `${label}, ${position} of ${count}`,
42
+ controlMenu: (label) => `${label} on the toolbar`,
43
+ unpinControl: "Remove from the toolbar",
44
+ hideInView: "Hide in View",
45
+ showInView: "Show in View",
46
+ pinnedNoRoom: "Pinned: back on the toolbar when there is room",
47
+ resetToolbar: "Reset toolbar",
48
+ wrapToolbar: "Wrap the toolbar onto more lines when it is full",
49
+ hiddenControls: (count) => `${count} hidden`,
50
+ toolbarInBrowser: "The toolbar is kept in this browser",
27
51
  compare: "Compare",
28
52
  compareOff: "Off",
29
53
  compareText: "Text sizes",
@@ -108,6 +132,17 @@ const shellStrings = {
108
132
  showCode: "Show code",
109
133
  hideCode: "Hide code",
110
134
  openStory: "Open the story",
135
+ usedIn: "Used in",
136
+ usedInLoading: "Looking for the stories that use it…",
137
+ usedInNone: "No other component's stories use it.",
138
+ usedInThrough: "through another component",
139
+ usedInMore: (count) => `and ${count} more`,
140
+ usedInStories: (count) => (count === 1 ? "1 story" : `${count} stories`),
141
+ openStoryNamed: (name) => `Open the story ${name}`,
142
+ fillPage: "Fill the page",
143
+ fillPageNamed: (name) => `Fill the page with ${name}`,
144
+ backToPlace: "Back to its place",
145
+ backToPlaceNamed: (name) => `Put ${name} back in its place`,
111
146
  examples: "Examples",
112
147
  pageError: "The component's page could not be read",
113
148
  storyLabel: "Story",
@@ -133,6 +168,16 @@ const shellStrings = {
133
168
  setByStory: "Set by the story",
134
169
  required: "Required",
135
170
  resetArgs: "Reset",
171
+ appearance: "Appearance",
172
+ appearanceOf: (name) => `Appearance: ${name}`,
173
+ appearances: { light: "Light", dark: "Dark", system: "System" },
174
+ worstCase: "Worst case",
175
+ worstCaseHint: "Long texts with a word too long to break, huge numbers: the elements that spill are outlined",
176
+ spills: (count) => {
177
+ if (count === 0)
178
+ return "Nothing spills";
179
+ return count === 1 ? "1 element spills" : `${count} elements spill`;
180
+ },
136
181
  events: "Events",
137
182
  calls: "Calls",
138
183
  noCalls: "No call yet",
@@ -1 +1 @@
1
- {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../../src/shell/strings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../../src/shell/strings.ts"],"names":[],"mappings":"AAaA,4GAA4G;AAC5G,uIAAuI;AACvI,MAAM,YAAY,GAAG;IACnB,iBAAiB,EAAE,QAAQ;IAC3B,WAAW,EAAE,+BAA+B;IAC5C,aAAa,EAAE,YAAY;IAC3B,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,kBAAkB;IAC/B,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,OAAO,KAAK,UAAU;IAC7D,OAAO,EAAE,sBAAsB;IAC/B,UAAU,EAAE,CAAC,MAAc,EAAU,EAAE,CAAC,MAAM,MAAM,EAAE;IACtD,SAAS,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,YAAY,KAAK,mBAAmB;IAC1E,MAAM,EAAE,CAAC,MAAc,EAAU,EAAE,CAAC,kBAAkB,MAAM,EAAE;IAC9D,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,2BAA2B;IACxC,cAAc,EAAE,CAAC,OAAe,EAAU,EAAE,CAAC,GAAG,OAAO,WAAW;IAClE,UAAU,EAAE,CAAC,OAAe,EAAE,GAAuB,EAAU,EAAE,CAC/D,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,OAAO,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,SAAS,GAAG,CAAC,WAAW,EAAE,EAAE;IACnF,QAAQ,EAAE,CAAC,OAAe,EAAE,GAAW,EAAU,EAAE,CACjD,GAAG,OAAO,WAAW,GAAG,8BAA8B,GAAG,qBAAqB;IAChF,SAAS,EAAE,qEAAqE;IAChF,SAAS,EAAE,aAAa;IACxB,UAAU,EAAE,OAAO;IACnB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,WAAW;IACrB,UAAU,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,mBAAmB,IAAI,EAAE;IAC/D,QAAQ,EAAE,YAAY;IACtB,aAAa,EAAE,OAAO;IACtB,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,UAAU,EAG9E;IACD,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,CAAC,KAAgB,EAAU,EAAE,CAAC,GAAG,KAAK,GAAG;IACpD,SAAS,EAAE,mBAAmB;IAC9B,aAAa,EAAE,sBAAsB;IACrC,UAAU,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,OAAO,KAAK,iBAAiB;IACpE,WAAW,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,QAAQ,KAAK,UAAU;IAC/D,WAAW,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,QAAQ,KAAK,EAAE;IACvD,WAAW,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,QAAQ,KAAK,EAAE;IACvD,eAAe,EAAE,+BAA+B;IAChD,YAAY,EAAE,CAAC,KAAa,EAAE,QAAgB,EAAE,KAAa,EAAU,EAAE,CACvE,GAAG,KAAK,KAAK,QAAQ,OAAO,KAAK,EAAE;IACrC,WAAW,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,iBAAiB;IACjE,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,cAAc;IAC1B,UAAU,EAAE,cAAc;IAC1B,YAAY,EAAE,gDAAgD;IAC9D,YAAY,EAAE,eAAe;IAC7B,WAAW,EAAE,kDAAkD;IAC/D,cAAc,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,SAAS;IAC5D,gBAAgB,EAAE,qCAAqC;IACvD,OAAO,EAAE,SAAS;IAClB,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,YAAY;IACzB,aAAa,EAAE,QAAQ;IACvB,SAAS,EAAE,CAAC,MAAyB,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACpE,WAAW,EAAE,CAAC,MAAyB,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;IACtE,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,MAAM;IACjB,OAAO,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,EAAE;IAC9C,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,kBAAkB;IAC/B,SAAS,EAAE,yBAAyB;IACpC,UAAU,EAAE,kBAAkB;IAC9B,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,MAAM;IACjB,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,UAAU;IACnB,SAAS,EAAE,cAAc;IACzB,UAAU,EAAE,0BAA0B;IACtC,KAAK,EAAE;QACL,OAAO,EAAE,uBAAuB;QAChC,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,uCAAuC;KACjD;IACD,WAAW,EAAE,aAAa;IAC1B,eAAe,EAAE,4DAA4D;IAC7E,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,6DAA6D;IAC/E,aAAa,EAAE,uCAAuC;IACtD,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,cAAc;IAC3B,UAAU,EAAE,iBAAiB;IAC7B,IAAI,EAAE;QACJ,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,mBAAmB;QAC1B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,eAAe;KACtB;IACD,SAAS,EAAE,eAAe;IAC1B,UAAU,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE;IACtE,QAAQ,EAAE,CAAC,EAAU,EAAU,EAAE,CAAC,GAAG,EAAE,KAAK;IAC5C,SAAS,EAAE,WAAW;IACtB,WAAW,EAAE,+EAA+E;IAC5F,aAAa,EAAE,4FAA4F;IAC3G,QAAQ,EAAE,OAAO;IACjB,SAAS,EAAE,mBAAmB;IAC9B,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,eAAe;IAC7B,UAAU,EAAE,oBAAoB;IAChC,SAAS,EAAE,oCAAoC;IAC/C,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,GAAG;IACf,aAAa,EAAE,gBAAgB;IAC/B,IAAI,EAAE,eAAe;IACrB,SAAS,EAAE,iBAAiB;IAC5B,WAAW,EAAE,WAAW;IACxB,UAAU,EAAE,QAAQ;IACpB,SAAS,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE;IACxF,QAAQ,EAAE,+DAA+D;IACzE,SAAS,EAAE,yBAAyB;IACpC,gBAAgB,EAAE,gDAAgD;IAClE,MAAM,EAAE,QAAQ;IAChB,UAAU,EAAE,aAAa;IACzB,UAAU,EAAE,iBAAiB;IAC7B,WAAW,EAAE,kBAAkB;IAC/B,YAAY,EAAE,SAAS;IACvB,UAAU,EAAE,aAAa;IACzB,SAAS,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,IAAI,EAAE;IAC/C,YAAY,EAAE,oBAAoB;IAClC,YAAY,EAAE,eAAe;IAC7B,OAAO,EAAE,MAAM;IACf,QAAQ,EAAE,OAAO;IACjB,OAAO,EAAE,MAAM;IACf,YAAY,EAAE,WAAW;IACzB,UAAU,EAAE,SAAS;IACrB,OAAO,EAAE,cAAc;IACvB,QAAQ,EAAE,WAAW;IACrB,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,gBAAgB;IAC3B,MAAM,EAAE,SAAS;IACjB,aAAa,EAAE,sCAAsC;IACrD,UAAU,EAAE,sCAAsC;IAClD,aAAa,EAAE,2BAA2B;IAC1C,UAAU,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,OAAO,KAAK,OAAO;IAC1D,aAAa,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,UAAU,CAAC;IACxF,cAAc,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,kBAAkB,IAAI,EAAE;IAClE,QAAQ,EAAE,eAAe;IACzB,aAAa,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,sBAAsB,IAAI,EAAE;IACrE,WAAW,EAAE,mBAAmB;IAChC,gBAAgB,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,OAAO,IAAI,oBAAoB;IAC3E,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,wCAAwC;IACnD,UAAU,EAAE,OAAO;IACnB,UAAU,EAAE,CAAC,SAAiB,EAAE,KAAa,EAAU,EAAE,CAAC,GAAG,SAAS,KAAK,KAAK,EAAE;IAClF,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,oEAAoE;IAC/E,WAAW,EAAE,CAAC,UAAkB,EAAE,OAAe,EAAU,EAAE,CAC3D,GAAG,UAAU,IAAI,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,OAAO,OAAO,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,GAAG;IAC5H,cAAc,EAAE,8CAA8C;IAC9D,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAAE;IAClG,OAAO,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,YAAY,KAAK,EAAE;IACvD,SAAS,EAAE,YAAY;IACvB,YAAY,EAAE,CAAC,EAAU,EAAU,EAAE,CACnC,aAAa,EAAE,uDAAuD;IACxE,gBAAgB,EAAE,CAAC,EAAU,EAAU,EAAE,CACvC,iBAAiB,EAAE,uDAAuD;IAC5E,KAAK,EAAE,OAAO;IACd,UAAU,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE;IAC9E,UAAU,EAAE,aAAa;IACzB,KAAK,EAAE,GAAG;IACV,YAAY,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,MAAM,KAAK,GAAG;IACvD,SAAS,EAAE,UAAU;IACrB,SAAS,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,GAAG,IAAI,iBAAiB;IAC7D,UAAU,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,GAAG,IAAI,SAAS;IACtD,UAAU,EAAE,kBAAkB;IAC9B,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,YAAY;IACxB,YAAY,EAAE,CAAC,IAAY,EAAU,EAAE,CAAC,eAAe,IAAI,EAAE;IAC7D,WAAW,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;IAC/D,SAAS,EAAE,YAAY;IACvB,aAAa,EACX,8FAA8F;IAChG,MAAM,EAAE,CAAC,KAAa,EAAU,EAAE;QAChC,IAAI,KAAK,KAAK,CAAC;YAAE,OAAO,gBAAgB,CAAC;QACzC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,KAAK,iBAAiB,CAAC;IACtE,CAAC;IACD,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,aAAa;IACtB,UAAU,EAAE,OAAO;IACnB,KAAK,EAAE,mBAAmB;IAC1B,SAAS,EAAE,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE;IAClF,SAAS,EAAE,OAAO;IAClB,UAAU,EAAE,oBAAoB;IAChC,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,wBAAwB;IACjC,WAAW,EAAE,wBAAwB;IACrC,SAAS,EAAE,iCAAiC;IAC5C,aAAa,EAAE,sCAAsC;CACtD,CAAC;AAKF,mCAAmC;AACnC,MAAM,CAAC,MAAM,OAAO,GAAiB,YAAY,CAAC;AAElD;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,KAAc,EAAoC,EAAE,CACvE,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE;;;;;;;GAOG;AACH,MAAM,WAAW,GAAG,CAAC,KAA8B,EAAE,IAAuB,EAAE,IAAY,EAAQ,EAAE;IAClG,MAAM,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7B,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO;IAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACpD,OAAO;IACT,CAAC;IACD,IAAI,WAAW,CAAC,OAAO,CAAC;QAAE,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,YAA8C,EAAQ,EAAE;IACvF,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;QAAE,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;AACvG,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { type Appearance } from "../catalogue.ts";
2
+ /** The root's attribute the palettes read: `light` or `dark`, the system's resolved. */
3
+ export declare const APPEARANCE_ATTRIBUTE = "data-forgebook-appearance";
4
+ /** The shell's appearance and its setter. */
5
+ export type AppearanceState = {
6
+ /** The appearance shown: the reader's, or the catalogue's default. */
7
+ readonly appearance: Appearance;
8
+ /** Picks an appearance, kept for the next visit. */
9
+ readonly setAppearance: (appearance: Appearance) => void;
10
+ };
11
+ /**
12
+ * The shell's appearance, applied to the page's root.
13
+ *
14
+ * @returns the appearance shown and its setter.
15
+ */
16
+ export declare const useAppearance: () => AppearanceState;
17
+ //# sourceMappingURL=useAppearance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppearance.d.ts","sourceRoot":"","sources":["../../../src/shell/useAppearance.ts"],"names":[],"mappings":"AAYA,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK/D,wFAAwF;AACxF,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAMhE,6CAA6C;AAC7C,MAAM,MAAM,eAAe,GAAG;IAC5B,sEAAsE;IACtE,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAChC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAO,eAUhC,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * The shell's own appearance: light, dark or the system's, a reader's choice kept in their browser, the catalogue's
3
+ * default before they pick one; written on the page's root, where the palettes of `shell.scss` read it.
4
+ *
5
+ * @remarks
6
+ * Only the reader's own choice is stored: a reader who never picked follows the catalogue's default even after the
7
+ * catalogue changes it. The frames are not touched: a story's look is the view's switches'.
8
+ *
9
+ * @module
10
+ */
11
+ import { useEffect } from "react";
12
+ import { APPEARANCES } from "../catalogue.js";
13
+ import { useCatalogue } from "./catalogueContext.js";
14
+ import { useStored } from "./useStored.js";
15
+ import { useSystemDark } from "./useSystemDark.js";
16
+ /** The root's attribute the palettes read: `light` or `dark`, the system's resolved. */
17
+ export const APPEARANCE_ATTRIBUTE = "data-forgebook-appearance";
18
+ /** The appearance a stored text holds; none when the reader never picked one. */
19
+ const storedAppearance = (stored) => APPEARANCES.find((appearance) => appearance === stored);
20
+ /**
21
+ * The shell's appearance, applied to the page's root.
22
+ *
23
+ * @returns the appearance shown and its setter.
24
+ */
25
+ export const useAppearance = () => {
26
+ const catalogue = useCatalogue();
27
+ const [chosen, setChosen] = useStored("appearance", storedAppearance, (value) => value ?? "");
28
+ const appearance = chosen ?? catalogue.appearance;
29
+ const isSystemDark = useSystemDark();
30
+ const isDark = appearance === "dark" || (appearance === "system" && isSystemDark);
31
+ useEffect(() => {
32
+ document.documentElement.setAttribute(APPEARANCE_ATTRIBUTE, isDark ? "dark" : "light");
33
+ }, [isDark]);
34
+ return { appearance, setAppearance: setChosen };
35
+ };
36
+ //# sourceMappingURL=useAppearance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAppearance.js","sourceRoot":"","sources":["../../../src/shell/useAppearance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,wFAAwF;AACxF,MAAM,CAAC,MAAM,oBAAoB,GAAG,2BAA2B,CAAC;AAEhE,iFAAiF;AACjF,MAAM,gBAAgB,GAAG,CAAC,MAAqB,EAA0B,EAAE,CACzE,WAAW,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC;AAU1D;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,GAAoB,EAAE;IACjD,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,YAAY,EAAE,gBAAgB,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC9F,MAAM,UAAU,GAAG,MAAM,IAAI,SAAS,CAAC,UAAU,CAAC;IAClD,MAAM,YAAY,GAAG,aAAa,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,UAAU,KAAK,MAAM,IAAI,CAAC,UAAU,KAAK,QAAQ,IAAI,YAAY,CAAC,CAAC;IAClF,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IACzF,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACb,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;AAClD,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type ControlKeys } from "../controlKeys.ts";
2
+ import type { FixedView } from "../storyGlobals.ts";
3
+ import type { ViewState } from "../viewState.ts";
4
+ /** What the keys read and change. */
5
+ export type ControlKeysInput = {
6
+ /** The keys in use. */
7
+ readonly keys: ControlKeys;
8
+ /** The view shown. */
9
+ readonly view: ViewState;
10
+ /** Called with the changed view. */
11
+ readonly onViewChange: (view: ViewState) => void;
12
+ /** What the shown story fixes of the view. */
13
+ readonly fixed: FixedView;
14
+ /** Whether a story's page is shown. */
15
+ readonly isStoryPage: boolean;
16
+ };
17
+ /**
18
+ * Listens to the controls' keys.
19
+ *
20
+ * @param input - the keys, the view and its setter, what the story fixes and the page shown.
21
+ */
22
+ export declare const useControlKeys: (input: ControlKeysInput) => void;
23
+ //# sourceMappingURL=useControlKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControlKeys.d.ts","sourceRoot":"","sources":["../../../src/shell/useControlKeys.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,qCAAqC;AACrC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,uBAAuB;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,oCAAoC;IACpC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACjD,8CAA8C;IAC9C,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,uCAAuC;IACvC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,GAAI,OAAO,gBAAgB,KAAG,IAuBxD,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Listens to the keys that cycle the toolbar's controls: a control's key moves it to its next value (Shift to the
3
+ * one before), anywhere in the shell but while typing.
4
+ *
5
+ * @module
6
+ */
7
+ import { useEffect, useRef } from "react";
8
+ import { pressedControl } from "../controlKeys.js";
9
+ import { useCatalogue } from "./catalogueContext.js";
10
+ import { cycledView } from "./controlCycle.js";
11
+ import { isTyping } from "./keyboard.js";
12
+ /**
13
+ * Listens to the controls' keys.
14
+ *
15
+ * @param input - the keys, the view and its setter, what the story fixes and the page shown.
16
+ */
17
+ export const useControlKeys = (input) => {
18
+ const catalogue = useCatalogue();
19
+ // the latest view and keys, without listening again on every render
20
+ const latest = useRef(input);
21
+ latest.current = input;
22
+ useEffect(() => {
23
+ const cycle = (event) => {
24
+ if (isTyping(event.target))
25
+ return;
26
+ const { keys, view, onViewChange, fixed, isStoryPage } = latest.current;
27
+ const pressed = pressedControl(keys, {
28
+ key: event.key,
29
+ shiftKey: event.shiftKey,
30
+ hasModifier: event.metaKey || event.ctrlKey || event.altKey
31
+ });
32
+ if (pressed === undefined)
33
+ return;
34
+ const changed = cycledView(view, pressed.id, pressed.step, catalogue, fixed, isStoryPage);
35
+ if (changed === undefined)
36
+ return;
37
+ event.preventDefault();
38
+ onViewChange(changed);
39
+ };
40
+ document.addEventListener("keydown", cycle);
41
+ return () => document.removeEventListener("keydown", cycle);
42
+ }, [catalogue]);
43
+ };
44
+ //# sourceMappingURL=useControlKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useControlKeys.js","sourceRoot":"","sources":["../../../src/shell/useControlKeys.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAgBzC;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAuB,EAAQ,EAAE;IAC9D,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,oEAAoE;IACpE,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC3C,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;gBAAE,OAAO;YACnC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;YACxE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,EAAE;gBACnC,GAAG,EAAE,KAAK,CAAC,GAAG;gBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,WAAW,EAAE,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM;aAC5D,CAAC,CAAC;YACH,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;YAC1F,IAAI,OAAO,KAAK,SAAS;gBAAE,OAAO;YAClC,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC,CAAC;QACF,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC5C,OAAO,GAAS,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpE,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * A part that folds open and shut animated (a sidebar family's components): its height grows from nothing to its
3
+ * content's and back, and it stays drawn until its closing has played.
4
+ *
5
+ * @remarks
6
+ * A fold changed again while it moves starts from the height it has then, so a quick open and close never jumps. A
7
+ * fold that must not move (a search opening every family it finds something in, a reduced-motion preference) opens
8
+ * and shuts at once.
9
+ *
10
+ * @module
11
+ */
12
+ import { type RefObject } from "react";
13
+ /** What a folding part wires to its element. */
14
+ export type Fold = {
15
+ /** Whether its content is drawn: open, or still shutting. */
16
+ readonly isDrawn: boolean;
17
+ /** The element whose height moves. */
18
+ readonly ref: RefObject<HTMLDivElement | null>;
19
+ };
20
+ /**
21
+ * A part that folds open and shut.
22
+ *
23
+ * @param isOpen - whether it is open.
24
+ * @param isInstant - whether it opens and shuts at once this time.
25
+ */
26
+ export declare const useFold: (isOpen: boolean, isInstant: boolean) => Fold;
27
+ //# sourceMappingURL=useFold.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFold.d.ts","sourceRoot":"","sources":["../../../src/shell/useFold.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,KAAK,SAAS,EAAqC,MAAM,OAAO,CAAC;AAQ1E,gDAAgD;AAChD,MAAM,MAAM,IAAI,GAAG;IACjB,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,sCAAsC;IACtC,QAAQ,CAAC,GAAG,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;CAChD,CAAC;AA+BF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,QAAQ,OAAO,EAAE,WAAW,OAAO,KAAG,IAoC7D,CAAC"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * A part that folds open and shut animated (a sidebar family's components): its height grows from nothing to its
3
+ * content's and back, and it stays drawn until its closing has played.
4
+ *
5
+ * @remarks
6
+ * A fold changed again while it moves starts from the height it has then, so a quick open and close never jumps. A
7
+ * fold that must not move (a search opening every family it finds something in, a reduced-motion preference) opens
8
+ * and shuts at once.
9
+ *
10
+ * @module
11
+ */
12
+ import { useLayoutEffect, useRef, useState } from "react";
13
+ /** How long a fold takes to open, in ms. */
14
+ const OPEN_MS = 200;
15
+ /** How long it takes to shut, in ms: shorter, as a thing going away. */
16
+ const SHUT_MS = 160;
17
+ /**
18
+ * The height a fold starts its move from: the height a running move left it at, else shut or its content's.
19
+ *
20
+ * @param element - the folding element.
21
+ * @param isMoving - whether a move is running.
22
+ * @param isOpening - whether it opens.
23
+ */
24
+ const startHeight = (element, isMoving, isOpening) => {
25
+ if (isMoving)
26
+ return element.offsetHeight;
27
+ return isOpening ? 0 : element.scrollHeight;
28
+ };
29
+ /**
30
+ * Moves a fold's height to open or shut, clipped while it moves so its items' focus rings show the rest of the time.
31
+ *
32
+ * @param element - the folding element.
33
+ * @param from - the height it starts from, in CSS px.
34
+ * @param isOpening - whether it opens.
35
+ */
36
+ const moveFold = (element, from, isOpening) => {
37
+ element.style.overflow = "hidden";
38
+ return element.animate([{ height: `${from}px` }, { height: `${isOpening ? element.scrollHeight : 0}px` }], isOpening
39
+ ? { duration: OPEN_MS, easing: "cubic-bezier(0.22, 1, 0.36, 1)" }
40
+ : { duration: SHUT_MS, easing: "cubic-bezier(0.4, 0, 1, 1)" });
41
+ };
42
+ /**
43
+ * A part that folds open and shut.
44
+ *
45
+ * @param isOpen - whether it is open.
46
+ * @param isInstant - whether it opens and shuts at once this time.
47
+ */
48
+ export const useFold = (isOpen, isInstant) => {
49
+ const ref = useRef(null);
50
+ const [isDrawn, setIsDrawn] = useState(isOpen);
51
+ const running = useRef(undefined);
52
+ const isFirst = useRef(true);
53
+ // an opening part is drawn at once, so its content can be measured as it grows
54
+ if (isOpen && !isDrawn)
55
+ setIsDrawn(true);
56
+ // biome-ignore lint/correctness/useExhaustiveDependencies: it moves when it opens or shuts, not when told how
57
+ useLayoutEffect(() => {
58
+ const element = ref.current;
59
+ if (isFirst.current || element === null) {
60
+ isFirst.current = false;
61
+ return;
62
+ }
63
+ const from = startHeight(element, running.current !== undefined, isOpen);
64
+ running.current?.cancel();
65
+ running.current = undefined;
66
+ if (isInstant || window.matchMedia("(prefers-reduced-motion: reduce)").matches) {
67
+ if (!isOpen)
68
+ setIsDrawn(false);
69
+ return;
70
+ }
71
+ const animation = moveFold(element, from, isOpen);
72
+ running.current = animation;
73
+ animation.finished
74
+ .then(() => {
75
+ if (running.current !== animation)
76
+ return;
77
+ running.current = undefined;
78
+ element.style.overflow = "";
79
+ if (!isOpen)
80
+ setIsDrawn(false);
81
+ })
82
+ // a move cancelled by the next one leaves the rest to it
83
+ .catch(() => undefined);
84
+ }, [isOpen]);
85
+ return { isDrawn, ref };
86
+ };
87
+ //# sourceMappingURL=useFold.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFold.js","sourceRoot":"","sources":["../../../src/shell/useFold.ts"],"names":[],"mappings":"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"}
@@ -35,6 +35,8 @@ export type FrameHandlers = {
35
35
  readonly onPlay?: (storyId: string, trace: PlayTrace) => void;
36
36
  /** An accessibility check is over: the rules broken, or why it could not run; none where nothing asks for one. */
37
37
  readonly onChecked?: (result: CheckResult) => void;
38
+ /** A frame measured its spills again (while the stage asks for them); none where nothing shows them. */
39
+ readonly onSpills?: (storyId: string, count: number) => void;
38
40
  };
39
41
  /** An accessibility check's result, as a frame reported it. */
40
42
  export type CheckResult = {
@@ -1 +1 @@
1
- {"version":3,"file":"useFrameMessages.d.ts","sourceRoot":"","sources":["../../../src/shell/useFrameMessages.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAAC;AAE9E,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EAAE,MAAM,CAAC,GAAG;IACxF,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qCAAqC;AACrC,MAAM,MAAM,YAAY,GAAG;IACzB,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,uGAAuG;IACvG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,aAAa,GAAG;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACjE,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9D,kHAAkH;IAClH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;CACpD,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAsEzD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,aAAa,KAAG,YA2B1D,CAAC"}
1
+ {"version":3,"file":"useFrameMessages.d.ts","sourceRoot":"","sources":["../../../src/shell/useFrameMessages.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAAC,CAAC;AAE9E,+CAA+C;AAC/C,MAAM,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC,EAAE,MAAM,CAAC,GAAG;IACxF,8CAA8C;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,qCAAqC;AACrC,MAAM,MAAM,YAAY,GAAG;IACzB,wDAAwD;IACxD,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,kFAAkF;IAClF,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9C,uGAAuG;IACvG,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACvC,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,aAAa,GAAG;IAC1B,kGAAkG;IAClG,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IACjE,2BAA2B;IAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,yEAAyE;IACzE,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,+EAA+E;IAC/E,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC9D,kHAAkH;IAClH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,CAAC;IACnD,wGAAwG;IACxG,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9D,CAAC;AAEF,+DAA+D;AAC/D,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,SAAS,EAAE,CAAA;CAAE,GACvE;IAAE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAyEzD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAI,UAAU,aAAa,KAAG,YA2B1D,CAAC"}
@@ -43,6 +43,9 @@ const onFrameMessage = (message, frame, targets) => {
43
43
  case "forgebook:check-error":
44
44
  handlers.onChecked?.({ storyId: message.storyId, error: message.message });
45
45
  return;
46
+ case "forgebook:spills":
47
+ handlers.onSpills?.(message.storyId, message.count);
48
+ return;
46
49
  case "forgebook:call":
47
50
  handlers.onCall({
48
51
  storyId: message.storyId,
@@ -1 +1 @@
1
- {"version":3,"file":"useFrameMessages.js","sourceRoot":"","sources":["../../../src/shell/useFrameMessages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFrameMessages.js","sourceRoot":"","sources":["../../../src/shell/useFrameMessages.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * An example's box opened to fill the page, over it, without leaving it: the box grows from where it sits to the
3
+ * page's size and shrinks back into its place, animated; Escape, a press on the shade or its button brings it back.
4
+ *
5
+ * @remarks
6
+ * The box is never moved in the page: an iframe moved to another parent loads again, and the story would lose its
7
+ * state. It is drawn fixed over the page instead, and a slot of its height keeps its place in the list, so nothing
8
+ * under it moves. Its size and place are animated (not scaled), so the story lays itself out at each size as it would
9
+ * in a window being resized. A reduced-motion preference opens and closes it at once. The address does not remember
10
+ * it: it is a moment's look, not a page.
11
+ *
12
+ * @module
13
+ */
14
+ import { type RefObject } from "react";
15
+ /** What an example wires to its box, its slot and its shade. */
16
+ export type FullPage = {
17
+ /** Whether the box fills the page: what its button's state and a press on it read. */
18
+ readonly isFull: boolean;
19
+ /** Whether it is drawn over the page: filling it, or still going back to its place. */
20
+ readonly isOver: boolean;
21
+ /** The height the slot keeps in the list while the box is over the page, in CSS px. */
22
+ readonly slotHeight: number;
23
+ /** The box. */
24
+ readonly boxRef: RefObject<HTMLDivElement | null>;
25
+ /** The slot that keeps the box's place. */
26
+ readonly slotRef: RefObject<HTMLDivElement | null>;
27
+ /** The shade under the box. */
28
+ readonly shadeRef: RefObject<HTMLDivElement | null>;
29
+ /** The box's stage, whose room the story fills while the box is over the page. */
30
+ readonly stageRef: RefObject<HTMLDivElement | null>;
31
+ /** The stage's height while the box is over the page, in CSS px: the story is drawn at least this tall. */
32
+ readonly stageHeight: number | undefined;
33
+ /**
34
+ * Opens the box to fill the page, or brings it back.
35
+ *
36
+ * @param press - the press that asked, when one did: a press by the pointer (`detail` above 0) leaves no focus ring
37
+ * on the button when Escape closes the box later.
38
+ */
39
+ readonly toggle: (press?: {
40
+ readonly detail: number;
41
+ }) => void;
42
+ };
43
+ /** An example's box opened to fill the page. */
44
+ export declare const useFullPage: () => FullPage;
45
+ //# sourceMappingURL=useFullPage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFullPage.d.ts","sourceRoot":"","sources":["../../../src/shell/useFullPage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,KAAK,SAAS,EAAgD,MAAM,OAAO,CAAC;AAWrF,gEAAgE;AAChE,MAAM,MAAM,QAAQ,GAAG;IACrB,sFAAsF;IACtF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,uFAAuF;IACvF,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,eAAe;IACf,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAClD,2CAA2C;IAC3C,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACnD,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpD,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IACpD,2GAA2G;IAC3G,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAChE,CAAC;AAaF,gDAAgD;AAChD,eAAO,MAAM,WAAW,QAAO,QAyH9B,CAAC"}