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
@@ -3,15 +3,34 @@ import { requireForm, useField } from "./FormContext.js";
3
3
  import type { InputProps } from "./Input.js";
4
4
  import { SchemaInput } from "./SchemaInput.js";
5
5
 
6
+ /**
7
+ * Props for `FormInput`, a bare `SchemaInput` bound to a named form field.
8
+ *
9
+ * @see https://dhoulb.github.io/shelving/ui/form/FormInput/FormInputProps
10
+ */
6
11
  export interface FormInputProps extends InputProps {}
7
12
 
8
- /** Show a `SchemaInput` for each property in the current form. */
13
+ /**
14
+ * Show a `SchemaInput` for a single named property of the current form.
15
+ * - Reads the field's value, schema, and message from the form context via `useField()`.
16
+ *
17
+ * @param props Input props including the field `name`.
18
+ * @returns A `SchemaInput` bound to the named field.
19
+ * @example <FormInput name="email" />
20
+ * @see https://dhoulb.github.io/shelving/ui/form/FormInput/FormInput
21
+ */
9
22
  export function FormInput({ name, ...props }: FormInputProps): ReactElement {
10
23
  const field = useField(name);
11
24
  return <SchemaInput {...field} {...props} />;
12
25
  }
13
26
 
14
- /** Show a `SchemaInput` for a named property in the current form. */
27
+ /**
28
+ * Show a `SchemaInput` for every property in the current form's schema.
29
+ *
30
+ * @returns A fragment of `FormInput` elements, one per schema property.
31
+ * @example <FormInputs />
32
+ * @see https://dhoulb.github.io/shelving/ui/form/FormInput/FormInputs
33
+ */
15
34
  export function FormInputs(): ReactElement {
16
35
  return (
17
36
  <>
@@ -1,4 +1,11 @@
1
1
  import type { ReactElement } from "react";
2
2
  import { type MessageProps } from "../notice/Message.js";
3
- /** Show the "main" message for the form as a `<Message>` */
3
+ /**
4
+ * Show the current form's "main" (unnamed) message as a `<Message>`, or render nothing when there is no message.
5
+ *
6
+ * @param props Message props (excluding `children`) forwarded to the underlying `<Message>`.
7
+ * @returns A `<Message status="error">` containing the message, or `null` when empty.
8
+ * @example <FormMessage />
9
+ * @see https://dhoulb.github.io/shelving/ui/form/FormMessage/FormMessage
10
+ */
4
11
  export declare function FormMessage(props: Omit<MessageProps, "children">): ReactElement | null;
@@ -2,7 +2,14 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useStore } from "../../react/useStore.js";
3
3
  import { Message } from "../notice/Message.js";
4
4
  import { requireForm } from "./FormContext.js";
5
- /** Show the "main" message for the form as a `<Message>` */
5
+ /**
6
+ * Show the current form's "main" (unnamed) message as a `<Message>`, or render nothing when there is no message.
7
+ *
8
+ * @param props Message props (excluding `children`) forwarded to the underlying `<Message>`.
9
+ * @returns A `<Message status="error">` containing the message, or `null` when empty.
10
+ * @example <FormMessage />
11
+ * @see https://dhoulb.github.io/shelving/ui/form/FormMessage/FormMessage
12
+ */
6
13
  export function FormMessage(props) {
7
14
  const message = useStore(requireForm().messages).get("");
8
15
  if (!message)
@@ -3,8 +3,14 @@ import { useStore } from "../../react/useStore.js";
3
3
  import { Message, type MessageProps } from "../notice/Message.js";
4
4
  import { requireForm } from "./FormContext.js";
5
5
 
6
- /** Show the "main" message for the form as a `<Message>` */
7
-
6
+ /**
7
+ * Show the current form's "main" (unnamed) message as a `<Message>`, or render nothing when there is no message.
8
+ *
9
+ * @param props Message props (excluding `children`) forwarded to the underlying `<Message>`.
10
+ * @returns A `<Message status="error">` containing the message, or `null` when empty.
11
+ * @example <FormMessage />
12
+ * @see https://dhoulb.github.io/shelving/ui/form/FormMessage/FormMessage
13
+ */
8
14
  export function FormMessage(props: Omit<MessageProps, "children">): ReactElement | null {
9
15
  const message = useStore(requireForm().messages).get("");
10
16
  if (!message) return null;
@@ -1,4 +1,11 @@
1
1
  import type { ReactElement } from "react";
2
2
  import { type NoticeProps } from "../notice/Notice.js";
3
- /** Show the "main" message for the form as a `<Notice>` */
3
+ /**
4
+ * Show the current form's "main" (unnamed) message as a `<Notice>`, or render nothing when there is no message.
5
+ *
6
+ * @param props Notice props (excluding `children`) forwarded to the underlying `<Notice>`.
7
+ * @returns A `<Notice status="error">` containing the message, or `null` when empty.
8
+ * @example <FormNotice />
9
+ * @see https://dhoulb.github.io/shelving/ui/form/FormNotice/FormNotice
10
+ */
4
11
  export declare function FormNotice(props: Omit<NoticeProps, "children">): ReactElement | null;
@@ -2,7 +2,14 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useStore } from "../../react/useStore.js";
3
3
  import { Notice } from "../notice/Notice.js";
4
4
  import { requireForm } from "./FormContext.js";
5
- /** Show the "main" message for the form as a `<Notice>` */
5
+ /**
6
+ * Show the current form's "main" (unnamed) message as a `<Notice>`, or render nothing when there is no message.
7
+ *
8
+ * @param props Notice props (excluding `children`) forwarded to the underlying `<Notice>`.
9
+ * @returns A `<Notice status="error">` containing the message, or `null` when empty.
10
+ * @example <FormNotice />
11
+ * @see https://dhoulb.github.io/shelving/ui/form/FormNotice/FormNotice
12
+ */
6
13
  export function FormNotice(props) {
7
14
  const message = useStore(requireForm().messages).get("");
8
15
  if (!message)
@@ -3,8 +3,14 @@ import { useStore } from "../../react/useStore.js";
3
3
  import { Notice, type NoticeProps } from "../notice/Notice.js";
4
4
  import { requireForm } from "./FormContext.js";
5
5
 
6
- /** Show the "main" message for the form as a `<Notice>` */
7
-
6
+ /**
7
+ * Show the current form's "main" (unnamed) message as a `<Notice>`, or render nothing when there is no message.
8
+ *
9
+ * @param props Notice props (excluding `children`) forwarded to the underlying `<Notice>`.
10
+ * @returns A `<Notice status="error">` containing the message, or `null` when empty.
11
+ * @example <FormNotice />
12
+ * @see https://dhoulb.github.io/shelving/ui/form/FormNotice/FormNotice
13
+ */
8
14
  export function FormNotice(props: Omit<NoticeProps, "children">): ReactElement | null {
9
15
  const message = useStore(requireForm().messages).get("");
10
16
  if (!message) return null;
@@ -1,2 +1,9 @@
1
- /** Publish the "main" message of a form as a global notice. */
1
+ /**
2
+ * Publish the current form's "main" (unnamed) message as a global success notice whenever it changes.
3
+ * - Renders nothing; mount it inside a `Form` to surface the message globally.
4
+ *
5
+ * @returns Nothing — this component only triggers a side effect.
6
+ * @example <FormNotify />
7
+ * @see https://dhoulb.github.io/shelving/ui/form/FormNotify/FormNotify
8
+ */
2
9
  export declare function FormNotify(): void;
@@ -2,7 +2,14 @@ import { useEffect } from "react";
2
2
  import { useStore } from "../../react/useStore.js";
3
3
  import { notifySuccess } from "../util/notice.js";
4
4
  import { requireForm } from "./FormContext.js";
5
- /** Publish the "main" message of a form as a global notice. */
5
+ /**
6
+ * Publish the current form's "main" (unnamed) message as a global success notice whenever it changes.
7
+ * - Renders nothing; mount it inside a `Form` to surface the message globally.
8
+ *
9
+ * @returns Nothing — this component only triggers a side effect.
10
+ * @example <FormNotify />
11
+ * @see https://dhoulb.github.io/shelving/ui/form/FormNotify/FormNotify
12
+ */
6
13
  export function FormNotify() {
7
14
  const message = useStore(requireForm().messages).get("");
8
15
  useEffect(() => {
@@ -3,8 +3,14 @@ import { useStore } from "../../react/useStore.js";
3
3
  import { notifySuccess } from "../util/notice.js";
4
4
  import { requireForm } from "./FormContext.js";
5
5
 
6
- /** Publish the "main" message of a form as a global notice. */
7
-
6
+ /**
7
+ * Publish the current form's "main" (unnamed) message as a global success notice whenever it changes.
8
+ * - Renders nothing; mount it inside a `Form` to surface the message globally.
9
+ *
10
+ * @returns Nothing — this component only triggers a side effect.
11
+ * @example <FormNotify />
12
+ * @see https://dhoulb.github.io/shelving/ui/form/FormNotify/FormNotify
13
+ */
8
14
  export function FormNotify(): void {
9
15
  const message = useStore(requireForm().messages).get("");
10
16
  useEffect(() => {
@@ -5,7 +5,14 @@ import { DictionaryStore } from "../../store/DictionaryStore.js";
5
5
  import type { Data, DataKey } from "../../util/data.js";
6
6
  import type { ImmutableDictionary } from "../../util/dictionary.js";
7
7
  import type { Arguments } from "../../util/function.js";
8
- /** Store the current value of a form. */
8
+ /**
9
+ * Reactive store holding the current (possibly partial and invalid) value of a form, plus its field messages.
10
+ * - Extends `DataStore` with the form's `schema`, per-field error `messages`, and validate/submit helpers.
11
+ * - Assigning a string `reason` splits it into per-field messages rather than a global failure.
12
+ *
13
+ * @example const store = new FormStore(USER_SCHEMA, { name: "Dave" });
14
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore
15
+ */
9
16
  export declare class FormStore<T extends Data> extends DataStore<Partial<T>> implements AsyncDisposable {
10
17
  /** Unique ID for the form. */
11
18
  readonly id: string;
@@ -20,19 +27,56 @@ export declare class FormStore<T extends Data> extends DataStore<Partial<T>> imp
20
27
  * - See `splitMessages()` in `shelving` for more information.
21
28
  */
22
29
  readonly messages: DictionaryStore<string>;
23
- /** Get the current valid value for this form (throws string for invalid values). */
30
+ /**
31
+ * The current value validated against the schema, also written back to `this.value`.
32
+ *
33
+ * @throws A `string` validation message if the current value is invalid.
34
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/validated
35
+ */
24
36
  get validated(): T;
25
37
  get reason(): unknown;
26
38
  set reason(reason: unknown);
39
+ /**
40
+ * Create a new `FormStore` for a schema, with optional initial data and messages.
41
+ *
42
+ * @param schema Schema describing the form's fields.
43
+ * @param partialData Initial (possibly partial) data for the form.
44
+ * @param messages Initial messages as a dictionary, or a string with `fieldName:` style lines.
45
+ * @example new FormStore(USER_SCHEMA, { name: "Dave" })
46
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/constructor
47
+ */
27
48
  constructor(schema: DataSchema<T>, partialData?: Partial<T>, messages?: ImmutableDictionary<string> | string | undefined);
28
- /** Get a named schema for a field of this form. */
49
+ /**
50
+ * Get the `Schema` for a named field of this form.
51
+ *
52
+ * @param name Name of the field to look up.
53
+ * @returns The `Schema` for that field.
54
+ * @throws `RequiredError` if no schema exists for the named field.
55
+ * @example store.requireSchema("email")
56
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/requireSchema
57
+ */
29
58
  requireSchema<K extends DataKey<T>>(name: K): Schema<T[K]>;
30
- /** Publish a value for a field of this form. */
59
+ /**
60
+ * Validate and set a value for a named field of this form.
61
+ * - Clears the main and field messages, then validates and stores the value.
62
+ * - On a string validation error the message is recorded and the raw value is still persisted.
63
+ *
64
+ * @param name Name of the field to update.
65
+ * @param unsafeValue The unvalidated value to store for the field.
66
+ * @returns Nothing.
67
+ * @example store.publish("email", "dave@shax.com")
68
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/publish
69
+ */
31
70
  publish<K extends DataKey<T>>(name: K, unsafeValue: T[K]): void;
32
71
  /**
33
- * Validate and submit the current values of the form.
72
+ * Validate the current form value and run an optional submit callback with it.
73
+ * - On a validation failure the error is stored as the `reason` and `false` is returned.
34
74
  *
35
- * @param callback Optional callback that takes the current (validated) value of the form, processes it (possibly asynchronously) and returns any new values.
75
+ * @param callback Optional callback that takes the validated value, processes it (possibly asynchronously) and returns any new values.
76
+ * @param args Additional arguments forwarded to the callback.
77
+ * @returns `true` on success, `false` on validation failure (or a `Promise` resolving to one).
78
+ * @example store.submit(saveUser)
79
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/submit
36
80
  */
37
81
  submit<A extends Arguments>(callback?: ((value: T, ...args: A) => void) | undefined, ...args: A): boolean | Promise<boolean>;
38
82
  [Symbol.asyncDispose](): Promise<void>;
@@ -5,7 +5,14 @@ import { DictionaryStore } from "../../store/DictionaryStore.js";
5
5
  import { awaitDispose } from "../../util/dispose.js";
6
6
  import { splitMessage } from "../../util/error.js";
7
7
  import { getRandomKey } from "../../util/random.js";
8
- /** Store the current value of a form. */
8
+ /**
9
+ * Reactive store holding the current (possibly partial and invalid) value of a form, plus its field messages.
10
+ * - Extends `DataStore` with the form's `schema`, per-field error `messages`, and validate/submit helpers.
11
+ * - Assigning a string `reason` splits it into per-field messages rather than a global failure.
12
+ *
13
+ * @example const store = new FormStore(USER_SCHEMA, { name: "Dave" });
14
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore
15
+ */
9
16
  export class FormStore extends DataStore {
10
17
  /** Unique ID for the form. */
11
18
  id = getRandomKey();
@@ -20,7 +27,12 @@ export class FormStore extends DataStore {
20
27
  * - See `splitMessages()` in `shelving` for more information.
21
28
  */
22
29
  messages = new DictionaryStore();
23
- /** Get the current valid value for this form (throws string for invalid values). */
30
+ /**
31
+ * The current value validated against the schema, also written back to `this.value`.
32
+ *
33
+ * @throws A `string` validation message if the current value is invalid.
34
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/validated
35
+ */
24
36
  get validated() {
25
37
  return (this.value = this.schema.validate(this.value));
26
38
  }
@@ -36,6 +48,15 @@ export class FormStore extends DataStore {
36
48
  super.reason = reason;
37
49
  }
38
50
  }
51
+ /**
52
+ * Create a new `FormStore` for a schema, with optional initial data and messages.
53
+ *
54
+ * @param schema Schema describing the form's fields.
55
+ * @param partialData Initial (possibly partial) data for the form.
56
+ * @param messages Initial messages as a dictionary, or a string with `fieldName:` style lines.
57
+ * @example new FormStore(USER_SCHEMA, { name: "Dave" })
58
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/constructor
59
+ */
39
60
  constructor(schema, partialData = {}, messages) {
40
61
  super(partialData);
41
62
  this.key = `${this.id}:${JSON.stringify(partialData)}`;
@@ -43,14 +64,32 @@ export class FormStore extends DataStore {
43
64
  if (messages)
44
65
  this.messages.value = typeof messages === "string" ? splitMessage(messages) : messages;
45
66
  }
46
- /** Get a named schema for a field of this form. */
67
+ /**
68
+ * Get the `Schema` for a named field of this form.
69
+ *
70
+ * @param name Name of the field to look up.
71
+ * @returns The `Schema` for that field.
72
+ * @throws `RequiredError` if no schema exists for the named field.
73
+ * @example store.requireSchema("email")
74
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/requireSchema
75
+ */
47
76
  requireSchema(name) {
48
77
  const schema = this.schema.props[name];
49
78
  if (schema instanceof Schema)
50
79
  return schema;
51
80
  throw new RequiredError(`Schema "${name}" does not exist in form`, { received: name, caller: this.requireSchema });
52
81
  }
53
- /** Publish a value for a field of this form. */
82
+ /**
83
+ * Validate and set a value for a named field of this form.
84
+ * - Clears the main and field messages, then validates and stores the value.
85
+ * - On a string validation error the message is recorded and the raw value is still persisted.
86
+ *
87
+ * @param name Name of the field to update.
88
+ * @param unsafeValue The unvalidated value to store for the field.
89
+ * @returns Nothing.
90
+ * @example store.publish("email", "dave@shax.com")
91
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/publish
92
+ */
54
93
  publish(name, unsafeValue) {
55
94
  this.abort();
56
95
  // Clear main message and this named message.
@@ -71,9 +110,14 @@ export class FormStore extends DataStore {
71
110
  }
72
111
  }
73
112
  /**
74
- * Validate and submit the current values of the form.
113
+ * Validate the current form value and run an optional submit callback with it.
114
+ * - On a validation failure the error is stored as the `reason` and `false` is returned.
75
115
  *
76
- * @param callback Optional callback that takes the current (validated) value of the form, processes it (possibly asynchronously) and returns any new values.
116
+ * @param callback Optional callback that takes the validated value, processes it (possibly asynchronously) and returns any new values.
117
+ * @param args Additional arguments forwarded to the callback.
118
+ * @returns `true` on success, `false` on validation failure (or a `Promise` resolving to one).
119
+ * @example store.submit(saveUser)
120
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/submit
77
121
  */
78
122
  submit(callback, ...args) {
79
123
  try {
@@ -10,7 +10,14 @@ import { splitMessage } from "../../util/error.js";
10
10
  import type { Arguments } from "../../util/function.js";
11
11
  import { getRandomKey } from "../../util/random.js";
12
12
 
13
- /** Store the current value of a form. */
13
+ /**
14
+ * Reactive store holding the current (possibly partial and invalid) value of a form, plus its field messages.
15
+ * - Extends `DataStore` with the form's `schema`, per-field error `messages`, and validate/submit helpers.
16
+ * - Assigning a string `reason` splits it into per-field messages rather than a global failure.
17
+ *
18
+ * @example const store = new FormStore(USER_SCHEMA, { name: "Dave" });
19
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore
20
+ */
14
21
  export class FormStore<T extends Data> extends DataStore<Partial<T>> implements AsyncDisposable {
15
22
  /** Unique ID for the form. */
16
23
  readonly id = getRandomKey();
@@ -29,7 +36,12 @@ export class FormStore<T extends Data> extends DataStore<Partial<T>> implements
29
36
  */
30
37
  readonly messages = new DictionaryStore<string>();
31
38
 
32
- /** Get the current valid value for this form (throws string for invalid values). */
39
+ /**
40
+ * The current value validated against the schema, also written back to `this.value`.
41
+ *
42
+ * @throws A `string` validation message if the current value is invalid.
43
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/validated
44
+ */
33
45
  get validated(): T {
34
46
  return (this.value = this.schema.validate(this.value));
35
47
  }
@@ -46,6 +58,15 @@ export class FormStore<T extends Data> extends DataStore<Partial<T>> implements
46
58
  }
47
59
  }
48
60
 
61
+ /**
62
+ * Create a new `FormStore` for a schema, with optional initial data and messages.
63
+ *
64
+ * @param schema Schema describing the form's fields.
65
+ * @param partialData Initial (possibly partial) data for the form.
66
+ * @param messages Initial messages as a dictionary, or a string with `fieldName:` style lines.
67
+ * @example new FormStore(USER_SCHEMA, { name: "Dave" })
68
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/constructor
69
+ */
49
70
  constructor(schema: DataSchema<T>, partialData: Partial<T> = {}, messages?: ImmutableDictionary<string> | string | undefined) {
50
71
  super(partialData);
51
72
  this.key = `${this.id}:${JSON.stringify(partialData)}`;
@@ -53,14 +74,32 @@ export class FormStore<T extends Data> extends DataStore<Partial<T>> implements
53
74
  if (messages) this.messages.value = typeof messages === "string" ? splitMessage(messages) : messages;
54
75
  }
55
76
 
56
- /** Get a named schema for a field of this form. */
77
+ /**
78
+ * Get the `Schema` for a named field of this form.
79
+ *
80
+ * @param name Name of the field to look up.
81
+ * @returns The `Schema` for that field.
82
+ * @throws `RequiredError` if no schema exists for the named field.
83
+ * @example store.requireSchema("email")
84
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/requireSchema
85
+ */
57
86
  requireSchema<K extends DataKey<T>>(name: K): Schema<T[K]> {
58
87
  const schema = this.schema.props[name];
59
88
  if (schema instanceof Schema) return schema as Schema<T[K]>;
60
89
  throw new RequiredError(`Schema "${name}" does not exist in form`, { received: name, caller: this.requireSchema });
61
90
  }
62
91
 
63
- /** Publish a value for a field of this form. */
92
+ /**
93
+ * Validate and set a value for a named field of this form.
94
+ * - Clears the main and field messages, then validates and stores the value.
95
+ * - On a string validation error the message is recorded and the raw value is still persisted.
96
+ *
97
+ * @param name Name of the field to update.
98
+ * @param unsafeValue The unvalidated value to store for the field.
99
+ * @returns Nothing.
100
+ * @example store.publish("email", "dave@shax.com")
101
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/publish
102
+ */
64
103
  publish<K extends DataKey<T>>(name: K, unsafeValue: T[K]): void {
65
104
  this.abort();
66
105
 
@@ -82,9 +121,14 @@ export class FormStore<T extends Data> extends DataStore<Partial<T>> implements
82
121
  }
83
122
 
84
123
  /**
85
- * Validate and submit the current values of the form.
124
+ * Validate the current form value and run an optional submit callback with it.
125
+ * - On a validation failure the error is stored as the `reason` and `false` is returned.
86
126
  *
87
- * @param callback Optional callback that takes the current (validated) value of the form, processes it (possibly asynchronously) and returns any new values.
127
+ * @param callback Optional callback that takes the validated value, processes it (possibly asynchronously) and returns any new values.
128
+ * @param args Additional arguments forwarded to the callback.
129
+ * @returns `true` on success, `false` on validation failure (or a `Promise` resolving to one).
130
+ * @example store.submit(saveUser)
131
+ * @see https://dhoulb.github.io/shelving/ui/form/FormStore/FormStore/submit
88
132
  */
89
133
  submit<A extends Arguments>(callback?: ((value: T, ...args: A) => void) | undefined, ...args: A): boolean | Promise<boolean> {
90
134
  try {
@@ -1,18 +1,82 @@
1
1
  import type { ReactElement } from "react";
2
2
  import type { ChildProps } from "../util/props.js";
3
+ /**
4
+ * `className` for a `<input type="radio">` element.
5
+ *
6
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/RADIO_CLASS
7
+ */
3
8
  export declare const RADIO_CLASS: any;
9
+ /**
10
+ * `className` for a `<input type="checkbox">` element.
11
+ *
12
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/CHECKBOX_CLASS
13
+ */
4
14
  export declare const CHECKBOX_CLASS: any;
15
+ /**
16
+ * Base `className` shared by all input elements.
17
+ *
18
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/INPUT_CLASS
19
+ */
5
20
  export declare const INPUT_CLASS: any;
21
+ /**
22
+ * `className` applied to an input when it's showing placeholder content.
23
+ *
24
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/PLACEHOLDER_CLASS
25
+ */
6
26
  export declare const PLACEHOLDER_CLASS: any;
27
+ /**
28
+ * `className` for the empty/placeholder `<option>` of a `<select>`.
29
+ *
30
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/EMPTY_OPTION_CLASS
31
+ */
7
32
  export declare const EMPTY_OPTION_CLASS: any;
33
+ /**
34
+ * `className` for a value-bearing `<option>` of a `<select>`.
35
+ *
36
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/VALUE_OPTION_CLASS
37
+ */
8
38
  export declare const VALUE_OPTION_CLASS: any;
39
+ /**
40
+ * Precomposed `className` for a single-line text `<input>`.
41
+ *
42
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/TEXT_INPUT_CLASS
43
+ */
9
44
  export declare const TEXT_INPUT_CLASS: string;
45
+ /**
46
+ * Precomposed `className` for a multiline `<textarea>`.
47
+ *
48
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/MULTILINE_TEXT_INPUT_CLASS
49
+ */
10
50
  export declare const MULTILINE_TEXT_INPUT_CLASS: string;
51
+ /**
52
+ * Precomposed `className` for an input wrapper that hosts `data-slot` icon elements.
53
+ *
54
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/WRAPPER_INPUT_CLASS
55
+ */
11
56
  export declare const WRAPPER_INPUT_CLASS: string;
57
+ /**
58
+ * Precomposed `className` for a `<select>` input.
59
+ *
60
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/SELECT_INPUT_CLASS
61
+ */
12
62
  export declare const SELECT_INPUT_CLASS: string;
63
+ /**
64
+ * Precomposed `className` for a button styled as an input.
65
+ *
66
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/BUTTON_INPUT_CLASS
67
+ */
13
68
  export declare const BUTTON_INPUT_CLASS: string;
69
+ /**
70
+ * Precomposed `className` for a `<label>` styled as an input (e.g. checkbox/radio wrappers).
71
+ *
72
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/LABEL_INPUT_CLASS
73
+ */
14
74
  export declare const LABEL_INPUT_CLASS: string;
15
- /** Props all inputs allow. */
75
+ /**
76
+ * Base props shared by every form input (name, title, placeholder, required/disabled state, and error message).
77
+ *
78
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/InputProps
79
+ */
16
80
  export interface InputProps {
17
81
  /** The `name=""` prop of the input. */
18
82
  name: string;
package/ui/form/Input.js CHANGED
@@ -4,18 +4,78 @@ import { getFlexClass } from "../style/Flex.js";
4
4
  import { getClass } from "../util/css.js";
5
5
  import INPUT_CSS from "./Input.module.css";
6
6
  // Classes.
7
+ /**
8
+ * `className` for a `<input type="radio">` element.
9
+ *
10
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/RADIO_CLASS
11
+ */
7
12
  export const RADIO_CLASS = INPUT_CSS.radio;
13
+ /**
14
+ * `className` for a `<input type="checkbox">` element.
15
+ *
16
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/CHECKBOX_CLASS
17
+ */
8
18
  export const CHECKBOX_CLASS = INPUT_CSS.radio;
19
+ /**
20
+ * Base `className` shared by all input elements.
21
+ *
22
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/INPUT_CLASS
23
+ */
9
24
  export const INPUT_CLASS = INPUT_CSS.input;
25
+ /**
26
+ * `className` applied to an input when it's showing placeholder content.
27
+ *
28
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/PLACEHOLDER_CLASS
29
+ */
10
30
  export const PLACEHOLDER_CLASS = INPUT_CSS.placeholder;
31
+ /**
32
+ * `className` for the empty/placeholder `<option>` of a `<select>`.
33
+ *
34
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/EMPTY_OPTION_CLASS
35
+ */
11
36
  export const EMPTY_OPTION_CLASS = INPUT_CSS.empty;
37
+ /**
38
+ * `className` for a value-bearing `<option>` of a `<select>`.
39
+ *
40
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/VALUE_OPTION_CLASS
41
+ */
12
42
  export const VALUE_OPTION_CLASS = INPUT_CSS.value;
13
43
  // Precomposed classes.
44
+ /**
45
+ * Precomposed `className` for a single-line text `<input>`.
46
+ *
47
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/TEXT_INPUT_CLASS
48
+ */
14
49
  export const TEXT_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.text);
50
+ /**
51
+ * Precomposed `className` for a multiline `<textarea>`.
52
+ *
53
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/MULTILINE_TEXT_INPUT_CLASS
54
+ */
15
55
  export const MULTILINE_TEXT_INPUT_CLASS = getClass(TEXT_INPUT_CLASS, INPUT_CSS.multiline);
56
+ /**
57
+ * Precomposed `className` for an input wrapper that hosts `data-slot` icon elements.
58
+ *
59
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/WRAPPER_INPUT_CLASS
60
+ */
16
61
  export const WRAPPER_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.wrapper);
62
+ /**
63
+ * Precomposed `className` for a `<select>` input.
64
+ *
65
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/SELECT_INPUT_CLASS
66
+ */
17
67
  export const SELECT_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.select);
68
+ /**
69
+ * Precomposed `className` for a button styled as an input.
70
+ *
71
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/BUTTON_INPUT_CLASS
72
+ */
18
73
  export const BUTTON_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.button);
74
+ /**
75
+ * Precomposed `className` for a `<label>` styled as an input (e.g. checkbox/radio wrappers).
76
+ *
77
+ * @see https://dhoulb.github.io/shelving/ui/form/Input/LABEL_INPUT_CLASS
78
+ */
19
79
  export const LABEL_INPUT_CLASS = getClass(INPUT_CSS.input, INPUT_CSS.label);
20
80
  /** Input that is loading. */
21
81
  export const LOADING_INPUT = _jsx("div", { className: getClass(INPUT_CLASS, getFlexClass({})), children: LOADING });