forgebook 0.3.3 → 0.4.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 (690) hide show
  1. package/README.md +914 -72
  2. package/dist/bin/forgebook/agentClient.d.ts +2 -1
  3. package/dist/bin/forgebook/agentClient.js +13 -6
  4. package/dist/bin/forgebook/agentGuide.d.ts +59 -0
  5. package/dist/bin/forgebook/agentGuide.js +203 -0
  6. package/dist/bin/forgebook/agentLoopCommands.mjs +22 -42
  7. package/dist/bin/forgebook/agentSetup/agentFiles.d.ts +55 -0
  8. package/dist/bin/forgebook/agentSetup/agentFiles.js +319 -0
  9. package/dist/bin/forgebook/agentSetup/assistantHooks.d.ts +71 -0
  10. package/dist/bin/forgebook/agentSetup/assistantHooks.js +125 -0
  11. package/dist/bin/forgebook/agentSetup/ciWorkflow.d.ts +23 -0
  12. package/dist/bin/forgebook/agentSetup/ciWorkflow.js +55 -0
  13. package/dist/bin/forgebook/agentSetup/drawCandidates.d.ts +25 -0
  14. package/dist/bin/forgebook/agentSetup/drawCandidates.js +116 -0
  15. package/dist/bin/forgebook/agentSetup/drawDiagnosis.d.ts +28 -0
  16. package/dist/bin/forgebook/agentSetup/drawDiagnosis.js +134 -0
  17. package/dist/bin/forgebook/agentSetup/drawRun.d.ts +91 -0
  18. package/dist/bin/forgebook/agentSetup/drawRun.js +353 -0
  19. package/dist/bin/forgebook/agentSetup/hookNames.d.ts +7 -0
  20. package/dist/bin/forgebook/agentSetup/hookNames.js +7 -0
  21. package/dist/bin/forgebook/agentSetup/initAgentSteps.d.ts +48 -0
  22. package/dist/bin/forgebook/agentSetup/initAgentSteps.js +104 -0
  23. package/dist/bin/forgebook/agentSetup/liftedProviders.d.ts +17 -0
  24. package/dist/bin/forgebook/agentSetup/liftedProviders.js +186 -0
  25. package/dist/bin/forgebook/agentSetup/projectRunner.d.ts +46 -0
  26. package/dist/bin/forgebook/agentSetup/projectRunner.js +85 -0
  27. package/dist/bin/forgebook/agentSetup/stopHook.d.ts +65 -0
  28. package/dist/bin/forgebook/agentSetup/stopHook.js +202 -0
  29. package/dist/bin/forgebook/agentSetup/uniformPicture.d.ts +7 -0
  30. package/dist/bin/forgebook/agentSetup/uniformPicture.js +98 -0
  31. package/dist/bin/forgebook/agentSetupCommands.d.mts +14 -0
  32. package/dist/bin/forgebook/agentSetupCommands.mjs +98 -0
  33. package/dist/bin/forgebook/agentText.d.ts +23 -3
  34. package/dist/bin/forgebook/agentText.js +175 -28
  35. package/dist/bin/forgebook/agents.md +20 -191
  36. package/dist/bin/forgebook/agentsText.js +2 -1
  37. package/dist/bin/forgebook/appBuild/appBuild.d.ts +59 -0
  38. package/dist/bin/forgebook/appBuild/appBuild.js +213 -0
  39. package/dist/bin/forgebook/appBuild/appViteConfig.d.ts +96 -0
  40. package/dist/bin/forgebook/appBuild/appViteConfig.js +320 -0
  41. package/dist/bin/forgebook/appBuild/tsconfigPaths.d.ts +14 -0
  42. package/dist/bin/forgebook/appBuild/tsconfigPaths.js +80 -0
  43. package/dist/bin/forgebook/auditCommand.d.mts +8 -0
  44. package/dist/bin/forgebook/auditCommand.mjs +75 -0
  45. package/dist/bin/forgebook/auditRun.d.ts +95 -0
  46. package/dist/bin/forgebook/auditRun.js +270 -0
  47. package/dist/bin/forgebook/browserRun.d.ts +21 -0
  48. package/dist/bin/forgebook/browserRun.js +57 -0
  49. package/dist/bin/forgebook/buildFailure.d.ts +7 -0
  50. package/dist/bin/forgebook/buildFailure.js +47 -0
  51. package/dist/bin/forgebook/buildWatch.d.ts +52 -0
  52. package/dist/bin/forgebook/buildWatch.js +137 -0
  53. package/dist/bin/forgebook/builtCatalogue.js +9 -5
  54. package/dist/bin/forgebook/catalogueCommands.d.ts +9 -0
  55. package/dist/bin/forgebook/catalogueCommands.js +23 -0
  56. package/dist/bin/forgebook/catalogueVite.d.ts +5 -1
  57. package/dist/bin/forgebook/catalogueVite.js +14 -6
  58. package/dist/bin/forgebook/commandCacheClaim.d.ts +18 -0
  59. package/dist/bin/forgebook/commandCacheClaim.js +170 -0
  60. package/dist/bin/forgebook/commandServer.d.ts +8 -0
  61. package/dist/bin/forgebook/commandServer.js +61 -13
  62. package/dist/bin/forgebook/forgebookCommands.mjs +105 -28
  63. package/dist/bin/forgebook/graphCommand.d.mts +8 -0
  64. package/dist/bin/forgebook/graphCommand.mjs +84 -0
  65. package/dist/bin/forgebook/guide/commands.md +57 -0
  66. package/dist/bin/forgebook/guide/devices.md +17 -0
  67. package/dist/bin/forgebook/guide/docs-pages.md +13 -0
  68. package/dist/bin/forgebook/guide/frameworks/angular.md +22 -0
  69. package/dist/bin/forgebook/guide/frameworks/html.md +22 -0
  70. package/dist/bin/forgebook/guide/frameworks/nextjs.md +23 -0
  71. package/dist/bin/forgebook/guide/frameworks/nuxt.md +22 -0
  72. package/dist/bin/forgebook/guide/frameworks/preact.md +16 -0
  73. package/dist/bin/forgebook/guide/frameworks/react-native-web.md +21 -0
  74. package/dist/bin/forgebook/guide/frameworks/react.md +16 -0
  75. package/dist/bin/forgebook/guide/frameworks/solid.md +18 -0
  76. package/dist/bin/forgebook/guide/frameworks/svelte.md +18 -0
  77. package/dist/bin/forgebook/guide/frameworks/sveltekit.md +23 -0
  78. package/dist/bin/forgebook/guide/frameworks/vue.md +18 -0
  79. package/dist/bin/forgebook/guide/frameworks/web-components.md +21 -0
  80. package/dist/bin/forgebook/guide/links.md +29 -0
  81. package/dist/bin/forgebook/guide/setup.md +23 -0
  82. package/dist/bin/forgebook/guide/stories.md +90 -0
  83. package/dist/bin/forgebook/guide/switches.md +43 -0
  84. package/dist/bin/forgebook/guideCommand.d.mts +13 -0
  85. package/dist/bin/forgebook/guideCommand.mjs +37 -0
  86. package/dist/bin/forgebook/importers/storybook.d.ts +21 -0
  87. package/dist/bin/forgebook/importers/storybook.js +11 -5
  88. package/dist/bin/forgebook/importers/storybookFrameworks.js +1 -1
  89. package/dist/bin/forgebook/initCommands.d.mts +11 -0
  90. package/dist/bin/forgebook/initCommands.mjs +51 -78
  91. package/dist/bin/forgebook/initConfig.d.ts +5 -3
  92. package/dist/bin/forgebook/initConfig.js +6 -3
  93. package/dist/bin/forgebook/initInstall.d.ts +15 -0
  94. package/dist/bin/forgebook/initInstall.js +77 -0
  95. package/dist/bin/forgebook/initPrint.d.ts +9 -0
  96. package/dist/bin/forgebook/initPrint.js +60 -0
  97. package/dist/bin/forgebook/initRefusals.d.ts +45 -0
  98. package/dist/bin/forgebook/initRefusals.js +91 -0
  99. package/dist/bin/forgebook/initRun.d.ts +28 -0
  100. package/dist/bin/forgebook/initRun.js +311 -0
  101. package/dist/bin/forgebook/mcpCommand.mjs +38 -4
  102. package/dist/bin/forgebook/mcpGraph.d.ts +13 -0
  103. package/dist/bin/forgebook/mcpGraph.js +24 -0
  104. package/dist/bin/forgebook/mcpTokens.d.ts +14 -0
  105. package/dist/bin/forgebook/mcpTokens.js +58 -0
  106. package/dist/bin/forgebook/mcpToolParts.d.ts +7 -0
  107. package/dist/bin/forgebook/mcpToolParts.js +10 -0
  108. package/dist/bin/forgebook/mcpTools.d.ts +13 -6
  109. package/dist/bin/forgebook/mcpTools.js +57 -90
  110. package/dist/bin/forgebook/mcpVerify.d.ts +16 -0
  111. package/dist/bin/forgebook/mcpVerify.js +36 -0
  112. package/dist/bin/forgebook/migrate/codemods.d.ts +11 -0
  113. package/dist/bin/forgebook/migrate/codemods.js +61 -0
  114. package/dist/bin/forgebook/migrate/migrate.types.d.ts +117 -0
  115. package/dist/bin/forgebook/migrate/migrate.types.js +5 -0
  116. package/dist/bin/forgebook/migrate/migrateCommand.d.mts +8 -0
  117. package/dist/bin/forgebook/migrate/migrateCommand.mjs +76 -0
  118. package/dist/bin/forgebook/migrate/migrateRun.d.ts +61 -0
  119. package/dist/bin/forgebook/migrate/migrateRun.js +210 -0
  120. package/dist/bin/forgebook/migrate/migrateText.d.ts +12 -0
  121. package/dist/bin/forgebook/migrate/migrateText.js +30 -0
  122. package/dist/bin/forgebook/migrate/migrateWrite.d.ts +27 -0
  123. package/dist/bin/forgebook/migrate/migrateWrite.js +66 -0
  124. package/dist/bin/forgebook/migrate/objectEdits.d.ts +70 -0
  125. package/dist/bin/forgebook/migrate/objectEdits.js +241 -0
  126. package/dist/bin/forgebook/migrate/playOnInBuilds.d.ts +3 -0
  127. package/dist/bin/forgebook/migrate/playOnInBuilds.js +86 -0
  128. package/dist/bin/forgebook/migrate/propGroupStrings.d.ts +5 -0
  129. package/dist/bin/forgebook/migrate/propGroupStrings.js +81 -0
  130. package/dist/bin/forgebook/newProject/newProject.d.ts +39 -0
  131. package/dist/bin/forgebook/newProject/newProject.js +180 -0
  132. package/dist/bin/forgebook/newProject/newProject.types.d.ts +97 -0
  133. package/dist/bin/forgebook/newProject/newProject.types.js +6 -0
  134. package/dist/bin/forgebook/newProject/packageManagers.d.ts +51 -0
  135. package/dist/bin/forgebook/newProject/packageManagers.js +121 -0
  136. package/dist/bin/forgebook/newProject/projectEntries.d.ts +62 -0
  137. package/dist/bin/forgebook/newProject/projectEntries.js +191 -0
  138. package/dist/bin/forgebook/newProject/projectFrameworks.d.ts +57 -0
  139. package/dist/bin/forgebook/newProject/projectFrameworks.js +148 -0
  140. package/dist/bin/forgebook/newProject/projectLook.d.ts +23 -0
  141. package/dist/bin/forgebook/newProject/projectLook.js +293 -0
  142. package/dist/bin/forgebook/newProject/projectPackages.d.ts +66 -0
  143. package/dist/bin/forgebook/newProject/projectPackages.js +178 -0
  144. package/dist/bin/forgebook/newRepair.d.ts +45 -0
  145. package/dist/bin/forgebook/newRepair.js +157 -0
  146. package/dist/bin/forgebook/newRepairRun.d.ts +69 -0
  147. package/dist/bin/forgebook/newRepairRun.js +148 -0
  148. package/dist/bin/forgebook/newStories.d.ts +23 -1
  149. package/dist/bin/forgebook/newStories.js +101 -11
  150. package/dist/bin/forgebook/newStoriesFile.d.ts +20 -1
  151. package/dist/bin/forgebook/newStoriesFile.js +43 -4
  152. package/dist/bin/forgebook/prebundleRun.d.ts +3 -1
  153. package/dist/bin/forgebook/prebundleRun.js +28 -8
  154. package/dist/bin/forgebook/proofCommand.d.mts +15 -0
  155. package/dist/bin/forgebook/proofCommand.mjs +212 -0
  156. package/dist/bin/forgebook/proofRun.d.ts +63 -0
  157. package/dist/bin/forgebook/proofRun.js +412 -0
  158. package/dist/bin/forgebook/proofText.d.ts +36 -0
  159. package/dist/bin/forgebook/proofText.js +131 -0
  160. package/dist/bin/forgebook/proofWorkflow.d.ts +29 -0
  161. package/dist/bin/forgebook/proofWorkflow.js +205 -0
  162. package/dist/bin/forgebook/setArgsTool.d.ts +8 -0
  163. package/dist/bin/forgebook/setArgsTool.js +70 -0
  164. package/dist/bin/forgebook/storyCheckCommands.mjs +42 -3
  165. package/dist/bin/forgebook/storyCheckRun.d.ts +50 -0
  166. package/dist/bin/forgebook/storyCheckRun.js +83 -9
  167. package/dist/bin/forgebook/storyFileIds.d.ts +15 -0
  168. package/dist/bin/forgebook/storyFileIds.js +14 -0
  169. package/dist/bin/forgebook/stressCases.d.ts +31 -0
  170. package/dist/bin/forgebook/stressCases.js +79 -0
  171. package/dist/bin/forgebook/stressRun.d.ts +12 -0
  172. package/dist/bin/forgebook/stressRun.js +61 -0
  173. package/dist/bin/forgebook/stressText.d.ts +27 -0
  174. package/dist/bin/forgebook/stressText.js +46 -0
  175. package/dist/bin/forgebook/verifyBase.d.ts +45 -0
  176. package/dist/bin/forgebook/verifyBase.js +196 -0
  177. package/dist/bin/forgebook/verifyCommand.d.mts +13 -0
  178. package/dist/bin/forgebook/verifyCommand.mjs +125 -0
  179. package/dist/bin/forgebook/verifyRun.d.ts +63 -0
  180. package/dist/bin/forgebook/verifyRun.js +108 -0
  181. package/dist/bin/forgebook/verifyVerdict.d.ts +40 -0
  182. package/dist/bin/forgebook/verifyVerdict.js +297 -0
  183. package/dist/bin/forgebook/workflowActions.d.ts +23 -0
  184. package/dist/bin/forgebook/workflowActions.js +23 -0
  185. package/dist/bin/forgebook-docs/catalogueMarkdown.js +12 -1
  186. package/dist/src/addressArgs.d.ts +29 -5
  187. package/dist/src/addressArgs.js +58 -16
  188. package/dist/src/addressArgsParam.d.ts +54 -0
  189. package/dist/src/addressArgsParam.js +51 -0
  190. package/dist/src/addressTexts.d.ts +14 -0
  191. package/dist/src/addressTexts.js +28 -21
  192. package/dist/src/agentIndexFile.d.ts +11 -0
  193. package/dist/src/agentIndexFile.js +11 -0
  194. package/dist/src/argConditions.d.ts +52 -0
  195. package/dist/src/argConditions.js +80 -0
  196. package/dist/src/argControl.d.ts +100 -0
  197. package/dist/src/argControl.js +0 -0
  198. package/dist/src/argExpression.d.ts +21 -0
  199. package/dist/src/argExpression.js +30 -0
  200. package/dist/src/argTypes.d.ts +40 -51
  201. package/dist/src/argTypes.js +66 -184
  202. package/dist/src/argsProps.d.ts +3 -3
  203. package/dist/src/argsProps.js +11 -5
  204. package/dist/src/bundlerErrors.d.ts +29 -0
  205. package/dist/src/bundlerErrors.js +49 -0
  206. package/dist/src/catalogue.d.ts +31 -0
  207. package/dist/src/catalogue.js +13 -2
  208. package/dist/src/catalogueRefs.d.ts +75 -0
  209. package/dist/src/catalogueRefs.js +122 -0
  210. package/dist/src/componentDocs.d.ts +71 -0
  211. package/dist/src/componentDocs.js +15 -2
  212. package/dist/src/frame/callValues.d.ts +19 -0
  213. package/dist/src/frame/callValues.js +58 -0
  214. package/dist/src/frame/canvasScheme.d.ts +33 -0
  215. package/dist/src/frame/canvasScheme.js +67 -0
  216. package/dist/src/frame/frame.css +36 -3
  217. package/dist/src/frame/frameStatus.d.ts +16 -1
  218. package/dist/src/frame/frameStatus.js +16 -1
  219. package/dist/src/frame/frameView.js +4 -3
  220. package/dist/src/frame/mountFrame.d.ts +7 -1
  221. package/dist/src/frame/mountFrame.js +153 -46
  222. package/dist/src/frame/panelValues.d.ts +35 -0
  223. package/dist/src/frame/panelValues.js +127 -0
  224. package/dist/src/frame/playActions.d.ts +39 -0
  225. package/dist/src/frame/playActions.js +98 -0
  226. package/dist/src/frame/playStepper.d.ts +28 -0
  227. package/dist/src/frame/playStepper.js +38 -0
  228. package/dist/src/frame/playStory.d.ts +9 -1
  229. package/dist/src/frame/playStory.js +49 -3
  230. package/dist/src/frame/renderer.d.ts +34 -1
  231. package/dist/src/frame/renderer.js +24 -0
  232. package/dist/src/frame/shellChannel.d.ts +1 -1
  233. package/dist/src/frame/shellChannel.js +1 -1
  234. package/dist/src/frame/shellCheck.d.ts +17 -0
  235. package/dist/src/frame/shellCheck.js +25 -0
  236. package/dist/src/frame/shellMessageCheck.d.ts +7 -0
  237. package/dist/src/frame/shellMessageCheck.js +53 -0
  238. package/dist/src/frame/storyContent.d.ts +50 -0
  239. package/dist/src/frame/storyContent.js +73 -0
  240. package/dist/src/frame/storyModule.d.ts +9 -0
  241. package/dist/src/frame/storyModule.js +20 -2
  242. package/dist/src/frame/storyRun.d.ts +15 -7
  243. package/dist/src/frame/storyRun.js +64 -15
  244. package/dist/src/frame/valueSheets.d.ts +35 -0
  245. package/dist/src/frame/valueSheets.js +99 -0
  246. package/dist/src/hotModules.d.ts +20 -0
  247. package/dist/src/hotModules.js +23 -0
  248. package/dist/src/jsxCode.d.ts +1 -14
  249. package/dist/src/jsxCode.js +46 -10
  250. package/dist/src/liveErrors.d.ts +30 -4
  251. package/dist/src/liveErrors.js +18 -3
  252. package/dist/src/messages.d.ts +77 -27
  253. package/dist/src/messages.js +58 -100
  254. package/dist/src/namedValues.d.ts +2 -26
  255. package/dist/src/namedValues.js +0 -47
  256. package/dist/src/pageConfig.d.ts +2 -0
  257. package/dist/src/playTrace.d.ts +19 -2
  258. package/dist/src/playTrace.js +10 -5
  259. package/dist/src/plugin.d.ts +10 -3
  260. package/dist/src/previewRelay.js +9 -1
  261. package/dist/src/printable.d.ts +12 -0
  262. package/dist/src/printable.js +22 -0
  263. package/dist/src/propsSignature.d.ts +37 -0
  264. package/dist/src/propsSignature.js +40 -0
  265. package/dist/src/search.d.ts +41 -5
  266. package/dist/src/search.js +93 -23
  267. package/dist/src/searchMatch.d.ts +4 -1
  268. package/dist/src/searchMatch.js +26 -5
  269. package/dist/src/searchTypos.d.ts +88 -0
  270. package/dist/src/searchTypos.js +178 -0
  271. package/dist/src/shapeValues.d.ts +86 -0
  272. package/dist/src/shapeValues.js +295 -0
  273. package/dist/src/shell/ApiReference.js +6 -3
  274. package/dist/src/shell/ApiTableBox.d.ts +15 -0
  275. package/dist/src/shell/ApiTableBox.js +11 -0
  276. package/dist/src/shell/AppearanceMenu.d.ts +4 -1
  277. package/dist/src/shell/AppearanceMenu.js +9 -6
  278. package/dist/src/shell/CodeTab.d.ts +3 -2
  279. package/dist/src/shell/CodeTab.js +3 -2
  280. package/dist/src/shell/CodeText.d.ts +1 -1
  281. package/dist/src/shell/CodeText.js +2 -3
  282. package/dist/src/shell/CompareGrid.js +1 -1
  283. package/dist/src/shell/ComponentPage.d.ts +1 -1
  284. package/dist/src/shell/ComponentPage.js +5 -1
  285. package/dist/src/shell/CustomControl.d.ts +34 -0
  286. package/dist/src/shell/CustomControl.js +132 -0
  287. package/dist/src/shell/DocContainers.js +1 -1
  288. package/dist/src/shell/DocPage.js +2 -2
  289. package/dist/src/shell/DroppedArgsList.d.ts +2 -2
  290. package/dist/src/shell/DroppedArgsList.js +1 -1
  291. package/dist/src/shell/EmbedPage.js +30 -12
  292. package/dist/src/shell/Example.d.ts +5 -1
  293. package/dist/src/shell/Example.js +16 -8
  294. package/dist/src/shell/FrameView.d.ts +6 -3
  295. package/dist/src/shell/FrameView.js +2 -2
  296. package/dist/src/shell/HomePage.d.ts +3 -1
  297. package/dist/src/shell/HomePage.js +16 -6
  298. package/dist/src/shell/InfoTip.js +2 -2
  299. package/dist/src/shell/InteractionsTab.d.ts +11 -4
  300. package/dist/src/shell/InteractionsTab.js +18 -2
  301. package/dist/src/shell/LazyPage.js +1 -1
  302. package/dist/src/shell/PackageHtml.js +3 -1
  303. package/dist/src/shell/PinnedControl.js +14 -62
  304. package/dist/src/shell/PinnedControlMenu.d.ts +44 -0
  305. package/dist/src/shell/PinnedControlMenu.js +72 -0
  306. package/dist/src/shell/PropFields.d.ts +3 -1
  307. package/dist/src/shell/PropFields.js +9 -6
  308. package/dist/src/shell/PropRows.d.ts +23 -2
  309. package/dist/src/shell/PropRows.js +58 -19
  310. package/dist/src/shell/PropsTab.d.ts +12 -5
  311. package/dist/src/shell/PropsTab.js +9 -21
  312. package/dist/src/shell/RefStoryPage.d.ts +33 -0
  313. package/dist/src/shell/RefStoryPage.js +123 -0
  314. package/dist/src/shell/SearchPanel.js +51 -24
  315. package/dist/src/shell/Shell.d.ts +18 -0
  316. package/dist/src/shell/Shell.js +137 -22
  317. package/dist/src/shell/ShortcutHelp.d.ts +22 -0
  318. package/dist/src/shell/ShortcutHelp.js +66 -0
  319. package/dist/src/shell/Sidebar.d.ts +17 -4
  320. package/dist/src/shell/Sidebar.js +92 -41
  321. package/dist/src/shell/SidebarDocs.js +2 -2
  322. package/dist/src/shell/SidebarEntries.js +5 -3
  323. package/dist/src/shell/SidebarHandle.d.ts +3 -5
  324. package/dist/src/shell/SidebarHandle.js +4 -4
  325. package/dist/src/shell/SidebarRefs.d.ts +39 -0
  326. package/dist/src/shell/SidebarRefs.js +99 -0
  327. package/dist/src/shell/SidebarSearch.js +37 -9
  328. package/dist/src/shell/SignatureReference.js +3 -1
  329. package/dist/src/shell/Stage.d.ts +10 -2
  330. package/dist/src/shell/Stage.js +29 -49
  331. package/dist/src/shell/StatusBadges.d.ts +54 -0
  332. package/dist/src/shell/StatusBadges.js +77 -0
  333. package/dist/src/shell/StoryCodeBlock.d.ts +8 -19
  334. package/dist/src/shell/StoryCodeBlock.js +7 -6
  335. package/dist/src/shell/SwitchGallery.d.ts +36 -0
  336. package/dist/src/shell/SwitchGallery.js +17 -0
  337. package/dist/src/shell/SwitchGalleryPanel.d.ts +37 -0
  338. package/dist/src/shell/SwitchGalleryPanel.js +99 -0
  339. package/dist/src/shell/TagFilter.d.ts +24 -0
  340. package/dist/src/shell/TagFilter.js +45 -0
  341. package/dist/src/shell/TagViews.d.ts +39 -0
  342. package/dist/src/shell/TagViews.js +20 -0
  343. package/dist/src/shell/Toolbar.d.ts +4 -1
  344. package/dist/src/shell/Toolbar.js +17 -7
  345. package/dist/src/shell/ToolbarControl.d.ts +3 -0
  346. package/dist/src/shell/ToolbarControl.js +23 -6
  347. package/dist/src/shell/ViewMenuPanel.js +6 -1
  348. package/dist/src/shell/argChecks.d.ts +22 -0
  349. package/dist/src/shell/argChecks.js +20 -0
  350. package/dist/src/shell/asideStory.js +7 -2
  351. package/dist/src/shell/audienceSections.css +9 -9
  352. package/dist/src/shell/catalogueContext.d.ts +1 -1
  353. package/dist/src/shell/catalogueContext.js +6 -1
  354. package/dist/src/shell/codeSpans.d.ts +27 -0
  355. package/dist/src/shell/codeSpans.js +76 -0
  356. package/dist/src/shell/compareVariants.d.ts +4 -2
  357. package/dist/src/shell/compareVariants.js +16 -8
  358. package/dist/src/shell/composition.d.ts +23 -0
  359. package/dist/src/shell/composition.js +26 -0
  360. package/dist/src/shell/controlCycle.d.ts +1 -1
  361. package/dist/src/shell/controlCycle.js +3 -2
  362. package/dist/src/shell/customControls.d.ts +55 -0
  363. package/dist/src/shell/customControls.js +70 -0
  364. package/dist/src/shell/docPage.css +22 -22
  365. package/dist/src/shell/dockTabs.d.ts +19 -3
  366. package/dist/src/shell/dockTabs.js +28 -20
  367. package/dist/src/shell/embed.css +7 -7
  368. package/dist/src/shell/framesOrigin.d.ts +7 -0
  369. package/dist/src/shell/framesOrigin.js +1 -1
  370. package/dist/src/shell/galleryPlace.d.ts +20 -0
  371. package/dist/src/shell/galleryPlace.js +26 -0
  372. package/dist/src/shell/icons.d.ts +1 -0
  373. package/dist/src/shell/icons.js +1 -0
  374. package/dist/src/shell/keyboard.d.ts +14 -12
  375. package/dist/src/shell/keyboard.js +21 -6
  376. package/dist/src/shell/laterStrings.d.ts +29 -0
  377. package/dist/src/shell/laterStrings.js +42 -3
  378. package/dist/src/shell/mountShell.js +3 -0
  379. package/dist/src/shell/pageStrings.d.ts +4 -0
  380. package/dist/src/shell/pageStrings.js +4 -0
  381. package/dist/src/shell/pageTagView.d.ts +18 -0
  382. package/dist/src/shell/pageTagView.js +10 -0
  383. package/dist/src/shell/playMemory.d.ts +14 -0
  384. package/dist/src/shell/playMemory.js +8 -0
  385. package/dist/src/shell/propNotes.d.ts +23 -0
  386. package/dist/src/shell/propNotes.js +37 -0
  387. package/dist/src/shell/refIndexLoad.d.ts +17 -0
  388. package/dist/src/shell/refIndexLoad.js +38 -0
  389. package/dist/src/shell/refParts.d.ts +34 -0
  390. package/dist/src/shell/refParts.js +9 -0
  391. package/dist/src/shell/refStory.css +21 -0
  392. package/dist/src/shell/refStrings.d.ts +13 -0
  393. package/dist/src/shell/refStrings.js +21 -0
  394. package/dist/src/shell/search.css +11 -11
  395. package/dist/src/shell/shell.css +348 -168
  396. package/dist/src/shell/shellScheme.js +2 -2
  397. package/dist/src/shell/shortcutHelp.css +64 -0
  398. package/dist/src/shell/stageArgs.d.ts +53 -0
  399. package/dist/src/shell/stageArgs.js +64 -0
  400. package/dist/src/shell/statusBadges.css +51 -0
  401. package/dist/src/shell/strings.d.ts +7 -16
  402. package/dist/src/shell/strings.js +12 -17
  403. package/dist/src/shell/switchGallery.css +104 -0
  404. package/dist/src/shell/tagFilter.css +46 -0
  405. package/dist/src/shell/tagView.d.ts +20 -0
  406. package/dist/src/shell/tagView.js +10 -0
  407. package/dist/src/shell/useAddressArgs.d.ts +9 -0
  408. package/dist/src/shell/useAddressArgs.js +56 -11
  409. package/dist/src/shell/useControlKeys.js +2 -2
  410. package/dist/src/shell/useEditedProblems.d.ts +6 -0
  411. package/dist/src/shell/useEditedProblems.js +40 -0
  412. package/dist/src/shell/useFrameMessages.js +3 -0
  413. package/dist/src/shell/useListedTree.d.ts +13 -0
  414. package/dist/src/shell/useListedTree.js +32 -0
  415. package/dist/src/shell/usePageFrames.js +2 -2
  416. package/dist/src/shell/usePopover.d.ts +5 -0
  417. package/dist/src/shell/usePopover.js +7 -1
  418. package/dist/src/shell/useRefIndex.d.ts +22 -0
  419. package/dist/src/shell/useRefIndex.js +36 -0
  420. package/dist/src/shell/useScrollStops.d.ts +20 -0
  421. package/dist/src/shell/useScrollStops.js +41 -0
  422. package/dist/src/shell/useShortcutHelp.d.ts +18 -0
  423. package/dist/src/shell/useShortcutHelp.js +32 -0
  424. package/dist/src/shell/useSidebarOverlay.d.ts +2 -1
  425. package/dist/src/shell/useSidebarOverlay.js +12 -4
  426. package/dist/src/shell/useStoryCode.d.ts +2 -1
  427. package/dist/src/shell/useStoryCode.js +12 -7
  428. package/dist/src/shell/useToolbarLayout.d.ts +5 -1
  429. package/dist/src/shell/useToolbarLayout.js +2 -2
  430. package/dist/src/shell/useWorstCase.d.ts +8 -2
  431. package/dist/src/shell/useWorstCase.js +2 -2
  432. package/dist/src/shell/valueEditors/FileEditor.d.ts +28 -0
  433. package/dist/src/shell/valueEditors/FileEditor.js +66 -0
  434. package/dist/src/shell/valueEditors/JsonEditor.d.ts +14 -0
  435. package/dist/src/shell/valueEditors/JsonEditor.js +53 -0
  436. package/dist/src/shell/valueEditors/ListEditor.d.ts +24 -0
  437. package/dist/src/shell/valueEditors/ListEditor.js +82 -0
  438. package/dist/src/shell/valueEditors/ObjectEditor.d.ts +32 -0
  439. package/dist/src/shell/valueEditors/ObjectEditor.js +70 -0
  440. package/dist/src/shell/valueEditors/PropEditor.d.ts +37 -0
  441. package/dist/src/shell/valueEditors/PropEditor.js +53 -0
  442. package/dist/src/shell/valueEditors/RecordEditor.d.ts +20 -0
  443. package/dist/src/shell/valueEditors/RecordEditor.js +84 -0
  444. package/dist/src/shell/valueEditors/SearchSelect.d.ts +42 -0
  445. package/dist/src/shell/valueEditors/SearchSelect.js +80 -0
  446. package/dist/src/shell/valueEditors/TokenEditor.d.ts +49 -0
  447. package/dist/src/shell/valueEditors/TokenEditor.js +74 -0
  448. package/dist/src/shell/valueEditors/UnionEditor.d.ts +20 -0
  449. package/dist/src/shell/valueEditors/UnionEditor.js +64 -0
  450. package/dist/src/shell/valueEditors/ValueField.d.ts +15 -0
  451. package/dist/src/shell/valueEditors/ValueField.js +147 -0
  452. package/dist/src/shell/valueEditors/editorStrings.d.ts +56 -0
  453. package/dist/src/shell/valueEditors/editorStrings.js +66 -0
  454. package/dist/src/shell/valueEditors/fieldTypes.d.ts +31 -0
  455. package/dist/src/shell/valueEditors/fieldTypes.js +0 -0
  456. package/dist/src/shell/valueEditors/valueEditors.css +153 -0
  457. package/dist/src/shell/worstArgs.d.ts +8 -5
  458. package/dist/src/shell/worstArgs.js +14 -7
  459. package/dist/src/shellTheme.d.ts +1 -1
  460. package/dist/src/shellTheme.js +15 -1
  461. package/dist/src/shellTheme.types.d.ts +4 -0
  462. package/dist/src/shellWord.d.ts +12 -0
  463. package/dist/src/shellWord.js +15 -0
  464. package/dist/src/sourceFiles.js +2 -1
  465. package/dist/src/storyArgTypes.d.ts +57 -0
  466. package/dist/src/storyArgTypes.js +195 -0
  467. package/dist/src/storyBackground.js +14 -3
  468. package/dist/src/storyCheck.d.ts +85 -3
  469. package/dist/src/storyCheck.js +23 -1
  470. package/dist/src/storyCodeText.d.ts +46 -0
  471. package/dist/src/storyCodeText.js +27 -0
  472. package/dist/src/storyControls.d.ts +100 -0
  473. package/dist/src/storyControls.js +100 -0
  474. package/dist/src/storyStatuses.d.ts +55 -0
  475. package/dist/src/storyStatuses.js +104 -0
  476. package/dist/src/storyTagNames.d.ts +25 -0
  477. package/dist/src/storyTagNames.js +25 -0
  478. package/dist/src/storyTags.d.ts +29 -0
  479. package/dist/src/storyTags.js +85 -0
  480. package/dist/src/storyTree.d.ts +13 -0
  481. package/dist/src/storyTree.js +24 -4
  482. package/dist/src/storybookArgs.d.ts +24 -0
  483. package/dist/src/storybookArgs.js +185 -0
  484. package/dist/src/switches.d.ts +66 -3
  485. package/dist/src/switches.js +42 -1
  486. package/dist/src/valueSchema.d.ts +28 -0
  487. package/dist/src/valueSchema.js +196 -0
  488. package/dist/src/valueShape.d.ts +94 -0
  489. package/dist/src/valueShape.js +25 -0
  490. package/dist/src/viewState.d.ts +8 -3
  491. package/dist/src/viewState.js +27 -10
  492. package/dist/src/vite/adapter.d.ts +40 -2
  493. package/dist/src/vite/adapter.js +1 -0
  494. package/dist/src/vite/agent.types.d.ts +347 -7
  495. package/dist/src/vite/agentApi.d.ts +23 -0
  496. package/dist/src/vite/agentApi.js +90 -17
  497. package/dist/src/vite/agentIndex.d.ts +0 -2
  498. package/dist/src/vite/agentIndex.js +5 -6
  499. package/dist/src/vite/agentRoutes.d.ts +20 -1
  500. package/dist/src/vite/agentRoutes.js +106 -65
  501. package/dist/src/vite/agentStatuses.d.ts +42 -0
  502. package/dist/src/vite/agentStatuses.js +67 -0
  503. package/dist/src/vite/agentStoryCode.d.ts +48 -0
  504. package/dist/src/vite/agentStoryCode.js +38 -0
  505. package/dist/src/vite/agentVisibility.d.ts +47 -0
  506. package/dist/src/vite/agentVisibility.js +174 -0
  507. package/dist/src/vite/appAudit.d.ts +134 -0
  508. package/dist/src/vite/appAudit.js +333 -0
  509. package/dist/src/vite/appBuildOption.d.ts +53 -0
  510. package/dist/src/vite/appBuildOption.js +55 -0
  511. package/dist/src/vite/appTokenFiles.d.ts +92 -0
  512. package/dist/src/vite/appTokenFiles.js +433 -0
  513. package/dist/src/vite/appTokens.d.ts +23 -0
  514. package/dist/src/vite/appTokens.js +275 -0
  515. package/dist/src/vite/builtTexts.d.ts +10 -0
  516. package/dist/src/vite/builtTexts.js +59 -22
  517. package/dist/src/vite/catalogueConfig.d.ts +3 -1
  518. package/dist/src/vite/catalogueConfig.js +15 -3
  519. package/dist/src/vite/changeCoverage.d.ts +74 -0
  520. package/dist/src/vite/changeCoverage.js +120 -0
  521. package/dist/src/vite/changedRoute.d.ts +30 -0
  522. package/dist/src/vite/changedRoute.js +197 -0
  523. package/dist/src/vite/checkCode.d.ts +105 -3
  524. package/dist/src/vite/checkCode.js +323 -36
  525. package/dist/src/vite/checkoutWatch.d.ts +97 -0
  526. package/dist/src/vite/checkoutWatch.js +287 -0
  527. package/dist/src/vite/closeWatch.d.ts +8 -0
  528. package/dist/src/vite/closeWatch.js +1 -1
  529. package/dist/src/vite/componentCache.d.ts +8 -0
  530. package/dist/src/vite/componentCache.js +66 -0
  531. package/dist/src/vite/componentGraph.d.ts +71 -0
  532. package/dist/src/vite/componentGraph.js +133 -0
  533. package/dist/src/vite/componentRules.d.ts +33 -0
  534. package/dist/src/vite/componentRules.js +105 -0
  535. package/dist/src/vite/componentScan.d.ts +69 -0
  536. package/dist/src/vite/componentScan.js +418 -0
  537. package/dist/src/vite/compositionCheck.d.ts +15 -0
  538. package/dist/src/vite/compositionCheck.js +243 -0
  539. package/dist/src/vite/config.d.ts +32 -1
  540. package/dist/src/vite/configFile.d.ts +14 -2
  541. package/dist/src/vite/configFile.js +124 -40
  542. package/dist/src/vite/configKeys.d.ts +15 -0
  543. package/dist/src/vite/configKeys.js +171 -0
  544. package/dist/src/vite/configLoadError.d.ts +23 -0
  545. package/dist/src/vite/configLoadError.js +71 -0
  546. package/dist/src/vite/cssDeclarations.d.ts +71 -0
  547. package/dist/src/vite/cssDeclarations.js +290 -0
  548. package/dist/src/vite/cssImports.d.ts +14 -0
  549. package/dist/src/vite/cssImports.js +48 -0
  550. package/dist/src/vite/cssReferences.d.ts +54 -0
  551. package/dist/src/vite/cssReferences.js +157 -0
  552. package/dist/src/vite/cssTokenValues.d.ts +50 -0
  553. package/dist/src/vite/cssTokenValues.js +233 -0
  554. package/dist/src/vite/designTokens.d.ts +24 -0
  555. package/dist/src/vite/designTokens.js +5 -1
  556. package/dist/src/vite/docsExtractor.d.ts +9 -3
  557. package/dist/src/vite/docsExtractor.js +11 -3
  558. package/dist/src/vite/docsProgram.d.ts +17 -4
  559. package/dist/src/vite/docsProgram.js +52 -11
  560. package/dist/src/vite/docsWorker.js +7 -2
  561. package/dist/src/vite/emptyStoryGlobs.d.ts +41 -0
  562. package/dist/src/vite/emptyStoryGlobs.js +52 -0
  563. package/dist/src/vite/fileImports.d.ts +17 -0
  564. package/dist/src/vite/fileImports.js +57 -0
  565. package/dist/src/vite/findComponent.d.ts +10 -2
  566. package/dist/src/vite/findComponent.js +27 -22
  567. package/dist/src/vite/findRoute.js +3 -2
  568. package/dist/src/vite/forcedStates.d.ts +9 -2
  569. package/dist/src/vite/forcedStates.js +12 -3
  570. package/dist/src/vite/forgebookPlugin.d.ts +2 -0
  571. package/dist/src/vite/forgebookPlugin.js +52 -72
  572. package/dist/src/vite/frameErrors.d.ts +19 -0
  573. package/dist/src/vite/frameErrors.js +70 -0
  574. package/dist/src/vite/framesServer.d.ts +12 -0
  575. package/dist/src/vite/framesServer.js +21 -4
  576. package/dist/src/vite/functionComponentDocs.js +81 -12
  577. package/dist/src/vite/generatedModules.js +4 -2
  578. package/dist/src/vite/gitChange.d.ts +38 -5
  579. package/dist/src/vite/gitChange.js +71 -11
  580. package/dist/src/vite/hiddenStoryFiles.d.ts +23 -0
  581. package/dist/src/vite/hiddenStoryFiles.js +107 -0
  582. package/dist/src/vite/hotSnippets.d.ts +38 -14
  583. package/dist/src/vite/hotSnippets.js +137 -39
  584. package/dist/src/vite/importedNames.d.ts +37 -0
  585. package/dist/src/vite/importedNames.js +138 -0
  586. package/dist/src/vite/indexFields.d.ts +6 -0
  587. package/dist/src/vite/indexFields.js +21 -0
  588. package/dist/src/vite/indexStoryFile.d.ts +8 -1
  589. package/dist/src/vite/indexStoryFile.js +22 -157
  590. package/dist/src/vite/jsxCallSites.d.ts +33 -0
  591. package/dist/src/vite/jsxCallSites.js +200 -0
  592. package/dist/src/vite/jsxInScripts.d.ts +67 -0
  593. package/dist/src/vite/jsxInScripts.js +138 -0
  594. package/dist/src/vite/jsxTree.d.ts +20 -0
  595. package/dist/src/vite/jsxTree.js +163 -0
  596. package/dist/src/vite/lineAndColumn.d.ts +13 -0
  597. package/dist/src/vite/lineAndColumn.js +18 -0
  598. package/dist/src/vite/lookAlikes.d.ts +65 -0
  599. package/dist/src/vite/lookAlikes.js +228 -0
  600. package/dist/src/vite/nearestToken.d.ts +17 -0
  601. package/dist/src/vite/nearestToken.js +9 -2
  602. package/dist/src/vite/packageEntries.d.ts +42 -0
  603. package/dist/src/vite/packageEntries.js +127 -0
  604. package/dist/src/vite/pages.d.ts +9 -1
  605. package/dist/src/vite/pages.js +108 -4
  606. package/dist/src/vite/pluginConfig.js +4 -0
  607. package/dist/src/vite/pluginIds.d.ts +2 -0
  608. package/dist/src/vite/pluginIds.js +5 -1
  609. package/dist/src/vite/pluginModules.d.ts +81 -11
  610. package/dist/src/vite/pluginModules.js +109 -21
  611. package/dist/src/vite/prebundled.d.ts +57 -15
  612. package/dist/src/vite/prebundled.js +80 -0
  613. package/dist/src/vite/previewTags.d.ts +25 -0
  614. package/dist/src/vite/previewTags.js +56 -0
  615. package/dist/src/vite/projectFiles.d.ts +54 -0
  616. package/dist/src/vite/projectFiles.js +116 -0
  617. package/dist/src/vite/projectPostcss.d.ts +70 -0
  618. package/dist/src/vite/projectPostcss.js +250 -0
  619. package/dist/src/vite/propDocs.d.ts +12 -0
  620. package/dist/src/vite/propDocs.js +130 -58
  621. package/dist/src/vite/propKind.d.ts +40 -0
  622. package/dist/src/vite/propKind.js +71 -0
  623. package/dist/src/vite/propTypeNotes.d.ts +22 -0
  624. package/dist/src/vite/propTypeNotes.js +51 -0
  625. package/dist/src/vite/publishedExports.d.ts +27 -0
  626. package/dist/src/vite/publishedExports.js +298 -0
  627. package/dist/src/vite/realFolder.d.ts +6 -0
  628. package/dist/src/vite/realFolder.js +25 -0
  629. package/dist/src/vite/refsConfig.d.ts +39 -0
  630. package/dist/src/vite/refsConfig.js +54 -0
  631. package/dist/src/vite/reuseCheck.d.ts +45 -0
  632. package/dist/src/vite/reuseCheck.js +260 -0
  633. package/dist/src/vite/runningVersions.d.ts +33 -0
  634. package/dist/src/vite/runningVersions.js +25 -0
  635. package/dist/src/vite/scriptProblems.d.ts +60 -0
  636. package/dist/src/vite/scriptProblems.js +155 -0
  637. package/dist/src/vite/searchModule.js +3 -2
  638. package/dist/src/vite/searchRoute.js +4 -2
  639. package/dist/src/vite/shapeDocs.d.ts +36 -0
  640. package/dist/src/vite/shapeDocs.js +177 -0
  641. package/dist/src/vite/singleFileComponent.d.ts +17 -0
  642. package/dist/src/vite/singleFileComponent.js +83 -0
  643. package/dist/src/vite/sourceText.d.ts +34 -0
  644. package/dist/src/vite/sourceText.js +72 -0
  645. package/dist/src/vite/sourceTokens.d.ts +7 -0
  646. package/dist/src/vite/sourceTokens.js +7 -2
  647. package/dist/src/vite/stackLines.d.ts +49 -0
  648. package/dist/src/vite/stackLines.js +96 -0
  649. package/dist/src/vite/storyCode.d.ts +22 -7
  650. package/dist/src/vite/storyCode.js +263 -37
  651. package/dist/src/vite/storyCoverage.d.ts +48 -0
  652. package/dist/src/vite/storyCoverage.js +179 -0
  653. package/dist/src/vite/storyFilesModule.d.ts +48 -3
  654. package/dist/src/vite/storyFilesModule.js +105 -15
  655. package/dist/src/vite/storyPatterns.d.ts +31 -0
  656. package/dist/src/vite/storyPatterns.js +140 -5
  657. package/dist/src/vite/storyReach.d.ts +10 -2
  658. package/dist/src/vite/storyReach.js +15 -11
  659. package/dist/src/vite/storyTopLevel.d.ts +51 -0
  660. package/dist/src/vite/storyTopLevel.js +146 -0
  661. package/dist/src/vite/storylessRoutes.d.ts +4 -3
  662. package/dist/src/vite/storylessRoutes.js +210 -19
  663. package/dist/src/vite/switchValuesCheck.d.ts +19 -0
  664. package/dist/src/vite/switchValuesCheck.js +164 -0
  665. package/dist/src/vite/switchesDocument.d.ts +15 -0
  666. package/dist/src/vite/switchesDocument.js +47 -0
  667. package/dist/src/vite/tailwindConfigTokens.d.ts +41 -0
  668. package/dist/src/vite/tailwindConfigTokens.js +306 -0
  669. package/dist/src/vite/textImports.d.ts +15 -0
  670. package/dist/src/vite/textImports.js +58 -0
  671. package/dist/src/vite/textModules.d.ts +6 -5
  672. package/dist/src/vite/textModules.js +13 -8
  673. package/dist/src/vite/tokenAnswers.d.ts +6 -2
  674. package/dist/src/vite/tokenAnswers.js +11 -7
  675. package/dist/src/vite/typeParameters.d.ts +83 -0
  676. package/dist/src/vite/typeParameters.js +270 -0
  677. package/dist/src/vite/unionProps.d.ts +37 -0
  678. package/dist/src/vite/unionProps.js +121 -0
  679. package/dist/src/vite/unresolvedTokens.d.ts +20 -0
  680. package/dist/src/vite/unresolvedTokens.js +193 -0
  681. package/dist/src/vite/usageGraph.js +10 -52
  682. package/dist/src/vite/usageGuidance.d.ts +9 -2
  683. package/dist/src/vite/usageGuidance.js +36 -8
  684. package/dist/src/vite/usageImports.d.ts +35 -0
  685. package/dist/src/vite/usageImports.js +280 -0
  686. package/dist/src/vite/visibilityRoute.d.ts +16 -0
  687. package/dist/src/vite/visibilityRoute.js +320 -0
  688. package/dist/src/worstCase.d.ts +2 -0
  689. package/dist/src/worstCase.js +2 -0
  690. package/package.json +28 -8
@@ -0,0 +1,333 @@
1
+ /**
2
+ * What a project actually uses: colours and sizes by how often, what is written by hand, and what the code asks of a token.
3
+ *
4
+ * @remarks
5
+ * Pure: files and tokens in, a report out. Discovery and not a system imposed: on a project with no tokens it says which
6
+ * values are the system in practice ("37 greys, 5 used 90% of the time"), and someone decides. It reads the same lines
7
+ * `check-code` does and leaves out what that leaves out, so the two never disagree on what a raw value is. Equal colours in
8
+ * different notations are one colour, since a palette is what the eye sees and not how a file spells it.
9
+ *
10
+ * @module
11
+ */
12
+ import { DEFINES_VALUE, LEFT_ALONE, LONGEST_LINE, rawColorsOf, roleInLine, SIZE, sizeTokens, withoutBlockComments, withoutComment } from "./checkCode.js";
13
+ import { nearestTokens, parsedColor } from "./nearestToken.js";
14
+ /** How many values a list gives unless asked otherwise. */
15
+ const TOP = 10;
16
+ /** Below this distance in Oklab two colours are the same to the eye. */
17
+ const NEAR = 0.02;
18
+ /** Under this chroma a colour reads as grey: a neutral with a cool cast (`#64748b`) is one, as a palette calls it. */
19
+ const GREY_CHROMA = 0.045;
20
+ /** Near white a little chroma is already a tint (`#fef2f2`), so the limit falls with this share of what lightness is left. */
21
+ const GREY_NEAR_WHITE = 0.3;
22
+ /** What the conversion leaves of chroma in a pure white. */
23
+ const ROUNDING = 0.001;
24
+ /** The share of a kind's uses the "most used" count covers. */
25
+ const MOST = 0.9;
26
+ /** How long a site's text is kept. */
27
+ const SITE_TEXT = 120;
28
+ /** A colour's class: what it paints, and the rest of the name. */
29
+ export const COLOR_CLASS = /(?<![\w-])(?:bg|text|border(?:-[trblxyse])?|ring|fill|stroke|from|via|to|divide|outline|decoration|accent|caret|placeholder|shadow)-([a-z][\w-]*)(?:\/[\w.%[\]]+)?(?![\w-])/g;
30
+ /** A reference to a custom property. */
31
+ const VAR_USE = /var\(\s*(--[\w-]+)/g;
32
+ /** A spacing class on a scale. */
33
+ export const SPACE_CLASS = /(?<![\w-])-?(?:[pm][xytrblse]?|gap(?:-[xy])?|space-[xy])-(\d+(?:\.\d+)?)(?![\w.-])/g;
34
+ /** A radius class. */
35
+ export const RADIUS_CLASS = /(?<![\w-])rounded(?:-[trblse]{1,2})?-(xs|sm|md|lg|xl|2xl|3xl|4xl)(?![\w-])/g;
36
+ /** A font's size class. */
37
+ export const FONT_CLASS = /(?<![\w-])text-(xs|sm|base|lg|xl|[2-9]xl)(?![\w-])/g;
38
+ /** A size as a number in a style object, which has no unit to find it by. */
39
+ const STYLE_NUMBER = /\b(margin|padding|gap|rowGap|columnGap|fontSize|borderRadius)(?:Top|Right|Bottom|Left|Inline|Block|Start|End|X|Y)*\s*:\s*(\d+(?:\.\d+)?)\s*[,}]/g;
40
+ /** What a style object's property is for. */
41
+ const STYLE_ROLES = {
42
+ margin: "space",
43
+ padding: "space",
44
+ gap: "space",
45
+ rowGap: "space",
46
+ columnGap: "space",
47
+ fontSize: "font",
48
+ borderRadius: "radius"
49
+ };
50
+ /** The files read for values: what `check-code` reads. */
51
+ const IS_READ = /\.(?:css|scss|sass|less|tsx|jsx|vue|svelte|astro)$/;
52
+ /** Adds a use to a tally by a key. */
53
+ const tallied = (tallies, key, value, file, how) => {
54
+ const known = tallies.get(key) ?? { value, count: 0, hardCoded: 0, files: new Set(), hardFiles: new Set() };
55
+ tallies.set(key, known);
56
+ known.count += 1;
57
+ known.files.add(file);
58
+ if (how.isHard) {
59
+ known.hardCoded += 1;
60
+ known.hardFiles.add(file);
61
+ }
62
+ if (how.token !== undefined)
63
+ known.through ??= how.token;
64
+ if (how.suggested !== undefined)
65
+ known.suggested ??= how.suggested;
66
+ };
67
+ /** A colour's key: the same colour in any notation has one. */
68
+ const colorKey = (color) => [color.l, color.a, color.b, color.alpha].map((part) => part.toFixed(3)).join(" ");
69
+ /** The tallies as values, the most used first. */
70
+ const valuesOf = (tallies) => tallies.toSorted((a, b) => b.count - a.count);
71
+ /** A tally as a report gives it, with the token that fits when asked about colours. */
72
+ const reported = ({ value, count, hardCoded, files, hardFiles }, token) => ({
73
+ value,
74
+ count,
75
+ files: files.size,
76
+ hardCoded,
77
+ hardCodedFiles: hardFiles.size,
78
+ ...(token === undefined ? {} : { token })
79
+ });
80
+ /** The token a raw colour equals or is close to, that holds in every theme. */
81
+ const tokenFor = (tokens, value) => {
82
+ const name = nearestTokens(tokens, value, "color").matches.find((match) => match.isClose && match.mode === undefined)?.name;
83
+ return tokens.find((token) => token.name === name);
84
+ };
85
+ /** A value written by hand, with the token that fits it. */
86
+ const reportedColor = (each, tokens) => {
87
+ const token = tokenFor(tokens, each.value);
88
+ const follows = token !== undefined && Object.values(token.modes).some((value) => value !== token.value);
89
+ return { ...reported(each, token?.name), ...(follows ? { tokenFollowsTheme: true } : {}) };
90
+ };
91
+ /**
92
+ * Colours the eye would hardly tell apart, each group once, the most used first. Two tokens close together are a choice
93
+ * (a page and a card a step apart), so a group counts only with a colour written by hand in it.
94
+ */
95
+ const nearGroups = (tallies) => {
96
+ const groups = [];
97
+ for (const { value, hardCoded } of valuesOf(tallies)) {
98
+ const color = parsedColor(value);
99
+ if (color === undefined)
100
+ continue;
101
+ const near = groups.find(({ color: other }) => Math.hypot(color.l - other.l, color.a - other.a, color.b - other.b) < NEAR &&
102
+ color.alpha === other.alpha);
103
+ if (near === undefined)
104
+ groups.push({ color, values: [value], hasHandWritten: hardCoded > 0 });
105
+ else {
106
+ near.values.push(value);
107
+ near.hasHandWritten ||= hardCoded > 0;
108
+ }
109
+ }
110
+ return groups
111
+ .filter(({ values, hasHandWritten }) => values.length > 1 && hasHandWritten)
112
+ .map(({ values }) => values);
113
+ };
114
+ /** How many of the most used values it takes to cover most uses. */
115
+ const coveringMost = (sorted) => {
116
+ const total = sorted.reduce((sum, each) => sum + each.count, 0);
117
+ let covered = 0;
118
+ for (const [index, each] of sorted.entries()) {
119
+ covered += each.count;
120
+ if (covered >= total * MOST)
121
+ return index + 1;
122
+ }
123
+ return sorted.length;
124
+ };
125
+ /** A colour used through a token. */
126
+ const talliedToken = (found, token, file) => {
127
+ const color = parsedColor(token.value);
128
+ const key = color === undefined ? token.name : colorKey(color);
129
+ tallied(found.colors, key, token.value, file, { isHard: false, token: token.name });
130
+ if (token.origin?.kind === "tailwind-default")
131
+ found.defaultPalette += 1;
132
+ else
133
+ found.throughTokens += 1;
134
+ };
135
+ /** The colours in a line. */
136
+ const readColors = (found, index, code, file) => {
137
+ for (const value of rawColorsOf(code)) {
138
+ const color = parsedColor(value);
139
+ tallied(found.colors, color === undefined ? value : colorKey(color), value, file, { isHard: true });
140
+ }
141
+ for (const match of code.matchAll(COLOR_CLASS)) {
142
+ const token = index.colorUtilities.get(match[1] ?? "");
143
+ if (token !== undefined)
144
+ talliedToken(found, token, file);
145
+ }
146
+ for (const match of code.matchAll(VAR_USE)) {
147
+ const token = index.byName.get(match[1] ?? "");
148
+ if (token?.type === "color")
149
+ talliedToken(found, token, file);
150
+ }
151
+ };
152
+ /** A size in pixels as a key, a rem being 16: one size in any unit is one size. */
153
+ const sizeKey = (value) => {
154
+ const match = /^(-?\d*\.?\d+)(px|rem)?$/.exec(value);
155
+ return match === null ? value : `${Math.abs(Number(match[1]) * (match[2] === "rem" ? 16 : 1))}px`;
156
+ };
157
+ /** A class's box and not a space between things: a width of 240px is not a spacing to name. */
158
+ const BOX_CLASS = /(?:^|[\s"'`:])-?(?:[wh]|size|(?:min|max)-[wh]|inset(?:-[xy])?|top|right|bottom|left)-\[[^\]]*$/;
159
+ /** A size this small is a hairline or nothing, and no scale's business. */
160
+ const SMALLEST_TOLD = 2;
161
+ /** The sizes written by hand in a line: what a report counts and what `--value` lists are this one reading. */
162
+ const handSizesOf = (code) => [
163
+ ...[...code.matchAll(SIZE)].flatMap((match) => {
164
+ const value = match[1] ?? "";
165
+ const before = code.slice(0, match.index + match[0].indexOf(value));
166
+ const where = roleInLine(before);
167
+ const key = sizeKey(value);
168
+ return where === undefined || BOX_CLASS.test(before) || Number.parseFloat(key) < SMALLEST_TOLD
169
+ ? []
170
+ : [{ key, role: where.role, before, value }];
171
+ }),
172
+ ...[...code.matchAll(STYLE_NUMBER)].flatMap((match) => {
173
+ const role = STYLE_ROLES[match[1] ?? ""];
174
+ const key = sizeKey(match[2] ?? "");
175
+ return role === undefined || Number.parseFloat(key) < SMALLEST_TOLD
176
+ ? []
177
+ : [{ key, role, value: `${match[2] ?? ""}px` }];
178
+ })
179
+ ];
180
+ /** The sizes written by hand in a line, each with the token of its role that equals it. */
181
+ const readHandSizes = (found, tokens, code, file) => {
182
+ for (const { key, role, before, value } of handSizesOf(code)) {
183
+ const candidates = before === undefined ? [] : sizeTokens(tokens, before);
184
+ const suggested = nearestTokens(candidates, value, "dimension").matches.find((each) => each.isExact && each.mode === undefined)?.name;
185
+ tallied(found.sizes[role], key, key, file, { isHard: true, suggested });
186
+ }
187
+ };
188
+ /** The sizes in a line through a class of a scale. */
189
+ const readClassSizes = (found, index, code, file) => {
190
+ const classes = [
191
+ [SPACE_CLASS, "space", "--spacing-"],
192
+ [RADIUS_CLASS, "radius", "--radius-"],
193
+ [FONT_CLASS, "font", "--text-"]
194
+ ];
195
+ for (const [pattern, role, prefix] of classes) {
196
+ for (const match of code.matchAll(pattern)) {
197
+ const token = index.byName.get(`${prefix}${match[1]}`);
198
+ if (token !== undefined) {
199
+ const key = sizeKey(token.value);
200
+ tallied(found.sizes[role], key, key, file, { isHard: false, token: token.name });
201
+ }
202
+ }
203
+ }
204
+ };
205
+ /** A role's sizes as a report gives them. */
206
+ const sizesOf = (tallies, top) => {
207
+ const sorted = valuesOf([...tallies.values()]);
208
+ return {
209
+ uses: sorted.reduce((sum, each) => sum + each.count, 0),
210
+ hardCoded: sorted.reduce((sum, each) => sum + each.hardCoded, 0),
211
+ distinct: sorted.length,
212
+ top: sorted.slice(0, top).map((each) => reported(each, each.through ?? each.suggested)),
213
+ handWritten: sorted
214
+ .filter((each) => each.hardCoded > 0)
215
+ .toSorted((first, second) => second.hardCoded - first.hardCoded)
216
+ .slice(0, top)
217
+ .map((each) => reported(each, each.suggested))
218
+ };
219
+ };
220
+ /** The colours as a report gives them. */
221
+ const colorsOf = (found, tokens, top) => {
222
+ const sorted = valuesOf([...found.colors.values()]);
223
+ const greys = sorted.filter(({ value }) => {
224
+ const color = parsedColor(value);
225
+ if (color === undefined || color.alpha !== 1)
226
+ return false;
227
+ return Math.hypot(color.a, color.b) <= Math.min(GREY_CHROMA, (1 - color.l) * GREY_NEAR_WHITE) + ROUNDING;
228
+ });
229
+ const withToken = (each) => each.through === undefined ? reportedColor(each, tokens) : reported(each, each.through);
230
+ return {
231
+ uses: sorted.reduce((sum, each) => sum + each.count, 0),
232
+ throughTokens: found.throughTokens,
233
+ defaultPalette: found.defaultPalette,
234
+ hardCoded: sorted.reduce((sum, each) => sum + each.hardCoded, 0),
235
+ distinct: sorted.length,
236
+ top: sorted.slice(0, top).map(withToken),
237
+ handWritten: sorted
238
+ .filter((each) => each.hardCoded > 0)
239
+ .toSorted((first, second) => second.hardCoded - first.hardCoded)
240
+ .slice(0, top)
241
+ .map((each) => reportedColor(each, tokens)),
242
+ greys: {
243
+ distinct: greys.length,
244
+ coveringMost: coveringMost(greys),
245
+ top: greys.slice(0, top).map(withToken)
246
+ },
247
+ nearDuplicates: nearGroups(sorted).slice(0, top)
248
+ };
249
+ };
250
+ /** The lines of a file worth reading for values. */
251
+ const codeLines = ({ file, text }) => {
252
+ if (!IS_READ.test(file) || LEFT_ALONE.test(file))
253
+ return [];
254
+ return withoutBlockComments(text)
255
+ .split("\n")
256
+ .flatMap((plain, index) => plain.length > LONGEST_LINE || DEFINES_VALUE.test(plain)
257
+ ? []
258
+ : [
259
+ {
260
+ line: index + 1,
261
+ code: withoutComment(plain).replace(/(?<![\w-])--[\w-]+\s*:[^;}]*;?/g, ""),
262
+ text: withoutComment(plain)
263
+ }
264
+ ]);
265
+ };
266
+ /**
267
+ * What a project's files use.
268
+ *
269
+ * @param files - its files.
270
+ * @param tokens - the tokens known; none is a report on values alone.
271
+ * @param top - how many values a list gives; 10 by default.
272
+ */
273
+ export const valueAudit = (files, tokens, top = TOP) => {
274
+ const index = {
275
+ colorUtilities: new Map(tokens.flatMap((token) => token.type === "color" && token.utility !== undefined ? [[token.utility, token]] : [])),
276
+ byName: new Map(tokens.map((token) => [token.name, token]))
277
+ };
278
+ const found = {
279
+ colors: new Map(),
280
+ sizes: { space: new Map(), radius: new Map(), font: new Map() },
281
+ throughTokens: 0,
282
+ defaultPalette: 0
283
+ };
284
+ let lines = 0;
285
+ let read = 0;
286
+ for (const each of files) {
287
+ const code = codeLines(each);
288
+ if (code.length > 0)
289
+ read += 1;
290
+ lines += code.length;
291
+ for (const { code: written } of code) {
292
+ readColors(found, index, written, each.file);
293
+ readHandSizes(found, tokens, written, each.file);
294
+ readClassSizes(found, index, written, each.file);
295
+ }
296
+ }
297
+ return {
298
+ files: read,
299
+ lines,
300
+ colors: colorsOf(found, tokens, top),
301
+ sizes: {
302
+ space: sizesOf(found.sizes.space, top),
303
+ radius: sizesOf(found.sizes.radius, top),
304
+ font: sizesOf(found.sizes.font, top)
305
+ }
306
+ };
307
+ };
308
+ /**
309
+ * Where a value written by hand stands: what an agent replacing it edits.
310
+ *
311
+ * @param files - the project's files.
312
+ * @param value - the value, as code writes it; a colour matches in any notation.
313
+ */
314
+ export const valueSites = (files, value) => {
315
+ const wanted = parsedColor(value);
316
+ const site = (file, line, text, role) => ({
317
+ file,
318
+ line,
319
+ text: text.trim().slice(0, SITE_TEXT),
320
+ ...(role === undefined ? {} : { role })
321
+ });
322
+ return files.flatMap((each) => codeLines(each).flatMap(({ line, code, text }) => {
323
+ if (wanted === undefined) {
324
+ const roles = handSizesOf(code).filter(({ key }) => key === sizeKey(value));
325
+ return roles.map(({ role }) => site(each.file, line, text, role));
326
+ }
327
+ const isIt = rawColorsOf(code).some((written) => {
328
+ const color = parsedColor(written);
329
+ return color !== undefined && colorKey(color) === colorKey(wanted);
330
+ });
331
+ return isIt ? [site(each.file, line, text)] : [];
332
+ }));
333
+ };
@@ -0,0 +1,53 @@
1
+ /**
2
+ * The `appBuild` option of a catalogue's configuration: how much of the app's own build its stories are drawn with,
3
+ * checked and resolved.
4
+ *
5
+ * @remarks
6
+ * A catalogue is its own Vite project, so what the app's build does for its components (aliases, Tailwind, PostCSS, its
7
+ * Vite plugins) has to be read from the app, or every story is told apart from the app by what it lacks. All of it is on
8
+ * by default, and each part can be turned off here. The command that reads the parts is `bin/forgebook/appBuild`.
9
+ *
10
+ * @module
11
+ */
12
+ /** How much of the app's build a catalogue reads, as `forgebook.config.ts` writes it. */
13
+ export type AppBuildOption = false | {
14
+ /**
15
+ * The app's Vite configuration, by path from the catalogue's folder; the `vite.config` beside the catalogue's by
16
+ * default. It is loaded as `vite dev` loads it, which runs its code and that of the plugins it makes. `false` reads
17
+ * none.
18
+ */
19
+ readonly viteConfig?: string | false;
20
+ /** Whether to read `paths` from `tsconfig.json`, which runs nothing; `true` by default. */
21
+ readonly tsconfigPaths?: boolean;
22
+ /** Whether to run the project's `postcss.config`, which runs its code and its plugins'; `true` by default. */
23
+ readonly postcss?: boolean;
24
+ /** The names of the app's Vite plugins to leave out, for one that only an app's build needs. */
25
+ readonly skipPlugins?: readonly string[];
26
+ /** The names of the app's Vite plugins to keep although Forgebook leaves them out by default. */
27
+ readonly keepPlugins?: readonly string[];
28
+ };
29
+ /** The `appBuild` option, resolved. */
30
+ export type ResolvedAppBuild = {
31
+ /** The app's Vite configuration by its path from the catalogue's folder, the one found when none, or `false`. */
32
+ readonly viteConfig: string | false | undefined;
33
+ /** Whether `tsconfig.json`'s `paths` are read. */
34
+ readonly tsconfigPaths: boolean;
35
+ /** Whether the project's PostCSS runs. */
36
+ readonly postcss: boolean;
37
+ /** The names of the app's plugins to leave out. */
38
+ readonly skipPlugins: readonly string[];
39
+ /** The names of the app's plugins to keep whatever the default says. */
40
+ readonly keepPlugins: readonly string[];
41
+ };
42
+ /**
43
+ * Why an `appBuild` option cannot be used, or none.
44
+ *
45
+ * @param value - the option, as the configuration gives it.
46
+ */
47
+ export declare const appBuildProblem: (value: unknown) => string | undefined;
48
+ /**
49
+ * The `appBuild` option, resolved.
50
+ *
51
+ * @param option - the option, checked by `appBuildProblem`.
52
+ */
53
+ export declare const resolvedAppBuild: (option: AppBuildOption | undefined) => ResolvedAppBuild;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * The `appBuild` option of a catalogue's configuration: how much of the app's own build its stories are drawn with,
3
+ * checked and resolved.
4
+ *
5
+ * @remarks
6
+ * A catalogue is its own Vite project, so what the app's build does for its components (aliases, Tailwind, PostCSS, its
7
+ * Vite plugins) has to be read from the app, or every story is told apart from the app by what it lacks. All of it is on
8
+ * by default, and each part can be turned off here. The command that reads the parts is `bin/forgebook/appBuild`.
9
+ *
10
+ * @module
11
+ */
12
+ /** Whether a value is a list of texts. */
13
+ const isTextList = (value) => Array.isArray(value) && value.every((each) => typeof each === "string");
14
+ /**
15
+ * Why an `appBuild` option cannot be used, or none.
16
+ *
17
+ * @param value - the option, as the configuration gives it.
18
+ */
19
+ export const appBuildProblem = (value) => {
20
+ if (value === undefined || value === false)
21
+ return undefined;
22
+ if (typeof value !== "object" || value === null || Array.isArray(value))
23
+ return "`appBuild` is false or `{ viteConfig, tsconfigPaths, postcss, skipPlugins, keepPlugins }`";
24
+ const fields = new Map(Object.entries(value));
25
+ const viteConfig = fields.get("viteConfig");
26
+ if (viteConfig !== undefined &&
27
+ viteConfig !== false &&
28
+ (typeof viteConfig !== "string" || viteConfig === ""))
29
+ return "`appBuild.viteConfig` is a path or false";
30
+ for (const key of ["tsconfigPaths", "postcss"]) {
31
+ const field = fields.get(key);
32
+ if (field !== undefined && typeof field !== "boolean")
33
+ return `\`appBuild.${key}\` is true or false`;
34
+ }
35
+ for (const key of ["skipPlugins", "keepPlugins"]) {
36
+ const field = fields.get(key);
37
+ if (field !== undefined && !isTextList(field))
38
+ return `\`appBuild.${key}\` is a list of plugin names`;
39
+ }
40
+ return undefined;
41
+ };
42
+ /**
43
+ * The `appBuild` option, resolved.
44
+ *
45
+ * @param option - the option, checked by `appBuildProblem`.
46
+ */
47
+ export const resolvedAppBuild = (option) => option === false
48
+ ? { viteConfig: false, tsconfigPaths: false, postcss: false, skipPlugins: [], keepPlugins: [] }
49
+ : {
50
+ viteConfig: option?.viteConfig,
51
+ tsconfigPaths: option?.tsconfigPaths ?? true,
52
+ postcss: option?.postcss ?? true,
53
+ skipPlugins: option?.skipPlugins ?? [],
54
+ keepPlugins: option?.keepPlugins ?? []
55
+ };
@@ -0,0 +1,92 @@
1
+ import { type CssReading } from "./cssDeclarations.ts";
2
+ import { type TailwindConfigReading } from "./tailwindConfigTokens.ts";
3
+ /** What `components.json` says of a project's system. */
4
+ export type ShadcnConfig = {
5
+ /** Its path. */
6
+ readonly file: string;
7
+ /** The sheet with its variables. */
8
+ readonly css: string | undefined;
9
+ /** Its Tailwind configuration file. */
10
+ readonly config: string | undefined;
11
+ };
12
+ /** One sheet, read. */
13
+ export type ReadSheet = {
14
+ /** Its absolute path. */
15
+ readonly file: string;
16
+ /** Its text. */
17
+ readonly text: string;
18
+ /** What it declares. */
19
+ readonly reading: CssReading;
20
+ };
21
+ /** One configuration file, read. */
22
+ export type ReadConfig = {
23
+ /** Its absolute path. */
24
+ readonly file: string;
25
+ /** Its text. */
26
+ readonly text: string;
27
+ /** What it declares. */
28
+ readonly reading: TailwindConfigReading;
29
+ };
30
+ /**
31
+ * A regular file's text, or none when it is something else, cannot be read or is too large to be written by hand.
32
+ *
33
+ * @param file - its path.
34
+ */
35
+ export declare const smallFileText: (file: string) => string | undefined;
36
+ /**
37
+ * The source files of a folder, relative to it: what git tracks and would track, or a walk when this is not a repository.
38
+ *
39
+ * @param dir - the folder.
40
+ * @param patterns - what git is asked for (`*.tsx`).
41
+ * @param kind - the same as a pattern for a file's name, for the walk.
42
+ * @param left - what the walk leaves out, as git would by what it ignores.
43
+ */
44
+ export declare const listedFiles: (dir: string, patterns: readonly string[], kind: RegExp, left: RegExp) => string[];
45
+ /**
46
+ * The file of a package, looked for from a folder up, as Node finds packages.
47
+ *
48
+ * @param dir - where to start.
49
+ * @param path - the package's name and the path in it.
50
+ */
51
+ export declare const packageFile: (dir: string, path: string) => string | undefined;
52
+ /**
53
+ * The repository a folder is in: the nearest above holding `.git`, or the folder itself in none.
54
+ *
55
+ * @param dir - the folder.
56
+ */
57
+ export declare const repositoryOf: (dir: string) => string;
58
+ /**
59
+ * Reads `components.json`, from a folder up; a file that says nothing plain gives nothing.
60
+ *
61
+ * @param dir - where to start.
62
+ */
63
+ export declare const shadcnConfig: (dir: string) => ShadcnConfig | undefined;
64
+ /**
65
+ * The sheets of installed packages that the application's sheets import, for the custom properties they declare: a
66
+ * reference to one of those has a value, though it is no token of this application's.
67
+ *
68
+ * @param dir - the catalogue's folder.
69
+ * @param sheets - the sheets read.
70
+ * @returns the texts found, and what each import that could not be read was called, a missing one included.
71
+ */
72
+ export declare const importedPackageSheets: (dir: string, sheets: readonly ReadSheet[]) => {
73
+ readonly texts: readonly string[];
74
+ readonly unreadable: readonly string[];
75
+ };
76
+ /**
77
+ * Reads a catalogue's sheets, the one `components.json` names first, and what they import from the workspace, each once.
78
+ *
79
+ * @param dir - the catalogue's folder.
80
+ * @param shadcn - what `components.json` says.
81
+ * @param unread - told of what is left out.
82
+ */
83
+ export declare const readSheets: (dir: string, shadcn: ShadcnConfig | undefined, unread: string[]) => ReadSheet[];
84
+ /**
85
+ * Reads a catalogue's Tailwind configurations: what `components.json` and the sheets name, and the one in its folder.
86
+ *
87
+ * @param dir - the catalogue's folder.
88
+ * @param shadcn - what `components.json` says.
89
+ * @param sheets - the sheets read, for their `@config`s.
90
+ * @param unread - told of what is left out.
91
+ */
92
+ export declare const readConfigs: (dir: string, shadcn: ShadcnConfig | undefined, sheets: readonly ReadSheet[], unread: string[]) => ReadConfig[];