@servicetitan/anvil2 2.5.1 → 2.6.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 (407) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/{Alert-D9mBPs6z.js → Alert-C_o2f78C.js} +5 -5
  3. package/dist/{Alert-D9mBPs6z.js.map → Alert-C_o2f78C.js.map} +1 -1
  4. package/dist/Alert.js +1 -1
  5. package/dist/{Announcement-B34cD6BC.js → Announcement-CyrTvgP4.js} +5 -5
  6. package/dist/{Announcement-B34cD6BC.js.map → Announcement-CyrTvgP4.js.map} +1 -1
  7. package/dist/Announcement.js +1 -1
  8. package/dist/{AnvilProvider-C3pjoStP.js → AnvilProvider-ClfmLl_6.js} +5 -5
  9. package/dist/{AnvilProvider-C3pjoStP.js.map → AnvilProvider-ClfmLl_6.js.map} +1 -1
  10. package/dist/AnvilProvider.js +1 -1
  11. package/dist/{Avatar-DShevhcs.js → Avatar--CnTAnfD.js} +2 -2
  12. package/dist/{Avatar-DShevhcs.js.map → Avatar--CnTAnfD.js.map} +1 -1
  13. package/dist/{Avatar-COMPK7Ym.js → Avatar-CCnbKkCm.js} +4 -4
  14. package/dist/{Avatar-COMPK7Ym.js.map → Avatar-CCnbKkCm.js.map} +1 -1
  15. package/dist/Avatar.js +2 -2
  16. package/dist/{Badge-CS-CwcOQ.js → Badge-C2W7Dls9.js} +4 -4
  17. package/dist/{Badge-CS-CwcOQ.js.map → Badge-C2W7Dls9.js.map} +1 -1
  18. package/dist/Badge.js +1 -1
  19. package/dist/{Breadcrumbs-CEVH4s23.js → Breadcrumbs-3Y7jnj-F.js} +6 -6
  20. package/dist/{Breadcrumbs-CEVH4s23.js.map → Breadcrumbs-3Y7jnj-F.js.map} +1 -1
  21. package/dist/Breadcrumbs.js +1 -1
  22. package/dist/{Button-DrNDkO2f.js → Button-CVsGhVJz.js} +6 -6
  23. package/dist/{Button-DrNDkO2f.js.map → Button-CVsGhVJz.js.map} +1 -1
  24. package/dist/Button.css +49 -49
  25. package/dist/Button.js +1 -1
  26. package/dist/Button.module-wCtFYGVD.js +26 -0
  27. package/dist/Button.module-wCtFYGVD.js.map +1 -0
  28. package/dist/{ButtonCompound-D9VTKcL4.js → ButtonCompound-Cmw3cgMY.js} +4 -4
  29. package/dist/{ButtonCompound-D9VTKcL4.js.map → ButtonCompound-Cmw3cgMY.js.map} +1 -1
  30. package/dist/ButtonCompound.js +1 -1
  31. package/dist/{ButtonLink-DDtrmbVM.js → ButtonLink-BJKTJER8.js} +6 -6
  32. package/dist/{ButtonLink-DDtrmbVM.js.map → ButtonLink-BJKTJER8.js.map} +1 -1
  33. package/dist/ButtonLink.js +1 -1
  34. package/dist/{ButtonToggle-DrFewgOG.js → ButtonToggle-DaYJWso_.js} +5 -5
  35. package/dist/{ButtonToggle-DrFewgOG.js.map → ButtonToggle-DaYJWso_.js.map} +1 -1
  36. package/dist/ButtonToggle.js +1 -1
  37. package/dist/{Calendar-CtkL4zYU.js → Calendar-B0u3EgCY.js} +7 -7
  38. package/dist/{Calendar-CtkL4zYU.js.map → Calendar-B0u3EgCY.js.map} +1 -1
  39. package/dist/{Calendar-CkgpKD7Q.js → Calendar-B5d2SUrH.js} +2 -2
  40. package/dist/{Calendar-CkgpKD7Q.js.map → Calendar-B5d2SUrH.js.map} +1 -1
  41. package/dist/Calendar.js +2 -2
  42. package/dist/{Card-DDH7gI8m.js → Card-wz71dEVA.js} +3 -3
  43. package/dist/{Card-DDH7gI8m.js.map → Card-wz71dEVA.js.map} +1 -1
  44. package/dist/Card.js +1 -1
  45. package/dist/{Checkbox-CxjZpzPp.js → Checkbox-BwULIo4D.js} +26 -36
  46. package/dist/Checkbox-BwULIo4D.js.map +1 -0
  47. package/dist/{Checkbox-CFgjreAl.js → Checkbox-CIj37_vY.js} +2 -2
  48. package/dist/{Checkbox-CFgjreAl.js.map → Checkbox-CIj37_vY.js.map} +1 -1
  49. package/dist/Checkbox.css +71 -66
  50. package/dist/Checkbox.js +1 -1
  51. package/dist/Checkbox.module-EkRZO48Y.js +28 -0
  52. package/dist/Checkbox.module-EkRZO48Y.js.map +1 -0
  53. package/dist/{Chip-Bc7jiIJ1.js → Chip-DjTAR0va.js} +6 -6
  54. package/dist/{Chip-Bc7jiIJ1.js.map → Chip-DjTAR0va.js.map} +1 -1
  55. package/dist/Chip.js +1 -1
  56. package/dist/{Combobox-Drqb3GVU.js → Combobox-Clymsgli.js} +16 -19
  57. package/dist/Combobox-Clymsgli.js.map +1 -0
  58. package/dist/Combobox.js +1 -1
  59. package/dist/{DataTable-BLuJ4FtH.js → DataTable-qoseu_e2.js} +83 -48
  60. package/dist/DataTable-qoseu_e2.js.map +1 -0
  61. package/dist/DataTable.css +68 -55
  62. package/dist/{DateFieldRange-CvlOeE4v.js → DateFieldRange-rks7jQor.js} +45 -54
  63. package/dist/DateFieldRange-rks7jQor.js.map +1 -0
  64. package/dist/DateFieldRange.js +1 -1
  65. package/dist/{DateFieldSingle-9UHxIxIA.js → DateFieldSingle-C0WXU7H1.js} +43 -52
  66. package/dist/DateFieldSingle-C0WXU7H1.js.map +1 -0
  67. package/dist/DateFieldSingle.js +1 -1
  68. package/dist/{DateFieldYearless-HNydELvO.js → DateFieldYearless-2p3a7Xgo.js} +15 -23
  69. package/dist/DateFieldYearless-2p3a7Xgo.js.map +1 -0
  70. package/dist/DateFieldYearless.js +1 -1
  71. package/dist/{DateFieldYearlessRange-COb8v2CG.js → DateFieldYearlessRange-DLmhPug8.js} +18 -25
  72. package/dist/DateFieldYearlessRange-DLmhPug8.js.map +1 -0
  73. package/dist/DateFieldYearlessRange.js +1 -1
  74. package/dist/{DaysOfTheWeek-D-WPj18i.js → DaysOfTheWeek-BR32AA32.js} +6 -6
  75. package/dist/{DaysOfTheWeek-D-WPj18i.js.map → DaysOfTheWeek-BR32AA32.js.map} +1 -1
  76. package/dist/DaysOfTheWeek.js +1 -1
  77. package/dist/{Details-BF0-a1by.js → Details-Dxq_v3Qg.js} +4 -4
  78. package/dist/{Details-BF0-a1by.js.map → Details-Dxq_v3Qg.js.map} +1 -1
  79. package/dist/Details.js +1 -1
  80. package/dist/{Dialog-DEAR058v.js → Dialog-CMhypnCD.js} +5 -5
  81. package/dist/{Dialog-DEAR058v.js.map → Dialog-CMhypnCD.js.map} +1 -1
  82. package/dist/Dialog.js +1 -1
  83. package/dist/{DialogCancelButton-BfI9K4a4.js → DialogCancelButton-DQDMzGeT.js} +2 -2
  84. package/dist/{DialogCancelButton-BfI9K4a4.js.map → DialogCancelButton-DQDMzGeT.js.map} +1 -1
  85. package/dist/{Divider-De04mOU6.js → Divider-B1UoK8ho.js} +3 -3
  86. package/dist/{Divider-De04mOU6.js.map → Divider-B1UoK8ho.js.map} +1 -1
  87. package/dist/Divider.js +1 -1
  88. package/dist/Dnd.js +1 -1
  89. package/dist/DndSort.js +6 -6
  90. package/dist/{Drawer-CnMskBQl.js → Drawer-CSelPi8t.js} +5 -5
  91. package/dist/{Drawer-CnMskBQl.js.map → Drawer-CSelPi8t.js.map} +1 -1
  92. package/dist/Drawer.js +1 -1
  93. package/dist/DrillDown.js +1 -1
  94. package/dist/{EditCard-CH-JE4ba.js → EditCard-CLN0GBN_.js} +7 -7
  95. package/dist/{EditCard-CH-JE4ba.js.map → EditCard-CLN0GBN_.js.map} +1 -1
  96. package/dist/EditCard.js +1 -1
  97. package/dist/FieldLabel-DbMosKtd.js +125 -0
  98. package/dist/FieldLabel-DbMosKtd.js.map +1 -0
  99. package/dist/FieldLabel.css +80 -10
  100. package/dist/FieldLabel.js +1 -1
  101. package/dist/{FieldMessage-OeP_xSUE.js → FieldMessage-COHqUdj5.js} +3 -3
  102. package/dist/{FieldMessage-OeP_xSUE.js.map → FieldMessage-COHqUdj5.js.map} +1 -1
  103. package/dist/FieldMessage.js +2 -2
  104. package/dist/{Flex-CUtXN-C0.js → Flex-WyyZm1bf.js} +3 -3
  105. package/dist/{Flex-CUtXN-C0.js.map → Flex-WyyZm1bf.js.map} +1 -1
  106. package/dist/Flex.js +1 -1
  107. package/dist/{Grid-CatFkT0X.js → Grid-ONcUpb__.js} +3 -3
  108. package/dist/{Grid-CatFkT0X.js.map → Grid-ONcUpb__.js.map} +1 -1
  109. package/dist/Grid.js +1 -1
  110. package/dist/{Helper-B2UrgJvr.js → Helper-B_FIOlhy.js} +3 -3
  111. package/dist/{Helper-B2UrgJvr.js.map → Helper-B_FIOlhy.js.map} +1 -1
  112. package/dist/{Icon-Bcil6aBo.js → Icon-DuIlne4x.js} +3 -3
  113. package/dist/{Icon-Bcil6aBo.js.map → Icon-DuIlne4x.js.map} +1 -1
  114. package/dist/Icon.js +1 -1
  115. package/dist/{InputMask-B7ZnJoR5.js → InputMask-BKs-x6ds.js} +3 -3
  116. package/dist/{InputMask-B7ZnJoR5.js.map → InputMask-BKs-x6ds.js.map} +1 -1
  117. package/dist/InputMask.js +1 -1
  118. package/dist/{InteractiveCard-OszQGxGw.js → InteractiveCard-GTYbR6Xy.js} +3 -3
  119. package/dist/{InteractiveCard-OszQGxGw.js.map → InteractiveCard-GTYbR6Xy.js.map} +1 -1
  120. package/dist/InteractiveCard.js +1 -1
  121. package/dist/{Layout-DTAU7jS5.js → Layout-VfhlilMG.js} +2 -2
  122. package/dist/{Layout-DTAU7jS5.js.map → Layout-VfhlilMG.js.map} +1 -1
  123. package/dist/Layout.js +1 -1
  124. package/dist/{Link-B3reiL5f.js → Link-jTvzyXca.js} +4 -4
  125. package/dist/{Link-B3reiL5f.js.map → Link-jTvzyXca.js.map} +1 -1
  126. package/dist/Link.js +1 -1
  127. package/dist/{LinkButton-D62f2os3.js → LinkButton-DGyHR1E7.js} +3 -3
  128. package/dist/{LinkButton-D62f2os3.js.map → LinkButton-DGyHR1E7.js.map} +1 -1
  129. package/dist/LinkButton.js +1 -1
  130. package/dist/{List-CtdOo1dv.js → List-CJZjElAQ.js} +3 -3
  131. package/dist/{List-CtdOo1dv.js.map → List-CJZjElAQ.js.map} +1 -1
  132. package/dist/List.js +1 -1
  133. package/dist/{ListView-CN8zu-cq.js → ListView-CeGwrRbt.js} +4 -4
  134. package/dist/{ListView-CN8zu-cq.js.map → ListView-CeGwrRbt.js.map} +1 -1
  135. package/dist/ListView.js +1 -1
  136. package/dist/{Listbox-DMyxIokT.js → Listbox-BtAgBDRS.js} +7 -7
  137. package/dist/{Listbox-DMyxIokT.js.map → Listbox-BtAgBDRS.js.map} +1 -1
  138. package/dist/Listbox.css +29 -29
  139. package/dist/Listbox.js +1 -1
  140. package/dist/Listbox.module-HAXMOKvC.js +18 -0
  141. package/dist/Listbox.module-HAXMOKvC.js.map +1 -0
  142. package/dist/{LocalizationProvider-ay-XWdlo.js → LocalizationProvider-DWCyga_d.js} +2 -2
  143. package/dist/{LocalizationProvider-ay-XWdlo.js.map → LocalizationProvider-DWCyga_d.js.map} +1 -1
  144. package/dist/LocalizationProvider.js +1 -1
  145. package/dist/{Menu-CpRnsr0v.js → Menu-BXsmCP20.js} +6 -5
  146. package/dist/{Menu-CpRnsr0v.js.map → Menu-BXsmCP20.js.map} +1 -1
  147. package/dist/Menu.js +1 -1
  148. package/dist/MultiSelectField.js +1 -1
  149. package/dist/{MultiSelectFieldSync-BnPzYM72.js → MultiSelectFieldSync-EELhdoD6.js} +92 -177
  150. package/dist/MultiSelectFieldSync-EELhdoD6.js.map +1 -0
  151. package/dist/MultiSelectMenu.d.ts +2 -0
  152. package/dist/MultiSelectMenu.js +2 -0
  153. package/dist/MultiSelectMenu.js.map +1 -0
  154. package/dist/MultiSelectMenuSync-CAPhhkK1.js +432 -0
  155. package/dist/MultiSelectMenuSync-CAPhhkK1.js.map +1 -0
  156. package/dist/{NumberField-ecubQsaf.js → NumberField-svhZp1kB.js} +14 -15
  157. package/dist/NumberField-svhZp1kB.js.map +1 -0
  158. package/dist/NumberField.js +1 -1
  159. package/dist/Overflow.js +3 -3
  160. package/dist/{Page-qOkG6psI.js → Page-BpV1yHkm.js} +16 -16
  161. package/dist/{Page-qOkG6psI.js.map → Page-BpV1yHkm.js.map} +1 -1
  162. package/dist/Page.js +1 -1
  163. package/dist/{Pagination-BuiyhZlJ.js → Pagination-BAwqfl_2.js} +8 -8
  164. package/dist/{Pagination-BuiyhZlJ.js.map → Pagination-BAwqfl_2.js.map} +1 -1
  165. package/dist/Pagination.js +1 -1
  166. package/dist/{Popover-CYWYCj7l.js → Popover-Br6qPgKe.js} +7 -26
  167. package/dist/Popover-Br6qPgKe.js.map +1 -0
  168. package/dist/Popover-Dkw_8dZx.js +535 -0
  169. package/dist/Popover-Dkw_8dZx.js.map +1 -0
  170. package/dist/Popover.js +1 -1
  171. package/dist/Popover2.css +68 -0
  172. package/dist/{ProgressBar-CBhVZIzK.js → ProgressBar-JpRDW5vG.js} +8 -8
  173. package/dist/{ProgressBar-CBhVZIzK.js.map → ProgressBar-JpRDW5vG.js.map} +1 -1
  174. package/dist/ProgressBar.js +1 -1
  175. package/dist/{Radio-DtYoRq3m.js → Radio-8DmfWHYq.js} +38 -46
  176. package/dist/Radio-8DmfWHYq.js.map +1 -0
  177. package/dist/{Radio-BMFwnzyz.js → Radio-M7lc0BsU.js} +2 -2
  178. package/dist/{Radio-BMFwnzyz.js.map → Radio-M7lc0BsU.js.map} +1 -1
  179. package/dist/Radio.css +52 -47
  180. package/dist/Radio.js +1 -1
  181. package/dist/{SearchField-CtdtcrVV.js → SearchField-im7AHGYo.js} +5 -5
  182. package/dist/{SearchField-CtdtcrVV.js.map → SearchField-im7AHGYo.js.map} +1 -1
  183. package/dist/SearchField.js +1 -1
  184. package/dist/{SegmentedControl-CzTtiYS9.js → SegmentedControl-7fDLhgvh.js} +3 -3
  185. package/dist/{SegmentedControl-CzTtiYS9.js.map → SegmentedControl-7fDLhgvh.js.map} +1 -1
  186. package/dist/SegmentedControl.js +1 -1
  187. package/dist/{SelectCard-yWBNnm7t.js → SelectCard-D5dcOIuf.js} +6 -6
  188. package/dist/{SelectCard-yWBNnm7t.js.map → SelectCard-D5dcOIuf.js.map} +1 -1
  189. package/dist/SelectCard.js +1 -1
  190. package/dist/SelectField.js +1 -1
  191. package/dist/SelectFieldLabel-Dr8HeW3N.js +31 -0
  192. package/dist/SelectFieldLabel-Dr8HeW3N.js.map +1 -0
  193. package/dist/{SelectFieldSync-DCrafdbx.js → SelectFieldSync-BPopU0om.js} +80 -169
  194. package/dist/SelectFieldSync-BPopU0om.js.map +1 -0
  195. package/dist/SelectMenu.d.ts +2 -0
  196. package/dist/SelectMenu.js +2 -0
  197. package/dist/SelectMenu.js.map +1 -0
  198. package/dist/SelectMenuSync-DeMYO1m_.js +327 -0
  199. package/dist/SelectMenuSync-DeMYO1m_.js.map +1 -0
  200. package/dist/SelectOptions-DBe5ZN_-.js +26 -0
  201. package/dist/SelectOptions-DBe5ZN_-.js.map +1 -0
  202. package/dist/{SelectTrigger-Cs5CGc4D.js → SelectTrigger-ObsnAKNp.js} +6 -9
  203. package/dist/SelectTrigger-ObsnAKNp.js.map +1 -0
  204. package/dist/SelectTrigger.js +1 -1
  205. package/dist/{SelectTriggerBase-Cs827tDp.js → SelectTriggerBase-DKfOL2RJ.js} +8 -8
  206. package/dist/{SelectTriggerBase-Cs827tDp.js.map → SelectTriggerBase-DKfOL2RJ.js.map} +1 -1
  207. package/dist/{SideNav-CbMGsIPM.js → SideNav-KksbSQn7.js} +4 -4
  208. package/dist/{SideNav-CbMGsIPM.js.map → SideNav-KksbSQn7.js.map} +1 -1
  209. package/dist/SideNav.js +1 -1
  210. package/dist/Skeleton.js +2 -2
  211. package/dist/{Spinner-CpEm3Lud.js → Spinner-BqmcE2pb.js} +2 -2
  212. package/dist/{Spinner-CpEm3Lud.js.map → Spinner-BqmcE2pb.js.map} +1 -1
  213. package/dist/Spinner.js +1 -1
  214. package/dist/{SrOnly-CrdBTl6E.js → SrOnly-eUpYGpAT.js} +2 -2
  215. package/dist/{SrOnly-CrdBTl6E.js.map → SrOnly-eUpYGpAT.js.map} +1 -1
  216. package/dist/SrOnly.js +1 -1
  217. package/dist/{Stepper-CzVKDg-N.js → Stepper-Dt8_ImvJ.js} +5 -5
  218. package/dist/{Stepper-CzVKDg-N.js.map → Stepper-Dt8_ImvJ.js.map} +1 -1
  219. package/dist/Stepper.js +1 -1
  220. package/dist/{Switch-CEmjmSiL.js → Switch-DpPHr3G3.js} +6 -6
  221. package/dist/{Switch-CEmjmSiL.js.map → Switch-DpPHr3G3.js.map} +1 -1
  222. package/dist/Switch.js +1 -1
  223. package/dist/{Tab-DXivEqur.js → Tab-DO7LaUbw.js} +4 -4
  224. package/dist/{Tab-DXivEqur.js.map → Tab-DO7LaUbw.js.map} +1 -1
  225. package/dist/Tab.js +1 -1
  226. package/dist/Table.js +1 -1
  227. package/dist/{Text-DhheKsns.js → Text-BJo4oMI2.js} +3 -3
  228. package/dist/{Text-DhheKsns.js.map → Text-BJo4oMI2.js.map} +1 -1
  229. package/dist/Text.js +1 -1
  230. package/dist/{TextField-D9VWORek.js → TextField--co7QJ4r.js} +2 -2
  231. package/dist/{TextField-D9VWORek.js.map → TextField--co7QJ4r.js.map} +1 -1
  232. package/dist/{TextField-atI4M79b.js → TextField-Cax4UeNl.js} +12 -16
  233. package/dist/TextField-Cax4UeNl.js.map +1 -0
  234. package/dist/TextField.js +1 -1
  235. package/dist/{Textarea-D-kPIsIN.js → Textarea-DyqdMTvQ.js} +11 -15
  236. package/dist/Textarea-DyqdMTvQ.js.map +1 -0
  237. package/dist/Textarea.js +1 -1
  238. package/dist/{ThemeProvider-BEt_iJgf.js → ThemeProvider-CaYW3RuA.js} +3 -3
  239. package/dist/{ThemeProvider-BEt_iJgf.js.map → ThemeProvider-CaYW3RuA.js.map} +1 -1
  240. package/dist/ThemeProvider.js +1 -1
  241. package/dist/{TimeField-DREFzFkw.js → TimeField-BfcLCWMG.js} +23 -13
  242. package/dist/TimeField-BfcLCWMG.js.map +1 -0
  243. package/dist/TimeField.js +1 -1
  244. package/dist/Toast.js +2 -2
  245. package/dist/{Toaster-Bisc1mlh.js → Toaster-DikGo_hR.js} +2 -2
  246. package/dist/{Toaster-Bisc1mlh.js.map → Toaster-DikGo_hR.js.map} +1 -1
  247. package/dist/{Toaster-B652KIzq.js → Toaster-b0-Ub3yt.js} +7 -7
  248. package/dist/{Toaster-B652KIzq.js.map → Toaster-b0-Ub3yt.js.map} +1 -1
  249. package/dist/{Toolbar-jfZ-CupZ.js → Toolbar-DqYMc_w8.js} +39 -126
  250. package/dist/Toolbar-DqYMc_w8.js.map +1 -0
  251. package/dist/Toolbar.js +1 -1
  252. package/dist/{Tooltip-Bt62hC5J.js → Tooltip-Bupqao9B.js} +13 -6
  253. package/dist/Tooltip-Bupqao9B.js.map +1 -0
  254. package/dist/Tooltip.js +1 -1
  255. package/dist/{YearlessDateInputWithPicker-mW5KykHZ.js → YearlessDateInputWithPicker-aq99rKJU.js} +14 -15
  256. package/dist/YearlessDateInputWithPicker-aq99rKJU.js.map +1 -0
  257. package/dist/YearlessDateInputWithPicker.css +33 -33
  258. package/dist/assets/icons/st/resize_window_alt.svg +1 -0
  259. package/dist/assets/icons/st.ts +1 -0
  260. package/dist/beta/components/MultiSelectField/MultiSelectFieldSync.d.ts +2 -3
  261. package/dist/beta/components/MultiSelectField/internal/useComboMultiple.d.ts +8 -7
  262. package/dist/beta/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +6 -4
  263. package/dist/beta/components/MultiSelectField/types.d.ts +2 -3
  264. package/dist/beta/components/MultiSelectMenu/MultiSelectMenu.d.ts +30 -0
  265. package/dist/beta/components/MultiSelectMenu/MultiSelectMenuSync.d.ts +54 -0
  266. package/dist/beta/components/MultiSelectMenu/index.d.ts +3 -0
  267. package/dist/beta/components/MultiSelectMenu/types.d.ts +170 -0
  268. package/dist/beta/components/SelectField/SelectFieldSync.d.ts +2 -3
  269. package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  270. package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  271. package/dist/beta/components/SelectField/internal/useCombo.d.ts +7 -7
  272. package/dist/beta/components/SelectField/internal/useSelectMode.d.ts +7 -6
  273. package/dist/beta/components/SelectField/types.d.ts +2 -9
  274. package/dist/beta/components/SelectMenu/SelectMenu.d.ts +27 -0
  275. package/dist/beta/components/SelectMenu/SelectMenuSync.d.ts +41 -0
  276. package/dist/beta/components/SelectMenu/index.d.ts +3 -0
  277. package/dist/beta/components/SelectMenu/internal/useMenuInteraction.d.ts +72 -0
  278. package/dist/beta/components/SelectMenu/types.d.ts +153 -0
  279. package/dist/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +1 -1
  280. package/dist/beta/components/Table/DataTable/internal/cells/CellStatus.d.ts +12 -0
  281. package/dist/beta/components/Table/types.d.ts +14 -0
  282. package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +3 -3
  283. package/dist/beta/components/index.d.ts +2 -0
  284. package/dist/beta.js +10 -8
  285. package/dist/beta.js.map +1 -1
  286. package/dist/components/Avatar/Avatar.figma.d.ts +1 -0
  287. package/dist/components/Breadcrumbs/Breadcrumbs.figma.d.ts +1 -0
  288. package/dist/components/Card/Card.figma.d.ts +1 -0
  289. package/dist/components/Checkbox/Checkbox.figma.d.ts +1 -0
  290. package/dist/components/Chip/Chip.figma.d.ts +1 -0
  291. package/dist/components/Combobox/ComboboxTypes.d.ts +1 -1
  292. package/dist/components/DateFieldYearless/internal/YearlessDateSelectionPopover.d.ts +1 -1
  293. package/dist/components/FieldLabel/FieldLabel.d.ts +3 -0
  294. package/dist/components/FieldLabel/internal/FieldLabelButton.d.ts +22 -0
  295. package/dist/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +4 -6
  296. package/dist/components/Link/Link.figma.d.ts +1 -0
  297. package/dist/components/ProgressBar/ProgressBar.figma.d.ts +1 -0
  298. package/dist/components/SelectTrigger/SelectTrigger.d.ts +1 -1
  299. package/dist/components/Spinner/Spinner.figma.d.ts +1 -0
  300. package/dist/components/Textarea/Textarea.d.ts +1 -1
  301. package/dist/components/Toolbar/ToolbarSelect.d.ts +3 -3
  302. package/dist/components/Tooltip/Tooltip.figma.d.ts +1 -0
  303. package/dist/{match-sorter.esm-adzV1NDp.js → downshift.esm-xtSnQp44.js} +3 -907
  304. package/dist/downshift.esm-xtSnQp44.js.map +1 -0
  305. package/dist/floating-ui.react-aKYfs-aw.js +2374 -0
  306. package/dist/floating-ui.react-aKYfs-aw.js.map +1 -0
  307. package/dist/{floating-ui.react-dom-BZbDMh89.js → floating-ui.react-dom-imrk9N49.js} +237 -19
  308. package/dist/floating-ui.react-dom-imrk9N49.js.map +1 -0
  309. package/dist/hooks/useBreakpoint/useBreakpoint.d.ts +3 -3
  310. package/dist/{index-ClUtwV8V.js → index-D6ag_WQW.js} +4 -4
  311. package/dist/{index-ClUtwV8V.js.map → index-D6ag_WQW.js.map} +1 -1
  312. package/dist/{index-SvGbrGuT.js → index-De1g9FRV.js} +2 -2
  313. package/dist/{index-SvGbrGuT.js.map → index-De1g9FRV.js.map} +1 -1
  314. package/dist/index.js +73 -99
  315. package/dist/index.js.map +1 -1
  316. package/dist/internal/components/MultiSelectOptions.d.ts +23 -0
  317. package/dist/{beta/components/SelectField/internal/FieldDialog/FieldDialog.d.ts → internal/components/OptionsDialog/OptionsDialog.d.ts} +2 -2
  318. package/dist/internal/components/OptionsPanel.d.ts +26 -0
  319. package/dist/internal/components/OptionsPopover/OptionsPopover.d.ts +16 -0
  320. package/dist/internal/components/Popover/Popover.d.ts +267 -0
  321. package/dist/internal/components/Popover/PopoverButton.d.ts +24 -0
  322. package/dist/internal/components/Popover/PopoverClose.d.ts +24 -0
  323. package/dist/internal/components/Popover/PopoverContent.d.ts +34 -0
  324. package/dist/internal/components/Popover/PopoverTrigger.d.ts +46 -0
  325. package/dist/internal/components/Popover/index.d.ts +6 -0
  326. package/dist/internal/components/Popover/internal/PopoverContext.d.ts +45 -0
  327. package/dist/internal/components/Popover/internal/usePopoverContext.d.ts +6 -0
  328. package/dist/internal/components/SelectOption.d.ts +13 -0
  329. package/dist/internal/components/SelectOptions.d.ts +23 -0
  330. package/dist/internal/components/VirtualizedOptionsPanel.d.ts +2 -0
  331. package/dist/internal/functions/buildSelectItems.d.ts +22 -0
  332. package/dist/internal/functions/syncFilterUtils.d.ts +10 -0
  333. package/dist/{beta/components/SelectField/internal → internal/hooks}/useGroupedOptions.d.ts +4 -3
  334. package/dist/{beta/components/SelectField/internal/useFieldListSections.d.ts → internal/hooks/useOptionsSections.d.ts} +7 -8
  335. package/dist/{beta/components/SelectField/internal → internal/hooks}/usePinnedOptions.d.ts +1 -1
  336. package/dist/{beta/components/SelectField/internal → internal/hooks}/useProcessedOptions.d.ts +2 -2
  337. package/dist/internal/hooks/useSelectOrchestration.d.ts +38 -0
  338. package/dist/{beta/components/MultiSelectField/internal → internal/hooks}/useToggleSelection.d.ts +2 -2
  339. package/dist/{beta/components/SelectField/internal/types.d.ts → internal/types/selectFieldInternalTypes.d.ts} +11 -3
  340. package/dist/match-sorter.esm-CGAauEiU.js +908 -0
  341. package/dist/match-sorter.esm-CGAauEiU.js.map +1 -0
  342. package/dist/safePopover-BDso-xSH.js +17 -0
  343. package/dist/safePopover-BDso-xSH.js.map +1 -0
  344. package/dist/{FieldDialog-C5mwMjrr.js → syncFilterUtils-BRKjFwxk.js} +287 -146
  345. package/dist/syncFilterUtils-BRKjFwxk.js.map +1 -0
  346. package/dist/{FieldDialog.css → syncFilterUtils.css} +18 -11
  347. package/dist/{useBreakpoint-BP3HZXmh.js → useBreakpoint-okJ64T1D.js} +4 -3
  348. package/dist/useBreakpoint-okJ64T1D.js.map +1 -0
  349. package/dist/useBreakpoint.js +1 -1
  350. package/dist/{useDrilldown-hUxMOdnz.js → useDrilldown-CqBBB_r1.js} +5 -5
  351. package/dist/{useDrilldown-hUxMOdnz.js.map → useDrilldown-CqBBB_r1.js.map} +1 -1
  352. package/dist/{useLayoutPropsUtil-loxbyklF.js → useLayoutPropsUtil-DMDdfIah.js} +2 -2
  353. package/dist/{useLayoutPropsUtil-loxbyklF.js.map → useLayoutPropsUtil-DMDdfIah.js.map} +1 -1
  354. package/dist/useMenuInteraction-zR_78KQC.js +249 -0
  355. package/dist/useMenuInteraction-zR_78KQC.js.map +1 -0
  356. package/dist/usePopoverTransitionStates-CDIoNUuf.js +24 -0
  357. package/dist/usePopoverTransitionStates-CDIoNUuf.js.map +1 -0
  358. package/dist/useToggleSelection-JD62Jzqu.js +63 -0
  359. package/dist/useToggleSelection-JD62Jzqu.js.map +1 -0
  360. package/dist/{utils-pudAMGnO.js → utils-CM48ODEJ.js} +3 -13
  361. package/dist/utils-CM48ODEJ.js.map +1 -0
  362. package/dist/warnOnce-Y9PRHcU4.js +13 -0
  363. package/dist/warnOnce-Y9PRHcU4.js.map +1 -0
  364. package/package.json +1 -1
  365. package/dist/Button.module-DwCq9XU0.js +0 -26
  366. package/dist/Button.module-DwCq9XU0.js.map +0 -1
  367. package/dist/Checkbox-CxjZpzPp.js.map +0 -1
  368. package/dist/Checkbox.module-D4EgXL0i.js +0 -27
  369. package/dist/Checkbox.module-D4EgXL0i.js.map +0 -1
  370. package/dist/Combobox-Drqb3GVU.js.map +0 -1
  371. package/dist/DataTable-BLuJ4FtH.js.map +0 -1
  372. package/dist/DateFieldRange-CvlOeE4v.js.map +0 -1
  373. package/dist/DateFieldSingle-9UHxIxIA.js.map +0 -1
  374. package/dist/DateFieldYearless-HNydELvO.js.map +0 -1
  375. package/dist/DateFieldYearlessRange-COb8v2CG.js.map +0 -1
  376. package/dist/FieldDialog-C5mwMjrr.js.map +0 -1
  377. package/dist/FieldLabel-DL0D6fvc.js +0 -95
  378. package/dist/FieldLabel-DL0D6fvc.js.map +0 -1
  379. package/dist/Listbox.module-XuKszT3X.js +0 -18
  380. package/dist/Listbox.module-XuKszT3X.js.map +0 -1
  381. package/dist/MultiSelectFieldSync-BnPzYM72.js.map +0 -1
  382. package/dist/NumberField-ecubQsaf.js.map +0 -1
  383. package/dist/Popover-CYWYCj7l.js.map +0 -1
  384. package/dist/Radio-DtYoRq3m.js.map +0 -1
  385. package/dist/SelectFieldSync-DCrafdbx.js.map +0 -1
  386. package/dist/SelectTrigger-Cs5CGc4D.js.map +0 -1
  387. package/dist/TextField-atI4M79b.js.map +0 -1
  388. package/dist/Textarea-D-kPIsIN.js.map +0 -1
  389. package/dist/TimeField-DREFzFkw.js.map +0 -1
  390. package/dist/Toolbar-jfZ-CupZ.js.map +0 -1
  391. package/dist/Tooltip-Bt62hC5J.js.map +0 -1
  392. package/dist/YearlessDateInputWithPicker-mW5KykHZ.js.map +0 -1
  393. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldList.d.ts +0 -24
  394. package/dist/beta/components/SelectField/internal/FieldListBase.d.ts +0 -27
  395. package/dist/beta/components/SelectField/internal/FieldPopover/FieldPopover.d.ts +0 -9
  396. package/dist/beta/components/SelectField/internal/SelectFieldList.d.ts +0 -26
  397. package/dist/beta/components/SelectField/internal/SelectFieldListItem.d.ts +0 -14
  398. package/dist/beta/components/SelectField/internal/VirtualizedFieldListBase.d.ts +0 -2
  399. package/dist/beta/components/SelectField/internal/buildDownshiftItems.d.ts +0 -22
  400. package/dist/beta/components/Table/DataTable/internal/cells/CellError.d.ts +0 -10
  401. package/dist/floating-ui.react-P5949bpO.js +0 -28
  402. package/dist/floating-ui.react-P5949bpO.js.map +0 -1
  403. package/dist/floating-ui.react-dom-BZbDMh89.js.map +0 -1
  404. package/dist/match-sorter.esm-adzV1NDp.js.map +0 -1
  405. package/dist/useBreakpoint-BP3HZXmh.js.map +0 -1
  406. package/dist/utils-pudAMGnO.js.map +0 -1
  407. /package/dist/{beta/components/SelectField/internal → internal/components}/InView.d.ts +0 -0
@@ -1,5 +1,6 @@
1
1
  import { UseComboboxProps } from 'downshift';
2
- import { MultiSelectFieldDownshiftItem, MultiSelectFieldGroupByValue, MultiSelectFieldOption, MultiSelectFieldPinnedOptions } from '../types';
2
+ import { MultiSelectFieldGroupByValue, MultiSelectFieldOption, MultiSelectFieldPinnedOptions } from '../types';
3
+ import { SelectItem } from '../../../../internal/types/selectFieldInternalTypes';
3
4
  import { CheckState } from '../../../../types';
4
5
  export type UseComboMultipleOptions = {
5
6
  /** An array of currently loaded options */
@@ -31,7 +32,8 @@ export type UseComboMultipleOptions = {
31
32
  loading?: boolean;
32
33
  /** Whether the list is virtualized (disables built-in scroll behavior) */
33
34
  virtualize?: boolean;
34
- } & Pick<UseComboboxProps<MultiSelectFieldDownshiftItem>, "onInputValueChange" | "onIsOpenChange">;
35
+ onScrollToHighlight?: (index: number) => void;
36
+ } & Pick<UseComboboxProps<SelectItem>, "onInputValueChange" | "onIsOpenChange">;
35
37
  /**
36
38
  * Hook that wraps downshift's useCombobox for multi-select behavior.
37
39
  * Unlike useCombo, this hook:
@@ -41,19 +43,18 @@ export type UseComboMultipleOptions = {
41
43
  * @param options - Configuration options for the hook
42
44
  * @returns Downshift combobox props and state
43
45
  */
44
- export declare const useComboMultiple: ({ options, pinned, groupToString, groupSorter, selectAll, selectFiltered, selectedOptions, onSelectedOptionsChange, onInputValueChange, onIsOpenChange, displayAs, disabled, loading, virtualize, }: UseComboMultipleOptions) => {
46
+ export declare const useComboMultiple: ({ options, pinned, groupToString, groupSorter, selectAll, selectFiltered, selectedOptions, onSelectedOptionsChange, onInputValueChange, onIsOpenChange, displayAs, disabled, loading, virtualize, onScrollToHighlight, }: UseComboMultipleOptions) => {
45
47
  inputValue: string;
46
48
  wrapperDivRef: import('react').RefObject<HTMLDivElement>;
47
49
  getToggleButtonProps: <Options>(options?: import('downshift').UseComboboxGetToggleButtonPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseComboboxGetToggleButtonPropsReturnValue, Options>;
48
50
  getLabelProps: <Options>(options?: import('downshift').UseComboboxGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseComboboxGetLabelPropsReturnValue, Options>;
49
51
  getMenuProps: <Options>(options?: import('downshift').UseComboboxGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseComboboxGetMenuPropsReturnValue, Options>;
50
52
  getInputProps: <Options>(options?: import('downshift').UseComboboxGetInputPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseComboboxGetInputPropsReturnValue, Options>;
51
- getItemProps: <Options>(options: import('downshift').UseComboboxGetItemPropsOptions<import('../..').SelectFieldDownshiftItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseComboboxGetItemPropsReturnValue, Options>, "item" | "index">;
53
+ getItemProps: <Options>(options: import('downshift').UseComboboxGetItemPropsOptions<SelectItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseComboboxGetItemPropsReturnValue, Options>, "item" | "index">;
52
54
  highlightedIndex: number;
53
- highlightChangeTypeRef: import('react').MutableRefObject<string>;
54
55
  isOpen: boolean;
55
- downshiftItems: import('../..').SelectFieldDownshiftItem[];
56
- sectionsMeta: import('../../SelectField/internal/types').SectionMeta[];
56
+ items: SelectItem[];
57
+ sectionsMeta: import('../../SelectField/internal/useCombo').SectionMeta[];
57
58
  closeMenu: () => void;
58
59
  openMenu: () => void;
59
60
  toggleMenu: () => void;
@@ -1,4 +1,5 @@
1
1
  import { MultiSelectFieldGroupByValue, MultiSelectFieldOption, MultiSelectFieldPinnedOptions } from '../types';
2
+ import { SelectItem } from '../../../../internal/types/selectFieldInternalTypes';
2
3
  import { CheckState } from '../../../../types';
3
4
  export type UseSelectModeMultipleOptions = {
4
5
  options: MultiSelectFieldOption[];
@@ -18,21 +19,22 @@ export type UseSelectModeMultipleOptions = {
18
19
  displayAs: "popover" | "dialog";
19
20
  disabled: boolean;
20
21
  virtualize?: boolean;
22
+ onScrollToHighlight?: (index: number) => void;
21
23
  };
22
24
  /**
23
25
  * Wraps downshift's useSelect for non-searchable multi-select fields.
24
26
  * Keeps menu open after selection and handles bulk actions.
25
27
  */
26
- export declare const useSelectModeMultiple: ({ options, pinned, groupToString, groupSorter, selectAll, selectedOptions, onSelectedOptionsChange, onIsOpenChange, displayAs, disabled, virtualize, }: UseSelectModeMultipleOptions) => {
28
+ export declare const useSelectModeMultiple: ({ options, pinned, groupToString, groupSorter, selectAll, selectedOptions, onSelectedOptionsChange, onIsOpenChange, displayAs, disabled, virtualize, onScrollToHighlight, }: UseSelectModeMultipleOptions) => {
27
29
  wrapperDivRef: import('react').RefObject<HTMLDivElement>;
28
30
  getToggleButtonProps: <Options>(options?: import('downshift').UseSelectGetToggleButtonPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetToggleButtonReturnValue, Options>;
29
31
  getLabelProps: <Options>(options?: import('downshift').UseSelectGetLabelPropsOptions & Options) => import('downshift').Overwrite<import('downshift').UseSelectGetLabelPropsReturnValue, Options>;
30
32
  getMenuProps: <Options>(options?: import('downshift').UseSelectGetMenuPropsOptions & Options, otherOptions?: import('downshift').GetPropsCommonOptions) => import('downshift').Overwrite<import('downshift').UseSelectGetMenuReturnValue, Options>;
31
- getItemProps: <Options>(options: import('downshift').UseSelectGetItemPropsOptions<import('../..').SelectFieldDownshiftItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseSelectGetItemPropsReturnValue, Options>, "item" | "index">;
33
+ getItemProps: <Options>(options: import('downshift').UseSelectGetItemPropsOptions<SelectItem> & Options) => Omit<import('downshift').Overwrite<import('downshift').UseSelectGetItemPropsReturnValue, Options>, "item" | "index">;
32
34
  highlightedIndex: number;
33
35
  isOpen: boolean;
34
- downshiftItems: import('../..').SelectFieldDownshiftItem[];
35
- sectionsMeta: import('../../SelectField/internal/types').SectionMeta[];
36
+ items: SelectItem[];
37
+ sectionsMeta: import('../../SelectField/internal/useCombo').SectionMeta[];
36
38
  closeMenu: () => void;
37
39
  openMenu: () => void;
38
40
  toggleMenu: () => void;
@@ -1,10 +1,10 @@
1
1
  import { AriaAttributes, CSSProperties, ReactElement, ReactNode } from 'react';
2
2
  import { CheckState, LayoutUtilProps, Size } from '../../../types';
3
- import { SelectFieldDownshiftItem, SelectFieldGroupByValue, SelectFieldOption } from '../SelectField/types';
3
+ import { SelectFieldGroupByValue, SelectFieldOption } from '../SelectField/types';
4
4
  /**
5
5
  * Configuration options for the MultiSelectField 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 MultiSelectFieldCacheOptions = {
10
10
  enabled?: boolean;
@@ -360,5 +360,4 @@ export type MultiSelectFieldPropsEager = MultiSelectFieldCommonProps & {
360
360
  } & MultiSelectFieldGroupingProps;
361
361
  export type MultiSelectFieldPropsLazy = MultiSelectFieldPropsLazyPage | MultiSelectFieldPropsLazyOffset | MultiSelectFieldPropsLazyGroup;
362
362
  export type MultiSelectFieldProps = MultiSelectFieldPropsLazy | MultiSelectFieldPropsEager;
363
- export type MultiSelectFieldDownshiftItem = SelectFieldDownshiftItem;
364
363
  export {};
@@ -0,0 +1,30 @@
1
+ import { MultiSelectMenuHandle, MultiSelectMenuProps } from './types';
2
+ /**
3
+ * MultiSelectMenu component for selecting multiple options from a dropdown triggered by any element.
4
+ *
5
+ * Features:
6
+ * - Attaches to any trigger element via a render prop
7
+ * - Multiple selection with checkbox indicators
8
+ * - Optional search input rendered inside the popover/dialog
9
+ * - Lazy loading with pagination (page, offset, or group modes)
10
+ * - Optional "Select All" functionality
11
+ * - Optional "Select Filtered" functionality
12
+ * - Pinned options support
13
+ * - Grouped options support
14
+ * - Supports both popover and dialog display modes
15
+ * - Adaptive display based on device (mobile uses dialog)
16
+ * - Cache support for loadOptions results
17
+ * - Full accessibility support with ARIA attributes
18
+ * - Controlled selection state
19
+ * - Configurable popover width
20
+ *
21
+ * @example
22
+ * <MultiSelectMenu
23
+ * trigger={(props) => <Button {...props}>Select books</Button>}
24
+ * label="Books"
25
+ * value={selectedOptions}
26
+ * onSelectedOptionsChange={setSelectedOptions}
27
+ * loadOptions={loadOptions}
28
+ * />
29
+ */
30
+ export declare const MultiSelectMenu: import('react').ForwardRefExoticComponent<MultiSelectMenuProps & import('react').RefAttributes<MultiSelectMenuHandle>>;
@@ -0,0 +1,54 @@
1
+ import { MatchSorterOptions } from 'match-sorter';
2
+ import { MultiSelectMenuProps, MultiSelectMenuOption } from './types';
3
+ import { SyncFilterFn } from '../../../internal/functions/syncFilterUtils';
4
+ export type MultiSelectMenuSyncProps = Omit<MultiSelectMenuProps, "loadOptions" | "lazy" | "debounceMs" | "cache" | "initialLoad" | "selectAll" | "selectFiltered"> & {
5
+ /**
6
+ * The options to display in the multi-select menu.
7
+ */
8
+ options: MultiSelectMenuOption[];
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<MultiSelectMenuOption> | MatchSorterOptions<MultiSelectMenuOption>;
17
+ /**
18
+ * Enables the "Select All" option at the top of the list.
19
+ * Can be a boolean to enable with default label, or an object to customize the label.
20
+ * Click handling and check state are managed automatically.
21
+ */
22
+ selectAll?: boolean | {
23
+ label?: string | ((checked: boolean) => string);
24
+ };
25
+ /**
26
+ * Enables the "Select Filtered" option when a search term is active.
27
+ * Can be a boolean to enable with default label, or a function returning a config with a custom label.
28
+ * Click handling and check state are managed automatically.
29
+ */
30
+ selectFiltered?: boolean | ((searchValue: string) => {
31
+ label?: string;
32
+ });
33
+ };
34
+ /**
35
+ * MultiSelectMenuSync is a simplified version of MultiSelectMenu for client-side option sets.
36
+ *
37
+ * Features:
38
+ * - Accepts `options` instead of `loadOptions` and `lazy`
39
+ * - Performs client-side filtering of the options
40
+ * - Simplified `selectAll` prop that automatically handles click and check state
41
+ * - Simplified `selectFiltered` prop that automatically selects/deselects filtered options
42
+ * - Supports all other props of MultiSelectMenu
43
+ *
44
+ * @example
45
+ * <MultiSelectMenuSync
46
+ * trigger={(props) => <Button {...props}>Pick books</Button>}
47
+ * label="Books"
48
+ * options={bookOptions}
49
+ * value={selectedOptions}
50
+ * onSelectedOptionsChange={setSelectedOptions}
51
+ * selectAll
52
+ * />
53
+ */
54
+ export declare const MultiSelectMenuSync: (props: MultiSelectMenuSyncProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,3 @@
1
+ export * from './MultiSelectMenu';
2
+ export * from './MultiSelectMenuSync';
3
+ export * from './types';
@@ -0,0 +1,170 @@
1
+ import { KeyboardEvent, ReactElement, RefObject } from 'react';
2
+ import { CheckState } from '../../../types';
3
+ import { SelectFieldGroupByValue, SelectFieldOption } from '../SelectField/types';
4
+ import { MultiSelectFieldCacheOptions, MultiSelectFieldEagerLoader, MultiSelectFieldGroupLazyLoader, MultiSelectFieldOffsetLazyLoader, MultiSelectFieldPageLazyLoader, MultiSelectFieldPinnedOptions, MultiSelectFieldSearchProps } from '../MultiSelectField/types';
5
+ export type MultiSelectMenuOption = SelectFieldOption;
6
+ export type MultiSelectMenuGroupByValue = SelectFieldGroupByValue;
7
+ /**
8
+ * Configuration options for the MultiSelectMenu cache.
9
+ * @property enabled - Whether caching is enabled. Defaults to true.
10
+ * @property maxSize - Maximum number of cached entries before clearing the cache. Defaults to 15.
11
+ */
12
+ export type MultiSelectMenuCacheOptions = MultiSelectFieldCacheOptions;
13
+ /**
14
+ * Imperative handle for the MultiSelectMenu component.
15
+ * @property clearCache - Clears the options cache.
16
+ * @property invalidate - Clears the cache and triggers a fresh options load from the data source.
17
+ */
18
+ export type MultiSelectMenuHandle = {
19
+ clearCache: () => void;
20
+ invalidate: () => void;
21
+ };
22
+ export type MultiSelectMenuEagerLoader = MultiSelectFieldEagerLoader;
23
+ export type MultiSelectMenuPageLazyLoader = MultiSelectFieldPageLazyLoader;
24
+ export type MultiSelectMenuOffsetLazyLoader = MultiSelectFieldOffsetLazyLoader;
25
+ export type MultiSelectMenuGroupLazyLoader = MultiSelectFieldGroupLazyLoader;
26
+ export type MultiSelectMenuPinnedOptions = MultiSelectFieldPinnedOptions;
27
+ export type MultiSelectMenuSearchProps = MultiSelectFieldSearchProps;
28
+ /**
29
+ * Props provided to the trigger render function.
30
+ * @property ref - Ref to attach to the trigger element for positioning
31
+ * @property onClick - Click handler to toggle the menu
32
+ * @property onKeyDown - Key handler for keyboard navigation
33
+ * @property aria-haspopup - ARIA attribute indicating the trigger opens a listbox
34
+ * @property aria-controls - ARIA attribute linking to the menu element
35
+ * @property aria-expanded - ARIA attribute indicating whether the menu is open
36
+ * @property data-state - Data attribute indicating the open/close state
37
+ */
38
+ export type MultiSelectMenuTriggerProps = {
39
+ ref: RefObject<HTMLButtonElement>;
40
+ onClick: () => void;
41
+ onKeyDown: (e: KeyboardEvent<HTMLButtonElement>) => void;
42
+ "aria-haspopup": "listbox";
43
+ "aria-controls": string;
44
+ "aria-expanded": boolean;
45
+ "data-state": "open" | "close";
46
+ };
47
+ type MultiSelectMenuCommonProps = {
48
+ /**
49
+ * The id of the multi-select menu.
50
+ */
51
+ id?: string;
52
+ /**
53
+ * Render function that receives trigger props and returns the element that opens the menu.
54
+ */
55
+ trigger: (props: MultiSelectMenuTriggerProps) => ReactElement;
56
+ /**
57
+ * Accessible label for the menu. Used by screen readers but not rendered visually.
58
+ */
59
+ label: string;
60
+ /**
61
+ * Placeholder text shown in the search input inside the menu.
62
+ */
63
+ searchPlaceholder?: string;
64
+ /**
65
+ * The selected options. Must be controlled state.
66
+ */
67
+ value: MultiSelectMenuOption[];
68
+ /**
69
+ * Callback fired when the selected options change.
70
+ * @param options - The new array of selected options.
71
+ */
72
+ onSelectedOptionsChange: (options: MultiSelectMenuOption[]) => void;
73
+ /**
74
+ * Defines the initial loading behavior of the options.
75
+ * @default "auto"
76
+ */
77
+ initialLoad?: "auto" | "immediate" | "open";
78
+ /**
79
+ * Options to pin to the top of the list.
80
+ */
81
+ pinned?: MultiSelectMenuPinnedOptions;
82
+ /**
83
+ * Configuration for caching loadOptions results.
84
+ * Caching is enabled by default. Set `{ enabled: false }` to disable.
85
+ */
86
+ cache?: MultiSelectMenuCacheOptions;
87
+ /**
88
+ * Controls how the menu is displayed.
89
+ * @default "auto"
90
+ * @description "auto" uses a popover on desktop and a dialog on mobile.
91
+ * @description "popover" always uses a popover.
92
+ * @description "dialog" always uses a dialog.
93
+ */
94
+ displayMenuAs?: "auto" | "popover" | "dialog";
95
+ /**
96
+ * Whether to virtualize the list using windowed rendering.
97
+ * @default false
98
+ */
99
+ virtualize?: boolean;
100
+ /**
101
+ * Whether to disable the search input inside the menu.
102
+ * @default false
103
+ */
104
+ disableSearch?: boolean;
105
+ /**
106
+ * Configuration for the "Select All" option at the top of the list.
107
+ * Shown when the search input is empty.
108
+ */
109
+ selectAll?: {
110
+ label?: string;
111
+ onClick: () => void;
112
+ checkState: boolean | CheckState;
113
+ };
114
+ /**
115
+ * Function that receives the current search value and returns configuration for
116
+ * the "Select Filtered" option at the top of the list.
117
+ * Shown when a search term is active (instead of Select All).
118
+ */
119
+ selectFiltered?: (searchValue: string) => {
120
+ label?: string;
121
+ onClick: () => void;
122
+ checkState: boolean | CheckState;
123
+ };
124
+ /**
125
+ * Width of the popover. Only applies when `displayMenuAs="popover"` (or when the adaptive mode resolves to popover). Has no effect in dialog mode.
126
+ * Accepts a CSS width value or "reference" to match the trigger element's width.
127
+ * @default 320
128
+ */
129
+ popoverWidth?: "reference" | number | string;
130
+ } & MultiSelectMenuSearchProps;
131
+ type MultiSelectMenuGroupingProps = {
132
+ /**
133
+ * Function to convert a group value to a display label.
134
+ */
135
+ groupToString?: (groupValue: MultiSelectMenuGroupByValue) => string;
136
+ /**
137
+ * Custom comparator function to sort groups.
138
+ */
139
+ groupSorter?: (a: MultiSelectMenuGroupByValue, b: MultiSelectMenuGroupByValue) => number;
140
+ };
141
+ type MultiSelectMenuNonGroupingProps = {
142
+ groupToString?: never;
143
+ groupSorter?: never;
144
+ };
145
+ export type MultiSelectMenuPropsLazyPage = MultiSelectMenuCommonProps & {
146
+ lazy: "page";
147
+ lazyOptions?: {
148
+ pageSize?: number;
149
+ };
150
+ loadOptions: MultiSelectMenuPageLazyLoader;
151
+ } & MultiSelectMenuNonGroupingProps;
152
+ export type MultiSelectMenuPropsLazyOffset = MultiSelectMenuCommonProps & {
153
+ lazy: "offset";
154
+ lazyOptions?: {
155
+ limit?: number;
156
+ };
157
+ loadOptions: MultiSelectMenuOffsetLazyLoader;
158
+ } & MultiSelectMenuNonGroupingProps;
159
+ export type MultiSelectMenuPropsLazyGroup = MultiSelectMenuCommonProps & {
160
+ lazy: "group";
161
+ lazyOptions?: object;
162
+ loadOptions: MultiSelectMenuGroupLazyLoader;
163
+ } & MultiSelectMenuGroupingProps;
164
+ export type MultiSelectMenuPropsEager = MultiSelectMenuCommonProps & {
165
+ lazy?: false;
166
+ loadOptions: MultiSelectMenuEagerLoader;
167
+ } & MultiSelectMenuGroupingProps;
168
+ export type MultiSelectMenuPropsLazy = MultiSelectMenuPropsLazyPage | MultiSelectMenuPropsLazyOffset | MultiSelectMenuPropsLazyGroup;
169
+ export type MultiSelectMenuProps = MultiSelectMenuPropsLazy | MultiSelectMenuPropsEager;
170
+ export {};
@@ -1,6 +1,6 @@
1
1
  import { MatchSorterOptions } from 'match-sorter';
2
2
  import { SelectFieldProps, SelectFieldOption, SelectFieldGroupByValue } from './types';
3
- type FilterFn = (options: SelectFieldOption[], searchValue: string) => SelectFieldOption[];
3
+ import { SyncFilterFn } from '../../../internal/functions/syncFilterUtils';
4
4
  export type SelectFieldSyncProps = Omit<SelectFieldProps, "loadOptions" | "lazy" | "debounceMs" | "cache" | "initialLoad"> & {
5
5
  /**
6
6
  * The options to display in the select field.
@@ -31,7 +31,7 @@ export type SelectFieldSyncProps = Omit<SelectFieldProps, "loadOptions" | "lazy"
31
31
  * filter={{ keys: ["label"] }}
32
32
  * />
33
33
  */
34
- filter?: FilterFn | MatchSorterOptions<SelectFieldOption>;
34
+ filter?: SyncFilterFn | MatchSorterOptions<SelectFieldOption>;
35
35
  /**
36
36
  * Function to compare two group values for sorting.
37
37
  * When provided, options are sorted by group using this comparator,
@@ -53,4 +53,3 @@ export type SelectFieldSyncProps = Omit<SelectFieldProps, "loadOptions" | "lazy"
53
53
  * - Supports all the other props of SelectField.
54
54
  */
55
55
  export declare const SelectFieldSync: (props: SelectFieldSyncProps) => import("react/jsx-runtime").JSX.Element;
56
- export {};
@@ -1,4 +1,4 @@
1
- import { SelectFieldComboboxInternalProps } from './types';
1
+ import { SelectFieldComboboxInternalProps } from '../../../../internal/types/selectFieldInternalTypes';
2
2
  /**
3
3
  * Combobox mode: searchable select using useCombobox.
4
4
  * This is the default behavior when disableSearch is false.
@@ -1,4 +1,4 @@
1
- import { SelectFieldBaseInternalProps } from './types';
1
+ import { SelectFieldBaseInternalProps } from '../../../../internal/types/selectFieldInternalTypes';
2
2
  /**
3
3
  * Select mode: non-searchable select using useSelect.
4
4
  * Active when disableSearch is true.
@@ -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 {};