@servicetitan/anvil2 3.14.1 → 3.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (833) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/{AiMark-CWufA6pV.js → AiMark-BfmK30vL.js} +3 -3
  3. package/dist/AiMark-BfmK30vL.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-RkvFtmRP.js → Alert-lLo1N7Tj.js} +3 -3
  6. package/dist/Alert-lLo1N7Tj.js.map +1 -0
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-CGTv6M31.js → Announcement-Cnz80WGx.js} +2 -2
  9. package/dist/Announcement-Cnz80WGx.js.map +1 -0
  10. package/dist/Announcement.js +1 -1
  11. package/dist/Avatar-Ba662b3z.js +17 -0
  12. package/dist/Avatar-Ba662b3z.js.map +1 -0
  13. package/dist/{Avatar-DZxHhMTP.js → Avatar-CwnLhw9m.js} +1 -20
  14. package/dist/Avatar-CwnLhw9m.js.map +1 -0
  15. package/dist/Avatar.js +2 -2
  16. package/dist/Badge-BNrYBFiU.js.map +1 -1
  17. package/dist/{Breadcrumbs-DbOrdao2.js → Breadcrumbs-RdL4Fvmu.js} +3 -16
  18. package/dist/Breadcrumbs-RdL4Fvmu.js.map +1 -0
  19. package/dist/Breadcrumbs.js +1 -1
  20. package/dist/{Button-Dwh_Nd4l.js → Button-Dn6-01xl.js} +230 -67
  21. package/dist/Button-Dn6-01xl.js.map +1 -0
  22. package/dist/Button.js +1 -1
  23. package/dist/ButtonCompound-D7kA0qXr.js.map +1 -1
  24. package/dist/ButtonLink-DOFAxNvC.js.map +1 -1
  25. package/dist/{ButtonToggle-DKDBD1g3.js → ButtonToggle-BSU8GBxr.js} +2 -2
  26. package/dist/ButtonToggle-BSU8GBxr.js.map +1 -0
  27. package/dist/ButtonToggle.js +1 -1
  28. package/dist/{Calendar-DLnn6dJE.js → Calendar-DoLRAWLp.js} +2 -2
  29. package/dist/Calendar-DoLRAWLp.js.map +1 -0
  30. package/dist/{Calendar-CK-AAaSG.js → Calendar-IzXG1aJw.js} +12 -80
  31. package/dist/Calendar-IzXG1aJw.js.map +1 -0
  32. package/dist/Calendar.js +2 -2
  33. package/dist/Card-Bt0F6RTq.js.map +1 -1
  34. package/dist/{Checkbox-CboZhOtU.js → Checkbox-CVxbe-iN.js} +3 -3
  35. package/dist/Checkbox-CVxbe-iN.js.map +1 -0
  36. package/dist/{Checkbox-Cn4iNLW_.js → Checkbox-U-kuWhgc.js} +3 -23
  37. package/dist/Checkbox-U-kuWhgc.js.map +1 -0
  38. package/dist/Checkbox.js +1 -1
  39. package/dist/{Chip-UbrxYEqs.js → Chip-2OydLs66.js} +3 -3
  40. package/dist/Chip-2OydLs66.js.map +1 -0
  41. package/dist/Chip.js +1 -1
  42. package/dist/Combobox.js +1 -1
  43. package/dist/{DataTable-COExZbOC.js → DataTable-DkEpJ_Op.js} +17 -42
  44. package/dist/DataTable-DkEpJ_Op.js.map +1 -0
  45. package/dist/{DateFieldRange-CpTxlASD.js → DateFieldRange-X2jdOTYY.js} +7 -15
  46. package/dist/DateFieldRange-X2jdOTYY.js.map +1 -0
  47. package/dist/DateFieldRange.js +1 -1
  48. package/dist/{DateFieldSingle-DR2kfrzh.js → DateFieldSingle-BJ16tpOz.js} +6 -9
  49. package/dist/DateFieldSingle-BJ16tpOz.js.map +1 -0
  50. package/dist/DateFieldSingle.js +1 -1
  51. package/dist/{DateFieldYearless-4mS_2Mgw.js → DateFieldYearless-CMm8vtz_.js} +4 -4
  52. package/dist/DateFieldYearless-CMm8vtz_.js.map +1 -0
  53. package/dist/DateFieldYearless.js +1 -1
  54. package/dist/{DateFieldYearlessRange-C-yvKBkJ.js → DateFieldYearlessRange-BHHs-Z1Q.js} +3 -3
  55. package/dist/DateFieldYearlessRange-BHHs-Z1Q.js.map +1 -0
  56. package/dist/DateFieldYearlessRange.js +1 -1
  57. package/dist/{DaysOfTheWeek-Bo4w8SsT.js → DaysOfTheWeek-BHXxs0Bo.js} +4 -4
  58. package/dist/DaysOfTheWeek-BHXxs0Bo.js.map +1 -0
  59. package/dist/DaysOfTheWeek.js +1 -1
  60. package/dist/{Details-CVA5zbrR.js → Details-BxqP-5vp.js} +13 -9
  61. package/dist/Details-BxqP-5vp.js.map +1 -0
  62. package/dist/Details.css +18 -14
  63. package/dist/Details.js +1 -1
  64. package/dist/{Dialog-Ds25dKQp.js → Dialog-B9llUKJz.js} +44 -102
  65. package/dist/Dialog-B9llUKJz.js.map +1 -0
  66. package/dist/Dialog.js +1 -1
  67. package/dist/{DialogCancelButton-DBL0aKTK.js → DialogCancelButton-C0r8hJ8Z.js} +2 -2
  68. package/dist/DialogCancelButton-C0r8hJ8Z.js.map +1 -0
  69. package/dist/DialogContext-DBgtApl9.js.map +1 -1
  70. package/dist/Divider-C7fp5Xb6.js.map +1 -1
  71. package/dist/Dnd.js +1 -1
  72. package/dist/DndHandleButton-BRlodkDO.js.map +1 -1
  73. package/dist/DndSort.js +4 -6
  74. package/dist/DndSort.js.map +1 -1
  75. package/dist/{Drawer-Da-bj_6o.js → Drawer-Bjd2XLUX.js} +33 -103
  76. package/dist/Drawer-Bjd2XLUX.js.map +1 -0
  77. package/dist/Drawer.js +1 -1
  78. package/dist/DrawerContext-BSpnzXVZ.js.map +1 -1
  79. package/dist/DrillDown.js +1 -1
  80. package/dist/DrillDown.module-1VBKDZRA.js.map +1 -1
  81. package/dist/{EditCard-CocV93gS.js → EditCard-B6l2vhBS.js} +3 -3
  82. package/dist/EditCard-B6l2vhBS.js.map +1 -0
  83. package/dist/EditCard.js +1 -1
  84. package/dist/{FieldLabel-6aFKQfyD.js → FieldLabel-ThEmUiAq.js} +3 -4
  85. package/dist/FieldLabel-ThEmUiAq.js.map +1 -0
  86. package/dist/FieldLabel.js +1 -1
  87. package/dist/FieldMessage-8c9yA_kw.js.map +1 -1
  88. package/dist/{FilterBar-CZT1ryz_.js → FilterBar-ecqJDraA.js} +7 -7
  89. package/dist/FilterBar-ecqJDraA.js.map +1 -0
  90. package/dist/FilterBar.js +1 -1
  91. package/dist/Flex-CRF7gj0_.js.map +1 -1
  92. package/dist/{Grid-CvGQrIhE.js → Grid-BPCDtqoT.js} +2 -20
  93. package/dist/Grid-BPCDtqoT.js.map +1 -0
  94. package/dist/Grid.js +1 -1
  95. package/dist/Icon-B5zwN7GD.js.map +1 -1
  96. package/dist/{InputMask-CNV0Ucli.js → InputMask-BQigi5oW.js} +3 -3
  97. package/dist/{InputMask-CNV0Ucli.js.map → InputMask-BQigi5oW.js.map} +1 -1
  98. package/dist/InputMask.js +1 -1
  99. package/dist/{InteractiveCard-C0g5PxB6.js → InteractiveCard-C2CYRtgQ.js} +3 -3
  100. package/dist/InteractiveCard-C2CYRtgQ.js.map +1 -0
  101. package/dist/InteractiveCard.js +1 -1
  102. package/dist/{Layout-C2Q2hyLG.js → Layout-C8fKY7Eh.js} +2 -1
  103. package/dist/Layout-C8fKY7Eh.js.map +1 -0
  104. package/dist/Layout.js +1 -1
  105. package/dist/Link-D7ycmfQ_.js.map +1 -1
  106. package/dist/LinkButton-C0wps8r1.js.map +1 -1
  107. package/dist/{List-BvzfZ9TW.js → List-CTr2fk7l.js} +2 -11
  108. package/dist/List-CTr2fk7l.js.map +1 -0
  109. package/dist/List.js +1 -1
  110. package/dist/{ListView-DFAWrwzi.js → ListView-YJscfG4x.js} +4 -26
  111. package/dist/ListView-YJscfG4x.js.map +1 -0
  112. package/dist/ListView.js +1 -1
  113. package/dist/{Listbox-BErqErNN.js → Listbox-CD9ZptSZ.js} +4 -30
  114. package/dist/Listbox-CD9ZptSZ.js.map +1 -0
  115. package/dist/Listbox.js +1 -1
  116. package/dist/{Menu-BjPE_ODh.js → Menu-Da2OEN0o.js} +3 -23
  117. package/dist/Menu-Da2OEN0o.js.map +1 -0
  118. package/dist/Menu.js +1 -1
  119. package/dist/{MenuFooter-fGSZYh8e.js → MenuFooter-D__gg92C.js} +2 -2
  120. package/dist/{MenuFooter-fGSZYh8e.js.map → MenuFooter-D__gg92C.js.map} +1 -1
  121. package/dist/MultiSelectField.js +1 -1
  122. package/dist/{MultiSelectFieldSync-CqWUidCm.js → MultiSelectFieldSync-DpPO0cya.js} +7 -14
  123. package/dist/MultiSelectFieldSync-DpPO0cya.js.map +1 -0
  124. package/dist/MultiSelectMenu.js +1 -1
  125. package/dist/{MultiSelectMenuSync-DG3rKyQc.js → MultiSelectMenuSync-BN_3moW_.js} +5 -5
  126. package/dist/MultiSelectMenuSync-BN_3moW_.js.map +1 -0
  127. package/dist/{NumberField-DRYYJHec.js → NumberField-CxmJx4gs.js} +4 -4
  128. package/dist/NumberField-CxmJx4gs.js.map +1 -0
  129. package/dist/NumberField.js +1 -1
  130. package/dist/Overflow.js +1 -1
  131. package/dist/Overflow.js.map +1 -1
  132. package/dist/{Page-pfK5iSmv.js → Page-IZ4p51iJ.js} +20 -189
  133. package/dist/Page-IZ4p51iJ.js.map +1 -0
  134. package/dist/Page.js +1 -1
  135. package/dist/{Pagination-Bc4fhdNm.js → Pagination-Su4VBAhT.js} +15 -11
  136. package/dist/Pagination-Su4VBAhT.js.map +1 -0
  137. package/dist/Pagination.js +1 -1
  138. package/dist/{Popover-BgVOsP4J.js → Popover-CIh1CsoJ.js} +6 -74
  139. package/dist/Popover-CIh1CsoJ.js.map +1 -0
  140. package/dist/Popover.js +1 -1
  141. package/dist/{ProgressBar-Chb0uKfL.js → ProgressBar-TQ0fPmn9.js} +2 -2
  142. package/dist/ProgressBar-TQ0fPmn9.js.map +1 -0
  143. package/dist/ProgressBar.js +1 -1
  144. package/dist/{Radio-DcNlFfSu.js → Radio-BYowelK2.js} +3 -3
  145. package/dist/Radio-BYowelK2.js.map +1 -0
  146. package/dist/Radio-C1VnatcL.js +31 -0
  147. package/dist/Radio-C1VnatcL.js.map +1 -0
  148. package/dist/Radio.js +1 -1
  149. package/dist/{RichTextEditor-DeO4p-S-.js → RichTextEditor-BpzUo8dB.js} +12 -17
  150. package/dist/RichTextEditor-BpzUo8dB.js.map +1 -0
  151. package/dist/RichTextEditor.js +1 -1
  152. package/dist/{SavedFiltersButton-Cvf1mJk8.js → SavedFiltersButton-D9GJbJQu.js} +10 -24
  153. package/dist/SavedFiltersButton-D9GJbJQu.js.map +1 -0
  154. package/dist/SavedFiltersButton.js +1 -1
  155. package/dist/SearchField-ChoNtw8w.js.map +1 -1
  156. package/dist/SearchField-DX8hZyo2.js.map +1 -1
  157. package/dist/{SegmentedControl-CQ6DrbDc.js → SegmentedControl-BHVJmmTH.js} +4 -19
  158. package/dist/SegmentedControl-BHVJmmTH.js.map +1 -0
  159. package/dist/SegmentedControl.js +1 -1
  160. package/dist/{SelectCard-bp5hRyHK.js → SelectCard-DrmMU_GD.js} +4 -28
  161. package/dist/SelectCard-DrmMU_GD.js.map +1 -0
  162. package/dist/SelectCard.js +1 -1
  163. package/dist/SelectField.js +1 -1
  164. package/dist/{SelectFieldLabel-DZqxaZsp.js → SelectFieldLabel-BxsKvfqo.js} +2 -2
  165. package/dist/SelectFieldLabel-BxsKvfqo.js.map +1 -0
  166. package/dist/{SelectFieldSync-Wkx6DGpg.js → SelectFieldSync-BN2ebLWT.js} +8 -7
  167. package/dist/SelectFieldSync-BN2ebLWT.js.map +1 -0
  168. package/dist/SelectMenu.js +1 -1
  169. package/dist/{SelectMenuSync-O55TODxn.js → SelectMenuSync-DuPf8KCc.js} +5 -5
  170. package/dist/SelectMenuSync-DuPf8KCc.js.map +1 -0
  171. package/dist/{SelectOptions-0A8BYx1q.js → SelectOptions-BK7kNjYM.js} +2 -2
  172. package/dist/{SelectOptions-0A8BYx1q.js.map → SelectOptions-BK7kNjYM.js.map} +1 -1
  173. package/dist/{SelectTrigger-BfJ7DWYq.js → SelectTrigger-B5h-aqhl.js} +3 -3
  174. package/dist/SelectTrigger-B5h-aqhl.js.map +1 -0
  175. package/dist/SelectTrigger.js +1 -1
  176. package/dist/{SelectTriggerBase-DvsI-kSG.js → SelectTriggerBase-SML2Mlt-.js} +4 -6
  177. package/dist/SelectTriggerBase-SML2Mlt-.js.map +1 -0
  178. package/dist/{SideNav-BLXgM918.js → SideNav-CHG7i8Dy.js} +4 -57
  179. package/dist/SideNav-CHG7i8Dy.js.map +1 -0
  180. package/dist/SideNav.js +1 -1
  181. package/dist/Skeleton.js.map +1 -1
  182. package/dist/Spinner-B7tTWcP6.js.map +1 -1
  183. package/dist/SrOnly-pnf8ajnh.js.map +1 -1
  184. package/dist/{Stepper-CCKHWlUr.js → Stepper-l_P6VPOv.js} +12 -180
  185. package/dist/Stepper-l_P6VPOv.js.map +1 -0
  186. package/dist/Stepper.js +1 -1
  187. package/dist/{Switch-CrDmBj4D.js → Switch-1iNdXTik.js} +2 -2
  188. package/dist/Switch-1iNdXTik.js.map +1 -0
  189. package/dist/Switch.js +1 -1
  190. package/dist/{Tab-Bqfvg8Ce.js → Tab-DR5YYXkq.js} +127 -76
  191. package/dist/Tab-DR5YYXkq.js.map +1 -0
  192. package/dist/Tab.js +1 -1
  193. package/dist/Table.js +1 -1
  194. package/dist/{Text-CZccJAnm.js → Text-rihxXHSe.js} +2 -2
  195. package/dist/Text-rihxXHSe.js.map +1 -0
  196. package/dist/Text.js +1 -1
  197. package/dist/{TextField-DX5qyWPo.js → TextField-Bxd-Qzoi.js} +2 -2
  198. package/dist/TextField-Bxd-Qzoi.js.map +1 -0
  199. package/dist/{TextField-D0f9LwgQ.js → TextField-vuS7xeo-.js} +3 -3
  200. package/dist/TextField-vuS7xeo-.js.map +1 -0
  201. package/dist/TextField.js +1 -1
  202. package/dist/{Textarea-CdTcekFd.js → Textarea-ppapJUwh.js} +3 -3
  203. package/dist/Textarea-ppapJUwh.js.map +1 -0
  204. package/dist/Textarea.js +1 -1
  205. package/dist/{TimeField-BxNglWQt.js → TimeField-Hwt_oRbg.js} +5 -9
  206. package/dist/TimeField-Hwt_oRbg.js.map +1 -0
  207. package/dist/TimeField.js +1 -1
  208. package/dist/TimezoneMessage-BrKB_psP.js.map +1 -1
  209. package/dist/Toast.js +2 -2
  210. package/dist/{Toaster-C-Z_FMbW.js → Toaster-BryQmKe1.js} +7 -19
  211. package/dist/Toaster-BryQmKe1.js.map +1 -0
  212. package/dist/{Toaster-nyQgF9Ki.js → Toaster-BtP_HezK.js} +3 -6
  213. package/dist/Toaster-BtP_HezK.js.map +1 -0
  214. package/dist/{Toolbar-BUbMtBVz.js → Toolbar-CMulzswf.js} +10 -79
  215. package/dist/Toolbar-CMulzswf.js.map +1 -0
  216. package/dist/{Toolbar-BxAFPvbn.js → Toolbar-DGHZpFi9.js} +12 -106
  217. package/dist/Toolbar-DGHZpFi9.js.map +1 -0
  218. package/dist/Toolbar.js +2 -2
  219. package/dist/{ToolbarButtonToggle-NSJ2XfXT.js → ToolbarButtonToggle-T8YnSJ5x.js} +3 -4
  220. package/dist/ToolbarButtonToggle-T8YnSJ5x.js.map +1 -0
  221. package/dist/{Tooltip-B4MSqIpg.js → Tooltip-C_VcYS9P.js} +3 -37
  222. package/dist/Tooltip-C_VcYS9P.js.map +1 -0
  223. package/dist/Tooltip.js +1 -1
  224. package/dist/TreeSelectField.js +1 -1
  225. package/dist/{TreeSelectFieldSync-DpvwlM7B.js → TreeSelectFieldSync-C0mXwYZL.js} +7 -7
  226. package/dist/TreeSelectFieldSync-C0mXwYZL.js.map +1 -0
  227. package/dist/TreeSelectMenu.js +1 -1
  228. package/dist/{TreeSelectMenuSync-BDitYX_k.js → TreeSelectMenuSync-D2TvKxP-.js} +4 -4
  229. package/dist/TreeSelectMenuSync-D2TvKxP-.js.map +1 -0
  230. package/dist/{TypeaheadTextField-Cj09sEji.js → TypeaheadTextField-DgazozK7.js} +10 -19
  231. package/dist/TypeaheadTextField-DgazozK7.js.map +1 -0
  232. package/dist/TypeaheadTextField.js +1 -1
  233. package/dist/{YearlessDateInputWithPicker-CoomgSEK.js → YearlessDateInputWithPicker-Bc8a33D5.js} +5 -7
  234. package/dist/YearlessDateInputWithPicker-Bc8a33D5.js.map +1 -0
  235. package/dist/assets/icons/st/gnav_analytics_active.svg +1 -0
  236. package/dist/assets/icons/st/gnav_analytics_inactive.svg +1 -0
  237. package/dist/assets/icons/st.ts +3 -1
  238. package/dist/beta.js +18 -18
  239. package/dist/{bulkActionTypes-DAo3_ECS.js → bulkActionTypes-D5y3Acn1.js} +2 -2
  240. package/dist/{bulkActionTypes-DAo3_ECS.js.map → bulkActionTypes-D5y3Acn1.js.map} +1 -1
  241. package/dist/{filter-state-CZcczj37.js → filter-state-Do862BNr.js} +56 -38
  242. package/dist/filter-state-Do862BNr.js.map +1 -0
  243. package/dist/{index-BwV_Pz7v.js → index-Bldaza5t.js} +5 -1
  244. package/dist/index-Bldaza5t.js.map +1 -0
  245. package/dist/{index-BFxzUzoz.js → index-Dt0zG4YB.js} +2 -2
  246. package/dist/{index-BFxzUzoz.js.map → index-Dt0zG4YB.js.map} +1 -1
  247. package/dist/index.js +63 -173
  248. package/dist/index.js.map +1 -1
  249. package/dist/{makeZeroShortcutPreprocessor-CxsiGTRW.js → makeZeroShortcutPreprocessor-D5KWcgUA.js} +2 -4
  250. package/dist/makeZeroShortcutPreprocessor-D5KWcgUA.js.map +1 -0
  251. package/dist/{proxy-DEehATlA.js → react-ORV84FjM.js} +6862 -5814
  252. package/dist/react-ORV84FjM.js.map +1 -0
  253. package/dist/src/beta/components/Calendar/Calendar.d.ts +8 -17
  254. package/dist/src/beta/components/Calendar/CalendarBetaPropsContext.d.ts +1 -0
  255. package/dist/src/beta/components/Calendar/useCalendarBetaProps.d.ts +1 -0
  256. package/dist/src/beta/components/FilterBar/FilterBar.d.ts +12 -53
  257. package/dist/src/beta/components/FilterBar/FilterDateList.d.ts +8 -0
  258. package/dist/src/beta/components/FilterBar/FilterDateRange.d.ts +15 -9
  259. package/dist/src/beta/components/FilterBar/FilterDateSingle.d.ts +15 -9
  260. package/dist/src/beta/components/FilterBar/FilterDrawer.d.ts +1 -14
  261. package/dist/src/beta/components/FilterBar/FilterItemWrapper.d.ts +0 -7
  262. package/dist/src/beta/components/FilterBar/FilterNumericRange.d.ts +4 -13
  263. package/dist/src/beta/components/FilterBar/FilterPopoverButton.d.ts +6 -8
  264. package/dist/src/beta/components/FilterBar/FilterSearchField.d.ts +3 -6
  265. package/dist/src/beta/components/FilterBar/FilterTextInput.d.ts +4 -13
  266. package/dist/src/beta/components/FilterBar/FilterToggleButton.d.ts +3 -14
  267. package/dist/src/beta/components/FilterBar/FilterTriggerButton.d.ts +3 -3
  268. package/dist/src/beta/components/FilterBar/internal/FilterGroupContext.d.ts +6 -20
  269. package/dist/src/beta/components/FilterBar/internal/adapters/index.d.ts +3 -8
  270. package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +7 -19
  271. package/dist/src/beta/components/FilterBar/internal/types.d.ts +48 -57
  272. package/dist/src/beta/components/FilterBar/internal/utils/dateConstraints.d.ts +3 -3
  273. package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +4 -7
  274. package/dist/src/beta/components/FilterBar/internal/utils/filter-state.d.ts +3 -24
  275. package/dist/src/beta/components/InteractiveCard/InteractiveCard.d.ts +2 -47
  276. package/dist/src/beta/components/InteractiveCard/types.d.ts +13 -71
  277. package/dist/src/beta/components/Page/Page.d.ts +8 -166
  278. package/dist/src/beta/components/Page/PageContent.d.ts +3 -17
  279. package/dist/src/beta/components/Page/PageContext.d.ts +9 -0
  280. package/dist/src/beta/components/Page/PageFooter.d.ts +2 -15
  281. package/dist/src/beta/components/Page/PageHeader.d.ts +38 -91
  282. package/dist/src/beta/components/Page/PagePanel.d.ts +17 -115
  283. package/dist/src/beta/components/Page/PagePanelContent.d.ts +5 -37
  284. package/dist/src/beta/components/Page/PagePanelFooter.d.ts +4 -27
  285. package/dist/src/beta/components/Page/PagePanelHeader.d.ts +3 -16
  286. package/dist/src/beta/components/Page/PageSidebar.d.ts +8 -41
  287. package/dist/src/beta/components/Page/PageSidebarHeader.d.ts +2 -20
  288. package/dist/src/beta/components/Page/internal/PagePanelContext.d.ts +1 -6
  289. package/dist/src/beta/components/Page/pageBreakpoint.d.ts +5 -18
  290. package/dist/src/beta/components/RichTextEditor/RichTextEditor.d.ts +2 -25
  291. package/dist/src/beta/components/RichTextEditor/internal/LinkPopover.d.ts +1 -0
  292. package/dist/src/beta/components/RichTextEditor/internal/MentionList.d.ts +1 -0
  293. package/dist/src/beta/components/RichTextEditor/internal/MentionPopover.d.ts +1 -0
  294. package/dist/src/beta/components/RichTextEditor/internal/RichTextEditorToolbar.d.ts +1 -0
  295. package/dist/src/beta/components/RichTextEditor/internal/YouTubeEmbedPrompt.d.ts +1 -0
  296. package/dist/src/beta/components/RichTextEditor/internal/YouTubePopover.d.ts +1 -0
  297. package/dist/src/beta/components/RichTextEditor/internal/extensions/ImageUploadExtension.d.ts +1 -0
  298. package/dist/src/beta/components/RichTextEditor/internal/extensions/LinkKeyboardShortcutExtension.d.ts +1 -0
  299. package/dist/src/beta/components/RichTextEditor/internal/extensions/MentionExtension.d.ts +5 -0
  300. package/dist/src/beta/components/RichTextEditor/internal/extensions/SafeImageExtension.d.ts +3 -10
  301. package/dist/src/beta/components/RichTextEditor/internal/extensions/YoutubeExtension.d.ts +4 -0
  302. package/dist/src/beta/components/RichTextEditor/internal/useRichTextEditor.d.ts +3 -17
  303. package/dist/src/beta/components/RichTextEditor/types.d.ts +46 -71
  304. package/dist/src/beta/components/SavedFiltersButton/SavedFiltersButton.d.ts +2 -33
  305. package/dist/src/beta/components/SavedFiltersButton/internal/AddSavedFilterDrawer.d.ts +2 -12
  306. package/dist/src/beta/components/SavedFiltersButton/internal/EditSavedFiltersDrawer.d.ts +2 -20
  307. package/dist/src/beta/components/SavedFiltersButton/parts.d.ts +0 -23
  308. package/dist/src/beta/components/SavedFiltersButton/types.d.ts +36 -85
  309. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +34 -84
  310. package/dist/src/beta/components/Table/DataTable/internal/DataTableBody.d.ts +15 -22
  311. package/dist/src/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +47 -18
  312. package/dist/src/beta/components/Table/DataTable/internal/DataTableCellAffordance.d.ts +8 -0
  313. package/dist/src/beta/components/Table/DataTable/internal/DataTableFooter.d.ts +17 -23
  314. package/dist/src/beta/components/Table/DataTable/internal/DataTableHeader.d.ts +6 -9
  315. package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +16 -0
  316. package/dist/src/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +2 -11
  317. package/dist/src/beta/components/Table/DataTable/internal/cells/CellStatus.d.ts +7 -5
  318. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyCell.d.ts +4 -8
  319. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyImmutableCell.d.ts +4 -17
  320. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyMutableCell.d.ts +4 -18
  321. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableFooterCell.d.ts +3 -10
  322. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableHeaderCell.d.ts +3 -15
  323. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableOverflowCell.d.ts +4 -0
  324. package/dist/src/beta/components/Table/DataTable/internal/cells/useCellFocusListener.d.ts +2 -6
  325. package/dist/src/beta/components/Table/DataTable/internal/constants.d.ts +13 -30
  326. package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusContext.d.ts +1 -6
  327. package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusProvider.d.ts +3 -0
  328. package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusDispatchContext.d.ts +1 -0
  329. package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusStateContext.d.ts +1 -0
  330. package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickContext.d.ts +2 -5
  331. package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickProvider.d.ts +2 -5
  332. package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/useDataTableRowClick.d.ts +1 -0
  333. package/dist/src/beta/components/Table/DataTable/internal/context/surface/DataTableSurfaceCoordinatorContext.d.ts +4 -0
  334. package/dist/src/beta/components/Table/DataTable/internal/context/surface/DataTableSurfaceCoordinatorProvider.d.ts +1 -0
  335. package/dist/src/beta/components/Table/DataTable/internal/context/surface/useDataTableSurfaceCoordinator.d.ts +1 -0
  336. package/dist/src/beta/components/Table/DataTable/internal/dataTableCellAffordanceHostClassName.d.ts +1 -0
  337. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableBooleanCell.d.ts +6 -0
  338. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableCellEditIcon.d.ts +1 -4
  339. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableCustomCell.d.ts +4 -0
  340. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +5 -25
  341. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +3 -13
  342. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableNumberCell.d.ts +4 -0
  343. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +5 -0
  344. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectCell.d.ts +4 -0
  345. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableTextCell.d.ts +4 -0
  346. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/types.d.ts +7 -20
  347. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/useCustomEditHelpers.d.ts +13 -26
  348. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +2 -10
  349. package/dist/src/beta/components/Table/DataTable/internal/useAsyncData.d.ts +8 -0
  350. package/dist/src/beta/components/Table/DataTable/internal/useColumnOrder.d.ts +2 -2
  351. package/dist/src/beta/components/Table/DataTable/internal/useDataTableVirtualizer.d.ts +7 -18
  352. package/dist/src/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +6 -10
  353. package/dist/src/beta/components/Table/DataTable/internal/util/cellPositionHelpers.d.ts +0 -3
  354. package/dist/src/beta/components/Table/DataTable/internal/util/cellTypeHelpers.d.ts +7 -24
  355. package/dist/src/beta/components/Table/DataTable/internal/util/getCellInteractives.d.ts +4 -17
  356. package/dist/src/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +5 -29
  357. package/dist/src/beta/components/Table/DataTable/internal/util/shallowSortingEqual.d.ts +1 -0
  358. package/dist/src/beta/components/Table/DataTable/parts.d.ts +3 -17
  359. package/dist/src/beta/components/Table/DataTable/types.d.ts +41 -64
  360. package/dist/src/beta/components/Table/base/TableBase.d.ts +8 -26
  361. package/dist/src/beta/components/Table/base/TableBody.d.ts +5 -14
  362. package/dist/src/beta/components/Table/base/TableContainer.d.ts +1 -11
  363. package/dist/src/beta/components/Table/base/TableFooter.d.ts +5 -14
  364. package/dist/src/beta/components/Table/base/TableHeader.d.ts +5 -14
  365. package/dist/src/beta/components/Table/base/cells/TableBodyCell.d.ts +4 -13
  366. package/dist/src/beta/components/Table/base/cells/TableEmptyCellContent.d.ts +1 -1
  367. package/dist/src/beta/components/Table/base/cells/TableFooterCell.d.ts +5 -13
  368. package/dist/src/beta/components/Table/base/cells/TableHeaderCell.d.ts +8 -25
  369. package/dist/src/beta/components/Table/base/cells/types.d.ts +2 -6
  370. package/dist/src/beta/components/Table/columnTypeDefaults.d.ts +7 -36
  371. package/dist/src/beta/components/Table/createColumnHelper.d.ts +38 -153
  372. package/dist/src/beta/components/Table/formatters/booleanFormatter.d.ts +4 -15
  373. package/dist/src/beta/components/Table/formatters/chipsFormatter.d.ts +7 -9
  374. package/dist/src/beta/components/Table/formatters/currencyFormatter.d.ts +3 -15
  375. package/dist/src/beta/components/Table/formatters/dateFormatter.d.ts +10 -23
  376. package/dist/src/beta/components/Table/formatters/dateTimeFormatter.d.ts +23 -46
  377. package/dist/src/beta/components/Table/formatters/htmlFormatter.d.ts +2 -11
  378. package/dist/src/beta/components/Table/formatters/htmlToMarkdown.d.ts +5 -10
  379. package/dist/src/beta/components/Table/formatters/markdownFormatter.d.ts +3 -8
  380. package/dist/src/beta/components/Table/formatters/numberFormatter.d.ts +8 -27
  381. package/dist/src/beta/components/Table/formatters/percentFormatter.d.ts +4 -15
  382. package/dist/src/beta/components/Table/formatters/presets.d.ts +4 -12
  383. package/dist/src/beta/components/Table/formatters/timeFormatter.d.ts +7 -17
  384. package/dist/src/beta/components/Table/formatters/yearlessDateFormatter.d.ts +9 -21
  385. package/dist/src/beta/components/Table/internal/ResizeHandle.d.ts +5 -9
  386. package/dist/src/beta/components/Table/internal/TruncateChips.d.ts +2 -11
  387. package/dist/src/beta/components/Table/internal/getCommonPinningClasses.d.ts +2 -1
  388. package/dist/src/beta/components/Table/internal/getCommonPinningStyles.d.ts +6 -2
  389. package/dist/src/beta/components/Table/internal/scrollCellIntoView.d.ts +3 -7
  390. package/dist/src/beta/components/Table/internal/types.d.ts +2 -7
  391. package/dist/src/beta/components/Table/types.d.ts +183 -462
  392. package/dist/src/beta/components/Toolbar/Toolbar.d.ts +35 -267
  393. package/dist/src/beta/components/Toolbar/ToolbarButton.d.ts +5 -26
  394. package/dist/src/beta/components/Toolbar/ToolbarButtonLink.d.ts +5 -28
  395. package/dist/src/beta/components/Toolbar/ToolbarButtonToggle.d.ts +5 -27
  396. package/dist/src/beta/components/Toolbar/ToolbarControlGroup.d.ts +6 -8
  397. package/dist/src/beta/components/Toolbar/ToolbarSearchField.d.ts +3 -14
  398. package/dist/src/beta/components/Toolbar/ToolbarSelect.d.ts +13 -65
  399. package/dist/src/beta/components/Toolbar/internal/ToolbarContext.d.ts +0 -32
  400. package/dist/src/beta/components/Toolbar/internal/ToolbarItemOverflowContext.d.ts +0 -13
  401. package/dist/src/beta/components/Toolbar/internal/ToolbarItemWrapper.d.ts +2 -28
  402. package/dist/src/beta/components/Toolbar/internal/ToolbarOverflowMenu.d.ts +4 -21
  403. package/dist/src/beta/components/Toolbar/internal/utils/accessibility.d.ts +7 -15
  404. package/dist/src/beta/components/Toolbar/types.d.ts +7 -26
  405. package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +2 -23
  406. package/dist/src/beta/components/TreeSelectField/TreeSelectFieldSync.d.ts +10 -46
  407. package/dist/src/beta/components/TreeSelectField/internal/TreeContent.d.ts +5 -21
  408. package/dist/src/beta/components/TreeSelectField/internal/TreePanel.d.ts +1 -38
  409. package/dist/src/beta/components/TreeSelectField/internal/TreeRow.d.ts +6 -38
  410. package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +2 -50
  411. package/dist/src/beta/components/TreeSelectField/internal/VirtualizedTreePanel.d.ts +2 -39
  412. package/dist/src/beta/components/TreeSelectField/internal/treeSync.d.ts +6 -21
  413. package/dist/src/beta/components/TreeSelectField/internal/treeUtils.d.ts +3 -19
  414. package/dist/src/beta/components/TreeSelectField/internal/useTree.d.ts +9 -50
  415. package/dist/src/beta/components/TreeSelectField/internal/useTreeCascade.d.ts +8 -79
  416. package/dist/src/beta/components/TreeSelectField/internal/useTreeKeyboard.d.ts +3 -29
  417. package/dist/src/beta/components/TreeSelectField/internal/useTreeLazyCascade.d.ts +8 -36
  418. package/dist/src/beta/components/TreeSelectField/internal/useTreeLoader.d.ts +10 -34
  419. package/dist/src/beta/components/TreeSelectField/parts.d.ts +3 -9
  420. package/dist/src/beta/components/TreeSelectField/types.d.ts +82 -68
  421. package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenu.d.ts +4 -18
  422. package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenuSync.d.ts +9 -47
  423. package/dist/src/beta/components/TreeSelectMenu/parts.d.ts +4 -4
  424. package/dist/src/beta/components/TreeSelectMenu/types.d.ts +44 -54
  425. package/dist/src/beta/components/TypeaheadTextField/TypeaheadTextField.d.ts +15 -43
  426. package/dist/src/beta/components/TypeaheadTextField/internal/SuggestionItem.d.ts +1 -18
  427. package/dist/src/beta/hooks/useAdaptiveView/useAdaptiveView.d.ts +6 -41
  428. package/dist/src/components/AiMark/AiMark.d.ts +9 -69
  429. package/dist/src/components/AiMark/internal/AiMarkIconAnimated.d.ts +2 -20
  430. package/dist/src/components/AiMark/internal/AiMarkInteractive.d.ts +4 -0
  431. package/dist/src/components/Alert/Alert.d.ts +10 -54
  432. package/dist/src/components/Announcement/Announcement.d.ts +7 -49
  433. package/dist/src/components/Avatar/Avatar.d.ts +5 -41
  434. package/dist/src/components/Avatar/AvatarGroup.d.ts +4 -25
  435. package/dist/src/components/Avatar/internal/Avatar.d.ts +1 -44
  436. package/dist/src/components/Avatar/internal/AvatarBase.d.ts +13 -53
  437. package/dist/src/components/Badge/Badge.d.ts +9 -42
  438. package/dist/src/components/Breadcrumbs/Breadcrumbs.d.ts +6 -33
  439. package/dist/src/components/Breadcrumbs/BreadcrumbsLink.d.ts +1 -15
  440. package/dist/src/components/Button/Button.d.ts +19 -41
  441. package/dist/src/components/Button/internal/buttonAiMarkUtils.d.ts +2 -5
  442. package/dist/src/components/ButtonCompound/ButtonCompound.d.ts +5 -28
  443. package/dist/src/components/ButtonLink/ButtonLink.d.ts +23 -59
  444. package/dist/src/components/ButtonToggle/ButtonToggle.d.ts +14 -51
  445. package/dist/src/components/Calendar/Calendar.d.ts +43 -239
  446. package/dist/src/components/Calendar/CalendarContext.d.ts +32 -102
  447. package/dist/src/components/Calendar/CalendarMonth.d.ts +1 -6
  448. package/dist/src/components/Calendar/CalendarMonthButton.d.ts +2 -11
  449. package/dist/src/components/Calendar/CalendarNextButton.d.ts +1 -8
  450. package/dist/src/components/Calendar/CalendarNowButton.d.ts +5 -12
  451. package/dist/src/components/Calendar/CalendarPrevButton.d.ts +1 -8
  452. package/dist/src/components/Calendar/CalendarYearButton.d.ts +2 -10
  453. package/dist/src/components/Calendar/internal/CalendarDay.d.ts +3 -13
  454. package/dist/src/components/Calendar/internal/CalendarMonthSelection.d.ts +3 -17
  455. package/dist/src/components/Calendar/internal/CalendarWeek.d.ts +5 -18
  456. package/dist/src/components/Calendar/internal/utils.d.ts +1 -0
  457. package/dist/src/components/Card/Card.d.ts +4 -21
  458. package/dist/src/components/Checkbox/Checkbox.d.ts +3 -50
  459. package/dist/src/components/Checkbox/CheckboxGroup.d.ts +21 -65
  460. package/dist/src/components/Checkbox/internal/Checkbox.d.ts +32 -90
  461. package/dist/src/components/Checkbox/internal/CheckboxGroupContext.d.ts +2 -14
  462. package/dist/src/components/Checkbox/types.d.ts +2 -0
  463. package/dist/src/components/Chip/Chip.d.ts +5 -41
  464. package/dist/src/components/Chip/internal/Chip.d.ts +13 -84
  465. package/dist/src/components/DateFieldRange/DateFieldRange.d.ts +27 -44
  466. package/dist/src/components/DateFieldRange/internal/DateFieldRangeCalendar.d.ts +7 -0
  467. package/dist/src/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +18 -11
  468. package/dist/src/components/DateFieldRange/internal/maskito/dateRangePlaceholderMask.d.ts +2 -0
  469. package/dist/src/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -7
  470. package/dist/src/components/DateFieldRange/internal/useDateFieldRangeState.d.ts +11 -33
  471. package/dist/src/components/DateFieldRange/internal/utils.d.ts +4 -0
  472. package/dist/src/components/DateFieldRange/parts.d.ts +2 -7
  473. package/dist/src/components/DateFieldSingle/DateFieldSingle.d.ts +24 -46
  474. package/dist/src/components/DateFieldSingle/internal/DateFieldSingleCalendar.d.ts +4 -0
  475. package/dist/src/components/DateFieldSingle/internal/MaskedDateInput.d.ts +15 -8
  476. package/dist/src/components/DateFieldSingle/internal/TimezoneMessage.d.ts +2 -0
  477. package/dist/src/components/DateFieldSingle/internal/maskito/datePlaceholderMask.d.ts +1 -0
  478. package/dist/src/components/DateFieldSingle/internal/maskito/makeZeroShortcutPreprocessor.d.ts +3 -5
  479. package/dist/src/components/DateFieldSingle/internal/useDateFieldSingleConversion.d.ts +3 -29
  480. package/dist/src/components/DateFieldSingle/internal/useDateFieldSingleState.d.ts +13 -22
  481. package/dist/src/components/DateFieldSingle/internal/utils.d.ts +6 -16
  482. package/dist/src/components/DateFieldSingle/parts.d.ts +2 -7
  483. package/dist/src/components/DateFieldSingle/types.d.ts +1 -0
  484. package/dist/src/components/DateFieldYearless/DateFieldYearless.d.ts +31 -96
  485. package/dist/src/components/DateFieldYearless/internal/PickerList.d.ts +12 -40
  486. package/dist/src/components/DateFieldYearless/internal/PickerListOption.d.ts +5 -22
  487. package/dist/src/components/DateFieldYearless/internal/YearlessDateInput.d.ts +23 -8
  488. package/dist/src/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +31 -90
  489. package/dist/src/components/DateFieldYearless/internal/YearlessDateSelectionPopover.d.ts +6 -8
  490. package/dist/src/components/DateFieldYearless/internal/maskito/yearlessDatePlaceholderMask.d.ts +1 -0
  491. package/dist/src/components/DateFieldYearless/internal/maskito/yearlessDateSegmentsStepping.d.ts +3 -5
  492. package/dist/src/components/DateFieldYearless/internal/utils.d.ts +7 -36
  493. package/dist/src/components/DateFieldYearless/parts.d.ts +2 -4
  494. package/dist/src/components/DateFieldYearless/types.d.ts +3 -0
  495. package/dist/src/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +32 -48
  496. package/dist/src/components/DateFieldYearlessRange/parts.d.ts +2 -4
  497. package/dist/src/components/DaysOfTheWeek/DaysOfTheWeek.d.ts +32 -93
  498. package/dist/src/components/Details/Details.d.ts +10 -38
  499. package/dist/src/components/Details/DetailsContent.d.ts +6 -30
  500. package/dist/src/components/Details/DetailsSummary.d.ts +2 -18
  501. package/dist/src/components/Details/internal/DetailsArrow.d.ts +1 -17
  502. package/dist/src/components/Dialog/Dialog.d.ts +41 -218
  503. package/dist/src/components/Dialog/DialogCancelButton.d.ts +2 -17
  504. package/dist/src/components/Dialog/DialogContent.d.ts +4 -35
  505. package/dist/src/components/Dialog/DialogFooter.d.ts +4 -26
  506. package/dist/src/components/Dialog/DialogHeader.d.ts +2 -17
  507. package/dist/src/components/Dialog/internal/DialogContext.d.ts +0 -3
  508. package/dist/src/components/Dialog/internal/useInitialFocus.d.ts +3 -14
  509. package/dist/src/components/Divider/Divider.d.ts +8 -44
  510. package/dist/src/components/Dnd/DndHandle.d.ts +1 -18
  511. package/dist/src/components/Dnd/DndHandleButton.d.ts +2 -26
  512. package/dist/src/components/Dnd/DndSortLine.d.ts +4 -31
  513. package/dist/src/components/Dnd/DndZone.d.ts +6 -43
  514. package/dist/src/components/Dnd/index.d.ts +8 -0
  515. package/dist/src/components/DndSort/DndSort.d.ts +2 -34
  516. package/dist/src/components/DndSort/DndSortCard.d.ts +7 -51
  517. package/dist/src/components/DndSort/DndSortZone.d.ts +17 -99
  518. package/dist/src/components/DndSort/index.d.ts +6 -0
  519. package/dist/src/components/DndSort/internal/DndSortContextProvider.d.ts +1 -3
  520. package/dist/src/components/DndSort/internal/DndSortItem.d.ts +0 -11
  521. package/dist/src/components/DndSort/internal/DndSortOverlay.d.ts +0 -4
  522. package/dist/src/components/DndSort/internal/DndSortZoneContextProvider.d.ts +1 -9
  523. package/dist/src/components/DndSort/internal/test-utils.d.ts +2 -9
  524. package/dist/src/components/DndSort/internal/utils.d.ts +6 -32
  525. package/dist/src/components/DndSort/types.d.ts +14 -35
  526. package/dist/src/components/Drawer/Drawer.d.ts +25 -151
  527. package/dist/src/components/Drawer/DrawerCancelButton.d.ts +2 -21
  528. package/dist/src/components/Drawer/DrawerContent.d.ts +4 -38
  529. package/dist/src/components/Drawer/DrawerFooter.d.ts +4 -30
  530. package/dist/src/components/Drawer/DrawerHeader.d.ts +9 -41
  531. package/dist/src/components/Drawer/index.d.ts +1 -1
  532. package/dist/src/components/Drawer/internal/DrawerContext.d.ts +0 -15
  533. package/dist/src/components/Drawer/internal/useDrawerContext.d.ts +1 -6
  534. package/dist/src/components/DrillDown/DrillDown.d.ts +20 -48
  535. package/dist/src/components/DrillDown/DrillDownContent.d.ts +1 -21
  536. package/dist/src/components/DrillDown/DrillDownFooter.d.ts +1 -25
  537. package/dist/src/components/DrillDown/DrillDownHeader.d.ts +3 -25
  538. package/dist/src/components/DrillDown/DrillDownNextButton.d.ts +2 -22
  539. package/dist/src/components/DrillDown/DrillDownPrevButton.d.ts +2 -22
  540. package/dist/src/components/DrillDown/internal/DrillDownContext.d.ts +3 -0
  541. package/dist/src/components/DrillDown/internal/useDrillDownContext.d.ts +1 -0
  542. package/dist/src/components/DrillDown/internal/useDrillDownContextState.d.ts +4 -0
  543. package/dist/src/components/DrillDown/useDrilldown.d.ts +4 -23
  544. package/dist/src/components/EditCard/EditCard.d.ts +21 -77
  545. package/dist/src/components/FieldLabel/FieldLabel.d.ts +13 -46
  546. package/dist/src/components/FieldLabel/internal/FieldLabelButton.d.ts +1 -20
  547. package/dist/src/components/FieldLabel/internal/FieldLabelMoreInfoIcon.d.ts +2 -5
  548. package/dist/src/components/FieldMessage/FieldMessage.d.ts +18 -56
  549. package/dist/src/components/FieldMessage/utils.d.ts +2 -3
  550. package/dist/src/components/Flex/Flex.d.ts +12 -63
  551. package/dist/src/components/Flex/internal/FlexSpecificProps.d.ts +6 -22
  552. package/dist/src/components/Grid/Grid.d.ts +15 -92
  553. package/dist/src/components/Grid/internal/GridItem.d.ts +0 -23
  554. package/dist/src/components/Grid/internal/GridSpecificProps.d.ts +5 -19
  555. package/dist/src/components/Icon/Icon.d.ts +10 -58
  556. package/dist/src/components/Layout/Layout.d.ts +60 -124
  557. package/dist/src/components/Link/Link.d.ts +12 -38
  558. package/dist/src/components/Link/internal/Link.d.ts +7 -52
  559. package/dist/src/components/Link/internal/LinkHeadless.d.ts +3 -19
  560. package/dist/src/components/Link/useLinkStyles.d.ts +3 -8
  561. package/dist/src/components/LinkButton/LinkButton.d.ts +9 -28
  562. package/dist/src/components/List/List.d.ts +10 -48
  563. package/dist/src/components/List/ListItem.d.ts +1 -4
  564. package/dist/src/components/ListView/ListView.d.ts +4 -46
  565. package/dist/src/components/ListView/ListViewOption.d.ts +9 -20
  566. package/dist/src/components/ListView/ListViewOptionCell.d.ts +1 -11
  567. package/dist/src/components/ListView/internal/ListViewContext.d.ts +2 -13
  568. package/dist/src/components/ListView/internal/types.d.ts +17 -35
  569. package/dist/src/components/Listbox/Listbox.d.ts +32 -99
  570. package/dist/src/components/Listbox/ListboxOption.d.ts +7 -28
  571. package/dist/src/components/Listbox/ListboxOptionGroup.d.ts +6 -23
  572. package/dist/src/components/Listbox/internal/ListboxContext.d.ts +2 -20
  573. package/dist/src/components/Menu/Menu.d.ts +8 -48
  574. package/dist/src/components/Menu/MenuItem.d.ts +8 -41
  575. package/dist/src/components/Menu/internal/MenuContext.d.ts +0 -9
  576. package/dist/src/components/Menu/internal/MenuNested.d.ts +2 -35
  577. package/dist/src/components/Menu/internal/menuSelectors.d.ts +0 -3
  578. package/dist/src/components/Menu/types.d.ts +32 -40
  579. package/dist/src/components/MultiSelectField/MultiSelectField.d.ts +1 -19
  580. package/dist/src/components/MultiSelectField/MultiSelectFieldSync.d.ts +10 -65
  581. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -3
  582. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +1 -49
  583. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -4
  584. package/dist/src/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +1 -4
  585. package/dist/src/components/MultiSelectField/internal/types.d.ts +0 -2
  586. package/dist/src/components/MultiSelectField/internal/useChipLayout.d.ts +1 -7
  587. package/dist/src/components/MultiSelectField/internal/useComboMultiple.d.ts +3 -20
  588. package/dist/src/components/MultiSelectField/internal/useSelectModeMultiple.d.ts +1 -6
  589. package/dist/src/components/MultiSelectField/parts.d.ts +0 -12
  590. package/dist/src/components/MultiSelectField/types.d.ts +97 -215
  591. package/dist/src/components/MultiSelectMenu/MultiSelectMenu.d.ts +1 -30
  592. package/dist/src/components/MultiSelectMenu/MultiSelectMenuSync.d.ts +10 -34
  593. package/dist/src/components/MultiSelectMenu/types.d.ts +75 -98
  594. package/dist/src/components/NumberField/NumberField.d.ts +76 -40
  595. package/dist/src/components/Overflow/Overflow.d.ts +17 -61
  596. package/dist/src/components/Overflow/OverflowText.d.ts +10 -60
  597. package/dist/src/components/Overflow/index.d.ts +4 -21
  598. package/dist/src/components/Page/Page.d.ts +8 -156
  599. package/dist/src/components/Page/PageContent.d.ts +4 -19
  600. package/dist/src/components/Page/PageContext.d.ts +9 -0
  601. package/dist/src/components/Page/PageFooter.d.ts +2 -15
  602. package/dist/src/components/Page/PageHeader.d.ts +34 -85
  603. package/dist/src/components/Page/PagePanel.d.ts +13 -52
  604. package/dist/src/components/Page/PageSidebar.d.ts +8 -41
  605. package/dist/src/components/Page/PageSidebarHeader.d.ts +2 -20
  606. package/dist/src/components/Page/pageBreakpoint.d.ts +6 -19
  607. package/dist/src/components/Pagination/Pagination.d.ts +44 -31
  608. package/dist/src/components/Pagination/internal/Pagination.d.ts +6 -23
  609. package/dist/src/components/Pagination/internal/PaginationItem.d.ts +5 -38
  610. package/dist/src/components/Pagination/internal/PaginationItemsPerPageMenu.d.ts +5 -35
  611. package/dist/src/components/Pagination/internal/PaginationOverflowMenu.d.ts +12 -52
  612. package/dist/src/components/Pagination/internal/usePaginationArray.d.ts +4 -19
  613. package/dist/src/components/Pagination/parts.d.ts +3 -14
  614. package/dist/src/components/Popover/Popover.d.ts +55 -296
  615. package/dist/src/components/Popover/PopoverButton.d.ts +2 -29
  616. package/dist/src/components/Popover/PopoverClose.d.ts +2 -28
  617. package/dist/src/components/Popover/PopoverContent.d.ts +8 -38
  618. package/dist/src/components/Popover/PopoverTrigger.d.ts +6 -32
  619. package/dist/src/components/Popover/internal/compareElements.d.ts +1 -0
  620. package/dist/src/components/Popover/internal/usePopoverContext.d.ts +1 -0
  621. package/dist/src/components/ProgressBar/ProgressBar.d.ts +17 -69
  622. package/dist/src/components/Radio/Radio.d.ts +3 -82
  623. package/dist/src/components/Radio/RadioGroup.d.ts +21 -73
  624. package/dist/src/components/Radio/internal/Radio.d.ts +22 -117
  625. package/dist/src/components/Radio/internal/RadioGroupContext.d.ts +2 -14
  626. package/dist/src/components/Radio/types.d.ts +2 -9
  627. package/dist/src/components/SearchField/SearchField.d.ts +5 -43
  628. package/dist/src/components/SearchField/internal/SearchField.d.ts +6 -53
  629. package/dist/src/components/SegmentedControl/SegmentedControl.d.ts +12 -82
  630. package/dist/src/components/SegmentedControl/SegmentedControlSegment.d.ts +12 -43
  631. package/dist/src/components/SegmentedControl/internal/SegmentedControlContext.d.ts +0 -15
  632. package/dist/src/components/SelectCard/SelectCard.d.ts +13 -78
  633. package/dist/src/components/SelectCard/SelectCardGroup.d.ts +13 -47
  634. package/dist/src/components/SelectCard/internal/SelectCardContext.d.ts +14 -51
  635. package/dist/src/components/SelectCard/internal/SelectCardProvider.d.ts +3 -29
  636. package/dist/src/components/SelectField/SelectField.d.ts +1 -21
  637. package/dist/src/components/SelectField/SelectFieldSync.d.ts +6 -44
  638. package/dist/src/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -4
  639. package/dist/src/components/SelectField/internal/SelectFieldInput.d.ts +1 -41
  640. package/dist/src/components/SelectField/internal/SelectFieldLabel.d.ts +3 -30
  641. package/dist/src/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -4
  642. package/dist/src/components/SelectField/internal/SelectFieldTrigger.d.ts +2 -5
  643. package/dist/src/components/SelectField/internal/useCombo.d.ts +1 -3
  644. package/dist/src/components/SelectField/internal/useSelectMode.d.ts +1 -4
  645. package/dist/src/components/SelectField/types.d.ts +95 -171
  646. package/dist/src/components/SelectMenu/SelectMenu.d.ts +1 -26
  647. package/dist/src/components/SelectMenu/SelectMenuSync.d.ts +6 -30
  648. package/dist/src/components/SelectMenu/internal/useMenuInteraction.d.ts +2 -0
  649. package/dist/src/components/SelectMenu/types.d.ts +65 -64
  650. package/dist/src/components/SelectTrigger/SelectTrigger.d.ts +19 -11
  651. package/dist/src/components/SelectTrigger/internal/SelectTriggerBase.d.ts +18 -2
  652. package/dist/src/components/SideNav/SideNav.d.ts +10 -77
  653. package/dist/src/components/SideNav/SideNavCollapsible.d.ts +14 -49
  654. package/dist/src/components/SideNav/SideNavContext.d.ts +0 -18
  655. package/dist/src/components/SideNav/SideNavGroup.d.ts +2 -27
  656. package/dist/src/components/SideNav/SideNavLink.d.ts +8 -35
  657. package/dist/src/components/SideNav/internal/SideNavContext.d.ts +1 -13
  658. package/dist/src/components/SideNav/internal/SideNavLink.d.ts +14 -50
  659. package/dist/src/components/SideNav/internal/SideNavProvider.d.ts +1 -17
  660. package/dist/src/components/SideNav/internal/utils.d.ts +1 -13
  661. package/dist/src/components/SideNav/useSideNav.d.ts +2 -3
  662. package/dist/src/components/Skeleton/SkeletonCircle.d.ts +5 -39
  663. package/dist/src/components/Skeleton/SkeletonPill.d.ts +5 -39
  664. package/dist/src/components/Skeleton/SkeletonRectangle.d.ts +5 -40
  665. package/dist/src/components/Skeleton/SkeletonText.d.ts +6 -43
  666. package/dist/src/components/Skeleton/index.d.ts +5 -0
  667. package/dist/src/components/Spinner/Spinner.d.ts +5 -34
  668. package/dist/src/components/SrOnly/SrOnly.d.ts +2 -13
  669. package/dist/src/components/Stepper/Stepper.d.ts +34 -210
  670. package/dist/src/components/Stepper/StepperFinalPanel.d.ts +2 -23
  671. package/dist/src/components/Stepper/StepperList.d.ts +1 -22
  672. package/dist/src/components/Stepper/StepperNextButton.d.ts +12 -52
  673. package/dist/src/components/Stepper/StepperPanel.d.ts +6 -37
  674. package/dist/src/components/Stepper/StepperPrevButton.d.ts +6 -32
  675. package/dist/src/components/Stepper/StepperStep.d.ts +8 -43
  676. package/dist/src/components/Stepper/base/StepperBase.d.ts +18 -67
  677. package/dist/src/components/Stepper/base/StepperBaseList.d.ts +1 -15
  678. package/dist/src/components/Stepper/base/StepperBasePanel.d.ts +6 -23
  679. package/dist/src/components/Stepper/base/StepperBaseStep.d.ts +14 -37
  680. package/dist/src/components/Stepper/internal/StepperWizardBootstrap.d.ts +4 -0
  681. package/dist/src/components/Stepper/internal/countRegisteredSteps.d.ts +1 -0
  682. package/dist/src/components/Switch/Switch.d.ts +14 -61
  683. package/dist/src/components/Tab/Tab.d.ts +14 -115
  684. package/dist/src/components/Tab/TabButton.d.ts +7 -39
  685. package/dist/src/components/Tab/TabList.d.ts +1 -20
  686. package/dist/src/components/Tab/TabPanel.d.ts +3 -24
  687. package/dist/src/components/Text/Text.d.ts +3 -32
  688. package/dist/src/components/Text/types.d.ts +13 -69
  689. package/dist/src/components/TextField/TextField.d.ts +6 -14
  690. package/dist/src/components/TextField/internal/TextField.d.ts +21 -11
  691. package/dist/src/components/Textarea/Textarea.d.ts +18 -57
  692. package/dist/src/components/Textarea/types.d.ts +7 -20
  693. package/dist/src/components/TimeField/TimeField.d.ts +14 -65
  694. package/dist/src/components/TimeField/internal/MaskedTimeInput.d.ts +10 -64
  695. package/dist/src/components/TimeField/internal/constants.d.ts +2 -12
  696. package/dist/src/components/TimeField/internal/maskito/timePlaceholderMask.d.ts +1 -13
  697. package/dist/src/components/TimeField/internal/types.d.ts +9 -14
  698. package/dist/src/components/TimeField/internal/utils/timeFormatting.d.ts +1 -8
  699. package/dist/src/components/TimeField/internal/utils/timeOptions.d.ts +2 -16
  700. package/dist/src/components/TimeField/internal/utils/timeParsing.d.ts +3 -29
  701. package/dist/src/components/TimeField/internal/utils/timeRounding.d.ts +5 -47
  702. package/dist/src/components/TimeField/internal/utils/timeValidation.d.ts +4 -22
  703. package/dist/src/components/Toast/Toaster.d.ts +2 -40
  704. package/dist/src/components/Toast/internal/Toast.d.ts +14 -75
  705. package/dist/src/components/Toast/internal/ToastProvider.d.ts +2 -64
  706. package/dist/src/components/Toast/internal/ToastStack.d.ts +13 -59
  707. package/dist/src/components/Toast/internal/Toaster.d.ts +18 -61
  708. package/dist/src/components/Toast/internal/ToasterPopover.d.ts +1 -16
  709. package/dist/src/components/Toast/internal/addOrUpdateToastHeight.d.ts +1 -6
  710. package/dist/src/components/Toast/internal/constants.d.ts +0 -15
  711. package/dist/src/components/Toast/internal/types.d.ts +1 -0
  712. package/dist/src/components/Toast/internal/useCloseToast.d.ts +1 -5
  713. package/dist/src/components/Toast/internal/useHotkeyFocus.d.ts +2 -10
  714. package/dist/src/components/Toast/internal/useShowMoreButtonPositionStyles.d.ts +1 -4
  715. package/dist/src/components/Toast/internal/useToastPositionStyles.d.ts +1 -5
  716. package/dist/src/components/Toast/internal/useToasts.d.ts +1 -5
  717. package/dist/src/components/Toast/toast.d.ts +14 -63
  718. package/dist/src/components/Toolbar/Toolbar.d.ts +16 -138
  719. package/dist/src/components/Toolbar/ToolbarButton.d.ts +4 -29
  720. package/dist/src/components/Toolbar/ToolbarButtonLink.d.ts +3 -28
  721. package/dist/src/components/Toolbar/ToolbarButtonToggle.d.ts +2 -24
  722. package/dist/src/components/Toolbar/ToolbarSelect.d.ts +12 -65
  723. package/dist/src/components/Toolbar/internal/ToolbarContext.d.ts +0 -31
  724. package/dist/src/components/Toolbar/internal/ToolbarItemOverflowContext.d.ts +0 -13
  725. package/dist/src/components/Toolbar/internal/ToolbarItemWrapper.d.ts +1 -24
  726. package/dist/src/components/Toolbar/internal/ToolbarOverflowMenu.d.ts +1 -23
  727. package/dist/src/components/Toolbar/internal/utils/accessibility.d.ts +4 -15
  728. package/dist/src/components/Toolbar/types.d.ts +7 -21
  729. package/dist/src/components/Tooltip/Tooltip.d.ts +17 -96
  730. package/dist/src/components/Tooltip/TooltipContent.d.ts +1 -23
  731. package/dist/src/components/Tooltip/TooltipTrigger.d.ts +3 -22
  732. package/dist/src/components/Tooltip/internal/TooltipContext.d.ts +0 -66
  733. package/dist/src/components/Tooltip/internal/useTooltipContext.d.ts +1 -14
  734. package/dist/src/integration-testing/stepper-panel-flicker.spec.d.ts +1 -0
  735. package/dist/{stripInlineMarkdown-CosQSmBr.js → stripInlineMarkdown-BhYLEiXu.js} +2 -2
  736. package/dist/{stripInlineMarkdown-CosQSmBr.js.map → stripInlineMarkdown-BhYLEiXu.js.map} +1 -1
  737. package/dist/{syncFilterUtils-_uwyt6FD.js → syncFilterUtils-ClEj4Oeg.js} +4 -4
  738. package/dist/{syncFilterUtils-_uwyt6FD.js.map → syncFilterUtils-ClEj4Oeg.js.map} +1 -1
  739. package/dist/{treeSync-Bp80Xduj.js → treeSync-B38r1dRQ.js} +5 -11
  740. package/dist/treeSync-B38r1dRQ.js.map +1 -0
  741. package/dist/{use-reduced-motion-CqjZZ5QB.js → use-reduced-motion-yYB9Tb0D.js} +2 -2
  742. package/dist/use-reduced-motion-yYB9Tb0D.js.map +1 -0
  743. package/dist/useChipLayout-BBe6Tzyl.js.map +1 -1
  744. package/dist/useDrillDownContext-D5_NjqY4.js.map +1 -1
  745. package/dist/{useDrilldown-D5XGfAUT.js → useDrilldown-BOeeNUsy.js} +8 -3
  746. package/dist/{useDrilldown-D5XGfAUT.js.map → useDrilldown-BOeeNUsy.js.map} +1 -1
  747. package/dist/{useInfiniteCombobox-ORhH44Rp.js → useInfiniteCombobox-7oIT2Mzn.js} +5 -5
  748. package/dist/{useInfiniteCombobox-ORhH44Rp.js.map → useInfiniteCombobox-7oIT2Mzn.js.map} +1 -1
  749. package/dist/useInitialFocus-CGybEc6x.js.map +1 -1
  750. package/dist/{useInvalidateOnOptionsChange-ieSgbkwT.js → useInvalidateOnOptionsChange-BD2VBpbK.js} +5 -5
  751. package/dist/useInvalidateOnOptionsChange-BD2VBpbK.js.map +1 -0
  752. package/dist/useMenuInteraction-nNF1dsrp.js.map +1 -1
  753. package/dist/utils-CM48ODEJ.js.map +1 -1
  754. package/package.json +6 -4
  755. package/dist/AiMark-CWufA6pV.js.map +0 -1
  756. package/dist/Alert-RkvFtmRP.js.map +0 -1
  757. package/dist/Announcement-CGTv6M31.js.map +0 -1
  758. package/dist/Avatar-DZxHhMTP.js.map +0 -1
  759. package/dist/Avatar-DkWoRhJu.js +0 -35
  760. package/dist/Avatar-DkWoRhJu.js.map +0 -1
  761. package/dist/Breadcrumbs-DbOrdao2.js.map +0 -1
  762. package/dist/Button-Dwh_Nd4l.js.map +0 -1
  763. package/dist/ButtonToggle-DKDBD1g3.js.map +0 -1
  764. package/dist/Calendar-CK-AAaSG.js.map +0 -1
  765. package/dist/Calendar-DLnn6dJE.js.map +0 -1
  766. package/dist/Checkbox-CboZhOtU.js.map +0 -1
  767. package/dist/Checkbox-Cn4iNLW_.js.map +0 -1
  768. package/dist/Chip-UbrxYEqs.js.map +0 -1
  769. package/dist/DataTable-COExZbOC.js.map +0 -1
  770. package/dist/DateFieldRange-CpTxlASD.js.map +0 -1
  771. package/dist/DateFieldSingle-DR2kfrzh.js.map +0 -1
  772. package/dist/DateFieldYearless-4mS_2Mgw.js.map +0 -1
  773. package/dist/DateFieldYearlessRange-C-yvKBkJ.js.map +0 -1
  774. package/dist/DaysOfTheWeek-Bo4w8SsT.js.map +0 -1
  775. package/dist/Details-CVA5zbrR.js.map +0 -1
  776. package/dist/Dialog-Ds25dKQp.js.map +0 -1
  777. package/dist/DialogCancelButton-DBL0aKTK.js.map +0 -1
  778. package/dist/Drawer-Da-bj_6o.js.map +0 -1
  779. package/dist/EditCard-CocV93gS.js.map +0 -1
  780. package/dist/FieldLabel-6aFKQfyD.js.map +0 -1
  781. package/dist/FilterBar-CZT1ryz_.js.map +0 -1
  782. package/dist/Grid-CvGQrIhE.js.map +0 -1
  783. package/dist/InteractiveCard-C0g5PxB6.js.map +0 -1
  784. package/dist/Layout-C2Q2hyLG.js.map +0 -1
  785. package/dist/List-BvzfZ9TW.js.map +0 -1
  786. package/dist/ListView-DFAWrwzi.js.map +0 -1
  787. package/dist/Listbox-BErqErNN.js.map +0 -1
  788. package/dist/Menu-BjPE_ODh.js.map +0 -1
  789. package/dist/MultiSelectFieldSync-CqWUidCm.js.map +0 -1
  790. package/dist/MultiSelectMenuSync-DG3rKyQc.js.map +0 -1
  791. package/dist/NumberField-DRYYJHec.js.map +0 -1
  792. package/dist/Page-pfK5iSmv.js.map +0 -1
  793. package/dist/Pagination-Bc4fhdNm.js.map +0 -1
  794. package/dist/Popover-BgVOsP4J.js.map +0 -1
  795. package/dist/ProgressBar-Chb0uKfL.js.map +0 -1
  796. package/dist/Radio-DcNlFfSu.js.map +0 -1
  797. package/dist/Radio-gpMEsFss.js +0 -60
  798. package/dist/Radio-gpMEsFss.js.map +0 -1
  799. package/dist/RichTextEditor-DeO4p-S-.js.map +0 -1
  800. package/dist/SavedFiltersButton-Cvf1mJk8.js.map +0 -1
  801. package/dist/SegmentedControl-CQ6DrbDc.js.map +0 -1
  802. package/dist/SelectCard-bp5hRyHK.js.map +0 -1
  803. package/dist/SelectFieldLabel-DZqxaZsp.js.map +0 -1
  804. package/dist/SelectFieldSync-Wkx6DGpg.js.map +0 -1
  805. package/dist/SelectMenuSync-O55TODxn.js.map +0 -1
  806. package/dist/SelectTrigger-BfJ7DWYq.js.map +0 -1
  807. package/dist/SelectTriggerBase-DvsI-kSG.js.map +0 -1
  808. package/dist/SideNav-BLXgM918.js.map +0 -1
  809. package/dist/Stepper-CCKHWlUr.js.map +0 -1
  810. package/dist/Switch-CrDmBj4D.js.map +0 -1
  811. package/dist/Tab-Bqfvg8Ce.js.map +0 -1
  812. package/dist/Text-CZccJAnm.js.map +0 -1
  813. package/dist/TextField-D0f9LwgQ.js.map +0 -1
  814. package/dist/TextField-DX5qyWPo.js.map +0 -1
  815. package/dist/Textarea-CdTcekFd.js.map +0 -1
  816. package/dist/TimeField-BxNglWQt.js.map +0 -1
  817. package/dist/Toaster-C-Z_FMbW.js.map +0 -1
  818. package/dist/Toaster-nyQgF9Ki.js.map +0 -1
  819. package/dist/Toolbar-BUbMtBVz.js.map +0 -1
  820. package/dist/Toolbar-BxAFPvbn.js.map +0 -1
  821. package/dist/ToolbarButtonToggle-NSJ2XfXT.js.map +0 -1
  822. package/dist/Tooltip-B4MSqIpg.js.map +0 -1
  823. package/dist/TreeSelectFieldSync-DpvwlM7B.js.map +0 -1
  824. package/dist/TreeSelectMenuSync-BDitYX_k.js.map +0 -1
  825. package/dist/TypeaheadTextField-Cj09sEji.js.map +0 -1
  826. package/dist/YearlessDateInputWithPicker-CoomgSEK.js.map +0 -1
  827. package/dist/filter-state-CZcczj37.js.map +0 -1
  828. package/dist/index-BwV_Pz7v.js.map +0 -1
  829. package/dist/makeZeroShortcutPreprocessor-CxsiGTRW.js.map +0 -1
  830. package/dist/proxy-DEehATlA.js.map +0 -1
  831. package/dist/treeSync-Bp80Xduj.js.map +0 -1
  832. package/dist/use-reduced-motion-CqjZZ5QB.js.map +0 -1
  833. package/dist/useInvalidateOnOptionsChange-ieSgbkwT.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useInitialFocus-CGybEc6x.js","sources":["../src/internal/hooks/useDialogTransitionStates/useDialogTransitionStates.ts","../src/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.ts","../src/components/DrillDown/internal/useDrillDownContextState.ts","../src/components/Dialog/internal/useInitialFocus.ts"],"sourcesContent":["import { type RefObject, useCallback } from \"react\";\nimport {\n useOpenCloseTransitionStates,\n type OpenCloseTransitionStateEffects,\n} from \"../useOpenCloseTransitionStates\";\n\n/**\n * Coordinates a dialog's modal lifecycle with its CSS opening and closing\n * animations.\n */\nexport const useDialogTransitionStates = (\n ref: RefObject<HTMLDialogElement>,\n openProp: boolean | undefined,\n options: OpenCloseTransitionStateEffects = {},\n) => {\n const { onOpenAnimationStart, onCloseAnimationComplete } = options;\n\n const getDurationMs = useCallback(() => {\n if (!ref.current || !window) return 0;\n const duration = window.getComputedStyle(ref.current).animationDuration;\n return parseFloat(duration) * 1000;\n }, [ref]);\n\n const handleOpenAnimationStart = useCallback(() => {\n if (!ref.current) return;\n ref.current.showModal();\n onOpenAnimationStart?.();\n }, [ref, onOpenAnimationStart]);\n\n const handleCloseAnimationComplete = useCallback(() => {\n if (!ref.current) return;\n ref.current.close();\n onCloseAnimationComplete?.();\n }, [ref, onCloseAnimationComplete]);\n\n return useOpenCloseTransitionStates(openProp, {\n ...options,\n onOpenAnimationStart: handleOpenAnimationStart,\n onCloseAnimationComplete: handleCloseAnimationComplete,\n durationMs: getDurationMs,\n });\n};\n","import { type RefObject, useEffect, useRef, useState } from \"react\";\nimport { type FocusableElement, tabbable } from \"tabbable\";\n\ntype OptionProps =\n | {\n observeChange: false;\n }\n | {\n observeChange: true;\n attributes?: boolean;\n characterData?: boolean;\n childList?: boolean;\n subtree?: boolean;\n };\n\n/** Tracks tabbable descendants within a container as its DOM changes. */\nexport const useKeyboardFocusables = (\n element: RefObject<HTMLElement> | HTMLElement | undefined,\n options: OptionProps = {\n observeChange: true,\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n },\n) => {\n const [focusables, setFocusables] = useState<FocusableElement[] | null>(null);\n const observerRef = useRef<MutationObserver>();\n\n useEffect(() => {\n const target = element instanceof HTMLElement ? element : element?.current;\n if (!target) return;\n if (!options.observeChange && !focusables) {\n setFocusables(tabbable(target as Element));\n return;\n }\n\n const mutationCallback = () => {\n const targetArr = tabbable(target as Element);\n if (targetArr.length === 0) return;\n setFocusables(targetArr);\n };\n\n const observer = new MutationObserver(mutationCallback);\n observerRef.current = observer;\n observer.observe(target, {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n });\n return () => {\n observer.disconnect();\n };\n }, [element, options, focusables]);\n\n return { focusables };\n};\n","import { useState, useCallback, useRef, type MutableRefObject } from \"react\";\nimport type { DrillDownContextProps } from \"./DrillDownContext\";\n\nconst getActiveHTMLElement = () => {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null;\n};\n\ntype useDrillDownContextStateParams = {\n defaultDrillDownIndex?: number;\n};\n\nexport function useDrillDownContextState({\n defaultDrillDownIndex = 0,\n}: useDrillDownContextStateParams) {\n const [drillDownIndex, setDrillDownIndex] =\n useState<DrillDownContextProps[\"index\"]>(undefined);\n const [registeredIndices, setRegisteredIndices] = useState<\n DrillDownContextProps[\"registeredIndices\"]\n >([]);\n // Track the drilldown path for back navigation\n const drillDownPath = useRef<number[]>([]);\n const [onClose, setOnClose] = useState<(() => void)[]>([]);\n const navigationTriggerFocusRef = useRef<HTMLElement | null>(null);\n const hostTriggerFocusRef = useRef<HTMLElement | null>(null);\n const shouldRestoreHostFocusRef = useRef(false);\n const hasActiveDrillDownRef = useRef(false);\n\n const restoreFocus = useCallback(\n (focusRef: MutableRefObject<HTMLElement | null>) => {\n requestAnimationFrame(() => {\n focusRef.current?.focus();\n focusRef.current = null;\n });\n },\n [],\n );\n\n const restoreNavigationFocus = useCallback(() => {\n restoreFocus(navigationTriggerFocusRef);\n }, [restoreFocus]);\n\n const restoreHostFocus = useCallback(() => {\n restoreFocus(hostTriggerFocusRef);\n }, [restoreFocus]);\n\n const back = useCallback(() => {\n const newIndex = drillDownPath.current.pop();\n // Return focus to the trigger element if we're closing the Drilldown\n if (newIndex == null && navigationTriggerFocusRef.current) {\n setDrillDownIndex(undefined);\n restoreNavigationFocus();\n return;\n }\n setDrillDownIndex(newIndex);\n }, [setDrillDownIndex, drillDownPath, restoreNavigationFocus]);\n\n const next = useCallback(() => {\n if (drillDownIndex == null) {\n // Set focus ref if the Drilldown is opening for the first time\n navigationTriggerFocusRef.current = getActiveHTMLElement();\n drillDownPath.current = [];\n setDrillDownIndex(defaultDrillDownIndex);\n return;\n }\n if (registeredIndices && registeredIndices[drillDownIndex + 1] == null) {\n // Closes the Drilldown if there is no next index\n drillDownPath.current = [];\n setDrillDownIndex(undefined);\n restoreNavigationFocus();\n return;\n }\n drillDownPath.current.push(drillDownIndex);\n setDrillDownIndex(drillDownIndex + 1);\n }, [\n drillDownIndex,\n setDrillDownIndex,\n defaultDrillDownIndex,\n drillDownPath,\n registeredIndices,\n restoreNavigationFocus,\n ]);\n\n const setIndexWithinBounds = useCallback(\n (index: number | undefined) => {\n // Invalid index, close the Drilldown\n if (\n index == null ||\n index < 0 ||\n (registeredIndices && registeredIndices[index] == null)\n ) {\n setDrillDownIndex(undefined);\n restoreNavigationFocus();\n return;\n }\n // Update the drilldown path for back navigation\n if (drillDownIndex === undefined) {\n navigationTriggerFocusRef.current = getActiveHTMLElement();\n drillDownPath.current = [];\n } else {\n drillDownPath.current.push(drillDownIndex);\n }\n setDrillDownIndex(index);\n },\n [\n drillDownIndex,\n setDrillDownIndex,\n drillDownPath,\n registeredIndices,\n restoreNavigationFocus,\n ],\n );\n\n const setHostTrigger = useCallback((element: HTMLElement | null) => {\n if (element == null || hostTriggerFocusRef.current != null) return;\n hostTriggerFocusRef.current = element;\n }, []);\n\n const onHostCloseHandler = useCallback(() => {\n const shouldResetToDefault =\n drillDownIndex != null || hasActiveDrillDownRef.current;\n\n drillDownPath.current = [];\n navigationTriggerFocusRef.current = null;\n shouldRestoreHostFocusRef.current = true;\n hasActiveDrillDownRef.current = false;\n\n if (shouldResetToDefault) {\n setDrillDownIndex(defaultDrillDownIndex);\n }\n }, [defaultDrillDownIndex, drillDownIndex]);\n\n const onHostClosedHandler = useCallback(() => {\n if (!shouldRestoreHostFocusRef.current) return;\n\n shouldRestoreHostFocusRef.current = false;\n restoreHostFocus();\n }, [restoreHostFocus]);\n\n if (drillDownIndex != null) {\n hasActiveDrillDownRef.current = true;\n }\n\n const setOnCloseForIndex = useCallback(\n (fn: () => void, index: number) => {\n setOnClose((arr) => {\n const nextOnClose = [...arr];\n nextOnClose[index] = () => {\n fn();\n setDrillDownIndex(undefined);\n restoreNavigationFocus();\n };\n return nextOnClose;\n });\n },\n [restoreNavigationFocus],\n );\n\n return {\n index: drillDownIndex,\n setIndex: setIndexWithinBounds,\n back,\n next,\n registeredIndices,\n setRegisteredIndices,\n onClose,\n setOnClose: setOnCloseForIndex,\n hostIsInteractive: true,\n setHostTrigger,\n onHostClose: onHostCloseHandler,\n onHostClosed: onHostClosedHandler,\n };\n}\n","import { type RefObject, useEffect } from \"react\";\nimport { type FocusableElement, tabbable } from \"tabbable\";\n\nexport type InitialFocusOptions = {\n /**\n * Function to pick the initial focus target, given an array of focusable elements\n */\n computeFocus?: (focusables: FocusableElement[]) => FocusableElement;\n};\n\n/**\n * Hook to set initial focus for a dialog (e.g. Dialog, Drawer) when it is opened.\n * @param dialogRef - Ref to the dialog element\n * @param options - Options for the hook\n * @param options.computeFocus - Function to pick the initial focus target, given an array of focusable elements\n */\nexport const useInitialFocus = (\n /**\n * Ref to the dialog element\n */\n dialogRef: RefObject<HTMLDialogElement>,\n { computeFocus }: InitialFocusOptions,\n) => {\n useEffect(() => {\n if (!dialogRef.current) {\n return () => {};\n }\n // Create a MutationObserver to check if dialogRef.current is open or closed\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.attributeName === \"open\" &&\n mutation.target === dialogRef.current &&\n mutation.target instanceof HTMLDialogElement &&\n mutation.target.open === true\n ) {\n const focusables = tabbable(dialogRef.current);\n const target = computeFocus?.(focusables) || focusables[0];\n target?.focus();\n }\n });\n });\n observer.observe(dialogRef.current, {\n attributes: true,\n attributeFilter: [\"open\"],\n });\n return () => {\n observer.disconnect();\n };\n }, [dialogRef, computeFocus]);\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useInitialFocus-CGybEc6x.js","sources":["../src/internal/hooks/useDialogTransitionStates/useDialogTransitionStates.ts","../src/internal/hooks/useKeyboardFocusables/useKeyboardFocusables.ts","../src/components/DrillDown/internal/useDrillDownContextState.ts","../src/components/Dialog/internal/useInitialFocus.ts"],"sourcesContent":["import { type RefObject, useCallback } from \"react\";\nimport {\n useOpenCloseTransitionStates,\n type OpenCloseTransitionStateEffects,\n} from \"../useOpenCloseTransitionStates\";\n\n/**\n * Coordinates a dialog's modal lifecycle with its CSS opening and closing\n * animations.\n */\nexport const useDialogTransitionStates = (\n ref: RefObject<HTMLDialogElement>,\n openProp: boolean | undefined,\n options: OpenCloseTransitionStateEffects = {},\n) => {\n const { onOpenAnimationStart, onCloseAnimationComplete } = options;\n\n const getDurationMs = useCallback(() => {\n if (!ref.current || !window) return 0;\n const duration = window.getComputedStyle(ref.current).animationDuration;\n return parseFloat(duration) * 1000;\n }, [ref]);\n\n const handleOpenAnimationStart = useCallback(() => {\n if (!ref.current) return;\n ref.current.showModal();\n onOpenAnimationStart?.();\n }, [ref, onOpenAnimationStart]);\n\n const handleCloseAnimationComplete = useCallback(() => {\n if (!ref.current) return;\n ref.current.close();\n onCloseAnimationComplete?.();\n }, [ref, onCloseAnimationComplete]);\n\n return useOpenCloseTransitionStates(openProp, {\n ...options,\n onOpenAnimationStart: handleOpenAnimationStart,\n onCloseAnimationComplete: handleCloseAnimationComplete,\n durationMs: getDurationMs,\n });\n};\n","import { type RefObject, useEffect, useRef, useState } from \"react\";\nimport { type FocusableElement, tabbable } from \"tabbable\";\n\ntype OptionProps =\n | {\n observeChange: false;\n }\n | {\n observeChange: true;\n attributes?: boolean;\n characterData?: boolean;\n childList?: boolean;\n subtree?: boolean;\n };\n\n/** Tracks tabbable descendants within a container as its DOM changes. */\nexport const useKeyboardFocusables = (\n element: RefObject<HTMLElement> | HTMLElement | undefined,\n options: OptionProps = {\n observeChange: true,\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n },\n) => {\n const [focusables, setFocusables] = useState<FocusableElement[] | null>(null);\n const observerRef = useRef<MutationObserver>();\n\n useEffect(() => {\n const target = element instanceof HTMLElement ? element : element?.current;\n if (!target) return;\n if (!options.observeChange && !focusables) {\n setFocusables(tabbable(target as Element));\n return;\n }\n\n const mutationCallback = () => {\n const targetArr = tabbable(target as Element);\n if (targetArr.length === 0) return;\n setFocusables(targetArr);\n };\n\n const observer = new MutationObserver(mutationCallback);\n observerRef.current = observer;\n observer.observe(target, {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n });\n return () => {\n observer.disconnect();\n };\n }, [element, options, focusables]);\n\n return { focusables };\n};\n","import { useState, useCallback, useRef, type MutableRefObject } from \"react\";\nimport type { DrillDownContextProps } from \"./DrillDownContext\";\n\nconst getActiveHTMLElement = () => {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement\n : null;\n};\n\ntype useDrillDownContextStateParams = {\n /**\n * Screen opened by the first `next()` from a closed stack, and restored when\n * the host closes after a drilldown session. Defaults to `0`.\n */\n defaultDrillDownIndex?: number;\n};\n\nexport function useDrillDownContextState({\n defaultDrillDownIndex = 0,\n}: useDrillDownContextStateParams) {\n // Closed until `next()` or `setIndex`; `defaultDrillDownIndex` is not the first paint.\n const [drillDownIndex, setDrillDownIndex] =\n useState<DrillDownContextProps[\"index\"]>(undefined);\n const [registeredIndices, setRegisteredIndices] = useState<\n DrillDownContextProps[\"registeredIndices\"]\n >([]);\n const drillDownPath = useRef<number[]>([]);\n const [onClose, setOnClose] = useState<(() => void)[]>([]);\n const navigationTriggerFocusRef = useRef<HTMLElement | null>(null);\n const hostTriggerFocusRef = useRef<HTMLElement | null>(null);\n const shouldRestoreHostFocusRef = useRef(false);\n const hasActiveDrillDownRef = useRef(false);\n\n const restoreFocus = useCallback(\n (focusRef: MutableRefObject<HTMLElement | null>) => {\n requestAnimationFrame(() => {\n focusRef.current?.focus();\n focusRef.current = null;\n });\n },\n [],\n );\n\n const restoreNavigationFocus = useCallback(() => {\n restoreFocus(navigationTriggerFocusRef);\n }, [restoreFocus]);\n\n const restoreHostFocus = useCallback(() => {\n restoreFocus(hostTriggerFocusRef);\n }, [restoreFocus]);\n\n const back = useCallback(() => {\n const newIndex = drillDownPath.current.pop();\n // An empty path closes the stack and restores the opener.\n if (newIndex == null && navigationTriggerFocusRef.current) {\n setDrillDownIndex(undefined);\n restoreNavigationFocus();\n return;\n }\n setDrillDownIndex(newIndex);\n }, [setDrillDownIndex, drillDownPath, restoreNavigationFocus]);\n\n const next = useCallback(() => {\n if (drillDownIndex == null) {\n // Capture the opener so later close can restore it.\n navigationTriggerFocusRef.current = getActiveHTMLElement();\n drillDownPath.current = [];\n setDrillDownIndex(defaultDrillDownIndex);\n return;\n }\n if (registeredIndices && registeredIndices[drillDownIndex + 1] == null) {\n // No later registered screen: close rather than no-op.\n drillDownPath.current = [];\n setDrillDownIndex(undefined);\n restoreNavigationFocus();\n return;\n }\n drillDownPath.current.push(drillDownIndex);\n setDrillDownIndex(drillDownIndex + 1);\n }, [\n drillDownIndex,\n setDrillDownIndex,\n defaultDrillDownIndex,\n drillDownPath,\n registeredIndices,\n restoreNavigationFocus,\n ]);\n\n const setIndexWithinBounds = useCallback(\n (index: number | undefined) => {\n // Out of bounds or unregistered: close rather than clamp.\n if (\n index == null ||\n index < 0 ||\n (registeredIndices && registeredIndices[index] == null)\n ) {\n setDrillDownIndex(undefined);\n restoreNavigationFocus();\n return;\n }\n if (drillDownIndex === undefined) {\n navigationTriggerFocusRef.current = getActiveHTMLElement();\n drillDownPath.current = [];\n } else {\n // Jumps from an open screen still push so `back()` retraces this visit.\n drillDownPath.current.push(drillDownIndex);\n }\n setDrillDownIndex(index);\n },\n [\n drillDownIndex,\n setDrillDownIndex,\n drillDownPath,\n registeredIndices,\n restoreNavigationFocus,\n ],\n );\n\n const setHostTrigger = useCallback((element: HTMLElement | null) => {\n // First non-null host trigger wins for restore-after-close.\n if (element == null || hostTriggerFocusRef.current != null) return;\n hostTriggerFocusRef.current = element;\n }, []);\n\n const onHostCloseHandler = useCallback(() => {\n // Host close restores `defaultDrillDownIndex`, not a cleared stack.\n const shouldResetToDefault =\n drillDownIndex != null || hasActiveDrillDownRef.current;\n\n drillDownPath.current = [];\n navigationTriggerFocusRef.current = null;\n shouldRestoreHostFocusRef.current = true;\n hasActiveDrillDownRef.current = false;\n\n if (shouldResetToDefault) {\n setDrillDownIndex(defaultDrillDownIndex);\n }\n }, [defaultDrillDownIndex, drillDownIndex]);\n\n const onHostClosedHandler = useCallback(() => {\n if (!shouldRestoreHostFocusRef.current) return;\n\n shouldRestoreHostFocusRef.current = false;\n restoreHostFocus();\n }, [restoreHostFocus]);\n\n // Sticky so host close still resets after the index has already gone undefined.\n if (drillDownIndex != null) {\n hasActiveDrillDownRef.current = true;\n }\n\n const setOnCloseForIndex = useCallback(\n (fn: () => void, index: number) => {\n setOnClose((arr) => {\n const nextOnClose = [...arr];\n nextOnClose[index] = () => {\n fn();\n setDrillDownIndex(undefined);\n restoreNavigationFocus();\n };\n return nextOnClose;\n });\n },\n [restoreNavigationFocus],\n );\n\n return {\n index: drillDownIndex,\n setIndex: setIndexWithinBounds,\n back,\n next,\n registeredIndices,\n setRegisteredIndices,\n onClose,\n setOnClose: setOnCloseForIndex,\n hostIsInteractive: true,\n setHostTrigger,\n onHostClose: onHostCloseHandler,\n onHostClosed: onHostClosedHandler,\n };\n}\n","import { type RefObject, useEffect } from \"react\";\nimport { type FocusableElement, tabbable } from \"tabbable\";\n\nexport type InitialFocusOptions = {\n /** Selects a target from the dialog's tabbable elements. */\n computeFocus?: (focusables: FocusableElement[]) => FocusableElement;\n};\n\n/** Moves focus into a dialog when its native `open` attribute is set. */\nexport const useInitialFocus = (\n dialogRef: RefObject<HTMLDialogElement>,\n { computeFocus }: InitialFocusOptions,\n) => {\n useEffect(() => {\n if (!dialogRef.current) {\n return () => {};\n }\n // Waiting for the native attribute ensures `tabbable` runs after `showModal()`.\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (\n mutation.attributeName === \"open\" &&\n mutation.target === dialogRef.current &&\n mutation.target instanceof HTMLDialogElement &&\n mutation.target.open === true\n ) {\n const focusables = tabbable(dialogRef.current);\n const target = computeFocus?.(focusables) || focusables[0];\n target?.focus();\n }\n });\n });\n observer.observe(dialogRef.current, {\n attributes: true,\n attributeFilter: [\"open\"],\n });\n return () => {\n observer.disconnect();\n };\n }, [dialogRef, computeFocus]);\n};\n"],"names":[],"mappings":"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"}
@@ -5,14 +5,14 @@ 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
7
  import { F as Flex } from './Flex-CRF7gj0_.js';
8
- import { T as Text } from './Text-CZccJAnm.js';
9
- import { A as Avatar } from './Avatar-DkWoRhJu.js';
10
- import { C as Chip } from './Chip-UbrxYEqs.js';
8
+ import { T as Text } from './Text-rihxXHSe.js';
9
+ import { A as Avatar } from './Avatar-Ba662b3z.js';
10
+ import { C as Chip } from './Chip-2OydLs66.js';
11
11
  import { forwardRef, useRef, useCallback, useEffect, useState } from 'react';
12
12
  import { a as useOnClickOutside } from './useOnClickOutside-Zw5vzxSq.js';
13
13
  import { u as usePortalScopeStyle, p as portalScopeClassNames } from './portalScopeClassNames-DA28LrXe.js';
14
14
  import { c as computePosition, o as offset, h as autoPlacement, g as size, a as autoUpdate } from './floating-ui.react-dom-BIKT960u.js';
15
- import { D as DialogCancelButton } from './DialogCancelButton-DBL0aKTK.js';
15
+ import { D as DialogCancelButton } from './DialogCancelButton-C0r8hJ8Z.js';
16
16
  import { S as SvgClose } from './close-DZj38AEh.js';
17
17
  import { D as DialogContext } from './DialogContext-DBgtApl9.js';
18
18
  import { t as tabbable } from './usePopoverTransitionStates-CDXCdyKa.js';
@@ -438,4 +438,4 @@ function useInvalidateOnOptionsChange(handleRef, options) {
438
438
  }
439
439
 
440
440
  export { OptionsDialog as O, OptionsPopover as a, useAdaptiveView as b, OptionRow as c, OptionRowSideContent as d, OptionCheckbox as e, OptionContentArea as f, isThenable as i, useInvalidateOnOptionsChange as u };
441
- //# sourceMappingURL=useInvalidateOnOptionsChange-ieSgbkwT.js.map
441
+ //# sourceMappingURL=useInvalidateOnOptionsChange-BD2VBpbK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInvalidateOnOptionsChange-BD2VBpbK.js","sources":["../src/internal/functions/isThenable.ts","../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","../src/internal/functions/areOptionsValueEqual.ts","../src/internal/hooks/useInvalidateOnOptionsChange.ts"],"sourcesContent":["/**\n * Detects objects with a callable `then` member.\n */\nexport function isThenable<T>(value: unknown): value is PromiseLike<T> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"then\" in value &&\n typeof (value as PromiseLike<T>).then === \"function\"\n );\n}\n","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 /** Selects the checkbox glyph, or shows a spinner while loading. */\n checkState: CheckState;\n className?: string;\n};\n\nconst iconMap = {\n checked: CheckboxChecked,\n unchecked: CheckboxOutline,\n indeterminate: CheckboxIndeterminate,\n} as const;\n\n/** Decorative selection-state indicator for a multiple-select option. */\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 /** Applies disabled styling; interaction semantics remain caller-owned. */\n disabled?: boolean;\n};\n\n/** Shared layout and state styling for an option row. */\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\n/** Prevents leading or trailing row content from shrinking. */\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 /** Fallback title when `content.title` is omitted. */\n label: string;\n /** Optional structured details for the option. */\n content?: OptionContent;\n /** Additional content rendered after the option's details. */\n children?: ReactNode;\n};\n\n/** Arranges an option's avatar, text details, tags, and trailing icon. */\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 {\n portalScopeClassNames,\n usePortalScopeStyle,\n} from \"../../functions/portalScopeClassNames\";\n\nimport styles from \"./OptionsPopover.module.scss\";\n\nexport type OptionsPopoverProps = {\n id: string;\n children: ReactNode;\n /** Anchor used for positioning and click-outside exclusion. */\n referenceElement: RefObject<HTMLElement>;\n /** Calls `showPopover` when true and `hidePopover` when false. */\n open: boolean;\n /**\n * Click-outside, focus-out, and Escape. Escape restores focus to\n * `referenceElement` first; other paths leave focus where it already moved.\n */\n onClose: () => void;\n /**\n * `\"reference\"` matches the anchor, a number is CSS pixels, a string is a\n * CSS width. Omitted uses intrinsic `max-content` sizing.\n */\n width?: \"reference\" | number | string;\n /** Region below the scrollable body, separated by a top border. */\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\n/** Anchored popover shell for option lists. */\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 // Footer and other inner controls have no host Escape hook. Skip when an\n // inner handler already called preventDefault (search / listbox).\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 const portalStyle = usePortalScopeStyle();\n\n return (\n <div\n ref={ref}\n id={id}\n className={cx(styles[\"options-popover\"], portalScopeClassNames)}\n style={portalStyle}\n popover=\"manual\"\n data-anv=\"popover-content\"\n data-anv-part=\"popover\"\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\n/**\n * Native modal host for select options. Sizes to the visual viewport.\n */\nexport const OptionsDialog = ({\n id,\n isOpen,\n onClose,\n field,\n children,\n title,\n initialFocusResolver,\n footer,\n}: {\n /** Scroll-lock and dialog identity. */\n id: string;\n /** Calls `showModal` when true and `close` when false. */\n isOpen: boolean;\n /** Escape, the cancel button, and host close paths. */\n onClose: () => void;\n /** Accessible name rendered as the dialog `h1`. */\n title: string;\n /** Optional search/trigger control above the list. */\n field?: React.ReactNode;\n children: React.ReactNode;\n /**\n * Picks initial focus among tabbables. Defaults to the first control that\n * is not the cancel button.\n */\n initialFocusResolver?: (focusables: FocusableElement[]) => FocusableElement;\n /** Optional apply/clear/add-new controls after the list. */\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 // `computeFocus` is omitted so a resolver identity change does not re-show or close.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n useEffect(() => {\n if (isOpen) {\n const handleResize = () => {\n if (!visualViewportHeightRef.current) return;\n // Mobile chrome/keyboard shrinks visualViewport without resizing `window`.\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 data-anv-part=\"dialog\"\n className={styles[\"field-dialog\"]}\n onKeyDown={(e) => {\n if (e.code === \"Escape\") {\n // Native dialog would dismiss itself; route close through the host.\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/** Layout mode selected by {@link useAdaptiveView}. */\nexport type AdaptiveView = \"mobile\" | \"desktop\";\n\nexport interface UseAdaptiveViewReturn {\n /** `\"mobile\"` when `isMobile` is true; otherwise `\"desktop\"`. */\n view: AdaptiveView;\n /** True below the `md` breakpoint when the primary pointer is coarse. */\n isMobile: boolean;\n /** Inverse of `isMobile`. */\n isDesktop: boolean;\n}\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 * Selects mobile mode only when the viewport is below `md` and the primary\n * pointer is coarse. Defaults to desktop when pointer detection is unavailable.\n */\nexport function useAdaptiveView(): UseAdaptiveViewReturn {\n const breakpoint = useBreakpoint();\n const [hasCoarsePointer, setHasCoarsePointer] = useState(detectCoarsePointer);\n\n useEffect(() => {\n setHasCoarsePointer(detectCoarsePointer());\n\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","/**\n * Compares option data deeply while keeping functions and React elements\n * identity-sensitive.\n */\nexport function areOptionsValueEqual(a: unknown, b: unknown): boolean {\n if (Object.is(a, b)) {\n return true;\n }\n\n if (typeof a !== typeof b || a === null || b === null) {\n return false;\n }\n\n if (Array.isArray(a)) {\n if (!Array.isArray(b) || a.length !== b.length) {\n return false;\n }\n return a.every((item, index) => areOptionsValueEqual(item, b[index]));\n }\n\n if (isPlainObject(a) && isPlainObject(b)) {\n // Treat omitted keys and explicit `undefined` as equivalent.\n const keys = new Set([...Object.keys(a), ...Object.keys(b)]);\n for (const key of keys) {\n if (!areOptionsValueEqual(a[key], b[key])) {\n return false;\n }\n }\n return true;\n }\n\n return false;\n}\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n if (value === null || typeof value !== \"object\" || Array.isArray(value)) {\n return false;\n }\n if (typeof (value as { $$typeof?: unknown }).$$typeof === \"symbol\") {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || proto === null;\n}\n","import { useEffect, useRef } from \"react\";\nimport { areOptionsValueEqual } from \"../functions/areOptionsValueEqual\";\n\ntype InvalidatableHandle = {\n invalidate: () => void;\n};\n\n/**\n * Invalidates a select handle only when option contents change, ignoring the\n * initial mount and reference-only changes.\n */\nexport function useInvalidateOnOptionsChange(\n handleRef: { current: InvalidatableHandle | null },\n options: unknown,\n): void {\n const prevOptionsRef = useRef(options);\n\n useEffect(() => {\n if (areOptionsValueEqual(prevOptionsRef.current, options)) {\n prevOptionsRef.current = options;\n return;\n }\n\n prevOptionsRef.current = options;\n handleRef.current?.invalidate();\n }, [handleRef, options]);\n}\n"],"names":["CheckboxChecked","CheckboxOutline","CheckboxIndeterminate","styles","OptionRow","OptionRowSideContent","Close"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMenuInteraction-nNF1dsrp.js","sources":["../src/components/SelectMenu/internal/useMenuInteraction.ts"],"sourcesContent":["import {\n type CSSProperties,\n type KeyboardEvent,\n type RefObject,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from \"react\";\nimport type {\n SelectItem,\n SectionMeta,\n} from \"../../../internal/types/selectFieldInternalTypes\";\nimport type { OptionsPanelHandle } from \"../../../internal/components/OptionsPanel\";\n\nexport type UseMenuInteractionConfig = {\n items: SelectItem[];\n sectionsMeta: SectionMeta[];\n onItemActivate: (item: SelectItem) => void;\n selectedItemIds: Set<string | number>;\n displayAs: \"popover\" | \"dialog\";\n closeOnActivate: boolean;\n disabled?: boolean;\n /**\n * When true (default), the menu closes if `disabled` becomes true.\n * Set false when `disabled` only freezes row interaction (e.g. bulk pending)\n * and the menu should remain open.\n */\n closeOnDisabled?: boolean;\n id: string;\n triggerRef: RefObject<HTMLButtonElement>;\n label: string;\n /**\n * Controlled open state. The consumer owns `[isOpen, setIsOpen]` so other\n * hooks in the same render (e.g. `useConfirmationDraft`) can read the same\n * value without a one-render lag.\n */\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n onImplicitClose?: () => void;\n onExplicitClose?: () => void;\n};\n\nexport type MenuTriggerProps = {\n ref: RefObject<HTMLButtonElement>;\n onClick: () => void;\n onKeyDown: (e: KeyboardEvent) => void;\n \"aria-haspopup\": \"listbox\";\n \"aria-controls\": string;\n \"aria-expanded\": boolean;\n \"data-state\": \"open\" | \"close\";\n} & Record<`data-${string}`, string>;\n\ntype MenuPropsArg = {\n className?: string;\n style?: CSSProperties;\n} & Record<string, unknown>;\n\ntype MenuReturnProps = {\n role: \"listbox\";\n id: string;\n \"aria-label\": string;\n \"aria-labelledby\"?: string;\n tabIndex?: number;\n \"aria-activedescendant\"?: string;\n ref: RefObject<HTMLDivElement>;\n onKeyDown: (e: KeyboardEvent) => void;\n className?: string;\n style?: CSSProperties;\n} & Record<string, unknown>;\n\ntype ItemPropsArg = {\n item: SelectItem;\n index: number;\n className?: string;\n \"data-type\"?: string;\n} & Record<string, unknown>;\n\ntype ItemReturnProps = {\n role: \"option\";\n id: string;\n \"aria-selected\": boolean;\n \"aria-disabled\"?: boolean;\n onClick: () => void;\n onMouseMove: () => void;\n className?: string;\n \"data-type\"?: string;\n} & Record<string, unknown>;\n\nexport type GetMenuPropsFn = (opts?: MenuPropsArg) => MenuReturnProps;\nexport type GetItemPropsFn = (opts: ItemPropsArg) => ItemReturnProps;\n\nexport const useMenuInteraction = ({\n items,\n sectionsMeta: _sectionsMeta,\n onItemActivate,\n selectedItemIds,\n displayAs: _displayAs,\n closeOnActivate,\n disabled = false,\n closeOnDisabled = true,\n id,\n triggerRef,\n label,\n isOpen,\n setIsOpen,\n onImplicitClose,\n onExplicitClose,\n}: UseMenuInteractionConfig) => {\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n\n const generatedId = useId();\n const menuId = `${id}-menu-${generatedId}`;\n const menuContainerRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<OptionsPanelHandle>(null);\n\n const isItemDisabled = useCallback(\n (item: SelectItem) => {\n return (disabled || item.disabled) ?? false;\n },\n [disabled],\n );\n\n const findNextEnabledIndex = useCallback(\n (startIndex: number, direction: 1 | -1, wrap = true): number => {\n if (items.length === 0) return -1;\n const len = items.length;\n let index = startIndex;\n for (let i = 0; i < len; i++) {\n index = wrap\n ? (index + direction + len) % len\n : Math.min(Math.max(index + direction, 0), len - 1);\n if (!isItemDisabled(items[index])) return index;\n if (!wrap && (index === 0 || index === len - 1)) return -1;\n }\n return -1;\n },\n [items, isItemDisabled],\n );\n\n const openMenu = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n }, [disabled, setIsOpen]);\n\n const closeMenu = useCallback(\n (options?: { restoreFocus?: boolean }) => {\n setIsOpen(false);\n setHighlightedIndex(-1);\n if (options?.restoreFocus !== false) {\n triggerRef.current?.focus();\n onExplicitClose?.();\n } else {\n onImplicitClose?.();\n }\n },\n [triggerRef, onImplicitClose, onExplicitClose, setIsOpen],\n );\n\n useEffect(() => {\n if (closeOnDisabled && disabled && isOpen) {\n closeMenu({ restoreFocus: false });\n }\n }, [closeOnDisabled, disabled, isOpen, closeMenu]);\n\n const getItemId = useCallback(\n (index: number) => `${menuId}-option-${index}`,\n [menuId],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (!isOpen) return;\n\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault();\n const next =\n highlightedIndex < 0\n ? findNextEnabledIndex(-1, 1)\n : findNextEnabledIndex(highlightedIndex, 1);\n if (next >= 0) {\n setHighlightedIndex(next);\n listRef.current?.scrollToIndex(next);\n }\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault();\n const prev =\n highlightedIndex < 0\n ? findNextEnabledIndex(items.length, -1)\n : findNextEnabledIndex(highlightedIndex, -1);\n if (prev >= 0) {\n setHighlightedIndex(prev);\n listRef.current?.scrollToIndex(prev);\n }\n break;\n }\n case \"Home\": {\n e.preventDefault();\n const first = findNextEnabledIndex(-1, 1, false);\n if (first >= 0) {\n setHighlightedIndex(first);\n listRef.current?.scrollToIndex(first);\n }\n break;\n }\n case \"End\": {\n e.preventDefault();\n const last = findNextEnabledIndex(items.length, -1, false);\n if (last >= 0) {\n setHighlightedIndex(last);\n listRef.current?.scrollToIndex(last);\n }\n break;\n }\n case \"Enter\": {\n e.preventDefault();\n if (highlightedIndex >= 0 && highlightedIndex < items.length) {\n const item = items[highlightedIndex];\n if (!isItemDisabled(item)) {\n onItemActivate(item);\n if (closeOnActivate) {\n closeMenu();\n }\n }\n }\n break;\n }\n case \" \": {\n // Only activate on Space when the menu container itself has focus.\n // If a search input is focused, Space should type a space character.\n const target = e.target as HTMLElement;\n if (target.tagName === \"INPUT\") break;\n e.preventDefault();\n if (highlightedIndex >= 0 && highlightedIndex < items.length) {\n const item = items[highlightedIndex];\n if (!isItemDisabled(item)) {\n onItemActivate(item);\n if (closeOnActivate) {\n closeMenu();\n }\n }\n }\n break;\n }\n case \"Escape\": {\n e.preventDefault();\n closeMenu();\n break;\n }\n }\n },\n [\n isOpen,\n highlightedIndex,\n items,\n findNextEnabledIndex,\n isItemDisabled,\n onItemActivate,\n closeOnActivate,\n closeMenu,\n ],\n );\n\n const handleTriggerKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n if (!isOpen) openMenu();\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }\n },\n [isOpen, openMenu, closeMenu],\n );\n\n const getTriggerProps = useCallback((): MenuTriggerProps => {\n return {\n ref: triggerRef,\n onClick: () => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n },\n onKeyDown: handleTriggerKeyDown,\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": menuId,\n \"aria-expanded\": isOpen,\n \"data-state\": isOpen ? \"open\" : \"close\",\n };\n }, [isOpen, openMenu, closeMenu, menuId, handleTriggerKeyDown, triggerRef]);\n\n const getMenuProps: GetMenuPropsFn = useCallback(\n (opts?: MenuPropsArg): MenuReturnProps => {\n const { className, style, ...rest } = opts ?? {};\n return {\n ...rest,\n role: \"listbox\",\n id: menuId,\n \"aria-label\": label,\n tabIndex: 0,\n \"aria-activedescendant\":\n highlightedIndex >= 0 ? getItemId(highlightedIndex) : undefined,\n ref: menuContainerRef,\n onKeyDown: handleKeyDown,\n className,\n style: { outline: \"none\", ...style },\n };\n },\n [menuId, label, highlightedIndex, getItemId, handleKeyDown],\n );\n\n const getItemProps: GetItemPropsFn = useCallback(\n (opts: ItemPropsArg): ItemReturnProps => {\n const { item, index, className, \"data-type\": dataType, ...rest } = opts;\n return {\n ...rest,\n role: \"option\",\n id: getItemId(index),\n \"aria-selected\": selectedItemIds.has(item.original.id),\n \"aria-disabled\": isItemDisabled(item) || undefined,\n onClick: () => {\n if (isItemDisabled(item)) return;\n onItemActivate(item);\n if (closeOnActivate) {\n closeMenu();\n }\n },\n onMouseMove: () => {\n if (highlightedIndex !== index) {\n setHighlightedIndex(index);\n }\n },\n className,\n \"data-type\": dataType,\n };\n },\n [\n getItemId,\n selectedItemIds,\n isItemDisabled,\n onItemActivate,\n closeOnActivate,\n closeMenu,\n highlightedIndex,\n ],\n );\n\n return {\n isOpen,\n openMenu,\n closeMenu,\n highlightedIndex,\n setHighlightedIndex,\n getTriggerProps,\n getMenuProps,\n getItemProps,\n listRef,\n menuContainerRef,\n handleKeyDown,\n };\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useMenuInteraction-nNF1dsrp.js","sources":["../src/components/SelectMenu/internal/useMenuInteraction.ts"],"sourcesContent":["import {\n type CSSProperties,\n type KeyboardEvent,\n type RefObject,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from \"react\";\nimport type {\n SelectItem,\n SectionMeta,\n} from \"../../../internal/types/selectFieldInternalTypes\";\nimport type { OptionsPanelHandle } from \"../../../internal/components/OptionsPanel\";\n\nexport type UseMenuInteractionConfig = {\n items: SelectItem[];\n sectionsMeta: SectionMeta[];\n onItemActivate: (item: SelectItem) => void;\n selectedItemIds: Set<string | number>;\n displayAs: \"popover\" | \"dialog\";\n /** When false, activating a row leaves the menu open (multi-select). */\n closeOnActivate: boolean;\n disabled?: boolean;\n /**\n * When true (default), the menu closes if `disabled` becomes true.\n * Set false when `disabled` only freezes row interaction (e.g. bulk pending)\n * and the menu should remain open.\n */\n closeOnDisabled?: boolean;\n id: string;\n triggerRef: RefObject<HTMLButtonElement>;\n label: string;\n /**\n * Controlled open state. The consumer owns `[isOpen, setIsOpen]` so other\n * hooks in the same render (e.g. `useConfirmationDraft`) can read the same\n * value without a one-render lag.\n */\n isOpen: boolean;\n setIsOpen: (open: boolean) => void;\n onImplicitClose?: () => void;\n onExplicitClose?: () => void;\n};\n\nexport type MenuTriggerProps = {\n ref: RefObject<HTMLButtonElement>;\n onClick: () => void;\n onKeyDown: (e: KeyboardEvent) => void;\n \"aria-haspopup\": \"listbox\";\n \"aria-controls\": string;\n \"aria-expanded\": boolean;\n \"data-state\": \"open\" | \"close\";\n} & Record<`data-${string}`, string>;\n\ntype MenuPropsArg = {\n className?: string;\n style?: CSSProperties;\n} & Record<string, unknown>;\n\ntype MenuReturnProps = {\n role: \"listbox\";\n id: string;\n \"aria-label\": string;\n \"aria-labelledby\"?: string;\n tabIndex?: number;\n \"aria-activedescendant\"?: string;\n ref: RefObject<HTMLDivElement>;\n onKeyDown: (e: KeyboardEvent) => void;\n className?: string;\n style?: CSSProperties;\n} & Record<string, unknown>;\n\ntype ItemPropsArg = {\n item: SelectItem;\n index: number;\n className?: string;\n \"data-type\"?: string;\n} & Record<string, unknown>;\n\ntype ItemReturnProps = {\n role: \"option\";\n id: string;\n \"aria-selected\": boolean;\n \"aria-disabled\"?: boolean;\n onClick: () => void;\n onMouseMove: () => void;\n className?: string;\n \"data-type\"?: string;\n} & Record<string, unknown>;\n\nexport type GetMenuPropsFn = (opts?: MenuPropsArg) => MenuReturnProps;\nexport type GetItemPropsFn = (opts: ItemPropsArg) => ItemReturnProps;\n\n/** Keyboard, highlight, and trigger/menu prop bags. */\nexport const useMenuInteraction = ({\n items,\n sectionsMeta: _sectionsMeta,\n onItemActivate,\n selectedItemIds,\n displayAs: _displayAs,\n closeOnActivate,\n disabled = false,\n closeOnDisabled = true,\n id,\n triggerRef,\n label,\n isOpen,\n setIsOpen,\n onImplicitClose,\n onExplicitClose,\n}: UseMenuInteractionConfig) => {\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n\n const generatedId = useId();\n const menuId = `${id}-menu-${generatedId}`;\n const menuContainerRef = useRef<HTMLDivElement>(null);\n const listRef = useRef<OptionsPanelHandle>(null);\n\n const isItemDisabled = useCallback(\n (item: SelectItem) => {\n return (disabled || item.disabled) ?? false;\n },\n [disabled],\n );\n\n const findNextEnabledIndex = useCallback(\n (startIndex: number, direction: 1 | -1, wrap = true): number => {\n if (items.length === 0) return -1;\n const len = items.length;\n let index = startIndex;\n for (let i = 0; i < len; i++) {\n index = wrap\n ? (index + direction + len) % len\n : Math.min(Math.max(index + direction, 0), len - 1);\n if (!isItemDisabled(items[index])) return index;\n if (!wrap && (index === 0 || index === len - 1)) return -1;\n }\n return -1;\n },\n [items, isItemDisabled],\n );\n\n const openMenu = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n }, [disabled, setIsOpen]);\n\n const closeMenu = useCallback(\n (options?: { restoreFocus?: boolean }) => {\n setIsOpen(false);\n setHighlightedIndex(-1);\n if (options?.restoreFocus !== false) {\n triggerRef.current?.focus();\n onExplicitClose?.();\n } else {\n onImplicitClose?.();\n }\n },\n [triggerRef, onImplicitClose, onExplicitClose, setIsOpen],\n );\n\n useEffect(() => {\n if (closeOnDisabled && disabled && isOpen) {\n closeMenu({ restoreFocus: false });\n }\n }, [closeOnDisabled, disabled, isOpen, closeMenu]);\n\n const getItemId = useCallback(\n (index: number) => `${menuId}-option-${index}`,\n [menuId],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (!isOpen) return;\n\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault();\n const next =\n highlightedIndex < 0\n ? findNextEnabledIndex(-1, 1)\n : findNextEnabledIndex(highlightedIndex, 1);\n if (next >= 0) {\n setHighlightedIndex(next);\n listRef.current?.scrollToIndex(next);\n }\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault();\n const prev =\n highlightedIndex < 0\n ? findNextEnabledIndex(items.length, -1)\n : findNextEnabledIndex(highlightedIndex, -1);\n if (prev >= 0) {\n setHighlightedIndex(prev);\n listRef.current?.scrollToIndex(prev);\n }\n break;\n }\n case \"Home\": {\n e.preventDefault();\n const first = findNextEnabledIndex(-1, 1, false);\n if (first >= 0) {\n setHighlightedIndex(first);\n listRef.current?.scrollToIndex(first);\n }\n break;\n }\n case \"End\": {\n e.preventDefault();\n const last = findNextEnabledIndex(items.length, -1, false);\n if (last >= 0) {\n setHighlightedIndex(last);\n listRef.current?.scrollToIndex(last);\n }\n break;\n }\n case \"Enter\": {\n e.preventDefault();\n if (highlightedIndex >= 0 && highlightedIndex < items.length) {\n const item = items[highlightedIndex];\n if (!isItemDisabled(item)) {\n onItemActivate(item);\n if (closeOnActivate) {\n closeMenu();\n }\n }\n }\n break;\n }\n case \" \": {\n // Only activate on Space when the menu container itself has focus.\n // If a search input is focused, Space should type a space character.\n const target = e.target as HTMLElement;\n if (target.tagName === \"INPUT\") break;\n e.preventDefault();\n if (highlightedIndex >= 0 && highlightedIndex < items.length) {\n const item = items[highlightedIndex];\n if (!isItemDisabled(item)) {\n onItemActivate(item);\n if (closeOnActivate) {\n closeMenu();\n }\n }\n }\n break;\n }\n case \"Escape\": {\n e.preventDefault();\n closeMenu();\n break;\n }\n }\n },\n [\n isOpen,\n highlightedIndex,\n items,\n findNextEnabledIndex,\n isItemDisabled,\n onItemActivate,\n closeOnActivate,\n closeMenu,\n ],\n );\n\n const handleTriggerKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n e.preventDefault();\n if (!isOpen) openMenu();\n }\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n }\n },\n [isOpen, openMenu, closeMenu],\n );\n\n const getTriggerProps = useCallback((): MenuTriggerProps => {\n return {\n ref: triggerRef,\n onClick: () => {\n if (isOpen) {\n closeMenu();\n } else {\n openMenu();\n }\n },\n onKeyDown: handleTriggerKeyDown,\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": menuId,\n \"aria-expanded\": isOpen,\n \"data-state\": isOpen ? \"open\" : \"close\",\n };\n }, [isOpen, openMenu, closeMenu, menuId, handleTriggerKeyDown, triggerRef]);\n\n const getMenuProps: GetMenuPropsFn = useCallback(\n (opts?: MenuPropsArg): MenuReturnProps => {\n const { className, style, ...rest } = opts ?? {};\n return {\n ...rest,\n role: \"listbox\",\n id: menuId,\n \"aria-label\": label,\n tabIndex: 0,\n \"aria-activedescendant\":\n highlightedIndex >= 0 ? getItemId(highlightedIndex) : undefined,\n ref: menuContainerRef,\n onKeyDown: handleKeyDown,\n className,\n style: { outline: \"none\", ...style },\n };\n },\n [menuId, label, highlightedIndex, getItemId, handleKeyDown],\n );\n\n const getItemProps: GetItemPropsFn = useCallback(\n (opts: ItemPropsArg): ItemReturnProps => {\n const { item, index, className, \"data-type\": dataType, ...rest } = opts;\n return {\n ...rest,\n role: \"option\",\n id: getItemId(index),\n \"aria-selected\": selectedItemIds.has(item.original.id),\n \"aria-disabled\": isItemDisabled(item) || undefined,\n onClick: () => {\n if (isItemDisabled(item)) return;\n onItemActivate(item);\n if (closeOnActivate) {\n closeMenu();\n }\n },\n onMouseMove: () => {\n if (highlightedIndex !== index) {\n setHighlightedIndex(index);\n }\n },\n className,\n \"data-type\": dataType,\n };\n },\n [\n getItemId,\n selectedItemIds,\n isItemDisabled,\n onItemActivate,\n closeOnActivate,\n closeMenu,\n highlightedIndex,\n ],\n );\n\n return {\n isOpen,\n openMenu,\n closeMenu,\n highlightedIndex,\n setHighlightedIndex,\n getTriggerProps,\n getMenuProps,\n getItemProps,\n listRef,\n menuContainerRef,\n handleKeyDown,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils-CM48ODEJ.js","sources":["../src/components/FieldMessage/utils.ts"],"sourcesContent":["import { isValidElement, type ReactElement } from \"react\";\nimport { warnOnce } from \"../../internal/functions\";\n\n/**\n * Logs a dev-only deprecation warning when `error` is passed as a `ReactElement`.\n * String values are the preferred type and are NOT deprecated.\n * Should be called in consumer components that accept the union `error` prop.\n */\nexport function warnDeprecatedErrorUsage(\n componentName: string,\n error: ReactElement | string | boolean | string[] | undefined,\n): void {\n if (error === undefined || typeof error === \"boolean\") return;\n if (typeof error === \"string\" || Array.isArray(error)) return;\n\n // At this point, error is a ReactElement\n if (isValidElement(error)) {\n warnOnce(\n `[Anvil2 ${componentName}] Passing a ReactElement to the \\`error\\` prop is deprecated. ` +\n `Use a string or string[] instead: \\`error=\"message\"\\` or \\`error={[\"msg1\", \"msg2\"]}\\`. ` +\n `See https://beta.anvil.servicetitan.com/docs/web/components/field-message/code`,\n );\n }\n}\n"],"names":[],"mappings":";;;AAQO,SAAS,wBAAA,CACd,eACA,KAAA,EACM;AACN,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,OAAO,KAAA,KAAU,SAAA,EAAW;AACvD,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AAGvD,EAAA,IAAI,cAAA,CAAe,KAAK,CAAA,EAAG;AACzB,IAAA,QAAA;AAAA,MACE,WAAW,aAAa,CAAA,mOAAA;AAAA,KAG1B;AAAA,EACF;AACF;;;;"}
1
+ {"version":3,"file":"utils-CM48ODEJ.js","sources":["../src/components/FieldMessage/utils.ts"],"sourcesContent":["import { isValidElement, type ReactElement } from \"react\";\nimport { warnOnce } from \"../../internal/functions\";\n\n/**\n * Dev-only warning when `error` is a ReactElement. Strings and string arrays\n * are the supported form. Call from components that expose the `error` union.\n */\nexport function warnDeprecatedErrorUsage(\n componentName: string,\n error: ReactElement | string | boolean | string[] | undefined,\n): void {\n if (error === undefined || typeof error === \"boolean\") return;\n if (typeof error === \"string\" || Array.isArray(error)) return;\n\n if (isValidElement(error)) {\n warnOnce(\n `[Anvil2 ${componentName}] Passing a ReactElement to the \\`error\\` prop is deprecated. ` +\n `Use a string or string[] instead: \\`error=\"message\"\\` or \\`error={[\"msg1\", \"msg2\"]}\\`. ` +\n `See https://beta.anvil.servicetitan.com/docs/web/components/field-message/code`,\n );\n }\n}\n"],"names":[],"mappings":";;;AAOO,SAAS,wBAAA,CACd,eACA,KAAA,EACM;AACN,EAAA,IAAI,KAAA,KAAU,MAAA,IAAa,OAAO,KAAA,KAAU,SAAA,EAAW;AACvD,EAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,OAAA,CAAQ,KAAK,CAAA,EAAG;AAEvD,EAAA,IAAI,cAAA,CAAe,KAAK,CAAA,EAAG;AACzB,IAAA,QAAA;AAAA,MACE,WAAW,aAAa,CAAA,mOAAA;AAAA,KAG1B;AAAA,EACF;AACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/anvil2",
3
- "version": "3.14.1",
3
+ "version": "3.15.1",
4
4
  "type": "module",
5
5
  "types": "./dist/src/index.d.ts",
6
6
  "main": "./dist/index.js",
@@ -72,7 +72,7 @@
72
72
  "focus-trap-react": "^11.0.5",
73
73
  "luxon": "^3.4.4",
74
74
  "match-sorter": "8.0.0",
75
- "motion": "^12.4.10",
75
+ "motion": "^12.43.0",
76
76
  "react-textarea-autosize": "8.5.5",
77
77
  "react-window": "1.8.10",
78
78
  "tabbable": "^6.2.0",
@@ -142,10 +142,12 @@
142
142
  "check-parts:selftest": "node ./scripts/check-anv-parts.mjs --selftest",
143
143
  "clean": "rimraf dist node_modules/.cache",
144
144
  "cp-files": "cp ./package.json dist && cp ./README.md dist",
145
- "lint": "biome check .",
145
+ "lint": "pnpm validate:structure && biome check .",
146
+ "validate:structure": "node scripts/validateProjectStructure.mjs",
147
+ "test:structure": "node --test scripts/validateProjectStructure.test.mjs",
146
148
  "nuke": "pnpm clean && rimraf node_modules",
147
149
  "svgo:st-icons": "pnpm svgo ./public/assets/icons/st/*.svg",
148
- "test": "npm run check-parts && vitest run --project=unit --coverage.enabled=true --coverage.reporter=lcov --coverage.reporter=text",
150
+ "test": "npm run check-parts && pnpm test:structure && vitest run --project=unit --coverage.enabled=true --coverage.reporter=lcov --coverage.reporter=text",
149
151
  "test:ci:shard": "vitest run --project=unit --coverage.enabled=true --reporter=default --reporter=blob --coverage.thresholds.lines=0 --coverage.thresholds.branches=0 --coverage.thresholds.functions=0 --coverage.thresholds.statements=0",
150
152
  "test:ci:merge-coverage": "vitest run --project=unit --merge-reports --coverage.enabled=true --coverage.reporter=text --coverage.reporter=lcov",
151
153
  "storybook": "storybook dev -p 7007",