@servicetitan/anvil2 3.16.1 → 3.18.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 (395) hide show
  1. package/CHANGELOG.md +88 -0
  2. package/dist/{AiMark-BfmK30vL.js → AiMark-Ca7WmL-9.js} +114 -33
  3. package/dist/AiMark-Ca7WmL-9.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-lLo1N7Tj.js → Alert-BOqBFMUV.js} +3 -3
  6. package/dist/{Alert-lLo1N7Tj.js.map → Alert-BOqBFMUV.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-PfnsVVz1.js → Announcement-AN9HnhZ-.js} +2 -2
  9. package/dist/{Announcement-PfnsVVz1.js.map → Announcement-AN9HnhZ-.js.map} +1 -1
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{AnvilProvider-DagOuc9c.js → AnvilProvider-BVTxXzoS.js} +3 -3
  12. package/dist/{AnvilProvider-DagOuc9c.js.map → AnvilProvider-BVTxXzoS.js.map} +1 -1
  13. package/dist/AnvilProvider.js +1 -1
  14. package/dist/{Breadcrumbs-RdL4Fvmu.js → Breadcrumbs-1MCqy-gU.js} +2 -2
  15. package/dist/{Breadcrumbs-RdL4Fvmu.js.map → Breadcrumbs-1MCqy-gU.js.map} +1 -1
  16. package/dist/Breadcrumbs.js +1 -1
  17. package/dist/{Button-Dn6-01xl.js → Button-B_E6ybA-.js} +3 -3
  18. package/dist/{Button-Dn6-01xl.js.map → Button-B_E6ybA-.js.map} +1 -1
  19. package/dist/Button.js +1 -1
  20. package/dist/{ButtonToggle-BSU8GBxr.js → ButtonToggle-D0eXySEM.js} +2 -2
  21. package/dist/{ButtonToggle-BSU8GBxr.js.map → ButtonToggle-D0eXySEM.js.map} +1 -1
  22. package/dist/ButtonToggle.js +1 -1
  23. package/dist/{luxon-wpz4A-OQ.js → Calendar-BcsuV4Xv.js} +1761 -3
  24. package/dist/Calendar-BcsuV4Xv.js.map +1 -0
  25. package/dist/{Calendar-DoLRAWLp.js → Calendar-oBRbQqnG.js} +2 -2
  26. package/dist/{Calendar-DoLRAWLp.js.map → Calendar-oBRbQqnG.js.map} +1 -1
  27. package/dist/Calendar.js +2 -2
  28. package/dist/{Checkbox-U-kuWhgc.js → Checkbox-BCaUzwF_.js} +2 -2
  29. package/dist/{Checkbox-U-kuWhgc.js.map → Checkbox-BCaUzwF_.js.map} +1 -1
  30. package/dist/{Checkbox-CVxbe-iN.js → Checkbox-BocPrjKC.js} +4 -4
  31. package/dist/{Checkbox-CVxbe-iN.js.map → Checkbox-BocPrjKC.js.map} +1 -1
  32. package/dist/Checkbox.js +1 -1
  33. package/dist/{Chip-2OydLs66.js → Chip-BWqgUX71.js} +11 -24
  34. package/dist/Chip-BWqgUX71.js.map +1 -0
  35. package/dist/Chip.js +1 -1
  36. package/dist/Combobox.js +1 -1
  37. package/dist/{DataTable-DIXP9-Bx.js → DataTableEditColumnsDrawer-C7OHRsJU.js} +1373 -289
  38. package/dist/DataTableEditColumnsDrawer-C7OHRsJU.js.map +1 -0
  39. package/dist/{DataTable.css → DataTableEditColumnsDrawer.css} +90 -33
  40. package/dist/{DateFieldRange-X2jdOTYY.js → DateFieldRange-BPcsS6TW.js} +6 -7
  41. package/dist/{DateFieldRange-X2jdOTYY.js.map → DateFieldRange-BPcsS6TW.js.map} +1 -1
  42. package/dist/DateFieldRange.js +1 -1
  43. package/dist/{DateFieldSingle-BJ16tpOz.js → DateFieldSingle-BRMhe0OM.js} +6 -7
  44. package/dist/{DateFieldSingle-BJ16tpOz.js.map → DateFieldSingle-BRMhe0OM.js.map} +1 -1
  45. package/dist/DateFieldSingle.js +1 -1
  46. package/dist/{DateFieldYearless-CMm8vtz_.js → DateFieldYearless-NOgDKzrJ.js} +6 -6
  47. package/dist/{DateFieldYearless-CMm8vtz_.js.map → DateFieldYearless-NOgDKzrJ.js.map} +1 -1
  48. package/dist/DateFieldYearless.js +1 -1
  49. package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js → DateFieldYearlessRange-ChvypgXC.js} +5 -5
  50. package/dist/{DateFieldYearlessRange-BHHs-Z1Q.js.map → DateFieldYearlessRange-ChvypgXC.js.map} +1 -1
  51. package/dist/DateFieldYearlessRange.js +1 -1
  52. package/dist/{DaysOfTheWeek-BHXxs0Bo.js → DaysOfTheWeek-nYitIKnQ.js} +4 -4
  53. package/dist/{DaysOfTheWeek-BHXxs0Bo.js.map → DaysOfTheWeek-nYitIKnQ.js.map} +1 -1
  54. package/dist/DaysOfTheWeek.js +1 -1
  55. package/dist/Details-B2F3auTX.js +216 -0
  56. package/dist/Details-B2F3auTX.js.map +1 -0
  57. package/dist/{Details-BxqP-5vp.js → Details-DQ-_Mg4o.js} +3 -3
  58. package/dist/{Details-BxqP-5vp.js.map → Details-DQ-_Mg4o.js.map} +1 -1
  59. package/dist/Details.css +92 -68
  60. package/dist/Details.js +1 -1
  61. package/dist/Details2.css +137 -0
  62. package/dist/{Dialog-_tHqOsbr.js → Dialog-BgWoV2on.js} +10 -7
  63. package/dist/Dialog-BgWoV2on.js.map +1 -0
  64. package/dist/Dialog.js +1 -1
  65. package/dist/{DialogCancelButton-C0r8hJ8Z.js → DialogCancelButton-CplrFu69.js} +2 -2
  66. package/dist/{DialogCancelButton-C0r8hJ8Z.js.map → DialogCancelButton-CplrFu69.js.map} +1 -1
  67. package/dist/Dnd.js +2 -2
  68. package/dist/{DndHandleButton-BRlodkDO.js → DndHandleButton-BJqj2hc0.js} +6 -4
  69. package/dist/DndHandleButton-BJqj2hc0.js.map +1 -0
  70. package/dist/DndSort.js +2 -2
  71. package/dist/{Drawer-D-ThWNp0.js → Drawer-BVBLtGn_.js} +12 -9
  72. package/dist/Drawer-BVBLtGn_.js.map +1 -0
  73. package/dist/Drawer.js +1 -1
  74. package/dist/DrillDown.css +41 -34
  75. package/dist/DrillDown.js +1 -1
  76. package/dist/DrillDown.module-BFE5BcJB.js +28 -0
  77. package/dist/DrillDown.module-BFE5BcJB.js.map +1 -0
  78. package/dist/{EditCard-B6l2vhBS.js → EditCard-hivZDPZh.js} +3 -3
  79. package/dist/{EditCard-B6l2vhBS.js.map → EditCard-hivZDPZh.js.map} +1 -1
  80. package/dist/EditCard.js +1 -1
  81. package/dist/{FieldLabel-ThEmUiAq.js → FieldLabel-Cn559Brf.js} +8 -58
  82. package/dist/FieldLabel-Cn559Brf.js.map +1 -0
  83. package/dist/FieldLabel.css +1 -12
  84. package/dist/FieldLabel.js +1 -1
  85. package/dist/FieldMessage.js +1 -1
  86. package/dist/{FilterBar-CGsDg6Hy.js → FilterBar-COd38Ent.js} +7 -7
  87. package/dist/{FilterBar-CGsDg6Hy.js.map → FilterBar-COd38Ent.js.map} +1 -1
  88. package/dist/FilterBar.js +1 -1
  89. package/dist/InlineMarkdown-CL1tKR01.js +87 -0
  90. package/dist/InlineMarkdown-CL1tKR01.js.map +1 -0
  91. package/dist/InlineMarkdown.css +12 -0
  92. package/dist/{InputMask-BQigi5oW.js → InputMask-DICWdeiF.js} +3 -3
  93. package/dist/{InputMask-BQigi5oW.js.map → InputMask-DICWdeiF.js.map} +1 -1
  94. package/dist/InputMask.js +1 -1
  95. package/dist/{ListView-YJscfG4x.js → ListView-BeGBn5Vk.js} +87 -108
  96. package/dist/ListView-BeGBn5Vk.js.map +1 -0
  97. package/dist/ListView.js +1 -1
  98. package/dist/{Listbox-CD9ZptSZ.js → Listbox-n1CmJ2gh.js} +2 -2
  99. package/dist/{Listbox-CD9ZptSZ.js.map → Listbox-n1CmJ2gh.js.map} +1 -1
  100. package/dist/Listbox.js +1 -1
  101. package/dist/{Menu-Da2OEN0o.js → Menu-DqP7YQgE.js} +2 -2
  102. package/dist/{Menu-Da2OEN0o.js.map → Menu-DqP7YQgE.js.map} +1 -1
  103. package/dist/Menu.js +1 -1
  104. package/dist/{MenuFooter-D__gg92C.js → MenuFooter-Dzhv0EfD.js} +2 -2
  105. package/dist/{MenuFooter-D__gg92C.js.map → MenuFooter-Dzhv0EfD.js.map} +1 -1
  106. package/dist/MultiSelectField.js +1 -1
  107. package/dist/{MultiSelectFieldSync-Cq5sena6.js → MultiSelectFieldSync-CWsOdu-o.js} +45 -63
  108. package/dist/MultiSelectFieldSync-CWsOdu-o.js.map +1 -0
  109. package/dist/MultiSelectFieldSync.css +107 -69
  110. package/dist/MultiSelectMenu.js +1 -1
  111. package/dist/{MultiSelectMenuSync-BhNXsgAN.js → MultiSelectMenuSync-AVcf8ZUZ.js} +17 -30
  112. package/dist/MultiSelectMenuSync-AVcf8ZUZ.js.map +1 -0
  113. package/dist/{useNumberField-CXFYUZ_n.js → NumberField-DjOvcCa1.js} +251 -5
  114. package/dist/NumberField-DjOvcCa1.js.map +1 -0
  115. package/dist/NumberField.js +1 -1
  116. package/dist/{Page-ZSHNJs7z.js → Page-_dh-JesM.js} +134 -85
  117. package/dist/Page-_dh-JesM.js.map +1 -0
  118. package/dist/Page.css +85 -80
  119. package/dist/Page.js +1 -1
  120. package/dist/{Pagination-Bsl99RRI.js → Pagination-CsSpaTCs.js} +5 -5
  121. package/dist/{Pagination-Bsl99RRI.js.map → Pagination-CsSpaTCs.js.map} +1 -1
  122. package/dist/Pagination.js +1 -1
  123. package/dist/{Popover-CIh1CsoJ.js → Popover-CEKl0WY3.js} +4 -4
  124. package/dist/{Popover-CIh1CsoJ.js.map → Popover-CEKl0WY3.js.map} +1 -1
  125. package/dist/Popover.js +1 -1
  126. package/dist/{ProgressBar-zPKYv4Il.js → ProgressBar-ubCKKewC.js} +3 -3
  127. package/dist/{ProgressBar-zPKYv4Il.js.map → ProgressBar-ubCKKewC.js.map} +1 -1
  128. package/dist/ProgressBar.js +1 -1
  129. package/dist/{Radio-C1VnatcL.js → Radio-DkB6zFsS.js} +2 -2
  130. package/dist/{Radio-C1VnatcL.js.map → Radio-DkB6zFsS.js.map} +1 -1
  131. package/dist/{Radio-BYowelK2.js → Radio-q1Vp_ZQG.js} +4 -4
  132. package/dist/{Radio-BYowelK2.js.map → Radio-q1Vp_ZQG.js.map} +1 -1
  133. package/dist/Radio.js +1 -1
  134. package/dist/{RichTextEditor-DcAVqd2d.js → RichTextEditor-BHt6sWMA.js} +11 -11
  135. package/dist/{RichTextEditor-DcAVqd2d.js.map → RichTextEditor-BHt6sWMA.js.map} +1 -1
  136. package/dist/RichTextEditor.js +1 -1
  137. package/dist/{SavedFiltersButton-BLvi8j1T.js → SavedFiltersButton-Cl58iHZe.js} +10 -10
  138. package/dist/{SavedFiltersButton-BLvi8j1T.js.map → SavedFiltersButton-Cl58iHZe.js.map} +1 -1
  139. package/dist/SavedFiltersButton.js +1 -1
  140. package/dist/{SearchField-ChoNtw8w.js → SearchField-Bk-Ltu4v.js} +2 -2
  141. package/dist/{SearchField-ChoNtw8w.js.map → SearchField-Bk-Ltu4v.js.map} +1 -1
  142. package/dist/{SearchField-DX8hZyo2.js → SearchField-INVftpNM.js} +2 -2
  143. package/dist/{SearchField-DX8hZyo2.js.map → SearchField-INVftpNM.js.map} +1 -1
  144. package/dist/SearchField.js +1 -1
  145. package/dist/{SegmentedControl-BHVJmmTH.js → SegmentedControl-BCqWq65N.js} +3 -3
  146. package/dist/{SegmentedControl-BHVJmmTH.js.map → SegmentedControl-BCqWq65N.js.map} +1 -1
  147. package/dist/SegmentedControl.js +1 -1
  148. package/dist/{SelectCard-DrmMU_GD.js → SelectCard-DeAUW1bL.js} +3 -3
  149. package/dist/{SelectCard-DrmMU_GD.js.map → SelectCard-DeAUW1bL.js.map} +1 -1
  150. package/dist/SelectCard.js +1 -1
  151. package/dist/SelectField.js +1 -1
  152. package/dist/{SelectFieldLabel-BxsKvfqo.js → SelectFieldLabel-DaXwIFZj.js} +2 -2
  153. package/dist/{SelectFieldLabel-BxsKvfqo.js.map → SelectFieldLabel-DaXwIFZj.js.map} +1 -1
  154. package/dist/{SelectFieldSync-CeazN-gI.js → SelectFieldSync-DpZL4wDo.js} +48 -69
  155. package/dist/SelectFieldSync-DpZL4wDo.js.map +1 -0
  156. package/dist/SelectMenu.js +1 -1
  157. package/dist/{SelectMenuSync-CPpE6vUG.js → SelectMenuSync-Klna2oqs.js} +17 -36
  158. package/dist/SelectMenuSync-Klna2oqs.js.map +1 -0
  159. package/dist/{SelectOptions-BDAu_9dv.js → SelectOptions-DGYYFU8i.js} +2 -2
  160. package/dist/{SelectOptions-BDAu_9dv.js.map → SelectOptions-DGYYFU8i.js.map} +1 -1
  161. package/dist/{SelectTrigger-B4OUTO9S.js → SelectTrigger-DKY7rpZn.js} +2 -2
  162. package/dist/{SelectTrigger-B4OUTO9S.js.map → SelectTrigger-DKY7rpZn.js.map} +1 -1
  163. package/dist/SelectTrigger.js +1 -1
  164. package/dist/{SelectTriggerBase-BTWSaiQ-.js → SelectTriggerBase-DUYq_L-6.js} +6 -6
  165. package/dist/{SelectTriggerBase-BTWSaiQ-.js.map → SelectTriggerBase-DUYq_L-6.js.map} +1 -1
  166. package/dist/SelectTriggerBase.css +94 -56
  167. package/dist/SelectTriggerBase.module-C-NmZbg4.js +41 -0
  168. package/dist/SelectTriggerBase.module-C-NmZbg4.js.map +1 -0
  169. package/dist/{Stepper-l_P6VPOv.js → Stepper-D3SHXfX1.js} +3 -3
  170. package/dist/{Stepper-l_P6VPOv.js.map → Stepper-D3SHXfX1.js.map} +1 -1
  171. package/dist/Stepper.js +1 -1
  172. package/dist/{Switch-1iNdXTik.js → Switch-C9yQgF4w.js} +2 -2
  173. package/dist/{Switch-1iNdXTik.js.map → Switch-C9yQgF4w.js.map} +1 -1
  174. package/dist/Switch.js +1 -1
  175. package/dist/{Tab-DR5YYXkq.js → Tab-CXwVQ5-G.js} +11 -7
  176. package/dist/Tab-CXwVQ5-G.js.map +1 -0
  177. package/dist/Tab.js +1 -1
  178. package/dist/Table.js +1 -1
  179. package/dist/{Text-rihxXHSe.js → Text-D4SWT4u-.js} +2 -2
  180. package/dist/{Text-rihxXHSe.js.map → Text-D4SWT4u-.js.map} +1 -1
  181. package/dist/Text.js +1 -1
  182. package/dist/{TextField-vuS7xeo-.js → TextField-CKXSxube.js} +5 -5
  183. package/dist/{TextField-vuS7xeo-.js.map → TextField-CKXSxube.js.map} +1 -1
  184. package/dist/{TextField-Bxd-Qzoi.js → TextField-DmdT2k0w.js} +2 -2
  185. package/dist/{TextField-Bxd-Qzoi.js.map → TextField-DmdT2k0w.js.map} +1 -1
  186. package/dist/TextField.css +38 -23
  187. package/dist/TextField.js +1 -1
  188. package/dist/TextField.module-B3y6caP9.js +25 -0
  189. package/dist/TextField.module-B3y6caP9.js.map +1 -0
  190. package/dist/{Textarea-ppapJUwh.js → Textarea-Dv__veBJ.js} +11 -11
  191. package/dist/{Textarea-ppapJUwh.js.map → Textarea-Dv__veBJ.js.map} +1 -1
  192. package/dist/Textarea.css +26 -11
  193. package/dist/Textarea.js +1 -1
  194. package/dist/{ThemeProvider-DW-Mflv6.js → ThemeProvider-DS2aL89d.js} +2 -2
  195. package/dist/{ThemeProvider-DW-Mflv6.js.map → ThemeProvider-DS2aL89d.js.map} +1 -1
  196. package/dist/ThemeProvider.css +6 -4
  197. package/dist/ThemeProvider.js +1 -1
  198. package/dist/ThemeProvider.module-BkKwAw2f.js +8 -0
  199. package/dist/ThemeProvider.module-BkKwAw2f.js.map +1 -0
  200. package/dist/{TimeField-Hwt_oRbg.js → TimeField-De9qBimk.js} +49 -11
  201. package/dist/TimeField-De9qBimk.js.map +1 -0
  202. package/dist/TimeField.js +1 -1
  203. package/dist/{TimezoneMessage-BrKB_psP.js → TimezoneMessage-DEJX87S3.js} +2 -2
  204. package/dist/{TimezoneMessage-BrKB_psP.js.map → TimezoneMessage-DEJX87S3.js.map} +1 -1
  205. package/dist/Toast.js +2 -2
  206. package/dist/{Toaster-dVGVVcat.js → Toaster-BlwTxTLf.js} +2 -2
  207. package/dist/{Toaster-dVGVVcat.js.map → Toaster-BlwTxTLf.js.map} +1 -1
  208. package/dist/{Toaster-SqkX0Kes.js → Toaster-sO16N9b5.js} +26 -14
  209. package/dist/Toaster-sO16N9b5.js.map +1 -0
  210. package/dist/{Toolbar-DGHZpFi9.js → Toolbar-BhrHuIN7.js} +7 -7
  211. package/dist/{Toolbar-DGHZpFi9.js.map → Toolbar-BhrHuIN7.js.map} +1 -1
  212. package/dist/{Toolbar-CMulzswf.js → Toolbar-Buq2zze0.js} +6 -6
  213. package/dist/{Toolbar-CMulzswf.js.map → Toolbar-Buq2zze0.js.map} +1 -1
  214. package/dist/Toolbar.js +2 -2
  215. package/dist/{ToolbarButtonToggle-T8YnSJ5x.js → ToolbarButtonToggle-CNIaqVWl.js} +3 -3
  216. package/dist/{ToolbarButtonToggle-T8YnSJ5x.js.map → ToolbarButtonToggle-CNIaqVWl.js.map} +1 -1
  217. package/dist/{Tooltip-C_VcYS9P.js → Tooltip-CsTkZqMg.js} +3 -3
  218. package/dist/{Tooltip-C_VcYS9P.js.map → Tooltip-CsTkZqMg.js.map} +1 -1
  219. package/dist/Tooltip.js +1 -1
  220. package/dist/TreeSelectField.js +1 -1
  221. package/dist/{TreeSelectFieldSync-DT6uZ3Ca.js → TreeSelectFieldSync-B7w31kbz.js} +23 -23
  222. package/dist/{TreeSelectFieldSync-DT6uZ3Ca.js.map → TreeSelectFieldSync-B7w31kbz.js.map} +1 -1
  223. package/dist/TreeSelectFieldSync.css +57 -34
  224. package/dist/TreeSelectMenu.js +1 -1
  225. package/dist/{TreeSelectMenuSync-D2TvKxP-.js → TreeSelectMenuSync-EjxlvDZp.js} +5 -5
  226. package/dist/{TreeSelectMenuSync-D2TvKxP-.js.map → TreeSelectMenuSync-EjxlvDZp.js.map} +1 -1
  227. package/dist/{TypeaheadTextField-DgazozK7.js → TypeaheadTextField-DTOkaJda.js} +3 -3
  228. package/dist/{TypeaheadTextField-DgazozK7.js.map → TypeaheadTextField-DTOkaJda.js.map} +1 -1
  229. package/dist/TypeaheadTextField.js +1 -1
  230. package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js → YearlessDateInputWithPicker-DJUQypnF.js} +4 -4
  231. package/dist/{YearlessDateInputWithPicker-Bc8a33D5.js.map → YearlessDateInputWithPicker-DJUQypnF.js.map} +1 -1
  232. package/dist/assets/icons/st/gnav_messages_active.svg +1 -0
  233. package/dist/assets/icons/st/gnav_messages_inactive.svg +1 -0
  234. package/dist/assets/icons/st.ts +2 -0
  235. package/dist/beta.js +19 -18
  236. package/dist/beta.js.map +1 -1
  237. package/dist/{bulkActionTypes-SukoplGV.js → bulkActionTypes-bznuvizE.js} +2 -2
  238. package/dist/{bulkActionTypes-SukoplGV.js.map → bulkActionTypes-bznuvizE.js.map} +1 -1
  239. package/dist/{filter-state-D3-SYfuy.js → filter-state-DxwL15y1.js} +25 -25
  240. package/dist/{filter-state-D3-SYfuy.js.map → filter-state-DxwL15y1.js.map} +1 -1
  241. package/dist/{index-C2dOrf4N.js → index-Bn56UnMm.js} +2 -2
  242. package/dist/{index-C2dOrf4N.js.map → index-Bn56UnMm.js.map} +1 -1
  243. package/dist/{index-Bldaza5t.js → index-CyN5oapA.js} +2 -2
  244. package/dist/{index-Bldaza5t.js.map → index-CyN5oapA.js.map} +1 -1
  245. package/dist/index-DfZCfS0S.js +36 -0
  246. package/dist/index-DfZCfS0S.js.map +1 -0
  247. package/dist/{index.esm-C2ZhC_8d.js → index.esm-CQXMoq5w.js} +2 -2
  248. package/dist/{index.esm-C2ZhC_8d.js.map → index.esm-CQXMoq5w.js.map} +1 -1
  249. package/dist/index.js +171 -127
  250. package/dist/index.js.map +1 -1
  251. package/dist/index2.css +78 -73
  252. package/dist/{portalScopeClassNames-DA28LrXe.js → portalScopeClassNames-CMdDYHE0.js} +2 -2
  253. package/dist/{portalScopeClassNames-DA28LrXe.js.map → portalScopeClassNames-CMdDYHE0.js.map} +1 -1
  254. package/dist/{react-ORV84FjM.js → react-CG1BUt2y.js} +5 -38
  255. package/dist/react-CG1BUt2y.js.map +1 -0
  256. package/dist/src/beta/components/Details/Details.d.ts +25 -0
  257. package/dist/src/beta/components/Details/DetailsSummary.d.ts +121 -0
  258. package/dist/src/beta/components/Details/index.d.ts +4 -0
  259. package/dist/src/beta/components/Details/internal/DetailsArrow.d.ts +11 -0
  260. package/dist/src/beta/components/Details/internal/DetailsSummaryCells.d.ts +5 -0
  261. package/dist/src/beta/components/Page/Page.d.ts +1 -0
  262. package/dist/src/beta/components/Page/PageSidebar.d.ts +12 -0
  263. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +31 -4
  264. package/dist/src/beta/components/Table/DataTable/DataTableEditColumnsDrawer.d.ts +18 -0
  265. package/dist/src/beta/components/Table/DataTable/index.d.ts +1 -0
  266. package/dist/src/beta/components/Table/DataTable/internal/DataTableAddRow.d.ts +11 -0
  267. package/dist/src/beta/components/Table/DataTable/internal/DataTableBulkActionBar.d.ts +23 -0
  268. package/dist/src/beta/components/Table/DataTable/internal/DataTableFilterToolbar.d.ts +12 -0
  269. package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +3 -3
  270. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/EditColumnsDrawer.d.ts +29 -0
  271. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/columnLayout.d.ts +43 -0
  272. package/dist/src/beta/components/Table/DataTable/internal/columnEditing/toEditColumnsSection.d.ts +7 -0
  273. package/dist/src/beta/components/Table/DataTable/internal/context/tabbables/CellTabbablesQueue.d.ts +23 -0
  274. package/dist/src/beta/components/Table/DataTable/parts.d.ts +17 -0
  275. package/dist/src/beta/components/Table/DataTable/types.d.ts +256 -2
  276. package/dist/src/beta/components/Table/types.d.ts +6 -0
  277. package/dist/src/beta/components/deprecatedReexports/MultiSelectField.d.ts +4 -4
  278. package/dist/src/beta/components/deprecatedReexports/MultiSelectMenu.d.ts +4 -4
  279. package/dist/src/beta/components/deprecatedReexports/SelectField.d.ts +4 -4
  280. package/dist/src/beta/components/deprecatedReexports/SelectMenu.d.ts +4 -4
  281. package/dist/src/beta/components/index.d.ts +1 -0
  282. package/dist/src/components/DrillDown/DrillDownHeader.d.ts +11 -2
  283. package/dist/src/components/DrillDown/index.d.ts +1 -1
  284. package/dist/src/components/DrillDown/internal/DrillDownContext.d.ts +7 -2
  285. package/dist/src/components/DrillDown/internal/useDrillDownContextState.d.ts +6 -3
  286. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  287. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  288. package/dist/src/components/MultiSelectField/internal/types.d.ts +0 -1
  289. package/dist/src/components/Page/Page.d.ts +1 -0
  290. package/dist/src/components/Page/PageSidebar.d.ts +12 -0
  291. package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  292. package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  293. package/dist/src/hooks/usePrefersReducedMotion/index.d.ts +2 -0
  294. package/dist/src/hooks/usePrefersReducedMotion/prefersReducedMotion.d.ts +6 -0
  295. package/dist/src/hooks/usePrefersReducedMotion/useReducedMotion.d.ts +5 -0
  296. package/dist/src/internal/components/InlineMarkdown/InlineMarkdown.d.ts +8 -1
  297. package/dist/src/internal/components/InlineMarkdown/index.d.ts +1 -1
  298. package/dist/src/internal/components/Popover/Popover.d.ts +10 -5
  299. package/dist/src/internal/components/Popover/internal/verticalPlacement.d.ts +9 -0
  300. package/dist/src/internal/contexts/DisableConditionalUnmountWarningContext.d.ts +6 -0
  301. package/dist/src/internal/contexts/SuppressPanelSwapWarningContext.d.ts +13 -0
  302. package/dist/src/internal/functions/inlineMarkdown.d.ts +5 -2
  303. package/dist/src/internal/functions/stripInlineMarkdown.d.ts +4 -2
  304. package/dist/src/internal/hooks/index.d.ts +1 -0
  305. package/dist/src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +9 -1
  306. package/dist/src/internal/hooks/useSelectOrchestration.d.ts +0 -1
  307. package/dist/src/internal/hooks/useWarnOnConditionalUnmount/index.d.ts +1 -0
  308. package/dist/src/internal/hooks/useWarnOnConditionalUnmount/useWarnOnConditionalUnmount.d.ts +1 -0
  309. package/dist/src/internal/testing/keepMutationObserversAlive.d.ts +9 -0
  310. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +0 -1
  311. package/dist/src/internal/utils/inlineMarkdownRegex.d.ts +5 -0
  312. package/dist/stripInlineMarkdown-BV12XXzl.js +35 -0
  313. package/dist/stripInlineMarkdown-BV12XXzl.js.map +1 -0
  314. package/dist/{syncFilterUtils-SMop8ckR.js → syncFilterUtils-BNbAB0jz.js} +110 -39
  315. package/dist/syncFilterUtils-BNbAB0jz.js.map +1 -0
  316. package/dist/token/core/component-variables.scss +52 -49
  317. package/dist/token/core/component.d.ts +2 -0
  318. package/dist/token/core/component.js +66 -49
  319. package/dist/token/core/component.scss +42 -40
  320. package/dist/token/core/semantic-variables.scss +2 -0
  321. package/dist/token/core/semantic.d.ts +1 -0
  322. package/dist/token/core/semantic.js +13 -0
  323. package/dist/token/core/semantic.scss +1 -0
  324. package/dist/token.js +82 -49
  325. package/dist/token.js.map +1 -1
  326. package/dist/{treeSync-B38r1dRQ.js → treeSync-BELsX1gY.js} +3 -3
  327. package/dist/{treeSync-B38r1dRQ.js.map → treeSync-BELsX1gY.js.map} +1 -1
  328. package/dist/{use-reduced-motion-yYB9Tb0D.js → use-reduced-motion-CUshwaEW.js} +2 -2
  329. package/dist/{use-reduced-motion-yYB9Tb0D.js.map → use-reduced-motion-CUshwaEW.js.map} +1 -1
  330. package/dist/{useDrillDownContext-D5_NjqY4.js → useDrillDownContext-BLDjyNEt.js} +2 -2
  331. package/dist/{useDrillDownContext-D5_NjqY4.js.map → useDrillDownContext-BLDjyNEt.js.map} +1 -1
  332. package/dist/{useDrilldown-BOeeNUsy.js → useDrilldown-B8pIhfWa.js} +55 -22
  333. package/dist/{useDrilldown-BOeeNUsy.js.map → useDrilldown-B8pIhfWa.js.map} +1 -1
  334. package/dist/{useInfiniteCombobox-ynkeFngn.js → useInfiniteCombobox-ZZalag0-.js} +4 -4
  335. package/dist/{useInfiniteCombobox-ynkeFngn.js.map → useInfiniteCombobox-ZZalag0-.js.map} +1 -1
  336. package/dist/{useInitialFocus-CGybEc6x.js → useInitialFocus-KdirjHEb.js} +51 -16
  337. package/dist/useInitialFocus-KdirjHEb.js.map +1 -0
  338. package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js → useInvalidateOnOptionsChange-ChrPmbtS.js} +6 -6
  339. package/dist/{useInvalidateOnOptionsChange-BD2VBpbK.js.map → useInvalidateOnOptionsChange-ChrPmbtS.js.map} +1 -1
  340. package/dist/{usePopoverTransitionStates-CDXCdyKa.js → usePopoverTransitionStates-B1opfxxn.js} +1 -2
  341. package/dist/{usePopoverTransitionStates-CDXCdyKa.js.map → usePopoverTransitionStates-B1opfxxn.js.map} +1 -1
  342. package/dist/{usePrefersReducedMotion-DR9B_D6w.js → usePrefersReducedMotion-BLoVFiJL.js} +11 -3
  343. package/dist/usePrefersReducedMotion-BLoVFiJL.js.map +1 -0
  344. package/dist/usePrefersReducedMotion.js +2 -1
  345. package/dist/usePrefersReducedMotion.js.map +1 -1
  346. package/dist/{utils-CM48ODEJ.js → utils-DwLrXpmt.js} +2 -2
  347. package/dist/{utils-CM48ODEJ.js.map → utils-DwLrXpmt.js.map} +1 -1
  348. package/package.json +4 -4
  349. package/dist/AiMark-BfmK30vL.js.map +0 -1
  350. package/dist/Calendar-IzXG1aJw.js +0 -1761
  351. package/dist/Calendar-IzXG1aJw.js.map +0 -1
  352. package/dist/Chip-2OydLs66.js.map +0 -1
  353. package/dist/DataTable-DIXP9-Bx.js.map +0 -1
  354. package/dist/Dialog-_tHqOsbr.js.map +0 -1
  355. package/dist/DndHandleButton-BRlodkDO.js.map +0 -1
  356. package/dist/Drawer-D-ThWNp0.js.map +0 -1
  357. package/dist/DrillDown.module-1VBKDZRA.js +0 -27
  358. package/dist/DrillDown.module-1VBKDZRA.js.map +0 -1
  359. package/dist/FieldLabel-ThEmUiAq.js.map +0 -1
  360. package/dist/Lato.css +0 -24
  361. package/dist/ListView-YJscfG4x.js.map +0 -1
  362. package/dist/MultiSelectFieldSync-Cq5sena6.js.map +0 -1
  363. package/dist/MultiSelectMenuSync-BhNXsgAN.js.map +0 -1
  364. package/dist/NumberField-CxmJx4gs.js +0 -252
  365. package/dist/NumberField-CxmJx4gs.js.map +0 -1
  366. package/dist/Page-ZSHNJs7z.js.map +0 -1
  367. package/dist/SelectFieldSync-CeazN-gI.js.map +0 -1
  368. package/dist/SelectMenuSync-CPpE6vUG.js.map +0 -1
  369. package/dist/SelectTriggerBase.module-Dt4-6YvC.js +0 -40
  370. package/dist/SelectTriggerBase.module-Dt4-6YvC.js.map +0 -1
  371. package/dist/Tab-DR5YYXkq.js.map +0 -1
  372. package/dist/TextField.module-DklyLNKz.js +0 -25
  373. package/dist/TextField.module-DklyLNKz.js.map +0 -1
  374. package/dist/ThemeProvider.module-B9qgsQ8S.js +0 -8
  375. package/dist/ThemeProvider.module-B9qgsQ8S.js.map +0 -1
  376. package/dist/TimeField-Hwt_oRbg.js.map +0 -1
  377. package/dist/Toaster-SqkX0Kes.js.map +0 -1
  378. package/dist/app-css.379821199ec8105f2efd.bundle.css +0 -57579
  379. package/dist/bugfix-71.1orion.css +0 -491
  380. package/dist/design-system.859a127fc3b66175f0f0.bundle.css +0 -34599
  381. package/dist/drag_indicator-BRHAPLSJ.js +0 -6
  382. package/dist/drag_indicator-BRHAPLSJ.js.map +0 -1
  383. package/dist/favicon.ico +0 -0
  384. package/dist/kendo-css.ed976099efbbcc8b0639.bundle.css +0 -20601
  385. package/dist/luxon-wpz4A-OQ.js.map +0 -1
  386. package/dist/main.e26f249642be9a4bd747.bundle.css +0 -50386
  387. package/dist/react-ORV84FjM.js.map +0 -1
  388. package/dist/stripInlineMarkdown-BhYLEiXu.js +0 -25
  389. package/dist/stripInlineMarkdown-BhYLEiXu.js.map +0 -1
  390. package/dist/sui.a9dc22e36a27b7ea1ee8.bundle.css +0 -41149
  391. package/dist/syncFilterUtils-SMop8ckR.js.map +0 -1
  392. package/dist/useInitialFocus-CGybEc6x.js.map +0 -1
  393. package/dist/useNumberField-CXFYUZ_n.js.map +0 -1
  394. package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +0 -1
  395. package/dist/vite.svg +0 -1
@@ -1,15 +1,15 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { forwardRef, useRef, useId, useMemo, useEffect, useState, useCallback } from 'react';
3
- import { u as useBulkActionRunner, a as useToggleSelection, r as resolveBulkActionCheckState, b as resolveBulkActionLabel, M as MultiSelectOptions } from './bulkActionTypes-SukoplGV.js';
4
- import { O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-BD2VBpbK.js';
5
- import { u as useSelectOrchestration, a as useProcessedOptions, b as buildSelectItems, s as shouldShowAddNewItem, A as AddNewItemButton, d as defaultSyncFilter, t as toSyncFilterFn } from './syncFilterUtils-SMop8ckR.js';
6
- import { M as MenuFooter } from './MenuFooter-D__gg92C.js';
2
+ import { forwardRef, useRef, useId, useMemo, useEffect, useState, useLayoutEffect, useCallback } from 'react';
3
+ import { u as useBulkActionRunner, a as useToggleSelection, r as resolveBulkActionCheckState, b as resolveBulkActionLabel, M as MultiSelectOptions } from './bulkActionTypes-bznuvizE.js';
4
+ import { O as OptionsDialog, a as OptionsPopover, u as useInvalidateOnOptionsChange } from './useInvalidateOnOptionsChange-ChrPmbtS.js';
5
+ import { u as useSelectOrchestration, a as useProcessedOptions, b as buildSelectItems, s as shouldShowAddNewItem, A as AddNewItemButton, d as defaultSyncFilter, t as toSyncFilterFn } from './syncFilterUtils-BNbAB0jz.js';
6
+ import { M as MenuFooter } from './MenuFooter-Dzhv0EfD.js';
7
7
  import { u as useMenuInteraction } from './useMenuInteraction-nNF1dsrp.js';
8
8
  import { r as resolveConfirmation, u as useConfirmationDraft } from './confirmationTypes-DeRtO_Cw.js';
9
9
  import { a as arrayIdsEqual } from './arrayIdsEqual-DnevhwqN.js';
10
10
  import { C as COMMON_PART, A as ANV_PART_ATTR } from './anvParts-DFVq7-Cm.js';
11
11
  import { u as useDebouncedCallback } from './useDebouncedCallback-DLkapjcP.js';
12
- import { S as SearchField } from './SearchField-ChoNtw8w.js';
12
+ import { S as SearchField } from './SearchField-Bk-Ltu4v.js';
13
13
  import { w as warnOnce } from './warnOnce-Y9PRHcU4.js';
14
14
 
15
15
  const PARTS = {
@@ -65,7 +65,6 @@ const MultiSelectMenu = forwardRef((props, ref) => {
65
65
  displayAs,
66
66
  initialLoad,
67
67
  initialLoadPerformed,
68
- setInitialLoadPerformed,
69
68
  options,
70
69
  loading,
71
70
  loadingMore,
@@ -112,6 +111,10 @@ const MultiSelectMenu = forwardRef((props, ref) => {
112
111
  }, [confirmation.enabled, selectAllProp]);
113
112
  const [inputValue, setInputValue] = useState("");
114
113
  const searchValue = disableSearch ? "" : inputValue;
114
+ const searchValueRef = useRef(searchValue);
115
+ useLayoutEffect(() => {
116
+ searchValueRef.current = searchValue;
117
+ });
115
118
  const { pinnedSections, ungroupedItems, groupSections } = useProcessedOptions(
116
119
  {
117
120
  options,
@@ -305,37 +308,21 @@ const MultiSelectMenu = forwardRef((props, ref) => {
305
308
  },
306
309
  [getMenuProps, onMenuKeyDown]
307
310
  );
311
+ const wantsInitialLoad = initialLoad === "immediate" || initialLoad === "open" && isOpen;
308
312
  useEffect(() => {
309
- const performInitialLoad = async () => {
310
- if (initialLoad === "immediate" && !initialLoadPerformed) {
311
- await loadOptions("", { initial: true });
312
- setInitialLoadPerformed(true);
313
- }
314
- };
315
- performInitialLoad();
316
- }, [loadOptions, initialLoadPerformed, initialLoad, setInitialLoadPerformed]);
313
+ if (wantsInitialLoad && !initialLoadPerformed) {
314
+ loadOptions(searchValueRef.current, { initial: true });
315
+ }
316
+ }, [loadOptions, initialLoadPerformed, wantsInitialLoad]);
317
317
  const prevIsOpenRef = useRef(false);
318
318
  useEffect(() => {
319
319
  const wasOpen = prevIsOpenRef.current;
320
320
  prevIsOpenRef.current = isOpen;
321
- if (isOpen && !wasOpen) {
322
- if (initialLoad === "open" && !initialLoadPerformed) {
323
- loadOptions("", { initial: true }).then(() => {
324
- setInitialLoadPerformed(true);
325
- });
326
- }
327
- }
328
321
  if (!isOpen && wasOpen) {
329
322
  setInputValue("");
330
323
  loadOptions("", { initial: true });
331
324
  }
332
- }, [
333
- isOpen,
334
- initialLoad,
335
- initialLoadPerformed,
336
- loadOptions,
337
- setInitialLoadPerformed
338
- ]);
325
+ }, [isOpen, loadOptions]);
339
326
  useEffect(() => {
340
327
  if (!isOpen || displayAs !== "popover") return;
341
328
  const frameId = requestAnimationFrame(() => {
@@ -617,4 +604,4 @@ const MultiSelectMenuSync = (props) => {
617
604
  };
618
605
 
619
606
  export { MultiSelectMenu as M, MultiSelectMenuSync as a };
620
- //# sourceMappingURL=MultiSelectMenuSync-BhNXsgAN.js.map
607
+ //# sourceMappingURL=MultiSelectMenuSync-AVcf8ZUZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MultiSelectMenuSync-AVcf8ZUZ.js","sources":["../src/components/MultiSelectMenu/parts.ts","../src/components/MultiSelectMenu/MultiSelectMenu.tsx","../src/components/MultiSelectMenu/MultiSelectMenuSync.tsx"],"sourcesContent":["import { COMMON_PART } from \"../../internal/constants/anvParts\";\n\n/**\n * `data-anv-part` names for MultiSelectMenu interactive sub-elements.\n *\n * There is no wrapper root — attach consumer `data-*` (e.g. `data-cy`) via\n * props; they are merged into the trigger render-prop bag. Portaled\n * `menu` / `option` / `popover` / `dialog` / footer buttons come from shared\n * internals (not redeclared here).\n */\nexport const PARTS = {\n trigger: COMMON_PART.trigger,\n input: COMMON_PART.input,\n} as const;\n","import type {\n MultiSelectMenuHandle,\n MultiSelectMenuOption,\n MultiSelectMenuProps,\n} from \"./types\";\nimport {\n type ChangeEvent,\n type KeyboardEvent,\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { warnOnce } from \"../../internal/functions\";\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 { shouldShowAddNewItem } from \"../../internal/types/addNewItemTypes\";\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 type { SelectItem } from \"../../internal/types/selectFieldInternalTypes\";\nimport { useSelectOrchestration } from \"../../internal/hooks/useSelectOrchestration\";\nimport { useConfirmationDraft } from \"../../internal/hooks/useConfirmationDraft\";\nimport { useBulkActionRunner } from \"../../internal/hooks/useBulkActionRunner\";\nimport {\n resolveBulkActionCheckState,\n resolveBulkActionLabel,\n} from \"../../internal/types/bulkActionTypes\";\nimport { resolveConfirmation } from \"../../internal/types/confirmationTypes\";\nimport { arrayIdsEqual } from \"../../internal/utils/arrayIdsEqual\";\nimport { SearchField } from \"../../components\";\nimport type { DataAttributes } from \"../../types\";\nimport { ANV_PART_ATTR } from \"../../internal/constants/anvParts\";\nimport { PARTS } from \"./parts\";\n\n/** Multi-select menu opened from a custom trigger. Selection is controlled. */\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 dataAttributes = Object.fromEntries(\n Object.entries(props).filter(([key]) => key.startsWith(\"data-\")),\n ) as DataAttributes;\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 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 // Carry the raw `checkState` (which may be a function of the current\n // selection) through here; it is resolved against the live draft in\n // `bulkActionItems` so the row can reflect the current selection.\n const selectAll = useMemo(\n () =>\n selectAllProp\n ? {\n label: selectAllProp.label,\n onClick: selectAllProp.onClick,\n compute: selectAllProp.compute,\n checkState: selectAllProp.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,\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 // A reload after `invalidate` searches for the text still in the input.\n // Read through a ref so typing during a pending first load starts no extra load.\n const searchValueRef = useRef(searchValue);\n useLayoutEffect(() => {\n searchValueRef.current = searchValue;\n });\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: {\n id: \"select-all\",\n label: resolveBulkActionLabel(selectAll.label, draftSelectedOptions),\n },\n checkState: bulkPending\n ? \"loading\"\n : resolveBulkActionCheckState(\n selectAll.checkState,\n draftSelectedOptions,\n ),\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: resolveBulkActionLabel(\n config.label,\n draftSelectedOptions,\n `Select items matching \"${searchValue}\"`,\n ),\n },\n checkState: bulkPending\n ? \"loading\"\n : resolveBulkActionCheckState(\n config.checkState,\n draftSelectedOptions,\n ),\n });\n }\n return items;\n }, [\n selectAll,\n selectFiltered,\n searchValue,\n loading,\n bulkPending,\n draftSelectedOptions,\n ]);\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 // Apply, Clear, and add-new set this so close handlers skip draft cancel.\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 but keep the\n // menu open so confirmation/draft UX is not interrupted.\n disabled: bulkPending,\n closeOnDisabled: false,\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 const wantsInitialLoad =\n initialLoad === \"immediate\" || (initialLoad === \"open\" && isOpen);\n useEffect(() => {\n if (wantsInitialLoad && !initialLoadPerformed) {\n loadOptions(searchValueRef.current, { initial: true });\n }\n }, [loadOptions, initialLoadPerformed, wantsInitialLoad]);\n\n const prevIsOpenRef = useRef(false);\n useEffect(() => {\n const wasOpen = prevIsOpenRef.current;\n prevIsOpenRef.current = isOpen;\n\n if (!isOpen && wasOpen) {\n setInputValue(\"\");\n loadOptions(\"\", { initial: true });\n }\n }, [isOpen, loadOptions]);\n\n // Wait a frame so the popover is in the tree before focusing search/list.\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 = {\n ...getTriggerProps(),\n ...dataAttributes,\n [ANV_PART_ATTR]: PARTS.trigger,\n };\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 {...{ [ANV_PART_ATTR]: PARTS.input }}\n />\n ) : null;\n\n const addNewItemButton = shouldShowAddNewItem(\n onAddNewItem,\n addItemLabel,\n inputValue,\n ) ? (\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 { useMemo, useRef } from \"react\";\nimport type { MatchSorterOptions } from \"match-sorter\";\nimport { MultiSelectMenu } from \"./MultiSelectMenu\";\nimport type {\n MultiSelectMenuHandle,\n MultiSelectMenuProps,\n MultiSelectMenuOption,\n} from \"./types\";\nimport type { CheckState } from \"../../types\";\nimport {\n type SyncFilterFn,\n defaultSyncFilter,\n toSyncFilterFn,\n} from \"../../internal/functions/syncFilterUtils\";\nimport { useInvalidateOnOptionsChange } from \"../../internal/hooks/useInvalidateOnOptionsChange\";\n\nconst getEnabledSelectionStats = (\n options: MultiSelectMenuOption[],\n current: MultiSelectMenuOption[],\n) => {\n const enabledOptions = options.filter((opt) => !opt.disabled);\n const enabledIds = new Set(enabledOptions.map((opt) => opt.id));\n const selectedCount = current.filter((v) => enabledIds.has(v.id)).length;\n const totalCount = enabledOptions.length;\n const allSelected = totalCount > 0 && selectedCount === totalCount;\n\n return { enabledOptions, enabledIds, selectedCount, allSelected };\n};\n\nexport type MultiSelectMenuSyncProps<\n TID extends string | number = string | number,\n> = Omit<\n MultiSelectMenuProps<TID>,\n | \"loadOptions\"\n | \"lazy\"\n | \"debounceMs\"\n | \"cache\"\n | \"initialLoad\"\n | \"selectAll\"\n | \"selectFiltered\"\n> & {\n /** In-memory options. Search filters this list instead of calling `loadOptions`. */\n options: MultiSelectMenuOption<TID>[];\n /**\n * Filter and sort as the user types. A function returns the display order;\n * a match-sorter options object customizes the default. Defaults to\n * match-sorter on `label` and `searchText`.\n */\n filter?:\n | SyncFilterFn<TID, MultiSelectMenuOption<TID>>\n | MatchSorterOptions<MultiSelectMenuOption<TID>>;\n /**\n * Select All when search is empty. `true` uses the default label; an object\n * customizes the label. Click and check state are owned by Sync.\n */\n selectAll?: boolean | { label?: string | ((checked: boolean) => string) };\n /**\n * Select Filtered when search is non-empty. `true` uses the default label;\n * a function may return a custom label. Click and check state are owned by\n * Sync.\n */\n selectFiltered?: boolean | ((searchValue: string) => { label?: string });\n};\n\n/** {@link MultiSelectMenu} for a client-side `options` list. */\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 labelProp =\n typeof selectAllProp === \"object\" ? selectAllProp.label : undefined;\n\n const checkState = (current: MultiSelectMenuOption[]): CheckState => {\n const { selectedCount, allSelected } = getEnabledSelectionStats(\n options,\n current,\n );\n return allSelected\n ? \"checked\"\n : selectedCount > 0\n ? \"indeterminate\"\n : \"unchecked\";\n };\n\n const label =\n typeof labelProp === \"function\"\n ? (current: MultiSelectMenuOption[]) =>\n labelProp(getEnabledSelectionStats(options, current).allSelected)\n : labelProp;\n\n const compute = (current: MultiSelectMenuOption[]) => {\n const { enabledOptions, enabledIds } = getEnabledSelectionStats(\n options,\n current,\n );\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]);\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\n const label =\n (typeof selectFilteredProp === \"function\"\n ? selectFilteredProp(searchValue).label\n : undefined) ?? `Select items matching \"${searchValue}\"`;\n\n const checkState = (current: MultiSelectMenuOption[]): CheckState => {\n const currentIds = new Set(current.map((v) => v.id));\n const allFilteredSelected =\n enabledFilteredOptions.length > 0 &&\n enabledFilteredOptions.every((opt) => currentIds.has(opt.id));\n const someFilteredSelected = enabledFilteredOptions.some((opt) =>\n currentIds.has(opt.id),\n );\n\n return allFilteredSelected\n ? \"checked\"\n : someFilteredSelected\n ? \"indeterminate\"\n : \"unchecked\";\n };\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, filter]);\n\n const fieldRef = useRef<MultiSelectMenuHandle>(null);\n useInvalidateOnOptionsChange(fieldRef, 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,10 +1,27 @@
1
- import { useState, useEffect, useMemo, useRef, useCallback } from 'react';
2
- import { d as maskitoNumberOptionsGenerator, e as maskitoParseNumber, f as maskitoStringifyNumber, u as useMaskito } from './index.esm-C2ZhC_8d.js';
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { useState, useEffect, useMemo, useRef, useCallback, forwardRef, useId, isValidElement } from 'react';
4
+ import { c as cx } from './index-De1g9FRV.js';
5
+ import { S as Spinner } from './Spinner-B7tTWcP6.js';
6
+ import { t as textFieldStyles } from './TextField.module-B3y6caP9.js';
7
+ import { w as warnDeprecatedErrorUsage } from './utils-DwLrXpmt.js';
8
+ import { B as Button } from './Button-B_E6ybA-.js';
9
+ import { I as Icon } from './Icon-B5zwN7GD.js';
10
+ import { S as SvgAdd } from './add-BcQkAUip.js';
11
+ import { F as FieldLabel } from './FieldLabel-Cn559Brf.js';
12
+ import { f as maskitoNumberOptionsGenerator, g as maskitoParseNumber, h as maskitoStringifyNumber, u as useMaskito } from './index.esm-CQXMoq5w.js';
3
13
  import { u as usePrevious } from './usePrevious-Bvq-5auG.js';
4
14
  import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
5
15
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
16
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
17
+ import { u as useFocusWithin } from './useFocusWithin-hi77jsrB.js';
18
+ import { w as warnOnce } from './warnOnce-Y9PRHcU4.js';
19
+ import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
20
+ import { useTrackingId } from './useTrackingId.js';
21
+ import { s as stripInlineMarkdown } from './stripInlineMarkdown-BV12XXzl.js';
22
+ import { H as Helper } from './Helper-BHpOgh7k.js';
6
23
 
7
- function usePlatform() {
24
+ import './NumberField.css';function usePlatform() {
8
25
  const [platform, setPlatform] = useState(
9
26
  detectPlatform()
10
27
  );
@@ -1562,5 +1579,234 @@ function convertValueProp(v, { maskitoParams }) {
1562
1579
  );
1563
1580
  }
1564
1581
 
1565
- export { useNumberField as u };
1566
- //# sourceMappingURL=useNumberField-CXFYUZ_n.js.map
1582
+ const small = "_small_1n8zj_31";
1583
+ const large = "_large_1n8zj_36";
1584
+ const numberFieldStyles = {
1585
+ "stepper-buttons": "_stepper-buttons_1n8zj_1",
1586
+ "stepper-button": "_stepper-button_1n8zj_1",
1587
+ small: small,
1588
+ large: large
1589
+ };
1590
+
1591
+ const 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" }));
1592
+
1593
+ const NumberField = forwardRef(
1594
+ (props, ref) => {
1595
+ const { layoutStyles, componentProps } = useLayoutPropsUtil(props);
1596
+ const {
1597
+ className,
1598
+ error,
1599
+ errorAriaLive: _errorAriaLive,
1600
+ defaultValue: defaultValueProp,
1601
+ value: valueProp,
1602
+ label,
1603
+ moreInfo,
1604
+ prefix,
1605
+ suffix,
1606
+ size,
1607
+ required,
1608
+ onChange: onChangeProp,
1609
+ onFocus: onFocusProp,
1610
+ onBlur: onBlurProp,
1611
+ id: idProp,
1612
+ description,
1613
+ hint,
1614
+ warning,
1615
+ loading,
1616
+ disabled,
1617
+ readOnly,
1618
+ labelProps,
1619
+ style,
1620
+ placeholder,
1621
+ minValue,
1622
+ maxValue,
1623
+ maximumFractionDigits = 0,
1624
+ minimumFractionDigits = 0,
1625
+ step = 1,
1626
+ hideControls = false,
1627
+ hideLabel = false,
1628
+ isHighlighted = false,
1629
+ ...rest
1630
+ } = componentProps;
1631
+ const numberFieldRef = useRef(null);
1632
+ const { props: wrapperProps } = useFocusWithin({
1633
+ onFocus: (e) => {
1634
+ onFocusProp?.(e);
1635
+ },
1636
+ onBlur: (e) => {
1637
+ onBlurProp?.(e);
1638
+ }
1639
+ });
1640
+ const { inputProps, inputRef, incrementButtonProps, decrementButtonProps } = useNumberField({
1641
+ minValue,
1642
+ maxValue,
1643
+ maximumFractionDigits,
1644
+ minimumFractionDigits,
1645
+ step,
1646
+ value: valueProp,
1647
+ defaultValue: defaultValueProp,
1648
+ onChange: onChangeProp,
1649
+ label,
1650
+ readOnly
1651
+ });
1652
+ const combinedInputRef = useMergeRefs([numberFieldRef, inputRef, ref]);
1653
+ const labelUid = useId();
1654
+ const id = idProp ?? labelUid;
1655
+ const prefixUid = useId();
1656
+ const suffixUid = useId();
1657
+ const helperUid = useId();
1658
+ const moreInfoUid = useId();
1659
+ warnDeprecatedErrorUsage("NumberField", error);
1660
+ if (label === void 0) {
1661
+ warnOnce(
1662
+ "NumberField: label will be required in v4.0.0. Use hideLabel to visually hide the label."
1663
+ );
1664
+ }
1665
+ const errorMessages = typeof error === "boolean" || error === void 0 ? void 0 : error;
1666
+ const hasHelperText = hint || errorMessages || warning || description;
1667
+ const ariaDescribedBy = [hasHelperText && helperUid, moreInfo && moreInfoUid].filter(Boolean).join(" ") || void 0;
1668
+ const styleCombined = { ...style, ...layoutStyles };
1669
+ const data = {
1670
+ label: childrenToString(props.label),
1671
+ prefix: childrenToString(props.prefix),
1672
+ suffix: childrenToString(props.suffix),
1673
+ description: childrenToString(props.description),
1674
+ size: props.size,
1675
+ minValue: props.minValue,
1676
+ maxValue: props.maxValue,
1677
+ step: props.step,
1678
+ maximumFractionDigits: props.maximumFractionDigits,
1679
+ minimumFractionDigits: props.minimumFractionDigits
1680
+ };
1681
+ const trackingId = useTrackingId({
1682
+ name: "NumberField",
1683
+ data,
1684
+ hasOverride: !!props["data-tracking-id"]
1685
+ });
1686
+ return /* @__PURE__ */ jsxs(
1687
+ "div",
1688
+ {
1689
+ className: cx(textFieldStyles["textfield"], className),
1690
+ "data-anv": "number-field",
1691
+ style: styleCombined,
1692
+ ...wrapperProps,
1693
+ children: [
1694
+ label && !hideLabel && /* @__PURE__ */ jsx(
1695
+ FieldLabel,
1696
+ {
1697
+ moreInfo,
1698
+ moreInfoId: moreInfo ? moreInfoUid : void 0,
1699
+ required,
1700
+ htmlFor: id,
1701
+ ...labelProps,
1702
+ children: label
1703
+ }
1704
+ ),
1705
+ /* @__PURE__ */ jsxs(
1706
+ "div",
1707
+ {
1708
+ className: cx(textFieldStyles["input-wrapper"], {
1709
+ [textFieldStyles["small"]]: size === "small",
1710
+ [textFieldStyles["large"]]: size === "large",
1711
+ [textFieldStyles["highlight"]]: isHighlighted,
1712
+ [numberFieldStyles["small"]]: size === "small",
1713
+ [numberFieldStyles["large"]]: size === "large"
1714
+ }),
1715
+ role: "presentation",
1716
+ onClick: () => numberFieldRef.current?.focus(),
1717
+ children: [
1718
+ prefix ? /* @__PURE__ */ jsx(
1719
+ "div",
1720
+ {
1721
+ "aria-hidden": true,
1722
+ className: textFieldStyles["prefix"],
1723
+ id: `prefix${prefixUid}`,
1724
+ children: prefix
1725
+ }
1726
+ ) : null,
1727
+ /* @__PURE__ */ jsx(
1728
+ "input",
1729
+ {
1730
+ id,
1731
+ className: cx(textFieldStyles["input"], {
1732
+ [textFieldStyles["error"]]: error
1733
+ }),
1734
+ "data-tracking-id": trackingId,
1735
+ ...rest,
1736
+ ...inputProps,
1737
+ required,
1738
+ placeholder,
1739
+ readOnly,
1740
+ disabled,
1741
+ ref: combinedInputRef,
1742
+ "aria-label": (
1743
+ // TODO(v4.0.0): remove typeof check — label will always be string
1744
+ hideLabel && typeof label === "string" ? stripInlineMarkdown(label) : label ? void 0 : placeholder
1745
+ ),
1746
+ "aria-describedby": ariaDescribedBy,
1747
+ "aria-invalid": error ? !!error : void 0
1748
+ }
1749
+ ),
1750
+ loading ? /* @__PURE__ */ jsx(
1751
+ "div",
1752
+ {
1753
+ className: textFieldStyles["loading-spinner-wrapper"],
1754
+ "data-testid": "spinner",
1755
+ children: /* @__PURE__ */ jsx(Spinner, { size: "small" })
1756
+ }
1757
+ ) : null,
1758
+ suffix ? /* @__PURE__ */ jsx(
1759
+ "div",
1760
+ {
1761
+ className: textFieldStyles["suffix"],
1762
+ "aria-hidden": true,
1763
+ id: `suffix${suffixUid}`,
1764
+ children: suffix
1765
+ }
1766
+ ) : null,
1767
+ !hideControls && !disabled && !readOnly && /* @__PURE__ */ jsxs("div", { className: numberFieldStyles["stepper-buttons"], children: [
1768
+ /* @__PURE__ */ jsx(
1769
+ Button,
1770
+ {
1771
+ appearance: "secondary",
1772
+ size: "small",
1773
+ className: numberFieldStyles["stepper-button"],
1774
+ ...decrementButtonProps,
1775
+ children: /* @__PURE__ */ jsx(Icon, { svg: SvgRemove })
1776
+ }
1777
+ ),
1778
+ /* @__PURE__ */ jsx(
1779
+ Button,
1780
+ {
1781
+ appearance: "secondary",
1782
+ size: "small",
1783
+ className: numberFieldStyles["stepper-button"],
1784
+ ...incrementButtonProps,
1785
+ children: /* @__PURE__ */ jsx(Icon, { svg: SvgAdd })
1786
+ }
1787
+ )
1788
+ ] })
1789
+ ]
1790
+ }
1791
+ ),
1792
+ hasHelperText ? /* @__PURE__ */ jsx(
1793
+ Helper,
1794
+ {
1795
+ id: helperUid,
1796
+ hint,
1797
+ showCounter: false,
1798
+ error: typeof errorMessages === "string" || Array.isArray(errorMessages) ? errorMessages : void 0,
1799
+ warning,
1800
+ errorMessage: isValidElement(errorMessages) ? errorMessages : void 0,
1801
+ description
1802
+ }
1803
+ ) : null
1804
+ ]
1805
+ }
1806
+ );
1807
+ }
1808
+ );
1809
+ NumberField.displayName = "NumberField";
1810
+
1811
+ export { NumberField as N, useNumberField as u };
1812
+ //# sourceMappingURL=NumberField-DjOvcCa1.js.map