@servicetitan/anvil2 2.6.1 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/{Avatar-CCnbKkCm.js → Avatar-BckUfs1N.js} +48 -46
  3. package/dist/{Avatar-CCnbKkCm.js.map → Avatar-BckUfs1N.js.map} +1 -1
  4. package/dist/Avatar-ChybzixS.js +35 -0
  5. package/dist/Avatar-ChybzixS.js.map +1 -0
  6. package/dist/Avatar.js +2 -2
  7. package/dist/Breadcrumbs-C_WK9Yul.js +107 -0
  8. package/dist/Breadcrumbs-C_WK9Yul.js.map +1 -0
  9. package/dist/Breadcrumbs.js +1 -1
  10. package/dist/{Calendar-B5d2SUrH.js → Calendar-BTStJPV1.js} +2 -2
  11. package/dist/{Calendar-B5d2SUrH.js.map → Calendar-BTStJPV1.js.map} +1 -1
  12. package/dist/{Calendar-B0u3EgCY.js → Calendar-Frpv5rRY.js} +129 -118
  13. package/dist/Calendar-Frpv5rRY.js.map +1 -0
  14. package/dist/Calendar.css +51 -51
  15. package/dist/Calendar.js +2 -2
  16. package/dist/Checkbox-CTZdZym4.js +52 -0
  17. package/dist/Checkbox-CTZdZym4.js.map +1 -0
  18. package/dist/{Checkbox-BwULIo4D.js → Checkbox-Drgai_lS.js} +16 -7
  19. package/dist/Checkbox-Drgai_lS.js.map +1 -0
  20. package/dist/Checkbox.js +1 -1
  21. package/dist/{Chip-DjTAR0va.js → Chip-CVyEctAz.js} +2 -2
  22. package/dist/{Chip-DjTAR0va.js.map → Chip-CVyEctAz.js.map} +1 -1
  23. package/dist/Chip.js +1 -1
  24. package/dist/{Combobox-Clymsgli.js → Combobox-BRtfrYyZ.js} +185 -182
  25. package/dist/{Combobox-Clymsgli.js.map → Combobox-BRtfrYyZ.js.map} +1 -1
  26. package/dist/Combobox.js +1 -1
  27. package/dist/{DataTable-qoseu_e2.js → DataTable-BmVPjMMg.js} +680 -628
  28. package/dist/DataTable-BmVPjMMg.js.map +1 -0
  29. package/dist/{DateFieldRange-rks7jQor.js → DateFieldRange-D9DtlkSQ.js} +18 -4
  30. package/dist/DateFieldRange-D9DtlkSQ.js.map +1 -0
  31. package/dist/DateFieldRange.js +1 -1
  32. package/dist/{DateFieldSingle-C0WXU7H1.js → DateFieldSingle-CkdeCUJv.js} +6 -6
  33. package/dist/{DateFieldSingle-C0WXU7H1.js.map → DateFieldSingle-CkdeCUJv.js.map} +1 -1
  34. package/dist/DateFieldSingle.js +1 -1
  35. package/dist/{DateFieldYearless-2p3a7Xgo.js → DateFieldYearless-b81ZcYdp.js} +3 -3
  36. package/dist/{DateFieldYearless-2p3a7Xgo.js.map → DateFieldYearless-b81ZcYdp.js.map} +1 -1
  37. package/dist/DateFieldYearless.js +1 -1
  38. package/dist/{DateFieldYearlessRange-DLmhPug8.js → DateFieldYearlessRange-ClAFzIDD.js} +3 -3
  39. package/dist/{DateFieldYearlessRange-DLmhPug8.js.map → DateFieldYearlessRange-ClAFzIDD.js.map} +1 -1
  40. package/dist/DateFieldYearlessRange.js +1 -1
  41. package/dist/{DaysOfTheWeek-BR32AA32.js → DaysOfTheWeek-2Zeh79oR.js} +3 -3
  42. package/dist/{DaysOfTheWeek-BR32AA32.js.map → DaysOfTheWeek-2Zeh79oR.js.map} +1 -1
  43. package/dist/DaysOfTheWeek.js +1 -1
  44. package/dist/{Details-Dxq_v3Qg.js → Details-CZOIpNP_.js} +8 -8
  45. package/dist/Details-CZOIpNP_.js.map +1 -0
  46. package/dist/Details.js +1 -1
  47. package/dist/{Dialog-CMhypnCD.js → Dialog-CloZWa1Q.js} +70 -70
  48. package/dist/Dialog-CloZWa1Q.js.map +1 -0
  49. package/dist/Dialog.js +1 -1
  50. package/dist/DndSort.js +3 -5
  51. package/dist/DndSort.js.map +1 -1
  52. package/dist/{Drawer-CSelPi8t.js → Drawer-CfkoH081.js} +83 -83
  53. package/dist/Drawer-CfkoH081.js.map +1 -0
  54. package/dist/Drawer.js +1 -1
  55. package/dist/DrillDown.js +1 -1
  56. package/dist/{FieldLabel-DbMosKtd.js → FieldLabel-CQ5QGTVq.js} +2 -2
  57. package/dist/{FieldLabel-DbMosKtd.js.map → FieldLabel-CQ5QGTVq.js.map} +1 -1
  58. package/dist/FieldLabel.js +1 -1
  59. package/dist/Grid-DeYIx5k4.js +149 -0
  60. package/dist/Grid-DeYIx5k4.js.map +1 -0
  61. package/dist/Grid.js +1 -1
  62. package/dist/{InputMask-BKs-x6ds.js → InputMask-CI4Q5UwG.js} +2 -2
  63. package/dist/{InputMask-BKs-x6ds.js.map → InputMask-CI4Q5UwG.js.map} +1 -1
  64. package/dist/InputMask.js +1 -1
  65. package/dist/{Layout-VfhlilMG.js → Layout-CISAxILX.js} +34 -33
  66. package/dist/Layout-CISAxILX.js.map +1 -0
  67. package/dist/Layout.js +1 -1
  68. package/dist/List--KhCpjZn.js +103 -0
  69. package/dist/List--KhCpjZn.js.map +1 -0
  70. package/dist/List.js +1 -1
  71. package/dist/{ListView-CeGwrRbt.js → ListView-DAbBuss4.js} +6 -6
  72. package/dist/ListView-DAbBuss4.js.map +1 -0
  73. package/dist/ListView.js +1 -1
  74. package/dist/{Listbox-BtAgBDRS.js → Listbox-D_T55BFX.js} +5 -4
  75. package/dist/Listbox-D_T55BFX.js.map +1 -0
  76. package/dist/Listbox.js +1 -1
  77. package/dist/{Menu-BXsmCP20.js → Menu-CRoJYJ53.js} +366 -365
  78. package/dist/Menu-CRoJYJ53.js.map +1 -0
  79. package/dist/Menu.js +1 -1
  80. package/dist/MultiSelectField.js +1 -1
  81. package/dist/{MultiSelectFieldSync-EELhdoD6.js → MultiSelectFieldSync-CSOitvtu.js} +5 -5
  82. package/dist/{MultiSelectFieldSync-EELhdoD6.js.map → MultiSelectFieldSync-CSOitvtu.js.map} +1 -1
  83. package/dist/MultiSelectMenu.js +1 -1
  84. package/dist/{MultiSelectMenuSync-CAPhhkK1.js → MultiSelectMenuSync-62OeGmkz.js} +29 -9
  85. package/dist/MultiSelectMenuSync-62OeGmkz.js.map +1 -0
  86. package/dist/{NumberField-svhZp1kB.js → NumberField-CHBXBMSj.js} +2 -2
  87. package/dist/{NumberField-svhZp1kB.js.map → NumberField-CHBXBMSj.js.map} +1 -1
  88. package/dist/NumberField.js +1 -1
  89. package/dist/Overflow.css +27 -26
  90. package/dist/Overflow.js +11 -11
  91. package/dist/{Page-BpV1yHkm.js → Page-DtSjnBJL.js} +277 -224
  92. package/dist/Page-DtSjnBJL.js.map +1 -0
  93. package/dist/Page.css +87 -73
  94. package/dist/Page.js +1 -1
  95. package/dist/{Pagination-BAwqfl_2.js → Pagination-CbBte3GQ.js} +17 -15
  96. package/dist/Pagination-CbBte3GQ.js.map +1 -0
  97. package/dist/Pagination.js +1 -1
  98. package/dist/Popover-CQhLSNYR.js +537 -0
  99. package/dist/Popover-CQhLSNYR.js.map +1 -0
  100. package/dist/{Popover-Br6qPgKe.js → Popover-Rha0q-Pv.js} +353 -353
  101. package/dist/Popover-Rha0q-Pv.js.map +1 -0
  102. package/dist/Popover.js +1 -1
  103. package/dist/{ProgressBar-JpRDW5vG.js → ProgressBar-DEaMqbM-.js} +2 -2
  104. package/dist/{ProgressBar-JpRDW5vG.js.map → ProgressBar-DEaMqbM-.js.map} +1 -1
  105. package/dist/ProgressBar.js +1 -1
  106. package/dist/{Radio-8DmfWHYq.js → Radio-Bw2LDl9G.js} +13 -4
  107. package/dist/{Radio-8DmfWHYq.js.map → Radio-Bw2LDl9G.js.map} +1 -1
  108. package/dist/Radio-CCvu8mbI.js +60 -0
  109. package/dist/Radio-CCvu8mbI.js.map +1 -0
  110. package/dist/Radio.js +1 -1
  111. package/dist/{SegmentedControl-7fDLhgvh.js → SegmentedControl-BAi4pnFe.js} +79 -75
  112. package/dist/{SegmentedControl-7fDLhgvh.js.map → SegmentedControl-BAi4pnFe.js.map} +1 -1
  113. package/dist/SegmentedControl.js +1 -1
  114. package/dist/SelectCard-ZaAD0wR1.js +325 -0
  115. package/dist/SelectCard-ZaAD0wR1.js.map +1 -0
  116. package/dist/SelectCard.css +23 -18
  117. package/dist/SelectCard.js +1 -1
  118. package/dist/SelectField.js +1 -1
  119. package/dist/{SelectFieldLabel-Dr8HeW3N.js → SelectFieldLabel-EJCXA02B.js} +2 -2
  120. package/dist/{SelectFieldLabel-Dr8HeW3N.js.map → SelectFieldLabel-EJCXA02B.js.map} +1 -1
  121. package/dist/{SelectFieldSync-BPopU0om.js → SelectFieldSync-DA54WXOk.js} +4 -4
  122. package/dist/{SelectFieldSync-BPopU0om.js.map → SelectFieldSync-DA54WXOk.js.map} +1 -1
  123. package/dist/SelectMenu.js +1 -1
  124. package/dist/{SelectMenuSync-DeMYO1m_.js → SelectMenuSync-BQaSTcaN.js} +29 -9
  125. package/dist/SelectMenuSync-BQaSTcaN.js.map +1 -0
  126. package/dist/{SelectOptions-DBe5ZN_-.js → SelectOptions-D-DzWmKE.js} +2 -2
  127. package/dist/{SelectOptions-DBe5ZN_-.js.map → SelectOptions-D-DzWmKE.js.map} +1 -1
  128. package/dist/{SelectTrigger-ObsnAKNp.js → SelectTrigger-DWyRndmY.js} +3 -3
  129. package/dist/{SelectTrigger-ObsnAKNp.js.map → SelectTrigger-DWyRndmY.js.map} +1 -1
  130. package/dist/SelectTrigger.js +1 -1
  131. package/dist/{SelectTriggerBase-DKfOL2RJ.js → SelectTriggerBase-B6aZd2a6.js} +3 -3
  132. package/dist/{SelectTriggerBase-DKfOL2RJ.js.map → SelectTriggerBase-B6aZd2a6.js.map} +1 -1
  133. package/dist/{SideNav-KksbSQn7.js → SideNav-CxHemV3H.js} +127 -125
  134. package/dist/{SideNav-KksbSQn7.js.map → SideNav-CxHemV3H.js.map} +1 -1
  135. package/dist/SideNav.js +1 -1
  136. package/dist/{Stepper-Dt8_ImvJ.js → Stepper-CQUXV6P4.js} +156 -156
  137. package/dist/{Stepper-Dt8_ImvJ.js.map → Stepper-CQUXV6P4.js.map} +1 -1
  138. package/dist/Stepper.js +1 -1
  139. package/dist/{Tab-DO7LaUbw.js → Tab-BGGNcz9S.js} +225 -221
  140. package/dist/Tab-BGGNcz9S.js.map +1 -0
  141. package/dist/Tab.js +1 -1
  142. package/dist/Table.js +1 -1
  143. package/dist/{TextField--co7QJ4r.js → TextField-CMv9CpBq.js} +2 -2
  144. package/dist/{TextField--co7QJ4r.js.map → TextField-CMv9CpBq.js.map} +1 -1
  145. package/dist/{TextField-Cax4UeNl.js → TextField-o8zvVFDk.js} +8 -3
  146. package/dist/TextField-o8zvVFDk.js.map +1 -0
  147. package/dist/TextField.js +1 -1
  148. package/dist/{Textarea-DyqdMTvQ.js → Textarea-B4bBvO8c.js} +2 -2
  149. package/dist/{Textarea-DyqdMTvQ.js.map → Textarea-B4bBvO8c.js.map} +1 -1
  150. package/dist/Textarea.js +1 -1
  151. package/dist/{TimeField-BfcLCWMG.js → TimeField-BEgnjk4R.js} +4 -5
  152. package/dist/{TimeField-BfcLCWMG.js.map → TimeField-BEgnjk4R.js.map} +1 -1
  153. package/dist/TimeField.js +1 -1
  154. package/dist/Toast.js +2 -2
  155. package/dist/{Toaster-b0-Ub3yt.js → Toaster-6_LVKok2.js} +2 -2
  156. package/dist/{Toaster-b0-Ub3yt.js.map → Toaster-6_LVKok2.js.map} +1 -1
  157. package/dist/{Toaster-DikGo_hR.js → Toaster-B38WlKC7.js} +2 -2
  158. package/dist/{Toaster-DikGo_hR.js.map → Toaster-B38WlKC7.js.map} +1 -1
  159. package/dist/{Toolbar-DqYMc_w8.js → Toolbar-0EKhrvZN.js} +147 -146
  160. package/dist/{Toolbar-DqYMc_w8.js.map → Toolbar-0EKhrvZN.js.map} +1 -1
  161. package/dist/Toolbar.js +1 -1
  162. package/dist/{Tooltip-Bupqao9B.js → Tooltip-BHwSTwsv.js} +224 -226
  163. package/dist/Tooltip-BHwSTwsv.js.map +1 -0
  164. package/dist/Tooltip.js +1 -1
  165. package/dist/{YearlessDateInputWithPicker-aq99rKJU.js → YearlessDateInputWithPicker-BC4lRuny.js} +2 -3
  166. package/dist/YearlessDateInputWithPicker-BC4lRuny.js.map +1 -0
  167. package/dist/beta/components/MultiSelectMenu/types.d.ts +15 -0
  168. package/dist/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +3 -1
  169. package/dist/beta/components/SelectMenu/types.d.ts +15 -0
  170. package/dist/beta/components/Table/DataTable/DataTable.d.ts +9 -16
  171. package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +35 -0
  172. package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +4 -3
  173. package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +7 -0
  174. package/dist/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +34 -0
  175. package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +9 -5
  176. package/dist/beta/components/Table/DataTable/types.d.ts +18 -1
  177. package/dist/beta/components/Table/createColumnHelper.d.ts +29 -68
  178. package/dist/beta/components/Table/types.d.ts +222 -40
  179. package/dist/beta/components/Toolbar/Toolbar.d.ts +168 -41
  180. package/dist/beta.js +9 -9
  181. package/dist/components/Announcement/Announcement.figma.d.ts +1 -0
  182. package/dist/components/Avatar/Avatar.d.ts +14 -0
  183. package/dist/components/Calendar/Calendar.d.ts +84 -26
  184. package/dist/components/Checkbox/internal/Checkbox.d.ts +8 -0
  185. package/dist/components/Combobox/Combobox.d.ts +172 -1
  186. package/dist/components/Dialog/Dialog.d.ts +96 -28
  187. package/dist/components/DndSort/internal/test-utils.d.ts +15 -8
  188. package/dist/components/DrillDown/DrillDown.d.ts +7 -1
  189. package/dist/components/FieldMessage/FieldMessage.figma.d.ts +1 -0
  190. package/dist/components/Layout/Layout.d.ts +52 -44
  191. package/dist/components/ListView/ListView.d.ts +5 -5
  192. package/dist/components/Listbox/Listbox.d.ts +5 -23
  193. package/dist/components/Menu/Menu.d.ts +1 -4
  194. package/dist/components/Page/Page.d.ts +1 -1
  195. package/dist/components/Page/PageContent.d.ts +5 -5
  196. package/dist/components/Page/PageContext.d.ts +2 -0
  197. package/dist/components/Page/PageFooter.d.ts +1 -0
  198. package/dist/components/Radio/internal/Radio.d.ts +8 -0
  199. package/dist/components/Toolbar/Toolbar.d.ts +3 -1
  200. package/dist/index.js +126 -126
  201. package/dist/index.js.map +1 -1
  202. package/dist/internal/components/Popover/Popover.d.ts +2 -2
  203. package/dist/internal/components/Popover/internal/PopoverContext.d.ts +2 -2
  204. package/dist/{syncFilterUtils-BRKjFwxk.js → syncFilterUtils-B03Pc941.js} +190 -190
  205. package/dist/{syncFilterUtils-BRKjFwxk.js.map → syncFilterUtils-B03Pc941.js.map} +1 -1
  206. package/dist/{useDrilldown-CqBBB_r1.js → useDrilldown-BW2XkUcK.js} +40 -38
  207. package/dist/{useDrilldown-CqBBB_r1.js.map → useDrilldown-BW2XkUcK.js.map} +1 -1
  208. package/dist/{useMenuInteraction-zR_78KQC.js → useMenuInteraction-BwZ2ORo9.js} +8 -3
  209. package/dist/useMenuInteraction-BwZ2ORo9.js.map +1 -0
  210. package/dist/{useToggleSelection-JD62Jzqu.js → useToggleSelection-Dip0eimQ.js} +2 -2
  211. package/dist/{useToggleSelection-JD62Jzqu.js.map → useToggleSelection-Dip0eimQ.js.map} +1 -1
  212. package/package.json +10 -9
  213. package/dist/Avatar--CnTAnfD.js +0 -35
  214. package/dist/Avatar--CnTAnfD.js.map +0 -1
  215. package/dist/Breadcrumbs-3Y7jnj-F.js +0 -105
  216. package/dist/Breadcrumbs-3Y7jnj-F.js.map +0 -1
  217. package/dist/Calendar-B0u3EgCY.js.map +0 -1
  218. package/dist/Checkbox-BwULIo4D.js.map +0 -1
  219. package/dist/Checkbox-CIj37_vY.js +0 -50
  220. package/dist/Checkbox-CIj37_vY.js.map +0 -1
  221. package/dist/DataTable-qoseu_e2.js.map +0 -1
  222. package/dist/DateFieldRange-rks7jQor.js.map +0 -1
  223. package/dist/Details-Dxq_v3Qg.js.map +0 -1
  224. package/dist/Dialog-CMhypnCD.js.map +0 -1
  225. package/dist/Drawer-CSelPi8t.js.map +0 -1
  226. package/dist/Grid-ONcUpb__.js +0 -147
  227. package/dist/Grid-ONcUpb__.js.map +0 -1
  228. package/dist/Layout-VfhlilMG.js.map +0 -1
  229. package/dist/List-CJZjElAQ.js +0 -101
  230. package/dist/List-CJZjElAQ.js.map +0 -1
  231. package/dist/ListView-CeGwrRbt.js.map +0 -1
  232. package/dist/Listbox-BtAgBDRS.js.map +0 -1
  233. package/dist/Menu-BXsmCP20.js.map +0 -1
  234. package/dist/MultiSelectMenuSync-CAPhhkK1.js.map +0 -1
  235. package/dist/Page-BpV1yHkm.js.map +0 -1
  236. package/dist/Pagination-BAwqfl_2.js.map +0 -1
  237. package/dist/Popover-Br6qPgKe.js.map +0 -1
  238. package/dist/Popover-Dkw_8dZx.js +0 -535
  239. package/dist/Popover-Dkw_8dZx.js.map +0 -1
  240. package/dist/Radio-M7lc0BsU.js +0 -60
  241. package/dist/Radio-M7lc0BsU.js.map +0 -1
  242. package/dist/SelectCard-D5dcOIuf.js +0 -311
  243. package/dist/SelectCard-D5dcOIuf.js.map +0 -1
  244. package/dist/SelectMenuSync-DeMYO1m_.js.map +0 -1
  245. package/dist/Tab-DO7LaUbw.js.map +0 -1
  246. package/dist/TextField-Cax4UeNl.js.map +0 -1
  247. package/dist/Tooltip-Bupqao9B.js.map +0 -1
  248. package/dist/YearlessDateInputWithPicker-aq99rKJU.js.map +0 -1
  249. package/dist/useMenuInteraction-zR_78KQC.js.map +0 -1
@@ -1,5 +1,11 @@
1
1
  import { ReactNode } from 'react';
2
2
  import { BooleanFormatterOptions, CurrencyFormatterOptions, DateFormatterOptions, DateTimeFormatterOptions, NumberFormatterOptions, PercentFormatterOptions, TimeFormatterOptions } from './formatters';
3
+ import { SelectMenuOption, SelectMenuGroupByValue } from '../SelectMenu';
4
+ import { SelectMenuSyncProps } from '../SelectMenu/SelectMenuSync';
5
+ import { SelectMenuProps } from '../SelectMenu/types';
6
+ import { MultiSelectMenuOption } from '../MultiSelectMenu';
7
+ import { MultiSelectMenuSyncProps } from '../MultiSelectMenu/MultiSelectMenuSync';
8
+ import { MultiSelectMenuProps } from '../MultiSelectMenu/types';
3
9
  /**
4
10
  * Column type literals for display configuration.
5
11
  * Each type maps to a default formatter and alignment.
@@ -36,15 +42,10 @@ export type ColumnTypeConfig<T extends ColumnType = ColumnType> = T | {
36
42
  type: T;
37
43
  options: ColumnTypeOptionsMap[T];
38
44
  };
39
- /**
40
- * Utility type that extracts the element type from an array type.
41
- * Used for multiselect options type inference.
42
- */
43
- type ArrayElement<T> = T extends (infer U)[] ? U : never;
44
45
  /**
45
46
  * Edit mode literals for editable cells.
46
47
  */
47
- export type EditMode = "text" | "number" | "select" | "multiselect" | "boolean";
48
+ export type EditMode = "text" | "number" | "select" | "select-async" | "multiselect" | "multiselect-async" | "boolean";
48
49
  /**
49
50
  * Base edit configuration shared by all edit modes.
50
51
  * @template T - The row data type
@@ -107,42 +108,235 @@ export type NumberEditConfig<T, K extends keyof T> = BaseEditConfig<T, K> & {
107
108
  */
108
109
  minimumFractionDigits?: number;
109
110
  };
111
+ type SelectMenuCellPassthroughProps = Omit<SelectMenuSyncProps, "trigger" | "label" | "value" | "onSelectedOptionChange" | "options" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose">;
112
+ type MultiSelectMenuCellPassthroughProps = Omit<MultiSelectMenuSyncProps, "trigger" | "label" | "value" | "onSelectedOptionsChange" | "options" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose">;
110
113
  /**
111
114
  * Edit configuration for select mode cells.
112
115
  * @template T - The row data type
113
116
  * @template K - The column key
114
117
  */
115
- export type SelectEditConfig<T, K extends keyof T> = BaseEditConfig<T, K> & {
118
+ export type SelectEditConfig<T, K extends keyof T> = Omit<BaseEditConfig<T, K>, "onChange"> & {
116
119
  /**
117
- * Select edit mode - renders a dropdown menu.
120
+ * Select edit mode - renders a SelectMenu popover.
118
121
  */
119
122
  mode: "select";
120
123
  /**
121
124
  * The options available for selection.
122
125
  */
123
- options: {
124
- value: T[K];
125
- label: string;
126
- }[];
127
- };
126
+ options: SelectMenuOption[];
127
+ /**
128
+ * Callback fired when the selected option changes.
129
+ * @param option - The newly selected option, or null if cleared
130
+ * @param rowId - The id of the row being edited
131
+ */
132
+ onChange: (option: SelectMenuOption | null, rowId: string) => void;
133
+ } & SelectMenuCellPassthroughProps;
128
134
  /**
129
135
  * Edit configuration for multiselect mode cells.
130
136
  * @template T - The row data type
131
137
  * @template K - The column key
132
138
  */
133
- export type MultiselectEditConfig<T, K extends keyof T> = BaseEditConfig<T, K> & {
139
+ export type MultiselectEditConfig<T, K extends keyof T> = Omit<BaseEditConfig<T, K>, "onChange"> & {
134
140
  /**
135
- * Multiselect edit mode - renders a searchable multi-select popover.
141
+ * Multiselect edit mode - renders a searchable MultiSelectMenu popover.
136
142
  */
137
143
  mode: "multiselect";
138
144
  /**
139
145
  * The options available for selection.
140
146
  */
141
- options: {
142
- value: ArrayElement<T[K]>;
143
- label: string;
144
- }[];
147
+ options: MultiSelectMenuOption[];
148
+ /**
149
+ * Callback fired when the selected options change.
150
+ * @param options - The newly selected options
151
+ * @param rowId - The id of the row being edited
152
+ */
153
+ onChange: (options: MultiSelectMenuOption[], rowId: string) => void;
154
+ } & MultiSelectMenuCellPassthroughProps;
155
+ type SelectMenuAsyncCellPassthroughProps = Omit<SelectMenuProps, "trigger" | "label" | "value" | "onSelectedOptionChange" | "loadOptions" | "lazy" | "lazyOptions" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose">;
156
+ type MultiSelectMenuAsyncCellPassthroughProps = Omit<MultiSelectMenuProps, "trigger" | "label" | "value" | "onSelectedOptionsChange" | "loadOptions" | "lazy" | "lazyOptions" | "onMenuKeyDown" | "onImplicitClose" | "onExplicitClose">;
157
+ /**
158
+ * Context passed to `loadOptions` for async edit configs.
159
+ * Provides row data for per-row option loading.
160
+ * @template T - The row data type
161
+ * @property row - The full row data object
162
+ * @property rowId - The string id of the row
163
+ */
164
+ export type AsyncCellContext<T> = {
165
+ row: T;
166
+ rowId: string;
145
167
  };
168
+ /**
169
+ * Eager loader for `mode: "select-async"` — returns all matching options at once.
170
+ * @template T - The row data type
171
+ */
172
+ export type SelectAsyncCellEagerLoader<T> = (searchValue: string, context: AsyncCellContext<T>) => SelectMenuOption[] | Promise<SelectMenuOption[]>;
173
+ /**
174
+ * Page-based lazy loader for `mode: "select-async"`.
175
+ * @template T - The row data type
176
+ */
177
+ export type SelectAsyncCellPageLoader<T> = (searchValue: string, pageNumber: number, pageSize: number, context: AsyncCellContext<T>) => {
178
+ options: SelectMenuOption[];
179
+ hasMore?: boolean;
180
+ } | Promise<{
181
+ options: SelectMenuOption[];
182
+ hasMore?: boolean;
183
+ }>;
184
+ /**
185
+ * Offset-based lazy loader for `mode: "select-async"`.
186
+ * @template T - The row data type
187
+ */
188
+ export type SelectAsyncCellOffsetLoader<T> = (searchValue: string, offset: number, limit: number, context: AsyncCellContext<T>) => {
189
+ options: SelectMenuOption[];
190
+ hasMore?: boolean;
191
+ } | Promise<{
192
+ options: SelectMenuOption[];
193
+ hasMore?: boolean;
194
+ }>;
195
+ /**
196
+ * Group-based lazy loader for `mode: "select-async"`.
197
+ * @template T - The row data type
198
+ */
199
+ export type SelectAsyncCellGroupLoader<T> = (searchValue: string, previousGroupKey: SelectMenuGroupByValue | null, context: AsyncCellContext<T>) => {
200
+ options: SelectMenuOption[];
201
+ hasMore?: boolean;
202
+ } | Promise<{
203
+ options: SelectMenuOption[];
204
+ hasMore?: boolean;
205
+ }>;
206
+ /**
207
+ * Eager loader for `mode: "multiselect-async"` — returns all matching options at once.
208
+ * @template T - The row data type
209
+ */
210
+ export type MultiselectAsyncCellEagerLoader<T> = (searchValue: string, context: AsyncCellContext<T>) => MultiSelectMenuOption[] | Promise<MultiSelectMenuOption[]>;
211
+ /**
212
+ * Page-based lazy loader for `mode: "multiselect-async"`.
213
+ * @template T - The row data type
214
+ */
215
+ export type MultiselectAsyncCellPageLoader<T> = (searchValue: string, pageNumber: number, pageSize: number, context: AsyncCellContext<T>) => {
216
+ options: MultiSelectMenuOption[];
217
+ hasMore?: boolean;
218
+ } | Promise<{
219
+ options: MultiSelectMenuOption[];
220
+ hasMore?: boolean;
221
+ }>;
222
+ /**
223
+ * Offset-based lazy loader for `mode: "multiselect-async"`.
224
+ * @template T - The row data type
225
+ */
226
+ export type MultiselectAsyncCellOffsetLoader<T> = (searchValue: string, offset: number, limit: number, context: AsyncCellContext<T>) => {
227
+ options: MultiSelectMenuOption[];
228
+ hasMore?: boolean;
229
+ } | Promise<{
230
+ options: MultiSelectMenuOption[];
231
+ hasMore?: boolean;
232
+ }>;
233
+ /**
234
+ * Group-based lazy loader for `mode: "multiselect-async"`.
235
+ * @template T - The row data type
236
+ */
237
+ export type MultiselectAsyncCellGroupLoader<T> = (searchValue: string, previousGroupKey: SelectMenuGroupByValue | null, context: AsyncCellContext<T>) => {
238
+ options: MultiSelectMenuOption[];
239
+ hasMore?: boolean;
240
+ } | Promise<{
241
+ options: MultiSelectMenuOption[];
242
+ hasMore?: boolean;
243
+ }>;
244
+ type SelectAsyncEditConfigBase = {
245
+ /**
246
+ * Callback fired when the selected option changes.
247
+ * @param option - The newly selected option, or null if cleared
248
+ * @param rowId - The id of the row being edited
249
+ */
250
+ onChange: (option: SelectMenuOption | null, rowId: string) => void;
251
+ } & SelectMenuAsyncCellPassthroughProps;
252
+ /**
253
+ * Edit configuration for async select mode cells.
254
+ * Uses `SelectMenu` directly (not `SelectMenuSync`) to support server-side option loading.
255
+ *
256
+ * The `loadOptions` function receives a `context` argument as its last parameter,
257
+ * containing the current row data and row id. This enables per-row option loading.
258
+ *
259
+ * By default, caching is disabled to prevent cross-row cache pollution when `loadOptions`
260
+ * uses row context. Pass `cache={{ enabled: true }}` to override.
261
+ *
262
+ * Cell value is expected to be a primitive that matches a `SelectMenuOption.id`.
263
+ *
264
+ * @template T - The row data type
265
+ */
266
+ export type SelectAsyncEditConfig<T> = (SelectAsyncEditConfigBase & {
267
+ mode: "select-async";
268
+ lazy?: false;
269
+ loadOptions: SelectAsyncCellEagerLoader<T>;
270
+ lazyOptions?: never;
271
+ }) | (SelectAsyncEditConfigBase & {
272
+ mode: "select-async";
273
+ lazy: "page";
274
+ loadOptions: SelectAsyncCellPageLoader<T>;
275
+ lazyOptions?: {
276
+ pageSize?: number;
277
+ };
278
+ }) | (SelectAsyncEditConfigBase & {
279
+ mode: "select-async";
280
+ lazy: "offset";
281
+ loadOptions: SelectAsyncCellOffsetLoader<T>;
282
+ lazyOptions?: {
283
+ limit?: number;
284
+ };
285
+ }) | (SelectAsyncEditConfigBase & {
286
+ mode: "select-async";
287
+ lazy: "group";
288
+ loadOptions: SelectAsyncCellGroupLoader<T>;
289
+ lazyOptions?: object;
290
+ });
291
+ type MultiselectAsyncEditConfigBase = {
292
+ /**
293
+ * Callback fired when the selected options change.
294
+ * @param options - The newly selected options (full option objects)
295
+ * @param rowId - The id of the row being edited
296
+ */
297
+ onChange: (options: MultiSelectMenuOption[], rowId: string) => void;
298
+ } & MultiSelectMenuAsyncCellPassthroughProps;
299
+ /**
300
+ * Edit configuration for async multiselect mode cells.
301
+ * Uses `MultiSelectMenu` directly (not `MultiSelectMenuSync`) to support server-side option loading.
302
+ *
303
+ * The `loadOptions` function receives a `context` argument as its last parameter,
304
+ * containing the current row data and row id. This enables per-row option loading.
305
+ *
306
+ * By default, caching is disabled to prevent cross-row cache pollution when `loadOptions`
307
+ * uses row context. Pass `cache={{ enabled: true }}` to override.
308
+ *
309
+ * **Value contract**: Unlike `mode: "multiselect"` (which stores ID arrays), the cell value
310
+ * for `mode: "multiselect-async"` must be `MultiSelectMenuOption[]` — full option objects.
311
+ * The `onChange` callback receives these objects directly and the consumer stores them wholesale.
312
+ *
313
+ * @template T - The row data type
314
+ */
315
+ export type MultiselectAsyncEditConfig<T> = (MultiselectAsyncEditConfigBase & {
316
+ mode: "multiselect-async";
317
+ lazy?: false;
318
+ loadOptions: MultiselectAsyncCellEagerLoader<T>;
319
+ lazyOptions?: never;
320
+ }) | (MultiselectAsyncEditConfigBase & {
321
+ mode: "multiselect-async";
322
+ lazy: "page";
323
+ loadOptions: MultiselectAsyncCellPageLoader<T>;
324
+ lazyOptions?: {
325
+ pageSize?: number;
326
+ };
327
+ }) | (MultiselectAsyncEditConfigBase & {
328
+ mode: "multiselect-async";
329
+ lazy: "offset";
330
+ loadOptions: MultiselectAsyncCellOffsetLoader<T>;
331
+ lazyOptions?: {
332
+ limit?: number;
333
+ };
334
+ }) | (MultiselectAsyncEditConfigBase & {
335
+ mode: "multiselect-async";
336
+ lazy: "group";
337
+ loadOptions: MultiselectAsyncCellGroupLoader<T>;
338
+ lazyOptions?: object;
339
+ });
146
340
  /**
147
341
  * Edit configuration for boolean mode cells.
148
342
  * Renders a dropdown menu with predefined true/false options and an optional null option.
@@ -200,8 +394,8 @@ export type BooleanEditConfig<T, K extends keyof T> = BaseEditConfig<T, K> & {
200
394
  * // Select editing
201
395
  * editConfig: {
202
396
  * mode: "select",
203
- * options: [{ value: "active", label: "Active" }],
204
- * onChange: (value, rowId) => save(value, rowId)
397
+ * options: [{ id: "active", label: "Active" }],
398
+ * onChange: (option, rowId) => save(option?.id, rowId)
205
399
  * }
206
400
  *
207
401
  * // Boolean editing
@@ -213,7 +407,7 @@ export type BooleanEditConfig<T, K extends keyof T> = BaseEditConfig<T, K> & {
213
407
  * }
214
408
  * ```
215
409
  */
216
- export type EditConfig<T, K extends keyof T> = TextEditConfig<T, K> | NumberEditConfig<T, K> | SelectEditConfig<T, K> | MultiselectEditConfig<T, K> | BooleanEditConfig<T, K>;
410
+ export type EditConfig<T, K extends keyof T> = TextEditConfig<T, K> | NumberEditConfig<T, K> | SelectEditConfig<T, K> | SelectAsyncEditConfig<T> | MultiselectEditConfig<T, K> | MultiselectAsyncEditConfig<T> | BooleanEditConfig<T, K>;
217
411
  /**
218
412
  * The type for a table row
219
413
  * @extends T
@@ -327,17 +521,18 @@ export type ColumnDef<T> = {
327
521
  * // Select editing
328
522
  * editConfig: {
329
523
  * mode: "select",
330
- * options: [{ value: "active", label: "Active" }],
331
- * onChange: (value, rowId) => save(value, rowId)
524
+ * options: [{ id: "active", label: "Active" }],
525
+ * onChange: (option, rowId) => save(option?.id, rowId)
332
526
  * }
333
527
  * ```
334
528
  */
335
529
  editConfig?: EditConfig<T, keyof T>;
336
530
  /**
337
- * The edit mode of the cells in the column.
338
- * @deprecated Use `editConfig` instead. Example: `editConfig: { mode: "text", onChange: ... }`
531
+ * Custom content to display when a cell value is empty (null, undefined, or empty string).
532
+ * Overrides the default em dash. When set on both the column and the DataTable,
533
+ * the column-level value takes precedence.
339
534
  */
340
- editMode?: "text" | "number" | "select" | "multiselect" | "boolean";
535
+ emptyCellContent?: ReactNode;
341
536
  /**
342
537
  * The content of the footer cell. An array will display multiple footer rows
343
538
  */
@@ -350,19 +545,6 @@ export type ColumnDef<T> = {
350
545
  * The minimum width of the column, in pixels
351
546
  */
352
547
  minWidth?: number;
353
- /**
354
- * The function to call when the value of an editable cell is saved.
355
- * @deprecated Move inside `editConfig`. Example: `editConfig: { mode: "text", onChange: ... }`
356
- */
357
- onChange?: (value: T[keyof T], rowId: string) => void;
358
- /**
359
- * The options for the select or multiselect cells.
360
- * @deprecated Move inside `editConfig`. Example: `editConfig: { mode: "select", options: [...], onChange: ... }`
361
- */
362
- options?: {
363
- value: T[keyof T];
364
- label: string;
365
- }[];
366
548
  /**
367
549
  * The pinning location of the column
368
550
  */
@@ -57,7 +57,7 @@ export type ToolbarProps = ComponentPropsWithoutRef<"div"> & LayoutUtilProps & {
57
57
  * />
58
58
  * </Toolbar>
59
59
  */
60
- export declare const ToolbarElement: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
60
+ export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
61
61
  /**
62
62
  * Description of the content this toolbar is associated with, used for accessibility
63
63
  */
@@ -81,46 +81,173 @@ export declare const ToolbarElement: import('react').ForwardRefExoticComponent<O
81
81
  * @default xsmall
82
82
  */
83
83
  size?: ToolbarSize;
84
- } & import('react').RefAttributes<HTMLDivElement>>;
85
- /**
86
- * Toolbar component for grouping related interactive elements.
87
- *
88
- * Features:
89
- * - Horizontal or vertical orientation
90
- * - Overflow handling with wrap or collapse behavior
91
- * - Keyboard navigation following ARIA best practices
92
- * - Screen reader announcements and accessibility
93
- * - Automatic overflow menu for collapsed items
94
- * - Support for buttons, toggles, selects, and links
95
- * - Layout utilities for positioning and spacing
96
- * - Context-based state management for child components
97
- *
98
- * @example
99
- * <Toolbar associatedContent="document editor" overflow="collapse">
100
- * <Toolbar.Button icon={BoldIcon} aria-label="Bold" />
101
- * <Toolbar.ButtonToggle icon={ItalicIcon} aria-label="Italic" />
102
- * <Toolbar.Select
103
- * items={fontOptions}
104
- * selected="arial"
105
- * accessibleLabel="Font family"
106
- * />
107
- * </Toolbar>
108
- *
109
- * @example
110
- * <Toolbar associatedContent="data table" overflow="wrap">
111
- * <Toolbar.Search placeholder="Search..." />
112
- * <Toolbar.Filters
113
- * filters={filters}
114
- * onFilterChange={handleFilter}
115
- * controlledFiltering={true}
116
- * />
117
- * <Toolbar.ControlGroup aria-label="Actions">
118
- * <Toolbar.Button icon={AddIcon} aria-label="Add item" />
119
- * <Toolbar.Button icon={ExportIcon} aria-label="Export" />
120
- * </Toolbar.ControlGroup>
121
- * </Toolbar>
122
- */
123
- export declare const Toolbar: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
84
+ } & import('react').RefAttributes<HTMLDivElement>> & {
85
+ /**
86
+ * ToolbarButton component for standard clickable actions within a toolbar with anvil2 tracking.
87
+ *
88
+ * Features:
89
+ * - Designed specifically for toolbar integration
90
+ * - Consistent styling with other toolbar items
91
+ * - Automatic tooltip for icon-only buttons
92
+ * - Overflow menu support
93
+ * - Accessibility enforcement for aria-labels
94
+ * - Ghost and primary appearance options
95
+ * - Automatic tracking ID generation for analytics
96
+ *
97
+ * @example
98
+ * <Toolbar.Button icon={BoldIcon} aria-label="Bold text" />
99
+ *
100
+ * @example
101
+ * <Toolbar.Button appearance="primary">
102
+ * Save
103
+ * </Toolbar.Button>
104
+ */
105
+ Button: import('react').ForwardRefExoticComponent<import('./ToolbarButton').ToolbarButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
106
+ /**
107
+ * ToolbarButtonToggle component for toggleable actions within a toolbar with anvil2 tracking.
108
+ *
109
+ * Features:
110
+ * - Toggle state management
111
+ * - Designed specifically for toolbar integration
112
+ * - Consistent styling with other toolbar items
113
+ * - Overflow menu support
114
+ * - Accessibility enforcement for aria-labels
115
+ * - Ghost and primary appearance options
116
+ * - Automatic tracking ID generation for analytics
117
+ *
118
+ * @example
119
+ * <Toolbar.ButtonToggle icon={BoldIcon} aria-label="Bold" checked={isBold} />
120
+ */
121
+ ButtonToggle: import('react').ForwardRefExoticComponent<import('./ToolbarButtonToggle').ToolbarButtonToggleProps & import('react').RefAttributes<HTMLButtonElement>>;
122
+ /**
123
+ * ToolbarButtonLink component for link actions within a toolbar with anvil2 tracking.
124
+ *
125
+ * Features:
126
+ * - Link functionality with href support
127
+ * - Designed specifically for toolbar integration
128
+ * - Consistent styling with other toolbar items
129
+ * - Overflow menu support
130
+ * - Accessibility enforcement for aria-labels
131
+ * - Ghost and primary appearance options
132
+ * - Automatic tracking ID generation for analytics
133
+ *
134
+ * @example
135
+ * <Toolbar.ButtonLink href="/help">
136
+ * Help
137
+ * </Toolbar.ButtonLink>
138
+ */
139
+ ButtonLink: import('react').ForwardRefExoticComponent<import('./ToolbarButtonLink').ToolbarButtonLinkProps & import('react').RefAttributes<HTMLAnchorElement>>;
140
+ /**
141
+ * ToolbarSelect component provides a dropdown selector within a toolbar with anvil2 tracking.
142
+ *
143
+ * Features:
144
+ * - Dropdown menu with selectable options
145
+ * - Controlled and uncontrolled usage patterns
146
+ * - Automatic overflow menu integration
147
+ * - Accessibility support with proper ARIA labels
148
+ * - Ghost and primary appearance options
149
+ * - Dropdown arrow icon indicator
150
+ * - Listbox integration for keyboard navigation
151
+ * - Automatic tracking ID generation for analytics
152
+ *
153
+ * @example
154
+ * <Toolbar.Select
155
+ * items={fontOptions}
156
+ * selected="arial"
157
+ * accessibleLabel="Font family"
158
+ * onChange={(id) => setFont(id)}
159
+ * />
160
+ */
161
+ Select: import('react').ForwardRefExoticComponent<Omit<Omit<Omit<Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "children"> & LayoutUtilProps & {
162
+ appearance?: import('../../..').ButtonAppearance;
163
+ size?: Extract<import('../../..').Size, "xsmall" | "small" | "medium" | "large">;
164
+ loading?: boolean;
165
+ } & {
166
+ children?: ComponentPropsWithoutRef<"button">["children"];
167
+ icon?: import('../../..').IconProps["svg"] | {
168
+ after: import('../../..').IconProps["svg"];
169
+ } | {
170
+ before: import('../../..').IconProps["svg"];
171
+ };
172
+ } & import('../../..').DataTrackingId & import('react').RefAttributes<HTMLButtonElement>, "ref"> | Omit<Omit<Omit<import('react').DetailedHTMLProps<import('react').ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref">, "children"> & LayoutUtilProps & {
173
+ appearance?: import('../../..').ButtonAppearance;
174
+ size?: Extract<import('../../..').Size, "xsmall" | "small" | "medium" | "large">;
175
+ loading?: boolean;
176
+ } & {
177
+ children?: never;
178
+ icon?: import('../../..').IconProps["svg"];
179
+ } & import('../../..').DataTrackingId & import('react').RefAttributes<HTMLButtonElement>, "ref">, "onChange" | "appearance"> & {
180
+ appearance?: import('./types').ToolbarItemAppearance;
181
+ onChange?: (optionId: string) => void;
182
+ selected?: string;
183
+ items: (Record<string, unknown> & {
184
+ id: string;
185
+ } & {
186
+ label: string;
187
+ disabled?: boolean;
188
+ })[];
189
+ accessibleLabel: string;
190
+ } & import('../../..').DataTrackingId & import('react').RefAttributes<HTMLButtonElement>>;
191
+ /**
192
+ * FilterGroup component displays a group of filters with toggles and a clear button.
193
+ * Also contains the FilterDrawer for additional filter options.
194
+ *
195
+ * Features:
196
+ * - Renders filter toggles and popovers for all filter types
197
+ * - Supports controlled and uncontrolled filtering
198
+ * - Integrates with FilterDrawer for batch filter editing
199
+ * - Provides a clear all filters button
200
+ * - Handles overflow and hidden filters
201
+ * - Shares filter state via context for child components
202
+ * - Supports boolean, custom, single-select, multi-select, date, and date range filter types
203
+ * - Date filters include calendar popup for easy selection
204
+ * - Date range filters support start and end date selection
205
+ *
206
+ * @example
207
+ * <Toolbar.Filters
208
+ * filters={filters}
209
+ * onFilterChange={handleFilter}
210
+ * controlledFiltering={true}
211
+ * />
212
+ */
213
+ Filters: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
214
+ filters: import('.').Filter[];
215
+ onFilterChange?: (filters: import('.').Filter[]) => void;
216
+ controlledFiltering?: boolean;
217
+ } & import('react').RefAttributes<HTMLDivElement>>;
218
+ /**
219
+ * ToolbarControlGroup component provides a flex container for grouping related toolbar controls.
220
+ * Can be used for filters, buttons, or other toolbar items.
221
+ *
222
+ * Features:
223
+ * - Groups related toolbar controls in a flex container
224
+ * - Supports accessibility with aria-label
225
+ * - Handles overflow and wrapping based on toolbar context
226
+ * - Integrates with layout utilities for spacing and alignment
227
+ *
228
+ * @example
229
+ * <Toolbar.ControlGroup aria-label="Formatting controls">
230
+ * <Toolbar.Button icon={BoldIcon} aria-label="Bold" />
231
+ * <Toolbar.Button icon={ItalicIcon} aria-label="Italic" />
232
+ * </Toolbar.ControlGroup>
233
+ */
234
+ ControlGroup: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
235
+ "aria-label"?: string;
236
+ } & import('react').RefAttributes<HTMLDivElement>>;
237
+ /**
238
+ * ToolbarSearchField component renders a search field for use in toolbars.
239
+ *
240
+ * Features:
241
+ * - Renders a search field styled for toolbar usage
242
+ * - Supports all SearchField props except size
243
+ * - Integrates with toolbar layouts and accessibility
244
+ *
245
+ * @example
246
+ * <Toolbar.Search placeholder="Search..." />
247
+ */
248
+ Search: import('react').ForwardRefExoticComponent<import('./ToolbarSearchField').ToolbarSearchFieldProps & import('react').RefAttributes<HTMLInputElement>>;
249
+ };
250
+ export declare const ToolbarElement: import('react').ForwardRefExoticComponent<Omit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & LayoutUtilProps & {
124
251
  /**
125
252
  * Description of the content this toolbar is associated with, used for accessibility
126
253
  */
package/dist/beta.js CHANGED
@@ -1,11 +1,11 @@
1
- export { C as COLUMN_TYPE_DEFAULTS, D as DataTable, b as booleanFormatter, a as chipsFormatter, c as createColumnHelper, d as currencyFormatter, h as dateFormatPresets, e as dateFormatter, f as dateTimeFormatter, g as getColumnTypeDefaults, n as numberFormatter, p as percentFormatter, r as resolveColumnTypeConfig, t as timeFormatPresets, i as timeFormatter, y as yearlessDateFormatter } from './DataTable-qoseu_e2.js';
2
- export { T as Toolbar, a as ToolbarButton, c as ToolbarButtonLink, b as ToolbarButtonToggle, e as ToolbarControlGroup, g as ToolbarElement, f as ToolbarSearchField, d as ToolbarSelect } from './Toolbar-DqYMc_w8.js';
3
- export { u as useCalendarBetaProps } from './Calendar-B0u3EgCY.js';
4
- export { C as Calendar } from './Calendar-B5d2SUrH.js';
5
- export { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-BPopU0om.js';
6
- export { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-EELhdoD6.js';
7
- export { S as SelectMenu, a as SelectMenuSync } from './SelectMenuSync-DeMYO1m_.js';
8
- export { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-CAPhhkK1.js';
1
+ export { C as COLUMN_TYPE_DEFAULTS, D as DataTable, b as booleanFormatter, a as chipsFormatter, c as createColumnHelper, d as currencyFormatter, h as dateFormatPresets, e as dateFormatter, f as dateTimeFormatter, g as getColumnTypeDefaults, n as numberFormatter, p as percentFormatter, r as resolveColumnTypeConfig, t as timeFormatPresets, i as timeFormatter, y as yearlessDateFormatter } from './DataTable-BmVPjMMg.js';
2
+ export { T as Toolbar, a as ToolbarButton, c as ToolbarButtonLink, b as ToolbarButtonToggle, e as ToolbarControlGroup, g as ToolbarElement, f as ToolbarSearchField, d as ToolbarSelect } from './Toolbar-0EKhrvZN.js';
3
+ export { u as useCalendarBetaProps } from './Calendar-Frpv5rRY.js';
4
+ export { C as Calendar } from './Calendar-BTStJPV1.js';
5
+ export { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-DA54WXOk.js';
6
+ export { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-CSOitvtu.js';
7
+ export { S as SelectMenu, a as SelectMenuSync } from './SelectMenuSync-BQaSTcaN.js';
8
+ export { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-62OeGmkz.js';
9
9
  export { I as InteractiveCard } from './InteractiveCard-GTYbR6Xy.js';
10
- export { u as useAdaptiveView } from './syncFilterUtils-BRKjFwxk.js';
10
+ export { u as useAdaptiveView } from './syncFilterUtils-B03Pc941.js';
11
11
  //# sourceMappingURL=beta.js.map
@@ -15,6 +15,20 @@ import { DistributiveOmit } from '../../types';
15
15
  export type AvatarProps = DistributiveOmit<CoreAvatarProps, "size"> & {
16
16
  size?: Extract<CoreAvatarProps["size"], "small" | "medium" | "large">;
17
17
  };
18
+ /**
19
+ * Avatar component for displaying user avatars with initials or images.
20
+ *
21
+ * Features:
22
+ * - Displays user initials when no image is provided
23
+ * - Supports custom colors and sizes
24
+ * - Shows online/offline status
25
+ * - Fully accessible with screen reader support
26
+ * - Automatic image fallback handling
27
+ * - Automatic tracking ID generation for analytics
28
+ *
29
+ * @example
30
+ * <Avatar name="John Doe" size="medium" status="online" />
31
+ */
18
32
  export declare const Avatar: import('react').ForwardRefExoticComponent<Omit<CoreAvatarProps, "size"> & {
19
33
  size?: Extract<CoreAvatarProps["size"], "small" | "medium" | "large">;
20
34
  } & import('react').RefAttributes<HTMLSpanElement>> & {