@crisp-ui-kit/crisp 0.2.0 → 0.7.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 (590) hide show
  1. package/README.md +20 -0
  2. package/dist/accordion.css +9 -1
  3. package/dist/appshell.css +12 -4
  4. package/dist/authshell.css +57 -0
  5. package/dist/authshell.d.ts +7 -0
  6. package/dist/avatargroup.css +2 -2
  7. package/dist/badge.css +4 -4
  8. package/dist/barchart.css +13 -5
  9. package/dist/base.css +25 -0
  10. package/dist/board.css +9 -1
  11. package/dist/bulkbar.css +11 -3
  12. package/dist/button.css +16 -2
  13. package/dist/button.d.ts +2 -1
  14. package/dist/card.css +8 -0
  15. package/dist/checkbox.css +17 -1
  16. package/dist/cjs/components/accordion/accordion.js +69 -0
  17. package/dist/cjs/components/accordion/accordion.recipe.js +26 -0
  18. package/dist/cjs/components/accordion/index.js +7 -0
  19. package/dist/cjs/components/avatar/avatar.js +44 -0
  20. package/dist/cjs/components/avatar/avatar.recipe.js +42 -0
  21. package/dist/cjs/components/avatar/index.js +7 -0
  22. package/dist/cjs/components/avatargroup/avatargroup.js +52 -0
  23. package/dist/cjs/components/avatargroup/avatargroup.recipe.js +18 -0
  24. package/dist/cjs/components/avatargroup/index.js +7 -0
  25. package/dist/cjs/components/badge/badge.js +44 -0
  26. package/dist/cjs/components/badge/badge.recipe.js +68 -0
  27. package/dist/cjs/components/badge/index.js +7 -0
  28. package/dist/cjs/components/barchart/barchart.js +45 -0
  29. package/dist/cjs/components/barchart/barchart.recipe.js +34 -0
  30. package/dist/cjs/components/barchart/index.js +7 -0
  31. package/dist/cjs/components/breadcrumb/breadcrumb.js +53 -0
  32. package/dist/cjs/components/breadcrumb/breadcrumb.recipe.js +21 -0
  33. package/dist/cjs/components/breadcrumb/index.js +7 -0
  34. package/dist/cjs/components/bulkbar/bulkbar.js +53 -0
  35. package/dist/cjs/components/bulkbar/bulkbar.recipe.js +31 -0
  36. package/dist/cjs/components/bulkbar/index.js +8 -0
  37. package/dist/cjs/components/button/button.js +62 -0
  38. package/dist/cjs/components/button/button.recipe.js +58 -0
  39. package/dist/cjs/components/button/index.js +7 -0
  40. package/dist/cjs/components/callout/callout.js +25 -0
  41. package/dist/cjs/components/callout/callout.recipe.js +29 -0
  42. package/dist/cjs/components/callout/index.js +7 -0
  43. package/dist/cjs/components/card/card.js +54 -0
  44. package/dist/cjs/components/card/card.recipe.js +31 -0
  45. package/dist/cjs/components/card/index.js +10 -0
  46. package/dist/cjs/components/checkbox/checkbox.js +56 -0
  47. package/dist/cjs/components/checkbox/checkbox.recipe.js +34 -0
  48. package/dist/cjs/components/checkbox/index.js +7 -0
  49. package/dist/cjs/components/columncalc/columncalc.js +139 -0
  50. package/dist/cjs/components/columncalc/columncalc.recipe.js +33 -0
  51. package/dist/cjs/components/columncalc/index.js +10 -0
  52. package/dist/cjs/components/contextmenu/contextmenu.js +78 -0
  53. package/dist/cjs/components/contextmenu/contextmenu.recipe.js +24 -0
  54. package/dist/cjs/components/contextmenu/index.js +7 -0
  55. package/dist/cjs/components/datatable/datatable.js +508 -0
  56. package/dist/cjs/components/datatable/datatable.recipe.js +113 -0
  57. package/dist/cjs/components/datatable/index.js +7 -0
  58. package/dist/cjs/components/datepicker/datepicker.js +153 -0
  59. package/dist/cjs/components/datepicker/datepicker.recipe.js +180 -0
  60. package/dist/cjs/components/datepicker/index.js +19 -0
  61. package/dist/cjs/components/datepickerfield/datepickerfield.js +85 -0
  62. package/dist/cjs/components/datepickerfield/datepickerfield.recipe.js +44 -0
  63. package/dist/cjs/components/datepickerfield/index.js +7 -0
  64. package/dist/cjs/components/dialog/dialog.js +86 -0
  65. package/dist/cjs/components/dialog/dialog.recipe.js +35 -0
  66. package/dist/cjs/components/dialog/index.js +9 -0
  67. package/dist/cjs/components/divider/divider.js +10 -0
  68. package/dist/cjs/components/divider/divider.recipe.js +17 -0
  69. package/dist/cjs/components/divider/index.js +7 -0
  70. package/dist/cjs/components/donutchart/donutchart.js +41 -0
  71. package/dist/cjs/components/donutchart/donutchart.recipe.js +30 -0
  72. package/dist/cjs/components/donutchart/index.js +7 -0
  73. package/dist/cjs/components/drawer/drawer.js +80 -0
  74. package/dist/cjs/components/drawer/drawer.recipe.js +30 -0
  75. package/dist/cjs/components/drawer/index.js +9 -0
  76. package/dist/cjs/components/emptystate/emptystate.js +10 -0
  77. package/dist/cjs/components/emptystate/emptystate.recipe.js +34 -0
  78. package/dist/cjs/components/emptystate/index.js +7 -0
  79. package/dist/cjs/components/formfield/formfield.js +50 -0
  80. package/dist/cjs/components/formfield/formfield.recipe.js +22 -0
  81. package/dist/cjs/components/formfield/index.js +7 -0
  82. package/dist/cjs/components/input/index.js +7 -0
  83. package/dist/cjs/components/input/input.js +47 -0
  84. package/dist/cjs/components/input/input.recipe.js +59 -0
  85. package/dist/cjs/components/kbd/index.js +7 -0
  86. package/dist/cjs/components/kbd/kbd.js +44 -0
  87. package/dist/cjs/components/kbd/kbd.recipe.js +23 -0
  88. package/dist/cjs/components/linechart/index.js +7 -0
  89. package/dist/cjs/components/linechart/linechart.js +57 -0
  90. package/dist/cjs/components/linechart/linechart.recipe.js +35 -0
  91. package/dist/cjs/components/menu/index.js +14 -0
  92. package/dist/cjs/components/menu/menu-keyboard.js +117 -0
  93. package/dist/cjs/components/menu/menu.js +144 -0
  94. package/dist/cjs/components/menu/menu.recipe.js +54 -0
  95. package/dist/cjs/components/multiselect/index.js +7 -0
  96. package/dist/cjs/components/multiselect/multiselect.js +161 -0
  97. package/dist/cjs/components/multiselect/multiselect.recipe.js +71 -0
  98. package/dist/cjs/components/popover/index.js +7 -0
  99. package/dist/cjs/components/popover/popover.js +106 -0
  100. package/dist/cjs/components/popover/popover.recipe.js +21 -0
  101. package/dist/cjs/components/progress/index.js +7 -0
  102. package/dist/cjs/components/progress/progress.js +26 -0
  103. package/dist/cjs/components/progress/progress.recipe.js +20 -0
  104. package/dist/cjs/components/radiogroup/index.js +8 -0
  105. package/dist/cjs/components/radiogroup/radiogroup.js +83 -0
  106. package/dist/cjs/components/radiogroup/radiogroup.recipe.js +40 -0
  107. package/dist/cjs/components/resizablepanel/index.js +12 -0
  108. package/dist/cjs/components/resizablepanel/resizablepanel.js +176 -0
  109. package/dist/cjs/components/resizablepanel/resizablepanel.recipe.js +69 -0
  110. package/dist/cjs/components/segmented/index.js +7 -0
  111. package/dist/cjs/components/segmented/segmented.js +95 -0
  112. package/dist/cjs/components/segmented/segmented.recipe.js +23 -0
  113. package/dist/cjs/components/select/index.js +7 -0
  114. package/dist/cjs/components/select/select.js +180 -0
  115. package/dist/cjs/components/select/select.recipe.js +79 -0
  116. package/dist/cjs/components/skeleton/index.js +7 -0
  117. package/dist/cjs/components/skeleton/skeleton.js +13 -0
  118. package/dist/cjs/components/skeleton/skeleton.recipe.js +17 -0
  119. package/dist/cjs/components/spinner/index.js +7 -0
  120. package/dist/cjs/components/spinner/spinner.js +15 -0
  121. package/dist/cjs/components/spinner/spinner.recipe.js +16 -0
  122. package/dist/cjs/components/stagebar/index.js +7 -0
  123. package/dist/cjs/components/stagebar/stagebar.js +26 -0
  124. package/dist/cjs/components/stagebar/stagebar.recipe.js +17 -0
  125. package/dist/cjs/components/statcard/index.js +7 -0
  126. package/dist/cjs/components/statcard/statcard.js +15 -0
  127. package/dist/cjs/components/statcard/statcard.recipe.js +37 -0
  128. package/dist/cjs/components/switch/index.js +7 -0
  129. package/dist/cjs/components/switch/switch.js +58 -0
  130. package/dist/cjs/components/switch/switch.recipe.js +29 -0
  131. package/dist/cjs/components/table/index.js +14 -0
  132. package/dist/cjs/components/table/table.js +66 -0
  133. package/dist/cjs/components/table/table.recipe.js +43 -0
  134. package/dist/cjs/components/tabletoolbar/index.js +20 -0
  135. package/dist/cjs/components/tabletoolbar/tabletoolbar.chrome.js +84 -0
  136. package/dist/cjs/components/tabletoolbar/tabletoolbar.js +237 -0
  137. package/dist/cjs/components/tabletoolbar/tabletoolbar.recipe.js +26 -0
  138. package/dist/cjs/components/tabs/index.js +7 -0
  139. package/dist/cjs/components/tabs/tabs.js +106 -0
  140. package/dist/cjs/components/tabs/tabs.recipe.js +36 -0
  141. package/dist/cjs/components/textarea/index.js +7 -0
  142. package/dist/cjs/components/textarea/textarea.js +56 -0
  143. package/dist/cjs/components/textarea/textarea.recipe.js +46 -0
  144. package/dist/cjs/components/toast/index.js +8 -0
  145. package/dist/cjs/components/toast/toast.js +95 -0
  146. package/dist/cjs/components/toast/toast.recipe.js +31 -0
  147. package/dist/cjs/components/tooltip/index.js +7 -0
  148. package/dist/cjs/components/tooltip/tooltip.js +95 -0
  149. package/dist/cjs/components/tooltip/tooltip.recipe.js +16 -0
  150. package/dist/cjs/components/wheelpicker/index.js +7 -0
  151. package/dist/cjs/components/wheelpicker/wheelpicker.js +134 -0
  152. package/dist/cjs/components/wheelpicker/wheelpicker.recipe.js +95 -0
  153. package/dist/cjs/core/cx.js +8 -0
  154. package/dist/cjs/core/define.js +6 -0
  155. package/dist/cjs/core/index.js +11 -0
  156. package/dist/cjs/core/primitive.js +49 -0
  157. package/dist/cjs/core/resolve.js +44 -0
  158. package/dist/cjs/core/types.js +2 -0
  159. package/dist/cjs/index.js +92 -0
  160. package/dist/cjs/package.json +3 -0
  161. package/dist/cjs/product/appshell/appshell.js +104 -0
  162. package/dist/cjs/product/appshell/appshell.recipe.js +30 -0
  163. package/dist/cjs/product/appshell/index.js +7 -0
  164. package/dist/cjs/product/authshell/authshell.js +21 -0
  165. package/dist/cjs/product/authshell/authshell.recipe.js +67 -0
  166. package/dist/cjs/product/authshell/index.js +7 -0
  167. package/dist/cjs/product/board/board.js +78 -0
  168. package/dist/cjs/product/board/board.recipe.js +31 -0
  169. package/dist/cjs/product/board/index.js +7 -0
  170. package/dist/cjs/product/command/command.js +238 -0
  171. package/dist/cjs/product/command/command.recipe.js +47 -0
  172. package/dist/cjs/product/command/index.js +8 -0
  173. package/dist/cjs/product/entitycard/entitycard.js +14 -0
  174. package/dist/cjs/product/entitycard/entitycard.recipe.js +32 -0
  175. package/dist/cjs/product/entitycard/index.js +7 -0
  176. package/dist/cjs/product/flowcanvas/flowcanvas.js +121 -0
  177. package/dist/cjs/product/flowcanvas/flowcanvas.recipe.js +28 -0
  178. package/dist/cjs/product/flowcanvas/index.js +7 -0
  179. package/dist/cjs/product/inbox/inbox.js +16 -0
  180. package/dist/cjs/product/inbox/inbox.recipe.js +46 -0
  181. package/dist/cjs/product/inbox/index.js +7 -0
  182. package/dist/cjs/product/listpage/index.js +8 -0
  183. package/dist/cjs/product/listpage/listpage.js +25 -0
  184. package/dist/cjs/product/listpage/listpage.recipe.js +46 -0
  185. package/dist/cjs/product/navitem/index.js +5 -0
  186. package/dist/cjs/product/navitem/navitem.js +44 -0
  187. package/dist/cjs/product/navitem/navitem.recipe.js +36 -0
  188. package/dist/cjs/product/onboarding/index.js +7 -0
  189. package/dist/cjs/product/onboarding/onboarding.js +17 -0
  190. package/dist/cjs/product/onboarding/onboarding.recipe.js +44 -0
  191. package/dist/cjs/product/recordpage/index.js +7 -0
  192. package/dist/cjs/product/recordpage/recordpage.js +409 -0
  193. package/dist/cjs/product/recordpage/recordpage.recipe.js +162 -0
  194. package/dist/cjs/product/recordpanel/index.js +7 -0
  195. package/dist/cjs/product/recordpanel/recordpanel.js +83 -0
  196. package/dist/cjs/product/recordpanel/recordpanel.recipe.js +51 -0
  197. package/dist/cjs/product/recordstable/company-logos.js +29 -0
  198. package/dist/cjs/product/recordstable/index.js +10 -0
  199. package/dist/cjs/product/recordstable/recordstable.js +1092 -0
  200. package/dist/cjs/product/recordstable/recordstable.recipe.js +152 -0
  201. package/dist/cjs/product/recordstable/recordstable.tag.js +21 -0
  202. package/dist/cjs/product/richtext/index.js +7 -0
  203. package/dist/cjs/product/richtext/richtext.js +147 -0
  204. package/dist/cjs/product/richtext/richtext.recipe.js +43 -0
  205. package/dist/cjs/product/settingssection/index.js +7 -0
  206. package/dist/cjs/product/settingssection/settingssection.js +14 -0
  207. package/dist/cjs/product/settingssection/settingssection.recipe.js +23 -0
  208. package/dist/cjs/product/settingsshell/index.js +7 -0
  209. package/dist/cjs/product/settingsshell/settingsshell.js +59 -0
  210. package/dist/cjs/product/settingsshell/settingsshell.recipe.js +46 -0
  211. package/dist/cjs/product/sidebar/index.js +13 -0
  212. package/dist/cjs/product/sidebar/sidebar.js +148 -0
  213. package/dist/cjs/product/sidebar/sidebar.recipe.js +46 -0
  214. package/dist/cjs/product/tasklist/index.js +7 -0
  215. package/dist/cjs/product/tasklist/tasklist.js +19 -0
  216. package/dist/cjs/product/tasklist/tasklist.recipe.js +38 -0
  217. package/dist/cjs/product/trialbanner/index.js +7 -0
  218. package/dist/cjs/product/trialbanner/trialbanner.js +13 -0
  219. package/dist/cjs/product/trialbanner/trialbanner.recipe.js +32 -0
  220. package/dist/cjs/product/viewtoggle/index.js +7 -0
  221. package/dist/cjs/product/viewtoggle/viewtoggle.js +55 -0
  222. package/dist/cjs/product/viewtoggle/viewtoggle.recipe.js +27 -0
  223. package/dist/cjs/tokens/contract.js +21 -0
  224. package/dist/cjs/tokens/elevation.js +47 -0
  225. package/dist/cjs/tokens/index.js +18 -0
  226. package/dist/cjs/tokens/palette.js +63 -0
  227. package/dist/cjs/tokens/scale.js +70 -0
  228. package/dist/cjs/tokens/semantic.js +57 -0
  229. package/dist/columncalc.css +26 -0
  230. package/dist/columncalc.d.ts +7 -0
  231. package/dist/command.css +34 -1
  232. package/dist/contextmenu.css +11 -3
  233. package/dist/datatable.css +106 -0
  234. package/dist/datatable.d.ts +7 -0
  235. package/dist/datepicker.css +165 -19
  236. package/dist/datepicker.d.ts +2 -2
  237. package/dist/datepickerfield.css +27 -0
  238. package/dist/datepickerfield.d.ts +7 -0
  239. package/dist/dialog.css +11 -3
  240. package/dist/donutchart.css +8 -0
  241. package/dist/drawer.css +13 -5
  242. package/dist/entitycard.css +10 -2
  243. package/dist/esm/components/accordion/accordion.js +33 -0
  244. package/dist/esm/components/accordion/accordion.recipe.js +23 -0
  245. package/dist/esm/components/accordion/index.js +2 -0
  246. package/dist/esm/components/avatar/avatar.js +8 -0
  247. package/dist/esm/components/avatar/avatar.recipe.js +39 -0
  248. package/dist/esm/components/avatar/index.js +2 -0
  249. package/dist/esm/components/avatargroup/avatargroup.js +16 -0
  250. package/dist/esm/components/avatargroup/avatargroup.recipe.js +15 -0
  251. package/dist/esm/components/avatargroup/index.js +2 -0
  252. package/dist/esm/components/badge/badge.js +8 -0
  253. package/dist/esm/components/badge/badge.recipe.js +65 -0
  254. package/dist/esm/components/badge/index.js +2 -0
  255. package/dist/esm/components/barchart/barchart.js +42 -0
  256. package/dist/esm/components/barchart/barchart.recipe.js +31 -0
  257. package/dist/esm/components/barchart/index.js +2 -0
  258. package/dist/esm/components/breadcrumb/breadcrumb.js +17 -0
  259. package/dist/esm/components/breadcrumb/breadcrumb.recipe.js +18 -0
  260. package/dist/esm/components/breadcrumb/index.js +2 -0
  261. package/dist/esm/components/bulkbar/bulkbar.js +16 -0
  262. package/dist/esm/components/bulkbar/bulkbar.recipe.js +28 -0
  263. package/dist/esm/components/bulkbar/index.js +2 -0
  264. package/dist/esm/components/button/button.js +26 -0
  265. package/dist/esm/components/button/button.recipe.js +55 -0
  266. package/dist/esm/components/button/index.js +2 -0
  267. package/dist/esm/components/callout/callout.js +22 -0
  268. package/dist/esm/components/callout/callout.recipe.js +26 -0
  269. package/dist/esm/components/callout/index.js +2 -0
  270. package/dist/esm/components/card/card.js +15 -0
  271. package/dist/esm/components/card/card.recipe.js +28 -0
  272. package/dist/esm/components/card/index.js +2 -0
  273. package/dist/esm/components/checkbox/checkbox.js +20 -0
  274. package/dist/esm/components/checkbox/checkbox.recipe.js +31 -0
  275. package/dist/esm/components/checkbox/index.js +2 -0
  276. package/dist/esm/components/columncalc/columncalc.js +100 -0
  277. package/dist/esm/components/columncalc/columncalc.recipe.js +30 -0
  278. package/dist/esm/components/columncalc/index.js +1 -0
  279. package/dist/esm/components/contextmenu/contextmenu.js +42 -0
  280. package/dist/esm/components/contextmenu/contextmenu.recipe.js +21 -0
  281. package/dist/esm/components/contextmenu/index.js +2 -0
  282. package/dist/esm/components/datatable/datatable.js +472 -0
  283. package/dist/esm/components/datatable/datatable.recipe.js +110 -0
  284. package/dist/esm/components/datatable/index.js +2 -0
  285. package/dist/esm/components/datepicker/datepicker.js +108 -0
  286. package/dist/esm/components/datepicker/datepicker.recipe.js +177 -0
  287. package/dist/esm/components/datepicker/index.js +2 -0
  288. package/dist/esm/components/datepickerfield/datepickerfield.js +49 -0
  289. package/dist/esm/components/datepickerfield/datepickerfield.recipe.js +41 -0
  290. package/dist/esm/components/datepickerfield/index.js +2 -0
  291. package/dist/esm/components/dialog/dialog.js +48 -0
  292. package/dist/esm/components/dialog/dialog.recipe.js +32 -0
  293. package/dist/esm/components/dialog/index.js +2 -0
  294. package/dist/esm/components/divider/divider.js +7 -0
  295. package/dist/esm/components/divider/divider.recipe.js +14 -0
  296. package/dist/esm/components/divider/index.js +2 -0
  297. package/dist/esm/components/donutchart/donutchart.js +38 -0
  298. package/dist/esm/components/donutchart/donutchart.recipe.js +27 -0
  299. package/dist/esm/components/donutchart/index.js +2 -0
  300. package/dist/esm/components/drawer/drawer.js +42 -0
  301. package/dist/esm/components/drawer/drawer.recipe.js +27 -0
  302. package/dist/esm/components/drawer/index.js +2 -0
  303. package/dist/esm/components/emptystate/emptystate.js +7 -0
  304. package/dist/esm/components/emptystate/emptystate.recipe.js +31 -0
  305. package/dist/esm/components/emptystate/index.js +2 -0
  306. package/dist/esm/components/formfield/formfield.js +14 -0
  307. package/dist/esm/components/formfield/formfield.recipe.js +19 -0
  308. package/dist/esm/components/formfield/index.js +2 -0
  309. package/dist/esm/components/input/index.js +2 -0
  310. package/dist/esm/components/input/input.js +11 -0
  311. package/dist/esm/components/input/input.recipe.js +56 -0
  312. package/dist/esm/components/kbd/index.js +2 -0
  313. package/dist/esm/components/kbd/kbd.js +8 -0
  314. package/dist/esm/components/kbd/kbd.recipe.js +20 -0
  315. package/dist/esm/components/linechart/index.js +2 -0
  316. package/dist/esm/components/linechart/linechart.js +54 -0
  317. package/dist/esm/components/linechart/linechart.recipe.js +32 -0
  318. package/dist/esm/components/menu/index.js +3 -0
  319. package/dist/esm/components/menu/menu-keyboard.js +80 -0
  320. package/dist/esm/components/menu/menu.js +104 -0
  321. package/dist/esm/components/menu/menu.recipe.js +51 -0
  322. package/dist/esm/components/multiselect/index.js +2 -0
  323. package/dist/esm/components/multiselect/multiselect.js +125 -0
  324. package/dist/esm/components/multiselect/multiselect.recipe.js +68 -0
  325. package/dist/esm/components/popover/index.js +2 -0
  326. package/dist/esm/components/popover/popover.js +70 -0
  327. package/dist/esm/components/popover/popover.recipe.js +18 -0
  328. package/dist/esm/components/progress/index.js +2 -0
  329. package/dist/esm/components/progress/progress.js +23 -0
  330. package/dist/esm/components/progress/progress.recipe.js +17 -0
  331. package/dist/esm/components/radiogroup/index.js +2 -0
  332. package/dist/esm/components/radiogroup/radiogroup.js +46 -0
  333. package/dist/esm/components/radiogroup/radiogroup.recipe.js +37 -0
  334. package/dist/esm/components/resizablepanel/index.js +2 -0
  335. package/dist/esm/components/resizablepanel/resizablepanel.js +135 -0
  336. package/dist/esm/components/resizablepanel/resizablepanel.recipe.js +66 -0
  337. package/dist/esm/components/segmented/index.js +2 -0
  338. package/dist/esm/components/segmented/segmented.js +59 -0
  339. package/dist/esm/components/segmented/segmented.recipe.js +20 -0
  340. package/dist/esm/components/select/index.js +2 -0
  341. package/dist/esm/components/select/select.js +144 -0
  342. package/dist/esm/components/select/select.recipe.js +76 -0
  343. package/dist/esm/components/skeleton/index.js +2 -0
  344. package/dist/esm/components/skeleton/skeleton.js +10 -0
  345. package/dist/esm/components/skeleton/skeleton.recipe.js +14 -0
  346. package/dist/esm/components/spinner/index.js +2 -0
  347. package/dist/esm/components/spinner/spinner.js +12 -0
  348. package/dist/esm/components/spinner/spinner.recipe.js +13 -0
  349. package/dist/esm/components/stagebar/index.js +2 -0
  350. package/dist/esm/components/stagebar/stagebar.js +23 -0
  351. package/dist/esm/components/stagebar/stagebar.recipe.js +14 -0
  352. package/dist/esm/components/statcard/index.js +2 -0
  353. package/dist/esm/components/statcard/statcard.js +12 -0
  354. package/dist/esm/components/statcard/statcard.recipe.js +34 -0
  355. package/dist/esm/components/switch/index.js +2 -0
  356. package/dist/esm/components/switch/switch.js +22 -0
  357. package/dist/esm/components/switch/switch.recipe.js +26 -0
  358. package/dist/esm/components/table/index.js +2 -0
  359. package/dist/esm/components/table/table.js +30 -0
  360. package/dist/esm/components/table/table.recipe.js +40 -0
  361. package/dist/esm/components/tabletoolbar/index.js +2 -0
  362. package/dist/esm/components/tabletoolbar/tabletoolbar.chrome.js +79 -0
  363. package/dist/esm/components/tabletoolbar/tabletoolbar.js +199 -0
  364. package/dist/esm/components/tabletoolbar/tabletoolbar.recipe.js +23 -0
  365. package/dist/esm/components/tabs/index.js +2 -0
  366. package/dist/esm/components/tabs/tabs.js +70 -0
  367. package/dist/esm/components/tabs/tabs.recipe.js +33 -0
  368. package/dist/esm/components/textarea/index.js +2 -0
  369. package/dist/esm/components/textarea/textarea.js +20 -0
  370. package/dist/esm/components/textarea/textarea.recipe.js +43 -0
  371. package/dist/esm/components/toast/index.js +2 -0
  372. package/dist/esm/components/toast/toast.js +58 -0
  373. package/dist/esm/components/toast/toast.recipe.js +28 -0
  374. package/dist/esm/components/tooltip/index.js +2 -0
  375. package/dist/esm/components/tooltip/tooltip.js +59 -0
  376. package/dist/esm/components/tooltip/tooltip.recipe.js +13 -0
  377. package/dist/esm/components/wheelpicker/index.js +2 -0
  378. package/dist/esm/components/wheelpicker/wheelpicker.js +98 -0
  379. package/dist/esm/components/wheelpicker/wheelpicker.recipe.js +92 -0
  380. package/dist/esm/core/cx.js +1 -0
  381. package/dist/esm/core/define.js +3 -0
  382. package/dist/esm/core/index.js +4 -0
  383. package/dist/esm/core/primitive.js +13 -0
  384. package/dist/esm/core/resolve.js +41 -0
  385. package/dist/esm/core/types.js +1 -0
  386. package/dist/esm/index.js +76 -0
  387. package/dist/esm/product/appshell/appshell.js +68 -0
  388. package/dist/esm/product/appshell/appshell.recipe.js +27 -0
  389. package/dist/esm/product/appshell/index.js +2 -0
  390. package/dist/esm/product/authshell/authshell.js +18 -0
  391. package/dist/esm/product/authshell/authshell.recipe.js +64 -0
  392. package/dist/esm/product/authshell/index.js +2 -0
  393. package/dist/esm/product/board/board.js +42 -0
  394. package/dist/esm/product/board/board.recipe.js +28 -0
  395. package/dist/esm/product/board/index.js +2 -0
  396. package/dist/esm/product/command/command.js +201 -0
  397. package/dist/esm/product/command/command.recipe.js +44 -0
  398. package/dist/esm/product/command/index.js +2 -0
  399. package/dist/esm/product/entitycard/entitycard.js +11 -0
  400. package/dist/esm/product/entitycard/entitycard.recipe.js +29 -0
  401. package/dist/esm/product/entitycard/index.js +2 -0
  402. package/dist/esm/product/flowcanvas/flowcanvas.js +85 -0
  403. package/dist/esm/product/flowcanvas/flowcanvas.recipe.js +25 -0
  404. package/dist/esm/product/flowcanvas/index.js +2 -0
  405. package/dist/esm/product/inbox/inbox.js +13 -0
  406. package/dist/esm/product/inbox/inbox.recipe.js +43 -0
  407. package/dist/esm/product/inbox/index.js +2 -0
  408. package/dist/esm/product/listpage/index.js +2 -0
  409. package/dist/esm/product/listpage/listpage.js +21 -0
  410. package/dist/esm/product/listpage/listpage.recipe.js +43 -0
  411. package/dist/esm/product/navitem/index.js +1 -0
  412. package/dist/esm/product/navitem/navitem.js +8 -0
  413. package/dist/esm/product/navitem/navitem.recipe.js +33 -0
  414. package/dist/esm/product/onboarding/index.js +2 -0
  415. package/dist/esm/product/onboarding/onboarding.js +14 -0
  416. package/dist/esm/product/onboarding/onboarding.recipe.js +41 -0
  417. package/dist/esm/product/recordpage/index.js +2 -0
  418. package/dist/esm/product/recordpage/recordpage.js +372 -0
  419. package/dist/esm/product/recordpage/recordpage.recipe.js +159 -0
  420. package/dist/esm/product/recordpanel/index.js +2 -0
  421. package/dist/esm/product/recordpanel/recordpanel.js +47 -0
  422. package/dist/esm/product/recordpanel/recordpanel.recipe.js +48 -0
  423. package/dist/esm/product/recordstable/company-logos.js +26 -0
  424. package/dist/esm/product/recordstable/index.js +2 -0
  425. package/dist/esm/product/recordstable/recordstable.js +1054 -0
  426. package/dist/esm/product/recordstable/recordstable.recipe.js +149 -0
  427. package/dist/esm/product/recordstable/recordstable.tag.js +18 -0
  428. package/dist/esm/product/richtext/index.js +2 -0
  429. package/dist/esm/product/richtext/richtext.js +111 -0
  430. package/dist/esm/product/richtext/richtext.recipe.js +40 -0
  431. package/dist/esm/product/settingssection/index.js +2 -0
  432. package/dist/esm/product/settingssection/settingssection.js +11 -0
  433. package/dist/esm/product/settingssection/settingssection.recipe.js +20 -0
  434. package/dist/esm/product/settingsshell/index.js +2 -0
  435. package/dist/esm/product/settingsshell/settingsshell.js +23 -0
  436. package/dist/esm/product/settingsshell/settingsshell.recipe.js +43 -0
  437. package/dist/esm/product/sidebar/index.js +2 -0
  438. package/dist/esm/product/sidebar/sidebar.js +112 -0
  439. package/dist/esm/product/sidebar/sidebar.recipe.js +43 -0
  440. package/dist/esm/product/tasklist/index.js +2 -0
  441. package/dist/esm/product/tasklist/tasklist.js +16 -0
  442. package/dist/esm/product/tasklist/tasklist.recipe.js +35 -0
  443. package/dist/esm/product/trialbanner/index.js +2 -0
  444. package/dist/esm/product/trialbanner/trialbanner.js +10 -0
  445. package/dist/esm/product/trialbanner/trialbanner.recipe.js +29 -0
  446. package/dist/esm/product/viewtoggle/index.js +2 -0
  447. package/dist/esm/product/viewtoggle/viewtoggle.js +19 -0
  448. package/dist/esm/product/viewtoggle/viewtoggle.recipe.js +24 -0
  449. package/dist/esm/tokens/contract.js +18 -0
  450. package/dist/esm/tokens/elevation.js +44 -0
  451. package/dist/esm/tokens/index.js +5 -0
  452. package/dist/esm/tokens/palette.js +60 -0
  453. package/dist/esm/tokens/scale.js +67 -0
  454. package/dist/esm/tokens/semantic.js +54 -0
  455. package/dist/inbox.css +9 -1
  456. package/dist/input.css +32 -4
  457. package/dist/linechart.css +5 -5
  458. package/dist/listpage.css +11 -3
  459. package/dist/menu.css +13 -5
  460. package/dist/multiselect.css +17 -9
  461. package/dist/native/tokens.d.ts +16 -0
  462. package/dist/native/tokens.js +221 -0
  463. package/dist/navitem.css +21 -1
  464. package/dist/onboarding.css +10 -2
  465. package/dist/popover.css +9 -1
  466. package/dist/progress.css +8 -0
  467. package/dist/radiogroup.css +9 -1
  468. package/dist/recordpage.css +26 -16
  469. package/dist/recordpanel.css +25 -15
  470. package/dist/recordstable.css +41 -27
  471. package/dist/resizablepanel.css +53 -0
  472. package/dist/resizablepanel.d.ts +7 -0
  473. package/dist/richtext.css +11 -3
  474. package/dist/segmented.css +8 -0
  475. package/dist/select.css +22 -8
  476. package/dist/select.d.ts +2 -1
  477. package/dist/settingsshell.css +15 -2
  478. package/dist/sidebar.css +34 -1
  479. package/dist/skeleton.css +8 -0
  480. package/dist/spinner.css +8 -0
  481. package/dist/stagebar.css +8 -0
  482. package/dist/statcard.css +6 -0
  483. package/dist/statcard.d.ts +2 -2
  484. package/dist/styles.css +2134 -999
  485. package/dist/switch.css +8 -0
  486. package/dist/table.css +34 -0
  487. package/dist/table.d.ts +8 -0
  488. package/dist/tabletoolbar.css +78 -0
  489. package/dist/tabletoolbar.d.ts +7 -0
  490. package/dist/tabs.css +12 -4
  491. package/dist/tasklist.css +8 -0
  492. package/dist/textarea.css +23 -3
  493. package/dist/toast.css +10 -2
  494. package/dist/tokens.css +53 -0
  495. package/dist/tokens.json +217 -0
  496. package/dist/tooltip.css +8 -0
  497. package/dist/trialbanner.css +8 -0
  498. package/dist/types/components/accordion/accordion.d.ts +10 -8
  499. package/dist/types/components/avatargroup/avatargroup.d.ts +2 -2
  500. package/dist/types/components/barchart/barchart.d.ts +4 -2
  501. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  502. package/dist/types/components/bulkbar/bulkbar.d.ts +4 -2
  503. package/dist/types/components/button/button.d.ts +8 -0
  504. package/dist/types/components/button/button.recipe.d.ts +12 -0
  505. package/dist/types/components/callout/callout.d.ts +2 -2
  506. package/dist/types/components/columncalc/columncalc.d.ts +49 -0
  507. package/dist/types/components/columncalc/columncalc.recipe.d.ts +3 -0
  508. package/dist/types/components/columncalc/index.d.ts +1 -0
  509. package/dist/types/components/datatable/datatable.d.ts +153 -0
  510. package/dist/types/components/datatable/datatable.recipe.d.ts +3 -0
  511. package/dist/types/components/datatable/index.d.ts +2 -0
  512. package/dist/types/components/datepicker/datepicker.d.ts +41 -18
  513. package/dist/types/components/datepicker/datepicker.recipe.d.ts +25 -2
  514. package/dist/types/components/datepicker/index.d.ts +1 -1
  515. package/dist/types/components/datepickerfield/datepickerfield.d.ts +35 -0
  516. package/dist/types/components/datepickerfield/datepickerfield.recipe.d.ts +5 -0
  517. package/dist/types/components/datepickerfield/index.d.ts +2 -0
  518. package/dist/types/components/dialog/dialog.d.ts +3 -1
  519. package/dist/types/components/divider/divider.d.ts +2 -2
  520. package/dist/types/components/donutchart/donutchart.d.ts +2 -2
  521. package/dist/types/components/drawer/drawer.d.ts +3 -1
  522. package/dist/types/components/emptystate/emptystate.d.ts +2 -2
  523. package/dist/types/components/formfield/formfield.d.ts +7 -4
  524. package/dist/types/components/input/input.d.ts +8 -2
  525. package/dist/types/components/linechart/linechart.d.ts +4 -2
  526. package/dist/types/components/menu/index.d.ts +1 -0
  527. package/dist/types/components/menu/menu-keyboard.d.ts +33 -0
  528. package/dist/types/components/menu/menu.d.ts +7 -1
  529. package/dist/types/components/multiselect/multiselect.d.ts +8 -4
  530. package/dist/types/components/popover/popover.d.ts +4 -1
  531. package/dist/types/components/progress/progress.d.ts +2 -2
  532. package/dist/types/components/radiogroup/radiogroup.d.ts +2 -2
  533. package/dist/types/components/resizablepanel/index.d.ts +2 -0
  534. package/dist/types/components/resizablepanel/resizablepanel.d.ts +75 -0
  535. package/dist/types/components/resizablepanel/resizablepanel.recipe.d.ts +3 -0
  536. package/dist/types/components/segmented/segmented.d.ts +2 -2
  537. package/dist/types/components/select/select.d.ts +4 -2
  538. package/dist/types/components/select/select.recipe.d.ts +12 -0
  539. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  540. package/dist/types/components/spinner/spinner.d.ts +2 -2
  541. package/dist/types/components/stagebar/stagebar.d.ts +2 -2
  542. package/dist/types/components/statcard/statcard.d.ts +7 -2
  543. package/dist/types/components/statcard/statcard.recipe.d.ts +12 -2
  544. package/dist/types/components/table/index.d.ts +2 -0
  545. package/dist/types/components/table/table.d.ts +53 -0
  546. package/dist/types/components/table/table.recipe.d.ts +21 -0
  547. package/dist/types/components/tabletoolbar/index.d.ts +2 -0
  548. package/dist/types/components/tabletoolbar/tabletoolbar.chrome.d.ts +2 -0
  549. package/dist/types/components/tabletoolbar/tabletoolbar.d.ts +89 -0
  550. package/dist/types/components/tabletoolbar/tabletoolbar.recipe.d.ts +3 -0
  551. package/dist/types/components/tabs/tabs.d.ts +2 -2
  552. package/dist/types/components/toast/toast.d.ts +7 -1
  553. package/dist/types/components/tooltip/tooltip.d.ts +8 -1
  554. package/dist/types/components/wheelpicker/index.d.ts +2 -0
  555. package/dist/types/components/wheelpicker/wheelpicker.d.ts +37 -0
  556. package/dist/types/components/wheelpicker/wheelpicker.recipe.d.ts +26 -0
  557. package/dist/types/index.d.ts +8 -0
  558. package/dist/types/product/appshell/appshell.d.ts +16 -2
  559. package/dist/types/product/authshell/authshell.d.ts +28 -0
  560. package/dist/types/product/authshell/authshell.recipe.d.ts +3 -0
  561. package/dist/types/product/authshell/index.d.ts +2 -0
  562. package/dist/types/product/board/board.d.ts +2 -2
  563. package/dist/types/product/command/command.d.ts +25 -1
  564. package/dist/types/product/entitycard/entitycard.d.ts +2 -2
  565. package/dist/types/product/flowcanvas/flowcanvas.d.ts +9 -1
  566. package/dist/types/product/onboarding/onboarding.d.ts +7 -1
  567. package/dist/types/product/recordpage/recordpage.d.ts +65 -1
  568. package/dist/types/product/recordpanel/recordpanel.d.ts +8 -2
  569. package/dist/types/product/recordstable/company-logos.d.ts +1 -0
  570. package/dist/types/product/recordstable/recordstable.d.ts +131 -1
  571. package/dist/types/product/recordstable/recordstable.tag.d.ts +10 -0
  572. package/dist/types/product/richtext/richtext.d.ts +5 -1
  573. package/dist/types/product/settingssection/settingssection.d.ts +2 -2
  574. package/dist/types/product/settingsshell/settingsshell.d.ts +6 -2
  575. package/dist/types/product/sidebar/index.d.ts +1 -1
  576. package/dist/types/product/sidebar/sidebar.d.ts +93 -0
  577. package/dist/types/product/tasklist/tasklist.d.ts +5 -1
  578. package/dist/types/product/trialbanner/trialbanner.d.ts +2 -2
  579. package/dist/types/product/viewtoggle/viewtoggle.d.ts +11 -5
  580. package/dist/types/tokens/contract.d.ts +26 -3
  581. package/dist/types/tokens/elevation.d.ts +44 -0
  582. package/dist/types/tokens/index.d.ts +1 -0
  583. package/dist/types/tokens/palette.d.ts +88 -0
  584. package/dist/types/tokens/scale.d.ts +7 -0
  585. package/dist/types/tokens/semantic.d.ts +31 -0
  586. package/dist/viewtoggle.css +11 -3
  587. package/dist/wheelpicker.css +68 -0
  588. package/dist/wheelpicker.d.ts +7 -0
  589. package/package.json +351 -9
  590. package/dist/index.js +0 -9690
@@ -1,6 +1,6 @@
1
1
  import * as React from "react";
2
2
  import { type AvatarProps } from "../avatar/avatar";
3
- export type AvatarGroupProps = {
3
+ export type AvatarGroupProps = React.ComponentPropsWithoutRef<"div"> & {
4
4
  /** Avatar elements to stack, in order (left on the outside). */
5
5
  children: React.ReactNode;
6
6
  /** Show at most this many, then a "+N" overflow chip. */
@@ -15,7 +15,7 @@ export type AvatarGroupProps = {
15
15
  * from Attio's team / member rows. Pass `<Avatar>` children; each is ringed in
16
16
  * the surface colour so it reads against its neighbour.
17
17
  */
18
- export declare function AvatarGroup({ children, max, size, className, "aria-label": ariaLabel, }: AvatarGroupProps): React.JSX.Element;
18
+ export declare function AvatarGroup({ children, max, size, className, "aria-label": ariaLabel, ...rest }: AvatarGroupProps): React.JSX.Element;
19
19
  export declare namespace AvatarGroup {
20
20
  var displayName: string;
21
21
  }
@@ -3,7 +3,7 @@ export type BarDatum = {
3
3
  label: string;
4
4
  value: number;
5
5
  };
6
- export type BarChartProps = {
6
+ export type BarChartProps = Omit<React.ComponentPropsWithoutRef<"div">, "color"> & {
7
7
  data: BarDatum[];
8
8
  /** Overall height in px (default 240). */
9
9
  height?: number;
@@ -15,6 +15,8 @@ export type BarChartProps = {
15
15
  color?: string;
16
16
  /** Formats axis ticks and bar values. */
17
17
  format?: (n: number) => string;
18
+ /** Pins the value-axis gutter width in px, overriding the width auto-derived from the longest tick label. */
19
+ yAxisWidth?: number;
18
20
  /** Category-axis title, shown centred below the labels. */
19
21
  xAxisTitle?: React.ReactNode;
20
22
  "aria-label"?: string;
@@ -24,7 +26,7 @@ export type BarChartProps = {
24
26
  * A responsive bar chart — measured from Attio's Reports dashboard. Pure CSS, so
25
27
  * it scales with its container. Renders `role="img"` with an accessible summary.
26
28
  */
27
- export declare function BarChart({ data, height, max, ticks, color, format, xAxisTitle, "aria-label": ariaLabel, className, }: BarChartProps): React.JSX.Element;
29
+ export declare function BarChart({ data, height, max, ticks, color, format, yAxisWidth, xAxisTitle, "aria-label": ariaLabel, className, ...rest }: BarChartProps): React.JSX.Element;
28
30
  export declare namespace BarChart {
29
31
  var displayName: string;
30
32
  }
@@ -5,7 +5,7 @@ export type BreadcrumbItem = {
5
5
  icon?: React.ReactNode;
6
6
  onClick?: () => void;
7
7
  };
8
- export type BreadcrumbProps = {
8
+ export type BreadcrumbProps = React.ComponentPropsWithoutRef<"nav"> & {
9
9
  items: BreadcrumbItem[];
10
10
  /** Separator between items (default a chevron). */
11
11
  separator?: React.ReactNode;
@@ -16,7 +16,7 @@ export type BreadcrumbProps = {
16
16
  * A breadcrumb trail — measured from Attio's record-page nav. The last item is
17
17
  * marked `aria-current="page"`; earlier items render as links or buttons.
18
18
  */
19
- export declare function Breadcrumb({ items, separator, "aria-label": ariaLabel, className, }: BreadcrumbProps): React.JSX.Element;
19
+ export declare function Breadcrumb({ items, separator, "aria-label": ariaLabel, className, ...rest }: BreadcrumbProps): React.JSX.Element;
20
20
  export declare namespace Breadcrumb {
21
21
  var displayName: string;
22
22
  }
@@ -1,11 +1,13 @@
1
1
  import * as React from "react";
2
- export type BulkBarProps = {
2
+ export type BulkBarProps = Omit<React.ComponentPropsWithoutRef<"div">, "children"> & {
3
3
  /** Selected count — renders the leading "N selected" pill when provided. */
4
4
  count?: number;
5
5
  /** Called when the count pill (its ✕) is pressed — clear the selection. */
6
6
  onClear?: () => void;
7
7
  /** Word after the count in the pill (default "selected"). */
8
8
  countLabel?: string;
9
+ /** title on the count pill's clear (✕) control (default "Clear selection"). */
10
+ clearLabel?: string;
9
11
  /** Action buttons — usually `<BulkBarButton>`s and a `<Menu>` overflow. */
10
12
  children?: React.ReactNode;
11
13
  className?: string;
@@ -15,7 +17,7 @@ export type BulkBarProps = {
15
17
  * positioned ancestor when a selection is active; render it conditionally
16
18
  * (e.g. `count > 0 && <BulkBar …/>`). Measured from Attio's records table.
17
19
  */
18
- export declare function BulkBar({ count, onClear, countLabel, children, className, }: BulkBarProps): React.JSX.Element;
20
+ export declare function BulkBar({ count, onClear, countLabel, children, className, clearLabel, ...rest }: BulkBarProps): React.JSX.Element;
19
21
  export declare namespace BulkBar {
20
22
  var displayName: string;
21
23
  }
@@ -22,6 +22,10 @@ export declare const Button: React.ForwardRefExoticComponent<Omit<React.Detailed
22
22
  text: string;
23
23
  icon: string;
24
24
  };
25
+ touchTarget: {
26
+ true: string;
27
+ false: string;
28
+ };
25
29
  }> & {
26
30
  config: import("../..").RecipeConfig<{
27
31
  intent: {
@@ -39,6 +43,10 @@ export declare const Button: React.ForwardRefExoticComponent<Omit<React.Detailed
39
43
  text: string;
40
44
  icon: string;
41
45
  };
46
+ touchTarget: {
47
+ true: string;
48
+ false: string;
49
+ };
42
50
  }>;
43
51
  meta: {
44
52
  primary: {
@@ -14,6 +14,10 @@ declare const config: import("../..").RecipeConfig<{
14
14
  text: string;
15
15
  icon: string;
16
16
  };
17
+ touchTarget: {
18
+ true: string;
19
+ false: string;
20
+ };
17
21
  }>;
18
22
  export declare const buttonRecipe: import("../..").RecipeFn<{
19
23
  intent: {
@@ -31,6 +35,10 @@ export declare const buttonRecipe: import("../..").RecipeFn<{
31
35
  text: string;
32
36
  icon: string;
33
37
  };
38
+ touchTarget: {
39
+ true: string;
40
+ false: string;
41
+ };
34
42
  }> & {
35
43
  config: import("../..").RecipeConfig<{
36
44
  intent: {
@@ -48,6 +56,10 @@ export declare const buttonRecipe: import("../..").RecipeFn<{
48
56
  text: string;
49
57
  icon: string;
50
58
  };
59
+ touchTarget: {
60
+ true: string;
61
+ false: string;
62
+ };
51
63
  }>;
52
64
  meta: {
53
65
  primary: {
@@ -1,6 +1,6 @@
1
1
  import type * as React from "react";
2
2
  export type CalloutTone = "neutral" | "info" | "success" | "warning" | "danger";
3
- export type CalloutProps = {
3
+ export type CalloutProps = Omit<React.ComponentPropsWithoutRef<"div">, "title"> & {
4
4
  tone?: CalloutTone;
5
5
  /** Leading icon; defaults to a tone-appropriate one (pass `null` for none). */
6
6
  icon?: React.ReactNode;
@@ -14,7 +14,7 @@ export type CalloutProps = {
14
14
  * An inline callout / banner — measured from Attio's info notices. `tone` tints
15
15
  * the background and icon; pass a `title` and/or body `children`.
16
16
  */
17
- export declare function Callout({ tone, icon, title, children, action, className, }: CalloutProps): React.JSX.Element;
17
+ export declare function Callout({ tone, icon, title, children, action, className, ...rest }: CalloutProps): React.JSX.Element;
18
18
  export declare namespace Callout {
19
19
  var displayName: string;
20
20
  }
@@ -0,0 +1,49 @@
1
+ import * as React from "react";
2
+ /**
3
+ * Attio's column footer calculation. Measured from the live app: clicking a
4
+ * summary cell opens an "Aggregations" menu — 180px wide — whose contents
5
+ * depend on the column's type.
6
+ *
7
+ * Every column offers the four universal aggregations; numeric columns add
8
+ * four more plus "None" to clear:
9
+ *
10
+ * all types Count empty · Count filled · Percent empty · Percent filled
11
+ * numbers …plus Sum · Average · Min · Max
12
+ * both None
13
+ *
14
+ * Plugs into `DataTable`'s per-column `summary(rows)` slot.
15
+ */
16
+ export type CalcOp = "none" | "countEmpty" | "countFilled" | "percentEmpty" | "percentFilled" | "sum" | "average" | "min" | "max";
17
+ /** The four Attio offers on every column, in its order. */
18
+ export declare const UNIVERSAL_CALCS: CalcOp[];
19
+ /** The four Attio adds for numeric columns, in its order. */
20
+ export declare const NUMERIC_CALCS: CalcOp[];
21
+ export declare const CALC_LABEL: Record<CalcOp, string>;
22
+ /** A value counts as empty when it is null/undefined, "" or an empty array. */
23
+ export declare function isEmptyValue(v: unknown): boolean;
24
+ /**
25
+ * Pure so the arithmetic is testable without rendering. Returns `null` for
26
+ * "none" and for numeric ops with no numbers to work on — a caller renders
27
+ * nothing rather than a misleading 0.
28
+ */
29
+ export declare function computeCalc(values: unknown[], op: CalcOp): number | null;
30
+ export type ColumnCalcProps<T> = Omit<React.ComponentPropsWithoutRef<"span">, "value" | "children"> & {
31
+ rows: T[];
32
+ /** Reads this column's value out of a row. */
33
+ value: (row: T) => unknown;
34
+ /** Numeric columns get Sum/Average/Min/Max, as in Attio. */
35
+ numeric?: boolean;
36
+ defaultOp?: CalcOp;
37
+ /** Controlled operation. */
38
+ op?: CalcOp;
39
+ onOpChange?: (op: CalcOp) => void;
40
+ /** Overrides the operation names shown in the menu and the cell. Partial —
41
+ * anything omitted keeps its English default from `CALC_LABEL`. */
42
+ opLabels?: Partial<Record<CalcOp, string>>;
43
+ /** Format the result; defaults to a grouped number, percentages with a %. */
44
+ format?: (n: number, op: CalcOp) => string;
45
+ /** Match the column's alignment — numeric columns right-align in Attio. */
46
+ align?: "left" | "right";
47
+ className?: string;
48
+ };
49
+ export declare function ColumnCalc<T>({ rows, value, numeric, defaultOp, op: opProp, onOpChange, format, align, opLabels, className, ...rest }: ColumnCalcProps<T>): React.JSX.Element;
@@ -0,0 +1,3 @@
1
+ declare const config: import("../..").RecipeConfig<{}>;
2
+ export declare const columncalcRecipe: import("../..").RecipeFn<{}>;
3
+ export default config;
@@ -0,0 +1 @@
1
+ export { CALC_LABEL, type CalcOp, ColumnCalc, type ColumnCalcProps, computeCalc, isEmptyValue, NUMERIC_CALCS, UNIVERSAL_CALCS, } from "./columncalc";
@@ -0,0 +1,153 @@
1
+ import * as React from "react";
2
+ type IconType = React.ComponentType<{
3
+ size?: number;
4
+ strokeWidth?: number;
5
+ }>;
6
+ export type EntityValue = {
7
+ name: string;
8
+ avatar?: string;
9
+ };
10
+ export type DataCellType = "text" | "entity" | "tags" | "status" | "date" | "number" | "currency";
11
+ export type DataTableColumn<T> = {
12
+ key: string;
13
+ /** Truncates with an ellipsis (matches Attio) when it's wider than the
14
+ * column. The full text stays in the DOM, so assistive tech and copy/paste
15
+ * get all of it; there is deliberately no `title` tooltip — see the recipe. */
16
+ header: React.ReactNode;
17
+ /** Built-in rich renderer: entity (avatar+name), tags (colour pills), status
18
+ * (dot), date, number, currency. Overridden by `render`. */
19
+ type?: DataCellType;
20
+ /** A leading field-type icon in the header (matches RecordsTable). */
21
+ icon?: IconType;
22
+ /** Currency symbol for `currency` columns (default "$"). */
23
+ symbol?: string;
24
+ /** Allow drag-to-resize on this column (default true). */
25
+ resizable?: boolean;
26
+ /** Tone overrides for `status`/`tags` values (else a stable colour per value). */
27
+ tones?: Record<string, string>;
28
+ /** Enable click-to-sort on this column's header. */
29
+ sortable?: boolean;
30
+ /** Exclude this column from the search filter (default: included). */
31
+ filterable?: boolean;
32
+ /** Allow inline editing (click the cell → text input → Enter/blur commits). */
33
+ editable?: boolean;
34
+ align?: "left" | "right" | "center";
35
+ width?: number;
36
+ /** Custom cell renderer. */
37
+ render?: (value: unknown, row: T) => React.ReactNode;
38
+ /** Derive the sort/filter/display value (defaults to `row[key]`). */
39
+ accessor?: (row: T) => string | number;
40
+ /** Transform the value into a display string (locale formatting, masking, a
41
+ * unit suffix, …); the result still flows through the built-in type
42
+ * renderer, so a `number`/`currency` column keeps its alignment + chrome.
43
+ * Precedence: `render` (full custom node) beats `format` (value string)
44
+ * beats the built-in type renderer. Display-only — sorting and filtering
45
+ * use the raw/`accessor` value, never the formatted string. */
46
+ format?: (value: unknown, row: T) => string;
47
+ /** Footer summary for this column (shown when any column supplies one). */
48
+ summary?: (rows: T[]) => React.ReactNode;
49
+ /** Opt this column out of the header menu's Hide/Move/Rename items. */
50
+ managed?: boolean;
51
+ /** Hidden from the grid but still listed in the column manager. */
52
+ hidden?: boolean;
53
+ };
54
+ export type SortState = {
55
+ key: string;
56
+ dir: "asc" | "desc";
57
+ };
58
+ export type DataTableProps<T extends {
59
+ id: string;
60
+ }> = Omit<React.ComponentPropsWithoutRef<"div">, "children" | "onSelect"> & {
61
+ columns: DataTableColumn<T>[];
62
+ data: T[];
63
+ /** Show a leading selection column with a select-all header checkbox. */
64
+ selectable?: boolean;
65
+ selectedIds?: string[];
66
+ onSelectionChange?: (ids: string[]) => void;
67
+ /** aria-label for the header's select-all checkbox (default "Select all
68
+ * rows"). Override for non-English UIs — the built-in string never reaches
69
+ * a translated screen otherwise. */
70
+ selectAllLabel?: string;
71
+ /** aria-label for each row's checkbox (default `Select row ${row.id}`).
72
+ * Takes the row so the label can read back a human identifier (a name,
73
+ * a code) instead of the raw id. */
74
+ selectRowLabel?: (row: T) => string;
75
+ /** Controlled sort (omit for self-managed; seed with `defaultSort`). */
76
+ /**
77
+ * Active sort. Accepts a single sort or an ordered list — Attio sorts by
78
+ * several columns at once ("Sorted by Last interaction +1"), applying each
79
+ * in turn and falling through to the next on a tie.
80
+ */
81
+ /**
82
+ * Show Attio's column header menu — Sort ascending/descending, Move
83
+ * left/right, Edit column label, Hide from view. Anything but sorting
84
+ * needs `onColumnsChange` (or leave it off and the table manages its own
85
+ * copy of the column list).
86
+ */
87
+ columnMenu?: boolean;
88
+ /** Called with the next column list after a move, rename or hide. */
89
+ onColumnsChange?: (columns: DataTableColumn<T>[]) => void;
90
+ /** Group rows under a heading row, the way Attio groups a view. */
91
+ groupBy?: (row: T) => string;
92
+ /**
93
+ * Enables drag-to-reorder rows (a leading grip column). Called with the
94
+ * full row array in its new order. Ignored while a sort or `groupBy` is
95
+ * active — dragging a row would be instantly undone by the comparator, or
96
+ * is ambiguous across groups, so the grip isn't rendered at all in either
97
+ * case.
98
+ */
99
+ onRowsReorder?: (rows: T[]) => void;
100
+ /** aria-label on each row's drag grip (default "Reorder row"). */
101
+ reorderRowLabel?: string;
102
+ /**
103
+ * Render an error state in place of the rows. Uses the same measured
104
+ * `EmptyState variant="page"` surface as the zero-row state.
105
+ */
106
+ error?: React.ReactNode;
107
+ sort?: SortState | SortState[] | null;
108
+ defaultSort?: SortState;
109
+ onSortChange?: (s: SortState | null) => void;
110
+ /** Show a search box that filters rows across filterable columns. */
111
+ filterable?: boolean;
112
+ searchPlaceholder?: string;
113
+ /** aria-label for the search input (default "Search table"). Independent
114
+ * of `searchPlaceholder`, which is visible text — this is the
115
+ * screen-reader-only label. */
116
+ searchLabel?: string;
117
+ /** Commit handler for inline edits. */
118
+ onEdit?: (id: string, key: string, value: string) => void;
119
+ /** Sticky the first column(s) with a horizontal scroll shadow (default true). */
120
+ stickyFirst?: boolean;
121
+ /** Tone for `entity`-type avatars: `"brand"` (uniform, matches Attio's real
122
+ * records grid) or `"hashed"` (a stable colour per name — the tone `tags`/
123
+ * `status` pills already use, and entity's previous default). */
124
+ avatarTone?: "brand" | "hashed";
125
+ /** Card-style bordered surface (default) or full-bleed edge-to-edge, like
126
+ * RecordsTable. Passed through to the underlying `Table`. */
127
+ surface?: "card" | "bleed";
128
+ /** Row hover affordance + `onRowClick`. */
129
+ interactive?: boolean;
130
+ onRowClick?: (row: T) => void;
131
+ /** Renders a trailing add-row button ("New record") when provided. */
132
+ onAddRow?: () => void;
133
+ addRowLabel?: React.ReactNode;
134
+ /** Rendered in the body when there are no rows. */
135
+ empty?: React.ReactNode;
136
+ /** Show the "N of M" count on the right of the toolbar (default true). */
137
+ showCount?: boolean;
138
+ /** Renders the toolbar's row count (default: "N row(s)" / "N of M" in
139
+ * English). Takes the shown (filtered) and total row counts — override for
140
+ * non-English pluralisation, since "N row/rows" doesn't translate as a
141
+ * template. */
142
+ countLabel?: (shown: number, total: number) => React.ReactNode;
143
+ /** Extra toolbar content (e.g. buttons) on the right of the toolbar. */
144
+ toolbar?: React.ReactNode;
145
+ className?: string;
146
+ };
147
+ export declare function DataTable<T extends {
148
+ id: string;
149
+ }>({ columns: columnsProp, data, selectable, selectedIds, onSelectionChange, selectAllLabel, selectRowLabel, columnMenu, onColumnsChange, groupBy, onRowsReorder, error, sort: sortProp, defaultSort, onSortChange, filterable, searchPlaceholder, searchLabel, onEdit, stickyFirst, avatarTone, surface, interactive, onRowClick, onAddRow, addRowLabel, empty, showCount, countLabel, toolbar, className, reorderRowLabel, ...rest }: DataTableProps<T>): React.JSX.Element;
150
+ export declare namespace DataTable {
151
+ var displayName: string;
152
+ }
153
+ export {};
@@ -0,0 +1,3 @@
1
+ declare const config: import("../..").RecipeConfig<{}>;
2
+ export declare const datatableRecipe: import("../..").RecipeFn<{}>;
3
+ export default config;
@@ -0,0 +1,2 @@
1
+ export { DataTable, type DataTableColumn, type DataTableProps, type SortState, } from "./datatable";
2
+ export { datatableRecipe } from "./datatable.recipe";
@@ -1,22 +1,45 @@
1
+ import { type DatePickerActions, type DatePickerCellState, type DatePickerMonthRange, type UseDatePickerProps } from "@seed-design/react-date-picker";
1
2
  import * as React from "react";
2
- export type DatePickerProps = {
3
- /** Controlled value. Omit to let the picker manage it (see defaultValue). */
4
- value?: Date | null;
5
- defaultValue?: Date | null;
6
- onChange?: (date: Date) => void;
7
- placeholder?: string;
8
- /** `default` = outlined trigger; `ghost` = transparent (for table cells). */
9
- variant?: "default" | "ghost";
10
- /** Formats the trigger label (default: e.g. "Jun 3, 2026"). */
11
- format?: (date: Date) => string;
12
- "aria-label"?: string;
13
- className?: string;
14
- };
15
3
  /**
16
- * A date field with a calendar popover — composes [Popover] with a month grid.
17
- * Controlled via `value`/`onChange` or self-managed from `defaultValue`.
4
+ * The calendar's behaviour — selection modes, constraints, roving focus, the
5
+ * live region, the year/month wheel — comes from `@seed-design/react-date-picker`,
6
+ * the headless engine seed-design publishes. crisp supplies the view and the
7
+ * measured styling, so the semantics are seed's by construction rather than by
8
+ * reimplementation, and upstream fixes arrive as a version bump.
18
9
  */
19
- export declare function DatePicker({ value, defaultValue, onChange, placeholder, variant, format, "aria-label": ariaLabel, className, }: DatePickerProps): React.JSX.Element;
20
- export declare namespace DatePicker {
21
- var displayName: string;
10
+ type RootProps = Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "defaultValue" | "onChange" | "onValueChange">;
11
+ export interface DatePickerCellContentRenderProps extends DatePickerCellState {
22
12
  }
13
+ type BehaviorProps = UseDatePickerProps extends infer P ? P extends UseDatePickerProps ? Omit<P, "visibleRange" | "monthRange"> : never : never;
14
+ type CellCustomization = {
15
+ /** Extra content under the date numeral. Prefer this. */
16
+ renderDateCellSupplement?: (props: DatePickerCellContentRenderProps) => React.ReactNode;
17
+ renderDateCellContent?: never;
18
+ } | {
19
+ /** Replaces the cell's content, keeping its a11y and interaction. */
20
+ renderDateCellContent?: (props: DatePickerCellContentRenderProps) => React.ReactNode;
21
+ renderDateCellSupplement?: never;
22
+ };
23
+ type SizeProps = {
24
+ height?: number | string;
25
+ minHeight?: number | string;
26
+ maxHeight?: number | string;
27
+ };
28
+ type SharedProps = BehaviorProps & RootProps & {
29
+ /** Receives `navigateToDate` (no focus move) and `focusDate`. */
30
+ actionsRef?: React.Ref<DatePickerActions>;
31
+ className?: string;
32
+ } & CellCustomization;
33
+ export type DatePickerProps = SharedProps;
34
+ export type TwoMonthDatePickerProps = SharedProps;
35
+ export type WeekDatePickerProps = SharedProps;
36
+ export type ContinuousDatePickerProps = SharedProps & SizeProps & {
37
+ /** Months the calendar can scroll through, inclusive of both ends. */
38
+ monthRange?: DatePickerMonthRange;
39
+ };
40
+ export declare const DatePicker: React.ForwardRefExoticComponent<SharedProps & React.RefAttributes<HTMLDivElement>>;
41
+ export declare const TwoMonthDatePicker: React.ForwardRefExoticComponent<SharedProps & React.RefAttributes<HTMLDivElement>>;
42
+ export declare const WeekDatePicker: React.ForwardRefExoticComponent<SharedProps & React.RefAttributes<HTMLDivElement>>;
43
+ export declare const ContinuousDatePicker: React.ForwardRefExoticComponent<ContinuousDatePickerProps & React.RefAttributes<HTMLDivElement>>;
44
+ export type { DatePickerActions, DatePickerAriaLabels, DatePickerCell, DatePickerCellState, DatePickerConstraint, DatePickerConstraintContext, DatePickerDate, DatePickerMonth, DatePickerMonthRange, DatePickerMultipleProps, DatePickerRangeProps, DatePickerRangeValue, DatePickerSelectionMode, DatePickerSingleProps, DatePickerValue, DatePickerVisibleRange, DatePickerWeek, DatePickerYearMonth, } from "@seed-design/react-date-picker";
45
+ export { compareDates, dateKey, dateOnOrAfter, dateOnOrBefore, excludeDates, isSameDate, maxSelectionCount, rangeDayCountAtLeast, rangeDayCountAtMost, } from "@seed-design/react-date-picker";
@@ -1,3 +1,26 @@
1
- declare const config: import("../..").RecipeConfig<{}>;
2
- export declare const datepickerRecipe: import("../..").RecipeFn<{}>;
1
+ declare const config: import("../..").RecipeConfig<{
2
+ visibleRange: {
3
+ month: string;
4
+ twoMonths: string;
5
+ week: string;
6
+ continuous: string;
7
+ };
8
+ }>;
9
+ export declare const datepickerRecipe: import("../..").RecipeFn<{
10
+ visibleRange: {
11
+ month: string;
12
+ twoMonths: string;
13
+ week: string;
14
+ continuous: string;
15
+ };
16
+ }> & {
17
+ config: import("../..").RecipeConfig<{
18
+ visibleRange: {
19
+ month: string;
20
+ twoMonths: string;
21
+ week: string;
22
+ continuous: string;
23
+ };
24
+ }>;
25
+ };
3
26
  export default config;
@@ -1,2 +1,2 @@
1
- export { DatePicker, type DatePickerProps } from "./datepicker";
1
+ export { ContinuousDatePicker, type ContinuousDatePickerProps, compareDates, DatePicker, type DatePickerActions, type DatePickerAriaLabels, type DatePickerCell, type DatePickerCellContentRenderProps, type DatePickerCellState, type DatePickerConstraint, type DatePickerConstraintContext, type DatePickerDate, type DatePickerMonth, type DatePickerMonthRange, type DatePickerMultipleProps, type DatePickerProps, type DatePickerRangeProps, type DatePickerRangeValue, type DatePickerSelectionMode, type DatePickerSingleProps, type DatePickerValue, type DatePickerVisibleRange, type DatePickerWeek, type DatePickerYearMonth, dateKey, dateOnOrAfter, dateOnOrBefore, excludeDates, isSameDate, maxSelectionCount, rangeDayCountAtLeast, rangeDayCountAtMost, TwoMonthDatePicker, type TwoMonthDatePickerProps, WeekDatePicker, type WeekDatePickerProps, } from "./datepicker";
2
2
  export { datepickerRecipe } from "./datepicker.recipe";
@@ -0,0 +1,35 @@
1
+ import * as React from "react";
2
+ import { type DatePickerProps } from "../datepicker";
3
+ export type DatePreset = {
4
+ label: React.ReactNode;
5
+ /** Thunk, not a Date: "Tomorrow" must be computed when the chip is pressed,
6
+ * not when the picker rendered — a long-lived page would otherwise offer a
7
+ * stale date. */
8
+ date: () => Date;
9
+ };
10
+ export type DatePickerFieldProps = Omit<React.ComponentPropsWithoutRef<"div">, "value" | "defaultValue" | "onChange"> & {
11
+ /** Controlled value. Omit to let the field manage it (see defaultValue). */
12
+ value?: Date | null;
13
+ defaultValue?: Date | null;
14
+ onChange?: (date: Date) => void;
15
+ placeholder?: string;
16
+ /** `default` = outlined trigger; `ghost` = transparent (for table cells). */
17
+ variant?: "default" | "ghost";
18
+ /** Formats the trigger label (default: e.g. "Jun 3, 2026"). */
19
+ format?: (date: Date) => string;
20
+ /** Quick-pick chips under the calendar. */
21
+ presets?: DatePreset[];
22
+ /** Forwarded to the calendar — constraints, locale, ariaLabels and the rest. */
23
+ calendarProps?: Omit<DatePickerProps, "value" | "defaultValue" | "onValueChange" | "selectionMode">;
24
+ "aria-label"?: string;
25
+ className?: string;
26
+ };
27
+ /**
28
+ * Attio's date field: a trigger showing the value, opening a calendar in a
29
+ * popover. This is what `DatePicker` used to be; `DatePicker` is now
30
+ * seed-design's bare calendar, and this composes it.
31
+ */
32
+ export declare function DatePickerField({ value, defaultValue, onChange, placeholder, variant, format, presets, calendarProps, "aria-label": ariaLabel, className, ...rest }: DatePickerFieldProps): React.JSX.Element;
33
+ export declare namespace DatePickerField {
34
+ var displayName: string;
35
+ }
@@ -0,0 +1,5 @@
1
+ declare const config: import("../..").RecipeConfig<{}>;
2
+ export declare const datepickerfieldRecipe: import("../..").RecipeFn<{}> & {
3
+ config: import("../..").RecipeConfig<{}>;
4
+ };
5
+ export default config;
@@ -0,0 +1,2 @@
1
+ export { DatePickerField, type DatePickerFieldProps, type DatePreset, } from "./datepickerfield";
2
+ export { datepickerfieldRecipe } from "./datepickerfield.recipe";
@@ -10,6 +10,8 @@ export type DialogProps = {
10
10
  /** Content width in px (clamped to 90vw). */
11
11
  width?: number;
12
12
  "aria-label"?: string;
13
+ /** aria-label on the close button (default "Close") — override for non-English UIs. */
14
+ closeLabel?: string;
13
15
  children?: React.ReactNode;
14
16
  };
15
17
  /**
@@ -17,7 +19,7 @@ export type DialogProps = {
17
19
  * Escape / outside-click dismissal) with the measured Attio modal surface.
18
20
  * Compose the body with `DialogBody` and actions with `DialogFooter`.
19
21
  */
20
- export declare function Dialog({ open, onOpenChange, title, icon, width, "aria-label": ariaLabel, children, }: DialogProps): React.JSX.Element | null;
22
+ export declare function Dialog({ open, onOpenChange, title, icon, width, "aria-label": ariaLabel, closeLabel, children, }: DialogProps): React.JSX.Element | null;
21
23
  export declare namespace Dialog {
22
24
  var displayName: string;
23
25
  }
@@ -1,9 +1,9 @@
1
- export type DividerProps = {
1
+ export type DividerProps = React.ComponentPropsWithoutRef<"hr"> & {
2
2
  orientation?: "horizontal" | "vertical";
3
3
  className?: string;
4
4
  };
5
5
  /** A hairline separator over `borderSubtle`, horizontal or vertical. */
6
- export declare function Divider({ orientation, className, }: DividerProps): import("react").JSX.Element;
6
+ export declare function Divider({ orientation, className, ...rest }: DividerProps): import("react").JSX.Element;
7
7
  export declare namespace Divider {
8
8
  var displayName: string;
9
9
  }
@@ -4,7 +4,7 @@ export type DonutSlice = {
4
4
  value: number;
5
5
  color?: string;
6
6
  };
7
- export type DonutChartProps = {
7
+ export type DonutChartProps = React.ComponentPropsWithoutRef<"div"> & {
8
8
  data: DonutSlice[];
9
9
  /** Ring diameter in px (default 120). */
10
10
  size?: number;
@@ -26,7 +26,7 @@ export type DonutChartProps = {
26
26
  * ring using the r=15.915 (circumference 100) trick so slices are percentages;
27
27
  * a centred total and an optional legend. `role="img"` with a summary.
28
28
  */
29
- export declare function DonutChart({ data, size, thickness, centerValue, centerCaption, legend, format, "aria-label": ariaLabel, className, }: DonutChartProps): React.JSX.Element;
29
+ export declare function DonutChart({ data, size, thickness, centerValue, centerCaption, legend, format, "aria-label": ariaLabel, className, ...rest }: DonutChartProps): React.JSX.Element;
30
30
  export declare namespace DonutChart {
31
31
  var displayName: string;
32
32
  }
@@ -7,6 +7,8 @@ export type DrawerProps = {
7
7
  title?: React.ReactNode;
8
8
  icon?: React.ReactNode;
9
9
  "aria-label"?: string;
10
+ /** aria-label on the close button (default "Close"). */
11
+ closeLabel?: string;
10
12
  children?: React.ReactNode;
11
13
  };
12
14
  /**
@@ -14,7 +16,7 @@ export type DrawerProps = {
14
16
  * Escape / outside-click dismissal) with a panel that slides in from the edge.
15
17
  * Compose the body with `DrawerBody` and actions with `DrawerFooter`.
16
18
  */
17
- export declare function Drawer({ open, onOpenChange, side, title, icon, "aria-label": ariaLabel, children, }: DrawerProps): React.JSX.Element | null;
19
+ export declare function Drawer({ open, onOpenChange, side, title, icon, "aria-label": ariaLabel, closeLabel, children, }: DrawerProps): React.JSX.Element | null;
18
20
  export declare namespace Drawer {
19
21
  var displayName: string;
20
22
  }
@@ -1,5 +1,5 @@
1
1
  import type * as React from "react";
2
- export type EmptyStateProps = {
2
+ export type EmptyStateProps = Omit<React.ComponentPropsWithoutRef<"div">, "title"> & {
3
3
  icon?: React.ReactNode;
4
4
  title: React.ReactNode;
5
5
  description?: React.ReactNode;
@@ -13,7 +13,7 @@ export type EmptyStateProps = {
13
13
  className?: string;
14
14
  };
15
15
  /** A centred empty-state panel — icon, title, description, optional action. */
16
- export declare function EmptyState({ icon, title, description, action, variant, className, }: EmptyStateProps): React.JSX.Element;
16
+ export declare function EmptyState({ icon, title, description, action, variant, className, ...rest }: EmptyStateProps): React.JSX.Element;
17
17
  export declare namespace EmptyState {
18
18
  var displayName: string;
19
19
  }
@@ -1,12 +1,15 @@
1
1
  import * as React from "react";
2
- export type FormFieldProps = {
2
+ export type FormFieldProps = React.ComponentPropsWithoutRef<"div"> & {
3
3
  label: React.ReactNode;
4
4
  /** `id` of the control — wires the label's `htmlFor`. */
5
5
  htmlFor?: string;
6
6
  /** Marks the field required (red asterisk). */
7
7
  required?: boolean;
8
- /** Shows a muted "(optional)" after the label. */
9
- optional?: boolean;
8
+ /** Shows a muted marker after the label when the field isn't required.
9
+ * `true` shows the default "(optional)" text; pass any node (e.g. a
10
+ * translated string) to show that instead — for non-English UIs, since
11
+ * the default text has no other override. */
12
+ optional?: boolean | React.ReactNode;
10
13
  /** Helper text under the control. */
11
14
  description?: React.ReactNode;
12
15
  /** Error message under the control (replaces description, coloured danger). */
@@ -20,7 +23,7 @@ export type FormFieldProps = {
20
23
  * above any control, with an optional description or error line below. When
21
24
  * `error` is set, it replaces the description and gets `aria-describedby` wiring.
22
25
  */
23
- export declare function FormField({ label, htmlFor, required, optional, description, error, children, className, }: FormFieldProps): React.JSX.Element;
26
+ export declare function FormField({ label, htmlFor, required, optional, description, error, children, className, ...rest }: FormFieldProps): React.JSX.Element;
24
27
  export declare namespace FormField {
25
28
  var displayName: string;
26
29
  }