@servicetitan/anvil2 2.7.1 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/CHANGELOG.md +73 -1
  2. package/dist/{floating-ui.react-aKYfs-aw.js → AiMark-DR-w6Nbm.js} +767 -5
  3. package/dist/AiMark-DR-w6Nbm.js.map +1 -0
  4. package/dist/AiMark.css +260 -0
  5. package/dist/AiMark.d.ts +2 -0
  6. package/dist/AiMark.js +2 -0
  7. package/dist/AiMark.js.map +1 -0
  8. package/dist/{Alert-C_o2f78C.js → Alert-Dj61Bq8h.js} +27 -13
  9. package/dist/Alert-Dj61Bq8h.js.map +1 -0
  10. package/dist/Alert.css +23 -15
  11. package/dist/Alert.js +1 -1
  12. package/dist/{Announcement-CyrTvgP4.js → Announcement-B9zm-_1S.js} +2 -2
  13. package/dist/{Announcement-CyrTvgP4.js.map → Announcement-B9zm-_1S.js.map} +1 -1
  14. package/dist/Announcement.js +1 -1
  15. package/dist/{AnvilProvider-ClfmLl_6.js → AnvilProvider-DUPYyMc7.js} +2 -2
  16. package/dist/{AnvilProvider-ClfmLl_6.js.map → AnvilProvider-DUPYyMc7.js.map} +1 -1
  17. package/dist/AnvilProvider.js +1 -1
  18. package/dist/{Breadcrumbs-C_WK9Yul.js → Breadcrumbs-ojgYVZwe.js} +3 -3
  19. package/dist/{Breadcrumbs-C_WK9Yul.js.map → Breadcrumbs-ojgYVZwe.js.map} +1 -1
  20. package/dist/Breadcrumbs.js +1 -1
  21. package/dist/Button-BdrrhBTI.js +2185 -0
  22. package/dist/Button-BdrrhBTI.js.map +1 -0
  23. package/dist/Button.js +1 -1
  24. package/dist/{ButtonToggle-DaYJWso_.js → ButtonToggle-DaFQ3DBG.js} +2 -2
  25. package/dist/{ButtonToggle-DaYJWso_.js.map → ButtonToggle-DaFQ3DBG.js.map} +1 -1
  26. package/dist/ButtonToggle.js +1 -1
  27. package/dist/{Calendar-BTStJPV1.js → Calendar-Cka4unyi.js} +2 -2
  28. package/dist/{Calendar-BTStJPV1.js.map → Calendar-Cka4unyi.js.map} +1 -1
  29. package/dist/{Calendar-Frpv5rRY.js → Calendar-Dxl9QnfP.js} +3 -3
  30. package/dist/{Calendar-Frpv5rRY.js.map → Calendar-Dxl9QnfP.js.map} +1 -1
  31. package/dist/Calendar.js +2 -2
  32. package/dist/Card-wz71dEVA.js.map +1 -1
  33. package/dist/{Checkbox-Drgai_lS.js → Checkbox-B-XTVPbX.js} +24 -13
  34. package/dist/Checkbox-B-XTVPbX.js.map +1 -0
  35. package/dist/{Checkbox-CTZdZym4.js → Checkbox-Cw1-KFvq.js} +2 -2
  36. package/dist/{Checkbox-CTZdZym4.js.map → Checkbox-Cw1-KFvq.js.map} +1 -1
  37. package/dist/Checkbox.js +1 -1
  38. package/dist/{Chip-CVyEctAz.js → Chip-Ce0WGKAc.js} +42 -12
  39. package/dist/Chip-Ce0WGKAc.js.map +1 -0
  40. package/dist/Chip.css +44 -28
  41. package/dist/Chip.js +1 -1
  42. package/dist/{Combobox-BRtfrYyZ.js → Combobox-CNQUROyr.js} +4 -4
  43. package/dist/{Combobox-BRtfrYyZ.js.map → Combobox-CNQUROyr.js.map} +1 -1
  44. package/dist/Combobox.js +1 -1
  45. package/dist/{DataTable-BmVPjMMg.js → DataTable-BCV_mtSy.js} +572 -98
  46. package/dist/DataTable-BCV_mtSy.js.map +1 -0
  47. package/dist/DataTable.css +148 -103
  48. package/dist/{DateFieldRange-D9DtlkSQ.js → DateFieldRange-D2hnF50O.js} +6 -6
  49. package/dist/{DateFieldRange-D9DtlkSQ.js.map → DateFieldRange-D2hnF50O.js.map} +1 -1
  50. package/dist/DateFieldRange.js +1 -1
  51. package/dist/{DateFieldSingle-CkdeCUJv.js → DateFieldSingle-BuaB7RDr.js} +6 -6
  52. package/dist/{DateFieldSingle-CkdeCUJv.js.map → DateFieldSingle-BuaB7RDr.js.map} +1 -1
  53. package/dist/DateFieldSingle.js +1 -1
  54. package/dist/{DateFieldYearless-b81ZcYdp.js → DateFieldYearless-DLeMEutt.js} +22 -6
  55. package/dist/DateFieldYearless-DLeMEutt.js.map +1 -0
  56. package/dist/DateFieldYearless.js +1 -1
  57. package/dist/{DateFieldYearlessRange-ClAFzIDD.js → DateFieldYearlessRange-BfPuYKKC.js} +3 -3
  58. package/dist/DateFieldYearlessRange-BfPuYKKC.js.map +1 -0
  59. package/dist/DateFieldYearlessRange.js +1 -1
  60. package/dist/{DaysOfTheWeek-2Zeh79oR.js → DaysOfTheWeek-BW1T8sTU.js} +4 -4
  61. package/dist/{DaysOfTheWeek-2Zeh79oR.js.map → DaysOfTheWeek-BW1T8sTU.js.map} +1 -1
  62. package/dist/DaysOfTheWeek.js +1 -1
  63. package/dist/{Dialog-CloZWa1Q.js → Dialog-Cewu2pd_.js} +38 -10
  64. package/dist/Dialog-Cewu2pd_.js.map +1 -0
  65. package/dist/Dialog.js +1 -1
  66. package/dist/{DialogCancelButton-DQDMzGeT.js → DialogCancelButton-Czz4Wpse.js} +2 -2
  67. package/dist/{DialogCancelButton-DQDMzGeT.js.map → DialogCancelButton-Czz4Wpse.js.map} +1 -1
  68. package/dist/{Drawer-CfkoH081.js → Drawer-Cb5asXWf.js} +38 -10
  69. package/dist/Drawer-Cb5asXWf.js.map +1 -0
  70. package/dist/Drawer.js +1 -1
  71. package/dist/DrillDown.js +1 -1
  72. package/dist/DrillDown.module-C8VOhzaF.js.map +1 -1
  73. package/dist/{EditCard-CLN0GBN_.js → EditCard-DlJE3LXN.js} +3 -3
  74. package/dist/{EditCard-CLN0GBN_.js.map → EditCard-DlJE3LXN.js.map} +1 -1
  75. package/dist/EditCard.js +1 -1
  76. package/dist/FieldLabel-HO2VP-4B.js +180 -0
  77. package/dist/FieldLabel-HO2VP-4B.js.map +1 -0
  78. package/dist/FieldLabel.css +33 -73
  79. package/dist/FieldLabel.js +1 -1
  80. package/dist/{InputMask-CI4Q5UwG.js → InputMask-CLLTehFI.js} +3 -3
  81. package/dist/{InputMask-CI4Q5UwG.js.map → InputMask-CLLTehFI.js.map} +1 -1
  82. package/dist/InputMask.js +1 -1
  83. package/dist/{ListView-DAbBuss4.js → ListView-CPi-qG2w.js} +2 -2
  84. package/dist/{ListView-DAbBuss4.js.map → ListView-CPi-qG2w.js.map} +1 -1
  85. package/dist/ListView.js +1 -1
  86. package/dist/{Listbox-D_T55BFX.js → Listbox-Bp4hqIpH.js} +2 -2
  87. package/dist/{Listbox-D_T55BFX.js.map → Listbox-Bp4hqIpH.js.map} +1 -1
  88. package/dist/Listbox.js +1 -1
  89. package/dist/{Menu-CRoJYJ53.js → Menu-CCavGohP.js} +92 -95
  90. package/dist/Menu-CCavGohP.js.map +1 -0
  91. package/dist/Menu.js +1 -1
  92. package/dist/MultiSelectField.js +1 -1
  93. package/dist/{MultiSelectFieldSync-CSOitvtu.js → MultiSelectFieldSync-ChZCW4M9.js} +32 -19
  94. package/dist/MultiSelectFieldSync-ChZCW4M9.js.map +1 -0
  95. package/dist/MultiSelectMenu.js +1 -1
  96. package/dist/{MultiSelectMenuSync-62OeGmkz.js → MultiSelectMenuSync-7C1wW4oO.js} +3 -3
  97. package/dist/{MultiSelectMenuSync-62OeGmkz.js.map → MultiSelectMenuSync-7C1wW4oO.js.map} +1 -1
  98. package/dist/{NumberField-CHBXBMSj.js → NumberField-CZSTHBeO.js} +16 -5
  99. package/dist/NumberField-CZSTHBeO.js.map +1 -0
  100. package/dist/NumberField.js +1 -1
  101. package/dist/{Page-DtSjnBJL.js → Page-BHdvTlfE.js} +116 -63
  102. package/dist/Page-BHdvTlfE.js.map +1 -0
  103. package/dist/Page.css +76 -76
  104. package/dist/Page.js +1 -1
  105. package/dist/{Pagination-CbBte3GQ.js → Pagination-DecGSuW4.js} +5 -5
  106. package/dist/{Pagination-CbBte3GQ.js.map → Pagination-DecGSuW4.js.map} +1 -1
  107. package/dist/Pagination.js +1 -1
  108. package/dist/{Popover-Rha0q-Pv.js → Popover-BbqTZw-1.js} +4 -6
  109. package/dist/{Popover-Rha0q-Pv.js.map → Popover-BbqTZw-1.js.map} +1 -1
  110. package/dist/Popover.js +1 -1
  111. package/dist/{ProgressBar-DEaMqbM-.js → ProgressBar-CZcxkdX6.js} +2 -2
  112. package/dist/{ProgressBar-DEaMqbM-.js.map → ProgressBar-CZcxkdX6.js.map} +1 -1
  113. package/dist/ProgressBar.js +1 -1
  114. package/dist/{Radio-CCvu8mbI.js → Radio-BFr8AdHc.js} +2 -2
  115. package/dist/{Radio-CCvu8mbI.js.map → Radio-BFr8AdHc.js.map} +1 -1
  116. package/dist/{Radio-Bw2LDl9G.js → Radio-DJZVMCv0.js} +24 -13
  117. package/dist/Radio-DJZVMCv0.js.map +1 -0
  118. package/dist/Radio.js +1 -1
  119. package/dist/{SegmentedControl-BAi4pnFe.js → SegmentedControl-B9NWUF7s.js} +3 -3
  120. package/dist/{SegmentedControl-BAi4pnFe.js.map → SegmentedControl-B9NWUF7s.js.map} +1 -1
  121. package/dist/SegmentedControl.js +1 -1
  122. package/dist/{SelectCard-ZaAD0wR1.js → SelectCard-DVcWJRbX.js} +51 -24
  123. package/dist/SelectCard-DVcWJRbX.js.map +1 -0
  124. package/dist/SelectCard.js +1 -1
  125. package/dist/SelectField.js +1 -1
  126. package/dist/{SelectFieldLabel-EJCXA02B.js → SelectFieldLabel-kEBS8L4l.js} +5 -4
  127. package/dist/SelectFieldLabel-kEBS8L4l.js.map +1 -0
  128. package/dist/{SelectFieldSync-DA54WXOk.js → SelectFieldSync-o1Cp9UYC.js} +14 -14
  129. package/dist/SelectFieldSync-o1Cp9UYC.js.map +1 -0
  130. package/dist/SelectMenu.js +1 -1
  131. package/dist/{SelectMenuSync-BQaSTcaN.js → SelectMenuSync-DXrwecFt.js} +3 -3
  132. package/dist/{SelectMenuSync-BQaSTcaN.js.map → SelectMenuSync-DXrwecFt.js.map} +1 -1
  133. package/dist/{SelectOptions-D-DzWmKE.js → SelectOptions-Dy2OWqxn.js} +2 -2
  134. package/dist/{SelectOptions-D-DzWmKE.js.map → SelectOptions-Dy2OWqxn.js.map} +1 -1
  135. package/dist/{SelectTrigger-DWyRndmY.js → SelectTrigger-DhKYzEAr.js} +7 -5
  136. package/dist/SelectTrigger-DhKYzEAr.js.map +1 -0
  137. package/dist/SelectTrigger.js +1 -1
  138. package/dist/{SelectTriggerBase-B6aZd2a6.js → SelectTriggerBase-Ni8WqeUx.js} +76 -63
  139. package/dist/SelectTriggerBase-Ni8WqeUx.js.map +1 -0
  140. package/dist/SelectTriggerBase.css +83 -66
  141. package/dist/SelectTriggerBase.module-CKoq6qzX.js +38 -0
  142. package/dist/SelectTriggerBase.module-CKoq6qzX.js.map +1 -0
  143. package/dist/{SideNav-CxHemV3H.js → SideNav-CrxYExjh.js} +11 -11
  144. package/dist/{SideNav-CxHemV3H.js.map → SideNav-CrxYExjh.js.map} +1 -1
  145. package/dist/SideNav.css +72 -55
  146. package/dist/SideNav.js +1 -1
  147. package/dist/Skeleton.css +18 -12
  148. package/dist/Skeleton.js +24 -11
  149. package/dist/Skeleton.js.map +1 -1
  150. package/dist/{Stepper-CQUXV6P4.js → Stepper-Dt2xAXth.js} +3 -3
  151. package/dist/{Stepper-CQUXV6P4.js.map → Stepper-Dt2xAXth.js.map} +1 -1
  152. package/dist/Stepper.js +1 -1
  153. package/dist/{Switch-DpPHr3G3.js → Switch-C84MBChG.js} +14 -2
  154. package/dist/Switch-C84MBChG.js.map +1 -0
  155. package/dist/Switch.js +1 -1
  156. package/dist/{Tab-BGGNcz9S.js → Tab-BZpTCG0i.js} +3 -3
  157. package/dist/{Tab-BGGNcz9S.js.map → Tab-BZpTCG0i.js.map} +1 -1
  158. package/dist/Tab.js +1 -1
  159. package/dist/Table.js +1 -1
  160. package/dist/{Text-BJo4oMI2.js → Text-WiS8UZkY.js} +30 -12
  161. package/dist/Text-WiS8UZkY.js.map +1 -0
  162. package/dist/Text.css +37 -20
  163. package/dist/Text.js +1 -1
  164. package/dist/{TextField-o8zvVFDk.js → TextField-Bul_uln5.js} +21 -5
  165. package/dist/TextField-Bul_uln5.js.map +1 -0
  166. package/dist/{TextField-CMv9CpBq.js → TextField-OznkTx4e.js} +2 -2
  167. package/dist/{TextField-CMv9CpBq.js.map → TextField-OznkTx4e.js.map} +1 -1
  168. package/dist/TextField.js +1 -1
  169. package/dist/{Textarea-B4bBvO8c.js → Textarea-CCYLsJ1x.js} +21 -5
  170. package/dist/Textarea-CCYLsJ1x.js.map +1 -0
  171. package/dist/Textarea.js +1 -1
  172. package/dist/{TimeField-BEgnjk4R.js → TimeField-BPvPbD8H.js} +6 -5
  173. package/dist/{TimeField-BEgnjk4R.js.map → TimeField-BPvPbD8H.js.map} +1 -1
  174. package/dist/TimeField.js +1 -1
  175. package/dist/Toast.js +2 -2
  176. package/dist/{Toaster-B38WlKC7.js → Toaster-CIaIvwH6.js} +2 -2
  177. package/dist/{Toaster-B38WlKC7.js.map → Toaster-CIaIvwH6.js.map} +1 -1
  178. package/dist/{Toaster-6_LVKok2.js → Toaster-DYJm06Vb.js} +5 -5
  179. package/dist/Toaster-DYJm06Vb.js.map +1 -0
  180. package/dist/{Toolbar-0EKhrvZN.js → Toolbar-ByyI7SqG.js} +15 -15
  181. package/dist/{Toolbar-0EKhrvZN.js.map → Toolbar-ByyI7SqG.js.map} +1 -1
  182. package/dist/Toolbar.js +1 -1
  183. package/dist/{Tooltip-BHwSTwsv.js → Tooltip-C1PBRnJv.js} +2 -3
  184. package/dist/{Tooltip-BHwSTwsv.js.map → Tooltip-C1PBRnJv.js.map} +1 -1
  185. package/dist/Tooltip.js +1 -1
  186. package/dist/{YearlessDateInputWithPicker-BC4lRuny.js → YearlessDateInputWithPicker-C_twiQW5.js} +2 -3
  187. package/dist/{YearlessDateInputWithPicker-BC4lRuny.js.map → YearlessDateInputWithPicker-C_twiQW5.js.map} +1 -1
  188. package/dist/assets/icons/st/ai_mark_gradient.svg +1 -1
  189. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +1 -1
  190. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldInput.d.ts +3 -2
  191. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +1 -1
  192. package/dist/beta/components/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +3 -2
  193. package/dist/beta/components/MultiSelectField/internal/types.d.ts +4 -3
  194. package/dist/beta/components/MultiSelectField/types.d.ts +28 -7
  195. package/dist/beta/components/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  196. package/dist/beta/components/SelectField/internal/SelectFieldLabel.d.ts +4 -4
  197. package/dist/beta/components/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  198. package/dist/beta/components/SelectField/types.d.ts +5 -5
  199. package/dist/beta/components/Table/DataTable/DataTable.d.ts +8 -5
  200. package/dist/beta/components/Table/DataTable/internal/DataTableFooter.d.ts +5 -5
  201. package/dist/beta/components/Table/DataTable/internal/cells/DataTableHeaderCell.d.ts +4 -4
  202. package/dist/beta/components/Table/DataTable/internal/usePageDataCache.d.ts +29 -0
  203. package/dist/beta/components/Table/DataTable/internal/util/getTanStackColumnDef.d.ts +13 -2
  204. package/dist/beta/components/Table/DataTable/types.d.ts +30 -0
  205. package/dist/beta/components/Table/base/cells/TableHeaderCell.d.ts +4 -0
  206. package/dist/beta/components/Table/createColumnHelper.d.ts +17 -10
  207. package/dist/beta/components/Table/formatters/htmlFormatter.d.ts +13 -0
  208. package/dist/beta/components/Table/formatters/htmlToMarkdown.d.ts +11 -0
  209. package/dist/beta/components/Table/formatters/index.d.ts +2 -0
  210. package/dist/beta/components/Table/formatters/markdownFormatter.d.ts +11 -0
  211. package/dist/beta/components/Table/types.d.ts +41 -8
  212. package/dist/beta/components/Toolbar/Toolbar.d.ts +10 -6
  213. package/dist/beta/components/Toolbar/ToolbarSelect.d.ts +5 -3
  214. package/dist/beta.js +9 -9
  215. package/dist/components/AiMark/AiMark.d.ts +87 -0
  216. package/dist/components/AiMark/index.d.ts +1 -0
  217. package/dist/components/AiMark/internal/AiMarkIconAnimated.d.ts +30 -0
  218. package/dist/components/AiMark/internal/AiMarkInteractive.d.ts +10 -0
  219. package/dist/components/AiMark/stories/aiMarkStoryArgTypes.d.ts +16 -0
  220. package/dist/components/Alert/Alert.d.ts +12 -0
  221. package/dist/components/Button/Button.d.ts +14 -6
  222. package/dist/components/Button/internal/buttonAiMarkUtils.d.ts +18 -0
  223. package/dist/components/Button/internal/index.d.ts +1 -0
  224. package/dist/components/Card/Card.d.ts +6 -1
  225. package/dist/components/Checkbox/Checkbox.d.ts +2 -0
  226. package/dist/components/Checkbox/CheckboxGroup.d.ts +27 -6
  227. package/dist/components/Chip/Chip.d.ts +10 -1
  228. package/dist/components/Chip/internal/Chip.d.ts +4 -0
  229. package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
  230. package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
  231. package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
  232. package/dist/components/DateFieldYearless/DateFieldYearless.d.ts +8 -1
  233. package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
  234. package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
  235. package/dist/components/DateFieldYearlessRange/DateFieldYearlessRange.d.ts +7 -0
  236. package/dist/components/DrillDown/internal/DrillDownContext.d.ts +4 -0
  237. package/dist/components/DrillDown/internal/useDrillDownContextState.d.ts +4 -0
  238. package/dist/components/FieldLabel/FieldLabel.d.ts +2 -1
  239. package/dist/components/FieldLabel/internal/FieldLabelButton.d.ts +3 -2
  240. package/dist/components/NumberField/NumberField.d.ts +29 -2
  241. package/dist/components/Radio/Radio.d.ts +2 -0
  242. package/dist/components/Radio/RadioGroup.d.ts +27 -6
  243. package/dist/components/SelectCard/SelectCard.d.ts +1 -1
  244. package/dist/components/SelectCard/SelectCardGroup.d.ts +18 -1
  245. package/dist/components/SelectCard/internal/SelectCardContext.d.ts +11 -0
  246. package/dist/components/SelectCard/internal/SelectCardProvider.d.ts +11 -1
  247. package/dist/components/Skeleton/SkeletonCircle.d.ts +8 -0
  248. package/dist/components/Skeleton/SkeletonPill.d.ts +8 -0
  249. package/dist/components/Skeleton/SkeletonRectangle.d.ts +8 -0
  250. package/dist/components/Skeleton/SkeletonText.d.ts +6 -1
  251. package/dist/components/Skeleton/index.d.ts +3 -0
  252. package/dist/components/Switch/Switch.d.ts +11 -1
  253. package/dist/components/Text/types.d.ts +9 -0
  254. package/dist/components/TextField/internal/TextField.d.ts +11 -0
  255. package/dist/components/Textarea/Textarea.d.ts +9 -2
  256. package/dist/components/Toast/internal/Toast.d.ts +5 -0
  257. package/dist/components/Toast/toast.d.ts +1 -1
  258. package/dist/components/Toolbar/Toolbar.d.ts +5 -3
  259. package/dist/components/Toolbar/ToolbarSelect.d.ts +5 -3
  260. package/dist/components/index.d.ts +1 -0
  261. package/dist/{floating-ui.react-dom-imrk9N49.js → floating-ui.react-dom-CHrYz13o.js} +17 -2
  262. package/dist/floating-ui.react-dom-CHrYz13o.js.map +1 -0
  263. package/dist/hooks/index.d.ts +1 -0
  264. package/dist/hooks/usePrefersReducedMotion/index.d.ts +1 -0
  265. package/dist/hooks/usePrefersReducedMotion/usePrefersReducedMotion.d.ts +15 -0
  266. package/dist/index.js +48 -47
  267. package/dist/index.js.map +1 -1
  268. package/dist/internal/components/InlineMarkdown/InlineMarkdown.d.ts +23 -0
  269. package/dist/internal/components/InlineMarkdown/index.d.ts +1 -0
  270. package/dist/internal/components/Label/Label.d.ts +1 -1
  271. package/dist/internal/components/Popover/Popover.d.ts +3 -1
  272. package/dist/internal/components/index.d.ts +2 -1
  273. package/dist/internal/flubber/a2c.d.ts +16 -0
  274. package/dist/internal/flubber/add.d.ts +3 -0
  275. package/dist/internal/flubber/arc.d.ts +26 -0
  276. package/dist/internal/flubber/bezier.d.ts +32 -0
  277. package/dist/internal/flubber/errors.d.ts +5 -0
  278. package/dist/internal/flubber/index.d.ts +6 -0
  279. package/dist/internal/flubber/interpolate.d.ts +7 -0
  280. package/dist/internal/flubber/linear.d.ts +27 -0
  281. package/dist/internal/flubber/math.d.ts +10 -0
  282. package/dist/internal/flubber/normalize.d.ts +4 -0
  283. package/dist/internal/flubber/parse.d.ts +7 -0
  284. package/dist/internal/flubber/path-properties.d.ts +23 -0
  285. package/dist/internal/flubber/rotate.d.ts +2 -0
  286. package/dist/internal/flubber/svg.d.ts +9 -0
  287. package/dist/internal/functions/index.d.ts +2 -0
  288. package/dist/internal/functions/inlineMarkdown.d.ts +20 -0
  289. package/dist/internal/functions/stripInlineMarkdown.d.ts +8 -0
  290. package/dist/internal/index.d.ts +1 -0
  291. package/dist/internal/types/props.d.ts +2 -1
  292. package/dist/internal/types/selectFieldInternalTypes.d.ts +2 -2
  293. package/dist/internal/utils/index.d.ts +1 -0
  294. package/dist/internal/utils/inlineMarkdownRegex.d.ts +5 -0
  295. package/dist/{proxy-BbFHSE6L.js → proxy-DEehATlA.js} +8 -2
  296. package/dist/{proxy-BbFHSE6L.js.map → proxy-DEehATlA.js.map} +1 -1
  297. package/dist/stripInlineMarkdown-Cg1qlNwL.js +25 -0
  298. package/dist/stripInlineMarkdown-Cg1qlNwL.js.map +1 -0
  299. package/dist/{syncFilterUtils-B03Pc941.js → syncFilterUtils-UR5Vgqkh.js} +8 -9
  300. package/dist/{syncFilterUtils-B03Pc941.js.map → syncFilterUtils-UR5Vgqkh.js.map} +1 -1
  301. package/dist/types/ai-marks.d.ts +72 -0
  302. package/dist/types/index.d.ts +1 -0
  303. package/dist/{use-reduced-motion-DSpxmqyT.js → use-reduced-motion-CqjZZ5QB.js} +2 -2
  304. package/dist/{use-reduced-motion-DSpxmqyT.js.map → use-reduced-motion-CqjZZ5QB.js.map} +1 -1
  305. package/dist/{useDrilldown-BW2XkUcK.js → useDrilldown-D6VZNSCX.js} +46 -20
  306. package/dist/{useDrilldown-BW2XkUcK.js.map → useDrilldown-D6VZNSCX.js.map} +1 -1
  307. package/dist/{useInitialFocus-BRRbylek.js → useInitialFocus-BUxEDMEG.js} +65 -24
  308. package/dist/useInitialFocus-BUxEDMEG.js.map +1 -0
  309. package/dist/{index.esm-K9kxJhLx.js → usePopoverTransitionStates-CDXCdyKa.js} +88 -2
  310. package/dist/usePopoverTransitionStates-CDXCdyKa.js.map +1 -0
  311. package/dist/usePrefersReducedMotion-DR9B_D6w.js +37 -0
  312. package/dist/usePrefersReducedMotion-DR9B_D6w.js.map +1 -0
  313. package/dist/usePrefersReducedMotion.d.ts +2 -0
  314. package/dist/usePrefersReducedMotion.js +2 -0
  315. package/dist/usePrefersReducedMotion.js.map +1 -0
  316. package/dist/{useToggleSelection-Dip0eimQ.js → useToggleSelection-BBdrIVWs.js} +2 -2
  317. package/dist/{useToggleSelection-Dip0eimQ.js.map → useToggleSelection-BBdrIVWs.js.map} +1 -1
  318. package/package.json +2 -2
  319. package/dist/Alert-C_o2f78C.js.map +0 -1
  320. package/dist/Button-CVsGhVJz.js +0 -113
  321. package/dist/Button-CVsGhVJz.js.map +0 -1
  322. package/dist/Checkbox-Drgai_lS.js.map +0 -1
  323. package/dist/Chip-CVyEctAz.js.map +0 -1
  324. package/dist/DataTable-BmVPjMMg.js.map +0 -1
  325. package/dist/DateFieldYearless-b81ZcYdp.js.map +0 -1
  326. package/dist/DateFieldYearlessRange-ClAFzIDD.js.map +0 -1
  327. package/dist/Dialog-CloZWa1Q.js.map +0 -1
  328. package/dist/Drawer-CfkoH081.js.map +0 -1
  329. package/dist/FieldLabel-CQ5QGTVq.js +0 -125
  330. package/dist/FieldLabel-CQ5QGTVq.js.map +0 -1
  331. package/dist/Menu-CRoJYJ53.js.map +0 -1
  332. package/dist/MultiSelectFieldSync-CSOitvtu.js.map +0 -1
  333. package/dist/NumberField-CHBXBMSj.js.map +0 -1
  334. package/dist/Page-DtSjnBJL.js.map +0 -1
  335. package/dist/Popover-CQhLSNYR.js +0 -537
  336. package/dist/Popover-CQhLSNYR.js.map +0 -1
  337. package/dist/Popover2.css +0 -68
  338. package/dist/Radio-Bw2LDl9G.js.map +0 -1
  339. package/dist/SelectCard-ZaAD0wR1.js.map +0 -1
  340. package/dist/SelectFieldLabel-EJCXA02B.js.map +0 -1
  341. package/dist/SelectFieldSync-DA54WXOk.js.map +0 -1
  342. package/dist/SelectTrigger-DWyRndmY.js.map +0 -1
  343. package/dist/SelectTriggerBase-B6aZd2a6.js.map +0 -1
  344. package/dist/SelectTriggerBase.module-B0NFRlQP.js +0 -36
  345. package/dist/SelectTriggerBase.module-B0NFRlQP.js.map +0 -1
  346. package/dist/Switch-DpPHr3G3.js.map +0 -1
  347. package/dist/Text-BJo4oMI2.js.map +0 -1
  348. package/dist/TextField-o8zvVFDk.js.map +0 -1
  349. package/dist/Textarea-B4bBvO8c.js.map +0 -1
  350. package/dist/Toaster-6_LVKok2.js.map +0 -1
  351. package/dist/floating-ui.react-aKYfs-aw.js.map +0 -1
  352. package/dist/floating-ui.react-dom-imrk9N49.js.map +0 -1
  353. package/dist/index.esm-K9kxJhLx.js.map +0 -1
  354. package/dist/safePopover-BDso-xSH.js +0 -17
  355. package/dist/safePopover-BDso-xSH.js.map +0 -1
  356. package/dist/useInitialFocus-BRRbylek.js.map +0 -1
  357. package/dist/useOpenCloseTransitionStates-CiTYrLGi.js +0 -68
  358. package/dist/useOpenCloseTransitionStates-CiTYrLGi.js.map +0 -1
  359. package/dist/usePopoverTransitionStates-CDIoNUuf.js +0 -24
  360. package/dist/usePopoverTransitionStates-CDIoNUuf.js.map +0 -1
  361. /package/dist/{anvil-fonts.css → AnvilProvider.css} +0 -0
@@ -1,8 +1,40 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
1
2
  import * as React from 'react';
2
- import { useLayoutEffect, useEffect, useRef } from 'react';
3
- import { i as isShadowRoot, a as isHTMLElement, u as useFloating$1, b as isElement, g as getWindow, c as getOverflowAncestors, d as isWebKit, e as isLastTraversableNode, f as getParentNode, h as getComputedStyle, j as getNodeName } from './floating-ui.react-dom-imrk9N49.js';
4
- import { t as tabbable, i as isTabbable } from './index.esm-K9kxJhLx.js';
3
+ import { forwardRef, useLayoutEffect, useEffect, useRef, createContext, useContext, useCallback, useId as useId$1, useImperativeHandle, useMemo, useState } from 'react';
4
+ import { I as Icon } from './Icon-DuIlne4x.js';
5
+ import { c as cx } from './index-De1g9FRV.js';
6
+ import { L as Link } from './Link-jTvzyXca.js';
7
+ import { T as Tooltip } from './Tooltip-C1PBRnJv.js';
8
+ import { B as Button, A as AiMarkIconAnimated } from './Button-BdrrhBTI.js';
9
+ import { i as isShadowRoot, h as isHTMLElement, u as useFloating$1, j as isElement, k as getWindow, m as getOverflowAncestors, n as isWebKit, p as isLastTraversableNode, q as getParentNode, r as getComputedStyle, t as getNodeName, s as safeShowPopover, b as safeHidePopover, a as autoUpdate, o as offset, g as size, v as autoPlacement, f as flip, d as shift, e as arrow$1, l as limitShift } from './floating-ui.react-dom-CHrYz13o.js';
10
+ import { t as tabbable, i as isTabbable, a as usePopoverTransitionStates } from './usePopoverTransitionStates-CDXCdyKa.js';
5
11
  import 'react-dom';
12
+ import { useTrackingId } from './useTrackingId.js';
13
+ import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
14
+ import { u as useMergeRefs$1 } from './useMergeRefs-Dfmtq9cI.js';
15
+ import { D as DialogContext } from './DialogContext-DBgtApl9.js';
16
+ import { u as useOptionallyControlledState } from './useOptionallyControlledState-DbDuos5L.js';
17
+
18
+ import './AiMark.css';const SvgAiMark = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { d: "m10.5 4.5 2.387 6.614 6.613 2.385-6.613 2.387-2.388 6.614-2.386-6.613L1.5 13.499l6.613-2.386zm7.5-3 1.193 3.307L22.5 6l-3.307 1.193L18 10.5l-1.193-3.307L13.5 6l3.307-1.193z" }));
19
+
20
+ const SvgAiMarkGradient = (props) => /* @__PURE__ */ React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: 24, height: 24, fill: "none", viewBox: "0 0 24 24", ...props }, /* @__PURE__ */ React.createElement("path", { fill: "url(#a)", d: "m10.5 4.5 2.387 6.614 6.613 2.385-6.613 2.387-2.388 6.614-2.386-6.613L1.5 13.499l6.613-2.386z" }), /* @__PURE__ */ React.createElement("path", { fill: "url(#b)", d: "m18 1.5 1.193 3.307L22.5 6l-3.307 1.193L18 10.5l-1.193-3.307L13.5 6l3.307-1.193z" }), /* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement("linearGradient", { id: "a", x1: 19.5, x2: 3.604, y1: 14.583, y2: 20.367, gradientUnits: "userSpaceOnUse" }, /* @__PURE__ */ React.createElement("stop", { stopColor: "light-dark(#026EE4, #77C5EA)" }), /* @__PURE__ */ React.createElement("stop", { offset: 1, stopColor: "light-dark(#27AEEE, #D0D8E1)" })), /* @__PURE__ */ React.createElement("linearGradient", { id: "b", x1: 22.5, x2: 14.552, y1: 6.542, y2: 9.433, gradientUnits: "userSpaceOnUse" }, /* @__PURE__ */ React.createElement("stop", { stopColor: "light-dark(#026EE4, #77C5EA)" }), /* @__PURE__ */ React.createElement("stop", { offset: 1, stopColor: "light-dark(#27AEEE, #D0D8E1)" }))));
21
+
22
+ const fieldLabelButtonStyles = {
23
+ "field-label-button": "_field-label-button_l6rj1_2",
24
+ "field-label-button__inner": "_field-label-button__inner_l6rj1_36",
25
+ "field-label-button-scaled": "_field-label-button-scaled_l6rj1_51"};
26
+
27
+ const FieldLabelButton = forwardRef(({ className, children, ...props }, ref) => /* @__PURE__ */ jsx(
28
+ "button",
29
+ {
30
+ ref,
31
+ type: "button",
32
+ className: cx(fieldLabelButtonStyles["field-label-button"], className),
33
+ ...props,
34
+ children: /* @__PURE__ */ jsx("span", { className: fieldLabelButtonStyles["field-label-button__inner"], children })
35
+ }
36
+ ));
37
+ FieldLabelButton.displayName = "FieldLabelButton";
6
38
 
7
39
  function activeElement(doc) {
8
40
  let activeElement = doc.activeElement;
@@ -2370,5 +2402,735 @@ function safePolygon(options) {
2370
2402
  return fn;
2371
2403
  }
2372
2404
 
2373
- export { FloatingFocusManager as F, useFloating as a, useRole as b, useHover as c, useFocus as d, useClick as e, useDismiss as f, useInteractions as g, safePolygon as s, useMergeRefs as u };
2374
- //# sourceMappingURL=floating-ui.react-aKYfs-aw.js.map
2405
+ const PopoverContext = createContext(null);
2406
+
2407
+ function usePopoverContext() {
2408
+ const context = useContext(PopoverContext);
2409
+ if (!context) {
2410
+ throw new Error(
2411
+ "Popover compound components must be used within a <Popover> component."
2412
+ );
2413
+ }
2414
+ return context;
2415
+ }
2416
+
2417
+ const PopoverClose = forwardRef(
2418
+ function PopoverClose2(props, ref) {
2419
+ const { onClick, ...rest } = props;
2420
+ const { closePopover } = usePopoverContext();
2421
+ const trackingId = useTrackingId({
2422
+ name: "PopoverClose",
2423
+ data: { children: childrenToString(props.children) },
2424
+ hasOverride: !!props["data-tracking-id"]
2425
+ });
2426
+ const handleClick = useCallback(
2427
+ (event) => {
2428
+ closePopover();
2429
+ onClick?.(event);
2430
+ },
2431
+ [closePopover, onClick]
2432
+ );
2433
+ return /* @__PURE__ */ jsx(
2434
+ Button,
2435
+ {
2436
+ ref,
2437
+ "data-tracking-id": trackingId,
2438
+ "data-anv": "popover-close",
2439
+ ...rest,
2440
+ onClick: handleClick
2441
+ }
2442
+ );
2443
+ }
2444
+ );
2445
+ PopoverClose.displayName = "PopoverClose";
2446
+
2447
+ const PopoverButton = forwardRef(
2448
+ function PopoverButton2(props, ref) {
2449
+ const { children, ...rest } = props;
2450
+ const { refs, getReferenceProps, openState, triggerId } = usePopoverContext();
2451
+ const trackingId = useTrackingId({
2452
+ name: "PopoverButton",
2453
+ data: {
2454
+ children: childrenToString(props.children),
2455
+ appearance: props.appearance,
2456
+ icon: props.icon,
2457
+ size: props.size,
2458
+ type: props.type
2459
+ },
2460
+ hasOverride: !!props["data-tracking-id"]
2461
+ });
2462
+ const buttonRef = useMergeRefs$1([refs.setReference, ref]);
2463
+ const buttonProps = {
2464
+ id: triggerId,
2465
+ "data-anv": "popover-button",
2466
+ "data-tracking-id": trackingId,
2467
+ "data-state": openState ? "open" : "closed",
2468
+ ...getReferenceProps(rest),
2469
+ children
2470
+ };
2471
+ return /* @__PURE__ */ jsx(Button, { ref: buttonRef, ...buttonProps });
2472
+ }
2473
+ );
2474
+ PopoverButton.displayName = "PopoverButton";
2475
+
2476
+ const content = "_content_yo27y_2";
2477
+ const scroller = "_scroller_yo27y_29";
2478
+ const arrow = "_arrow_yo27y_37";
2479
+ const styles$1 = {
2480
+ content: content,
2481
+ scroller: scroller,
2482
+ arrow: arrow,
2483
+ "no-padding": "_no-padding_yo27y_62"
2484
+ };
2485
+
2486
+ const PopoverContent = forwardRef(
2487
+ function PopoverContent2(props, ref) {
2488
+ const {
2489
+ children,
2490
+ className,
2491
+ style,
2492
+ onScroll,
2493
+ onScrollCapture,
2494
+ scrollerRef,
2495
+ hideWhileClosed = false,
2496
+ ...rest
2497
+ } = props;
2498
+ const {
2499
+ floatingContext,
2500
+ refs,
2501
+ floatingStyles,
2502
+ middlewareData,
2503
+ getFloatingProps,
2504
+ openState,
2505
+ actualPlacement,
2506
+ arrowRef,
2507
+ modal,
2508
+ openOnHover,
2509
+ noPadding,
2510
+ enableCaret,
2511
+ triggerId,
2512
+ role
2513
+ } = usePopoverContext();
2514
+ const scrollContainerRef = useRef(null);
2515
+ const mergedFloatingRef = useMergeRefs$1([refs.setFloating, ref]);
2516
+ const mergedScrollerRef = useMergeRefs$1([scrollContainerRef, scrollerRef]);
2517
+ const hasBeenOpenRef = useRef(false);
2518
+ useEffect(() => {
2519
+ if (openState) {
2520
+ hasBeenOpenRef.current = true;
2521
+ } else if (hasBeenOpenRef.current && !openOnHover) {
2522
+ const activeEl = document.activeElement;
2523
+ const floating = floatingContext.elements.floating;
2524
+ const shouldReturnFocus = role === "dialog" ? !activeEl || activeEl === document.body || floating?.contains(activeEl) : floating?.contains(activeEl);
2525
+ if (shouldReturnFocus) {
2526
+ floatingContext.elements.reference?.focus();
2527
+ }
2528
+ }
2529
+ }, [
2530
+ openState,
2531
+ openOnHover,
2532
+ floatingContext.elements.reference,
2533
+ floatingContext.elements.floating,
2534
+ role
2535
+ ]);
2536
+ useLayoutEffect(() => {
2537
+ if (openState && scrollContainerRef.current) {
2538
+ scrollContainerRef.current.scrollTop = 0;
2539
+ scrollContainerRef.current.scrollLeft = 0;
2540
+ }
2541
+ }, [openState]);
2542
+ const arrowX = middlewareData.arrow?.x ?? null;
2543
+ const arrowY = middlewareData.arrow?.y ?? null;
2544
+ const baseSide = actualPlacement.split("-")[0];
2545
+ const staticSide = { top: "bottom", right: "left", bottom: "top", left: "right" }[baseSide];
2546
+ const arrowDeg = staticSide === "top" ? 180 : staticSide === "bottom" ? 0 : staticSide === "left" ? 90 : 270;
2547
+ const arrowWidth = arrowRef.current?.offsetWidth ?? 14;
2548
+ const arrowStyle = {};
2549
+ if (arrowX != null) arrowStyle.left = `${arrowX}px`;
2550
+ if (arrowY != null) arrowStyle.top = `${arrowY}px`;
2551
+ arrowStyle[staticSide] = `${-arrowWidth + 2}px`;
2552
+ arrowStyle.transform = `rotate(${arrowDeg}deg)`;
2553
+ const referenceId = floatingContext.elements.reference?.id ?? triggerId;
2554
+ const defaultLabelProps = role === "dialog" && !("aria-label" in rest) && !("aria-labelledby" in rest) ? { "aria-labelledby": referenceId } : {};
2555
+ const tabIndexOverride = openOnHover ? { tabIndex: -1 } : {};
2556
+ const rawFloatingProps = getFloatingProps({
2557
+ ...defaultLabelProps,
2558
+ ...tabIndexOverride,
2559
+ ...rest
2560
+ });
2561
+ const { role: _suppressedRole, ...floatingPropsWithoutRole } = rawFloatingProps;
2562
+ const floatingProps = role === "dialog" ? rawFloatingProps : floatingPropsWithoutRole;
2563
+ const contentDiv = /* @__PURE__ */ jsxs(
2564
+ "div",
2565
+ {
2566
+ popover: "manual",
2567
+ "data-anv": "popover-content",
2568
+ className: cx(className, styles$1["content"], {
2569
+ [styles$1["no-padding"]]: noPadding
2570
+ }),
2571
+ ref: mergedFloatingRef,
2572
+ style: { ...floatingStyles, ...style },
2573
+ ...floatingProps,
2574
+ children: [
2575
+ /* @__PURE__ */ jsx(
2576
+ "div",
2577
+ {
2578
+ className: styles$1.scroller,
2579
+ role: "presentation",
2580
+ tabIndex: -1,
2581
+ ref: mergedScrollerRef,
2582
+ onScroll,
2583
+ onScrollCapture,
2584
+ children: hideWhileClosed ? openState ? children : null : children
2585
+ }
2586
+ ),
2587
+ enableCaret && /* @__PURE__ */ jsx("span", { className: styles$1["arrow"], ref: arrowRef, style: arrowStyle, children: /* @__PURE__ */ jsx("svg", { "aria-hidden": "true", width: "14", height: "14", viewBox: "0 0 14 14", children: /* @__PURE__ */ jsx("path", { stroke: "none", d: "M0,0 H14 L7,7 Q7,7 7,7 Z" }) }) })
2588
+ ]
2589
+ }
2590
+ );
2591
+ if (role !== "dialog") {
2592
+ return contentDiv;
2593
+ }
2594
+ return /* @__PURE__ */ jsx(
2595
+ FloatingFocusManager,
2596
+ {
2597
+ context: floatingContext,
2598
+ modal: modal ?? false,
2599
+ disabled: !openState || openOnHover,
2600
+ children: contentDiv
2601
+ }
2602
+ );
2603
+ }
2604
+ );
2605
+ PopoverContent.displayName = "PopoverContent";
2606
+
2607
+ function PopoverTrigger(props) {
2608
+ const { children } = props;
2609
+ const { refs, getReferenceProps, openState, triggerId } = usePopoverContext();
2610
+ return children({
2611
+ ...getReferenceProps({
2612
+ ref: refs.setReference
2613
+ }),
2614
+ id: triggerId,
2615
+ "data-state": openState ? "open" : "closed"
2616
+ });
2617
+ }
2618
+ PopoverTrigger.displayName = "PopoverTrigger";
2619
+
2620
+ const Popover = Object.assign(
2621
+ forwardRef(function PopoverInner(props, ref) {
2622
+ const {
2623
+ children,
2624
+ role: roleProp = "dialog",
2625
+ modal,
2626
+ open,
2627
+ defaultOpen = false,
2628
+ onClose,
2629
+ onClickOutside,
2630
+ openOnHover = false,
2631
+ delay = 100,
2632
+ enableCaret,
2633
+ noPadding,
2634
+ matchReferenceWidth,
2635
+ fixedWidth,
2636
+ fillAvailableHeight,
2637
+ maxHeight,
2638
+ fitScreen,
2639
+ minHeight = "2.875rem",
2640
+ disableCloseOnClickOutside,
2641
+ disableCloseOnEscape,
2642
+ onOpenAnimationStart,
2643
+ onOpenAnimationComplete,
2644
+ onCloseAnimationStart,
2645
+ onCloseAnimationComplete
2646
+ } = props;
2647
+ const isAuto = props.placement === "auto";
2648
+ const floatingPlacement = isAuto ? "bottom" : props.placement ?? "bottom";
2649
+ const allowedPlacements = isAuto ? props.placementConfig?.allowedPlacements : void 0;
2650
+ const fallbackPlacements = !isAuto ? props.placementConfig?.fallbackPlacements : void 0;
2651
+ const uid = useId$1();
2652
+ const cleanUid = uid.replace(/:/g, "");
2653
+ const triggerId = `popover-trigger-${cleanUid}`;
2654
+ const isControlled = typeof open !== "undefined";
2655
+ const arrowRef = useRef(null);
2656
+ const isPointerEventRef = useRef(false);
2657
+ const processMinHeight = typeof minHeight === "string" ? minHeight : `${minHeight}px`;
2658
+ const dialogContext = useContext(DialogContext);
2659
+ const [openState, setOpenState] = useOptionallyControlledState({
2660
+ controlledValue: open,
2661
+ defaultValue: defaultOpen
2662
+ });
2663
+ const openStateRef = useRef(openState);
2664
+ openStateRef.current = openState;
2665
+ useEffect(() => {
2666
+ if (!disableCloseOnClickOutside) return;
2667
+ if (roleProp !== "dialog") return;
2668
+ const setTrue = () => {
2669
+ isPointerEventRef.current = true;
2670
+ };
2671
+ const setFalse = () => {
2672
+ setTimeout(() => {
2673
+ isPointerEventRef.current = false;
2674
+ }, 0);
2675
+ };
2676
+ document.addEventListener("pointerdown", setTrue);
2677
+ document.addEventListener("pointerup", setFalse);
2678
+ return () => {
2679
+ document.removeEventListener("pointerdown", setTrue);
2680
+ document.removeEventListener("pointerup", setFalse);
2681
+ };
2682
+ }, [disableCloseOnClickOutside, roleProp]);
2683
+ const handleOpenChange = useCallback(
2684
+ (nextOpen) => {
2685
+ if (!nextOpen && disableCloseOnClickOutside && isPointerEventRef.current)
2686
+ return;
2687
+ if (!nextOpen && !openOnHover) onClose?.();
2688
+ setOpenState(nextOpen);
2689
+ },
2690
+ [openOnHover, onClose, setOpenState, disableCloseOnClickOutside]
2691
+ );
2692
+ const openPopover = useCallback(() => {
2693
+ setOpenState(true);
2694
+ }, [setOpenState]);
2695
+ const closePopover = useCallback(() => {
2696
+ if (!openStateRef.current) return;
2697
+ if (!openOnHover) onClose?.();
2698
+ setOpenState(false);
2699
+ }, [openOnHover, onClose, setOpenState]);
2700
+ const {
2701
+ refs,
2702
+ floatingStyles,
2703
+ context: floatingContext,
2704
+ placement: actualPlacement,
2705
+ middlewareData
2706
+ } = useFloating({
2707
+ open: openState,
2708
+ onOpenChange: handleOpenChange,
2709
+ placement: floatingPlacement,
2710
+ strategy: "absolute",
2711
+ middleware: [
2712
+ offset(8),
2713
+ size({
2714
+ padding: 5,
2715
+ apply({ rects, availableHeight, elements }) {
2716
+ Object.assign(elements.floating.style, {
2717
+ ...matchReferenceWidth ? { width: `${rects.reference.width}px` } : fixedWidth ? { width: "40dvw" } : {},
2718
+ ...fillAvailableHeight ? {
2719
+ height: `${availableHeight - 20}px`,
2720
+ minHeight: processMinHeight
2721
+ } : {},
2722
+ ...maxHeight ? {
2723
+ minHeight: processMinHeight,
2724
+ height: fitScreen ? typeof maxHeight === "string" ? maxHeight : `${maxHeight}px` : void 0,
2725
+ maxHeight: fitScreen ? `${availableHeight - 20}px` : typeof maxHeight === "string" ? maxHeight : `${maxHeight}px`
2726
+ } : {},
2727
+ ...fitScreen && !maxHeight ? {
2728
+ minHeight: processMinHeight,
2729
+ maxHeight: `${availableHeight - 20}px`
2730
+ } : {}
2731
+ });
2732
+ }
2733
+ }),
2734
+ isAuto ? autoPlacement({ allowedPlacements, padding: 5 }) : flip({
2735
+ crossAxis: false,
2736
+ fallbackAxisSideDirection: "none",
2737
+ fallbackPlacements,
2738
+ padding: 5
2739
+ }),
2740
+ shift({
2741
+ padding: 5,
2742
+ crossAxis: false,
2743
+ limiter: limitShift()
2744
+ }),
2745
+ arrow$1({ element: arrowRef, padding: 5 })
2746
+ ],
2747
+ whileElementsMounted: autoUpdate
2748
+ });
2749
+ const role = useRole(floatingContext, { role: roleProp });
2750
+ const hover = useHover(floatingContext, {
2751
+ enabled: openOnHover,
2752
+ delay: { open: delay, close: 100 },
2753
+ handleClose: safePolygon()
2754
+ });
2755
+ const focus = useFocus(floatingContext, { enabled: openOnHover });
2756
+ const click = useClick(floatingContext, {
2757
+ enabled: !openOnHover
2758
+ });
2759
+ const dismiss = useDismiss(floatingContext, {
2760
+ escapeKey: !disableCloseOnEscape,
2761
+ outsidePress: !disableCloseOnClickOutside ? (event) => {
2762
+ onClickOutside?.(event);
2763
+ return true;
2764
+ } : false
2765
+ });
2766
+ const { getReferenceProps, getFloatingProps } = useInteractions([
2767
+ role,
2768
+ hover,
2769
+ focus,
2770
+ click,
2771
+ dismiss
2772
+ ]);
2773
+ useEffect(() => {
2774
+ const floatingEl = refs.floating.current;
2775
+ if (!floatingEl) return;
2776
+ if (openState) {
2777
+ if (dialogContext) {
2778
+ if (dialogContext.ref?.current?.open) {
2779
+ safeShowPopover(floatingEl);
2780
+ dialogContext.setHasOpenPopover?.(true);
2781
+ }
2782
+ return;
2783
+ }
2784
+ safeShowPopover(floatingEl);
2785
+ } else {
2786
+ safeHidePopover(floatingEl);
2787
+ dialogContext?.setHasOpenPopover?.(false);
2788
+ }
2789
+ }, [openState, refs.floating, dialogContext]);
2790
+ usePopoverTransitionStates(refs.floating.current ?? void 0, openState, {
2791
+ onOpenAnimationStart,
2792
+ onOpenAnimationComplete,
2793
+ onCloseAnimationStart,
2794
+ onCloseAnimationComplete
2795
+ });
2796
+ useImperativeHandle(ref, () => ({ openPopover, closePopover }), [
2797
+ openPopover,
2798
+ closePopover
2799
+ ]);
2800
+ const value = useMemo(
2801
+ () => ({
2802
+ floatingContext,
2803
+ refs: {
2804
+ setReference: refs.setReference,
2805
+ setFloating: refs.setFloating
2806
+ },
2807
+ floatingStyles,
2808
+ middlewareData,
2809
+ getReferenceProps,
2810
+ getFloatingProps,
2811
+ triggerId,
2812
+ openState,
2813
+ openPopover,
2814
+ closePopover,
2815
+ controlled: isControlled,
2816
+ actualPlacement,
2817
+ arrowRef,
2818
+ modal,
2819
+ openOnHover,
2820
+ noPadding,
2821
+ enableCaret,
2822
+ role: roleProp
2823
+ }),
2824
+ [
2825
+ floatingContext,
2826
+ refs.setReference,
2827
+ refs.setFloating,
2828
+ floatingStyles,
2829
+ middlewareData,
2830
+ getReferenceProps,
2831
+ getFloatingProps,
2832
+ triggerId,
2833
+ openState,
2834
+ openPopover,
2835
+ closePopover,
2836
+ // stable — does not depend on openState (uses openStateRef)
2837
+ isControlled,
2838
+ actualPlacement,
2839
+ arrowRef,
2840
+ modal,
2841
+ openOnHover,
2842
+ noPadding,
2843
+ enableCaret,
2844
+ roleProp
2845
+ ]
2846
+ );
2847
+ return /* @__PURE__ */ jsx(PopoverContext.Provider, { value, children });
2848
+ }),
2849
+ {
2850
+ /**
2851
+ * PopoverTrigger component for creating custom trigger elements.
2852
+ *
2853
+ * Features:
2854
+ * - Render prop pattern for full control over the trigger element
2855
+ * - ARIA attributes and event handlers injected via getReferenceProps
2856
+ *
2857
+ * @example
2858
+ * <Popover.Trigger>
2859
+ * {(props) => (
2860
+ * <Button {...props}>
2861
+ * Click to open popover
2862
+ * </Button>
2863
+ * )}
2864
+ * </Popover.Trigger>
2865
+ */
2866
+ Trigger: PopoverTrigger,
2867
+ /**
2868
+ * PopoverContent component for the main popover content area.
2869
+ *
2870
+ * Features:
2871
+ * - HTML Popover API top-layer rendering (popover="manual")
2872
+ * - Floating UI positioning via refs.setFloating and floatingStyles
2873
+ * - FloatingFocusManager for focus trapping (modal) or Tab-out closing (non-modal)
2874
+ * - Arrow/caret indicator with position computed from middlewareData.arrow
2875
+ * - Scroll position reset when the popover opens
2876
+ * - Optional scrollerRef for external scroll access
2877
+ *
2878
+ * @example
2879
+ * <Popover.Content>
2880
+ * <p>Popover content</p>
2881
+ * <Popover.Close>Close</Popover.Close>
2882
+ * </Popover.Content>
2883
+ */
2884
+ Content: PopoverContent,
2885
+ /**
2886
+ * PopoverClose component for closing the popover.
2887
+ *
2888
+ * Features:
2889
+ * - Supports all Button component props and styling
2890
+ * - Closes the popover on click via closePopover
2891
+ * - Automatic tracking ID generation for analytics
2892
+ *
2893
+ * @example
2894
+ * <Popover.Close>Close</Popover.Close>
2895
+ *
2896
+ * @example
2897
+ * <Popover.Close appearance="secondary" size="small">
2898
+ * Cancel
2899
+ * </Popover.Close>
2900
+ */
2901
+ Close: PopoverClose,
2902
+ /**
2903
+ * PopoverButton component for creating button-style triggers.
2904
+ *
2905
+ * Features:
2906
+ * - Button styling and behavior with all Button props
2907
+ * - ARIA attributes and event handlers injected via getReferenceProps
2908
+ * - Automatic tracking ID generation for analytics
2909
+ *
2910
+ * @example
2911
+ * <Popover.Button>Click to open</Popover.Button>
2912
+ *
2913
+ * @example
2914
+ * <Popover.Button appearance="primary" size="large" icon={InfoIcon}>
2915
+ * Information
2916
+ * </Popover.Button>
2917
+ */
2918
+ Button: PopoverButton
2919
+ }
2920
+ );
2921
+ Popover.displayName = "Popover";
2922
+
2923
+ const container = "_container_1h61l_2";
2924
+ const small = "_small_1h61l_53";
2925
+ const medium = "_medium_1h61l_60";
2926
+ const large = "_large_1h61l_67";
2927
+ const xlarge = "_xlarge_1h61l_74";
2928
+ const styles = {
2929
+ container: container,
2930
+ "tooltip-trigger": "_tooltip-trigger_1h61l_17",
2931
+ "button-wrapper": "_button-wrapper_1h61l_27",
2932
+ "collapse-block": "_collapse-block_1h61l_34",
2933
+ "with-padding": "_with-padding_1h61l_34",
2934
+ "collapse-inline": "_collapse-inline_1h61l_37",
2935
+ small: small,
2936
+ medium: medium,
2937
+ large: large,
2938
+ xlarge: xlarge
2939
+ };
2940
+
2941
+ const DEFAULT_TOOLTIP_CONTENT = "AI can make mistakes.";
2942
+ const DEFAULT_PRIVACY_HREF = "https://www.servicetitan.com/legal/privacy-policy";
2943
+ function DefaultPopoverContent() {
2944
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
2945
+ DEFAULT_TOOLTIP_CONTENT,
2946
+ " ",
2947
+ /* @__PURE__ */ jsx(
2948
+ Link,
2949
+ {
2950
+ href: DEFAULT_PRIVACY_HREF,
2951
+ target: "_blank",
2952
+ rel: "noopener noreferrer",
2953
+ appearance: "secondary",
2954
+ children: "Learn more"
2955
+ }
2956
+ )
2957
+ ] });
2958
+ }
2959
+ const ICON_PIXEL_SIZES$1 = {
2960
+ small: 12,
2961
+ medium: 16,
2962
+ large: 24,
2963
+ xlarge: 32
2964
+ };
2965
+ const FIELD_LABEL_BUTTON_MIN_OUTER_PX = 28;
2966
+ function fieldLabelButtonDimensionsForIcon(iconPx) {
2967
+ const outerPx = Math.max(FIELD_LABEL_BUTTON_MIN_OUTER_PX, iconPx + 4);
2968
+ const innerPx = outerPx - 4;
2969
+ return { outerPx, innerPx };
2970
+ }
2971
+ function fieldLabelButtonScaleStyle(outerPx, innerPx) {
2972
+ return {
2973
+ "--field-label-button-outer": `${outerPx}px`,
2974
+ "--field-label-button-inner": `${innerPx}px`
2975
+ };
2976
+ }
2977
+ const AiMarkInteractive = ({
2978
+ config,
2979
+ size,
2980
+ inheritColor,
2981
+ containerClassName,
2982
+ forceAnimate = false
2983
+ }) => {
2984
+ const [isActive, setIsActive] = useState(false);
2985
+ const iconPixelSize = ICON_PIXEL_SIZES$1[size];
2986
+ const { outerPx, innerPx } = fieldLabelButtonDimensionsForIcon(iconPixelSize);
2987
+ const fieldLabelButtonScale = fieldLabelButtonScaleStyle(outerPx, innerPx);
2988
+ const animatedIcon = /* @__PURE__ */ jsx(
2989
+ AiMarkIconAnimated,
2990
+ {
2991
+ animate: forceAnimate || isActive,
2992
+ size: iconPixelSize,
2993
+ inheritColor
2994
+ }
2995
+ );
2996
+ const interactionHandlers = {
2997
+ onMouseEnter: () => setIsActive(true),
2998
+ onMouseLeave: () => setIsActive(false),
2999
+ onFocus: () => setIsActive(true),
3000
+ onBlur: () => setIsActive(false)
3001
+ };
3002
+ if (config.type === "popover") {
3003
+ const { content: content2, triggerLabel: triggerLabel2, props: props2, contentProps } = config;
3004
+ const popoverContent = content2 ?? /* @__PURE__ */ jsx(DefaultPopoverContent, {});
3005
+ return /* @__PURE__ */ jsx("div", { className: containerClassName, "data-anv": "ai-mark-interactive", children: /* @__PURE__ */ jsxs(Popover, { role: "dialog", ...props2, children: [
3006
+ /* @__PURE__ */ jsx(Popover.Trigger, { children: (triggerProps) => /* @__PURE__ */ jsx("span", { className: styles["button-wrapper"], tabIndex: -1, children: /* @__PURE__ */ jsx(
3007
+ FieldLabelButton,
3008
+ {
3009
+ ...triggerProps,
3010
+ "aria-label": triggerLabel2,
3011
+ className: fieldLabelButtonStyles["field-label-button-scaled"],
3012
+ style: fieldLabelButtonScale,
3013
+ onMouseEnter: (e) => {
3014
+ interactionHandlers.onMouseEnter();
3015
+ triggerProps.onMouseEnter?.(e);
3016
+ },
3017
+ onMouseLeave: (e) => {
3018
+ interactionHandlers.onMouseLeave();
3019
+ triggerProps.onMouseLeave?.(e);
3020
+ },
3021
+ onFocus: (e) => {
3022
+ interactionHandlers.onFocus();
3023
+ triggerProps.onFocus?.(e);
3024
+ },
3025
+ onBlur: (e) => {
3026
+ interactionHandlers.onBlur();
3027
+ triggerProps.onBlur?.(e);
3028
+ },
3029
+ onClick: (e) => {
3030
+ e.stopPropagation();
3031
+ triggerProps.onClick?.(e);
3032
+ },
3033
+ children: animatedIcon
3034
+ }
3035
+ ) }) }),
3036
+ /* @__PURE__ */ jsx(Popover.Content, { ...contentProps, children: popoverContent })
3037
+ ] }) });
3038
+ }
3039
+ const { content, triggerLabel, props } = config;
3040
+ const tooltipContent = content ?? DEFAULT_TOOLTIP_CONTENT;
3041
+ return /* @__PURE__ */ jsx("div", { className: containerClassName, "data-anv": "ai-mark-interactive", children: /* @__PURE__ */ jsxs(Tooltip, { ...props, children: [
3042
+ /* @__PURE__ */ jsx(Tooltip.Trigger, { className: styles["tooltip-trigger"], children: /* @__PURE__ */ jsx("span", { className: styles["button-wrapper"], tabIndex: -1, children: /* @__PURE__ */ jsx(
3043
+ FieldLabelButton,
3044
+ {
3045
+ "aria-label": triggerLabel,
3046
+ ...interactionHandlers,
3047
+ className: fieldLabelButtonStyles["field-label-button-scaled"],
3048
+ style: fieldLabelButtonScale,
3049
+ children: animatedIcon
3050
+ }
3051
+ ) }) }),
3052
+ /* @__PURE__ */ jsx(Tooltip.Content, { children: tooltipContent })
3053
+ ] }) });
3054
+ };
3055
+
3056
+ const ICON_PIXEL_SIZES = {
3057
+ small: 12,
3058
+ medium: 16,
3059
+ large: 24,
3060
+ xlarge: 32
3061
+ };
3062
+ const AiMark = (props) => {
3063
+ const {
3064
+ type = "default",
3065
+ popoverOrTooltipConfig,
3066
+ forceAnimate = false,
3067
+ collapsePadding,
3068
+ className,
3069
+ size = "medium",
3070
+ ...rest
3071
+ } = props;
3072
+ const inheritColor = type === "default";
3073
+ const collapseBlock = collapsePadding === "block" || collapsePadding === "all";
3074
+ const collapseInline = collapsePadding === "inline" || collapsePadding === "all";
3075
+ const baseContainerClassName = cx(
3076
+ styles["container"],
3077
+ styles[size],
3078
+ {
3079
+ [styles["collapse-block"]]: collapseBlock,
3080
+ [styles["collapse-inline"]]: collapseInline
3081
+ },
3082
+ className
3083
+ );
3084
+ if (popoverOrTooltipConfig) {
3085
+ return /* @__PURE__ */ jsx(
3086
+ AiMarkInteractive,
3087
+ {
3088
+ config: popoverOrTooltipConfig,
3089
+ size,
3090
+ inheritColor,
3091
+ containerClassName: baseContainerClassName,
3092
+ forceAnimate
3093
+ }
3094
+ );
3095
+ }
3096
+ const nonInteractiveContainerClassName = cx(
3097
+ baseContainerClassName,
3098
+ styles["with-padding"]
3099
+ );
3100
+ if (forceAnimate) {
3101
+ return /* @__PURE__ */ jsx(
3102
+ "div",
3103
+ {
3104
+ className: nonInteractiveContainerClassName,
3105
+ style: { color: rest.color },
3106
+ children: /* @__PURE__ */ jsx(
3107
+ AiMarkIconAnimated,
3108
+ {
3109
+ animate: true,
3110
+ size: ICON_PIXEL_SIZES[size],
3111
+ inheritColor
3112
+ }
3113
+ )
3114
+ }
3115
+ );
3116
+ }
3117
+ return /* @__PURE__ */ jsx(
3118
+ "div",
3119
+ {
3120
+ className: nonInteractiveContainerClassName,
3121
+ style: { color: rest.color },
3122
+ "data-anv": "ai-mark-icon",
3123
+ children: /* @__PURE__ */ jsx(
3124
+ Icon,
3125
+ {
3126
+ ...rest,
3127
+ svg: type === "gradient" ? SvgAiMarkGradient : SvgAiMark,
3128
+ size
3129
+ }
3130
+ )
3131
+ }
3132
+ );
3133
+ };
3134
+
3135
+ export { AiMark as A, FieldLabelButton as F, Popover as P, usePopoverContext as a, useMergeRefs as u };
3136
+ //# sourceMappingURL=AiMark-DR-w6Nbm.js.map