@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
@@ -8,8 +8,10 @@ import { Popover as PopoverPrimitive } from 'radix-ui';
8
8
  *
9
9
  * Built on the Radix Popover. `children` is the trigger (rendered with `asChild`, so pass a
10
10
  * Button); `body` fills the body slot. Pass `container` to portal it into the docs stage.
11
+ *
12
+ * Other props, `ref` included, go to the popover's panel (the Radix Content).
11
13
  */
12
- export interface PopoverProps {
14
+ export interface PopoverProps extends Omit<React.ComponentProps<typeof PopoverPrimitive.Content>, 'title' | 'children' | 'asChild' | 'side' | 'align' | 'sideOffset' | 'onOpenAutoFocus' | 'onInteractOutside'> {
13
15
  title: React.ReactNode;
14
16
  description?: React.ReactNode;
15
17
  /** The trigger. Rendered with `asChild`. */
@@ -32,13 +34,17 @@ export interface PopoverProps {
32
34
  onInteractOutside?: (event: Event) => void;
33
35
  className?: string;
34
36
  }
35
- export declare function Popover({ title, description, children, body, open, defaultOpen, onOpenChange, side, align, sideOffset, closeButton, container, onOpenAutoFocus, onInteractOutside, className, }: PopoverProps): React.JSX.Element;
37
+ export declare function Popover({ title, description, children, body, open, defaultOpen, onOpenChange, side, align, sideOffset, closeButton, container, onOpenAutoFocus, onInteractOutside, className, ...props }: PopoverProps): React.JSX.Element;
38
+ export interface PopoverPanelProps extends Omit<React.ComponentProps<'div'>, 'title' | 'children'>, Pick<PopoverProps, 'title' | 'description' | 'body' | 'closeButton'> {
39
+ /** Called when the close button is pressed. */
40
+ onClose?: () => void;
41
+ }
36
42
  /**
37
43
  * The popover's panel on its own, in place: no trigger, no positioning. For docs, previews
38
44
  * and layers you anchor yourself. The close button calls `onClose`.
45
+ *
46
+ * Other props, `ref` included, go to the panel's root `div`.
39
47
  */
40
- export declare function PopoverPanel({ title, description, body, closeButton, onClose, className, }: Pick<PopoverProps, 'title' | 'description' | 'body' | 'closeButton' | 'className'> & {
41
- onClose?: () => void;
42
- }): React.JSX.Element;
48
+ export declare function PopoverPanel({ title, description, body, closeButton, onClose, className, ...props }: PopoverPanelProps): React.JSX.Element;
43
49
  /** Wrap a body button in this to make it close the popover: `<PopoverClose asChild><Button…/></PopoverClose>`. */
44
50
  export declare const PopoverClose: React.ForwardRefExoticComponent<PopoverPrimitive.PopoverCloseProps & React.RefAttributes<HTMLButtonElement>>;
@@ -1,4 +1,3 @@
1
- 'use client';export { Popover, PopoverClose, PopoverPanel } from '../chunk-BNZVTLHV.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=popover.js.map
4
- //# sourceMappingURL=popover.js.map
1
+ 'use client';export { Popover, PopoverClose, PopoverPanel } from '../chunk-7SVMERPH.js';
2
+ import '../chunk-NTSU44FY.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -1,4 +1,2 @@
1
- 'use client';export { Progress } from '../chunk-7TXHCRAG.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=progress.js.map
4
- //# sourceMappingURL=progress.js.map
1
+ 'use client';export { Progress } from '../chunk-LKSFTNPF.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -1,6 +1,6 @@
1
- 'use client';export { PromptBar, defaultActions } from '../chunk-6YXUBP27.js';
2
- import '../chunk-BKZBWPUH.js';
3
- import '../chunk-HNQUX43Z.js';
4
- import '../chunk-H63FYCMY.js';
5
- //# sourceMappingURL=prompt-bar.js.map
6
- //# sourceMappingURL=prompt-bar.js.map
1
+ 'use client';export { PromptBar, defaultActions } from '../chunk-JCR5TWTF.js';
2
+ import '../chunk-XWPH7C2W.js';
3
+ import '../chunk-6DWLTGRQ.js';
4
+ import '../chunk-AKEZCWNW.js';
5
+ import '../chunk-NTSU44FY.js';
6
+ import '../chunk-EHEXE2UV.js';
@@ -1,4 +1,2 @@
1
- 'use client';export { Radio, RadioGroup } from '../chunk-LLHTVIM3.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=radio.js.map
4
- //# sourceMappingURL=radio.js.map
1
+ 'use client';export { Radio, RadioGroup } from '../chunk-EXKSKYG3.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -1,5 +1,3 @@
1
- 'use client';export { SearchBar } from '../chunk-UGRSWP6U.js';
2
- import '../chunk-BKZBWPUH.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=search-bar.js.map
5
- //# sourceMappingURL=search-bar.js.map
1
+ 'use client';export { SearchBar } from '../chunk-K5G5OEV5.js';
2
+ import '../chunk-XWPH7C2W.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -5,6 +5,8 @@ import * as React from 'react';
5
5
  * the labels to the new segment, as in Tabs and Pagination (sliding-indicator.tsx: 300 ms,
6
6
  * the leading edge first): a white card with Shadow/sm in Light. Arrow keys move between segments.
7
7
  * Values 1:1 with the uiKit `_segmentedControl/item` (3080:20278) and `SegmentedControl` (3080:21247) sets.
8
+ *
9
+ * Other props, `ref` included, go to the track (the Radix ToggleGroup root, a `group`).
8
10
  */
9
11
  type Size = 'xs' | 'md' | 'lg';
10
12
  type Shape = 'default' | 'rounded';
@@ -14,7 +16,7 @@ export interface SegmentedControlItem {
14
16
  icon?: React.ReactNode;
15
17
  disabled?: boolean;
16
18
  }
17
- export interface SegmentedControlProps {
19
+ export interface SegmentedControlProps extends Omit<React.ComponentProps<'div'>, 'defaultValue' | 'dir' | 'children'> {
18
20
  items: SegmentedControlItem[];
19
21
  value?: string;
20
22
  defaultValue?: string;
@@ -28,5 +30,5 @@ export interface SegmentedControlProps {
28
30
  'aria-label'?: string;
29
31
  className?: string;
30
32
  }
31
- export declare function SegmentedControl({ items, value: valueProp, defaultValue, onValueChange, size, shape, border, fullWidth, className, ...aria }: SegmentedControlProps): React.JSX.Element;
33
+ export declare function SegmentedControl({ items, value: valueProp, defaultValue, onValueChange, size, shape, border, fullWidth, className, ref, ...props }: SegmentedControlProps): React.JSX.Element;
32
34
  export {};
@@ -1,5 +1,3 @@
1
- 'use client';export { SegmentedControl } from '../chunk-WTMZT3IT.js';
2
- import '../chunk-J3NSDRVH.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=segmented-control.js.map
5
- //# sourceMappingURL=segmented-control.js.map
1
+ 'use client';export { SegmentedControl } from '../chunk-JYGCZWET.js';
2
+ import '../chunk-XETMIETJ.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { Select as SelectPrimitive } from 'radix-ui';
2
3
  import { type MenuItemContentProps } from './dropdown.js';
3
4
  /**
4
5
  * Select, 1:1 with the uiKit `Select` set (4022:3531): the field around it is Input's (a 13px
@@ -15,6 +16,8 @@ import { type MenuItemContentProps } from './dropdown.js';
15
16
  * Built on the Radix Select: arrow keys, typeahead, Home/End, Escape, a native form value
16
17
  * (`name`), and focus back on the trigger. Inside a FormField, leave out `label`, `hint` and
17
18
  * `error`.
19
+ *
20
+ * Other props, `ref` included, go to the trigger button.
18
21
  */
19
22
  export interface SelectOption extends Omit<MenuItemContentProps, 'label' | 'selected' | 'renderLabel' | 'layout' | 'iconSize'> {
20
23
  value: string;
@@ -25,12 +28,13 @@ export interface SelectGroup {
25
28
  label?: React.ReactNode;
26
29
  options: SelectOption[];
27
30
  }
28
- export interface SelectProps {
31
+ export interface SelectProps extends Omit<React.ComponentProps<typeof SelectPrimitive.Trigger>, 'value' | 'defaultValue' | 'disabled' | 'name' | 'children' | 'asChild'> {
29
32
  /** Options, or titled groups of options. */
30
33
  options: SelectOption[] | SelectGroup[];
31
34
  value?: string;
32
35
  defaultValue?: string;
33
36
  onValueChange?: (value: string) => void;
37
+ /** Shown while nothing is picked. Defaults to the `select` label ("Select…"). */
34
38
  placeholder?: string;
35
39
  label?: React.ReactNode;
36
40
  hint?: React.ReactNode;
@@ -60,12 +64,14 @@ export interface SelectProps {
60
64
  /** Show a state without interacting, for state sheets. */
61
65
  'data-force'?: 'hover' | 'focus';
62
66
  }
67
+ /** @internal Shared by Satin's own components; not part of the public API and may change in any release. */
63
68
  export declare const isOptionGroups: <T>(o: T[] | {
64
69
  options: T[];
65
70
  }[]) => o is {
66
71
  options: T[];
67
72
  }[];
68
73
  /** Ids and state for a field with a label, a hint or an error, inside or outside a FormField. */
74
+ /** @internal Shared by Satin's own components; not part of the public API and may change in any release. */
69
75
  export declare function useFieldChrome({ id, disabled, error, hint, }: {
70
76
  id?: string;
71
77
  disabled?: boolean;
@@ -76,12 +82,14 @@ export declare function useFieldChrome({ id, disabled, error, hint, }: {
76
82
  disabled: boolean;
77
83
  invalid: boolean;
78
84
  required: boolean | undefined;
85
+ name: string | undefined;
79
86
  describedBy: string | undefined;
80
87
  message: React.ReactNode;
81
88
  messageId: string | undefined;
82
89
  isError: boolean;
83
90
  };
84
91
  /** Label 8px above the control, hint or error 8px under it: Input's field, for Select and Combobox. */
92
+ /** @internal Shared by Satin's own components; not part of the public API and may change in any release. */
85
93
  export declare function FieldChrome({ label, action, chrome, className, children, }: {
86
94
  label?: React.ReactNode;
87
95
  /** On the label's line, at the field's right edge: the smallest button, e.g. Clear. */
@@ -91,7 +99,8 @@ export declare function FieldChrome({ label, action, chrome, className, children
91
99
  children: React.ReactNode;
92
100
  }): React.JSX.Element;
93
101
  /** The trigger's chevron, 16px in the icon colour. */
102
+ /** @internal Shared by Satin's own components; not part of the public API and may change in any release. */
94
103
  export declare function SelectChevron({ className }: {
95
104
  className?: string;
96
105
  }): React.JSX.Element;
97
- export declare function Select({ options, value, defaultValue, onValueChange, placeholder, label, hint, error, size, leadingIcon, layout, iconSize, disabled, required, name, id, open, defaultOpen, onOpenChange, container, wrapperClassName, className, 'data-force': force, ...props }: SelectProps): React.JSX.Element;
106
+ export declare function Select({ options, value, defaultValue, onValueChange, placeholder, label, hint, error, size: ownSize, leadingIcon, layout, iconSize, disabled, required, name, id, open, defaultOpen, onOpenChange, container, wrapperClassName, className, 'data-force': force, 'aria-describedby': describedBy, ...props }: SelectProps): React.JSX.Element;
@@ -1,7 +1,6 @@
1
- 'use client';export { FieldChrome, Select, SelectChevron, isOptionGroups, useFieldChrome } from '../chunk-72OCFAPT.js';
2
- import '../chunk-UBNHSZSE.js';
3
- import '../chunk-3DINAQLL.js';
4
- import '../chunk-BKZBWPUH.js';
5
- import '../chunk-H63FYCMY.js';
6
- //# sourceMappingURL=select.js.map
7
- //# sourceMappingURL=select.js.map
1
+ 'use client';export { FieldChrome, Select, SelectChevron, isOptionGroups, useFieldChrome } from '../chunk-EQAFDIPE.js';
2
+ import '../chunk-KITXKIYW.js';
3
+ import '../chunk-P36KBUYD.js';
4
+ import '../chunk-XWPH7C2W.js';
5
+ import '../chunk-NTSU44FY.js';
6
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * SelectableCard: what SelectableRadio and SelectableCheckbox share. A card with an optional
4
+ * icon and a title over a description; the card's border shows the state
5
+ * (styles/components.css): border/default, border/strong on hover, an action/primary border
6
+ * with a 1px ring of the same when selected, the focus ring around the whole card.
7
+ *
8
+ * `icon` is a 16px glyph in a square muted tile as tall as the title and description; it takes
9
+ * the text colour once the card is selected. `children` go under the description (a price,
10
+ * Badges). Two sizes, the padding even on every side, every size on the scale:
11
+ *
12
+ * - `md` (default): 12px padding, radius-xl, 12px gap. Title 14/18 medium as in Banner, 2px,
13
+ * description in the theme's body size on a 20px line, muted: 40px of text, a 40px tile.
14
+ * - `sm`: 8px padding, radius-lg, 10px gap. Title 13/18 medium over a 13/18 description:
15
+ * 36px of text, a 36px tile.
16
+ * - A title alone is one 20px line next to a 20px tile.
17
+ */
18
+ export interface SelectableCardBaseProps {
19
+ title: React.ReactNode;
20
+ description?: React.ReactNode;
21
+ /** A 16px glyph, shown in a tile as tall as the title and description. */
22
+ icon?: React.ReactNode;
23
+ size?: 'sm' | 'md';
24
+ className?: string;
25
+ /** Extra content under the description. */
26
+ children?: React.ReactNode;
27
+ }
28
+ /** @internal The icon tile and the text of a selectable card. */
29
+ export declare function SelectableCardBody({ id, title, description, icon, size, children, }: Omit<SelectableCardBaseProps, 'className'> & {
30
+ id: string;
31
+ }): React.JSX.Element;
32
+ /** The ids SelectableRadio and SelectableCheckbox give the control, title and description. */
33
+ export declare function useSelectableIds(id: string | undefined, description: React.ReactNode): {
34
+ controlId: string;
35
+ 'aria-labelledby': string;
36
+ 'aria-describedby': string | undefined;
37
+ };
@@ -0,0 +1,2 @@
1
+ 'use client';export { SelectableCardBody, useSelectableIds } from '../chunk-EBZHGRM5.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { type CheckboxProps } from './checkbox.js';
3
+ import { type SelectableCardBaseProps } from './selectable-card.js';
4
+ /**
5
+ * SelectableCheckbox: a Checkbox as a whole card, for picking several options that each need a
6
+ * line of explanation or an icon: integrations to connect, tools an agent may use, add-ons.
7
+ * The card is the checkbox's `<label>`, so a click anywhere on it toggles the box, which sits
8
+ * at the card's right edge, on the middle of the title's first line. Checked cards take the
9
+ * action/primary border. Lay them out in a grid, or a FieldGroup with `variant="choices"` for
10
+ * one legend and one error.
11
+ */
12
+ export interface SelectableCheckboxProps extends Omit<CheckboxProps, 'label' | 'description' | 'placement' | 'title' | 'children'>, SelectableCardBaseProps {
13
+ }
14
+ export declare function SelectableCheckbox({ title, description, icon, size, className, children, id, ...props }: SelectableCheckboxProps): React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ 'use client';export { SelectableCheckbox } from '../chunk-6RLSRMB5.js';
2
+ import '../chunk-EBZHGRM5.js';
3
+ import '../chunk-W2QQQWNE.js';
4
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { RadioGroup as RadioGroupPrimitive } from 'radix-ui';
3
+ import { type SelectableCardBaseProps } from './selectable-card.js';
4
+ /**
5
+ * SelectableRadio: one option of a RadioGroup drawn as a whole card, with no radio circle: the
6
+ * card itself is the radio (`role="radio"`), and the selected one is the card with the
7
+ * action/primary border. For choices that need a line of explanation or an icon: plans,
8
+ * roles, the mode an agent runs in.
9
+ *
10
+ * Put the cards in a `RadioGroup`, which owns the value: a click or Space picks a card, arrow
11
+ * keys move between them, Tab enters and leaves the group. `icon` adds a 16px glyph in a tile
12
+ * as tall as the title and description.
13
+ */
14
+ export interface SelectableRadioProps extends Omit<React.ComponentProps<typeof RadioGroupPrimitive.Item>, 'title' | 'children' | 'asChild'>, SelectableCardBaseProps {
15
+ }
16
+ export declare function SelectableRadio({ title, description, icon, size, className, children, id, ...props }: SelectableRadioProps): React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ 'use client';export { SelectableRadio } from '../chunk-A52HUWVM.js';
2
+ import '../chunk-EBZHGRM5.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Separator: a 1px rule in border/default between blocks of content, across (horizontal) or
4
+ * down (vertical, as tall as its row).
5
+ *
6
+ * With a `label` it becomes a rule with a word in the middle ("or" between sign-in options,
7
+ * "Today" in a feed), 13px muted, 12px from the lines on either side.
8
+ *
9
+ * Most rules are only visual, so it is `decorative` by default and screen readers skip it;
10
+ * set `decorative={false}` when it really splits the content into parts (`role="separator"`).
11
+ */
12
+ export interface SeparatorProps extends React.ComponentProps<'div'> {
13
+ orientation?: 'horizontal' | 'vertical';
14
+ decorative?: boolean;
15
+ /** A word in the middle of a horizontal rule. */
16
+ label?: React.ReactNode;
17
+ }
18
+ export declare function Separator({ orientation, decorative, label, className, ...props }: SeparatorProps): React.JSX.Element;
@@ -0,0 +1,2 @@
1
+ 'use client';export { Separator } from '../chunk-LLW3X4ZJ.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -12,8 +12,10 @@ import { Dialog as DialogPrimitive } from 'radix-ui';
12
12
  *
13
13
  * Built on the Radix Dialog: focus moves in on open and back to the trigger on close; Escape,
14
14
  * the backdrop or the handle closes it. It slides in over 250 ms on ease-out and out over 200.
15
+ *
16
+ * Other props, `ref` included, go to the sheet's panel.
15
17
  */
16
- export interface SheetProps {
18
+ export interface SheetProps extends Omit<React.ComponentProps<typeof DialogPrimitive.Content>, 'title' | 'children' | 'asChild' | 'onOpenAutoFocus'> {
17
19
  open?: boolean;
18
20
  defaultOpen?: boolean;
19
21
  onOpenChange?: (open: boolean) => void;
@@ -32,6 +34,6 @@ export interface SheetProps {
32
34
  onOpenAutoFocus?: (event: Event) => void;
33
35
  className?: string;
34
36
  }
35
- export declare function Sheet({ open, defaultOpen, onOpenChange, trigger, side, title, description, footer, children, modal, container, onOpenAutoFocus, className, }: SheetProps): React.JSX.Element;
37
+ export declare function Sheet({ open, defaultOpen, onOpenChange, trigger, side, title, description, footer, children, modal, container, onOpenAutoFocus, className, ...props }: SheetProps): React.JSX.Element;
36
38
  /** Wrap a footer button in this to make it close the sheet: `<SheetClose asChild><Button…/></SheetClose>`. */
37
39
  export declare const SheetClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
@@ -1,6 +1,7 @@
1
- 'use client';export { Sheet, SheetClose } from '../chunk-TKO44NDI.js';
2
- import '../chunk-JPNWHWAQ.js';
3
- import '../chunk-HNQUX43Z.js';
4
- import '../chunk-H63FYCMY.js';
5
- //# sourceMappingURL=sheet.js.map
6
- //# sourceMappingURL=sheet.js.map
1
+ 'use client';export { Sheet, SheetClose } from '../chunk-DAKVTPYZ.js';
2
+ import '../chunk-WZSLDYUU.js';
3
+ import '../chunk-RPL6FRVX.js';
4
+ import '../chunk-6DWLTGRQ.js';
5
+ import '../chunk-AKEZCWNW.js';
6
+ import '../chunk-NTSU44FY.js';
7
+ import '../chunk-EHEXE2UV.js';
@@ -1,4 +1,2 @@
1
- 'use client';export { Sidebar, SidebarGroup, SidebarItem, SidebarSubGroup, SidebarSubItem } from '../chunk-BNTPPZCK.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=sidebar.js.map
4
- //# sourceMappingURL=sidebar.js.map
1
+ 'use client';export { Sidebar, SidebarGroup, SidebarItem, SidebarSubGroup, SidebarSubItem } from '../chunk-WJYJMX5S.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -1,4 +1,2 @@
1
- 'use client';export { Skeleton } from '../chunk-YG7JOOLJ.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=skeleton.js.map
4
- //# sourceMappingURL=skeleton.js.map
1
+ 'use client';export { Skeleton } from '../chunk-GKDMCY2S.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { Slider as SliderPrimitive } from 'radix-ui';
2
3
  /**
3
4
  * Slider, 1:1 with the uiKit `Slider` set (4025:3621): a 4px bg/muted track with the picked
4
5
  * part in action/primary/bg, and 16px bg/popover thumbs with a border/strong ring and the
@@ -21,8 +22,11 @@ import * as React from 'react';
21
22
  *
22
23
  * Built on the Radix Slider: arrow keys, Page Up/Down, Home/End, a native form value (`name`)
23
24
  * and a `slider` role per thumb, with `formatValue` as its spoken value.
25
+ *
26
+ * Other props, `ref` included, go to the Radix Slider root (the track and thumbs);
27
+ * `className` styles the wrapper around it with the label and fields.
24
28
  */
25
- export interface SliderProps {
29
+ export interface SliderProps extends Omit<React.ComponentProps<typeof SliderPrimitive.Root>, 'value' | 'defaultValue' | 'onValueChange' | 'onValueCommit' | 'min' | 'max' | 'step' | 'minStepsBetweenThumbs' | 'orientation' | 'disabled' | 'name' | 'children' | 'asChild'> {
26
30
  /** A number, or a `[from, to]` pair for a range. */
27
31
  value?: number | [number, number];
28
32
  defaultValue?: number | [number, number];
@@ -54,4 +58,4 @@ export interface SliderProps {
54
58
  /** Classes for the outer wrapper. */
55
59
  className?: string;
56
60
  }
57
- export declare function Slider({ value: valueProp, defaultValue, onValueChange, onValueCommit, min, max, step, minStepsBetweenThumbs, label, showValue, inputs, tooltip, orientation, formatValue, disabled, name, id, 'aria-label': ariaLabel, className, }: SliderProps): React.JSX.Element;
61
+ export declare function Slider({ value: valueProp, defaultValue, onValueChange, onValueCommit, min, max, step, minStepsBetweenThumbs, label, showValue, inputs, tooltip, orientation, formatValue, disabled, name, id, 'aria-label': ariaLabel, 'aria-labelledby': labelledBy, className, onPointerDown, ...props }: SliderProps): React.JSX.Element;
@@ -1,8 +1,7 @@
1
- 'use client';export { Slider } from '../chunk-L6NCCSIP.js';
2
- import '../chunk-YPNKBE5X.js';
3
- import '../chunk-B6V4VSGH.js';
4
- import '../chunk-UBNHSZSE.js';
5
- import '../chunk-BKZBWPUH.js';
6
- import '../chunk-H63FYCMY.js';
7
- //# sourceMappingURL=slider.js.map
8
- //# sourceMappingURL=slider.js.map
1
+ 'use client';export { Slider } from '../chunk-PTK4QAOQ.js';
2
+ import '../chunk-L5PPN42A.js';
3
+ import '../chunk-KDU7AT2T.js';
4
+ import '../chunk-KITXKIYW.js';
5
+ import '../chunk-XWPH7C2W.js';
6
+ import '../chunk-NTSU44FY.js';
7
+ import '../chunk-EHEXE2UV.js';
@@ -1,3 +1 @@
1
- 'use client';export { SLIDE_MS, useSlidingIndicator } from '../chunk-J3NSDRVH.js';
2
- //# sourceMappingURL=sliding-indicator.js.map
3
- //# sourceMappingURL=sliding-indicator.js.map
1
+ 'use client';export { SLIDE_MS, useSlidingIndicator } from '../chunk-XETMIETJ.js';
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Spinner: something is on its way and there's no telling how far along it is (for that, use
4
+ * Progress). A 1.5px ring at 20% under a quarter arc in the current colour, so it takes the
5
+ * colour of the text or button it sits in. Sizes follow the icon scale: xs 12, sm 14, md 16,
6
+ * lg 20. It turns once every 800ms, and still turns (at half speed) under reduced motion, since
7
+ * a stopped arc reads as stuck.
8
+ *
9
+ * On its own it is a `role="status"` named "Loading" (or `label`). Inside something that
10
+ * already says it's busy (a loading Button, a row with its own text) pass `label={null}` and it
11
+ * is hidden from screen readers.
12
+ */
13
+ export interface SpinnerProps extends Omit<React.ComponentProps<'span'>, 'children'> {
14
+ size?: 'xs' | 'sm' | 'md' | 'lg';
15
+ /** What's loading, for screen readers. `null` hides the spinner from them. */
16
+ label?: string | null;
17
+ }
18
+ export declare function Spinner({ size, label, className, ...props }: SpinnerProps): React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ 'use client';export { Spinner } from '../chunk-AKEZCWNW.js';
2
+ import '../chunk-NTSU44FY.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -0,0 +1,24 @@
1
+ import * as React from 'react';
2
+ import { type ButtonProps } from './button.js';
3
+ import { type DropdownMenuProps } from './dropdown.js';
4
+ /**
5
+ * SplitButton: the main action and, joined to it, an arrow that opens the related ones
6
+ * ("Publish" ▾ Schedule, Save as draft). Built from an attached ButtonGroup, two Buttons and a
7
+ * DropdownMenu, so it takes every Button variant, size and shape, and the menu takes
8
+ * `DropdownMenuItem`s (`label`, `icon`, `shortcut`…) and groups like any other.
9
+ *
10
+ * Use it when one action is the usual one and the others are its variations; when the actions
11
+ * are equals, use a DropdownMenu on its own. The arrow is named "More options" (`menuLabel`, or
12
+ * `moreOptions` in SatinLabels) and disabling the button disables both halves.
13
+ */
14
+ export interface SplitButtonProps extends Omit<ButtonProps, 'iconOnly' | 'asChild'> {
15
+ /** The related actions: `DropdownMenuItem`s, optionally in `DropdownMenuGroup`s. */
16
+ menu: React.ReactNode;
17
+ /** Accessible name of the arrow. */
18
+ menuLabel?: string;
19
+ /** Passed to the DropdownMenu: `align` (default `end`), `side`, `open`, `onOpenChange`… */
20
+ menuProps?: Omit<DropdownMenuProps, 'trigger' | 'children'>;
21
+ /** Class names for the group around both halves. */
22
+ groupClassName?: string;
23
+ }
24
+ export declare function SplitButton({ menu, menuLabel, menuProps, groupClassName, variant, size, shape, disabled, children, ...props }: SplitButtonProps): React.JSX.Element;
@@ -0,0 +1,8 @@
1
+ 'use client';export { SplitButton } from '../chunk-FB6DG3LR.js';
2
+ import '../chunk-GH2DEOGO.js';
3
+ import '../chunk-P36KBUYD.js';
4
+ import '../chunk-XWPH7C2W.js';
5
+ import '../chunk-6DWLTGRQ.js';
6
+ import '../chunk-AKEZCWNW.js';
7
+ import '../chunk-NTSU44FY.js';
8
+ import '../chunk-EHEXE2UV.js';
@@ -1,4 +1,2 @@
1
- 'use client';export { StreamingText } from '../chunk-RTJ76X5U.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=streaming-text.js.map
4
- //# sourceMappingURL=streaming-text.js.map
1
+ 'use client';export { StreamingText } from '../chunk-LWRB4DED.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -1,4 +1,2 @@
1
- 'use client';export { Switch } from '../chunk-SH6NG6VN.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=switch.js.map
4
- //# sourceMappingURL=switch.js.map
1
+ 'use client';export { Switch } from '../chunk-APRVUOD6.js';
2
+ import '../chunk-EHEXE2UV.js';
@@ -25,19 +25,29 @@ export type Sort = {
25
25
  key: string;
26
26
  direction: 'asc' | 'desc';
27
27
  } | null;
28
+ /** A row: any object with a string `id`. Interfaces work too; no index signature needed. */
28
29
  export type Row = {
29
30
  id: string;
30
- } & Record<string, unknown>;
31
- export interface Column<R extends Row = Row> {
32
- key: string;
31
+ };
32
+ interface ColumnBase<R extends Row> {
33
33
  header: React.ReactNode;
34
34
  /** fr weight with overflow="fit" (default 1), pixels with overflow="scroll" (default 160). */
35
35
  width?: number;
36
36
  sortable?: boolean;
37
- /** Renders the cell; defaults to the row's value at `key`. */
38
- cell?: (row: R) => React.ReactNode;
39
37
  align?: 'left' | 'right';
40
38
  }
39
+ /**
40
+ * A column. Its `key` names a field of the row and the cell shows that field, so a typo in `key`
41
+ * is a type error. A computed column (a field the row doesn't have) gives its own `cell`.
42
+ */
43
+ export type Column<R extends Row = Row> = (ColumnBase<R> & {
44
+ key: keyof R & string;
45
+ /** Renders the cell; defaults to the row's value at `key`. */
46
+ cell?: (row: R) => React.ReactNode;
47
+ }) | (ColumnBase<R> & {
48
+ key: string;
49
+ cell: (row: R) => React.ReactNode;
50
+ });
41
51
  export interface TableProps<R extends Row = Row> extends Omit<React.ComponentProps<'div'>, 'children'> {
42
52
  columns: Column<R>[];
43
53
  rows: R[];
@@ -55,3 +65,4 @@ export interface TableProps<R extends Row = Row> extends Omit<React.ComponentPro
55
65
  label?: string;
56
66
  }
57
67
  export declare function Table<R extends Row = Row>({ columns, rows, selectable, zebra, overflow, onSortChange, defaultSort, manualSort, selected: selectedProp, onSelectedChange, label, className, ...props }: TableProps<R>): React.JSX.Element;
68
+ export {};
@@ -1,5 +1,4 @@
1
- 'use client';export { Table } from '../chunk-X3PQANZO.js';
2
- import '../chunk-FDKIX4DC.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=table.js.map
5
- //# sourceMappingURL=table.js.map
1
+ 'use client';export { Table } from '../chunk-SVUWR3HD.js';
2
+ import '../chunk-W2QQQWNE.js';
3
+ import '../chunk-NTSU44FY.js';
4
+ import '../chunk-EHEXE2UV.js';
@@ -17,6 +17,8 @@ import { Tabs as TabsPrimitive } from 'radix-ui';
17
17
  * Labels are text/muted, text/default on hover, focus and selected; disabled is 50%. Optional
18
18
  * 16px leading icon, 6px from the label. Built on the Radix Tabs (arrow keys move between tabs).
19
19
  * States answer to `data-force="hover" | "focus"` for state sheets.
20
+ *
21
+ * Other props, `ref` included, go to the Radix Tabs root (`aria-label` names the tab list instead).
20
22
  */
21
23
  export type TabItem = string | {
22
24
  value: string;
@@ -25,7 +27,7 @@ export type TabItem = string | {
25
27
  icon?: React.ReactNode;
26
28
  disabled?: boolean;
27
29
  };
28
- export interface TabsProps {
30
+ export interface TabsProps extends Omit<React.ComponentProps<typeof TabsPrimitive.Root>, 'value' | 'defaultValue' | 'onValueChange' | 'children' | 'asChild' | 'aria-label'> {
29
31
  items: TabItem[];
30
32
  value?: string;
31
33
  defaultValue?: string;
@@ -40,6 +42,6 @@ export interface TabsProps {
40
42
  children?: React.ReactNode;
41
43
  className?: string;
42
44
  }
43
- export declare function Tabs({ items, value, defaultValue, onValueChange, variant, size, disabled, children, className, ...props }: TabsProps): React.JSX.Element;
45
+ export declare function Tabs({ items, value, defaultValue, onValueChange, variant, size, disabled, children, className, 'aria-label': ariaLabel, ...props }: TabsProps): React.JSX.Element;
44
46
  /** The panel for one tab value. */
45
47
  export declare function TabsContent({ className, ...props }: React.ComponentProps<typeof TabsPrimitive.Content>): React.JSX.Element;
@@ -1,5 +1,3 @@
1
- 'use client';export { Tabs, TabsContent } from '../chunk-DETGJAIC.js';
2
- import '../chunk-J3NSDRVH.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=tabs.js.map
5
- //# sourceMappingURL=tabs.js.map
1
+ 'use client';export { Tabs, TabsContent } from '../chunk-P6RHT2VM.js';
2
+ import '../chunk-XETMIETJ.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -1,5 +1,3 @@
1
- 'use client';export { Textarea } from '../chunk-QUF2IPOZ.js';
2
- import '../chunk-UBNHSZSE.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=textarea.js.map
5
- //# sourceMappingURL=textarea.js.map
1
+ 'use client';export { Textarea } from '../chunk-C435UD7V.js';
2
+ import '../chunk-KITXKIYW.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -1,5 +1,3 @@
1
- 'use client';export { Thinking } from '../chunk-ESC5JCVQ.js';
2
- import '../chunk-KNUWZNFV.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=thinking.js.map
5
- //# sourceMappingURL=thinking.js.map
1
+ 'use client';export { Thinking } from '../chunk-WCUR44O6.js';
2
+ import '../chunk-R4KPFBMK.js';
3
+ import '../chunk-EHEXE2UV.js';
@@ -1,5 +1,5 @@
1
- 'use client';export { Toast, Toaster, toast } from '../chunk-2HKBZFIK.js';
2
- import '../chunk-HNQUX43Z.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=toast.js.map
5
- //# sourceMappingURL=toast.js.map
1
+ 'use client';export { Toast, Toaster, toast } from '../chunk-YY236ZSJ.js';
2
+ import '../chunk-6DWLTGRQ.js';
3
+ import '../chunk-AKEZCWNW.js';
4
+ import '../chunk-NTSU44FY.js';
5
+ import '../chunk-EHEXE2UV.js';