@servicetitan/anvil2 3.15.0 → 3.15.2

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 (414) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/{AiMark-D57s1e0T.js → AiMark-N8UfGfcV.js} +2 -2
  3. package/dist/{AiMark-D57s1e0T.js.map → AiMark-N8UfGfcV.js.map} +1 -1
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-DExHiAbM.js → Alert-DTKIlitZ.js} +3 -3
  6. package/dist/{Alert-DExHiAbM.js.map → Alert-DTKIlitZ.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-CGTv6M31.js → Announcement-Cnz80WGx.js} +2 -2
  9. package/dist/{Announcement-CGTv6M31.js.map → Announcement-Cnz80WGx.js.map} +1 -1
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{Breadcrumbs-DtLSS0PJ.js → Breadcrumbs-B8UGx4Mq.js} +2 -2
  12. package/dist/{Breadcrumbs-DtLSS0PJ.js.map → Breadcrumbs-B8UGx4Mq.js.map} +1 -1
  13. package/dist/Breadcrumbs.js +1 -1
  14. package/dist/{Button-Dwh_Nd4l.js → Button-Dn6-01xl.js} +230 -67
  15. package/dist/Button-Dn6-01xl.js.map +1 -0
  16. package/dist/Button.js +1 -1
  17. package/dist/{ButtonToggle-DKDBD1g3.js → ButtonToggle-BSU8GBxr.js} +2 -2
  18. package/dist/{ButtonToggle-DKDBD1g3.js.map → ButtonToggle-BSU8GBxr.js.map} +1 -1
  19. package/dist/ButtonToggle.js +1 -1
  20. package/dist/{Calendar-CEf7ke8X.js → Calendar-CpmaI3b6.js} +3 -3
  21. package/dist/Calendar-CpmaI3b6.js.map +1 -0
  22. package/dist/{Calendar-BUFPc5UN.js → Calendar-Cv07q_tE.js} +2 -2
  23. package/dist/Calendar-Cv07q_tE.js.map +1 -0
  24. package/dist/Calendar.js +2 -2
  25. package/dist/{Checkbox-DVy-QESI.js → Checkbox-cB0D9W0a.js} +3 -3
  26. package/dist/{Checkbox-DVy-QESI.js.map → Checkbox-cB0D9W0a.js.map} +1 -1
  27. package/dist/{Checkbox-DBE35nMv.js → Checkbox-jomKCuAj.js} +2 -2
  28. package/dist/{Checkbox-DBE35nMv.js.map → Checkbox-jomKCuAj.js.map} +1 -1
  29. package/dist/Checkbox.js +1 -1
  30. package/dist/{Chip-B4G4zaP-.js → Chip-DivZ3OuB.js} +2 -2
  31. package/dist/{Chip-B4G4zaP-.js.map → Chip-DivZ3OuB.js.map} +1 -1
  32. package/dist/Chip.js +1 -1
  33. package/dist/Combobox.js +1 -1
  34. package/dist/{DataTable-DbuXfDNJ.js → DataTable-_XXxSbvH.js} +16 -41
  35. package/dist/DataTable-_XXxSbvH.js.map +1 -0
  36. package/dist/{DateFieldRange-nyj8mtUP.js → DateFieldRange-31zIfcR2.js} +4 -4
  37. package/dist/{DateFieldRange-nyj8mtUP.js.map → DateFieldRange-31zIfcR2.js.map} +1 -1
  38. package/dist/DateFieldRange.js +1 -1
  39. package/dist/{DateFieldSingle-BmCghXba.js → DateFieldSingle-DDFe1inZ.js} +4 -4
  40. package/dist/{DateFieldSingle-BmCghXba.js.map → DateFieldSingle-DDFe1inZ.js.map} +1 -1
  41. package/dist/DateFieldSingle.js +1 -1
  42. package/dist/{DateFieldYearless-Df7fA85i.js → DateFieldYearless-Cv34myLZ.js} +4 -4
  43. package/dist/{DateFieldYearless-Df7fA85i.js.map → DateFieldYearless-Cv34myLZ.js.map} +1 -1
  44. package/dist/DateFieldYearless.js +1 -1
  45. package/dist/{DateFieldYearlessRange-DYpY4K1c.js → DateFieldYearlessRange-D_ftkt3w.js} +3 -3
  46. package/dist/{DateFieldYearlessRange-DYpY4K1c.js.map → DateFieldYearlessRange-D_ftkt3w.js.map} +1 -1
  47. package/dist/DateFieldYearlessRange.js +1 -1
  48. package/dist/{DaysOfTheWeek-CyWGRqFG.js → DaysOfTheWeek-D4tUHUay.js} +3 -3
  49. package/dist/{DaysOfTheWeek-CyWGRqFG.js.map → DaysOfTheWeek-D4tUHUay.js.map} +1 -1
  50. package/dist/DaysOfTheWeek.js +1 -1
  51. package/dist/{Details-oM-nR4ju.js → Details-BxqP-5vp.js} +11 -9
  52. package/dist/Details-BxqP-5vp.js.map +1 -0
  53. package/dist/Details.css +18 -14
  54. package/dist/Details.js +1 -1
  55. package/dist/{Dialog-vSiZAR1y.js → Dialog-B2QAFibn.js} +4 -4
  56. package/dist/{Dialog-vSiZAR1y.js.map → Dialog-B2QAFibn.js.map} +1 -1
  57. package/dist/Dialog.js +1 -1
  58. package/dist/{DialogCancelButton-DBL0aKTK.js → DialogCancelButton-C0r8hJ8Z.js} +2 -2
  59. package/dist/{DialogCancelButton-DBL0aKTK.js.map → DialogCancelButton-C0r8hJ8Z.js.map} +1 -1
  60. package/dist/{Drawer-B4pxj_2P.js → Drawer-CBIOWwh3.js} +5 -5
  61. package/dist/{Drawer-B4pxj_2P.js.map → Drawer-CBIOWwh3.js.map} +1 -1
  62. package/dist/Drawer.js +1 -1
  63. package/dist/DrillDown.js +1 -1
  64. package/dist/{EditCard-CX1G7G2Q.js → EditCard-Q6WlsM4O.js} +3 -3
  65. package/dist/{EditCard-CX1G7G2Q.js.map → EditCard-Q6WlsM4O.js.map} +1 -1
  66. package/dist/EditCard.js +1 -1
  67. package/dist/{FieldLabel-CAusaqUY.js → FieldLabel-FsNIjn8T.js} +2 -2
  68. package/dist/{FieldLabel-CAusaqUY.js.map → FieldLabel-FsNIjn8T.js.map} +1 -1
  69. package/dist/FieldLabel.js +1 -1
  70. package/dist/{FilterBar-CKYf-1oU.js → FilterBar-PXv7_svO.js} +7 -7
  71. package/dist/FilterBar-PXv7_svO.js.map +1 -0
  72. package/dist/FilterBar.js +1 -1
  73. package/dist/{InputMask-xMpquXPU.js → InputMask-BgZX650-.js} +3 -3
  74. package/dist/{InputMask-xMpquXPU.js.map → InputMask-BgZX650-.js.map} +1 -1
  75. package/dist/InputMask.js +1 -1
  76. package/dist/{InteractiveCard-C0g5PxB6.js → InteractiveCard-C2CYRtgQ.js} +3 -3
  77. package/dist/InteractiveCard-C2CYRtgQ.js.map +1 -0
  78. package/dist/InteractiveCard.js +1 -1
  79. package/dist/{ListView-D6l1KY92.js → ListView-aRwUEGI3.js} +2 -2
  80. package/dist/{ListView-D6l1KY92.js.map → ListView-aRwUEGI3.js.map} +1 -1
  81. package/dist/ListView.js +1 -1
  82. package/dist/{Listbox-Dep1eJ3u.js → Listbox-BCszel4v.js} +2 -2
  83. package/dist/{Listbox-Dep1eJ3u.js.map → Listbox-BCszel4v.js.map} +1 -1
  84. package/dist/Listbox.js +1 -1
  85. package/dist/{Menu-eLxQwmZk.js → Menu-Da2OEN0o.js} +2 -2
  86. package/dist/{Menu-eLxQwmZk.js.map → Menu-Da2OEN0o.js.map} +1 -1
  87. package/dist/Menu.js +1 -1
  88. package/dist/{MenuFooter-fGSZYh8e.js → MenuFooter-D__gg92C.js} +2 -2
  89. package/dist/{MenuFooter-fGSZYh8e.js.map → MenuFooter-D__gg92C.js.map} +1 -1
  90. package/dist/MultiSelectField.js +1 -1
  91. package/dist/{MultiSelectFieldSync-ZNoNOm6d.js → MultiSelectFieldSync-DY5wr7cT.js} +7 -7
  92. package/dist/{MultiSelectFieldSync-ZNoNOm6d.js.map → MultiSelectFieldSync-DY5wr7cT.js.map} +1 -1
  93. package/dist/MultiSelectMenu.js +1 -1
  94. package/dist/{MultiSelectMenuSync-DrgqaUJj.js → MultiSelectMenuSync-D3sfHivW.js} +5 -5
  95. package/dist/{MultiSelectMenuSync-DrgqaUJj.js.map → MultiSelectMenuSync-D3sfHivW.js.map} +1 -1
  96. package/dist/{NumberField-D5ZzEHg1.js → NumberField-CrvEEy_h.js} +4 -4
  97. package/dist/{NumberField-D5ZzEHg1.js.map → NumberField-CrvEEy_h.js.map} +1 -1
  98. package/dist/NumberField.js +1 -1
  99. package/dist/{Page-B2HZzNGP.js → Page-CS6x6C7Y.js} +18 -187
  100. package/dist/Page-CS6x6C7Y.js.map +1 -0
  101. package/dist/Page.js +1 -1
  102. package/dist/{Pagination-CAgXtt9t.js → Pagination-DianLtHs.js} +5 -5
  103. package/dist/{Pagination-CAgXtt9t.js.map → Pagination-DianLtHs.js.map} +1 -1
  104. package/dist/Pagination.js +1 -1
  105. package/dist/{Popover-CjL2ixjB.js → Popover-BsEwcuu4.js} +2 -2
  106. package/dist/{Popover-CjL2ixjB.js.map → Popover-BsEwcuu4.js.map} +1 -1
  107. package/dist/Popover.js +1 -1
  108. package/dist/{ProgressBar-ClKcOcXq.js → ProgressBar-0pebwBJ0.js} +2 -2
  109. package/dist/{ProgressBar-ClKcOcXq.js.map → ProgressBar-0pebwBJ0.js.map} +1 -1
  110. package/dist/ProgressBar.js +1 -1
  111. package/dist/{Radio-_ftIQSru.js → Radio-BxXN612_.js} +3 -3
  112. package/dist/{Radio-_ftIQSru.js.map → Radio-BxXN612_.js.map} +1 -1
  113. package/dist/{Radio-C2BJqWlV.js → Radio-CU2--1uW.js} +2 -2
  114. package/dist/{Radio-C2BJqWlV.js.map → Radio-CU2--1uW.js.map} +1 -1
  115. package/dist/Radio.js +1 -1
  116. package/dist/{RichTextEditor-TcZUnqcp.js → RichTextEditor-Dnc7vOjq.js} +18831 -20238
  117. package/dist/RichTextEditor-Dnc7vOjq.js.map +1 -0
  118. package/dist/RichTextEditor.js +1 -1
  119. package/dist/{SavedFiltersButton-B8lf3L2T.js → SavedFiltersButton-BWlE7UnI.js} +10 -24
  120. package/dist/SavedFiltersButton-BWlE7UnI.js.map +1 -0
  121. package/dist/SavedFiltersButton.js +1 -1
  122. package/dist/{SegmentedControl-CtKoYHoO.js → SegmentedControl-BHVJmmTH.js} +3 -3
  123. package/dist/{SegmentedControl-CtKoYHoO.js.map → SegmentedControl-BHVJmmTH.js.map} +1 -1
  124. package/dist/SegmentedControl.js +1 -1
  125. package/dist/{SelectCard-BwIbfore.js → SelectCard-D2PAyR7T.js} +3 -3
  126. package/dist/{SelectCard-BwIbfore.js.map → SelectCard-D2PAyR7T.js.map} +1 -1
  127. package/dist/SelectCard.js +1 -1
  128. package/dist/SelectField.js +1 -1
  129. package/dist/{SelectFieldLabel-7VTZ83QJ.js → SelectFieldLabel-BXJJQ0zt.js} +2 -2
  130. package/dist/{SelectFieldLabel-7VTZ83QJ.js.map → SelectFieldLabel-BXJJQ0zt.js.map} +1 -1
  131. package/dist/{SelectFieldSync-CB75kkka.js → SelectFieldSync-CkWoMhrv.js} +6 -6
  132. package/dist/{SelectFieldSync-CB75kkka.js.map → SelectFieldSync-CkWoMhrv.js.map} +1 -1
  133. package/dist/SelectMenu.js +1 -1
  134. package/dist/{SelectMenuSync-DIMfovCI.js → SelectMenuSync-C-6mULc_.js} +5 -5
  135. package/dist/{SelectMenuSync-DIMfovCI.js.map → SelectMenuSync-C-6mULc_.js.map} +1 -1
  136. package/dist/{SelectOptions-si_rVLEZ.js → SelectOptions-pAkVhulQ.js} +2 -2
  137. package/dist/{SelectOptions-si_rVLEZ.js.map → SelectOptions-pAkVhulQ.js.map} +1 -1
  138. package/dist/{SelectTrigger-C3-Cne3D.js → SelectTrigger-B9WUUdIu.js} +2 -2
  139. package/dist/{SelectTrigger-C3-Cne3D.js.map → SelectTrigger-B9WUUdIu.js.map} +1 -1
  140. package/dist/SelectTrigger.js +1 -1
  141. package/dist/{SelectTriggerBase-BnsTYWVb.js → SelectTriggerBase-Dq7QDlPS.js} +4 -4
  142. package/dist/{SelectTriggerBase-BnsTYWVb.js.map → SelectTriggerBase-Dq7QDlPS.js.map} +1 -1
  143. package/dist/{Stepper-C-QC9QHx.js → Stepper-l_P6VPOv.js} +3 -3
  144. package/dist/{Stepper-C-QC9QHx.js.map → Stepper-l_P6VPOv.js.map} +1 -1
  145. package/dist/Stepper.js +1 -1
  146. package/dist/{Switch-DWq4QI8M.js → Switch-BS4bw5KF.js} +2 -2
  147. package/dist/{Switch-DWq4QI8M.js.map → Switch-BS4bw5KF.js.map} +1 -1
  148. package/dist/Switch.js +1 -1
  149. package/dist/{Tab-mXEQ0ifM.js → Tab-DR5YYXkq.js} +124 -19
  150. package/dist/Tab-DR5YYXkq.js.map +1 -0
  151. package/dist/Tab.js +1 -1
  152. package/dist/Table.js +1 -1
  153. package/dist/{Text-dONmlARH.js → Text-B_-Ldn9K.js} +2 -2
  154. package/dist/{Text-dONmlARH.js.map → Text-B_-Ldn9K.js.map} +1 -1
  155. package/dist/Text.js +1 -1
  156. package/dist/{TextField-CtXjbtqa.js → TextField-B6tVKoxq.js} +2 -2
  157. package/dist/{TextField-CtXjbtqa.js.map → TextField-B6tVKoxq.js.map} +1 -1
  158. package/dist/{TextField-CQ7e3mC4.js → TextField-DxQ6-IhP.js} +3 -3
  159. package/dist/{TextField-CQ7e3mC4.js.map → TextField-DxQ6-IhP.js.map} +1 -1
  160. package/dist/TextField.js +1 -1
  161. package/dist/{Textarea-DGVHQktZ.js → Textarea-oChzBuWz.js} +3 -3
  162. package/dist/{Textarea-DGVHQktZ.js.map → Textarea-oChzBuWz.js.map} +1 -1
  163. package/dist/Textarea.js +1 -1
  164. package/dist/{TimeField-AttXPsQw.js → TimeField-Dq7l8xNU.js} +4 -4
  165. package/dist/{TimeField-AttXPsQw.js.map → TimeField-Dq7l8xNU.js.map} +1 -1
  166. package/dist/TimeField.js +1 -1
  167. package/dist/Toast.js +2 -2
  168. package/dist/{Toaster-DYO8NLTo.js → Toaster-CsZkAOVn.js} +2 -2
  169. package/dist/{Toaster-DYO8NLTo.js.map → Toaster-CsZkAOVn.js.map} +1 -1
  170. package/dist/{Toaster-CNtAl-tF.js → Toaster-oK4dSBPK.js} +4 -4
  171. package/dist/{Toaster-CNtAl-tF.js.map → Toaster-oK4dSBPK.js.map} +1 -1
  172. package/dist/{Toolbar-BIbbaCxh.js → Toolbar-Bp-A2P4L.js} +5 -5
  173. package/dist/{Toolbar-BIbbaCxh.js.map → Toolbar-Bp-A2P4L.js.map} +1 -1
  174. package/dist/{Toolbar-B_lHD0c2.js → Toolbar-Do8KEjJJ.js} +11 -105
  175. package/dist/Toolbar-Do8KEjJJ.js.map +1 -0
  176. package/dist/Toolbar.js +2 -2
  177. package/dist/{ToolbarButtonToggle-BMBmBdw1.js → ToolbarButtonToggle-T8YnSJ5x.js} +2 -3
  178. package/dist/ToolbarButtonToggle-T8YnSJ5x.js.map +1 -0
  179. package/dist/TreeSelectField.js +1 -1
  180. package/dist/{TreeSelectFieldSync-CKnFwROC.js → TreeSelectFieldSync-BXfLbDBM.js} +7 -7
  181. package/dist/TreeSelectFieldSync-BXfLbDBM.js.map +1 -0
  182. package/dist/TreeSelectMenu.js +1 -1
  183. package/dist/{TreeSelectMenuSync-CK-x2_ne.js → TreeSelectMenuSync-D7fQIyHr.js} +4 -4
  184. package/dist/TreeSelectMenuSync-D7fQIyHr.js.map +1 -0
  185. package/dist/{TypeaheadTextField-DqnUGXj0.js → TypeaheadTextField-Dkh84OCF.js} +10 -19
  186. package/dist/TypeaheadTextField-Dkh84OCF.js.map +1 -0
  187. package/dist/TypeaheadTextField.js +1 -1
  188. package/dist/{YearlessDateInputWithPicker-aI4UIyMD.js → YearlessDateInputWithPicker-7y8xhacx.js} +2 -2
  189. package/dist/{YearlessDateInputWithPicker-aI4UIyMD.js.map → YearlessDateInputWithPicker-7y8xhacx.js.map} +1 -1
  190. package/dist/assets/icons/material.ts +184 -184
  191. package/dist/assets/icons/st.ts +9 -9
  192. package/dist/beta.js +18 -18
  193. package/dist/{bulkActionTypes-sbwWLsDi.js → bulkActionTypes-BVJZ01mE.js} +2 -2
  194. package/dist/{bulkActionTypes-sbwWLsDi.js.map → bulkActionTypes-BVJZ01mE.js.map} +1 -1
  195. package/dist/{filter-state-DW8YmRHb.js → filter-state-CPCn-owS.js} +55 -37
  196. package/dist/filter-state-CPCn-owS.js.map +1 -0
  197. package/dist/{index-Cw2HFh0a.js → index-D1WfdON1.js} +1549 -1582
  198. package/dist/index-D1WfdON1.js.map +1 -0
  199. package/dist/index.js +48 -48
  200. package/dist/{proxy-DEehATlA.js → react-ORV84FjM.js} +6862 -5814
  201. package/dist/react-ORV84FjM.js.map +1 -0
  202. package/dist/src/beta/components/Calendar/Calendar.d.ts +8 -17
  203. package/dist/src/beta/components/Calendar/CalendarBetaPropsContext.d.ts +1 -0
  204. package/dist/src/beta/components/Calendar/useCalendarBetaProps.d.ts +1 -0
  205. package/dist/src/beta/components/FilterBar/FilterBar.d.ts +12 -53
  206. package/dist/src/beta/components/FilterBar/FilterDateList.d.ts +8 -0
  207. package/dist/src/beta/components/FilterBar/FilterDateRange.d.ts +15 -9
  208. package/dist/src/beta/components/FilterBar/FilterDateSingle.d.ts +15 -9
  209. package/dist/src/beta/components/FilterBar/FilterDrawer.d.ts +1 -14
  210. package/dist/src/beta/components/FilterBar/FilterItemWrapper.d.ts +0 -7
  211. package/dist/src/beta/components/FilterBar/FilterNumericRange.d.ts +4 -13
  212. package/dist/src/beta/components/FilterBar/FilterPopoverButton.d.ts +6 -8
  213. package/dist/src/beta/components/FilterBar/FilterSearchField.d.ts +3 -6
  214. package/dist/src/beta/components/FilterBar/FilterTextInput.d.ts +4 -13
  215. package/dist/src/beta/components/FilterBar/FilterToggleButton.d.ts +3 -14
  216. package/dist/src/beta/components/FilterBar/FilterTriggerButton.d.ts +3 -3
  217. package/dist/src/beta/components/FilterBar/internal/FilterGroupContext.d.ts +6 -20
  218. package/dist/src/beta/components/FilterBar/internal/adapters/index.d.ts +3 -8
  219. package/dist/src/beta/components/FilterBar/internal/adapters/types.d.ts +7 -19
  220. package/dist/src/beta/components/FilterBar/internal/types.d.ts +48 -57
  221. package/dist/src/beta/components/FilterBar/internal/utils/dateConstraints.d.ts +3 -3
  222. package/dist/src/beta/components/FilterBar/internal/utils/dateListLibraryOptions.d.ts +4 -7
  223. package/dist/src/beta/components/FilterBar/internal/utils/filter-state.d.ts +3 -24
  224. package/dist/src/beta/components/InteractiveCard/InteractiveCard.d.ts +2 -47
  225. package/dist/src/beta/components/InteractiveCard/types.d.ts +13 -71
  226. package/dist/src/beta/components/Page/Page.d.ts +8 -166
  227. package/dist/src/beta/components/Page/PageContent.d.ts +3 -17
  228. package/dist/src/beta/components/Page/PageContext.d.ts +9 -0
  229. package/dist/src/beta/components/Page/PageFooter.d.ts +2 -15
  230. package/dist/src/beta/components/Page/PageHeader.d.ts +38 -91
  231. package/dist/src/beta/components/Page/PagePanel.d.ts +17 -115
  232. package/dist/src/beta/components/Page/PagePanelContent.d.ts +5 -37
  233. package/dist/src/beta/components/Page/PagePanelFooter.d.ts +4 -27
  234. package/dist/src/beta/components/Page/PagePanelHeader.d.ts +3 -16
  235. package/dist/src/beta/components/Page/PageSidebar.d.ts +8 -41
  236. package/dist/src/beta/components/Page/PageSidebarHeader.d.ts +2 -20
  237. package/dist/src/beta/components/Page/internal/PagePanelContext.d.ts +1 -6
  238. package/dist/src/beta/components/Page/pageBreakpoint.d.ts +5 -18
  239. package/dist/src/beta/components/RichTextEditor/RichTextEditor.d.ts +2 -25
  240. package/dist/src/beta/components/RichTextEditor/internal/LinkPopover.d.ts +1 -0
  241. package/dist/src/beta/components/RichTextEditor/internal/MentionList.d.ts +1 -0
  242. package/dist/src/beta/components/RichTextEditor/internal/MentionPopover.d.ts +1 -0
  243. package/dist/src/beta/components/RichTextEditor/internal/RichTextEditorToolbar.d.ts +1 -0
  244. package/dist/src/beta/components/RichTextEditor/internal/YouTubeEmbedPrompt.d.ts +1 -0
  245. package/dist/src/beta/components/RichTextEditor/internal/YouTubePopover.d.ts +1 -0
  246. package/dist/src/beta/components/RichTextEditor/internal/extensions/ImageUploadExtension.d.ts +1 -0
  247. package/dist/src/beta/components/RichTextEditor/internal/extensions/LinkKeyboardShortcutExtension.d.ts +1 -0
  248. package/dist/src/beta/components/RichTextEditor/internal/extensions/MentionExtension.d.ts +5 -0
  249. package/dist/src/beta/components/RichTextEditor/internal/extensions/SafeImageExtension.d.ts +3 -10
  250. package/dist/src/beta/components/RichTextEditor/internal/extensions/YoutubeExtension.d.ts +4 -0
  251. package/dist/src/beta/components/RichTextEditor/internal/useRichTextEditor.d.ts +3 -17
  252. package/dist/src/beta/components/RichTextEditor/types.d.ts +46 -71
  253. package/dist/src/beta/components/SavedFiltersButton/SavedFiltersButton.d.ts +2 -33
  254. package/dist/src/beta/components/SavedFiltersButton/internal/AddSavedFilterDrawer.d.ts +2 -12
  255. package/dist/src/beta/components/SavedFiltersButton/internal/EditSavedFiltersDrawer.d.ts +2 -20
  256. package/dist/src/beta/components/SavedFiltersButton/parts.d.ts +0 -23
  257. package/dist/src/beta/components/SavedFiltersButton/types.d.ts +36 -85
  258. package/dist/src/beta/components/Table/DataTable/DataTable.d.ts +34 -84
  259. package/dist/src/beta/components/Table/DataTable/internal/DataTableBody.d.ts +15 -22
  260. package/dist/src/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +47 -18
  261. package/dist/src/beta/components/Table/DataTable/internal/DataTableCellAffordance.d.ts +8 -0
  262. package/dist/src/beta/components/Table/DataTable/internal/DataTableFooter.d.ts +17 -23
  263. package/dist/src/beta/components/Table/DataTable/internal/DataTableHeader.d.ts +6 -9
  264. package/dist/src/beta/components/Table/DataTable/internal/DataTablePagination.d.ts +16 -0
  265. package/dist/src/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +2 -11
  266. package/dist/src/beta/components/Table/DataTable/internal/cells/CellStatus.d.ts +7 -5
  267. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyCell.d.ts +4 -8
  268. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyImmutableCell.d.ts +4 -17
  269. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableBodyMutableCell.d.ts +4 -18
  270. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableFooterCell.d.ts +3 -10
  271. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableHeaderCell.d.ts +3 -15
  272. package/dist/src/beta/components/Table/DataTable/internal/cells/DataTableOverflowCell.d.ts +4 -0
  273. package/dist/src/beta/components/Table/DataTable/internal/cells/useCellFocusListener.d.ts +2 -6
  274. package/dist/src/beta/components/Table/DataTable/internal/constants.d.ts +13 -30
  275. package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusContext.d.ts +1 -6
  276. package/dist/src/beta/components/Table/DataTable/internal/context/focus/DTFocusProvider.d.ts +3 -0
  277. package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusDispatchContext.d.ts +1 -0
  278. package/dist/src/beta/components/Table/DataTable/internal/context/focus/useDTFocusStateContext.d.ts +1 -0
  279. package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickContext.d.ts +2 -5
  280. package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/DataTableRowClickProvider.d.ts +2 -5
  281. package/dist/src/beta/components/Table/DataTable/internal/context/rowClick/useDataTableRowClick.d.ts +1 -0
  282. package/dist/src/beta/components/Table/DataTable/internal/context/surface/DataTableSurfaceCoordinatorContext.d.ts +4 -0
  283. package/dist/src/beta/components/Table/DataTable/internal/context/surface/DataTableSurfaceCoordinatorProvider.d.ts +1 -0
  284. package/dist/src/beta/components/Table/DataTable/internal/context/surface/useDataTableSurfaceCoordinator.d.ts +1 -0
  285. package/dist/src/beta/components/Table/DataTable/internal/dataTableCellAffordanceHostClassName.d.ts +1 -0
  286. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableBooleanCell.d.ts +6 -0
  287. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableCellEditIcon.d.ts +1 -4
  288. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableCustomCell.d.ts +4 -0
  289. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +5 -25
  290. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +3 -13
  291. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableNumberCell.d.ts +4 -0
  292. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectAsyncCell.d.ts +5 -0
  293. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableSelectCell.d.ts +4 -0
  294. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableTextCell.d.ts +4 -0
  295. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/types.d.ts +7 -20
  296. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/useCustomEditHelpers.d.ts +13 -26
  297. package/dist/src/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +2 -10
  298. package/dist/src/beta/components/Table/DataTable/internal/useAsyncData.d.ts +8 -0
  299. package/dist/src/beta/components/Table/DataTable/internal/useColumnOrder.d.ts +2 -2
  300. package/dist/src/beta/components/Table/DataTable/internal/useDataTableVirtualizer.d.ts +7 -18
  301. package/dist/src/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +6 -10
  302. package/dist/src/beta/components/Table/DataTable/internal/util/cellPositionHelpers.d.ts +0 -3
  303. package/dist/src/beta/components/Table/DataTable/internal/util/cellTypeHelpers.d.ts +7 -24
  304. package/dist/src/beta/components/Table/DataTable/internal/util/getCellInteractives.d.ts +4 -17
  305. package/dist/src/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +5 -29
  306. package/dist/src/beta/components/Table/DataTable/internal/util/shallowSortingEqual.d.ts +1 -0
  307. package/dist/src/beta/components/Table/DataTable/parts.d.ts +3 -17
  308. package/dist/src/beta/components/Table/DataTable/types.d.ts +41 -64
  309. package/dist/src/beta/components/Table/base/TableBase.d.ts +8 -26
  310. package/dist/src/beta/components/Table/base/TableBody.d.ts +5 -14
  311. package/dist/src/beta/components/Table/base/TableContainer.d.ts +1 -11
  312. package/dist/src/beta/components/Table/base/TableFooter.d.ts +5 -14
  313. package/dist/src/beta/components/Table/base/TableHeader.d.ts +5 -14
  314. package/dist/src/beta/components/Table/base/cells/TableBodyCell.d.ts +4 -13
  315. package/dist/src/beta/components/Table/base/cells/TableEmptyCellContent.d.ts +1 -1
  316. package/dist/src/beta/components/Table/base/cells/TableFooterCell.d.ts +5 -13
  317. package/dist/src/beta/components/Table/base/cells/TableHeaderCell.d.ts +8 -25
  318. package/dist/src/beta/components/Table/base/cells/types.d.ts +2 -6
  319. package/dist/src/beta/components/Table/columnTypeDefaults.d.ts +7 -36
  320. package/dist/src/beta/components/Table/createColumnHelper.d.ts +38 -153
  321. package/dist/src/beta/components/Table/formatters/booleanFormatter.d.ts +4 -15
  322. package/dist/src/beta/components/Table/formatters/chipsFormatter.d.ts +7 -9
  323. package/dist/src/beta/components/Table/formatters/currencyFormatter.d.ts +3 -15
  324. package/dist/src/beta/components/Table/formatters/dateFormatter.d.ts +10 -23
  325. package/dist/src/beta/components/Table/formatters/dateTimeFormatter.d.ts +23 -46
  326. package/dist/src/beta/components/Table/formatters/htmlFormatter.d.ts +2 -11
  327. package/dist/src/beta/components/Table/formatters/htmlToMarkdown.d.ts +5 -10
  328. package/dist/src/beta/components/Table/formatters/markdownFormatter.d.ts +3 -8
  329. package/dist/src/beta/components/Table/formatters/numberFormatter.d.ts +8 -27
  330. package/dist/src/beta/components/Table/formatters/percentFormatter.d.ts +4 -15
  331. package/dist/src/beta/components/Table/formatters/presets.d.ts +4 -12
  332. package/dist/src/beta/components/Table/formatters/timeFormatter.d.ts +7 -17
  333. package/dist/src/beta/components/Table/formatters/yearlessDateFormatter.d.ts +9 -21
  334. package/dist/src/beta/components/Table/internal/ResizeHandle.d.ts +5 -9
  335. package/dist/src/beta/components/Table/internal/TruncateChips.d.ts +2 -11
  336. package/dist/src/beta/components/Table/internal/getCommonPinningClasses.d.ts +2 -1
  337. package/dist/src/beta/components/Table/internal/getCommonPinningStyles.d.ts +6 -2
  338. package/dist/src/beta/components/Table/internal/scrollCellIntoView.d.ts +3 -7
  339. package/dist/src/beta/components/Table/internal/types.d.ts +2 -7
  340. package/dist/src/beta/components/Table/types.d.ts +183 -462
  341. package/dist/src/beta/components/Toolbar/Toolbar.d.ts +35 -267
  342. package/dist/src/beta/components/Toolbar/ToolbarButton.d.ts +5 -26
  343. package/dist/src/beta/components/Toolbar/ToolbarButtonLink.d.ts +5 -28
  344. package/dist/src/beta/components/Toolbar/ToolbarButtonToggle.d.ts +5 -27
  345. package/dist/src/beta/components/Toolbar/ToolbarControlGroup.d.ts +6 -8
  346. package/dist/src/beta/components/Toolbar/ToolbarSearchField.d.ts +3 -14
  347. package/dist/src/beta/components/Toolbar/ToolbarSelect.d.ts +13 -65
  348. package/dist/src/beta/components/Toolbar/internal/ToolbarContext.d.ts +0 -32
  349. package/dist/src/beta/components/Toolbar/internal/ToolbarItemOverflowContext.d.ts +0 -13
  350. package/dist/src/beta/components/Toolbar/internal/ToolbarItemWrapper.d.ts +2 -28
  351. package/dist/src/beta/components/Toolbar/internal/ToolbarOverflowMenu.d.ts +4 -21
  352. package/dist/src/beta/components/Toolbar/internal/utils/accessibility.d.ts +7 -15
  353. package/dist/src/beta/components/Toolbar/types.d.ts +7 -26
  354. package/dist/src/beta/components/TreeSelectField/TreeSelectField.d.ts +2 -23
  355. package/dist/src/beta/components/TreeSelectField/TreeSelectFieldSync.d.ts +10 -46
  356. package/dist/src/beta/components/TreeSelectField/internal/TreeContent.d.ts +5 -21
  357. package/dist/src/beta/components/TreeSelectField/internal/TreePanel.d.ts +1 -38
  358. package/dist/src/beta/components/TreeSelectField/internal/TreeRow.d.ts +6 -38
  359. package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +2 -50
  360. package/dist/src/beta/components/TreeSelectField/internal/VirtualizedTreePanel.d.ts +2 -39
  361. package/dist/src/beta/components/TreeSelectField/internal/treeSync.d.ts +6 -21
  362. package/dist/src/beta/components/TreeSelectField/internal/treeUtils.d.ts +3 -19
  363. package/dist/src/beta/components/TreeSelectField/internal/useTree.d.ts +9 -50
  364. package/dist/src/beta/components/TreeSelectField/internal/useTreeCascade.d.ts +8 -79
  365. package/dist/src/beta/components/TreeSelectField/internal/useTreeKeyboard.d.ts +3 -29
  366. package/dist/src/beta/components/TreeSelectField/internal/useTreeLazyCascade.d.ts +8 -36
  367. package/dist/src/beta/components/TreeSelectField/internal/useTreeLoader.d.ts +10 -34
  368. package/dist/src/beta/components/TreeSelectField/parts.d.ts +3 -9
  369. package/dist/src/beta/components/TreeSelectField/types.d.ts +82 -68
  370. package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenu.d.ts +4 -18
  371. package/dist/src/beta/components/TreeSelectMenu/TreeSelectMenuSync.d.ts +9 -47
  372. package/dist/src/beta/components/TreeSelectMenu/parts.d.ts +4 -4
  373. package/dist/src/beta/components/TreeSelectMenu/types.d.ts +44 -54
  374. package/dist/src/beta/components/TypeaheadTextField/TypeaheadTextField.d.ts +15 -43
  375. package/dist/src/beta/components/TypeaheadTextField/internal/SuggestionItem.d.ts +1 -18
  376. package/dist/src/beta/hooks/useAdaptiveView/useAdaptiveView.d.ts +6 -41
  377. package/dist/src/integration-testing/stepper-panel-flicker.spec.d.ts +1 -0
  378. package/dist/{stripInlineMarkdown-DmU2adBb.js → stripInlineMarkdown-CcwDEdw0.js} +2 -2
  379. package/dist/{stripInlineMarkdown-DmU2adBb.js.map → stripInlineMarkdown-CcwDEdw0.js.map} +1 -1
  380. package/dist/{syncFilterUtils-CP4dhWVs.js → syncFilterUtils-ubEYuRGQ.js} +4 -4
  381. package/dist/{syncFilterUtils-CP4dhWVs.js.map → syncFilterUtils-ubEYuRGQ.js.map} +1 -1
  382. package/dist/{treeSync-CDrgjuw8.js → treeSync-CkjyJSVq.js} +5 -11
  383. package/dist/treeSync-CkjyJSVq.js.map +1 -0
  384. package/dist/{use-reduced-motion-CqjZZ5QB.js → use-reduced-motion-yYB9Tb0D.js} +2 -2
  385. package/dist/use-reduced-motion-yYB9Tb0D.js.map +1 -0
  386. package/dist/{useDrilldown-DV4qyVOI.js → useDrilldown-DOXav1An.js} +3 -3
  387. package/dist/{useDrilldown-DV4qyVOI.js.map → useDrilldown-DOXav1An.js.map} +1 -1
  388. package/dist/{useInfiniteCombobox-DvyQpdwv.js → useInfiniteCombobox-15_SoeWw.js} +4 -4
  389. package/dist/{useInfiniteCombobox-DvyQpdwv.js.map → useInfiniteCombobox-15_SoeWw.js.map} +1 -1
  390. package/dist/{useInvalidateOnOptionsChange-D3KWg4qK.js → useInvalidateOnOptionsChange-DiRbyJFp.js} +4 -4
  391. package/dist/useInvalidateOnOptionsChange-DiRbyJFp.js.map +1 -0
  392. package/package.json +22 -20
  393. package/dist/Button-Dwh_Nd4l.js.map +0 -1
  394. package/dist/Calendar-BUFPc5UN.js.map +0 -1
  395. package/dist/Calendar-CEf7ke8X.js.map +0 -1
  396. package/dist/DataTable-DbuXfDNJ.js.map +0 -1
  397. package/dist/Details-oM-nR4ju.js.map +0 -1
  398. package/dist/FilterBar-CKYf-1oU.js.map +0 -1
  399. package/dist/InteractiveCard-C0g5PxB6.js.map +0 -1
  400. package/dist/Page-B2HZzNGP.js.map +0 -1
  401. package/dist/RichTextEditor-TcZUnqcp.js.map +0 -1
  402. package/dist/SavedFiltersButton-B8lf3L2T.js.map +0 -1
  403. package/dist/Tab-mXEQ0ifM.js.map +0 -1
  404. package/dist/Toolbar-B_lHD0c2.js.map +0 -1
  405. package/dist/ToolbarButtonToggle-BMBmBdw1.js.map +0 -1
  406. package/dist/TreeSelectFieldSync-CKnFwROC.js.map +0 -1
  407. package/dist/TreeSelectMenuSync-CK-x2_ne.js.map +0 -1
  408. package/dist/TypeaheadTextField-DqnUGXj0.js.map +0 -1
  409. package/dist/filter-state-DW8YmRHb.js.map +0 -1
  410. package/dist/index-Cw2HFh0a.js.map +0 -1
  411. package/dist/proxy-DEehATlA.js.map +0 -1
  412. package/dist/treeSync-CDrgjuw8.js.map +0 -1
  413. package/dist/use-reduced-motion-CqjZZ5QB.js.map +0 -1
  414. package/dist/useInvalidateOnOptionsChange-D3KWg4qK.js.map +0 -1
@@ -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-dONmlARH.js';
8
+ import { T as Text } from './Text-B_-Ldn9K.js';
9
9
  import { A as Avatar } from './Avatar-Ba662b3z.js';
10
- import { C as Chip } from './Chip-B4G4zaP-.js';
10
+ import { C as Chip } from './Chip-DivZ3OuB.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-B1opfxxn.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-D3KWg4qK.js.map
441
+ //# sourceMappingURL=useInvalidateOnOptionsChange-DiRbyJFp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInvalidateOnOptionsChange-DiRbyJFp.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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/anvil2",
3
- "version": "3.15.0",
3
+ "version": "3.15.2",
4
4
  "type": "module",
5
5
  "types": "./dist/src/index.d.ts",
6
6
  "main": "./dist/index.js",
@@ -50,21 +50,21 @@
50
50
  "@servicetitan/anvil-fonts": ">=14",
51
51
  "@tanstack/react-table": "^8.21.3",
52
52
  "@tanstack/react-virtual": "^3.13.12",
53
- "@tiptap/core": "^3.27.3",
54
- "@tiptap/extension-drag-handle-react": "^3.27.3",
55
- "@tiptap/extension-file-handler": "^3.27.3",
56
- "@tiptap/extension-image": "^3.27.3",
57
- "@tiptap/extension-mention": "^3.27.3",
58
- "@tiptap/extension-placeholder": "^3.27.3",
59
- "@tiptap/extension-task-item": "^3.27.3",
60
- "@tiptap/extension-task-list": "^3.27.3",
61
- "@tiptap/extension-text-align": "^3.27.3",
62
- "@tiptap/extension-text-style": "^3.27.3",
63
- "@tiptap/extension-youtube": "^3.27.3",
64
- "@tiptap/markdown": "3.27.3",
65
- "@tiptap/pm": "^3.27.3",
66
- "@tiptap/react": "^3.27.3",
67
- "@tiptap/starter-kit": "^3.27.3",
53
+ "@tiptap/core": "^3.31.4",
54
+ "@tiptap/extension-drag-handle-react": "^3.31.4",
55
+ "@tiptap/extension-file-handler": "^3.31.4",
56
+ "@tiptap/extension-image": "^3.31.4",
57
+ "@tiptap/extension-mention": "^3.31.4",
58
+ "@tiptap/extension-placeholder": "^3.31.4",
59
+ "@tiptap/extension-task-item": "^3.31.4",
60
+ "@tiptap/extension-task-list": "^3.31.4",
61
+ "@tiptap/extension-text-align": "^3.31.4",
62
+ "@tiptap/extension-text-style": "^3.31.4",
63
+ "@tiptap/extension-youtube": "^3.31.4",
64
+ "@tiptap/markdown": "3.31.4",
65
+ "@tiptap/pm": "^3.31.4",
66
+ "@tiptap/react": "^3.31.4",
67
+ "@tiptap/starter-kit": "^3.31.4",
68
68
  "@types/big.js": "^6.2.2",
69
69
  "big.js": "^7.0.1",
70
70
  "classnames": "^2.5.1",
@@ -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",
@@ -127,7 +127,7 @@
127
127
  "vite": "6.4.2",
128
128
  "vitest": "^3.2.4",
129
129
  "vitest-axe": "^0.1.0",
130
- "@servicetitan/anvil2-illustrations": "1.3.3"
130
+ "@servicetitan/anvil2-illustrations": "1.3.4"
131
131
  },
132
132
  "scripts": {
133
133
  "dev": "vite build --watch",
@@ -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",