@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.
- package/CHANGELOG.md +87 -0
- package/dist/{AiMark-DR-w6Nbm.js → AiMark-B1-M3ZgP.js} +26 -25
- package/dist/{AiMark-DR-w6Nbm.js.map → AiMark-B1-M3ZgP.js.map} +1 -1
- package/dist/AiMark.css +246 -256
- package/dist/AiMark.js +1 -1
- package/dist/{Alert-Dj61Bq8h.js → Alert-DmbqtMg_.js} +20 -31
- package/dist/Alert-DmbqtMg_.js.map +1 -0
- package/dist/Alert.css +72 -90
- package/dist/Alert.js +1 -1
- package/dist/{Announcement-B9zm-_1S.js → Announcement-_C5g2Lzm.js} +14 -14
- package/dist/{Announcement-B9zm-_1S.js.map → Announcement-_C5g2Lzm.js.map} +1 -1
- package/dist/Announcement.css +108 -97
- package/dist/Announcement.js +1 -1
- package/dist/{AnvilProvider-DUPYyMc7.js → AnvilProvider-JXEbeQjR.js} +13 -8
- package/dist/AnvilProvider-JXEbeQjR.js.map +1 -0
- package/dist/AnvilProvider.js +1 -1
- package/dist/{Avatar-BckUfs1N.js → Avatar-B4hRHku9.js} +23 -23
- package/dist/Avatar-B4hRHku9.js.map +1 -0
- package/dist/{Avatar-ChybzixS.js → Avatar-NbFc4Ovc.js} +2 -2
- package/dist/{Avatar-ChybzixS.js.map → Avatar-NbFc4Ovc.js.map} +1 -1
- package/dist/Avatar.css +116 -177
- package/dist/Avatar.js +2 -2
- package/dist/{Badge-C2W7Dls9.js → Badge-C_wTvtnB.js} +7 -7
- package/dist/{Badge-C2W7Dls9.js.map → Badge-C_wTvtnB.js.map} +1 -1
- package/dist/Badge.css +42 -50
- package/dist/Badge.js +1 -1
- package/dist/{Breadcrumbs-ojgYVZwe.js → Breadcrumbs-CYmciJ1D.js} +7 -7
- package/dist/{Breadcrumbs-ojgYVZwe.js.map → Breadcrumbs-CYmciJ1D.js.map} +1 -1
- package/dist/Breadcrumbs.css +37 -45
- package/dist/Breadcrumbs.js +1 -1
- package/dist/{Button-BdrrhBTI.js → Button-Bnt8XUI7.js} +13 -10
- package/dist/{Button-BdrrhBTI.js.map → Button-Bnt8XUI7.js.map} +1 -1
- package/dist/Button.css +274 -335
- package/dist/Button.js +1 -1
- package/dist/Button.module-DsGhJYRw.js +23 -0
- package/dist/Button.module-DsGhJYRw.js.map +1 -0
- package/dist/{ButtonCompound-Cmw3cgMY.js → ButtonCompound-DsrK7G3q.js} +11 -4
- package/dist/ButtonCompound-DsrK7G3q.js.map +1 -0
- package/dist/ButtonCompound.css +25 -0
- package/dist/ButtonCompound.js +1 -1
- package/dist/{ButtonLink-BJKTJER8.js → ButtonLink-j3h_wRNi.js} +9 -6
- package/dist/ButtonLink-j3h_wRNi.js.map +1 -0
- package/dist/ButtonLink.js +1 -1
- package/dist/{ButtonToggle-DaFQ3DBG.js → ButtonToggle-Ct9_5bhC.js} +7 -4
- package/dist/ButtonToggle-Ct9_5bhC.js.map +1 -0
- package/dist/ButtonToggle.css +109 -0
- package/dist/ButtonToggle.js +1 -1
- package/dist/{Calendar-Cka4unyi.js → Calendar-BAbAagIx.js} +2 -2
- package/dist/{Calendar-Cka4unyi.js.map → Calendar-BAbAagIx.js.map} +1 -1
- package/dist/{Calendar-Dxl9QnfP.js → Calendar-CaCMa_jq.js} +38 -35
- package/dist/Calendar-CaCMa_jq.js.map +1 -0
- package/dist/Calendar.css +250 -301
- package/dist/Calendar.js +2 -2
- package/dist/{Card-wz71dEVA.js → Card-DSFuXUGk.js} +11 -11
- package/dist/{Card-wz71dEVA.js.map → Card-DSFuXUGk.js.map} +1 -1
- package/dist/Card.css +51 -65
- package/dist/Card.js +1 -1
- package/dist/{Checkbox-B-XTVPbX.js → Checkbox-BSAS8-DM.js} +28 -39
- package/dist/Checkbox-BSAS8-DM.js.map +1 -0
- package/dist/{Checkbox-Cw1-KFvq.js → Checkbox-Ckl8EFpF.js} +2 -2
- package/dist/{Checkbox-Cw1-KFvq.js.map → Checkbox-Ckl8EFpF.js.map} +1 -1
- package/dist/Checkbox.css +237 -271
- package/dist/Checkbox.js +1 -1
- package/dist/Checkbox.module-TYMeYIxw.js +28 -0
- package/dist/Checkbox.module-TYMeYIxw.js.map +1 -0
- package/dist/{Chip-Ce0WGKAc.js → Chip-CR5i8mQW.js} +31 -23
- package/dist/Chip-CR5i8mQW.js.map +1 -0
- package/dist/Chip.css +191 -206
- package/dist/Chip.js +1 -1
- package/dist/{Combobox-CNQUROyr.js → Combobox-BffGTugd.js} +59 -72
- package/dist/Combobox-BffGTugd.js.map +1 -0
- package/dist/Combobox.css +158 -176
- package/dist/Combobox.js +1 -1
- package/dist/{DataTable-BCV_mtSy.js → DataTable-D9Xj1nq5.js} +437 -479
- package/dist/DataTable-D9Xj1nq5.js.map +1 -0
- package/dist/DataTable.css +593 -739
- package/dist/{DateFieldRange-D2hnF50O.js → DateFieldRange-DPTC3EZz.js} +6 -6
- package/dist/{DateFieldRange-D2hnF50O.js.map → DateFieldRange-DPTC3EZz.js.map} +1 -1
- package/dist/DateFieldRange.js +1 -1
- package/dist/{DateFieldSingle-BuaB7RDr.js → DateFieldSingle-w1G-zd9G.js} +6 -6
- package/dist/{DateFieldSingle-BuaB7RDr.js.map → DateFieldSingle-w1G-zd9G.js.map} +1 -1
- package/dist/DateFieldSingle.js +1 -1
- package/dist/{DateFieldYearless-DLeMEutt.js → DateFieldYearless-DHNVc7Sd.js} +7 -7
- package/dist/{DateFieldYearless-DLeMEutt.js.map → DateFieldYearless-DHNVc7Sd.js.map} +1 -1
- package/dist/DateFieldYearless.js +1 -1
- package/dist/{DateFieldYearlessRange-BfPuYKKC.js → DateFieldYearlessRange-C5ktVUgG.js} +10 -10
- package/dist/{DateFieldYearlessRange-BfPuYKKC.js.map → DateFieldYearlessRange-C5ktVUgG.js.map} +1 -1
- package/dist/DateFieldYearlessRange.css +11 -19
- package/dist/DateFieldYearlessRange.js +1 -1
- package/dist/{DaysOfTheWeek-BW1T8sTU.js → DaysOfTheWeek-BubWkBZ0.js} +10 -10
- package/dist/{DaysOfTheWeek-BW1T8sTU.js.map → DaysOfTheWeek-BubWkBZ0.js.map} +1 -1
- package/dist/DaysOfTheWeek.css +19 -27
- package/dist/DaysOfTheWeek.js +1 -1
- package/dist/{Details-CZOIpNP_.js → Details-DYRJcLWL.js} +10 -10
- package/dist/{Details-CZOIpNP_.js.map → Details-DYRJcLWL.js.map} +1 -1
- package/dist/Details.css +134 -138
- package/dist/Details.js +1 -1
- package/dist/{Dialog-Cewu2pd_.js → Dialog-DGmF6qx3.js} +27 -26
- package/dist/Dialog-DGmF6qx3.js.map +1 -0
- package/dist/Dialog.css +108 -143
- package/dist/Dialog.js +1 -1
- package/dist/{DialogCancelButton-Czz4Wpse.js → DialogCancelButton-CbtQcf2J.js} +2 -2
- package/dist/{DialogCancelButton-Czz4Wpse.js.map → DialogCancelButton-CbtQcf2J.js.map} +1 -1
- package/dist/{Divider-B1UoK8ho.js → Divider-Ds3WKsKa.js} +19 -19
- package/dist/{Divider-B1UoK8ho.js.map → Divider-Ds3WKsKa.js.map} +1 -1
- package/dist/Divider.css +93 -169
- package/dist/Divider.js +1 -1
- package/dist/Dnd.js +1 -1
- package/dist/DndSort.css +18 -34
- package/dist/DndSort.js +10 -10
- package/dist/{Drawer-Cb5asXWf.js → Drawer-iewBy1DW.js} +24 -25
- package/dist/{Drawer-Cb5asXWf.js.map → Drawer-iewBy1DW.js.map} +1 -1
- package/dist/Drawer.css +109 -144
- package/dist/Drawer.js +1 -1
- package/dist/DrillDown.css +117 -131
- package/dist/DrillDown.js +1 -1
- package/dist/DrillDown.module-D1Bf9_yP.js +27 -0
- package/dist/{DrillDown.module-C8VOhzaF.js.map → DrillDown.module-D1Bf9_yP.js.map} +1 -1
- package/dist/{EditCard-DlJE3LXN.js → EditCard-D7-Ye7R0.js} +21 -20
- package/dist/{EditCard-DlJE3LXN.js.map → EditCard-D7-Ye7R0.js.map} +1 -1
- package/dist/EditCard.css +71 -65
- package/dist/EditCard.js +1 -1
- package/dist/{FieldLabel-HO2VP-4B.js → FieldLabel-DZWu5dMp.js} +17 -17
- package/dist/{FieldLabel-HO2VP-4B.js.map → FieldLabel-DZWu5dMp.js.map} +1 -1
- package/dist/FieldLabel.css +66 -102
- package/dist/FieldLabel.js +1 -1
- package/dist/FieldMessage-DzxfodaI.js +81 -0
- package/dist/FieldMessage-DzxfodaI.js.map +1 -0
- package/dist/FieldMessage.css +20 -29
- package/dist/FieldMessage.js +1 -1
- package/dist/{Flex-WyyZm1bf.js → Flex-DOUtHiPi.js} +4 -4
- package/dist/{Flex-WyyZm1bf.js.map → Flex-DOUtHiPi.js.map} +1 -1
- package/dist/Flex.css +25 -28
- package/dist/Flex.js +1 -1
- package/dist/{Grid-DeYIx5k4.js → Grid-B1VVssDD.js} +5 -5
- package/dist/{Grid-DeYIx5k4.js.map → Grid-B1VVssDD.js.map} +1 -1
- package/dist/Grid.css +37 -54
- package/dist/Grid.js +1 -1
- package/dist/{Helper-B_FIOlhy.js → Helper-DtDeaYTn.js} +8 -10
- package/dist/Helper-DtDeaYTn.js.map +1 -0
- package/dist/Helper.css +4 -16
- package/dist/{Icon-DuIlne4x.js → Icon-BMMbp40n.js} +7 -7
- package/dist/{Icon-DuIlne4x.js.map → Icon-BMMbp40n.js.map} +1 -1
- package/dist/Icon.css +42 -48
- package/dist/Icon.js +1 -1
- package/dist/{InputMask-CLLTehFI.js → InputMask-EwEJlW-t.js} +3 -3
- package/dist/{InputMask-CLLTehFI.js.map → InputMask-EwEJlW-t.js.map} +1 -1
- package/dist/InputMask.js +1 -1
- package/dist/{InteractiveCard-GTYbR6Xy.js → InteractiveCard-CnW0m_F-.js} +7 -7
- package/dist/{InteractiveCard-GTYbR6Xy.js.map → InteractiveCard-CnW0m_F-.js.map} +1 -1
- package/dist/InteractiveCard.css +56 -57
- package/dist/InteractiveCard.js +1 -1
- package/dist/{Layout-CISAxILX.js → Layout-C2Q2hyLG.js} +80 -80
- package/dist/{Layout-CISAxILX.js.map → Layout-C2Q2hyLG.js.map} +1 -1
- package/dist/Layout.css +260 -324
- package/dist/Layout.js +1 -1
- package/dist/{Link-jTvzyXca.js → Link-BUgivkGS.js} +8 -8
- package/dist/{Link-jTvzyXca.js.map → Link-BUgivkGS.js.map} +1 -1
- package/dist/Link.css +48 -65
- package/dist/Link.js +1 -1
- package/dist/Link.module-DJc0cOlg.js +12 -0
- package/dist/Link.module-DJc0cOlg.js.map +1 -0
- package/dist/{LinkButton-DGyHR1E7.js → LinkButton-CuHSdGdj.js} +7 -16
- package/dist/LinkButton-CuHSdGdj.js.map +1 -0
- package/dist/LinkButton.js +1 -1
- package/dist/{List--KhCpjZn.js → List-BXyHWQ9e.js} +8 -8
- package/dist/{List--KhCpjZn.js.map → List-BXyHWQ9e.js.map} +1 -1
- package/dist/List.css +39 -58
- package/dist/List.js +1 -1
- package/dist/{ListView-CPi-qG2w.js → ListView-DBO9Bl1H.js} +4 -4
- package/dist/{ListView-CPi-qG2w.js.map → ListView-DBO9Bl1H.js.map} +1 -1
- package/dist/ListView.css +108 -120
- package/dist/ListView.js +1 -1
- package/dist/ListView.module-CRk9NfLG.js +9 -0
- package/dist/ListView.module-CRk9NfLG.js.map +1 -0
- package/dist/{Listbox-Bp4hqIpH.js → Listbox-DDlxpVu9.js} +7 -7
- package/dist/{Listbox-Bp4hqIpH.js.map → Listbox-DDlxpVu9.js.map} +1 -1
- package/dist/Listbox.css +102 -143
- package/dist/Listbox.js +1 -1
- package/dist/Listbox.module-CfpLm9pS.js +18 -0
- package/dist/Listbox.module-CfpLm9pS.js.map +1 -0
- package/dist/{LocalizationProvider-DWCyga_d.js → LocalizationProvider-CO8fQGqs.js} +2 -2
- package/dist/{LocalizationProvider-DWCyga_d.js.map → LocalizationProvider-CO8fQGqs.js.map} +1 -1
- package/dist/LocalizationProvider.js +1 -1
- package/dist/{Menu-CCavGohP.js → Menu-wpTyUDac.js} +10 -10
- package/dist/{Menu-CCavGohP.js.map → Menu-wpTyUDac.js.map} +1 -1
- package/dist/Menu.css +135 -137
- package/dist/Menu.js +1 -1
- package/dist/MultiSelectField.js +1 -1
- package/dist/{MultiSelectFieldSync-ChZCW4M9.js → MultiSelectFieldSync-DZ3tm7zt.js} +34 -33
- package/dist/MultiSelectFieldSync-DZ3tm7zt.js.map +1 -0
- package/dist/MultiSelectFieldSync.css +263 -257
- package/dist/MultiSelectMenu.js +1 -1
- package/dist/{MultiSelectMenuSync-7C1wW4oO.js → MultiSelectMenuSync-dgO9SmHi.js} +4 -4
- package/dist/{MultiSelectMenuSync-7C1wW4oO.js.map → MultiSelectMenuSync-dgO9SmHi.js.map} +1 -1
- package/dist/{NumberField-CZSTHBeO.js → NumberField-DJbdyatF.js} +15 -12
- package/dist/{NumberField-CZSTHBeO.js.map → NumberField-DJbdyatF.js.map} +1 -1
- package/dist/NumberField.css +34 -49
- package/dist/NumberField.js +1 -1
- package/dist/Overflow.css +143 -164
- package/dist/Overflow.js +44 -42
- package/dist/Overflow.js.map +1 -1
- package/dist/{Page-BHdvTlfE.js → Page-Be1Blwme.js} +65 -65
- package/dist/Page-Be1Blwme.js.map +1 -0
- package/dist/Page.css +384 -404
- package/dist/Page.js +1 -1
- package/dist/{Pagination-DecGSuW4.js → Pagination-USDJM5vi.js} +29 -34
- package/dist/{Pagination-DecGSuW4.js.map → Pagination-USDJM5vi.js.map} +1 -1
- package/dist/Pagination.css +63 -116
- package/dist/Pagination.js +1 -1
- package/dist/{Popover-BbqTZw-1.js → Popover-CyB7yzSf.js} +7 -7
- package/dist/{Popover-BbqTZw-1.js.map → Popover-CyB7yzSf.js.map} +1 -1
- package/dist/Popover.css +84 -97
- package/dist/Popover.js +1 -1
- package/dist/{ProgressBar-CZcxkdX6.js → ProgressBar-DSrjgLTx.js} +15 -15
- package/dist/{ProgressBar-CZcxkdX6.js.map → ProgressBar-DSrjgLTx.js.map} +1 -1
- package/dist/ProgressBar.css +59 -81
- package/dist/ProgressBar.js +1 -1
- package/dist/{Radio-BFr8AdHc.js → Radio-CQaXJ72d.js} +2 -2
- package/dist/{Radio-BFr8AdHc.js.map → Radio-CQaXJ72d.js.map} +1 -1
- package/dist/{Radio-DJZVMCv0.js → Radio-DO4UhbBE.js} +45 -48
- package/dist/Radio-DO4UhbBE.js.map +1 -0
- package/dist/Radio.css +233 -229
- package/dist/Radio.js +1 -1
- package/dist/{SearchField-im7AHGYo.js → SearchField-CsRGYZx3.js} +9 -11
- package/dist/{SearchField-im7AHGYo.js.map → SearchField-CsRGYZx3.js.map} +1 -1
- package/dist/SearchField.css +22 -39
- package/dist/SearchField.js +1 -1
- package/dist/{SegmentedControl-B9NWUF7s.js → SegmentedControl-Chhqyyra.js} +15 -16
- package/dist/SegmentedControl-Chhqyyra.js.map +1 -0
- package/dist/SegmentedControl.css +103 -122
- package/dist/SegmentedControl.js +1 -1
- package/dist/SelectCard-CtXwY8FZ.js +351 -0
- package/dist/SelectCard-CtXwY8FZ.js.map +1 -0
- package/dist/SelectCard.css +135 -82
- package/dist/SelectCard.js +1 -1
- package/dist/SelectField.js +1 -1
- package/dist/{SelectFieldLabel-kEBS8L4l.js → SelectFieldLabel-DLT5dKbx.js} +3 -3
- package/dist/{SelectFieldLabel-kEBS8L4l.js.map → SelectFieldLabel-DLT5dKbx.js.map} +1 -1
- package/dist/{SelectFieldSync-o1Cp9UYC.js → SelectFieldSync-C44hPeeS.js} +9 -8
- package/dist/SelectFieldSync-C44hPeeS.js.map +1 -0
- package/dist/SelectMenu.js +1 -1
- package/dist/{SelectMenuSync-DXrwecFt.js → SelectMenuSync-V97oN85V.js} +4 -4
- package/dist/{SelectMenuSync-DXrwecFt.js.map → SelectMenuSync-V97oN85V.js.map} +1 -1
- package/dist/{SelectOptions-Dy2OWqxn.js → SelectOptions-CDoo4AUu.js} +2 -2
- package/dist/{SelectOptions-Dy2OWqxn.js.map → SelectOptions-CDoo4AUu.js.map} +1 -1
- package/dist/{SelectTrigger-DhKYzEAr.js → SelectTrigger-BWN3Tx43.js} +5 -5
- package/dist/{SelectTrigger-DhKYzEAr.js.map → SelectTrigger-BWN3Tx43.js.map} +1 -1
- package/dist/SelectTrigger.js +1 -1
- package/dist/{SelectTriggerBase-Ni8WqeUx.js → SelectTriggerBase-Do7lQ5rw.js} +8 -7
- package/dist/{SelectTriggerBase-Ni8WqeUx.js.map → SelectTriggerBase-Do7lQ5rw.js.map} +1 -1
- package/dist/SelectTriggerBase.css +231 -305
- package/dist/SelectTriggerBase.module-DKF1FQnc.js +37 -0
- package/dist/SelectTriggerBase.module-DKF1FQnc.js.map +1 -0
- package/dist/{SideNav-CrxYExjh.js → SideNav-CZRVOSbt.js} +19 -14
- package/dist/SideNav-CZRVOSbt.js.map +1 -0
- package/dist/SideNav.css +126 -294
- package/dist/SideNav.js +1 -1
- package/dist/Skeleton.css +57 -65
- package/dist/Skeleton.js +16 -16
- package/dist/Skeleton.js.map +1 -1
- package/dist/{Spinner-BqmcE2pb.js → Spinner-lPMo68yW.js} +16 -17
- package/dist/Spinner-lPMo68yW.js.map +1 -0
- package/dist/Spinner.css +33 -43
- package/dist/Spinner.js +1 -1
- package/dist/{SrOnly-eUpYGpAT.js → SrOnly-pnf8ajnh.js} +2 -2
- package/dist/{SrOnly-eUpYGpAT.js.map → SrOnly-pnf8ajnh.js.map} +1 -1
- package/dist/SrOnly.css +12 -14
- package/dist/SrOnly.js +1 -1
- package/dist/StatusIcon-BwULopyH.js +57 -0
- package/dist/StatusIcon-BwULopyH.js.map +1 -0
- package/dist/StatusIcon.css +32 -0
- package/dist/{Stepper-Dt2xAXth.js → Stepper-CYY64NU1.js} +16 -16
- package/dist/{Stepper-Dt2xAXth.js.map → Stepper-CYY64NU1.js.map} +1 -1
- package/dist/Stepper.css +180 -239
- package/dist/Stepper.js +1 -1
- package/dist/{Switch-C84MBChG.js → Switch-DeBu4Ucg.js} +17 -13
- package/dist/{Switch-C84MBChG.js.map → Switch-DeBu4Ucg.js.map} +1 -1
- package/dist/Switch.css +109 -125
- package/dist/Switch.js +1 -1
- package/dist/{Tab-BZpTCG0i.js → Tab-CewPzmuK.js} +20 -34
- package/dist/Tab-CewPzmuK.js.map +1 -0
- package/dist/Tab.css +232 -194
- package/dist/Tab.js +1 -1
- package/dist/Table.js +1 -1
- package/dist/{Text-WiS8UZkY.js → Text-J5YtSSXY.js} +15 -38
- package/dist/Text-J5YtSSXY.js.map +1 -0
- package/dist/Text.css +101 -142
- package/dist/Text.js +1 -1
- package/dist/Text.module-BXrY87ui.js +23 -0
- package/dist/Text.module-BXrY87ui.js.map +1 -0
- package/dist/{TextField-Bul_uln5.js → TextField-CRDTnuUN.js} +7 -7
- package/dist/{TextField-Bul_uln5.js.map → TextField-CRDTnuUN.js.map} +1 -1
- package/dist/{TextField-OznkTx4e.js → TextField-YlMkDHp-.js} +2 -2
- package/dist/{TextField-OznkTx4e.js.map → TextField-YlMkDHp-.js.map} +1 -1
- package/dist/TextField.css +156 -148
- package/dist/TextField.js +1 -1
- package/dist/TextField.module-MRVo1X9H.js +23 -0
- package/dist/TextField.module-MRVo1X9H.js.map +1 -0
- package/dist/{Textarea-CCYLsJ1x.js → Textarea-CxXmr_Gx.js} +16 -13
- package/dist/{Textarea-CCYLsJ1x.js.map → Textarea-CxXmr_Gx.js.map} +1 -1
- package/dist/Textarea.css +71 -81
- package/dist/Textarea.js +1 -1
- package/dist/{ThemeProvider-CaYW3RuA.js → ThemeProvider-D4KdGCaP.js} +11 -9
- package/dist/ThemeProvider-D4KdGCaP.js.map +1 -0
- package/dist/ThemeProvider.css +586 -516
- package/dist/ThemeProvider.js +1 -1
- package/dist/{TimeField-BPvPbD8H.js → TimeField-DTg0CE5L.js} +7 -7
- package/dist/{TimeField-BPvPbD8H.js.map → TimeField-DTg0CE5L.js.map} +1 -1
- package/dist/TimeField.css +5 -8
- package/dist/TimeField.js +1 -1
- package/dist/{TimezoneMessage-Cnsl4cHT.js → TimezoneMessage-BrKB_psP.js} +2 -2
- package/dist/{TimezoneMessage-Cnsl4cHT.js.map → TimezoneMessage-BrKB_psP.js.map} +1 -1
- package/dist/TimezoneMessage.css +5 -5
- package/dist/Toast.js +2 -2
- package/dist/{Toaster-DYJm06Vb.js → Toaster-Bq42x6Gx.js} +35 -34
- package/dist/Toaster-Bq42x6Gx.js.map +1 -0
- package/dist/{Toaster-CIaIvwH6.js → Toaster-Dly3rfva.js} +2 -2
- package/dist/{Toaster-CIaIvwH6.js.map → Toaster-Dly3rfva.js.map} +1 -1
- package/dist/Toaster.css +210 -242
- package/dist/{Toolbar-ByyI7SqG.js → Toolbar-C1_etxss.js} +42 -42
- package/dist/{Toolbar-ByyI7SqG.js.map → Toolbar-C1_etxss.js.map} +1 -1
- package/dist/Toolbar.css +121 -202
- package/dist/Toolbar.js +1 -1
- package/dist/{Tooltip-C1PBRnJv.js → Tooltip-BlStOXN3.js} +8 -8
- package/dist/{Tooltip-C1PBRnJv.js.map → Tooltip-BlStOXN3.js.map} +1 -1
- package/dist/Tooltip.css +46 -58
- package/dist/Tooltip.js +1 -1
- package/dist/{YearlessDateInputWithPicker-C_twiQW5.js → YearlessDateInputWithPicker-DyytWt0x.js} +14 -16
- package/dist/{YearlessDateInputWithPicker-C_twiQW5.js.map → YearlessDateInputWithPicker-DyytWt0x.js.map} +1 -1
- package/dist/YearlessDateInputWithPicker.css +110 -196
- package/dist/assets/css-utils/a2-border.css +47 -45
- package/dist/assets/css-utils/a2-color.css +443 -227
- package/dist/assets/css-utils/a2-font.css +0 -2
- package/dist/assets/css-utils/a2-spacing.css +476 -478
- package/dist/assets/css-utils/a2-utils.css +992 -772
- package/dist/assets/css-utils/border.css +47 -45
- package/dist/assets/css-utils/color.css +443 -227
- package/dist/assets/css-utils/font.css +0 -2
- package/dist/assets/css-utils/spacing.css +476 -478
- package/dist/assets/css-utils/utils.css +992 -772
- package/dist/assets/icons/st/unsorted.svg +1 -0
- package/dist/assets/icons/st.ts +1 -0
- package/dist/beta/components/Table/DataTable/DataTable.d.ts +22 -0
- package/dist/beta/components/Table/DataTable/internal/DataTableBody.d.ts +19 -4
- package/dist/beta/components/Table/DataTable/internal/DataTableBodyRow.d.ts +18 -1
- package/dist/beta/components/Table/DataTable/internal/DataTableHeader.d.ts +4 -2
- package/dist/beta/components/Table/DataTable/internal/cells/DataTableBodyCell.d.ts +0 -2
- package/dist/beta/components/Table/DataTable/internal/cells/DataTableBodyImmutableCell.d.ts +0 -5
- package/dist/beta/components/Table/DataTable/internal/cells/DataTableBodyMutableCell.d.ts +0 -5
- package/dist/beta/components/Table/DataTable/internal/cells/useCellFocusListener.d.ts +10 -0
- package/dist/beta/components/Table/DataTable/internal/context/focus/DTFocusProvider.d.ts +4 -1
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectAsyncCell.d.ts +0 -1
- package/dist/beta/components/Table/DataTable/internal/editable-cells/DataTableEditableMultiselectCell.d.ts +0 -1
- package/dist/beta/components/Table/DataTable/internal/editable-cells/types.d.ts +0 -4
- package/dist/beta/components/Table/DataTable/internal/editable-cells/useEditableMenuCell.d.ts +3 -6
- package/dist/beta/components/Table/DataTable/internal/useDataTableVirtualizer.d.ts +29 -0
- package/dist/beta/components/Table/DataTable/internal/util/shallowSortingEqual.d.ts +2 -0
- package/dist/beta/components/Table/DataTable/stories/DataTable.story-data.d.ts +1 -0
- package/dist/beta/components/Table/createColumnHelper.d.ts +19 -2
- package/dist/beta/components/Table/types.d.ts +23 -2
- package/dist/beta.js +10 -10
- package/dist/{indeterminate_check_box-B4zobNlt.js → check_box-0U1tbEAd.js} +2 -4
- package/dist/check_box-0U1tbEAd.js.map +1 -0
- package/dist/components/DateFieldRange/internal/MaskedDateRangeInput.d.ts +1 -1
- package/dist/components/DateFieldRange/internal/useDateFieldRangeConversion.d.ts +1 -1
- package/dist/components/DateFieldSingle/internal/MaskedDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInput.d.ts +1 -1
- package/dist/components/DateFieldYearless/internal/YearlessDateInputWithPicker.d.ts +1 -1
- package/dist/components/NumberField/NumberField.d.ts +1 -1
- package/dist/components/Page/Page.d.ts +2 -2
- package/dist/components/SearchField/internal/SearchField.d.ts +1 -1
- package/dist/components/Stepper/Stepper.d.ts +1 -1
- package/dist/components/Stepper/StepperStep.d.ts +1 -1
- package/dist/components/Tab/Tab.d.ts +1 -1
- package/dist/components/Tab/TabButton.d.ts +1 -1
- package/dist/indeterminate_check_box-jjLG4UY6.js +6 -0
- package/dist/indeterminate_check_box-jjLG4UY6.js.map +1 -0
- package/dist/{index-D6ag_WQW.js → index-ByMdotWU.js} +18 -18
- package/dist/{index-D6ag_WQW.js.map → index-ByMdotWU.js.map} +1 -1
- package/dist/index.css +98 -126
- package/dist/index.js +85 -82
- package/dist/index.js.map +1 -1
- package/dist/index2.css +57 -74
- package/dist/internal/components/StatusIcon/StatusIcon.d.ts +5 -5
- package/dist/internal/hooks/useSelectOrchestration.d.ts +1 -1
- package/dist/primitive-DXlHdTFb.js +1056 -0
- package/dist/primitive-DXlHdTFb.js.map +1 -0
- package/dist/providers/ThemeProvider/ThemeProvider.d.ts +1 -0
- package/dist/{stripInlineMarkdown-Cg1qlNwL.js → stripInlineMarkdown-BWbMy7r_.js} +2 -2
- package/dist/{stripInlineMarkdown-Cg1qlNwL.js.map → stripInlineMarkdown-BWbMy7r_.js.map} +1 -1
- package/dist/{syncFilterUtils-UR5Vgqkh.js → syncFilterUtils-BLcRXQfd.js} +49 -49
- package/dist/syncFilterUtils-BLcRXQfd.js.map +1 -0
- package/dist/syncFilterUtils.css +189 -217
- package/dist/token/core/component-variables.scss +1088 -131
- package/dist/token/core/component.d.ts +558 -0
- package/dist/token/core/component.js +6685 -249
- package/dist/token/core/component.scss +557 -69
- package/dist/token/core/css-utils/a2-border.css +47 -45
- package/dist/token/core/css-utils/a2-color.css +443 -227
- package/dist/token/core/css-utils/a2-font.css +0 -2
- package/dist/token/core/css-utils/a2-spacing.css +476 -478
- package/dist/token/core/css-utils/a2-utils.css +992 -772
- package/dist/token/core/css-utils/border.css +47 -45
- package/dist/token/core/css-utils/color.css +443 -227
- package/dist/token/core/css-utils/font.css +0 -2
- package/dist/token/core/css-utils/spacing.css +476 -478
- package/dist/token/core/css-utils/utils.css +992 -772
- package/dist/token/core/index.d.ts +6 -0
- package/dist/token/core/index.js +1 -1
- package/dist/token/core/primitive-variables.scss +148 -65
- package/dist/token/core/primitive.d.ts +209 -0
- package/dist/token/core/primitive.js +779 -61
- package/dist/token/core/primitive.scss +207 -124
- package/dist/token/core/semantic-variables.scss +363 -245
- package/dist/token/core/semantic.d.ts +221 -0
- package/dist/token/core/semantic.js +1592 -347
- package/dist/token/core/semantic.scss +219 -140
- package/dist/token.js +9076 -833
- package/dist/token.js.map +1 -1
- package/dist/{useBreakpoint-okJ64T1D.js → useBreakpoint-CeaUyHxh.js} +2 -2
- package/dist/{useBreakpoint-okJ64T1D.js.map → useBreakpoint-CeaUyHxh.js.map} +1 -1
- package/dist/useBreakpoint.js +1 -1
- package/dist/{useDrillDownContext-BssSasVB.js → useDrillDownContext-iUvoTget.js} +2 -2
- package/dist/{useDrillDownContext-BssSasVB.js.map → useDrillDownContext-iUvoTget.js.map} +1 -1
- package/dist/{useDrilldown-D6VZNSCX.js → useDrilldown-D5WWJRU2.js} +7 -7
- package/dist/{useDrilldown-D6VZNSCX.js.map → useDrilldown-D5WWJRU2.js.map} +1 -1
- package/dist/{useLayoutPropsUtil-DMDdfIah.js → useLayoutPropsUtil-CB_zHDbW.js} +3 -3
- package/dist/{useLayoutPropsUtil-DMDdfIah.js.map → useLayoutPropsUtil-CB_zHDbW.js.map} +1 -1
- package/dist/{useToggleSelection-BBdrIVWs.js → useToggleSelection-D_2qS0P1.js} +2 -2
- package/dist/{useToggleSelection-BBdrIVWs.js.map → useToggleSelection-D_2qS0P1.js.map} +1 -1
- package/package.json +3 -3
- package/dist/Alert-Dj61Bq8h.js.map +0 -1
- package/dist/AnvilProvider-DUPYyMc7.js.map +0 -1
- package/dist/Avatar-BckUfs1N.js.map +0 -1
- package/dist/Button.module-wCtFYGVD.js +0 -26
- package/dist/Button.module-wCtFYGVD.js.map +0 -1
- package/dist/ButtonCompound-Cmw3cgMY.js.map +0 -1
- package/dist/ButtonLink-BJKTJER8.js.map +0 -1
- package/dist/ButtonToggle-DaFQ3DBG.js.map +0 -1
- package/dist/Calendar-Dxl9QnfP.js.map +0 -1
- package/dist/Checkbox-B-XTVPbX.js.map +0 -1
- package/dist/Checkbox.module-EkRZO48Y.js +0 -28
- package/dist/Checkbox.module-EkRZO48Y.js.map +0 -1
- package/dist/Chip-Ce0WGKAc.js.map +0 -1
- package/dist/Combobox-CNQUROyr.js.map +0 -1
- package/dist/DataTable-BCV_mtSy.js.map +0 -1
- package/dist/Dialog-Cewu2pd_.js.map +0 -1
- package/dist/DrillDown.module-C8VOhzaF.js +0 -27
- package/dist/FieldMessage-COHqUdj5.js +0 -132
- package/dist/FieldMessage-COHqUdj5.js.map +0 -1
- package/dist/Helper-B_FIOlhy.js.map +0 -1
- package/dist/Link.module-CZt9wvuD.js +0 -12
- package/dist/Link.module-CZt9wvuD.js.map +0 -1
- package/dist/LinkButton-DGyHR1E7.js.map +0 -1
- package/dist/LinkButton.css +0 -5
- package/dist/ListView.module-BilDg12y.js +0 -9
- package/dist/ListView.module-BilDg12y.js.map +0 -1
- package/dist/Listbox.module-HAXMOKvC.js +0 -18
- package/dist/Listbox.module-HAXMOKvC.js.map +0 -1
- package/dist/MultiSelectFieldSync-ChZCW4M9.js.map +0 -1
- package/dist/Page-BHdvTlfE.js.map +0 -1
- package/dist/Radio-DJZVMCv0.js.map +0 -1
- package/dist/SegmentedControl-B9NWUF7s.js.map +0 -1
- package/dist/SelectCard-DVcWJRbX.js +0 -352
- package/dist/SelectCard-DVcWJRbX.js.map +0 -1
- package/dist/SelectFieldSync-o1Cp9UYC.js.map +0 -1
- package/dist/SelectTriggerBase.module-CKoq6qzX.js +0 -38
- package/dist/SelectTriggerBase.module-CKoq6qzX.js.map +0 -1
- package/dist/SideNav-CrxYExjh.js.map +0 -1
- package/dist/Spinner-BqmcE2pb.js.map +0 -1
- package/dist/Tab-BZpTCG0i.js.map +0 -1
- package/dist/Text-WiS8UZkY.js.map +0 -1
- package/dist/TextField.module-BP-hDP5m.js +0 -22
- package/dist/TextField.module-BP-hDP5m.js.map +0 -1
- package/dist/ThemeProvider-CaYW3RuA.js.map +0 -1
- package/dist/Toaster-DYJm06Vb.js.map +0 -1
- package/dist/beta/components/Table/DataTable/internal/cells/CellFocusContext.d.ts +0 -16
- package/dist/beta/components/Table/DataTable/internal/context/hover/DTHoverContext.d.ts +0 -31
- package/dist/beta/components/Table/DataTable/internal/context/hover/DTHoverProvider.d.ts +0 -3
- package/dist/beta/components/Table/DataTable/internal/context/hover/useDTHoverDispatchContext.d.ts +0 -1
- package/dist/beta/components/Table/DataTable/internal/context/hover/useDTHoverStateContext.d.ts +0 -4
- package/dist/beta/components/Table/internal/getColSpanWidth.d.ts +0 -7
- package/dist/indeterminate_check_box-B4zobNlt.js.map +0 -1
- package/dist/primitive-C3RFDRA8.js +0 -255
- package/dist/primitive-C3RFDRA8.js.map +0 -1
- package/dist/syncFilterUtils-UR5Vgqkh.js.map +0 -1
- 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
|
-
|
|
4
|
-
|
|
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
|
-
|
|
8
|
-
|
|
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-
|
|
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-
|
|
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 = "
|
|
11
|
-
const expanded = "
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
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([
|
|
155
|
-
[
|
|
156
|
-
[
|
|
157
|
-
[
|
|
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:
|
|
202
|
-
shadow.left && !truncate ? /* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
217
|
-
shadow.right && !truncate ? /* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
249
|
-
shadow.top ? /* @__PURE__ */ jsx("div", { className:
|
|
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:
|
|
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:
|
|
264
|
-
shadow.right ? /* @__PURE__ */ jsx("div", { className:
|
|
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["
|
|
351
|
-
|
|
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:
|
|
373
|
+
className: overflowStyles["expand-button"],
|
|
372
374
|
onClick: onExpandClickHandler,
|
|
373
375
|
children: expanded ? collapseString : expandString
|
|
374
376
|
}
|
package/dist/Overflow.js.map
CHANGED
|
@@ -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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"}
|