@uisatin/ui 0.1.1 → 0.3.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 (311) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +20 -3
  3. package/chunk-3DHJXU45.js +147 -0
  4. package/{chunk-6YXUBP27.js → chunk-5725MFGQ.js} +72 -67
  5. package/{chunk-BKZBWPUH.js → chunk-57QEOCDZ.js} +9 -11
  6. package/{chunk-RTJ76X5U.js → chunk-5KTBSMQU.js} +2 -4
  7. package/{chunk-B2K45IUR.js → chunk-5XTUFBZI.js} +5 -7
  8. package/{chunk-LW3TRU5W.js → chunk-674SRBZK.js} +28 -16
  9. package/{chunk-XZNHT6MO.js → chunk-6VKV36OK.js} +115 -61
  10. package/{chunk-GICKPMJU.js → chunk-73Z7NMQQ.js} +31 -31
  11. package/chunk-7Q76HLRQ.js +128 -0
  12. package/{chunk-JPNWHWAQ.js → chunk-AIMQNLPY.js} +38 -35
  13. package/chunk-BN7FDKCJ.js +164 -0
  14. package/{chunk-3DINAQLL.js → chunk-BR2B4OIT.js} +33 -29
  15. package/{chunk-2HKBZFIK.js → chunk-CGOH5IYX.js} +31 -31
  16. package/chunk-CVNRZ2YV.js +112 -0
  17. package/{chunk-QUF2IPOZ.js → chunk-DPYIBFQD.js} +12 -14
  18. package/chunk-EF5GT4OG.js +87 -0
  19. package/chunk-FAJ3OVL4.js +37 -0
  20. package/{chunk-L6NCCSIP.js → chunk-FB5HTCO2.js} +36 -29
  21. package/chunk-GI2SMFZL.js +55 -0
  22. package/{chunk-B6V4VSGH.js → chunk-GMETYACH.js} +14 -15
  23. package/chunk-HK6WINL6.js +95 -0
  24. package/{chunk-HL42K2NH.js → chunk-IKO3GQFE.js} +17 -17
  25. package/{chunk-DO3TBNSC.js → chunk-ISYKZCPJ.js} +15 -17
  26. package/{chunk-YG7JOOLJ.js → chunk-J7RMFN54.js} +5 -7
  27. package/{chunk-SHDFUXYV.js → chunk-JBKBRAC4.js} +16 -18
  28. package/{chunk-LZMKSFCF.js → chunk-JCXI7VQL.js} +10 -12
  29. package/{chunk-NN6PKJWS.js → chunk-JYOZUQNU.js} +7 -9
  30. package/{chunk-LLHTVIM3.js → chunk-LB37KTJH.js} +7 -9
  31. package/{chunk-NSRTTYQ4.js → chunk-LB7Z6BSK.js} +42 -35
  32. package/{chunk-BNZVTLHV.js → chunk-LFGUJHFF.js} +25 -21
  33. package/{chunk-7TXHCRAG.js → chunk-M2HEVFQ3.js} +8 -10
  34. package/{chunk-SH6NG6VN.js → chunk-NH3EHMIL.js} +6 -8
  35. package/chunk-NL574STL.js +88 -0
  36. package/chunk-NQL6SIIB.js +168 -0
  37. package/chunk-O46O6LFQ.js +25 -0
  38. package/{chunk-YPNKBE5X.js → chunk-OURZQM27.js} +5 -7
  39. package/{chunk-XL75JRUA.js → chunk-OVKPPXK5.js} +42 -22
  40. package/chunk-PD6YPFYN.js +42 -0
  41. package/{chunk-XILQ7GXE.js → chunk-PHNR6ZQ7.js} +11 -13
  42. package/{chunk-BNTPPZCK.js → chunk-PUWSL5XW.js} +37 -39
  43. package/{chunk-A5XEM3GF.js → chunk-RHQHDYTE.js} +34 -36
  44. package/chunk-S7QHBVPX.js +45 -0
  45. package/{chunk-TX3H3QMA.js → chunk-SAYNV7B3.js} +71 -70
  46. package/{chunk-6QMSWITQ.js → chunk-SDOTDMYG.js} +24 -26
  47. package/{chunk-UGRSWP6U.js → chunk-SPGUZMCC.js} +10 -12
  48. package/chunk-SSOFFQ5T.js +74 -0
  49. package/{chunk-AN2RNJLR.js → chunk-SZJIVBOD.js} +16 -16
  50. package/chunk-T6L32XXH.js +107 -0
  51. package/{chunk-QS4N4MNP.js → chunk-TT2N5752.js} +18 -20
  52. package/{chunk-72OCFAPT.js → chunk-UCCNXGLG.js} +22 -21
  53. package/{chunk-KNUWZNFV.js → chunk-UGIVCXGN.js} +4 -6
  54. package/{chunk-H4NU7NPO.js → chunk-UUCVRIVP.js} +62 -61
  55. package/{chunk-P4O6TGDR.js → chunk-UZ4DXU6W.js} +28 -26
  56. package/{chunk-UBNHSZSE.js → chunk-VUOAPWTF.js} +10 -12
  57. package/{chunk-VAGIAREV.js → chunk-W472DBMT.js} +29 -26
  58. package/{chunk-X3PQANZO.js → chunk-W4RDTP6W.js} +47 -46
  59. package/{chunk-CL2II6BX.js → chunk-WLQD5BN2.js} +11 -13
  60. package/{chunk-FDKIX4DC.js → chunk-X2GNMNZQ.js} +7 -9
  61. package/{chunk-PF3YBUKT.js → chunk-X66KTATQ.js} +16 -15
  62. package/{chunk-J3NSDRVH.js → chunk-XETMIETJ.js} +0 -2
  63. package/chunk-XH56JGYC.js +71 -0
  64. package/{chunk-O7F3CIDV.js → chunk-XUOSJMEJ.js} +10 -12
  65. package/chunk-YJK4MGSI.js +86 -0
  66. package/{chunk-YX5VNRJX.js → chunk-YYFAZQ25.js} +0 -2
  67. package/chunk-Z7S2KQZS.js +177 -0
  68. package/chunk-ZBZ3ZQRB.js +195 -0
  69. package/{chunk-Y5AYU7PK.js → chunk-ZHFIWDGF.js} +0 -2
  70. package/components/accordion.js +2 -4
  71. package/components/agent-loading.d.ts +2 -0
  72. package/components/agent-loading.js +2 -4
  73. package/components/agent-picker.js +4 -5
  74. package/components/agent-suggestion.js +5 -6
  75. package/components/announcement-bar.js +6 -7
  76. package/components/attachment.js +4 -5
  77. package/components/avatar.d.ts +16 -0
  78. package/components/avatar.js +4 -6
  79. package/components/badge.js +2 -4
  80. package/components/banner-mesh.js +1 -3
  81. package/components/banner.js +4 -6
  82. package/components/bar-chart.js +10 -11
  83. package/components/breadcrumb.js +5 -6
  84. package/components/button.js +2 -4
  85. package/components/card.js +3 -5
  86. package/components/channel-chart.js +10 -11
  87. package/components/chart.js +9 -10
  88. package/components/checkbox.js +2 -4
  89. package/components/chip.js +2 -4
  90. package/components/citations.d.ts +6 -4
  91. package/components/citations.js +4 -5
  92. package/components/code-block.js +3 -5
  93. package/components/combobox.d.ts +12 -3
  94. package/components/combobox.js +9 -10
  95. package/components/command-menu.d.ts +6 -2
  96. package/components/command-menu.js +5 -6
  97. package/components/context-menu.d.ts +12 -5
  98. package/components/context-menu.js +5 -6
  99. package/components/cookie-consent.js +3 -5
  100. package/components/date-picker.d.ts +26 -14
  101. package/components/date-picker.js +8 -9
  102. package/components/decision-card.js +6 -7
  103. package/components/dialog.d.ts +5 -2
  104. package/components/dialog.js +4 -5
  105. package/components/donut-chart.js +10 -11
  106. package/components/dot.js +2 -4
  107. package/components/dropdown.d.ts +6 -1
  108. package/components/dropdown.js +4 -5
  109. package/components/empty-state.js +2 -4
  110. package/components/file-upload.js +6 -7
  111. package/components/floating.js +1 -3
  112. package/components/form-field.js +2 -4
  113. package/components/hover-card.d.ts +5 -2
  114. package/components/hover-card.js +2 -4
  115. package/components/input-otp.d.ts +4 -2
  116. package/components/input-otp.js +7 -8
  117. package/components/input.js +3 -5
  118. package/components/kbd.js +2 -4
  119. package/components/labels.d.ts +79 -0
  120. package/components/labels.js +1 -0
  121. package/components/line-chart.js +11 -12
  122. package/components/message-actions.js +4 -5
  123. package/components/message.js +7 -8
  124. package/components/number-input.d.ts +4 -2
  125. package/components/number-input.js +7 -8
  126. package/components/pagination.js +4 -6
  127. package/components/popover.d.ts +11 -5
  128. package/components/popover.js +3 -4
  129. package/components/progress.js +2 -4
  130. package/components/prompt-bar.js +5 -6
  131. package/components/radio.js +2 -4
  132. package/components/search-bar.js +3 -5
  133. package/components/segmented-control.d.ts +4 -2
  134. package/components/segmented-control.js +3 -5
  135. package/components/select.d.ts +10 -2
  136. package/components/select.js +6 -7
  137. package/components/sheet.d.ts +4 -2
  138. package/components/sheet.js +5 -6
  139. package/components/sidebar.js +2 -4
  140. package/components/skeleton.js +2 -4
  141. package/components/slider.d.ts +6 -2
  142. package/components/slider.js +7 -8
  143. package/components/sliding-indicator.js +1 -3
  144. package/components/streaming-text.js +2 -4
  145. package/components/switch.js +2 -4
  146. package/components/table.d.ts +16 -5
  147. package/components/table.js +4 -5
  148. package/components/tabs.d.ts +4 -2
  149. package/components/tabs.js +3 -5
  150. package/components/textarea.js +3 -5
  151. package/components/thinking.js +3 -5
  152. package/components/toast.js +4 -5
  153. package/components/toggle.js +2 -4
  154. package/components/tooltip.d.ts +5 -2
  155. package/components/tooltip.js +3 -5
  156. package/index.d.ts +1 -0
  157. package/index.js +67 -231
  158. package/lib/utils.d.ts +8 -1
  159. package/lib/utils.js +1 -3
  160. package/package.json +22 -1
  161. package/styles.css +1 -1
  162. package/theme/create-theme.d.ts +6 -2
  163. package/theme/index.js +1 -0
  164. package/chunk-2HKBZFIK.js.map +0 -1
  165. package/chunk-3DINAQLL.js.map +0 -1
  166. package/chunk-3ERGAHKA.js +0 -179
  167. package/chunk-3ERGAHKA.js.map +0 -1
  168. package/chunk-6C7CGJX2.js +0 -86
  169. package/chunk-6C7CGJX2.js.map +0 -1
  170. package/chunk-6QMSWITQ.js.map +0 -1
  171. package/chunk-6YXUBP27.js.map +0 -1
  172. package/chunk-72OCFAPT.js.map +0 -1
  173. package/chunk-7TXHCRAG.js.map +0 -1
  174. package/chunk-A5XEM3GF.js.map +0 -1
  175. package/chunk-AN2RNJLR.js.map +0 -1
  176. package/chunk-B2K45IUR.js.map +0 -1
  177. package/chunk-B6V4VSGH.js.map +0 -1
  178. package/chunk-BKZBWPUH.js.map +0 -1
  179. package/chunk-BNTPPZCK.js.map +0 -1
  180. package/chunk-BNZVTLHV.js.map +0 -1
  181. package/chunk-CL2II6BX.js.map +0 -1
  182. package/chunk-D7RZNTFC.js +0 -95
  183. package/chunk-D7RZNTFC.js.map +0 -1
  184. package/chunk-DETGJAIC.js +0 -147
  185. package/chunk-DETGJAIC.js.map +0 -1
  186. package/chunk-DO3TBNSC.js.map +0 -1
  187. package/chunk-ESC5JCVQ.js +0 -90
  188. package/chunk-ESC5JCVQ.js.map +0 -1
  189. package/chunk-FDKIX4DC.js.map +0 -1
  190. package/chunk-GICKPMJU.js.map +0 -1
  191. package/chunk-GQA24FYG.js +0 -57
  192. package/chunk-GQA24FYG.js.map +0 -1
  193. package/chunk-H4NU7NPO.js.map +0 -1
  194. package/chunk-H63FYCMY.js +0 -11
  195. package/chunk-H63FYCMY.js.map +0 -1
  196. package/chunk-HL42K2NH.js.map +0 -1
  197. package/chunk-HNQUX43Z.js +0 -109
  198. package/chunk-HNQUX43Z.js.map +0 -1
  199. package/chunk-HRKPV66B.js +0 -32
  200. package/chunk-HRKPV66B.js.map +0 -1
  201. package/chunk-J3NSDRVH.js.map +0 -1
  202. package/chunk-JPNWHWAQ.js.map +0 -1
  203. package/chunk-KNUWZNFV.js.map +0 -1
  204. package/chunk-L6NCCSIP.js.map +0 -1
  205. package/chunk-LLHTVIM3.js.map +0 -1
  206. package/chunk-LW3TRU5W.js.map +0 -1
  207. package/chunk-LZMKSFCF.js.map +0 -1
  208. package/chunk-MR3JDI7E.js +0 -122
  209. package/chunk-MR3JDI7E.js.map +0 -1
  210. package/chunk-NN6PKJWS.js.map +0 -1
  211. package/chunk-NSRTTYQ4.js.map +0 -1
  212. package/chunk-O7F3CIDV.js.map +0 -1
  213. package/chunk-P4O6TGDR.js.map +0 -1
  214. package/chunk-PF3YBUKT.js.map +0 -1
  215. package/chunk-PVOLDO4G.js +0 -47
  216. package/chunk-PVOLDO4G.js.map +0 -1
  217. package/chunk-QS4N4MNP.js.map +0 -1
  218. package/chunk-QUF2IPOZ.js.map +0 -1
  219. package/chunk-RTJ76X5U.js.map +0 -1
  220. package/chunk-SH6NG6VN.js.map +0 -1
  221. package/chunk-SHDFUXYV.js.map +0 -1
  222. package/chunk-TKO44NDI.js +0 -84
  223. package/chunk-TKO44NDI.js.map +0 -1
  224. package/chunk-TVLGZGYN.js +0 -59
  225. package/chunk-TVLGZGYN.js.map +0 -1
  226. package/chunk-TX3H3QMA.js.map +0 -1
  227. package/chunk-UBNHSZSE.js.map +0 -1
  228. package/chunk-UC3ZJWOD.js +0 -73
  229. package/chunk-UC3ZJWOD.js.map +0 -1
  230. package/chunk-UGRSWP6U.js.map +0 -1
  231. package/chunk-VAGIAREV.js.map +0 -1
  232. package/chunk-WTMZT3IT.js +0 -105
  233. package/chunk-WTMZT3IT.js.map +0 -1
  234. package/chunk-WX6BP5ZP.js +0 -39
  235. package/chunk-WX6BP5ZP.js.map +0 -1
  236. package/chunk-X3PQANZO.js.map +0 -1
  237. package/chunk-XILQ7GXE.js.map +0 -1
  238. package/chunk-XL75JRUA.js.map +0 -1
  239. package/chunk-XZNHT6MO.js.map +0 -1
  240. package/chunk-Y5AYU7PK.js.map +0 -1
  241. package/chunk-YG7JOOLJ.js.map +0 -1
  242. package/chunk-YPJYW624.js +0 -195
  243. package/chunk-YPJYW624.js.map +0 -1
  244. package/chunk-YPNKBE5X.js.map +0 -1
  245. package/chunk-YX5VNRJX.js.map +0 -1
  246. package/components/accordion.js.map +0 -1
  247. package/components/agent-loading.js.map +0 -1
  248. package/components/agent-picker.js.map +0 -1
  249. package/components/agent-suggestion.js.map +0 -1
  250. package/components/announcement-bar.js.map +0 -1
  251. package/components/attachment.js.map +0 -1
  252. package/components/avatar.js.map +0 -1
  253. package/components/badge.js.map +0 -1
  254. package/components/banner-mesh.js.map +0 -1
  255. package/components/banner.js.map +0 -1
  256. package/components/bar-chart.js.map +0 -1
  257. package/components/breadcrumb.js.map +0 -1
  258. package/components/button.js.map +0 -1
  259. package/components/card.js.map +0 -1
  260. package/components/channel-chart.js.map +0 -1
  261. package/components/chart.js.map +0 -1
  262. package/components/checkbox.js.map +0 -1
  263. package/components/chip.js.map +0 -1
  264. package/components/citations.js.map +0 -1
  265. package/components/code-block.js.map +0 -1
  266. package/components/combobox.js.map +0 -1
  267. package/components/command-menu.js.map +0 -1
  268. package/components/context-menu.js.map +0 -1
  269. package/components/cookie-consent.js.map +0 -1
  270. package/components/date-picker.js.map +0 -1
  271. package/components/decision-card.js.map +0 -1
  272. package/components/dialog.js.map +0 -1
  273. package/components/donut-chart.js.map +0 -1
  274. package/components/dot.js.map +0 -1
  275. package/components/dropdown.js.map +0 -1
  276. package/components/empty-state.js.map +0 -1
  277. package/components/file-upload.js.map +0 -1
  278. package/components/floating.js.map +0 -1
  279. package/components/form-field.js.map +0 -1
  280. package/components/hover-card.js.map +0 -1
  281. package/components/input-otp.js.map +0 -1
  282. package/components/input.js.map +0 -1
  283. package/components/kbd.js.map +0 -1
  284. package/components/line-chart.js.map +0 -1
  285. package/components/message-actions.js.map +0 -1
  286. package/components/message.js.map +0 -1
  287. package/components/number-input.js.map +0 -1
  288. package/components/pagination.js.map +0 -1
  289. package/components/popover.js.map +0 -1
  290. package/components/progress.js.map +0 -1
  291. package/components/prompt-bar.js.map +0 -1
  292. package/components/radio.js.map +0 -1
  293. package/components/search-bar.js.map +0 -1
  294. package/components/segmented-control.js.map +0 -1
  295. package/components/select.js.map +0 -1
  296. package/components/sheet.js.map +0 -1
  297. package/components/sidebar.js.map +0 -1
  298. package/components/skeleton.js.map +0 -1
  299. package/components/slider.js.map +0 -1
  300. package/components/sliding-indicator.js.map +0 -1
  301. package/components/streaming-text.js.map +0 -1
  302. package/components/switch.js.map +0 -1
  303. package/components/table.js.map +0 -1
  304. package/components/tabs.js.map +0 -1
  305. package/components/textarea.js.map +0 -1
  306. package/components/thinking.js.map +0 -1
  307. package/components/toast.js.map +0 -1
  308. package/components/toggle.js.map +0 -1
  309. package/components/tooltip.js.map +0 -1
  310. package/index.js.map +0 -1
  311. package/lib/utils.js.map +0 -1
@@ -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-J7RMFN54.js';
2
+ import '../chunk-O46O6LFQ.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-FB5HTCO2.js';
2
+ import '../chunk-OURZQM27.js';
3
+ import '../chunk-GMETYACH.js';
4
+ import '../chunk-VUOAPWTF.js';
5
+ import '../chunk-57QEOCDZ.js';
6
+ import '../chunk-SSOFFQ5T.js';
7
+ import '../chunk-O46O6LFQ.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';
@@ -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-5KTBSMQU.js';
2
+ import '../chunk-O46O6LFQ.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-NH3EHMIL.js';
2
+ import '../chunk-O46O6LFQ.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-W4RDTP6W.js';
2
+ import '../chunk-X2GNMNZQ.js';
3
+ import '../chunk-SSOFFQ5T.js';
4
+ import '../chunk-O46O6LFQ.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-3DHJXU45.js';
2
+ import '../chunk-XETMIETJ.js';
3
+ import '../chunk-O46O6LFQ.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-DPYIBFQD.js';
2
+ import '../chunk-VUOAPWTF.js';
3
+ import '../chunk-O46O6LFQ.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-NL574STL.js';
2
+ import '../chunk-UGIVCXGN.js';
3
+ import '../chunk-O46O6LFQ.js';
@@ -1,5 +1,4 @@
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-CGOH5IYX.js';
2
+ import '../chunk-T6L32XXH.js';
3
+ import '../chunk-SSOFFQ5T.js';
4
+ import '../chunk-O46O6LFQ.js';
@@ -1,4 +1,2 @@
1
- 'use client';export { Toggle, toggleVariants } from '../chunk-UC3ZJWOD.js';
2
- import '../chunk-H63FYCMY.js';
3
- //# sourceMappingURL=toggle.js.map
4
- //# sourceMappingURL=toggle.js.map
1
+ 'use client';export { Toggle, toggleVariants } from '../chunk-XH56JGYC.js';
2
+ import '../chunk-O46O6LFQ.js';
@@ -10,8 +10,11 @@ import * as React from 'react';
10
10
  * Built on the Radix tooltip: it opens on hover after `delay` and at once on keyboard focus,
11
11
  * waits `closeDelay` after the pointer leaves before closing, closes on Escape, and links itself to the trigger with aria-describedby. It sits 8px from
12
12
  * the trigger and fades in from 4px towards it (`@starting-style`, ease-out, 150 ms).
13
+ *
14
+ * Other props, `ref` included, go to the visible bubble (the element `className` styles), not to
15
+ * the Radix Content around it.
13
16
  */
14
- export interface TooltipProps {
17
+ export interface TooltipProps extends Omit<React.ComponentProps<'div'>, 'children'> {
15
18
  /** The action, in one or two words. */
16
19
  label: React.ReactNode;
17
20
  /** Keys that run the action, e.g. "⌘K" or "⌃⇧V". */
@@ -32,4 +35,4 @@ export interface TooltipProps {
32
35
  className?: string;
33
36
  }
34
37
  export declare function TooltipBubble({ label, shortcut, shape, className, ...props }: Pick<TooltipProps, 'label' | 'shortcut' | 'shape' | 'className'> & React.ComponentProps<'div'>): React.JSX.Element;
35
- export declare function Tooltip({ label, shortcut, shape, side, delay, closeDelay, children, open: openProp, defaultOpen, onOpenChange, container, className, }: TooltipProps): React.JSX.Element;
38
+ export declare function Tooltip({ label, shortcut, shape, side, delay, closeDelay, children, open: openProp, defaultOpen, onOpenChange, container, className, ...props }: TooltipProps): React.JSX.Element;
@@ -1,5 +1,3 @@
1
- 'use client';export { Tooltip, TooltipBubble } from '../chunk-B6V4VSGH.js';
2
- import '../chunk-BKZBWPUH.js';
3
- import '../chunk-H63FYCMY.js';
4
- //# sourceMappingURL=tooltip.js.map
5
- //# sourceMappingURL=tooltip.js.map
1
+ 'use client';export { Tooltip, TooltipBubble } from '../chunk-GMETYACH.js';
2
+ import '../chunk-57QEOCDZ.js';
3
+ import '../chunk-O46O6LFQ.js';
package/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  export { cn } from './lib/utils.js';
2
2
  export * from './theme/index.js';
3
+ export * from './components/labels.js';
3
4
  export * from './components/accordion.js';
4
5
  export * from './components/avatar.js';
5
6
  export { Badge, badgeVariants, type BadgeProps, type BadgeTone } from './components/badge.js';
package/index.js CHANGED
@@ -1,231 +1,67 @@
1
- 'use client';export { Toggle, toggleVariants } from './chunk-UC3ZJWOD.js';
2
- export { StreamingText } from './chunk-RTJ76X5U.js';
3
- export { Switch } from './chunk-SH6NG6VN.js';
4
- export { Table } from './chunk-X3PQANZO.js';
5
- export { Tabs, TabsContent } from './chunk-DETGJAIC.js';
6
- export { Textarea } from './chunk-QUF2IPOZ.js';
7
- export { Toast, Toaster, toast } from './chunk-2HKBZFIK.js';
8
- export { Radio, RadioGroup } from './chunk-LLHTVIM3.js';
9
- export { SearchBar } from './chunk-UGRSWP6U.js';
10
- export { SegmentedControl } from './chunk-WTMZT3IT.js';
11
- export { Sheet, SheetClose } from './chunk-TKO44NDI.js';
12
- export { Sidebar, SidebarGroup, SidebarItem, SidebarSubGroup, SidebarSubItem } from './chunk-BNTPPZCK.js';
13
- export { Skeleton } from './chunk-YG7JOOLJ.js';
14
- export { Slider } from './chunk-L6NCCSIP.js';
15
- export { AreaCard, LineCard } from './chunk-SHDFUXYV.js';
16
- export { Message } from './chunk-PVOLDO4G.js';
17
- export { Thinking } from './chunk-ESC5JCVQ.js';
18
- export { MessageActions } from './chunk-AN2RNJLR.js';
19
- export { NumberInput } from './chunk-LW3TRU5W.js';
20
- export { Pagination, paginationRange } from './chunk-QS4N4MNP.js';
21
- export { Popover, PopoverClose, PopoverPanel } from './chunk-BNZVTLHV.js';
22
- export { PromptBar, defaultActions as promptBarDefaultActions } from './chunk-6YXUBP27.js';
23
- export { EmptyState, emptyStateVariants } from './chunk-WX6BP5ZP.js';
24
- export { FileUpload, FileUploadItem, fileIconFor, formatBytes } from './chunk-GICKPMJU.js';
25
- export { InputOTP } from './chunk-XL75JRUA.js';
26
- export { Input } from './chunk-YPNKBE5X.js';
27
- export { ContextMenu, ContextMenuItem, ContextMenuSeparator, ContextMenuSub } from './chunk-PF3YBUKT.js';
28
- export { CookieConsent } from './chunk-NN6PKJWS.js';
29
- export { Calendar, DatePicker, DatePickerPanel, DateRangePicker, DateRangePickerPanel, formatDate, formatRange } from './chunk-XZNHT6MO.js';
30
- export { DecisionCard, DecisionItemPreview } from './chunk-TX3H3QMA.js';
31
- import './chunk-J3NSDRVH.js';
32
- export { CloseIcon, Dialog, DialogAlert, DialogClose } from './chunk-JPNWHWAQ.js';
33
- export { DonutCard } from './chunk-CL2II6BX.js';
34
- export { Dot, dotVariants } from './chunk-B2K45IUR.js';
35
- export { ChannelCard } from './chunk-LZMKSFCF.js';
36
- export { Checkbox } from './chunk-FDKIX4DC.js';
37
- export { Citation, Sources } from './chunk-6C7CGJX2.js';
38
- export { HoverCard, hoverCardClass } from './chunk-HRKPV66B.js';
39
- export { CodeBlock } from './chunk-A5XEM3GF.js';
40
- export { Combobox } from './chunk-NSRTTYQ4.js';
41
- export { Chip, ChipAvatar, chipVariants } from './chunk-3ERGAHKA.js';
42
- export { CommandMenu } from './chunk-P4O6TGDR.js';
43
- export { AVATAR_TOOLTIP_DELAY, Avatar, avatarVariants } from './chunk-TVLGZGYN.js';
44
- export { Tooltip, TooltipBubble } from './chunk-B6V4VSGH.js';
45
- export { BarCard } from './chunk-DO3TBNSC.js';
46
- export { ChartCard, ChartLegendPill, ChartLegendRow, ChartTooltip } from './chunk-YPJYW624.js';
47
- export { Floating } from './chunk-Y5AYU7PK.js';
48
- export { FieldChrome, Select, SelectChevron, useFieldChrome } from './chunk-72OCFAPT.js';
49
- export { FormField, useFormField } from './chunk-UBNHSZSE.js';
50
- export { Breadcrumb } from './chunk-HL42K2NH.js';
51
- export { DropdownMenu, DropdownMenuGroup, DropdownMenuItem, MenuItemContent, menuGroupClass, menuGroupLabelClass, menuItemClass, menuSurfaceClass } from './chunk-3DINAQLL.js';
52
- export { Kbd, KbdArrowDown, KbdArrowUp, KbdGroup, KbdHint, KbdReturn, keysOf } from './chunk-BKZBWPUH.js';
53
- export { Card, cardVariants } from './chunk-XILQ7GXE.js';
54
- export { Accordion, AccordionItem } from './chunk-GQA24FYG.js';
55
- export { AgentLoading, FlappySprite, ShimmerLabel, TetrisLabel, TetrisMark, TetrisStill } from './chunk-KNUWZNFV.js';
56
- export { AgentAvatar, AgentMenuItem, AgentPicker, AgentPickerRow } from './chunk-VAGIAREV.js';
57
- export { AgentSuggestion, AgentSuggestionChanges, AgentSuggestionDiff, AgentSuggestionMetric, AgentSuggestionQuote } from './chunk-MR3JDI7E.js';
58
- export { Progress } from './chunk-7TXHCRAG.js';
59
- export { Badge, badgeVariants } from './chunk-O7F3CIDV.js';
60
- export { AnnouncementBar } from './chunk-D7RZNTFC.js';
61
- export { Banner, bannerVariants } from './chunk-6QMSWITQ.js';
62
- export { bannerMesh } from './chunk-YX5VNRJX.js';
63
- export { Attachment, AttachmentGroup, AttachmentPreview, AttachmentPreviewPager, AttachmentPreviewSheets, FileIcon } from './chunk-H4NU7NPO.js';
64
- export { Button, buttonVariants } from './chunk-HNQUX43Z.js';
65
- export { cn } from './chunk-H63FYCMY.js';
66
-
67
- // src/theme/create-theme.ts
68
- var defaultTheme = { brand: "#4633D7", radius: 1 };
69
- var toLinear = (c) => c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
70
- var toGamma = (c) => c <= 31308e-7 ? 12.92 * c : 1.055 * c ** (1 / 2.4) - 0.055;
71
- function hexToRgb(hex) {
72
- const h = hex.replace("#", "");
73
- const full = h.length === 3 ? [...h].map((c) => c + c).join("") : h.slice(0, 6);
74
- return [0, 2, 4].map((i) => parseInt(full.slice(i, i + 2), 16) / 255);
75
- }
76
- function rgbToOklch([r, g, b]) {
77
- const [lr, lg, lb] = [r, g, b].map(toLinear);
78
- const l = Math.cbrt(0.4122214708 * lr + 0.5363325363 * lg + 0.0514459929 * lb);
79
- const m = Math.cbrt(0.2119034982 * lr + 0.6806995451 * lg + 0.1073969566 * lb);
80
- const s = Math.cbrt(0.0883024619 * lr + 0.2817188376 * lg + 0.6299787005 * lb);
81
- const L = 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s;
82
- const A = 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s;
83
- const B = 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s;
84
- return [L, Math.hypot(A, B), (Math.atan2(B, A) * 180 / Math.PI + 360) % 360];
85
- }
86
- function oklchToRgb([L, C, H]) {
87
- const a = C * Math.cos(H * Math.PI / 180);
88
- const b = C * Math.sin(H * Math.PI / 180);
89
- const l = (L + 0.3963377774 * a + 0.2158037573 * b) ** 3;
90
- const m = (L - 0.1055613458 * a - 0.0638541728 * b) ** 3;
91
- const s = (L - 0.0894841775 * a - 1.291485548 * b) ** 3;
92
- return [
93
- 4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s,
94
- -1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s,
95
- -0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s
96
- ];
97
- }
98
- var inGamut = (rgb) => rgb.every((c) => c >= -5e-4 && c <= 1.0005);
99
- function oklchToHex([L, C, H]) {
100
- let c = C;
101
- let rgb = oklchToRgb([L, c, H]);
102
- while (!inGamut(rgb) && c > 0) {
103
- c = Math.max(0, c - 5e-3);
104
- rgb = oklchToRgb([L, c, H]);
105
- }
106
- return "#" + rgb.map((v) => Math.round(Math.min(1, Math.max(0, toGamma(v))) * 255).toString(16).padStart(2, "0")).join("").toUpperCase();
107
- }
108
- var luminance = (hex) => {
109
- const [r, g, b] = hexToRgb(hex).map(toLinear);
110
- return 0.2126 * r + 0.7152 * g + 0.0722 * b;
111
- };
112
- var contrast = (a, b) => {
113
- const [x, y] = [luminance(a), luminance(b)].sort((p, q) => q - p);
114
- return (x + 0.05) / (y + 0.05);
115
- };
116
- var RAMP = {
117
- "blue-50": "#F2F4FF",
118
- "blue-200": "#CFD6FF",
119
- "blue-300": "#B1BBFE",
120
- "blue-500": "#5146E9",
121
- "blue-600": "#4633D7",
122
- "blue-700": "#3923B9",
123
- "blue-900": "#1D1168",
124
- "blue-950": "#110A47",
125
- "blue-soft-50": "#F3F5FF",
126
- "blue-soft-200": "#D9DEFB",
127
- "blue-soft-300": "#BEC7FC",
128
- "blue-soft-700": "#5158A0",
129
- "blue-soft-900": "#30344F",
130
- "blue-soft-950": "#1F2132",
131
- "primary-dark": "#493DD6",
132
- "primary-hover-dark": "#554FE7",
133
- "primary-pressed-dark": "#3E2AC5",
134
- "primary-border-light": "#9085E7",
135
- "primary-border-dark": "#928BE6"
136
- };
137
- var SOLID = /* @__PURE__ */ new Set(["blue-500", "blue-600", "blue-700", "primary-dark", "primary-hover-dark", "primary-pressed-dark"]);
138
- function solidLightness(c, h, base, hoverStep) {
139
- const passes = (L) => contrast(oklchToHex([L, c, h]), "#FFFFFF") >= 4.7 && contrast(oklchToHex([L + hoverStep, c, h]), "#FFFFFF") >= 4.7;
140
- if (passes(base)) return base;
141
- let lo = 0.2;
142
- let hi = base;
143
- for (let i = 0; i < 20; i++) {
144
- const mid = (lo + hi) / 2;
145
- if (passes(mid)) lo = mid;
146
- else hi = mid;
147
- }
148
- return lo;
149
- }
150
- function brandVars(brand) {
151
- const [bl, bc, bh] = rgbToOklch(hexToRgb(brand));
152
- const lch = (step) => rgbToOklch(hexToRgb(RAMP[step]));
153
- const [rl, rc, rh] = lch("blue-600");
154
- const chroma = bc / rc;
155
- const light = solidLightness(bc, bh, bl, lch("blue-500")[0] - rl);
156
- const darkRest = lch("primary-dark")[0];
157
- const dark = solidLightness(bc, bh, light + (darkRest - rl), lch("primary-hover-dark")[0] - darkRest);
158
- const root = {};
159
- for (const [step, hex] of Object.entries(RAMP)) {
160
- const [l, c, h] = rgbToOklch(hexToRgb(hex));
161
- const isDark = step.endsWith("-dark") && step !== "primary-border-dark";
162
- const L = SOLID.has(step) ? isDark ? dark + (l - darkRest) : light + (l - rl) : l;
163
- root[`--color-${step}`] = step === "blue-600" && light === bl ? brand.toUpperCase() : oklchToHex([Math.min(0.97, Math.max(0.15, L)), c * chroma, bh + (h - rh)]);
164
- }
165
- root["--color-blue-600-a20"] = `${root["--color-blue-600"]}33`;
166
- root["--color-blue-500-a20"] = `${root["--color-blue-500"]}33`;
167
- root["--color-primary-focus-dark"] = `${root["--color-primary-dark"]}33`;
168
- return root;
169
- }
170
- var RADII = { xs: 4, sm: 6, md: 8, xl: 12, "2xl": 16, "3xl": 20 };
171
- function radiusVars(scale) {
172
- const v = {};
173
- for (const [k, px] of Object.entries(RADII)) v[`--radius-${k}`] = `${Math.round(px * scale * 2) / 2}px`;
174
- v["--radius"] = `${Math.round(10 * scale * 2) / 2}px`;
175
- v["--radius-pill"] = scale >= 1 ? "9999px" : `${Math.round(16 * scale)}px`;
176
- return v;
177
- }
178
- function themeVars(theme) {
179
- return { root: { ...brandVars(theme.brand), ...radiusVars(theme.radius) }, dark: {} };
180
- }
181
- var SCOPED_LIGHT = {
182
- "--border-focus": "var(--color-blue-600)",
183
- "--action-primary-bg": "var(--color-blue-600)",
184
- "--action-primary-bg-hover": "var(--color-blue-500)",
185
- "--action-primary-bg-pressed": "var(--color-blue-700)",
186
- "--action-primary-border": "var(--color-primary-border-light)",
187
- "--action-focus-ring": "var(--color-blue-600-a20)",
188
- "--status-brand-bg": "var(--color-blue-soft-50)",
189
- "--status-brand-border": "var(--color-blue-soft-200)",
190
- "--status-brand-fg": "var(--color-blue-soft-700)",
191
- "--radius-lg": "var(--radius)"
192
- };
193
- var SCOPED_DARK = {
194
- "--border-focus": "var(--color-primary-hover-dark)",
195
- "--action-primary-bg": "var(--color-primary-dark)",
196
- "--action-primary-bg-hover": "var(--color-primary-hover-dark)",
197
- "--action-primary-bg-pressed": "var(--color-primary-pressed-dark)",
198
- "--action-primary-border": "var(--color-primary-border-dark)",
199
- "--action-focus-ring": "var(--color-primary-focus-dark)",
200
- "--status-brand-bg": "var(--color-blue-soft-950)",
201
- "--status-brand-border": "var(--color-blue-soft-900)",
202
- "--status-brand-fg": "var(--color-blue-soft-300)"
203
- };
204
- function themeCss(theme, scope) {
205
- const vars = themeVars(theme);
206
- const root = scope ? { ...vars.root, ...SCOPED_LIGHT } : vars.root;
207
- const dark = scope ? { ...vars.dark, ...SCOPED_DARK } : vars.dark;
208
- const block = (sel, vars2) => `${sel} {
209
- ${Object.entries(vars2).map(([k, v]) => ` ${k}: ${v};`).join("\n")}
210
- }`;
211
- return [
212
- `/* Satin theme: brand ${theme.brand.toUpperCase()}, radius ${theme.radius}. */`,
213
- // :root:root outranks Satin's own :root, so the theme wins wherever the file is loaded.
214
- block(scope ?? ":root:root", root),
215
- ...Object.keys(dark).length ? [block(scope ? `.dark ${scope}` : ":root.dark", dark)] : [],
216
- ""
217
- ].join("\n\n");
218
- }
219
- function randomTheme(current) {
220
- const [, , currentHue] = current ? rgbToOklch(hexToRgb(current.brand)) : [0, 0, -360];
221
- const hue = (currentHue + 60 + Math.random() * 240) % 360;
222
- const l = 0.5 + Math.random() * 0.25;
223
- const brand = oklchToHex([l, 0.12 + Math.random() * 0.08, hue]);
224
- const radii = [0, 0.5, 1, 1.5].filter((r) => r !== current?.radius);
225
- const radius = radii[Math.floor(Math.random() * radii.length)];
226
- return { brand, radius };
227
- }
228
-
229
- export { contrast, defaultTheme, randomTheme, themeCss, themeVars };
230
- //# sourceMappingURL=index.js.map
231
- //# sourceMappingURL=index.js.map
1
+ 'use client';export { Toast, Toaster, toast } from './chunk-CGOH5IYX.js';
2
+ export { Toggle, toggleVariants } from './chunk-XH56JGYC.js';
3
+ export { Skeleton } from './chunk-J7RMFN54.js';
4
+ export { Slider } from './chunk-FB5HTCO2.js';
5
+ export { StreamingText } from './chunk-5KTBSMQU.js';
6
+ export { Switch } from './chunk-NH3EHMIL.js';
7
+ export { Table } from './chunk-W4RDTP6W.js';
8
+ export { Tabs, TabsContent } from './chunk-3DHJXU45.js';
9
+ export { Textarea } from './chunk-DPYIBFQD.js';
10
+ export { PromptBar, defaultActions as promptBarDefaultActions } from './chunk-5725MFGQ.js';
11
+ export { Radio, RadioGroup } from './chunk-LB37KTJH.js';
12
+ export { SearchBar } from './chunk-SPGUZMCC.js';
13
+ export { SegmentedControl } from './chunk-CVNRZ2YV.js';
14
+ export { Sheet, SheetClose } from './chunk-YJK4MGSI.js';
15
+ export { Sidebar, SidebarGroup, SidebarItem, SidebarSubGroup, SidebarSubItem } from './chunk-PUWSL5XW.js';
16
+ export { AreaCard, LineCard } from './chunk-JBKBRAC4.js';
17
+ export { Message } from './chunk-S7QHBVPX.js';
18
+ export { Thinking } from './chunk-NL574STL.js';
19
+ export { MessageActions } from './chunk-SZJIVBOD.js';
20
+ export { NumberInput } from './chunk-674SRBZK.js';
21
+ export { Pagination, paginationRange } from './chunk-TT2N5752.js';
22
+ export { Popover, PopoverClose, PopoverPanel } from './chunk-LFGUJHFF.js';
23
+ export { EmptyState, emptyStateVariants } from './chunk-FAJ3OVL4.js';
24
+ export { FileUpload, FileUploadItem, fileIconFor, formatBytes } from './chunk-73Z7NMQQ.js';
25
+ export { InputOTP } from './chunk-OVKPPXK5.js';
26
+ export { Input } from './chunk-OURZQM27.js';
27
+ export { CommandMenu } from './chunk-UZ4DXU6W.js';
28
+ export { ContextMenu, ContextMenuItem, ContextMenuSeparator, ContextMenuSub } from './chunk-X66KTATQ.js';
29
+ export { CookieConsent } from './chunk-JYOZUQNU.js';
30
+ export { Calendar, DatePicker, DatePickerPanel, DateRangePicker, DateRangePickerPanel, formatDate, formatRange } from './chunk-6VKV36OK.js';
31
+ export { DecisionCard, DecisionItemPreview } from './chunk-SAYNV7B3.js';
32
+ import './chunk-XETMIETJ.js';
33
+ export { CloseIcon, Dialog, DialogAlert, DialogClose } from './chunk-AIMQNLPY.js';
34
+ export { DonutCard } from './chunk-WLQD5BN2.js';
35
+ export { Dot, dotVariants } from './chunk-5XTUFBZI.js';
36
+ export { Card, cardVariants } from './chunk-PHNR6ZQ7.js';
37
+ export { ChannelCard } from './chunk-JCXI7VQL.js';
38
+ export { Checkbox } from './chunk-X2GNMNZQ.js';
39
+ export { Citation, Sources } from './chunk-EF5GT4OG.js';
40
+ export { HoverCard, hoverCardClass } from './chunk-PD6YPFYN.js';
41
+ export { CodeBlock } from './chunk-RHQHDYTE.js';
42
+ export { Combobox } from './chunk-LB7Z6BSK.js';
43
+ export { Chip, ChipAvatar, chipVariants } from './chunk-Z7S2KQZS.js';
44
+ export { Attachment, AttachmentGroup, AttachmentPreview, AttachmentPreviewPager, AttachmentPreviewSheets, FileIcon } from './chunk-UUCVRIVP.js';
45
+ export { AVATAR_TOOLTIP_DELAY, Avatar, AvatarGroup, avatarVariants } from './chunk-BN7FDKCJ.js';
46
+ export { Tooltip, TooltipBubble } from './chunk-GMETYACH.js';
47
+ export { BarCard } from './chunk-ISYKZCPJ.js';
48
+ export { ChartCard, ChartLegendPill, ChartLegendRow, ChartTooltip } from './chunk-ZBZ3ZQRB.js';
49
+ export { Floating } from './chunk-ZHFIWDGF.js';
50
+ export { FieldChrome, Select, SelectChevron, useFieldChrome } from './chunk-UCCNXGLG.js';
51
+ export { FormField, useFormField } from './chunk-VUOAPWTF.js';
52
+ export { Breadcrumb } from './chunk-IKO3GQFE.js';
53
+ export { DropdownMenu, DropdownMenuGroup, DropdownMenuItem, MenuItemContent, menuGroupClass, menuGroupLabelClass, menuItemClass, menuSurfaceClass } from './chunk-BR2B4OIT.js';
54
+ export { Kbd, KbdArrowDown, KbdArrowUp, KbdGroup, KbdHint, KbdReturn, keysOf } from './chunk-57QEOCDZ.js';
55
+ export { contrast, defaultTheme, randomTheme, themeCss, themeVars } from './chunk-NQL6SIIB.js';
56
+ export { Accordion, AccordionItem } from './chunk-GI2SMFZL.js';
57
+ export { AgentLoading, FlappySprite, ShimmerLabel, TetrisLabel, TetrisMark, TetrisStill } from './chunk-UGIVCXGN.js';
58
+ export { AgentAvatar, AgentMenuItem, AgentPicker, AgentPickerRow } from './chunk-W472DBMT.js';
59
+ export { AgentSuggestion, AgentSuggestionChanges, AgentSuggestionDiff, AgentSuggestionMetric, AgentSuggestionQuote } from './chunk-7Q76HLRQ.js';
60
+ export { Progress } from './chunk-M2HEVFQ3.js';
61
+ export { Badge, badgeVariants } from './chunk-XUOSJMEJ.js';
62
+ export { AnnouncementBar } from './chunk-HK6WINL6.js';
63
+ export { Banner, bannerVariants } from './chunk-SDOTDMYG.js';
64
+ export { bannerMesh } from './chunk-YYFAZQ25.js';
65
+ export { Button, buttonVariants } from './chunk-T6L32XXH.js';
66
+ export { SatinLabels, defaultLabels, useSatinLabels } from './chunk-SSOFFQ5T.js';
67
+ export { cn } from './chunk-O46O6LFQ.js';
package/lib/utils.d.ts CHANGED
@@ -1,3 +1,10 @@
1
1
  import { type ClassValue } from 'clsx';
2
- /** Joins class names and lets the later Tailwind class win, like shadcn's `cn`. */
2
+ /**
3
+ * Joins class names and lets the later Tailwind class win, like shadcn's `cn`.
4
+ *
5
+ * In the npm package Satin's own classes carry the `sa:` prefix, while an app's `className`
6
+ * holds its own Tailwind classes without it. They are merged as if neither had a prefix, so
7
+ * `cn('sa:px-2.5', 'px-4')` keeps only `px-4`: an app's class still replaces the Satin class
8
+ * it overrides, prefixed or not.
9
+ */
3
10
  export declare function cn(...inputs: ClassValue[]): string;
package/lib/utils.js CHANGED
@@ -1,3 +1 @@
1
- export { cn } from '../chunk-H63FYCMY.js';
2
- //# sourceMappingURL=utils.js.map
3
- //# sourceMappingURL=utils.js.map
1
+ export { cn } from '../chunk-O46O6LFQ.js';
package/package.json CHANGED
@@ -1,11 +1,19 @@
1
1
  {
2
2
  "name": "@uisatin/ui",
3
- "version": "0.1.1",
3
+ "version": "0.3.0",
4
4
  "description": "Satin Free: the open-source React components of the Satin design system. shadcn-based, built on Radix, themed with Satin tokens.",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "author": "Maciej Kownacki",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/maciej-kownacki/ui-satin.git",
11
+ "directory": "packages/ui"
12
+ },
8
13
  "homepage": "https://uisatin.dev",
14
+ "bugs": {
15
+ "url": "https://github.com/maciej-kownacki/ui-satin/issues"
16
+ },
9
17
  "keywords": [
10
18
  "satin",
11
19
  "design-system",
@@ -32,12 +40,25 @@
32
40
  },
33
41
  "./styles.css": "./styles.css",
34
42
  "./package.json": "./package.json",
43
+ "./theme": {
44
+ "types": "./theme/index.d.ts",
45
+ "import": "./theme/index.js",
46
+ "default": "./theme/index.js"
47
+ },
48
+ "./lib/utils": {
49
+ "types": "./lib/utils.d.ts",
50
+ "import": "./lib/utils.js",
51
+ "default": "./lib/utils.js"
52
+ },
35
53
  "./*": {
36
54
  "types": "./components/*.d.ts",
37
55
  "import": "./components/*.js",
38
56
  "default": "./components/*.js"
39
57
  }
40
58
  },
59
+ "engines": {
60
+ "node": ">=20.19"
61
+ },
41
62
  "peerDependencies": {
42
63
  "react": ">=19",
43
64
  "react-dom": ">=19"