@uisatin/ui 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (359) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +10 -1
  3. package/{chunk-P4O6TGDR.js → chunk-3VVO5MY5.js} +28 -26
  4. package/chunk-47DDBME3.js +87 -0
  5. package/{chunk-SHDFUXYV.js → chunk-5663JVE5.js} +16 -18
  6. package/chunk-67CBFB6Y.js +99 -0
  7. package/chunk-6DWLTGRQ.js +130 -0
  8. package/chunk-6GNMUJQ4.js +45 -0
  9. package/chunk-6JTSZAGO.js +177 -0
  10. package/chunk-6RLSRMB5.js +14 -0
  11. package/chunk-6Y6CY2DP.js +55 -0
  12. package/{chunk-O7F3CIDV.js → chunk-7NV53EL5.js} +10 -12
  13. package/{chunk-BNZVTLHV.js → chunk-7SVMERPH.js} +25 -21
  14. package/chunk-A52HUWVM.js +24 -0
  15. package/chunk-AKEZCWNW.js +29 -0
  16. package/{chunk-SH6NG6VN.js → chunk-APRVUOD6.js} +6 -8
  17. package/{chunk-QUF2IPOZ.js → chunk-C435UD7V.js} +14 -15
  18. package/{chunk-B2K45IUR.js → chunk-C6WRJ7DG.js} +5 -7
  19. package/{chunk-PF3YBUKT.js → chunk-CQFAMWZI.js} +16 -15
  20. package/chunk-DAKVTPYZ.js +86 -0
  21. package/{chunk-VAGIAREV.js → chunk-DMZW4LGU.js} +29 -26
  22. package/chunk-EBZHGRM5.js +46 -0
  23. package/chunk-EHEXE2UV.js +44 -0
  24. package/{chunk-72OCFAPT.js → chunk-EQAFDIPE.js} +26 -23
  25. package/{chunk-LLHTVIM3.js → chunk-EXKSKYG3.js} +7 -9
  26. package/chunk-FB6DG3LR.js +35 -0
  27. package/chunk-GH2DEOGO.js +67 -0
  28. package/{chunk-YG7JOOLJ.js → chunk-GKDMCY2S.js} +5 -7
  29. package/chunk-GTFUAA6H.js +42 -0
  30. package/{chunk-TX3H3QMA.js → chunk-HI6QIG55.js} +71 -70
  31. package/{chunk-6QMSWITQ.js → chunk-HZV7EXGU.js} +24 -26
  32. package/{chunk-A5XEM3GF.js → chunk-IKJIR6VL.js} +34 -36
  33. package/{chunk-DO3TBNSC.js → chunk-INJWE2LD.js} +15 -17
  34. package/chunk-J5UQPROI.js +56 -0
  35. package/{chunk-6YXUBP27.js → chunk-JCR5TWTF.js} +72 -67
  36. package/chunk-JKOBDLP3.js +25 -0
  37. package/chunk-JR3VVDV6.js +37 -0
  38. package/chunk-JYGCZWET.js +112 -0
  39. package/{chunk-UGRSWP6U.js → chunk-K5G5OEV5.js} +10 -12
  40. package/{chunk-B6V4VSGH.js → chunk-KDU7AT2T.js} +14 -15
  41. package/chunk-KITXKIYW.js +104 -0
  42. package/{chunk-NN6PKJWS.js → chunk-KQNA22D3.js} +7 -9
  43. package/{chunk-YPNKBE5X.js → chunk-L5PPN42A.js} +14 -9
  44. package/chunk-LAOE6Y57.js +95 -0
  45. package/chunk-LI5VYDLN.js +195 -0
  46. package/{chunk-7TXHCRAG.js → chunk-LKSFTNPF.js} +8 -10
  47. package/chunk-LLW3X4ZJ.js +39 -0
  48. package/{chunk-RTJ76X5U.js → chunk-LWRB4DED.js} +2 -4
  49. package/{chunk-NSRTTYQ4.js → chunk-M7RILZVW.js} +42 -35
  50. package/{chunk-LW3TRU5W.js → chunk-MOGWOUCN.js} +28 -16
  51. package/chunk-NCIRJ5V2.js +108 -0
  52. package/chunk-NQL6SIIB.js +168 -0
  53. package/chunk-NTSU44FY.js +81 -0
  54. package/{chunk-3DINAQLL.js → chunk-P36KBUYD.js} +33 -29
  55. package/chunk-P6RHT2VM.js +147 -0
  56. package/{chunk-CL2II6BX.js → chunk-PD2KD5OR.js} +11 -13
  57. package/{chunk-XL75JRUA.js → chunk-PP46SY7M.js} +42 -22
  58. package/{chunk-L6NCCSIP.js → chunk-PTK4QAOQ.js} +36 -29
  59. package/{chunk-HL42K2NH.js → chunk-Q7KVC5B4.js} +17 -17
  60. package/{chunk-H4NU7NPO.js → chunk-R3DTMBDT.js} +62 -61
  61. package/{chunk-KNUWZNFV.js → chunk-R4KPFBMK.js} +4 -6
  62. package/chunk-R5TQ3HNB.js +71 -0
  63. package/chunk-RFSPJECL.js +84 -0
  64. package/chunk-RPL6FRVX.js +88 -0
  65. package/{chunk-AN2RNJLR.js → chunk-STYOBAC7.js} +16 -16
  66. package/{chunk-X3PQANZO.js → chunk-SVUWR3HD.js} +47 -46
  67. package/chunk-T7P3OEBP.js +128 -0
  68. package/{chunk-QS4N4MNP.js → chunk-TB3ZRV3Y.js} +18 -20
  69. package/{chunk-MYEZXZZC.js → chunk-TOY6YPTG.js} +23 -25
  70. package/{chunk-XILQ7GXE.js → chunk-U6X6ODDJ.js} +11 -13
  71. package/{chunk-XZNHT6MO.js → chunk-UAJ6M34K.js} +115 -61
  72. package/chunk-W2EH6RY5.js +42 -0
  73. package/{chunk-FDKIX4DC.js → chunk-W2QQQWNE.js} +7 -9
  74. package/{chunk-LZMKSFCF.js → chunk-WALANB3V.js} +10 -12
  75. package/chunk-WCUR44O6.js +88 -0
  76. package/{chunk-BNTPPZCK.js → chunk-WJYJMX5S.js} +37 -39
  77. package/chunk-WZSLDYUU.js +131 -0
  78. package/{chunk-J3NSDRVH.js → chunk-XETMIETJ.js} +0 -2
  79. package/chunk-XU6JJDMZ.js +117 -0
  80. package/{chunk-BKZBWPUH.js → chunk-XWPH7C2W.js} +9 -11
  81. package/{chunk-GICKPMJU.js → chunk-YXWXSRXG.js} +31 -31
  82. package/{chunk-2HKBZFIK.js → chunk-YY236ZSJ.js} +31 -31
  83. package/{chunk-YX5VNRJX.js → chunk-YYFAZQ25.js} +0 -2
  84. package/{chunk-Y5AYU7PK.js → chunk-ZHFIWDGF.js} +0 -2
  85. package/components/accordion.js +2 -4
  86. package/components/action-button.d.ts +37 -0
  87. package/components/action-button.js +5 -0
  88. package/components/agent-loading.d.ts +2 -0
  89. package/components/agent-loading.js +2 -4
  90. package/components/agent-picker.js +5 -5
  91. package/components/agent-suggestion.js +5 -6
  92. package/components/alert.d.ts +37 -0
  93. package/components/alert.js +5 -0
  94. package/components/announcement-bar.js +7 -7
  95. package/components/attachment.js +5 -5
  96. package/components/avatar.js +4 -6
  97. package/components/badge.js +2 -4
  98. package/components/banner-mesh.js +1 -3
  99. package/components/banner.js +6 -6
  100. package/components/bar-chart.js +10 -11
  101. package/components/breadcrumb.js +5 -6
  102. package/components/button-group.d.ts +26 -0
  103. package/components/button-group.js +5 -0
  104. package/components/button.d.ts +13 -1
  105. package/components/button.js +4 -4
  106. package/components/card.js +5 -5
  107. package/components/channel-chart.js +10 -11
  108. package/components/chart.js +9 -10
  109. package/components/checkbox.js +2 -4
  110. package/components/chip.js +2 -4
  111. package/components/citations.d.ts +6 -4
  112. package/components/citations.js +4 -5
  113. package/components/code-block.js +5 -5
  114. package/components/combobox.d.ts +12 -3
  115. package/components/combobox.js +10 -10
  116. package/components/command-menu.d.ts +6 -2
  117. package/components/command-menu.js +5 -6
  118. package/components/context-menu.d.ts +12 -5
  119. package/components/context-menu.js +5 -6
  120. package/components/cookie-consent.js +5 -5
  121. package/components/date-picker.d.ts +26 -14
  122. package/components/date-picker.js +9 -9
  123. package/components/decision-card.js +7 -7
  124. package/components/dialog.d.ts +6 -8
  125. package/components/dialog.js +6 -5
  126. package/components/donut-chart.js +10 -11
  127. package/components/dot.js +2 -4
  128. package/components/dropdown.d.ts +6 -1
  129. package/components/dropdown.js +4 -5
  130. package/components/empty-state.js +2 -4
  131. package/components/field-group.d.ts +27 -0
  132. package/components/field-group.js +3 -0
  133. package/components/file-upload.js +7 -7
  134. package/components/floating.js +1 -3
  135. package/components/form-field.d.ts +38 -1
  136. package/components/form-field.js +2 -4
  137. package/components/form.d.ts +47 -0
  138. package/components/form.js +3 -0
  139. package/components/hover-card.d.ts +5 -2
  140. package/components/hover-card.js +2 -4
  141. package/components/input-group.d.ts +21 -0
  142. package/components/input-group.js +6 -0
  143. package/components/input-otp.d.ts +4 -2
  144. package/components/input-otp.js +7 -8
  145. package/components/input.d.ts +5 -1
  146. package/components/input.js +3 -5
  147. package/components/kbd.js +2 -4
  148. package/components/labels.d.ts +86 -0
  149. package/components/labels.js +1 -0
  150. package/components/line-chart.js +11 -12
  151. package/components/link.d.ts +20 -0
  152. package/components/link.js +3 -0
  153. package/components/list.d.ts +46 -0
  154. package/components/list.js +2 -0
  155. package/components/message-actions.js +5 -5
  156. package/components/message.js +8 -8
  157. package/components/number-input.d.ts +4 -2
  158. package/components/number-input.js +7 -8
  159. package/components/pagination.js +6 -6
  160. package/components/password-input.d.ts +16 -0
  161. package/components/password-input.js +7 -0
  162. package/components/popover.d.ts +11 -5
  163. package/components/popover.js +3 -4
  164. package/components/progress.js +2 -4
  165. package/components/prompt-bar.js +6 -6
  166. package/components/radio.js +2 -4
  167. package/components/search-bar.js +3 -5
  168. package/components/segmented-control.d.ts +4 -2
  169. package/components/segmented-control.js +3 -5
  170. package/components/select.d.ts +11 -2
  171. package/components/select.js +6 -7
  172. package/components/selectable-card.d.ts +37 -0
  173. package/components/selectable-card.js +2 -0
  174. package/components/selectable-checkbox.d.ts +14 -0
  175. package/components/selectable-checkbox.js +4 -0
  176. package/components/selectable-radio.d.ts +16 -0
  177. package/components/selectable-radio.js +3 -0
  178. package/components/separator.d.ts +18 -0
  179. package/components/separator.js +2 -0
  180. package/components/sheet.d.ts +4 -2
  181. package/components/sheet.js +7 -6
  182. package/components/sidebar.js +2 -4
  183. package/components/skeleton.js +2 -4
  184. package/components/slider.d.ts +6 -2
  185. package/components/slider.js +7 -8
  186. package/components/sliding-indicator.js +1 -3
  187. package/components/spinner.d.ts +18 -0
  188. package/components/spinner.js +3 -0
  189. package/components/split-button.d.ts +24 -0
  190. package/components/split-button.js +8 -0
  191. package/components/streaming-text.js +2 -4
  192. package/components/switch.js +2 -4
  193. package/components/table.d.ts +16 -5
  194. package/components/table.js +4 -5
  195. package/components/tabs.d.ts +4 -2
  196. package/components/tabs.js +3 -5
  197. package/components/textarea.js +3 -5
  198. package/components/thinking.js +3 -5
  199. package/components/toast.js +5 -5
  200. package/components/toggle.js +2 -4
  201. package/components/tooltip.d.ts +5 -2
  202. package/components/tooltip.js +3 -5
  203. package/index.d.ts +17 -2
  204. package/index.js +82 -231
  205. package/lib/utils.d.ts +8 -1
  206. package/lib/utils.js +1 -3
  207. package/package.json +11 -1
  208. package/styles.css +1 -1
  209. package/theme/create-theme.d.ts +6 -2
  210. package/theme/index.js +1 -0
  211. package/chunk-2HKBZFIK.js.map +0 -1
  212. package/chunk-3DINAQLL.js.map +0 -1
  213. package/chunk-3ERGAHKA.js +0 -179
  214. package/chunk-3ERGAHKA.js.map +0 -1
  215. package/chunk-6C7CGJX2.js +0 -86
  216. package/chunk-6C7CGJX2.js.map +0 -1
  217. package/chunk-6QMSWITQ.js.map +0 -1
  218. package/chunk-6YXUBP27.js.map +0 -1
  219. package/chunk-72OCFAPT.js.map +0 -1
  220. package/chunk-7TXHCRAG.js.map +0 -1
  221. package/chunk-A5XEM3GF.js.map +0 -1
  222. package/chunk-AN2RNJLR.js.map +0 -1
  223. package/chunk-B2K45IUR.js.map +0 -1
  224. package/chunk-B6V4VSGH.js.map +0 -1
  225. package/chunk-BKZBWPUH.js.map +0 -1
  226. package/chunk-BNTPPZCK.js.map +0 -1
  227. package/chunk-BNZVTLHV.js.map +0 -1
  228. package/chunk-CL2II6BX.js.map +0 -1
  229. package/chunk-D7RZNTFC.js +0 -95
  230. package/chunk-D7RZNTFC.js.map +0 -1
  231. package/chunk-DETGJAIC.js +0 -147
  232. package/chunk-DETGJAIC.js.map +0 -1
  233. package/chunk-DO3TBNSC.js.map +0 -1
  234. package/chunk-ESC5JCVQ.js +0 -90
  235. package/chunk-ESC5JCVQ.js.map +0 -1
  236. package/chunk-FDKIX4DC.js.map +0 -1
  237. package/chunk-GICKPMJU.js.map +0 -1
  238. package/chunk-GQA24FYG.js +0 -57
  239. package/chunk-GQA24FYG.js.map +0 -1
  240. package/chunk-H4NU7NPO.js.map +0 -1
  241. package/chunk-H63FYCMY.js +0 -11
  242. package/chunk-H63FYCMY.js.map +0 -1
  243. package/chunk-HL42K2NH.js.map +0 -1
  244. package/chunk-HNQUX43Z.js +0 -109
  245. package/chunk-HNQUX43Z.js.map +0 -1
  246. package/chunk-HRKPV66B.js +0 -32
  247. package/chunk-HRKPV66B.js.map +0 -1
  248. package/chunk-J3NSDRVH.js.map +0 -1
  249. package/chunk-JPNWHWAQ.js +0 -151
  250. package/chunk-JPNWHWAQ.js.map +0 -1
  251. package/chunk-KNUWZNFV.js.map +0 -1
  252. package/chunk-L6NCCSIP.js.map +0 -1
  253. package/chunk-LLHTVIM3.js.map +0 -1
  254. package/chunk-LW3TRU5W.js.map +0 -1
  255. package/chunk-LZMKSFCF.js.map +0 -1
  256. package/chunk-MR3JDI7E.js +0 -122
  257. package/chunk-MR3JDI7E.js.map +0 -1
  258. package/chunk-MYEZXZZC.js.map +0 -1
  259. package/chunk-NN6PKJWS.js.map +0 -1
  260. package/chunk-NSRTTYQ4.js.map +0 -1
  261. package/chunk-O7F3CIDV.js.map +0 -1
  262. package/chunk-P4O6TGDR.js.map +0 -1
  263. package/chunk-PF3YBUKT.js.map +0 -1
  264. package/chunk-PVOLDO4G.js +0 -47
  265. package/chunk-PVOLDO4G.js.map +0 -1
  266. package/chunk-QS4N4MNP.js.map +0 -1
  267. package/chunk-QUF2IPOZ.js.map +0 -1
  268. package/chunk-RTJ76X5U.js.map +0 -1
  269. package/chunk-SH6NG6VN.js.map +0 -1
  270. package/chunk-SHDFUXYV.js.map +0 -1
  271. package/chunk-TKO44NDI.js +0 -84
  272. package/chunk-TKO44NDI.js.map +0 -1
  273. package/chunk-TX3H3QMA.js.map +0 -1
  274. package/chunk-UBNHSZSE.js +0 -88
  275. package/chunk-UBNHSZSE.js.map +0 -1
  276. package/chunk-UC3ZJWOD.js +0 -73
  277. package/chunk-UC3ZJWOD.js.map +0 -1
  278. package/chunk-UGRSWP6U.js.map +0 -1
  279. package/chunk-VAGIAREV.js.map +0 -1
  280. package/chunk-WTMZT3IT.js +0 -105
  281. package/chunk-WTMZT3IT.js.map +0 -1
  282. package/chunk-WX6BP5ZP.js +0 -39
  283. package/chunk-WX6BP5ZP.js.map +0 -1
  284. package/chunk-X3PQANZO.js.map +0 -1
  285. package/chunk-XILQ7GXE.js.map +0 -1
  286. package/chunk-XL75JRUA.js.map +0 -1
  287. package/chunk-XZNHT6MO.js.map +0 -1
  288. package/chunk-Y5AYU7PK.js.map +0 -1
  289. package/chunk-YG7JOOLJ.js.map +0 -1
  290. package/chunk-YPJYW624.js +0 -195
  291. package/chunk-YPJYW624.js.map +0 -1
  292. package/chunk-YPNKBE5X.js.map +0 -1
  293. package/chunk-YX5VNRJX.js.map +0 -1
  294. package/components/accordion.js.map +0 -1
  295. package/components/agent-loading.js.map +0 -1
  296. package/components/agent-picker.js.map +0 -1
  297. package/components/agent-suggestion.js.map +0 -1
  298. package/components/announcement-bar.js.map +0 -1
  299. package/components/attachment.js.map +0 -1
  300. package/components/avatar.js.map +0 -1
  301. package/components/badge.js.map +0 -1
  302. package/components/banner-mesh.js.map +0 -1
  303. package/components/banner.js.map +0 -1
  304. package/components/bar-chart.js.map +0 -1
  305. package/components/breadcrumb.js.map +0 -1
  306. package/components/button.js.map +0 -1
  307. package/components/card.js.map +0 -1
  308. package/components/channel-chart.js.map +0 -1
  309. package/components/chart.js.map +0 -1
  310. package/components/checkbox.js.map +0 -1
  311. package/components/chip.js.map +0 -1
  312. package/components/citations.js.map +0 -1
  313. package/components/code-block.js.map +0 -1
  314. package/components/combobox.js.map +0 -1
  315. package/components/command-menu.js.map +0 -1
  316. package/components/context-menu.js.map +0 -1
  317. package/components/cookie-consent.js.map +0 -1
  318. package/components/date-picker.js.map +0 -1
  319. package/components/decision-card.js.map +0 -1
  320. package/components/dialog.js.map +0 -1
  321. package/components/donut-chart.js.map +0 -1
  322. package/components/dot.js.map +0 -1
  323. package/components/dropdown.js.map +0 -1
  324. package/components/empty-state.js.map +0 -1
  325. package/components/file-upload.js.map +0 -1
  326. package/components/floating.js.map +0 -1
  327. package/components/form-field.js.map +0 -1
  328. package/components/hover-card.js.map +0 -1
  329. package/components/input-otp.js.map +0 -1
  330. package/components/input.js.map +0 -1
  331. package/components/kbd.js.map +0 -1
  332. package/components/line-chart.js.map +0 -1
  333. package/components/message-actions.js.map +0 -1
  334. package/components/message.js.map +0 -1
  335. package/components/number-input.js.map +0 -1
  336. package/components/pagination.js.map +0 -1
  337. package/components/popover.js.map +0 -1
  338. package/components/progress.js.map +0 -1
  339. package/components/prompt-bar.js.map +0 -1
  340. package/components/radio.js.map +0 -1
  341. package/components/search-bar.js.map +0 -1
  342. package/components/segmented-control.js.map +0 -1
  343. package/components/select.js.map +0 -1
  344. package/components/sheet.js.map +0 -1
  345. package/components/sidebar.js.map +0 -1
  346. package/components/skeleton.js.map +0 -1
  347. package/components/slider.js.map +0 -1
  348. package/components/sliding-indicator.js.map +0 -1
  349. package/components/streaming-text.js.map +0 -1
  350. package/components/switch.js.map +0 -1
  351. package/components/table.js.map +0 -1
  352. package/components/tabs.js.map +0 -1
  353. package/components/textarea.js.map +0 -1
  354. package/components/thinking.js.map +0 -1
  355. package/components/toast.js.map +0 -1
  356. package/components/toggle.js.map +0 -1
  357. package/components/tooltip.js.map +0 -1
  358. package/index.js.map +0 -1
  359. package/lib/utils.js.map +0 -1
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * FieldGroup: fields or options that answer one question, under one legend: an address, a date
4
+ * range, "Notify me about" with a list of checkboxes. It is a `<fieldset>`, so the legend names
5
+ * the whole group for screen readers and `disabled` reaches every control in it.
6
+ *
7
+ * - `variant="fields"` (default) is a block of FormFields under a 16px heading; `columns` puts
8
+ * them side by side (City | Postcode) from the `sm` breakpoint up.
9
+ * - `variant="choices"` is a list of Checkboxes, Switches or Radios under a label set like a
10
+ * FormField's, 12px apart, with one description and one error for the whole list.
11
+ * - In a horizontal Form the legend takes the label column and the fields inside stack
12
+ * vertically next to it.
13
+ * - `error` (or the Form's `errors[name]`) shows under the group and marks it invalid.
14
+ */
15
+ export interface FieldGroupProps extends Omit<React.ComponentProps<'fieldset'>, 'children'> {
16
+ legend: React.ReactNode;
17
+ description?: React.ReactNode;
18
+ error?: React.ReactNode;
19
+ /** Picks the group's message out of the Form's `errors`. */
20
+ name?: string;
21
+ required?: boolean;
22
+ variant?: 'fields' | 'choices';
23
+ columns?: 1 | 2 | 3;
24
+ layout?: 'vertical' | 'horizontal';
25
+ children: React.ReactNode;
26
+ }
27
+ export declare function FieldGroup({ legend, description, error: ownError, name, required, variant, columns, layout: ownLayout, disabled: ownDisabled, className, children, ...props }: FieldGroupProps): React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ 'use client';export { FieldGroup } from '../chunk-RFSPJECL.js';
2
+ import '../chunk-KITXKIYW.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -1,7 +1,7 @@
1
- 'use client';export { FileUpload, FileUploadItem, fileIconFor, formatBytes } from '../chunk-GICKPMJU.js';
2
- import '../chunk-7TXHCRAG.js';
3
- import '../chunk-H4NU7NPO.js';
4
- import '../chunk-HNQUX43Z.js';
5
- import '../chunk-H63FYCMY.js';
6
- //# sourceMappingURL=file-upload.js.map
7
- //# sourceMappingURL=file-upload.js.map
1
+ 'use client';export { FileUpload, FileUploadItem, fileIconFor, formatBytes } from '../chunk-YXWXSRXG.js';
2
+ import '../chunk-R3DTMBDT.js';
3
+ import '../chunk-6DWLTGRQ.js';
4
+ import '../chunk-AKEZCWNW.js';
5
+ import '../chunk-LKSFTNPF.js';
6
+ import '../chunk-NTSU44FY.js';
7
+ import '../chunk-EHEXE2UV.js';
@@ -1,3 +1 @@
1
- 'use client';export { Floating } from '../chunk-Y5AYU7PK.js';
2
- //# sourceMappingURL=floating.js.map
3
- //# sourceMappingURL=floating.js.map
1
+ 'use client';export { Floating } from '../chunk-ZHFIWDGF.js';
@@ -9,18 +9,41 @@ import * as React from 'react';
9
9
  * The control is wired through context: Input and Textarea pick up the field's id (so the
10
10
  * label points at them), `aria-describedby` (description or error), `aria-invalid` and
11
11
  * `disabled`. Any other control can read the same values with `useFormField()`.
12
+ *
13
+ * Inside a `Form` (form.tsx) a field takes the form's layout and disabled state, and with a
14
+ * `name` it shows the form's `errors[name]` and names its control, so the form's fields are
15
+ * set in one place. Its own props still win.
12
16
  */
13
17
  export interface FormFieldContextValue {
14
18
  id: string;
19
+ /** The field's `name`, given to Input, Textarea and Select for a native submit. */
20
+ name?: string;
15
21
  describedBy?: string;
16
22
  invalid: boolean;
17
23
  disabled: boolean;
18
24
  required: boolean;
19
25
  }
26
+ /**
27
+ * What a Form (or a FieldGroup inside one) hands the fields in it. Defined here, not in form.tsx,
28
+ * so a FormField works on its own and the form only adds to it.
29
+ */
30
+ export interface FormContextValue {
31
+ layout?: 'vertical' | 'horizontal';
32
+ disabled?: boolean;
33
+ /** Error messages by field `name`. */
34
+ errors?: Partial<Record<string, React.ReactNode>>;
35
+ }
36
+ export declare const FormContext: React.Context<FormContextValue | null>;
37
+ /** The size an InputGroup gives the fields in it (Input, Select), unless they set their own. */
38
+ export declare const FieldSizeContext: React.Context<"lg" | "md" | "sm" | null>;
39
+ /** The layout, disabled state and errors of the surrounding Form, if any. */
40
+ export declare function useFormContext(): FormContextValue | null;
20
41
  /** The id, describedby, invalid, disabled and required of the surrounding FormField, if any. */
21
42
  export declare function useFormField(): FormFieldContextValue | null;
22
43
  export interface FormFieldProps extends Omit<React.ComponentProps<'div'>, 'children'> {
23
44
  label: React.ReactNode;
45
+ /** Names the control and picks this field's message out of the Form's `errors`. */
46
+ name?: string;
24
47
  description?: React.ReactNode;
25
48
  /** An error message. It replaces the description and marks the control invalid. */
26
49
  error?: React.ReactNode;
@@ -32,4 +55,18 @@ export interface FormFieldProps extends Omit<React.ComponentProps<'div'>, 'child
32
55
  htmlFor?: string;
33
56
  children: React.ReactNode;
34
57
  }
35
- export declare function FormField({ label, description, error, layout, disabled, required, htmlFor, className, children, ...props }: FormFieldProps): React.JSX.Element;
58
+ export declare function FormField({ label, description, name, error: ownError, layout: ownLayout, disabled: ownDisabled, required, htmlFor, className, children, ...props }: FormFieldProps): React.JSX.Element;
59
+ /** @internal The required mark from Figma (the `sparkle 2` glyph in _label), 6px, in the label colour. */
60
+ export declare function RequiredMark(): React.JSX.Element;
61
+ /** @internal A field's or a group's error: Figma's 14px warning circle and the message, in red. */
62
+ export declare function FieldError({ id, children, className }: {
63
+ id?: string;
64
+ children: React.ReactNode;
65
+ className?: string;
66
+ }): React.JSX.Element;
67
+ /** @internal A field's or a group's description, muted. */
68
+ export declare function FieldDescription({ id, children, className }: {
69
+ id?: string;
70
+ children: React.ReactNode;
71
+ className?: string;
72
+ }): React.JSX.Element;
@@ -1,4 +1,2 @@
1
- 'use client';export { FormField, useFormField } from '../chunk-UBNHSZSE.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=form-field.js.map
4
- //# sourceMappingURL=form-field.js.map
1
+ 'use client';export { FieldDescription, FieldError, FieldSizeContext, FormContext, FormField, RequiredMark, useFormContext, useFormField } from '../chunk-KITXKIYW.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,47 @@
1
+ import * as React from 'react';
2
+ import { type FormContextValue } from './form-field.js';
3
+ /**
4
+ * Form: a `<form>` that lays out FormFields, FieldGroups and FormSections and sets them once.
5
+ *
6
+ * - `layout` places every field's label above its control (vertical) or in a 160px column to the
7
+ * left (horizontal, for settings pages); a field's own `layout` still wins.
8
+ * - `errors` holds messages by field `name` (`{ email: 'Enter an email' }`); each FormField or
9
+ * FieldGroup with that `name` shows its message and marks its control invalid. Feed it from
10
+ * your own validation, a server response, or a form library (`errors.email?.message`).
11
+ * - After a submit, and whenever errors appear where there were none, focus moves to the first
12
+ * invalid control, so a screen reader and the keyboard land on what needs fixing.
13
+ * - `disabled` greys out and disables every field and button inside (a native fieldset), for a
14
+ * form that is saving or read-only.
15
+ * - `onSubmitValues` hands over the values as an object (repeated names become arrays) and
16
+ * prevents the page reload; plain `onSubmit` works as usual.
17
+ */
18
+ export type FormValues = Record<string, FormDataEntryValue | FormDataEntryValue[]>;
19
+ export interface FormProps extends React.ComponentProps<'form'> {
20
+ layout?: 'vertical' | 'horizontal';
21
+ /** Error messages by field `name`. */
22
+ errors?: FormContextValue['errors'];
23
+ disabled?: boolean;
24
+ /** Called on submit with the form's values; the default submit (a page load) is prevented. */
25
+ onSubmitValues?: (values: FormValues, event: React.FormEvent<HTMLFormElement>) => void;
26
+ }
27
+ /** The form's values as an object; a name that appears more than once (checkboxes) becomes an array. */
28
+ export declare function formValues(form: HTMLFormElement): FormValues;
29
+ export declare function Form({ layout, errors, disabled, onSubmit, onSubmitValues, noValidate, className, children, ref, ...props }: FormProps): React.JSX.Element;
30
+ /**
31
+ * A titled part of a longer form (Profile, Notifications): a 16px title, an optional
32
+ * description, then its fields. Sections after the first are set off by a rule.
33
+ */
34
+ export interface FormSectionProps extends Omit<React.ComponentProps<'section'>, 'title'> {
35
+ title: React.ReactNode;
36
+ description?: React.ReactNode;
37
+ }
38
+ export declare function FormSection({ title, description, className, children, ...props }: FormSectionProps): React.JSX.Element;
39
+ /**
40
+ * The form's buttons, usually a ButtonGroup or a Cancel + Submit pair. `align="end"` (default)
41
+ * puts them on the right; `start` lines them up with the controls, past the label column in a
42
+ * horizontal form; `between` pushes the first child left (Delete) and the rest right.
43
+ */
44
+ export interface FormActionsProps extends React.ComponentProps<'div'> {
45
+ align?: 'start' | 'end' | 'between';
46
+ }
47
+ export declare function FormActions({ align, className, ...props }: FormActionsProps): React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ 'use client';export { Form, FormActions, FormSection, formValues } from '../chunk-NCIRJ5V2.js';
2
+ import '../chunk-KITXKIYW.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { HoverCard as HoverCardPrimitive } from 'radix-ui';
2
3
  /**
3
4
  * HoverCard, 1:1 with the uiKit design (🆕 context menu & hover card): a preview of a person,
4
5
  * place or file over its link — the Popover surface (bg/popover, border/default, radius-xl, the
@@ -8,8 +9,10 @@ import * as React from 'react';
8
9
  *
9
10
  * Only for extra context the page works without: anything someone needs to act on belongs in a
10
11
  * Popover they open on purpose.
12
+ *
13
+ * Other props, `ref` included, go to the card itself (the Radix Content).
11
14
  */
12
- export interface HoverCardProps {
15
+ export interface HoverCardProps extends Omit<React.ComponentProps<typeof HoverCardPrimitive.Content>, 'children' | 'asChild' | 'side' | 'align'> {
13
16
  /** The link or name it previews. Rendered with `asChild`. */
14
17
  trigger: React.ReactNode;
15
18
  children: React.ReactNode;
@@ -25,6 +28,6 @@ export interface HoverCardProps {
25
28
  container?: HTMLElement | null;
26
29
  className?: string;
27
30
  }
28
- export declare function HoverCard({ trigger, children, side, align, openDelay, closeDelay, open, defaultOpen, onOpenChange, container, className, }: HoverCardProps): React.JSX.Element;
31
+ export declare function HoverCard({ trigger, children, side, align, openDelay, closeDelay, open, defaultOpen, onOpenChange, container, className, ...props }: HoverCardProps): React.JSX.Element;
29
32
  /** The hover card's surface, for previews you place yourself. */
30
33
  export declare const hoverCardClass: string;
@@ -1,4 +1,2 @@
1
- 'use client';export { HoverCard, hoverCardClass } from '../chunk-HRKPV66B.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=hover-card.js.map
4
- //# sourceMappingURL=hover-card.js.map
1
+ 'use client';export { HoverCard, hoverCardClass } from '../chunk-W2EH6RY5.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * InputGroup: a field joined with what belongs to it, in one block: an addon before or after
4
+ * (`https://`, `.satin.dev`, a currency), a Select (country code, unit), or a Button (Copy,
5
+ * Send, Subscribe). The inner corners go square and neighbours share one 1px border; the
6
+ * focused field comes to the front so its ring is whole.
7
+ *
8
+ * `size` sizes every part to the same height: Inputs and Selects take it, Buttons take the
9
+ * matching button size (sm 28 → md, md 32 → lg, lg 36 → xl) and secondary by default. In a
10
+ * group a button draws its outline as a border, like the field, so both read the same height.
11
+ *
12
+ * Text that sits inside the field belongs on the Input itself (`leadingText`, `trailingText`,
13
+ * icons); an addon is for a separate, boxed segment. Wrap the group in a FormField for the
14
+ * label, description and error: the field inside picks them up.
15
+ */
16
+ export interface InputGroupProps extends React.ComponentProps<'div'> {
17
+ size?: 'sm' | 'md' | 'lg';
18
+ }
19
+ export declare function InputGroup({ size, className, ...props }: InputGroupProps): React.JSX.Element;
20
+ /** A boxed segment of an InputGroup: text (`https://`, `€`), an icon, or a Kbd. */
21
+ export declare function InputGroupAddon({ className, ...props }: React.ComponentProps<'div'>): React.JSX.Element;
@@ -0,0 +1,6 @@
1
+ 'use client';export { InputGroup, InputGroupAddon } from '../chunk-JKOBDLP3.js';
2
+ import '../chunk-KITXKIYW.js';
3
+ import '../chunk-6DWLTGRQ.js';
4
+ import '../chunk-AKEZCWNW.js';
5
+ import '../chunk-NTSU44FY.js';
6
+ import '../chunk-EHEXE2UV.js';
@@ -20,8 +20,10 @@ import * as React from 'react';
20
20
  * and the browser's SMS autofill (`autocomplete="one-time-code"`) all work as in any field, and
21
21
  * screen readers hear one text box. Only digits by default (`pattern`); `onComplete` fires when
22
22
  * every cell is filled.
23
+ *
24
+ * Other props, `ref` included, go to that <input>; `className` styles the field around it.
23
25
  */
24
- export interface InputOTPProps {
26
+ export interface InputOTPProps extends Omit<React.ComponentProps<'input'>, 'value' | 'defaultValue' | 'pattern' | 'type' | 'maxLength' | 'children'> {
25
27
  /** How many characters. */
26
28
  length?: number;
27
29
  /** Cells per group; groups are split by a dash. 0 for one group. */
@@ -46,4 +48,4 @@ export interface InputOTPProps {
46
48
  'aria-label'?: string;
47
49
  className?: string;
48
50
  }
49
- export declare function InputOTP({ length, groupSize, value: valueProp, defaultValue, onValueChange, onComplete, pattern, label, hint, error, success, disabled, autoFocus, id, name, className, ...props }: InputOTPProps): React.JSX.Element;
51
+ export declare function InputOTP({ length, groupSize, value: valueProp, defaultValue, onValueChange, onComplete, pattern, label, hint, error, success, disabled, autoFocus, id, name, className, 'aria-describedby': describedByProp, ref, onChange, onFocus, onBlur, onSelect, ...props }: InputOTPProps): React.JSX.Element;
@@ -1,8 +1,7 @@
1
- 'use client';export { InputOTP } from '../chunk-XL75JRUA.js';
2
- import '../chunk-72OCFAPT.js';
3
- import '../chunk-UBNHSZSE.js';
4
- import '../chunk-3DINAQLL.js';
5
- import '../chunk-BKZBWPUH.js';
6
- import '../chunk-H63FYCMY.js';
7
- //# sourceMappingURL=input-otp.js.map
8
- //# sourceMappingURL=input-otp.js.map
1
+ 'use client';export { InputOTP } from '../chunk-PP46SY7M.js';
2
+ import '../chunk-EQAFDIPE.js';
3
+ import '../chunk-KITXKIYW.js';
4
+ import '../chunk-P36KBUYD.js';
5
+ import '../chunk-XWPH7C2W.js';
6
+ import '../chunk-NTSU44FY.js';
7
+ import '../chunk-EHEXE2UV.js';
@@ -20,9 +20,13 @@ export interface InputProps extends Omit<React.ComponentProps<'input'>, 'size'>
20
20
  size?: 'sm' | 'md' | 'lg';
21
21
  leadingIcon?: React.ReactNode;
22
22
  trailingIcon?: React.ReactNode;
23
+ /** Muted text inside the field before the value: `$`, `https://`. */
24
+ leadingText?: React.ReactNode;
25
+ /** Muted text inside the field after the value: `USD`, `.satin.dev`, a counter. */
26
+ trailingText?: React.ReactNode;
23
27
  /** Classes for the outer wrapper (label + field + hint). `className` styles the field. */
24
28
  wrapperClassName?: string;
25
29
  /** Show a state without interacting, for state sheets. */
26
30
  'data-force'?: 'hover' | 'focus';
27
31
  }
28
- export declare function Input({ label, hint, error, size, leadingIcon, trailingIcon, className, wrapperClassName, id, disabled, required, value, defaultValue, onChange, 'aria-describedby': ariaDescribedBy, 'data-force': force, ...props }: InputProps): React.JSX.Element;
32
+ export declare function Input({ label, hint, error, size: ownSize, leadingIcon, trailingIcon, leadingText, trailingText, className, wrapperClassName, id, disabled, required, value, defaultValue, onChange, 'aria-describedby': ariaDescribedBy, 'data-force': force, ...props }: InputProps): React.JSX.Element;
@@ -1,5 +1,3 @@
1
- 'use client';export { Input } from '../chunk-YPNKBE5X.js';
2
- import '../chunk-UBNHSZSE.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=input.js.map
5
- //# sourceMappingURL=input.js.map
1
+ 'use client';export { Input } from '../chunk-L5PPN42A.js';
2
+ import '../chunk-KITXKIYW.js';
3
+ import '../chunk-EHEXE2UV.js';
package/components/kbd.js CHANGED
@@ -1,4 +1,2 @@
1
- 'use client';export { Kbd, KbdArrowDown, KbdArrowUp, KbdGroup, KbdHint, KbdReturn, keysOf } from '../chunk-BKZBWPUH.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=kbd.js.map
4
- //# sourceMappingURL=kbd.js.map
1
+ 'use client';export { Kbd, KbdArrowDown, KbdArrowUp, KbdGroup, KbdHint, KbdReturn, keysOf } from '../chunk-XWPH7C2W.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,86 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * The words Satin's components say on their own: accessible names of icon buttons (Close,
4
+ * Increase), lists and regions screen readers announce, and a few visible defaults. English by
5
+ * default; wrap the app (or any part of it) in `SatinLabels` to translate or reword them:
6
+ *
7
+ * <SatinLabels labels={{ close: 'Zamknij', dismiss: 'Odrzuć' }}>…</SatinLabels>
8
+ *
9
+ * Anything left out keeps its English default. A component's own prop (Select's `placeholder`)
10
+ * still wins over these.
11
+ */
12
+ export declare const defaultLabels: {
13
+ close: string;
14
+ dismiss: string;
15
+ announcement: string;
16
+ increase: string;
17
+ decrease: string;
18
+ previous: string;
19
+ next: string;
20
+ previousSection: string;
21
+ nextSection: string;
22
+ previousQuestion: string;
23
+ nextQuestion: string;
24
+ previousMonth: string;
25
+ nextMonth: string;
26
+ year: string;
27
+ month: string;
28
+ sheets: string;
29
+ hiddenPages: string;
30
+ period: string;
31
+ commandMenu: string;
32
+ searchCommands: string;
33
+ commands: string;
34
+ draft: string;
35
+ files: string;
36
+ attachedFiles: string;
37
+ goodResponse: string;
38
+ badResponse: string;
39
+ copy: string;
40
+ attachments: string;
41
+ addToConversation: string;
42
+ message: string;
43
+ send: string;
44
+ stop: string;
45
+ searchAgentsAndTools: string;
46
+ addAgent: string;
47
+ agentsAndTools: string;
48
+ model: string;
49
+ agent: string;
50
+ remove: string;
51
+ add: string;
52
+ selectAllRows: string;
53
+ selectRow: string;
54
+ select: string;
55
+ search: string;
56
+ noResults: string;
57
+ clear: string;
58
+ apply: string;
59
+ cancel: string;
60
+ pickDate: string;
61
+ pickDates: string;
62
+ from: string;
63
+ to: string;
64
+ value: string;
65
+ selected: string;
66
+ commandPlaceholder: string;
67
+ navigate: string;
68
+ openItem: string;
69
+ source: string;
70
+ moreOptions: string;
71
+ loading: string;
72
+ submit: string;
73
+ done: string;
74
+ opensInNewTab: string;
75
+ showPassword: string;
76
+ hidePassword: string;
77
+ };
78
+ export type SatinLabelSet = typeof defaultLabels;
79
+ export interface SatinLabelsProps {
80
+ /** The words to change; the rest stay as they are (from a parent SatinLabels, or English). */
81
+ labels: Partial<SatinLabelSet>;
82
+ children: React.ReactNode;
83
+ }
84
+ export declare function SatinLabels({ labels, children }: SatinLabelsProps): React.JSX.Element;
85
+ /** The labels in effect here: English, or what a SatinLabels above has set. */
86
+ export declare function useSatinLabels(): SatinLabelSet;
@@ -0,0 +1 @@
1
+ 'use client';export { SatinLabels, defaultLabels, useSatinLabels } from '../chunk-NTSU44FY.js';
@@ -1,12 +1,11 @@
1
- 'use client';export { AreaCard, LineCard } from '../chunk-SHDFUXYV.js';
2
- import '../chunk-DO3TBNSC.js';
3
- import '../chunk-YPJYW624.js';
4
- import '../chunk-Y5AYU7PK.js';
5
- import '../chunk-72OCFAPT.js';
6
- import '../chunk-UBNHSZSE.js';
7
- import '../chunk-3DINAQLL.js';
8
- import '../chunk-BKZBWPUH.js';
9
- import '../chunk-O7F3CIDV.js';
10
- import '../chunk-H63FYCMY.js';
11
- //# sourceMappingURL=line-chart.js.map
12
- //# sourceMappingURL=line-chart.js.map
1
+ 'use client';export { AreaCard, LineCard } from '../chunk-5663JVE5.js';
2
+ import '../chunk-INJWE2LD.js';
3
+ import '../chunk-LI5VYDLN.js';
4
+ import '../chunk-ZHFIWDGF.js';
5
+ import '../chunk-EQAFDIPE.js';
6
+ import '../chunk-KITXKIYW.js';
7
+ import '../chunk-P36KBUYD.js';
8
+ import '../chunk-XWPH7C2W.js';
9
+ import '../chunk-7NV53EL5.js';
10
+ import '../chunk-NTSU44FY.js';
11
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Link: text that goes somewhere. Calm by default: the text colour with a border/strong
4
+ * underline that takes the text colour on hover, so a paragraph full of links stays readable.
5
+ * `brand` colours it for the one link that should stand out; `muted` is for footers and meta
6
+ * lines and only underlines on hover. Focus draws the 2px focus ring around it.
7
+ *
8
+ * `external` (on by itself with `target="_blank"`) adds a 12px ↗ after the text, says
9
+ * "(opens in a new tab)" to screen readers and sets `rel="noopener noreferrer"`.
10
+ *
11
+ * For a router's link (Next.js, React Router) pass `asChild` and put it inside: it gets the
12
+ * styles, the router keeps the navigation.
13
+ */
14
+ export interface LinkProps extends React.ComponentProps<'a'> {
15
+ variant?: 'default' | 'brand' | 'muted';
16
+ underline?: 'always' | 'hover' | 'none';
17
+ external?: boolean;
18
+ asChild?: boolean;
19
+ }
20
+ export declare function Link({ variant, underline, external, asChild, target, rel, className, children, ...props }: LinkProps): React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ 'use client';export { Link } from '../chunk-J5UQPROI.js';
2
+ import '../chunk-NTSU44FY.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,46 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Item: one row of a list. The thing almost every screen repeats: a person, a file, a project,
4
+ * a setting, a search result, a notification. Left to right:
5
+ *
6
+ * - `icon` in a 32px muted tile (28 at sm), or `media` as it is (an Avatar, a thumbnail);
7
+ * - `title` (13px medium) over `description` (13px muted), each on one line, cut with an ellipsis;
8
+ * `children` go under them for anything longer (Chips, a Progress);
9
+ * - `meta` on the right in muted 13px: a time, a size, a Badge, a Kbd;
10
+ * - `actions` at the far right: Buttons, a Switch, a DropdownMenu `⋯`.
11
+ *
12
+ * With `href` (or `onClick`) the row is a link (or a button) and the whole row is its target,
13
+ * with a hover and a focus ring; `actions` stay their own controls on top of it. `selected`
14
+ * marks the current row. Rows go in a `List`, or stand alone with `variant="outline"`.
15
+ */
16
+ export interface ItemProps extends Omit<React.ComponentProps<'div'>, 'title' | 'onClick'> {
17
+ title: React.ReactNode;
18
+ description?: React.ReactNode;
19
+ /** A glyph shown in a muted tile. */
20
+ icon?: React.ReactNode;
21
+ /** Shown as is, in place of the tile: an Avatar, an image. */
22
+ media?: React.ReactNode;
23
+ meta?: React.ReactNode;
24
+ actions?: React.ReactNode;
25
+ href?: string;
26
+ /** Link target, e.g. `_blank`. */
27
+ target?: string;
28
+ onClick?: React.MouseEventHandler<HTMLButtonElement>;
29
+ selected?: boolean;
30
+ disabled?: boolean;
31
+ size?: 'sm' | 'md';
32
+ /** `outline` draws a card border, for a row on its own. Rows in a List take the List's look. */
33
+ variant?: 'plain' | 'outline';
34
+ }
35
+ export declare function Item({ title, description, icon, media, meta, actions, href, target, onClick, selected, disabled, size: ownSize, variant, className, children, ...props }: ItemProps): React.JSX.Element;
36
+ /**
37
+ * List: Items under each other. `plain` (default) keeps them apart by 2px with rounded hovers,
38
+ * for menus of links and search results; `divided` runs a rule between rows, edge to edge, for
39
+ * feeds and settings; `card` puts the divided rows in a bordered card. `size` is passed to every
40
+ * Item. It's a `ul`; give it an `aria-label` when the heading above doesn't name it.
41
+ */
42
+ export interface ListProps extends React.ComponentProps<'ul'> {
43
+ variant?: 'plain' | 'divided' | 'card';
44
+ size?: 'sm' | 'md';
45
+ }
46
+ export declare function List({ variant, size, className, ...props }: ListProps): React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ 'use client';export { Item, List } from '../chunk-67CBFB6Y.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -1,5 +1,5 @@
1
- 'use client';export { MessageActions } from '../chunk-AN2RNJLR.js';
2
- import '../chunk-HNQUX43Z.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=message-actions.js.map
5
- //# sourceMappingURL=message-actions.js.map
1
+ 'use client';export { MessageActions } from '../chunk-STYOBAC7.js';
2
+ import '../chunk-6DWLTGRQ.js';
3
+ import '../chunk-AKEZCWNW.js';
4
+ import '../chunk-NTSU44FY.js';
5
+ import '../chunk-EHEXE2UV.js';
@@ -1,8 +1,8 @@
1
- 'use client';export { Message } from '../chunk-PVOLDO4G.js';
2
- import '../chunk-ESC5JCVQ.js';
3
- import '../chunk-AN2RNJLR.js';
4
- import '../chunk-KNUWZNFV.js';
5
- import '../chunk-HNQUX43Z.js';
6
- import '../chunk-H63FYCMY.js';
7
- //# sourceMappingURL=message.js.map
8
- //# sourceMappingURL=message.js.map
1
+ 'use client';export { Message } from '../chunk-6GNMUJQ4.js';
2
+ import '../chunk-WCUR44O6.js';
3
+ import '../chunk-STYOBAC7.js';
4
+ import '../chunk-R4KPFBMK.js';
5
+ import '../chunk-6DWLTGRQ.js';
6
+ import '../chunk-AKEZCWNW.js';
7
+ import '../chunk-NTSU44FY.js';
8
+ import '../chunk-EHEXE2UV.js';
@@ -8,8 +8,10 @@ import * as React from 'react';
8
8
  * It's a spinbutton: ArrowUp / ArrowDown step, PageUp / PageDown step ten times, Home / End jump
9
9
  * to `min` / `max`. Typing is free while focused; Enter or leaving the field clamps it, snaps it to
10
10
  * `step` and commits; Escape puts the last value back.
11
+ *
12
+ * Other props, `ref` included, go to the <input>; `className` styles the field around it.
11
13
  */
12
- export interface NumberInputProps {
14
+ export interface NumberInputProps extends Omit<React.ComponentProps<'input'>, 'value' | 'defaultValue' | 'size' | 'min' | 'max' | 'step' | 'type' | 'children'> {
13
15
  value?: number;
14
16
  defaultValue?: number;
15
17
  onValueChange?: (value: number) => void;
@@ -30,4 +32,4 @@ export interface NumberInputProps {
30
32
  wrapperClassName?: string;
31
33
  className?: string;
32
34
  }
33
- export declare function NumberInput({ value: valueProp, defaultValue, onValueChange, min, max, step, size, formatValue, label, hint, error, disabled, id, name, wrapperClassName, className, ...props }: NumberInputProps): React.JSX.Element;
35
+ export declare function NumberInput({ value: valueProp, defaultValue, onValueChange, min, max, step, size, formatValue, label, hint, error, disabled, id, name, wrapperClassName, className, 'aria-describedby': describedBy, onChange, onBlur, onKeyDown, ...props }: NumberInputProps): React.JSX.Element;
@@ -1,8 +1,7 @@
1
- 'use client';export { NumberInput } from '../chunk-LW3TRU5W.js';
2
- import '../chunk-72OCFAPT.js';
3
- import '../chunk-UBNHSZSE.js';
4
- import '../chunk-3DINAQLL.js';
5
- import '../chunk-BKZBWPUH.js';
6
- import '../chunk-H63FYCMY.js';
7
- //# sourceMappingURL=number-input.js.map
8
- //# sourceMappingURL=number-input.js.map
1
+ 'use client';export { NumberInput } from '../chunk-MOGWOUCN.js';
2
+ import '../chunk-EQAFDIPE.js';
3
+ import '../chunk-KITXKIYW.js';
4
+ import '../chunk-P36KBUYD.js';
5
+ import '../chunk-XWPH7C2W.js';
6
+ import '../chunk-NTSU44FY.js';
7
+ import '../chunk-EHEXE2UV.js';
@@ -1,6 +1,6 @@
1
- 'use client';export { Pagination, paginationRange } from '../chunk-QS4N4MNP.js';
2
- import '../chunk-J3NSDRVH.js';
3
- import '../chunk-HNQUX43Z.js';
4
- import '../chunk-H63FYCMY.js';
5
- //# sourceMappingURL=pagination.js.map
6
- //# sourceMappingURL=pagination.js.map
1
+ 'use client';export { Pagination, paginationRange } from '../chunk-TB3ZRV3Y.js';
2
+ import '../chunk-XETMIETJ.js';
3
+ import '../chunk-6DWLTGRQ.js';
4
+ import '../chunk-AKEZCWNW.js';
5
+ import '../chunk-NTSU44FY.js';
6
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { type InputProps } from './input.js';
3
+ /**
4
+ * PasswordInput: an Input of type password with a show / hide button in the trailing slot.
5
+ * The button is an xs tertiary icon button named "Show password" / "Hide password" (from
6
+ * SatinLabels) with `aria-pressed`, and showing the password never moves the caret or the
7
+ * focus. `autoComplete` defaults to `current-password`; pass `new-password` on sign-up.
8
+ *
9
+ * Everything else is Input: sizes, `leadingIcon`, `hint`, `error`, and FormField wiring.
10
+ */
11
+ export interface PasswordInputProps extends Omit<InputProps, 'type' | 'trailingIcon' | 'trailingText'> {
12
+ /** Show the password; leave out to let the button control it. */
13
+ visible?: boolean;
14
+ onVisibleChange?: (visible: boolean) => void;
15
+ }
16
+ export declare function PasswordInput({ visible, onVisibleChange, autoComplete, disabled, ...props }: PasswordInputProps): React.JSX.Element;
@@ -0,0 +1,7 @@
1
+ 'use client';export { PasswordInput } from '../chunk-GTFUAA6H.js';
2
+ import '../chunk-L5PPN42A.js';
3
+ import '../chunk-KITXKIYW.js';
4
+ import '../chunk-6DWLTGRQ.js';
5
+ import '../chunk-AKEZCWNW.js';
6
+ import '../chunk-NTSU44FY.js';
7
+ import '../chunk-EHEXE2UV.js';