@servicetitan/anvil2 2.9.0 → 3.0.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 (488) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/dist/{AiMark-DR-w6Nbm.js → AiMark-B1-M3ZgP.js} +26 -25
  3. package/dist/{AiMark-DR-w6Nbm.js.map → AiMark-B1-M3ZgP.js.map} +1 -1
  4. package/dist/AiMark.css +246 -256
  5. package/dist/AiMark.js +1 -1
  6. package/dist/{Alert-Dj61Bq8h.js → Alert-DmbqtMg_.js} +20 -31
  7. package/dist/Alert-DmbqtMg_.js.map +1 -0
  8. package/dist/Alert.css +72 -90
  9. package/dist/Alert.js +1 -1
  10. package/dist/{Announcement-B9zm-_1S.js → Announcement-_C5g2Lzm.js} +14 -14
  11. package/dist/{Announcement-B9zm-_1S.js.map → Announcement-_C5g2Lzm.js.map} +1 -1
  12. package/dist/Announcement.css +108 -97
  13. package/dist/Announcement.js +1 -1
  14. package/dist/{AnvilProvider-DUPYyMc7.js → AnvilProvider-JXEbeQjR.js} +13 -8
  15. package/dist/AnvilProvider-JXEbeQjR.js.map +1 -0
  16. package/dist/AnvilProvider.js +1 -1
  17. package/dist/{Avatar-BckUfs1N.js → Avatar-B4hRHku9.js} +23 -23
  18. package/dist/Avatar-B4hRHku9.js.map +1 -0
  19. package/dist/{Avatar-ChybzixS.js → Avatar-NbFc4Ovc.js} +2 -2
  20. package/dist/{Avatar-ChybzixS.js.map → Avatar-NbFc4Ovc.js.map} +1 -1
  21. package/dist/Avatar.css +116 -177
  22. package/dist/Avatar.js +2 -2
  23. package/dist/{Badge-C2W7Dls9.js → Badge-C_wTvtnB.js} +7 -7
  24. package/dist/{Badge-C2W7Dls9.js.map → Badge-C_wTvtnB.js.map} +1 -1
  25. package/dist/Badge.css +42 -50
  26. package/dist/Badge.js +1 -1
  27. package/dist/{Breadcrumbs-ojgYVZwe.js → Breadcrumbs-CYmciJ1D.js} +7 -7
  28. package/dist/{Breadcrumbs-ojgYVZwe.js.map → Breadcrumbs-CYmciJ1D.js.map} +1 -1
  29. package/dist/Breadcrumbs.css +37 -45
  30. package/dist/Breadcrumbs.js +1 -1
  31. package/dist/{Button-BdrrhBTI.js → Button-Bnt8XUI7.js} +13 -10
  32. package/dist/{Button-BdrrhBTI.js.map → Button-Bnt8XUI7.js.map} +1 -1
  33. package/dist/Button.css +274 -335
  34. package/dist/Button.js +1 -1
  35. package/dist/Button.module-DsGhJYRw.js +23 -0
  36. package/dist/Button.module-DsGhJYRw.js.map +1 -0
  37. package/dist/{ButtonCompound-Cmw3cgMY.js → ButtonCompound-DsrK7G3q.js} +11 -4
  38. package/dist/ButtonCompound-DsrK7G3q.js.map +1 -0
  39. package/dist/ButtonCompound.css +25 -0
  40. package/dist/ButtonCompound.js +1 -1
  41. package/dist/{ButtonLink-BJKTJER8.js → ButtonLink-j3h_wRNi.js} +9 -6
  42. package/dist/ButtonLink-j3h_wRNi.js.map +1 -0
  43. package/dist/ButtonLink.js +1 -1
  44. package/dist/{ButtonToggle-DaFQ3DBG.js → ButtonToggle-Ct9_5bhC.js} +7 -4
  45. package/dist/ButtonToggle-Ct9_5bhC.js.map +1 -0
  46. package/dist/ButtonToggle.css +109 -0
  47. package/dist/ButtonToggle.js +1 -1
  48. package/dist/{Calendar-Cka4unyi.js → Calendar-BAbAagIx.js} +2 -2
  49. package/dist/{Calendar-Cka4unyi.js.map → Calendar-BAbAagIx.js.map} +1 -1
  50. package/dist/{Calendar-Dxl9QnfP.js → Calendar-CaCMa_jq.js} +38 -35
  51. package/dist/Calendar-CaCMa_jq.js.map +1 -0
  52. package/dist/Calendar.css +250 -301
  53. package/dist/Calendar.js +2 -2
  54. package/dist/{Card-wz71dEVA.js → Card-DSFuXUGk.js} +11 -11
  55. package/dist/{Card-wz71dEVA.js.map → Card-DSFuXUGk.js.map} +1 -1
  56. package/dist/Card.css +51 -65
  57. package/dist/Card.js +1 -1
  58. package/dist/{Checkbox-B-XTVPbX.js → Checkbox-BSAS8-DM.js} +28 -39
  59. package/dist/Checkbox-BSAS8-DM.js.map +1 -0
  60. package/dist/{Checkbox-Cw1-KFvq.js → Checkbox-Ckl8EFpF.js} +2 -2
  61. package/dist/{Checkbox-Cw1-KFvq.js.map → Checkbox-Ckl8EFpF.js.map} +1 -1
  62. package/dist/Checkbox.css +237 -271
  63. package/dist/Checkbox.js +1 -1
  64. package/dist/Checkbox.module-TYMeYIxw.js +28 -0
  65. package/dist/Checkbox.module-TYMeYIxw.js.map +1 -0
  66. package/dist/{Chip-Ce0WGKAc.js → Chip-CR5i8mQW.js} +31 -23
  67. package/dist/Chip-CR5i8mQW.js.map +1 -0
  68. package/dist/Chip.css +191 -206
  69. package/dist/Chip.js +1 -1
  70. package/dist/{Combobox-CNQUROyr.js → Combobox-BffGTugd.js} +59 -72
  71. package/dist/Combobox-BffGTugd.js.map +1 -0
  72. package/dist/Combobox.css +158 -176
  73. package/dist/Combobox.js +1 -1
  74. package/dist/{DataTable-BCV_mtSy.js → DataTable-D9Xj1nq5.js} +437 -479
  75. package/dist/DataTable-D9Xj1nq5.js.map +1 -0
  76. package/dist/DataTable.css +593 -739
  77. package/dist/{DateFieldRange-D2hnF50O.js → DateFieldRange-DPTC3EZz.js} +6 -6
  78. package/dist/{DateFieldRange-D2hnF50O.js.map → DateFieldRange-DPTC3EZz.js.map} +1 -1
  79. package/dist/DateFieldRange.js +1 -1
  80. package/dist/{DateFieldSingle-BuaB7RDr.js → DateFieldSingle-w1G-zd9G.js} +6 -6
  81. package/dist/{DateFieldSingle-BuaB7RDr.js.map → DateFieldSingle-w1G-zd9G.js.map} +1 -1
  82. package/dist/DateFieldSingle.js +1 -1
  83. package/dist/{DateFieldYearless-DLeMEutt.js → DateFieldYearless-DHNVc7Sd.js} +7 -7
  84. package/dist/{DateFieldYearless-DLeMEutt.js.map → DateFieldYearless-DHNVc7Sd.js.map} +1 -1
  85. package/dist/DateFieldYearless.js +1 -1
  86. package/dist/{DateFieldYearlessRange-BfPuYKKC.js → DateFieldYearlessRange-C5ktVUgG.js} +10 -10
  87. package/dist/{DateFieldYearlessRange-BfPuYKKC.js.map → DateFieldYearlessRange-C5ktVUgG.js.map} +1 -1
  88. package/dist/DateFieldYearlessRange.css +11 -19
  89. package/dist/DateFieldYearlessRange.js +1 -1
  90. package/dist/{DaysOfTheWeek-BW1T8sTU.js → DaysOfTheWeek-BubWkBZ0.js} +10 -10
  91. package/dist/{DaysOfTheWeek-BW1T8sTU.js.map → DaysOfTheWeek-BubWkBZ0.js.map} +1 -1
  92. package/dist/DaysOfTheWeek.css +19 -27
  93. package/dist/DaysOfTheWeek.js +1 -1
  94. package/dist/{Details-CZOIpNP_.js → Details-DYRJcLWL.js} +10 -10
  95. package/dist/{Details-CZOIpNP_.js.map → Details-DYRJcLWL.js.map} +1 -1
  96. package/dist/Details.css +134 -138
  97. package/dist/Details.js +1 -1
  98. package/dist/{Dialog-Cewu2pd_.js → Dialog-DGmF6qx3.js} +27 -26
  99. package/dist/Dialog-DGmF6qx3.js.map +1 -0
  100. package/dist/Dialog.css +108 -143
  101. package/dist/Dialog.js +1 -1
  102. package/dist/{DialogCancelButton-Czz4Wpse.js → DialogCancelButton-CbtQcf2J.js} +2 -2
  103. package/dist/{DialogCancelButton-Czz4Wpse.js.map → DialogCancelButton-CbtQcf2J.js.map} +1 -1
  104. package/dist/{Divider-B1UoK8ho.js → Divider-Ds3WKsKa.js} +19 -19
  105. package/dist/{Divider-B1UoK8ho.js.map → Divider-Ds3WKsKa.js.map} +1 -1
  106. package/dist/Divider.css +93 -169
  107. package/dist/Divider.js +1 -1
  108. package/dist/Dnd.js +1 -1
  109. package/dist/DndSort.css +18 -34
  110. package/dist/DndSort.js +10 -10
  111. package/dist/{Drawer-Cb5asXWf.js → Drawer-iewBy1DW.js} +24 -25
  112. package/dist/{Drawer-Cb5asXWf.js.map → Drawer-iewBy1DW.js.map} +1 -1
  113. package/dist/Drawer.css +109 -144
  114. package/dist/Drawer.js +1 -1
  115. package/dist/DrillDown.css +117 -131
  116. package/dist/DrillDown.js +1 -1
  117. package/dist/DrillDown.module-D1Bf9_yP.js +27 -0
  118. package/dist/{DrillDown.module-C8VOhzaF.js.map → DrillDown.module-D1Bf9_yP.js.map} +1 -1
  119. package/dist/{EditCard-DlJE3LXN.js → EditCard-D7-Ye7R0.js} +21 -20
  120. package/dist/{EditCard-DlJE3LXN.js.map → EditCard-D7-Ye7R0.js.map} +1 -1
  121. package/dist/EditCard.css +71 -65
  122. package/dist/EditCard.js +1 -1
  123. package/dist/{FieldLabel-HO2VP-4B.js → FieldLabel-DZWu5dMp.js} +17 -17
  124. package/dist/{FieldLabel-HO2VP-4B.js.map → FieldLabel-DZWu5dMp.js.map} +1 -1
  125. package/dist/FieldLabel.css +66 -102
  126. package/dist/FieldLabel.js +1 -1
  127. package/dist/FieldMessage-DzxfodaI.js +81 -0
  128. package/dist/FieldMessage-DzxfodaI.js.map +1 -0
  129. package/dist/FieldMessage.css +20 -29
  130. package/dist/FieldMessage.js +1 -1
  131. package/dist/{Flex-WyyZm1bf.js → Flex-DOUtHiPi.js} +4 -4
  132. package/dist/{Flex-WyyZm1bf.js.map → Flex-DOUtHiPi.js.map} +1 -1
  133. package/dist/Flex.css +25 -28
  134. package/dist/Flex.js +1 -1
  135. package/dist/{Grid-DeYIx5k4.js → Grid-B1VVssDD.js} +5 -5
  136. package/dist/{Grid-DeYIx5k4.js.map → Grid-B1VVssDD.js.map} +1 -1
  137. package/dist/Grid.css +37 -54
  138. package/dist/Grid.js +1 -1
  139. package/dist/{Helper-B_FIOlhy.js → Helper-DtDeaYTn.js} +8 -10
  140. package/dist/Helper-DtDeaYTn.js.map +1 -0
  141. package/dist/Helper.css +4 -16
  142. package/dist/{Icon-DuIlne4x.js → Icon-BMMbp40n.js} +7 -7
  143. package/dist/{Icon-DuIlne4x.js.map → Icon-BMMbp40n.js.map} +1 -1
  144. package/dist/Icon.css +42 -48
  145. package/dist/Icon.js +1 -1
  146. package/dist/{InputMask-CLLTehFI.js → InputMask-EwEJlW-t.js} +3 -3
  147. package/dist/{InputMask-CLLTehFI.js.map → InputMask-EwEJlW-t.js.map} +1 -1
  148. package/dist/InputMask.js +1 -1
  149. package/dist/{InteractiveCard-GTYbR6Xy.js → InteractiveCard-CnW0m_F-.js} +7 -7
  150. package/dist/{InteractiveCard-GTYbR6Xy.js.map → InteractiveCard-CnW0m_F-.js.map} +1 -1
  151. package/dist/InteractiveCard.css +56 -57
  152. package/dist/InteractiveCard.js +1 -1
  153. package/dist/{Layout-CISAxILX.js → Layout-C2Q2hyLG.js} +80 -80
  154. package/dist/{Layout-CISAxILX.js.map → Layout-C2Q2hyLG.js.map} +1 -1
  155. package/dist/Layout.css +260 -324
  156. package/dist/Layout.js +1 -1
  157. package/dist/{Link-jTvzyXca.js → Link-BUgivkGS.js} +8 -8
  158. package/dist/{Link-jTvzyXca.js.map → Link-BUgivkGS.js.map} +1 -1
  159. package/dist/Link.css +48 -65
  160. package/dist/Link.js +1 -1
  161. package/dist/Link.module-DJc0cOlg.js +12 -0
  162. package/dist/Link.module-DJc0cOlg.js.map +1 -0
  163. package/dist/{LinkButton-DGyHR1E7.js → LinkButton-CuHSdGdj.js} +7 -16
  164. package/dist/LinkButton-CuHSdGdj.js.map +1 -0
  165. package/dist/LinkButton.js +1 -1
  166. package/dist/{List--KhCpjZn.js → List-BXyHWQ9e.js} +8 -8
  167. package/dist/{List--KhCpjZn.js.map → List-BXyHWQ9e.js.map} +1 -1
  168. package/dist/List.css +39 -58
  169. package/dist/List.js +1 -1
  170. package/dist/{ListView-CPi-qG2w.js → ListView-DBO9Bl1H.js} +4 -4
  171. package/dist/{ListView-CPi-qG2w.js.map → ListView-DBO9Bl1H.js.map} +1 -1
  172. package/dist/ListView.css +108 -120
  173. package/dist/ListView.js +1 -1
  174. package/dist/ListView.module-CRk9NfLG.js +9 -0
  175. package/dist/ListView.module-CRk9NfLG.js.map +1 -0
  176. package/dist/{Listbox-Bp4hqIpH.js → Listbox-DDlxpVu9.js} +7 -7
  177. package/dist/{Listbox-Bp4hqIpH.js.map → Listbox-DDlxpVu9.js.map} +1 -1
  178. package/dist/Listbox.css +102 -143
  179. package/dist/Listbox.js +1 -1
  180. package/dist/Listbox.module-CfpLm9pS.js +18 -0
  181. package/dist/Listbox.module-CfpLm9pS.js.map +1 -0
  182. package/dist/{LocalizationProvider-DWCyga_d.js → LocalizationProvider-CO8fQGqs.js} +2 -2
  183. package/dist/{LocalizationProvider-DWCyga_d.js.map → LocalizationProvider-CO8fQGqs.js.map} +1 -1
  184. package/dist/LocalizationProvider.js +1 -1
  185. package/dist/{Menu-CCavGohP.js → Menu-wpTyUDac.js} +10 -10
  186. package/dist/{Menu-CCavGohP.js.map → Menu-wpTyUDac.js.map} +1 -1
  187. package/dist/Menu.css +135 -137
  188. package/dist/Menu.js +1 -1
  189. package/dist/MultiSelectField.js +1 -1
  190. package/dist/{MultiSelectFieldSync-ChZCW4M9.js → MultiSelectFieldSync-DZ3tm7zt.js} +34 -33
  191. package/dist/MultiSelectFieldSync-DZ3tm7zt.js.map +1 -0
  192. package/dist/MultiSelectFieldSync.css +263 -257
  193. package/dist/MultiSelectMenu.js +1 -1
  194. package/dist/{MultiSelectMenuSync-7C1wW4oO.js → MultiSelectMenuSync-dgO9SmHi.js} +4 -4
  195. package/dist/{MultiSelectMenuSync-7C1wW4oO.js.map → MultiSelectMenuSync-dgO9SmHi.js.map} +1 -1
  196. package/dist/{NumberField-CZSTHBeO.js → NumberField-DJbdyatF.js} +15 -12
  197. package/dist/{NumberField-CZSTHBeO.js.map → NumberField-DJbdyatF.js.map} +1 -1
  198. package/dist/NumberField.css +34 -49
  199. package/dist/NumberField.js +1 -1
  200. package/dist/Overflow.css +143 -164
  201. package/dist/Overflow.js +44 -42
  202. package/dist/Overflow.js.map +1 -1
  203. package/dist/{Page-BHdvTlfE.js → Page-Be1Blwme.js} +65 -65
  204. package/dist/Page-Be1Blwme.js.map +1 -0
  205. package/dist/Page.css +384 -404
  206. package/dist/Page.js +1 -1
  207. package/dist/{Pagination-DecGSuW4.js → Pagination-USDJM5vi.js} +29 -34
  208. package/dist/{Pagination-DecGSuW4.js.map → Pagination-USDJM5vi.js.map} +1 -1
  209. package/dist/Pagination.css +63 -116
  210. package/dist/Pagination.js +1 -1
  211. package/dist/{Popover-BbqTZw-1.js → Popover-CyB7yzSf.js} +7 -7
  212. package/dist/{Popover-BbqTZw-1.js.map → Popover-CyB7yzSf.js.map} +1 -1
  213. package/dist/Popover.css +84 -97
  214. package/dist/Popover.js +1 -1
  215. package/dist/{ProgressBar-CZcxkdX6.js → ProgressBar-DSrjgLTx.js} +15 -15
  216. package/dist/{ProgressBar-CZcxkdX6.js.map → ProgressBar-DSrjgLTx.js.map} +1 -1
  217. package/dist/ProgressBar.css +59 -81
  218. package/dist/ProgressBar.js +1 -1
  219. package/dist/{Radio-BFr8AdHc.js → Radio-CQaXJ72d.js} +2 -2
  220. package/dist/{Radio-BFr8AdHc.js.map → Radio-CQaXJ72d.js.map} +1 -1
  221. package/dist/{Radio-DJZVMCv0.js → Radio-DO4UhbBE.js} +45 -48
  222. package/dist/Radio-DO4UhbBE.js.map +1 -0
  223. package/dist/Radio.css +233 -229
  224. package/dist/Radio.js +1 -1
  225. package/dist/{SearchField-im7AHGYo.js → SearchField-CsRGYZx3.js} +9 -11
  226. package/dist/{SearchField-im7AHGYo.js.map → SearchField-CsRGYZx3.js.map} +1 -1
  227. package/dist/SearchField.css +22 -39
  228. package/dist/SearchField.js +1 -1
  229. package/dist/{SegmentedControl-B9NWUF7s.js → SegmentedControl-Chhqyyra.js} +15 -16
  230. package/dist/SegmentedControl-Chhqyyra.js.map +1 -0
  231. package/dist/SegmentedControl.css +103 -122
  232. package/dist/SegmentedControl.js +1 -1
  233. package/dist/SelectCard-CtXwY8FZ.js +351 -0
  234. package/dist/SelectCard-CtXwY8FZ.js.map +1 -0
  235. package/dist/SelectCard.css +135 -82
  236. package/dist/SelectCard.js +1 -1
  237. package/dist/SelectField.js +1 -1
  238. package/dist/{SelectFieldLabel-kEBS8L4l.js → SelectFieldLabel-DLT5dKbx.js} +3 -3
  239. package/dist/{SelectFieldLabel-kEBS8L4l.js.map → SelectFieldLabel-DLT5dKbx.js.map} +1 -1
  240. package/dist/{SelectFieldSync-o1Cp9UYC.js → SelectFieldSync-C44hPeeS.js} +9 -8
  241. package/dist/SelectFieldSync-C44hPeeS.js.map +1 -0
  242. package/dist/SelectMenu.js +1 -1
  243. package/dist/{SelectMenuSync-DXrwecFt.js → SelectMenuSync-V97oN85V.js} +4 -4
  244. package/dist/{SelectMenuSync-DXrwecFt.js.map → SelectMenuSync-V97oN85V.js.map} +1 -1
  245. package/dist/{SelectOptions-Dy2OWqxn.js → SelectOptions-CDoo4AUu.js} +2 -2
  246. package/dist/{SelectOptions-Dy2OWqxn.js.map → SelectOptions-CDoo4AUu.js.map} +1 -1
  247. package/dist/{SelectTrigger-DhKYzEAr.js → SelectTrigger-BWN3Tx43.js} +5 -5
  248. package/dist/{SelectTrigger-DhKYzEAr.js.map → SelectTrigger-BWN3Tx43.js.map} +1 -1
  249. package/dist/SelectTrigger.js +1 -1
  250. package/dist/{SelectTriggerBase-Ni8WqeUx.js → SelectTriggerBase-Do7lQ5rw.js} +8 -7
  251. package/dist/{SelectTriggerBase-Ni8WqeUx.js.map → SelectTriggerBase-Do7lQ5rw.js.map} +1 -1
  252. package/dist/SelectTriggerBase.css +231 -305
  253. package/dist/SelectTriggerBase.module-DKF1FQnc.js +37 -0
  254. package/dist/SelectTriggerBase.module-DKF1FQnc.js.map +1 -0
  255. package/dist/{SideNav-CrxYExjh.js → SideNav-CZRVOSbt.js} +19 -14
  256. package/dist/SideNav-CZRVOSbt.js.map +1 -0
  257. package/dist/SideNav.css +126 -294
  258. package/dist/SideNav.js +1 -1
  259. package/dist/Skeleton.css +57 -65
  260. package/dist/Skeleton.js +16 -16
  261. package/dist/Skeleton.js.map +1 -1
  262. package/dist/{Spinner-BqmcE2pb.js → Spinner-lPMo68yW.js} +16 -17
  263. package/dist/Spinner-lPMo68yW.js.map +1 -0
  264. package/dist/Spinner.css +33 -43
  265. package/dist/Spinner.js +1 -1
  266. package/dist/{SrOnly-eUpYGpAT.js → SrOnly-pnf8ajnh.js} +2 -2
  267. package/dist/{SrOnly-eUpYGpAT.js.map → SrOnly-pnf8ajnh.js.map} +1 -1
  268. package/dist/SrOnly.css +12 -14
  269. package/dist/SrOnly.js +1 -1
  270. package/dist/StatusIcon-BwULopyH.js +57 -0
  271. package/dist/StatusIcon-BwULopyH.js.map +1 -0
  272. package/dist/StatusIcon.css +32 -0
  273. package/dist/{Stepper-Dt2xAXth.js → Stepper-CYY64NU1.js} +16 -16
  274. package/dist/{Stepper-Dt2xAXth.js.map → Stepper-CYY64NU1.js.map} +1 -1
  275. package/dist/Stepper.css +180 -239
  276. package/dist/Stepper.js +1 -1
  277. package/dist/{Switch-C84MBChG.js → Switch-DeBu4Ucg.js} +17 -13
  278. package/dist/{Switch-C84MBChG.js.map → Switch-DeBu4Ucg.js.map} +1 -1
  279. package/dist/Switch.css +109 -125
  280. package/dist/Switch.js +1 -1
  281. package/dist/{Tab-BZpTCG0i.js → Tab-CewPzmuK.js} +20 -34
  282. package/dist/Tab-CewPzmuK.js.map +1 -0
  283. package/dist/Tab.css +232 -194
  284. package/dist/Tab.js +1 -1
  285. package/dist/Table.js +1 -1
  286. package/dist/{Text-WiS8UZkY.js → Text-J5YtSSXY.js} +15 -38
  287. package/dist/Text-J5YtSSXY.js.map +1 -0
  288. package/dist/Text.css +101 -142
  289. package/dist/Text.js +1 -1
  290. package/dist/Text.module-BXrY87ui.js +23 -0
  291. package/dist/Text.module-BXrY87ui.js.map +1 -0
  292. package/dist/{TextField-Bul_uln5.js → TextField-CRDTnuUN.js} +7 -7
  293. package/dist/{TextField-Bul_uln5.js.map → TextField-CRDTnuUN.js.map} +1 -1
  294. package/dist/{TextField-OznkTx4e.js → TextField-YlMkDHp-.js} +2 -2
  295. package/dist/{TextField-OznkTx4e.js.map → TextField-YlMkDHp-.js.map} +1 -1
  296. package/dist/TextField.css +156 -148
  297. package/dist/TextField.js +1 -1
  298. package/dist/TextField.module-MRVo1X9H.js +23 -0
  299. package/dist/TextField.module-MRVo1X9H.js.map +1 -0
  300. package/dist/{Textarea-CCYLsJ1x.js → Textarea-CxXmr_Gx.js} +16 -13
  301. package/dist/{Textarea-CCYLsJ1x.js.map → Textarea-CxXmr_Gx.js.map} +1 -1
  302. package/dist/Textarea.css +71 -81
  303. package/dist/Textarea.js +1 -1
  304. package/dist/{ThemeProvider-CaYW3RuA.js → ThemeProvider-D4KdGCaP.js} +11 -9
  305. package/dist/ThemeProvider-D4KdGCaP.js.map +1 -0
  306. package/dist/ThemeProvider.css +586 -516
  307. package/dist/ThemeProvider.js +1 -1
  308. package/dist/{TimeField-BPvPbD8H.js → TimeField-DTg0CE5L.js} +7 -7
  309. package/dist/{TimeField-BPvPbD8H.js.map → TimeField-DTg0CE5L.js.map} +1 -1
  310. package/dist/TimeField.css +5 -8
  311. package/dist/TimeField.js +1 -1
  312. package/dist/{TimezoneMessage-Cnsl4cHT.js → TimezoneMessage-BrKB_psP.js} +2 -2
  313. package/dist/{TimezoneMessage-Cnsl4cHT.js.map → TimezoneMessage-BrKB_psP.js.map} +1 -1
  314. package/dist/TimezoneMessage.css +5 -5
  315. package/dist/Toast.js +2 -2
  316. package/dist/{Toaster-DYJm06Vb.js → Toaster-Bq42x6Gx.js} +35 -34
  317. package/dist/Toaster-Bq42x6Gx.js.map +1 -0
  318. package/dist/{Toaster-CIaIvwH6.js → Toaster-Dly3rfva.js} +2 -2
  319. package/dist/{Toaster-CIaIvwH6.js.map → Toaster-Dly3rfva.js.map} +1 -1
  320. package/dist/Toaster.css +210 -242
  321. package/dist/{Toolbar-ByyI7SqG.js → Toolbar-C1_etxss.js} +42 -42
  322. package/dist/{Toolbar-ByyI7SqG.js.map → Toolbar-C1_etxss.js.map} +1 -1
  323. package/dist/Toolbar.css +121 -202
  324. package/dist/Toolbar.js +1 -1
  325. package/dist/{Tooltip-C1PBRnJv.js → Tooltip-BlStOXN3.js} +8 -8
  326. package/dist/{Tooltip-C1PBRnJv.js.map → Tooltip-BlStOXN3.js.map} +1 -1
  327. package/dist/Tooltip.css +46 -58
  328. package/dist/Tooltip.js +1 -1
  329. package/dist/{YearlessDateInputWithPicker-C_twiQW5.js → YearlessDateInputWithPicker-DyytWt0x.js} +14 -16
  330. package/dist/{YearlessDateInputWithPicker-C_twiQW5.js.map → YearlessDateInputWithPicker-DyytWt0x.js.map} +1 -1
  331. package/dist/YearlessDateInputWithPicker.css +110 -196
  332. package/dist/assets/css-utils/a2-border.css +47 -45
  333. package/dist/assets/css-utils/a2-color.css +443 -227
  334. package/dist/assets/css-utils/a2-font.css +0 -2
  335. package/dist/assets/css-utils/a2-spacing.css +476 -478
  336. package/dist/assets/css-utils/a2-utils.css +992 -772
  337. package/dist/assets/css-utils/border.css +47 -45
  338. package/dist/assets/css-utils/color.css +443 -227
  339. package/dist/assets/css-utils/font.css +0 -2
  340. package/dist/assets/css-utils/spacing.css +476 -478
  341. package/dist/assets/css-utils/utils.css +992 -772
  342. package/dist/assets/icons/st/unsorted.svg +1 -0
  343. package/dist/assets/icons/st.ts +1 -0
  344. package/dist/beta/components/Table/DataTable/DataTable.d.ts +22 -0
  345. package/dist/beta/components/Table/DataTable/internal/DataTableBody.d.ts +19 -4
  346. package/dist/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +18 -1
  347. package/dist/beta/components/Table/DataTable/internal/DataTableHeader.d.ts +4 -2
  348. package/dist/beta/components/Table/DataTable/internal/cells/DataTableBodyCell.d.ts +0 -2
  349. package/dist/beta/components/Table/DataTable/internal/cells/DataTableBodyImmutableCell.d.ts +0 -5
  350. package/dist/beta/components/Table/DataTable/internal/cells/DataTableBodyMutableCell.d.ts +0 -5
  351. package/dist/beta/components/Table/DataTable/internal/cells/useCellFocusListener.d.ts +10 -0
  352. package/dist/beta/components/Table/DataTable/internal/context/focus/DTFocusProvider.d.ts +4 -1
  353. package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +0 -1
  354. package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +0 -1
  355. package/dist/beta/components/Table/DataTable/internal/editable-cells/types.d.ts +0 -4
  356. package/dist/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +3 -6
  357. package/dist/beta/components/Table/DataTable/internal/useDataTableVirtualizer.d.ts +29 -0
  358. package/dist/beta/components/Table/DataTable/internal/util/shallowSortingEqual.d.ts +2 -0
  359. package/dist/beta/components/Table/DataTable/stories/DataTable.story-data.d.ts +1 -0
  360. package/dist/beta/components/Table/createColumnHelper.d.ts +19 -2
  361. package/dist/beta/components/Table/types.d.ts +23 -2
  362. package/dist/beta.js +10 -10
  363. package/dist/{indeterminate_check_box-B4zobNlt.js → check_box-0U1tbEAd.js} +2 -4
  364. package/dist/check_box-0U1tbEAd.js.map +1 -0
  365. package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
  366. package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
  367. package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
  368. package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
  369. package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
  370. package/dist/components/NumberField/NumberField.d.ts +1 -1
  371. package/dist/components/Page/Page.d.ts +2 -2
  372. package/dist/components/SearchField/internal/SearchField.d.ts +1 -1
  373. package/dist/components/Stepper/Stepper.d.ts +1 -1
  374. package/dist/components/Stepper/StepperStep.d.ts +1 -1
  375. package/dist/components/Tab/Tab.d.ts +1 -1
  376. package/dist/components/Tab/TabButton.d.ts +1 -1
  377. package/dist/indeterminate_check_box-jjLG4UY6.js +6 -0
  378. package/dist/indeterminate_check_box-jjLG4UY6.js.map +1 -0
  379. package/dist/{index-D6ag_WQW.js → index-ByMdotWU.js} +18 -18
  380. package/dist/{index-D6ag_WQW.js.map → index-ByMdotWU.js.map} +1 -1
  381. package/dist/index.css +98 -126
  382. package/dist/index.js +85 -82
  383. package/dist/index.js.map +1 -1
  384. package/dist/index2.css +57 -74
  385. package/dist/internal/components/StatusIcon/StatusIcon.d.ts +5 -5
  386. package/dist/internal/hooks/useSelectOrchestration.d.ts +1 -1
  387. package/dist/primitive-DXlHdTFb.js +1056 -0
  388. package/dist/primitive-DXlHdTFb.js.map +1 -0
  389. package/dist/providers/ThemeProvider/ThemeProvider.d.ts +1 -0
  390. package/dist/{stripInlineMarkdown-Cg1qlNwL.js → stripInlineMarkdown-BWbMy7r_.js} +2 -2
  391. package/dist/{stripInlineMarkdown-Cg1qlNwL.js.map → stripInlineMarkdown-BWbMy7r_.js.map} +1 -1
  392. package/dist/{syncFilterUtils-UR5Vgqkh.js → syncFilterUtils-BLcRXQfd.js} +49 -49
  393. package/dist/syncFilterUtils-BLcRXQfd.js.map +1 -0
  394. package/dist/syncFilterUtils.css +189 -217
  395. package/dist/token/core/component-variables.scss +1088 -131
  396. package/dist/token/core/component.d.ts +558 -0
  397. package/dist/token/core/component.js +6685 -249
  398. package/dist/token/core/component.scss +557 -69
  399. package/dist/token/core/css-utils/a2-border.css +47 -45
  400. package/dist/token/core/css-utils/a2-color.css +443 -227
  401. package/dist/token/core/css-utils/a2-font.css +0 -2
  402. package/dist/token/core/css-utils/a2-spacing.css +476 -478
  403. package/dist/token/core/css-utils/a2-utils.css +992 -772
  404. package/dist/token/core/css-utils/border.css +47 -45
  405. package/dist/token/core/css-utils/color.css +443 -227
  406. package/dist/token/core/css-utils/font.css +0 -2
  407. package/dist/token/core/css-utils/spacing.css +476 -478
  408. package/dist/token/core/css-utils/utils.css +992 -772
  409. package/dist/token/core/index.d.ts +6 -0
  410. package/dist/token/core/index.js +1 -1
  411. package/dist/token/core/primitive-variables.scss +148 -65
  412. package/dist/token/core/primitive.d.ts +209 -0
  413. package/dist/token/core/primitive.js +779 -61
  414. package/dist/token/core/primitive.scss +207 -124
  415. package/dist/token/core/semantic-variables.scss +363 -245
  416. package/dist/token/core/semantic.d.ts +221 -0
  417. package/dist/token/core/semantic.js +1592 -347
  418. package/dist/token/core/semantic.scss +219 -140
  419. package/dist/token.js +9076 -833
  420. package/dist/token.js.map +1 -1
  421. package/dist/{useBreakpoint-okJ64T1D.js → useBreakpoint-CeaUyHxh.js} +2 -2
  422. package/dist/{useBreakpoint-okJ64T1D.js.map → useBreakpoint-CeaUyHxh.js.map} +1 -1
  423. package/dist/useBreakpoint.js +1 -1
  424. package/dist/{useDrillDownContext-BssSasVB.js → useDrillDownContext-iUvoTget.js} +2 -2
  425. package/dist/{useDrillDownContext-BssSasVB.js.map → useDrillDownContext-iUvoTget.js.map} +1 -1
  426. package/dist/{useDrilldown-D6VZNSCX.js → useDrilldown-D5WWJRU2.js} +7 -7
  427. package/dist/{useDrilldown-D6VZNSCX.js.map → useDrilldown-D5WWJRU2.js.map} +1 -1
  428. package/dist/{useLayoutPropsUtil-DMDdfIah.js → useLayoutPropsUtil-CB_zHDbW.js} +3 -3
  429. package/dist/{useLayoutPropsUtil-DMDdfIah.js.map → useLayoutPropsUtil-CB_zHDbW.js.map} +1 -1
  430. package/dist/{useToggleSelection-BBdrIVWs.js → useToggleSelection-D_2qS0P1.js} +2 -2
  431. package/dist/{useToggleSelection-BBdrIVWs.js.map → useToggleSelection-D_2qS0P1.js.map} +1 -1
  432. package/package.json +3 -3
  433. package/dist/Alert-Dj61Bq8h.js.map +0 -1
  434. package/dist/AnvilProvider-DUPYyMc7.js.map +0 -1
  435. package/dist/Avatar-BckUfs1N.js.map +0 -1
  436. package/dist/Button.module-wCtFYGVD.js +0 -26
  437. package/dist/Button.module-wCtFYGVD.js.map +0 -1
  438. package/dist/ButtonCompound-Cmw3cgMY.js.map +0 -1
  439. package/dist/ButtonLink-BJKTJER8.js.map +0 -1
  440. package/dist/ButtonToggle-DaFQ3DBG.js.map +0 -1
  441. package/dist/Calendar-Dxl9QnfP.js.map +0 -1
  442. package/dist/Checkbox-B-XTVPbX.js.map +0 -1
  443. package/dist/Checkbox.module-EkRZO48Y.js +0 -28
  444. package/dist/Checkbox.module-EkRZO48Y.js.map +0 -1
  445. package/dist/Chip-Ce0WGKAc.js.map +0 -1
  446. package/dist/Combobox-CNQUROyr.js.map +0 -1
  447. package/dist/DataTable-BCV_mtSy.js.map +0 -1
  448. package/dist/Dialog-Cewu2pd_.js.map +0 -1
  449. package/dist/DrillDown.module-C8VOhzaF.js +0 -27
  450. package/dist/FieldMessage-COHqUdj5.js +0 -132
  451. package/dist/FieldMessage-COHqUdj5.js.map +0 -1
  452. package/dist/Helper-B_FIOlhy.js.map +0 -1
  453. package/dist/Link.module-CZt9wvuD.js +0 -12
  454. package/dist/Link.module-CZt9wvuD.js.map +0 -1
  455. package/dist/LinkButton-DGyHR1E7.js.map +0 -1
  456. package/dist/LinkButton.css +0 -5
  457. package/dist/ListView.module-BilDg12y.js +0 -9
  458. package/dist/ListView.module-BilDg12y.js.map +0 -1
  459. package/dist/Listbox.module-HAXMOKvC.js +0 -18
  460. package/dist/Listbox.module-HAXMOKvC.js.map +0 -1
  461. package/dist/MultiSelectFieldSync-ChZCW4M9.js.map +0 -1
  462. package/dist/Page-BHdvTlfE.js.map +0 -1
  463. package/dist/Radio-DJZVMCv0.js.map +0 -1
  464. package/dist/SegmentedControl-B9NWUF7s.js.map +0 -1
  465. package/dist/SelectCard-DVcWJRbX.js +0 -352
  466. package/dist/SelectCard-DVcWJRbX.js.map +0 -1
  467. package/dist/SelectFieldSync-o1Cp9UYC.js.map +0 -1
  468. package/dist/SelectTriggerBase.module-CKoq6qzX.js +0 -38
  469. package/dist/SelectTriggerBase.module-CKoq6qzX.js.map +0 -1
  470. package/dist/SideNav-CrxYExjh.js.map +0 -1
  471. package/dist/Spinner-BqmcE2pb.js.map +0 -1
  472. package/dist/Tab-BZpTCG0i.js.map +0 -1
  473. package/dist/Text-WiS8UZkY.js.map +0 -1
  474. package/dist/TextField.module-BP-hDP5m.js +0 -22
  475. package/dist/TextField.module-BP-hDP5m.js.map +0 -1
  476. package/dist/ThemeProvider-CaYW3RuA.js.map +0 -1
  477. package/dist/Toaster-DYJm06Vb.js.map +0 -1
  478. package/dist/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +0 -16
  479. package/dist/beta/components/Table/DataTable/internal/context/hover/DTHoverContext.d.ts +0 -31
  480. package/dist/beta/components/Table/DataTable/internal/context/hover/DTHoverProvider.d.ts +0 -3
  481. package/dist/beta/components/Table/DataTable/internal/context/hover/useDTHoverDispatchContext.d.ts +0 -1
  482. package/dist/beta/components/Table/DataTable/internal/context/hover/useDTHoverStateContext.d.ts +0 -4
  483. package/dist/beta/components/Table/internal/getColSpanWidth.d.ts +0 -7
  484. package/dist/indeterminate_check_box-B4zobNlt.js.map +0 -1
  485. package/dist/primitive-C3RFDRA8.js +0 -255
  486. package/dist/primitive-C3RFDRA8.js.map +0 -1
  487. package/dist/syncFilterUtils-UR5Vgqkh.js.map +0 -1
  488. package/dist/token/core/raw.js +0 -234
package/dist/Overflow.css CHANGED
@@ -1,167 +1,146 @@
1
- @layer starter, reset, base, state, application;
2
-
3
- ._overflow_78kb1_1:not(._expanded_78kb1_1) ._shadow-top_78kb1_1 {
4
- background-image: radial-gradient(50% 1.5rem at 50% top, var(--overlay-color-active, rgba(20, 20, 20, 0.1607843137)), transparent);
1
+ .anvil2{@layer starter, reset, base, state, application;._overflow_qkpk6_1 {
2
+ --a2-internal-overflow-shadow-color: var(--a2-mod-overflow-shadow-color);
3
+ --a2-mod-overflow-shadow-color: var(--a2-overflow-shadow-color, var(--a2-shadow-color-default, light-dark(rgba(26, 26, 26, 0.0784313725), rgba(255, 255, 255, 0.0784313725))));
4
+ --a2-mod-overflow-shadow-display: block;
5
+ --a2-mod-overflow-shadow-size: var(--a2-size-6, 1.5rem);
6
+ all: unset;
7
+ font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
8
+ font-size: 100%;
9
+ color: inherit;
10
+ margin: 0;
11
+ padding: 0;
12
+ border-style: none;
13
+ border-width: 0;
14
+ border-color: transparent;
15
+ box-sizing: border-box;
16
+ display: revert-layer;
17
+ display: var(--a2-mod-overflow-display, flex);
18
+ gap: var(--a2-size-2, 0.5rem);
19
+ grid-template-rows: var(--a2-mod-overflow-grid-rows, 0fr);
20
+ height: inherit;
21
+ margin-inline: calc(var(--a2-size-1, 0.25rem) * -1);
22
+ overflow: clip;
23
+ padding: var(--a2-size-1, 0.25rem);
24
+ position: relative;
25
+ transition: all var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
26
+ width: -webkit-fill-available;
27
+ width: -moz-available;
28
+ width: stretch;
29
+ }@media (prefers-reduced-motion: reduce) {
30
+ ._overflow_qkpk6_1 {
31
+ transition-duration: 0.01ms;
32
+ }
33
+ }._expanded_qkpk6_34 {
34
+ --a2-mod-overflow-grid-rows: 1fr;
35
+ --a2-mod-overflow-shadow-display: none;
36
+ }._horizontal_qkpk6_39 {
37
+ --a2-mod-overflow-grid-rows: 1fr;
38
+ }._truncate_qkpk6_43 {
39
+ --a2-mod-overflow-display: grid;
40
+ --a2-mod-overflow-content-overflow: hidden;
41
+ }._content_qkpk6_48 {
42
+ --a2-mod-overflow-content-focus-ring-color: var(--a2-overflow-content-focus-ring-color, var(--a2-focus-ring-color-default, var(--a2-status-color-info, light-dark(var(--a2-color-blue-600, #0265dc), var(--a2-color-blue-300, #70b1ff)))));
43
+ border-radius: var(--a2-border-radius-medium, var(--a2-radius-2, 0.375rem));
44
+ margin: calc(var(--a2-size-1, 0.25rem) * -1);
45
+ outline: 0 solid var(--a2-mod-overflow-content-focus-ring-color);
46
+ outline-offset: var(--a2-size-half, 0.125rem);
47
+ overflow: var(--a2-mod-overflow-content-overflow, auto);
48
+ padding: var(--a2-size-1, 0.25rem);
49
+ scrollbar-gutter: stable;
50
+ transition: outline var(--a2-duration-default, 200ms) var(--a2-transition-ease-out, cubic-bezier(0, 0, 0.4, 1));
51
+ width: -webkit-fill-available;
52
+ width: -moz-available;
53
+ width: stretch;
54
+ }._content_qkpk6_48:focus-visible {
55
+ outline-width: var(--a2-size-half, 0.125rem);
56
+ }._shadow-left_qkpk6_64 {
57
+ background-image: radial-gradient(var(--a2-mod-overflow-shadow-size) 50% at left 50%, var(--a2-internal-overflow-shadow-color), transparent);
58
+ display: var(--a2-mod-overflow-shadow-display);
59
+ height: 100%;
60
+ left: 0;
61
+ pointer-events: none;
62
+ position: absolute;
63
+ width: var(--a2-mod-overflow-shadow-size);
64
+ }._shadow-right_qkpk6_74 {
65
+ background-image: radial-gradient(var(--a2-mod-overflow-shadow-size) 50% at right 50%, var(--a2-internal-overflow-shadow-color), transparent);
66
+ display: var(--a2-mod-overflow-shadow-display);
67
+ height: 100%;
68
+ pointer-events: none;
69
+ position: absolute;
70
+ right: 0;
71
+ width: var(--a2-mod-overflow-shadow-size);
72
+ }._shadow-top_qkpk6_84 {
73
+ background-image: radial-gradient(50% var(--a2-mod-overflow-shadow-size) at 50% top, var(--a2-internal-overflow-shadow-color), transparent);
74
+ display: var(--a2-mod-overflow-shadow-display);
75
+ height: var(--a2-mod-overflow-shadow-size);
76
+ pointer-events: none;
77
+ position: absolute;
78
+ top: 0;
79
+ width: 100%;
80
+ }._shadow-bottom_qkpk6_94 {
81
+ background-image: radial-gradient(50% var(--a2-mod-overflow-shadow-size) at 50% bottom, var(--a2-internal-overflow-shadow-color), transparent);
82
+ bottom: 0;
83
+ display: var(--a2-mod-overflow-shadow-display);
84
+ height: var(--a2-mod-overflow-shadow-size);
85
+ pointer-events: none;
86
+ position: absolute;
87
+ width: 100%;
88
+ }._expand-button_qkpk6_104 {
89
+ --a2-mod-overflow-expand-button-focus-ring-color: var(--a2-overflow-expand-button-focus-ring-color, var(--a2-focus-ring-color-default, var(--a2-status-color-info, light-dark(var(--a2-color-blue-600, #0265dc), var(--a2-color-blue-300, #70b1ff)))));
90
+ --a2-mod-overflow-expand-button-foreground-color: var(--a2-overflow-expand-button-foreground-color, var(--a2-foreground-color-primary, light-dark(var(--a2-color-blue-600, #0265dc), var(--a2-color-blue-300, #70b1ff))));
91
+ all: unset;
92
+ font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
93
+ font-size: 100%;
94
+ color: var(--a2-mod-overflow-expand-button-foreground-color);
95
+ margin: 0;
96
+ padding: 0;
97
+ border-style: none;
98
+ border-width: 0;
99
+ border-color: transparent;
100
+ box-sizing: border-box;
101
+ display: inline-flex;
102
+ align-items: center;
103
+ align-self: flex-start;
104
+ border-radius: var(--a2-border-radius-small, var(--a2-radius-1, 0.1875rem));
105
+ cursor: pointer;
106
+ outline: 0 solid var(--a2-mod-overflow-expand-button-focus-ring-color);
107
+ outline-offset: var(--a2-size-half, 0.125rem);
108
+ text-decoration: underline;
109
+ width: -moz-fit-content;
110
+ width: fit-content;
111
+ }._expand-button_qkpk6_104:focus-visible {
112
+ outline-width: var(--a2-size-half, 0.125rem);
113
+ }._expand-button_qkpk6_104:hover {
114
+ opacity: 0.8;
5
115
  }
6
-
7
- ._overflow_78kb1_1:not(._expanded_78kb1_1) ._shadow-right_78kb1_5 {
8
- background-image: radial-gradient(1.5rem 50% at right 50%, var(--overlay-color-active, rgba(20, 20, 20, 0.1607843137)), transparent);
116
+ }.anvil2{@layer starter, reset, base, state, application;._overflow-text_1ik95_1 {
117
+ --a2-mod-overflow-text-content-min-height: auto;
118
+ all: unset;
119
+ font-family: var(--a2-font-family-base, "Nunito Sans", sans-serif);
120
+ font-size: 100%;
121
+ color: inherit;
122
+ margin: 0;
123
+ padding: 0;
124
+ border-style: none;
125
+ border-width: 0;
126
+ border-color: transparent;
127
+ box-sizing: border-box;
128
+ display: flex;
129
+ flex-direction: column;
130
+ gap: var(--a2-size-2, 0.5rem);
131
+ }._content_1ik95_18 {
132
+ -webkit-box-orient: vertical;
133
+ -webkit-line-clamp: var(--a2-inline-overflow-text-row);
134
+ display: -webkit-box;
135
+ line-clamp: var(--a2-inline-overflow-text-row);
136
+ line-height: 1.5;
137
+ margin: -var(--a2-size-1, 0.25rem);
138
+ min-height: var(--a2-mod-overflow-text-content-min-height);
139
+ overflow: hidden;
140
+ overflow-wrap: break-word;
141
+ padding: var(--a2-size-1, 0.25rem);
142
+ text-overflow: ellipsis;
143
+ }._expanded_1ik95_32 {
144
+ --a2-mod-overflow-text-content-min-height: fit-content;
9
145
  }
10
-
11
- ._overflow_78kb1_1:not(._expanded_78kb1_1) ._shadow-bottom_78kb1_9 {
12
- background-image: radial-gradient(50% 1.5rem at 50% bottom, var(--overlay-color-active, rgba(20, 20, 20, 0.1607843137)), transparent);
13
- }
14
-
15
- ._overflow_78kb1_1:not(._expanded_78kb1_1) ._shadow-left_78kb1_13 {
16
- background-image: radial-gradient(1.5rem 50% at left 50%, var(--overlay-color-active, rgba(20, 20, 20, 0.1607843137)), transparent);
17
- }
18
-
19
- @layer reset {
20
- ._overflow_78kb1_1,
21
- ._overflow-text_78kb1_19 {
22
- all: unset;
23
- font-family: var(--font-family-base, "Nunito Sans", sans-serif);
24
- font-size: 100%;
25
- color: var(--foreground-color, #141414);
26
- margin: 0;
27
- padding: 0;
28
- border-style: none;
29
- border-width: 0;
30
- border-color: transparent;
31
- box-sizing: border-box;
32
- display: flex;
33
- }
34
- ._expand-button_78kb1_32 {
35
- all: unset;
36
- font-family: var(--font-family-base, "Nunito Sans", sans-serif);
37
- font-size: 100%;
38
- color: var(--foreground-color-primary, #0265DC);
39
- margin: 0;
40
- padding: 0;
41
- border-style: none;
42
- border-width: 0;
43
- border-color: transparent;
44
- box-sizing: border-box;
45
- display: inline-flex;
46
- }
47
- }
48
- @layer base {
49
- ._overflow_78kb1_1 {
50
- height: inherit;
51
- padding: 0.25rem;
52
- margin-inline: -0.25rem;
53
- grid-template-rows: 0fr;
54
- gap: 0.5rem;
55
- position: relative;
56
- width: -webkit-fill-available;
57
- width: -moz-available;
58
- width: stretch;
59
- transition: all 200ms cubic-bezier(0, 0, 0.4, 1);
60
- overflow: clip;
61
- }
62
- ._overflow_78kb1_1 ._content_78kb1_58 {
63
- padding: 0.25rem;
64
- margin: -0.25rem;
65
- overflow: auto;
66
- scrollbar-gutter: stable;
67
- outline-offset: 0.125rem;
68
- outline: 0 solid var(--focus-ring-color, #0265DC);
69
- transition: outline 200ms cubic-bezier(0, 0, 0.4, 1);
70
- border-radius: 0.375rem;
71
- width: -webkit-fill-available;
72
- width: -moz-available;
73
- width: stretch;
74
- }
75
- ._overflow_78kb1_1 ._content_78kb1_58:focus-visible {
76
- outline-width: 0.125rem;
77
- }
78
- ._overflow-text_78kb1_19 {
79
- gap: 0.5rem;
80
- flex-direction: column;
81
- }
82
- ._overflow-text_78kb1_19 ._content_78kb1_58 {
83
- padding: 0.25rem;
84
- margin: -0.25rem;
85
- display: -webkit-box;
86
- overflow: hidden;
87
- -webkit-box-orient: vertical;
88
- line-clamp: var(--overflow-text-row);
89
- -webkit-line-clamp: var(--overflow-text-row);
90
- line-height: 1.5;
91
- text-overflow: ellipsis;
92
- overflow-wrap: break-word;
93
- }
94
- ._expand-button_78kb1_32 {
95
- cursor: pointer;
96
- align-items: center;
97
- align-self: flex-start;
98
- width: -moz-fit-content;
99
- width: fit-content;
100
- border-radius: 0.1875rem;
101
- text-decoration: underline;
102
- outline: 0 solid var(--focus-ring-color, #0265DC);
103
- outline-offset: 0.125rem;
104
- }
105
- }
106
- @layer state {
107
- ._overflow_78kb1_1._expanded_78kb1_1 {
108
- grid-template-rows: 1fr;
109
- }
110
- ._overflow_78kb1_1 ._content_78kb1_58:focus-visible {
111
- outline-width: 0.125rem;
112
- }
113
- ._overflow_78kb1_1._horizontal_78kb1_106 {
114
- grid-template-rows: 1fr;
115
- }
116
- ._overflow_78kb1_1._truncate_78kb1_109 {
117
- display: grid;
118
- }
119
- ._overflow_78kb1_1._truncate_78kb1_109 ._content_78kb1_58 {
120
- overflow: hidden;
121
- }
122
- ._overflow_78kb1_1:not(._expanded_78kb1_1) ._shadow-left_78kb1_13 {
123
- position: absolute;
124
- left: 0;
125
- height: 100%;
126
- width: 1.5rem;
127
- pointer-events: none;
128
- }
129
- ._overflow_78kb1_1:not(._expanded_78kb1_1) ._shadow-right_78kb1_5 {
130
- position: absolute;
131
- right: 0;
132
- height: 100%;
133
- width: 1.5rem;
134
- pointer-events: none;
135
- }
136
- ._overflow_78kb1_1:not(._expanded_78kb1_1) ._shadow-top_78kb1_1 {
137
- position: absolute;
138
- top: 0;
139
- width: 100%;
140
- height: 1.5rem;
141
- pointer-events: none;
142
- }
143
- ._overflow_78kb1_1:not(._expanded_78kb1_1) ._shadow-bottom_78kb1_9 {
144
- position: absolute;
145
- bottom: 0;
146
- width: 100%;
147
- height: 1.5rem;
148
- pointer-events: none;
149
- }
150
- ._overflow-text_78kb1_19._expanded_78kb1_1 ._content_78kb1_58 {
151
- min-height: -moz-fit-content;
152
- min-height: fit-content;
153
- }
154
- ._expand-button_78kb1_32:focus-visible {
155
- outline-width: 0.125rem;
156
- }
157
- ._expand-button_78kb1_32:hover {
158
- opacity: 0.8;
159
- }
160
- }
161
- @layer application {
162
- @media (prefers-reduced-motion: reduce) {
163
- ._overflow_78kb1_1 {
164
- transition-duration: 0.01ms !important;
165
- }
166
- }
167
146
  }
package/dist/Overflow.js CHANGED
@@ -1,29 +1,28 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { forwardRef, useRef, useState, useCallback, useLayoutEffect, useEffect } from 'react';
3
3
  import { c as cx } from './index-De1g9FRV.js';
4
- import { F as Flex } from './Flex-WyyZm1bf.js';
4
+ import { F as Flex } from './Flex-DOUtHiPi.js';
5
5
  import { c as childrenToString } from './childrenToString-Bz9MqbHb.js';
6
6
  import { useTrackingId } from './useTrackingId.js';
7
- import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-DMDdfIah.js';
7
+ import { u as useLayoutPropsUtil } from './useLayoutPropsUtil-CB_zHDbW.js';
8
8
  import { g as getKeyboardFocusableElements } from './getKeyboardFocusableElements-QqcABz0D.js';
9
9
 
10
- import './Overflow.css';const overflow = "_overflow_78kb1_1";
11
- const expanded = "_expanded_78kb1_1";
12
- const content = "_content_78kb1_58";
13
- const horizontal = "_horizontal_78kb1_106";
14
- const truncate = "_truncate_78kb1_109";
15
- const styles = {
10
+ import './Overflow.css';const overflow = "_overflow_qkpk6_1";
11
+ const expanded$1 = "_expanded_qkpk6_34";
12
+ const horizontal = "_horizontal_qkpk6_39";
13
+ const truncate = "_truncate_qkpk6_43";
14
+ const content$1 = "_content_qkpk6_48";
15
+ const overflowStyles = {
16
16
  overflow: overflow,
17
- expanded: expanded,
18
- "shadow-top": "_shadow-top_78kb1_1",
19
- "shadow-right": "_shadow-right_78kb1_5",
20
- "shadow-bottom": "_shadow-bottom_78kb1_9",
21
- "shadow-left": "_shadow-left_78kb1_13",
22
- "overflow-text": "_overflow-text_78kb1_19",
23
- "expand-button": "_expand-button_78kb1_32",
24
- content: content,
17
+ expanded: expanded$1,
25
18
  horizontal: horizontal,
26
- truncate: truncate
19
+ truncate: truncate,
20
+ content: content$1,
21
+ "shadow-left": "_shadow-left_qkpk6_64",
22
+ "shadow-right": "_shadow-right_qkpk6_74",
23
+ "shadow-top": "_shadow-top_qkpk6_84",
24
+ "shadow-bottom": "_shadow-bottom_qkpk6_94",
25
+ "expand-button": "_expand-button_qkpk6_104"
27
26
  };
28
27
 
29
28
  const Overflow$1 = forwardRef(
@@ -151,10 +150,10 @@ const Overflow$1 = forwardRef(
151
150
  }
152
151
  });
153
152
  };
154
- const overflowClassNames = cx([styles["overflow"]], className, {
155
- [styles["horizontal"]]: direction === "row",
156
- [styles["truncate"]]: !!truncate,
157
- [styles["expanded"]]: expanded
153
+ const overflowClassNames = cx([overflowStyles["overflow"]], className, {
154
+ [overflowStyles["horizontal"]]: direction === "row",
155
+ [overflowStyles["truncate"]]: !!truncate,
156
+ [overflowStyles["expanded"]]: expanded
158
157
  });
159
158
  useEffect(() => {
160
159
  if (!truncate) return;
@@ -198,12 +197,12 @@ const Overflow$1 = forwardRef(
198
197
  "data-tracking-id": trackingId,
199
198
  ...rest,
200
199
  children: [
201
- shadow.top && !truncate ? /* @__PURE__ */ jsx("div", { className: styles["shadow-top"] }) : null,
202
- shadow.left && !truncate ? /* @__PURE__ */ jsx("div", { className: styles["shadow-left"] }) : null,
200
+ shadow.top && !truncate ? /* @__PURE__ */ jsx("div", { className: overflowStyles["shadow-top"] }) : null,
201
+ shadow.left && !truncate ? /* @__PURE__ */ jsx("div", { className: overflowStyles["shadow-left"] }) : null,
203
202
  /* @__PURE__ */ jsx(
204
203
  Flex,
205
204
  {
206
- className: styles["content"],
205
+ className: overflowStyles["content"],
207
206
  onScroll: handleOnScroll,
208
207
  style: contentStyle2,
209
208
  ref: contentRef,
@@ -213,12 +212,12 @@ const Overflow$1 = forwardRef(
213
212
  children
214
213
  }
215
214
  ),
216
- shadow.bottom && !truncate ? /* @__PURE__ */ jsx("div", { className: styles["shadow-bottom"] }) : null,
217
- shadow.right && !truncate ? /* @__PURE__ */ jsx("div", { className: styles["shadow-right"] }) : null,
215
+ shadow.bottom && !truncate ? /* @__PURE__ */ jsx("div", { className: overflowStyles["shadow-bottom"] }) : null,
216
+ shadow.right && !truncate ? /* @__PURE__ */ jsx("div", { className: overflowStyles["shadow-right"] }) : null,
218
217
  truncate && showExpand ? /* @__PURE__ */ jsx(
219
218
  "button",
220
219
  {
221
- className: styles["expand-button"],
220
+ className: overflowStyles["expand-button"],
222
221
  onClick: onExpandClickHandler,
223
222
  children: expanded ? collapseString : expandString
224
223
  }
@@ -245,12 +244,12 @@ const Overflow$1 = forwardRef(
245
244
  "data-tracking-id": trackingId,
246
245
  ...rest,
247
246
  children: [
248
- shadow.left ? /* @__PURE__ */ jsx("div", { className: styles["shadow-left"] }) : null,
249
- shadow.top ? /* @__PURE__ */ jsx("div", { className: styles["shadow-top"] }) : null,
247
+ shadow.left ? /* @__PURE__ */ jsx("div", { className: overflowStyles["shadow-left"] }) : null,
248
+ shadow.top ? /* @__PURE__ */ jsx("div", { className: overflowStyles["shadow-top"] }) : null,
250
249
  /* @__PURE__ */ jsx(
251
250
  Flex,
252
251
  {
253
- className: styles["content"],
252
+ className: overflowStyles["content"],
254
253
  onScroll: handleOnScroll,
255
254
  ref: contentRef,
256
255
  style: contentStyle,
@@ -260,8 +259,8 @@ const Overflow$1 = forwardRef(
260
259
  children
261
260
  }
262
261
  ),
263
- shadow.bottom ? /* @__PURE__ */ jsx("div", { className: styles["shadow-bottom"] }) : null,
264
- shadow.right ? /* @__PURE__ */ jsx("div", { className: styles["shadow-right"] }) : null
262
+ shadow.bottom ? /* @__PURE__ */ jsx("div", { className: overflowStyles["shadow-bottom"] }) : null,
263
+ shadow.right ? /* @__PURE__ */ jsx("div", { className: overflowStyles["shadow-right"] }) : null
265
264
  ]
266
265
  }
267
266
  );
@@ -269,6 +268,14 @@ const Overflow$1 = forwardRef(
269
268
  );
270
269
  Overflow$1.displayName = "Overflow";
271
270
 
271
+ const content = "_content_1ik95_18";
272
+ const expanded = "_expanded_1ik95_32";
273
+ const styles = {
274
+ "overflow-text": "_overflow-text_1ik95_1",
275
+ content: content,
276
+ expanded: expanded
277
+ };
278
+
272
279
  const OverflowText = forwardRef(
273
280
  (props, ref) => {
274
281
  const data = {
@@ -292,7 +299,7 @@ const OverflowText = forwardRef(
292
299
  const styledCombined = {
293
300
  ...style,
294
301
  ...layoutStyles,
295
- "--overflow-text-row": expanded || rows === "unlimited" ? "initial" : rows
302
+ "--a2-inline-overflow-text-row": expanded || rows === "unlimited" ? "initial" : rows
296
303
  };
297
304
  useEffect(() => {
298
305
  if (contentRef.current) {
@@ -346,14 +353,9 @@ const OverflowText = forwardRef(
346
353
  }
347
354
  onExpand?.(e);
348
355
  };
349
- const overflowTextClassNames2 = cx(
350
- [styles["overflow-text"]],
351
- [styles["expandable"]],
352
- className,
353
- {
354
- [styles["expanded"]]: expanded
355
- }
356
- );
356
+ const overflowTextClassNames2 = cx([styles["overflow-text"]], className, {
357
+ [styles["expanded"]]: expanded
358
+ });
357
359
  return /* @__PURE__ */ jsxs(
358
360
  "div",
359
361
  {
@@ -368,7 +370,7 @@ const OverflowText = forwardRef(
368
370
  showExpand && /* @__PURE__ */ jsx(
369
371
  "button",
370
372
  {
371
- className: styles["expand-button"],
373
+ className: overflowStyles["expand-button"],
372
374
  onClick: onExpandClickHandler,
373
375
  children: expanded ? collapseString : expandString
374
376
  }
@@ -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 cx from \"classnames\";\nimport styles from \"./Overflow.module.scss\";\nimport {\n childrenToString,\n getKeyboardFocusableElements,\n} from \"../../internal/functions\";\nimport { useTrackingId } from \"../../hooks\";\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 \"--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(\n [styles[\"overflow-text\"]],\n [styles[\"expandable\"]],\n className,\n {\n [styles[\"expanded\"]]: expanded,\n },\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={styles[\"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","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 { 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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"}