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,7 +2,11 @@ import type { ReactElement } from "react";
2
2
  import type { DocumentationElementProps } from "../../util/tree.js";
3
3
  import { type FlexVariants } from "../style/Flex.js";
4
4
  import { type SpaceVariants } from "../style/Space.js";
5
- /** Props for `DocumentationButtons` — the relational metadata of a documented symbol, plus block-space overrides. */
5
+ /**
6
+ * Props for `DocumentationButtons` — the relational metadata of a documented symbol (`class`, `extends`, `implements`), plus block-space and flex overrides.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationButtons/DocumentationButtonsProps
9
+ */
6
10
  export interface DocumentationButtonsProps extends Pick<DocumentationElementProps, "class" | "extends" | "implements">, SpaceVariants, FlexVariants {
7
11
  }
8
12
  /**
@@ -6,7 +6,11 @@ import { getSpaceClass, type SpaceVariants } from "../style/Space.js";
6
6
  import { TreeButton } from "../tree/TreeButton.js";
7
7
  import { getClass } from "../util/css.js";
8
8
 
9
- /** Props for `DocumentationButtons` — the relational metadata of a documented symbol, plus block-space overrides. */
9
+ /**
10
+ * Props for `DocumentationButtons` — the relational metadata of a documented symbol (`class`, `extends`, `implements`), plus block-space and flex overrides.
11
+ *
12
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationButtons/DocumentationButtonsProps
13
+ */
10
14
  export interface DocumentationButtonsProps
11
15
  extends Pick<DocumentationElementProps, "class" | "extends" | "implements">,
12
16
  SpaceVariants,
@@ -1,8 +1,13 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { DocumentationElementProps } from "../../util/tree.js";
3
3
  /**
4
- * Card renderer for a `tree-documentation` element — a summary card.
4
+ * Card renderer for a `tree-documentation` element — a compact summary card linking to the symbol's detail page.
5
5
  * - Leads with the symbol's signature(s) as calm code blocks (`<DocumentationSignatures>`, same as the detail page), which already carry the name; falls back to the bare name for symbols with no signature (classes, interfaces, modules).
6
6
  * - The card is tinted by `kind` (colour carries the method/property/etc. distinction — no separate tag).
7
+ *
8
+ * @param props The documentation element's flattened props (`path`, `title`, `name`, `kind`, `description`, `signatures`, plus relational metadata); the `class` relation is dropped so member cards omit the redundant "member of" link.
9
+ * @returns A `<Card>` linking to the symbol's own page.
10
+ * @example <DocumentationCard {...element.props} />
11
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationCard/DocumentationCard
7
12
  */
8
13
  export declare function DocumentationCard({ path, title, name, kind, description, signatures, class: _memberOf, ...props }: DocumentationElementProps): ReactNode;
@@ -7,9 +7,14 @@ import { DocumentationButtons } from "./DocumentationButtons.js";
7
7
  import { DocumentationKind, getDocumentationKindColor } from "./DocumentationKind.js";
8
8
  import { DocumentationSignatures } from "./DocumentationSignatures.js";
9
9
  /**
10
- * Card renderer for a `tree-documentation` element — a summary card.
10
+ * Card renderer for a `tree-documentation` element — a compact summary card linking to the symbol's detail page.
11
11
  * - Leads with the symbol's signature(s) as calm code blocks (`<DocumentationSignatures>`, same as the detail page), which already carry the name; falls back to the bare name for symbols with no signature (classes, interfaces, modules).
12
12
  * - The card is tinted by `kind` (colour carries the method/property/etc. distinction — no separate tag).
13
+ *
14
+ * @param props The documentation element's flattened props (`path`, `title`, `name`, `kind`, `description`, `signatures`, plus relational metadata); the `class` relation is dropped so member cards omit the redundant "member of" link.
15
+ * @returns A `<Card>` linking to the symbol's own page.
16
+ * @example <DocumentationCard {...element.props} />
17
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationCard/DocumentationCard
13
18
  */
14
19
  export function DocumentationCard({ path, title, name, kind, description, signatures,
15
20
  // Drop `class` so cards omit the "member of" relation — a member card almost always sits on its own class's page already.
@@ -9,9 +9,14 @@ import { DocumentationKind, getDocumentationKindColor } from "./DocumentationKin
9
9
  import { DocumentationSignatures } from "./DocumentationSignatures.js";
10
10
 
11
11
  /**
12
- * Card renderer for a `tree-documentation` element — a summary card.
12
+ * Card renderer for a `tree-documentation` element — a compact summary card linking to the symbol's detail page.
13
13
  * - Leads with the symbol's signature(s) as calm code blocks (`<DocumentationSignatures>`, same as the detail page), which already carry the name; falls back to the bare name for symbols with no signature (classes, interfaces, modules).
14
14
  * - The card is tinted by `kind` (colour carries the method/property/etc. distinction — no separate tag).
15
+ *
16
+ * @param props The documentation element's flattened props (`path`, `title`, `name`, `kind`, `description`, `signatures`, plus relational metadata); the `class` relation is dropped so member cards omit the redundant "member of" link.
17
+ * @returns A `<Card>` linking to the symbol's own page.
18
+ * @example <DocumentationCard {...element.props} />
19
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationCard/DocumentationCard
15
20
  */
16
21
  export function DocumentationCard({
17
22
  path,
@@ -1,7 +1,11 @@
1
1
  import type { ReactElement } from "react";
2
2
  import { type TagProps } from "../misc/Tag.js";
3
3
  import type { UIColor } from "../style/Color.js";
4
- /** Props for `DocumentationKind`. */
4
+ /**
5
+ * Props for `DocumentationKind` — a `TagProps` plus the documented symbol's `kind`.
6
+ *
7
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKindProps
8
+ */
5
9
  export interface DocumentationKindProps extends TagProps {
6
10
  /** The documentation kind (e.g. `"function"`, `"class"`, `"interface"`, `"type"`, `"constant"`, `"method"`, `"property"`). */
7
11
  readonly kind: string;
@@ -9,12 +13,20 @@ export interface DocumentationKindProps extends TagProps {
9
13
  /**
10
14
  * Get the raw colour variant for a documented symbol's `kind`, or `undefined` for an unknown kind.
11
15
  * - Shared source of truth so the kind tag and its surrounding card pick the same hue.
16
+ *
17
+ * @param kind The documented symbol's kind (e.g. `"function"`, `"class"`, `"method"`).
18
+ * @returns The matching `UIColor`, or `undefined` when the kind is unrecognised.
19
+ * @example getDocumentationKindColor("class") // "purple"
20
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/getDocumentationKindColor
12
21
  */
13
22
  export declare function getDocumentationKindColor(kind: string): UIColor | undefined;
14
23
  /**
15
24
  * Colour-coded tag for a documented symbol's kind.
16
25
  * - Thin wrapper over `<Tag>` that maps the kind string to a raw colour variant.
17
26
  *
27
+ * @param props The kind to label plus any `TagProps` to forward to the underlying `<Tag>`.
28
+ * @returns A `<Tag>` showing the kind, tinted by its colour.
18
29
  * @example <DocumentationKind kind="function" />
30
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKind
19
31
  */
20
32
  export declare function DocumentationKind({ kind, ...props }: DocumentationKindProps): ReactElement;
@@ -14,6 +14,11 @@ const KIND_COLOR = {
14
14
  /**
15
15
  * Get the raw colour variant for a documented symbol's `kind`, or `undefined` for an unknown kind.
16
16
  * - Shared source of truth so the kind tag and its surrounding card pick the same hue.
17
+ *
18
+ * @param kind The documented symbol's kind (e.g. `"function"`, `"class"`, `"method"`).
19
+ * @returns The matching `UIColor`, or `undefined` when the kind is unrecognised.
20
+ * @example getDocumentationKindColor("class") // "purple"
21
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/getDocumentationKindColor
17
22
  */
18
23
  export function getDocumentationKindColor(kind) {
19
24
  return KIND_COLOR[kind];
@@ -22,7 +27,10 @@ export function getDocumentationKindColor(kind) {
22
27
  * Colour-coded tag for a documented symbol's kind.
23
28
  * - Thin wrapper over `<Tag>` that maps the kind string to a raw colour variant.
24
29
  *
30
+ * @param props The kind to label plus any `TagProps` to forward to the underlying `<Tag>`.
31
+ * @returns A `<Tag>` showing the kind, tinted by its colour.
25
32
  * @example <DocumentationKind kind="function" />
33
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKind
26
34
  */
27
35
  export function DocumentationKind({ kind = "unknown", ...props }) {
28
36
  return (_jsx(Tag, { color: getDocumentationKindColor(kind), ...props, children: kind }));
@@ -2,7 +2,11 @@ import type { ReactElement } from "react";
2
2
  import { Tag, type TagProps } from "../misc/Tag.js";
3
3
  import type { UIColor } from "../style/Color.js";
4
4
 
5
- /** Props for `DocumentationKind`. */
5
+ /**
6
+ * Props for `DocumentationKind` — a `TagProps` plus the documented symbol's `kind`.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKindProps
9
+ */
6
10
  export interface DocumentationKindProps extends TagProps {
7
11
  /** The documentation kind (e.g. `"function"`, `"class"`, `"interface"`, `"type"`, `"constant"`, `"method"`, `"property"`). */
8
12
  readonly kind: string;
@@ -23,6 +27,11 @@ const KIND_COLOR: { readonly [K in string]?: UIColor } = {
23
27
  /**
24
28
  * Get the raw colour variant for a documented symbol's `kind`, or `undefined` for an unknown kind.
25
29
  * - Shared source of truth so the kind tag and its surrounding card pick the same hue.
30
+ *
31
+ * @param kind The documented symbol's kind (e.g. `"function"`, `"class"`, `"method"`).
32
+ * @returns The matching `UIColor`, or `undefined` when the kind is unrecognised.
33
+ * @example getDocumentationKindColor("class") // "purple"
34
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/getDocumentationKindColor
26
35
  */
27
36
  export function getDocumentationKindColor(kind: string): UIColor | undefined {
28
37
  return KIND_COLOR[kind];
@@ -32,7 +41,10 @@ export function getDocumentationKindColor(kind: string): UIColor | undefined {
32
41
  * Colour-coded tag for a documented symbol's kind.
33
42
  * - Thin wrapper over `<Tag>` that maps the kind string to a raw colour variant.
34
43
  *
44
+ * @param props The kind to label plus any `TagProps` to forward to the underlying `<Tag>`.
45
+ * @returns A `<Tag>` showing the kind, tinted by its colour.
35
46
  * @example <DocumentationKind kind="function" />
47
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationKind/DocumentationKind
36
48
  */
37
49
  export function DocumentationKind({ kind = "unknown", ...props }: DocumentationKindProps): ReactElement {
38
50
  return (
@@ -1,9 +1,14 @@
1
1
  import { type ReactNode } from "react";
2
2
  import type { DocumentationElementProps } from "../../util/tree.js";
3
3
  /**
4
- * Page renderer for a `tree-documentation` element.
4
+ * Page renderer for a `tree-documentation` element — the full detail page for a documented symbol.
5
5
  * - Renders breadcrumbs, title (with kind + `readonly` tags), relational links (`member of`, `extends`, `implements`), signatures (one per overload), content, parameters, returns, throws, and examples.
6
6
  * - Child symbols are grouped by `kind` into card sections (Functions, Classes, Methods, Properties, …), each under its own heading.
7
7
  * - All sections are conditional — only render when they have entries.
8
+ *
9
+ * @param props The documentation element's flattened props (`title`, `name`, `kind`, `description`, `content`, `signatures`, `params`, `returns`, `throws`, `examples`, `children`, plus relational metadata).
10
+ * @returns A `<Page>` containing the symbol's full documentation.
11
+ * @example <DocumentationPage {...element.props} />
12
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationPage/DocumentationPage
8
13
  */
9
14
  export declare function DocumentationPage({ title, name, kind, description, content, signatures, params, returns, throws, examples, children, ...props }: DocumentationElementProps): ReactNode;
@@ -31,10 +31,15 @@ const KIND_SECTIONS = {
31
31
  property: "Properties",
32
32
  };
33
33
  /**
34
- * Page renderer for a `tree-documentation` element.
34
+ * Page renderer for a `tree-documentation` element — the full detail page for a documented symbol.
35
35
  * - Renders breadcrumbs, title (with kind + `readonly` tags), relational links (`member of`, `extends`, `implements`), signatures (one per overload), content, parameters, returns, throws, and examples.
36
36
  * - Child symbols are grouped by `kind` into card sections (Functions, Classes, Methods, Properties, …), each under its own heading.
37
37
  * - All sections are conditional — only render when they have entries.
38
+ *
39
+ * @param props The documentation element's flattened props (`title`, `name`, `kind`, `description`, `content`, `signatures`, `params`, `returns`, `throws`, `examples`, `children`, plus relational metadata).
40
+ * @returns A `<Page>` containing the symbol's full documentation.
41
+ * @example <DocumentationPage {...element.props} />
42
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationPage/DocumentationPage
38
43
  */
39
44
  export function DocumentationPage({ title, name, kind = "unknown", description, content, signatures, params, returns, throws, examples, children, ...props }) {
40
45
  return (_jsx(Page, { title: title ?? name, description: description, children: _jsxs(Block, { color: getDocumentationKindColor(kind), children: [_jsx(Panel, { children: _jsxs(Header, { wide: true, children: [_jsx(TreeBreadcrumbs, {}), _jsx(Title, { children: _jsxs(Row, { left: true, wrap: true, children: [title ?? name, kind && _jsx(DocumentationKind, { kind: kind, size: "normal" })] }) }), _jsx(DocumentationButtons, { ...props })] }) }), signatures?.length || params?.length || returns?.length || throws?.length ? (_jsxs(Section, { wide: true, children: [_jsx(DocumentationSignatures, { signatures: signatures }), params?.length && (_jsxs(Section, { wide: true, children: [_jsx(Label, { children: "Parameters" }), _jsx(Definitions, { children: params.map(({ name, type = DEFAULT_TYPE, description = "", optional }) => (_jsxs(Fragment, { children: [_jsx("dt", { children: _jsxs(Code, { size: "normal", children: [name, optional ? "?" : "", ": ", type] }) }), _jsx("dd", { children: description })] }, `${name}-${type}-${description}`))) })] })), returns?.length && (_jsxs(Section, { wide: true, children: [_jsx(Label, { children: "Returns" }), _jsx(Definitions, { children: returns.map(({ type = DEFAULT_TYPE, description = "" }) => (_jsxs(Fragment, { children: [_jsx("dt", { children: _jsx(Code, { size: "normal", children: type }) }), _jsx("dd", { children: description })] }, `${type}-${description}`))) })] })), throws?.length && (_jsxs(Section, { wide: true, children: [_jsx(Label, { children: "Throws" }), _jsx(Definitions, { children: throws.map(({ type = DEFAULT_TYPE, description = "" }) => (_jsxs(Fragment, { children: [_jsx("dt", { children: _jsx(Code, { size: "normal", children: type }) }), _jsx("dd", { children: description })] }, `${type}-${description}`))) })] }))] })) : null, content && (_jsx(Section, { wide: true, children: _jsx(Prose, { children: _jsx(Markup, { children: content }) }) })), examples?.length && (_jsxs(Section, { wide: true, children: [_jsx(Heading, { children: "Examples" }), examples.map(({ description }) => (_jsx(Preformatted, { children: description }, description)))] })), Object.entries(KIND_SECTIONS).map(([kind, label]) => {
@@ -35,10 +35,15 @@ const KIND_SECTIONS = {
35
35
  };
36
36
 
37
37
  /**
38
- * Page renderer for a `tree-documentation` element.
38
+ * Page renderer for a `tree-documentation` element — the full detail page for a documented symbol.
39
39
  * - Renders breadcrumbs, title (with kind + `readonly` tags), relational links (`member of`, `extends`, `implements`), signatures (one per overload), content, parameters, returns, throws, and examples.
40
40
  * - Child symbols are grouped by `kind` into card sections (Functions, Classes, Methods, Properties, …), each under its own heading.
41
41
  * - All sections are conditional — only render when they have entries.
42
+ *
43
+ * @param props The documentation element's flattened props (`title`, `name`, `kind`, `description`, `content`, `signatures`, `params`, `returns`, `throws`, `examples`, `children`, plus relational metadata).
44
+ * @returns A `<Page>` containing the symbol's full documentation.
45
+ * @example <DocumentationPage {...element.props} />
46
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationPage/DocumentationPage
42
47
  */
43
48
  export function DocumentationPage({
44
49
  title,
@@ -1,6 +1,10 @@
1
1
  import type { ReactNode } from "react";
2
2
  import type { ImmutableArray } from "../../util/array.js";
3
- /** Props for `DocumentationSignatures`. */
3
+ /**
4
+ * Props for `DocumentationSignatures` — the type signatures to render, one block per overload.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignaturesProps
7
+ */
4
8
  export interface DocumentationSignaturesProps {
5
9
  /** Type signatures to render — one block per overload. */
6
10
  readonly signatures?: ImmutableArray<string> | undefined;
@@ -10,5 +14,10 @@ export interface DocumentationSignaturesProps {
10
14
  * - Shared by `DocumentationCard` and `DocumentationPage` so signatures render identically in both (calm code
11
15
  * blocks, not a shouty heading).
12
16
  * - Renders nothing when there are no signatures.
17
+ *
18
+ * @param props The signatures to render — one block per overload.
19
+ * @returns One `<Preformatted>` block per signature, or `null` when there are none.
20
+ * @example <DocumentationSignatures signatures={["getArray<T>(arr: T[]): T"]} />
21
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignatures
13
22
  */
14
23
  export declare function DocumentationSignatures({ signatures }: DocumentationSignaturesProps): ReactNode;
@@ -5,6 +5,11 @@ import { Preformatted } from "../block/Preformatted.js";
5
5
  * - Shared by `DocumentationCard` and `DocumentationPage` so signatures render identically in both (calm code
6
6
  * blocks, not a shouty heading).
7
7
  * - Renders nothing when there are no signatures.
8
+ *
9
+ * @param props The signatures to render — one block per overload.
10
+ * @returns One `<Preformatted>` block per signature, or `null` when there are none.
11
+ * @example <DocumentationSignatures signatures={["getArray<T>(arr: T[]): T"]} />
12
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignatures
8
13
  */
9
14
  export function DocumentationSignatures({ signatures }) {
10
15
  if (!signatures?.length)
@@ -2,7 +2,11 @@ import type { ReactNode } from "react";
2
2
  import type { ImmutableArray } from "../../util/array.js";
3
3
  import { Preformatted } from "../block/Preformatted.js";
4
4
 
5
- /** Props for `DocumentationSignatures`. */
5
+ /**
6
+ * Props for `DocumentationSignatures` — the type signatures to render, one block per overload.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignaturesProps
9
+ */
6
10
  export interface DocumentationSignaturesProps {
7
11
  /** Type signatures to render — one block per overload. */
8
12
  readonly signatures?: ImmutableArray<string> | undefined;
@@ -13,6 +17,11 @@ export interface DocumentationSignaturesProps {
13
17
  * - Shared by `DocumentationCard` and `DocumentationPage` so signatures render identically in both (calm code
14
18
  * blocks, not a shouty heading).
15
19
  * - Renders nothing when there are no signatures.
20
+ *
21
+ * @param props The signatures to render — one block per overload.
22
+ * @returns One `<Preformatted>` block per signature, or `null` when there are none.
23
+ * @example <DocumentationSignatures signatures={["getArray<T>(arr: T[]): T"]} />
24
+ * @see https://dhoulb.github.io/shelving/ui/docs/DocumentationSignatures/DocumentationSignatures
16
25
  */
17
26
  export function DocumentationSignatures({ signatures }: DocumentationSignaturesProps): ReactNode {
18
27
  if (!signatures?.length) return null;
@@ -2,6 +2,11 @@ import type { ReactElement } from "react";
2
2
  import type { Schema } from "../../schema/Schema.js";
3
3
  import { type ImmutableArray } from "../../util/array.js";
4
4
  import type { ValueInputProps } from "./Input.js";
5
+ /**
6
+ * Props for `ArrayInput`, a repeating input that edits an array of schema-validated items.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/form/ArrayInput/ArrayInputProps
9
+ */
5
10
  export interface ArrayInputProps<T> extends ValueInputProps<ImmutableArray<T>> {
6
11
  one?: string;
7
12
  many?: string;
@@ -10,4 +15,14 @@ export interface ArrayInputProps<T> extends ValueInputProps<ImmutableArray<T>> {
10
15
  /** Schema for the items in the repeater. */
11
16
  items: Schema<T>;
12
17
  }
18
+ /**
19
+ * Repeating input that edits an array of items, adding a `SchemaInput` row per item.
20
+ * - Each item is validated and rendered using the supplied `items` schema.
21
+ * - Enforces `min`/`max` length and offers add, remove, and clear controls.
22
+ *
23
+ * @param props Props including `value`, `onValue`, the `items` schema, and `min`/`max` length bounds.
24
+ * @returns Element rendering one input row per array item plus add/clear controls.
25
+ * @example <ArrayInput name="tags" items={STRING} value={tags} onValue={setTags} />
26
+ * @see https://dhoulb.github.io/shelving/ui/form/ArrayInput/ArrayInput
27
+ */
13
28
  export declare function ArrayInput<T>(props: ArrayInputProps<T>): ReactElement;
@@ -10,6 +10,11 @@ import { ButtonInput } from "./ButtonInput.js";
10
10
  import type { ValueInputProps } from "./Input.js";
11
11
  import { SchemaInput } from "./SchemaInput.js";
12
12
 
13
+ /**
14
+ * Props for `ArrayInput`, a repeating input that edits an array of schema-validated items.
15
+ *
16
+ * @see https://dhoulb.github.io/shelving/ui/form/ArrayInput/ArrayInputProps
17
+ */
13
18
  export interface ArrayInputProps<T> extends ValueInputProps<ImmutableArray<T>> {
14
19
  one?: string;
15
20
  many?: string;
@@ -19,6 +24,16 @@ export interface ArrayInputProps<T> extends ValueInputProps<ImmutableArray<T>> {
19
24
  items: Schema<T>;
20
25
  }
21
26
 
27
+ /**
28
+ * Repeating input that edits an array of items, adding a `SchemaInput` row per item.
29
+ * - Each item is validated and rendered using the supplied `items` schema.
30
+ * - Enforces `min`/`max` length and offers add, remove, and clear controls.
31
+ *
32
+ * @param props Props including `value`, `onValue`, the `items` schema, and `min`/`max` length bounds.
33
+ * @returns Element rendering one input row per array item plus add/clear controls.
34
+ * @example <ArrayInput name="tags" items={STRING} value={tags} onValue={setTags} />
35
+ * @see https://dhoulb.github.io/shelving/ui/form/ArrayInput/ArrayInput
36
+ */
22
37
  export function ArrayInput<T>(props: ArrayInputProps<T>): ReactElement;
23
38
  export function ArrayInput({
24
39
  name,
@@ -1,6 +1,11 @@
1
1
  import type { ReactElement, ReactNode } from "react";
2
2
  import type { ImmutableArray } from "../../util/array.js";
3
3
  import type { ValueInputProps } from "./Input.js";
4
+ /**
5
+ * Props for `ArrayRadioInputs`, which renders a radio for each item in an array of values.
6
+ *
7
+ * @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputsProps
8
+ */
4
9
  export interface ArrayRadioInputsProps<T> extends ValueInputProps<T> {
5
10
  /** Array of values to show in the list of radios. */
6
11
  items: ImmutableArray<T>;
@@ -11,5 +16,10 @@ export interface ArrayRadioInputsProps<T> extends ValueInputProps<T> {
11
16
  * Output a list of `<RadioInput>` elements for each item in an array.
12
17
  * - The items can be any type, and can be formatted for output through an optional `formatter()` function.
13
18
  * - A `placeholder` option is shown at the bottom if `required=false`.
19
+ *
20
+ * @param props Props including the `items` array, current `value`, `onValue`, and an optional `formatter`.
21
+ * @returns Element rendering one radio per item plus an optional empty placeholder radio.
22
+ * @example <ArrayRadioInputs name="size" items={["s", "m", "l"]} value={size} onValue={setSize} />
23
+ * @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputs
14
24
  */
15
25
  export declare function ArrayRadioInputs<T>({ value, onValue, required, items, formatter, ...props }: ArrayRadioInputsProps<T>): ReactElement;
@@ -6,6 +6,11 @@ import { RadioInput } from "./RadioInput.js";
6
6
  * Output a list of `<RadioInput>` elements for each item in an array.
7
7
  * - The items can be any type, and can be formatted for output through an optional `formatter()` function.
8
8
  * - A `placeholder` option is shown at the bottom if `required=false`.
9
+ *
10
+ * @param props Props including the `items` array, current `value`, `onValue`, and an optional `formatter`.
11
+ * @returns Element rendering one radio per item plus an optional empty placeholder radio.
12
+ * @example <ArrayRadioInputs name="size" items={["s", "m", "l"]} value={size} onValue={setSize} />
13
+ * @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputs
9
14
  */
10
15
  export function ArrayRadioInputs({ value, onValue, required = false, items, formatter = formatValue, ...props }) {
11
16
  return (_jsxs(Row, { column: true, children: [items.map((v, i) => {
@@ -5,6 +5,11 @@ import { Row } from "../style/Flex.js";
5
5
  import type { ValueInputProps } from "./Input.js";
6
6
  import { RadioInput } from "./RadioInput.js";
7
7
 
8
+ /**
9
+ * Props for `ArrayRadioInputs`, which renders a radio for each item in an array of values.
10
+ *
11
+ * @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputsProps
12
+ */
8
13
  export interface ArrayRadioInputsProps<T> extends ValueInputProps<T> {
9
14
  /** Array of values to show in the list of radios. */
10
15
  items: ImmutableArray<T>;
@@ -16,6 +21,11 @@ export interface ArrayRadioInputsProps<T> extends ValueInputProps<T> {
16
21
  * Output a list of `<RadioInput>` elements for each item in an array.
17
22
  * - The items can be any type, and can be formatted for output through an optional `formatter()` function.
18
23
  * - A `placeholder` option is shown at the bottom if `required=false`.
24
+ *
25
+ * @param props Props including the `items` array, current `value`, `onValue`, and an optional `formatter`.
26
+ * @returns Element rendering one radio per item plus an optional empty placeholder radio.
27
+ * @example <ArrayRadioInputs name="size" items={["s", "m", "l"]} value={size} onValue={setSize} />
28
+ * @see https://dhoulb.github.io/shelving/ui/form/ArrayRadioInputs/ArrayRadioInputs
19
29
  */
20
30
  export function ArrayRadioInputs<T>({
21
31
  value,
@@ -4,7 +4,11 @@ import { type FlexVariants } from "../style/Flex.js";
4
4
  import { type StatusVariants } from "../style/Status.js";
5
5
  import { type TypographyVariants } from "../style/Typography.js";
6
6
  import { type ClickableProps } from "./Clickable.js";
7
- /** Variants for buttons. */
7
+ /**
8
+ * Styling variants for a `Button`, combining flex, color, status, and typography options with button-specific toggles.
9
+ *
10
+ * @see https://dhoulb.github.io/shelving/ui/form/Button/ButtonVariants
11
+ */
8
12
  export interface ButtonVariants extends FlexVariants, ColorVariants, StatusVariants, TypographyVariants {
9
13
  /** This is the default button in a form and should be displayed stronger. */
10
14
  strong?: boolean | undefined;
@@ -17,13 +21,25 @@ export interface ButtonVariants extends FlexVariants, ColorVariants, StatusVaria
17
21
  /** Fill the available width instead of sizing to content (buttons are content-width by default). */
18
22
  full?: boolean | undefined;
19
23
  }
20
- /** Get the full className for a button. */
24
+ /**
25
+ * Get the full combined `className` string for a button from its styling variants.
26
+ *
27
+ * @param variants The button styling variants (flex, color, status, typography, plus button toggles).
28
+ * @returns A space-separated `className` string combining all the resolved variant classes.
29
+ * @example getButtonClass({ color: "primary", small: true }) // "button …"
30
+ * @see https://dhoulb.github.io/shelving/ui/form/Button/getButtonClass
31
+ */
21
32
  export declare function getButtonClass(variants: ButtonVariants): string;
22
33
  interface ButtonProps extends ButtonVariants, ClickableProps {
23
34
  }
24
35
  /**
25
- * Return either a `<button>` or an `<a href="">` styled as an button, based on whether an `onClick` or `href` prop is provided.
36
+ * Render either a `<button>` or an `<a href="">` styled as a button, based on whether an `onClick` or `href` prop is provided.
26
37
  * - Content-width by default (never grows); it won't shrink below its label. Pass `full` to fill the available width.
38
+ * - Accepts all `ButtonVariants` styling props plus the `ClickableProps` (`onClick`, `href`, `disabled`, etc.).
39
+ *
40
+ * @example <Button onClick={save} color="primary">Save</Button>
41
+ * @example <Button href="/about">About</Button>
42
+ * @see https://dhoulb.github.io/shelving/ui/form/Button/Button
27
43
  */
28
44
  export declare function Button(props: ButtonProps): ReactElement;
29
45
  export {};
package/ui/form/Button.js CHANGED
@@ -6,13 +6,25 @@ import { getTypographyClass } from "../style/Typography.js";
6
6
  import { getClass, getModuleClass } from "../util/css.js";
7
7
  import BUTTON_CSS from "./Button.module.css";
8
8
  import { Clickable } from "./Clickable.js";
9
- /** Get the full className for a button. */
9
+ /**
10
+ * Get the full combined `className` string for a button from its styling variants.
11
+ *
12
+ * @param variants The button styling variants (flex, color, status, typography, plus button toggles).
13
+ * @returns A space-separated `className` string combining all the resolved variant classes.
14
+ * @example getButtonClass({ color: "primary", small: true }) // "button …"
15
+ * @see https://dhoulb.github.io/shelving/ui/form/Button/getButtonClass
16
+ */
10
17
  export function getButtonClass(variants) {
11
18
  return getClass(getModuleClass(BUTTON_CSS, "button", variants), getFlexClass(variants), getStatusClass(variants), getColorClass(variants), getTypographyClass(variants));
12
19
  }
13
20
  /**
14
- * Return either a `<button>` or an `<a href="">` styled as an button, based on whether an `onClick` or `href` prop is provided.
21
+ * Render either a `<button>` or an `<a href="">` styled as a button, based on whether an `onClick` or `href` prop is provided.
15
22
  * - Content-width by default (never grows); it won't shrink below its label. Pass `full` to fill the available width.
23
+ * - Accepts all `ButtonVariants` styling props plus the `ClickableProps` (`onClick`, `href`, `disabled`, etc.).
24
+ *
25
+ * @example <Button onClick={save} color="primary">Save</Button>
26
+ * @example <Button href="/about">About</Button>
27
+ * @see https://dhoulb.github.io/shelving/ui/form/Button/Button
16
28
  */
17
29
  export function Button(props) {
18
30
  return _jsx(Clickable, { ...props, className: getButtonClass(props) });
@@ -7,7 +7,11 @@ import { getClass, getModuleClass } from "../util/css.js";
7
7
  import BUTTON_CSS from "./Button.module.css";
8
8
  import { Clickable, type ClickableProps } from "./Clickable.js";
9
9
 
10
- /** Variants for buttons. */
10
+ /**
11
+ * Styling variants for a `Button`, combining flex, color, status, and typography options with button-specific toggles.
12
+ *
13
+ * @see https://dhoulb.github.io/shelving/ui/form/Button/ButtonVariants
14
+ */
11
15
  export interface ButtonVariants extends FlexVariants, ColorVariants, StatusVariants, TypographyVariants {
12
16
  /** This is the default button in a form and should be displayed stronger. */
13
17
  strong?: boolean | undefined;
@@ -21,7 +25,14 @@ export interface ButtonVariants extends FlexVariants, ColorVariants, StatusVaria
21
25
  full?: boolean | undefined;
22
26
  }
23
27
 
24
- /** Get the full className for a button. */
28
+ /**
29
+ * Get the full combined `className` string for a button from its styling variants.
30
+ *
31
+ * @param variants The button styling variants (flex, color, status, typography, plus button toggles).
32
+ * @returns A space-separated `className` string combining all the resolved variant classes.
33
+ * @example getButtonClass({ color: "primary", small: true }) // "button …"
34
+ * @see https://dhoulb.github.io/shelving/ui/form/Button/getButtonClass
35
+ */
25
36
  export function getButtonClass(variants: ButtonVariants): string {
26
37
  return getClass(
27
38
  getModuleClass(BUTTON_CSS, "button", variants),
@@ -35,8 +46,13 @@ export function getButtonClass(variants: ButtonVariants): string {
35
46
  interface ButtonProps extends ButtonVariants, ClickableProps {}
36
47
 
37
48
  /**
38
- * Return either a `<button>` or an `<a href="">` styled as an button, based on whether an `onClick` or `href` prop is provided.
49
+ * Render either a `<button>` or an `<a href="">` styled as a button, based on whether an `onClick` or `href` prop is provided.
39
50
  * - Content-width by default (never grows); it won't shrink below its label. Pass `full` to fill the available width.
51
+ * - Accepts all `ButtonVariants` styling props plus the `ClickableProps` (`onClick`, `href`, `disabled`, etc.).
52
+ *
53
+ * @example <Button onClick={save} color="primary">Save</Button>
54
+ * @example <Button href="/about">About</Button>
55
+ * @see https://dhoulb.github.io/shelving/ui/form/Button/Button
40
56
  */
41
57
  export function Button(props: ButtonProps): ReactElement {
42
58
  return <Clickable {...props} className={getButtonClass(props)} />;
@@ -2,7 +2,20 @@ import type { ReactElement } from "react";
2
2
  import { type FlexVariants } from "../style/Flex.js";
3
3
  import { type ClickableProps } from "./Clickable.js";
4
4
  import { type InputProps } from "./Input.js";
5
+ /**
6
+ * Props for `ButtonInput`, a clickable element styled to match form inputs.
7
+ *
8
+ * @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInputProps
9
+ */
5
10
  export interface ButtonInputProps extends InputProps, ClickableProps, FlexVariants {
6
11
  }
7
- /** Return either a `<button>` or an `<a href="">` styled as an input, based on whether an `onClick` or `href` prop is provided. */
12
+ /**
13
+ * Return either a `<button>` or an `<a href="">` styled as an input, based on whether an `onClick` or `href` prop is provided.
14
+ * - Falls back to rendering the `placeholder` when no `children`/`title` content is supplied.
15
+ *
16
+ * @param props Props including `title`/`placeholder` content plus `Clickable` and `Flex` variants.
17
+ * @returns A `Clickable` element styled with the button-input class.
18
+ * @example <ButtonInput name="choose" onClick={open}>Choose…</ButtonInput>
19
+ * @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInput
20
+ */
8
21
  export declare function ButtonInput({ title, placeholder, children, ...props }: ButtonInputProps): ReactElement;
@@ -4,7 +4,15 @@ import { getFlexClass } from "../style/Flex.js";
4
4
  import { getClass } from "../util/css.js";
5
5
  import { Clickable } from "./Clickable.js";
6
6
  import { BUTTON_INPUT_CLASS, PLACEHOLDER_CLASS } from "./Input.js";
7
- /** Return either a `<button>` or an `<a href="">` styled as an input, based on whether an `onClick` or `href` prop is provided. */
7
+ /**
8
+ * Return either a `<button>` or an `<a href="">` styled as an input, based on whether an `onClick` or `href` prop is provided.
9
+ * - Falls back to rendering the `placeholder` when no `children`/`title` content is supplied.
10
+ *
11
+ * @param props Props including `title`/`placeholder` content plus `Clickable` and `Flex` variants.
12
+ * @returns A `Clickable` element styled with the button-input class.
13
+ * @example <ButtonInput name="choose" onClick={open}>Choose…</ButtonInput>
14
+ * @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInput
15
+ */
8
16
  export function ButtonInput({ title, placeholder, children = title, ...props }) {
9
17
  const hasChildren = notNullish(children);
10
18
  return (_jsx(Clickable, { ...props, className: getClass(BUTTON_INPUT_CLASS, getFlexClass(props), hasChildren && PLACEHOLDER_CLASS), children: hasChildren ? children : placeholder }));
@@ -5,9 +5,22 @@ import { getClass } from "../util/css.js";
5
5
  import { Clickable, type ClickableProps } from "./Clickable.js";
6
6
  import { BUTTON_INPUT_CLASS, type InputProps, PLACEHOLDER_CLASS } from "./Input.js";
7
7
 
8
+ /**
9
+ * Props for `ButtonInput`, a clickable element styled to match form inputs.
10
+ *
11
+ * @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInputProps
12
+ */
8
13
  export interface ButtonInputProps extends InputProps, ClickableProps, FlexVariants {}
9
14
 
10
- /** Return either a `<button>` or an `<a href="">` styled as an input, based on whether an `onClick` or `href` prop is provided. */
15
+ /**
16
+ * Return either a `<button>` or an `<a href="">` styled as an input, based on whether an `onClick` or `href` prop is provided.
17
+ * - Falls back to rendering the `placeholder` when no `children`/`title` content is supplied.
18
+ *
19
+ * @param props Props including `title`/`placeholder` content plus `Clickable` and `Flex` variants.
20
+ * @returns A `Clickable` element styled with the button-input class.
21
+ * @example <ButtonInput name="choose" onClick={open}>Choose…</ButtonInput>
22
+ * @see https://dhoulb.github.io/shelving/ui/form/ButtonInput/ButtonInput
23
+ */
11
24
  export function ButtonInput({ title, placeholder, children = title, ...props }: ButtonInputProps): ReactElement {
12
25
  const hasChildren = notNullish(children);
13
26
  return (
@@ -3,6 +3,11 @@
3
3
  import { type ReactElement } from "react";
4
4
  import type { InputProps } from "./Input.js";
5
5
  import { type PopoverChildren } from "./Popover.js";
6
+ /**
7
+ * Props for `ButtonInputPopover`, an input button that toggles an adjacent popover.
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/ui/form/ButtonInputPopover/ButtonInputPopoverProps
10
+ */
6
11
  export interface ButtonInputPopoverProps extends InputProps {
7
12
  children: PopoverChildren;
8
13
  }
@@ -11,6 +16,11 @@ export interface ButtonInputPopoverProps extends InputProps {
11
16
  * - The first element passed to `children` is used as the content for the button, the rest is the content of the popover.
12
17
  *
13
18
  * DH: Would love to use new HTML `popover="auto"` functionality for this but the anchor positioning it needs is not supported everywhere yet.
19
+ *
20
+ * @param props Props including the input `name` and `children` whose first node is the button and the rest the popover.
21
+ * @returns A `Popover` wrapping a `ButtonInput` that toggles it open and closed.
22
+ * @example <ButtonInputPopover name="filter">{label}{panel}</ButtonInputPopover>
23
+ * @see https://dhoulb.github.io/shelving/ui/form/ButtonInputPopover/ButtonInputPopover
14
24
  */
15
25
  export declare function ButtonInputPopover({ children: [buttonChildren, ...popoverChildren], //
16
26
  ...props }: ButtonInputPopoverProps): ReactElement;