@servicetitan/anvil2 3.7.1 → 3.9.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 (418) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/{AiMark-DKAIkwNU.js → AiMark-2_O4tKv_.js} +5 -5
  3. package/dist/AiMark-2_O4tKv_.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-tsu15fCc.js → Alert-DtM7NDN9.js} +3 -3
  6. package/dist/Alert-DtM7NDN9.js.map +1 -0
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-DU0J4111.js → Announcement-CGglhMfd.js} +3 -3
  9. package/dist/Announcement-CGglhMfd.js.map +1 -0
  10. package/dist/Announcement.js +1 -1
  11. package/dist/AnvilProvider-b3gvW6Md.js.map +1 -1
  12. package/dist/Avatar-CoQcOHWU.js.map +1 -1
  13. package/dist/Avatar-DX96Mxe7.js.map +1 -1
  14. package/dist/Badge-BNrYBFiU.js.map +1 -1
  15. package/dist/Badge.css +2 -3
  16. package/dist/{Breadcrumbs-CoqJO7Ca.js → Breadcrumbs-Bmqmw5F5.js} +4 -4
  17. package/dist/Breadcrumbs-Bmqmw5F5.js.map +1 -0
  18. package/dist/Breadcrumbs.js +1 -1
  19. package/dist/{Button-BNzCI47m.js → Button-Dwh_Nd4l.js} +6 -8
  20. package/dist/Button-Dwh_Nd4l.js.map +1 -0
  21. package/dist/Button.js +1 -1
  22. package/dist/ButtonCompound-D7kA0qXr.js.map +1 -1
  23. package/dist/{ButtonLink-PlW08u41.js → ButtonLink-DOFAxNvC.js} +2 -2
  24. package/dist/ButtonLink-DOFAxNvC.js.map +1 -0
  25. package/dist/ButtonLink.js +1 -1
  26. package/dist/{ButtonToggle-DBGc7dIn.js → ButtonToggle-DKDBD1g3.js} +2 -2
  27. package/dist/ButtonToggle-DKDBD1g3.js.map +1 -0
  28. package/dist/ButtonToggle.js +1 -1
  29. package/dist/{Calendar-Csw2CkqE.js → Calendar-CUgFbnKj.js} +2 -2
  30. package/dist/Calendar-CUgFbnKj.js.map +1 -0
  31. package/dist/{Calendar-DnwCL7gm.js → Calendar-D_fqe0-J.js} +11 -4
  32. package/dist/Calendar-D_fqe0-J.js.map +1 -0
  33. package/dist/Calendar.js +2 -2
  34. package/dist/Card-Bt0F6RTq.js.map +1 -1
  35. package/dist/{Checkbox-DGU3JwZA.js → Checkbox-4wRmrann.js} +2 -2
  36. package/dist/Checkbox-4wRmrann.js.map +1 -0
  37. package/dist/{Checkbox-Cmn1o3Ta.js → Checkbox-DoxWcbfv.js} +5 -5
  38. package/dist/Checkbox-DoxWcbfv.js.map +1 -0
  39. package/dist/Checkbox.js +1 -1
  40. package/dist/{Chip-BsGckplA.js → Chip-D6Q0J0Xe.js} +3 -3
  41. package/dist/Chip-D6Q0J0Xe.js.map +1 -0
  42. package/dist/Chip.js +1 -1
  43. package/dist/Combobox.js +1 -1
  44. package/dist/{DataTable-BLK4-7QQ.js → DataTable-CRzQKN_P.js} +11 -11
  45. package/dist/DataTable-CRzQKN_P.js.map +1 -0
  46. package/dist/DataTable.css +2 -3
  47. package/dist/{DateFieldRange-BnNrQvuG.js → DateFieldRange-CHbrYgsD.js} +12 -5
  48. package/dist/DateFieldRange-CHbrYgsD.js.map +1 -0
  49. package/dist/DateFieldRange.js +1 -1
  50. package/dist/{DateFieldSingle-CwcV_AOp.js → DateFieldSingle-D-KZ3NL0.js} +12 -5
  51. package/dist/DateFieldSingle-D-KZ3NL0.js.map +1 -0
  52. package/dist/DateFieldSingle.js +1 -1
  53. package/dist/{DateFieldYearless-HntvaWSJ.js → DateFieldYearless-DouEX24o.js} +5 -5
  54. package/dist/DateFieldYearless-DouEX24o.js.map +1 -0
  55. package/dist/DateFieldYearless.js +1 -1
  56. package/dist/{DateFieldYearlessRange-BPvJvBob.js → DateFieldYearlessRange-B_bImgyn.js} +5 -5
  57. package/dist/DateFieldYearlessRange-B_bImgyn.js.map +1 -0
  58. package/dist/DateFieldYearlessRange.js +1 -1
  59. package/dist/{DaysOfTheWeek-4Cd2WK7u.js → DaysOfTheWeek--FBi44iw.js} +5 -5
  60. package/dist/DaysOfTheWeek--FBi44iw.js.map +1 -0
  61. package/dist/DaysOfTheWeek.js +1 -1
  62. package/dist/{Details-DkteVZbk.js → Details-CVA5zbrR.js} +2 -2
  63. package/dist/Details-CVA5zbrR.js.map +1 -0
  64. package/dist/Details.js +1 -1
  65. package/dist/{Dialog-CE2fxzJR.js → Dialog-Clh3jaX8.js} +5 -5
  66. package/dist/Dialog-Clh3jaX8.js.map +1 -0
  67. package/dist/Dialog.js +1 -1
  68. package/dist/{DialogCancelButton-DmSUPuCR.js → DialogCancelButton-DBL0aKTK.js} +2 -2
  69. package/dist/DialogCancelButton-DBL0aKTK.js.map +1 -0
  70. package/dist/DialogContext-DBgtApl9.js.map +1 -1
  71. package/dist/Divider-C7fp5Xb6.js.map +1 -1
  72. package/dist/Dnd.js +2 -2
  73. package/dist/{DndHandleButton-Ck5nc8w2.js → DndHandleButton-BRlodkDO.js} +2 -2
  74. package/dist/{DndHandleButton-Ck5nc8w2.js.map → DndHandleButton-BRlodkDO.js.map} +1 -1
  75. package/dist/DndSort.js +4 -4
  76. package/dist/DndSort.js.map +1 -1
  77. package/dist/{Drawer-CWLwXp1D.js → Drawer-h2Mut1lB.js} +61 -34
  78. package/dist/Drawer-h2Mut1lB.js.map +1 -0
  79. package/dist/Drawer.css +34 -28
  80. package/dist/Drawer.js +1 -1
  81. package/dist/DrawerContext-BSpnzXVZ.js.map +1 -1
  82. package/dist/DrillDown.js +1 -1
  83. package/dist/DrillDown.module-D1Bf9_yP.js.map +1 -1
  84. package/dist/{EditCard-DqFAx5cl.js → EditCard-QohYSylF.js} +4 -4
  85. package/dist/EditCard-QohYSylF.js.map +1 -0
  86. package/dist/EditCard.js +1 -1
  87. package/dist/{FieldLabel-v6vMVVWB.js → FieldLabel-SzH61hCb.js} +3 -3
  88. package/dist/FieldLabel-SzH61hCb.js.map +1 -0
  89. package/dist/FieldLabel.js +1 -1
  90. package/dist/{FilterBar-Ce22r7lY.js → FilterBar-CBTAkEri.js} +8 -8
  91. package/dist/FilterBar-CBTAkEri.js.map +1 -0
  92. package/dist/FilterBar.js +1 -1
  93. package/dist/{Flex-Bb3iHExM.js → Flex-CRF7gj0_.js} +3 -3
  94. package/dist/Flex-CRF7gj0_.js.map +1 -0
  95. package/dist/Flex.css +2 -4
  96. package/dist/Flex.js +1 -1
  97. package/dist/{Grid-ho1pGJ5L.js → Grid-CvGQrIhE.js} +4 -4
  98. package/dist/Grid-CvGQrIhE.js.map +1 -0
  99. package/dist/Grid.css +3 -5
  100. package/dist/Grid.js +1 -1
  101. package/dist/{Helper-B_VAFgGd.js → Helper-Bq6Npkgh.js} +2 -2
  102. package/dist/Helper-Bq6Npkgh.js.map +1 -0
  103. package/dist/{Icon-B4uCvMU9.js → Icon-B5zwN7GD.js} +4 -4
  104. package/dist/Icon-B5zwN7GD.js.map +1 -0
  105. package/dist/Icon.js +1 -1
  106. package/dist/{InputMask-DnbZnynw.js → InputMask-CQONHcTq.js} +3 -3
  107. package/dist/InputMask-CQONHcTq.js.map +1 -0
  108. package/dist/InputMask.js +1 -1
  109. package/dist/InteractiveCard-C0g5PxB6.js.map +1 -1
  110. package/dist/Layout-C2Q2hyLG.js.map +1 -1
  111. package/dist/{Link-C7dtI5K6.js → Link-D7ycmfQ_.js} +2 -2
  112. package/dist/Link-D7ycmfQ_.js.map +1 -0
  113. package/dist/Link.css +2 -4
  114. package/dist/Link.js +1 -1
  115. package/dist/LinkButton-C0wps8r1.js.map +1 -1
  116. package/dist/List-BvzfZ9TW.js.map +1 -1
  117. package/dist/{ListView-Dy4m0aQb.js → ListView-BgGEwal3.js} +3 -3
  118. package/dist/ListView-BgGEwal3.js.map +1 -0
  119. package/dist/ListView.js +1 -1
  120. package/dist/{Listbox-By-gyw1j.js → Listbox-Cw_2W62S.js} +4 -4
  121. package/dist/Listbox-Cw_2W62S.js.map +1 -0
  122. package/dist/Listbox.js +1 -1
  123. package/dist/LocalizationContext-UsmB5mnR.js.map +1 -1
  124. package/dist/LocalizationProvider-BPcOU7YX.js.map +1 -1
  125. package/dist/{Menu-DmEXQLXt.js → Menu-DNOOmDQC.js} +3 -3
  126. package/dist/Menu-DNOOmDQC.js.map +1 -0
  127. package/dist/Menu.js +1 -1
  128. package/dist/{MenuFooter-Ck9L599M.js → MenuFooter-BXcNxNnX.js} +2 -2
  129. package/dist/MenuFooter-BXcNxNnX.js.map +1 -0
  130. package/dist/MultiSelectField.js +1 -1
  131. package/dist/{MultiSelectFieldSync-CGOAko_r.js → MultiSelectFieldSync-CpfsWecG.js} +18 -8
  132. package/dist/MultiSelectFieldSync-CpfsWecG.js.map +1 -0
  133. package/dist/MultiSelectMenu.js +1 -1
  134. package/dist/{MultiSelectMenuSync-DTRWdqGg.js → MultiSelectMenuSync-CtyLYyDE.js} +10 -8
  135. package/dist/MultiSelectMenuSync-CtyLYyDE.js.map +1 -0
  136. package/dist/{NumberField-BuAlvtg_.js → NumberField-B1761jkf.js} +7 -7
  137. package/dist/NumberField-B1761jkf.js.map +1 -0
  138. package/dist/NumberField.css +2 -3
  139. package/dist/NumberField.js +1 -1
  140. package/dist/Overflow.js +1 -1
  141. package/dist/Overflow.js.map +1 -1
  142. package/dist/{Page-DBKu3XYh.js → Page-B6E3Gbji.js} +13 -13
  143. package/dist/Page-B6E3Gbji.js.map +1 -0
  144. package/dist/Page.js +1 -1
  145. package/dist/{Pagination-Ceh0uZhU.js → Pagination-DF7iMeJe.js} +6 -6
  146. package/dist/Pagination-DF7iMeJe.js.map +1 -0
  147. package/dist/Pagination.js +1 -1
  148. package/dist/{Popover-hQKMGTiJ.js → Popover-CjsE5FG0.js} +3 -3
  149. package/dist/Popover-CjsE5FG0.js.map +1 -0
  150. package/dist/Popover.js +1 -1
  151. package/dist/PortalProvider-Cj_y3gbC.js.map +1 -1
  152. package/dist/{ProgressBar-CFdDZFV9.js → ProgressBar-Coh2nTJ1.js} +6 -6
  153. package/dist/ProgressBar-Coh2nTJ1.js.map +1 -0
  154. package/dist/ProgressBar.js +1 -1
  155. package/dist/{Radio-Dey7KUCQ.js → Radio-BxSL1PoP.js} +2 -2
  156. package/dist/Radio-BxSL1PoP.js.map +1 -0
  157. package/dist/{Radio-ARjSflvI.js → Radio-J4Iv3wbJ.js} +5 -5
  158. package/dist/Radio-J4Iv3wbJ.js.map +1 -0
  159. package/dist/Radio.js +1 -1
  160. package/dist/{RichTextEditor-B4ZPAevY.js → RichTextEditor-CLo8yoUP.js} +13 -13
  161. package/dist/RichTextEditor-CLo8yoUP.js.map +1 -0
  162. package/dist/RichTextEditor.css +1 -2
  163. package/dist/RichTextEditor.js +1 -1
  164. package/dist/{SavedFiltersButton-DPISXV2b.js → SavedFiltersButton-FcYVncxU.js} +12 -12
  165. package/dist/SavedFiltersButton-FcYVncxU.js.map +1 -0
  166. package/dist/SavedFiltersButton.js +1 -1
  167. package/dist/{SearchField-B7fIOJf-.js → SearchField-ChoNtw8w.js} +2 -2
  168. package/dist/SearchField-ChoNtw8w.js.map +1 -0
  169. package/dist/{SearchField-X4B7f23E.js → SearchField-DX8hZyo2.js} +2 -2
  170. package/dist/SearchField-DX8hZyo2.js.map +1 -0
  171. package/dist/SearchField.js +1 -1
  172. package/dist/{SegmentedControl-Be6jCglV.js → SegmentedControl-CQ6DrbDc.js} +2 -2
  173. package/dist/SegmentedControl-CQ6DrbDc.js.map +1 -0
  174. package/dist/SegmentedControl.css +2 -3
  175. package/dist/SegmentedControl.js +1 -1
  176. package/dist/{SelectCard-DtEUPxgj.js → SelectCard-BTfhPyHH.js} +4 -4
  177. package/dist/SelectCard-BTfhPyHH.js.map +1 -0
  178. package/dist/SelectCard.js +1 -1
  179. package/dist/SelectField.js +1 -1
  180. package/dist/{SelectFieldLabel-DB3o9bDD.js → SelectFieldLabel-CjY6zFJA.js} +2 -2
  181. package/dist/SelectFieldLabel-CjY6zFJA.js.map +1 -0
  182. package/dist/{SelectFieldSync-B5r-wl1D.js → SelectFieldSync-Bi8HsMYP.js} +23 -8
  183. package/dist/SelectFieldSync-Bi8HsMYP.js.map +1 -0
  184. package/dist/SelectMenu.js +1 -1
  185. package/dist/{SelectMenuSync-CqKMKaWt.js → SelectMenuSync-DKg4g5nN.js} +7 -7
  186. package/dist/SelectMenuSync-DKg4g5nN.js.map +1 -0
  187. package/dist/{SelectOptions-VVJ4D-0C.js → SelectOptions-DszNAjxB.js} +2 -2
  188. package/dist/SelectOptions-DszNAjxB.js.map +1 -0
  189. package/dist/{SelectTrigger-TRI2LhJR.js → SelectTrigger-DNIc5ttg.js} +4 -4
  190. package/dist/SelectTrigger-DNIc5ttg.js.map +1 -0
  191. package/dist/SelectTrigger.js +1 -1
  192. package/dist/{SelectTriggerBase-D1nOad4B.js → SelectTriggerBase-1Cc6EUBw.js} +10 -14
  193. package/dist/SelectTriggerBase-1Cc6EUBw.js.map +1 -0
  194. package/dist/SelectTriggerBase.css +2 -3
  195. package/dist/{SideNav-DoxX8Vi-.js → SideNav-DZRXOYHs.js} +2 -2
  196. package/dist/SideNav-DZRXOYHs.js.map +1 -0
  197. package/dist/SideNav.js +1 -1
  198. package/dist/Skeleton.js.map +1 -1
  199. package/dist/Spinner-B7tTWcP6.js.map +1 -1
  200. package/dist/SrOnly-pnf8ajnh.js.map +1 -1
  201. package/dist/{Stepper-CvaR7OoT.js → Stepper-BX_gDWLE.js} +4 -4
  202. package/dist/Stepper-BX_gDWLE.js.map +1 -0
  203. package/dist/Stepper.css +1 -2
  204. package/dist/Stepper.js +1 -1
  205. package/dist/{Switch-ClbHJvDU.js → Switch-BpjBYm-U.js} +5 -5
  206. package/dist/Switch-BpjBYm-U.js.map +1 -0
  207. package/dist/Switch.js +1 -1
  208. package/dist/{Tab-Cy4G562A.js → Tab-Bqfvg8Ce.js} +53 -23
  209. package/dist/Tab-Bqfvg8Ce.js.map +1 -0
  210. package/dist/Tab.css +35 -31
  211. package/dist/Tab.js +1 -1
  212. package/dist/Table.js +1 -1
  213. package/dist/{Text-BjYHzUGW.js → Text-CIoD_RK4.js} +2 -2
  214. package/dist/Text-CIoD_RK4.js.map +1 -0
  215. package/dist/Text.js +1 -1
  216. package/dist/{TextField-DX6-K3jO.js → TextField-CzzvLI5_.js} +4 -4
  217. package/dist/TextField-CzzvLI5_.js.map +1 -0
  218. package/dist/{TextField-BsVxym0-.js → TextField-D3sRS5q1.js} +2 -2
  219. package/dist/TextField-D3sRS5q1.js.map +1 -0
  220. package/dist/TextField.js +1 -1
  221. package/dist/{Textarea-B3z6Y7VU.js → Textarea-B3C7AkPj.js} +4 -4
  222. package/dist/Textarea-B3C7AkPj.js.map +1 -0
  223. package/dist/Textarea.js +1 -1
  224. package/dist/ThemeProvider-Sd8LK0A9.js.map +1 -1
  225. package/dist/ThemeProviderContext-l52GohYT.js.map +1 -1
  226. package/dist/{TimeField-Bmcwic3C.js → TimeField-L9B_X6-H.js} +31 -9
  227. package/dist/TimeField-L9B_X6-H.js.map +1 -0
  228. package/dist/TimeField.js +1 -1
  229. package/dist/TimezoneMessage-BrKB_psP.js.map +1 -1
  230. package/dist/Toast.js +2 -2
  231. package/dist/{Toaster-CvY-A7zY.js → Toaster-CAI7tX8q.js} +4 -4
  232. package/dist/Toaster-CAI7tX8q.js.map +1 -0
  233. package/dist/{Toaster-CTjkTMie.js → Toaster-DZxf0N9g.js} +2 -2
  234. package/dist/Toaster-DZxf0N9g.js.map +1 -0
  235. package/dist/{Toolbar-BpCO-4zj.js → Toolbar-2VQIjU5b.js} +9 -9
  236. package/dist/Toolbar-2VQIjU5b.js.map +1 -0
  237. package/dist/{Toolbar-pdJXcqY0.js → Toolbar-BbImThIu.js} +7 -7
  238. package/dist/Toolbar-BbImThIu.js.map +1 -0
  239. package/dist/Toolbar.js +2 -2
  240. package/dist/{ToolbarButtonToggle-3xbnm1Qr.js → ToolbarButtonToggle-Bc0XvCM9.js} +2 -2
  241. package/dist/ToolbarButtonToggle-Bc0XvCM9.js.map +1 -0
  242. package/dist/Tooltip-BC8lnFhe.js.map +1 -1
  243. package/dist/TrackingProvider-Co4lyoI9.js.map +1 -1
  244. package/dist/TrackingProviderContext-CrVA7KHv.js.map +1 -1
  245. package/dist/TreeSelectField.js +1 -1
  246. package/dist/{TreeSelectFieldSync-Cz8uOdpT.js → TreeSelectFieldSync-DUHVmOQa.js} +19 -8
  247. package/dist/TreeSelectFieldSync-DUHVmOQa.js.map +1 -0
  248. package/dist/TreeSelectMenu.js +1 -1
  249. package/dist/{TreeSelectMenuSync-Bk8BN6_B.js → TreeSelectMenuSync-DVoYUG7F.js} +8 -8
  250. package/dist/TreeSelectMenuSync-DVoYUG7F.js.map +1 -0
  251. package/dist/{TypeaheadTextField-Dg7O5Yu5.js → TypeaheadTextField-9Nkkd4c4.js} +3 -3
  252. package/dist/TypeaheadTextField-9Nkkd4c4.js.map +1 -0
  253. package/dist/TypeaheadTextField.js +1 -1
  254. package/dist/{YearlessDateInputWithPicker-CpnLg01W.js → YearlessDateInputWithPicker-CM9mmz8s.js} +16 -6
  255. package/dist/YearlessDateInputWithPicker-CM9mmz8s.js.map +1 -0
  256. package/dist/beta.js +16 -16
  257. package/dist/{bulkActionTypes-B20IInUD.js → bulkActionTypes-BnZNAru6.js} +2 -2
  258. package/dist/bulkActionTypes-BnZNAru6.js.map +1 -0
  259. package/dist/childrenToString-Bz9MqbHb.js.map +1 -1
  260. package/dist/{filter-state-CuiHPC94.js → filter-state-XmqhkURU.js} +37 -33
  261. package/dist/filter-state-XmqhkURU.js.map +1 -0
  262. package/dist/{index-B12T0Vxa.js → index-BwNeldDw.js} +2 -2
  263. package/dist/{index-B12T0Vxa.js.map → index-BwNeldDw.js.map} +1 -1
  264. package/dist/{index-SZMmvI3D.js → index-BwV_Pz7v.js} +2 -2
  265. package/dist/index-BwV_Pz7v.js.map +1 -0
  266. package/dist/index.js +56 -56
  267. package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +1 -1
  268. package/dist/src/beta/components/FilterBar/index.d.ts +1 -1
  269. package/dist/src/beta/components/Toolbar/index.d.ts +1 -1
  270. package/dist/src/components/Alert/Alert.d.ts +2 -4
  271. package/dist/src/components/Announcement/Announcement.d.ts +2 -4
  272. package/dist/src/components/Breadcrumbs/index.d.ts +1 -1
  273. package/dist/src/components/ButtonCompound/ButtonCompound.d.ts +2 -4
  274. package/dist/src/components/ButtonLink/ButtonLink.d.ts +2 -4
  275. package/dist/src/components/ButtonToggle/ButtonToggle.d.ts +2 -4
  276. package/dist/src/components/Calendar/Calendar.d.ts +3 -1
  277. package/dist/src/components/Calendar/index.d.ts +1 -1
  278. package/dist/src/components/Checkbox/index.d.ts +2 -2
  279. package/dist/src/components/Combobox/Combobox.d.ts +2 -2
  280. package/dist/src/components/Combobox/ComboboxEmpty.d.ts +1 -1
  281. package/dist/src/components/Combobox/index.d.ts +2 -2
  282. package/dist/src/components/DateFieldSingle/index.d.ts +1 -1
  283. package/dist/src/components/DateFieldYearless/index.d.ts +1 -1
  284. package/dist/src/components/Details/index.d.ts +2 -2
  285. package/dist/src/components/Dialog/index.d.ts +4 -4
  286. package/dist/src/components/DndSort/index.d.ts +3 -3
  287. package/dist/src/components/Drawer/Drawer.d.ts +3 -1
  288. package/dist/src/components/Drawer/DrawerHeader.d.ts +35 -3
  289. package/dist/src/components/Drawer/index.d.ts +4 -4
  290. package/dist/src/components/Grid/index.d.ts +1 -1
  291. package/dist/src/components/List/index.d.ts +1 -1
  292. package/dist/src/components/Listbox/index.d.ts +2 -2
  293. package/dist/src/components/Menu/index.d.ts +1 -1
  294. package/dist/src/components/Overflow/index.d.ts +1 -1
  295. package/dist/src/components/Popover/index.d.ts +4 -4
  296. package/dist/src/components/Radio/index.d.ts +2 -2
  297. package/dist/src/components/SelectCard/index.d.ts +1 -1
  298. package/dist/src/components/SelectMenu/internal/useMenuInteraction.d.ts +7 -1
  299. package/dist/src/components/SideNav/index.d.ts +3 -3
  300. package/dist/src/components/Stepper/index.d.ts +6 -6
  301. package/dist/src/components/Tab/index.d.ts +3 -3
  302. package/dist/src/components/TimeField/index.d.ts +1 -1
  303. package/dist/src/components/Toolbar/index.d.ts +5 -5
  304. package/dist/src/components/Tooltip/index.d.ts +2 -2
  305. package/dist/src/internal/components/Popover/index.d.ts +4 -4
  306. package/dist/src/providers/ThemeProvider/index.d.ts +2 -2
  307. package/dist/src/providers/TrackingProvider/index.d.ts +1 -1
  308. package/dist/src/types/index.d.ts +3 -3
  309. package/dist/{stripInlineMarkdown-C-3FEh_E.js → stripInlineMarkdown-BfNNOWPk.js} +2 -2
  310. package/dist/{stripInlineMarkdown-C-3FEh_E.js.map → stripInlineMarkdown-BfNNOWPk.js.map} +1 -1
  311. package/dist/{syncFilterUtils-CU5iJQSC.js → syncFilterUtils-UVNoFsDr.js} +5 -5
  312. package/dist/syncFilterUtils-UVNoFsDr.js.map +1 -0
  313. package/dist/{treeSync-CUf4vwDm.js → treeSync-CiU5d6rF.js} +4 -4
  314. package/dist/{treeSync-CUf4vwDm.js.map → treeSync-CiU5d6rF.js.map} +1 -1
  315. package/dist/{useAdaptiveView-C0F7qnLD.js → useAdaptiveView-C_WvM4-P.js} +7 -7
  316. package/dist/useAdaptiveView-C_WvM4-P.js.map +1 -0
  317. package/dist/useChipLayout-BWZfKDgd.js.map +1 -1
  318. package/dist/{useDrilldown-CCsr0_3L.js → useDrilldown-D7DKSs7E.js} +5 -5
  319. package/dist/{useDrilldown-CCsr0_3L.js.map → useDrilldown-D7DKSs7E.js.map} +1 -1
  320. package/dist/useFocusWithin-hi77jsrB.js.map +1 -1
  321. package/dist/{useInfiniteCombobox-HSttRaX5.js → useInfiniteCombobox-COJTJxCZ.js} +70 -68
  322. package/dist/useInfiniteCombobox-COJTJxCZ.js.map +1 -0
  323. package/dist/{useInitialFocus-BIvXK1Rp.js → useInitialFocus-BUxEDMEG.js} +2 -2
  324. package/dist/useInitialFocus-BUxEDMEG.js.map +1 -0
  325. package/dist/useLayoutPropsUtil-DjqeAJZ9.js.map +1 -1
  326. package/dist/{useMenuInteraction-NEJXUD4I.js → useMenuInteraction-AgrXU8kv.js} +8 -2
  327. package/dist/useMenuInteraction-AgrXU8kv.js.map +1 -0
  328. package/dist/{useNumberField-D_ic9i2q.js → useNumberField-CXFYUZ_n.js} +4 -2
  329. package/dist/useNumberField-CXFYUZ_n.js.map +1 -0
  330. package/dist/useOptionallyControlledState-DbDuos5L.js.map +1 -1
  331. package/dist/{usePopoverTransitionStates-B1opfxxn.js → usePopoverTransitionStates-CDXCdyKa.js} +2 -1
  332. package/dist/{usePopoverTransitionStates-B1opfxxn.js.map → usePopoverTransitionStates-CDXCdyKa.js.map} +1 -1
  333. package/dist/useSize.js.map +1 -1
  334. package/dist/useSwipe-Cp-CJxLU.js.map +1 -1
  335. package/package.json +6 -4
  336. package/dist/AiMark-DKAIkwNU.js.map +0 -1
  337. package/dist/Alert-tsu15fCc.js.map +0 -1
  338. package/dist/Announcement-DU0J4111.js.map +0 -1
  339. package/dist/Breadcrumbs-CoqJO7Ca.js.map +0 -1
  340. package/dist/Button-BNzCI47m.js.map +0 -1
  341. package/dist/ButtonLink-PlW08u41.js.map +0 -1
  342. package/dist/ButtonToggle-DBGc7dIn.js.map +0 -1
  343. package/dist/Calendar-Csw2CkqE.js.map +0 -1
  344. package/dist/Calendar-DnwCL7gm.js.map +0 -1
  345. package/dist/Checkbox-Cmn1o3Ta.js.map +0 -1
  346. package/dist/Checkbox-DGU3JwZA.js.map +0 -1
  347. package/dist/Chip-BsGckplA.js.map +0 -1
  348. package/dist/DataTable-BLK4-7QQ.js.map +0 -1
  349. package/dist/DateFieldRange-BnNrQvuG.js.map +0 -1
  350. package/dist/DateFieldSingle-CwcV_AOp.js.map +0 -1
  351. package/dist/DateFieldYearless-HntvaWSJ.js.map +0 -1
  352. package/dist/DateFieldYearlessRange-BPvJvBob.js.map +0 -1
  353. package/dist/DaysOfTheWeek-4Cd2WK7u.js.map +0 -1
  354. package/dist/Details-DkteVZbk.js.map +0 -1
  355. package/dist/Dialog-CE2fxzJR.js.map +0 -1
  356. package/dist/DialogCancelButton-DmSUPuCR.js.map +0 -1
  357. package/dist/Drawer-CWLwXp1D.js.map +0 -1
  358. package/dist/EditCard-DqFAx5cl.js.map +0 -1
  359. package/dist/FieldLabel-v6vMVVWB.js.map +0 -1
  360. package/dist/FilterBar-Ce22r7lY.js.map +0 -1
  361. package/dist/Flex-Bb3iHExM.js.map +0 -1
  362. package/dist/Grid-ho1pGJ5L.js.map +0 -1
  363. package/dist/Helper-B_VAFgGd.js.map +0 -1
  364. package/dist/Icon-B4uCvMU9.js.map +0 -1
  365. package/dist/InputMask-DnbZnynw.js.map +0 -1
  366. package/dist/Link-C7dtI5K6.js.map +0 -1
  367. package/dist/ListView-Dy4m0aQb.js.map +0 -1
  368. package/dist/Listbox-By-gyw1j.js.map +0 -1
  369. package/dist/Menu-DmEXQLXt.js.map +0 -1
  370. package/dist/MenuFooter-Ck9L599M.js.map +0 -1
  371. package/dist/MultiSelectFieldSync-CGOAko_r.js.map +0 -1
  372. package/dist/MultiSelectMenuSync-DTRWdqGg.js.map +0 -1
  373. package/dist/NumberField-BuAlvtg_.js.map +0 -1
  374. package/dist/Page-DBKu3XYh.js.map +0 -1
  375. package/dist/Pagination-Ceh0uZhU.js.map +0 -1
  376. package/dist/Popover-hQKMGTiJ.js.map +0 -1
  377. package/dist/ProgressBar-CFdDZFV9.js.map +0 -1
  378. package/dist/Radio-ARjSflvI.js.map +0 -1
  379. package/dist/Radio-Dey7KUCQ.js.map +0 -1
  380. package/dist/RichTextEditor-B4ZPAevY.js.map +0 -1
  381. package/dist/SavedFiltersButton-DPISXV2b.js.map +0 -1
  382. package/dist/SearchField-B7fIOJf-.js.map +0 -1
  383. package/dist/SearchField-X4B7f23E.js.map +0 -1
  384. package/dist/SegmentedControl-Be6jCglV.js.map +0 -1
  385. package/dist/SelectCard-DtEUPxgj.js.map +0 -1
  386. package/dist/SelectFieldLabel-DB3o9bDD.js.map +0 -1
  387. package/dist/SelectFieldSync-B5r-wl1D.js.map +0 -1
  388. package/dist/SelectMenuSync-CqKMKaWt.js.map +0 -1
  389. package/dist/SelectOptions-VVJ4D-0C.js.map +0 -1
  390. package/dist/SelectTrigger-TRI2LhJR.js.map +0 -1
  391. package/dist/SelectTriggerBase-D1nOad4B.js.map +0 -1
  392. package/dist/SideNav-DoxX8Vi-.js.map +0 -1
  393. package/dist/Stepper-CvaR7OoT.js.map +0 -1
  394. package/dist/Switch-ClbHJvDU.js.map +0 -1
  395. package/dist/Tab-Cy4G562A.js.map +0 -1
  396. package/dist/Text-BjYHzUGW.js.map +0 -1
  397. package/dist/TextField-BsVxym0-.js.map +0 -1
  398. package/dist/TextField-DX6-K3jO.js.map +0 -1
  399. package/dist/Textarea-B3z6Y7VU.js.map +0 -1
  400. package/dist/TimeField-Bmcwic3C.js.map +0 -1
  401. package/dist/Toaster-CTjkTMie.js.map +0 -1
  402. package/dist/Toaster-CvY-A7zY.js.map +0 -1
  403. package/dist/Toolbar-BpCO-4zj.js.map +0 -1
  404. package/dist/Toolbar-pdJXcqY0.js.map +0 -1
  405. package/dist/ToolbarButtonToggle-3xbnm1Qr.js.map +0 -1
  406. package/dist/TreeSelectFieldSync-Cz8uOdpT.js.map +0 -1
  407. package/dist/TreeSelectMenuSync-Bk8BN6_B.js.map +0 -1
  408. package/dist/TypeaheadTextField-Dg7O5Yu5.js.map +0 -1
  409. package/dist/YearlessDateInputWithPicker-CpnLg01W.js.map +0 -1
  410. package/dist/bulkActionTypes-B20IInUD.js.map +0 -1
  411. package/dist/filter-state-CuiHPC94.js.map +0 -1
  412. package/dist/index-SZMmvI3D.js.map +0 -1
  413. package/dist/syncFilterUtils-CU5iJQSC.js.map +0 -1
  414. package/dist/useAdaptiveView-C0F7qnLD.js.map +0 -1
  415. package/dist/useInfiniteCombobox-HSttRaX5.js.map +0 -1
  416. package/dist/useInitialFocus-BIvXK1Rp.js.map +0 -1
  417. package/dist/useMenuInteraction-NEJXUD4I.js.map +0 -1
  418. package/dist/useNumberField-D_ic9i2q.js.map +0 -1
@@ -1,21 +1,21 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { c as cx } from './index-De1g9FRV.js';
3
- import { I as Icon } from './Icon-B4uCvMU9.js';
3
+ import { I as Icon } from './Icon-B5zwN7GD.js';
4
4
  import { S as Spinner } from './Spinner-B7tTWcP6.js';
5
5
  import { a as SvgCheckBoxOutlineBlank, S as SvgCheckBox } from './check_box-0U1tbEAd.js';
6
6
  import { S as SvgIndeterminateCheckBox } from './indeterminate_check_box-jjLG4UY6.js';
7
- import { F as Flex } from './Flex-Bb3iHExM.js';
8
- import { T as Text } from './Text-BjYHzUGW.js';
7
+ import { F as Flex } from './Flex-CRF7gj0_.js';
8
+ import { T as Text } from './Text-CIoD_RK4.js';
9
9
  import { A as Avatar } from './Avatar-DX96Mxe7.js';
10
- import { C as Chip } from './Chip-BsGckplA.js';
10
+ import { C as Chip } from './Chip-D6Q0J0Xe.js';
11
11
  import { forwardRef, useRef, useCallback, useEffect, useState } from 'react';
12
12
  import { a as useOnClickOutside } from './useOnClickOutside-Zw5vzxSq.js';
13
13
  import { p as portalScopeClassNames } from './portalScopeClassNames-BTyv0FY8.js';
14
14
  import { c as computePosition, o as offset, h as autoPlacement, a as size, b as autoUpdate } from './floating-ui.react-dom-CyrxPiI-.js';
15
- import { D as DialogCancelButton } from './DialogCancelButton-DmSUPuCR.js';
15
+ import { D as DialogCancelButton } from './DialogCancelButton-DBL0aKTK.js';
16
16
  import { S as SvgClose } from './close-DZj38AEh.js';
17
17
  import { D as DialogContext } from './DialogContext-DBgtApl9.js';
18
- import { t as tabbable } from './usePopoverTransitionStates-B1opfxxn.js';
18
+ import { t as tabbable } from './usePopoverTransitionStates-CDXCdyKa.js';
19
19
  import { u as useDialogScrollLock } from './useDialogScrollLock-BW-aVboo.js';
20
20
  import { u as useBreakpoint } from './useBreakpoint-BBNRlMGZ.js';
21
21
 
@@ -383,4 +383,4 @@ function useAdaptiveView() {
383
383
  }
384
384
 
385
385
  export { OptionsDialog as O, OptionsPopover as a, OptionRow as b, OptionRowSideContent as c, OptionCheckbox as d, OptionContentArea as e, useAdaptiveView as u };
386
- //# sourceMappingURL=useAdaptiveView-C0F7qnLD.js.map
386
+ //# sourceMappingURL=useAdaptiveView-C_WvM4-P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAdaptiveView-C_WvM4-P.js","sources":["../src/internal/components/OptionCheckbox.tsx","../src/internal/components/OptionRow.tsx","../src/internal/components/OptionContentArea.tsx","../src/internal/components/OptionsPopover/OptionsPopover.tsx","../src/internal/components/OptionsDialog/OptionsDialog.tsx","../src/beta/hooks/useAdaptiveView/useAdaptiveView.tsx"],"sourcesContent":["import cx from \"classnames\";\nimport { Icon } from \"../../components/Icon\";\nimport { Spinner } from \"../../components/Spinner\";\nimport CheckboxOutline from \"@servicetitan/hammer-icon/mdi/round/check_box_outline_blank.svg\";\nimport CheckboxChecked from \"@servicetitan/hammer-icon/mdi/round/check_box.svg\";\nimport CheckboxIndeterminate from \"@servicetitan/hammer-icon/mdi/round/indeterminate_check_box.svg\";\nimport type { CheckState } from \"../../types\";\nimport styles from \"./OptionCheckbox.module.scss\";\n\nexport type OptionCheckboxProps = {\n checkState: CheckState;\n className?: string;\n};\n\nconst iconMap = {\n checked: CheckboxChecked,\n unchecked: CheckboxOutline,\n indeterminate: CheckboxIndeterminate,\n} as const;\n\nexport function OptionCheckbox({ checkState, className }: OptionCheckboxProps) {\n if (checkState === \"loading\") {\n return (\n <span className={cx(styles[\"loading\"], className)}>\n <Spinner size=\"small\" aria-hidden=\"true\" />\n </span>\n );\n }\n\n return (\n <Icon\n aria-hidden=\"true\"\n size=\"large\"\n svg={iconMap[checkState]}\n className={cx(styles[\"checkbox\"], styles[checkState], className)}\n />\n );\n}\n","import {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport cx from \"classnames\";\nimport styles from \"./OptionRow.module.scss\";\n\nexport type OptionRowProps = ComponentPropsWithoutRef<\"div\"> & {\n disabled?: boolean;\n};\n\nexport const OptionRow = forwardRef<HTMLDivElement, OptionRowProps>(\n function OptionRow({ disabled, children, className, ...rest }, ref) {\n const optionRowClass = cx(\n styles[\"option-row\"],\n { [styles[\"disabled\"]]: disabled },\n className,\n );\n return (\n <div ref={ref} {...rest} className={optionRowClass}>\n {children}\n </div>\n );\n },\n);\n\nexport const OptionRowSideContent = forwardRef<\n HTMLDivElement,\n ComponentPropsWithoutRef<\"div\"> & { children: ReactNode }\n>(function OptionRowSideContent({ children, className, ...rest }, ref) {\n const sideContentClass = cx(styles[\"side-content\"], className);\n return (\n <div ref={ref} {...rest} className={sideContentClass}>\n {children}\n </div>\n );\n});\n","import type { ReactNode } from \"react\";\nimport { Flex } from \"../../components/Flex\";\nimport { Text } from \"../../components/Text\";\nimport { Avatar } from \"../../components/Avatar\";\nimport { Chip } from \"../../components/Chip\";\nimport { Icon } from \"../../components/Icon\";\nimport type { OptionContent } from \"../types/optionContent\";\nimport { OptionRowSideContent } from \"./OptionRow\";\nimport styles from \"./OptionContentArea.module.scss\";\n\nexport type OptionContentAreaProps = {\n label: string;\n content?: OptionContent;\n children?: ReactNode;\n};\n\nexport function OptionContentArea({\n label,\n content,\n children,\n}: OptionContentAreaProps) {\n const hasAvatar = !!content?.avatar;\n const hasChips = !!content?.chips?.length;\n const hasIcon = !!content?.icon;\n\n return (\n <>\n {hasAvatar && (\n <OptionRowSideContent aria-hidden=\"true\">\n <Avatar size=\"medium\" {...content!.avatar!} />\n </OptionRowSideContent>\n )}\n <Flex grow={1} shrink={1} direction=\"column\" justifyContent=\"center\">\n <Text size=\"small\" className={styles[\"title\"]}>\n {content?.title ?? label}\n </Text>\n {content?.description && (\n <Text size=\"small\" className={styles[\"description\"]}>\n {content.description}\n </Text>\n )}\n {hasChips && (\n <Flex\n wrap=\"wrap\"\n gap=\"1\"\n className={styles[\"chips-row\"]}\n role=\"group\"\n aria-label=\"Tags\"\n >\n {content!.chips!.map((chip, i) => (\n <Chip key={`${chip.label}-${i}`} size=\"small\" {...chip} />\n ))}\n </Flex>\n )}\n {children}\n </Flex>\n {hasIcon && (\n <OptionRowSideContent>\n <Icon\n size=\"large\"\n svg={content!.icon!.svg}\n color={content!.icon!.color}\n aria-hidden={content!.icon!.label ? undefined : \"true\"}\n aria-label={content!.icon!.label}\n />\n </OptionRowSideContent>\n )}\n </>\n );\n}\n","import {\n type ReactNode,\n type RefObject,\n useCallback,\n useEffect,\n useRef,\n} from \"react\";\n\nimport {\n autoPlacement,\n autoUpdate,\n computePosition,\n offset,\n size,\n} from \"@floating-ui/react\";\n\nimport cx from \"classnames\";\n\nimport { useOnClickOutside } from \"../../hooks/useOnClickOutside/useOnClickOutside\";\nimport { portalScopeClassNames } from \"../../functions/portalScopeClassNames\";\n\nimport styles from \"./OptionsPopover.module.scss\";\n\nexport type OptionsPopoverProps = {\n id: string;\n children: ReactNode;\n referenceElement: RefObject<HTMLElement>;\n open: boolean;\n /**\n * Fired when the popover should close (click-outside, focus-out, or\n * Escape). On Escape, the popover restores focus to `referenceElement`\n * before invoking this callback; for other paths focus has already moved\n * elsewhere intentionally.\n */\n onClose: () => void;\n /** Controls the popover width strategy.\n * - `\"reference\"` — match the reference element's width\n * - `number` — fixed width in px\n * - `string` — any CSS width value (e.g. `\"20rem\"`)\n * - `undefined` (default) — intrinsic sizing (`max-content`)\n */\n width?: \"reference\" | number | string;\n /**\n * Optional content rendered as a full-bleed footer region inside the popover\n * shell, separated from the body by a top border. The popover suppresses its\n * own bottom padding so the footer can hug the popover's lower edge.\n */\n footer?: ReactNode;\n};\n\nfunction resolveWidth(\n width: OptionsPopoverProps[\"width\"],\n referenceWidth: number,\n): string | undefined {\n if (width === \"reference\") return `${referenceWidth}px`;\n if (typeof width === \"number\") return `${width}px`;\n if (typeof width === \"string\") return width;\n return undefined;\n}\n\nexport const OptionsPopover = (props: OptionsPopoverProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const { id, children, referenceElement, open, onClose, width, footer } =\n props;\n\n // A single click-outside on a focusable element fires both the\n // useOnClickOutside (pointerup) path and the focusout path below. Dedupe\n // so onClose runs at most once per user action.\n const lastCloseRef = useRef(0);\n const safeClose = useCallback(() => {\n const now = Date.now();\n if (now - lastCloseRef.current < 50) return;\n lastCloseRef.current = now;\n onClose();\n }, [onClose]);\n\n useOnClickOutside({\n targets: [ref.current ?? undefined, referenceElement.current ?? undefined],\n onClickOutside: safeClose,\n disable: !open,\n });\n\n useEffect(() => {\n if (open) {\n ref.current?.showPopover();\n } else {\n ref.current?.hidePopover();\n }\n }, [open]);\n\n // Close when focus leaves the popover (and isn't moving to the trigger\n // element, which has its own click/focus handling). This is the keyboard\n // counterpart to useOnClickOutside.\n useEffect(() => {\n if (!open) return;\n const popoverEl = ref.current;\n if (!popoverEl) return;\n const handleFocusOut = (e: FocusEvent) => {\n const next = e.relatedTarget as Node | null;\n if (!next) {\n // Focus moved to nothing tracked (e.g. body). Treat as exit.\n safeClose();\n return;\n }\n if (popoverEl.contains(next)) return;\n const trigger = referenceElement.current;\n if (trigger && trigger.contains(next)) return;\n safeClose();\n };\n popoverEl.addEventListener(\"focusout\", handleFocusOut);\n return () => popoverEl.removeEventListener(\"focusout\", handleFocusOut);\n }, [open, safeClose, referenceElement]);\n\n // Close on Escape from anywhere inside the popover (e.g. when focus is on\n // the footer button, where no host hook is listening). Focus is restored to\n // the reference element before onClose fires so consumers don't need to\n // manage trigger focus themselves. If a downstream handler (search input,\n // listbox) already handled Escape and called preventDefault, defer to it.\n useEffect(() => {\n if (!open) return;\n const popoverEl = ref.current;\n if (!popoverEl) return;\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key !== \"Escape\" || e.defaultPrevented) return;\n e.preventDefault();\n referenceElement.current?.focus();\n safeClose();\n };\n popoverEl.addEventListener(\"keydown\", handleKeyDown);\n return () => popoverEl.removeEventListener(\"keydown\", handleKeyDown);\n }, [open, safeClose, referenceElement]);\n\n const updatePosition = useCallback(async () => {\n if (!ref.current || !referenceElement.current) return;\n const position = await computePosition(\n referenceElement.current,\n ref.current,\n {\n placement: \"bottom-start\",\n middleware: [\n offset(8),\n autoPlacement({\n allowedPlacements: [\n \"bottom-start\",\n \"bottom-end\",\n \"top-start\",\n \"top-end\",\n ],\n padding: 8,\n }),\n size({\n padding: 8,\n apply({ rects, elements, availableHeight, availableWidth }) {\n const resolved = resolveWidth(width, rects.reference.width);\n Object.assign(elements.floating.style, {\n ...(resolved != null && { width: resolved }),\n maxWidth: `${Math.max(0, availableWidth)}px`,\n maxHeight: `${Math.max(0, availableHeight)}px`,\n });\n },\n }),\n ],\n },\n );\n ref.current.style.left = `${position.x}px`;\n ref.current.style.top = `${position.y}px`;\n }, [ref, referenceElement, width]);\n\n useEffect(() => {\n if (!ref.current || !referenceElement.current || !open) return;\n const cleanup = autoUpdate(\n referenceElement.current,\n ref.current,\n updatePosition,\n );\n return () => {\n cleanup();\n };\n }, [referenceElement, ref, updatePosition, open]);\n\n return (\n <div\n ref={ref}\n id={id}\n className={cx(styles[\"options-popover\"], portalScopeClassNames)}\n popover=\"manual\"\n data-anv=\"popover-content\"\n >\n <div className={styles[\"options-popover-body\"]}>{children}</div>\n {footer ? (\n <div className={styles[\"options-popover-footer\"]}>{footer}</div>\n ) : null}\n </div>\n );\n};\n","import { useCallback, useEffect, useRef } from \"react\";\nimport { Flex, type FocusableElement, Text } from \"../../..\";\nimport { DialogCancelButton } from \"../../../components/Dialog/DialogCancelButton\";\nimport styles from \"./OptionsDialog.module.scss\";\nimport Close from \"@servicetitan/hammer-icon/mdi/round/close.svg\";\nimport { DialogContext } from \"../../../components/Dialog/internal/DialogContext\";\nimport { useDialogScrollLock } from \"../..\";\nimport { tabbable } from \"tabbable\";\n\nexport const OptionsDialog = ({\n id,\n isOpen,\n onClose,\n field,\n children,\n title,\n initialFocusResolver,\n footer,\n}: {\n id: string;\n isOpen: boolean;\n onClose: () => void;\n title: string;\n field?: React.ReactNode;\n children: React.ReactNode;\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n /** Optional content rendered below the dialog body. */\n footer?: React.ReactNode;\n}) => {\n const elRef = useRef<HTMLDialogElement>(null);\n const visualViewportHeightRef = useRef<HTMLDivElement>(null);\n\n useDialogScrollLock({\n open: isOpen,\n id,\n enableScrollChaining: false,\n elementRef: elRef,\n });\n\n const computeFocus = useCallback(\n (focusables: FocusableElement[]) => {\n if (initialFocusResolver) {\n return initialFocusResolver(focusables);\n }\n return (\n focusables.find(\n (focusable) => focusable.dataset.anv !== \"dialog-cancel-button\",\n ) || focusables[0]\n );\n },\n [initialFocusResolver],\n );\n\n useEffect(() => {\n if (isOpen) {\n elRef.current?.showModal();\n if (elRef.current) {\n computeFocus(tabbable(elRef.current)).focus();\n }\n } else {\n elRef.current?.close();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps -- Omitting computeFocus because we don't want to show/close the dialog on computeFocus change\n }, [isOpen]);\n\n useEffect(() => {\n if (isOpen) {\n const handleResize = () => {\n if (!visualViewportHeightRef.current) return;\n visualViewportHeightRef.current.style.height = `${window.visualViewport?.height ?? 0}px`;\n visualViewportHeightRef.current.style.maxHeight = `${window.visualViewport?.height ?? 0}px`;\n };\n window.visualViewport?.addEventListener(\"resize\", handleResize);\n return () => {\n window.visualViewport?.removeEventListener(\"resize\", handleResize);\n };\n }\n }, [isOpen]);\n\n return (\n <dialog\n ref={elRef}\n id={id}\n data-anv=\"field-dialog\"\n className={styles[\"field-dialog\"]}\n onKeyDown={(e) => {\n if (e.code === \"Escape\") {\n e.preventDefault();\n onClose();\n }\n }}\n >\n <div\n className={styles[\"field-dialog-visual-viewport-height\"]}\n ref={visualViewportHeightRef}\n >\n <Flex direction=\"row\" className={styles[\"header\"]}>\n <Text variant=\"headline\" el=\"h1\">\n {title}\n </Text>\n <span className={styles[\"close-container\"]}>\n <DialogContext.Provider value={{ close: onClose }}>\n <DialogCancelButton\n className={styles[\"close-button\"]}\n size=\"small\"\n appearance=\"ghost\"\n aria-label=\"Close dialog\"\n icon={Close}\n />\n </DialogContext.Provider>\n </span>\n </Flex>\n {field ? (\n <Flex direction=\"column\" className={styles[\"field\"]}>\n {field}\n </Flex>\n ) : null}\n <Flex direction=\"column\" className={styles[\"content\"]}>\n {children}\n </Flex>\n {footer ? <div className={styles[\"footer\"]}>{footer}</div> : null}\n </div>\n </dialog>\n );\n};\n","import { useEffect, useState } from \"react\";\nimport { useBreakpoint } from \"../../../hooks\";\n\n/**\n * The type of view to render based on device characteristics.\n */\nexport type AdaptiveView = \"mobile\" | \"desktop\";\n\n/**\n * Return type for the useAdaptiveView hook.\n */\nexport interface UseAdaptiveViewReturn {\n /**\n * The current adaptive view type.\n */\n view: AdaptiveView;\n /**\n * True when the device should use mobile-optimized UI (Dialog).\n */\n isMobile: boolean;\n /**\n * True when the device should use desktop-optimized UI (Popover).\n */\n isDesktop: boolean;\n}\n\n/**\n * Detects whether the primary pointer is coarse (touch) using CSS media query.\n * Returns false during SSR or when matchMedia is unavailable.\n */\nfunction detectCoarsePointer(): boolean {\n if (typeof window === \"undefined\" || !window.matchMedia) {\n return false;\n }\n return window.matchMedia(\"(pointer: coarse)\").matches;\n}\n\n/**\n * Custom hook for detecting whether to use mobile or desktop UI patterns.\n *\n * This hook determines the optimal UI pattern (e.g., Dialog vs Popover) by combining:\n * - Screen size via useBreakpoint (viewport width)\n * - Pointer precision via CSS media query (pointer: coarse)\n *\n * A device is considered \"mobile\" when it has both:\n * - A small screen (below md breakpoint, < 768px)\n * - A coarse pointer (touch-primary input)\n *\n * This approach correctly identifies:\n * - Mobile phones → mobile view (Dialog)\n * - iPads/tablets → desktop view (Popover) due to larger screens\n * - Touch laptops → desktop view (Popover) due to fine pointer primary\n * - Desktop → desktop view (Popover)\n *\n * @returns Object containing view type and boolean flags for mobile/desktop\n *\n * @example\n * const { isMobile } = useAdaptiveView();\n *\n * return isMobile ? (\n * <Dialog>{children}</Dialog>\n * ) : (\n * <Popover>{children}</Popover>\n * );\n */\nexport function useAdaptiveView(): UseAdaptiveViewReturn {\n const breakpoint = useBreakpoint();\n const [hasCoarsePointer, setHasCoarsePointer] = useState(detectCoarsePointer);\n\n useEffect(() => {\n setHasCoarsePointer(detectCoarsePointer());\n\n // Listen for pointer capability changes (e.g., connecting/disconnecting a mouse)\n const mediaQuery = window.matchMedia(\"(pointer: coarse)\");\n const handleChange = (e: MediaQueryListEvent) => {\n setHasCoarsePointer(e.matches);\n };\n\n mediaQuery.addEventListener(\"change\", handleChange);\n return () => mediaQuery.removeEventListener(\"change\", handleChange);\n }, []);\n\n const isSmallScreen = !breakpoint?.md;\n const isMobile = isSmallScreen && hasCoarsePointer;\n\n return {\n view: isMobile ? \"mobile\" : \"desktop\",\n isMobile,\n isDesktop: !isMobile,\n };\n}\n"],"names":["CheckboxChecked","CheckboxOutline","CheckboxIndeterminate","styles","OptionRow","OptionRowSideContent","Close"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useChipLayout-BWZfKDgd.js","sources":["../src/components/MultiSelectField/internal/useChipLayout.ts"],"sourcesContent":["import { useState, useLayoutEffect, useRef, RefObject } from \"react\";\n\nconst hasMultipleRows = (container: HTMLElement) => {\n const children = Array.from(container.children);\n if (children.length <= 1) return false;\n const firstTop = children[0].getBoundingClientRect().top;\n return children.some(\n (child) => child.getBoundingClientRect().top !== firstTop,\n );\n};\n\ntype UseChipLayoutOptions = {\n selectedOptionsLength: number;\n singleRow?: boolean;\n maxChips?: number;\n};\n\n/**\n * Manages chip layout calculations shared between MultiSelectFieldInput and\n * MultiSelectFieldTrigger. Handles single-row overflow detection, visible chip\n * count, and the \"+N\" hidden chip indicator.\n * @param options - Configuration for chip layout behaviour\n * @returns rowsRef to attach to the chip container, plus computed display/hidden counts\n */\nexport function useChipLayout({\n selectedOptionsLength,\n singleRow,\n maxChips,\n}: UseChipLayoutOptions): {\n rowsRef: RefObject<HTMLDivElement>;\n displayCount: number;\n hiddenCount: number;\n} {\n const rowsRef = useRef<HTMLDivElement>(null);\n const [visibleCount, setVisibleCount] = useState<number | null>(null);\n\n const prevSelectedLengthRef = useRef(selectedOptionsLength);\n useLayoutEffect(() => {\n if (prevSelectedLengthRef.current !== selectedOptionsLength) {\n prevSelectedLengthRef.current = selectedOptionsLength;\n setVisibleCount(null);\n }\n }, [selectedOptionsLength]);\n\n useLayoutEffect(() => {\n if (!singleRow || !rowsRef.current) {\n setVisibleCount(null);\n return;\n }\n\n if (visibleCount === null) {\n if (hasMultipleRows(rowsRef.current)) {\n const firstRowTop =\n rowsRef.current.children[0]?.getBoundingClientRect().top;\n const firstRowCount = Array.from(rowsRef.current.children).filter(\n (c) => c.getBoundingClientRect().top === firstRowTop,\n ).length;\n setVisibleCount(Math.max(firstRowCount - 1, 0));\n }\n return;\n }\n\n if (hasMultipleRows(rowsRef.current) && visibleCount > 0) {\n setVisibleCount(visibleCount - 1);\n }\n }, [singleRow, selectedOptionsLength, visibleCount]);\n\n const maxAllowed = maxChips ?? 10;\n const displayCount =\n singleRow && visibleCount !== null\n ? Math.min(visibleCount, maxAllowed)\n : Math.min(selectedOptionsLength, maxAllowed);\n const hiddenCount = selectedOptionsLength - displayCount;\n\n return { rowsRef, displayCount, hiddenCount };\n}\n"],"names":[],"mappings":";;AAEA,MAAM,eAAA,GAAkB,CAAC,SAAA,KAA2B;AAClD,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,QAAQ,CAAA;AAC9C,EAAA,IAAI,QAAA,CAAS,MAAA,IAAU,CAAA,EAAG,OAAO,KAAA;AACjC,EAAA,MAAM,QAAA,GAAW,QAAA,CAAS,CAAC,CAAA,CAAE,uBAAsB,CAAE,GAAA;AACrD,EAAA,OAAO,QAAA,CAAS,IAAA;AAAA,IACd,CAAC,KAAA,KAAU,KAAA,CAAM,qBAAA,GAAwB,GAAA,KAAQ;AAAA,GACnD;AACF,CAAA;AAeO,SAAS,aAAA,CAAc;AAAA,EAC5B,qBAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAIE;AACA,EAAA,MAAM,OAAA,GAAU,OAAuB,IAAI,CAAA;AAC3C,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAwB,IAAI,CAAA;AAEpE,EAAA,MAAM,qBAAA,GAAwB,OAAO,qBAAqB,CAAA;AAC1D,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,qBAAA,CAAsB,YAAY,qBAAA,EAAuB;AAC3D,MAAA,qBAAA,CAAsB,OAAA,GAAU,qBAAA;AAChC,MAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,IACtB;AAAA,EACF,CAAA,EAAG,CAAC,qBAAqB,CAAC,CAAA;AAE1B,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,CAAC,SAAA,IAAa,CAAC,OAAA,CAAQ,OAAA,EAAS;AAClC,MAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,MAAA,IAAI,eAAA,CAAgB,OAAA,CAAQ,OAAO,CAAA,EAAG;AACpC,QAAA,MAAM,cACJ,OAAA,CAAQ,OAAA,CAAQ,SAAS,CAAC,CAAA,EAAG,uBAAsB,CAAE,GAAA;AACvD,QAAA,MAAM,gBAAgB,KAAA,CAAM,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA;AAAA,UACzD,CAAC,CAAA,KAAM,CAAA,CAAE,qBAAA,GAAwB,GAAA,KAAQ;AAAA,SAC3C,CAAE,MAAA;AACF,QAAA,eAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,aAAA,GAAgB,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,MAChD;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,eAAA,CAAgB,OAAA,CAAQ,OAAO,CAAA,IAAK,eAAe,CAAA,EAAG;AACxD,MAAA,eAAA,CAAgB,eAAe,CAAC,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,qBAAA,EAAuB,YAAY,CAAC,CAAA;AAEnD,EAAA,MAAM,aAAa,QAAA,IAAY,EAAA;AAC/B,EAAA,MAAM,YAAA,GACJ,SAAA,IAAa,YAAA,KAAiB,IAAA,GAC1B,IAAA,CAAK,GAAA,CAAI,YAAA,EAAc,UAAU,CAAA,GACjC,IAAA,CAAK,GAAA,CAAI,qBAAA,EAAuB,UAAU,CAAA;AAChD,EAAA,MAAM,cAAc,qBAAA,GAAwB,YAAA;AAE5C,EAAA,OAAO,EAAE,OAAA,EAAS,YAAA,EAAc,WAAA,EAAY;AAC9C;;;;"}
1
+ {"version":3,"file":"useChipLayout-BWZfKDgd.js","sources":["../src/components/MultiSelectField/internal/useChipLayout.ts"],"sourcesContent":["import { useState, useLayoutEffect, useRef, type RefObject } from \"react\";\n\nconst hasMultipleRows = (container: HTMLElement) => {\n const children = Array.from(container.children);\n if (children.length <= 1) return false;\n const firstTop = children[0].getBoundingClientRect().top;\n return children.some(\n (child) => child.getBoundingClientRect().top !== firstTop,\n );\n};\n\ntype UseChipLayoutOptions = {\n selectedOptionsLength: number;\n singleRow?: boolean;\n maxChips?: number;\n};\n\n/**\n * Manages chip layout calculations shared between MultiSelectFieldInput and\n * MultiSelectFieldTrigger. Handles single-row overflow detection, visible chip\n * count, and the \"+N\" hidden chip indicator.\n * @param options - Configuration for chip layout behaviour\n * @returns rowsRef to attach to the chip container, plus computed display/hidden counts\n */\nexport function useChipLayout({\n selectedOptionsLength,\n singleRow,\n maxChips,\n}: UseChipLayoutOptions): {\n rowsRef: RefObject<HTMLDivElement>;\n displayCount: number;\n hiddenCount: number;\n} {\n const rowsRef = useRef<HTMLDivElement>(null);\n const [visibleCount, setVisibleCount] = useState<number | null>(null);\n\n const prevSelectedLengthRef = useRef(selectedOptionsLength);\n useLayoutEffect(() => {\n if (prevSelectedLengthRef.current !== selectedOptionsLength) {\n prevSelectedLengthRef.current = selectedOptionsLength;\n setVisibleCount(null);\n }\n }, [selectedOptionsLength]);\n\n useLayoutEffect(() => {\n if (!singleRow || !rowsRef.current) {\n setVisibleCount(null);\n return;\n }\n\n if (visibleCount === null) {\n if (hasMultipleRows(rowsRef.current)) {\n const firstRowTop =\n rowsRef.current.children[0]?.getBoundingClientRect().top;\n const firstRowCount = Array.from(rowsRef.current.children).filter(\n (c) => c.getBoundingClientRect().top === firstRowTop,\n ).length;\n setVisibleCount(Math.max(firstRowCount - 1, 0));\n }\n return;\n }\n\n if (hasMultipleRows(rowsRef.current) && visibleCount > 0) {\n setVisibleCount(visibleCount - 1);\n }\n }, [singleRow, selectedOptionsLength, visibleCount]);\n\n const maxAllowed = maxChips ?? 10;\n const displayCount =\n singleRow && visibleCount !== null\n ? Math.min(visibleCount, maxAllowed)\n : Math.min(selectedOptionsLength, maxAllowed);\n const hiddenCount = selectedOptionsLength - displayCount;\n\n return { rowsRef, displayCount, hiddenCount };\n}\n"],"names":[],"mappings":";;AAEA,MAAM,eAAA,GAAkB,CAAC,SAAA,KAA2B;AAClD,EAAA,MAAM,QAAA,GAAW,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,QAAQ,CAAA;AAC9C,EAAA,IAAI,QAAA,CAAS,MAAA,IAAU,CAAA,EAAG,OAAO,KAAA;AACjC,EAAA,MAAM,QAAA,GAAW,QAAA,CAAS,CAAC,CAAA,CAAE,uBAAsB,CAAE,GAAA;AACrD,EAAA,OAAO,QAAA,CAAS,IAAA;AAAA,IACd,CAAC,KAAA,KAAU,KAAA,CAAM,qBAAA,GAAwB,GAAA,KAAQ;AAAA,GACnD;AACF,CAAA;AAeO,SAAS,aAAA,CAAc;AAAA,EAC5B,qBAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAIE;AACA,EAAA,MAAM,OAAA,GAAU,OAAuB,IAAI,CAAA;AAC3C,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAwB,IAAI,CAAA;AAEpE,EAAA,MAAM,qBAAA,GAAwB,OAAO,qBAAqB,CAAA;AAC1D,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,qBAAA,CAAsB,YAAY,qBAAA,EAAuB;AAC3D,MAAA,qBAAA,CAAsB,OAAA,GAAU,qBAAA;AAChC,MAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,IACtB;AAAA,EACF,CAAA,EAAG,CAAC,qBAAqB,CAAC,CAAA;AAE1B,EAAA,eAAA,CAAgB,MAAM;AACpB,IAAA,IAAI,CAAC,SAAA,IAAa,CAAC,OAAA,CAAQ,OAAA,EAAS;AAClC,MAAA,eAAA,CAAgB,IAAI,CAAA;AACpB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,MAAA,IAAI,eAAA,CAAgB,OAAA,CAAQ,OAAO,CAAA,EAAG;AACpC,QAAA,MAAM,cACJ,OAAA,CAAQ,OAAA,CAAQ,SAAS,CAAC,CAAA,EAAG,uBAAsB,CAAE,GAAA;AACvD,QAAA,MAAM,gBAAgB,KAAA,CAAM,IAAA,CAAK,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA;AAAA,UACzD,CAAC,CAAA,KAAM,CAAA,CAAE,qBAAA,GAAwB,GAAA,KAAQ;AAAA,SAC3C,CAAE,MAAA;AACF,QAAA,eAAA,CAAgB,IAAA,CAAK,GAAA,CAAI,aAAA,GAAgB,CAAA,EAAG,CAAC,CAAC,CAAA;AAAA,MAChD;AACA,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,eAAA,CAAgB,OAAA,CAAQ,OAAO,CAAA,IAAK,eAAe,CAAA,EAAG;AACxD,MAAA,eAAA,CAAgB,eAAe,CAAC,CAAA;AAAA,IAClC;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,qBAAA,EAAuB,YAAY,CAAC,CAAA;AAEnD,EAAA,MAAM,aAAa,QAAA,IAAY,EAAA;AAC/B,EAAA,MAAM,YAAA,GACJ,SAAA,IAAa,YAAA,KAAiB,IAAA,GAC1B,IAAA,CAAK,GAAA,CAAI,YAAA,EAAc,UAAU,CAAA,GACjC,IAAA,CAAK,GAAA,CAAI,qBAAA,EAAuB,UAAU,CAAA;AAChD,EAAA,MAAM,cAAc,qBAAA,GAAwB,YAAA;AAE5C,EAAA,OAAO,EAAE,OAAA,EAAS,YAAA,EAAc,WAAA,EAAY;AAC9C;;;;"}
@@ -3,11 +3,11 @@ import * as React from 'react';
3
3
  import React__default, { forwardRef, useRef, useEffect, useCallback } from 'react';
4
4
  import { a as getAugmentedNamespace, c as cx } from './index-De1g9FRV.js';
5
5
  import { d as drillDownStyles } from './DrillDown.module-D1Bf9_yP.js';
6
- import { t as tabbable, f as focusable, i as isTabbable, g as getTabIndex, b as isFocusable, c as index_esm } from './usePopoverTransitionStates-B1opfxxn.js';
6
+ import { t as tabbable, f as focusable, i as isTabbable, g as getTabIndex, b as isFocusable, c as index_esm } from './usePopoverTransitionStates-CDXCdyKa.js';
7
7
  import { u as useDrillDownContext } from './useDrillDownContext-iUvoTget.js';
8
- import { F as Flex } from './Flex-Bb3iHExM.js';
9
- import { B as Button } from './Button-BNzCI47m.js';
10
- import { T as Text } from './Text-BjYHzUGW.js';
8
+ import { F as Flex } from './Flex-CRF7gj0_.js';
9
+ import { B as Button } from './Button-Dwh_Nd4l.js';
10
+ import { T as Text } from './Text-CIoD_RK4.js';
11
11
  import { S as SvgClose } from './close-DZj38AEh.js';
12
12
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
13
13
  import { useTrackingId } from './useTrackingId.js';
@@ -1885,4 +1885,4 @@ function useDrillDown() {
1885
1885
  }
1886
1886
 
1887
1887
  export { DrillDown as D, DrillDownHeader as a, DrillDownContent as b, DrillDownFooter as c, DrillDownNextButton as d, DrillDownPrevButton as e, useDrillDown as u };
1888
- //# sourceMappingURL=useDrilldown-CCsr0_3L.js.map
1888
+ //# sourceMappingURL=useDrilldown-D7DKSs7E.js.map