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
@@ -1,6 +1,21 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import styles from "./Loading.module.css";
3
+ /**
4
+ * Animated spinner SVG used as a loading indicator.
5
+ *
6
+ * - Self-contained inline SVG with a rotating indicator arc; inherits its colour and size from the surrounding text.
7
+ *
8
+ * @returns The spinner element.
9
+ * @example <Loading />
10
+ * @see https://dhoulb.github.io/shelving/ui/misc/Loading/Loading
11
+ */
3
12
  export function Loading() {
4
13
  return (_jsxs("svg", { "aria-hidden": "true", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", className: styles.spinner, "data-slot": "icon", children: [_jsx("title", { children: "Loading..." }), _jsx("circle", { className: styles.track, cx: "12", cy: "12", r: "9", pathLength: "100" }), _jsxs("g", { children: [_jsx("animateTransform", { attributeName: "transform", attributeType: "xml", type: "rotate", from: "0 12 12", to: "360 12 12", dur: "0.5s", repeatCount: "indefinite" }), _jsx("circle", { className: styles.indicator, cx: "12", cy: "12", r: "9", pathLength: "100" })] })] }));
5
14
  }
15
+ /**
16
+ * Shared `<Loading>` element with a stable `key`, ready to drop into `Suspense` fallbacks and lists.
17
+ *
18
+ * @example <Suspense fallback={LOADING}>…</Suspense>
19
+ * @see https://dhoulb.github.io/shelving/ui/misc/Loading/LOADING
20
+ */
6
21
  export const LOADING = _jsx(Loading, {}, "loading");
@@ -3,10 +3,24 @@ import styles from "./Loading.module.css";
3
3
 
4
4
  declare const _componentProps: unique symbol;
5
5
 
6
+ /**
7
+ * Props for `<Loading>` — takes no props (branded empty interface).
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/ui/misc/Loading/LoadingProps
10
+ */
6
11
  export interface LoadingProps {
7
12
  readonly [_componentProps]?: never;
8
13
  }
9
14
 
15
+ /**
16
+ * Animated spinner SVG used as a loading indicator.
17
+ *
18
+ * - Self-contained inline SVG with a rotating indicator arc; inherits its colour and size from the surrounding text.
19
+ *
20
+ * @returns The spinner element.
21
+ * @example <Loading />
22
+ * @see https://dhoulb.github.io/shelving/ui/misc/Loading/Loading
23
+ */
10
24
  export function Loading(): ReactElement {
11
25
  return (
12
26
  <svg aria-hidden="true" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" className={styles.spinner} data-slot="icon">
@@ -28,4 +42,10 @@ export function Loading(): ReactElement {
28
42
  );
29
43
  }
30
44
 
45
+ /**
46
+ * Shared `<Loading>` element with a stable `key`, ready to drop into `Suspense` fallbacks and lists.
47
+ *
48
+ * @example <Suspense fallback={LOADING}>…</Suspense>
49
+ * @see https://dhoulb.github.io/shelving/ui/misc/Loading/LOADING
50
+ */
31
51
  export const LOADING = <Loading key="loading" />;
@@ -5,11 +5,17 @@ import type { ChildProps } from "../util/props.js";
5
5
  * Dispatch table from a `JSX.IntrinsicElements` key to a renderer component.
6
6
  * - Each entry is optional — unmapped elements fall through and render as themselves (e.g. an unmapped `<tree-foo>` appears as a raw `<tree-foo>` HTML element).
7
7
  * - Per-entry component receives `JSX.IntrinsicElements[K] & E` — the declared props for that element type, plus any extra props `E` the mapper is configured to thread through.
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/ui/misc/Mapper/Mapping
8
10
  */
9
11
  export type Mapping<E = unknown> = {
10
12
  [K in keyof JSX.IntrinsicElements]?: ComponentType<JSX.IntrinsicElements[K] & E>;
11
13
  };
12
- /** Props for the `Mapping` component returned by `createMapper()`. */
14
+ /**
15
+ * Props for the `Mapping` component returned by `createMapper()`.
16
+ *
17
+ * @see https://dhoulb.github.io/shelving/ui/misc/Mapper/MappingProps
18
+ */
13
19
  export interface MappingProps<E = unknown> extends ChildProps {
14
20
  /** Mapping entries that extend or override the inherited mapping inside this subtree. */
15
21
  readonly mapping: Mapping<E>;
@@ -18,6 +24,8 @@ export interface MappingProps<E = unknown> extends ChildProps {
18
24
  * Props for the `Mapper` component returned by `createMapper()`.
19
25
  * - `children` holds the pre-walked elements to dispatch.
20
26
  * - All other props are spread onto every mapped child as additional props (`E`).
27
+ *
28
+ * @see https://dhoulb.github.io/shelving/ui/misc/Mapper/MapperProps
21
29
  */
22
30
  export type MapperProps<E = unknown> = E & {
23
31
  readonly children?: Elements;
@@ -31,6 +39,8 @@ export type MapperProps<E = unknown> = E & {
31
39
  * Each call creates its own context — independent mappers don't interfere with each other.
32
40
  *
33
41
  * @typeParam E The shape of any extra props the mapper threads through to every dispatched child. Defaults to `unknown` (no extras).
42
+ * @param defaults The initial mapping of element types to renderer components.
43
+ * @returns A `[Mapping, Mapper]` tuple of components sharing a private context.
34
44
  *
35
45
  * @example
36
46
  * // No extras:
@@ -45,5 +55,7 @@ export type MapperProps<E = unknown> = E & {
45
55
  * "tree-element": TreeMenuItem,
46
56
  * });
47
57
  * <TreeMenuMapper path="/foo">{queryElements(children, query)}</TreeMenuMapper>
58
+ *
59
+ * @see https://dhoulb.github.io/shelving/ui/misc/Mapper/createMapper
48
60
  */
49
61
  export declare function createMapper<E = unknown>(defaults?: Mapping<E>): [Mapping: FunctionComponent<MappingProps<E>>, Mapper: FunctionComponent<MapperProps<E>>];
package/ui/misc/Mapper.js CHANGED
@@ -10,6 +10,8 @@ import { walkElements } from "../../util/element.js";
10
10
  * Each call creates its own context — independent mappers don't interfere with each other.
11
11
  *
12
12
  * @typeParam E The shape of any extra props the mapper threads through to every dispatched child. Defaults to `unknown` (no extras).
13
+ * @param defaults The initial mapping of element types to renderer components.
14
+ * @returns A `[Mapping, Mapper]` tuple of components sharing a private context.
13
15
  *
14
16
  * @example
15
17
  * // No extras:
@@ -24,6 +26,8 @@ import { walkElements } from "../../util/element.js";
24
26
  * "tree-element": TreeMenuItem,
25
27
  * });
26
28
  * <TreeMenuMapper path="/foo">{queryElements(children, query)}</TreeMenuMapper>
29
+ *
30
+ * @see https://dhoulb.github.io/shelving/ui/misc/Mapper/createMapper
27
31
  */
28
32
  export function createMapper(defaults = {}) {
29
33
  const Context = createContext(defaults);
@@ -7,12 +7,18 @@ import type { ChildProps } from "../util/props.js";
7
7
  * Dispatch table from a `JSX.IntrinsicElements` key to a renderer component.
8
8
  * - Each entry is optional — unmapped elements fall through and render as themselves (e.g. an unmapped `<tree-foo>` appears as a raw `<tree-foo>` HTML element).
9
9
  * - Per-entry component receives `JSX.IntrinsicElements[K] & E` — the declared props for that element type, plus any extra props `E` the mapper is configured to thread through.
10
+ *
11
+ * @see https://dhoulb.github.io/shelving/ui/misc/Mapper/Mapping
10
12
  */
11
13
  export type Mapping<E = unknown> = {
12
14
  [K in keyof JSX.IntrinsicElements]?: ComponentType<JSX.IntrinsicElements[K] & E>;
13
15
  };
14
16
 
15
- /** Props for the `Mapping` component returned by `createMapper()`. */
17
+ /**
18
+ * Props for the `Mapping` component returned by `createMapper()`.
19
+ *
20
+ * @see https://dhoulb.github.io/shelving/ui/misc/Mapper/MappingProps
21
+ */
16
22
  export interface MappingProps<E = unknown> extends ChildProps {
17
23
  /** Mapping entries that extend or override the inherited mapping inside this subtree. */
18
24
  readonly mapping: Mapping<E>;
@@ -22,6 +28,8 @@ export interface MappingProps<E = unknown> extends ChildProps {
22
28
  * Props for the `Mapper` component returned by `createMapper()`.
23
29
  * - `children` holds the pre-walked elements to dispatch.
24
30
  * - All other props are spread onto every mapped child as additional props (`E`).
31
+ *
32
+ * @see https://dhoulb.github.io/shelving/ui/misc/Mapper/MapperProps
25
33
  */
26
34
  export type MapperProps<E = unknown> = E & {
27
35
  readonly children?: Elements;
@@ -40,6 +48,8 @@ type AnyMapping = Record<string, ComponentType<any> | undefined>;
40
48
  * Each call creates its own context — independent mappers don't interfere with each other.
41
49
  *
42
50
  * @typeParam E The shape of any extra props the mapper threads through to every dispatched child. Defaults to `unknown` (no extras).
51
+ * @param defaults The initial mapping of element types to renderer components.
52
+ * @returns A `[Mapping, Mapper]` tuple of components sharing a private context.
43
53
  *
44
54
  * @example
45
55
  * // No extras:
@@ -54,6 +64,8 @@ type AnyMapping = Record<string, ComponentType<any> | undefined>;
54
64
  * "tree-element": TreeMenuItem,
55
65
  * });
56
66
  * <TreeMenuMapper path="/foo">{queryElements(children, query)}</TreeMenuMapper>
67
+ *
68
+ * @see https://dhoulb.github.io/shelving/ui/misc/Mapper/createMapper
57
69
  */
58
70
  export function createMapper<E = unknown>(
59
71
  defaults: Mapping<E> = {},
@@ -1,6 +1,10 @@
1
1
  import type { ReactNode } from "react";
2
2
  import { type MarkupOptions } from "../../markup/MarkupParser.js";
3
- /** Props for `<Markup>` — extends `MarkupOptions` so callers can override `rules`, `rel`, `url`, `root`, or `schemes` directly. */
3
+ /**
4
+ * Props for `<Markup>` — extends `MarkupOptions` so callers can override `rules`, `rel`, `url`, `root`, or `schemes` directly.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/ui/misc/Markup/MarkupProps
7
+ */
4
8
  export interface MarkupProps extends Partial<MarkupOptions> {
5
9
  /** The source string to parse and render. */
6
10
  children?: string | undefined;
@@ -11,6 +15,10 @@ export interface MarkupProps extends Partial<MarkupOptions> {
11
15
  * - `url`/`root` default to the current `<Meta>` context so link rules resolve site-absolute and relative hrefs.
12
16
  * - Renders inside whatever ancestor element the caller provides — wrap in `<Prose>` to get the standard prose typography for the produced `<p>` / `<ul>` / `<pre>` / etc.
13
17
  *
18
+ * @param children The source markup string to parse and render (renders `null` when empty).
19
+ * @param options Optional `MarkupOptions` overrides (`rules`, `rel`, `url`, `root`, `schemes`).
20
+ * @returns The parsed markup as React nodes, or `null` when `children` is empty.
14
21
  * @example <Prose><Markup>{`A *bold* word with \`code\`.`}</Markup></Prose>
22
+ * @see https://dhoulb.github.io/shelving/ui/misc/Markup/Markup
15
23
  */
16
24
  export declare function Markup({ children, ...options }: MarkupProps): ReactNode;
package/ui/misc/Markup.js CHANGED
@@ -6,7 +6,11 @@ import { requireMeta } from "./MetaContext.js";
6
6
  * - `url`/`root` default to the current `<Meta>` context so link rules resolve site-absolute and relative hrefs.
7
7
  * - Renders inside whatever ancestor element the caller provides — wrap in `<Prose>` to get the standard prose typography for the produced `<p>` / `<ul>` / `<pre>` / etc.
8
8
  *
9
+ * @param children The source markup string to parse and render (renders `null` when empty).
10
+ * @param options Optional `MarkupOptions` overrides (`rules`, `rel`, `url`, `root`, `schemes`).
11
+ * @returns The parsed markup as React nodes, or `null` when `children` is empty.
9
12
  * @example <Prose><Markup>{`A *bold* word with \`code\`.`}</Markup></Prose>
13
+ * @see https://dhoulb.github.io/shelving/ui/misc/Markup/Markup
10
14
  */
11
15
  export function Markup({ children, ...options }) {
12
16
  if (!children)
@@ -2,7 +2,11 @@ import type { ReactNode } from "react";
2
2
  import { type MarkupOptions, MarkupParser } from "../../markup/MarkupParser.js";
3
3
  import { requireMeta } from "./MetaContext.js";
4
4
 
5
- /** Props for `<Markup>` — extends `MarkupOptions` so callers can override `rules`, `rel`, `url`, `root`, or `schemes` directly. */
5
+ /**
6
+ * Props for `<Markup>` — extends `MarkupOptions` so callers can override `rules`, `rel`, `url`, `root`, or `schemes` directly.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/misc/Markup/MarkupProps
9
+ */
6
10
  export interface MarkupProps extends Partial<MarkupOptions> {
7
11
  /** The source string to parse and render. */
8
12
  children?: string | undefined;
@@ -14,7 +18,11 @@ export interface MarkupProps extends Partial<MarkupOptions> {
14
18
  * - `url`/`root` default to the current `<Meta>` context so link rules resolve site-absolute and relative hrefs.
15
19
  * - Renders inside whatever ancestor element the caller provides — wrap in `<Prose>` to get the standard prose typography for the produced `<p>` / `<ul>` / `<pre>` / etc.
16
20
  *
21
+ * @param children The source markup string to parse and render (renders `null` when empty).
22
+ * @param options Optional `MarkupOptions` overrides (`rules`, `rel`, `url`, `root`, `schemes`).
23
+ * @returns The parsed markup as React nodes, or `null` when `children` is empty.
17
24
  * @example <Prose><Markup>{`A *bold* word with \`code\`.`}</Markup></Prose>
25
+ * @see https://dhoulb.github.io/shelving/ui/misc/Markup/Markup
18
26
  */
19
27
  export function Markup({ children, ...options }: MarkupProps): ReactNode {
20
28
  if (!children) return null;
@@ -3,15 +3,29 @@ import type { AbsolutePath } from "../../util/path.js";
3
3
  import { type URIParams } from "../../util/uri.js";
4
4
  import { type ImmutableURL } from "../../util/url.js";
5
5
  import { type Meta, type PossibleMeta } from "../util/meta.js";
6
- /** Context to store the `Config` object. */
6
+ /**
7
+ * React context holding the current `Meta` object (page URL, site root, title, etc.).
8
+ *
9
+ * @example <MetaContext value={meta}>…</MetaContext>
10
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaContext
11
+ */
7
12
  export declare const MetaContext: import("react").Context<Meta>;
8
13
  /**
9
- * Use the current meta context in a component.
14
+ * Read the current `Meta` context, optionally merging in additional meta data.
15
+ *
16
+ * - Must be called inside a component or hook (reads context via React's `use()`).
10
17
  *
11
18
  * @param meta A set of new possible meta data to combine into the current meta context.
19
+ * @returns The current `Meta`, with `meta` merged in when provided.
20
+ * @example const { title, url } = requireMeta();
21
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMeta
12
22
  */
13
23
  export declare function requireMeta(meta?: PossibleMeta): Meta;
14
- /** A `Meta` object with a defined `url` object, and `path` and `params` properties combined in. */
24
+ /**
25
+ * A `Meta` object with a guaranteed `url`, plus derived `path` and `params` properties.
26
+ *
27
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaURL
28
+ */
15
29
  export interface MetaURL extends Meta {
16
30
  url: ImmutableURL;
17
31
  /** The path of `url` relative to `meta.root` (i.e. the _site-root-relative_ path). */
@@ -20,11 +34,14 @@ export interface MetaURL extends Meta {
20
34
  params: URIParams;
21
35
  }
22
36
  /**
23
- * Use the current meta context in a component with some additional URL helpers.
37
+ * Read the current `Meta` context and derive URL helpers (`path` and `params`) from its `url`.
24
38
  *
25
39
  * @param meta A set of new possible meta data to combine into the current meta context.
26
- * @returns A `Meta` object with a defined `url` object, and `path` and `params` properties combined in.
27
- * @throws {RequiredError} if the current meta has no `url`
28
- * @throws {RequiredError} if the current meta `url` does not match the origin of the current meta `root`
40
+ * @param caller Function to attribute thrown `RequiredError`s to (defaults to `requireMetaURL`).
41
+ * @returns A `Meta` object with a defined `url`, plus `path` and `params` properties combined in.
42
+ * @throws RequiredError If the current meta has no `url`.
43
+ * @throws RequiredError If the current meta `url` does not share an origin with the meta `root`.
44
+ * @example const { path, params } = requireMetaURL();
45
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMetaURL
29
46
  */
30
47
  export declare function requireMetaURL(meta?: PossibleMeta, caller?: AnyCaller): MetaURL;
@@ -3,25 +3,38 @@ import { RequiredError } from "../../error/RequiredError.js";
3
3
  import { getURIParams } from "../../util/uri.js";
4
4
  import { matchURLPrefix } from "../../util/url.js";
5
5
  import { mergeMeta } from "../util/meta.js";
6
- /** Context to store the `Config` object. */
6
+ /**
7
+ * React context holding the current `Meta` object (page URL, site root, title, etc.).
8
+ *
9
+ * @example <MetaContext value={meta}>…</MetaContext>
10
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaContext
11
+ */
7
12
  export const MetaContext = createContext({});
8
13
  MetaContext.displayName = "MetaContext";
9
14
  /**
10
- * Use the current meta context in a component.
15
+ * Read the current `Meta` context, optionally merging in additional meta data.
16
+ *
17
+ * - Must be called inside a component or hook (reads context via React's `use()`).
11
18
  *
12
19
  * @param meta A set of new possible meta data to combine into the current meta context.
20
+ * @returns The current `Meta`, with `meta` merged in when provided.
21
+ * @example const { title, url } = requireMeta();
22
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMeta
13
23
  */
14
24
  export function requireMeta(meta) {
15
25
  const current = use(MetaContext);
16
26
  return meta ? mergeMeta(current, meta) : current;
17
27
  }
18
28
  /**
19
- * Use the current meta context in a component with some additional URL helpers.
29
+ * Read the current `Meta` context and derive URL helpers (`path` and `params`) from its `url`.
20
30
  *
21
31
  * @param meta A set of new possible meta data to combine into the current meta context.
22
- * @returns A `Meta` object with a defined `url` object, and `path` and `params` properties combined in.
23
- * @throws {RequiredError} if the current meta has no `url`
24
- * @throws {RequiredError} if the current meta `url` does not match the origin of the current meta `root`
32
+ * @param caller Function to attribute thrown `RequiredError`s to (defaults to `requireMetaURL`).
33
+ * @returns A `Meta` object with a defined `url`, plus `path` and `params` properties combined in.
34
+ * @throws RequiredError If the current meta has no `url`.
35
+ * @throws RequiredError If the current meta `url` does not share an origin with the meta `root`.
36
+ * @example const { path, params } = requireMetaURL();
37
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMetaURL
25
38
  */
26
39
  export function requireMetaURL(meta, caller = requireMetaURL) {
27
40
  const { url, root, ...combined } = requireMeta(meta);
@@ -6,21 +6,35 @@ import { getURIParams, type URIParams } from "../../util/uri.js";
6
6
  import { type ImmutableURL, matchURLPrefix } from "../../util/url.js";
7
7
  import { type Meta, mergeMeta, type PossibleMeta } from "../util/meta.js";
8
8
 
9
- /** Context to store the `Config` object. */
9
+ /**
10
+ * React context holding the current `Meta` object (page URL, site root, title, etc.).
11
+ *
12
+ * @example <MetaContext value={meta}>…</MetaContext>
13
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaContext
14
+ */
10
15
  export const MetaContext = createContext<Meta>({});
11
16
  MetaContext.displayName = "MetaContext";
12
17
 
13
18
  /**
14
- * Use the current meta context in a component.
19
+ * Read the current `Meta` context, optionally merging in additional meta data.
20
+ *
21
+ * - Must be called inside a component or hook (reads context via React's `use()`).
15
22
  *
16
23
  * @param meta A set of new possible meta data to combine into the current meta context.
24
+ * @returns The current `Meta`, with `meta` merged in when provided.
25
+ * @example const { title, url } = requireMeta();
26
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMeta
17
27
  */
18
28
  export function requireMeta(meta?: PossibleMeta): Meta {
19
29
  const current = use(MetaContext);
20
30
  return meta ? mergeMeta(current, meta) : current;
21
31
  }
22
32
 
23
- /** A `Meta` object with a defined `url` object, and `path` and `params` properties combined in. */
33
+ /**
34
+ * A `Meta` object with a guaranteed `url`, plus derived `path` and `params` properties.
35
+ *
36
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/MetaURL
37
+ */
24
38
  export interface MetaURL extends Meta {
25
39
  url: ImmutableURL;
26
40
  /** The path of `url` relative to `meta.root` (i.e. the _site-root-relative_ path). */
@@ -30,12 +44,15 @@ export interface MetaURL extends Meta {
30
44
  }
31
45
 
32
46
  /**
33
- * Use the current meta context in a component with some additional URL helpers.
47
+ * Read the current `Meta` context and derive URL helpers (`path` and `params`) from its `url`.
34
48
  *
35
49
  * @param meta A set of new possible meta data to combine into the current meta context.
36
- * @returns A `Meta` object with a defined `url` object, and `path` and `params` properties combined in.
37
- * @throws {RequiredError} if the current meta has no `url`
38
- * @throws {RequiredError} if the current meta `url` does not match the origin of the current meta `root`
50
+ * @param caller Function to attribute thrown `RequiredError`s to (defaults to `requireMetaURL`).
51
+ * @returns A `Meta` object with a defined `url`, plus `path` and `params` properties combined in.
52
+ * @throws RequiredError If the current meta has no `url`.
53
+ * @throws RequiredError If the current meta `url` does not share an origin with the meta `root`.
54
+ * @example const { path, params } = requireMetaURL();
55
+ * @see https://dhoulb.github.io/shelving/ui/misc/MetaContext/requireMetaURL
39
56
  */
40
57
  export function requireMetaURL(meta?: PossibleMeta, caller: AnyCaller = requireMetaURL): MetaURL {
41
58
  const { url, root, ...combined } = requireMeta(meta);
@@ -1,9 +1,24 @@
1
1
  import type { ReactElement } from "react";
2
2
  import type { Status } from "../style/Status.js";
3
+ /**
4
+ * Props for `<StatusIcon>` — the `status` to represent and optional icon `size`.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIconProps
7
+ */
3
8
  export interface StatusIconProps {
4
9
  status?: Status;
5
10
  /** Size of the icon (defaults to the current line height). */
6
11
  size?: "small" | "normal" | "large" | "xlarge" | "xxlarge" | undefined;
7
12
  }
8
- /** Output a status icon based on the current status of something. */
13
+ /**
14
+ * Render the icon for a given status, coloured to match.
15
+ *
16
+ * - Picks a heroicon per status (`success`, `error`, `warning`, etc.), falling back to an info icon, and uses the animated `<Loading>` spinner for `"loading"`.
17
+ *
18
+ * @param status The status to represent (defaults to `"info"`).
19
+ * @param size Optional icon size (defaults to the current line height).
20
+ * @returns The status icon element.
21
+ * @example <StatusIcon status="error" size="large" />
22
+ * @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIcon
23
+ */
9
24
  export declare function StatusIcon({ status, size }: StatusIconProps): ReactElement;
@@ -11,7 +11,17 @@ const STATUS_ICONS = {
11
11
  warning: ExclamationTriangleIcon,
12
12
  danger: ExclamationTriangleIcon,
13
13
  };
14
- /** Output a status icon based on the current status of something. */
14
+ /**
15
+ * Render the icon for a given status, coloured to match.
16
+ *
17
+ * - Picks a heroicon per status (`success`, `error`, `warning`, etc.), falling back to an info icon, and uses the animated `<Loading>` spinner for `"loading"`.
18
+ *
19
+ * @param status The status to represent (defaults to `"info"`).
20
+ * @param size Optional icon size (defaults to the current line height).
21
+ * @returns The status icon element.
22
+ * @example <StatusIcon status="error" size="large" />
23
+ * @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIcon
24
+ */
15
25
  export function StatusIcon({ status = "info", size }) {
16
26
  const Icon = STATUS_ICONS[status] ?? InformationCircleIcon;
17
27
  return _jsx(Icon, { className: `${getModuleClass(styles, "icon", size)} ${getModuleClass(statusStyles, status)}` });
@@ -16,13 +16,28 @@ const STATUS_ICONS: {
16
16
  danger: ExclamationTriangleIcon,
17
17
  };
18
18
 
19
+ /**
20
+ * Props for `<StatusIcon>` — the `status` to represent and optional icon `size`.
21
+ *
22
+ * @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIconProps
23
+ */
19
24
  export interface StatusIconProps {
20
25
  status?: Status;
21
26
  /** Size of the icon (defaults to the current line height). */
22
27
  size?: "small" | "normal" | "large" | "xlarge" | "xxlarge" | undefined;
23
28
  }
24
29
 
25
- /** Output a status icon based on the current status of something. */
30
+ /**
31
+ * Render the icon for a given status, coloured to match.
32
+ *
33
+ * - Picks a heroicon per status (`success`, `error`, `warning`, etc.), falling back to an info icon, and uses the animated `<Loading>` spinner for `"loading"`.
34
+ *
35
+ * @param status The status to represent (defaults to `"info"`).
36
+ * @param size Optional icon size (defaults to the current line height).
37
+ * @returns The status icon element.
38
+ * @example <StatusIcon status="error" size="large" />
39
+ * @see https://dhoulb.github.io/shelving/ui/misc/StatusIcon/StatusIcon
40
+ */
26
41
  export function StatusIcon({ status = "info", size }: StatusIconProps): ReactElement {
27
42
  const Icon = STATUS_ICONS[status] ?? InformationCircleIcon;
28
43
  return <Icon className={`${getModuleClass(styles, "icon", size)} ${getModuleClass(statusStyles, status)}`} />;
package/ui/misc/Tag.d.ts CHANGED
@@ -3,9 +3,27 @@ import { type ClickableProps } from "../form/Clickable.js";
3
3
  import { type ColorVariants } from "../style/Color.js";
4
4
  import { type StatusVariants } from "../style/Status.js";
5
5
  import { type TypographyVariants } from "../style/Typography.js";
6
+ /**
7
+ * Styling variants accepted by `<Tag>` — status, colour, and typography options.
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/TagVariants
10
+ */
6
11
  export interface TagVariants extends StatusVariants, ColorVariants, TypographyVariants {
7
12
  }
13
+ /**
14
+ * Build the combined `className` string for a `<Tag>` from its styling variants.
15
+ *
16
+ * @param variants The status, colour, and typography variants to apply.
17
+ * @returns The merged tag `className` string.
18
+ * @example getTagClass({ success: true }) // "tag … status-success"
19
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/getTagClass
20
+ */
8
21
  export declare function getTagClass(variants: TagVariants): string;
22
+ /**
23
+ * Props for `<Tag>` — `TagVariants` styling options plus `<Clickable>` props (`href`, `onClick`, `children`, etc.).
24
+ *
25
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/TagProps
26
+ */
9
27
  export interface TagProps extends TagVariants, ClickableProps {
10
28
  }
11
29
  /**
@@ -13,7 +31,10 @@ export interface TagProps extends TagVariants, ClickableProps {
13
31
  * - Delegates to `getClickable()` — renders as `<a>` when `href` is set, otherwise `<button>`.
14
32
  * - Accepts a status variant (`success`, `info`, `error`, etc.) _or_ a raw colour (`color="red"`, `color="purple"`, etc.).
15
33
  *
34
+ * @param props Tag styling variants and clickable props.
35
+ * @returns The tag element.
16
36
  * @example <Tag success>Active</Tag>
17
37
  * @example <Tag color="purple" href="/beta">Beta</Tag>
38
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/Tag
18
39
  */
19
40
  export declare function Tag(props: TagProps): ReactElement;
package/ui/misc/Tag.js CHANGED
@@ -6,6 +6,14 @@ import { getTypographyClass } from "../style/Typography.js";
6
6
  import { getClass, getModuleClass } from "../util/css.js";
7
7
  import TAG_CSS from "./Tag.module.css";
8
8
  const TAG_CLASS = getModuleClass(TAG_CSS, "tag");
9
+ /**
10
+ * Build the combined `className` string for a `<Tag>` from its styling variants.
11
+ *
12
+ * @param variants The status, colour, and typography variants to apply.
13
+ * @returns The merged tag `className` string.
14
+ * @example getTagClass({ success: true }) // "tag … status-success"
15
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/getTagClass
16
+ */
9
17
  export function getTagClass(variants) {
10
18
  return getClass(TAG_CLASS, //
11
19
  getStatusClass(variants), getColorClass(variants), getTypographyClass(variants));
@@ -15,8 +23,11 @@ export function getTagClass(variants) {
15
23
  * - Delegates to `getClickable()` — renders as `<a>` when `href` is set, otherwise `<button>`.
16
24
  * - Accepts a status variant (`success`, `info`, `error`, etc.) _or_ a raw colour (`color="red"`, `color="purple"`, etc.).
17
25
  *
26
+ * @param props Tag styling variants and clickable props.
27
+ * @returns The tag element.
18
28
  * @example <Tag success>Active</Tag>
19
29
  * @example <Tag color="purple" href="/beta">Beta</Tag>
30
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/Tag
20
31
  */
21
32
  export function Tag(props) {
22
33
  return _jsx(Clickable, { ...props, className: getTagClass(props) });
package/ui/misc/Tag.tsx CHANGED
@@ -8,8 +8,21 @@ import TAG_CSS from "./Tag.module.css";
8
8
 
9
9
  const TAG_CLASS = getModuleClass(TAG_CSS, "tag");
10
10
 
11
+ /**
12
+ * Styling variants accepted by `<Tag>` — status, colour, and typography options.
13
+ *
14
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/TagVariants
15
+ */
11
16
  export interface TagVariants extends StatusVariants, ColorVariants, TypographyVariants {}
12
17
 
18
+ /**
19
+ * Build the combined `className` string for a `<Tag>` from its styling variants.
20
+ *
21
+ * @param variants The status, colour, and typography variants to apply.
22
+ * @returns The merged tag `className` string.
23
+ * @example getTagClass({ success: true }) // "tag … status-success"
24
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/getTagClass
25
+ */
13
26
  export function getTagClass(variants: TagVariants) {
14
27
  return getClass(
15
28
  TAG_CLASS, //
@@ -19,6 +32,11 @@ export function getTagClass(variants: TagVariants) {
19
32
  );
20
33
  }
21
34
 
35
+ /**
36
+ * Props for `<Tag>` — `TagVariants` styling options plus `<Clickable>` props (`href`, `onClick`, `children`, etc.).
37
+ *
38
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/TagProps
39
+ */
22
40
  export interface TagProps extends TagVariants, ClickableProps {}
23
41
 
24
42
  /**
@@ -26,8 +44,11 @@ export interface TagProps extends TagVariants, ClickableProps {}
26
44
  * - Delegates to `getClickable()` — renders as `<a>` when `href` is set, otherwise `<button>`.
27
45
  * - Accepts a status variant (`success`, `info`, `error`, etc.) _or_ a raw colour (`color="red"`, `color="purple"`, etc.).
28
46
  *
47
+ * @param props Tag styling variants and clickable props.
48
+ * @returns The tag element.
29
49
  * @example <Tag success>Active</Tag>
30
50
  * @example <Tag color="purple" href="/beta">Beta</Tag>
51
+ * @see https://dhoulb.github.io/shelving/ui/misc/Tag/Tag
31
52
  */
32
53
  export function Tag(props: TagProps): ReactElement {
33
54
  return <Clickable {...props} className={getTagClass(props)} />;
@@ -1,9 +1,35 @@
1
1
  import { type ParagraphProps } from "../block/Paragraph.js";
2
2
  import { type ColorVariants } from "../style/Color.js";
3
3
  import { type StatusVariants } from "../style/Status.js";
4
+ /**
5
+ * Base `className` applied to every `<Message>` paragraph.
6
+ *
7
+ * @see https://dhoulb.github.io/shelving/ui/notice/Message/MESSAGE_CLASS
8
+ */
4
9
  export declare const MESSAGE_CLASS: string;
10
+ /**
11
+ * Props for `<Message>` — paragraph props plus colour and status styling variants.
12
+ *
13
+ * @see https://dhoulb.github.io/shelving/ui/notice/Message/MessageProps
14
+ */
5
15
  export interface MessageProps extends ParagraphProps, ColorVariants, StatusVariants {
6
16
  }
7
- /** Paragraph with status colours. */
17
+ /**
18
+ * Status-coloured paragraph used for inline feedback messages.
19
+ *
20
+ * - Sets an ARIA `role` of `"alert"` for error/danger statuses, otherwise `"status"`.
21
+ *
22
+ * @param children The message content.
23
+ * @param props Paragraph, colour, and status styling variants.
24
+ * @returns The message paragraph element.
25
+ * @example <Message status="error">Something went wrong</Message>
26
+ * @see https://dhoulb.github.io/shelving/ui/notice/Message/Message
27
+ */
8
28
  export declare function Message({ children, ...props }: MessageProps): import("react").JSX.Element;
29
+ /**
30
+ * Shared loading `<Message>` element containing the `<Loading>` spinner.
31
+ *
32
+ * @example return isLoading ? LOADING_MESSAGE : <Message>{text}</Message>;
33
+ * @see https://dhoulb.github.io/shelving/ui/notice/Message/LOADING_MESSAGE
34
+ */
9
35
  export declare const LOADING_MESSAGE: import("react").JSX.Element;