@uisatin/ui 0.0.0-stage → 0.1.1

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 (334) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +67 -2
  3. package/chunk-2HKBZFIK.js +339 -0
  4. package/chunk-2HKBZFIK.js.map +1 -0
  5. package/chunk-3DINAQLL.js +153 -0
  6. package/chunk-3DINAQLL.js.map +1 -0
  7. package/chunk-3ERGAHKA.js +179 -0
  8. package/chunk-3ERGAHKA.js.map +1 -0
  9. package/chunk-6C7CGJX2.js +86 -0
  10. package/chunk-6C7CGJX2.js.map +1 -0
  11. package/chunk-6QMSWITQ.js +140 -0
  12. package/chunk-6QMSWITQ.js.map +1 -0
  13. package/chunk-6YXUBP27.js +474 -0
  14. package/chunk-6YXUBP27.js.map +1 -0
  15. package/chunk-72OCFAPT.js +175 -0
  16. package/chunk-72OCFAPT.js.map +1 -0
  17. package/chunk-7TXHCRAG.js +51 -0
  18. package/chunk-7TXHCRAG.js.map +1 -0
  19. package/chunk-A5XEM3GF.js +260 -0
  20. package/chunk-A5XEM3GF.js.map +1 -0
  21. package/chunk-AN2RNJLR.js +79 -0
  22. package/chunk-AN2RNJLR.js.map +1 -0
  23. package/chunk-B2K45IUR.js +36 -0
  24. package/chunk-B2K45IUR.js.map +1 -0
  25. package/chunk-B6V4VSGH.js +82 -0
  26. package/chunk-B6V4VSGH.js.map +1 -0
  27. package/chunk-BKZBWPUH.js +59 -0
  28. package/chunk-BKZBWPUH.js.map +1 -0
  29. package/chunk-BNTPPZCK.js +220 -0
  30. package/chunk-BNTPPZCK.js.map +1 -0
  31. package/chunk-BNZVTLHV.js +98 -0
  32. package/chunk-BNZVTLHV.js.map +1 -0
  33. package/chunk-CL2II6BX.js +89 -0
  34. package/chunk-CL2II6BX.js.map +1 -0
  35. package/chunk-D7RZNTFC.js +95 -0
  36. package/chunk-D7RZNTFC.js.map +1 -0
  37. package/chunk-DETGJAIC.js +147 -0
  38. package/chunk-DETGJAIC.js.map +1 -0
  39. package/chunk-DO3TBNSC.js +130 -0
  40. package/chunk-DO3TBNSC.js.map +1 -0
  41. package/chunk-ESC5JCVQ.js +90 -0
  42. package/chunk-ESC5JCVQ.js.map +1 -0
  43. package/chunk-FDKIX4DC.js +55 -0
  44. package/chunk-FDKIX4DC.js.map +1 -0
  45. package/chunk-GICKPMJU.js +239 -0
  46. package/chunk-GICKPMJU.js.map +1 -0
  47. package/chunk-GQA24FYG.js +57 -0
  48. package/chunk-GQA24FYG.js.map +1 -0
  49. package/chunk-H4NU7NPO.js +264 -0
  50. package/chunk-H4NU7NPO.js.map +1 -0
  51. package/chunk-H63FYCMY.js +11 -0
  52. package/chunk-H63FYCMY.js.map +1 -0
  53. package/chunk-HL42K2NH.js +76 -0
  54. package/chunk-HL42K2NH.js.map +1 -0
  55. package/chunk-HNQUX43Z.js +109 -0
  56. package/chunk-HNQUX43Z.js.map +1 -0
  57. package/chunk-HRKPV66B.js +32 -0
  58. package/chunk-HRKPV66B.js.map +1 -0
  59. package/chunk-J3NSDRVH.js +83 -0
  60. package/chunk-J3NSDRVH.js.map +1 -0
  61. package/chunk-JPNWHWAQ.js +151 -0
  62. package/chunk-JPNWHWAQ.js.map +1 -0
  63. package/chunk-KNUWZNFV.js +240 -0
  64. package/chunk-KNUWZNFV.js.map +1 -0
  65. package/chunk-L6NCCSIP.js +213 -0
  66. package/chunk-L6NCCSIP.js.map +1 -0
  67. package/chunk-LLHTVIM3.js +50 -0
  68. package/chunk-LLHTVIM3.js.map +1 -0
  69. package/chunk-LW3TRU5W.js +131 -0
  70. package/chunk-LW3TRU5W.js.map +1 -0
  71. package/chunk-LZMKSFCF.js +79 -0
  72. package/chunk-LZMKSFCF.js.map +1 -0
  73. package/chunk-MR3JDI7E.js +122 -0
  74. package/chunk-MR3JDI7E.js.map +1 -0
  75. package/chunk-NN6PKJWS.js +44 -0
  76. package/chunk-NN6PKJWS.js.map +1 -0
  77. package/chunk-NSRTTYQ4.js +252 -0
  78. package/chunk-NSRTTYQ4.js.map +1 -0
  79. package/chunk-O7F3CIDV.js +45 -0
  80. package/chunk-O7F3CIDV.js.map +1 -0
  81. package/chunk-P4O6TGDR.js +166 -0
  82. package/chunk-P4O6TGDR.js.map +1 -0
  83. package/chunk-PF3YBUKT.js +81 -0
  84. package/chunk-PF3YBUKT.js.map +1 -0
  85. package/chunk-PVOLDO4G.js +47 -0
  86. package/chunk-PVOLDO4G.js.map +1 -0
  87. package/chunk-QS4N4MNP.js +215 -0
  88. package/chunk-QS4N4MNP.js.map +1 -0
  89. package/chunk-QUF2IPOZ.js +98 -0
  90. package/chunk-QUF2IPOZ.js.map +1 -0
  91. package/chunk-RTJ76X5U.js +126 -0
  92. package/chunk-RTJ76X5U.js.map +1 -0
  93. package/chunk-SH6NG6VN.js +40 -0
  94. package/chunk-SH6NG6VN.js.map +1 -0
  95. package/chunk-SHDFUXYV.js +195 -0
  96. package/chunk-SHDFUXYV.js.map +1 -0
  97. package/chunk-TKO44NDI.js +84 -0
  98. package/chunk-TKO44NDI.js.map +1 -0
  99. package/chunk-TVLGZGYN.js +59 -0
  100. package/chunk-TVLGZGYN.js.map +1 -0
  101. package/chunk-TX3H3QMA.js +520 -0
  102. package/chunk-TX3H3QMA.js.map +1 -0
  103. package/chunk-UBNHSZSE.js +88 -0
  104. package/chunk-UBNHSZSE.js.map +1 -0
  105. package/chunk-UC3ZJWOD.js +73 -0
  106. package/chunk-UC3ZJWOD.js.map +1 -0
  107. package/chunk-UGRSWP6U.js +69 -0
  108. package/chunk-UGRSWP6U.js.map +1 -0
  109. package/chunk-VAGIAREV.js +214 -0
  110. package/chunk-VAGIAREV.js.map +1 -0
  111. package/chunk-WTMZT3IT.js +105 -0
  112. package/chunk-WTMZT3IT.js.map +1 -0
  113. package/chunk-WX6BP5ZP.js +39 -0
  114. package/chunk-WX6BP5ZP.js.map +1 -0
  115. package/chunk-X3PQANZO.js +255 -0
  116. package/chunk-X3PQANZO.js.map +1 -0
  117. package/chunk-XILQ7GXE.js +66 -0
  118. package/chunk-XILQ7GXE.js.map +1 -0
  119. package/chunk-XL75JRUA.js +130 -0
  120. package/chunk-XL75JRUA.js.map +1 -0
  121. package/chunk-XZNHT6MO.js +348 -0
  122. package/chunk-XZNHT6MO.js.map +1 -0
  123. package/chunk-Y5AYU7PK.js +44 -0
  124. package/chunk-Y5AYU7PK.js.map +1 -0
  125. package/chunk-YG7JOOLJ.js +28 -0
  126. package/chunk-YG7JOOLJ.js.map +1 -0
  127. package/chunk-YPJYW624.js +195 -0
  128. package/chunk-YPJYW624.js.map +1 -0
  129. package/chunk-YPNKBE5X.js +104 -0
  130. package/chunk-YPNKBE5X.js.map +1 -0
  131. package/chunk-YX5VNRJX.js +24 -0
  132. package/chunk-YX5VNRJX.js.map +1 -0
  133. package/components/accordion.d.ts +27 -0
  134. package/components/accordion.js +4 -0
  135. package/components/accordion.js.map +1 -0
  136. package/components/agent-loading.d.ts +65 -0
  137. package/components/agent-loading.js +4 -0
  138. package/components/agent-loading.js.map +1 -0
  139. package/components/agent-picker.d.ts +82 -0
  140. package/components/agent-picker.js +5 -0
  141. package/components/agent-picker.js.map +1 -0
  142. package/components/agent-suggestion.d.ts +69 -0
  143. package/components/agent-suggestion.js +6 -0
  144. package/components/agent-suggestion.js.map +1 -0
  145. package/components/announcement-bar.d.ts +39 -0
  146. package/components/announcement-bar.js +7 -0
  147. package/components/announcement-bar.js.map +1 -0
  148. package/components/attachment.d.ts +73 -0
  149. package/components/attachment.js +5 -0
  150. package/components/attachment.js.map +1 -0
  151. package/components/avatar.d.ts +34 -0
  152. package/components/avatar.js +6 -0
  153. package/components/avatar.js.map +1 -0
  154. package/components/badge.d.ts +19 -0
  155. package/components/badge.js +4 -0
  156. package/components/badge.js.map +1 -0
  157. package/components/banner-mesh.d.ts +11 -0
  158. package/components/banner-mesh.js +3 -0
  159. package/components/banner-mesh.js.map +1 -0
  160. package/components/banner.d.ts +50 -0
  161. package/components/banner.js +6 -0
  162. package/components/banner.js.map +1 -0
  163. package/components/bar-chart.d.ts +32 -0
  164. package/components/bar-chart.js +11 -0
  165. package/components/bar-chart.js.map +1 -0
  166. package/components/breadcrumb.d.ts +32 -0
  167. package/components/breadcrumb.js +6 -0
  168. package/components/breadcrumb.js.map +1 -0
  169. package/components/button.d.ts +32 -0
  170. package/components/button.js +4 -0
  171. package/components/button.js.map +1 -0
  172. package/components/card.d.ts +28 -0
  173. package/components/card.js +5 -0
  174. package/components/card.js.map +1 -0
  175. package/components/channel-chart.d.ts +14 -0
  176. package/components/channel-chart.js +11 -0
  177. package/components/channel-chart.js.map +1 -0
  178. package/components/chart.d.ts +88 -0
  179. package/components/chart.js +10 -0
  180. package/components/chart.js.map +1 -0
  181. package/components/checkbox.d.ts +17 -0
  182. package/components/checkbox.js +4 -0
  183. package/components/checkbox.js.map +1 -0
  184. package/components/chip.d.ts +54 -0
  185. package/components/chip.js +4 -0
  186. package/components/chip.js.map +1 -0
  187. package/components/citations.d.ts +37 -0
  188. package/components/citations.js +5 -0
  189. package/components/citations.js.map +1 -0
  190. package/components/code-block.d.ts +13 -0
  191. package/components/code-block.js +5 -0
  192. package/components/code-block.js.map +1 -0
  193. package/components/combobox.d.ts +58 -0
  194. package/components/combobox.js +10 -0
  195. package/components/combobox.js.map +1 -0
  196. package/components/command-menu.d.ts +54 -0
  197. package/components/command-menu.js +6 -0
  198. package/components/command-menu.js.map +1 -0
  199. package/components/context-menu.d.ts +46 -0
  200. package/components/context-menu.js +6 -0
  201. package/components/context-menu.js.map +1 -0
  202. package/components/cookie-consent.d.ts +26 -0
  203. package/components/cookie-consent.js +5 -0
  204. package/components/cookie-consent.js.map +1 -0
  205. package/components/date-picker.d.ts +112 -0
  206. package/components/date-picker.js +9 -0
  207. package/components/date-picker.js.map +1 -0
  208. package/components/decision-card.d.ts +65 -0
  209. package/components/decision-card.js +7 -0
  210. package/components/decision-card.js.map +1 -0
  211. package/components/dialog.d.ts +68 -0
  212. package/components/dialog.js +5 -0
  213. package/components/dialog.js.map +1 -0
  214. package/components/donut-chart.d.ts +20 -0
  215. package/components/donut-chart.js +11 -0
  216. package/components/donut-chart.js.map +1 -0
  217. package/components/dot.d.ts +21 -0
  218. package/components/dot.js +4 -0
  219. package/components/dot.js.map +1 -0
  220. package/components/dropdown.d.ts +74 -0
  221. package/components/dropdown.js +5 -0
  222. package/components/dropdown.js.map +1 -0
  223. package/components/empty-state.d.ts +25 -0
  224. package/components/empty-state.js +4 -0
  225. package/components/empty-state.js.map +1 -0
  226. package/components/file-upload.d.ts +78 -0
  227. package/components/file-upload.js +7 -0
  228. package/components/file-upload.js.map +1 -0
  229. package/components/floating.d.ts +30 -0
  230. package/components/floating.js +3 -0
  231. package/components/floating.js.map +1 -0
  232. package/components/form-field.d.ts +35 -0
  233. package/components/form-field.js +4 -0
  234. package/components/form-field.js.map +1 -0
  235. package/components/hover-card.d.ts +30 -0
  236. package/components/hover-card.js +4 -0
  237. package/components/hover-card.js.map +1 -0
  238. package/components/input-otp.d.ts +49 -0
  239. package/components/input-otp.js +8 -0
  240. package/components/input-otp.js.map +1 -0
  241. package/components/input.d.ts +28 -0
  242. package/components/input.js +5 -0
  243. package/components/input.js.map +1 -0
  244. package/components/kbd.d.ts +37 -0
  245. package/components/kbd.js +4 -0
  246. package/components/kbd.js.map +1 -0
  247. package/components/line-chart.d.ts +29 -0
  248. package/components/line-chart.js +12 -0
  249. package/components/line-chart.js.map +1 -0
  250. package/components/message-actions.d.ts +24 -0
  251. package/components/message-actions.js +5 -0
  252. package/components/message-actions.js.map +1 -0
  253. package/components/message.d.ts +40 -0
  254. package/components/message.js +8 -0
  255. package/components/message.js.map +1 -0
  256. package/components/number-input.d.ts +33 -0
  257. package/components/number-input.js +8 -0
  258. package/components/number-input.js.map +1 -0
  259. package/components/pagination.d.ts +45 -0
  260. package/components/pagination.js +6 -0
  261. package/components/pagination.js.map +1 -0
  262. package/components/popover.d.ts +44 -0
  263. package/components/popover.js +4 -0
  264. package/components/popover.js.map +1 -0
  265. package/components/progress.d.ts +24 -0
  266. package/components/progress.js +4 -0
  267. package/components/progress.js.map +1 -0
  268. package/components/prompt-bar.d.ts +63 -0
  269. package/components/prompt-bar.js +6 -0
  270. package/components/prompt-bar.js.map +1 -0
  271. package/components/radio.d.ts +27 -0
  272. package/components/radio.js +4 -0
  273. package/components/radio.js.map +1 -0
  274. package/components/search-bar.d.ts +20 -0
  275. package/components/search-bar.js +5 -0
  276. package/components/search-bar.js.map +1 -0
  277. package/components/segmented-control.d.ts +32 -0
  278. package/components/segmented-control.js +5 -0
  279. package/components/segmented-control.js.map +1 -0
  280. package/components/select.d.ts +97 -0
  281. package/components/select.js +7 -0
  282. package/components/select.js.map +1 -0
  283. package/components/sheet.d.ts +37 -0
  284. package/components/sheet.js +6 -0
  285. package/components/sheet.js.map +1 -0
  286. package/components/sidebar.d.ts +52 -0
  287. package/components/sidebar.js +4 -0
  288. package/components/sidebar.js.map +1 -0
  289. package/components/skeleton.d.ts +18 -0
  290. package/components/skeleton.js +4 -0
  291. package/components/skeleton.js.map +1 -0
  292. package/components/slider.d.ts +57 -0
  293. package/components/slider.js +8 -0
  294. package/components/slider.js.map +1 -0
  295. package/components/sliding-indicator.d.ts +23 -0
  296. package/components/sliding-indicator.js +3 -0
  297. package/components/sliding-indicator.js.map +1 -0
  298. package/components/streaming-text.d.ts +33 -0
  299. package/components/streaming-text.js +4 -0
  300. package/components/streaming-text.js.map +1 -0
  301. package/components/switch.d.ts +15 -0
  302. package/components/switch.js +4 -0
  303. package/components/switch.js.map +1 -0
  304. package/components/table.d.ts +57 -0
  305. package/components/table.js +5 -0
  306. package/components/table.js.map +1 -0
  307. package/components/tabs.d.ts +45 -0
  308. package/components/tabs.js +5 -0
  309. package/components/tabs.js.map +1 -0
  310. package/components/textarea.d.ts +30 -0
  311. package/components/textarea.js +5 -0
  312. package/components/textarea.js.map +1 -0
  313. package/components/thinking.d.ts +64 -0
  314. package/components/thinking.js +5 -0
  315. package/components/thinking.js.map +1 -0
  316. package/components/toast.d.ts +71 -0
  317. package/components/toast.js +5 -0
  318. package/components/toast.js.map +1 -0
  319. package/components/toggle.d.ts +30 -0
  320. package/components/toggle.js +4 -0
  321. package/components/toggle.js.map +1 -0
  322. package/components/tooltip.d.ts +35 -0
  323. package/components/tooltip.js +5 -0
  324. package/components/tooltip.js.map +1 -0
  325. package/index.d.ts +64 -0
  326. package/index.js +231 -0
  327. package/index.js.map +1 -0
  328. package/lib/utils.d.ts +3 -0
  329. package/lib/utils.js +3 -0
  330. package/lib/utils.js.map +1 -0
  331. package/package.json +54 -4
  332. package/styles.css +2 -0
  333. package/theme/create-theme.d.ts +44 -0
  334. package/theme/index.d.ts +1 -0
@@ -0,0 +1,112 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Calendar, DatePicker and DateRangePicker, 1:1 with the uiKit design (🆕 date picker).
4
+ *
5
+ * Calendar: one month (or two side by side), Monday first, weekdays as one letter in text/xs muted.
6
+ * Days are 36px in 40px cells, their numbers text/sm (13px) medium. A picked day is a primary circle; the two ends of a range are
7
+ * primary squares rounded radius-md, with a band in status/brand/bg — a tint of the brand —
8
+ * from the middle of the first to the middle of the last. While the end is being picked the day
9
+ * under the pointer gets a bg/hover circle and the band runs up to it. Today is a 12×2 primary
10
+ * dash under its number; days of other months are text/subtle.
11
+ *
12
+ * Header: "November 2026" in text/sm (13px) medium, with arrows, or (`header="picker"`) "‹ November ›" on the left and the
13
+ * year as a small Select on the right, newest first, the shown year checked. Always six weeks, so
14
+ * the height never jumps between months.
15
+ *
16
+ * Keyboard: the grid is one tab stop; arrows move a day or a week, Page Up / Down a month, Home /
17
+ * End the week, Enter or Space picks.
18
+ */
19
+ export type DateRange = {
20
+ from: Date | null;
21
+ to: Date | null;
22
+ };
23
+ export declare const formatDate: (d: Date) => string;
24
+ export declare const formatRange: ({ from, to }: DateRange) => string;
25
+ export interface CalendarProps {
26
+ mode?: 'single' | 'range';
27
+ /** single: the picked day. */
28
+ value?: Date | null;
29
+ onValueChange?: (value: Date) => void;
30
+ /** range: the picked range. */
31
+ range?: DateRange;
32
+ onRangeChange?: (range: DateRange) => void;
33
+ /** The first month shown. Defaults to the value's month, or today's. */
34
+ month?: Date;
35
+ onMonthChange?: (month: Date) => void;
36
+ /** Two months side by side (the range picker). */
37
+ months?: 1 | 2;
38
+ header?: 'title' | 'picker';
39
+ min?: Date;
40
+ max?: Date;
41
+ /** Today, for the dash. Defaults to now. */
42
+ today?: Date;
43
+ className?: string;
44
+ }
45
+ export declare function Calendar({ mode, value, onValueChange, range, onRangeChange, month: monthProp, onMonthChange, months, header, min, max, today: todayProp, className, }: CalendarProps): React.JSX.Element;
46
+ interface FieldBits {
47
+ label?: React.ReactNode;
48
+ hint?: React.ReactNode;
49
+ error?: React.ReactNode | boolean;
50
+ placeholder?: string;
51
+ disabled?: boolean;
52
+ id?: string;
53
+ size?: 'sm' | 'md' | 'lg';
54
+ /** Classes for the outer wrapper (label + field + hint). `className` styles the field. */
55
+ wrapperClassName?: string;
56
+ className?: string;
57
+ }
58
+ export interface DatePickerPanelProps {
59
+ value?: Date | null;
60
+ onValueChange?: (value: Date) => void;
61
+ min?: Date;
62
+ max?: Date;
63
+ today?: Date;
64
+ className?: string;
65
+ }
66
+ /** The date picker's panel on its own, in place: the popover surface with the Calendar, month and year to pick. */
67
+ export declare function DatePickerPanel({ value, onValueChange, min, max, today, className }: DatePickerPanelProps): React.JSX.Element;
68
+ export interface DatePickerProps extends FieldBits {
69
+ value?: Date | null;
70
+ defaultValue?: Date | null;
71
+ onValueChange?: (value: Date) => void;
72
+ min?: Date;
73
+ max?: Date;
74
+ today?: Date;
75
+ /** Portal target. */
76
+ container?: HTMLElement | null;
77
+ }
78
+ /** A date field: the kit Input's skin with a calendar icon; the Calendar opens 4px below, with month and year to pick. */
79
+ export declare function DatePicker({ value: valueProp, defaultValue, onValueChange, min, max, today, label, hint, error, placeholder, disabled, id, size, container, wrapperClassName, className, }: DatePickerProps): React.JSX.Element;
80
+ export interface DateRangePickerProps extends FieldBits {
81
+ value?: DateRange;
82
+ defaultValue?: DateRange;
83
+ /** Called on Apply. */
84
+ onValueChange?: (value: DateRange) => void;
85
+ min?: Date;
86
+ max?: Date;
87
+ today?: Date;
88
+ applyLabel?: string;
89
+ cancelLabel?: string;
90
+ container?: HTMLElement | null;
91
+ }
92
+ /**
93
+ * A range field: two months, Cancel and Apply in the footer. Picks wait for Apply. Picking an
94
+ * end before the start swaps them.
95
+ */
96
+ export declare function DateRangePicker({ value: valueProp, defaultValue, onValueChange, min, max, today, label, hint, error, placeholder, disabled, id, size, applyLabel, cancelLabel, container, wrapperClassName, className, }: DateRangePickerProps): React.JSX.Element;
97
+ export interface DateRangePickerPanelProps {
98
+ /** The range the panel starts from; picks stay in the panel until Apply. */
99
+ value?: DateRange;
100
+ /** Apply. */
101
+ onApply?: (value: DateRange) => void;
102
+ onCancel?: () => void;
103
+ min?: Date;
104
+ max?: Date;
105
+ today?: Date;
106
+ applyLabel?: string;
107
+ cancelLabel?: string;
108
+ className?: string;
109
+ }
110
+ /** The range picker's panel on its own, in place: two months, Cancel and Apply. */
111
+ export declare function DateRangePickerPanel({ value, onApply, onCancel, min, max, today, applyLabel, cancelLabel, className, }: DateRangePickerPanelProps): React.JSX.Element;
112
+ export {};
@@ -0,0 +1,9 @@
1
+ 'use client';export { Calendar, DatePicker, DatePickerPanel, DateRangePicker, DateRangePickerPanel, formatDate, formatRange } from '../chunk-XZNHT6MO.js';
2
+ import '../chunk-72OCFAPT.js';
3
+ import '../chunk-UBNHSZSE.js';
4
+ import '../chunk-3DINAQLL.js';
5
+ import '../chunk-BKZBWPUH.js';
6
+ import '../chunk-HNQUX43Z.js';
7
+ import '../chunk-H63FYCMY.js';
8
+ //# sourceMappingURL=date-picker.js.map
9
+ //# sourceMappingURL=date-picker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"date-picker.js"}
@@ -0,0 +1,65 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * DecisionCard, 1:1 with the uiKit `DecisionCard` set (3096:1626) and its `decisionItem` rows
4
+ * (3092:61608): one question an agent asks, its answers, and Skip / Continue.
5
+ *
6
+ * The card is 364 wide, bg/popover, border/default, radius-2xl, shadow-xs. The header is the
7
+ * medium 14/20 title with an optional step navigator (24px icon buttons around "1/3"); the
8
+ * footer is a tertiary Skip in text/muted and a primary Continue, 16px above and 12px below.
9
+ *
10
+ * - `radio` / `checkbox`: rows of 20px with 4px padding, hover bg action/secondary, 2px apart.
11
+ * - `chips`: wrapping 28px pills 6px apart; selected ones turn status/brand (fill, border, text).
12
+ * - `ranking`: 10px-radius rows with a grip, a rank dot (primary for #1) and the label. Drag to
13
+ * reorder, or Alt + Arrow keys; the dragged row lifts with border/strong and the md shadow.
14
+ * - `draft`: the agent's text in a bubble (radius-2xl, 4px top-left); Rewrite makes it editable.
15
+ * - `summary`: what the card collapses to once answered, with a Change action.
16
+ *
17
+ * Stepping between questions moves like Pagination: the new title and answers slide in 24px from
18
+ * the side of the step (from the right going forward), the old ones slide the other way and fade
19
+ * out a little faster, and the card eases to its new height, all 300 ms on the kit ease-out. The
20
+ * step navigator and the footer stay put. Stepping again mid-slide carries on from where things
21
+ * are. Under reduced motion the parts only cross-fade (150 ms) and the height snaps.
22
+ */
23
+ export type DecisionOption = {
24
+ value: string;
25
+ label: string;
26
+ /** 14px icon, used by `chips`. */
27
+ icon?: React.ReactNode;
28
+ };
29
+ export type DecisionValue = string | string[];
30
+ export interface DecisionCardProps extends Omit<React.ComponentProps<'div'>, 'title' | 'defaultValue' | 'onChange'> {
31
+ type?: 'radio' | 'checkbox' | 'chips' | 'ranking' | 'draft' | 'summary';
32
+ title: string;
33
+ /** "1/3". Shows the step navigator. */
34
+ step?: string;
35
+ onPreviousStep?: () => void;
36
+ onNextStep?: () => void;
37
+ /** A muted line under the title, e.g. "Select up to 5". */
38
+ hint?: string;
39
+ options?: DecisionOption[];
40
+ /**
41
+ * radio: the chosen value. checkbox / chips: the chosen values. ranking: every value in order.
42
+ * draft: the text. summary: the values to list.
43
+ */
44
+ value?: DecisionValue;
45
+ defaultValue?: DecisionValue;
46
+ onValueChange?: (value: DecisionValue) => void;
47
+ /** chips: how many can be picked. */
48
+ max?: number;
49
+ /** draft: the bold first line of the draft, e.g. the subject. */
50
+ draftTitle?: string;
51
+ onContinue?: (value: DecisionValue) => void;
52
+ onSkip?: () => void;
53
+ /** summary: reopens the question. */
54
+ onEdit?: () => void;
55
+ /** draft: called when Rewrite is pressed, after the field becomes editable. */
56
+ onRewrite?: () => void;
57
+ continueLabel?: string;
58
+ skipLabel?: string;
59
+ }
60
+ export declare function DecisionCard({ className, type, title, step, onPreviousStep, onNextStep, hint, options, value: valueProp, defaultValue, onValueChange, max, draftTitle, onContinue, onSkip, onEdit, onRewrite, continueLabel, skipLabel, ...props }: DecisionCardProps): React.JSX.Element;
61
+ /** A static `decisionItem` row in its hover state, for state sheets. */
62
+ export declare function DecisionItemPreview({ children, hover }: {
63
+ children: React.ReactNode;
64
+ hover?: boolean;
65
+ }): React.JSX.Element;
@@ -0,0 +1,7 @@
1
+ 'use client';export { DecisionCard, DecisionItemPreview } from '../chunk-TX3H3QMA.js';
2
+ import '../chunk-J3NSDRVH.js';
3
+ import '../chunk-FDKIX4DC.js';
4
+ import '../chunk-HNQUX43Z.js';
5
+ import '../chunk-H63FYCMY.js';
6
+ //# sourceMappingURL=decision-card.js.map
7
+ //# sourceMappingURL=decision-card.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"decision-card.js"}
@@ -0,0 +1,68 @@
1
+ import * as React from 'react';
2
+ import { Dialog as DialogPrimitive } from 'radix-ui';
3
+ /**
4
+ * Dialog, 1:1 with the uiKit `Dialog` set (465:66873): variant default or destructive.
5
+ * A 425px popover surface (min 360, max 560, never wider or taller than the screen less 16px a side; the body scrolls), radius-2xl, border/default, the shadcn `lg`
6
+ * shadow. Header 16 / 16 / 8 with a 14px medium title and a 13px muted description, a body
7
+ * 16px in with a 12px gap (body text, any content, an optional `DialogAlert`), then a
8
+ * right-aligned footer with 16px padding on both variants, on the same inset as the header and
9
+ * body. The close button is a 36px tertiary icon button 8px from the top-right corner.
10
+ *
11
+ * Built on the Radix Dialog. The destructive variant keeps the same primitive but takes
12
+ * `role="alertdialog"`, so screen readers announce it as an alert. Pass `container` to portal
13
+ * it into a positioned element (the docs stage) instead of the page; the dialog then centres
14
+ * inside that element rather than the viewport.
15
+ */
16
+ export type DialogVariant = 'default' | 'destructive';
17
+ export interface DialogProps {
18
+ open?: boolean;
19
+ defaultOpen?: boolean;
20
+ onOpenChange?: (open: boolean) => void;
21
+ /** Optional element that opens the dialog (rendered with `asChild`, so pass a Button). */
22
+ trigger?: React.ReactNode;
23
+ title: React.ReactNode;
24
+ description?: React.ReactNode;
25
+ variant?: DialogVariant;
26
+ /** A `DialogAlert` shown under the body, for a side effect the user must know about. */
27
+ alert?: React.ReactNode;
28
+ /** The actions on the right of the footer. Leave it out for a read-only dialog. */
29
+ footer?: React.ReactNode;
30
+ /** Figma's `footerSlot`: content on the left of the footer, e.g. a "Don't ask again" checkbox. */
31
+ footerStart?: React.ReactNode;
32
+ /** Body. A string renders as body text (13px, text/default). */
33
+ children?: React.ReactNode;
34
+ /** Show the close button in the corner. */
35
+ closeButton?: boolean;
36
+ /** Modal blocks the page and shows the overlay; turn it off for inline previews. */
37
+ modal?: boolean;
38
+ /** Portal target. Defaults to `document.body`. */
39
+ container?: HTMLElement | null;
40
+ /** Called when focus moves into the dialog on open; `preventDefault()` keeps it where it was. */
41
+ onOpenAutoFocus?: (event: Event) => void;
42
+ className?: string;
43
+ }
44
+ /** The X from Figma's close button (`icon` 16px, 1.25 stroke). */
45
+ export declare function CloseIcon(): React.JSX.Element;
46
+ export declare function Dialog({ open, defaultOpen, onOpenChange, trigger, title, description, variant, alert, footer, footerStart, children, closeButton, modal, container, onOpenAutoFocus, className, }: DialogProps): React.JSX.Element;
47
+ /** Wrap a footer button in this to make it close the dialog: `<DialogClose asChild><Button…/></DialogClose>`. */
48
+ export declare const DialogClose: React.ForwardRefExoticComponent<DialogPrimitive.DialogCloseProps & React.RefAttributes<HTMLButtonElement>>;
49
+ export type DialogAlertIntent = 'info' | 'success' | 'warning' | 'error';
50
+ /**
51
+ * Alert, 1:1 with the uiKit `Alert` set (475:27871): the inline notice inside a dialog.
52
+ * radius-xl, 16 / 12 padding, the intent's status bg, a 16px status icon in the intent's
53
+ * status fg, a 14px medium title over a 13px muted description, and an optional 28px close.
54
+ */
55
+ export interface DialogAlertProps extends Omit<React.ComponentProps<'div'>, 'title'> {
56
+ intent?: DialogAlertIntent;
57
+ title: React.ReactNode;
58
+ description?: React.ReactNode;
59
+ /** Hide the status icon. */
60
+ icon?: boolean;
61
+ /** Shows the close button; called when it is pressed. */
62
+ onDismiss?: () => void;
63
+ }
64
+ /** The four status glyphs from Figma (16px, 1.25 stroke), drawn in currentColor. */
65
+ export declare function StatusIcon({ intent }: {
66
+ intent: DialogAlertIntent;
67
+ }): React.JSX.Element;
68
+ export declare function DialogAlert({ intent, title, description, icon, onDismiss, className, ...props }: DialogAlertProps): React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ 'use client';export { CloseIcon, Dialog, DialogAlert, DialogClose, StatusIcon } from '../chunk-JPNWHWAQ.js';
2
+ import '../chunk-HNQUX43Z.js';
3
+ import '../chunk-H63FYCMY.js';
4
+ //# sourceMappingURL=dialog.js.map
5
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"dialog.js"}
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import { type ChartCardBaseProps } from './chart.js';
3
+ /**
4
+ * Donut chart, 1:1 with the uiKit `chart/donutCard` (4067:7096), in the shared ChartCard
5
+ * (chart.tsx).
6
+ *
7
+ * A 184px ring (20px thick) of chart/1–5 segments starting at 12 o'clock, a 2px gap between
8
+ * them, with the sum in the middle (text/xl semibold) over `centerLabel` in text/muted. The sum
9
+ * lives in the ring, so the card's summary shows only the range. Under the ring a legend of
10
+ * plain pills (swatch and label, the value is in the ring on hover) in two columns, 16 × 8 apart.
11
+ * From 560px the legend moves to the right of the ring as one column.
12
+ *
13
+ * Hover a segment or its pill (or set `highlight`): the other segments fade to 15%, the other
14
+ * pills' content to 45% (the hovered one fills bg/hover), and the middle shows the hovered value over "Label · 20%".
15
+ */
16
+ export interface DonutCardProps extends Omit<ChartCardBaseProps, 'total' | 'change'> {
17
+ /** Under the sum in the middle. */
18
+ centerLabel?: string;
19
+ }
20
+ export declare function DonutCard({ data, formatValue, highlight, centerLabel, ...props }: DonutCardProps): React.JSX.Element;
@@ -0,0 +1,11 @@
1
+ 'use client';export { DonutCard } from '../chunk-CL2II6BX.js';
2
+ import '../chunk-YPJYW624.js';
3
+ import '../chunk-Y5AYU7PK.js';
4
+ import '../chunk-72OCFAPT.js';
5
+ import '../chunk-UBNHSZSE.js';
6
+ import '../chunk-3DINAQLL.js';
7
+ import '../chunk-BKZBWPUH.js';
8
+ import '../chunk-O7F3CIDV.js';
9
+ import '../chunk-H63FYCMY.js';
10
+ //# sourceMappingURL=donut-chart.js.map
11
+ //# sourceMappingURL=donut-chart.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"donut-chart.js"}
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ export type DotTone = 'fuchsia' | 'sky' | 'plum' | 'green';
4
+ /**
5
+ * Dot, 1:1 with the uiKit `Dot` set (369:6759, page dotIndicator): a 16px box with an 8px
6
+ * indicator in the middle, in the tone's `tone/fg` colour. Solid is a filled circle; outline
7
+ * is the same 8px circle drawn with a 1px stroke inside it, nothing in the middle.
8
+ *
9
+ * With a `label` the dot is an image with that name; without one it is decorative and hidden
10
+ * from assistive tech (pair it with visible text, as the docs ask).
11
+ */
12
+ declare const dotVariants: (props?: ({
13
+ variant?: "outline" | "solid" | null | undefined;
14
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
+ export interface DotProps extends Omit<React.ComponentProps<'span'>, 'children'>, VariantProps<typeof dotVariants> {
16
+ tone?: DotTone;
17
+ /** Accessible name, e.g. "Running". Leave it out when visible text already says it. */
18
+ label?: string;
19
+ }
20
+ export declare function Dot({ className, tone, variant, label, ...props }: DotProps): React.JSX.Element;
21
+ export { dotVariants };
@@ -0,0 +1,4 @@
1
+ 'use client';export { Dot, dotVariants } from '../chunk-B2K45IUR.js';
2
+ import '../chunk-H63FYCMY.js';
3
+ //# sourceMappingURL=dot.js.map
4
+ //# sourceMappingURL=dot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"dot.js"}
@@ -0,0 +1,74 @@
1
+ import * as React from 'react';
2
+ import { DropdownMenu as DropdownPrimitive } from 'radix-ui';
3
+ /**
4
+ * DropdownMenu, 1:1 with the uiKit `DropdownMenu` (654:19150) and `DropdownMenu/Item`
5
+ * (653:19165) sets. A 255px popover surface (max 520), 4px padding, radius-xl,
6
+ * border/subtle, the shadcn `sm` shadow. Items are at least 32px high, 12px in, 6px top and
7
+ * bottom, radius-lg, with an 8px gap between a 16px leading icon (text/muted), the content and
8
+ * a trailing check (status green) when selected. An optional `shortcut` shows its keys (Kbd sm)
9
+ * before the check. Hover, keyboard highlight and selected fill
10
+ * bg/selected.
11
+ *
12
+ * Groups: `DropdownMenuGroup`. Content: a 14px medium label (20px line). `stacked` puts the
13
+ * description under it, 2px apart, at 13px / 18px in text/muted; `inline` puts it on the same
14
+ * baseline 12px after the label, at 13px, truncated. Groups have a 24px header in 12px
15
+ * text/subtle and are 4px apart with a 1px bg/muted rule between them. Items are 4px apart.
16
+ *
17
+ * Built on the Radix DropdownMenu: arrow keys, typeahead, Escape, focus return.
18
+ */
19
+ /** The popover surface menus share: radius-xl, border/subtle, bg/popover, the shadcn `sm` shadow. */
20
+ export declare const menuSurfaceClass: string;
21
+ /** A group of rows, with a 1px bg/muted rule under every group but the last. */
22
+ export declare const menuGroupClass = "flex flex-col gap-1 not-last:after:block not-last:after:h-px not-last:after:bg-bg-muted";
23
+ /** The 24px group header in 12px text/subtle. */
24
+ export declare const menuGroupLabelClass = "flex h-6 items-center px-3 text-xs leading-3 tracking-normal text-text-subtle";
25
+ export interface DropdownMenuProps {
26
+ /** The element that opens the menu. Rendered with `asChild`, so pass a Button. */
27
+ trigger: React.ReactNode;
28
+ /** `DropdownMenuItem`s, optionally inside `DropdownMenuGroup`s. */
29
+ children: React.ReactNode;
30
+ open?: boolean;
31
+ defaultOpen?: boolean;
32
+ onOpenChange?: (open: boolean) => void;
33
+ /** Modal menus block the rest of the page while open. */
34
+ modal?: boolean;
35
+ side?: 'top' | 'right' | 'bottom' | 'left';
36
+ align?: 'start' | 'center' | 'end';
37
+ sideOffset?: number;
38
+ /** Portal target. Defaults to `document.body`. */
39
+ container?: HTMLElement | null;
40
+ /** Accessible name for the menu, when the trigger's text doesn't say enough. */
41
+ 'aria-label'?: string;
42
+ /** Focus moved outside a non-modal menu; call `preventDefault()` to keep it open. */
43
+ onFocusOutside?: (event: Event) => void;
44
+ className?: string;
45
+ }
46
+ export declare function DropdownMenu({ trigger, children, open, defaultOpen, onOpenChange, modal, side, align, sideOffset, container, onFocusOutside, className, ...props }: DropdownMenuProps): React.JSX.Element;
47
+ export interface DropdownMenuGroupProps extends React.ComponentProps<typeof DropdownPrimitive.Group> {
48
+ /** The 24px group header. */
49
+ label?: React.ReactNode;
50
+ }
51
+ /** A titled group of items (Figma `_dropdown/group`). Groups get a rule between them. */
52
+ export declare function DropdownMenuGroup({ label, children, className, ...props }: DropdownMenuGroupProps): React.JSX.Element;
53
+ /** The row skin every menu shares: Dropdown, Select, Combobox and the Command menu. */
54
+ export declare const menuItemClass: string;
55
+ export interface MenuItemContentProps {
56
+ label: React.ReactNode;
57
+ description?: React.ReactNode;
58
+ /** Leading icon. 16px by default; stacked two-line items may use 20px (`iconSize={20}`). */
59
+ icon?: React.ReactNode;
60
+ iconSize?: 16 | 20;
61
+ /** Marks the current value: a trailing check. */
62
+ selected?: boolean;
63
+ layout?: 'stacked' | 'inline';
64
+ /** Keys that run the item, e.g. "⌘N", shown on the right (Figma's `showShortcut`). */
65
+ shortcut?: string;
66
+ /** Wraps the label, e.g. in Radix Select's `ItemText`. */
67
+ renderLabel?: (label: React.ReactNode) => React.ReactNode;
68
+ }
69
+ /** What sits inside a menu row: icon, label and description, then shortcut and check. */
70
+ export declare function MenuItemContent({ label, description, icon, iconSize, selected, layout, shortcut, renderLabel, }: MenuItemContentProps): React.JSX.Element;
71
+ export interface DropdownMenuItemProps extends Omit<React.ComponentProps<typeof DropdownPrimitive.Item>, 'children'>, Omit<MenuItemContentProps, 'label' | 'renderLabel'> {
72
+ label: string;
73
+ }
74
+ export declare function DropdownMenuItem({ label, description, icon, iconSize, selected, layout, shortcut, className, ...props }: DropdownMenuItemProps): React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ 'use client';export { DropdownMenu, DropdownMenuGroup, DropdownMenuItem, MenuItemContent, menuGroupClass, menuGroupLabelClass, menuItemClass, menuSurfaceClass } from '../chunk-3DINAQLL.js';
2
+ import '../chunk-BKZBWPUH.js';
3
+ import '../chunk-H63FYCMY.js';
4
+ //# sourceMappingURL=dropdown.js.map
5
+ //# sourceMappingURL=dropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"dropdown.js"}
@@ -0,0 +1,25 @@
1
+ import * as React from 'react';
2
+ import { type VariantProps } from 'class-variance-authority';
3
+ /**
4
+ * EmptyState, 1:1 with the uiKit `EmptyState` set (852:51897) and its `_buttonGroup`
5
+ * (852:51922): a centred column 350 wide (320–560), padding 16 / 16 / 20, 16 apart, radius-2xl.
6
+ *
7
+ * - icon: a 16px glyph in text/default on a bg/muted tile, 10 padding, radius-lg (36 square).
8
+ * - title in text/lg medium (16/24), description in Body/lg (14/21) text/muted, 8 apart, centred.
9
+ * - actions: a row of Buttons 8 apart: Primary + Secondary, Secondary alone, or a Tertiary
10
+ * "Learn more" with a trailing arrow. Pass them as `<Button>` elements.
11
+ * - border: ghost (none), dashed or outline, both 1px border/default.
12
+ */
13
+ declare const emptyStateVariants: (props?: ({
14
+ border?: "dashed" | "ghost" | "outline" | null | undefined;
15
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
16
+ export interface EmptyStateProps extends Omit<React.ComponentProps<'div'>, 'title'>, VariantProps<typeof emptyStateVariants> {
17
+ title: React.ReactNode;
18
+ description?: React.ReactNode;
19
+ /** A 16px icon, e.g. from iconoir-react. */
20
+ icon?: React.ReactNode;
21
+ /** One or two Buttons. */
22
+ actions?: React.ReactNode;
23
+ }
24
+ export declare function EmptyState({ className, border, title, description, icon, actions, ...props }: EmptyStateProps): React.JSX.Element;
25
+ export { emptyStateVariants };
@@ -0,0 +1,4 @@
1
+ 'use client';export { EmptyState, emptyStateVariants } from '../chunk-WX6BP5ZP.js';
2
+ import '../chunk-H63FYCMY.js';
3
+ //# sourceMappingURL=empty-state.js.map
4
+ //# sourceMappingURL=empty-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"empty-state.js"}
@@ -0,0 +1,78 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * FileUpload, 1:1 with the uiKit `FileUpload` set (4068:3717), its `FileUploadItem` rows
4
+ * (4068:3453) and the `fileUpload/_icon` mark (4068:3405).
5
+ *
6
+ * The drop zone is the dashed EmptyState: a 40px bg/muted tile with a filled file and an up
7
+ * arrow, the title (text/base medium), what it takes (Body/md, text/muted) and Browse files
8
+ * (secondary), 16 apart, 32 / 24 in, radius-2xl. While files are dragged over it the zone fills
9
+ * bg/hover with a status/brand dashed border, the tile turns bg/card, the title says "Drop to
10
+ * upload" and Browse files is disabled.
11
+ *
12
+ * Under the zone, 8 apart, one row per file the app is handling (`files`):
13
+ * - uploading: the type icon on a 36px tile, the name and "1.0 of 2.4 MB · 40%" over a small
14
+ * Progress (indeterminate while `progress` is left out), Cancel on the right.
15
+ * - error: status/red ground and border, a red warning mark, the name, what went wrong, Remove.
16
+ * - done: the file as an lg Attachment, full width, one under another.
17
+ *
18
+ * Dropping or browsing checks every file against `accept` and `maxSize`. What passes goes to
19
+ * `onFilesAdded`; what fails goes to `onFilesRejected` with the reason, so the app can show it
20
+ * as an error row. The upload itself is the app's: it keeps `files` up to date.
21
+ */
22
+ export type FileUploadStatus = 'uploading' | 'error' | 'done';
23
+ export interface FileUploadFile {
24
+ id: string;
25
+ name: string;
26
+ /** In bytes; feeds "1.0 of 2.4 MB" and the attachment's meta. */
27
+ size?: number;
28
+ status: FileUploadStatus;
29
+ /** 0–100 while uploading; left out, the bar runs indeterminate and the meta says "Waiting…". */
30
+ progress?: number;
31
+ /** What went wrong, for `error`. */
32
+ error?: React.ReactNode;
33
+ /** Type icon; picked from the name when left out. */
34
+ icon?: React.ReactNode;
35
+ }
36
+ export interface FileUploadRejection {
37
+ file: File;
38
+ reason: 'type' | 'size';
39
+ /** A ready message, e.g. "Type not supported" or "Larger than 10 MB". */
40
+ message: string;
41
+ }
42
+ export interface FileUploadProps extends Omit<React.ComponentProps<'div'>, 'title' | 'onDrop'> {
43
+ files?: FileUploadFile[];
44
+ /** As on `<input type="file">`: MIME types, `image/*` or extensions, comma separated. */
45
+ accept?: string;
46
+ /** Largest file, in bytes. */
47
+ maxSize?: number;
48
+ multiple?: boolean;
49
+ disabled?: boolean;
50
+ title?: React.ReactNode;
51
+ /** Shown while files are dragged over the zone. */
52
+ dropTitle?: React.ReactNode;
53
+ /** What the zone takes, e.g. "PDF, images, CSV · up to 10 MB". */
54
+ description?: React.ReactNode;
55
+ browseLabel?: string;
56
+ /** Called instead of opening the file picker (demos, or an app that brings its own picker). */
57
+ onBrowse?: () => void;
58
+ onFilesAdded?: (files: File[]) => void;
59
+ onFilesRejected?: (rejections: FileUploadRejection[]) => void;
60
+ /** Cancel on an uploading row. */
61
+ onCancel?: (file: FileUploadFile) => void;
62
+ /** Remove on an error row or a done chip. */
63
+ onRemove?: (file: FileUploadFile) => void;
64
+ onOpen?: (file: FileUploadFile) => void;
65
+ /** Shows the drag-over look (state sheets, docs). */
66
+ 'data-force'?: 'drag';
67
+ }
68
+ export declare const formatBytes: (n: number) => string;
69
+ /** The type icon for a file name: PDF, spreadsheet, or a plain page. */
70
+ export declare function fileIconFor(name: string): React.JSX.Element;
71
+ export declare function FileUpload({ files, accept, maxSize, multiple, disabled, title, dropTitle, description, browseLabel, onBrowse, onFilesAdded, onFilesRejected, onCancel, onRemove, onOpen, className, ...props }: FileUploadProps): React.JSX.Element;
72
+ /** One file while it uploads or after it failed (FileUploadItem 4068:3453). */
73
+ export declare function FileUploadItem({ file, onCancel, onRemove, className, }: {
74
+ file: FileUploadFile;
75
+ onCancel?: (file: FileUploadFile) => void;
76
+ onRemove?: (file: FileUploadFile) => void;
77
+ className?: string;
78
+ }): React.JSX.Element;
@@ -0,0 +1,7 @@
1
+ 'use client';export { FileUpload, FileUploadItem, fileIconFor, formatBytes } from '../chunk-GICKPMJU.js';
2
+ import '../chunk-7TXHCRAG.js';
3
+ import '../chunk-H4NU7NPO.js';
4
+ import '../chunk-HNQUX43Z.js';
5
+ import '../chunk-H63FYCMY.js';
6
+ //# sourceMappingURL=file-upload.js.map
7
+ //# sourceMappingURL=file-upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"file-upload.js"}
@@ -0,0 +1,30 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Anchored positioning for anything that floats next to an element: tooltips, chart
4
+ * tooltips, small hints. Built on Floating UI (the engine Radix uses for Tooltip, Popover and
5
+ * DropdownMenu), so every floating layer in Satin keeps the same rules:
6
+ *
7
+ * - it renders in a portal on `body`, so a card's `overflow: hidden` never cuts it off;
8
+ * - it flips to the other side when there's no room and slides along the edge to stay
9
+ * 8px inside the viewport;
10
+ * - its pointer follows the anchor when it slides;
11
+ * - it follows the anchor on scroll and resize.
12
+ */
13
+ export type FloatingSide = 'top' | 'right' | 'bottom' | 'left';
14
+ export interface FloatingProps {
15
+ /** The element it points at. Nothing renders while it's null. */
16
+ anchor: Element | null;
17
+ side?: FloatingSide;
18
+ /** Gap between the anchor and the layer, pointer included. */
19
+ sideOffset?: number;
20
+ /** How close to the viewport edge it may go. */
21
+ collisionPadding?: number;
22
+ className?: string;
23
+ /** Gets the side it ended up on and the pointer's props (ref and position). */
24
+ children: (state: {
25
+ side: FloatingSide;
26
+ arrowRef: React.RefObject<HTMLElement | null>;
27
+ arrowStyle: React.CSSProperties;
28
+ }) => React.ReactNode;
29
+ }
30
+ export declare function Floating({ anchor, side, sideOffset, collisionPadding, className, children }: FloatingProps): React.ReactPortal | null;
@@ -0,0 +1,3 @@
1
+ 'use client';export { Floating } from '../chunk-Y5AYU7PK.js';
2
+ //# sourceMappingURL=floating.js.map
3
+ //# sourceMappingURL=floating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"floating.js"}
@@ -0,0 +1,35 @@
1
+ import * as React from 'react';
2
+ /**
3
+ * Form field, 1:1 with the uiKit `FormField` set (3649:17775): a label, a control slot, then a
4
+ * description or, when `error` is set, an error message in its place. Vertical puts the label
5
+ * 8px above the control; horizontal puts it in a 160px column, 24px to the left. Description
6
+ * and error sit 6px under the control. Disabled dims the label and description to 50% and
7
+ * disables the control.
8
+ *
9
+ * The control is wired through context: Input and Textarea pick up the field's id (so the
10
+ * label points at them), `aria-describedby` (description or error), `aria-invalid` and
11
+ * `disabled`. Any other control can read the same values with `useFormField()`.
12
+ */
13
+ export interface FormFieldContextValue {
14
+ id: string;
15
+ describedBy?: string;
16
+ invalid: boolean;
17
+ disabled: boolean;
18
+ required: boolean;
19
+ }
20
+ /** The id, describedby, invalid, disabled and required of the surrounding FormField, if any. */
21
+ export declare function useFormField(): FormFieldContextValue | null;
22
+ export interface FormFieldProps extends Omit<React.ComponentProps<'div'>, 'children'> {
23
+ label: React.ReactNode;
24
+ description?: React.ReactNode;
25
+ /** An error message. It replaces the description and marks the control invalid. */
26
+ error?: React.ReactNode;
27
+ layout?: 'vertical' | 'horizontal';
28
+ disabled?: boolean;
29
+ /** Shows the required mark after the label and sets `required` on the control. */
30
+ required?: boolean;
31
+ /** The id given to the control. Generated when left out. */
32
+ htmlFor?: string;
33
+ children: React.ReactNode;
34
+ }
35
+ export declare function FormField({ label, description, error, layout, disabled, required, htmlFor, className, children, ...props }: FormFieldProps): React.JSX.Element;