@servicetitan/anvil2 3.0.9 → 3.2.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 (354) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/dist/{AiMark-CS6MvraM.js → AiMark-D6ScGfyP.js} +7 -7
  3. package/dist/{AiMark-CS6MvraM.js.map → AiMark-D6ScGfyP.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-CNDLoh6b.js → Alert-Dgq96HR4.js} +4 -4
  6. package/dist/{Alert-CNDLoh6b.js.map → Alert-Dgq96HR4.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-CgTqDU8A.js → Announcement-DXF8slQf.js} +4 -4
  9. package/dist/{Announcement-CgTqDU8A.js.map → Announcement-DXF8slQf.js.map} +1 -1
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{AnvilProvider-BFK29dL5.js → AnvilProvider-Cw_zTBqJ.js} +5 -5
  12. package/dist/{AnvilProvider-BFK29dL5.js.map → AnvilProvider-Cw_zTBqJ.js.map} +1 -1
  13. package/dist/AnvilProvider.js +1 -1
  14. package/dist/{Avatar-Bl-Dxbhf.js → Avatar-CoQcOHWU.js} +2 -2
  15. package/dist/{Avatar-Bl-Dxbhf.js.map → Avatar-CoQcOHWU.js.map} +1 -1
  16. package/dist/{Avatar-CdAIJ5VK.js → Avatar-DX96Mxe7.js} +2 -2
  17. package/dist/{Avatar-CdAIJ5VK.js.map → Avatar-DX96Mxe7.js.map} +1 -1
  18. package/dist/Avatar.js +2 -2
  19. package/dist/{Badge-DtUI2AEk.js → Badge-BNrYBFiU.js} +2 -2
  20. package/dist/{Badge-DtUI2AEk.js.map → Badge-BNrYBFiU.js.map} +1 -1
  21. package/dist/Badge.js +1 -1
  22. package/dist/{Breadcrumbs--Xt6l_2L.js → Breadcrumbs-CklKFLSl.js} +5 -5
  23. package/dist/{Breadcrumbs--Xt6l_2L.js.map → Breadcrumbs-CklKFLSl.js.map} +1 -1
  24. package/dist/Breadcrumbs.js +1 -1
  25. package/dist/{Button-C_V2xQAs.js → Button-ChQARW0y.js} +3 -3
  26. package/dist/{Button-C_V2xQAs.js.map → Button-ChQARW0y.js.map} +1 -1
  27. package/dist/Button.js +1 -1
  28. package/dist/{ButtonCompound-BQb2gfAl.js → ButtonCompound-_0ddykI_.js} +2 -2
  29. package/dist/{ButtonCompound-BQb2gfAl.js.map → ButtonCompound-_0ddykI_.js.map} +1 -1
  30. package/dist/ButtonCompound.js +1 -1
  31. package/dist/{ButtonLink-UhLks0vM.js → ButtonLink-CWbYzTTz.js} +3 -3
  32. package/dist/{ButtonLink-UhLks0vM.js.map → ButtonLink-CWbYzTTz.js.map} +1 -1
  33. package/dist/ButtonLink.js +1 -1
  34. package/dist/{ButtonToggle-jnDMPSyK.js → ButtonToggle-BVv94C4U.js} +3 -3
  35. package/dist/{ButtonToggle-jnDMPSyK.js.map → ButtonToggle-BVv94C4U.js.map} +1 -1
  36. package/dist/ButtonToggle.js +1 -1
  37. package/dist/{Calendar-rITorBvD.js → Calendar-DWyW5gvQ.js} +5 -5
  38. package/dist/{Calendar-rITorBvD.js.map → Calendar-DWyW5gvQ.js.map} +1 -1
  39. package/dist/{Calendar-5mAxtdNh.js → Calendar-Qlnpl3zR.js} +2 -2
  40. package/dist/{Calendar-5mAxtdNh.js.map → Calendar-Qlnpl3zR.js.map} +1 -1
  41. package/dist/Calendar.js +2 -2
  42. package/dist/{Card-fBqg853U.js → Card-Bt0F6RTq.js} +2 -2
  43. package/dist/{Card-fBqg853U.js.map → Card-Bt0F6RTq.js.map} +1 -1
  44. package/dist/Card.js +1 -1
  45. package/dist/{Checkbox-BYWhkYoK.js → Checkbox-BE8Jmz3t.js} +2 -2
  46. package/dist/{Checkbox-BYWhkYoK.js.map → Checkbox-BE8Jmz3t.js.map} +1 -1
  47. package/dist/{Checkbox-DTzoDcJl.js → Checkbox-QIaS16gS.js} +5 -5
  48. package/dist/{Checkbox-DTzoDcJl.js.map → Checkbox-QIaS16gS.js.map} +1 -1
  49. package/dist/Checkbox.js +1 -1
  50. package/dist/{Chip-CyMNyEPR.js → Chip-BYK1b3lZ.js} +5 -5
  51. package/dist/{Chip-CyMNyEPR.js.map → Chip-BYK1b3lZ.js.map} +1 -1
  52. package/dist/Chip.js +1 -1
  53. package/dist/Combobox.js +1 -1
  54. package/dist/{DataTable-FG0Kjx0d.js → DataTable-D_ZP3kZw.js} +187 -124
  55. package/dist/DataTable-D_ZP3kZw.js.map +1 -0
  56. package/dist/DataTable.css +40 -19
  57. package/dist/{DateFieldRange-BUug1tUy.js → DateFieldRange-OiVF8sye.js} +5 -5
  58. package/dist/{DateFieldRange-BUug1tUy.js.map → DateFieldRange-OiVF8sye.js.map} +1 -1
  59. package/dist/DateFieldRange.js +1 -1
  60. package/dist/{DateFieldSingle-DR7faQGD.js → DateFieldSingle-CSCcHt9Z.js} +5 -5
  61. package/dist/{DateFieldSingle-DR7faQGD.js.map → DateFieldSingle-CSCcHt9Z.js.map} +1 -1
  62. package/dist/DateFieldSingle.js +1 -1
  63. package/dist/{DateFieldYearless-7MFcR7L6.js → DateFieldYearless-DU9No74i.js} +6 -6
  64. package/dist/{DateFieldYearless-7MFcR7L6.js.map → DateFieldYearless-DU9No74i.js.map} +1 -1
  65. package/dist/DateFieldYearless.js +1 -1
  66. package/dist/{DateFieldYearlessRange-DGtdyISH.js → DateFieldYearlessRange-BkXIgh59.js} +6 -6
  67. package/dist/{DateFieldYearlessRange-DGtdyISH.js.map → DateFieldYearlessRange-BkXIgh59.js.map} +1 -1
  68. package/dist/DateFieldYearlessRange.js +1 -1
  69. package/dist/{DaysOfTheWeek-C7oN9nIe.js → DaysOfTheWeek-BYw91Qr-.js} +5 -5
  70. package/dist/{DaysOfTheWeek-C7oN9nIe.js.map → DaysOfTheWeek-BYw91Qr-.js.map} +1 -1
  71. package/dist/DaysOfTheWeek.js +1 -1
  72. package/dist/{Details-s2pVu-YL.js → Details-Xb49PJ-r.js} +10 -10
  73. package/dist/{Details-s2pVu-YL.js.map → Details-Xb49PJ-r.js.map} +1 -1
  74. package/dist/Details.css +16 -15
  75. package/dist/Details.js +1 -1
  76. package/dist/{Dialog-dE9c90iR.js → Dialog-DMR_uvde.js} +4 -4
  77. package/dist/{Dialog-dE9c90iR.js.map → Dialog-DMR_uvde.js.map} +1 -1
  78. package/dist/Dialog.js +1 -1
  79. package/dist/{DialogCancelButton-DcidFC38.js → DialogCancelButton-lAq4bhHS.js} +2 -2
  80. package/dist/{DialogCancelButton-DcidFC38.js.map → DialogCancelButton-lAq4bhHS.js.map} +1 -1
  81. package/dist/{Divider-Dz27DFuE.js → Divider-C7fp5Xb6.js} +2 -2
  82. package/dist/{Divider-Dz27DFuE.js.map → Divider-C7fp5Xb6.js.map} +1 -1
  83. package/dist/Divider.js +1 -1
  84. package/dist/Dnd.js +2 -2
  85. package/dist/{DndHandleButton-BW9xLWQm.js → DndHandleButton-Cj7pIegT.js} +3 -3
  86. package/dist/{DndHandleButton-BW9xLWQm.js.map → DndHandleButton-Cj7pIegT.js.map} +1 -1
  87. package/dist/DndSort.js +6 -6
  88. package/dist/{Drawer-Dk0MsaOU.js → Drawer-vxmKqraS.js} +4 -4
  89. package/dist/{Drawer-Dk0MsaOU.js.map → Drawer-vxmKqraS.js.map} +1 -1
  90. package/dist/Drawer.js +1 -1
  91. package/dist/DrillDown.js +1 -1
  92. package/dist/{EditCard-DV2N7zWr.js → EditCard-h7sDGB-x.js} +6 -6
  93. package/dist/{EditCard-DV2N7zWr.js.map → EditCard-h7sDGB-x.js.map} +1 -1
  94. package/dist/EditCard.js +1 -1
  95. package/dist/{FieldLabel-VVn8GR64.js → FieldLabel-tFSfJ7OJ.js} +4 -4
  96. package/dist/{FieldLabel-VVn8GR64.js.map → FieldLabel-tFSfJ7OJ.js.map} +1 -1
  97. package/dist/FieldLabel.js +1 -1
  98. package/dist/{FilterBar-B3c_VGDk.js → FilterBar-l8aCxO9c.js} +10 -10
  99. package/dist/{FilterBar-B3c_VGDk.js.map → FilterBar-l8aCxO9c.js.map} +1 -1
  100. package/dist/FilterBar.js +1 -1
  101. package/dist/{Flex-_orhvoxS.js → Flex-Bb3iHExM.js} +2 -2
  102. package/dist/{Flex-_orhvoxS.js.map → Flex-Bb3iHExM.js.map} +1 -1
  103. package/dist/Flex.js +1 -1
  104. package/dist/{Grid-BAN8WD_V.js → Grid-ho1pGJ5L.js} +2 -2
  105. package/dist/{Grid-BAN8WD_V.js.map → Grid-ho1pGJ5L.js.map} +1 -1
  106. package/dist/Grid.js +1 -1
  107. package/dist/{Icon-feeG7gXA.js → Icon-BEwHECSM.js} +2 -2
  108. package/dist/{Icon-feeG7gXA.js.map → Icon-BEwHECSM.js.map} +1 -1
  109. package/dist/Icon.js +1 -1
  110. package/dist/{InputMask-VBHWGZGN.js → InputMask-r8vH_Gh3.js} +3 -3
  111. package/dist/{InputMask-VBHWGZGN.js.map → InputMask-r8vH_Gh3.js.map} +1 -1
  112. package/dist/InputMask.js +1 -1
  113. package/dist/{InteractiveCard-Pu0j2qJd.js → InteractiveCard-CyUR_VLW.js} +2 -2
  114. package/dist/{InteractiveCard-Pu0j2qJd.js.map → InteractiveCard-CyUR_VLW.js.map} +1 -1
  115. package/dist/InteractiveCard.js +1 -1
  116. package/dist/{Link-D8A_WT94.js → Link-DI4eVVdI.js} +3 -3
  117. package/dist/{Link-D8A_WT94.js.map → Link-DI4eVVdI.js.map} +1 -1
  118. package/dist/Link.js +1 -1
  119. package/dist/{LinkButton-DxYsWiXB.js → LinkButton-C0wps8r1.js} +2 -2
  120. package/dist/{LinkButton-DxYsWiXB.js.map → LinkButton-C0wps8r1.js.map} +1 -1
  121. package/dist/LinkButton.js +1 -1
  122. package/dist/{List-GPS-GqH7.js → List-BvzfZ9TW.js} +2 -2
  123. package/dist/{List-GPS-GqH7.js.map → List-BvzfZ9TW.js.map} +1 -1
  124. package/dist/List.js +1 -1
  125. package/dist/{ListView-BUrfz75g.js → ListView-D_xAfZD-.js} +3 -3
  126. package/dist/{ListView-BUrfz75g.js.map → ListView-D_xAfZD-.js.map} +1 -1
  127. package/dist/ListView.js +1 -1
  128. package/dist/{Listbox-CRY-0BkS.js → Listbox-iUUghImt.js} +5 -5
  129. package/dist/{Listbox-CRY-0BkS.js.map → Listbox-iUUghImt.js.map} +1 -1
  130. package/dist/Listbox.js +1 -1
  131. package/dist/{LocalizationProvider-CO8fQGqs.js → LocalizationProvider-BPcOU7YX.js} +2 -2
  132. package/dist/{LocalizationProvider-CO8fQGqs.js.map → LocalizationProvider-BPcOU7YX.js.map} +1 -1
  133. package/dist/LocalizationProvider.js +1 -1
  134. package/dist/{Menu-DNJ0YqjA.js → Menu-qcHhgf-t.js} +16 -26
  135. package/dist/{Menu-DNJ0YqjA.js.map → Menu-qcHhgf-t.js.map} +1 -1
  136. package/dist/Menu.js +1 -1
  137. package/dist/Menu.module-CoyI86tZ.js +13 -0
  138. package/dist/Menu.module-CoyI86tZ.js.map +1 -0
  139. package/dist/{MenuFooter-CrsZdXvN.js → MenuFooter-Dtckm9vY.js} +2 -2
  140. package/dist/{MenuFooter-CrsZdXvN.js.map → MenuFooter-Dtckm9vY.js.map} +1 -1
  141. package/dist/MultiSelectField.js +1 -1
  142. package/dist/{MultiSelectFieldSync-CzHj9Qvy.js → MultiSelectFieldSync-DNJ1TBf8.js} +47 -31
  143. package/dist/MultiSelectFieldSync-DNJ1TBf8.js.map +1 -0
  144. package/dist/MultiSelectFieldSync.css +65 -63
  145. package/dist/MultiSelectMenu.js +1 -1
  146. package/dist/{MultiSelectMenuSync-BGcrYjby.js → MultiSelectMenuSync-LD931FAV.js} +7 -6
  147. package/dist/{MultiSelectMenuSync-BGcrYjby.js.map → MultiSelectMenuSync-LD931FAV.js.map} +1 -1
  148. package/dist/{NumberField-bgYX7JGs.js → NumberField-CFYbODNe.js} +9 -7
  149. package/dist/NumberField-CFYbODNe.js.map +1 -0
  150. package/dist/NumberField.js +1 -1
  151. package/dist/Overflow.js +2 -2
  152. package/dist/{Page-BSHydn4p.js → Page-DgSimS7u.js} +89 -89
  153. package/dist/Page-DgSimS7u.js.map +1 -0
  154. package/dist/Page.js +1 -1
  155. package/dist/{Pagination-CAeyJ7Pl.js → Pagination-DQ2fjkmT.js} +7 -7
  156. package/dist/{Pagination-CAeyJ7Pl.js.map → Pagination-DQ2fjkmT.js.map} +1 -1
  157. package/dist/Pagination.js +1 -1
  158. package/dist/{Popover-Cq5tirFz.js → Popover-DeBxKuqc.js} +4 -4
  159. package/dist/{Popover-Cq5tirFz.js.map → Popover-DeBxKuqc.js.map} +1 -1
  160. package/dist/Popover.js +1 -1
  161. package/dist/{ProgressBar-ByR50ln7.js → ProgressBar-BFvc2jm3.js} +5 -5
  162. package/dist/{ProgressBar-ByR50ln7.js.map → ProgressBar-BFvc2jm3.js.map} +1 -1
  163. package/dist/ProgressBar.js +1 -1
  164. package/dist/{Radio-WlsZFRzX.js → Radio-BV4SflBA.js} +5 -5
  165. package/dist/{Radio-WlsZFRzX.js.map → Radio-BV4SflBA.js.map} +1 -1
  166. package/dist/{Radio-CPuctRpl.js → Radio-v3lT3AoB.js} +2 -2
  167. package/dist/{Radio-CPuctRpl.js.map → Radio-v3lT3AoB.js.map} +1 -1
  168. package/dist/Radio.js +1 -1
  169. package/dist/{RichTextEditor-FSWAVmTe.js → RichTextEditor-Cm29o9RK.js} +14 -14
  170. package/dist/{RichTextEditor-FSWAVmTe.js.map → RichTextEditor-Cm29o9RK.js.map} +1 -1
  171. package/dist/RichTextEditor.js +1 -1
  172. package/dist/{SavedFiltersButton-Cr829guv.js → SavedFiltersButton-3VadkBsA.js} +12 -12
  173. package/dist/{SavedFiltersButton-Cr829guv.js.map → SavedFiltersButton-3VadkBsA.js.map} +1 -1
  174. package/dist/SavedFiltersButton.js +1 -1
  175. package/dist/{SearchField-BMHJCVFu.js → SearchField-BfOMhmIc.js} +2 -2
  176. package/dist/{SearchField-BMHJCVFu.js.map → SearchField-BfOMhmIc.js.map} +1 -1
  177. package/dist/{SearchField-fXc_vWEr.js → SearchField-D9ZMOcbo.js} +4 -4
  178. package/dist/{SearchField-fXc_vWEr.js.map → SearchField-D9ZMOcbo.js.map} +1 -1
  179. package/dist/SearchField.js +1 -1
  180. package/dist/{SegmentedControl-PwLdTdrd.js → SegmentedControl-fBjqazBR.js} +3 -3
  181. package/dist/{SegmentedControl-PwLdTdrd.js.map → SegmentedControl-fBjqazBR.js.map} +1 -1
  182. package/dist/SegmentedControl.js +1 -1
  183. package/dist/{SelectCard-DLWLHi_i.js → SelectCard-CkZEENl6.js} +5 -5
  184. package/dist/{SelectCard-DLWLHi_i.js.map → SelectCard-CkZEENl6.js.map} +1 -1
  185. package/dist/SelectCard.js +1 -1
  186. package/dist/SelectField.js +1 -1
  187. package/dist/{SelectFieldLabel-vemffdmu.js → SelectFieldLabel-CvJhwy_6.js} +2 -2
  188. package/dist/{SelectFieldLabel-vemffdmu.js.map → SelectFieldLabel-CvJhwy_6.js.map} +1 -1
  189. package/dist/{SelectFieldSync-C65VFWGm.js → SelectFieldSync-z_kyrBvL.js} +24 -10
  190. package/dist/SelectFieldSync-z_kyrBvL.js.map +1 -0
  191. package/dist/SelectMenu.js +1 -1
  192. package/dist/{SelectMenuSync-CF49L12-.js → SelectMenuSync-BD8oedGs.js} +7 -6
  193. package/dist/{SelectMenuSync-CF49L12-.js.map → SelectMenuSync-BD8oedGs.js.map} +1 -1
  194. package/dist/{SelectOptions-C7skDFj2.js → SelectOptions-CBSsSyFd.js} +2 -2
  195. package/dist/{SelectOptions-C7skDFj2.js.map → SelectOptions-CBSsSyFd.js.map} +1 -1
  196. package/dist/{SelectTrigger-BbneVXMz.js → SelectTrigger-BtmYsL2p.js} +5 -5
  197. package/dist/{SelectTrigger-BbneVXMz.js.map → SelectTrigger-BtmYsL2p.js.map} +1 -1
  198. package/dist/SelectTrigger.js +1 -1
  199. package/dist/{SelectTriggerBase-BjIOERXr.js → SelectTriggerBase-CyyzAOmG.js} +6 -6
  200. package/dist/{SelectTriggerBase-BjIOERXr.js.map → SelectTriggerBase-CyyzAOmG.js.map} +1 -1
  201. package/dist/SelectTriggerBase.css +48 -46
  202. package/dist/SelectTriggerBase.module-Brmw1nYG.js +39 -0
  203. package/dist/SelectTriggerBase.module-Brmw1nYG.js.map +1 -0
  204. package/dist/{SideNav-JzIIZSK_.js → SideNav-BFkruKa4.js} +3 -3
  205. package/dist/{SideNav-JzIIZSK_.js.map → SideNav-BFkruKa4.js.map} +1 -1
  206. package/dist/SideNav.js +1 -1
  207. package/dist/Skeleton.js +1 -1
  208. package/dist/{Stepper-lYywxPU5.js → Stepper-BXgMeUHu.js} +5 -5
  209. package/dist/{Stepper-lYywxPU5.js.map → Stepper-BXgMeUHu.js.map} +1 -1
  210. package/dist/Stepper.js +1 -1
  211. package/dist/{Switch-B6bKmpwN.js → Switch-DibokoJL.js} +5 -5
  212. package/dist/{Switch-B6bKmpwN.js.map → Switch-DibokoJL.js.map} +1 -1
  213. package/dist/Switch.js +1 -1
  214. package/dist/{Tab-CIY6BO2e.js → Tab-FOIali7o.js} +4 -4
  215. package/dist/{Tab-CIY6BO2e.js.map → Tab-FOIali7o.js.map} +1 -1
  216. package/dist/Tab.js +1 -1
  217. package/dist/Table.js +1 -1
  218. package/dist/{Text-w2gWn4K6.js → Text-BTCfqeSr.js} +3 -3
  219. package/dist/{Text-w2gWn4K6.js.map → Text-BTCfqeSr.js.map} +1 -1
  220. package/dist/Text.js +1 -1
  221. package/dist/{TextField-BQsCh5Nb.js → TextField-CqJ9s4SG.js} +2 -2
  222. package/dist/{TextField-BQsCh5Nb.js.map → TextField-CqJ9s4SG.js.map} +1 -1
  223. package/dist/{TextField-DJ3gEIP6.js → TextField-KZkRXCbH.js} +8 -6
  224. package/dist/TextField-KZkRXCbH.js.map +1 -0
  225. package/dist/TextField.css +24 -22
  226. package/dist/TextField.js +1 -1
  227. package/dist/TextField.module-DklyLNKz.js +25 -0
  228. package/dist/TextField.module-DklyLNKz.js.map +1 -0
  229. package/dist/{Textarea-BK4Vf84K.js → Textarea-DlvbIRKO.js} +4 -4
  230. package/dist/{Textarea-BK4Vf84K.js.map → Textarea-DlvbIRKO.js.map} +1 -1
  231. package/dist/Textarea.js +1 -1
  232. package/dist/{ThemeProvider-BC6wbuLU.js → ThemeProvider-Sd8LK0A9.js} +3 -3
  233. package/dist/{ThemeProvider-BC6wbuLU.js.map → ThemeProvider-Sd8LK0A9.js.map} +1 -1
  234. package/dist/ThemeProvider.css +16 -4
  235. package/dist/ThemeProvider.js +1 -1
  236. package/dist/ThemeProvider.module-_7m6Tav-.js +8 -0
  237. package/dist/ThemeProvider.module-_7m6Tav-.js.map +1 -0
  238. package/dist/{TimeField-B4IW2B_o.js → TimeField-bdJArRXM.js} +6 -6
  239. package/dist/{TimeField-B4IW2B_o.js.map → TimeField-bdJArRXM.js.map} +1 -1
  240. package/dist/TimeField.js +1 -1
  241. package/dist/Toast.js +2 -2
  242. package/dist/{Toaster-DTF9qnTy.js → Toaster-DW9Bx-5k.js} +2 -2
  243. package/dist/{Toaster-DTF9qnTy.js.map → Toaster-DW9Bx-5k.js.map} +1 -1
  244. package/dist/{Toaster-BGY2IzF5.js → Toaster-De3dmRbW.js} +6 -6
  245. package/dist/{Toaster-BGY2IzF5.js.map → Toaster-De3dmRbW.js.map} +1 -1
  246. package/dist/{Toolbar-DObrJ_S5.js → Toolbar-DksrjUsE.js} +9 -9
  247. package/dist/{Toolbar-DObrJ_S5.js.map → Toolbar-DksrjUsE.js.map} +1 -1
  248. package/dist/{Toolbar-DRJGKk8D.js → Toolbar-j9Y2YleC.js} +11 -11
  249. package/dist/{Toolbar-DRJGKk8D.js.map → Toolbar-j9Y2YleC.js.map} +1 -1
  250. package/dist/Toolbar.js +2 -2
  251. package/dist/{ToolbarButtonToggle-BCKgA8FE.js → ToolbarButtonToggle-CywNpsGX.js} +3 -3
  252. package/dist/{ToolbarButtonToggle-BCKgA8FE.js.map → ToolbarButtonToggle-CywNpsGX.js.map} +1 -1
  253. package/dist/{Tooltip-DqS6xDUf.js → Tooltip-BC8lnFhe.js} +4 -4
  254. package/dist/{Tooltip-DqS6xDUf.js.map → Tooltip-BC8lnFhe.js.map} +1 -1
  255. package/dist/Tooltip.js +1 -1
  256. package/dist/TreeSelectField.js +1 -1
  257. package/dist/{TreeSelectFieldSync-Do5ffU0b.js → TreeSelectFieldSync-CB1H4ZTC.js} +14 -9
  258. package/dist/TreeSelectFieldSync-CB1H4ZTC.js.map +1 -0
  259. package/dist/TreeSelectMenu.js +1 -1
  260. package/dist/{TreeSelectMenuSync-s05Ly6lj.js → TreeSelectMenuSync-D4l3zik4.js} +5 -5
  261. package/dist/{TreeSelectMenuSync-s05Ly6lj.js.map → TreeSelectMenuSync-D4l3zik4.js.map} +1 -1
  262. package/dist/TypeaheadTextField-BJrrlLjP.js +319 -0
  263. package/dist/TypeaheadTextField-BJrrlLjP.js.map +1 -0
  264. package/dist/TypeaheadTextField.css +16 -0
  265. package/dist/TypeaheadTextField.d.ts +1 -0
  266. package/dist/TypeaheadTextField.js +2 -0
  267. package/dist/TypeaheadTextField.js.map +1 -0
  268. package/dist/{YearlessDateInputWithPicker-BHfFjCqE.js → YearlessDateInputWithPicker-BmRkNzK0.js} +6 -6
  269. package/dist/{YearlessDateInputWithPicker-BHfFjCqE.js.map → YearlessDateInputWithPicker-BmRkNzK0.js.map} +1 -1
  270. package/dist/beta.js +17 -16
  271. package/dist/beta.js.map +1 -1
  272. package/dist/{filter-state-CE8t3-Q7.js → filter-state-C-4lebJG.js} +23 -23
  273. package/dist/{filter-state-CE8t3-Q7.js.map → filter-state-C-4lebJG.js.map} +1 -1
  274. package/dist/{floating-ui.react-dom-BIKT960u.js → floating-ui.react-dom-CyrxPiI-.js} +2 -2
  275. package/dist/{floating-ui.react-dom-BIKT960u.js.map → floating-ui.react-dom-CyrxPiI-.js.map} +1 -1
  276. package/dist/{index-CKdC7x1S.js → index-iTige6rD.js} +2 -2
  277. package/dist/{index-CKdC7x1S.js.map → index-iTige6rD.js.map} +1 -1
  278. package/dist/{index-DN_iqxhF.js → index-mKaF0gwp.js} +2 -2
  279. package/dist/{index-DN_iqxhF.js.map → index-mKaF0gwp.js.map} +1 -1
  280. package/dist/index.js +65 -65
  281. package/dist/{portalScopeClassNames-jlZkdug_.js → portalScopeClassNames-BTyv0FY8.js} +2 -2
  282. package/dist/{portalScopeClassNames-jlZkdug_.js.map → portalScopeClassNames-BTyv0FY8.js.map} +1 -1
  283. package/dist/{primitive-DXlHdTFb.js → primitive-BXgYQTTw.js} +61 -1
  284. package/dist/{primitive-DXlHdTFb.js.map → primitive-BXgYQTTw.js.map} +1 -1
  285. package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  286. package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +3 -1
  287. package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  288. package/dist/src/beta/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +2 -1
  289. package/dist/src/beta/components/MultiSelectField/internal/types.d.ts +1 -0
  290. package/dist/src/beta/components/MultiSelectField/types.d.ts +5 -0
  291. package/dist/src/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  292. package/dist/src/beta/components/SelectField/internal/SelectFieldInput.d.ts +3 -1
  293. package/dist/src/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  294. package/dist/src/beta/components/SelectField/internal/SelectFieldTrigger.d.ts +2 -1
  295. package/dist/src/beta/components/SelectField/types.d.ts +5 -0
  296. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +20 -0
  297. package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickContext.d.ts +10 -0
  298. package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickProvider.d.ts +19 -0
  299. package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/useDataTableRowClick.d.ts +1 -0
  300. package/dist/src/beta/components/Table/internal/TruncateChips.d.ts +5 -15
  301. package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +1 -0
  302. package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +4 -1
  303. package/dist/src/beta/components/TreeSelectField/types.d.ts +15 -0
  304. package/dist/src/beta/components/TypeaheadTextField/TypeaheadTextField.d.ts +67 -0
  305. package/dist/src/beta/components/TypeaheadTextField/index.d.ts +1 -0
  306. package/dist/src/beta/components/TypeaheadTextField/internal/SuggestionItem.d.ts +29 -0
  307. package/dist/src/beta/components/index.d.ts +1 -0
  308. package/dist/src/components/NumberField/NumberField.d.ts +10 -0
  309. package/dist/src/components/Page/Page.d.ts +2 -2
  310. package/dist/src/components/Page/pageBreakpoint.d.ts +26 -0
  311. package/dist/src/components/TextField/internal/TextField.d.ts +5 -0
  312. package/dist/src/integration-testing/page-resize-loop.spec.d.ts +1 -0
  313. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +1 -0
  314. package/dist/{stripInlineMarkdown-C0bVmYgG.js → stripInlineMarkdown-CQCRopqY.js} +2 -2
  315. package/dist/{stripInlineMarkdown-C0bVmYgG.js.map → stripInlineMarkdown-CQCRopqY.js.map} +1 -1
  316. package/dist/{syncFilterUtils-CgHB-l6A.js → syncFilterUtils-JUsufAHA.js} +7 -36
  317. package/dist/syncFilterUtils-JUsufAHA.js.map +1 -0
  318. package/dist/token/core/primitive-variables.scss +12 -0
  319. package/dist/token/core/primitive.d.ts +12 -0
  320. package/dist/token/core/primitive.js +48 -0
  321. package/dist/token/core/primitive.scss +12 -0
  322. package/dist/token.js +1 -1
  323. package/dist/{treeSync-Cz3H08cr.js → treeSync-CXMjwQ4X.js} +4 -4
  324. package/dist/{treeSync-Cz3H08cr.js.map → treeSync-CXMjwQ4X.js.map} +1 -1
  325. package/dist/{useAdaptiveView-CeYKH0Me.js → useAdaptiveView-BdzXyicd.js} +10 -10
  326. package/dist/{useAdaptiveView-CeYKH0Me.js.map → useAdaptiveView-BdzXyicd.js.map} +1 -1
  327. package/dist/{useBreakpoint-CeaUyHxh.js → useBreakpoint-BBNRlMGZ.js} +2 -2
  328. package/dist/{useBreakpoint-CeaUyHxh.js.map → useBreakpoint-BBNRlMGZ.js.map} +1 -1
  329. package/dist/useBreakpoint.js +1 -1
  330. package/dist/useDebouncedCallback-DLkapjcP.js +33 -0
  331. package/dist/useDebouncedCallback-DLkapjcP.js.map +1 -0
  332. package/dist/{useDrilldown-BJ2dHHKV.js → useDrilldown-CWNTo5uR.js} +4 -4
  333. package/dist/{useDrilldown-BJ2dHHKV.js.map → useDrilldown-CWNTo5uR.js.map} +1 -1
  334. package/dist/{useInfiniteCombobox-BqJm-CdN.js → useInfiniteCombobox-D6FRVziM.js} +9 -9
  335. package/dist/{useInfiniteCombobox-BqJm-CdN.js.map → useInfiniteCombobox-D6FRVziM.js.map} +1 -1
  336. package/dist/{useLayoutPropsUtil-CB_zHDbW.js → useLayoutPropsUtil-DjqeAJZ9.js} +3 -3
  337. package/dist/{useLayoutPropsUtil-CB_zHDbW.js.map → useLayoutPropsUtil-DjqeAJZ9.js.map} +1 -1
  338. package/dist/{useToggleSelection-BGc5OiZF.js → useToggleSelection-a18uaSE7.js} +2 -2
  339. package/dist/{useToggleSelection-BGc5OiZF.js.map → useToggleSelection-a18uaSE7.js.map} +1 -1
  340. package/package.json +2 -2
  341. package/dist/DataTable-FG0Kjx0d.js.map +0 -1
  342. package/dist/MultiSelectFieldSync-CzHj9Qvy.js.map +0 -1
  343. package/dist/NumberField-bgYX7JGs.js.map +0 -1
  344. package/dist/Page-BSHydn4p.js.map +0 -1
  345. package/dist/SelectFieldSync-C65VFWGm.js.map +0 -1
  346. package/dist/SelectTriggerBase.module-DsPvTQE7.js +0 -37
  347. package/dist/SelectTriggerBase.module-DsPvTQE7.js.map +0 -1
  348. package/dist/TextField-DJ3gEIP6.js.map +0 -1
  349. package/dist/TextField.module-C8FsjTpx.js +0 -23
  350. package/dist/TextField.module-C8FsjTpx.js.map +0 -1
  351. package/dist/ThemeProvider.module-D9pNGYjP.js +0 -8
  352. package/dist/ThemeProvider.module-D9pNGYjP.js.map +0 -1
  353. package/dist/TreeSelectFieldSync-Do5ffU0b.js.map +0 -1
  354. package/dist/syncFilterUtils-CgHB-l6A.js.map +0 -1
@@ -1,20 +1,20 @@
1
- .anvil2 {/* BASE */._combobox_1mlsg_2 {
1
+ .anvil2 {/* BASE */._combobox_184hn_2 {
2
2
  min-width: 8rem;
3
3
  position: relative;
4
- }._search-field_1mlsg_7 {
4
+ }._search-field_184hn_7 {
5
5
  flex-direction: column;
6
6
  font-size: var(--a2-typography-paragraph-size-default, var(--a2-font-size-400, 1rem));
7
7
  gap: var(--a2-size-2, 0.5rem);
8
- }._search-field_1mlsg_7._select_1mlsg_13 {
8
+ }._search-field_184hn_7._select_184hn_13 {
9
9
  cursor: pointer;
10
- }._popover-content_1mlsg_17 ._search-field_1mlsg_7 {
10
+ }._popover-content_184hn_17 ._search-field_184hn_7 {
11
11
  border-block-end: var(--a2-size-quarter, 0.0625rem) solid var(--a2-border-color-default, light-dark(var(--a2-color-neutral-400, #8b8b8b), var(--a2-color-neutral-600, #545454)));
12
12
  margin-block-end: var(--a2-size-4, 1rem);
13
13
  padding-block-end: var(--a2-size-6, 1.5rem);
14
14
  padding-block-start: var(--a2-size-2, 0.5rem);
15
15
  padding-inline-end: var(--a2-size-2, 0.5rem);
16
16
  padding-inline-start: var(--a2-size-2, 0.5rem);
17
- }._input-wrapper_1mlsg_26 {
17
+ }._input-wrapper_184hn_26 {
18
18
  --a2-mod-multi-select-field-input-height: calc(
19
19
  var(--a2-size-10, 2.5rem) - (var(--a2-border-width-default, var(--a2-size-quarter, 0.0625rem)) * 2)
20
20
  );
@@ -38,30 +38,32 @@
38
38
  padding-inline-end: var(--a2-mod-multi-select-field-input-padding-inline-end);
39
39
  padding-inline-start: var(--a2-size-3, 0.75rem);
40
40
  position: relative;
41
- }._input-wrapper_1mlsg_26:focus:not([disabled]), ._input-wrapper_1mlsg_26:focus-visible, ._input-wrapper_1mlsg_26:has(._input_1mlsg_26:focus-visible) {
41
+ }._input-wrapper_184hn_26:focus:not([disabled]), ._input-wrapper_184hn_26:focus-visible, ._input-wrapper_184hn_26:has(._input_184hn_26:focus-visible) {
42
42
  outline-width: var(--a2-size-half, 0.125rem);
43
- }._input-wrapper_1mlsg_26:has(._input_1mlsg_26._error_1mlsg_54) {
43
+ }._input-wrapper_184hn_26:has(._input_184hn_26._error_184hn_54) {
44
44
  border-color: var(--a2-border-color-danger, light-dark(var(--a2-color-red-600, #d62100), var(--a2-color-red-200, #ffac9e)));
45
- }._input-wrapper_1mlsg_26:focus:has(._input_1mlsg_26._error_1mlsg_54):not([disabled]), ._input-wrapper_1mlsg_26:focus-visible:has(._input_1mlsg_26._error_1mlsg_54), ._input-wrapper_1mlsg_26:has(._input_1mlsg_26._error_1mlsg_54:focus-visible) {
45
+ }._input-wrapper_184hn_26:focus:has(._input_184hn_26._error_184hn_54):not([disabled]), ._input-wrapper_184hn_26:focus-visible:has(._input_184hn_26._error_184hn_54), ._input-wrapper_184hn_26:has(._input_184hn_26._error_184hn_54:focus-visible) {
46
46
  outline-color: var(--a2-focus-ring-color-danger, var(--a2-status-color-danger, light-dark(var(--a2-color-red-600, #d62100), var(--a2-color-red-400, #ff5b3d))));
47
47
  outline-width: var(--a2-size-half, 0.125rem);
48
- }._input-wrapper_1mlsg_26._disabled_1mlsg_61, ._input-wrapper_1mlsg_26[disabled], ._input-wrapper_1mlsg_26:has(._input_1mlsg_26:disabled) {
48
+ }._input-wrapper_184hn_26._disabled_184hn_61, ._input-wrapper_184hn_26[disabled], ._input-wrapper_184hn_26:has(._input_184hn_26:disabled) {
49
49
  opacity: 0.4;
50
- }._input-wrapper_1mlsg_26._disabled_1mlsg_61 *, ._input-wrapper_1mlsg_26[disabled] *, ._input-wrapper_1mlsg_26:has(._input_1mlsg_26:disabled) * {
50
+ }._input-wrapper_184hn_26._disabled_184hn_61 *, ._input-wrapper_184hn_26[disabled] *, ._input-wrapper_184hn_26:has(._input_184hn_26:disabled) * {
51
51
  cursor: not-allowed;
52
- }._input-wrapper_1mlsg_26:has(input._input_1mlsg_26:-moz-read-only) {
52
+ }._input-wrapper_184hn_26:has(input._input_184hn_26:-moz-read-only) {
53
53
  background-color: var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
54
- }._input-wrapper_1mlsg_26[disabled], ._input-wrapper_1mlsg_26[readonly], ._input-wrapper_1mlsg_26._disabled_1mlsg_61, ._input-wrapper_1mlsg_26:has(input._input_1mlsg_26:read-only) {
54
+ }._input-wrapper_184hn_26[disabled], ._input-wrapper_184hn_26[readonly], ._input-wrapper_184hn_26._disabled_184hn_61, ._input-wrapper_184hn_26:has(input._input_184hn_26:read-only) {
55
55
  background-color: var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
56
- }._input-flex_1mlsg_71 {
56
+ }._input-wrapper_184hn_26._highlight_184hn_70 {
57
+ background-color: var(--a2-background-color-primary-subdued, light-dark(var(--a2-color-blue-50, #e6f1ff), color-mix(in srgb, var(--a2-color-blue-300, #70b1ff) 20%, transparent)));
58
+ }._input-flex_184hn_74 {
57
59
  flex: 1 1 100px;
58
60
  min-width: 100px;
59
61
  overflow: hidden;
60
62
  text-overflow: ellipsis;
61
63
  white-space: nowrap;
62
64
  width: 0;
63
- }._input_1mlsg_26,
64
- ._input_1mlsg_26[type] {
65
+ }._input_184hn_26,
66
+ ._input_184hn_26[type] {
65
67
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
66
68
  font-size: 100%;
67
69
  color: inherit;
@@ -83,29 +85,29 @@
83
85
  padding-inline: 0;
84
86
  transition: outline var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
85
87
  width: 100px;
86
- }._input_1mlsg_26:focus,
87
- ._input_1mlsg_26[type]:focus {
88
+ }._input_184hn_26:focus,
89
+ ._input_184hn_26[type]:focus {
88
90
  box-shadow: none;
89
- }._input_1mlsg_26::-moz-placeholder, ._input_1mlsg_26[type]::-moz-placeholder {
91
+ }._input_184hn_26::-moz-placeholder, ._input_184hn_26[type]::-moz-placeholder {
90
92
  color: var(--a2-foreground-color-subdued, light-dark(var(--a2-color-neutral-500, #707070), var(--a2-color-neutral-200, #c4c4c4)));
91
- }._input_1mlsg_26::placeholder,
92
- ._input_1mlsg_26[type]::placeholder {
93
+ }._input_184hn_26::placeholder,
94
+ ._input_184hn_26[type]::placeholder {
93
95
  color: var(--a2-foreground-color-subdued, light-dark(var(--a2-color-neutral-500, #707070), var(--a2-color-neutral-200, #c4c4c4)));
94
- }._input_1mlsg_26:focus-visible,
95
- ._input_1mlsg_26[type]:focus-visible {
96
+ }._input_184hn_26:focus-visible,
97
+ ._input_184hn_26[type]:focus-visible {
96
98
  box-shadow: none;
97
99
  outline: none;
98
100
  }@media (prefers-reduced-motion: reduce) {
99
- ._input_1mlsg_26,
100
- ._input_1mlsg_26[type] {
101
+ ._input_184hn_26,
102
+ ._input_184hn_26[type] {
101
103
  transition-duration: 0.01ms !important;
102
104
  transition-property: outline;
103
105
  }
104
- }input._input_1mlsg_26:-moz-read-only {
106
+ }input._input_184hn_26:-moz-read-only {
105
107
  background-color: var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
106
- }input._input_1mlsg_26:read-only {
108
+ }input._input_184hn_26:read-only {
107
109
  background-color: var(--a2-background-color-strong, light-dark(var(--a2-color-neutral-20, #f9f9f9), var(--a2-color-neutral-800, #292929)));
108
- }._rows-wrapper_1mlsg_129 {
110
+ }._rows-wrapper_184hn_132 {
109
111
  align-items: stretch;
110
112
  display: flex;
111
113
  flex-direction: row;
@@ -114,15 +116,15 @@
114
116
  gap: 0 var(--a2-size-2, 0.5rem);
115
117
  max-width: 100%;
116
118
  width: 100%;
117
- }._chip-wrapper_1mlsg_140 {
119
+ }._chip-wrapper_184hn_143 {
118
120
  align-items: center;
119
121
  display: flex;
120
122
  height: var(--a2-mod-multi-select-field-input-height);
121
123
  justify-content: center;
122
124
  max-width: 100%;
123
- }._chip_1mlsg_140 {
125
+ }._chip_184hn_143 {
124
126
  --a2-mod-chip-max-width: 100%;
125
- }._buttons-wrapper_1mlsg_152 {
127
+ }._buttons-wrapper_184hn_155 {
126
128
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
127
129
  font-size: 100%;
128
130
  color: inherit;
@@ -137,7 +139,7 @@
137
139
  inset-block-start: 0;
138
140
  inset-inline-end: 0;
139
141
  position: absolute;
140
- }._close-button-wrapper_1mlsg_169 {
142
+ }._close-button-wrapper_184hn_172 {
141
143
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
142
144
  font-size: 100%;
143
145
  color: inherit;
@@ -151,11 +153,11 @@
151
153
  align-items: center;
152
154
  cursor: pointer;
153
155
  display: flex;
154
- }._close-button_1mlsg_169 {
156
+ }._close-button_184hn_172 {
155
157
  --a2-mod-button-background-color: transparent;
156
- }._close-button_1mlsg_169[data-interactive=hover]::before, ._close-button_1mlsg_169:hover::before, ._close-button_1mlsg_169:disabled:not(._loading-infinite_1mlsg_188, ._loading-progress_1mlsg_188), ._close-button_1mlsg_169._disabled_1mlsg_61:not(._loading-infinite_1mlsg_188, ._loading-progress_1mlsg_188), ._close-button_1mlsg_169[aria-disabled=true]:not(._loading-infinite_1mlsg_188, ._loading-progress_1mlsg_188) {
158
+ }._close-button_184hn_172[data-interactive=hover]::before, ._close-button_184hn_172:hover::before, ._close-button_184hn_172:disabled:not(._loading-infinite_184hn_191, ._loading-progress_184hn_191), ._close-button_184hn_172._disabled_184hn_61:not(._loading-infinite_184hn_191, ._loading-progress_184hn_191), ._close-button_184hn_172[aria-disabled=true]:not(._loading-infinite_184hn_191, ._loading-progress_184hn_191) {
157
159
  --a2-mod-button-background-color: transparent;
158
- }._toggle-button-wrapper_1mlsg_192 {
160
+ }._toggle-button-wrapper_184hn_195 {
159
161
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
160
162
  font-size: 100%;
161
163
  color: inherit;
@@ -169,23 +171,23 @@
169
171
  align-items: center;
170
172
  cursor: pointer;
171
173
  display: flex;
172
- }._toggle-button_1mlsg_192 {
174
+ }._toggle-button_184hn_195 {
173
175
  --a2-mod-button-background-color: transparent;
174
176
  --a2-mod-button-foreground-color: var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff)));
175
177
  transform: rotate(90deg);
176
178
  transition: transform var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
177
- }._toggle-button_1mlsg_192[aria-expanded=true] {
179
+ }._toggle-button_184hn_195[aria-expanded=true] {
178
180
  transform: rotate(270deg);
179
- }._toggle-button_1mlsg_192[data-interactive=hover]::before, ._toggle-button_1mlsg_192:hover::before, ._toggle-button_1mlsg_192:disabled:not(._loading-infinite_1mlsg_188, ._loading-progress_1mlsg_188), ._toggle-button_1mlsg_192._disabled_1mlsg_61:not(._loading-infinite_1mlsg_188, ._loading-progress_1mlsg_188), ._toggle-button_1mlsg_192[aria-disabled=true]:not(._loading-infinite_1mlsg_188, ._loading-progress_1mlsg_188) {
181
+ }._toggle-button_184hn_195[data-interactive=hover]::before, ._toggle-button_184hn_195:hover::before, ._toggle-button_184hn_195:disabled:not(._loading-infinite_184hn_191, ._loading-progress_184hn_191), ._toggle-button_184hn_195._disabled_184hn_61:not(._loading-infinite_184hn_191, ._loading-progress_184hn_191), ._toggle-button_184hn_195[aria-disabled=true]:not(._loading-infinite_184hn_191, ._loading-progress_184hn_191) {
180
182
  --a2-mod-button-background-color: transparent;
181
183
  }@media (prefers-reduced-motion: reduce) {
182
- ._toggle-button_1mlsg_192 {
184
+ ._toggle-button_184hn_195 {
183
185
  transition-duration: 0.01ms !important;
184
186
  }
185
- }[aria-expanded=true] ._toggle-button-wrapper_1mlsg_192 ._toggle-button_1mlsg_192 {
187
+ }[aria-expanded=true] ._toggle-button-wrapper_184hn_195 ._toggle-button_184hn_195 {
186
188
  transform: rotate(270deg);
187
- }._prefix_1mlsg_230,
188
- ._suffix_1mlsg_231 {
189
+ }._prefix_184hn_233,
190
+ ._suffix_184hn_234 {
189
191
  font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
190
192
  font-size: 100%;
191
193
  color: var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff)));
@@ -201,27 +203,27 @@
201
203
  font-weight: var(--a2-font-weight-semibold, 600);
202
204
  justify-content: center;
203
205
  min-width: var(--a2-size-8, 2rem);
204
- }._prefix_1mlsg_230 {
206
+ }._prefix_184hn_233 {
205
207
  padding-inline-end: var(--a2-size-2, 0.5rem);
206
- }._suffix_1mlsg_231 {
208
+ }._suffix_184hn_234 {
207
209
  padding-inline-end: var(--a2-size-2, 0.5rem);
208
210
  padding-inline-start: var(--a2-size-2, 0.5rem);
209
- }._popover-content_1mlsg_17 {
211
+ }._popover-content_184hn_17 {
210
212
  display: flex;
211
213
  flex-direction: column;
212
214
  overflow: hidden;
213
- }._listview_1mlsg_264 {
215
+ }._listview_184hn_267 {
214
216
  padding-block: var(--a2-size-2, 0.5rem);
215
217
  padding-inline: var(--a2-size-2, 0.5rem);
216
- }._loading-spinner_1mlsg_269 {
218
+ }._loading-spinner_184hn_272 {
217
219
  height: var(--a2-size-6, 1.5rem);
218
220
  width: var(--a2-size-6, 1.5rem);
219
- }._empty_1mlsg_274 {
221
+ }._empty_184hn_277 {
220
222
  padding-block-end: var(--a2-size-4, 1rem);
221
223
  padding-block-start: var(--a2-size-3, 0.75rem);
222
224
  padding-inline-end: var(--a2-size-6, 1.5rem);
223
225
  padding-inline-start: var(--a2-size-6, 1.5rem);
224
- }._item_1mlsg_281 {
226
+ }._item_184hn_284 {
225
227
  --a2-mod-multi-select-field-item-background-color: transparent;
226
228
  --a2-mod-multi-select-field-item-color: var(--a2-foreground-color-default, light-dark(var(--a2-color-neutral-950, #040404), var(--a2-color-neutral-0, #ffffff)));
227
229
  background-color: var(--a2-mod-multi-select-field-item-background-color);
@@ -235,37 +237,37 @@
235
237
  padding-block: var(--a2-size-2, 0.5rem);
236
238
  padding-inline: var(--a2-size-4, 1rem);
237
239
  position: relative;
238
- }/* MODIFIERS */._no-clear-button_1mlsg_298 {
240
+ }/* MODIFIERS */._no-clear-button_184hn_301 {
239
241
  --a2-mod-multi-select-field-input-padding-inline-end: var(--a2-size-8, 2rem);
240
- }._no-toggle-button_1mlsg_302 {
242
+ }._no-toggle-button_184hn_305 {
241
243
  --a2-mod-multi-select-field-input-padding-inline-end: var(--a2-size-8, 2rem);
242
- }._small_1mlsg_306 {
244
+ }._small_184hn_309 {
243
245
  --a2-mod-multi-select-field-input-height: calc(
244
246
  var(--a2-size-8, 2rem) - (var(--a2-border-width-default, var(--a2-size-quarter, 0.0625rem)) * 2)
245
247
  );
246
- }._large_1mlsg_312 {
248
+ }._large_184hn_315 {
247
249
  --a2-mod-multi-select-field-input-height: calc(
248
250
  var(--a2-size-12, 3rem) - (var(--a2-border-width-default, var(--a2-size-quarter, 0.0625rem)) * 2)
249
251
  );
250
- }._listview-option_1mlsg_318:not([aria-disabled=true]) {
252
+ }._listview-option_184hn_321:not([aria-disabled=true]) {
251
253
  cursor: pointer;
252
- }._listview-option_1mlsg_318[aria-selected=true]:not([aria-disabled=true]) {
254
+ }._listview-option_184hn_321[aria-selected=true]:not([aria-disabled=true]) {
253
255
  --a2-mod-multi-select-field-item-background-color: var(--a2-background-color-transparent-default-hover, light-dark(color-mix(in srgb, var(--a2-color-neutral-400, #8b8b8b) 8%, transparent), color-mix(in srgb, var(--a2-color-neutral-0, #ffffff) 8%, transparent)));
254
- }._item_1mlsg_281[data-interactive=hover]:not([aria-disabled=true]),
255
- ._item_1mlsg_281:hover:not([aria-disabled=true]),
256
- ._item_1mlsg_281[aria-selected=true]:not([aria-disabled=true]) {
256
+ }._item_184hn_284[data-interactive=hover]:not([aria-disabled=true]),
257
+ ._item_184hn_284:hover:not([aria-disabled=true]),
258
+ ._item_184hn_284[aria-selected=true]:not([aria-disabled=true]) {
257
259
  --a2-mod-multi-select-field-item-background-color: var(--a2-background-color-transparent-default-hover, light-dark(color-mix(in srgb, var(--a2-color-neutral-400, #8b8b8b) 8%, transparent), color-mix(in srgb, var(--a2-color-neutral-0, #ffffff) 8%, transparent)));
258
- }._item_1mlsg_281[aria-disabled=true] {
260
+ }._item_184hn_284[aria-disabled=true] {
259
261
  cursor: not-allowed;
260
262
  opacity: 0.6;
261
- }._item_1mlsg_281[data-checked=true] {
263
+ }._item_184hn_284[data-checked=true] {
262
264
  --a2-mod-multi-select-field-item-background-color: var(--a2-background-color-primary-subdued, light-dark(var(--a2-color-blue-50, #e6f1ff), color-mix(in srgb, var(--a2-color-blue-300, #70b1ff) 20%, transparent)));
263
265
  --a2-mod-multi-select-field-item-color: var(--a2-foreground-color-primary, light-dark(var(--a2-color-blue-600, #0265dc), var(--a2-color-blue-300, #70b1ff)));
264
- }._item_1mlsg_281[data-checked=true]:hover:not([aria-disabled=true]),
265
- ._item_1mlsg_281[data-checked=true][aria-selected=true]:not([aria-disabled=true]),
266
- ._item_1mlsg_281[data-checked=true][data-interactive=hover]:not([aria-disabled=true]) {
266
+ }._item_184hn_284[data-checked=true]:hover:not([aria-disabled=true]),
267
+ ._item_184hn_284[data-checked=true][aria-selected=true]:not([aria-disabled=true]),
268
+ ._item_184hn_284[data-checked=true][data-interactive=hover]:not([aria-disabled=true]) {
267
269
  --a2-mod-multi-select-field-item-background-color: var(--a2-background-color-primary-subdued-hover, light-dark(var(--a2-color-blue-100, #cce3ff), color-mix(in srgb, var(--a2-color-blue-300, #70b1ff) 30%, transparent)));
268
- }._item_1mlsg_281[data-checked=true]:active:not([aria-disabled=true]) {
270
+ }._item_184hn_284[data-checked=true]:active:not([aria-disabled=true]) {
269
271
  --a2-mod-multi-select-field-item-background-color: var(--a2-background-color-primary-subdued-active, light-dark(var(--a2-color-blue-200, #9ecaff), color-mix(in srgb, var(--a2-color-blue-300, #70b1ff) 40%, transparent)));
270
272
  }
271
273
  }
@@ -1,2 +1,2 @@
1
- export { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-BGcrYjby.js';
1
+ export { M as MultiSelectMenu, a as MultiSelectMenuSync } from './MultiSelectMenuSync-LD931FAV.js';
2
2
  //# sourceMappingURL=MultiSelectMenu.js.map
@@ -1,12 +1,13 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { forwardRef, useRef, useId, useMemo, useEffect, useState, useCallback } from 'react';
3
- import { u as useBulkActionRunner, a as useToggleSelection, M as MultiSelectOptions } from './useToggleSelection-BGc5OiZF.js';
4
- import { O as OptionsDialog, a as OptionsPopover } from './useAdaptiveView-CeYKH0Me.js';
5
- import { u as useSelectOrchestration, a as useProcessedOptions, b as buildSelectItems, c as useDebouncedCallback, A as AddNewItemButton, d as defaultSyncFilter, t as toSyncFilterFn } from './syncFilterUtils-CgHB-l6A.js';
6
- import { M as MenuFooter } from './MenuFooter-CrsZdXvN.js';
3
+ import { u as useBulkActionRunner, a as useToggleSelection, M as MultiSelectOptions } from './useToggleSelection-a18uaSE7.js';
4
+ import { O as OptionsDialog, a as OptionsPopover } from './useAdaptiveView-BdzXyicd.js';
5
+ import { u as useSelectOrchestration, a as useProcessedOptions, b as buildSelectItems, A as AddNewItemButton, d as defaultSyncFilter, t as toSyncFilterFn } from './syncFilterUtils-JUsufAHA.js';
6
+ import { M as MenuFooter } from './MenuFooter-Dtckm9vY.js';
7
7
  import { u as useMenuInteraction } from './useMenuInteraction-NEJXUD4I.js';
8
8
  import { r as resolveConfirmation, u as useConfirmationDraft, a as arrayIdsEqual } from './confirmationTypes-CG7xl50f.js';
9
- import { S as SearchField } from './SearchField-BMHJCVFu.js';
9
+ import { u as useDebouncedCallback } from './useDebouncedCallback-DLkapjcP.js';
10
+ import { S as SearchField } from './SearchField-BfOMhmIc.js';
10
11
  import { w as warnOnce } from './warnOnce-Y9PRHcU4.js';
11
12
 
12
13
  const MultiSelectMenu = forwardRef((props, ref) => {
@@ -566,4 +567,4 @@ const MultiSelectMenuSync = (props) => {
566
567
  };
567
568
 
568
569
  export { MultiSelectMenu as M, MultiSelectMenuSync as a };
569
- //# sourceMappingURL=MultiSelectMenuSync-BGcrYjby.js.map
570
+ //# sourceMappingURL=MultiSelectMenuSync-LD931FAV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSelectMenuSync-BGcrYjby.js","sources":["../src/beta/components/MultiSelectMenu/MultiSelectMenu.tsx","../src/beta/components/MultiSelectMenu/MultiSelectMenuSync.tsx"],"sourcesContent":["import {\n MultiSelectMenuHandle,\n MultiSelectMenuOption,\n MultiSelectMenuProps,\n} from \"./types\";\nimport {\n ChangeEvent,\n KeyboardEvent,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { warnOnce } from \"../../../internal/functions\";\nimport { CheckState } from \"../../../types\";\nimport { MultiSelectOptions } from \"../../../internal/components/MultiSelectOptions\";\nimport { useDebouncedCallback } from \"../../../internal/hooks/useDebouncedCallback\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { AddNewItemButton } from \"../../../internal/components/AddNewItemButton\";\nimport { MenuFooter } from \"../../../internal/components/MenuFooter/MenuFooter\";\nimport { useProcessedOptions } from \"../../../internal/hooks/useProcessedOptions\";\nimport { buildSelectItems } from \"../../../internal/functions/buildSelectItems\";\nimport { useMenuInteraction } from \"../SelectMenu/internal/useMenuInteraction\";\nimport { useToggleSelection } from \"../../../internal/hooks/useToggleSelection\";\nimport { SelectItem } from \"../../../internal/types/selectFieldInternalTypes\";\nimport { useSelectOrchestration } from \"../../../internal/hooks/useSelectOrchestration\";\nimport { useConfirmationDraft } from \"../../../internal/hooks/useConfirmationDraft\";\nimport { useBulkActionRunner } from \"../../../internal/hooks/useBulkActionRunner\";\nimport { resolveConfirmation } from \"../../../internal/types/confirmationTypes\";\nimport { arrayIdsEqual } from \"../../../internal/utils/arrayIdsEqual\";\nimport { SearchField } from \"../../../components\";\n\n/**\n * MultiSelectMenu component for selecting multiple options from a dropdown triggered by any element.\n *\n * Features:\n * - Attaches to any trigger element via a render prop\n * - Multiple selection with checkbox indicators\n * - Optional search input rendered inside the popover/dialog\n * - Lazy loading with pagination (page, offset, or group modes)\n * - Optional \"Select All\" functionality\n * - Optional \"Select Filtered\" functionality\n * - Pinned options support\n * - Grouped options support\n * - Supports both popover and dialog display modes\n * - Adaptive display based on device (mobile uses dialog)\n * - Cache support for loadOptions results\n * - Full accessibility support with ARIA attributes\n * - Controlled selection state\n * - Configurable popover width\n * - Optional \"Add new item\" affordance below the option list with consumer-owned dialog\n * - Optional confirmation mode that buffers selection until Apply is clicked\n *\n * @example\n * <MultiSelectMenu\n * trigger={(props) => <Button {...props}>Select books</Button>}\n * label=\"Books\"\n * value={selectedOptions}\n * onSelectedOptionsChange={setSelectedOptions}\n * loadOptions={loadOptions}\n * />\n */\nexport const MultiSelectMenu = forwardRef<\n MultiSelectMenuHandle,\n MultiSelectMenuProps\n>((props, ref) => {\n const triggerRef = useRef<HTMLButtonElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n\n const {\n id: idProp,\n value: selectedOptions,\n initialLoad: initialLoadProp,\n displayMenuAs: displayMenuAsProp,\n lazy,\n loadOptions: loadOptionsProp,\n label,\n searchPlaceholder,\n debounceMs = 200,\n onSelectedOptionsChange,\n cache,\n pinned,\n selectAll: selectAllProp,\n selectFiltered: selectFilteredProp,\n virtualize,\n disableSearch,\n popoverWidth,\n trigger,\n onSearchChange,\n onMenuKeyDown,\n onImplicitClose,\n onExplicitClose,\n addItemLabel,\n onAddNewItem,\n confirmation: confirmationProp,\n clear,\n } = props;\n\n const confirmation = resolveConfirmation(confirmationProp);\n\n const groupToString =\n \"groupToString\" in props ? props.groupToString : undefined;\n const groupSorter = \"groupSorter\" in props ? props.groupSorter : undefined;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n\n if (disableSearch && selectFilteredProp) {\n warnOnce(\n \"MultiSelectMenu: `selectFiltered` has no effect when `disableSearch` is true because there is no search input to produce filtered results.\",\n );\n }\n\n const {\n displayAs,\n initialLoad,\n initialLoadPerformed,\n setInitialLoadPerformed,\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n } = useSelectOrchestration({\n lazy,\n loadOptions: loadOptionsProp,\n cache,\n lazyOptions: \"lazyOptions\" in props ? props.lazyOptions : undefined,\n initialLoad: initialLoadProp,\n displayMenuAs: displayMenuAsProp,\n ref,\n });\n\n const selectAll = useMemo(\n () =>\n selectAllProp\n ? {\n label: selectAllProp.label,\n onClick: selectAllProp.onClick,\n compute: selectAllProp.compute,\n checkState: (selectAllProp.checkState === true\n ? \"checked\"\n : selectAllProp.checkState === false\n ? \"unchecked\"\n : (selectAllProp.checkState ?? \"indeterminate\")) as CheckState,\n }\n : undefined,\n [selectAllProp],\n );\n\n const selectFiltered = useMemo(\n () =>\n selectFilteredProp\n ? (searchValue: string) => {\n const config = selectFilteredProp(searchValue);\n return {\n label: config.label,\n onClick: config.onClick,\n compute: config.compute,\n checkState: (config.checkState === true\n ? \"checked\"\n : config.checkState === false\n ? \"unchecked\"\n : (config.checkState ?? \"indeterminate\")) as CheckState,\n };\n }\n : undefined,\n [selectFilteredProp],\n );\n\n // Warn once if `selectAll` is configured with `onClick` while confirmation is\n // enabled — that combination bypasses the draft. `selectFiltered` is a\n // function whose returned shape is only known at activation, so its warning\n // lives at the call site (runBulkAction).\n useEffect(() => {\n if (!confirmation.enabled) return;\n if (selectAllProp && !selectAllProp.compute) {\n warnOnce(\n \"MultiSelectMenu: `selectAll.onClick` bypasses confirmation. \" +\n \"Use `selectAll.compute` to integrate the bulk action with the draft.\",\n );\n }\n }, [confirmation.enabled, selectAllProp]);\n\n const [inputValue, setInputValue] = useState(\"\");\n\n const searchValue = disableSearch ? \"\" : inputValue;\n\n const { pinnedSections, ungroupedItems, groupSections } = useProcessedOptions(\n {\n options,\n pinned,\n searchValue,\n groupToString,\n groupSorter,\n },\n );\n\n const [isOpen, setIsOpen] = useState(false);\n\n const {\n displayValue: draftSelectedOptions,\n setDraft,\n apply,\n cancel,\n } = useConfirmationDraft({\n value: selectedOptions,\n onCommit: onSelectedOptionsChange,\n isOpen,\n enabled: confirmation.enabled,\n isEqual: arrayIdsEqual,\n });\n\n const {\n pending: bulkPending,\n runBulk,\n setDraftAndBump,\n reset: resetBulk,\n } = useBulkActionRunner<MultiSelectMenuOption>({ setDraft });\n\n const { handleItemClick } = useToggleSelection({\n options,\n pinnedSections,\n selectedOptions: draftSelectedOptions,\n // Route per-option toggles through setDraftAndBump so that any in-flight\n // bulk-action promise's resolution is discarded if it arrives after this\n // click.\n onSelectedOptionsChange: setDraftAndBump,\n });\n\n // Run a bulk action against the current draft. If the config provides a\n // `compute` function we run it through the runner (which writes to the\n // draft, supports promises, and discards stale resolutions). If only\n // `onClick` is provided, fire it as-is — the consumer owns the commit.\n const runBulkAction = useCallback(\n (\n config: {\n onClick?: () => void;\n compute?: (\n current: MultiSelectMenuOption[],\n ) => MultiSelectMenuOption[] | Promise<MultiSelectMenuOption[]>;\n },\n kind: \"selectAll\" | \"selectFiltered\",\n ) => {\n if (config.compute) {\n runBulk(config.compute, draftSelectedOptions);\n } else if (config.onClick) {\n if (confirmation.enabled && kind === \"selectFiltered\") {\n warnOnce(\n \"MultiSelectMenu: `selectFiltered.onClick` bypasses confirmation. \" +\n \"Use `selectFiltered.compute` to integrate the bulk action with the draft.\",\n );\n }\n config.onClick();\n }\n },\n [runBulk, draftSelectedOptions, confirmation.enabled],\n );\n\n const bulkActionItems = useMemo(() => {\n const items: SelectItem[] = [];\n if (selectAll && !searchValue) {\n items.push({\n id: \"select-all\",\n type: \"select-all\",\n original: { id: \"select-all\", label: selectAll.label ?? \"Select All\" },\n checkState: bulkPending ? \"loading\" : selectAll.checkState,\n });\n }\n if (selectFiltered && searchValue && !loading) {\n const config = selectFiltered(searchValue);\n items.push({\n id: \"select-filtered\",\n type: \"select-filtered\",\n original: {\n id: \"select-filtered\",\n label: config.label ?? \"Select Filtered\",\n },\n checkState: bulkPending ? \"loading\" : config.checkState,\n });\n }\n return items;\n }, [selectAll, selectFiltered, searchValue, loading, bulkPending]);\n\n const { items, sectionsMeta } = useMemo(\n () =>\n buildSelectItems({\n prefixItems: bulkActionItems,\n pinnedSections,\n groupSections,\n ungroupedItems,\n }),\n [bulkActionItems, pinnedSections, groupSections, ungroupedItems],\n );\n\n const selectedItemIds = useMemo(\n () => new Set(draftSelectedOptions.map((o) => o.id)),\n [draftSelectedOptions],\n );\n\n const handleItemActivate = useCallback(\n (item: SelectItem) => {\n if (item.type === \"select-all\") {\n if (selectAll) runBulkAction(selectAll, \"selectAll\");\n } else if (item.type === \"select-filtered\" && selectFiltered) {\n runBulkAction(selectFiltered(searchValue), \"selectFiltered\");\n } else if (\n item.type === \"option\" ||\n item.type === \"pinned-option\" ||\n item.type === \"grouped-option\"\n ) {\n handleItemClick(item.original);\n }\n },\n [selectAll, selectFiltered, searchValue, handleItemClick, runBulkAction],\n );\n\n const pendingApplyRef = useRef(false);\n\n const {\n closeMenu,\n highlightedIndex,\n getTriggerProps,\n getMenuProps,\n getItemProps,\n listRef,\n menuContainerRef,\n handleKeyDown,\n } = useMenuInteraction({\n items: items,\n sectionsMeta,\n onItemActivate: handleItemActivate,\n selectedItemIds,\n displayAs,\n closeOnActivate: false,\n // While a bulk-action promise is pending, disable all rows.\n disabled: bulkPending,\n id,\n triggerRef,\n label,\n isOpen,\n setIsOpen,\n onImplicitClose: () => {\n if (confirmation.enabled && !pendingApplyRef.current) cancel();\n pendingApplyRef.current = false;\n resetBulk();\n onImplicitClose?.();\n },\n onExplicitClose: () => {\n if (confirmation.enabled && !pendingApplyRef.current) cancel();\n pendingApplyRef.current = false;\n resetBulk();\n onExplicitClose?.();\n },\n });\n\n const debouncedOptionLoader = useDebouncedCallback((value: string) => {\n loadOptions(value, { initial: true });\n }, debounceMs);\n\n const handleInputChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n setInputValue(value);\n debouncedOptionLoader(value);\n onSearchChange?.(value);\n },\n [debouncedOptionLoader, onSearchChange],\n );\n\n const handleInputKeyDown = useCallback(\n (e: KeyboardEvent) => {\n onMenuKeyDown?.(e);\n handleKeyDown(e);\n },\n [handleKeyDown, onMenuKeyDown],\n );\n\n const getMenuPropsWithKeyDown: typeof getMenuProps = useCallback(\n (opts) => {\n const menuProps = getMenuProps(opts);\n if (!onMenuKeyDown) return menuProps;\n return {\n ...menuProps,\n onKeyDown: (e: KeyboardEvent) => {\n onMenuKeyDown(e);\n menuProps.onKeyDown(e);\n },\n };\n },\n [getMenuProps, onMenuKeyDown],\n );\n\n useEffect(() => {\n const performInitialLoad = async () => {\n if (initialLoad === \"immediate\" && !initialLoadPerformed) {\n await loadOptions(\"\", { initial: true });\n setInitialLoadPerformed(true);\n }\n };\n performInitialLoad();\n }, [loadOptions, initialLoadPerformed, initialLoad, setInitialLoadPerformed]);\n\n const prevIsOpenRef = useRef(false);\n useEffect(() => {\n const wasOpen = prevIsOpenRef.current;\n prevIsOpenRef.current = isOpen;\n\n if (isOpen && !wasOpen) {\n if (initialLoad === \"open\" && !initialLoadPerformed) {\n loadOptions(\"\", { initial: true }).then(() => {\n setInitialLoadPerformed(true);\n });\n }\n }\n\n if (!isOpen && wasOpen) {\n setInputValue(\"\");\n loadOptions(\"\", { initial: true });\n }\n }, [\n isOpen,\n initialLoad,\n initialLoadPerformed,\n loadOptions,\n setInitialLoadPerformed,\n ]);\n\n useEffect(() => {\n if (!isOpen || displayAs !== \"popover\") return;\n\n const frameId = requestAnimationFrame(() => {\n if (!disableSearch) {\n searchRef.current?.focus();\n } else {\n menuContainerRef.current?.focus();\n }\n });\n\n return () => cancelAnimationFrame(frameId);\n }, [isOpen, displayAs, disableSearch, menuContainerRef]);\n\n const handleLoadMore = async () => {\n await loadMore(searchValue);\n };\n\n const handleClickOutside = useCallback(() => {\n closeMenu({ restoreFocus: false });\n }, [closeMenu]);\n\n const triggerProps = getTriggerProps();\n\n const menuPropsForAria = getMenuProps();\n const activeDescendant = menuPropsForAria[\"aria-activedescendant\"];\n\n const handleSearchClear = useCallback(() => {\n setInputValue(\"\");\n debouncedOptionLoader(\"\");\n onSearchChange?.(\"\");\n }, [debouncedOptionLoader, onSearchChange]);\n\n const handleApply = useCallback(() => {\n apply();\n pendingApplyRef.current = true;\n closeMenu();\n }, [apply, closeMenu]);\n\n const handleCancel = useCallback(() => {\n closeMenu();\n }, [closeMenu]);\n\n const searchInput = !disableSearch ? (\n <SearchField\n ref={searchRef}\n value={inputValue}\n onChange={handleInputChange as React.ChangeEventHandler<HTMLInputElement>}\n onKeyDown={\n handleInputKeyDown as React.KeyboardEventHandler<HTMLInputElement>\n }\n onClear={handleSearchClear}\n aria-activedescendant={activeDescendant}\n aria-controls={menuPropsForAria.id}\n placeholder={searchPlaceholder}\n type=\"search\"\n />\n ) : null;\n\n const addNewItemButton = onAddNewItem ? (\n <AddNewItemButton\n searchText={inputValue}\n addItemLabel={addItemLabel}\n onAddNewItem={onAddNewItem}\n onCloseMenu={() => {\n pendingApplyRef.current = true;\n closeMenu({ restoreFocus: false });\n }}\n />\n ) : null;\n\n const confirmationConfig = confirmation.enabled\n ? {\n applyLabel: confirmation.applyLabel,\n cancelLabel: confirmation.cancelLabel,\n onApply: handleApply,\n onCancel: handleCancel,\n }\n : undefined;\n // Wrap clear's onClick so clicking Clear always also closes the menu and\n // returns focus to the trigger. In confirmation mode, flag the close as an\n // intentional commit so the implicit-close handler doesn't treat it as a\n // cancel.\n const wrappedClear = clear\n ? {\n ...clear,\n onClick: () => {\n clear.onClick();\n if (confirmation.enabled) pendingApplyRef.current = true;\n closeMenu();\n },\n }\n : undefined;\n // Only render a footer when at least one slot has content; passing an empty\n // <MenuFooter/> would still draw the popover/dialog footer divider.\n const hasFooter =\n !!wrappedClear || !!confirmationConfig || !!addNewItemButton;\n const footer = hasFooter ? (\n <MenuFooter\n clear={wrappedClear}\n confirmation={confirmationConfig}\n addNew={addNewItemButton}\n />\n ) : undefined;\n\n if (displayAs === \"dialog\") {\n return (\n <>\n {trigger(triggerProps)}\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={closeMenu}\n title={label}\n field={searchInput ?? undefined}\n footer={footer ?? undefined}\n initialFocusResolver={\n !disableSearch\n ? (elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n : undefined\n }\n >\n <MultiSelectOptions\n ref={listRef}\n isOpen\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={(opts) => {\n const menuProps = getMenuPropsWithKeyDown(opts);\n if (disableSearch) {\n return menuProps;\n }\n return { ...menuProps, tabIndex: -1 };\n }}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOptions={draftSelectedOptions}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n virtualize={virtualize}\n />\n </OptionsDialog>\n </>\n );\n }\n\n return (\n <>\n {trigger(triggerProps)}\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={triggerRef}\n open={isOpen && displayAs === \"popover\"}\n onClose={handleClickOutside}\n width={popoverWidth ?? 320}\n footer={footer ?? undefined}\n >\n {searchInput}\n <MultiSelectOptions\n ref={listRef}\n isOpen={isOpen}\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={(opts) => {\n const menuProps = getMenuPropsWithKeyDown(opts);\n if (disableSearch) {\n return menuProps;\n }\n return { ...menuProps, tabIndex: -1 };\n }}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOptions={draftSelectedOptions}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n virtualize={virtualize}\n />\n </OptionsPopover>\n </>\n );\n});\n\nMultiSelectMenu.displayName = \"MultiSelectMenu\";\n","import { useEffect, useMemo, useRef } from \"react\";\nimport { MatchSorterOptions } from \"match-sorter\";\nimport { MultiSelectMenu } from \"./MultiSelectMenu\";\nimport {\n MultiSelectMenuHandle,\n MultiSelectMenuProps,\n MultiSelectMenuOption,\n} from \"./types\";\nimport { CheckState } from \"../../../types\";\nimport {\n SyncFilterFn,\n defaultSyncFilter,\n toSyncFilterFn,\n} from \"../../../internal/functions/syncFilterUtils\";\n\nexport type MultiSelectMenuSyncProps = Omit<\n MultiSelectMenuProps,\n | \"loadOptions\"\n | \"lazy\"\n | \"debounceMs\"\n | \"cache\"\n | \"initialLoad\"\n | \"selectAll\"\n | \"selectFiltered\"\n> & {\n /**\n * The options to display in the multi-select menu.\n */\n options: MultiSelectMenuOption[];\n /**\n * Controls how options are filtered and sorted when the user types a search value.\n * Can be a function that returns options in the desired display order,\n * or a MatchSorterOptions object to customize the default match-sorter behavior.\n *\n * By default, options are filtered by `label` and `searchText` using match-sorter.\n */\n filter?:\n | SyncFilterFn<MultiSelectMenuOption>\n | MatchSorterOptions<MultiSelectMenuOption>;\n /**\n * Enables the \"Select All\" option at the top of the list.\n * Can be a boolean to enable with default label, or an object to customize the label.\n * Click handling and check state are managed automatically.\n */\n selectAll?: boolean | { label?: string | ((checked: boolean) => string) };\n /**\n * Enables the \"Select Filtered\" option when a search term is active.\n * Can be a boolean to enable with default label, or a function returning a config with a custom label.\n * Click handling and check state are managed automatically.\n */\n selectFiltered?: boolean | ((searchValue: string) => { label?: string });\n};\n\n/**\n * MultiSelectMenuSync is a simplified version of MultiSelectMenu for client-side option sets.\n *\n * Features:\n * - Accepts `options` instead of `loadOptions` and `lazy`\n * - Performs client-side filtering of the options\n * - Simplified `selectAll` prop that automatically handles click and check state\n * - Simplified `selectFiltered` prop that automatically selects/deselects filtered options\n * - Supports all other props of MultiSelectMenu\n *\n * @example\n * <MultiSelectMenuSync\n * trigger={(props) => <Button {...props}>Pick books</Button>}\n * label=\"Books\"\n * options={bookOptions}\n * value={selectedOptions}\n * onSelectedOptionsChange={setSelectedOptions}\n * selectAll\n * />\n */\nexport const MultiSelectMenuSync = (props: MultiSelectMenuSyncProps) => {\n const {\n options,\n filter: filterProp = defaultSyncFilter,\n selectAll: selectAllProp,\n selectFiltered: selectFilteredProp,\n value,\n onSelectedOptionsChange,\n ...rest\n } = props;\n\n const filter = useMemo(() => toSyncFilterFn(filterProp), [filterProp]);\n\n const selectAllConfig = useMemo(() => {\n if (!selectAllProp) return undefined;\n\n const enabledOptions = options.filter((opt) => !opt.disabled);\n const enabledIds = new Set(enabledOptions.map((opt) => opt.id));\n const selectedCount = value.filter((v) => enabledIds.has(v.id)).length;\n const totalCount = enabledOptions.length;\n const allSelected = selectedCount === totalCount;\n\n const labelProp =\n typeof selectAllProp === \"object\" ? selectAllProp.label : undefined;\n const label =\n typeof labelProp === \"function\" ? labelProp(allSelected) : labelProp;\n\n const checkState: CheckState = allSelected\n ? \"checked\"\n : selectedCount > 0\n ? \"indeterminate\"\n : \"unchecked\";\n\n // `compute` receives the current draft (or value when confirmation is off)\n // and returns the next selection. The menu writes the result into the\n // draft, so the bulk action participates in confirmation correctly.\n const compute = (current: MultiSelectMenuOption[]) => {\n const currentIds = new Set(current.map((v) => v.id));\n const allEnabledSelected =\n enabledOptions.length > 0 &&\n enabledOptions.every((o) => currentIds.has(o.id));\n if (allEnabledSelected) {\n return current.filter((v) => !enabledIds.has(v.id));\n }\n const additions = enabledOptions.filter((o) => !currentIds.has(o.id));\n return [...current, ...additions];\n };\n\n return {\n label,\n compute,\n checkState,\n };\n }, [selectAllProp, options, value]);\n\n const selectFilteredConfig = useMemo(() => {\n if (!selectFilteredProp) return undefined;\n\n return (searchValue: string) => {\n const filteredOptions = filter(options, searchValue);\n const enabledFilteredOptions = filteredOptions.filter(\n (opt) => !opt.disabled,\n );\n const enabledFilteredIds = new Set(\n enabledFilteredOptions.map((o) => o.id),\n );\n const selectedIds = new Set(value.map((v) => v.id));\n const allFilteredSelected =\n enabledFilteredOptions.length > 0 &&\n enabledFilteredOptions.every((opt) => selectedIds.has(opt.id));\n const someFilteredSelected = enabledFilteredOptions.some((opt) =>\n selectedIds.has(opt.id),\n );\n\n const label =\n typeof selectFilteredProp === \"function\"\n ? selectFilteredProp(searchValue).label\n : undefined;\n\n const checkState: CheckState = allFilteredSelected\n ? \"checked\"\n : someFilteredSelected\n ? \"indeterminate\"\n : \"unchecked\";\n\n const compute = (current: MultiSelectMenuOption[]) => {\n const currentIds = new Set(current.map((v) => v.id));\n const allEnabledFilteredSelected =\n enabledFilteredOptions.length > 0 &&\n enabledFilteredOptions.every((o) => currentIds.has(o.id));\n if (allEnabledFilteredSelected) {\n return current.filter((v) => !enabledFilteredIds.has(v.id));\n }\n const additions = enabledFilteredOptions.filter(\n (o) => !currentIds.has(o.id),\n );\n return [...current, ...additions];\n };\n\n return {\n label,\n compute,\n checkState,\n };\n };\n }, [selectFilteredProp, options, value, filter]);\n\n const fieldRef = useRef<MultiSelectMenuHandle>(null);\n const prevOptionsRef = useRef(options);\n\n useEffect(() => {\n if (prevOptionsRef.current !== options) {\n prevOptionsRef.current = options;\n fieldRef.current?.invalidate();\n }\n }, [options]);\n\n return (\n <MultiSelectMenu\n ref={fieldRef}\n lazy={false}\n loadOptions={(searchValue) => filter(options, searchValue)}\n debounceMs={0}\n value={value}\n onSelectedOptionsChange={onSelectedOptionsChange}\n selectAll={selectAllConfig}\n selectFiltered={selectFilteredConfig}\n {...rest}\n />\n );\n};\n"],"names":["searchValue","items"],"mappings":"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"}
1
+ {"version":3,"file":"MultiSelectMenuSync-LD931FAV.js","sources":["../src/beta/components/MultiSelectMenu/MultiSelectMenu.tsx","../src/beta/components/MultiSelectMenu/MultiSelectMenuSync.tsx"],"sourcesContent":["import {\n MultiSelectMenuHandle,\n MultiSelectMenuOption,\n MultiSelectMenuProps,\n} from \"./types\";\nimport {\n ChangeEvent,\n KeyboardEvent,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { warnOnce } from \"../../../internal/functions\";\nimport { CheckState } from \"../../../types\";\nimport { MultiSelectOptions } from \"../../../internal/components/MultiSelectOptions\";\nimport { useDebouncedCallback } from \"../../../internal/hooks/useDebouncedCallback\";\nimport { OptionsPopover } from \"../../../internal/components/OptionsPopover/OptionsPopover\";\nimport { OptionsDialog } from \"../../../internal/components/OptionsDialog/OptionsDialog\";\nimport { AddNewItemButton } from \"../../../internal/components/AddNewItemButton\";\nimport { MenuFooter } from \"../../../internal/components/MenuFooter/MenuFooter\";\nimport { useProcessedOptions } from \"../../../internal/hooks/useProcessedOptions\";\nimport { buildSelectItems } from \"../../../internal/functions/buildSelectItems\";\nimport { useMenuInteraction } from \"../SelectMenu/internal/useMenuInteraction\";\nimport { useToggleSelection } from \"../../../internal/hooks/useToggleSelection\";\nimport { SelectItem } from \"../../../internal/types/selectFieldInternalTypes\";\nimport { useSelectOrchestration } from \"../../../internal/hooks/useSelectOrchestration\";\nimport { useConfirmationDraft } from \"../../../internal/hooks/useConfirmationDraft\";\nimport { useBulkActionRunner } from \"../../../internal/hooks/useBulkActionRunner\";\nimport { resolveConfirmation } from \"../../../internal/types/confirmationTypes\";\nimport { arrayIdsEqual } from \"../../../internal/utils/arrayIdsEqual\";\nimport { SearchField } from \"../../../components\";\n\n/**\n * MultiSelectMenu component for selecting multiple options from a dropdown triggered by any element.\n *\n * Features:\n * - Attaches to any trigger element via a render prop\n * - Multiple selection with checkbox indicators\n * - Optional search input rendered inside the popover/dialog\n * - Lazy loading with pagination (page, offset, or group modes)\n * - Optional \"Select All\" functionality\n * - Optional \"Select Filtered\" functionality\n * - Pinned options support\n * - Grouped options support\n * - Supports both popover and dialog display modes\n * - Adaptive display based on device (mobile uses dialog)\n * - Cache support for loadOptions results\n * - Full accessibility support with ARIA attributes\n * - Controlled selection state\n * - Configurable popover width\n * - Optional \"Add new item\" affordance below the option list with consumer-owned dialog\n * - Optional confirmation mode that buffers selection until Apply is clicked\n *\n * @example\n * <MultiSelectMenu\n * trigger={(props) => <Button {...props}>Select books</Button>}\n * label=\"Books\"\n * value={selectedOptions}\n * onSelectedOptionsChange={setSelectedOptions}\n * loadOptions={loadOptions}\n * />\n */\nexport const MultiSelectMenu = forwardRef<\n MultiSelectMenuHandle,\n MultiSelectMenuProps\n>((props, ref) => {\n const triggerRef = useRef<HTMLButtonElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n\n const {\n id: idProp,\n value: selectedOptions,\n initialLoad: initialLoadProp,\n displayMenuAs: displayMenuAsProp,\n lazy,\n loadOptions: loadOptionsProp,\n label,\n searchPlaceholder,\n debounceMs = 200,\n onSelectedOptionsChange,\n cache,\n pinned,\n selectAll: selectAllProp,\n selectFiltered: selectFilteredProp,\n virtualize,\n disableSearch,\n popoverWidth,\n trigger,\n onSearchChange,\n onMenuKeyDown,\n onImplicitClose,\n onExplicitClose,\n addItemLabel,\n onAddNewItem,\n confirmation: confirmationProp,\n clear,\n } = props;\n\n const confirmation = resolveConfirmation(confirmationProp);\n\n const groupToString =\n \"groupToString\" in props ? props.groupToString : undefined;\n const groupSorter = \"groupSorter\" in props ? props.groupSorter : undefined;\n\n const autoId = useId();\n const id = idProp ?? autoId;\n\n if (disableSearch && selectFilteredProp) {\n warnOnce(\n \"MultiSelectMenu: `selectFiltered` has no effect when `disableSearch` is true because there is no search input to produce filtered results.\",\n );\n }\n\n const {\n displayAs,\n initialLoad,\n initialLoadPerformed,\n setInitialLoadPerformed,\n options,\n loading,\n loadingMore,\n hasMore,\n loadOptions,\n loadMore,\n } = useSelectOrchestration({\n lazy,\n loadOptions: loadOptionsProp,\n cache,\n lazyOptions: \"lazyOptions\" in props ? props.lazyOptions : undefined,\n initialLoad: initialLoadProp,\n displayMenuAs: displayMenuAsProp,\n ref,\n });\n\n const selectAll = useMemo(\n () =>\n selectAllProp\n ? {\n label: selectAllProp.label,\n onClick: selectAllProp.onClick,\n compute: selectAllProp.compute,\n checkState: (selectAllProp.checkState === true\n ? \"checked\"\n : selectAllProp.checkState === false\n ? \"unchecked\"\n : (selectAllProp.checkState ?? \"indeterminate\")) as CheckState,\n }\n : undefined,\n [selectAllProp],\n );\n\n const selectFiltered = useMemo(\n () =>\n selectFilteredProp\n ? (searchValue: string) => {\n const config = selectFilteredProp(searchValue);\n return {\n label: config.label,\n onClick: config.onClick,\n compute: config.compute,\n checkState: (config.checkState === true\n ? \"checked\"\n : config.checkState === false\n ? \"unchecked\"\n : (config.checkState ?? \"indeterminate\")) as CheckState,\n };\n }\n : undefined,\n [selectFilteredProp],\n );\n\n // Warn once if `selectAll` is configured with `onClick` while confirmation is\n // enabled — that combination bypasses the draft. `selectFiltered` is a\n // function whose returned shape is only known at activation, so its warning\n // lives at the call site (runBulkAction).\n useEffect(() => {\n if (!confirmation.enabled) return;\n if (selectAllProp && !selectAllProp.compute) {\n warnOnce(\n \"MultiSelectMenu: `selectAll.onClick` bypasses confirmation. \" +\n \"Use `selectAll.compute` to integrate the bulk action with the draft.\",\n );\n }\n }, [confirmation.enabled, selectAllProp]);\n\n const [inputValue, setInputValue] = useState(\"\");\n\n const searchValue = disableSearch ? \"\" : inputValue;\n\n const { pinnedSections, ungroupedItems, groupSections } = useProcessedOptions(\n {\n options,\n pinned,\n searchValue,\n groupToString,\n groupSorter,\n },\n );\n\n const [isOpen, setIsOpen] = useState(false);\n\n const {\n displayValue: draftSelectedOptions,\n setDraft,\n apply,\n cancel,\n } = useConfirmationDraft({\n value: selectedOptions,\n onCommit: onSelectedOptionsChange,\n isOpen,\n enabled: confirmation.enabled,\n isEqual: arrayIdsEqual,\n });\n\n const {\n pending: bulkPending,\n runBulk,\n setDraftAndBump,\n reset: resetBulk,\n } = useBulkActionRunner<MultiSelectMenuOption>({ setDraft });\n\n const { handleItemClick } = useToggleSelection({\n options,\n pinnedSections,\n selectedOptions: draftSelectedOptions,\n // Route per-option toggles through setDraftAndBump so that any in-flight\n // bulk-action promise's resolution is discarded if it arrives after this\n // click.\n onSelectedOptionsChange: setDraftAndBump,\n });\n\n // Run a bulk action against the current draft. If the config provides a\n // `compute` function we run it through the runner (which writes to the\n // draft, supports promises, and discards stale resolutions). If only\n // `onClick` is provided, fire it as-is — the consumer owns the commit.\n const runBulkAction = useCallback(\n (\n config: {\n onClick?: () => void;\n compute?: (\n current: MultiSelectMenuOption[],\n ) => MultiSelectMenuOption[] | Promise<MultiSelectMenuOption[]>;\n },\n kind: \"selectAll\" | \"selectFiltered\",\n ) => {\n if (config.compute) {\n runBulk(config.compute, draftSelectedOptions);\n } else if (config.onClick) {\n if (confirmation.enabled && kind === \"selectFiltered\") {\n warnOnce(\n \"MultiSelectMenu: `selectFiltered.onClick` bypasses confirmation. \" +\n \"Use `selectFiltered.compute` to integrate the bulk action with the draft.\",\n );\n }\n config.onClick();\n }\n },\n [runBulk, draftSelectedOptions, confirmation.enabled],\n );\n\n const bulkActionItems = useMemo(() => {\n const items: SelectItem[] = [];\n if (selectAll && !searchValue) {\n items.push({\n id: \"select-all\",\n type: \"select-all\",\n original: { id: \"select-all\", label: selectAll.label ?? \"Select All\" },\n checkState: bulkPending ? \"loading\" : selectAll.checkState,\n });\n }\n if (selectFiltered && searchValue && !loading) {\n const config = selectFiltered(searchValue);\n items.push({\n id: \"select-filtered\",\n type: \"select-filtered\",\n original: {\n id: \"select-filtered\",\n label: config.label ?? \"Select Filtered\",\n },\n checkState: bulkPending ? \"loading\" : config.checkState,\n });\n }\n return items;\n }, [selectAll, selectFiltered, searchValue, loading, bulkPending]);\n\n const { items, sectionsMeta } = useMemo(\n () =>\n buildSelectItems({\n prefixItems: bulkActionItems,\n pinnedSections,\n groupSections,\n ungroupedItems,\n }),\n [bulkActionItems, pinnedSections, groupSections, ungroupedItems],\n );\n\n const selectedItemIds = useMemo(\n () => new Set(draftSelectedOptions.map((o) => o.id)),\n [draftSelectedOptions],\n );\n\n const handleItemActivate = useCallback(\n (item: SelectItem) => {\n if (item.type === \"select-all\") {\n if (selectAll) runBulkAction(selectAll, \"selectAll\");\n } else if (item.type === \"select-filtered\" && selectFiltered) {\n runBulkAction(selectFiltered(searchValue), \"selectFiltered\");\n } else if (\n item.type === \"option\" ||\n item.type === \"pinned-option\" ||\n item.type === \"grouped-option\"\n ) {\n handleItemClick(item.original);\n }\n },\n [selectAll, selectFiltered, searchValue, handleItemClick, runBulkAction],\n );\n\n const pendingApplyRef = useRef(false);\n\n const {\n closeMenu,\n highlightedIndex,\n getTriggerProps,\n getMenuProps,\n getItemProps,\n listRef,\n menuContainerRef,\n handleKeyDown,\n } = useMenuInteraction({\n items: items,\n sectionsMeta,\n onItemActivate: handleItemActivate,\n selectedItemIds,\n displayAs,\n closeOnActivate: false,\n // While a bulk-action promise is pending, disable all rows.\n disabled: bulkPending,\n id,\n triggerRef,\n label,\n isOpen,\n setIsOpen,\n onImplicitClose: () => {\n if (confirmation.enabled && !pendingApplyRef.current) cancel();\n pendingApplyRef.current = false;\n resetBulk();\n onImplicitClose?.();\n },\n onExplicitClose: () => {\n if (confirmation.enabled && !pendingApplyRef.current) cancel();\n pendingApplyRef.current = false;\n resetBulk();\n onExplicitClose?.();\n },\n });\n\n const debouncedOptionLoader = useDebouncedCallback((value: string) => {\n loadOptions(value, { initial: true });\n }, debounceMs);\n\n const handleInputChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n const value = e.target.value;\n setInputValue(value);\n debouncedOptionLoader(value);\n onSearchChange?.(value);\n },\n [debouncedOptionLoader, onSearchChange],\n );\n\n const handleInputKeyDown = useCallback(\n (e: KeyboardEvent) => {\n onMenuKeyDown?.(e);\n handleKeyDown(e);\n },\n [handleKeyDown, onMenuKeyDown],\n );\n\n const getMenuPropsWithKeyDown: typeof getMenuProps = useCallback(\n (opts) => {\n const menuProps = getMenuProps(opts);\n if (!onMenuKeyDown) return menuProps;\n return {\n ...menuProps,\n onKeyDown: (e: KeyboardEvent) => {\n onMenuKeyDown(e);\n menuProps.onKeyDown(e);\n },\n };\n },\n [getMenuProps, onMenuKeyDown],\n );\n\n useEffect(() => {\n const performInitialLoad = async () => {\n if (initialLoad === \"immediate\" && !initialLoadPerformed) {\n await loadOptions(\"\", { initial: true });\n setInitialLoadPerformed(true);\n }\n };\n performInitialLoad();\n }, [loadOptions, initialLoadPerformed, initialLoad, setInitialLoadPerformed]);\n\n const prevIsOpenRef = useRef(false);\n useEffect(() => {\n const wasOpen = prevIsOpenRef.current;\n prevIsOpenRef.current = isOpen;\n\n if (isOpen && !wasOpen) {\n if (initialLoad === \"open\" && !initialLoadPerformed) {\n loadOptions(\"\", { initial: true }).then(() => {\n setInitialLoadPerformed(true);\n });\n }\n }\n\n if (!isOpen && wasOpen) {\n setInputValue(\"\");\n loadOptions(\"\", { initial: true });\n }\n }, [\n isOpen,\n initialLoad,\n initialLoadPerformed,\n loadOptions,\n setInitialLoadPerformed,\n ]);\n\n useEffect(() => {\n if (!isOpen || displayAs !== \"popover\") return;\n\n const frameId = requestAnimationFrame(() => {\n if (!disableSearch) {\n searchRef.current?.focus();\n } else {\n menuContainerRef.current?.focus();\n }\n });\n\n return () => cancelAnimationFrame(frameId);\n }, [isOpen, displayAs, disableSearch, menuContainerRef]);\n\n const handleLoadMore = async () => {\n await loadMore(searchValue);\n };\n\n const handleClickOutside = useCallback(() => {\n closeMenu({ restoreFocus: false });\n }, [closeMenu]);\n\n const triggerProps = getTriggerProps();\n\n const menuPropsForAria = getMenuProps();\n const activeDescendant = menuPropsForAria[\"aria-activedescendant\"];\n\n const handleSearchClear = useCallback(() => {\n setInputValue(\"\");\n debouncedOptionLoader(\"\");\n onSearchChange?.(\"\");\n }, [debouncedOptionLoader, onSearchChange]);\n\n const handleApply = useCallback(() => {\n apply();\n pendingApplyRef.current = true;\n closeMenu();\n }, [apply, closeMenu]);\n\n const handleCancel = useCallback(() => {\n closeMenu();\n }, [closeMenu]);\n\n const searchInput = !disableSearch ? (\n <SearchField\n ref={searchRef}\n value={inputValue}\n onChange={handleInputChange as React.ChangeEventHandler<HTMLInputElement>}\n onKeyDown={\n handleInputKeyDown as React.KeyboardEventHandler<HTMLInputElement>\n }\n onClear={handleSearchClear}\n aria-activedescendant={activeDescendant}\n aria-controls={menuPropsForAria.id}\n placeholder={searchPlaceholder}\n type=\"search\"\n />\n ) : null;\n\n const addNewItemButton = onAddNewItem ? (\n <AddNewItemButton\n searchText={inputValue}\n addItemLabel={addItemLabel}\n onAddNewItem={onAddNewItem}\n onCloseMenu={() => {\n pendingApplyRef.current = true;\n closeMenu({ restoreFocus: false });\n }}\n />\n ) : null;\n\n const confirmationConfig = confirmation.enabled\n ? {\n applyLabel: confirmation.applyLabel,\n cancelLabel: confirmation.cancelLabel,\n onApply: handleApply,\n onCancel: handleCancel,\n }\n : undefined;\n // Wrap clear's onClick so clicking Clear always also closes the menu and\n // returns focus to the trigger. In confirmation mode, flag the close as an\n // intentional commit so the implicit-close handler doesn't treat it as a\n // cancel.\n const wrappedClear = clear\n ? {\n ...clear,\n onClick: () => {\n clear.onClick();\n if (confirmation.enabled) pendingApplyRef.current = true;\n closeMenu();\n },\n }\n : undefined;\n // Only render a footer when at least one slot has content; passing an empty\n // <MenuFooter/> would still draw the popover/dialog footer divider.\n const hasFooter =\n !!wrappedClear || !!confirmationConfig || !!addNewItemButton;\n const footer = hasFooter ? (\n <MenuFooter\n clear={wrappedClear}\n confirmation={confirmationConfig}\n addNew={addNewItemButton}\n />\n ) : undefined;\n\n if (displayAs === \"dialog\") {\n return (\n <>\n {trigger(triggerProps)}\n <OptionsDialog\n id={`${id}-dialog`}\n isOpen={isOpen}\n onClose={closeMenu}\n title={label}\n field={searchInput ?? undefined}\n footer={footer ?? undefined}\n initialFocusResolver={\n !disableSearch\n ? (elements) =>\n elements.find((el) => el.tagName === \"INPUT\") || elements[0]\n : undefined\n }\n >\n <MultiSelectOptions\n ref={listRef}\n isOpen\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={(opts) => {\n const menuProps = getMenuPropsWithKeyDown(opts);\n if (disableSearch) {\n return menuProps;\n }\n return { ...menuProps, tabIndex: -1 };\n }}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOptions={draftSelectedOptions}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n virtualize={virtualize}\n />\n </OptionsDialog>\n </>\n );\n }\n\n return (\n <>\n {trigger(triggerProps)}\n <OptionsPopover\n id={`${id}-popover`}\n referenceElement={triggerRef}\n open={isOpen && displayAs === \"popover\"}\n onClose={handleClickOutside}\n width={popoverWidth ?? 320}\n footer={footer ?? undefined}\n >\n {searchInput}\n <MultiSelectOptions\n ref={listRef}\n isOpen={isOpen}\n items={items}\n sectionsMeta={sectionsMeta}\n getMenuProps={(opts) => {\n const menuProps = getMenuPropsWithKeyDown(opts);\n if (disableSearch) {\n return menuProps;\n }\n return { ...menuProps, tabIndex: -1 };\n }}\n getItemProps={getItemProps}\n highlightedIndex={highlightedIndex}\n selectedOptions={draftSelectedOptions}\n hasMore={hasMore}\n onLoadMore={handleLoadMore}\n loading={loading}\n loadingMore={loadingMore}\n virtualize={virtualize}\n />\n </OptionsPopover>\n </>\n );\n});\n\nMultiSelectMenu.displayName = \"MultiSelectMenu\";\n","import { useEffect, useMemo, useRef } from \"react\";\nimport { MatchSorterOptions } from \"match-sorter\";\nimport { MultiSelectMenu } from \"./MultiSelectMenu\";\nimport {\n MultiSelectMenuHandle,\n MultiSelectMenuProps,\n MultiSelectMenuOption,\n} from \"./types\";\nimport { CheckState } from \"../../../types\";\nimport {\n SyncFilterFn,\n defaultSyncFilter,\n toSyncFilterFn,\n} from \"../../../internal/functions/syncFilterUtils\";\n\nexport type MultiSelectMenuSyncProps = Omit<\n MultiSelectMenuProps,\n | \"loadOptions\"\n | \"lazy\"\n | \"debounceMs\"\n | \"cache\"\n | \"initialLoad\"\n | \"selectAll\"\n | \"selectFiltered\"\n> & {\n /**\n * The options to display in the multi-select menu.\n */\n options: MultiSelectMenuOption[];\n /**\n * Controls how options are filtered and sorted when the user types a search value.\n * Can be a function that returns options in the desired display order,\n * or a MatchSorterOptions object to customize the default match-sorter behavior.\n *\n * By default, options are filtered by `label` and `searchText` using match-sorter.\n */\n filter?:\n | SyncFilterFn<MultiSelectMenuOption>\n | MatchSorterOptions<MultiSelectMenuOption>;\n /**\n * Enables the \"Select All\" option at the top of the list.\n * Can be a boolean to enable with default label, or an object to customize the label.\n * Click handling and check state are managed automatically.\n */\n selectAll?: boolean | { label?: string | ((checked: boolean) => string) };\n /**\n * Enables the \"Select Filtered\" option when a search term is active.\n * Can be a boolean to enable with default label, or a function returning a config with a custom label.\n * Click handling and check state are managed automatically.\n */\n selectFiltered?: boolean | ((searchValue: string) => { label?: string });\n};\n\n/**\n * MultiSelectMenuSync is a simplified version of MultiSelectMenu for client-side option sets.\n *\n * Features:\n * - Accepts `options` instead of `loadOptions` and `lazy`\n * - Performs client-side filtering of the options\n * - Simplified `selectAll` prop that automatically handles click and check state\n * - Simplified `selectFiltered` prop that automatically selects/deselects filtered options\n * - Supports all other props of MultiSelectMenu\n *\n * @example\n * <MultiSelectMenuSync\n * trigger={(props) => <Button {...props}>Pick books</Button>}\n * label=\"Books\"\n * options={bookOptions}\n * value={selectedOptions}\n * onSelectedOptionsChange={setSelectedOptions}\n * selectAll\n * />\n */\nexport const MultiSelectMenuSync = (props: MultiSelectMenuSyncProps) => {\n const {\n options,\n filter: filterProp = defaultSyncFilter,\n selectAll: selectAllProp,\n selectFiltered: selectFilteredProp,\n value,\n onSelectedOptionsChange,\n ...rest\n } = props;\n\n const filter = useMemo(() => toSyncFilterFn(filterProp), [filterProp]);\n\n const selectAllConfig = useMemo(() => {\n if (!selectAllProp) return undefined;\n\n const enabledOptions = options.filter((opt) => !opt.disabled);\n const enabledIds = new Set(enabledOptions.map((opt) => opt.id));\n const selectedCount = value.filter((v) => enabledIds.has(v.id)).length;\n const totalCount = enabledOptions.length;\n const allSelected = selectedCount === totalCount;\n\n const labelProp =\n typeof selectAllProp === \"object\" ? selectAllProp.label : undefined;\n const label =\n typeof labelProp === \"function\" ? labelProp(allSelected) : labelProp;\n\n const checkState: CheckState = allSelected\n ? \"checked\"\n : selectedCount > 0\n ? \"indeterminate\"\n : \"unchecked\";\n\n // `compute` receives the current draft (or value when confirmation is off)\n // and returns the next selection. The menu writes the result into the\n // draft, so the bulk action participates in confirmation correctly.\n const compute = (current: MultiSelectMenuOption[]) => {\n const currentIds = new Set(current.map((v) => v.id));\n const allEnabledSelected =\n enabledOptions.length > 0 &&\n enabledOptions.every((o) => currentIds.has(o.id));\n if (allEnabledSelected) {\n return current.filter((v) => !enabledIds.has(v.id));\n }\n const additions = enabledOptions.filter((o) => !currentIds.has(o.id));\n return [...current, ...additions];\n };\n\n return {\n label,\n compute,\n checkState,\n };\n }, [selectAllProp, options, value]);\n\n const selectFilteredConfig = useMemo(() => {\n if (!selectFilteredProp) return undefined;\n\n return (searchValue: string) => {\n const filteredOptions = filter(options, searchValue);\n const enabledFilteredOptions = filteredOptions.filter(\n (opt) => !opt.disabled,\n );\n const enabledFilteredIds = new Set(\n enabledFilteredOptions.map((o) => o.id),\n );\n const selectedIds = new Set(value.map((v) => v.id));\n const allFilteredSelected =\n enabledFilteredOptions.length > 0 &&\n enabledFilteredOptions.every((opt) => selectedIds.has(opt.id));\n const someFilteredSelected = enabledFilteredOptions.some((opt) =>\n selectedIds.has(opt.id),\n );\n\n const label =\n typeof selectFilteredProp === \"function\"\n ? selectFilteredProp(searchValue).label\n : undefined;\n\n const checkState: CheckState = allFilteredSelected\n ? \"checked\"\n : someFilteredSelected\n ? \"indeterminate\"\n : \"unchecked\";\n\n const compute = (current: MultiSelectMenuOption[]) => {\n const currentIds = new Set(current.map((v) => v.id));\n const allEnabledFilteredSelected =\n enabledFilteredOptions.length > 0 &&\n enabledFilteredOptions.every((o) => currentIds.has(o.id));\n if (allEnabledFilteredSelected) {\n return current.filter((v) => !enabledFilteredIds.has(v.id));\n }\n const additions = enabledFilteredOptions.filter(\n (o) => !currentIds.has(o.id),\n );\n return [...current, ...additions];\n };\n\n return {\n label,\n compute,\n checkState,\n };\n };\n }, [selectFilteredProp, options, value, filter]);\n\n const fieldRef = useRef<MultiSelectMenuHandle>(null);\n const prevOptionsRef = useRef(options);\n\n useEffect(() => {\n if (prevOptionsRef.current !== options) {\n prevOptionsRef.current = options;\n fieldRef.current?.invalidate();\n }\n }, [options]);\n\n return (\n <MultiSelectMenu\n ref={fieldRef}\n lazy={false}\n loadOptions={(searchValue) => filter(options, searchValue)}\n debounceMs={0}\n value={value}\n onSelectedOptionsChange={onSelectedOptionsChange}\n selectAll={selectAllConfig}\n selectFiltered={selectFilteredConfig}\n {...rest}\n />\n );\n};\n"],"names":["searchValue","items"],"mappings":"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"}
@@ -3,20 +3,20 @@ import * as React from 'react';
3
3
  import { forwardRef, useRef, useId, isValidElement } from 'react';
4
4
  import { c as cx } from './index-De1g9FRV.js';
5
5
  import { S as Spinner } from './Spinner-B7tTWcP6.js';
6
- import { t as textFieldStyles } from './TextField.module-C8FsjTpx.js';
6
+ import { t as textFieldStyles } from './TextField.module-DklyLNKz.js';
7
7
  import { w as warnDeprecatedErrorUsage } from './utils-CM48ODEJ.js';
8
- import { B as Button } from './Button-C_V2xQAs.js';
9
- import { I as Icon } from './Icon-feeG7gXA.js';
8
+ import { B as Button } from './Button-ChQARW0y.js';
9
+ import { I as Icon } from './Icon-BEwHECSM.js';
10
10
  import { S as SvgAdd } from './add-BcQkAUip.js';
11
- import { F as FieldLabel } from './FieldLabel-VVn8GR64.js';
11
+ import { F as FieldLabel } from './FieldLabel-tFSfJ7OJ.js';
12
12
  import { u as useNumberField } from './useNumberField-D_ic9i2q.js';
13
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-CB_zHDbW.js';
13
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
14
14
  import { u as useFocusWithin } from './useFocusWithin-hi77jsrB.js';
15
15
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
16
16
  import { w as warnOnce } from './warnOnce-Y9PRHcU4.js';
17
17
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
18
18
  import { useTrackingId } from './useTrackingId.js';
19
- import { s as stripInlineMarkdown } from './stripInlineMarkdown-C0bVmYgG.js';
19
+ import { s as stripInlineMarkdown } from './stripInlineMarkdown-CQCRopqY.js';
20
20
  import { H as Helper } from './Helper-B_VAFgGd.js';
21
21
 
22
22
  import './NumberField.css';const small = "_small_1n8zj_31";
@@ -65,6 +65,7 @@ const NumberField = forwardRef(
65
65
  step = 1,
66
66
  hideControls = false,
67
67
  hideLabel = false,
68
+ isHighlighted = false,
68
69
  ...rest
69
70
  } = componentProps;
70
71
  const numberFieldRef = useRef(null);
@@ -147,6 +148,7 @@ const NumberField = forwardRef(
147
148
  className: cx(textFieldStyles["input-wrapper"], {
148
149
  [textFieldStyles["small"]]: size === "small",
149
150
  [textFieldStyles["large"]]: size === "large",
151
+ [textFieldStyles["highlight"]]: isHighlighted,
150
152
  [numberFieldStyles["small"]]: size === "small",
151
153
  [numberFieldStyles["large"]]: size === "large"
152
154
  }),
@@ -247,4 +249,4 @@ const NumberField = forwardRef(
247
249
  NumberField.displayName = "NumberField";
248
250
 
249
251
  export { NumberField as N };
250
- //# sourceMappingURL=NumberField-bgYX7JGs.js.map
252
+ //# sourceMappingURL=NumberField-CFYbODNe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NumberField-CFYbODNe.js","sources":["../../hammer-icon/mdi/round/remove.svg","../src/components/NumberField/NumberField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgRemove = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z\" }));\nexport default SvgRemove;\n","import {\n ReactElement,\n forwardRef,\n isValidElement,\n ComponentPropsWithoutRef,\n useId,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { Spinner } from \"../Spinner\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport numberFieldStyles from \"./NumberField.module.scss\";\nimport { Helper, HelperProps } from \"../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport { LayoutUtilProps, Size, DataTrackingId } from \"../../types\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport IconAdd from \"@servicetitan/hammer-icon/mdi/round/add.svg\";\nimport IconRemove from \"@servicetitan/hammer-icon/mdi/round/remove.svg\";\nimport {\n useFocusWithin,\n useLayoutPropsUtil,\n useNumberField,\n} from \"../../internal/hooks\";\nimport {\n childrenToString,\n stripInlineMarkdown,\n warnOnce,\n} from \"../../internal/functions\";\nimport { FieldLabel } from \"../FieldLabel\";\nimport { FieldLabelProps } from \"../../internal/types\";\n\n/**\n * Props for the NumberField component.\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"prefix\" | \"type\" | \"inputMode\" | \"value\" | \"defaultValue\" | \"onFocus\" | \"onBlur\" | \"onChange\">\n * @extends LayoutUtilProps\n * @extends FieldLabelProps\n * @extends DataTrackingId\n */\nexport type NumberFieldProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n | \"size\"\n | \"prefix\"\n | \"type\"\n | \"inputMode\"\n | \"value\"\n | \"defaultValue\"\n | \"onFocus\"\n | \"onBlur\"\n | \"onChange\"\n> &\n LayoutUtilProps &\n FieldLabelProps & {\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n // TODO(v4.0.0): make label required\n /**\n * Label for the field.\n * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.\n */\n label?: string;\n /**\n * When `true`, hides the visible label and moves it to `aria-label` on the input.\n * Requires `label` to be set — the label is always needed for accessibility.\n * @default false\n */\n hideLabel?: boolean;\n prefix?: string;\n suffix?: string;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n hint?: HelperProps[\"hint\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n loading?: boolean;\n disabled?: boolean;\n minValue?: number;\n maxValue?: number;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n step?: number;\n value?: number | null;\n defaultValue?: number | null;\n onChange?: (value: number | null) => void;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n hideControls?: boolean;\n /**\n * When `true`, applies a subdued primary background to the field to draw attention to it.\n * @default false\n */\n isHighlighted?: boolean;\n } & DataTrackingId;\n\nexport const NumberField = forwardRef<HTMLInputElement, NumberFieldProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n error,\n errorAriaLive: _errorAriaLive,\n defaultValue: defaultValueProp,\n value: valueProp,\n label,\n moreInfo,\n prefix,\n suffix,\n size,\n required,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n id: idProp,\n description,\n hint,\n warning,\n loading,\n disabled,\n readOnly,\n labelProps,\n style,\n placeholder,\n minValue,\n maxValue,\n maximumFractionDigits = 0,\n minimumFractionDigits = 0,\n step = 1,\n hideControls = false,\n hideLabel = false,\n isHighlighted = false,\n ...rest\n } = componentProps;\n const numberFieldRef = useRef<HTMLDivElement>(null);\n\n const { props: wrapperProps } = useFocusWithin({\n onFocus: (e) => {\n onFocusProp?.(e);\n },\n onBlur: (e) => {\n onBlurProp?.(e);\n },\n });\n\n const { inputProps, inputRef, incrementButtonProps, decrementButtonProps } =\n useNumberField({\n minValue,\n maxValue,\n maximumFractionDigits,\n minimumFractionDigits,\n step,\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n label,\n readOnly,\n });\n\n const combinedInputRef = useMergeRefs([numberFieldRef, inputRef, ref]);\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const prefixUid = useId();\n const suffixUid = useId();\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"NumberField\", error);\n\n // TODO(v4.0.0): remove once label is required\n if (label === undefined) {\n warnOnce(\n \"NumberField: label will be required in v4.0.0. Use hideLabel to visually hide the label.\",\n );\n }\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const hasHelperText = hint || errorMessages || warning || description;\n\n const ariaDescribedBy =\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const data = {\n label: childrenToString(props.label),\n prefix: childrenToString(props.prefix),\n suffix: childrenToString(props.suffix),\n description: childrenToString(props.description),\n size: props.size,\n minValue: props.minValue,\n maxValue: props.maxValue,\n step: props.step,\n maximumFractionDigits: props.maximumFractionDigits,\n minimumFractionDigits: props.minimumFractionDigits,\n };\n\n const trackingId = useTrackingId({\n name: \"NumberField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <div\n className={cx(textFieldStyles[\"textfield\"], className)}\n data-anv=\"number-field\"\n style={styleCombined}\n {...wrapperProps}\n >\n {/* TODO(v4.0.0): simplify to !hideLabel once label is required */}\n {label && !hideLabel && (\n <FieldLabel\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n )}\n <div\n className={cx(textFieldStyles[\"input-wrapper\"], {\n [textFieldStyles[\"small\"]]: size === \"small\",\n [textFieldStyles[\"large\"]]: size === \"large\",\n [textFieldStyles[\"highlight\"]]: isHighlighted,\n [numberFieldStyles[\"small\"]]: size === \"small\",\n [numberFieldStyles[\"large\"]]: size === \"large\",\n })}\n role=\"presentation\"\n onClick={() => numberFieldRef.current?.focus()}\n >\n {prefix ? (\n <div\n aria-hidden\n className={textFieldStyles[\"prefix\"]}\n id={`prefix${prefixUid}`}\n >\n {prefix}\n </div>\n ) : null}\n <input\n id={id}\n className={cx(textFieldStyles[\"input\"], {\n [textFieldStyles[\"error\"]]: error,\n })}\n data-tracking-id={trackingId}\n {...rest}\n {...inputProps}\n required={required}\n placeholder={placeholder}\n readOnly={readOnly}\n disabled={disabled}\n ref={combinedInputRef}\n aria-label={\n // TODO(v4.0.0): remove typeof check — label will always be string\n hideLabel && typeof label === \"string\"\n ? stripInlineMarkdown(label)\n : label\n ? undefined\n : placeholder\n }\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? !!error : undefined}\n />\n {loading ? (\n <div\n className={textFieldStyles[\"loading-spinner-wrapper\"]}\n data-testid=\"spinner\"\n >\n <Spinner size=\"small\" />\n </div>\n ) : null}\n {suffix ? (\n <div\n className={textFieldStyles[\"suffix\"]}\n aria-hidden\n id={`suffix${suffixUid}`}\n >\n {suffix}\n </div>\n ) : null}\n {!hideControls && !disabled && !readOnly && (\n <div className={numberFieldStyles[\"stepper-buttons\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...decrementButtonProps}\n >\n <Icon svg={IconRemove} />\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...incrementButtonProps}\n >\n <Icon svg={IconAdd} />\n </Button>\n </div>\n )}\n </div>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n showCounter={false}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </div>\n );\n },\n);\n\nNumberField.displayName = \"NumberField\";\n"],"names":["IconRemove","IconAdd"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { N as NumberField, N as default } from './NumberField-bgYX7JGs.js';
1
+ export { N as NumberField, N as default } from './NumberField-CFYbODNe.js';
2
2
  //# sourceMappingURL=NumberField.js.map