@servicetitan/anvil2 3.2.0 → 3.4.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 (298) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/dist/{AiMark-D6ScGfyP.js → AiMark-Cb8qjOm8.js} +3 -3
  3. package/dist/AiMark-Cb8qjOm8.js.map +1 -0
  4. package/dist/AiMark.js +1 -1
  5. package/dist/{Alert-Dgq96HR4.js → Alert-DcaD1Lkb.js} +3 -3
  6. package/dist/{Alert-Dgq96HR4.js.map → Alert-DcaD1Lkb.js.map} +1 -1
  7. package/dist/Alert.js +1 -1
  8. package/dist/{Announcement-DXF8slQf.js → Announcement-BLU0FORF.js} +2 -2
  9. package/dist/{Announcement-DXF8slQf.js.map → Announcement-BLU0FORF.js.map} +1 -1
  10. package/dist/Announcement.js +1 -1
  11. package/dist/{AnvilProvider-Cw_zTBqJ.js → AnvilProvider-CwAHiQ_0.js} +29 -1
  12. package/dist/AnvilProvider-CwAHiQ_0.js.map +1 -0
  13. package/dist/AnvilProvider.js +1 -1
  14. package/dist/{Breadcrumbs-CklKFLSl.js → Breadcrumbs-uTw8OAJ0.js} +2 -2
  15. package/dist/{Breadcrumbs-CklKFLSl.js.map → Breadcrumbs-uTw8OAJ0.js.map} +1 -1
  16. package/dist/Breadcrumbs.js +1 -1
  17. package/dist/{Button-ChQARW0y.js → Button-BUb1Qc37.js} +14 -8
  18. package/dist/Button-BUb1Qc37.js.map +1 -0
  19. package/dist/Button.js +1 -1
  20. package/dist/{ButtonToggle-BVv94C4U.js → ButtonToggle-MLRj4uKG.js} +2 -2
  21. package/dist/{ButtonToggle-BVv94C4U.js.map → ButtonToggle-MLRj4uKG.js.map} +1 -1
  22. package/dist/ButtonToggle.js +1 -1
  23. package/dist/{Calendar-DWyW5gvQ.js → Calendar-Dt0HL8Fv.js} +3 -3
  24. package/dist/{Calendar-DWyW5gvQ.js.map → Calendar-Dt0HL8Fv.js.map} +1 -1
  25. package/dist/{Calendar-Qlnpl3zR.js → Calendar-OMUNura7.js} +2 -2
  26. package/dist/{Calendar-Qlnpl3zR.js.map → Calendar-OMUNura7.js.map} +1 -1
  27. package/dist/Calendar.js +2 -2
  28. package/dist/{Checkbox-BE8Jmz3t.js → Checkbox-BHrSg0oH.js} +2 -2
  29. package/dist/{Checkbox-BE8Jmz3t.js.map → Checkbox-BHrSg0oH.js.map} +1 -1
  30. package/dist/{Checkbox-QIaS16gS.js → Checkbox-D17xXjUh.js} +3 -3
  31. package/dist/{Checkbox-QIaS16gS.js.map → Checkbox-D17xXjUh.js.map} +1 -1
  32. package/dist/Checkbox.js +1 -1
  33. package/dist/{Chip-BYK1b3lZ.js → Chip-BRgs4B-5.js} +2 -2
  34. package/dist/{Chip-BYK1b3lZ.js.map → Chip-BRgs4B-5.js.map} +1 -1
  35. package/dist/Chip.js +1 -1
  36. package/dist/Combobox.js +1 -1
  37. package/dist/{DataTable-D_ZP3kZw.js → DataTable-B-UT9iTJ.js} +15 -14
  38. package/dist/DataTable-B-UT9iTJ.js.map +1 -0
  39. package/dist/DataTable.css +10 -6
  40. package/dist/{DateFieldRange-OiVF8sye.js → DateFieldRange-CODGX5B3.js} +4 -4
  41. package/dist/{DateFieldRange-OiVF8sye.js.map → DateFieldRange-CODGX5B3.js.map} +1 -1
  42. package/dist/DateFieldRange.js +1 -1
  43. package/dist/{DateFieldSingle-CSCcHt9Z.js → DateFieldSingle-DMjzOgf5.js} +4 -4
  44. package/dist/{DateFieldSingle-CSCcHt9Z.js.map → DateFieldSingle-DMjzOgf5.js.map} +1 -1
  45. package/dist/DateFieldSingle.js +1 -1
  46. package/dist/{DateFieldYearless-DU9No74i.js → DateFieldYearless-DObHxquf.js} +4 -4
  47. package/dist/{DateFieldYearless-DU9No74i.js.map → DateFieldYearless-DObHxquf.js.map} +1 -1
  48. package/dist/DateFieldYearless.js +1 -1
  49. package/dist/{DateFieldYearlessRange-BkXIgh59.js → DateFieldYearlessRange-CGgc8wuL.js} +3 -3
  50. package/dist/{DateFieldYearlessRange-BkXIgh59.js.map → DateFieldYearlessRange-CGgc8wuL.js.map} +1 -1
  51. package/dist/DateFieldYearlessRange.js +1 -1
  52. package/dist/{DaysOfTheWeek-BYw91Qr-.js → DaysOfTheWeek-CxCsJPOI.js} +3 -3
  53. package/dist/{DaysOfTheWeek-BYw91Qr-.js.map → DaysOfTheWeek-CxCsJPOI.js.map} +1 -1
  54. package/dist/DaysOfTheWeek.js +1 -1
  55. package/dist/{Dialog-DMR_uvde.js → Dialog-D0nVpLUN.js} +4 -4
  56. package/dist/{Dialog-DMR_uvde.js.map → Dialog-D0nVpLUN.js.map} +1 -1
  57. package/dist/Dialog.js +1 -1
  58. package/dist/{DialogCancelButton-lAq4bhHS.js → DialogCancelButton-DKdPbZFu.js} +2 -2
  59. package/dist/{DialogCancelButton-lAq4bhHS.js.map → DialogCancelButton-DKdPbZFu.js.map} +1 -1
  60. package/dist/{Drawer-vxmKqraS.js → Drawer-k6VSs33j.js} +4 -4
  61. package/dist/{Drawer-vxmKqraS.js.map → Drawer-k6VSs33j.js.map} +1 -1
  62. package/dist/Drawer.js +1 -1
  63. package/dist/DrillDown.js +1 -1
  64. package/dist/{EditCard-h7sDGB-x.js → EditCard-B-CA6y8j.js} +3 -3
  65. package/dist/{EditCard-h7sDGB-x.js.map → EditCard-B-CA6y8j.js.map} +1 -1
  66. package/dist/EditCard.js +1 -1
  67. package/dist/{FieldLabel-tFSfJ7OJ.js → FieldLabel-Fu5hJMwQ.js} +2 -2
  68. package/dist/{FieldLabel-tFSfJ7OJ.js.map → FieldLabel-Fu5hJMwQ.js.map} +1 -1
  69. package/dist/FieldLabel.js +1 -1
  70. package/dist/{FilterBar-l8aCxO9c.js → FilterBar-pK1K3u-K.js} +7 -7
  71. package/dist/{FilterBar-l8aCxO9c.js.map → FilterBar-pK1K3u-K.js.map} +1 -1
  72. package/dist/FilterBar.js +1 -1
  73. package/dist/{InputMask-r8vH_Gh3.js → InputMask-CoiA8nQO.js} +3 -3
  74. package/dist/{InputMask-r8vH_Gh3.js.map → InputMask-CoiA8nQO.js.map} +1 -1
  75. package/dist/InputMask.js +1 -1
  76. package/dist/{ListView-D_xAfZD-.js → ListView-l-S-D8xq.js} +2 -2
  77. package/dist/{ListView-D_xAfZD-.js.map → ListView-l-S-D8xq.js.map} +1 -1
  78. package/dist/ListView.js +1 -1
  79. package/dist/{Listbox-iUUghImt.js → Listbox-D2LdclLc.js} +2 -2
  80. package/dist/{Listbox-iUUghImt.js.map → Listbox-D2LdclLc.js.map} +1 -1
  81. package/dist/Listbox.js +1 -1
  82. package/dist/{Menu-qcHhgf-t.js → Menu-DIRJgAtb.js} +2 -2
  83. package/dist/{Menu-qcHhgf-t.js.map → Menu-DIRJgAtb.js.map} +1 -1
  84. package/dist/Menu.js +1 -1
  85. package/dist/{MenuFooter-Dtckm9vY.js → MenuFooter-8BJxv5HH.js} +2 -2
  86. package/dist/{MenuFooter-Dtckm9vY.js.map → MenuFooter-8BJxv5HH.js.map} +1 -1
  87. package/dist/MultiSelectField.js +1 -1
  88. package/dist/{MultiSelectFieldSync-DNJ1TBf8.js → MultiSelectFieldSync-BHuikb4i.js} +7 -7
  89. package/dist/MultiSelectFieldSync-BHuikb4i.js.map +1 -0
  90. package/dist/MultiSelectMenu.js +1 -1
  91. package/dist/{MultiSelectMenuSync-LD931FAV.js → MultiSelectMenuSync-pwUMDt4l.js} +5 -5
  92. package/dist/MultiSelectMenuSync-pwUMDt4l.js.map +1 -0
  93. package/dist/{NumberField-CFYbODNe.js → NumberField-TQyVxw3T.js} +4 -4
  94. package/dist/{NumberField-CFYbODNe.js.map → NumberField-TQyVxw3T.js.map} +1 -1
  95. package/dist/NumberField.js +1 -1
  96. package/dist/Overflow.js +5 -2
  97. package/dist/Overflow.js.map +1 -1
  98. package/dist/{Page-DgSimS7u.js → Page-CV7kXuxd.js} +9 -9
  99. package/dist/{Page-DgSimS7u.js.map → Page-CV7kXuxd.js.map} +1 -1
  100. package/dist/Page.js +1 -1
  101. package/dist/{Pagination-DQ2fjkmT.js → Pagination-DocfPR17.js} +5 -5
  102. package/dist/{Pagination-DQ2fjkmT.js.map → Pagination-DocfPR17.js.map} +1 -1
  103. package/dist/Pagination.js +1 -1
  104. package/dist/{Popover-DeBxKuqc.js → Popover-JEE1iAsT.js} +2 -2
  105. package/dist/{Popover-DeBxKuqc.js.map → Popover-JEE1iAsT.js.map} +1 -1
  106. package/dist/Popover.js +1 -1
  107. package/dist/{ProgressBar-BFvc2jm3.js → ProgressBar-DAMwAbgw.js} +2 -2
  108. package/dist/{ProgressBar-BFvc2jm3.js.map → ProgressBar-DAMwAbgw.js.map} +1 -1
  109. package/dist/ProgressBar.js +1 -1
  110. package/dist/{Radio-v3lT3AoB.js → Radio-BcxS2T20.js} +2 -2
  111. package/dist/{Radio-v3lT3AoB.js.map → Radio-BcxS2T20.js.map} +1 -1
  112. package/dist/{Radio-BV4SflBA.js → Radio-D-TddAD8.js} +3 -3
  113. package/dist/{Radio-BV4SflBA.js.map → Radio-D-TddAD8.js.map} +1 -1
  114. package/dist/Radio.js +1 -1
  115. package/dist/{RichTextEditor-Cm29o9RK.js → RichTextEditor-BnFo_55G.js} +10 -10
  116. package/dist/{RichTextEditor-Cm29o9RK.js.map → RichTextEditor-BnFo_55G.js.map} +1 -1
  117. package/dist/RichTextEditor.js +1 -1
  118. package/dist/{SavedFiltersButton-3VadkBsA.js → SavedFiltersButton-CJo9E3-a.js} +10 -10
  119. package/dist/SavedFiltersButton-CJo9E3-a.js.map +1 -0
  120. package/dist/SavedFiltersButton.js +1 -1
  121. package/dist/{SelectCard-CkZEENl6.js → SelectCard-Bns0m-jY.js} +3 -3
  122. package/dist/{SelectCard-CkZEENl6.js.map → SelectCard-Bns0m-jY.js.map} +1 -1
  123. package/dist/SelectCard.js +1 -1
  124. package/dist/SelectField.js +1 -1
  125. package/dist/{SelectFieldLabel-CvJhwy_6.js → SelectFieldLabel-BLZVhNgs.js} +2 -2
  126. package/dist/SelectFieldLabel-BLZVhNgs.js.map +1 -0
  127. package/dist/{SelectFieldSync-z_kyrBvL.js → SelectFieldSync-B__983Yd.js} +6 -6
  128. package/dist/SelectFieldSync-B__983Yd.js.map +1 -0
  129. package/dist/SelectMenu.js +1 -1
  130. package/dist/{SelectMenuSync-BD8oedGs.js → SelectMenuSync-DI0ZSU4b.js} +5 -5
  131. package/dist/SelectMenuSync-DI0ZSU4b.js.map +1 -0
  132. package/dist/{SelectOptions-CBSsSyFd.js → SelectOptions-DTHVh2em.js} +2 -2
  133. package/dist/SelectOptions-DTHVh2em.js.map +1 -0
  134. package/dist/{SelectTrigger-BtmYsL2p.js → SelectTrigger-CfiFs8q0.js} +2 -2
  135. package/dist/{SelectTrigger-BtmYsL2p.js.map → SelectTrigger-CfiFs8q0.js.map} +1 -1
  136. package/dist/SelectTrigger.js +1 -1
  137. package/dist/{SelectTriggerBase-CyyzAOmG.js → SelectTriggerBase-ibMt1vdq.js} +8 -6
  138. package/dist/SelectTriggerBase-ibMt1vdq.js.map +1 -0
  139. package/dist/{Stepper-BXgMeUHu.js → Stepper-C6kagSPw.js} +2 -2
  140. package/dist/{Stepper-BXgMeUHu.js.map → Stepper-C6kagSPw.js.map} +1 -1
  141. package/dist/Stepper.js +1 -1
  142. package/dist/{Switch-DibokoJL.js → Switch-CddxqwQq.js} +2 -2
  143. package/dist/{Switch-DibokoJL.js.map → Switch-CddxqwQq.js.map} +1 -1
  144. package/dist/Switch.js +1 -1
  145. package/dist/Table.js +1 -1
  146. package/dist/{Text-BTCfqeSr.js → Text-D9pGACpv.js} +2 -2
  147. package/dist/{Text-BTCfqeSr.js.map → Text-D9pGACpv.js.map} +1 -1
  148. package/dist/Text.js +1 -1
  149. package/dist/{TextField-CqJ9s4SG.js → TextField-BCsO3hjg.js} +2 -2
  150. package/dist/{TextField-CqJ9s4SG.js.map → TextField-BCsO3hjg.js.map} +1 -1
  151. package/dist/{TextField-KZkRXCbH.js → TextField-qztk_Ivl.js} +3 -3
  152. package/dist/{TextField-KZkRXCbH.js.map → TextField-qztk_Ivl.js.map} +1 -1
  153. package/dist/TextField.js +1 -1
  154. package/dist/{Textarea-DlvbIRKO.js → Textarea-BRbxK5zB.js} +3 -3
  155. package/dist/{Textarea-DlvbIRKO.js.map → Textarea-BRbxK5zB.js.map} +1 -1
  156. package/dist/Textarea.js +1 -1
  157. package/dist/{TimeField-bdJArRXM.js → TimeField-D7JuCeWV.js} +4 -4
  158. package/dist/{TimeField-bdJArRXM.js.map → TimeField-D7JuCeWV.js.map} +1 -1
  159. package/dist/TimeField.js +1 -1
  160. package/dist/Toast.js +2 -2
  161. package/dist/{Toaster-DW9Bx-5k.js → Toaster-BE8-zVU_.js} +2 -2
  162. package/dist/{Toaster-DW9Bx-5k.js.map → Toaster-BE8-zVU_.js.map} +1 -1
  163. package/dist/{Toaster-De3dmRbW.js → Toaster-DGWxlVrT.js} +4 -4
  164. package/dist/{Toaster-De3dmRbW.js.map → Toaster-DGWxlVrT.js.map} +1 -1
  165. package/dist/{Toolbar-j9Y2YleC.js → Toolbar-Bj1cbM0Z.js} +5 -5
  166. package/dist/{Toolbar-j9Y2YleC.js.map → Toolbar-Bj1cbM0Z.js.map} +1 -1
  167. package/dist/{Toolbar-DksrjUsE.js → Toolbar-nLRa6pYr.js} +5 -5
  168. package/dist/{Toolbar-DksrjUsE.js.map → Toolbar-nLRa6pYr.js.map} +1 -1
  169. package/dist/Toolbar.js +2 -2
  170. package/dist/{ToolbarButtonToggle-CywNpsGX.js → ToolbarButtonToggle-DaI6YeLV.js} +2 -2
  171. package/dist/{ToolbarButtonToggle-CywNpsGX.js.map → ToolbarButtonToggle-DaI6YeLV.js.map} +1 -1
  172. package/dist/TreeSelectField.js +1 -1
  173. package/dist/{TreeSelectFieldSync-CB1H4ZTC.js → TreeSelectFieldSync-B61EZhiW.js} +6 -6
  174. package/dist/TreeSelectFieldSync-B61EZhiW.js.map +1 -0
  175. package/dist/TreeSelectMenu.js +1 -1
  176. package/dist/{TreeSelectMenuSync-D4l3zik4.js → TreeSelectMenuSync-B0jTaUkT.js} +4 -4
  177. package/dist/{TreeSelectMenuSync-D4l3zik4.js.map → TreeSelectMenuSync-B0jTaUkT.js.map} +1 -1
  178. package/dist/{TypeaheadTextField-BJrrlLjP.js → TypeaheadTextField-DQmEFEBL.js} +3 -3
  179. package/dist/{TypeaheadTextField-BJrrlLjP.js.map → TypeaheadTextField-DQmEFEBL.js.map} +1 -1
  180. package/dist/TypeaheadTextField.js +1 -1
  181. package/dist/{YearlessDateInputWithPicker-BmRkNzK0.js → YearlessDateInputWithPicker-gPopOijG.js} +2 -2
  182. package/dist/{YearlessDateInputWithPicker-BmRkNzK0.js.map → YearlessDateInputWithPicker-gPopOijG.js.map} +1 -1
  183. package/dist/a2-border.css +25 -0
  184. package/dist/a2-color.css +223 -0
  185. package/dist/a2-font.css +21 -0
  186. package/dist/a2-spacing.css +238 -0
  187. package/dist/a2-utils.css +500 -0
  188. package/dist/assets/icons/st/ai_mark_gradient.svg +1 -1
  189. package/dist/beta.js +101 -16
  190. package/dist/beta.js.map +1 -1
  191. package/dist/{filter-state-C-4lebJG.js → filter-state-TODQ_3Dx.js} +21 -21
  192. package/dist/filter-state-TODQ_3Dx.js.map +1 -0
  193. package/dist/{index-mKaF0gwp.js → index-D2ybh-FH.js} +2 -2
  194. package/dist/{index-mKaF0gwp.js.map → index-D2ybh-FH.js.map} +1 -1
  195. package/dist/index.js +46 -42
  196. package/dist/index.js.map +1 -1
  197. package/dist/src/beta/components/FilterBar/internal/adapters/asyncMultiSelect.d.ts +1 -1
  198. package/dist/src/beta/components/FilterBar/internal/adapters/asyncSelect.d.ts +1 -1
  199. package/dist/src/beta/components/FilterBar/internal/adapters/multiSelect.d.ts +1 -1
  200. package/dist/src/beta/components/FilterBar/internal/adapters/singleSelect.d.ts +1 -1
  201. package/dist/src/beta/components/FilterBar/internal/types.d.ts +2 -2
  202. package/dist/src/beta/components/Table/createColumnHelper.d.ts +1 -1
  203. package/dist/src/beta/components/Table/types.d.ts +6 -6
  204. package/dist/src/beta/components/TreeSelectField/internal/TreeSelectFieldInput.d.ts +1 -1
  205. package/dist/src/beta/components/TreeSelectField/types.d.ts +1 -1
  206. package/dist/src/beta/components/deprecatedReexports/MultiSelectField.d.ts +21 -0
  207. package/dist/src/beta/components/deprecatedReexports/MultiSelectMenu.d.ts +21 -0
  208. package/dist/src/beta/components/deprecatedReexports/SelectField.d.ts +21 -0
  209. package/dist/src/beta/components/deprecatedReexports/SelectMenu.d.ts +21 -0
  210. package/dist/src/beta/components/deprecatedReexports/constants.d.ts +10 -0
  211. package/dist/src/beta/components/deprecatedReexports/deprecatedBetaImport.d.ts +7 -0
  212. package/dist/src/beta/components/index.d.ts +6 -6
  213. package/dist/src/components/Combobox/Combobox.d.ts +2 -0
  214. package/dist/src/{beta/components → components}/MultiSelectField/MultiSelectFieldSync.d.ts +1 -1
  215. package/dist/src/{beta/components → components}/MultiSelectField/internal/MultiSelectFieldInput.d.ts +1 -1
  216. package/dist/src/{beta/components → components}/MultiSelectField/internal/MultiSelectFieldTrigger.d.ts +1 -1
  217. package/dist/src/{beta/components → components}/MultiSelectField/internal/types.d.ts +2 -2
  218. package/dist/src/{beta/components → components}/MultiSelectField/internal/useComboMultiple.d.ts +2 -2
  219. package/dist/src/{beta/components → components}/MultiSelectField/internal/useSelectModeMultiple.d.ts +2 -2
  220. package/dist/src/{beta/components → components}/MultiSelectField/types.d.ts +4 -4
  221. package/dist/src/{beta/components → components}/MultiSelectMenu/MultiSelectMenuSync.d.ts +1 -1
  222. package/dist/src/{beta/components → components}/MultiSelectMenu/types.d.ts +3 -3
  223. package/dist/src/components/Overflow/Overflow.d.ts +8 -1
  224. package/dist/src/{beta/components → components}/SelectField/SelectFieldSync.d.ts +1 -1
  225. package/dist/src/{beta/components → components}/SelectField/internal/SelectFieldComboboxMode.d.ts +1 -1
  226. package/dist/src/{beta/components → components}/SelectField/internal/SelectFieldInput.d.ts +1 -1
  227. package/dist/src/{beta/components → components}/SelectField/internal/SelectFieldLabel.d.ts +1 -1
  228. package/dist/src/{beta/components → components}/SelectField/internal/SelectFieldSelectMode.d.ts +1 -1
  229. package/dist/src/{beta/components → components}/SelectField/internal/SelectFieldTrigger.d.ts +1 -1
  230. package/dist/src/{beta/components → components}/SelectField/internal/useCombo.d.ts +1 -1
  231. package/dist/src/{beta/components → components}/SelectField/internal/useSelectMode.d.ts +1 -1
  232. package/dist/src/{beta/components → components}/SelectField/types.d.ts +3 -3
  233. package/dist/src/{beta/components → components}/SelectMenu/SelectMenuSync.d.ts +1 -1
  234. package/dist/src/{beta/components → components}/SelectMenu/internal/useMenuInteraction.d.ts +2 -2
  235. package/dist/src/{beta/components → components}/SelectMenu/types.d.ts +1 -1
  236. package/dist/src/components/SelectTrigger/internal/SelectTriggerBase.d.ts +2 -1
  237. package/dist/src/components/index.d.ts +4 -0
  238. package/dist/src/internal/components/MultiSelectOptions.d.ts +1 -1
  239. package/dist/src/internal/components/SelectOptions.d.ts +1 -1
  240. package/dist/src/internal/functions/buildSelectItems.d.ts +1 -1
  241. package/dist/src/internal/functions/syncFilterUtils.d.ts +1 -1
  242. package/dist/src/internal/hooks/useGroupedOptions.d.ts +1 -1
  243. package/dist/src/internal/hooks/usePinnedOptions.d.ts +1 -1
  244. package/dist/src/internal/hooks/useProcessedOptions.d.ts +1 -1
  245. package/dist/src/internal/hooks/useSelectFieldLoading/useSelectFieldLoading.d.ts +1 -1
  246. package/dist/src/internal/hooks/useSelectOrchestration.d.ts +1 -1
  247. package/dist/src/internal/hooks/useToggleSelection.d.ts +1 -1
  248. package/dist/src/internal/types/bulkActionTypes.d.ts +1 -1
  249. package/dist/src/internal/types/selectFieldInternalTypes.d.ts +1 -1
  250. package/dist/src/providers/AnvilProvider/AnvilProviderContext.d.ts +7 -0
  251. package/dist/src/providers/AnvilProvider/index.d.ts +1 -1
  252. package/dist/{stripInlineMarkdown-CQCRopqY.js → stripInlineMarkdown-CIYBRFbl.js} +2 -2
  253. package/dist/{stripInlineMarkdown-CQCRopqY.js.map → stripInlineMarkdown-CIYBRFbl.js.map} +1 -1
  254. package/dist/{syncFilterUtils-JUsufAHA.js → syncFilterUtils-BwxAsKjG.js} +4 -4
  255. package/dist/syncFilterUtils-BwxAsKjG.js.map +1 -0
  256. package/dist/{treeSync-CXMjwQ4X.js → treeSync-SwmUBJwF.js} +3 -3
  257. package/dist/{treeSync-CXMjwQ4X.js.map → treeSync-SwmUBJwF.js.map} +1 -1
  258. package/dist/{useAdaptiveView-BdzXyicd.js → useAdaptiveView-Bt1axQ6s.js} +4 -4
  259. package/dist/{useAdaptiveView-BdzXyicd.js.map → useAdaptiveView-Bt1axQ6s.js.map} +1 -1
  260. package/dist/useChipLayout-BWZfKDgd.js.map +1 -1
  261. package/dist/{useDrilldown-CWNTo5uR.js → useDrilldown-X85I7E2L.js} +3 -3
  262. package/dist/{useDrilldown-CWNTo5uR.js.map → useDrilldown-X85I7E2L.js.map} +1 -1
  263. package/dist/{useInfiniteCombobox-D6FRVziM.js → useInfiniteCombobox-CmR1G9VN.js} +10 -5
  264. package/dist/useInfiniteCombobox-CmR1G9VN.js.map +1 -0
  265. package/dist/useMenuInteraction-NEJXUD4I.js.map +1 -1
  266. package/dist/{useToggleSelection-a18uaSE7.js → useToggleSelection-Cv_6Wnbc.js} +2 -2
  267. package/dist/useToggleSelection-Cv_6Wnbc.js.map +1 -0
  268. package/package.json +1 -1
  269. package/dist/AiMark-D6ScGfyP.js.map +0 -1
  270. package/dist/AnvilProvider-Cw_zTBqJ.js.map +0 -1
  271. package/dist/Button-ChQARW0y.js.map +0 -1
  272. package/dist/DataTable-D_ZP3kZw.js.map +0 -1
  273. package/dist/MultiSelectFieldSync-DNJ1TBf8.js.map +0 -1
  274. package/dist/MultiSelectMenuSync-LD931FAV.js.map +0 -1
  275. package/dist/SavedFiltersButton-3VadkBsA.js.map +0 -1
  276. package/dist/SelectFieldLabel-CvJhwy_6.js.map +0 -1
  277. package/dist/SelectFieldSync-z_kyrBvL.js.map +0 -1
  278. package/dist/SelectMenuSync-BD8oedGs.js.map +0 -1
  279. package/dist/SelectOptions-CBSsSyFd.js.map +0 -1
  280. package/dist/SelectTriggerBase-CyyzAOmG.js.map +0 -1
  281. package/dist/TreeSelectFieldSync-CB1H4ZTC.js.map +0 -1
  282. package/dist/filter-state-C-4lebJG.js.map +0 -1
  283. package/dist/syncFilterUtils-JUsufAHA.js.map +0 -1
  284. package/dist/useInfiniteCombobox-D6FRVziM.js.map +0 -1
  285. package/dist/useToggleSelection-a18uaSE7.js.map +0 -1
  286. /package/dist/src/{beta/components → components}/MultiSelectField/MultiSelectField.d.ts +0 -0
  287. /package/dist/src/{beta/components → components}/MultiSelectField/index.d.ts +0 -0
  288. /package/dist/src/{beta/components → components}/MultiSelectField/internal/MultiSelectFieldComboboxMode.d.ts +0 -0
  289. /package/dist/src/{beta/components → components}/MultiSelectField/internal/MultiSelectFieldSelectMode.d.ts +0 -0
  290. /package/dist/src/{beta/components → components}/MultiSelectField/internal/useChipLayout.d.ts +0 -0
  291. /package/dist/src/{beta/components → components}/MultiSelectField/stories/MultiSelectField.stories.data.d.ts +0 -0
  292. /package/dist/src/{beta/components → components}/MultiSelectMenu/MultiSelectMenu.d.ts +0 -0
  293. /package/dist/src/{beta/components → components}/MultiSelectMenu/index.d.ts +0 -0
  294. /package/dist/src/{beta/components → components}/SelectField/SelectField.d.ts +0 -0
  295. /package/dist/src/{beta/components → components}/SelectField/index.d.ts +0 -0
  296. /package/dist/src/{beta/components → components}/SelectField/stories/SelectField.stories.data.d.ts +0 -0
  297. /package/dist/src/{beta/components → components}/SelectMenu/SelectMenu.d.ts +0 -0
  298. /package/dist/src/{beta/components → components}/SelectMenu/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"NumberField-CFYbODNe.js","sources":["../../hammer-icon/mdi/round/remove.svg","../src/components/NumberField/NumberField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgRemove = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z\" }));\nexport default SvgRemove;\n","import {\n ReactElement,\n forwardRef,\n isValidElement,\n ComponentPropsWithoutRef,\n useId,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { Spinner } from \"../Spinner\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport numberFieldStyles from \"./NumberField.module.scss\";\nimport { Helper, HelperProps } from \"../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport { LayoutUtilProps, Size, DataTrackingId } from \"../../types\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport IconAdd from \"@servicetitan/hammer-icon/mdi/round/add.svg\";\nimport IconRemove from \"@servicetitan/hammer-icon/mdi/round/remove.svg\";\nimport {\n useFocusWithin,\n useLayoutPropsUtil,\n useNumberField,\n} from \"../../internal/hooks\";\nimport {\n childrenToString,\n stripInlineMarkdown,\n warnOnce,\n} from \"../../internal/functions\";\nimport { FieldLabel } from \"../FieldLabel\";\nimport { FieldLabelProps } from \"../../internal/types\";\n\n/**\n * Props for the NumberField component.\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"prefix\" | \"type\" | \"inputMode\" | \"value\" | \"defaultValue\" | \"onFocus\" | \"onBlur\" | \"onChange\">\n * @extends LayoutUtilProps\n * @extends FieldLabelProps\n * @extends DataTrackingId\n */\nexport type NumberFieldProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n | \"size\"\n | \"prefix\"\n | \"type\"\n | \"inputMode\"\n | \"value\"\n | \"defaultValue\"\n | \"onFocus\"\n | \"onBlur\"\n | \"onChange\"\n> &\n LayoutUtilProps &\n FieldLabelProps & {\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n // TODO(v4.0.0): make label required\n /**\n * Label for the field.\n * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.\n */\n label?: string;\n /**\n * When `true`, hides the visible label and moves it to `aria-label` on the input.\n * Requires `label` to be set — the label is always needed for accessibility.\n * @default false\n */\n hideLabel?: boolean;\n prefix?: string;\n suffix?: string;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n hint?: HelperProps[\"hint\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n loading?: boolean;\n disabled?: boolean;\n minValue?: number;\n maxValue?: number;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n step?: number;\n value?: number | null;\n defaultValue?: number | null;\n onChange?: (value: number | null) => void;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n hideControls?: boolean;\n /**\n * When `true`, applies a subdued primary background to the field to draw attention to it.\n * @default false\n */\n isHighlighted?: boolean;\n } & DataTrackingId;\n\nexport const NumberField = forwardRef<HTMLInputElement, NumberFieldProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n error,\n errorAriaLive: _errorAriaLive,\n defaultValue: defaultValueProp,\n value: valueProp,\n label,\n moreInfo,\n prefix,\n suffix,\n size,\n required,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n id: idProp,\n description,\n hint,\n warning,\n loading,\n disabled,\n readOnly,\n labelProps,\n style,\n placeholder,\n minValue,\n maxValue,\n maximumFractionDigits = 0,\n minimumFractionDigits = 0,\n step = 1,\n hideControls = false,\n hideLabel = false,\n isHighlighted = false,\n ...rest\n } = componentProps;\n const numberFieldRef = useRef<HTMLDivElement>(null);\n\n const { props: wrapperProps } = useFocusWithin({\n onFocus: (e) => {\n onFocusProp?.(e);\n },\n onBlur: (e) => {\n onBlurProp?.(e);\n },\n });\n\n const { inputProps, inputRef, incrementButtonProps, decrementButtonProps } =\n useNumberField({\n minValue,\n maxValue,\n maximumFractionDigits,\n minimumFractionDigits,\n step,\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n label,\n readOnly,\n });\n\n const combinedInputRef = useMergeRefs([numberFieldRef, inputRef, ref]);\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const prefixUid = useId();\n const suffixUid = useId();\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"NumberField\", error);\n\n // TODO(v4.0.0): remove once label is required\n if (label === undefined) {\n warnOnce(\n \"NumberField: label will be required in v4.0.0. Use hideLabel to visually hide the label.\",\n );\n }\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const hasHelperText = hint || errorMessages || warning || description;\n\n const ariaDescribedBy =\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const data = {\n label: childrenToString(props.label),\n prefix: childrenToString(props.prefix),\n suffix: childrenToString(props.suffix),\n description: childrenToString(props.description),\n size: props.size,\n minValue: props.minValue,\n maxValue: props.maxValue,\n step: props.step,\n maximumFractionDigits: props.maximumFractionDigits,\n minimumFractionDigits: props.minimumFractionDigits,\n };\n\n const trackingId = useTrackingId({\n name: \"NumberField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <div\n className={cx(textFieldStyles[\"textfield\"], className)}\n data-anv=\"number-field\"\n style={styleCombined}\n {...wrapperProps}\n >\n {/* TODO(v4.0.0): simplify to !hideLabel once label is required */}\n {label && !hideLabel && (\n <FieldLabel\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n )}\n <div\n className={cx(textFieldStyles[\"input-wrapper\"], {\n [textFieldStyles[\"small\"]]: size === \"small\",\n [textFieldStyles[\"large\"]]: size === \"large\",\n [textFieldStyles[\"highlight\"]]: isHighlighted,\n [numberFieldStyles[\"small\"]]: size === \"small\",\n [numberFieldStyles[\"large\"]]: size === \"large\",\n })}\n role=\"presentation\"\n onClick={() => numberFieldRef.current?.focus()}\n >\n {prefix ? (\n <div\n aria-hidden\n className={textFieldStyles[\"prefix\"]}\n id={`prefix${prefixUid}`}\n >\n {prefix}\n </div>\n ) : null}\n <input\n id={id}\n className={cx(textFieldStyles[\"input\"], {\n [textFieldStyles[\"error\"]]: error,\n })}\n data-tracking-id={trackingId}\n {...rest}\n {...inputProps}\n required={required}\n placeholder={placeholder}\n readOnly={readOnly}\n disabled={disabled}\n ref={combinedInputRef}\n aria-label={\n // TODO(v4.0.0): remove typeof check — label will always be string\n hideLabel && typeof label === \"string\"\n ? stripInlineMarkdown(label)\n : label\n ? undefined\n : placeholder\n }\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? !!error : undefined}\n />\n {loading ? (\n <div\n className={textFieldStyles[\"loading-spinner-wrapper\"]}\n data-testid=\"spinner\"\n >\n <Spinner size=\"small\" />\n </div>\n ) : null}\n {suffix ? (\n <div\n className={textFieldStyles[\"suffix\"]}\n aria-hidden\n id={`suffix${suffixUid}`}\n >\n {suffix}\n </div>\n ) : null}\n {!hideControls && !disabled && !readOnly && (\n <div className={numberFieldStyles[\"stepper-buttons\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...decrementButtonProps}\n >\n <Icon svg={IconRemove} />\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...incrementButtonProps}\n >\n <Icon svg={IconAdd} />\n </Button>\n </div>\n )}\n </div>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n showCounter={false}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </div>\n );\n },\n);\n\nNumberField.displayName = \"NumberField\";\n"],"names":["IconRemove","IconAdd"],"mappings":"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"}
1
+ {"version":3,"file":"NumberField-TQyVxw3T.js","sources":["../../hammer-icon/mdi/round/remove.svg","../src/components/NumberField/NumberField.tsx"],"sourcesContent":["import * as React from \"react\";\nconst SvgRemove = (props) => /* @__PURE__ */ React.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", width: \"1em\", height: \"1em\", viewBox: \"0 0 24 24\", ...props }, /* @__PURE__ */ React.createElement(\"path\", { d: \"M18 13H6c-.55 0-1-.45-1-1s.45-1 1-1h12c.55 0 1 .45 1 1s-.45 1-1 1z\" }));\nexport default SvgRemove;\n","import {\n ReactElement,\n forwardRef,\n isValidElement,\n ComponentPropsWithoutRef,\n useId,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { Spinner } from \"../Spinner\";\nimport textFieldStyles from \"../TextField/TextField.module.scss\";\nimport numberFieldStyles from \"./NumberField.module.scss\";\nimport { Helper, HelperProps } from \"../../internal/components\";\nimport { warnDeprecatedErrorUsage } from \"../FieldMessage\";\nimport { LayoutUtilProps, Size, DataTrackingId } from \"../../types\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { Button } from \"../Button\";\nimport { Icon } from \"../Icon\";\nimport IconAdd from \"@servicetitan/hammer-icon/mdi/round/add.svg\";\nimport IconRemove from \"@servicetitan/hammer-icon/mdi/round/remove.svg\";\nimport {\n useFocusWithin,\n useLayoutPropsUtil,\n useNumberField,\n} from \"../../internal/hooks\";\nimport {\n childrenToString,\n stripInlineMarkdown,\n warnOnce,\n} from \"../../internal/functions\";\nimport { FieldLabel } from \"../FieldLabel\";\nimport { FieldLabelProps } from \"../../internal/types\";\n\n/**\n * Props for the NumberField component.\n * @extends Omit<ComponentPropsWithoutRef<\"input\">, \"size\" | \"prefix\" | \"type\" | \"inputMode\" | \"value\" | \"defaultValue\" | \"onFocus\" | \"onBlur\" | \"onChange\">\n * @extends LayoutUtilProps\n * @extends FieldLabelProps\n * @extends DataTrackingId\n */\nexport type NumberFieldProps = Omit<\n ComponentPropsWithoutRef<\"input\">,\n | \"size\"\n | \"prefix\"\n | \"type\"\n | \"inputMode\"\n | \"value\"\n | \"defaultValue\"\n | \"onFocus\"\n | \"onBlur\"\n | \"onChange\"\n> &\n LayoutUtilProps &\n FieldLabelProps & {\n /**\n * Error state for the field. Pass `true` to indicate error styling without a message.\n * Pass a string, string[], or ReactElement (deprecated) for error messages.\n */\n error?: boolean | string | ReactElement | string[];\n // TODO(v4.0.0): make label required\n /**\n * Label for the field.\n * Omitting `label` is deprecated — it will be required in v4.0.0. Use `hideLabel` to visually hide it.\n */\n label?: string;\n /**\n * When `true`, hides the visible label and moves it to `aria-label` on the input.\n * Requires `label` to be set — the label is always needed for accessibility.\n * @default false\n */\n hideLabel?: boolean;\n prefix?: string;\n suffix?: string;\n size?: Extract<Size, \"small\" | \"medium\" | \"large\">;\n description?: HelperProps[\"description\"];\n /**\n * @deprecated No longer used. Error messages always use `aria-live=\"assertive\"`.\n */\n errorAriaLive?: HelperProps[\"errorAriaLive\"];\n hint?: HelperProps[\"hint\"];\n /**\n * Warning message(s) to display. Supports a single string or an array of strings.\n */\n warning?: string | string[];\n loading?: boolean;\n disabled?: boolean;\n minValue?: number;\n maxValue?: number;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n step?: number;\n value?: number | null;\n defaultValue?: number | null;\n onChange?: (value: number | null) => void;\n onFocus?: (event: React.FocusEvent) => void;\n onBlur?: (event: React.FocusEvent) => void;\n hideControls?: boolean;\n /**\n * When `true`, applies a subdued primary background to the field to draw attention to it.\n * @default false\n */\n isHighlighted?: boolean;\n } & DataTrackingId;\n\nexport const NumberField = forwardRef<HTMLInputElement, NumberFieldProps>(\n (props, ref) => {\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n className,\n error,\n errorAriaLive: _errorAriaLive,\n defaultValue: defaultValueProp,\n value: valueProp,\n label,\n moreInfo,\n prefix,\n suffix,\n size,\n required,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n id: idProp,\n description,\n hint,\n warning,\n loading,\n disabled,\n readOnly,\n labelProps,\n style,\n placeholder,\n minValue,\n maxValue,\n maximumFractionDigits = 0,\n minimumFractionDigits = 0,\n step = 1,\n hideControls = false,\n hideLabel = false,\n isHighlighted = false,\n ...rest\n } = componentProps;\n const numberFieldRef = useRef<HTMLDivElement>(null);\n\n const { props: wrapperProps } = useFocusWithin({\n onFocus: (e) => {\n onFocusProp?.(e);\n },\n onBlur: (e) => {\n onBlurProp?.(e);\n },\n });\n\n const { inputProps, inputRef, incrementButtonProps, decrementButtonProps } =\n useNumberField({\n minValue,\n maxValue,\n maximumFractionDigits,\n minimumFractionDigits,\n step,\n value: valueProp,\n defaultValue: defaultValueProp,\n onChange: onChangeProp,\n label,\n readOnly,\n });\n\n const combinedInputRef = useMergeRefs([numberFieldRef, inputRef, ref]);\n\n const labelUid = useId();\n const id = idProp ?? labelUid;\n const prefixUid = useId();\n const suffixUid = useId();\n const helperUid = useId();\n const moreInfoUid = useId();\n\n warnDeprecatedErrorUsage(\"NumberField\", error);\n\n // TODO(v4.0.0): remove once label is required\n if (label === undefined) {\n warnOnce(\n \"NumberField: label will be required in v4.0.0. Use hideLabel to visually hide the label.\",\n );\n }\n\n const errorMessages =\n typeof error === \"boolean\" || error === undefined ? undefined : error;\n\n const hasHelperText = hint || errorMessages || warning || description;\n\n const ariaDescribedBy =\n [hasHelperText && helperUid, moreInfo && moreInfoUid]\n .filter(Boolean)\n .join(\" \") || undefined;\n\n const styleCombined = { ...style, ...layoutStyles };\n\n const data = {\n label: childrenToString(props.label),\n prefix: childrenToString(props.prefix),\n suffix: childrenToString(props.suffix),\n description: childrenToString(props.description),\n size: props.size,\n minValue: props.minValue,\n maxValue: props.maxValue,\n step: props.step,\n maximumFractionDigits: props.maximumFractionDigits,\n minimumFractionDigits: props.minimumFractionDigits,\n };\n\n const trackingId = useTrackingId({\n name: \"NumberField\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n return (\n <div\n className={cx(textFieldStyles[\"textfield\"], className)}\n data-anv=\"number-field\"\n style={styleCombined}\n {...wrapperProps}\n >\n {/* TODO(v4.0.0): simplify to !hideLabel once label is required */}\n {label && !hideLabel && (\n <FieldLabel\n moreInfo={moreInfo}\n moreInfoId={moreInfo ? moreInfoUid : undefined}\n required={required}\n htmlFor={id}\n {...labelProps}\n >\n {label}\n </FieldLabel>\n )}\n <div\n className={cx(textFieldStyles[\"input-wrapper\"], {\n [textFieldStyles[\"small\"]]: size === \"small\",\n [textFieldStyles[\"large\"]]: size === \"large\",\n [textFieldStyles[\"highlight\"]]: isHighlighted,\n [numberFieldStyles[\"small\"]]: size === \"small\",\n [numberFieldStyles[\"large\"]]: size === \"large\",\n })}\n role=\"presentation\"\n onClick={() => numberFieldRef.current?.focus()}\n >\n {prefix ? (\n <div\n aria-hidden\n className={textFieldStyles[\"prefix\"]}\n id={`prefix${prefixUid}`}\n >\n {prefix}\n </div>\n ) : null}\n <input\n id={id}\n className={cx(textFieldStyles[\"input\"], {\n [textFieldStyles[\"error\"]]: error,\n })}\n data-tracking-id={trackingId}\n {...rest}\n {...inputProps}\n required={required}\n placeholder={placeholder}\n readOnly={readOnly}\n disabled={disabled}\n ref={combinedInputRef}\n aria-label={\n // TODO(v4.0.0): remove typeof check — label will always be string\n hideLabel && typeof label === \"string\"\n ? stripInlineMarkdown(label)\n : label\n ? undefined\n : placeholder\n }\n aria-describedby={ariaDescribedBy}\n aria-invalid={error ? !!error : undefined}\n />\n {loading ? (\n <div\n className={textFieldStyles[\"loading-spinner-wrapper\"]}\n data-testid=\"spinner\"\n >\n <Spinner size=\"small\" />\n </div>\n ) : null}\n {suffix ? (\n <div\n className={textFieldStyles[\"suffix\"]}\n aria-hidden\n id={`suffix${suffixUid}`}\n >\n {suffix}\n </div>\n ) : null}\n {!hideControls && !disabled && !readOnly && (\n <div className={numberFieldStyles[\"stepper-buttons\"]}>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...decrementButtonProps}\n >\n <Icon svg={IconRemove} />\n </Button>\n <Button\n appearance=\"secondary\"\n size=\"small\"\n className={numberFieldStyles[\"stepper-button\"]}\n {...incrementButtonProps}\n >\n <Icon svg={IconAdd} />\n </Button>\n </div>\n )}\n </div>\n {hasHelperText ? (\n <Helper\n id={helperUid}\n hint={hint}\n showCounter={false}\n error={\n typeof errorMessages === \"string\" || Array.isArray(errorMessages)\n ? errorMessages\n : undefined\n }\n warning={warning}\n errorMessage={\n isValidElement(errorMessages) ? errorMessages : undefined\n }\n description={description}\n />\n ) : null}\n </div>\n );\n },\n);\n\nNumberField.displayName = \"NumberField\";\n"],"names":["IconRemove","IconAdd"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { N as NumberField, N as default } from './NumberField-CFYbODNe.js';
1
+ export { N as NumberField, N as default } from './NumberField-TQyVxw3T.js';
2
2
  //# sourceMappingURL=NumberField.js.map
package/dist/Overflow.js CHANGED
@@ -5,6 +5,7 @@ import { F as Flex } from './Flex-Bb3iHExM.js';
5
5
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
6
6
  import { useTrackingId } from './useTrackingId.js';
7
7
  import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DjqeAJZ9.js';
8
+ import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
8
9
  import { g as getKeyboardFocusableElements } from './getKeyboardFocusableElements-B_U9rt6y.js';
9
10
 
10
11
  import './Overflow.css';const overflow = "_overflow_ysk0y_1";
@@ -46,9 +47,11 @@ const Overflow$1 = forwardRef(
46
47
  height,
47
48
  width,
48
49
  truncate,
50
+ contentRef: contentRefProp,
49
51
  ...rest
50
52
  } = componentProps;
51
53
  const contentRef = useRef(null);
54
+ const mergedContentRef = useMergeRefs([contentRef, contentRefProp]);
52
55
  const [expanded, setExpanded] = useState(false);
53
56
  const [shadow, setShadow] = useState({
54
57
  left: false,
@@ -205,7 +208,7 @@ const Overflow$1 = forwardRef(
205
208
  className: overflowStyles["content"],
206
209
  onScroll: handleOnScroll,
207
210
  style: contentStyle2,
208
- ref: contentRef,
211
+ ref: mergedContentRef,
209
212
  direction,
210
213
  gap,
211
214
  tabIndex: 0,
@@ -251,7 +254,7 @@ const Overflow$1 = forwardRef(
251
254
  {
252
255
  className: overflowStyles["content"],
253
256
  onScroll: handleOnScroll,
254
- ref: contentRef,
257
+ ref: mergedContentRef,
255
258
  style: contentStyle,
256
259
  direction,
257
260
  gap,
@@ -1 +1 @@
1
- {"version":3,"file":"Overflow.js","sources":["../src/components/Overflow/Overflow.tsx","../src/components/Overflow/OverflowText.tsx","../src/components/Overflow/index.ts"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n MouseEvent,\n Ref,\n forwardRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { useTrackingId } from \"../../hooks\";\nimport { DataTrackingId, LayoutUtilProps } from \"../../types\";\nimport {\n childrenToString,\n getKeyboardFocusableElements,\n} from \"../../internal/functions\";\nimport cx from \"classnames\";\nimport styles from \"./Overflow.module.scss\";\nimport { Flex } from \"../Flex\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\n/**\n * Props for the Overflow component\n * @property {string} [children] - The content to be displayed in the overflow container\n * @property {number | string | \"inherit\"} [height] - The height of the overflow container\n * @property {boolean | object} [truncate] - Whether to truncate content with expand/collapse functionality\n */\nexport type OverflowProps = ComponentPropsWithoutRef<\"div\"> &\n Omit<LayoutUtilProps, \"direction\"> & {\n /**\n * The direction of the overflow container\n * @default column\n */\n direction?: LayoutUtilProps[\"flexDirection\"];\n /**\n * The height of the overflow container\n * @remarks \"inherit\" is not supported when truncate is enabled\n */\n height?: number | string | \"inherit\";\n /**\n * The width of the overflow container\n */\n width?: number | string;\n } & (\n | {\n /**\n * Whether to truncate content with expand/collapse functionality\n * @default false\n */\n truncate?: false;\n }\n | {\n /**\n * Direction must be column when truncate is enabled\n */\n direction: \"column\";\n /**\n * Truncation configuration with expand/collapse functionality\n */\n truncate:\n | boolean\n | {\n /**\n * Text to display on the expand button\n * @default \"Show more...\"\n */\n expandText?: string;\n /**\n * Text to display on the collapse button\n * @default \"Show less...\"\n */\n collapseText?: string;\n /**\n * Callback fired when content is expanded\n */\n onExpand?: (e: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Callback fired when content is collapsed\n */\n onCollapse?: (e: MouseEvent<HTMLButtonElement>) => void;\n };\n }\n ) &\n DataTrackingId;\n\n/**\n * Internal state for shadow indicators\n */\ntype ShadowState = {\n /**\n * Whether to show right shadow indicator\n */\n right: boolean;\n /**\n * Whether to show left shadow indicator\n */\n left: boolean;\n /**\n * Whether to show top shadow indicator\n */\n top: boolean;\n /**\n * Whether to show bottom shadow indicator\n */\n bottom: boolean;\n};\n\nexport const Overflow = forwardRef(\n ({ gap, ...props }: OverflowProps, ref: Ref<HTMLDivElement>) => {\n const data = {\n children: childrenToString(props.children),\n height: props.height,\n truncate: props.truncate,\n };\n\n const trackingId = useTrackingId({\n name: \"Overflow\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n className,\n direction = \"column\",\n style,\n height,\n width,\n truncate,\n ...rest\n } = componentProps;\n const contentRef = useRef<HTMLDivElement>(null);\n const [expanded, setExpanded] = useState(false);\n const [shadow, setShadow] = useState<ShadowState>({\n left: false,\n right: false,\n top: false,\n bottom: false,\n });\n const [contentClipped, setContentClipped] = useState(false);\n\n const shadowUpdate = useCallback(() => {\n if (!contentRef.current) return;\n if (direction === \"row\") {\n const right =\n contentRef.current.offsetWidth < contentRef.current.scrollWidth;\n setShadow((prev) => {\n return {\n ...prev,\n right,\n };\n });\n return;\n }\n const bottom =\n contentRef.current.offsetHeight < contentRef.current.scrollHeight;\n setShadow((prev) => {\n return {\n ...prev,\n bottom,\n };\n });\n }, [direction]);\n\n useLayoutEffect(() => {\n if (!contentRef.current) return;\n\n const mutationCallback = () => {\n if (!contentRef.current) return;\n const contentHeight =\n typeof height === \"number\" ? height : contentRef.current.offsetHeight;\n if (contentHeight < contentRef.current.scrollHeight) {\n setContentClipped(true);\n return;\n }\n setExpanded(false);\n setContentClipped(false);\n };\n\n const observer = new MutationObserver(mutationCallback);\n observer.observe(contentRef.current, {\n childList: true, // Observe changes to child elements\n });\n return () => {\n observer.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useLayoutEffect(() => {\n if (contentRef.current) {\n const observer = new ResizeObserver(() => {\n shadowUpdate();\n });\n\n observer.observe(contentRef.current);\n\n // Cleanup function\n return () => {\n observer.disconnect();\n };\n }\n }, [shadowUpdate]);\n\n useEffect(() => {\n if (!contentRef.current) return;\n setContentClipped(\n contentRef.current.offsetHeight < contentRef.current.scrollHeight,\n );\n }, []);\n\n useEffect(() => {\n // account for loading children after initial render\n shadowUpdate();\n }, [children, shadowUpdate]);\n\n // update overflow position on scroll\n const handleOnScroll = () => {\n if (!contentRef.current) return;\n const target = contentRef.current;\n if (direction === \"row\") {\n const left = target.scrollLeft > 0;\n const right =\n target.scrollLeft < target.scrollWidth - target.offsetWidth;\n setShadow({\n left,\n right,\n top: false,\n bottom: false,\n });\n return;\n }\n const top = target.scrollTop > 0;\n const bottom =\n target.scrollTop < target.scrollHeight - target.offsetHeight;\n setShadow({\n top,\n bottom,\n left: false,\n right: false,\n });\n };\n const inertOverflowFocusables = (entries: IntersectionObserverEntry[]) => {\n entries.forEach((element) => {\n if (!element.isIntersecting) {\n element.target.setAttribute(\"disabled\", \"true\");\n } else {\n element.target.removeAttribute(\"disabled\");\n }\n });\n };\n\n const overflowClassNames = cx([styles[\"overflow\"]], className, {\n [styles[\"horizontal\"]]: direction === \"row\",\n [styles[\"truncate\"]]: !!truncate,\n [styles[\"expanded\"]]: expanded,\n });\n\n useEffect(() => {\n if (!truncate) return;\n const observer = new IntersectionObserver(inertOverflowFocusables);\n const focusable = getKeyboardFocusableElements(contentRef.current);\n focusable.forEach((element) => {\n observer.observe(element);\n });\n }, [truncate]);\n\n if (truncate) {\n const wrapperStyle = {\n ...style,\n ...layoutStyles,\n };\n const contentStyle = {\n minHeight: height ?? undefined,\n minWidth: width ?? undefined,\n };\n\n const expandString =\n typeof truncate === \"object\" ? truncate.expandText : \"Show more...\";\n const collapseString =\n typeof truncate === \"object\" ? truncate.collapseText : \"Show less...\";\n\n const onExpandClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n setExpanded((prev) => !prev);\n setTimeout(() => {\n handleOnScroll();\n }, 100);\n if (typeof truncate !== \"object\") return;\n if (expanded) {\n truncate.onCollapse?.(e);\n return;\n }\n truncate.onExpand?.(e);\n };\n\n const showExpand = contentClipped;\n\n return (\n <div\n ref={ref}\n style={wrapperStyle}\n className={overflowClassNames}\n data-anv=\"overflow\"\n data-tracking-id={trackingId}\n {...rest}\n >\n {shadow.top && !truncate ? (\n <div className={styles[\"shadow-top\"]} />\n ) : null}\n {shadow.left && !truncate ? (\n <div className={styles[\"shadow-left\"]} />\n ) : null}\n <Flex\n className={styles[\"content\"]}\n onScroll={handleOnScroll}\n style={contentStyle}\n ref={contentRef}\n direction={direction}\n gap={gap}\n /**\n * This is disabled because scrollable area much also be focusable.\n * References:\n * - {@link https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/0d5321a5457c5f0da0ca216053cc5b4f571b53ae/docs/rules/no-noninteractive-tabindex.md}\n * - {@link https://chromestatus.com/feature/5231964663578624}\n */\n tabIndex={0}\n >\n {children}\n </Flex>\n {shadow.bottom && !truncate ? (\n <div className={styles[\"shadow-bottom\"]} />\n ) : null}\n {shadow.right && !truncate ? (\n <div className={styles[\"shadow-right\"]} />\n ) : null}\n {truncate && showExpand ? (\n <button\n className={styles[\"expand-button\"]}\n onClick={onExpandClickHandler}\n >\n {expanded ? collapseString : expandString}\n </button>\n ) : null}\n </div>\n );\n }\n\n const wrapperStyle = {\n ...style,\n ...layoutStyles,\n };\n\n const contentStyle = {\n height: height ?? undefined,\n width: width ?? undefined,\n };\n\n return (\n <div\n ref={ref}\n style={wrapperStyle}\n className={overflowClassNames}\n data-anv=\"overflow\"\n data-tracking-id={trackingId}\n {...rest}\n >\n {shadow.left ? <div className={styles[\"shadow-left\"]} /> : null}\n {shadow.top ? <div className={styles[\"shadow-top\"]} /> : null}\n <Flex\n className={styles[\"content\"]}\n onScroll={handleOnScroll}\n ref={contentRef}\n style={contentStyle}\n direction={direction}\n gap={gap}\n /**\n * This is disabled because scrollable area much also be focusable.\n * References:\n * - {@link https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/0d5321a5457c5f0da0ca216053cc5b4f571b53ae/docs/rules/no-noninteractive-tabindex.md}\n * - {@link https://chromestatus.com/feature/5231964663578624}\n */\n tabIndex={0}\n >\n {children}\n </Flex>\n {shadow.bottom ? <div className={styles[\"shadow-bottom\"]} /> : null}\n {shadow.right ? <div className={styles[\"shadow-right\"]} /> : null}\n </div>\n );\n },\n);\nOverflow.displayName = \"Overflow\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useState,\n MouseEvent,\n useRef,\n useEffect,\n} from \"react\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { DataTrackingId, LayoutUtilProps } from \"../../types\";\nimport {\n childrenToString,\n getKeyboardFocusableElements,\n} from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport cx from \"classnames\";\nimport overflowStyles from \"./Overflow.module.scss\";\nimport styles from \"./OverflowText.module.scss\";\n\n/**\n * Props for the OverflowText component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type OverflowTextProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * Number of rows to display before truncation\n * @default 1\n */\n rows?: number | \"unlimited\";\n } & (\n | {\n /**\n * Whether the text is expandable\n * @default false\n */\n expandable?: false;\n /**\n * Text for expand button (not used when expandable is false)\n */\n expandText?: never;\n /**\n * Text for collapse button (not used when expandable is false)\n */\n collapseText?: never;\n /**\n * Callback for expand event (not used when expandable is false)\n */\n onExpand?: never;\n /**\n * Callback for collapse event (not used when expandable is false)\n */\n onCollapse?: never;\n }\n | {\n /**\n * Whether the text is expandable\n */\n expandable: true;\n /**\n * Text to display on the expand button\n * @default \"Show more...\"\n */\n expandText?: string;\n /**\n * Text to display on the collapse button\n * @default \"Show less...\"\n */\n collapseText?: string;\n /**\n * Callback fired when content is expanded\n */\n onExpand?: (e: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Callback fired when content is collapsed\n */\n onCollapse?: (e: MouseEvent<HTMLButtonElement>) => void;\n }\n ) &\n DataTrackingId;\n\n/**\n * OverflowText component for text content with line truncation and expansion.\n *\n * Features:\n * - Configurable line limit with row-based truncation\n * - Expandable content with custom expand/collapse text\n * - Automatic height calculation and overflow detection\n * - Keyboard navigation support for focusable elements\n * - Resize observer for dynamic content changes\n * - Accessibility features with proper focus management\n * - Support for unlimited rows or specific row limits\n * - Callback support for expand/collapse events\n * - Layout utility props support\n *\n * @example\n * <OverflowText rows={3} expandable>\n * <Text>\n * This is a long text that will be truncated to 3 rows\n * and can be expanded to show the full content.\n * </Text>\n * </OverflowText>\n */\nexport const OverflowText = forwardRef<HTMLDivElement, OverflowTextProps>(\n (props, ref) => {\n const data = {\n children: childrenToString(props.children),\n rows: props.rows,\n expandable: props.expandable,\n expandText: props.expandText,\n collapseText: props.collapseText,\n };\n\n const trackingId = useTrackingId({\n name: \"OverflowText\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n const { rows = 1, ...otherProps } = props;\n const { layoutStyles, componentProps } = useLayoutPropsUtil(otherProps);\n const [expanded, setExpanded] = useState(false);\n const [heights, setHeights] = useState<{\n clientHeight: number;\n scrollHeight: number;\n }>({ clientHeight: 0, scrollHeight: 0 });\n const { className, style, children, ...rest } = componentProps;\n\n const contentRef = useRef<HTMLDivElement>(null);\n\n const styledCombined = {\n ...style,\n ...layoutStyles,\n \"--a2-inline-overflow-text-row\":\n expanded || rows === \"unlimited\" ? \"initial\" : rows,\n };\n\n useEffect(() => {\n if (contentRef.current) {\n const observer = new ResizeObserver(() => {\n if (!contentRef.current) return;\n setHeights({\n clientHeight: contentRef.current.clientHeight,\n scrollHeight: contentRef.current.scrollHeight,\n });\n });\n\n observer.observe(contentRef.current);\n\n // Cleanup function\n return () => {\n observer.disconnect();\n };\n }\n }, []);\n\n const inertOverflowFocusables = (entries: IntersectionObserverEntry[]) => {\n entries.forEach((element) => {\n if (!element.isIntersecting) {\n element.target.setAttribute(\"disabled\", \"true\");\n } else {\n element.target.removeAttribute(\"disabled\");\n }\n });\n };\n\n useEffect(() => {\n if (!(\"expandable\" in props)) return;\n const observer = new IntersectionObserver(inertOverflowFocusables);\n const focusable = getKeyboardFocusableElements(contentRef.current);\n focusable.forEach((element) => {\n observer.observe(element);\n });\n // This is added because we don't need to watch for all props\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.expandable]);\n\n const showExpand = expanded || heights.clientHeight < heights.scrollHeight;\n\n if (\"expandable\" in props && props.expandable === true) {\n const {\n expandable,\n expandText,\n collapseText,\n onExpand,\n onCollapse,\n ...expandableRest\n } = rest;\n const expandString = expandText ?? \"Show more...\";\n const collapseString = collapseText ?? \"Show less...\";\n\n const onExpandClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n setExpanded((prev) => !prev);\n if (expanded) {\n onCollapse?.(e);\n return;\n }\n onExpand?.(e);\n };\n\n const overflowTextClassNames = cx([styles[\"overflow-text\"]], className, {\n [styles[\"expanded\"]]: expanded,\n });\n return (\n <div\n ref={ref}\n className={overflowTextClassNames}\n style={styledCombined}\n data-anv=\"overflow-text\"\n data-tracking-id={trackingId}\n {...expandableRest}\n >\n <div className={styles[\"content\"]} ref={contentRef}>\n {children}\n </div>\n {showExpand && (\n <button\n className={overflowStyles[\"expand-button\"]}\n onClick={onExpandClickHandler}\n >\n {expanded ? collapseString : expandString}\n </button>\n )}\n </div>\n );\n }\n\n const overflowTextClassNames = cx([styles[\"overflow-text\"], className]);\n return (\n <div\n ref={ref}\n className={overflowTextClassNames}\n style={styledCombined}\n data-anv=\"overflow-text\"\n data-tracking-id={trackingId}\n {...rest}\n >\n <div className={styles[\"content\"]}>{children}</div>\n </div>\n );\n },\n);\n\nOverflowText.displayName = \"OverflowText\";\n","import { Overflow as OverflowElement, type OverflowProps } from \"./Overflow\";\nimport { OverflowText, type OverflowTextProps } from \"./OverflowText\";\n\n/**\n * Overflow component for handling content that exceeds container boundaries.\n *\n * Features:\n * - Supports both horizontal and vertical overflow\n * - Automatic shadow indicators for scrollable content\n * - Truncation with expand/collapse functionality\n * - Keyboard navigation support for focusable elements\n * - Automatic height and width management\n * - Layout utility props support\n * - Resize observer for dynamic content changes\n * - Accessibility features with proper focus management\n * - Scroll event handling with shadow updates\n *\n * @example\n * <Overflow direction=\"column\" height={400} gap=\"4\">\n * {items.map((item, i) => (\n * <Card key={i} style={{ width: \"100%\", minHeight: 100 }}>\n * {item.content}\n * </Card>\n * ))}\n * </Overflow>\n */\nexport const Overflow = Object.assign(OverflowElement, {\n Text: OverflowText,\n});\n\nexport default Overflow;\n\nexport { type OverflowProps };\nexport { OverflowText, type OverflowTextProps };\n"],"names":["Overflow","styles","wrapperStyle","contentStyle","overflowTextClassNames","OverflowElement"],"mappings":"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"}
1
+ {"version":3,"file":"Overflow.js","sources":["../src/components/Overflow/Overflow.tsx","../src/components/Overflow/OverflowText.tsx","../src/components/Overflow/index.ts"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n MouseEvent,\n Ref,\n forwardRef,\n useCallback,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport { useMergeRefs, useTrackingId } from \"../../hooks\";\nimport { DataTrackingId, LayoutUtilProps } from \"../../types\";\nimport {\n childrenToString,\n getKeyboardFocusableElements,\n} from \"../../internal/functions\";\nimport cx from \"classnames\";\nimport styles from \"./Overflow.module.scss\";\nimport { Flex } from \"../Flex\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\n\n/**\n * Props for the Overflow component\n * @property {string} [children] - The content to be displayed in the overflow container\n * @property {number | string | \"inherit\"} [height] - The height of the overflow container\n * @property {boolean | object} [truncate] - Whether to truncate content with expand/collapse functionality\n */\nexport type OverflowProps = ComponentPropsWithoutRef<\"div\"> &\n Omit<LayoutUtilProps, \"direction\"> & {\n /**\n * The direction of the overflow container\n * @default column\n */\n direction?: LayoutUtilProps[\"flexDirection\"];\n /**\n * The height of the overflow container\n * @remarks \"inherit\" is not supported when truncate is enabled\n */\n height?: number | string | \"inherit\";\n /**\n * The width of the overflow container\n */\n width?: number | string;\n /**\n * Ref to the scrollable content element (the inner element with `overflow: auto`).\n * The component's own `ref` points at the outer wrapper, which does not scroll, so\n * use this when an integration must target the actual scroller — e.g. a virtualizer's\n * `getScrollElement`, an `IntersectionObserver` sentinel, or programmatic scrolling.\n */\n contentRef?: Ref<HTMLDivElement>;\n } & (\n | {\n /**\n * Whether to truncate content with expand/collapse functionality\n * @default false\n */\n truncate?: false;\n }\n | {\n /**\n * Direction must be column when truncate is enabled\n */\n direction: \"column\";\n /**\n * Truncation configuration with expand/collapse functionality\n */\n truncate:\n | boolean\n | {\n /**\n * Text to display on the expand button\n * @default \"Show more...\"\n */\n expandText?: string;\n /**\n * Text to display on the collapse button\n * @default \"Show less...\"\n */\n collapseText?: string;\n /**\n * Callback fired when content is expanded\n */\n onExpand?: (e: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Callback fired when content is collapsed\n */\n onCollapse?: (e: MouseEvent<HTMLButtonElement>) => void;\n };\n }\n ) &\n DataTrackingId;\n\n/**\n * Internal state for shadow indicators\n */\ntype ShadowState = {\n /**\n * Whether to show right shadow indicator\n */\n right: boolean;\n /**\n * Whether to show left shadow indicator\n */\n left: boolean;\n /**\n * Whether to show top shadow indicator\n */\n top: boolean;\n /**\n * Whether to show bottom shadow indicator\n */\n bottom: boolean;\n};\n\nexport const Overflow = forwardRef(\n ({ gap, ...props }: OverflowProps, ref: Ref<HTMLDivElement>) => {\n const data = {\n children: childrenToString(props.children),\n height: props.height,\n truncate: props.truncate,\n };\n\n const trackingId = useTrackingId({\n name: \"Overflow\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n\n const { layoutStyles, componentProps } = useLayoutPropsUtil(props);\n const {\n children,\n className,\n direction = \"column\",\n style,\n height,\n width,\n truncate,\n contentRef: contentRefProp,\n ...rest\n } = componentProps;\n const contentRef = useRef<HTMLDivElement>(null);\n // Expose the scrollable content element to consumers while keeping the internal\n // ref the observers and scroll handlers depend on.\n const mergedContentRef = useMergeRefs([contentRef, contentRefProp]);\n const [expanded, setExpanded] = useState(false);\n const [shadow, setShadow] = useState<ShadowState>({\n left: false,\n right: false,\n top: false,\n bottom: false,\n });\n const [contentClipped, setContentClipped] = useState(false);\n\n const shadowUpdate = useCallback(() => {\n if (!contentRef.current) return;\n if (direction === \"row\") {\n const right =\n contentRef.current.offsetWidth < contentRef.current.scrollWidth;\n setShadow((prev) => {\n return {\n ...prev,\n right,\n };\n });\n return;\n }\n const bottom =\n contentRef.current.offsetHeight < contentRef.current.scrollHeight;\n setShadow((prev) => {\n return {\n ...prev,\n bottom,\n };\n });\n }, [direction]);\n\n useLayoutEffect(() => {\n if (!contentRef.current) return;\n\n const mutationCallback = () => {\n if (!contentRef.current) return;\n const contentHeight =\n typeof height === \"number\" ? height : contentRef.current.offsetHeight;\n if (contentHeight < contentRef.current.scrollHeight) {\n setContentClipped(true);\n return;\n }\n setExpanded(false);\n setContentClipped(false);\n };\n\n const observer = new MutationObserver(mutationCallback);\n observer.observe(contentRef.current, {\n childList: true, // Observe changes to child elements\n });\n return () => {\n observer.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useLayoutEffect(() => {\n if (contentRef.current) {\n const observer = new ResizeObserver(() => {\n shadowUpdate();\n });\n\n observer.observe(contentRef.current);\n\n // Cleanup function\n return () => {\n observer.disconnect();\n };\n }\n }, [shadowUpdate]);\n\n useEffect(() => {\n if (!contentRef.current) return;\n setContentClipped(\n contentRef.current.offsetHeight < contentRef.current.scrollHeight,\n );\n }, []);\n\n useEffect(() => {\n // account for loading children after initial render\n shadowUpdate();\n }, [children, shadowUpdate]);\n\n // update overflow position on scroll\n const handleOnScroll = () => {\n if (!contentRef.current) return;\n const target = contentRef.current;\n if (direction === \"row\") {\n const left = target.scrollLeft > 0;\n const right =\n target.scrollLeft < target.scrollWidth - target.offsetWidth;\n setShadow({\n left,\n right,\n top: false,\n bottom: false,\n });\n return;\n }\n const top = target.scrollTop > 0;\n const bottom =\n target.scrollTop < target.scrollHeight - target.offsetHeight;\n setShadow({\n top,\n bottom,\n left: false,\n right: false,\n });\n };\n const inertOverflowFocusables = (entries: IntersectionObserverEntry[]) => {\n entries.forEach((element) => {\n if (!element.isIntersecting) {\n element.target.setAttribute(\"disabled\", \"true\");\n } else {\n element.target.removeAttribute(\"disabled\");\n }\n });\n };\n\n const overflowClassNames = cx([styles[\"overflow\"]], className, {\n [styles[\"horizontal\"]]: direction === \"row\",\n [styles[\"truncate\"]]: !!truncate,\n [styles[\"expanded\"]]: expanded,\n });\n\n useEffect(() => {\n if (!truncate) return;\n const observer = new IntersectionObserver(inertOverflowFocusables);\n const focusable = getKeyboardFocusableElements(contentRef.current);\n focusable.forEach((element) => {\n observer.observe(element);\n });\n }, [truncate]);\n\n if (truncate) {\n const wrapperStyle = {\n ...style,\n ...layoutStyles,\n };\n const contentStyle = {\n minHeight: height ?? undefined,\n minWidth: width ?? undefined,\n };\n\n const expandString =\n typeof truncate === \"object\" ? truncate.expandText : \"Show more...\";\n const collapseString =\n typeof truncate === \"object\" ? truncate.collapseText : \"Show less...\";\n\n const onExpandClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n setExpanded((prev) => !prev);\n setTimeout(() => {\n handleOnScroll();\n }, 100);\n if (typeof truncate !== \"object\") return;\n if (expanded) {\n truncate.onCollapse?.(e);\n return;\n }\n truncate.onExpand?.(e);\n };\n\n const showExpand = contentClipped;\n\n return (\n <div\n ref={ref}\n style={wrapperStyle}\n className={overflowClassNames}\n data-anv=\"overflow\"\n data-tracking-id={trackingId}\n {...rest}\n >\n {shadow.top && !truncate ? (\n <div className={styles[\"shadow-top\"]} />\n ) : null}\n {shadow.left && !truncate ? (\n <div className={styles[\"shadow-left\"]} />\n ) : null}\n <Flex\n className={styles[\"content\"]}\n onScroll={handleOnScroll}\n style={contentStyle}\n ref={mergedContentRef}\n direction={direction}\n gap={gap}\n /**\n * This is disabled because scrollable area much also be focusable.\n * References:\n * - {@link https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/0d5321a5457c5f0da0ca216053cc5b4f571b53ae/docs/rules/no-noninteractive-tabindex.md}\n * - {@link https://chromestatus.com/feature/5231964663578624}\n */\n tabIndex={0}\n >\n {children}\n </Flex>\n {shadow.bottom && !truncate ? (\n <div className={styles[\"shadow-bottom\"]} />\n ) : null}\n {shadow.right && !truncate ? (\n <div className={styles[\"shadow-right\"]} />\n ) : null}\n {truncate && showExpand ? (\n <button\n className={styles[\"expand-button\"]}\n onClick={onExpandClickHandler}\n >\n {expanded ? collapseString : expandString}\n </button>\n ) : null}\n </div>\n );\n }\n\n const wrapperStyle = {\n ...style,\n ...layoutStyles,\n };\n\n const contentStyle = {\n height: height ?? undefined,\n width: width ?? undefined,\n };\n\n return (\n <div\n ref={ref}\n style={wrapperStyle}\n className={overflowClassNames}\n data-anv=\"overflow\"\n data-tracking-id={trackingId}\n {...rest}\n >\n {shadow.left ? <div className={styles[\"shadow-left\"]} /> : null}\n {shadow.top ? <div className={styles[\"shadow-top\"]} /> : null}\n <Flex\n className={styles[\"content\"]}\n onScroll={handleOnScroll}\n ref={mergedContentRef}\n style={contentStyle}\n direction={direction}\n gap={gap}\n /**\n * This is disabled because scrollable area much also be focusable.\n * References:\n * - {@link https://github.com/jsx-eslint/eslint-plugin-jsx-a11y/blob/0d5321a5457c5f0da0ca216053cc5b4f571b53ae/docs/rules/no-noninteractive-tabindex.md}\n * - {@link https://chromestatus.com/feature/5231964663578624}\n */\n tabIndex={0}\n >\n {children}\n </Flex>\n {shadow.bottom ? <div className={styles[\"shadow-bottom\"]} /> : null}\n {shadow.right ? <div className={styles[\"shadow-right\"]} /> : null}\n </div>\n );\n },\n);\nOverflow.displayName = \"Overflow\";\n","import {\n ComponentPropsWithoutRef,\n forwardRef,\n useState,\n MouseEvent,\n useRef,\n useEffect,\n} from \"react\";\nimport { useLayoutPropsUtil } from \"../../internal/hooks\";\nimport { DataTrackingId, LayoutUtilProps } from \"../../types\";\nimport {\n childrenToString,\n getKeyboardFocusableElements,\n} from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\n\nimport cx from \"classnames\";\nimport overflowStyles from \"./Overflow.module.scss\";\nimport styles from \"./OverflowText.module.scss\";\n\n/**\n * Props for the OverflowText component\n * @extends ComponentPropsWithoutRef<\"div\">\n * @extends LayoutUtilProps\n */\nexport type OverflowTextProps = ComponentPropsWithoutRef<\"div\"> &\n LayoutUtilProps & {\n /**\n * Number of rows to display before truncation\n * @default 1\n */\n rows?: number | \"unlimited\";\n } & (\n | {\n /**\n * Whether the text is expandable\n * @default false\n */\n expandable?: false;\n /**\n * Text for expand button (not used when expandable is false)\n */\n expandText?: never;\n /**\n * Text for collapse button (not used when expandable is false)\n */\n collapseText?: never;\n /**\n * Callback for expand event (not used when expandable is false)\n */\n onExpand?: never;\n /**\n * Callback for collapse event (not used when expandable is false)\n */\n onCollapse?: never;\n }\n | {\n /**\n * Whether the text is expandable\n */\n expandable: true;\n /**\n * Text to display on the expand button\n * @default \"Show more...\"\n */\n expandText?: string;\n /**\n * Text to display on the collapse button\n * @default \"Show less...\"\n */\n collapseText?: string;\n /**\n * Callback fired when content is expanded\n */\n onExpand?: (e: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Callback fired when content is collapsed\n */\n onCollapse?: (e: MouseEvent<HTMLButtonElement>) => void;\n }\n ) &\n DataTrackingId;\n\n/**\n * OverflowText component for text content with line truncation and expansion.\n *\n * Features:\n * - Configurable line limit with row-based truncation\n * - Expandable content with custom expand/collapse text\n * - Automatic height calculation and overflow detection\n * - Keyboard navigation support for focusable elements\n * - Resize observer for dynamic content changes\n * - Accessibility features with proper focus management\n * - Support for unlimited rows or specific row limits\n * - Callback support for expand/collapse events\n * - Layout utility props support\n *\n * @example\n * <OverflowText rows={3} expandable>\n * <Text>\n * This is a long text that will be truncated to 3 rows\n * and can be expanded to show the full content.\n * </Text>\n * </OverflowText>\n */\nexport const OverflowText = forwardRef<HTMLDivElement, OverflowTextProps>(\n (props, ref) => {\n const data = {\n children: childrenToString(props.children),\n rows: props.rows,\n expandable: props.expandable,\n expandText: props.expandText,\n collapseText: props.collapseText,\n };\n\n const trackingId = useTrackingId({\n name: \"OverflowText\",\n data,\n hasOverride: !!props[\"data-tracking-id\"],\n });\n const { rows = 1, ...otherProps } = props;\n const { layoutStyles, componentProps } = useLayoutPropsUtil(otherProps);\n const [expanded, setExpanded] = useState(false);\n const [heights, setHeights] = useState<{\n clientHeight: number;\n scrollHeight: number;\n }>({ clientHeight: 0, scrollHeight: 0 });\n const { className, style, children, ...rest } = componentProps;\n\n const contentRef = useRef<HTMLDivElement>(null);\n\n const styledCombined = {\n ...style,\n ...layoutStyles,\n \"--a2-inline-overflow-text-row\":\n expanded || rows === \"unlimited\" ? \"initial\" : rows,\n };\n\n useEffect(() => {\n if (contentRef.current) {\n const observer = new ResizeObserver(() => {\n if (!contentRef.current) return;\n setHeights({\n clientHeight: contentRef.current.clientHeight,\n scrollHeight: contentRef.current.scrollHeight,\n });\n });\n\n observer.observe(contentRef.current);\n\n // Cleanup function\n return () => {\n observer.disconnect();\n };\n }\n }, []);\n\n const inertOverflowFocusables = (entries: IntersectionObserverEntry[]) => {\n entries.forEach((element) => {\n if (!element.isIntersecting) {\n element.target.setAttribute(\"disabled\", \"true\");\n } else {\n element.target.removeAttribute(\"disabled\");\n }\n });\n };\n\n useEffect(() => {\n if (!(\"expandable\" in props)) return;\n const observer = new IntersectionObserver(inertOverflowFocusables);\n const focusable = getKeyboardFocusableElements(contentRef.current);\n focusable.forEach((element) => {\n observer.observe(element);\n });\n // This is added because we don't need to watch for all props\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.expandable]);\n\n const showExpand = expanded || heights.clientHeight < heights.scrollHeight;\n\n if (\"expandable\" in props && props.expandable === true) {\n const {\n expandable,\n expandText,\n collapseText,\n onExpand,\n onCollapse,\n ...expandableRest\n } = rest;\n const expandString = expandText ?? \"Show more...\";\n const collapseString = collapseText ?? \"Show less...\";\n\n const onExpandClickHandler = (e: MouseEvent<HTMLButtonElement>) => {\n setExpanded((prev) => !prev);\n if (expanded) {\n onCollapse?.(e);\n return;\n }\n onExpand?.(e);\n };\n\n const overflowTextClassNames = cx([styles[\"overflow-text\"]], className, {\n [styles[\"expanded\"]]: expanded,\n });\n return (\n <div\n ref={ref}\n className={overflowTextClassNames}\n style={styledCombined}\n data-anv=\"overflow-text\"\n data-tracking-id={trackingId}\n {...expandableRest}\n >\n <div className={styles[\"content\"]} ref={contentRef}>\n {children}\n </div>\n {showExpand && (\n <button\n className={overflowStyles[\"expand-button\"]}\n onClick={onExpandClickHandler}\n >\n {expanded ? collapseString : expandString}\n </button>\n )}\n </div>\n );\n }\n\n const overflowTextClassNames = cx([styles[\"overflow-text\"], className]);\n return (\n <div\n ref={ref}\n className={overflowTextClassNames}\n style={styledCombined}\n data-anv=\"overflow-text\"\n data-tracking-id={trackingId}\n {...rest}\n >\n <div className={styles[\"content\"]}>{children}</div>\n </div>\n );\n },\n);\n\nOverflowText.displayName = \"OverflowText\";\n","import { Overflow as OverflowElement, type OverflowProps } from \"./Overflow\";\nimport { OverflowText, type OverflowTextProps } from \"./OverflowText\";\n\n/**\n * Overflow component for handling content that exceeds container boundaries.\n *\n * Features:\n * - Supports both horizontal and vertical overflow\n * - Automatic shadow indicators for scrollable content\n * - Truncation with expand/collapse functionality\n * - Keyboard navigation support for focusable elements\n * - Automatic height and width management\n * - Layout utility props support\n * - Resize observer for dynamic content changes\n * - Accessibility features with proper focus management\n * - Scroll event handling with shadow updates\n *\n * @example\n * <Overflow direction=\"column\" height={400} gap=\"4\">\n * {items.map((item, i) => (\n * <Card key={i} style={{ width: \"100%\", minHeight: 100 }}>\n * {item.content}\n * </Card>\n * ))}\n * </Overflow>\n */\nexport const Overflow = Object.assign(OverflowElement, {\n Text: OverflowText,\n});\n\nexport default Overflow;\n\nexport { type OverflowProps };\nexport { OverflowText, type OverflowTextProps };\n"],"names":["Overflow","styles","wrapperStyle","contentStyle","overflowTextClassNames","OverflowElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmHO,MAAMA,UAAA,GAAW,UAAA;AAAA,EACtB,CAAC,EAAE,GAAA,EAAK,GAAG,KAAA,IAAwB,GAAA,KAA6B;AAC9D,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,QAAA,EAAU,gBAAA,CAAiB,KAAA,CAAM,QAAQ,CAAA;AAAA,MACzC,QAAQ,KAAA,CAAM,MAAA;AAAA,MACd,UAAU,KAAA,CAAM;AAAA,KAClB;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,UAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AAED,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,KAAK,CAAA;AACjE,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,SAAA,GAAY,QAAA;AAAA,MACZ,KAAA;AAAA,MACA,MAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA;AAAA,MACA,UAAA,EAAY,cAAA;AAAA,MACZ,GAAG;AAAA,KACL,GAAI,cAAA;AACJ,IAAA,MAAM,UAAA,GAAa,OAAuB,IAAI,CAAA;AAG9C,IAAA,MAAM,gBAAA,GAAmB,YAAA,CAAa,CAAC,UAAA,EAAY,cAAc,CAAC,CAAA;AAClE,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9C,IAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,QAAA,CAAsB;AAAA,MAChD,IAAA,EAAM,KAAA;AAAA,MACN,KAAA,EAAO,KAAA;AAAA,MACP,GAAA,EAAK,KAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AACD,IAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,SAAS,KAAK,CAAA;AAE1D,IAAA,MAAM,YAAA,GAAe,YAAY,MAAM;AACrC,MAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACzB,MAAA,IAAI,cAAc,KAAA,EAAO;AACvB,QAAA,MAAM,KAAA,GACJ,UAAA,CAAW,OAAA,CAAQ,WAAA,GAAc,WAAW,OAAA,CAAQ,WAAA;AACtD,QAAA,SAAA,CAAU,CAAC,IAAA,KAAS;AAClB,UAAA,OAAO;AAAA,YACL,GAAG,IAAA;AAAA,YACH;AAAA,WACF;AAAA,QACF,CAAC,CAAA;AACD,QAAA;AAAA,MACF;AACA,MAAA,MAAM,MAAA,GACJ,UAAA,CAAW,OAAA,CAAQ,YAAA,GAAe,WAAW,OAAA,CAAQ,YAAA;AACvD,MAAA,SAAA,CAAU,CAAC,IAAA,KAAS;AAClB,QAAA,OAAO;AAAA,UACL,GAAG,IAAA;AAAA,UACH;AAAA,SACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA,EAAG,CAAC,SAAS,CAAC,CAAA;AAEd,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AAEzB,MAAA,MAAM,mBAAmB,MAAM;AAC7B,QAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACzB,QAAA,MAAM,gBACJ,OAAO,MAAA,KAAW,QAAA,GAAW,MAAA,GAAS,WAAW,OAAA,CAAQ,YAAA;AAC3D,QAAA,IAAI,aAAA,GAAgB,UAAA,CAAW,OAAA,CAAQ,YAAA,EAAc;AACnD,UAAA,iBAAA,CAAkB,IAAI,CAAA;AACtB,UAAA;AAAA,QACF;AACA,QAAA,WAAA,CAAY,KAAK,CAAA;AACjB,QAAA,iBAAA,CAAkB,KAAK,CAAA;AAAA,MACzB,CAAA;AAEA,MAAA,MAAM,QAAA,GAAW,IAAI,gBAAA,CAAiB,gBAAgB,CAAA;AACtD,MAAA,QAAA,CAAS,OAAA,CAAQ,WAAW,OAAA,EAAS;AAAA,QACnC,SAAA,EAAW;AAAA;AAAA,OACZ,CAAA;AACD,MAAA,OAAO,MAAM;AACX,QAAA,QAAA,CAAS,UAAA,EAAW;AAAA,MACtB,CAAA;AAAA,IAEF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,eAAA,CAAgB,MAAM;AACpB,MAAA,IAAI,WAAW,OAAA,EAAS;AACtB,QAAA,MAAM,QAAA,GAAW,IAAI,cAAA,CAAe,MAAM;AACxC,UAAA,YAAA,EAAa;AAAA,QACf,CAAC,CAAA;AAED,QAAA,QAAA,CAAS,OAAA,CAAQ,WAAW,OAAO,CAAA;AAGnC,QAAA,OAAO,MAAM;AACX,UAAA,QAAA,CAAS,UAAA,EAAW;AAAA,QACtB,CAAA;AAAA,MACF;AAAA,IACF,CAAA,EAAG,CAAC,YAAY,CAAC,CAAA;AAEjB,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACzB,MAAA,iBAAA;AAAA,QACE,UAAA,CAAW,OAAA,CAAQ,YAAA,GAAe,UAAA,CAAW,OAAA,CAAQ;AAAA,OACvD;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,SAAA,CAAU,MAAM;AAEd,MAAA,YAAA,EAAa;AAAA,IACf,CAAA,EAAG,CAAC,QAAA,EAAU,YAAY,CAAC,CAAA;AAG3B,IAAA,MAAM,iBAAiB,MAAM;AAC3B,MAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACzB,MAAA,MAAM,SAAS,UAAA,CAAW,OAAA;AAC1B,MAAA,IAAI,cAAc,KAAA,EAAO;AACvB,QAAA,MAAM,IAAA,GAAO,OAAO,UAAA,GAAa,CAAA;AACjC,QAAA,MAAM,KAAA,GACJ,MAAA,CAAO,UAAA,GAAa,MAAA,CAAO,cAAc,MAAA,CAAO,WAAA;AAClD,QAAA,SAAA,CAAU;AAAA,UACR,IAAA;AAAA,UACA,KAAA;AAAA,UACA,GAAA,EAAK,KAAA;AAAA,UACL,MAAA,EAAQ;AAAA,SACT,CAAA;AACD,QAAA;AAAA,MACF;AACA,MAAA,MAAM,GAAA,GAAM,OAAO,SAAA,GAAY,CAAA;AAC/B,MAAA,MAAM,MAAA,GACJ,MAAA,CAAO,SAAA,GAAY,MAAA,CAAO,eAAe,MAAA,CAAO,YAAA;AAClD,MAAA,SAAA,CAAU;AAAA,QACR,GAAA;AAAA,QACA,MAAA;AAAA,QACA,IAAA,EAAM,KAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACR,CAAA;AAAA,IACH,CAAA;AACA,IAAA,MAAM,uBAAA,GAA0B,CAAC,OAAA,KAAyC;AACxE,MAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC3B,QAAA,IAAI,CAAC,QAAQ,cAAA,EAAgB;AAC3B,UAAA,OAAA,CAAQ,MAAA,CAAO,YAAA,CAAa,UAAA,EAAY,MAAM,CAAA;AAAA,QAChD,CAAA,MAAO;AACL,UAAA,OAAA,CAAQ,MAAA,CAAO,gBAAgB,UAAU,CAAA;AAAA,QAC3C;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,MAAM,qBAAqB,EAAA,CAAG,CAACC,eAAO,UAAU,CAAC,GAAG,SAAA,EAAW;AAAA,MAC7D,CAACA,cAAA,CAAO,YAAY,CAAC,GAAG,SAAA,KAAc,KAAA;AAAA,MACtC,CAACA,cAAA,CAAO,UAAU,CAAC,GAAG,CAAC,CAAC,QAAA;AAAA,MACxB,CAACA,cAAA,CAAO,UAAU,CAAC,GAAG;AAAA,KACvB,CAAA;AAED,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,CAAC,QAAA,EAAU;AACf,MAAA,MAAM,QAAA,GAAW,IAAI,oBAAA,CAAqB,uBAAuB,CAAA;AACjE,MAAA,MAAM,SAAA,GAAY,4BAAA,CAA6B,UAAA,CAAW,OAAO,CAAA;AACjE,MAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC7B,QAAA,QAAA,CAAS,QAAQ,OAAO,CAAA;AAAA,MAC1B,CAAC,CAAA;AAAA,IACH,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAEb,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,MAAMC,aAAAA,GAAe;AAAA,QACnB,GAAG,KAAA;AAAA,QACH,GAAG;AAAA,OACL;AACA,MAAA,MAAMC,aAAAA,GAAe;AAAA,QACnB,WAAW,MAAA,IAAU,MAAA;AAAA,QACrB,UAAU,KAAA,IAAS;AAAA,OACrB;AAEA,MAAA,MAAM,YAAA,GACJ,OAAO,QAAA,KAAa,QAAA,GAAW,SAAS,UAAA,GAAa,cAAA;AACvD,MAAA,MAAM,cAAA,GACJ,OAAO,QAAA,KAAa,QAAA,GAAW,SAAS,YAAA,GAAe,cAAA;AAEzD,MAAA,MAAM,oBAAA,GAAuB,CAAC,CAAA,KAAqC;AACjE,QAAA,WAAA,CAAY,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAC3B,QAAA,UAAA,CAAW,MAAM;AACf,UAAA,cAAA,EAAe;AAAA,QACjB,GAAG,GAAG,CAAA;AACN,QAAA,IAAI,OAAO,aAAa,QAAA,EAAU;AAClC,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,QAAA,CAAS,aAAa,CAAC,CAAA;AACvB,UAAA;AAAA,QACF;AACA,QAAA,QAAA,CAAS,WAAW,CAAC,CAAA;AAAA,MACvB,CAAA;AAEA,MAAA,MAAM,UAAA,GAAa,cAAA;AAEnB,MAAA,uBACE,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,KAAA,EAAOD,aAAAA;AAAA,UACP,SAAA,EAAW,kBAAA;AAAA,UACX,UAAA,EAAS,UAAA;AAAA,UACT,kBAAA,EAAkB,UAAA;AAAA,UACjB,GAAG,IAAA;AAAA,UAEH,QAAA,EAAA;AAAA,YAAA,MAAA,CAAO,GAAA,IAAO,CAAC,QAAA,mBACd,GAAA,CAAC,SAAI,SAAA,EAAWD,cAAA,CAAO,YAAY,CAAA,EAAG,CAAA,GACpC,IAAA;AAAA,YACH,MAAA,CAAO,IAAA,IAAQ,CAAC,QAAA,mBACf,GAAA,CAAC,SAAI,SAAA,EAAWA,cAAA,CAAO,aAAa,CAAA,EAAG,CAAA,GACrC,IAAA;AAAA,4BACJ,GAAA;AAAA,cAAC,IAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWA,eAAO,SAAS,CAAA;AAAA,gBAC3B,QAAA,EAAU,cAAA;AAAA,gBACV,KAAA,EAAOE,aAAAA;AAAA,gBACP,GAAA,EAAK,gBAAA;AAAA,gBACL,SAAA;AAAA,gBACA,GAAA;AAAA,gBAOA,QAAA,EAAU,CAAA;AAAA,gBAET;AAAA;AAAA,aACH;AAAA,YACC,MAAA,CAAO,MAAA,IAAU,CAAC,QAAA,mBACjB,GAAA,CAAC,SAAI,SAAA,EAAWF,cAAA,CAAO,eAAe,CAAA,EAAG,CAAA,GACvC,IAAA;AAAA,YACH,MAAA,CAAO,KAAA,IAAS,CAAC,QAAA,mBAChB,GAAA,CAAC,SAAI,SAAA,EAAWA,cAAA,CAAO,cAAc,CAAA,EAAG,CAAA,GACtC,IAAA;AAAA,YACH,YAAY,UAAA,mBACX,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAWA,eAAO,eAAe,CAAA;AAAA,gBACjC,OAAA,EAAS,oBAAA;AAAA,gBAER,qBAAW,cAAA,GAAiB;AAAA;AAAA,aAC/B,GACE;AAAA;AAAA;AAAA,OACN;AAAA,IAEJ;AAEA,IAAA,MAAM,YAAA,GAAe;AAAA,MACnB,GAAG,KAAA;AAAA,MACH,GAAG;AAAA,KACL;AAEA,IAAA,MAAM,YAAA,GAAe;AAAA,MACnB,QAAQ,MAAA,IAAU,MAAA;AAAA,MAClB,OAAO,KAAA,IAAS;AAAA,KAClB;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA,EAAO,YAAA;AAAA,QACP,SAAA,EAAW,kBAAA;AAAA,QACX,UAAA,EAAS,UAAA;AAAA,QACT,kBAAA,EAAkB,UAAA;AAAA,QACjB,GAAG,IAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,MAAA,CAAO,uBAAO,GAAA,CAAC,KAAA,EAAA,EAAI,WAAWA,cAAA,CAAO,aAAa,GAAG,CAAA,GAAK,IAAA;AAAA,UAC1D,MAAA,CAAO,sBAAM,GAAA,CAAC,KAAA,EAAA,EAAI,WAAWA,cAAA,CAAO,YAAY,GAAG,CAAA,GAAK,IAAA;AAAA,0BACzD,GAAA;AAAA,YAAC,IAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAWA,eAAO,SAAS,CAAA;AAAA,cAC3B,QAAA,EAAU,cAAA;AAAA,cACV,GAAA,EAAK,gBAAA;AAAA,cACL,KAAA,EAAO,YAAA;AAAA,cACP,SAAA;AAAA,cACA,GAAA;AAAA,cAOA,QAAA,EAAU,CAAA;AAAA,cAET;AAAA;AAAA,WACH;AAAA,UACC,MAAA,CAAO,yBAAS,GAAA,CAAC,KAAA,EAAA,EAAI,WAAWA,cAAA,CAAO,eAAe,GAAG,CAAA,GAAK,IAAA;AAAA,UAC9D,MAAA,CAAO,wBAAQ,GAAA,CAAC,KAAA,EAAA,EAAI,WAAWA,cAAA,CAAO,cAAc,GAAG,CAAA,GAAK;AAAA;AAAA;AAAA,KAC/D;AAAA,EAEJ;AACF,CAAA;AACAD,UAAA,CAAS,WAAA,GAAc,UAAA;;;;;;;;;;AC3ShB,MAAM,YAAA,GAAe,UAAA;AAAA,EAC1B,CAAC,OAAO,GAAA,KAAQ;AACd,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,QAAA,EAAU,gBAAA,CAAiB,KAAA,CAAM,QAAQ,CAAA;AAAA,MACzC,MAAM,KAAA,CAAM,IAAA;AAAA,MACZ,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,YAAY,KAAA,CAAM,UAAA;AAAA,MAClB,cAAc,KAAA,CAAM;AAAA,KACtB;AAEA,IAAA,MAAM,aAAa,aAAA,CAAc;AAAA,MAC/B,IAAA,EAAM,cAAA;AAAA,MACN,IAAA;AAAA,MACA,WAAA,EAAa,CAAC,CAAC,KAAA,CAAM,kBAAkB;AAAA,KACxC,CAAA;AACD,IAAA,MAAM,EAAE,IAAA,GAAO,CAAA,EAAG,GAAG,YAAW,GAAI,KAAA;AACpC,IAAA,MAAM,EAAE,YAAA,EAAc,cAAA,EAAe,GAAI,mBAAmB,UAAU,CAAA;AACtE,IAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9C,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,QAAA,CAG3B,EAAE,YAAA,EAAc,CAAA,EAAG,YAAA,EAAc,CAAA,EAAG,CAAA;AACvC,IAAA,MAAM,EAAE,SAAA,EAAW,KAAA,EAAO,QAAA,EAAU,GAAG,MAAK,GAAI,cAAA;AAEhD,IAAA,MAAM,UAAA,GAAa,OAAuB,IAAI,CAAA;AAE9C,IAAA,MAAM,cAAA,GAAiB;AAAA,MACrB,GAAG,KAAA;AAAA,MACH,GAAG,YAAA;AAAA,MACH,+BAAA,EACE,QAAA,IAAY,IAAA,KAAS,WAAA,GAAc,SAAA,GAAY;AAAA,KACnD;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,WAAW,OAAA,EAAS;AACtB,QAAA,MAAM,QAAA,GAAW,IAAI,cAAA,CAAe,MAAM;AACxC,UAAA,IAAI,CAAC,WAAW,OAAA,EAAS;AACzB,UAAA,UAAA,CAAW;AAAA,YACT,YAAA,EAAc,WAAW,OAAA,CAAQ,YAAA;AAAA,YACjC,YAAA,EAAc,WAAW,OAAA,CAAQ;AAAA,WAClC,CAAA;AAAA,QACH,CAAC,CAAA;AAED,QAAA,QAAA,CAAS,OAAA,CAAQ,WAAW,OAAO,CAAA;AAGnC,QAAA,OAAO,MAAM;AACX,UAAA,QAAA,CAAS,UAAA,EAAW;AAAA,QACtB,CAAA;AAAA,MACF;AAAA,IACF,CAAA,EAAG,EAAE,CAAA;AAEL,IAAA,MAAM,uBAAA,GAA0B,CAAC,OAAA,KAAyC;AACxE,MAAA,OAAA,CAAQ,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC3B,QAAA,IAAI,CAAC,QAAQ,cAAA,EAAgB;AAC3B,UAAA,OAAA,CAAQ,MAAA,CAAO,YAAA,CAAa,UAAA,EAAY,MAAM,CAAA;AAAA,QAChD,CAAA,MAAO;AACL,UAAA,OAAA,CAAQ,MAAA,CAAO,gBAAgB,UAAU,CAAA;AAAA,QAC3C;AAAA,MACF,CAAC,CAAA;AAAA,IACH,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,IAAI,EAAE,gBAAgB,KAAA,CAAA,EAAQ;AAC9B,MAAA,MAAM,QAAA,GAAW,IAAI,oBAAA,CAAqB,uBAAuB,CAAA;AACjE,MAAA,MAAM,SAAA,GAAY,4BAAA,CAA6B,UAAA,CAAW,OAAO,CAAA;AACjE,MAAA,SAAA,CAAU,OAAA,CAAQ,CAAC,OAAA,KAAY;AAC7B,QAAA,QAAA,CAAS,QAAQ,OAAO,CAAA;AAAA,MAC1B,CAAC,CAAA;AAAA,IAGH,CAAA,EAAG,CAAC,KAAA,CAAM,UAAU,CAAC,CAAA;AAErB,IAAA,MAAM,UAAA,GAAa,QAAA,IAAY,OAAA,CAAQ,YAAA,GAAe,OAAA,CAAQ,YAAA;AAE9D,IAAA,IAAI,YAAA,IAAgB,KAAA,IAAS,KAAA,CAAM,UAAA,KAAe,IAAA,EAAM;AACtD,MAAA,MAAM;AAAA,QACJ,UAAA;AAAA,QACA,UAAA;AAAA,QACA,YAAA;AAAA,QACA,QAAA;AAAA,QACA,UAAA;AAAA,QACA,GAAG;AAAA,OACL,GAAI,IAAA;AACJ,MAAA,MAAM,eAAe,UAAA,IAAc,cAAA;AACnC,MAAA,MAAM,iBAAiB,YAAA,IAAgB,cAAA;AAEvC,MAAA,MAAM,oBAAA,GAAuB,CAAC,CAAA,KAAqC;AACjE,QAAA,WAAA,CAAY,CAAC,IAAA,KAAS,CAAC,IAAI,CAAA;AAC3B,QAAA,IAAI,QAAA,EAAU;AACZ,UAAA,UAAA,GAAa,CAAC,CAAA;AACd,UAAA;AAAA,QACF;AACA,QAAA,QAAA,GAAW,CAAC,CAAA;AAAA,MACd,CAAA;AAEA,MAAA,MAAMI,0BAAyB,EAAA,CAAG,CAAC,OAAO,eAAe,CAAC,GAAG,SAAA,EAAW;AAAA,QACtE,CAAC,MAAA,CAAO,UAAU,CAAC,GAAG;AAAA,OACvB,CAAA;AACD,MAAA,uBACE,IAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,GAAA;AAAA,UACA,SAAA,EAAWA,uBAAAA;AAAA,UACX,KAAA,EAAO,cAAA;AAAA,UACP,UAAA,EAAS,eAAA;AAAA,UACT,kBAAA,EAAkB,UAAA;AAAA,UACjB,GAAG,cAAA;AAAA,UAEJ,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,SAAI,SAAA,EAAW,MAAA,CAAO,SAAS,CAAA,EAAG,GAAA,EAAK,YACrC,QAAA,EACH,CAAA;AAAA,YACC,UAAA,oBACC,GAAA;AAAA,cAAC,QAAA;AAAA,cAAA;AAAA,gBACC,SAAA,EAAW,eAAe,eAAe,CAAA;AAAA,gBACzC,OAAA,EAAS,oBAAA;AAAA,gBAER,qBAAW,cAAA,GAAiB;AAAA;AAAA;AAC/B;AAAA;AAAA,OAEJ;AAAA,IAEJ;AAEA,IAAA,MAAM,yBAAyB,EAAA,CAAG,CAAC,OAAO,eAAe,CAAA,EAAG,SAAS,CAAC,CAAA;AACtE,IAAA,uBACE,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAW,sBAAA;AAAA,QACX,KAAA,EAAO,cAAA;AAAA,QACP,UAAA,EAAS,eAAA;AAAA,QACT,kBAAA,EAAkB,UAAA;AAAA,QACjB,GAAG,IAAA;AAAA,QAEJ,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,SAAS,GAAI,QAAA,EAAS;AAAA;AAAA,KAC/C;AAAA,EAEJ;AACF;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA;;AC1NpB,MAAM,QAAA,GAAW,MAAA,CAAO,MAAA,CAAOC,UAAA,EAAiB;AAAA,EACrD,IAAA,EAAM;AACR,CAAC;;;;"}
@@ -2,13 +2,13 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { createContext, forwardRef, useContext, useState, useLayoutEffect, useRef, useEffect, useMemo, useCallback } from 'react';
4
4
  import { c as cx } from './index-De1g9FRV.js';
5
- import { P as Popover, a as usePopoverContext } from './AiMark-D6ScGfyP.js';
5
+ import { P as Popover, a as usePopoverContext } from './AiMark-Cb8qjOm8.js';
6
6
  import { S as SvgKeyboardArrowDown } from './keyboard_arrow_down-C8WQ38p1.js';
7
7
  import { S as SvgKeyboardArrowUp } from './keyboard_arrow_up-CxzK6LAl.js';
8
8
  import { S as SvgChevronRight } from './chevron_right-BdpsxX7x.js';
9
9
  import { b as BreakpointLg } from './primitive-BXgYQTTw.js';
10
10
  import { useTrackingId } from './useTrackingId.js';
11
- import { B as Button } from './Button-ChQARW0y.js';
11
+ import { B as Button } from './Button-BUb1Qc37.js';
12
12
  import { I as Icon } from './Icon-BEwHECSM.js';
13
13
  import { T as Tooltip } from './Tooltip-BC8lnFhe.js';
14
14
  import { u as useMergeRefs } from './useMergeRefs-Dfmtq9cI.js';
@@ -19,13 +19,13 @@ import { S as SvgEdit } from './edit-DQOiktcu.js';
19
19
  import { S as SvgCheck } from './check-Cf67OWrZ.js';
20
20
  import { S as SvgClose } from './close-DZj38AEh.js';
21
21
  import { B as ButtonLink } from './ButtonLink-CWbYzTTz.js';
22
- import { B as Breadcrumbs } from './Breadcrumbs-CklKFLSl.js';
23
- import { M as Menu } from './Menu-qcHhgf-t.js';
24
- import { T as TextField } from './TextField-CqJ9s4SG.js';
25
- import { T as Text } from './Text-BTCfqeSr.js';
26
- import { C as Chip } from './Chip-BYK1b3lZ.js';
22
+ import { B as Breadcrumbs } from './Breadcrumbs-uTw8OAJ0.js';
23
+ import { M as Menu } from './Menu-DIRJgAtb.js';
24
+ import { T as TextField } from './TextField-BCsO3hjg.js';
25
+ import { T as Text } from './Text-D9pGACpv.js';
26
+ import { C as Chip } from './Chip-BRgs4B-5.js';
27
27
  import { createPortal } from 'react-dom';
28
- import { D as Dialog } from './Dialog-DMR_uvde.js';
28
+ import { D as Dialog } from './Dialog-D0nVpLUN.js';
29
29
  import { d as drillDownStyles, D as DrillDownContext } from './DrillDown.module-D1Bf9_yP.js';
30
30
  import { u as useDrillDownContextState } from './useInitialFocus-BUxEDMEG.js';
31
31
  import { u as useDrillDownContext } from './useDrillDownContext-iUvoTget.js';
@@ -860,4 +860,4 @@ const Page = Object.assign(
860
860
  Page.displayName = "Page";
861
861
 
862
862
  export { Page as P };
863
- //# sourceMappingURL=Page-DgSimS7u.js.map
863
+ //# sourceMappingURL=Page-CV7kXuxd.js.map