shelving 1.236.0 → 1.236.2

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 (793) hide show
  1. package/api/cache/APICache.d.ts +69 -6
  2. package/api/cache/APICache.js +61 -5
  3. package/api/cache/EndpointCache.d.ts +75 -7
  4. package/api/cache/EndpointCache.js +75 -7
  5. package/api/endpoint/Endpoint.d.ts +141 -25
  6. package/api/endpoint/Endpoint.js +55 -9
  7. package/api/endpoint/util.d.ts +28 -6
  8. package/api/provider/APIProvider.d.ts +58 -14
  9. package/api/provider/APIProvider.js +24 -2
  10. package/api/provider/CachedAPIProvider.d.ts +58 -5
  11. package/api/provider/CachedAPIProvider.js +58 -6
  12. package/api/provider/ClientAPIProvider.d.ts +80 -4
  13. package/api/provider/ClientAPIProvider.js +75 -4
  14. package/api/provider/DebugAPIProvider.d.ts +40 -1
  15. package/api/provider/DebugAPIProvider.js +40 -1
  16. package/api/provider/JSONAPIProvider.d.ts +18 -2
  17. package/api/provider/JSONAPIProvider.js +18 -2
  18. package/api/provider/LoggingAPIProvider.d.ts +25 -2
  19. package/api/provider/LoggingAPIProvider.js +25 -2
  20. package/api/provider/MockAPIProvider.d.ts +72 -1
  21. package/api/provider/MockAPIProvider.js +60 -4
  22. package/api/provider/MockEndpointAPIProvider.d.ts +9 -0
  23. package/api/provider/MockEndpointAPIProvider.js +9 -0
  24. package/api/provider/ThroughAPIProvider.d.ts +67 -1
  25. package/api/provider/ThroughAPIProvider.js +67 -1
  26. package/api/provider/ValidationAPIProvider.d.ts +32 -1
  27. package/api/provider/ValidationAPIProvider.js +32 -1
  28. package/api/provider/XMLAPIProvider.d.ts +18 -2
  29. package/api/provider/XMLAPIProvider.js +18 -2
  30. package/api/store/EndpointStore.d.ts +24 -1
  31. package/api/store/EndpointStore.js +24 -1
  32. package/bun/BunPostgreSQLProvider.d.ts +38 -0
  33. package/bun/BunPostgreSQLProvider.js +38 -2
  34. package/cloudflare/CloudflareD1Provider.d.ts +29 -2
  35. package/cloudflare/CloudflareD1Provider.js +29 -2
  36. package/cloudflare/CloudflareKVProvider.d.ts +115 -0
  37. package/cloudflare/CloudflareKVProvider.js +115 -0
  38. package/cloudflare/types.d.ts +41 -7
  39. package/db/cache/CollectionCache.d.ts +83 -7
  40. package/db/cache/CollectionCache.js +83 -7
  41. package/db/cache/DBCache.d.ts +93 -8
  42. package/db/cache/DBCache.js +85 -7
  43. package/db/collection/Collection.d.ts +103 -15
  44. package/db/collection/Collection.js +58 -6
  45. package/db/migrate/DBMigrator.d.ts +29 -1
  46. package/db/migrate/DBMigrator.js +20 -1
  47. package/db/migrate/PostgreSQLMigrator.d.ts +8 -1
  48. package/db/migrate/PostgreSQLMigrator.js +8 -1
  49. package/db/migrate/SQLMigrator.d.ts +63 -4
  50. package/db/migrate/SQLMigrator.js +51 -1
  51. package/db/migrate/SQLiteMigrator.d.ts +8 -1
  52. package/db/migrate/SQLiteMigrator.js +8 -1
  53. package/db/provider/CacheDBProvider.d.ts +135 -1
  54. package/db/provider/CacheDBProvider.js +135 -1
  55. package/db/provider/ChangesDBProvider.d.ts +84 -3
  56. package/db/provider/ChangesDBProvider.js +77 -2
  57. package/db/provider/DBProvider.d.ts +148 -1
  58. package/db/provider/DBProvider.js +51 -1
  59. package/db/provider/DebugDBProvider.d.ts +118 -1
  60. package/db/provider/DebugDBProvider.js +118 -1
  61. package/db/provider/MemoryDBProvider.d.ts +262 -7
  62. package/db/provider/MemoryDBProvider.js +262 -7
  63. package/db/provider/MockDBProvider.d.ts +113 -2
  64. package/db/provider/MockDBProvider.js +106 -1
  65. package/db/provider/PostgreSQLProvider.d.ts +34 -2
  66. package/db/provider/PostgreSQLProvider.js +34 -4
  67. package/db/provider/SQLProvider.d.ts +250 -14
  68. package/db/provider/SQLProvider.js +237 -13
  69. package/db/provider/SQLiteProvider.d.ts +41 -1
  70. package/db/provider/SQLiteProvider.js +41 -4
  71. package/db/provider/ThroughDBProvider.d.ts +156 -1
  72. package/db/provider/ThroughDBProvider.js +156 -1
  73. package/db/provider/ValidationDBProvider.d.ts +120 -1
  74. package/db/provider/ValidationDBProvider.js +120 -1
  75. package/db/store/ItemStore.d.ts +38 -2
  76. package/db/store/ItemStore.js +38 -2
  77. package/db/store/QueryStore.d.ts +64 -6
  78. package/db/store/QueryStore.js +64 -6
  79. package/error/BaseError.d.ts +27 -2
  80. package/error/BaseError.js +14 -0
  81. package/error/Errors.d.ts +12 -1
  82. package/error/Errors.js +12 -1
  83. package/error/NetworkError.d.ts +13 -1
  84. package/error/NetworkError.js +13 -1
  85. package/error/RequestError.d.ts +90 -7
  86. package/error/RequestError.js +90 -7
  87. package/error/RequiredError.d.ts +11 -1
  88. package/error/RequiredError.js +11 -1
  89. package/error/ResponseError.d.ts +19 -2
  90. package/error/ResponseError.js +19 -2
  91. package/error/UnexpectedError.d.ts +14 -1
  92. package/error/UnexpectedError.js +14 -1
  93. package/error/UnimplementedError.d.ts +13 -1
  94. package/error/UnimplementedError.js +13 -1
  95. package/error/ValueError.d.ts +14 -1
  96. package/error/ValueError.js +14 -1
  97. package/extract/DirectoryExtractor.d.ts +35 -1
  98. package/extract/DirectoryExtractor.js +30 -0
  99. package/extract/Extractor.d.ts +21 -2
  100. package/extract/Extractor.js +7 -1
  101. package/extract/FileExtractor.d.ts +18 -0
  102. package/extract/FileExtractor.js +18 -0
  103. package/extract/IndexExtractor.d.ts +36 -1
  104. package/extract/IndexExtractor.js +31 -0
  105. package/extract/MarkupExtractor.d.ts +15 -0
  106. package/extract/MarkupExtractor.js +15 -0
  107. package/extract/MergingExtractor.d.ts +36 -1
  108. package/extract/MergingExtractor.js +31 -0
  109. package/extract/ModuleExtractor.d.ts +25 -1
  110. package/extract/ModuleExtractor.js +20 -0
  111. package/extract/PackageExtractor.d.ts +36 -1
  112. package/extract/PackageExtractor.js +31 -0
  113. package/extract/ThroughExtractor.d.ts +22 -1
  114. package/extract/ThroughExtractor.js +22 -1
  115. package/extract/TypescriptExtractor.d.ts +21 -0
  116. package/extract/TypescriptExtractor.js +28 -3
  117. package/firestore/client/FirestoreClientProvider.d.ts +129 -4
  118. package/firestore/client/FirestoreClientProvider.js +129 -4
  119. package/firestore/lite/FirestoreLiteProvider.d.ts +128 -3
  120. package/firestore/lite/FirestoreLiteProvider.js +128 -3
  121. package/firestore/server/FirestoreServerProvider.d.ts +129 -2
  122. package/firestore/server/FirestoreServerProvider.js +129 -2
  123. package/markup/MarkupParser.d.ts +57 -10
  124. package/markup/MarkupParser.js +50 -9
  125. package/markup/MarkupRule.d.ts +34 -1
  126. package/markup/Parser.d.ts +18 -0
  127. package/markup/Parser.js +11 -0
  128. package/markup/rule/blockquote.d.ts +3 -0
  129. package/markup/rule/blockquote.js +3 -0
  130. package/markup/rule/code.d.ts +3 -0
  131. package/markup/rule/code.js +3 -0
  132. package/markup/rule/fenced.d.ts +3 -0
  133. package/markup/rule/fenced.js +3 -0
  134. package/markup/rule/heading.d.ts +3 -0
  135. package/markup/rule/heading.js +3 -0
  136. package/markup/rule/index.d.ts +16 -3
  137. package/markup/rule/index.js +16 -3
  138. package/markup/rule/inline.d.ts +4 -1
  139. package/markup/rule/inline.js +5 -2
  140. package/markup/rule/linebreak.d.ts +3 -0
  141. package/markup/rule/linebreak.js +3 -0
  142. package/markup/rule/link.d.ts +6 -0
  143. package/markup/rule/link.js +6 -0
  144. package/markup/rule/ordered.d.ts +3 -0
  145. package/markup/rule/ordered.js +3 -0
  146. package/markup/rule/paragraph.d.ts +3 -0
  147. package/markup/rule/paragraph.js +3 -0
  148. package/markup/rule/separator.d.ts +3 -0
  149. package/markup/rule/separator.js +3 -0
  150. package/markup/rule/table.d.ts +3 -0
  151. package/markup/rule/table.js +3 -0
  152. package/markup/rule/unordered.d.ts +3 -0
  153. package/markup/rule/unordered.js +3 -0
  154. package/markup/util/regexp.d.ts +80 -3
  155. package/markup/util/regexp.js +44 -0
  156. package/package.json +1 -1
  157. package/react/createAPIContext.d.ts +15 -0
  158. package/react/createAPIContext.js +10 -0
  159. package/react/createDBContext.d.ts +15 -0
  160. package/react/createDBContext.js +10 -0
  161. package/react/useInstance.d.ts +11 -0
  162. package/react/useInstance.js +11 -0
  163. package/react/useLazy.d.ts +11 -0
  164. package/react/useMap.d.ts +14 -1
  165. package/react/useMap.js +14 -1
  166. package/react/useReduce.d.ts +12 -0
  167. package/react/useSequence.d.ts +10 -0
  168. package/react/useSequence.js +10 -0
  169. package/react/useStore.d.ts +16 -1
  170. package/schema/AddressSchema.d.ts +41 -4
  171. package/schema/AddressSchema.js +36 -3
  172. package/schema/ArraySchema.d.ts +48 -6
  173. package/schema/ArraySchema.js +40 -5
  174. package/schema/BooleanSchema.d.ts +59 -3
  175. package/schema/BooleanSchema.js +51 -2
  176. package/schema/ChoiceSchema.d.ts +61 -7
  177. package/schema/ChoiceSchema.js +44 -2
  178. package/schema/ColorSchema.d.ts +41 -8
  179. package/schema/ColorSchema.js +36 -7
  180. package/schema/CountrySchema.d.ts +44 -4
  181. package/schema/CountrySchema.js +39 -3
  182. package/schema/CurrencyAmountSchema.d.ts +104 -8
  183. package/schema/CurrencyAmountSchema.js +91 -4
  184. package/schema/CurrencyCodeSchema.d.ts +56 -4
  185. package/schema/CurrencyCodeSchema.js +49 -3
  186. package/schema/DataSchema.d.ts +101 -10
  187. package/schema/DataSchema.js +87 -8
  188. package/schema/DateSchema.d.ts +73 -4
  189. package/schema/DateSchema.js +57 -2
  190. package/schema/DateTimeSchema.d.ts +40 -3
  191. package/schema/DateTimeSchema.js +40 -3
  192. package/schema/DictionarySchema.d.ts +54 -4
  193. package/schema/DictionarySchema.js +47 -3
  194. package/schema/EmailSchema.d.ts +34 -3
  195. package/schema/EmailSchema.js +34 -3
  196. package/schema/EntitySchema.d.ts +45 -4
  197. package/schema/EntitySchema.js +38 -3
  198. package/schema/FileSchema.d.ts +45 -4
  199. package/schema/FileSchema.js +39 -3
  200. package/schema/KeySchema.d.ts +32 -3
  201. package/schema/KeySchema.js +32 -3
  202. package/schema/NullableSchema.d.ts +64 -4
  203. package/schema/NullableSchema.js +59 -3
  204. package/schema/NumberSchema.d.ts +137 -12
  205. package/schema/NumberSchema.js +127 -11
  206. package/schema/OptionalSchema.d.ts +61 -4
  207. package/schema/OptionalSchema.js +56 -4
  208. package/schema/PasswordSchema.d.ts +37 -1
  209. package/schema/PasswordSchema.js +32 -1
  210. package/schema/PhoneSchema.d.ts +40 -4
  211. package/schema/PhoneSchema.js +35 -3
  212. package/schema/RequiredSchema.d.ts +39 -3
  213. package/schema/RequiredSchema.js +41 -3
  214. package/schema/Schema.d.ts +67 -7
  215. package/schema/Schema.js +42 -6
  216. package/schema/SlugSchema.d.ts +37 -5
  217. package/schema/SlugSchema.js +37 -5
  218. package/schema/StringSchema.d.ts +124 -19
  219. package/schema/StringSchema.js +107 -17
  220. package/schema/ThroughSchema.d.ts +35 -2
  221. package/schema/ThroughSchema.js +30 -1
  222. package/schema/TimeSchema.d.ts +43 -3
  223. package/schema/TimeSchema.js +43 -3
  224. package/schema/URISchema.d.ts +67 -6
  225. package/schema/URISchema.js +60 -6
  226. package/schema/URLSchema.d.ts +69 -6
  227. package/schema/URLSchema.js +61 -6
  228. package/schema/UUIDSchema.d.ts +37 -4
  229. package/schema/UUIDSchema.js +37 -4
  230. package/sequence/DeferredSequence.d.ts +49 -3
  231. package/sequence/DeferredSequence.js +39 -3
  232. package/sequence/InspectSequence.d.ts +59 -5
  233. package/sequence/InspectSequence.js +59 -5
  234. package/sequence/LazySequence.d.ts +30 -2
  235. package/sequence/LazySequence.js +30 -2
  236. package/sequence/Sequence.d.ts +11 -0
  237. package/sequence/Sequence.js +10 -0
  238. package/sequence/ThroughSequence.d.ts +15 -0
  239. package/sequence/ThroughSequence.js +15 -0
  240. package/store/ArrayStore.d.ts +74 -11
  241. package/store/ArrayStore.js +74 -11
  242. package/store/BooleanStore.d.ts +19 -2
  243. package/store/BooleanStore.js +19 -2
  244. package/store/BusyStore.d.ts +13 -1
  245. package/store/BusyStore.js +13 -1
  246. package/store/DataStore.d.ts +118 -15
  247. package/store/DataStore.js +118 -15
  248. package/store/DictionaryStore.d.ts +66 -8
  249. package/store/DictionaryStore.js +66 -8
  250. package/store/FetchStore.d.ts +43 -6
  251. package/store/FetchStore.js +36 -5
  252. package/store/PathStore.d.ts +44 -5
  253. package/store/PathStore.js +44 -5
  254. package/store/PayloadFetchStore.d.ts +16 -1
  255. package/store/PayloadFetchStore.js +9 -1
  256. package/store/Store.d.ts +85 -16
  257. package/store/Store.js +52 -10
  258. package/store/URLStore.d.ts +173 -15
  259. package/store/URLStore.js +173 -15
  260. package/test/basics.d.ts +70 -0
  261. package/test/basics.js +60 -0
  262. package/test/people.d.ts +45 -0
  263. package/test/people.js +35 -0
  264. package/test/util.d.ts +30 -3
  265. package/test/util.js +30 -3
  266. package/ui/app/App.d.ts +14 -2
  267. package/ui/app/App.js +9 -2
  268. package/ui/app/App.tsx +14 -2
  269. package/ui/block/Address.d.ts +45 -3
  270. package/ui/block/Address.js +30 -3
  271. package/ui/block/Address.tsx +46 -3
  272. package/ui/block/Block.d.ts +23 -1
  273. package/ui/block/Block.js +13 -1
  274. package/ui/block/Block.tsx +23 -1
  275. package/ui/block/Blockquote.d.ts +21 -0
  276. package/ui/block/Blockquote.js +16 -0
  277. package/ui/block/Blockquote.tsx +22 -0
  278. package/ui/block/Caption.d.ts +21 -1
  279. package/ui/block/Caption.js +16 -1
  280. package/ui/block/Caption.tsx +22 -1
  281. package/ui/block/Card.d.ts +6 -0
  282. package/ui/block/Card.js +1 -0
  283. package/ui/block/Card.tsx +6 -0
  284. package/ui/block/Definitions.d.ts +18 -0
  285. package/ui/block/Definitions.js +13 -0
  286. package/ui/block/Definitions.tsx +19 -0
  287. package/ui/block/Divider.d.ts +21 -0
  288. package/ui/block/Divider.js +16 -0
  289. package/ui/block/Divider.tsx +22 -0
  290. package/ui/block/Heading.d.ts +20 -1
  291. package/ui/block/Heading.js +15 -0
  292. package/ui/block/Heading.tsx +21 -1
  293. package/ui/block/Image.d.ts +23 -0
  294. package/ui/block/Image.js +18 -0
  295. package/ui/block/Image.tsx +24 -0
  296. package/ui/block/Label.d.ts +18 -3
  297. package/ui/block/Label.js +13 -3
  298. package/ui/block/Label.tsx +18 -3
  299. package/ui/block/List.d.ts +30 -0
  300. package/ui/block/List.js +25 -0
  301. package/ui/block/List.tsx +32 -0
  302. package/ui/block/Panel.d.ts +13 -1
  303. package/ui/block/Panel.js +3 -0
  304. package/ui/block/Panel.tsx +13 -1
  305. package/ui/block/Paragraph.d.ts +23 -0
  306. package/ui/block/Paragraph.js +18 -0
  307. package/ui/block/Paragraph.tsx +24 -0
  308. package/ui/block/Preformatted.d.ts +20 -0
  309. package/ui/block/Preformatted.js +15 -0
  310. package/ui/block/Preformatted.tsx +21 -0
  311. package/ui/block/Prose.d.ts +14 -1
  312. package/ui/block/Prose.js +9 -1
  313. package/ui/block/Prose.tsx +14 -1
  314. package/ui/block/Section.d.ts +69 -6
  315. package/ui/block/Section.js +59 -6
  316. package/ui/block/Section.tsx +70 -6
  317. package/ui/block/Subheading.d.ts +20 -1
  318. package/ui/block/Subheading.js +15 -0
  319. package/ui/block/Subheading.tsx +21 -1
  320. package/ui/block/Table.d.ts +20 -0
  321. package/ui/block/Table.js +15 -0
  322. package/ui/block/Table.tsx +21 -0
  323. package/ui/block/Title.d.ts +20 -1
  324. package/ui/block/Title.js +15 -0
  325. package/ui/block/Title.tsx +21 -1
  326. package/ui/block/Video.d.ts +50 -3
  327. package/ui/block/Video.js +30 -3
  328. package/ui/block/Video.tsx +50 -3
  329. package/ui/dialog/Dialog.d.ts +28 -1
  330. package/ui/dialog/Dialog.js +18 -1
  331. package/ui/dialog/Dialog.tsx +28 -1
  332. package/ui/dialog/Dialogs.d.ts +53 -6
  333. package/ui/dialog/Dialogs.js +43 -6
  334. package/ui/dialog/Dialogs.tsx +53 -6
  335. package/ui/dialog/Modal.d.ts +13 -0
  336. package/ui/dialog/Modal.js +8 -0
  337. package/ui/dialog/Modal.tsx +13 -0
  338. package/ui/docs/DocumentationButtons.d.ts +5 -1
  339. package/ui/docs/DocumentationButtons.tsx +5 -1
  340. package/ui/docs/DocumentationCard.d.ts +6 -1
  341. package/ui/docs/DocumentationCard.js +6 -1
  342. package/ui/docs/DocumentationCard.tsx +6 -1
  343. package/ui/docs/DocumentationKind.d.ts +13 -1
  344. package/ui/docs/DocumentationKind.js +8 -0
  345. package/ui/docs/DocumentationKind.tsx +13 -1
  346. package/ui/docs/DocumentationPage.d.ts +6 -1
  347. package/ui/docs/DocumentationPage.js +6 -1
  348. package/ui/docs/DocumentationPage.tsx +6 -1
  349. package/ui/docs/DocumentationSignatures.d.ts +10 -1
  350. package/ui/docs/DocumentationSignatures.js +5 -0
  351. package/ui/docs/DocumentationSignatures.tsx +10 -1
  352. package/ui/form/ArrayInput.d.ts +15 -0
  353. package/ui/form/ArrayInput.tsx +15 -0
  354. package/ui/form/ArrayRadioInputs.d.ts +10 -0
  355. package/ui/form/ArrayRadioInputs.js +5 -0
  356. package/ui/form/ArrayRadioInputs.tsx +10 -0
  357. package/ui/form/Button.d.ts +19 -3
  358. package/ui/form/Button.js +14 -2
  359. package/ui/form/Button.tsx +19 -3
  360. package/ui/form/ButtonInput.d.ts +14 -1
  361. package/ui/form/ButtonInput.js +9 -1
  362. package/ui/form/ButtonInput.tsx +14 -1
  363. package/ui/form/ButtonInputPopover.d.ts +10 -0
  364. package/ui/form/ButtonInputPopover.js +5 -0
  365. package/ui/form/ButtonInputPopover.tsx +10 -0
  366. package/ui/form/ButtonPopover.d.ts +11 -1
  367. package/ui/form/ButtonPopover.js +6 -1
  368. package/ui/form/ButtonPopover.tsx +11 -1
  369. package/ui/form/CheckboxInput.d.ts +14 -1
  370. package/ui/form/CheckboxInput.js +9 -1
  371. package/ui/form/CheckboxInput.tsx +14 -1
  372. package/ui/form/ChoiceRadioInputs.d.ts +10 -0
  373. package/ui/form/ChoiceRadioInputs.tsx +10 -0
  374. package/ui/form/Clickable.d.ts +45 -5
  375. package/ui/form/Clickable.js +30 -3
  376. package/ui/form/Clickable.tsx +45 -5
  377. package/ui/form/DataInput.d.ts +14 -0
  378. package/ui/form/DataInput.tsx +14 -0
  379. package/ui/form/DateInput.d.ts +14 -0
  380. package/ui/form/DateInput.js +9 -0
  381. package/ui/form/DateInput.tsx +14 -0
  382. package/ui/form/DictionaryInput.d.ts +15 -0
  383. package/ui/form/DictionaryInput.tsx +15 -0
  384. package/ui/form/Field.d.ts +5 -0
  385. package/ui/form/Field.tsx +5 -0
  386. package/ui/form/FileInput.d.ts +14 -0
  387. package/ui/form/FileInput.js +9 -0
  388. package/ui/form/FileInput.tsx +14 -0
  389. package/ui/form/Form.d.ts +55 -6
  390. package/ui/form/Form.js +35 -3
  391. package/ui/form/Form.tsx +55 -6
  392. package/ui/form/FormContext.d.ts +24 -3
  393. package/ui/form/FormContext.js +5 -1
  394. package/ui/form/FormContext.tsx +24 -3
  395. package/ui/form/FormFields.d.ts +15 -2
  396. package/ui/form/FormFields.js +15 -2
  397. package/ui/form/FormFields.tsx +15 -2
  398. package/ui/form/FormFooter.d.ts +13 -3
  399. package/ui/form/FormFooter.js +8 -3
  400. package/ui/form/FormFooter.tsx +13 -3
  401. package/ui/form/FormInput.d.ts +21 -2
  402. package/ui/form/FormInput.js +16 -2
  403. package/ui/form/FormInput.tsx +21 -2
  404. package/ui/form/FormMessage.d.ts +8 -1
  405. package/ui/form/FormMessage.js +8 -1
  406. package/ui/form/FormMessage.tsx +8 -2
  407. package/ui/form/FormNotice.d.ts +8 -1
  408. package/ui/form/FormNotice.js +8 -1
  409. package/ui/form/FormNotice.tsx +8 -2
  410. package/ui/form/FormNotify.d.ts +8 -1
  411. package/ui/form/FormNotify.js +8 -1
  412. package/ui/form/FormNotify.tsx +8 -2
  413. package/ui/form/FormStore.d.ts +50 -6
  414. package/ui/form/FormStore.js +50 -6
  415. package/ui/form/FormStore.tsx +50 -6
  416. package/ui/form/Input.d.ts +65 -1
  417. package/ui/form/Input.js +60 -0
  418. package/ui/form/Input.tsx +77 -1
  419. package/ui/form/NumberInput.d.ts +14 -0
  420. package/ui/form/NumberInput.js +9 -0
  421. package/ui/form/NumberInput.tsx +14 -0
  422. package/ui/form/OutputInput.d.ts +13 -1
  423. package/ui/form/OutputInput.js +8 -1
  424. package/ui/form/OutputInput.tsx +13 -1
  425. package/ui/form/Popover.d.ts +18 -2
  426. package/ui/form/Popover.js +8 -2
  427. package/ui/form/Popover.tsx +18 -2
  428. package/ui/form/Progress.d.ts +26 -2
  429. package/ui/form/Progress.js +16 -2
  430. package/ui/form/Progress.tsx +26 -2
  431. package/ui/form/QueryInput.d.ts +14 -5
  432. package/ui/form/QueryInput.js +9 -5
  433. package/ui/form/QueryInput.tsx +14 -5
  434. package/ui/form/RadioInput.d.ts +14 -1
  435. package/ui/form/RadioInput.js +9 -1
  436. package/ui/form/RadioInput.tsx +14 -1
  437. package/ui/form/SchemaInput.d.ts +138 -7
  438. package/ui/form/SchemaInput.js +79 -4
  439. package/ui/form/SchemaInput.tsx +138 -7
  440. package/ui/form/SelectInput.d.ts +14 -0
  441. package/ui/form/SelectInput.tsx +14 -0
  442. package/ui/form/SubmitButton.d.ts +14 -1
  443. package/ui/form/SubmitButton.js +9 -1
  444. package/ui/form/SubmitButton.tsx +14 -1
  445. package/ui/form/TextInput.d.ts +15 -0
  446. package/ui/form/TextInput.js +10 -0
  447. package/ui/form/TextInput.tsx +15 -0
  448. package/ui/inline/Code.d.ts +29 -0
  449. package/ui/inline/Code.js +24 -0
  450. package/ui/inline/Code.tsx +31 -0
  451. package/ui/inline/Deleted.d.ts +23 -0
  452. package/ui/inline/Deleted.js +18 -0
  453. package/ui/inline/Deleted.tsx +24 -0
  454. package/ui/inline/Emphasis.d.ts +23 -0
  455. package/ui/inline/Emphasis.js +18 -0
  456. package/ui/inline/Emphasis.tsx +24 -0
  457. package/ui/inline/Inserted.d.ts +23 -0
  458. package/ui/inline/Inserted.js +18 -0
  459. package/ui/inline/Inserted.tsx +24 -0
  460. package/ui/inline/Link.d.ts +23 -0
  461. package/ui/inline/Link.js +18 -0
  462. package/ui/inline/Link.tsx +24 -0
  463. package/ui/inline/Mark.d.ts +23 -0
  464. package/ui/inline/Mark.js +18 -0
  465. package/ui/inline/Mark.tsx +24 -0
  466. package/ui/inline/Small.d.ts +23 -0
  467. package/ui/inline/Small.js +18 -0
  468. package/ui/inline/Small.tsx +24 -0
  469. package/ui/inline/Strong.d.ts +23 -0
  470. package/ui/inline/Strong.js +18 -0
  471. package/ui/inline/Strong.tsx +24 -0
  472. package/ui/inline/Subscript.d.ts +23 -0
  473. package/ui/inline/Subscript.js +18 -0
  474. package/ui/inline/Subscript.tsx +24 -0
  475. package/ui/inline/Superscript.d.ts +23 -0
  476. package/ui/inline/Superscript.js +18 -0
  477. package/ui/inline/Superscript.tsx +24 -0
  478. package/ui/inline/When.d.ts +42 -3
  479. package/ui/inline/When.js +27 -3
  480. package/ui/inline/When.tsx +42 -3
  481. package/ui/layout/CenteredLayout.d.ts +12 -1
  482. package/ui/layout/CenteredLayout.js +7 -1
  483. package/ui/layout/CenteredLayout.tsx +12 -1
  484. package/ui/layout/Layout.d.ts +12 -3
  485. package/ui/layout/Layout.js +12 -3
  486. package/ui/layout/Layout.ts +12 -3
  487. package/ui/layout/SidebarLayout.d.ts +12 -0
  488. package/ui/layout/SidebarLayout.js +7 -0
  489. package/ui/layout/SidebarLayout.tsx +12 -0
  490. package/ui/menu/Menu.d.ts +22 -0
  491. package/ui/menu/Menu.js +12 -0
  492. package/ui/menu/Menu.tsx +22 -0
  493. package/ui/misc/Catcher.d.ts +77 -5
  494. package/ui/misc/Catcher.js +47 -5
  495. package/ui/misc/Catcher.tsx +77 -5
  496. package/ui/misc/Loading.d.ts +20 -0
  497. package/ui/misc/Loading.js +15 -0
  498. package/ui/misc/Loading.tsx +20 -0
  499. package/ui/misc/Mapper.d.ts +13 -1
  500. package/ui/misc/Mapper.js +4 -0
  501. package/ui/misc/Mapper.tsx +13 -1
  502. package/ui/misc/Markup.d.ts +9 -1
  503. package/ui/misc/Markup.js +4 -0
  504. package/ui/misc/Markup.tsx +9 -1
  505. package/ui/misc/MetaContext.d.ts +24 -7
  506. package/ui/misc/MetaContext.js +19 -6
  507. package/ui/misc/MetaContext.tsx +24 -7
  508. package/ui/misc/StatusIcon.d.ts +16 -1
  509. package/ui/misc/StatusIcon.js +11 -1
  510. package/ui/misc/StatusIcon.tsx +16 -1
  511. package/ui/misc/Tag.d.ts +21 -0
  512. package/ui/misc/Tag.js +11 -0
  513. package/ui/misc/Tag.tsx +21 -0
  514. package/ui/notice/Message.d.ts +27 -1
  515. package/ui/notice/Message.js +22 -1
  516. package/ui/notice/Message.tsx +27 -1
  517. package/ui/notice/Notice.d.ts +24 -0
  518. package/ui/notice/Notice.js +19 -0
  519. package/ui/notice/Notice.tsx +24 -0
  520. package/ui/notice/NoticeStore.d.ts +30 -2
  521. package/ui/notice/NoticeStore.js +30 -2
  522. package/ui/notice/NoticeStore.ts +30 -2
  523. package/ui/notice/Notices.d.ts +11 -1
  524. package/ui/notice/Notices.js +6 -1
  525. package/ui/notice/Notices.tsx +11 -1
  526. package/ui/notice/NoticesStore.d.ts +23 -3
  527. package/ui/notice/NoticesStore.js +23 -3
  528. package/ui/notice/NoticesStore.ts +23 -3
  529. package/ui/page/HTML.d.ts +13 -2
  530. package/ui/page/HTML.js +8 -2
  531. package/ui/page/HTML.tsx +13 -2
  532. package/ui/page/Head.d.ts +5 -1
  533. package/ui/page/Head.js +5 -1
  534. package/ui/page/Head.tsx +5 -1
  535. package/ui/page/Page.d.ts +12 -1
  536. package/ui/page/Page.js +7 -1
  537. package/ui/page/Page.tsx +12 -1
  538. package/ui/router/Navigation.d.ts +11 -0
  539. package/ui/router/Navigation.js +6 -0
  540. package/ui/router/Navigation.tsx +11 -0
  541. package/ui/router/NavigationContext.d.ts +14 -2
  542. package/ui/router/NavigationContext.js +14 -2
  543. package/ui/router/NavigationContext.tsx +14 -2
  544. package/ui/router/NavigationStore.d.ts +29 -1
  545. package/ui/router/NavigationStore.js +29 -1
  546. package/ui/router/NavigationStore.tsx +29 -1
  547. package/ui/router/Router.d.ts +12 -1
  548. package/ui/router/Router.js +7 -1
  549. package/ui/router/Router.tsx +12 -1
  550. package/ui/router/Routes.d.ts +14 -4
  551. package/ui/router/Routes.tsx +14 -4
  552. package/ui/style/Color.d.ts +15 -2
  553. package/ui/style/Color.js +5 -0
  554. package/ui/style/Color.tsx +15 -2
  555. package/ui/style/Flex.d.ts +41 -4
  556. package/ui/style/Flex.js +26 -3
  557. package/ui/style/Flex.tsx +41 -4
  558. package/ui/style/Gap.d.ts +18 -3
  559. package/ui/style/Gap.js +8 -1
  560. package/ui/style/Gap.tsx +18 -3
  561. package/ui/style/Padding.d.ts +18 -3
  562. package/ui/style/Padding.js +8 -1
  563. package/ui/style/Padding.tsx +18 -3
  564. package/ui/style/Scroll.d.ts +36 -1
  565. package/ui/style/Scroll.js +26 -1
  566. package/ui/style/Scroll.tsx +37 -1
  567. package/ui/style/Space.d.ts +18 -3
  568. package/ui/style/Space.js +8 -1
  569. package/ui/style/Space.tsx +18 -3
  570. package/ui/style/Status.d.ts +23 -7
  571. package/ui/style/Status.js +13 -5
  572. package/ui/style/Status.tsx +23 -7
  573. package/ui/style/Tint.d.ts +7 -1
  574. package/ui/style/Tint.js +7 -1
  575. package/ui/style/Tint.tsx +7 -1
  576. package/ui/style/Typography.d.ts +38 -6
  577. package/ui/style/Typography.js +8 -0
  578. package/ui/style/Typography.tsx +38 -6
  579. package/ui/style/Width.d.ts +18 -1
  580. package/ui/style/Width.js +8 -0
  581. package/ui/style/Width.tsx +18 -1
  582. package/ui/transition/CollapseTransition.d.ts +13 -0
  583. package/ui/transition/CollapseTransition.js +8 -0
  584. package/ui/transition/CollapseTransition.tsx +13 -0
  585. package/ui/transition/FadeTransition.d.ts +13 -0
  586. package/ui/transition/FadeTransition.js +8 -0
  587. package/ui/transition/FadeTransition.tsx +13 -0
  588. package/ui/transition/HorizontalTransition.d.ts +13 -0
  589. package/ui/transition/HorizontalTransition.js +8 -0
  590. package/ui/transition/HorizontalTransition.tsx +13 -0
  591. package/ui/transition/Transition.d.ts +12 -4
  592. package/ui/transition/Transition.js +7 -3
  593. package/ui/transition/Transition.tsx +12 -4
  594. package/ui/transition/VerticalTransition.d.ts +13 -0
  595. package/ui/transition/VerticalTransition.js +8 -0
  596. package/ui/transition/VerticalTransition.tsx +13 -0
  597. package/ui/transition/util.d.ts +16 -6
  598. package/ui/transition/util.js +7 -1
  599. package/ui/transition/util.tsx +16 -6
  600. package/ui/tree/TreeApp.d.ts +11 -0
  601. package/ui/tree/TreeApp.js +6 -0
  602. package/ui/tree/TreeApp.tsx +11 -0
  603. package/ui/tree/TreeBreadcrumbs.d.ts +11 -0
  604. package/ui/tree/TreeBreadcrumbs.js +6 -0
  605. package/ui/tree/TreeBreadcrumbs.tsx +11 -0
  606. package/ui/tree/TreeButton.d.ts +9 -1
  607. package/ui/tree/TreeButton.js +4 -0
  608. package/ui/tree/TreeButton.tsx +9 -1
  609. package/ui/tree/TreeCard.d.ts +8 -1
  610. package/ui/tree/TreeCard.js +8 -1
  611. package/ui/tree/TreeCard.tsx +8 -1
  612. package/ui/tree/TreeCards.d.ts +16 -1
  613. package/ui/tree/TreeCards.js +11 -1
  614. package/ui/tree/TreeCards.tsx +16 -1
  615. package/ui/tree/TreeContext.d.ts +18 -1
  616. package/ui/tree/TreeContext.js +18 -1
  617. package/ui/tree/TreeContext.tsx +18 -1
  618. package/ui/tree/TreeMenu.d.ts +28 -1
  619. package/ui/tree/TreeMenu.js +23 -1
  620. package/ui/tree/TreeMenu.tsx +28 -1
  621. package/ui/tree/TreePage.d.ts +6 -0
  622. package/ui/tree/TreePage.js +6 -0
  623. package/ui/tree/TreePage.tsx +6 -0
  624. package/ui/tree/TreeRouter.d.ts +17 -2
  625. package/ui/tree/TreeRouter.js +12 -2
  626. package/ui/tree/TreeRouter.tsx +17 -2
  627. package/ui/tree/TreeSidebar.d.ts +11 -0
  628. package/ui/tree/TreeSidebar.js +6 -0
  629. package/ui/tree/TreeSidebar.tsx +11 -0
  630. package/ui/util/context.d.ts +13 -1
  631. package/ui/util/context.ts +13 -1
  632. package/ui/util/css.d.ts +17 -4
  633. package/ui/util/css.js +5 -1
  634. package/ui/util/css.ts +17 -4
  635. package/ui/util/event.d.ts +9 -1
  636. package/ui/util/event.js +9 -1
  637. package/ui/util/event.ts +9 -1
  638. package/ui/util/focus.d.ts +24 -5
  639. package/ui/util/focus.js +24 -5
  640. package/ui/util/focus.ts +24 -5
  641. package/ui/util/meta.d.ts +113 -21
  642. package/ui/util/meta.js +73 -13
  643. package/ui/util/meta.ts +113 -21
  644. package/ui/util/notice.d.ts +98 -10
  645. package/ui/util/notice.js +93 -9
  646. package/ui/util/notice.ts +98 -10
  647. package/ui/util/props.d.ts +10 -2
  648. package/ui/util/props.ts +10 -2
  649. package/ui/util/refresh.d.ts +10 -1
  650. package/ui/util/refresh.js +10 -1
  651. package/ui/util/refresh.ts +10 -1
  652. package/ui/util/scroll.d.ts +20 -4
  653. package/ui/util/scroll.js +20 -4
  654. package/ui/util/scroll.ts +20 -4
  655. package/ui/util/state.d.ts +19 -5
  656. package/ui/util/state.js +19 -5
  657. package/ui/util/state.ts +19 -5
  658. package/util/ansi.d.ts +118 -0
  659. package/util/ansi.js +116 -0
  660. package/util/array.d.ts +349 -33
  661. package/util/array.js +284 -27
  662. package/util/async.d.ts +87 -9
  663. package/util/async.js +80 -8
  664. package/util/base64.d.ts +56 -6
  665. package/util/base64.js +56 -6
  666. package/util/boolean.d.ts +75 -10
  667. package/util/boolean.js +75 -10
  668. package/util/buffer.d.ts +26 -3
  669. package/util/buffer.js +21 -3
  670. package/util/bytes.d.ts +42 -4
  671. package/util/bytes.js +32 -2
  672. package/util/class.d.ts +59 -8
  673. package/util/class.js +44 -5
  674. package/util/color.d.ts +131 -13
  675. package/util/color.js +126 -12
  676. package/util/constants.d.ts +132 -19
  677. package/util/constants.js +132 -19
  678. package/util/crypto.d.ts +17 -1
  679. package/util/crypto.js +17 -1
  680. package/util/currency.d.ts +38 -4
  681. package/util/currency.js +33 -3
  682. package/util/data.d.ts +139 -24
  683. package/util/data.js +39 -5
  684. package/util/date.d.ts +152 -18
  685. package/util/date.js +147 -17
  686. package/util/debug.d.ts +112 -11
  687. package/util/debug.js +114 -11
  688. package/util/dictionary.d.ts +205 -24
  689. package/util/dictionary.js +162 -17
  690. package/util/diff.d.ts +22 -3
  691. package/util/diff.js +11 -1
  692. package/util/dispose.d.ts +74 -2
  693. package/util/dispose.js +74 -2
  694. package/util/duration.d.ts +278 -16
  695. package/util/duration.js +267 -15
  696. package/util/element.d.ts +59 -6
  697. package/util/element.js +32 -3
  698. package/util/entity.d.ts +39 -6
  699. package/util/entity.js +5 -1
  700. package/util/entry.d.ts +56 -9
  701. package/util/entry.js +32 -4
  702. package/util/env.d.ts +26 -4
  703. package/util/env.js +26 -4
  704. package/util/equal.d.ts +181 -17
  705. package/util/equal.js +181 -17
  706. package/util/error.d.ts +57 -5
  707. package/util/error.js +52 -4
  708. package/util/file.d.ts +30 -7
  709. package/util/file.js +25 -6
  710. package/util/filter.d.ts +36 -4
  711. package/util/filter.js +31 -3
  712. package/util/focus.d.ts +9 -1
  713. package/util/focus.js +9 -1
  714. package/util/format.d.ts +186 -22
  715. package/util/format.js +135 -14
  716. package/util/function.d.ts +66 -11
  717. package/util/function.js +31 -4
  718. package/util/geo.d.ts +60 -8
  719. package/util/geo.js +45 -5
  720. package/util/hash.d.ts +21 -2
  721. package/util/hash.js +21 -2
  722. package/util/http.d.ts +134 -19
  723. package/util/http.js +94 -11
  724. package/util/hydrate.d.ts +19 -2
  725. package/util/hydrate.js +12 -1
  726. package/util/item.d.ts +70 -11
  727. package/util/item.js +35 -4
  728. package/util/iterate.d.ts +109 -13
  729. package/util/iterate.js +86 -10
  730. package/util/jwt.d.ts +47 -13
  731. package/util/jwt.js +36 -12
  732. package/util/lazy.d.ts +9 -6
  733. package/util/link.d.ts +10 -3
  734. package/util/link.js +5 -2
  735. package/util/log.d.ts +26 -3
  736. package/util/log.js +26 -3
  737. package/util/map.d.ts +144 -19
  738. package/util/map.js +101 -11
  739. package/util/merge.d.ts +23 -1
  740. package/util/merge.js +6 -0
  741. package/util/null.d.ts +102 -13
  742. package/util/null.js +92 -11
  743. package/util/number.d.ts +125 -8
  744. package/util/number.js +120 -7
  745. package/util/object.d.ts +263 -31
  746. package/util/object.js +154 -17
  747. package/util/path.d.ts +91 -15
  748. package/util/path.js +60 -9
  749. package/util/query.d.ts +78 -9
  750. package/util/query.js +58 -6
  751. package/util/random.d.ts +67 -4
  752. package/util/random.js +67 -4
  753. package/util/regexp.d.ts +201 -24
  754. package/util/regexp.js +106 -11
  755. package/util/sequence.d.ts +66 -8
  756. package/util/sequence.js +52 -7
  757. package/util/serialise.d.ts +7 -1
  758. package/util/serialise.js +7 -1
  759. package/util/set.d.ts +103 -13
  760. package/util/set.js +83 -9
  761. package/util/sort.d.ts +32 -7
  762. package/util/sort.js +26 -6
  763. package/util/source.d.ts +28 -3
  764. package/util/source.js +22 -2
  765. package/util/start.d.ts +62 -5
  766. package/util/start.js +47 -2
  767. package/util/string.d.ts +209 -25
  768. package/util/string.js +188 -21
  769. package/util/template.d.ts +58 -9
  770. package/util/template.js +45 -6
  771. package/util/timeout.d.ts +35 -11
  772. package/util/timeout.js +35 -11
  773. package/util/transform.d.ts +87 -8
  774. package/util/transform.js +75 -7
  775. package/util/tree.d.ts +39 -6
  776. package/util/tree.js +3 -0
  777. package/util/types.d.ts +8 -2
  778. package/util/undefined.d.ts +47 -6
  779. package/util/undefined.js +47 -6
  780. package/util/units.d.ts +107 -12
  781. package/util/units.js +97 -12
  782. package/util/update.d.ts +36 -4
  783. package/util/update.js +24 -2
  784. package/util/uri.d.ts +138 -6
  785. package/util/uri.js +44 -3
  786. package/util/url.d.ts +152 -7
  787. package/util/url.js +136 -5
  788. package/util/uuid.d.ts +28 -3
  789. package/util/uuid.js +28 -3
  790. package/util/validate.d.ts +85 -20
  791. package/util/validate.js +61 -12
  792. package/util/xml.d.ts +9 -10
  793. package/util/xml.js +9 -10
@@ -2,12 +2,12 @@
2
2
  import { addTransitionType } from "react";
3
3
 
4
4
  /**
5
- * List of known view transitions in `{ type: className }` format.
5
+ * Map of view-transition types to their CSS class names in `{ type: className }` format.
6
6
  *
7
- * @param type A "transition type" set with the React `addTransitionType()` API inside a `startTransition()` callback, e.g. "forward"
7
+ * - Each key is a "transition type" set with the React `addTransitionType()` API inside a `startTransition()` callback, e.g. `"forward"`.
8
+ * - Each value is a "transition class" that React sets on the element as its `view-transition-class: forward;` CSS property — should correspond to a `::view-transition-old(.slideForward)` rule.
8
9
  *
9
- * @param class A "transition class" that gets set by React on the element as its `view-transition-class: forward;` CSS property.
10
- * - Should correspond to a `::view-transition-old(.slideForward)`
10
+ * @see https://dhoulb.github.io/shelving/ui/transition/util/TransitionClasses
11
11
  */
12
12
  export type TransitionClasses = {
13
13
  default: string;
@@ -15,10 +15,20 @@ export type TransitionClasses = {
15
15
  back?: string;
16
16
  };
17
17
 
18
- /** List of known view transition types all of view transitions support. */
18
+ /**
19
+ * Known view-transition type names that all transitions support — the keys of `TransitionClasses`.
20
+ *
21
+ * @see https://dhoulb.github.io/shelving/ui/transition/util/TransitionType
22
+ */
19
23
  export type TransitionType = keyof TransitionClasses;
20
24
 
21
- /** Type-safe passthrough for the React `addTransitionType()` that checks `type` is one of our known view transition types. */
25
+ /**
26
+ * Type-safe passthrough for React's `addTransitionType()` that checks `type` is one of our known view-transition types.
27
+ *
28
+ * @param type The transition type to activate, constrained to a known `TransitionType`.
29
+ * @example setTransitionType("forward")
30
+ * @see https://dhoulb.github.io/shelving/ui/transition/util/setTransitionType
31
+ */
22
32
  export function setTransitionType(type: TransitionType): void {
23
33
  addTransitionType(type);
24
34
  }
@@ -2,6 +2,11 @@ import type { ReactElement } from "react";
2
2
  import type { TreeElement } from "../../util/index.js";
3
3
  import type { Routes } from "../router/Routes.js";
4
4
  import type { PossibleMeta } from "../util/index.js";
5
+ /**
6
+ * Props for the `TreeApp` component — the tree to render plus optional extra routes and app meta.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeApp/TreeAppProps
9
+ */
5
10
  export interface TreeAppProps extends PossibleMeta {
6
11
  /** The tree elements to display. */
7
12
  tree: TreeElement;
@@ -12,10 +17,16 @@ export interface TreeAppProps extends PossibleMeta {
12
17
  }
13
18
  /**
14
19
  * Top-level app component for a tree-based documentation site.
20
+ *
15
21
  * - Wraps `<App>` with error catching and a sidebar layout.
16
22
  * - The sidebar shows a `<TreeSidebar>` (root as a home link + a menu of its children).
17
23
  * - `/` renders the root via `<TreePage>`; `/**` catches every deeper path and feeds the full sub-path into `<TreePage>`.
18
24
  * - Element rendering uses the default mappings on `<TreePage>`, `<TreeMenu>`, `<TreeCards>`.
19
25
  * Override by wrapping with `<TreePageMapping>`, `<TreeMenuMapping>`, or `<TreeCardMapping>`.
26
+ *
27
+ * @param props The `tree` to render, optional extra `routes`, and app meta.
28
+ * @returns The configured `<App>` element with sidebar layout and tree routing.
29
+ * @example <TreeApp tree={tree} title="Docs" />
30
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeApp/TreeApp
20
31
  */
21
32
  export declare function TreeApp({ tree, routes: extraRoutes, ...meta }: TreeAppProps): ReactElement;
@@ -6,11 +6,17 @@ import { TreeRouter } from "./TreeRouter.js";
6
6
  import { TreeSidebar } from "./TreeSidebar.js";
7
7
  /**
8
8
  * Top-level app component for a tree-based documentation site.
9
+ *
9
10
  * - Wraps `<App>` with error catching and a sidebar layout.
10
11
  * - The sidebar shows a `<TreeSidebar>` (root as a home link + a menu of its children).
11
12
  * - `/` renders the root via `<TreePage>`; `/**` catches every deeper path and feeds the full sub-path into `<TreePage>`.
12
13
  * - Element rendering uses the default mappings on `<TreePage>`, `<TreeMenu>`, `<TreeCards>`.
13
14
  * Override by wrapping with `<TreePageMapping>`, `<TreeMenuMapping>`, or `<TreeCardMapping>`.
15
+ *
16
+ * @param props The `tree` to render, optional extra `routes`, and app meta.
17
+ * @returns The configured `<App>` element with sidebar layout and tree routing.
18
+ * @example <TreeApp tree={tree} title="Docs" />
19
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeApp/TreeApp
14
20
  */
15
21
  export function TreeApp({ tree, routes: extraRoutes, ...meta }) {
16
22
  return (_jsx(App, { ...meta, children: _jsx(PageCatcher, { children: _jsx(SidebarLayout, { sidebar: _jsx(TreeSidebar, { tree: tree }), children: _jsx(TreeRouter, { tree: tree }) }) }) }));
@@ -8,6 +8,11 @@ import type { PossibleMeta } from "../util/index.js";
8
8
  import { TreeRouter } from "./TreeRouter.js";
9
9
  import { TreeSidebar } from "./TreeSidebar.js";
10
10
 
11
+ /**
12
+ * Props for the `TreeApp` component — the tree to render plus optional extra routes and app meta.
13
+ *
14
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeApp/TreeAppProps
15
+ */
11
16
  export interface TreeAppProps extends PossibleMeta {
12
17
  /** The tree elements to display. */
13
18
  tree: TreeElement;
@@ -19,11 +24,17 @@ export interface TreeAppProps extends PossibleMeta {
19
24
 
20
25
  /**
21
26
  * Top-level app component for a tree-based documentation site.
27
+ *
22
28
  * - Wraps `<App>` with error catching and a sidebar layout.
23
29
  * - The sidebar shows a `<TreeSidebar>` (root as a home link + a menu of its children).
24
30
  * - `/` renders the root via `<TreePage>`; `/**` catches every deeper path and feeds the full sub-path into `<TreePage>`.
25
31
  * - Element rendering uses the default mappings on `<TreePage>`, `<TreeMenu>`, `<TreeCards>`.
26
32
  * Override by wrapping with `<TreePageMapping>`, `<TreeMenuMapping>`, or `<TreeCardMapping>`.
33
+ *
34
+ * @param props The `tree` to render, optional extra `routes`, and app meta.
35
+ * @returns The configured `<App>` element with sidebar layout and tree routing.
36
+ * @example <TreeApp tree={tree} title="Docs" />
37
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeApp/TreeApp
27
38
  */
28
39
  export function TreeApp({ tree, routes: extraRoutes, ...meta }: TreeAppProps): ReactElement {
29
40
  return (
@@ -2,14 +2,25 @@ import { type ReactElement } from "react";
2
2
  import { type FlexVariants } from "../style/Flex.js";
3
3
  import { type SpaceVariants } from "../style/Space.js";
4
4
  import { type TypographyVariants } from "../style/Typography.js";
5
+ /**
6
+ * Props for the `TreeBreadcrumbs` component — typography, space, and flex variant props.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeBreadcrumbs/TreeBreadcrumbsProps
9
+ */
5
10
  export interface TreeBreadcrumbsProps extends TypographyVariants, SpaceVariants, FlexVariants {
6
11
  }
7
12
  /**
8
13
  * Breadcrumb trail of links to a tree page's ancestors, separated by `›` arrow icons.
14
+ *
9
15
  * - Built from the page's own `path`: each ancestor prefix is looked up in the tree map for its title, and links to its cumulative path.
10
16
  * - Prefixes with no entry (e.g. the partial half of a `"util/string"` module name) are skipped, so composite names collapse to a single crumb.
11
17
  * - The current item is deliberately omitted — the page `<Title>` already names it.
12
18
  * - Block spacing defaults to section spacing (via `BLOCK_CLASS`); pass `space` to override.
13
19
  * - Renders nothing at the tree root (no ancestors) or when there's no `<TreeProvider>` to resolve labels from.
20
+ *
21
+ * @param props Typography, space, and flex variant props.
22
+ * @returns A `<nav>` of breadcrumb links, or `null` at the tree root.
23
+ * @example <TreeBreadcrumbs />
24
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeBreadcrumbs/TreeBreadcrumbs
14
25
  */
15
26
  export declare function TreeBreadcrumbs({ tint, left, wrap, ...variants }: TreeBreadcrumbsProps): ReactElement | null;
@@ -12,11 +12,17 @@ import { TreeButton } from "./TreeButton.js";
12
12
  import { useTreeMap } from "./TreeContext.js";
13
13
  /**
14
14
  * Breadcrumb trail of links to a tree page's ancestors, separated by `›` arrow icons.
15
+ *
15
16
  * - Built from the page's own `path`: each ancestor prefix is looked up in the tree map for its title, and links to its cumulative path.
16
17
  * - Prefixes with no entry (e.g. the partial half of a `"util/string"` module name) are skipped, so composite names collapse to a single crumb.
17
18
  * - The current item is deliberately omitted — the page `<Title>` already names it.
18
19
  * - Block spacing defaults to section spacing (via `BLOCK_CLASS`); pass `space` to override.
19
20
  * - Renders nothing at the tree root (no ancestors) or when there's no `<TreeProvider>` to resolve labels from.
21
+ *
22
+ * @param props Typography, space, and flex variant props.
23
+ * @returns A `<nav>` of breadcrumb links, or `null` at the tree root.
24
+ * @example <TreeBreadcrumbs />
25
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeBreadcrumbs/TreeBreadcrumbs
20
26
  */
21
27
  export function TreeBreadcrumbs({ tint = "70", left = true, wrap = true, ...variants }) {
22
28
  const map = useTreeMap();
@@ -10,15 +10,26 @@ import { getClass } from "../util/css.js";
10
10
  import { TreeButton } from "./TreeButton.js";
11
11
  import { useTreeMap } from "./TreeContext.js";
12
12
 
13
+ /**
14
+ * Props for the `TreeBreadcrumbs` component — typography, space, and flex variant props.
15
+ *
16
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeBreadcrumbs/TreeBreadcrumbsProps
17
+ */
13
18
  export interface TreeBreadcrumbsProps extends TypographyVariants, SpaceVariants, FlexVariants {}
14
19
 
15
20
  /**
16
21
  * Breadcrumb trail of links to a tree page's ancestors, separated by `›` arrow icons.
22
+ *
17
23
  * - Built from the page's own `path`: each ancestor prefix is looked up in the tree map for its title, and links to its cumulative path.
18
24
  * - Prefixes with no entry (e.g. the partial half of a `"util/string"` module name) are skipped, so composite names collapse to a single crumb.
19
25
  * - The current item is deliberately omitted — the page `<Title>` already names it.
20
26
  * - Block spacing defaults to section spacing (via `BLOCK_CLASS`); pass `space` to override.
21
27
  * - Renders nothing at the tree root (no ancestors) or when there's no `<TreeProvider>` to resolve labels from.
28
+ *
29
+ * @param props Typography, space, and flex variant props.
30
+ * @returns A `<nav>` of breadcrumb links, or `null` at the tree root.
31
+ * @example <TreeBreadcrumbs />
32
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeBreadcrumbs/TreeBreadcrumbs
22
33
  */
23
34
  export function TreeBreadcrumbs({ tint = "70", left = true, wrap = true, ...variants }: TreeBreadcrumbsProps): ReactElement | null {
24
35
  const map = useTreeMap();
@@ -1,6 +1,10 @@
1
1
  import type { ReactElement, ReactNode } from "react";
2
2
  import { type ButtonVariants } from "../form/Button.js";
3
- /** Props for `TreeButton`. */
3
+ /**
4
+ * Props for the `TreeButton` component — the element reference plus button variants.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeButton/TreeButtonProps
7
+ */
4
8
  export interface TreeButtonProps extends ButtonVariants {
5
9
  /** Reference to an element in the tree — a flat key (`"Store"`, `"Store.get"`) or a canonical path (`"/schema/BooleanSchema"`). */
6
10
  readonly name: string;
@@ -9,10 +13,14 @@ export interface TreeButtonProps extends ButtonVariants {
9
13
  }
10
14
  /**
11
15
  * Small button linking to a specific tree element, resolved by reference string.
16
+ *
12
17
  * - Looks `name` up in the flattened tree map (`useTreeMap()`) — by flat key (`"Store"`, `"Store.get"`) or canonical path (`"/schema/BooleanSchema"`) — and links to the element's canonical `path`.
13
18
  * - A hit becomes an `<a>` link; a miss (e.g. a builtin like `Serializable`) stays a plain non-link label so it still reads as text.
14
19
  * - Defaults to `small plain` styling; pass other `ButtonVariants` to override.
15
20
  *
21
+ * @param props The element reference `name`, optional `children` label, and button variants.
22
+ * @returns A `<Button>` element linking to the resolved element, or a plain label on a miss.
16
23
  * @example <TreeButton name="Store.get">Store.get()</TreeButton>
24
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeButton/TreeButton
17
25
  */
18
26
  export declare function TreeButton({ name, children, small, plain, ...variants }: TreeButtonProps): ReactElement;
@@ -3,11 +3,15 @@ import { Button } from "../form/Button.js";
3
3
  import { useTreeMap } from "./TreeContext.js";
4
4
  /**
5
5
  * Small button linking to a specific tree element, resolved by reference string.
6
+ *
6
7
  * - Looks `name` up in the flattened tree map (`useTreeMap()`) — by flat key (`"Store"`, `"Store.get"`) or canonical path (`"/schema/BooleanSchema"`) — and links to the element's canonical `path`.
7
8
  * - A hit becomes an `<a>` link; a miss (e.g. a builtin like `Serializable`) stays a plain non-link label so it still reads as text.
8
9
  * - Defaults to `small plain` styling; pass other `ButtonVariants` to override.
9
10
  *
11
+ * @param props The element reference `name`, optional `children` label, and button variants.
12
+ * @returns A `<Button>` element linking to the resolved element, or a plain label on a miss.
10
13
  * @example <TreeButton name="Store.get">Store.get()</TreeButton>
14
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeButton/TreeButton
11
15
  */
12
16
  export function TreeButton({ name, children, small = true, plain = true, ...variants }) {
13
17
  const element = useTreeMap().get(name);
@@ -2,7 +2,11 @@ import type { ReactElement, ReactNode } from "react";
2
2
  import { Button, type ButtonVariants } from "../form/Button.js";
3
3
  import { useTreeMap } from "./TreeContext.js";
4
4
 
5
- /** Props for `TreeButton`. */
5
+ /**
6
+ * Props for the `TreeButton` component — the element reference plus button variants.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeButton/TreeButtonProps
9
+ */
6
10
  export interface TreeButtonProps extends ButtonVariants {
7
11
  /** Reference to an element in the tree — a flat key (`"Store"`, `"Store.get"`) or a canonical path (`"/schema/BooleanSchema"`). */
8
12
  readonly name: string;
@@ -12,11 +16,15 @@ export interface TreeButtonProps extends ButtonVariants {
12
16
 
13
17
  /**
14
18
  * Small button linking to a specific tree element, resolved by reference string.
19
+ *
15
20
  * - Looks `name` up in the flattened tree map (`useTreeMap()`) — by flat key (`"Store"`, `"Store.get"`) or canonical path (`"/schema/BooleanSchema"`) — and links to the element's canonical `path`.
16
21
  * - A hit becomes an `<a>` link; a miss (e.g. a builtin like `Serializable`) stays a plain non-link label so it still reads as text.
17
22
  * - Defaults to `small plain` styling; pass other `ButtonVariants` to override.
18
23
  *
24
+ * @param props The element reference `name`, optional `children` label, and button variants.
25
+ * @returns A `<Button>` element linking to the resolved element, or a plain label on a miss.
19
26
  * @example <TreeButton name="Store.get">Store.get()</TreeButton>
27
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeButton/TreeButton
20
28
  */
21
29
  export function TreeButton({ name, children, small = true, plain = true, ...variants }: TreeButtonProps): ReactElement {
22
30
  const element = useTreeMap().get(name);
@@ -1,4 +1,11 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { TreeElementProps } from "../../util/tree.js";
3
- /** Card renderer for a generic `tree-element` (a directory or file) — a summary card showing the heading and description. */
3
+ /**
4
+ * Card renderer for a generic `tree-element` (a directory or file) — a summary card showing the heading and description.
5
+ *
6
+ * @param props The tree element props (`path`, `name`, `title`, `description`).
7
+ * @returns A `<Card>` linking to the element's canonical `path`.
8
+ * @example <TreeCard {...element.props} />
9
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCard/TreeCard
10
+ */
4
11
  export declare function TreeCard({ path, name, title, description }: TreeElementProps): ReactNode;
@@ -2,7 +2,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Card } from "../block/Card.js";
3
3
  import { Paragraph } from "../block/Paragraph.js";
4
4
  import { Subheading } from "../block/Subheading.js";
5
- /** Card renderer for a generic `tree-element` (a directory or file) — a summary card showing the heading and description. */
5
+ /**
6
+ * Card renderer for a generic `tree-element` (a directory or file) — a summary card showing the heading and description.
7
+ *
8
+ * @param props The tree element props (`path`, `name`, `title`, `description`).
9
+ * @returns A `<Card>` linking to the element's canonical `path`.
10
+ * @example <TreeCard {...element.props} />
11
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCard/TreeCard
12
+ */
6
13
  export function TreeCard({ path, name, title, description }) {
7
14
  // `path` is the element's own canonical URL, stamped by `flattenTree()` — link straight to it.
8
15
  return (_jsxs(Card, { href: path, children: [_jsx(Subheading, { children: title ?? name }), description && _jsx(Paragraph, { children: description })] }));
@@ -4,7 +4,14 @@ import { Card } from "../block/Card.js";
4
4
  import { Paragraph } from "../block/Paragraph.js";
5
5
  import { Subheading } from "../block/Subheading.js";
6
6
 
7
- /** Card renderer for a generic `tree-element` (a directory or file) — a summary card showing the heading and description. */
7
+ /**
8
+ * Card renderer for a generic `tree-element` (a directory or file) — a summary card showing the heading and description.
9
+ *
10
+ * @param props The tree element props (`path`, `name`, `title`, `description`).
11
+ * @returns A `<Card>` linking to the element's canonical `path`.
12
+ * @example <TreeCard {...element.props} />
13
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCard/TreeCard
14
+ */
8
15
  export function TreeCard({ path, name, title, description }: TreeElementProps): ReactNode {
9
16
  // `path` is the element's own canonical URL, stamped by `flattenTree()` — link straight to it.
10
17
  return (
@@ -1,16 +1,31 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { TreeElements } from "../../util/tree.js";
3
- /** Mapping + Mapper pair for tree cards — wrap children in `<TreeCardMapping>` to override. */
3
+ /**
4
+ * Mapping + Mapper pair for tree cards — wrap children in `<TreeCardMapping>` to override the per-type card renderers.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCards/TreeCardMapping
7
+ */
4
8
  export declare const TreeCardMapping: import("react").FunctionComponent<import("../misc/Mapper.js").MappingProps<unknown>>, TreeCardMapper: import("react").FunctionComponent<{
5
9
  readonly children?: import("../../util/element.js").Elements;
6
10
  }>;
11
+ /**
12
+ * Props for the `TreeCards` component — the tree elements to render as cards.
13
+ *
14
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCards/TreeCardsProps
15
+ */
7
16
  export interface TreeCardsProps {
8
17
  /** The children to render as cards. */
9
18
  readonly children?: TreeElements;
10
19
  }
11
20
  /**
12
21
  * Render a list of tree elements as a stack of cards.
22
+ *
13
23
  * - Each element is dispatched via `<TreeCardMapper>` to its registered renderer; each card links to its own stamped `path`.
14
24
  * - To override the renderer for a specific element type, wrap in `<TreeCardMapping mapping={…}>`.
25
+ *
26
+ * @param props The tree elements to render as `children`.
27
+ * @returns A `<TreeCardMapper>` rendering each element as a card.
28
+ * @example <TreeCards>{element.props.children}</TreeCards>
29
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCards/TreeCards
15
30
  */
16
31
  export declare function TreeCards({ children }: TreeCardsProps): ReactNode;
@@ -3,15 +3,25 @@ import { walkElements } from "../../util/element.js";
3
3
  import { DocumentationCard } from "../docs/DocumentationCard.js";
4
4
  import { createMapper } from "../misc/Mapper.js";
5
5
  import { TreeCard } from "./TreeCard.js";
6
- /** Mapping + Mapper pair for tree cards — wrap children in `<TreeCardMapping>` to override. */
6
+ /**
7
+ * Mapping + Mapper pair for tree cards — wrap children in `<TreeCardMapping>` to override the per-type card renderers.
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCards/TreeCardMapping
10
+ */
7
11
  export const [TreeCardMapping, TreeCardMapper] = createMapper({
8
12
  "tree-element": TreeCard,
9
13
  "tree-documentation": DocumentationCard,
10
14
  });
11
15
  /**
12
16
  * Render a list of tree elements as a stack of cards.
17
+ *
13
18
  * - Each element is dispatched via `<TreeCardMapper>` to its registered renderer; each card links to its own stamped `path`.
14
19
  * - To override the renderer for a specific element type, wrap in `<TreeCardMapping mapping={…}>`.
20
+ *
21
+ * @param props The tree elements to render as `children`.
22
+ * @returns A `<TreeCardMapper>` rendering each element as a card.
23
+ * @example <TreeCards>{element.props.children}</TreeCards>
24
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCards/TreeCards
15
25
  */
16
26
  export function TreeCards({ children }) {
17
27
  return _jsx(TreeCardMapper, { children: walkElements(children) });
@@ -5,12 +5,21 @@ import { DocumentationCard } from "../docs/DocumentationCard.js";
5
5
  import { createMapper } from "../misc/Mapper.js";
6
6
  import { TreeCard } from "./TreeCard.js";
7
7
 
8
- /** Mapping + Mapper pair for tree cards — wrap children in `<TreeCardMapping>` to override. */
8
+ /**
9
+ * Mapping + Mapper pair for tree cards — wrap children in `<TreeCardMapping>` to override the per-type card renderers.
10
+ *
11
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCards/TreeCardMapping
12
+ */
9
13
  export const [TreeCardMapping, TreeCardMapper] = createMapper({
10
14
  "tree-element": TreeCard,
11
15
  "tree-documentation": DocumentationCard,
12
16
  });
13
17
 
18
+ /**
19
+ * Props for the `TreeCards` component — the tree elements to render as cards.
20
+ *
21
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCards/TreeCardsProps
22
+ */
14
23
  export interface TreeCardsProps {
15
24
  /** The children to render as cards. */
16
25
  readonly children?: TreeElements;
@@ -18,8 +27,14 @@ export interface TreeCardsProps {
18
27
 
19
28
  /**
20
29
  * Render a list of tree elements as a stack of cards.
30
+ *
21
31
  * - Each element is dispatched via `<TreeCardMapper>` to its registered renderer; each card links to its own stamped `path`.
22
32
  * - To override the renderer for a specific element type, wrap in `<TreeCardMapping mapping={…}>`.
33
+ *
34
+ * @param props The tree elements to render as `children`.
35
+ * @returns A `<TreeCardMapper>` rendering each element as a card.
36
+ * @example <TreeCards>{element.props.children}</TreeCards>
37
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeCards/TreeCards
23
38
  */
24
39
  export function TreeCards({ children }: TreeCardsProps): ReactNode {
25
40
  return <TreeCardMapper>{walkElements(children)}</TreeCardMapper>;
@@ -1,11 +1,23 @@
1
1
  import { type ReactNode } from "react";
2
2
  import { type TreeElement } from "../../util/tree.js";
3
- /** A flattened `key` → `element` map of the surrounding tree(s) — keyed by flat name (`"BooleanSchema"`, `"Class.member"`) and canonical path (`"/schema/BooleanSchema"`) — for fast cross-reference lookup. */
3
+ /**
4
+ * React context holding a flattened `key` → `element` map of the surrounding tree(s).
5
+ *
6
+ * - Keyed by flat name (`"BooleanSchema"`, `"Class.member"`) and canonical path (`"/schema/BooleanSchema"`) for fast cross-reference lookup.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeContext/TreeContext
9
+ */
4
10
  export declare const TreeContext: import("react").Context<ReadonlyMap<string, TreeElement<import("../../util/tree.js").TreeElementProps>>>;
5
11
  /**
6
12
  * Provide a tree to descendants as a flattened lookup map (see `flattenTree()`).
13
+ *
7
14
  * - Flattens `tree` **once** (memoised) when set — not on every lookup in every element.
8
15
  * - Merges onto any parent `<TreeProvider>`'s map, so cross-references resolve across an entire nested set of trees; the outer (parent) tree wins on collision.
16
+ *
17
+ * @param props The `tree` to flatten and provide, plus `children`.
18
+ * @returns A `<TreeContext>` provider wrapping the children with the flattened map.
19
+ * @example <TreeProvider tree={tree}>{children}</TreeProvider>
20
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeContext/TreeProvider
9
21
  */
10
22
  export declare function TreeProvider({ tree, children }: {
11
23
  readonly tree: TreeElement;
@@ -13,6 +25,11 @@ export declare function TreeProvider({ tree, children }: {
13
25
  }): ReactNode;
14
26
  /**
15
27
  * Use the flattened tree lookup map from context.
28
+ *
16
29
  * - Returns an empty map when there's no `<TreeProvider>` above (e.g. an isolated card rendered outside the tree shell), so callers can look up freely and fall back to plain text on a miss.
30
+ *
31
+ * @returns The flattened `key` → `element` map, or an empty map when no `<TreeProvider>` is present.
32
+ * @example const element = useTreeMap().get("Store.get");
33
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeContext/useTreeMap
17
34
  */
18
35
  export declare function useTreeMap(): ReadonlyMap<string, TreeElement>;
@@ -1,13 +1,25 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { createContext, use, useMemo } from "react";
3
3
  import { flattenTree } from "../../util/tree.js";
4
- /** A flattened `key` → `element` map of the surrounding tree(s) — keyed by flat name (`"BooleanSchema"`, `"Class.member"`) and canonical path (`"/schema/BooleanSchema"`) — for fast cross-reference lookup. */
4
+ /**
5
+ * React context holding a flattened `key` → `element` map of the surrounding tree(s).
6
+ *
7
+ * - Keyed by flat name (`"BooleanSchema"`, `"Class.member"`) and canonical path (`"/schema/BooleanSchema"`) for fast cross-reference lookup.
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeContext/TreeContext
10
+ */
5
11
  export const TreeContext = createContext(new Map());
6
12
  TreeContext.displayName = "TreeContext";
7
13
  /**
8
14
  * Provide a tree to descendants as a flattened lookup map (see `flattenTree()`).
15
+ *
9
16
  * - Flattens `tree` **once** (memoised) when set — not on every lookup in every element.
10
17
  * - Merges onto any parent `<TreeProvider>`'s map, so cross-references resolve across an entire nested set of trees; the outer (parent) tree wins on collision.
18
+ *
19
+ * @param props The `tree` to flatten and provide, plus `children`.
20
+ * @returns A `<TreeContext>` provider wrapping the children with the flattened map.
21
+ * @example <TreeProvider tree={tree}>{children}</TreeProvider>
22
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeContext/TreeProvider
11
23
  */
12
24
  export function TreeProvider({ tree, children }) {
13
25
  const parent = use(TreeContext);
@@ -16,7 +28,12 @@ export function TreeProvider({ tree, children }) {
16
28
  }
17
29
  /**
18
30
  * Use the flattened tree lookup map from context.
31
+ *
19
32
  * - Returns an empty map when there's no `<TreeProvider>` above (e.g. an isolated card rendered outside the tree shell), so callers can look up freely and fall back to plain text on a miss.
33
+ *
34
+ * @returns The flattened `key` → `element` map, or an empty map when no `<TreeProvider>` is present.
35
+ * @example const element = useTreeMap().get("Store.get");
36
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeContext/useTreeMap
20
37
  */
21
38
  export function useTreeMap() {
22
39
  return use(TreeContext);
@@ -1,14 +1,26 @@
1
1
  import { createContext, type ReactNode, use, useMemo } from "react";
2
2
  import { flattenTree, type TreeElement } from "../../util/tree.js";
3
3
 
4
- /** A flattened `key` → `element` map of the surrounding tree(s) — keyed by flat name (`"BooleanSchema"`, `"Class.member"`) and canonical path (`"/schema/BooleanSchema"`) — for fast cross-reference lookup. */
4
+ /**
5
+ * React context holding a flattened `key` → `element` map of the surrounding tree(s).
6
+ *
7
+ * - Keyed by flat name (`"BooleanSchema"`, `"Class.member"`) and canonical path (`"/schema/BooleanSchema"`) for fast cross-reference lookup.
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeContext/TreeContext
10
+ */
5
11
  export const TreeContext = createContext<ReadonlyMap<string, TreeElement>>(new Map());
6
12
  TreeContext.displayName = "TreeContext";
7
13
 
8
14
  /**
9
15
  * Provide a tree to descendants as a flattened lookup map (see `flattenTree()`).
16
+ *
10
17
  * - Flattens `tree` **once** (memoised) when set — not on every lookup in every element.
11
18
  * - Merges onto any parent `<TreeProvider>`'s map, so cross-references resolve across an entire nested set of trees; the outer (parent) tree wins on collision.
19
+ *
20
+ * @param props The `tree` to flatten and provide, plus `children`.
21
+ * @returns A `<TreeContext>` provider wrapping the children with the flattened map.
22
+ * @example <TreeProvider tree={tree}>{children}</TreeProvider>
23
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeContext/TreeProvider
12
24
  */
13
25
  export function TreeProvider({ tree, children }: { readonly tree: TreeElement; readonly children: ReactNode }): ReactNode {
14
26
  const parent = use(TreeContext);
@@ -18,7 +30,12 @@ export function TreeProvider({ tree, children }: { readonly tree: TreeElement; r
18
30
 
19
31
  /**
20
32
  * Use the flattened tree lookup map from context.
33
+ *
21
34
  * - Returns an empty map when there's no `<TreeProvider>` above (e.g. an isolated card rendered outside the tree shell), so callers can look up freely and fall back to plain text on a miss.
35
+ *
36
+ * @returns The flattened `key` → `element` map, or an empty map when no `<TreeProvider>` is present.
37
+ * @example const element = useTreeMap().get("Store.get");
38
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeContext/useTreeMap
22
39
  */
23
40
  export function useTreeMap(): ReadonlyMap<string, TreeElement> {
24
41
  return use(TreeContext);
@@ -4,8 +4,14 @@ import { type AbsolutePath } from "../../util/path.js";
4
4
  import type { TreeElement, TreeElementProps } from "../../util/tree.js";
5
5
  /**
6
6
  * Match an element that should appear in the sidebar menu.
7
+ *
7
8
  * - Generic tree elements (directories and files) always qualify.
8
9
  * - For documentation elements, only `kind: "module"` qualifies — functions, classes, methods, properties, etc. are kept off the navigation.
10
+ *
11
+ * @param element The element to test.
12
+ * @returns `true` when the element should appear in the menu, `false` otherwise.
13
+ * @example matchMenuElement(element) // true
14
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeMenu/matchMenuElement
9
15
  */
10
16
  export declare function matchMenuElement(element: Element): boolean;
11
17
  /** Extras threaded through `TreeMenuMapper` to every menu item — the parent's URL path. */
@@ -15,12 +21,27 @@ interface TreeMenuExtras {
15
21
  }
16
22
  /**
17
23
  * Default menu item renderer for any `tree-*` element.
24
+ *
18
25
  * - Computes its own URL path by appending its `name` to the parent's `path`.
19
26
  * - Passes both the label and the nested `<TreeMenuMapper>` to `<MenuItem>`; `<MenuItem>` itself decides whether to reveal the nested submenu based on the current URL.
27
+ *
28
+ * @param props The tree element props plus the parent's `path`.
29
+ * @returns A `<MenuItem>` for the element, with a nested `<Menu>` when it has menu-eligible children.
30
+ * @example <TreeMenuItem {...element.props} path="/" />
31
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeMenu/TreeMenuItem
20
32
  */
21
33
  export declare function TreeMenuItem({ path, name, title, children }: TreeElementProps & TreeMenuExtras): ReactNode;
22
- /** Mapping + Mapper pair for the menu — wrap children in `<TreeMenuMapping>` to override. */
34
+ /**
35
+ * Mapping + Mapper pair for the menu — wrap children in `<TreeMenuMapping>` to override the per-type menu-item renderers.
36
+ *
37
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeMenu/TreeMenuMapping
38
+ */
23
39
  export declare const TreeMenuMapping: import("react").FunctionComponent<import("../misc/Mapper.js").MappingProps<TreeMenuExtras>>, TreeMenuMapper: import("react").FunctionComponent<import("../misc/Mapper.js").MapperProps<TreeMenuExtras>>;
40
+ /**
41
+ * Props for the `TreeMenu` component — the root tree element plus its URL path.
42
+ *
43
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeMenu/TreeMenuProps
44
+ */
24
45
  export interface TreeMenuProps {
25
46
  /** Root element whose children become the navigation links. */
26
47
  readonly tree: TreeElement;
@@ -29,9 +50,15 @@ export interface TreeMenuProps {
29
50
  }
30
51
  /**
31
52
  * Sidebar navigation menu built from the children of a root tree element.
53
+ *
32
54
  * - Renders each child via `<TreeMenuItem>` (the default mapping for `tree-element`).
33
55
  * - To customise renderers for specific types, wrap in `<TreeMenuMapping mapping={…}>`.
34
56
  * - Only directories and files appear — code symbols are kept off the navigation.
57
+ *
58
+ * @param props The root `tree` element and optional root `path`.
59
+ * @returns A `<Menu>` of navigation links to the root's children.
60
+ * @example <TreeMenu tree={tree} />
61
+ * @see https://dhoulb.github.io/shelving/ui/tree/TreeMenu/TreeMenu
35
62
  */
36
63
  export declare function TreeMenu({ path, tree }: TreeMenuProps): ReactNode;
37
64
  export {};