forgebook 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (493) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +136 -2
  3. package/dist/bin/forgebook/catalogueVite.d.ts +16 -0
  4. package/dist/bin/forgebook/catalogueVite.d.ts.map +1 -0
  5. package/dist/bin/forgebook/catalogueVite.js +15 -0
  6. package/dist/bin/forgebook/catalogueVite.js.map +1 -0
  7. package/dist/bin/forgebook/forgebook.d.mts +3 -0
  8. package/dist/bin/forgebook/forgebook.d.mts.map +1 -0
  9. package/dist/bin/forgebook/forgebook.mjs +93 -0
  10. package/dist/bin/forgebook/forgebook.mjs.map +1 -0
  11. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts +90 -0
  12. package/dist/bin/forgebook-docs/catalogueDocs.types.d.ts.map +1 -0
  13. package/dist/bin/forgebook-docs/catalogueDocs.types.js +1 -0
  14. package/dist/bin/forgebook-docs/catalogueDocs.types.js.map +1 -0
  15. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts +9 -0
  16. package/dist/bin/forgebook-docs/catalogueMarkdown.d.ts.map +1 -0
  17. package/dist/bin/forgebook-docs/catalogueMarkdown.js +132 -0
  18. package/dist/bin/forgebook-docs/catalogueMarkdown.js.map +1 -0
  19. package/dist/bin/forgebook-docs/collectDocs.d.ts +17 -0
  20. package/dist/bin/forgebook-docs/collectDocs.d.ts.map +1 -0
  21. package/dist/bin/forgebook-docs/collectDocs.js +115 -0
  22. package/dist/bin/forgebook-docs/collectDocs.js.map +1 -0
  23. package/dist/bin/forgebook-docs/forgebook-docs.d.mts +3 -0
  24. package/dist/bin/forgebook-docs/forgebook-docs.d.mts.map +1 -0
  25. package/dist/bin/forgebook-docs/forgebook-docs.mjs +115 -0
  26. package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +1 -0
  27. package/dist/bin/forgebook-docs/moduleDocs.d.ts +9 -0
  28. package/dist/bin/forgebook-docs/moduleDocs.d.ts.map +1 -0
  29. package/dist/bin/forgebook-docs/moduleDocs.js +62 -0
  30. package/dist/bin/forgebook-docs/moduleDocs.js.map +1 -0
  31. package/dist/bin/forgebook-docs/sassDocs.d.ts +20 -0
  32. package/dist/bin/forgebook-docs/sassDocs.d.ts.map +1 -0
  33. package/dist/bin/forgebook-docs/sassDocs.js +77 -0
  34. package/dist/bin/forgebook-docs/sassDocs.js.map +1 -0
  35. package/dist/bin/forgebook-texts/forgebook-texts.d.mts +3 -0
  36. package/dist/bin/forgebook-texts/forgebook-texts.d.mts.map +1 -0
  37. package/dist/bin/forgebook-texts/forgebook-texts.mjs +94 -0
  38. package/dist/bin/forgebook-texts/forgebook-texts.mjs.map +1 -0
  39. package/dist/bin/forgebook-texts/storyTextsReport.d.ts +26 -0
  40. package/dist/bin/forgebook-texts/storyTextsReport.d.ts.map +1 -0
  41. package/dist/bin/forgebook-texts/storyTextsReport.js +35 -0
  42. package/dist/bin/forgebook-texts/storyTextsReport.js.map +1 -0
  43. package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts +25 -0
  44. package/dist/bin/forgebook-texts/storyTextsReport.types.d.ts.map +1 -0
  45. package/dist/bin/forgebook-texts/storyTextsReport.types.js +7 -0
  46. package/dist/bin/forgebook-texts/storyTextsReport.types.js.map +1 -0
  47. package/dist/src/a11y.d.ts +28 -0
  48. package/dist/src/a11y.d.ts.map +1 -0
  49. package/dist/src/a11y.js +29 -0
  50. package/dist/src/a11y.js.map +1 -0
  51. package/dist/src/argTypes.d.ts +114 -0
  52. package/dist/src/argTypes.d.ts.map +1 -0
  53. package/dist/src/argTypes.js +254 -0
  54. package/dist/src/argTypes.js.map +1 -0
  55. package/dist/src/backdrops.d.ts +88 -0
  56. package/dist/src/backdrops.d.ts.map +1 -0
  57. package/dist/src/backdrops.js +202 -0
  58. package/dist/src/backdrops.js.map +1 -0
  59. package/dist/src/catalogue.d.ts +120 -0
  60. package/dist/src/catalogue.d.ts.map +1 -0
  61. package/dist/src/catalogue.js +80 -0
  62. package/dist/src/catalogue.js.map +1 -0
  63. package/dist/src/componentDocs.d.ts +98 -0
  64. package/dist/src/componentDocs.d.ts.map +1 -0
  65. package/dist/src/componentDocs.js +47 -0
  66. package/dist/src/componentDocs.js.map +1 -0
  67. package/dist/src/frame/checkStory.d.ts +20 -0
  68. package/dist/src/frame/checkStory.d.ts.map +1 -0
  69. package/dist/src/frame/checkStory.js +31 -0
  70. package/dist/src/frame/checkStory.js.map +1 -0
  71. package/dist/src/frame/frame.css +51 -0
  72. package/dist/src/frame/frameClock.d.ts +53 -0
  73. package/dist/src/frame/frameClock.d.ts.map +1 -0
  74. package/dist/src/frame/frameClock.js +80 -0
  75. package/dist/src/frame/frameClock.js.map +1 -0
  76. package/dist/src/frame/frameStatus.d.ts +8 -0
  77. package/dist/src/frame/frameStatus.d.ts.map +1 -0
  78. package/dist/src/frame/frameStatus.js +8 -0
  79. package/dist/src/frame/frameStatus.js.map +1 -0
  80. package/dist/src/frame/frameView.d.ts +33 -0
  81. package/dist/src/frame/frameView.d.ts.map +1 -0
  82. package/dist/src/frame/frameView.js +134 -0
  83. package/dist/src/frame/frameView.js.map +1 -0
  84. package/dist/src/frame/matrixLayout.d.ts +36 -0
  85. package/dist/src/frame/matrixLayout.d.ts.map +1 -0
  86. package/dist/src/frame/matrixLayout.js +87 -0
  87. package/dist/src/frame/matrixLayout.js.map +1 -0
  88. package/dist/src/frame/measureTools.d.ts +24 -0
  89. package/dist/src/frame/measureTools.d.ts.map +1 -0
  90. package/dist/src/frame/measureTools.js +141 -0
  91. package/dist/src/frame/measureTools.js.map +1 -0
  92. package/dist/src/frame/mountFrame.d.ts +47 -0
  93. package/dist/src/frame/mountFrame.d.ts.map +1 -0
  94. package/dist/src/frame/mountFrame.js +229 -0
  95. package/dist/src/frame/mountFrame.js.map +1 -0
  96. package/dist/src/frame/playStory.d.ts +40 -0
  97. package/dist/src/frame/playStory.d.ts.map +1 -0
  98. package/dist/src/frame/playStory.js +55 -0
  99. package/dist/src/frame/playStory.js.map +1 -0
  100. package/dist/src/frame/renderer.d.ts +85 -0
  101. package/dist/src/frame/renderer.d.ts.map +1 -0
  102. package/dist/src/frame/renderer.js +18 -0
  103. package/dist/src/frame/renderer.js.map +1 -0
  104. package/dist/src/frame/settle.d.ts +24 -0
  105. package/dist/src/frame/settle.d.ts.map +1 -0
  106. package/dist/src/frame/settle.js +25 -0
  107. package/dist/src/frame/settle.js.map +1 -0
  108. package/dist/src/frame/staleModule.d.ts +40 -0
  109. package/dist/src/frame/staleModule.d.ts.map +1 -0
  110. package/dist/src/frame/staleModule.js +74 -0
  111. package/dist/src/frame/staleModule.js.map +1 -0
  112. package/dist/src/frame/storyCanvas.d.ts +21 -0
  113. package/dist/src/frame/storyCanvas.d.ts.map +1 -0
  114. package/dist/src/frame/storyCanvas.js +30 -0
  115. package/dist/src/frame/storyCanvas.js.map +1 -0
  116. package/dist/src/frame/storyHooks.d.ts +31 -0
  117. package/dist/src/frame/storyHooks.d.ts.map +1 -0
  118. package/dist/src/frame/storyHooks.js +59 -0
  119. package/dist/src/frame/storyHooks.js.map +1 -0
  120. package/dist/src/frame/storyModule.d.ts +104 -0
  121. package/dist/src/frame/storyModule.d.ts.map +1 -0
  122. package/dist/src/frame/storyModule.js +205 -0
  123. package/dist/src/frame/storyModule.js.map +1 -0
  124. package/dist/src/frame/storyRun.d.ts +96 -0
  125. package/dist/src/frame/storyRun.d.ts.map +1 -0
  126. package/dist/src/frame/storyRun.js +318 -0
  127. package/dist/src/frame/storyRun.js.map +1 -0
  128. package/dist/src/languages.d.ts +15 -0
  129. package/dist/src/languages.d.ts.map +1 -0
  130. package/dist/src/languages.js +8 -0
  131. package/dist/src/languages.js.map +1 -0
  132. package/dist/src/matrix.d.ts +56 -0
  133. package/dist/src/matrix.d.ts.map +1 -0
  134. package/dist/src/matrix.js +61 -0
  135. package/dist/src/matrix.js.map +1 -0
  136. package/dist/src/messages.d.ts +203 -0
  137. package/dist/src/messages.d.ts.map +1 -0
  138. package/dist/src/messages.js +193 -0
  139. package/dist/src/messages.js.map +1 -0
  140. package/dist/src/namedValues.d.ts +38 -0
  141. package/dist/src/namedValues.d.ts.map +1 -0
  142. package/dist/src/namedValues.js +48 -0
  143. package/dist/src/namedValues.js.map +1 -0
  144. package/dist/src/pageConfig.d.ts +23 -0
  145. package/dist/src/pageConfig.d.ts.map +1 -0
  146. package/dist/src/pageConfig.js +1 -0
  147. package/dist/src/pageConfig.js.map +1 -0
  148. package/dist/src/playTrace.d.ts +41 -0
  149. package/dist/src/playTrace.d.ts.map +1 -0
  150. package/dist/src/playTrace.js +35 -0
  151. package/dist/src/playTrace.js.map +1 -0
  152. package/dist/src/shell/A11yTab.d.ts +44 -0
  153. package/dist/src/shell/A11yTab.d.ts.map +1 -0
  154. package/dist/src/shell/A11yTab.js +30 -0
  155. package/dist/src/shell/A11yTab.js.map +1 -0
  156. package/dist/src/shell/ApiReference.d.ts +18 -0
  157. package/dist/src/shell/ApiReference.d.ts.map +1 -0
  158. package/dist/src/shell/ApiReference.js +41 -0
  159. package/dist/src/shell/ApiReference.js.map +1 -0
  160. package/dist/src/shell/ClockControls.d.ts +43 -0
  161. package/dist/src/shell/ClockControls.d.ts.map +1 -0
  162. package/dist/src/shell/ClockControls.js +53 -0
  163. package/dist/src/shell/ClockControls.js.map +1 -0
  164. package/dist/src/shell/Code.d.ts +16 -0
  165. package/dist/src/shell/Code.d.ts.map +1 -0
  166. package/dist/src/shell/Code.js +9 -0
  167. package/dist/src/shell/Code.js.map +1 -0
  168. package/dist/src/shell/CodeTab.d.ts +17 -0
  169. package/dist/src/shell/CodeTab.d.ts.map +1 -0
  170. package/dist/src/shell/CodeTab.js +17 -0
  171. package/dist/src/shell/CodeTab.js.map +1 -0
  172. package/dist/src/shell/CodeText.d.ts +16 -0
  173. package/dist/src/shell/CodeText.d.ts.map +1 -0
  174. package/dist/src/shell/CodeText.js +10 -0
  175. package/dist/src/shell/CodeText.js.map +1 -0
  176. package/dist/src/shell/ComponentPage.d.ts +38 -0
  177. package/dist/src/shell/ComponentPage.d.ts.map +1 -0
  178. package/dist/src/shell/ComponentPage.js +146 -0
  179. package/dist/src/shell/ComponentPage.js.map +1 -0
  180. package/dist/src/shell/Dock.d.ts +42 -0
  181. package/dist/src/shell/Dock.d.ts.map +1 -0
  182. package/dist/src/shell/Dock.js +90 -0
  183. package/dist/src/shell/Dock.js.map +1 -0
  184. package/dist/src/shell/EventsTab.d.ts +25 -0
  185. package/dist/src/shell/EventsTab.d.ts.map +1 -0
  186. package/dist/src/shell/EventsTab.js +26 -0
  187. package/dist/src/shell/EventsTab.js.map +1 -0
  188. package/dist/src/shell/FrameView.d.ts +49 -0
  189. package/dist/src/shell/FrameView.d.ts.map +1 -0
  190. package/dist/src/shell/FrameView.js +29 -0
  191. package/dist/src/shell/FrameView.js.map +1 -0
  192. package/dist/src/shell/HomePage.d.ts +39 -0
  193. package/dist/src/shell/HomePage.d.ts.map +1 -0
  194. package/dist/src/shell/HomePage.js +85 -0
  195. package/dist/src/shell/HomePage.js.map +1 -0
  196. package/dist/src/shell/InteractionsTab.d.ts +28 -0
  197. package/dist/src/shell/InteractionsTab.d.ts.map +1 -0
  198. package/dist/src/shell/InteractionsTab.js +17 -0
  199. package/dist/src/shell/InteractionsTab.js.map +1 -0
  200. package/dist/src/shell/MatrixPicker.d.ts +24 -0
  201. package/dist/src/shell/MatrixPicker.d.ts.map +1 -0
  202. package/dist/src/shell/MatrixPicker.js +29 -0
  203. package/dist/src/shell/MatrixPicker.js.map +1 -0
  204. package/dist/src/shell/PackageHtml.d.ts +17 -0
  205. package/dist/src/shell/PackageHtml.d.ts.map +1 -0
  206. package/dist/src/shell/PackageHtml.js +13 -0
  207. package/dist/src/shell/PackageHtml.js.map +1 -0
  208. package/dist/src/shell/PartsTab.d.ts +23 -0
  209. package/dist/src/shell/PartsTab.d.ts.map +1 -0
  210. package/dist/src/shell/PartsTab.js +23 -0
  211. package/dist/src/shell/PartsTab.js.map +1 -0
  212. package/dist/src/shell/PropFields.d.ts +31 -0
  213. package/dist/src/shell/PropFields.d.ts.map +1 -0
  214. package/dist/src/shell/PropFields.js +81 -0
  215. package/dist/src/shell/PropFields.js.map +1 -0
  216. package/dist/src/shell/PropsTab.d.ts +45 -0
  217. package/dist/src/shell/PropsTab.d.ts.map +1 -0
  218. package/dist/src/shell/PropsTab.js +81 -0
  219. package/dist/src/shell/PropsTab.js.map +1 -0
  220. package/dist/src/shell/SchemeSwitches.d.ts +24 -0
  221. package/dist/src/shell/SchemeSwitches.d.ts.map +1 -0
  222. package/dist/src/shell/SchemeSwitches.js +36 -0
  223. package/dist/src/shell/SchemeSwitches.js.map +1 -0
  224. package/dist/src/shell/Segmented.d.ts +41 -0
  225. package/dist/src/shell/Segmented.d.ts.map +1 -0
  226. package/dist/src/shell/Segmented.js +19 -0
  227. package/dist/src/shell/Segmented.js.map +1 -0
  228. package/dist/src/shell/Shell.d.ts +49 -0
  229. package/dist/src/shell/Shell.d.ts.map +1 -0
  230. package/dist/src/shell/Shell.js +279 -0
  231. package/dist/src/shell/Shell.js.map +1 -0
  232. package/dist/src/shell/Sidebar.d.ts +52 -0
  233. package/dist/src/shell/Sidebar.d.ts.map +1 -0
  234. package/dist/src/shell/Sidebar.js +132 -0
  235. package/dist/src/shell/Sidebar.js.map +1 -0
  236. package/dist/src/shell/SidebarHandle.d.ts +29 -0
  237. package/dist/src/shell/SidebarHandle.d.ts.map +1 -0
  238. package/dist/src/shell/SidebarHandle.js +46 -0
  239. package/dist/src/shell/SidebarHandle.js.map +1 -0
  240. package/dist/src/shell/Stage.d.ts +68 -0
  241. package/dist/src/shell/Stage.d.ts.map +1 -0
  242. package/dist/src/shell/Stage.js +218 -0
  243. package/dist/src/shell/Stage.js.map +1 -0
  244. package/dist/src/shell/StageTools.d.ts +27 -0
  245. package/dist/src/shell/StageTools.d.ts.map +1 -0
  246. package/dist/src/shell/StageTools.js +34 -0
  247. package/dist/src/shell/StageTools.js.map +1 -0
  248. package/dist/src/shell/StageViewport.d.ts +47 -0
  249. package/dist/src/shell/StageViewport.d.ts.map +1 -0
  250. package/dist/src/shell/StageViewport.js +174 -0
  251. package/dist/src/shell/StageViewport.js.map +1 -0
  252. package/dist/src/shell/StoryCodeBlock.d.ts +35 -0
  253. package/dist/src/shell/StoryCodeBlock.d.ts.map +1 -0
  254. package/dist/src/shell/StoryCodeBlock.js +27 -0
  255. package/dist/src/shell/StoryCodeBlock.js.map +1 -0
  256. package/dist/src/shell/StoryPicker.d.ts +26 -0
  257. package/dist/src/shell/StoryPicker.d.ts.map +1 -0
  258. package/dist/src/shell/StoryPicker.js +32 -0
  259. package/dist/src/shell/StoryPicker.js.map +1 -0
  260. package/dist/src/shell/Toolbar.d.ts +40 -0
  261. package/dist/src/shell/Toolbar.d.ts.map +1 -0
  262. package/dist/src/shell/Toolbar.js +125 -0
  263. package/dist/src/shell/Toolbar.js.map +1 -0
  264. package/dist/src/shell/WidthField.d.ts +24 -0
  265. package/dist/src/shell/WidthField.d.ts.map +1 -0
  266. package/dist/src/shell/WidthField.js +40 -0
  267. package/dist/src/shell/WidthField.js.map +1 -0
  268. package/dist/src/shell/catalogueContext.d.ts +6 -0
  269. package/dist/src/shell/catalogueContext.d.ts.map +1 -0
  270. package/dist/src/shell/catalogueContext.js +14 -0
  271. package/dist/src/shell/catalogueContext.js.map +1 -0
  272. package/dist/src/shell/codeTokens.d.ts +23 -0
  273. package/dist/src/shell/codeTokens.d.ts.map +1 -0
  274. package/dist/src/shell/codeTokens.js +48 -0
  275. package/dist/src/shell/codeTokens.js.map +1 -0
  276. package/dist/src/shell/codeWriter.d.ts +6 -0
  277. package/dist/src/shell/codeWriter.d.ts.map +1 -0
  278. package/dist/src/shell/codeWriter.js +14 -0
  279. package/dist/src/shell/codeWriter.js.map +1 -0
  280. package/dist/src/shell/compareVariants.d.ts +35 -0
  281. package/dist/src/shell/compareVariants.d.ts.map +1 -0
  282. package/dist/src/shell/compareVariants.js +68 -0
  283. package/dist/src/shell/compareVariants.js.map +1 -0
  284. package/dist/src/shell/dockTabs.d.ts +63 -0
  285. package/dist/src/shell/dockTabs.d.ts.map +1 -0
  286. package/dist/src/shell/dockTabs.js +140 -0
  287. package/dist/src/shell/dockTabs.js.map +1 -0
  288. package/dist/src/shell/icons.d.ts +47 -0
  289. package/dist/src/shell/icons.d.ts.map +1 -0
  290. package/dist/src/shell/icons.js +36 -0
  291. package/dist/src/shell/icons.js.map +1 -0
  292. package/dist/src/shell/keyboard.d.ts +35 -0
  293. package/dist/src/shell/keyboard.d.ts.map +1 -0
  294. package/dist/src/shell/keyboard.js +51 -0
  295. package/dist/src/shell/keyboard.js.map +1 -0
  296. package/dist/src/shell/mountShell.d.ts +22 -0
  297. package/dist/src/shell/mountShell.d.ts.map +1 -0
  298. package/dist/src/shell/mountShell.js +39 -0
  299. package/dist/src/shell/mountShell.js.map +1 -0
  300. package/dist/src/shell/shell.css +1831 -0
  301. package/dist/src/shell/strings.d.ts +184 -0
  302. package/dist/src/shell/strings.d.ts.map +1 -0
  303. package/dist/src/shell/strings.js +188 -0
  304. package/dist/src/shell/strings.js.map +1 -0
  305. package/dist/src/shell/switchView.d.ts +23 -0
  306. package/dist/src/shell/switchView.d.ts.map +1 -0
  307. package/dist/src/shell/switchView.js +19 -0
  308. package/dist/src/shell/switchView.js.map +1 -0
  309. package/dist/src/shell/treeSearch.d.ts +35 -0
  310. package/dist/src/shell/treeSearch.d.ts.map +1 -0
  311. package/dist/src/shell/treeSearch.js +60 -0
  312. package/dist/src/shell/treeSearch.js.map +1 -0
  313. package/dist/src/shell/useComponentDocs.d.ts +16 -0
  314. package/dist/src/shell/useComponentDocs.d.ts.map +1 -0
  315. package/dist/src/shell/useComponentDocs.js +25 -0
  316. package/dist/src/shell/useComponentDocs.js.map +1 -0
  317. package/dist/src/shell/useCopy.d.ts +10 -0
  318. package/dist/src/shell/useCopy.d.ts.map +1 -0
  319. package/dist/src/shell/useCopy.js +23 -0
  320. package/dist/src/shell/useCopy.js.map +1 -0
  321. package/dist/src/shell/useFrameMessages.d.ts +54 -0
  322. package/dist/src/shell/useFrameMessages.d.ts.map +1 -0
  323. package/dist/src/shell/useFrameMessages.js +90 -0
  324. package/dist/src/shell/useFrameMessages.js.map +1 -0
  325. package/dist/src/shell/useFrameQueue.d.ts +29 -0
  326. package/dist/src/shell/useFrameQueue.d.ts.map +1 -0
  327. package/dist/src/shell/useFrameQueue.js +72 -0
  328. package/dist/src/shell/useFrameQueue.js.map +1 -0
  329. package/dist/src/shell/useLiveView.d.ts +29 -0
  330. package/dist/src/shell/useLiveView.d.ts.map +1 -0
  331. package/dist/src/shell/useLiveView.js +51 -0
  332. package/dist/src/shell/useLiveView.js.map +1 -0
  333. package/dist/src/shell/useLoaded.d.ts +20 -0
  334. package/dist/src/shell/useLoaded.d.ts.map +1 -0
  335. package/dist/src/shell/useLoaded.js +40 -0
  336. package/dist/src/shell/useLoaded.js.map +1 -0
  337. package/dist/src/shell/usePageDoc.d.ts +20 -0
  338. package/dist/src/shell/usePageDoc.d.ts.map +1 -0
  339. package/dist/src/shell/usePageDoc.js +21 -0
  340. package/dist/src/shell/usePageDoc.js.map +1 -0
  341. package/dist/src/shell/usePopover.d.ts +23 -0
  342. package/dist/src/shell/usePopover.d.ts.map +1 -0
  343. package/dist/src/shell/usePopover.js +39 -0
  344. package/dist/src/shell/usePopover.js.map +1 -0
  345. package/dist/src/shell/useRecentPages.d.ts +21 -0
  346. package/dist/src/shell/useRecentPages.d.ts.map +1 -0
  347. package/dist/src/shell/useRecentPages.js +62 -0
  348. package/dist/src/shell/useRecentPages.js.map +1 -0
  349. package/dist/src/shell/useScrollMemory.d.ts +40 -0
  350. package/dist/src/shell/useScrollMemory.d.ts.map +1 -0
  351. package/dist/src/shell/useScrollMemory.js +69 -0
  352. package/dist/src/shell/useScrollMemory.js.map +1 -0
  353. package/dist/src/shell/useSidebarLayout.d.ts +14 -0
  354. package/dist/src/shell/useSidebarLayout.d.ts.map +1 -0
  355. package/dist/src/shell/useSidebarLayout.js +19 -0
  356. package/dist/src/shell/useSidebarLayout.js.map +1 -0
  357. package/dist/src/shell/useStored.d.ts +11 -0
  358. package/dist/src/shell/useStored.d.ts.map +1 -0
  359. package/dist/src/shell/useStored.js +68 -0
  360. package/dist/src/shell/useStored.js.map +1 -0
  361. package/dist/src/shell/useStoryCode.d.ts +14 -0
  362. package/dist/src/shell/useStoryCode.d.ts.map +1 -0
  363. package/dist/src/shell/useStoryCode.js +29 -0
  364. package/dist/src/shell/useStoryCode.js.map +1 -0
  365. package/dist/src/shell/useStoryHeights.d.ts +9 -0
  366. package/dist/src/shell/useStoryHeights.d.ts.map +1 -0
  367. package/dist/src/shell/useStoryHeights.js +31 -0
  368. package/dist/src/shell/useStoryHeights.js.map +1 -0
  369. package/dist/src/shell/useStoryIdsElement.d.ts +7 -0
  370. package/dist/src/shell/useStoryIdsElement.d.ts.map +1 -0
  371. package/dist/src/shell/useStoryIdsElement.js +29 -0
  372. package/dist/src/shell/useStoryIdsElement.js.map +1 -0
  373. package/dist/src/shell/useStoryKeys.d.ts +11 -0
  374. package/dist/src/shell/useStoryKeys.d.ts.map +1 -0
  375. package/dist/src/shell/useStoryKeys.js +40 -0
  376. package/dist/src/shell/useStoryKeys.js.map +1 -0
  377. package/dist/src/shell/useSystemDark.d.ts +3 -0
  378. package/dist/src/shell/useSystemDark.d.ts.map +1 -0
  379. package/dist/src/shell/useSystemDark.js +19 -0
  380. package/dist/src/shell/useSystemDark.js.map +1 -0
  381. package/dist/src/sourceFiles.d.ts +18 -0
  382. package/dist/src/sourceFiles.d.ts.map +1 -0
  383. package/dist/src/sourceFiles.js +22 -0
  384. package/dist/src/sourceFiles.js.map +1 -0
  385. package/dist/src/storyBackground.d.ts +21 -0
  386. package/dist/src/storyBackground.d.ts.map +1 -0
  387. package/dist/src/storyBackground.js +27 -0
  388. package/dist/src/storyBackground.js.map +1 -0
  389. package/dist/src/storyClock.d.ts +62 -0
  390. package/dist/src/storyClock.d.ts.map +1 -0
  391. package/dist/src/storyClock.js +51 -0
  392. package/dist/src/storyClock.js.map +1 -0
  393. package/dist/src/storyGlobals.d.ts +60 -0
  394. package/dist/src/storyGlobals.d.ts.map +1 -0
  395. package/dist/src/storyGlobals.js +117 -0
  396. package/dist/src/storyGlobals.js.map +1 -0
  397. package/dist/src/storyHeights.d.ts +37 -0
  398. package/dist/src/storyHeights.d.ts.map +1 -0
  399. package/dist/src/storyHeights.js +53 -0
  400. package/dist/src/storyHeights.js.map +1 -0
  401. package/dist/src/storyIdsElement.d.ts +9 -0
  402. package/dist/src/storyIdsElement.d.ts.map +1 -0
  403. package/dist/src/storyIdsElement.js +9 -0
  404. package/dist/src/storyIdsElement.js.map +1 -0
  405. package/dist/src/storyTexts.d.ts +43 -0
  406. package/dist/src/storyTexts.d.ts.map +1 -0
  407. package/dist/src/storyTexts.js +71 -0
  408. package/dist/src/storyTexts.js.map +1 -0
  409. package/dist/src/storyTree.d.ts +215 -0
  410. package/dist/src/storyTree.d.ts.map +1 -0
  411. package/dist/src/storyTree.js +308 -0
  412. package/dist/src/storyTree.js.map +1 -0
  413. package/dist/src/switches.d.ts +156 -0
  414. package/dist/src/switches.d.ts.map +1 -0
  415. package/dist/src/switches.js +193 -0
  416. package/dist/src/switches.js.map +1 -0
  417. package/dist/src/viewState.d.ts +194 -0
  418. package/dist/src/viewState.d.ts.map +1 -0
  419. package/dist/src/viewState.js +303 -0
  420. package/dist/src/viewState.js.map +1 -0
  421. package/dist/src/vite/adapter.d.ts +70 -0
  422. package/dist/src/vite/adapter.d.ts.map +1 -0
  423. package/dist/src/vite/adapter.js +22 -0
  424. package/dist/src/vite/adapter.js.map +1 -0
  425. package/dist/src/vite/autoTitle.d.ts +28 -0
  426. package/dist/src/vite/autoTitle.d.ts.map +1 -0
  427. package/dist/src/vite/autoTitle.js +44 -0
  428. package/dist/src/vite/autoTitle.js.map +1 -0
  429. package/dist/src/vite/componentPage.d.ts +34 -0
  430. package/dist/src/vite/componentPage.d.ts.map +1 -0
  431. package/dist/src/vite/componentPage.js +94 -0
  432. package/dist/src/vite/componentPage.js.map +1 -0
  433. package/dist/src/vite/config.d.ts +72 -0
  434. package/dist/src/vite/config.d.ts.map +1 -0
  435. package/dist/src/vite/config.js +25 -0
  436. package/dist/src/vite/config.js.map +1 -0
  437. package/dist/src/vite/configFile.d.ts +76 -0
  438. package/dist/src/vite/configFile.d.ts.map +1 -0
  439. package/dist/src/vite/configFile.js +190 -0
  440. package/dist/src/vite/configFile.js.map +1 -0
  441. package/dist/src/vite/docsExtractor.d.ts +46 -0
  442. package/dist/src/vite/docsExtractor.d.ts.map +1 -0
  443. package/dist/src/vite/docsExtractor.js +88 -0
  444. package/dist/src/vite/docsExtractor.js.map +1 -0
  445. package/dist/src/vite/docsProgram.d.ts +42 -0
  446. package/dist/src/vite/docsProgram.d.ts.map +1 -0
  447. package/dist/src/vite/docsProgram.js +144 -0
  448. package/dist/src/vite/docsProgram.js.map +1 -0
  449. package/dist/src/vite/docsWorker.d.ts +2 -0
  450. package/dist/src/vite/docsWorker.d.ts.map +1 -0
  451. package/dist/src/vite/docsWorker.js +68 -0
  452. package/dist/src/vite/docsWorker.js.map +1 -0
  453. package/dist/src/vite/forcedStates.d.ts +27 -0
  454. package/dist/src/vite/forcedStates.d.ts.map +1 -0
  455. package/dist/src/vite/forcedStates.js +60 -0
  456. package/dist/src/vite/forcedStates.js.map +1 -0
  457. package/dist/src/vite/forgebookPlugin.d.ts +28 -0
  458. package/dist/src/vite/forgebookPlugin.d.ts.map +1 -0
  459. package/dist/src/vite/forgebookPlugin.js +375 -0
  460. package/dist/src/vite/forgebookPlugin.js.map +1 -0
  461. package/dist/src/vite/highlightCode.d.ts +16 -0
  462. package/dist/src/vite/highlightCode.d.ts.map +1 -0
  463. package/dist/src/vite/highlightCode.js +82 -0
  464. package/dist/src/vite/highlightCode.js.map +1 -0
  465. package/dist/src/vite/indexStoryFile.d.ts +35 -0
  466. package/dist/src/vite/indexStoryFile.d.ts.map +1 -0
  467. package/dist/src/vite/indexStoryFile.js +458 -0
  468. package/dist/src/vite/indexStoryFile.js.map +1 -0
  469. package/dist/src/vite/pages.d.ts +49 -0
  470. package/dist/src/vite/pages.d.ts.map +1 -0
  471. package/dist/src/vite/pages.js +171 -0
  472. package/dist/src/vite/pages.js.map +1 -0
  473. package/dist/src/vite/prebundled.d.ts +30 -0
  474. package/dist/src/vite/prebundled.d.ts.map +1 -0
  475. package/dist/src/vite/prebundled.js +81 -0
  476. package/dist/src/vite/prebundled.js.map +1 -0
  477. package/dist/src/vite/storyCode.d.ts +28 -0
  478. package/dist/src/vite/storyCode.d.ts.map +1 -0
  479. package/dist/src/vite/storyCode.js +80 -0
  480. package/dist/src/vite/storyCode.js.map +1 -0
  481. package/dist/src/vite/storyFilesModule.d.ts +17 -0
  482. package/dist/src/vite/storyFilesModule.d.ts.map +1 -0
  483. package/dist/src/vite/storyFilesModule.js +64 -0
  484. package/dist/src/vite/storyFilesModule.js.map +1 -0
  485. package/dist/src/vite/storyMeta.d.ts +34 -0
  486. package/dist/src/vite/storyMeta.d.ts.map +1 -0
  487. package/dist/src/vite/storyMeta.js +74 -0
  488. package/dist/src/vite/storyMeta.js.map +1 -0
  489. package/dist/src/vite/typeScriptPieces.d.ts +23 -0
  490. package/dist/src/vite/typeScriptPieces.d.ts.map +1 -0
  491. package/dist/src/vite/typeScriptPieces.js +236 -0
  492. package/dist/src/vite/typeScriptPieces.js.map +1 -0
  493. package/package.json +202 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HomePage.js","sourceRoot":"","sources":["../../../src/shell/HomePage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The panel's Interactions tab: the story's play function as it ran, whether it passed or where it failed, each step
3
+ * it named with `step`, and a button that runs it again on a fresh mount.
4
+ *
5
+ * @module
6
+ */
7
+ import type { ReactNode } from "react";
8
+ import type { PlayTrace } from "../playTrace.ts";
9
+ /** The tab's props. */
10
+ export type InteractionsTabProps = {
11
+ /** The play's trace. */
12
+ readonly trace: PlayTrace;
13
+ /** Runs the play again on a fresh mount. */
14
+ readonly onPlayAgain: () => void;
15
+ };
16
+ /**
17
+ * The tab's hint: the play's status.
18
+ *
19
+ * @param trace - the trace.
20
+ */
21
+ export declare const interactionsHint: (trace: PlayTrace) => string;
22
+ /**
23
+ * The Interactions tab.
24
+ *
25
+ * @param props - the trace and how to run the play again.
26
+ */
27
+ export declare const InteractionsTab: ({ trace, onPlayAgain }: InteractionsTabProps) => ReactNode;
28
+ //# sourceMappingURL=InteractionsTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractionsTab.d.ts","sourceRoot":"","sources":["../../../src/shell/InteractionsTab.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG7D,uBAAuB;AACvB,MAAM,MAAM,oBAAoB,GAAG;IACjC,wBAAwB;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,4CAA4C;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,SAAS,KAAG,MAA0C,CAAC;AAgB/F;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,wBAAwB,oBAAoB,KAAG,SAoC9E,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
2
+ import { STRINGS } from "./strings.js";
3
+ /**
4
+ * The tab's hint: the play's status.
5
+ *
6
+ * @param trace - the trace.
7
+ */
8
+ export const interactionsHint = (trace) => STRINGS.playStatus[trace.status];
9
+ /** A status with its time, as a line ends. */
10
+ const StatusNote = ({ status, ms }) => (_jsxs("span", { className: "forgebook-play__status", "data-status": status, children: [STRINGS.playStatus[status], ms === undefined ? null : ` · ${STRINGS.playTime(ms)}`] }));
11
+ /**
12
+ * The Interactions tab.
13
+ *
14
+ * @param props - the trace and how to run the play again.
15
+ */
16
+ export const InteractionsTab = ({ trace, onPlayAgain }) => (_jsxs("div", { className: "forgebook-prop-group", "aria-live": "polite", children: [_jsxs("div", { className: "forgebook-calls__head", children: [_jsxs("h3", { className: "forgebook-prop-group__title", children: [STRINGS.playTitle, " ", _jsx(StatusNote, { status: trace.status, ms: trace.ms })] }), _jsx("button", { type: "button", className: "forgebook-button", disabled: trace.status === "running", onClick: onPlayAgain, children: STRINGS.playAgain })] }), trace.error === undefined ? null : (_jsx("p", { className: "forgebook-problems", role: "alert", children: trace.error })), trace.steps.length === 0 ? (_jsx("p", { className: "forgebook-prop__description", children: STRINGS.playNoSteps })) : (_jsx("ol", { className: "forgebook-play__steps", children: trace.steps.map((step, index) => (_jsxs("li", { className: "forgebook-play__step", "data-status": step.status, children: [_jsx("span", { className: "forgebook-play__label", children: step.label }), _jsx(StatusNote, { status: step.status, ms: step.ms }), step.error === undefined ? null : _jsx("p", { className: "forgebook-play__error", children: step.error })] }, index))) }))] }));
17
+ //# sourceMappingURL=InteractionsTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractionsTab.js","sourceRoot":"","sources":["../../../src/shell/InteractionsTab.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAUvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAgB,EAAU,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAE/F,8CAA8C;AAC9C,MAAM,UAAU,GAAG,CAAC,EAClB,MAAM,EACN,EAAE,EAIH,EAAa,EAAE,CAAC,CACf,gBAAM,SAAS,EAAC,wBAAwB,iBAAc,MAAM,aACzD,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAC1B,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,IAClD,CACR,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAwB,EAAa,EAAE,CAAC,CAC1F,eAAK,SAAS,EAAC,sBAAsB,eAAW,QAAQ,aACtD,eAAK,SAAS,EAAC,uBAAuB,aACpC,cAAI,SAAS,EAAC,6BAA6B,aACxC,OAAO,CAAC,SAAS,OAAE,KAAC,UAAU,IAAC,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,GAAI,IACnE,EACL,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,kBAAkB,EAC5B,QAAQ,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,EACpC,OAAO,EAAE,WAAW,YAEnB,OAAO,CAAC,SAAS,GACX,IACL,EACL,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAClC,YAAG,SAAS,EAAC,oBAAoB,EAAC,IAAI,EAAC,OAAO,YAC3C,KAAK,CAAC,KAAK,GACV,CACL,EACA,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC1B,YAAG,SAAS,EAAC,6BAA6B,YAAE,OAAO,CAAC,WAAW,GAAK,CACrE,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,uBAAuB,YAClC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAGhC,cAAgB,SAAS,EAAC,sBAAsB,iBAAc,IAAI,CAAC,MAAM,aACvE,eAAM,SAAS,EAAC,uBAAuB,YAAE,IAAI,CAAC,KAAK,GAAQ,EAC3D,KAAC,UAAU,IAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,GAAI,EAC/C,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,uBAAuB,YAAE,IAAI,CAAC,KAAK,GAAK,KAHjF,KAAK,CAIT,CACN,CAAC,GACC,CACN,IACG,CACP,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The matrix's axes in the story's bar: the prop the rows take their values from, and the columns' when there are
3
+ * two. None draws the story alone.
4
+ *
5
+ * @module
6
+ */
7
+ import { type ReactNode } from "react";
8
+ import type { PropDocs } from "../componentDocs.ts";
9
+ /** The picker's props. */
10
+ export type MatrixPickerProps = {
11
+ /** The props that can make an axis. */
12
+ readonly props: readonly PropDocs[];
13
+ /** The chosen axes' names: the rows', then the columns'. */
14
+ readonly axes: readonly string[];
15
+ /** Called with the chosen axes; empty draws the story alone. */
16
+ readonly onAxesChange: (axes: readonly string[]) => void;
17
+ };
18
+ /**
19
+ * The matrix's axes.
20
+ *
21
+ * @param props - the props that can make an axis, the chosen ones and the setter.
22
+ */
23
+ export declare const MatrixPicker: ({ props, axes, onAxesChange }: MatrixPickerProps) => ReactNode;
24
+ //# sourceMappingURL=MatrixPicker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatrixPicker.d.ts","sourceRoot":"","sources":["../../../src/shell/MatrixPicker.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAoB,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,0BAA0B;AAC1B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,gEAAgE;IAChE,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,+BAA+B,iBAAiB,KAAG,SAkD/E,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * The matrix's axes in the story's bar: the prop the rows take their values from, and the columns' when there are
4
+ * two. None draws the story alone.
5
+ *
6
+ * @module
7
+ */
8
+ import { useId } from "react";
9
+ import { STRINGS } from "./strings.js";
10
+ /**
11
+ * The matrix's axes.
12
+ *
13
+ * @param props - the props that can make an axis, the chosen ones and the setter.
14
+ */
15
+ export const MatrixPicker = ({ props, axes, onAxesChange }) => {
16
+ const rowsId = useId();
17
+ const columnsId = useId();
18
+ const [rows = "", columns = ""] = axes;
19
+ return (_jsxs("div", { className: "forgebook-matrix-picker", children: [_jsx("label", { htmlFor: rowsId, className: "forgebook-popover__label", children: STRINGS.matrix }), _jsxs("select", { id: rowsId, className: "forgebook-select", "data-set": rows === "" ? undefined : "", value: rows, onChange: (event) => {
20
+ const next = event.currentTarget.value;
21
+ onAxesChange(next === "" ? [] : [next, ...(columns === "" || columns === next ? [] : [columns])]);
22
+ }, children: [_jsx("option", { value: "", children: STRINGS.matrixNone }), props.map((prop) => (_jsx("option", { value: prop.name, children: prop.name }, prop.name)))] }), _jsx("span", { "aria-hidden": "true", children: "\u00D7" }), _jsxs("select", { id: columnsId, className: "forgebook-select", "aria-label": STRINGS.matrixColumns, "data-set": columns === "" ? undefined : "", value: columns, disabled: rows === "", onChange: (event) => {
23
+ const next = event.currentTarget.value;
24
+ onAxesChange(next === "" ? [rows] : [rows, next]);
25
+ }, children: [_jsx("option", { value: "", children: STRINGS.matrixNone }), props
26
+ .filter((prop) => prop.name !== rows)
27
+ .map((prop) => (_jsx("option", { value: prop.name, children: prop.name }, prop.name)))] })] }));
28
+ };
29
+ //# sourceMappingURL=MatrixPicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatrixPicker.js","sourceRoot":"","sources":["../../../src/shell/MatrixPicker.tsx"],"names":[],"mappings":";AAAA;;;;;GAKG;AACH,OAAO,EAAoC,KAAK,EAAE,MAAM,OAAO,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAYvC;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAqB,EAAa,EAAE;IAC1F,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IACvB,MAAM,SAAS,GAAG,KAAK,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,GAAG,EAAE,EAAE,OAAO,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC;IACvC,OAAO,CACL,eAAK,SAAS,EAAC,yBAAyB,aACtC,gBAAO,OAAO,EAAE,MAAM,EAAE,SAAS,EAAC,0BAA0B,YACzD,OAAO,CAAC,MAAM,GACT,EACR,kBACE,EAAE,EAAE,MAAM,EACV,SAAS,EAAC,kBAAkB,cAClB,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EACtC,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,KAAqC,EAAQ,EAAE;oBACxD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;oBACvC,YAAY,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpG,CAAC,aAED,iBAAQ,KAAK,EAAC,EAAE,YAAE,OAAO,CAAC,UAAU,GAAU,EAC7C,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,iBAAwB,KAAK,EAAE,IAAI,CAAC,IAAI,YACrC,IAAI,CAAC,IAAI,IADC,IAAI,CAAC,IAAI,CAEb,CACV,CAAC,IACK,EACT,8BAAkB,MAAM,uBAAS,EACjC,kBACE,EAAE,EAAE,SAAS,EACb,SAAS,EAAC,kBAAkB,gBAChB,OAAO,CAAC,aAAa,cACvB,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EACzC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,IAAI,KAAK,EAAE,EACrB,QAAQ,EAAE,CAAC,KAAqC,EAAQ,EAAE;oBACxD,MAAM,IAAI,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;oBACvC,YAAY,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;gBACpD,CAAC,aAED,iBAAQ,KAAK,EAAC,EAAE,YAAE,OAAO,CAAC,UAAU,GAAU,EAC7C,KAAK;yBACH,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;yBACpC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACb,iBAAwB,KAAK,EAAE,IAAI,CAAC,IAAI,YACrC,IAAI,CAAC,IAAI,IADC,IAAI,CAAC,IAAI,CAEb,CACV,CAAC,IACG,IACL,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * HTML a package wrote as Markdown, rendered by the catalogue's plugin at build time: a component's documentation
3
+ * file, a source's introduction on the home.
4
+ *
5
+ * @module
6
+ */
7
+ import type { ReactNode } from "react";
8
+ /**
9
+ * The package's HTML, as trusted as its stories' code: it comes from the package's own files, read at build time.
10
+ *
11
+ * @param props - the element's class and the HTML.
12
+ */
13
+ export declare const PackageHtml: ({ className, html }: {
14
+ readonly className: string;
15
+ readonly html: string;
16
+ }) => ReactNode;
17
+ //# sourceMappingURL=PackageHtml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageHtml.d.ts","sourceRoot":"","sources":["../../../src/shell/PackageHtml.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,qBAGzB;IACD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,KAAG,SAKH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * The package's HTML, as trusted as its stories' code: it comes from the package's own files, read at build time.
4
+ *
5
+ * @param props - the element's class and the HTML.
6
+ */
7
+ export const PackageHtml = ({ className, html }) => {
8
+ // biome-ignore lint/style/useNamingConvention: React's own name for markup set as HTML
9
+ const markup = { __html: html };
10
+ // biome-ignore lint/security/noDangerouslySetInnerHtml: the package's own Markdown, rendered by the plugin
11
+ return _jsx("div", { className: className, dangerouslySetInnerHTML: markup });
12
+ };
13
+ //# sourceMappingURL=PackageHtml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PackageHtml.js","sourceRoot":"","sources":["../../../src/shell/PackageHtml.tsx"],"names":[],"mappings":";AAQA;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,SAAS,EACT,IAAI,EAIL,EAAa,EAAE;IACd,uFAAuF;IACvF,MAAM,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAChC,2GAA2G;IAC3G,OAAO,cAAK,SAAS,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,GAAI,CAAC;AACxE,CAAC,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * The panel's Parts and styling tab: the keys of `classNames`, `styles` and `refs`, the `data-*` hooks of the
3
+ * modifiers, and the test ids of the parts (D-64).
4
+ *
5
+ * @module
6
+ */
7
+ import type { ReactNode } from "react";
8
+ import type { ComponentDocs } from "../componentDocs.ts";
9
+ /**
10
+ * The `data-*` hooks of a component's modifiers.
11
+ *
12
+ * @param docs - the component's docs.
13
+ */
14
+ export declare const styleHooks: (docs: ComponentDocs) => string[];
15
+ /**
16
+ * The Parts and styling tab.
17
+ *
18
+ * @param props - the component's docs.
19
+ */
20
+ export declare const PartsTab: ({ docs }: {
21
+ readonly docs: ComponentDocs;
22
+ }) => ReactNode;
23
+ //# sourceMappingURL=PartsTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartsTab.d.ts","sourceRoot":"","sources":["../../../src/shell/PartsTab.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAOzD;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,MAAM,aAAa,KAAG,MAAM,EAGsB,CAAC;AAE9E;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,UAAU;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,KAAG,SA0BrE,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Code } from "./Code.js";
3
+ import { STRINGS } from "./strings.js";
4
+ /** The props that carry a component's modifiers, each mirrored by a `data-*` styling hook. */
5
+ const MODIFIERS = ["variant", "size", "tone", "shape", "width", "orientation"];
6
+ /**
7
+ * The `data-*` hooks of a component's modifiers.
8
+ *
9
+ * @param docs - the component's docs.
10
+ */
11
+ export const styleHooks = (docs) => docs.props
12
+ .filter((prop) => prop.kind === "choice" && MODIFIERS.includes(prop.name))
13
+ .map((prop) => `data-${prop.name}="${(prop.choices ?? []).join(" | ")}"`);
14
+ /**
15
+ * The Parts and styling tab.
16
+ *
17
+ * @param props - the component's docs.
18
+ */
19
+ export const PartsTab = ({ docs }) => {
20
+ const hooks = styleHooks(docs);
21
+ return (_jsxs("div", { className: "forgebook-tab-columns", children: [docs.parts.length === 0 ? null : (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: STRINGS.partsList }), _jsxs("p", { className: "forgebook-prop__description", children: [_jsx("code", { children: "classNames" }), ", ", _jsx("code", { children: "styles" }), ", ", _jsx("code", { children: "refs" }), ": ", docs.parts.join(", ")] }), _jsx("h3", { className: "forgebook-prop-group__title", children: STRINGS.testIds }), _jsx("p", { className: "forgebook-prop__description", children: docs.parts.map((part) => `<testId>__${part}`).join(", ") })] })), hooks.length === 0 ? null : (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: STRINGS.styleHooks }), hooks.map((hook) => (_jsx(Code, { text: hook, names: [] }, hook)))] }))] }));
22
+ };
23
+ //# sourceMappingURL=PartsTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PartsTab.js","sourceRoot":"","sources":["../../../src/shell/PartsTab.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAY,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,8FAA8F;AAC9F,MAAM,SAAS,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;AAE/E;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,IAAmB,EAAY,EAAE,CAC1D,IAAI,CAAC,KAAK;KACP,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACzE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAoC,EAAa,EAAE;IAChF,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,OAAO,CACL,eAAK,SAAS,EAAC,uBAAuB,aACnC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAChC,eAAK,SAAS,EAAC,sBAAsB,aACnC,aAAI,SAAS,EAAC,6BAA6B,YAAE,OAAO,CAAC,SAAS,GAAM,EACpE,aAAG,SAAS,EAAC,6BAA6B,aACxC,wCAAuB,QAAE,oCAAmB,QAAE,kCAAiB,QAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IACrF,EACJ,aAAI,SAAS,EAAC,6BAA6B,YAAE,OAAO,CAAC,OAAO,GAAM,EAClE,YAAG,SAAS,EAAC,6BAA6B,YACvC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GACvD,IACA,CACP,EACA,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3B,eAAK,SAAS,EAAC,sBAAsB,aACnC,aAAI,SAAS,EAAC,6BAA6B,YAAE,OAAO,CAAC,UAAU,GAAM,EACpE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,KAAC,IAAI,IAAY,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,IAA3B,IAAI,CAA2B,CAC3C,CAAC,IACE,CACP,IACG,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The fields of the props panel that set a value from a list or a number: a choice (buttons, a list, checkboxes, a
3
+ * list of several), a number, a range and a date, as the prop's type or its `argTypes` say.
4
+ *
5
+ * @module
6
+ */
7
+ import type { ReactNode } from "react";
8
+ import type { PanelProp } from "../argTypes.ts";
9
+ import { type ArgValue } from "../messages.ts";
10
+ /** Called with a changed value; `undefined` removes the panel's value. */
11
+ export type OnValueChange = (name: string, value: ArgValue | undefined) => void;
12
+ /** A value as a text field shows it: texts and numbers as they are, anything else empty. */
13
+ export declare const textOf: (value: ArgValue | undefined) => string;
14
+ /**
15
+ * A choice's control: buttons side by side for `radio` or a few short values, a list for `select` or otherwise, and
16
+ * a multiple choice for `check` and `multi-select`.
17
+ */
18
+ export declare const ChoiceControl: ({ prop, value, descriptionId, onValueChange }: {
19
+ readonly prop: PanelProp;
20
+ readonly value: ArgValue | undefined;
21
+ readonly descriptionId: string;
22
+ readonly onValueChange: OnValueChange;
23
+ }) => ReactNode;
24
+ /** A field for a number, a range or a date, as its `argTypes` say; a date's value is ms since the Unix epoch. */
25
+ export declare const NumberField: ({ prop, value, descriptionId, onValueChange }: {
26
+ readonly prop: PanelProp;
27
+ readonly value: ArgValue | undefined;
28
+ readonly descriptionId: string;
29
+ readonly onValueChange: OnValueChange;
30
+ }) => ReactNode;
31
+ //# sourceMappingURL=PropFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropFields.d.ts","sourceRoot":"","sources":["../../../src/shell/PropFields.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,OAAO,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,gBAAgB,CAAC;AAI7D,0EAA0E;AAC1E,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;AAEhF,4FAA4F;AAC5F,eAAO,MAAM,MAAM,GAAI,OAAO,QAAQ,GAAG,SAAS,KAAG,MACwB,CAAC;AAwF9E;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,+CAK3B;IACD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC,KAAG,SAgDH,CAAC;AAEF,iHAAiH;AACjH,eAAO,MAAM,WAAW,GAAI,+CAKzB;IACD,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC,KAAG,SA8CH,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { isChoiceList } from "../messages.js";
3
+ import { Segmented } from "./Segmented.js";
4
+ import { STRINGS } from "./strings.js";
5
+ /** A value as a text field shows it: texts and numbers as they are, anything else empty. */
6
+ export const textOf = (value) => typeof value === "string" || typeof value === "number" ? String(value) : "";
7
+ /** A value as a choice holds it: a text or a number, otherwise none. */
8
+ const choiceOf = (value) => typeof value === "string" || typeof value === "number" ? value : undefined;
9
+ /** A choice's value as the panel shows it: its `argTypes` label, or the value. */
10
+ const choiceLabel = (prop, choice) => prop.labels?.[String(choice)] ?? String(choice);
11
+ /** A number of ms since the Unix epoch as a `datetime-local` field holds it, in the browser's time zone. */
12
+ const dateFieldOf = (value) => {
13
+ if (typeof value !== "number")
14
+ return "";
15
+ const date = new Date(value);
16
+ const local = new Date(value - date.getTimezoneOffset() * 60_000);
17
+ return local.toISOString().slice(0, 16);
18
+ };
19
+ /** The value of the choice that leaves a prop to the story: no choice of a component is an empty text. */
20
+ const UNSET = "";
21
+ /** The most choices shown as buttons, and the longest label; past either, a list. */
22
+ const FEW_CHOICES = { count: 4, length: 10 };
23
+ /** Whether a choice's values fit side by side as buttons. */
24
+ const isFewChoices = (choices) => choices.length <= FEW_CHOICES.count &&
25
+ choices.every((choice) => choice !== UNSET && String(choice).length <= FEW_CHOICES.length);
26
+ /** A choice of several values: checkboxes (`check`) or a list that takes several (`multi-select`). */
27
+ const MultiChoiceControl = ({ prop, value, descriptionId, onValueChange }) => {
28
+ const choices = prop.choices ?? [];
29
+ const chosen = isChoiceList(value) ? value : [];
30
+ // the values keep the order of the options, whatever order they were picked in
31
+ const change = (next) => onValueChange(prop.name, choices.filter((choice) => next.includes(choice)));
32
+ if (prop.control === "multi-select") {
33
+ return (_jsx("select", { multiple: true, "aria-label": prop.label ?? prop.name, "aria-describedby": descriptionId, value: chosen.map(String), onChange: (event) => {
34
+ const picked = [...event.target.selectedOptions].map((option) => option.value);
35
+ change(choices.filter((choice) => picked.includes(String(choice))));
36
+ }, children: choices.map((choice) => (_jsx("option", { value: String(choice), children: choiceLabel(prop, choice) }, String(choice)))) }));
37
+ }
38
+ return (_jsxs("fieldset", { className: "forgebook-prop__checks", "aria-describedby": descriptionId, children: [_jsx("legend", { className: "forgebook-visually-hidden", children: prop.label ?? prop.name }), choices.map((choice) => (_jsxs("label", { className: "forgebook-toggle", children: [_jsx("input", { type: "checkbox", checked: chosen.includes(choice), onChange: (event) => change(event.target.checked ? [...chosen, choice] : chosen.filter((other) => other !== choice)) }), choiceLabel(prop, choice)] }, String(choice))))] }));
39
+ };
40
+ /**
41
+ * A choice's control: buttons side by side for `radio` or a few short values, a list for `select` or otherwise, and
42
+ * a multiple choice for `check` and `multi-select`.
43
+ */
44
+ export const ChoiceControl = ({ prop, value, descriptionId, onValueChange }) => {
45
+ if (prop.control === "check" || prop.control === "multi-select") {
46
+ return (_jsx(MultiChoiceControl, { prop: prop, value: value, descriptionId: descriptionId, onValueChange: onValueChange }));
47
+ }
48
+ const choices = prop.choices ?? [];
49
+ const unsetLabel = prop.defaultValue === undefined ? STRINGS.unset : STRINGS.unsetDefault(prop.defaultValue);
50
+ const isButtons = prop.control === "radio" || (prop.control === undefined && isFewChoices(choices));
51
+ if (isButtons) {
52
+ return (_jsx(Segmented, { label: prop.label ?? prop.name, options: [
53
+ { value: UNSET, label: unsetLabel },
54
+ ...choices.map((choice) => ({ value: choice, label: choiceLabel(prop, choice) }))
55
+ ], value: choiceOf(value) ?? UNSET, onValueChange: (chosen) => onValueChange(prop.name, chosen === UNSET ? undefined : chosen) }));
56
+ }
57
+ return (_jsxs("select", { "aria-label": prop.label ?? prop.name, "aria-describedby": descriptionId, value: textOf(value), onChange: (event) => {
58
+ const chosen = choices.find((choice) => String(choice) === event.target.value);
59
+ onValueChange(prop.name, chosen);
60
+ }, children: [_jsx("option", { value: "", children: unsetLabel }), choices.map((choice) => (_jsx("option", { value: String(choice), children: choiceLabel(prop, choice) }, String(choice))))] }));
61
+ };
62
+ /** A field for a number, a range or a date, as its `argTypes` say; a date's value is ms since the Unix epoch. */
63
+ export const NumberField = ({ prop, value, descriptionId, onValueChange }) => {
64
+ const label = prop.label ?? prop.name;
65
+ if (prop.control === "date") {
66
+ return (_jsx("input", { type: "datetime-local", "aria-label": label, "aria-describedby": descriptionId, value: dateFieldOf(value), onChange: (event) => {
67
+ const time = event.target.valueAsNumber;
68
+ // the field's own value is in UTC: read back in the browser's time zone, as it was shown
69
+ const local = Number.isNaN(time) ? undefined : time + new Date(time).getTimezoneOffset() * 60_000;
70
+ onValueChange(prop.name, local);
71
+ } }));
72
+ }
73
+ const bounds = {
74
+ ...(prop.min === undefined ? {} : { min: prop.min }),
75
+ ...(prop.max === undefined ? {} : { max: prop.max }),
76
+ ...(prop.step === undefined ? {} : { step: prop.step })
77
+ };
78
+ const change = (text) => onValueChange(prop.name, text === "" ? undefined : Number(text));
79
+ return (_jsxs(_Fragment, { children: [prop.control === "range" ? (_jsx("input", { type: "range", "aria-label": label, "aria-describedby": descriptionId, ...bounds, value: typeof value === "number" ? value : (prop.min ?? 0), onChange: (event) => change(event.target.value) })) : null, _jsx("input", { type: "number", "aria-label": prop.control === "range" ? STRINGS.rangeValue(label) : label, "aria-describedby": descriptionId, ...bounds, value: textOf(value), onChange: (event) => change(event.target.value) })] }));
80
+ };
81
+ //# sourceMappingURL=PropFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropFields.js","sourceRoot":"","sources":["../../../src/shell/PropFields.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * The panel's Props tab: the props the story lets the panel set, grouped by control (choices, text and numbers,
3
+ * toggles), each with its description and default, then the props it cannot set. A story of fixed examples sets none:
4
+ * the tab says so and lists every prop for reading (D-64). The props come with the story's `argTypes` laid over them
5
+ * (`argTypes.ts`): a control they name (a list, buttons, checkboxes, a range, a colour, a date) wins over the one
6
+ * the prop's type gives.
7
+ *
8
+ * @module
9
+ */
10
+ import type { StoryControlsSetting } from "@forgebook/story-format/source";
11
+ import { type ReactNode } from "react";
12
+ import type { PanelProp } from "../argTypes.ts";
13
+ import { type ArgValue, type PanelArgs } from "../messages.ts";
14
+ import type { NamedValues } from "../namedValues.ts";
15
+ /** A prop the story gives a text by its key (`storyText("key")`): the key, and whether the panel wrote over it. */
16
+ export type TextArgNote = {
17
+ /** The text's key. */
18
+ readonly key: string;
19
+ /** Whether the panel holds a value of its own for the prop. */
20
+ readonly isChanged: boolean;
21
+ };
22
+ /** The tab's props. */
23
+ export type PropsTabProps = {
24
+ /** The props, from the component's types with the story's `argTypes` laid over them. */
25
+ readonly props: readonly PanelProp[];
26
+ /** The values shown: the story's args with the panel's changes. */
27
+ readonly values: PanelArgs;
28
+ /** The props the story lets the panel set. */
29
+ readonly controls: StoryControlsSetting;
30
+ /** Called with a changed value; `undefined` removes the panel's value. */
31
+ readonly onValueChange: (name: string, value: ArgValue | undefined) => void;
32
+ /** Removes every value the panel set. */
33
+ readonly onReset: () => void;
34
+ /** The values the source offers by name for a type the panel cannot write (`IconComponent`); none by default. */
35
+ readonly namedValues?: NamedValues | undefined;
36
+ /** The props the story gives a text by its key, by name; none by default. */
37
+ readonly textArgs?: Readonly<Record<string, TextArgNote>>;
38
+ };
39
+ /**
40
+ * The Props tab.
41
+ *
42
+ * @param props - the props, the values, which props the story lets the panel set, and the setters.
43
+ */
44
+ export declare const PropsTab: ({ props, values, controls, onValueChange, onReset, namedValues, textArgs }: PropsTabProps) => ReactNode;
45
+ //# sourceMappingURL=PropsTab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropsTab.d.ts","sourceRoot":"","sources":["../../../src/shell/PropsTab.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAoB,KAAK,SAAS,EAAS,MAAM,OAAO,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,QAAQ,EAAc,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,mHAAmH;AACnH,MAAM,MAAM,WAAW,GAAG;IACxB,sBAAsB;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,uBAAuB;AACvB,MAAM,MAAM,aAAa,GAAG;IAC1B,wFAAwF;IACxF,QAAQ,CAAC,KAAK,EAAE,SAAS,SAAS,EAAE,CAAC;IACrC,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,8CAA8C;IAC9C,QAAQ,CAAC,QAAQ,EAAE,oBAAoB,CAAC;IACxC,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;IAC5E,yCAAyC;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;IAC7B,iHAAiH;IACjH,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAC/C,6EAA6E;IAC7E,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC;CAC3D,CAAC;AAqNF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,4EAQtB,aAAa,KAAG,SA6ElB,CAAC"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useId } from "react";
3
+ import { isNamedArg } from "../messages.js";
4
+ import { ChoiceControl, NumberField, textOf } from "./PropFields.js";
5
+ import { STRINGS } from "./strings.js";
6
+ /** A colour prop: named so by its `argTypes`, or by the name convention (`color`, `accentColor`). */
7
+ const isColorProp = (prop) => prop.control === "color" ||
8
+ (prop.control === undefined &&
9
+ prop.kind === "text" &&
10
+ (prop.name === "color" || prop.name.endsWith("Color")));
11
+ /** A CSS colour as the colour picker takes it (`#rrggbb`), or black when the value is not one. */
12
+ const pickerColor = (value) => typeof value === "string" && /^#[0-9a-f]{6}$/i.test(value) ? value : "#000000";
13
+ /** No prop named by a text key. */
14
+ const NO_TEXT_ARGS = {};
15
+ /** A prop's name, whether it is required, and its type (whole in the tooltip when it is cut). */
16
+ const PropHead = ({ prop }) => (_jsxs("div", { className: "forgebook-prop__head", children: [_jsxs("code", { className: "forgebook-prop__name", children: [prop.label ?? prop.name, prop.isRequired ? (_jsx("span", { className: "forgebook-prop__required", title: STRINGS.required, children: "*" })) : null] }), _jsx("code", { className: "forgebook-prop__type", title: prop.type, children: prop.type })] }));
17
+ /** A prop's description and default, under its control. */
18
+ const PropNote = ({ id, prop }) => prop.description === "" && prop.defaultValue === undefined ? null : (_jsxs("p", { id: id, className: "forgebook-prop__description", children: [prop.description, prop.defaultValue === undefined ? null : (_jsxs(_Fragment, { children: [prop.description === "" ? null : " ", STRINGS.defaultIs, " ", _jsx("code", { children: prop.defaultValue })] }))] }));
19
+ /**
20
+ * Where a prop's text comes from, under its field: the key of the story's text, and a way back to it once the panel
21
+ * wrote over it.
22
+ *
23
+ * @param props - the note, the prop's name and the value setter.
24
+ */
25
+ const TextArgLine = ({ note, name, onValueChange }) => (_jsxs("p", { className: "forgebook-prop__text-arg", children: [STRINGS.fromTexts, " ", _jsx("code", { children: note.key }), note.isChanged ? (_jsx("button", { type: "button", className: "forgebook-text-button", onClick: () => onValueChange(name, undefined), children: STRINGS.backToText })) : null] }));
26
+ /** One adjustable prop with its control. */
27
+ const PropControl = ({ prop, value, named, textArg, onValueChange }) => {
28
+ // the description is shown under the control and named by it, so the control's name is the prop alone
29
+ const descriptionId = useId();
30
+ const label = prop.label ?? prop.name;
31
+ if (named !== undefined) {
32
+ return (_jsxs("div", { className: "forgebook-prop", children: [_jsx(PropHead, { prop: prop }), _jsxs("select", { "aria-label": label, "aria-describedby": descriptionId, value: isNamedArg(value) ? value.named : "", onChange: (event) => {
33
+ const chosen = event.target.value;
34
+ onValueChange(prop.name, chosen === "" ? undefined : { of: prop.type, named: chosen });
35
+ }, children: [_jsx("option", { value: "", children: STRINGS.unset }), Object.keys(named).map((name) => (_jsx("option", { value: name, children: name }, name)))] }), _jsx(PropNote, { id: descriptionId, prop: prop })] }));
36
+ }
37
+ if (prop.kind === "choice") {
38
+ return (_jsxs("div", { className: "forgebook-prop", children: [_jsx(PropHead, { prop: prop }), _jsx(ChoiceControl, { prop: prop, value: value, descriptionId: descriptionId, onValueChange: onValueChange }), _jsx(PropNote, { id: descriptionId, prop: prop })] }));
39
+ }
40
+ if (prop.kind === "number") {
41
+ return (_jsxs("div", { className: "forgebook-prop", children: [_jsx(PropHead, { prop: prop }), _jsx("div", { className: "forgebook-prop__field", children: _jsx(NumberField, { prop: prop, value: value, descriptionId: descriptionId, onValueChange: onValueChange }) }), _jsx(PropNote, { id: descriptionId, prop: prop })] }));
42
+ }
43
+ return (_jsxs("div", { className: "forgebook-prop", children: [_jsx(PropHead, { prop: prop }), _jsxs("div", { className: "forgebook-prop__field", children: [_jsx("input", { type: "text", "aria-label": label, "aria-describedby": descriptionId, value: textOf(value), onChange: (event) => {
44
+ const text = event.target.value;
45
+ onValueChange(prop.name, text === "" ? undefined : text);
46
+ } }), isColorProp(prop) ? (_jsx("input", { type: "color", className: "forgebook-prop__color", "aria-label": STRINGS.pickColor(label), value: pickerColor(value), onChange: (event) => onValueChange(prop.name, event.target.value) })) : null] }), textArg === undefined ? null : (_jsx(TextArgLine, { note: textArg, name: prop.name, onValueChange: onValueChange })), _jsx(PropNote, { id: descriptionId, prop: prop })] }));
47
+ };
48
+ /** A toggle: its name in a compact checkbox, its description as the tooltip and for screen readers. */
49
+ const Toggle = ({ prop, value, onValueChange }) => {
50
+ const descriptionId = useId();
51
+ return (_jsxs("label", { className: "forgebook-toggle", title: prop.description, children: [_jsx("input", { type: "checkbox", checked: value === true, "aria-describedby": descriptionId, onChange: (event) => onValueChange(prop.name, event.target.checked) }), _jsx("code", { children: prop.label ?? prop.name }), _jsx("span", { id: descriptionId, className: "forgebook-visually-hidden", children: prop.description })] }));
52
+ };
53
+ /**
54
+ * The Props tab.
55
+ *
56
+ * @param props - the props, the values, which props the story lets the panel set, and the setters.
57
+ */
58
+ export const PropsTab = ({ props, values, controls, onValueChange, onReset, namedValues = {}, textArgs = NO_TEXT_ARGS }) => {
59
+ // a prop of a type the source names values for is chosen among them, a node that takes a text is set as one; any
60
+ // other `other` prop cannot be set from the panel
61
+ const isNamed = (prop) => prop.kind === "other" && prop.control === undefined && namedValues[prop.type] !== undefined;
62
+ const isSettable = (prop) => (prop.kind !== "other" || prop.canTakeText === true || isNamed(prop)) &&
63
+ prop.kind !== "event" &&
64
+ (controls === "all" || controls.includes(prop.name));
65
+ const settable = props.filter(isSettable);
66
+ const groups = [
67
+ {
68
+ title: STRINGS.propGroups.choice,
69
+ props: settable.filter((prop) => prop.kind === "choice" || isNamed(prop))
70
+ },
71
+ {
72
+ title: STRINGS.propGroups.text,
73
+ props: settable.filter((prop) => ["text", "number", "other"].includes(prop.kind) && !isNamed(prop))
74
+ }
75
+ ].filter((group) => group.props.length > 0);
76
+ const toggles = settable.filter((prop) => prop.kind === "toggle");
77
+ const others = props.filter((prop) => prop.kind !== "event" && !isSettable(prop));
78
+ const hasControls = controls === "all" || controls.length > 0;
79
+ return (_jsxs("div", { className: "forgebook-tab-props", children: [hasControls ? null : _jsx("p", { className: "forgebook-tab-note", children: STRINGS.fixedExamples }), groups.map((group) => (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: group.title }), _jsx("div", { className: "forgebook-prop-grid", children: group.props.map((prop) => (_jsx(PropControl, { prop: prop, value: values[prop.name], named: isNamed(prop) ? namedValues[prop.type] : undefined, textArg: textArgs[prop.name], onValueChange: onValueChange }, prop.name))) })] }, group.title))), toggles.length === 0 ? null : (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: STRINGS.propGroups.toggle }), _jsx("div", { className: "forgebook-toggles", children: toggles.map((prop) => (_jsx(Toggle, { prop: prop, value: values[prop.name], onValueChange: onValueChange }, prop.name))) })] })), others.length === 0 ? null : (_jsxs("div", { className: "forgebook-prop-group", children: [_jsx("h3", { className: "forgebook-prop-group__title", children: hasControls ? STRINGS.otherProps : STRINGS.allProps }), _jsx("div", { className: "forgebook-prop-grid", children: others.map((prop) => (_jsxs("div", { className: "forgebook-prop", children: [_jsx(PropHead, { prop: prop }), _jsx("p", { className: "forgebook-prop__description", children: prop.description })] }, prop.name))) })] })), hasControls ? (_jsx("div", { className: "forgebook-tab-foot", children: _jsx("button", { type: "button", className: "forgebook-text-button", onClick: onReset, children: STRINGS.resetArgs }) })) : null] }));
80
+ };
81
+ //# sourceMappingURL=PropsTab.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropsTab.js","sourceRoot":"","sources":["../../../src/shell/PropsTab.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The colour scheme and contrast switches at the toolbar's start, off while the compare view sets them or the story
3
+ * fixes them.
4
+ *
5
+ * @module
6
+ */
7
+ import type { ReactNode } from "react";
8
+ import type { FixedView } from "../storyGlobals.ts";
9
+ import type { ViewState } from "../viewState.ts";
10
+ /**
11
+ * The colour scheme switch and the contrast switch, at the toolbar's start: the scheme as segments with icons, a
12
+ * two-value contrast as a toggle (a longer one as segments).
13
+ *
14
+ * @param props - the view, its setter, and whether a story's page is shown (the compare view sets them there).
15
+ */
16
+ export declare const SchemeSwitches: ({ view, onViewChange, isStoryPage, fixed }: {
17
+ /** The view shown. */
18
+ readonly view: ViewState;
19
+ /** Called with the changed view. */
20
+ readonly onViewChange: (view: ViewState) => void;
21
+ readonly isStoryPage: boolean;
22
+ readonly fixed: FixedView;
23
+ }) => ReactNode;
24
+ //# sourceMappingURL=SchemeSwitches.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SchemeSwitches.d.ts","sourceRoot":"","sources":["../../../src/shell/SchemeSwitches.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAcjD;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GAAI,4CAK5B;IACD,sBAAsB;IACtB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,oCAAoC;IACpC,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;CAC3B,KAAG,SAiDH,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { switchWithRole } from "../switches.js";
3
+ import { useCatalogue } from "./catalogueContext.js";
4
+ import { Icon } from "./icons.js";
5
+ import { Segmented } from "./Segmented.js";
6
+ import { STRINGS } from "./strings.js";
7
+ import { switchValueIn, withSwitch } from "./switchView.js";
8
+ /** The icon of each scheme a colour scheme switch's values draw in. */
9
+ const SCHEME_ICONS = {
10
+ light: "sun",
11
+ dark: "moon",
12
+ system: "monitor"
13
+ };
14
+ /**
15
+ * The colour scheme switch and the contrast switch, at the toolbar's start: the scheme as segments with icons, a
16
+ * two-value contrast as a toggle (a longer one as segments).
17
+ *
18
+ * @param props - the view, its setter, and whether a story's page is shown (the compare view sets them there).
19
+ */
20
+ export const SchemeSwitches = ({ view, onViewChange, isStoryPage, fixed }) => {
21
+ const switches = useCatalogue().switches;
22
+ const scheme = switchWithRole(switches, "colorScheme");
23
+ const contrast = switchWithRole(switches, "contrast");
24
+ const isFixed = (each) => fixed.switches[each.id] !== undefined;
25
+ const isCompared = (each) => (isStoryPage && view.compare.includes(each.id)) || isFixed(each);
26
+ const more = contrast?.values.find((value) => value.isMore === true);
27
+ const standard = contrast?.values.find((value) => value.isMore !== true);
28
+ if (scheme === undefined && contrast === undefined)
29
+ return null;
30
+ return (_jsxs("div", { className: "forgebook-toolbar__group", children: [scheme === undefined ? null : (_jsx(Segmented, { label: scheme.label, isDisabled: isCompared(scheme), disabledNote: isFixed(scheme) ? STRINGS.setByStory : undefined, options: scheme.values.map((value) => ({
31
+ value: value.value,
32
+ label: value.label,
33
+ icon: SCHEME_ICONS[value.scheme ?? "light"]
34
+ })), value: switchValueIn(view, scheme), onValueChange: (value) => onViewChange(withSwitch(view, scheme, value)) })), contrast === undefined || more === undefined || standard === undefined ? null : (_jsxs("button", { type: "button", className: "forgebook-button", title: isFixed(contrast) ? STRINGS.setByStory : contrast.label, "aria-pressed": switchValueIn(view, contrast) === more.value, disabled: isCompared(contrast), onClick: () => onViewChange(withSwitch(view, contrast, switchValueIn(view, contrast) === more.value ? standard.value : more.value)), children: [_jsx(Icon, { name: "contrast", size: 14 }), _jsx("span", { className: "forgebook-button__label", children: contrast.label })] }))] }));
35
+ };
36
+ //# sourceMappingURL=SchemeSwitches.js.map