@servicetitan/anvil2 2.6.0 → 2.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 (363) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/{Alert-efJbA3Sy.js → Alert-C_o2f78C.js} +4 -4
  3. package/dist/{Alert-efJbA3Sy.js.map → Alert-C_o2f78C.js.map} +1 -1
  4. package/dist/Alert.js +1 -1
  5. package/dist/{Announcement-D9eVhPwx.js → Announcement-CyrTvgP4.js} +4 -4
  6. package/dist/{Announcement-D9eVhPwx.js.map → Announcement-CyrTvgP4.js.map} +1 -1
  7. package/dist/Announcement.js +1 -1
  8. package/dist/{AnvilProvider-DrjU73_k.js → AnvilProvider-ClfmLl_6.js} +3 -3
  9. package/dist/{AnvilProvider-DrjU73_k.js.map → AnvilProvider-ClfmLl_6.js.map} +1 -1
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Avatar--E9iBILU.js → Avatar--CnTAnfD.js} +2 -2
  12. package/dist/{Avatar--E9iBILU.js.map → Avatar--CnTAnfD.js.map} +1 -1
  13. package/dist/{Avatar-CJCAu9Hk.js → Avatar-CCnbKkCm.js} +3 -3
  14. package/dist/{Avatar-CJCAu9Hk.js.map → Avatar-CCnbKkCm.js.map} +1 -1
  15. package/dist/Avatar.js +2 -2
  16. package/dist/{Badge-pHlnInjl.js → Badge-C2W7Dls9.js} +3 -3
  17. package/dist/{Badge-pHlnInjl.js.map → Badge-C2W7Dls9.js.map} +1 -1
  18. package/dist/Badge.js +1 -1
  19. package/dist/{Breadcrumbs-B5deMJRX.js → Breadcrumbs-3Y7jnj-F.js} +5 -5
  20. package/dist/{Breadcrumbs-B5deMJRX.js.map → Breadcrumbs-3Y7jnj-F.js.map} +1 -1
  21. package/dist/Breadcrumbs.js +1 -1
  22. package/dist/{Button-DuvaXRZ5.js → Button-CVsGhVJz.js} +4 -4
  23. package/dist/{Button-DuvaXRZ5.js.map → Button-CVsGhVJz.js.map} +1 -1
  24. package/dist/Button.js +1 -1
  25. package/dist/{ButtonCompound-CfRJlClF.js → ButtonCompound-Cmw3cgMY.js} +2 -2
  26. package/dist/{ButtonCompound-CfRJlClF.js.map → ButtonCompound-Cmw3cgMY.js.map} +1 -1
  27. package/dist/ButtonCompound.js +1 -1
  28. package/dist/{ButtonLink-B5Ixd5d5.js → ButtonLink-BJKTJER8.js} +4 -4
  29. package/dist/{ButtonLink-B5Ixd5d5.js.map → ButtonLink-BJKTJER8.js.map} +1 -1
  30. package/dist/ButtonLink.js +1 -1
  31. package/dist/{ButtonToggle-BkDR0AcM.js → ButtonToggle-DaYJWso_.js} +3 -3
  32. package/dist/{ButtonToggle-BkDR0AcM.js.map → ButtonToggle-DaYJWso_.js.map} +1 -1
  33. package/dist/ButtonToggle.js +1 -1
  34. package/dist/{Calendar-MXQWMrwC.js → Calendar-C1U2npPP.js} +2 -2
  35. package/dist/{Calendar-MXQWMrwC.js.map → Calendar-C1U2npPP.js.map} +1 -1
  36. package/dist/{Calendar-M8K2O28r.js → Calendar-SGlTt-bs.js} +6 -6
  37. package/dist/{Calendar-M8K2O28r.js.map → Calendar-SGlTt-bs.js.map} +1 -1
  38. package/dist/Calendar.js +2 -2
  39. package/dist/{Card-C5TyS0Iv.js → Card-wz71dEVA.js} +2 -2
  40. package/dist/{Card-C5TyS0Iv.js.map → Card-wz71dEVA.js.map} +1 -1
  41. package/dist/Card.js +1 -1
  42. package/dist/{Checkbox-Czx6UCfq.js → Checkbox-CjEKa5Iv.js} +2 -2
  43. package/dist/{Checkbox-Czx6UCfq.js.map → Checkbox-CjEKa5Iv.js.map} +1 -1
  44. package/dist/{Checkbox-LPr8zpzs.js → Checkbox-CtKUNeyu.js} +20 -11
  45. package/dist/Checkbox-CtKUNeyu.js.map +1 -0
  46. package/dist/Checkbox.js +1 -1
  47. package/dist/{Chip-BJmzOMOd.js → Chip-DjTAR0va.js} +5 -5
  48. package/dist/{Chip-BJmzOMOd.js.map → Chip-DjTAR0va.js.map} +1 -1
  49. package/dist/Chip.js +1 -1
  50. package/dist/{Combobox-CnzBCYLC.js → Combobox-By8-34bw.js} +13 -12
  51. package/dist/{Combobox-CnzBCYLC.js.map → Combobox-By8-34bw.js.map} +1 -1
  52. package/dist/Combobox.js +1 -1
  53. package/dist/{DataTable-Cau6ylNR.js → DataTable-BYOS6icI.js} +95 -53
  54. package/dist/DataTable-BYOS6icI.js.map +1 -0
  55. package/dist/DataTable.css +68 -55
  56. package/dist/{DateFieldRange-B1BR8K7C.js → DateFieldRange-C8Uzrboc.js} +45 -54
  57. package/dist/DateFieldRange-C8Uzrboc.js.map +1 -0
  58. package/dist/DateFieldRange.js +1 -1
  59. package/dist/{DateFieldSingle-CaWruBBO.js → DateFieldSingle-DrhLIjlK.js} +43 -52
  60. package/dist/DateFieldSingle-DrhLIjlK.js.map +1 -0
  61. package/dist/DateFieldSingle.js +1 -1
  62. package/dist/{DateFieldYearless-ClF88lnZ.js → DateFieldYearless-DbivK4Hm.js} +6 -6
  63. package/dist/{DateFieldYearless-ClF88lnZ.js.map → DateFieldYearless-DbivK4Hm.js.map} +1 -1
  64. package/dist/DateFieldYearless.js +1 -1
  65. package/dist/{DateFieldYearlessRange-LZFr55tn.js → DateFieldYearlessRange-BEqJe4Uf.js} +7 -7
  66. package/dist/{DateFieldYearlessRange-LZFr55tn.js.map → DateFieldYearlessRange-BEqJe4Uf.js.map} +1 -1
  67. package/dist/DateFieldYearlessRange.js +1 -1
  68. package/dist/{DaysOfTheWeek-BLdndX4a.js → DaysOfTheWeek-BR32AA32.js} +6 -6
  69. package/dist/{DaysOfTheWeek-BLdndX4a.js.map → DaysOfTheWeek-BR32AA32.js.map} +1 -1
  70. package/dist/DaysOfTheWeek.js +1 -1
  71. package/dist/{Details-C9temdJE.js → Details-Dxq_v3Qg.js} +3 -3
  72. package/dist/{Details-C9temdJE.js.map → Details-Dxq_v3Qg.js.map} +1 -1
  73. package/dist/Details.js +1 -1
  74. package/dist/{Dialog-CXnUkcrS.js → Dialog-CGhwkwvq.js} +5 -5
  75. package/dist/{Dialog-CXnUkcrS.js.map → Dialog-CGhwkwvq.js.map} +1 -1
  76. package/dist/Dialog.js +1 -1
  77. package/dist/{DialogCancelButton-LfPkSYCE.js → DialogCancelButton-DQDMzGeT.js} +2 -2
  78. package/dist/{DialogCancelButton-LfPkSYCE.js.map → DialogCancelButton-DQDMzGeT.js.map} +1 -1
  79. package/dist/{Divider-HHjG0KYA.js → Divider-B1UoK8ho.js} +2 -2
  80. package/dist/{Divider-HHjG0KYA.js.map → Divider-B1UoK8ho.js.map} +1 -1
  81. package/dist/Divider.js +1 -1
  82. package/dist/Dnd.js +1 -1
  83. package/dist/DndSort.js +8 -10
  84. package/dist/DndSort.js.map +1 -1
  85. package/dist/{Drawer-BmNHRJJJ.js → Drawer-DA4iAgt-.js} +5 -5
  86. package/dist/{Drawer-BmNHRJJJ.js.map → Drawer-DA4iAgt-.js.map} +1 -1
  87. package/dist/Drawer.js +1 -1
  88. package/dist/DrillDown.js +1 -1
  89. package/dist/{EditCard-8gQ6IJez.js → EditCard-CLN0GBN_.js} +6 -6
  90. package/dist/{EditCard-8gQ6IJez.js.map → EditCard-CLN0GBN_.js.map} +1 -1
  91. package/dist/EditCard.js +1 -1
  92. package/dist/{FieldLabel-35fac7b-.js → FieldLabel-DbMosKtd.js} +5 -5
  93. package/dist/{FieldLabel-35fac7b-.js.map → FieldLabel-DbMosKtd.js.map} +1 -1
  94. package/dist/FieldLabel.js +1 -1
  95. package/dist/{FieldMessage-eYenMJY5.js → FieldMessage-COHqUdj5.js} +3 -3
  96. package/dist/{FieldMessage-eYenMJY5.js.map → FieldMessage-COHqUdj5.js.map} +1 -1
  97. package/dist/FieldMessage.js +2 -2
  98. package/dist/{Flex-DZu-_z-U.js → Flex-WyyZm1bf.js} +2 -2
  99. package/dist/{Flex-DZu-_z-U.js.map → Flex-WyyZm1bf.js.map} +1 -1
  100. package/dist/Flex.js +1 -1
  101. package/dist/{Grid-xRKvVHA2.js → Grid-ONcUpb__.js} +2 -2
  102. package/dist/{Grid-xRKvVHA2.js.map → Grid-ONcUpb__.js.map} +1 -1
  103. package/dist/Grid.js +1 -1
  104. package/dist/{Helper-CDZD_AOG.js → Helper-B_FIOlhy.js} +3 -3
  105. package/dist/{Helper-CDZD_AOG.js.map → Helper-B_FIOlhy.js.map} +1 -1
  106. package/dist/{Icon-Bgkq1egx.js → Icon-DuIlne4x.js} +2 -2
  107. package/dist/{Icon-Bgkq1egx.js.map → Icon-DuIlne4x.js.map} +1 -1
  108. package/dist/Icon.js +1 -1
  109. package/dist/{InputMask-DkvZ4MIT.js → InputMask-HjaNCb73.js} +3 -3
  110. package/dist/{InputMask-DkvZ4MIT.js.map → InputMask-HjaNCb73.js.map} +1 -1
  111. package/dist/InputMask.js +1 -1
  112. package/dist/{InteractiveCard-B3_FAoIE.js → InteractiveCard-GTYbR6Xy.js} +3 -3
  113. package/dist/{InteractiveCard-B3_FAoIE.js.map → InteractiveCard-GTYbR6Xy.js.map} +1 -1
  114. package/dist/InteractiveCard.js +1 -1
  115. package/dist/{Layout-DTAU7jS5.js → Layout-VfhlilMG.js} +2 -2
  116. package/dist/{Layout-DTAU7jS5.js.map → Layout-VfhlilMG.js.map} +1 -1
  117. package/dist/Layout.js +1 -1
  118. package/dist/{Link-DSyeiS7g.js → Link-jTvzyXca.js} +3 -3
  119. package/dist/{Link-DSyeiS7g.js.map → Link-jTvzyXca.js.map} +1 -1
  120. package/dist/Link.js +1 -1
  121. package/dist/{LinkButton-DOI4osnN.js → LinkButton-DGyHR1E7.js} +2 -2
  122. package/dist/{LinkButton-DOI4osnN.js.map → LinkButton-DGyHR1E7.js.map} +1 -1
  123. package/dist/LinkButton.js +1 -1
  124. package/dist/{List-Cyvkt0Px.js → List-CJZjElAQ.js} +2 -2
  125. package/dist/{List-Cyvkt0Px.js.map → List-CJZjElAQ.js.map} +1 -1
  126. package/dist/List.js +1 -1
  127. package/dist/{ListView-VzdUffCe.js → ListView-mujFK6mQ.js} +3 -3
  128. package/dist/{ListView-VzdUffCe.js.map → ListView-mujFK6mQ.js.map} +1 -1
  129. package/dist/ListView.js +1 -1
  130. package/dist/{Listbox-SRBgb1VS.js → Listbox-BtAgBDRS.js} +6 -6
  131. package/dist/{Listbox-SRBgb1VS.js.map → Listbox-BtAgBDRS.js.map} +1 -1
  132. package/dist/Listbox.css +29 -29
  133. package/dist/Listbox.js +1 -1
  134. package/dist/Listbox.module-HAXMOKvC.js +18 -0
  135. package/dist/Listbox.module-HAXMOKvC.js.map +1 -0
  136. package/dist/{Menu-Bxbrulia.js → Menu-BXsmCP20.js} +6 -5
  137. package/dist/{Menu-Bxbrulia.js.map → Menu-BXsmCP20.js.map} +1 -1
  138. package/dist/Menu.js +1 -1
  139. package/dist/MultiSelectField.js +1 -1
  140. package/dist/{MultiSelectFieldSync-B6J42MpG.js → MultiSelectFieldSync-DGpGgu8q.js} +91 -176
  141. package/dist/MultiSelectFieldSync-DGpGgu8q.js.map +1 -0
  142. package/dist/MultiSelectMenu.d.ts +2 -0
  143. package/dist/MultiSelectMenu.js +2 -0
  144. package/dist/MultiSelectMenu.js.map +1 -0
  145. package/dist/MultiSelectMenuSync-DiLddJDw.js +432 -0
  146. package/dist/MultiSelectMenuSync-DiLddJDw.js.map +1 -0
  147. package/dist/{NumberField-BgeDEoHw.js → NumberField-svhZp1kB.js} +8 -8
  148. package/dist/{NumberField-BgeDEoHw.js.map → NumberField-svhZp1kB.js.map} +1 -1
  149. package/dist/NumberField.js +1 -1
  150. package/dist/Overflow.js +2 -2
  151. package/dist/{Page-DgqEClR7.js → Page-Be029Dij.js} +123 -82
  152. package/dist/Page-Be029Dij.js.map +1 -0
  153. package/dist/Page.css +84 -72
  154. package/dist/Page.js +1 -1
  155. package/dist/{Pagination-DIredMzG.js → Pagination-BAwqfl_2.js} +8 -8
  156. package/dist/{Pagination-DIredMzG.js.map → Pagination-BAwqfl_2.js.map} +1 -1
  157. package/dist/Pagination.js +1 -1
  158. package/dist/{Popover-CsVesD9_.js → Popover-D0qSKZ1J.js} +6 -5
  159. package/dist/{Popover-CsVesD9_.js.map → Popover-D0qSKZ1J.js.map} +1 -1
  160. package/dist/{Popover-ZyaN26OB.js → Popover-DxZF6lbJ.js} +28 -15
  161. package/dist/Popover-DxZF6lbJ.js.map +1 -0
  162. package/dist/Popover.js +1 -1
  163. package/dist/{ProgressBar-x1cyKo1E.js → ProgressBar-JpRDW5vG.js} +7 -7
  164. package/dist/{ProgressBar-x1cyKo1E.js.map → ProgressBar-JpRDW5vG.js.map} +1 -1
  165. package/dist/ProgressBar.js +1 -1
  166. package/dist/{Radio-Beneo_h3.js → Radio-BOq9UkpC.js} +2 -2
  167. package/dist/{Radio-Beneo_h3.js.map → Radio-BOq9UkpC.js.map} +1 -1
  168. package/dist/{Radio-D8HSazJ6.js → Radio-BQg7exDG.js} +17 -8
  169. package/dist/{Radio-D8HSazJ6.js.map → Radio-BQg7exDG.js.map} +1 -1
  170. package/dist/Radio.js +1 -1
  171. package/dist/{SearchField-Dn_5cMo3.js → SearchField-im7AHGYo.js} +4 -4
  172. package/dist/{SearchField-Dn_5cMo3.js.map → SearchField-im7AHGYo.js.map} +1 -1
  173. package/dist/SearchField.js +1 -1
  174. package/dist/{SegmentedControl-BshzGPsW.js → SegmentedControl-7fDLhgvh.js} +3 -3
  175. package/dist/{SegmentedControl-BshzGPsW.js.map → SegmentedControl-7fDLhgvh.js.map} +1 -1
  176. package/dist/SegmentedControl.js +1 -1
  177. package/dist/{SelectCard-D94UKLxM.js → SelectCard-cu4MBuh8.js} +24 -15
  178. package/dist/{SelectCard-D94UKLxM.js.map → SelectCard-cu4MBuh8.js.map} +1 -1
  179. package/dist/SelectCard.css +23 -18
  180. package/dist/SelectCard.js +1 -1
  181. package/dist/SelectField.js +1 -1
  182. package/dist/SelectFieldLabel-Dr8HeW3N.js +31 -0
  183. package/dist/SelectFieldLabel-Dr8HeW3N.js.map +1 -0
  184. package/dist/{SelectFieldSync-BQrC0j2-.js → SelectFieldSync-CJ2Ie_v1.js} +79 -168
  185. package/dist/SelectFieldSync-CJ2Ie_v1.js.map +1 -0
  186. package/dist/SelectMenu.d.ts +2 -0
  187. package/dist/SelectMenu.js +2 -0
  188. package/dist/SelectMenu.js.map +1 -0
  189. package/dist/SelectMenuSync-CJA_coqD.js +327 -0
  190. package/dist/SelectMenuSync-CJA_coqD.js.map +1 -0
  191. package/dist/SelectOptions-Bf4xsFek.js +26 -0
  192. package/dist/SelectOptions-Bf4xsFek.js.map +1 -0
  193. package/dist/{SelectTrigger-D8xkq1wa.js → SelectTrigger-ObsnAKNp.js} +4 -4
  194. package/dist/{SelectTrigger-D8xkq1wa.js.map → SelectTrigger-ObsnAKNp.js.map} +1 -1
  195. package/dist/SelectTrigger.js +1 -1
  196. package/dist/{SelectTriggerBase-CBS5URqs.js → SelectTriggerBase-DKfOL2RJ.js} +8 -8
  197. package/dist/{SelectTriggerBase-CBS5URqs.js.map → SelectTriggerBase-DKfOL2RJ.js.map} +1 -1
  198. package/dist/{SideNav-2CgD8uxD.js → SideNav-KksbSQn7.js} +3 -3
  199. package/dist/{SideNav-2CgD8uxD.js.map → SideNav-KksbSQn7.js.map} +1 -1
  200. package/dist/SideNav.js +1 -1
  201. package/dist/Skeleton.js +1 -1
  202. package/dist/{Spinner-CpEm3Lud.js → Spinner-BqmcE2pb.js} +2 -2
  203. package/dist/{Spinner-CpEm3Lud.js.map → Spinner-BqmcE2pb.js.map} +1 -1
  204. package/dist/Spinner.js +1 -1
  205. package/dist/{SrOnly-CrdBTl6E.js → SrOnly-eUpYGpAT.js} +2 -2
  206. package/dist/{SrOnly-CrdBTl6E.js.map → SrOnly-eUpYGpAT.js.map} +1 -1
  207. package/dist/SrOnly.js +1 -1
  208. package/dist/{Stepper-D71Zhlr9.js → Stepper-Dt8_ImvJ.js} +4 -4
  209. package/dist/{Stepper-D71Zhlr9.js.map → Stepper-Dt8_ImvJ.js.map} +1 -1
  210. package/dist/Stepper.js +1 -1
  211. package/dist/{Switch-DxkmA-o4.js → Switch-DpPHr3G3.js} +5 -5
  212. package/dist/{Switch-DxkmA-o4.js.map → Switch-DpPHr3G3.js.map} +1 -1
  213. package/dist/Switch.js +1 -1
  214. package/dist/{Tab-2mEMF0vc.js → Tab-DO7LaUbw.js} +3 -3
  215. package/dist/{Tab-2mEMF0vc.js.map → Tab-DO7LaUbw.js.map} +1 -1
  216. package/dist/Tab.js +1 -1
  217. package/dist/Table.js +1 -1
  218. package/dist/{Text-BqES2rv3.js → Text-BJo4oMI2.js} +2 -2
  219. package/dist/{Text-BqES2rv3.js.map → Text-BJo4oMI2.js.map} +1 -1
  220. package/dist/Text.js +1 -1
  221. package/dist/{TextField-Dk90SWXl.js → TextField-BW8sJAls.js} +2 -2
  222. package/dist/{TextField-Dk90SWXl.js.map → TextField-BW8sJAls.js.map} +1 -1
  223. package/dist/{TextField-Dn6HWZoH.js → TextField-DeHpgPag.js} +12 -7
  224. package/dist/TextField-DeHpgPag.js.map +1 -0
  225. package/dist/TextField.js +1 -1
  226. package/dist/{Textarea-D4gqy2ZR.js → Textarea-DyqdMTvQ.js} +5 -5
  227. package/dist/{Textarea-D4gqy2ZR.js.map → Textarea-DyqdMTvQ.js.map} +1 -1
  228. package/dist/Textarea.js +1 -1
  229. package/dist/{ThemeProvider-BwZHpkFv.js → ThemeProvider-CaYW3RuA.js} +2 -2
  230. package/dist/{ThemeProvider-BwZHpkFv.js.map → ThemeProvider-CaYW3RuA.js.map} +1 -1
  231. package/dist/ThemeProvider.js +1 -1
  232. package/dist/{TimeField-DgdGwPF9.js → TimeField-Dc0Y1JD-.js} +6 -7
  233. package/dist/{TimeField-DgdGwPF9.js.map → TimeField-Dc0Y1JD-.js.map} +1 -1
  234. package/dist/TimeField.js +1 -1
  235. package/dist/Toast.js +2 -2
  236. package/dist/{Toaster-BBcWImWl.js → Toaster-DikGo_hR.js} +2 -2
  237. package/dist/{Toaster-BBcWImWl.js.map → Toaster-DikGo_hR.js.map} +1 -1
  238. package/dist/{Toaster-C07D40P9.js → Toaster-b0-Ub3yt.js} +7 -7
  239. package/dist/{Toaster-C07D40P9.js.map → Toaster-b0-Ub3yt.js.map} +1 -1
  240. package/dist/{Toolbar-4LHKM6ub.js → Toolbar-DAuz4Gs2.js} +41 -129
  241. package/dist/Toolbar-DAuz4Gs2.js.map +1 -0
  242. package/dist/Toolbar.js +1 -1
  243. package/dist/{Tooltip-BiW5nNAy.js → Tooltip-Bupqao9B.js} +5 -4
  244. package/dist/{Tooltip-BiW5nNAy.js.map → Tooltip-Bupqao9B.js.map} +1 -1
  245. package/dist/Tooltip.js +1 -1
  246. package/dist/{YearlessDateInputWithPicker-CxfcJqro.js → YearlessDateInputWithPicker-DFi08TLG.js} +13 -15
  247. package/dist/YearlessDateInputWithPicker-DFi08TLG.js.map +1 -0
  248. package/dist/YearlessDateInputWithPicker.css +33 -33
  249. package/dist/beta/components/MultiSelectField/MultiSelectFieldSync.d.ts +2 -3
  250. package/dist/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +8 -7
  251. package/dist/beta/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +6 -4
  252. package/dist/beta/components/MultiSelectField/types.d.ts +2 -3
  253. package/dist/beta/components/MultiSelectMenu/MultiSelectMenu.d.ts +30 -0
  254. package/dist/beta/components/MultiSelectMenu/MultiSelectMenuSync.d.ts +54 -0
  255. package/dist/beta/components/MultiSelectMenu/index.d.ts +3 -0
  256. package/dist/beta/components/MultiSelectMenu/types.d.ts +170 -0
  257. package/dist/beta/components/SelectField/SelectFieldSync.d.ts +2 -3
  258. package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  259. package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  260. package/dist/beta/components/SelectField/internal/useCombo.d.ts +7 -7
  261. package/dist/beta/components/SelectField/internal/useSelectMode.d.ts +7 -6
  262. package/dist/beta/components/SelectField/types.d.ts +2 -9
  263. package/dist/beta/components/SelectMenu/SelectMenu.d.ts +27 -0
  264. package/dist/beta/components/SelectMenu/SelectMenuSync.d.ts +41 -0
  265. package/dist/beta/components/SelectMenu/index.d.ts +3 -0
  266. package/dist/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +72 -0
  267. package/dist/beta/components/SelectMenu/types.d.ts +153 -0
  268. package/dist/beta/components/Table/DataTable/DataTable.d.ts +7 -1
  269. package/dist/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +1 -1
  270. package/dist/beta/components/Table/DataTable/internal/cells/CellStatus.d.ts +12 -0
  271. package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +7 -1
  272. package/dist/beta/components/Table/createColumnHelper.d.ts +6 -0
  273. package/dist/beta/components/Table/types.d.ts +20 -0
  274. package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +3 -3
  275. package/dist/beta/components/index.d.ts +2 -0
  276. package/dist/beta.js +10 -8
  277. package/dist/beta.js.map +1 -1
  278. package/dist/components/Announcement/Announcement.figma.d.ts +1 -0
  279. package/dist/components/Checkbox/internal/Checkbox.d.ts +8 -0
  280. package/dist/components/DateFieldYearless/internal/YearlessDateSelectionPopover.d.ts +1 -1
  281. package/dist/components/DndSort/internal/test-utils.d.ts +15 -8
  282. package/dist/components/FieldMessage/FieldMessage.figma.d.ts +1 -0
  283. package/dist/components/Page/Page.d.ts +1 -1
  284. package/dist/components/Page/PageContent.d.ts +5 -5
  285. package/dist/components/Page/PageContext.d.ts +2 -0
  286. package/dist/components/Page/PageFooter.d.ts +1 -0
  287. package/dist/components/Radio/internal/Radio.d.ts +8 -0
  288. package/dist/components/Toolbar/ToolbarSelect.d.ts +3 -3
  289. package/dist/{match-sorter.esm-adzV1NDp.js → downshift.esm-xtSnQp44.js} +3 -907
  290. package/dist/downshift.esm-xtSnQp44.js.map +1 -0
  291. package/dist/{floating-ui.react-S01OoTc9.js → floating-ui.react-C_s3_nEb.js} +2 -2
  292. package/dist/{floating-ui.react-S01OoTc9.js.map → floating-ui.react-C_s3_nEb.js.map} +1 -1
  293. package/dist/{floating-ui.react-dom-DSiPHZwm.js → floating-ui.react-dom-imrk9N49.js} +2 -17
  294. package/dist/floating-ui.react-dom-imrk9N49.js.map +1 -0
  295. package/dist/{index-DuDm69S1.js → index-D6ag_WQW.js} +4 -4
  296. package/dist/{index-DuDm69S1.js.map → index-D6ag_WQW.js.map} +1 -1
  297. package/dist/{index-SvGbrGuT.js → index-De1g9FRV.js} +2 -2
  298. package/dist/{index-SvGbrGuT.js.map → index-De1g9FRV.js.map} +1 -1
  299. package/dist/index.js +73 -100
  300. package/dist/index.js.map +1 -1
  301. package/dist/internal/components/MultiSelectOptions.d.ts +23 -0
  302. package/dist/{beta/components/SelectField/internal/FieldDialog/FieldDialog.d.ts → internal/components/OptionsDialog/OptionsDialog.d.ts} +2 -2
  303. package/dist/internal/components/OptionsPanel.d.ts +26 -0
  304. package/dist/internal/components/OptionsPopover/OptionsPopover.d.ts +16 -0
  305. package/dist/internal/components/Popover/Popover.d.ts +3 -2
  306. package/dist/internal/components/Popover/PopoverContent.d.ts +4 -0
  307. package/dist/internal/components/Popover/internal/PopoverContext.d.ts +2 -2
  308. package/dist/internal/components/SelectOption.d.ts +13 -0
  309. package/dist/internal/components/SelectOptions.d.ts +23 -0
  310. package/dist/internal/components/VirtualizedOptionsPanel.d.ts +2 -0
  311. package/dist/internal/functions/buildSelectItems.d.ts +22 -0
  312. package/dist/internal/functions/syncFilterUtils.d.ts +10 -0
  313. package/dist/{beta/components/SelectField/internal → internal/hooks}/useGroupedOptions.d.ts +4 -3
  314. package/dist/{beta/components/SelectField/internal/useFieldListSections.d.ts → internal/hooks/useOptionsSections.d.ts} +7 -8
  315. package/dist/{beta/components/SelectField/internal → internal/hooks}/usePinnedOptions.d.ts +1 -1
  316. package/dist/{beta/components/SelectField/internal → internal/hooks}/useProcessedOptions.d.ts +2 -2
  317. package/dist/internal/hooks/useSelectOrchestration.d.ts +38 -0
  318. package/dist/{beta/components/MultiSelectField/internal → internal/hooks}/useToggleSelection.d.ts +2 -2
  319. package/dist/{beta/components/SelectField/internal/types.d.ts → internal/types/selectFieldInternalTypes.d.ts} +11 -3
  320. package/dist/match-sorter.esm-CGAauEiU.js +908 -0
  321. package/dist/match-sorter.esm-CGAauEiU.js.map +1 -0
  322. package/dist/safePopover-BDso-xSH.js +17 -0
  323. package/dist/safePopover-BDso-xSH.js.map +1 -0
  324. package/dist/{FieldDialog-DaRvLS6m.js → syncFilterUtils-vt8ldsES.js} +287 -146
  325. package/dist/syncFilterUtils-vt8ldsES.js.map +1 -0
  326. package/dist/{FieldDialog.css → syncFilterUtils.css} +18 -11
  327. package/dist/{useDrilldown-CuvPT4gS.js → useDrilldown-wwXRpNgb.js} +5 -5
  328. package/dist/{useDrilldown-CuvPT4gS.js.map → useDrilldown-wwXRpNgb.js.map} +1 -1
  329. package/dist/useMenuInteraction-zR_78KQC.js +249 -0
  330. package/dist/useMenuInteraction-zR_78KQC.js.map +1 -0
  331. package/dist/useToggleSelection-BdXW3Zg3.js +63 -0
  332. package/dist/useToggleSelection-BdXW3Zg3.js.map +1 -0
  333. package/dist/{utils-pudAMGnO.js → utils-CM48ODEJ.js} +3 -13
  334. package/dist/utils-CM48ODEJ.js.map +1 -0
  335. package/dist/warnOnce-Y9PRHcU4.js +13 -0
  336. package/dist/warnOnce-Y9PRHcU4.js.map +1 -0
  337. package/package.json +10 -9
  338. package/dist/Checkbox-LPr8zpzs.js.map +0 -1
  339. package/dist/DataTable-Cau6ylNR.js.map +0 -1
  340. package/dist/DateFieldRange-B1BR8K7C.js.map +0 -1
  341. package/dist/DateFieldSingle-CaWruBBO.js.map +0 -1
  342. package/dist/FieldDialog-DaRvLS6m.js.map +0 -1
  343. package/dist/Listbox.module-XuKszT3X.js +0 -18
  344. package/dist/Listbox.module-XuKszT3X.js.map +0 -1
  345. package/dist/MultiSelectFieldSync-B6J42MpG.js.map +0 -1
  346. package/dist/Page-DgqEClR7.js.map +0 -1
  347. package/dist/Popover-ZyaN26OB.js.map +0 -1
  348. package/dist/SelectFieldSync-BQrC0j2-.js.map +0 -1
  349. package/dist/TextField-Dn6HWZoH.js.map +0 -1
  350. package/dist/Toolbar-4LHKM6ub.js.map +0 -1
  351. package/dist/YearlessDateInputWithPicker-CxfcJqro.js.map +0 -1
  352. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldList.d.ts +0 -24
  353. package/dist/beta/components/SelectField/internal/FieldListBase.d.ts +0 -27
  354. package/dist/beta/components/SelectField/internal/FieldPopover/FieldPopover.d.ts +0 -9
  355. package/dist/beta/components/SelectField/internal/SelectFieldList.d.ts +0 -26
  356. package/dist/beta/components/SelectField/internal/SelectFieldListItem.d.ts +0 -14
  357. package/dist/beta/components/SelectField/internal/VirtualizedFieldListBase.d.ts +0 -2
  358. package/dist/beta/components/SelectField/internal/buildDownshiftItems.d.ts +0 -22
  359. package/dist/beta/components/Table/DataTable/internal/cells/CellError.d.ts +0 -10
  360. package/dist/floating-ui.react-dom-DSiPHZwm.js.map +0 -1
  361. package/dist/match-sorter.esm-adzV1NDp.js.map +0 -1
  362. package/dist/utils-pudAMGnO.js.map +0 -1
  363. /package/dist/{beta/components/SelectField/internal → internal/components}/InView.d.ts +0 -0
@@ -1,6 +1,6 @@
1
1
  import { UseComboboxProps } from 'downshift';
2
- import { SelectFieldDownshiftItem, SelectFieldGroupByValue, SelectFieldOption, SelectFieldPinnedOptions } from '../types';
3
- import { SectionMeta } from './types';
2
+ import { SelectFieldGroupByValue, SelectFieldOption, SelectFieldPinnedOptions } from '../types';
3
+ import { SectionMeta, SelectItem } from '../../../../internal/types/selectFieldInternalTypes';
4
4
  export type { SectionMeta };
5
5
  export type UseComboOptions = {
6
6
  options: SelectFieldOption[];
@@ -13,22 +13,22 @@ export type UseComboOptions = {
13
13
  disableHighlightOnOpen?: boolean;
14
14
  disabled: boolean;
15
15
  virtualize?: boolean;
16
- } & Pick<UseComboboxProps<SelectFieldDownshiftItem>, "onInputValueChange" | "onIsOpenChange">;
16
+ onScrollToHighlight?: (index: number) => void;
17
+ } & Pick<UseComboboxProps<SelectItem>, "onInputValueChange" | "onIsOpenChange">;
17
18
  /**
18
19
  * The purpose of useCombo is to provide an abstraction over the downshift combobox hook.
19
20
  */
20
- export declare const useCombo: ({ options, pinned, groupToString, groupSorter, selectedOption, onSelectedOptionChange, onInputValueChange, onIsOpenChange, displayAs, disableHighlightOnOpen, disabled, virtualize, }: UseComboOptions) => {
21
+ export declare const useCombo: ({ options, pinned, groupToString, groupSorter, selectedOption, onSelectedOptionChange, onInputValueChange, onIsOpenChange, displayAs, disableHighlightOnOpen, disabled, virtualize, onScrollToHighlight, }: UseComboOptions) => {
21
22
  inputValue: string;
22
23
  wrapperDivRef: import('react').RefObject<HTMLDivElement>;
23
24
  getToggleButtonProps: <Options>(options?: import('downshift').UseComboboxGetToggleButtonPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseComboboxGetToggleButtonPropsReturnValue, Options>;
24
25
  getLabelProps: <Options>(options?: import('downshift').UseComboboxGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseComboboxGetLabelPropsReturnValue, Options>;
25
26
  getMenuProps: <Options>(options?: import('downshift').UseComboboxGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseComboboxGetMenuPropsReturnValue, Options>;
26
27
  getInputProps: <Options>(options?: import('downshift').UseComboboxGetInputPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseComboboxGetInputPropsReturnValue, Options>;
27
- getItemProps: <Options>(options: import('downshift').UseComboboxGetItemPropsOptions<SelectFieldDownshiftItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseComboboxGetItemPropsReturnValue, Options>, "item" | "index">;
28
+ getItemProps: <Options>(options: import('downshift').UseComboboxGetItemPropsOptions<SelectItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseComboboxGetItemPropsReturnValue, Options>, "item" | "index">;
28
29
  highlightedIndex: number;
29
- highlightChangeTypeRef: import('react').MutableRefObject<string>;
30
30
  isOpen: boolean;
31
- downshiftItems: SelectFieldDownshiftItem[];
31
+ items: SelectItem[];
32
32
  sectionsMeta: SectionMeta[];
33
33
  closeMenu: () => void;
34
34
  openMenu: () => void;
@@ -1,4 +1,5 @@
1
- import { SelectFieldDownshiftItem, SelectFieldGroupByValue, SelectFieldOption, SelectFieldPinnedOptions } from '../types';
1
+ import { SelectFieldGroupByValue, SelectFieldOption, SelectFieldPinnedOptions } from '../types';
2
+ import { SelectItem } from '../../../../internal/types/selectFieldInternalTypes';
2
3
  export type UseSelectModeOptions = {
3
4
  options: SelectFieldOption[];
4
5
  pinned?: SelectFieldPinnedOptions;
@@ -13,22 +14,22 @@ export type UseSelectModeOptions = {
13
14
  disableHighlightOnOpen?: boolean;
14
15
  disabled: boolean;
15
16
  virtualize?: boolean;
17
+ onScrollToHighlight?: (index: number) => void;
16
18
  };
17
19
  /**
18
20
  * Wraps downshift's useSelect for non-searchable select fields.
19
21
  * Returns a compatible interface to useCombo (minus getInputProps/inputValue).
20
22
  */
21
- export declare const useSelectMode: ({ options, pinned, groupToString, groupSorter, selectedOption, onSelectedOptionChange, onIsOpenChange, displayAs, disableHighlightOnOpen, disabled, virtualize, }: UseSelectModeOptions) => {
23
+ export declare const useSelectMode: ({ options, pinned, groupToString, groupSorter, selectedOption, onSelectedOptionChange, onIsOpenChange, displayAs, disableHighlightOnOpen, disabled, virtualize, onScrollToHighlight, }: UseSelectModeOptions) => {
22
24
  wrapperDivRef: import('react').RefObject<HTMLDivElement>;
23
25
  getToggleButtonProps: <Options>(options?: import('downshift').UseSelectGetToggleButtonPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetToggleButtonReturnValue, Options>;
24
26
  getLabelProps: <Options>(options?: import('downshift').UseSelectGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseSelectGetLabelPropsReturnValue, Options>;
25
27
  getMenuProps: <Options>(options?: import('downshift').UseSelectGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetMenuReturnValue, Options>;
26
- getItemProps: <Options>(options: import('downshift').UseSelectGetItemPropsOptions<SelectFieldDownshiftItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseSelectGetItemPropsReturnValue, Options>, "item" | "index">;
28
+ getItemProps: <Options>(options: import('downshift').UseSelectGetItemPropsOptions<SelectItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseSelectGetItemPropsReturnValue, Options>, "item" | "index">;
27
29
  highlightedIndex: number;
28
- highlightChangeTypeRef: import('react').MutableRefObject<string>;
29
30
  isOpen: boolean;
30
- downshiftItems: SelectFieldDownshiftItem[];
31
- sectionsMeta: import('./types').SectionMeta[];
31
+ items: SelectItem[];
32
+ sectionsMeta: import('./useCombo').SectionMeta[];
32
33
  closeMenu: () => void;
33
34
  openMenu: () => void;
34
35
  };
@@ -1,10 +1,10 @@
1
1
  import { AriaAttributes, CSSProperties, ReactElement, ReactNode } from 'react';
2
- import { CheckState, LayoutUtilProps, Size } from '../../../types';
2
+ import { LayoutUtilProps, Size } from '../../../types';
3
3
  import { AvatarProps, ChipProps, IconProps } from '../../..';
4
4
  /**
5
5
  * Configuration options for the SelectField cache.
6
6
  * @property enabled - Whether caching is enabled. Defaults to true.
7
- * @property maxSize - Maximum number of cached entries before clearing the cache. Defaults to 50.
7
+ * @property maxSize - Maximum number of cached entries before clearing the cache. Defaults to 15.
8
8
  */
9
9
  export type SelectFieldCacheOptions = {
10
10
  enabled?: boolean;
@@ -331,11 +331,4 @@ export type SelectFieldPropsEager = SelectFieldCommonSelectFieldProps & {
331
331
  } & SelectFieldGroupingProps;
332
332
  export type SelectFieldPropsLazy = SelectFieldPropsLazyPage | SelectFieldPropsLazyOffset | SelectFieldPropsLazyGroup;
333
333
  export type SelectFieldProps = SelectFieldPropsLazy | SelectFieldPropsEager;
334
- export type SelectFieldDownshiftItem = {
335
- id: string | number;
336
- type: "option" | "pinned-option" | "grouped-option" | "select-all" | "select-filtered";
337
- original: SelectFieldOption;
338
- disabled?: boolean;
339
- checkState?: CheckState;
340
- };
341
334
  export {};
@@ -0,0 +1,27 @@
1
+ import { SelectMenuHandle, SelectMenuProps } from './types';
2
+ /**
3
+ * SelectMenu component for selecting a single option from a dropdown triggered by any element.
4
+ *
5
+ * Features:
6
+ * - Attaches to any trigger element via a render prop
7
+ * - Optional search input rendered inside the popover/dialog
8
+ * - Lazy loading with pagination (page, offset, or group modes)
9
+ * - Pinned options support
10
+ * - Grouped options support
11
+ * - Supports both popover and dialog display modes
12
+ * - Adaptive display based on device (mobile uses dialog)
13
+ * - Cache support for loadOptions results
14
+ * - Full accessibility support with ARIA attributes
15
+ * - Controlled selection state
16
+ * - Configurable popover width
17
+ *
18
+ * @example
19
+ * <SelectMenu
20
+ * trigger={(props) => <Button {...props}>Select a book</Button>}
21
+ * label="Books"
22
+ * value={selectedOption}
23
+ * onSelectedOptionChange={setSelectedOption}
24
+ * loadOptions={loadOptions}
25
+ * />
26
+ */
27
+ export declare const SelectMenu: import('react').ForwardRefExoticComponent<SelectMenuProps & import('react').RefAttributes<SelectMenuHandle>>;
@@ -0,0 +1,41 @@
1
+ import { MatchSorterOptions } from 'match-sorter';
2
+ import { SelectMenuProps, SelectMenuOption, SelectMenuGroupByValue } from './types';
3
+ import { SyncFilterFn } from '../../../internal/functions/syncFilterUtils';
4
+ export type SelectMenuSyncProps = Omit<SelectMenuProps, "loadOptions" | "lazy" | "debounceMs" | "cache" | "initialLoad"> & {
5
+ /**
6
+ * The options to display in the select menu.
7
+ */
8
+ options: SelectMenuOption[];
9
+ /**
10
+ * Controls how options are filtered and sorted when the user types a search value.
11
+ * Can be a function that returns options in the desired display order,
12
+ * or a MatchSorterOptions object to customize the default match-sorter behavior.
13
+ *
14
+ * By default, options are filtered by `label` and `searchText` using match-sorter.
15
+ */
16
+ filter?: SyncFilterFn | MatchSorterOptions<SelectMenuOption>;
17
+ /**
18
+ * Custom comparator function to sort groups.
19
+ */
20
+ groupSorter?: (a: SelectMenuGroupByValue, b: SelectMenuGroupByValue) => number;
21
+ };
22
+ /**
23
+ * SelectMenuSync is a simplified version of SelectMenu for client-side option sets.
24
+ *
25
+ * Features:
26
+ * - Accepts `options` instead of `loadOptions` and `lazy`
27
+ * - Performs client-side filtering of the options
28
+ * - Optionally accepts a custom filter function or MatchSorterOptions
29
+ * - Supports grouping with optional group sorting via `groupSorter`
30
+ * - Supports all other props of SelectMenu
31
+ *
32
+ * @example
33
+ * <SelectMenuSync
34
+ * trigger={(props) => <Button {...props}>Pick a book</Button>}
35
+ * label="Books"
36
+ * options={bookOptions}
37
+ * value={selectedOption}
38
+ * onSelectedOptionChange={setSelectedOption}
39
+ * />
40
+ */
41
+ export declare const SelectMenuSync: (props: SelectMenuSyncProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export * from './SelectMenu';
2
+ export * from './SelectMenuSync';
3
+ export * from './types';
@@ -0,0 +1,72 @@
1
+ import { CSSProperties, KeyboardEvent, RefObject } from 'react';
2
+ import { SelectItem, SectionMeta } from '../../../../internal/types/selectFieldInternalTypes';
3
+ import { OptionsPanelHandle } from '../../../../internal/components/OptionsPanel';
4
+ export type UseMenuInteractionConfig = {
5
+ items: SelectItem[];
6
+ sectionsMeta: SectionMeta[];
7
+ onItemActivate: (item: SelectItem) => void;
8
+ selectedItemIds: Set<string | number>;
9
+ displayAs: "popover" | "dialog";
10
+ closeOnActivate: boolean;
11
+ disabled?: boolean;
12
+ id: string;
13
+ triggerRef: RefObject<HTMLButtonElement>;
14
+ label: string;
15
+ };
16
+ export type MenuTriggerProps = {
17
+ ref: RefObject<HTMLButtonElement>;
18
+ onClick: () => void;
19
+ onKeyDown: (e: KeyboardEvent) => void;
20
+ "aria-haspopup": "listbox";
21
+ "aria-controls": string;
22
+ "aria-expanded": boolean;
23
+ "data-state": "open" | "close";
24
+ };
25
+ type MenuPropsArg = {
26
+ className?: string;
27
+ style?: CSSProperties;
28
+ };
29
+ type MenuReturnProps = MenuPropsArg & {
30
+ role: "listbox";
31
+ id: string;
32
+ "aria-label": string;
33
+ "aria-labelledby"?: string;
34
+ tabIndex?: number;
35
+ "aria-activedescendant"?: string;
36
+ ref: RefObject<HTMLDivElement>;
37
+ onKeyDown: (e: KeyboardEvent) => void;
38
+ };
39
+ type ItemPropsArg = {
40
+ item: SelectItem;
41
+ index: number;
42
+ className?: string;
43
+ "data-type"?: string;
44
+ };
45
+ type ItemReturnProps = {
46
+ role: "option";
47
+ id: string;
48
+ "aria-selected": boolean;
49
+ "aria-disabled"?: boolean;
50
+ onClick: () => void;
51
+ onMouseMove: () => void;
52
+ className?: string;
53
+ "data-type"?: string;
54
+ };
55
+ export type GetMenuPropsFn = (opts?: MenuPropsArg) => MenuReturnProps;
56
+ export type GetItemPropsFn = (opts: ItemPropsArg) => ItemReturnProps;
57
+ export declare const useMenuInteraction: ({ items, sectionsMeta: _sectionsMeta, onItemActivate, selectedItemIds, displayAs: _displayAs, closeOnActivate, disabled, id, triggerRef, label, }: UseMenuInteractionConfig) => {
58
+ isOpen: boolean;
59
+ openMenu: () => void;
60
+ closeMenu: (options?: {
61
+ restoreFocus?: boolean;
62
+ }) => void;
63
+ highlightedIndex: number;
64
+ setHighlightedIndex: import('react').Dispatch<import('react').SetStateAction<number>>;
65
+ getTriggerProps: () => MenuTriggerProps;
66
+ getMenuProps: GetMenuPropsFn;
67
+ getItemProps: GetItemPropsFn;
68
+ listRef: RefObject<OptionsPanelHandle>;
69
+ menuContainerRef: RefObject<HTMLDivElement>;
70
+ handleKeyDown: (e: KeyboardEvent) => void;
71
+ };
72
+ export {};
@@ -0,0 +1,153 @@
1
+ import { KeyboardEvent, ReactElement, RefObject } from 'react';
2
+ import { SelectFieldCacheOptions, SelectFieldEagerLoader, SelectFieldGroupByValue, SelectFieldGroupLazyLoader, SelectFieldGroupedOption, SelectFieldOffsetLazyLoader, SelectFieldOption, SelectFieldPageLazyLoader, SelectFieldPinnedOptions, SelectFieldSearchProps } from '../SelectField/types';
3
+ export type SelectMenuOption = SelectFieldOption;
4
+ export type SelectMenuGroupByValue = SelectFieldGroupByValue;
5
+ export type SelectMenuGroupedOption = SelectFieldGroupedOption;
6
+ /**
7
+ * Configuration options for the SelectMenu cache.
8
+ * @property enabled - Whether caching is enabled. Defaults to true.
9
+ * @property maxSize - Maximum number of cached entries before clearing the cache. Defaults to 15.
10
+ */
11
+ export type SelectMenuCacheOptions = SelectFieldCacheOptions;
12
+ /**
13
+ * Imperative handle for the SelectMenu component.
14
+ * @property clearCache - Clears the options cache.
15
+ * @property invalidate - Clears the cache and triggers a fresh options load from the data source.
16
+ */
17
+ export type SelectMenuHandle = {
18
+ clearCache: () => void;
19
+ invalidate: () => void;
20
+ };
21
+ export type SelectMenuEagerLoader = SelectFieldEagerLoader;
22
+ export type SelectMenuPageLazyLoader = SelectFieldPageLazyLoader;
23
+ export type SelectMenuOffsetLazyLoader = SelectFieldOffsetLazyLoader;
24
+ export type SelectMenuGroupLazyLoader = SelectFieldGroupLazyLoader;
25
+ export type SelectMenuPinnedOptions = SelectFieldPinnedOptions;
26
+ export type SelectMenuSearchProps = SelectFieldSearchProps;
27
+ /**
28
+ * Props provided to the trigger render function.
29
+ * @property ref - Ref to attach to the trigger element for positioning
30
+ * @property onClick - Click handler to toggle the menu
31
+ * @property onKeyDown - Key handler for keyboard navigation
32
+ * @property aria-haspopup - ARIA attribute indicating the trigger opens a listbox
33
+ * @property aria-controls - ARIA attribute linking to the menu element
34
+ * @property aria-expanded - ARIA attribute indicating whether the menu is open
35
+ * @property data-state - Data attribute indicating the open/close state
36
+ */
37
+ export type SelectMenuTriggerProps = {
38
+ ref: RefObject<HTMLButtonElement>;
39
+ onClick: () => void;
40
+ onKeyDown: (e: KeyboardEvent<HTMLButtonElement>) => void;
41
+ "aria-haspopup": "listbox";
42
+ "aria-controls": string;
43
+ "aria-expanded": boolean;
44
+ "data-state": "open" | "close";
45
+ };
46
+ type SelectMenuCommonProps = {
47
+ /**
48
+ * The id of the select menu.
49
+ */
50
+ id?: string;
51
+ /**
52
+ * Render function that receives trigger props and returns the element that opens the menu.
53
+ */
54
+ trigger: (props: SelectMenuTriggerProps) => ReactElement;
55
+ /**
56
+ * Accessible label for the menu. Used by screen readers but not rendered visually.
57
+ */
58
+ label: string;
59
+ /**
60
+ * Placeholder text shown in the search input inside the menu.
61
+ */
62
+ searchPlaceholder?: string;
63
+ /**
64
+ * The selected option. Must be controlled state.
65
+ */
66
+ value: SelectMenuOption | null;
67
+ /**
68
+ * Callback fired when the selected option changes.
69
+ * @param option - The newly selected option, or null if cleared.
70
+ */
71
+ onSelectedOptionChange: (option: SelectMenuOption | null) => void;
72
+ /**
73
+ * Defines the initial loading behavior of the options.
74
+ * @default "auto"
75
+ */
76
+ initialLoad?: "auto" | "immediate" | "open";
77
+ /**
78
+ * Options to pin to the top of the list.
79
+ */
80
+ pinned?: SelectMenuPinnedOptions;
81
+ /**
82
+ * Configuration for caching loadOptions results.
83
+ * Caching is enabled by default. Set `{ enabled: false }` to disable.
84
+ */
85
+ cache?: SelectMenuCacheOptions;
86
+ /**
87
+ * Controls how the menu is displayed.
88
+ * @default "auto"
89
+ * @description "auto" uses a popover on desktop and a dialog on mobile.
90
+ * @description "popover" always uses a popover.
91
+ * @description "dialog" always uses a dialog.
92
+ */
93
+ displayMenuAs?: "auto" | "popover" | "dialog";
94
+ /**
95
+ * Whether to virtualize the list using windowed rendering.
96
+ * Enable for large option sets to improve performance.
97
+ * @default false
98
+ */
99
+ virtualize?: boolean;
100
+ /**
101
+ * Whether to disable the search input inside the menu.
102
+ * When true, the menu shows only the list without a search field.
103
+ * @default false
104
+ */
105
+ disableSearch?: boolean;
106
+ /**
107
+ * Width of the popover. Only applies when `displayMenuAs="popover"` (or when the adaptive mode resolves to popover). Has no effect in dialog mode.
108
+ * Accepts a CSS width value or "reference" to match the trigger element's width.
109
+ * @default 320
110
+ */
111
+ popoverWidth?: "reference" | number | string;
112
+ } & SelectMenuSearchProps;
113
+ type SelectMenuGroupingProps = {
114
+ /**
115
+ * Function to convert a group value to a display label.
116
+ * Only used when options have a `group` property.
117
+ */
118
+ groupToString?: (groupValue: SelectMenuGroupByValue) => string;
119
+ /**
120
+ * Custom comparator function to sort groups.
121
+ */
122
+ groupSorter?: (a: SelectMenuGroupByValue, b: SelectMenuGroupByValue) => number;
123
+ };
124
+ type SelectMenuNonGroupingProps = {
125
+ groupToString?: never;
126
+ groupSorter?: never;
127
+ };
128
+ export type SelectMenuPropsLazyPage = SelectMenuCommonProps & {
129
+ lazy: "page";
130
+ lazyOptions?: {
131
+ pageSize?: number;
132
+ };
133
+ loadOptions: SelectMenuPageLazyLoader;
134
+ } & SelectMenuNonGroupingProps;
135
+ export type SelectMenuPropsLazyOffset = SelectMenuCommonProps & {
136
+ lazy: "offset";
137
+ lazyOptions?: {
138
+ limit?: number;
139
+ };
140
+ loadOptions: SelectMenuOffsetLazyLoader;
141
+ } & SelectMenuNonGroupingProps;
142
+ export type SelectMenuPropsLazyGroup = SelectMenuCommonProps & {
143
+ lazy: "group";
144
+ lazyOptions?: object;
145
+ loadOptions: SelectMenuGroupLazyLoader;
146
+ } & SelectMenuGroupingProps;
147
+ export type SelectMenuPropsEager = SelectMenuCommonProps & {
148
+ lazy?: false;
149
+ loadOptions: SelectMenuEagerLoader;
150
+ } & SelectMenuGroupingProps;
151
+ export type SelectMenuPropsLazy = SelectMenuPropsLazyPage | SelectMenuPropsLazyOffset | SelectMenuPropsLazyGroup;
152
+ export type SelectMenuProps = SelectMenuPropsLazy | SelectMenuPropsEager;
153
+ export {};
@@ -1,4 +1,4 @@
1
- import { ComponentPropsWithoutRef, Ref } from 'react';
1
+ import { ComponentPropsWithoutRef, Ref, ReactNode } from 'react';
2
2
  import { LayoutUtilProps } from '../../../../types';
3
3
  import { ColumnDef, CustomTableFooterCellProps, TableRow } from '../types';
4
4
  import { DataTableEmptyState, DataTablePaginationConfig, DataTableRef } from './types';
@@ -98,6 +98,12 @@ export type DataTableProps<T> = LayoutUtilProps & ComponentPropsWithoutRef<"div"
98
98
  * Only shown when data is empty and the table is not loading.
99
99
  */
100
100
  emptyState?: DataTableEmptyState;
101
+ /**
102
+ * Custom content to display when a cell value is empty (null, undefined, or empty string).
103
+ * Overrides the default em dash for all columns. Individual columns can further override
104
+ * this with their own `emptyCellContent` property.
105
+ */
106
+ emptyCellContent?: ReactNode;
101
107
  };
102
108
  declare function DataTableInner<T>(props: DataTableProps<T>, ref: Ref<DataTableRef>): import("react/jsx-runtime").JSX.Element;
103
109
  /**
@@ -6,7 +6,7 @@ export type CellFocusContextValue = {
6
6
  };
7
7
  /**
8
8
  * Context for communicating cell focus state to child components.
9
- * Used by CellError to show tooltips when the cell is focused via keyboard.
9
+ * Used by CellStatus to show tooltips when the cell is focused via keyboard.
10
10
  */
11
11
  export declare const CellFocusContext: import('react').Context<CellFocusContextValue | null>;
12
12
  /**
@@ -0,0 +1,12 @@
1
+ export type CellStatusProps = {
2
+ /** Status value - true for status without message, string for status with accessible message */
3
+ status: boolean | string;
4
+ /** The variant determines the icon, color, and aria-label */
5
+ variant: "error" | "warning";
6
+ };
7
+ /**
8
+ * Renders a status icon (error or warning) for cells.
9
+ * When status is a string, it's used as the aria-label for accessibility and shown in a tooltip.
10
+ * When the parent cell is focused, the tooltip is displayed for keyboard accessibility.
11
+ */
12
+ export declare function CellStatus({ status, variant }: CellStatusProps): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,5 @@
1
1
  import { ColumnDef as TanstackColumnDef } from '@tanstack/react-table';
2
+ import { ReactNode } from 'react';
2
3
  import { ColumnDef } from '../../../types';
3
4
  declare module "@tanstack/react-table" {
4
5
  interface ColumnMeta<TData, TValue> {
@@ -24,6 +25,11 @@ export type TanStackColumnDefProps<T> = {
24
25
  * The column definition to convert to a TanStack column definition
25
26
  */
26
27
  columnDef: ColumnDef<T>;
28
+ /**
29
+ * Table-level default content for empty cells. Column-level `emptyCellContent`
30
+ * takes precedence over this value.
31
+ */
32
+ emptyCellContent?: ReactNode;
27
33
  };
28
34
  /**
29
35
  * Build the column definition for TanStack useReactTable.
@@ -34,4 +40,4 @@ export type TanStackColumnDefProps<T> = {
34
40
  * @param props.columnDef - The column definition to convert
35
41
  * @returns The column definition for TanStack useReactTable
36
42
  */
37
- export declare function getTanStackColumnDef<T>({ columnDef, }: TanStackColumnDefProps<T>): TanstackColumnDef<T, any>;
43
+ export declare function getTanStackColumnDef<T>({ columnDef, emptyCellContent, }: TanStackColumnDefProps<T>): TanstackColumnDef<T, any>;
@@ -21,6 +21,12 @@ type BaseColumnConfig<T, K extends keyof T> = {
21
21
  * Columns of a group column (for grouped columns)
22
22
  */
23
23
  columns?: ColumnDef<T>[];
24
+ /**
25
+ * Custom content to display when a cell value is empty (null, undefined, or empty string).
26
+ * Overrides the default em dash. When set on both the column and the DataTable,
27
+ * the column-level value takes precedence.
28
+ */
29
+ emptyCellContent?: ReactNode;
24
30
  /**
25
31
  * The content of the footer cell. An array will display multiple footer rows
26
32
  */
@@ -233,12 +233,26 @@ export type TableRow<T> = T & {
233
233
  * - A string marks the cell as having an error with an accessible error message
234
234
  */
235
235
  errors?: Partial<Record<keyof T, boolean | string>>;
236
+ /**
237
+ * Cell-level warnings keyed by column id.
238
+ * - `true` marks the cell as having a warning
239
+ * - A string marks the cell as having a warning with an accessible warning message
240
+ * - When both an error and warning exist on the same cell, the error takes priority
241
+ */
242
+ warnings?: Partial<Record<keyof T, boolean | string>>;
236
243
  /**
237
244
  * Row-level error displayed in the first column.
238
245
  * - `true` marks the row as having an error
239
246
  * - A string marks the row as having an error with an accessible error message
240
247
  */
241
248
  rowError?: boolean | string;
249
+ /**
250
+ * Row-level warning displayed in the first column.
251
+ * - `true` marks the row as having a warning
252
+ * - A string marks the row as having a warning with an accessible warning message
253
+ * - When both a row error and warning exist, the error takes priority
254
+ */
255
+ rowWarning?: boolean | string;
242
256
  };
243
257
  /**
244
258
  * The sub component displayed when the row is expanded
@@ -324,6 +338,12 @@ export type ColumnDef<T> = {
324
338
  * @deprecated Use `editConfig` instead. Example: `editConfig: { mode: "text", onChange: ... }`
325
339
  */
326
340
  editMode?: "text" | "number" | "select" | "multiselect" | "boolean";
341
+ /**
342
+ * Custom content to display when a cell value is empty (null, undefined, or empty string).
343
+ * Overrides the default em dash. When set on both the column and the DataTable,
344
+ * the column-level value takes precedence.
345
+ */
346
+ emptyCellContent?: ReactNode;
327
347
  /**
328
348
  * The content of the footer cell. An array will display multiple footer rows
329
349
  */
@@ -1,5 +1,5 @@
1
1
  import { ListboxItemType } from '../../../components/Listbox';
2
- import { default as Popover } from '../../../components/Popover';
2
+ import { default as Popover } from '../../../internal/components/Popover';
3
3
  import { ToolbarItemAppearance } from './types';
4
4
  import { DataTrackingId } from '../../../types';
5
5
  /**
@@ -32,7 +32,7 @@ export type ToolbarSelectProps<T = Record<string, unknown>> = Omit<React.Compone
32
32
  */
33
33
  items: ToolbarSelectItem<T>[];
34
34
  /**
35
- * Accessible label for the select component
35
+ * Accessible label for the select dropdown dialog (e.g. "Status options").
36
36
  */
37
37
  accessibleLabel: string;
38
38
  } & DataTrackingId;
@@ -100,7 +100,7 @@ export declare const ToolbarSelect: import('react').ForwardRefExoticComponent<Om
100
100
  */
101
101
  items: ToolbarSelectItem<Record<string, unknown>>[];
102
102
  /**
103
- * Accessible label for the select component
103
+ * Accessible label for the select dropdown dialog (e.g. "Status options").
104
104
  */
105
105
  accessibleLabel: string;
106
106
  } & DataTrackingId & import('react').RefAttributes<HTMLButtonElement>>;
@@ -3,4 +3,6 @@ export * from './Toolbar';
3
3
  export * from './Calendar';
4
4
  export * from './SelectField';
5
5
  export * from './MultiSelectField';
6
+ export * from './SelectMenu';
7
+ export * from './MultiSelectMenu';
6
8
  export * from './InteractiveCard';
package/dist/beta.js CHANGED
@@ -1,9 +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-Cau6ylNR.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-4LHKM6ub.js';
3
- export { u as useCalendarBetaProps } from './Calendar-M8K2O28r.js';
4
- export { C as Calendar } from './Calendar-MXQWMrwC.js';
5
- export { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-BQrC0j2-.js';
6
- export { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-B6J42MpG.js';
7
- export { I as InteractiveCard } from './InteractiveCard-B3_FAoIE.js';
8
- export { u as useAdaptiveView } from './FieldDialog-DaRvLS6m.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-BYOS6icI.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-DAuz4Gs2.js';
3
+ export { u as useCalendarBetaProps } from './Calendar-SGlTt-bs.js';
4
+ export { C as Calendar } from './Calendar-C1U2npPP.js';
5
+ export { S as SelectField, a as SelectFieldSync } from './SelectFieldSync-CJ2Ie_v1.js';
6
+ export { M as MultiSelectField, a as MultiSelectFieldSync } from './MultiSelectFieldSync-DGpGgu8q.js';
7
+ export { S as SelectMenu, a as SelectMenuSync } from './SelectMenuSync-CJA_coqD.js';
8
+ export { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-DiLddJDw.js';
9
+ export { I as InteractiveCard } from './InteractiveCard-GTYbR6Xy.js';
10
+ export { u as useAdaptiveView } from './syncFilterUtils-vt8ldsES.js';
9
11
  //# sourceMappingURL=beta.js.map
package/dist/beta.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"beta.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
1
+ {"version":3,"file":"beta.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -58,6 +58,10 @@ export type CheckboxProps = LayoutUtilProps & Omit<ComponentPropsWithoutRef<"inp
58
58
  * @default false
59
59
  */
60
60
  hideCheckbox?: boolean;
61
+ /**
62
+ * Additional className applied to the label wrapper span
63
+ */
64
+ labelWrapperClassName?: string;
61
65
  };
62
66
  /**
63
67
  * Checkbox component for selecting one or more options from a list.
@@ -130,4 +134,8 @@ export declare const Checkbox: import('react').ForwardRefExoticComponent<LayoutU
130
134
  * @default false
131
135
  */
132
136
  hideCheckbox?: boolean;
137
+ /**
138
+ * Additional className applied to the label wrapper span
139
+ */
140
+ labelWrapperClassName?: string;
133
141
  } & import('react').RefAttributes<HTMLInputElement>>;
@@ -1,6 +1,6 @@
1
1
  import { RefObject } from 'react';
2
2
  import { YearlessDateMode } from '..';
3
- import { PopoverTriggerProps } from '../../Popover/PopoverTrigger';
3
+ import { PopoverTriggerProps } from '../../../internal/components/Popover/PopoverTrigger';
4
4
  /**
5
5
  * Props for the YearlessDateSelectionPopover component
6
6
  */