@crisp-ui-kit/crisp 0.5.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 (472) hide show
  1. package/README.md +14 -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/board.css +9 -1
  10. package/dist/bulkbar.css +11 -3
  11. package/dist/button.css +15 -1
  12. package/dist/button.d.ts +2 -1
  13. package/dist/card.css +8 -0
  14. package/dist/checkbox.css +17 -1
  15. package/dist/cjs/components/accordion/accordion.js +69 -0
  16. package/dist/cjs/components/accordion/accordion.recipe.js +26 -0
  17. package/dist/cjs/components/accordion/index.js +7 -0
  18. package/dist/cjs/components/avatar/avatar.js +44 -0
  19. package/dist/cjs/components/avatar/avatar.recipe.js +42 -0
  20. package/dist/cjs/components/avatar/index.js +7 -0
  21. package/dist/cjs/components/avatargroup/avatargroup.js +52 -0
  22. package/dist/cjs/components/avatargroup/avatargroup.recipe.js +18 -0
  23. package/dist/cjs/components/avatargroup/index.js +7 -0
  24. package/dist/cjs/components/badge/badge.js +44 -0
  25. package/dist/cjs/components/badge/badge.recipe.js +68 -0
  26. package/dist/cjs/components/badge/index.js +7 -0
  27. package/dist/cjs/components/barchart/barchart.js +45 -0
  28. package/dist/cjs/components/barchart/barchart.recipe.js +34 -0
  29. package/dist/cjs/components/barchart/index.js +7 -0
  30. package/dist/cjs/components/breadcrumb/breadcrumb.js +53 -0
  31. package/dist/cjs/components/breadcrumb/breadcrumb.recipe.js +21 -0
  32. package/dist/cjs/components/breadcrumb/index.js +7 -0
  33. package/dist/cjs/components/bulkbar/bulkbar.js +53 -0
  34. package/dist/cjs/components/bulkbar/bulkbar.recipe.js +31 -0
  35. package/dist/cjs/components/bulkbar/index.js +8 -0
  36. package/dist/cjs/components/button/button.js +62 -0
  37. package/dist/cjs/components/button/button.recipe.js +58 -0
  38. package/dist/cjs/components/button/index.js +7 -0
  39. package/dist/cjs/components/callout/callout.js +25 -0
  40. package/dist/cjs/components/callout/callout.recipe.js +29 -0
  41. package/dist/cjs/components/callout/index.js +7 -0
  42. package/dist/cjs/components/card/card.js +54 -0
  43. package/dist/cjs/components/card/card.recipe.js +31 -0
  44. package/dist/cjs/components/card/index.js +10 -0
  45. package/dist/cjs/components/checkbox/checkbox.js +56 -0
  46. package/dist/cjs/components/checkbox/checkbox.recipe.js +34 -0
  47. package/dist/cjs/components/checkbox/index.js +7 -0
  48. package/dist/cjs/components/columncalc/columncalc.js +139 -0
  49. package/dist/cjs/components/columncalc/columncalc.recipe.js +33 -0
  50. package/dist/cjs/components/columncalc/index.js +10 -0
  51. package/dist/cjs/components/contextmenu/contextmenu.js +78 -0
  52. package/dist/cjs/components/contextmenu/contextmenu.recipe.js +24 -0
  53. package/dist/cjs/components/contextmenu/index.js +7 -0
  54. package/dist/cjs/components/datatable/datatable.js +508 -0
  55. package/dist/cjs/components/datatable/datatable.recipe.js +113 -0
  56. package/dist/cjs/components/datatable/index.js +7 -0
  57. package/dist/cjs/components/datepicker/datepicker.js +153 -0
  58. package/dist/cjs/components/datepicker/datepicker.recipe.js +180 -0
  59. package/dist/cjs/components/datepicker/index.js +19 -0
  60. package/dist/cjs/components/datepickerfield/datepickerfield.js +85 -0
  61. package/dist/cjs/components/datepickerfield/datepickerfield.recipe.js +44 -0
  62. package/dist/cjs/components/datepickerfield/index.js +7 -0
  63. package/dist/cjs/components/dialog/dialog.js +86 -0
  64. package/dist/cjs/components/dialog/dialog.recipe.js +35 -0
  65. package/dist/cjs/components/dialog/index.js +9 -0
  66. package/dist/cjs/components/divider/divider.js +10 -0
  67. package/dist/cjs/components/divider/divider.recipe.js +17 -0
  68. package/dist/cjs/components/divider/index.js +7 -0
  69. package/dist/cjs/components/donutchart/donutchart.js +41 -0
  70. package/dist/cjs/components/donutchart/donutchart.recipe.js +30 -0
  71. package/dist/cjs/components/donutchart/index.js +7 -0
  72. package/dist/cjs/components/drawer/drawer.js +80 -0
  73. package/dist/cjs/components/drawer/drawer.recipe.js +30 -0
  74. package/dist/cjs/components/drawer/index.js +9 -0
  75. package/dist/cjs/components/emptystate/emptystate.js +10 -0
  76. package/dist/cjs/components/emptystate/emptystate.recipe.js +34 -0
  77. package/dist/cjs/components/emptystate/index.js +7 -0
  78. package/dist/cjs/components/formfield/formfield.js +50 -0
  79. package/dist/cjs/components/formfield/formfield.recipe.js +22 -0
  80. package/dist/cjs/components/formfield/index.js +7 -0
  81. package/dist/cjs/components/input/index.js +7 -0
  82. package/dist/cjs/components/input/input.js +47 -0
  83. package/dist/cjs/components/input/input.recipe.js +59 -0
  84. package/dist/cjs/components/kbd/index.js +7 -0
  85. package/dist/cjs/components/kbd/kbd.js +44 -0
  86. package/dist/cjs/components/kbd/kbd.recipe.js +23 -0
  87. package/dist/cjs/components/linechart/index.js +7 -0
  88. package/dist/cjs/components/linechart/linechart.js +57 -0
  89. package/dist/cjs/components/linechart/linechart.recipe.js +35 -0
  90. package/dist/cjs/components/menu/index.js +14 -0
  91. package/dist/cjs/components/menu/menu-keyboard.js +117 -0
  92. package/dist/cjs/components/menu/menu.js +144 -0
  93. package/dist/cjs/components/menu/menu.recipe.js +54 -0
  94. package/dist/cjs/components/multiselect/index.js +7 -0
  95. package/dist/cjs/components/multiselect/multiselect.js +161 -0
  96. package/dist/cjs/components/multiselect/multiselect.recipe.js +71 -0
  97. package/dist/cjs/components/popover/index.js +7 -0
  98. package/dist/cjs/components/popover/popover.js +106 -0
  99. package/dist/cjs/components/popover/popover.recipe.js +21 -0
  100. package/dist/cjs/components/progress/index.js +7 -0
  101. package/dist/cjs/components/progress/progress.js +26 -0
  102. package/dist/cjs/components/progress/progress.recipe.js +20 -0
  103. package/dist/cjs/components/radiogroup/index.js +8 -0
  104. package/dist/cjs/components/radiogroup/radiogroup.js +83 -0
  105. package/dist/cjs/components/radiogroup/radiogroup.recipe.js +40 -0
  106. package/dist/cjs/components/resizablepanel/index.js +12 -0
  107. package/dist/cjs/components/resizablepanel/resizablepanel.js +176 -0
  108. package/dist/cjs/components/resizablepanel/resizablepanel.recipe.js +69 -0
  109. package/dist/cjs/components/segmented/index.js +7 -0
  110. package/dist/cjs/components/segmented/segmented.js +95 -0
  111. package/dist/cjs/components/segmented/segmented.recipe.js +23 -0
  112. package/dist/cjs/components/select/index.js +7 -0
  113. package/dist/cjs/components/select/select.js +180 -0
  114. package/dist/cjs/components/select/select.recipe.js +79 -0
  115. package/dist/cjs/components/skeleton/index.js +7 -0
  116. package/dist/cjs/components/skeleton/skeleton.js +13 -0
  117. package/dist/cjs/components/skeleton/skeleton.recipe.js +17 -0
  118. package/dist/cjs/components/spinner/index.js +7 -0
  119. package/dist/cjs/components/spinner/spinner.js +15 -0
  120. package/dist/cjs/components/spinner/spinner.recipe.js +16 -0
  121. package/dist/cjs/components/stagebar/index.js +7 -0
  122. package/dist/cjs/components/stagebar/stagebar.js +26 -0
  123. package/dist/cjs/components/stagebar/stagebar.recipe.js +17 -0
  124. package/dist/cjs/components/statcard/index.js +7 -0
  125. package/dist/cjs/components/statcard/statcard.js +15 -0
  126. package/dist/cjs/components/statcard/statcard.recipe.js +37 -0
  127. package/dist/cjs/components/switch/index.js +7 -0
  128. package/dist/cjs/components/switch/switch.js +58 -0
  129. package/dist/cjs/components/switch/switch.recipe.js +29 -0
  130. package/dist/cjs/components/table/index.js +14 -0
  131. package/dist/cjs/components/table/table.js +66 -0
  132. package/dist/cjs/components/table/table.recipe.js +43 -0
  133. package/dist/cjs/components/tabletoolbar/index.js +20 -0
  134. package/dist/cjs/components/tabletoolbar/tabletoolbar.chrome.js +84 -0
  135. package/dist/cjs/components/tabletoolbar/tabletoolbar.js +237 -0
  136. package/dist/cjs/components/tabletoolbar/tabletoolbar.recipe.js +26 -0
  137. package/dist/cjs/components/tabs/index.js +7 -0
  138. package/dist/cjs/components/tabs/tabs.js +106 -0
  139. package/dist/cjs/components/tabs/tabs.recipe.js +36 -0
  140. package/dist/cjs/components/textarea/index.js +7 -0
  141. package/dist/cjs/components/textarea/textarea.js +56 -0
  142. package/dist/cjs/components/textarea/textarea.recipe.js +46 -0
  143. package/dist/cjs/components/toast/index.js +8 -0
  144. package/dist/cjs/components/toast/toast.js +95 -0
  145. package/dist/cjs/components/toast/toast.recipe.js +31 -0
  146. package/dist/cjs/components/tooltip/index.js +7 -0
  147. package/dist/cjs/components/tooltip/tooltip.js +95 -0
  148. package/dist/cjs/components/tooltip/tooltip.recipe.js +16 -0
  149. package/dist/cjs/components/wheelpicker/index.js +7 -0
  150. package/dist/cjs/components/wheelpicker/wheelpicker.js +134 -0
  151. package/dist/cjs/components/wheelpicker/wheelpicker.recipe.js +95 -0
  152. package/dist/cjs/core/cx.js +8 -0
  153. package/dist/cjs/core/define.js +6 -0
  154. package/dist/cjs/core/index.js +11 -0
  155. package/dist/cjs/core/primitive.js +49 -0
  156. package/dist/cjs/core/resolve.js +44 -0
  157. package/dist/cjs/core/types.js +2 -0
  158. package/dist/cjs/index.js +92 -0
  159. package/dist/cjs/package.json +3 -0
  160. package/dist/cjs/product/appshell/appshell.js +104 -0
  161. package/dist/cjs/product/appshell/appshell.recipe.js +30 -0
  162. package/dist/cjs/product/appshell/index.js +7 -0
  163. package/dist/cjs/product/authshell/authshell.js +21 -0
  164. package/dist/cjs/product/authshell/authshell.recipe.js +67 -0
  165. package/dist/cjs/product/authshell/index.js +7 -0
  166. package/dist/cjs/product/board/board.js +78 -0
  167. package/dist/cjs/product/board/board.recipe.js +31 -0
  168. package/dist/cjs/product/board/index.js +7 -0
  169. package/dist/cjs/product/command/command.js +238 -0
  170. package/dist/cjs/product/command/command.recipe.js +47 -0
  171. package/dist/cjs/product/command/index.js +8 -0
  172. package/dist/cjs/product/entitycard/entitycard.js +14 -0
  173. package/dist/cjs/product/entitycard/entitycard.recipe.js +32 -0
  174. package/dist/cjs/product/entitycard/index.js +7 -0
  175. package/dist/cjs/product/flowcanvas/flowcanvas.js +121 -0
  176. package/dist/cjs/product/flowcanvas/flowcanvas.recipe.js +28 -0
  177. package/dist/cjs/product/flowcanvas/index.js +7 -0
  178. package/dist/cjs/product/inbox/inbox.js +16 -0
  179. package/dist/cjs/product/inbox/inbox.recipe.js +46 -0
  180. package/dist/cjs/product/inbox/index.js +7 -0
  181. package/dist/cjs/product/listpage/index.js +8 -0
  182. package/dist/cjs/product/listpage/listpage.js +25 -0
  183. package/dist/cjs/product/listpage/listpage.recipe.js +46 -0
  184. package/dist/cjs/product/navitem/index.js +5 -0
  185. package/dist/cjs/product/navitem/navitem.js +44 -0
  186. package/dist/cjs/product/navitem/navitem.recipe.js +36 -0
  187. package/dist/cjs/product/onboarding/index.js +7 -0
  188. package/dist/cjs/product/onboarding/onboarding.js +17 -0
  189. package/dist/cjs/product/onboarding/onboarding.recipe.js +44 -0
  190. package/dist/cjs/product/recordpage/index.js +7 -0
  191. package/dist/cjs/product/recordpage/recordpage.js +409 -0
  192. package/dist/cjs/product/recordpage/recordpage.recipe.js +162 -0
  193. package/dist/cjs/product/recordpanel/index.js +7 -0
  194. package/dist/cjs/product/recordpanel/recordpanel.js +83 -0
  195. package/dist/cjs/product/recordpanel/recordpanel.recipe.js +51 -0
  196. package/dist/cjs/product/recordstable/company-logos.js +29 -0
  197. package/dist/cjs/product/recordstable/index.js +10 -0
  198. package/dist/cjs/product/recordstable/recordstable.js +1092 -0
  199. package/dist/cjs/product/recordstable/recordstable.recipe.js +152 -0
  200. package/dist/cjs/product/recordstable/recordstable.tag.js +21 -0
  201. package/dist/cjs/product/richtext/index.js +7 -0
  202. package/dist/cjs/product/richtext/richtext.js +147 -0
  203. package/dist/cjs/product/richtext/richtext.recipe.js +43 -0
  204. package/dist/cjs/product/settingssection/index.js +7 -0
  205. package/dist/cjs/product/settingssection/settingssection.js +14 -0
  206. package/dist/cjs/product/settingssection/settingssection.recipe.js +23 -0
  207. package/dist/cjs/product/settingsshell/index.js +7 -0
  208. package/dist/cjs/product/settingsshell/settingsshell.js +59 -0
  209. package/dist/cjs/product/settingsshell/settingsshell.recipe.js +46 -0
  210. package/dist/cjs/product/sidebar/index.js +13 -0
  211. package/dist/cjs/product/sidebar/sidebar.js +148 -0
  212. package/dist/cjs/product/sidebar/sidebar.recipe.js +46 -0
  213. package/dist/cjs/product/tasklist/index.js +7 -0
  214. package/dist/cjs/product/tasklist/tasklist.js +19 -0
  215. package/dist/cjs/product/tasklist/tasklist.recipe.js +38 -0
  216. package/dist/cjs/product/trialbanner/index.js +7 -0
  217. package/dist/cjs/product/trialbanner/trialbanner.js +13 -0
  218. package/dist/cjs/product/trialbanner/trialbanner.recipe.js +32 -0
  219. package/dist/cjs/product/viewtoggle/index.js +7 -0
  220. package/dist/cjs/product/viewtoggle/viewtoggle.js +55 -0
  221. package/dist/cjs/product/viewtoggle/viewtoggle.recipe.js +27 -0
  222. package/dist/cjs/tokens/contract.js +21 -0
  223. package/dist/cjs/tokens/elevation.js +47 -0
  224. package/dist/cjs/tokens/index.js +18 -0
  225. package/dist/cjs/tokens/palette.js +63 -0
  226. package/dist/cjs/tokens/scale.js +70 -0
  227. package/dist/cjs/tokens/semantic.js +57 -0
  228. package/dist/columncalc.css +26 -0
  229. package/dist/columncalc.d.ts +7 -0
  230. package/dist/command.css +34 -1
  231. package/dist/contextmenu.css +10 -2
  232. package/dist/datatable.css +60 -14
  233. package/dist/datepicker.css +165 -19
  234. package/dist/datepicker.d.ts +2 -2
  235. package/dist/datepickerfield.css +27 -0
  236. package/dist/datepickerfield.d.ts +7 -0
  237. package/dist/dialog.css +10 -2
  238. package/dist/donutchart.css +8 -0
  239. package/dist/drawer.css +13 -5
  240. package/dist/entitycard.css +10 -2
  241. package/dist/esm/components/accordion/accordion.js +17 -16
  242. package/dist/esm/components/accordion/accordion.recipe.js +1 -1
  243. package/dist/esm/components/avatargroup/avatargroup.js +2 -2
  244. package/dist/esm/components/avatargroup/avatargroup.recipe.js +2 -2
  245. package/dist/esm/components/badge/badge.recipe.js +4 -4
  246. package/dist/esm/components/barchart/barchart.js +15 -2
  247. package/dist/esm/components/barchart/barchart.recipe.js +10 -5
  248. package/dist/esm/components/breadcrumb/breadcrumb.js +2 -2
  249. package/dist/esm/components/bulkbar/bulkbar.js +2 -2
  250. package/dist/esm/components/bulkbar/bulkbar.recipe.js +4 -4
  251. package/dist/esm/components/button/button.js +13 -2
  252. package/dist/esm/components/button/button.recipe.js +20 -4
  253. package/dist/esm/components/callout/callout.js +2 -2
  254. package/dist/esm/components/checkbox/checkbox.recipe.js +9 -1
  255. package/dist/esm/components/columncalc/columncalc.js +100 -0
  256. package/dist/esm/components/columncalc/columncalc.recipe.js +30 -0
  257. package/dist/esm/components/columncalc/index.js +1 -0
  258. package/dist/esm/components/contextmenu/contextmenu.recipe.js +4 -4
  259. package/dist/esm/components/datatable/datatable.js +276 -49
  260. package/dist/esm/components/datatable/datatable.recipe.js +54 -16
  261. package/dist/esm/components/datepicker/datepicker.js +104 -53
  262. package/dist/esm/components/datepicker/datepicker.recipe.js +170 -25
  263. package/dist/esm/components/datepicker/index.js +1 -1
  264. package/dist/esm/components/datepickerfield/datepickerfield.js +49 -0
  265. package/dist/esm/components/datepickerfield/datepickerfield.recipe.js +41 -0
  266. package/dist/esm/components/datepickerfield/index.js +2 -0
  267. package/dist/esm/components/dialog/dialog.js +2 -2
  268. package/dist/esm/components/dialog/dialog.recipe.js +4 -4
  269. package/dist/esm/components/divider/divider.js +2 -2
  270. package/dist/esm/components/donutchart/donutchart.js +2 -2
  271. package/dist/esm/components/drawer/drawer.js +2 -2
  272. package/dist/esm/components/drawer/drawer.recipe.js +6 -6
  273. package/dist/esm/components/emptystate/emptystate.js +2 -2
  274. package/dist/esm/components/formfield/formfield.js +2 -2
  275. package/dist/esm/components/input/input.js +6 -3
  276. package/dist/esm/components/input/input.recipe.js +38 -5
  277. package/dist/esm/components/linechart/linechart.js +15 -2
  278. package/dist/esm/components/linechart/linechart.recipe.js +10 -5
  279. package/dist/esm/components/menu/index.js +1 -0
  280. package/dist/esm/components/menu/menu-keyboard.js +80 -0
  281. package/dist/esm/components/menu/menu.js +27 -60
  282. package/dist/esm/components/menu/menu.recipe.js +5 -5
  283. package/dist/esm/components/multiselect/multiselect.js +10 -3
  284. package/dist/esm/components/multiselect/multiselect.recipe.js +8 -8
  285. package/dist/esm/components/popover/popover.js +2 -2
  286. package/dist/esm/components/popover/popover.recipe.js +2 -2
  287. package/dist/esm/components/progress/progress.js +3 -3
  288. package/dist/esm/components/radiogroup/radiogroup.js +2 -2
  289. package/dist/esm/components/radiogroup/radiogroup.recipe.js +1 -1
  290. package/dist/esm/components/resizablepanel/index.js +2 -0
  291. package/dist/esm/components/resizablepanel/resizablepanel.js +135 -0
  292. package/dist/esm/components/resizablepanel/resizablepanel.recipe.js +66 -0
  293. package/dist/esm/components/segmented/segmented.js +2 -2
  294. package/dist/esm/components/select/select.js +2 -2
  295. package/dist/esm/components/select/select.recipe.js +6 -6
  296. package/dist/esm/components/skeleton/skeleton.js +5 -2
  297. package/dist/esm/components/spinner/spinner.js +3 -2
  298. package/dist/esm/components/stagebar/stagebar.js +2 -2
  299. package/dist/esm/components/statcard/statcard.js +2 -2
  300. package/dist/esm/components/table/table.recipe.js +6 -6
  301. package/dist/esm/components/tabletoolbar/tabletoolbar.chrome.js +3 -3
  302. package/dist/esm/components/tabletoolbar/tabletoolbar.js +21 -13
  303. package/dist/esm/components/tabs/tabs.js +2 -2
  304. package/dist/esm/components/tabs/tabs.recipe.js +4 -4
  305. package/dist/esm/components/textarea/textarea.js +5 -5
  306. package/dist/esm/components/textarea/textarea.recipe.js +16 -4
  307. package/dist/esm/components/toast/toast.js +4 -4
  308. package/dist/esm/components/toast/toast.recipe.js +2 -2
  309. package/dist/esm/components/tooltip/tooltip.js +21 -7
  310. package/dist/esm/components/wheelpicker/index.js +2 -0
  311. package/dist/esm/components/wheelpicker/wheelpicker.js +98 -0
  312. package/dist/esm/components/wheelpicker/wheelpicker.recipe.js +92 -0
  313. package/dist/esm/index.js +5 -0
  314. package/dist/esm/product/appshell/appshell.js +33 -9
  315. package/dist/esm/product/appshell/appshell.recipe.js +4 -4
  316. package/dist/esm/product/authshell/authshell.js +18 -0
  317. package/dist/esm/product/authshell/authshell.recipe.js +64 -0
  318. package/dist/esm/product/authshell/index.js +2 -0
  319. package/dist/esm/product/board/board.js +2 -2
  320. package/dist/esm/product/board/board.recipe.js +1 -1
  321. package/dist/esm/product/command/command.js +19 -6
  322. package/dist/esm/product/command/command.recipe.js +27 -2
  323. package/dist/esm/product/entitycard/entitycard.js +2 -2
  324. package/dist/esm/product/entitycard/entitycard.recipe.js +2 -2
  325. package/dist/esm/product/flowcanvas/flowcanvas.js +4 -4
  326. package/dist/esm/product/inbox/inbox.recipe.js +1 -1
  327. package/dist/esm/product/listpage/listpage.recipe.js +3 -3
  328. package/dist/esm/product/navitem/navitem.recipe.js +13 -1
  329. package/dist/esm/product/onboarding/onboarding.js +2 -2
  330. package/dist/esm/product/onboarding/onboarding.recipe.js +2 -2
  331. package/dist/esm/product/recordpage/recordpage.js +133 -47
  332. package/dist/esm/product/recordpage/recordpage.recipe.js +19 -17
  333. package/dist/esm/product/recordpanel/recordpanel.js +4 -4
  334. package/dist/esm/product/recordpanel/recordpanel.recipe.js +12 -16
  335. package/dist/esm/product/recordstable/recordstable.js +157 -66
  336. package/dist/esm/product/recordstable/recordstable.recipe.js +23 -23
  337. package/dist/esm/product/recordstable/recordstable.tag.js +18 -0
  338. package/dist/esm/product/richtext/richtext.js +3 -3
  339. package/dist/esm/product/richtext/richtext.recipe.js +3 -3
  340. package/dist/esm/product/settingssection/settingssection.js +2 -2
  341. package/dist/esm/product/settingsshell/settingsshell.js +2 -2
  342. package/dist/esm/product/settingsshell/settingsshell.recipe.js +7 -2
  343. package/dist/esm/product/sidebar/sidebar.js +2 -2
  344. package/dist/esm/product/sidebar/sidebar.recipe.js +27 -2
  345. package/dist/esm/product/tasklist/tasklist.js +4 -4
  346. package/dist/esm/product/trialbanner/trialbanner.js +2 -2
  347. package/dist/esm/product/trialbanner/trialbanner.recipe.js +2 -2
  348. package/dist/esm/product/viewtoggle/viewtoggle.js +10 -2
  349. package/dist/esm/product/viewtoggle/viewtoggle.recipe.js +1 -1
  350. package/dist/esm/tokens/elevation.js +44 -0
  351. package/dist/esm/tokens/index.js +1 -0
  352. package/dist/esm/tokens/palette.js +30 -0
  353. package/dist/esm/tokens/scale.js +7 -0
  354. package/dist/esm/tokens/semantic.js +24 -0
  355. package/dist/inbox.css +9 -1
  356. package/dist/input.css +32 -4
  357. package/dist/linechart.css +5 -5
  358. package/dist/listpage.css +11 -3
  359. package/dist/menu.css +11 -3
  360. package/dist/multiselect.css +14 -6
  361. package/dist/native/tokens.d.ts +16 -0
  362. package/dist/native/tokens.js +221 -0
  363. package/dist/navitem.css +21 -1
  364. package/dist/onboarding.css +10 -2
  365. package/dist/popover.css +8 -0
  366. package/dist/progress.css +8 -0
  367. package/dist/radiogroup.css +9 -1
  368. package/dist/recordpage.css +22 -12
  369. package/dist/recordpanel.css +25 -15
  370. package/dist/recordstable.css +37 -23
  371. package/dist/resizablepanel.css +53 -0
  372. package/dist/resizablepanel.d.ts +7 -0
  373. package/dist/richtext.css +11 -3
  374. package/dist/segmented.css +8 -0
  375. package/dist/select.css +12 -4
  376. package/dist/settingsshell.css +15 -2
  377. package/dist/sidebar.css +34 -1
  378. package/dist/skeleton.css +8 -0
  379. package/dist/spinner.css +8 -0
  380. package/dist/stagebar.css +8 -0
  381. package/dist/styles.css +2051 -1111
  382. package/dist/switch.css +8 -0
  383. package/dist/table.css +14 -6
  384. package/dist/tabletoolbar.css +8 -0
  385. package/dist/tabs.css +12 -4
  386. package/dist/tasklist.css +8 -0
  387. package/dist/textarea.css +23 -3
  388. package/dist/toast.css +10 -2
  389. package/dist/tokens.css +29 -0
  390. package/dist/tokens.json +217 -0
  391. package/dist/tooltip.css +8 -0
  392. package/dist/trialbanner.css +8 -0
  393. package/dist/types/components/accordion/accordion.d.ts +10 -8
  394. package/dist/types/components/avatargroup/avatargroup.d.ts +2 -2
  395. package/dist/types/components/barchart/barchart.d.ts +4 -2
  396. package/dist/types/components/breadcrumb/breadcrumb.d.ts +2 -2
  397. package/dist/types/components/bulkbar/bulkbar.d.ts +4 -2
  398. package/dist/types/components/button/button.d.ts +8 -0
  399. package/dist/types/components/button/button.recipe.d.ts +12 -0
  400. package/dist/types/components/callout/callout.d.ts +2 -2
  401. package/dist/types/components/columncalc/columncalc.d.ts +49 -0
  402. package/dist/types/components/columncalc/columncalc.recipe.d.ts +3 -0
  403. package/dist/types/components/columncalc/index.d.ts +1 -0
  404. package/dist/types/components/datatable/datatable.d.ts +58 -3
  405. package/dist/types/components/datepicker/datepicker.d.ts +41 -18
  406. package/dist/types/components/datepicker/datepicker.recipe.d.ts +25 -2
  407. package/dist/types/components/datepicker/index.d.ts +1 -1
  408. package/dist/types/components/datepickerfield/datepickerfield.d.ts +35 -0
  409. package/dist/types/components/datepickerfield/datepickerfield.recipe.d.ts +5 -0
  410. package/dist/types/components/datepickerfield/index.d.ts +2 -0
  411. package/dist/types/components/dialog/dialog.d.ts +3 -1
  412. package/dist/types/components/divider/divider.d.ts +2 -2
  413. package/dist/types/components/donutchart/donutchart.d.ts +2 -2
  414. package/dist/types/components/drawer/drawer.d.ts +3 -1
  415. package/dist/types/components/emptystate/emptystate.d.ts +2 -2
  416. package/dist/types/components/formfield/formfield.d.ts +7 -4
  417. package/dist/types/components/input/input.d.ts +8 -2
  418. package/dist/types/components/linechart/linechart.d.ts +4 -2
  419. package/dist/types/components/menu/index.d.ts +1 -0
  420. package/dist/types/components/menu/menu-keyboard.d.ts +33 -0
  421. package/dist/types/components/menu/menu.d.ts +7 -1
  422. package/dist/types/components/multiselect/multiselect.d.ts +8 -4
  423. package/dist/types/components/popover/popover.d.ts +4 -1
  424. package/dist/types/components/progress/progress.d.ts +2 -2
  425. package/dist/types/components/radiogroup/radiogroup.d.ts +2 -2
  426. package/dist/types/components/resizablepanel/index.d.ts +2 -0
  427. package/dist/types/components/resizablepanel/resizablepanel.d.ts +75 -0
  428. package/dist/types/components/resizablepanel/resizablepanel.recipe.d.ts +3 -0
  429. package/dist/types/components/segmented/segmented.d.ts +2 -2
  430. package/dist/types/components/select/select.d.ts +2 -2
  431. package/dist/types/components/skeleton/skeleton.d.ts +2 -2
  432. package/dist/types/components/spinner/spinner.d.ts +2 -2
  433. package/dist/types/components/stagebar/stagebar.d.ts +2 -2
  434. package/dist/types/components/statcard/statcard.d.ts +2 -2
  435. package/dist/types/components/tabletoolbar/tabletoolbar.d.ts +28 -2
  436. package/dist/types/components/tabs/tabs.d.ts +2 -2
  437. package/dist/types/components/toast/toast.d.ts +7 -1
  438. package/dist/types/components/tooltip/tooltip.d.ts +8 -1
  439. package/dist/types/components/wheelpicker/index.d.ts +2 -0
  440. package/dist/types/components/wheelpicker/wheelpicker.d.ts +37 -0
  441. package/dist/types/components/wheelpicker/wheelpicker.recipe.d.ts +26 -0
  442. package/dist/types/index.d.ts +5 -0
  443. package/dist/types/product/appshell/appshell.d.ts +16 -2
  444. package/dist/types/product/authshell/authshell.d.ts +28 -0
  445. package/dist/types/product/authshell/authshell.recipe.d.ts +3 -0
  446. package/dist/types/product/authshell/index.d.ts +2 -0
  447. package/dist/types/product/board/board.d.ts +2 -2
  448. package/dist/types/product/command/command.d.ts +25 -1
  449. package/dist/types/product/entitycard/entitycard.d.ts +2 -2
  450. package/dist/types/product/flowcanvas/flowcanvas.d.ts +9 -1
  451. package/dist/types/product/onboarding/onboarding.d.ts +7 -1
  452. package/dist/types/product/recordpage/recordpage.d.ts +65 -1
  453. package/dist/types/product/recordpanel/recordpanel.d.ts +8 -2
  454. package/dist/types/product/recordstable/recordstable.d.ts +90 -1
  455. package/dist/types/product/recordstable/recordstable.tag.d.ts +10 -0
  456. package/dist/types/product/richtext/richtext.d.ts +5 -1
  457. package/dist/types/product/settingssection/settingssection.d.ts +2 -2
  458. package/dist/types/product/settingsshell/settingsshell.d.ts +6 -2
  459. package/dist/types/product/sidebar/sidebar.d.ts +8 -0
  460. package/dist/types/product/tasklist/tasklist.d.ts +5 -1
  461. package/dist/types/product/trialbanner/trialbanner.d.ts +2 -2
  462. package/dist/types/product/viewtoggle/viewtoggle.d.ts +11 -5
  463. package/dist/types/tokens/contract.d.ts +14 -3
  464. package/dist/types/tokens/elevation.d.ts +44 -0
  465. package/dist/types/tokens/index.d.ts +1 -0
  466. package/dist/types/tokens/palette.d.ts +40 -0
  467. package/dist/types/tokens/scale.d.ts +7 -0
  468. package/dist/types/tokens/semantic.d.ts +19 -0
  469. package/dist/viewtoggle.css +9 -1
  470. package/dist/wheelpicker.css +68 -0
  471. package/dist/wheelpicker.d.ts +7 -0
  472. package/package.json +160 -68
@@ -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";
@@ -10,6 +10,9 @@ export type EntityValue = {
10
10
  export type DataCellType = "text" | "entity" | "tags" | "status" | "date" | "number" | "currency";
11
11
  export type DataTableColumn<T> = {
12
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. */
13
16
  header: React.ReactNode;
14
17
  /** Built-in rich renderer: entity (avatar+name), tags (colour pills), status
15
18
  * (dot), date, number, currency. Overridden by `render`. */
@@ -43,6 +46,10 @@ export type DataTableColumn<T> = {
43
46
  format?: (value: unknown, row: T) => string;
44
47
  /** Footer summary for this column (shown when any column supplies one). */
45
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;
46
53
  };
47
54
  export type SortState = {
48
55
  key: string;
@@ -50,20 +57,63 @@ export type SortState = {
50
57
  };
51
58
  export type DataTableProps<T extends {
52
59
  id: string;
53
- }> = {
60
+ }> = Omit<React.ComponentPropsWithoutRef<"div">, "children" | "onSelect"> & {
54
61
  columns: DataTableColumn<T>[];
55
62
  data: T[];
56
63
  /** Show a leading selection column with a select-all header checkbox. */
57
64
  selectable?: boolean;
58
65
  selectedIds?: string[];
59
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;
60
75
  /** Controlled sort (omit for self-managed; seed with `defaultSort`). */
61
- sort?: SortState | null;
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;
62
108
  defaultSort?: SortState;
63
109
  onSortChange?: (s: SortState | null) => void;
64
110
  /** Show a search box that filters rows across filterable columns. */
65
111
  filterable?: boolean;
66
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;
67
117
  /** Commit handler for inline edits. */
68
118
  onEdit?: (id: string, key: string, value: string) => void;
69
119
  /** Sticky the first column(s) with a horizontal scroll shadow (default true). */
@@ -85,13 +135,18 @@ export type DataTableProps<T extends {
85
135
  empty?: React.ReactNode;
86
136
  /** Show the "N of M" count on the right of the toolbar (default true). */
87
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;
88
143
  /** Extra toolbar content (e.g. buttons) on the right of the toolbar. */
89
144
  toolbar?: React.ReactNode;
90
145
  className?: string;
91
146
  };
92
147
  export declare function DataTable<T extends {
93
148
  id: string;
94
- }>({ columns, data, selectable, selectedIds, onSelectionChange, sort: sortProp, defaultSort, onSortChange, filterable, searchPlaceholder, onEdit, stickyFirst, avatarTone, surface, interactive, onRowClick, onAddRow, addRowLabel, empty, showCount, toolbar, className, }: DataTableProps<T>): React.JSX.Element;
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;
95
150
  export declare namespace DataTable {
96
151
  var displayName: string;
97
152
  }
@@ -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
  }
@@ -1,7 +1,10 @@
1
1
  import * as React from "react";
2
2
  import type { VariantProps } from "../../core";
3
3
  import { inputRecipe } from "./input.recipe";
4
- export type InputProps = Omit<React.ComponentPropsWithoutRef<"input">, "size"> & VariantProps<typeof inputRecipe>;
4
+ export type InputProps = Omit<React.ComponentPropsWithoutRef<"input">, "size"> & VariantProps<typeof inputRecipe> & {
5
+ /** Class for the wrapper that draws the field chrome and focus ring. */
6
+ className?: string;
7
+ };
5
8
  export declare const Input: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "size"> & VariantProps<import("../..").RecipeFn<{
6
9
  size: {
7
10
  medium: string;
@@ -29,4 +32,7 @@ export declare const Input: React.ForwardRefExoticComponent<Omit<Omit<React.Deta
29
32
  fontSize: string;
30
33
  };
31
34
  };
32
- }> & React.RefAttributes<HTMLInputElement>>;
35
+ }> & {
36
+ /** Class for the wrapper that draws the field chrome and focus ring. */
37
+ className?: string;
38
+ } & React.RefAttributes<HTMLInputElement>>;
@@ -3,7 +3,7 @@ export type LinePoint = {
3
3
  label: string;
4
4
  value: number;
5
5
  };
6
- export type LineChartProps = {
6
+ export type LineChartProps = Omit<React.ComponentPropsWithoutRef<"div">, "color"> & {
7
7
  data: LinePoint[];
8
8
  /** Overall height in px (default 240). */
9
9
  height?: number;
@@ -19,6 +19,8 @@ export type LineChartProps = {
19
19
  dots?: boolean;
20
20
  /** Formats axis ticks and point values. */
21
21
  format?: (n: number) => string;
22
+ /** Pins the value-axis gutter width in px, overriding the width auto-derived from the longest tick label. */
23
+ yAxisWidth?: number;
22
24
  /** Category-axis title, shown centred below the labels. */
23
25
  xAxisTitle?: React.ReactNode;
24
26
  "aria-label"?: string;
@@ -29,7 +31,7 @@ export type LineChartProps = {
29
31
  * A stretched SVG line/area (non-scaling stroke keeps it crisp) over dashed
30
32
  * gridlines; dots are HTML so they stay round. `role="img"` with a summary.
31
33
  */
32
- export declare function LineChart({ data, height, max, ticks, color, area, dots, format, xAxisTitle, "aria-label": ariaLabel, className, }: LineChartProps): React.JSX.Element;
34
+ export declare function LineChart({ data, height, max, ticks, color, area, dots, format, yAxisWidth, xAxisTitle, "aria-label": ariaLabel, className, ...rest }: LineChartProps): React.JSX.Element;
33
35
  export declare namespace LineChart {
34
36
  var displayName: string;
35
37
  }
@@ -1,2 +1,3 @@
1
1
  export { Menu, MenuCheckboxItem, type MenuCheckboxItemProps, MenuItem, type MenuItemProps, MenuLabel, type MenuProps, MenuSeparator, } from "./menu";
2
2
  export { menuRecipe } from "./menu.recipe";
3
+ export { MENU_ITEM_SELECTOR, type UseMenuKeyboardOptions, useMenuKeyboard, } from "./menu-keyboard";
@@ -0,0 +1,33 @@
1
+ import * as React from "react";
2
+ /**
3
+ * The elements a `role="menu"` may own, minus the disabled ones. Kept here so
4
+ * every menu surface in crisp agrees on what counts as an item.
5
+ */
6
+ export declare const MENU_ITEM_SELECTOR: string;
7
+ export type UseMenuKeyboardOptions = {
8
+ /** Whether the menu surface is currently rendered. */
9
+ open: boolean;
10
+ /** Close it. Callers that have a trigger should restore focus to it here. */
11
+ close: () => void;
12
+ /**
13
+ * Close it WITHOUT moving focus, for Tab — the browser is already taking
14
+ * focus somewhere else, and yanking it back to the trigger first would send
15
+ * the user to the wrong place.
16
+ */
17
+ dismiss?: () => void;
18
+ /** The element carrying `role="menu"`. */
19
+ contentRef: React.RefObject<HTMLElement | null>;
20
+ };
21
+ /**
22
+ * The WAI-ARIA menu keyboard model: focus the first item on open, ↑/↓ to move
23
+ * (wrapping), Home/End to jump, printable characters for typeahead, Esc to
24
+ * close, Tab to dismiss. Returns the `onKeyDown` to put on the menu element.
25
+ *
26
+ * Extracted from `Menu` so the table surfaces, which build their own popovers
27
+ * against measured positions, get the identical model instead of a second
28
+ * partial one.
29
+ */
30
+ export declare function useMenuKeyboard({ open, close, dismiss, contentRef, }: UseMenuKeyboardOptions): {
31
+ onKeyDown: (e: React.KeyboardEvent) => void;
32
+ items: () => HTMLElement[];
33
+ };
@@ -5,6 +5,12 @@ export type MenuProps = {
5
5
  children: React.ReactNode;
6
6
  /** Align the menu to the start (left) or end (right) of the trigger. */
7
7
  align?: "start" | "end";
8
+ /** Controlled open state. Omit to let Menu manage it (see defaultOpen). */
9
+ open?: boolean;
10
+ /** Initially open, when uncontrolled. */
11
+ defaultOpen?: boolean;
12
+ /** Fires with the next open state, controlled or not. */
13
+ onOpenChange?: (open: boolean) => void;
8
14
  className?: string;
9
15
  "aria-label"?: string;
10
16
  };
@@ -15,7 +21,7 @@ export type MenuProps = {
15
21
  * typeahead, Enter/Space select, Esc closes and returns focus to the trigger);
16
22
  * closes on outside click. Flips up / right-aligns when space is tight.
17
23
  */
18
- export declare function Menu({ trigger, children, align, className, "aria-label": ariaLabel, }: MenuProps): React.JSX.Element;
24
+ export declare function Menu({ trigger, children, align, open: openProp, defaultOpen, onOpenChange, className, "aria-label": ariaLabel, }: MenuProps): React.JSX.Element;
19
25
  export declare namespace Menu {
20
26
  var displayName: string;
21
27
  }
@@ -5,10 +5,14 @@ export type MultiSelectOption = {
5
5
  /** Chip colour tone; falls back to a deterministic pastel per value. */
6
6
  tone?: string;
7
7
  };
8
- export type MultiSelectProps = {
8
+ export type MultiSelectProps = Omit<React.ComponentPropsWithoutRef<"div">, "value" | "defaultValue" | "onChange"> & {
9
9
  options: MultiSelectOption[];
10
- value: string[];
11
- onValueChange: (value: string[]) => void;
10
+ /** Controlled value. Omit to let MultiSelect manage it (see defaultValue). */
11
+ value?: string[];
12
+ /** Initially selected values, when uncontrolled. */
13
+ defaultValue?: string[];
14
+ /** Fires with the next value on every toggle, controlled or not. */
15
+ onValueChange?: (value: string[]) => void;
12
16
  placeholder?: string;
13
17
  /** Show a filter field at the top of the list (default true). */
14
18
  searchable?: boolean;
@@ -23,7 +27,7 @@ export type MultiSelectProps = {
23
27
  * popover with a search field over rows of "[chip] … [checkbox]" that toggle on
24
28
  * click (the menu stays open). Keyboard: ↑/↓ move, Enter toggles, Esc closes.
25
29
  */
26
- export declare function MultiSelect({ options, value, onValueChange, placeholder, searchable, searchPlaceholder, disabled, className, "aria-label": ariaLabel, }: MultiSelectProps): React.JSX.Element;
30
+ export declare function MultiSelect({ options, value: valueProp, defaultValue, onValueChange, placeholder, searchable, searchPlaceholder, disabled, className, "aria-label": ariaLabel, ...rest }: MultiSelectProps): React.JSX.Element;
27
31
  export declare namespace MultiSelect {
28
32
  var displayName: string;
29
33
  }
@@ -7,7 +7,10 @@ export type PopoverProps = {
7
7
  /** Align the popover to the trigger's left (`start`) or right (`end`) edge. */
8
8
  align?: "start" | "end";
9
9
  /** Controlled open state. Omit to let the popover manage it. */
10
+ /** Controlled open state. Omit to let Popover manage it (see defaultOpen). */
10
11
  open?: boolean;
12
+ /** Initially open, when uncontrolled. */
13
+ defaultOpen?: boolean;
11
14
  onOpenChange?: (open: boolean) => void;
12
15
  "aria-label"?: string;
13
16
  className?: string;
@@ -17,7 +20,7 @@ export type PopoverProps = {
17
20
  * content. Opens below the trigger (flipping up when there's no room),
18
21
  * closes on outside pointer-down and Escape. Controlled or self-managed.
19
22
  */
20
- export declare function Popover({ trigger, children, align, open: openProp, onOpenChange, "aria-label": ariaLabel, className, }: PopoverProps): React.JSX.Element;
23
+ export declare function Popover({ trigger, children, align, open: openProp, defaultOpen, onOpenChange, "aria-label": ariaLabel, className, }: PopoverProps): React.JSX.Element;
21
24
  export declare namespace Popover {
22
25
  var displayName: string;
23
26
  }