silver-ui 0.5.0 → 0.7.1
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/README.md +2 -65
- package/dist/{chunk-XHJRAEGW.js → chunk-223UOU3H.js} +5 -5
- package/dist/{chunk-XHJRAEGW.js.map → chunk-223UOU3H.js.map} +1 -1
- package/dist/{chunk-67UUGI3M.cjs → chunk-2AOR4EVA.cjs} +8 -8
- package/dist/{chunk-67UUGI3M.cjs.map → chunk-2AOR4EVA.cjs.map} +1 -1
- package/dist/{chunk-75KSHZTV.js → chunk-2KLTODOC.js} +7 -7
- package/dist/{chunk-75KSHZTV.js.map → chunk-2KLTODOC.js.map} +1 -1
- package/dist/chunk-2N3PIXZ5.cjs +165 -0
- package/dist/chunk-2N3PIXZ5.cjs.map +1 -0
- package/dist/{chunk-W5F7PYT2.js → chunk-3PCXFOOS.js} +17 -11
- package/dist/chunk-3PCXFOOS.js.map +1 -0
- package/dist/chunk-3PEK2Q54.cjs +31 -0
- package/dist/chunk-3PEK2Q54.cjs.map +1 -0
- package/dist/{chunk-GW6P4FJ4.cjs → chunk-4MIIXRZN.cjs} +25 -40
- package/dist/chunk-4MIIXRZN.cjs.map +1 -0
- package/dist/{chunk-CUHJDV6K.js → chunk-4NPVIEWF.js} +6 -6
- package/dist/{chunk-CUHJDV6K.js.map → chunk-4NPVIEWF.js.map} +1 -1
- package/dist/{chunk-ADSG24VE.js → chunk-4UYMGEBF.js} +6 -6
- package/dist/{chunk-ADSG24VE.js.map → chunk-4UYMGEBF.js.map} +1 -1
- package/dist/{chunk-ECDYAZ2R.js → chunk-54B36CSW.js} +5 -5
- package/dist/{chunk-ECDYAZ2R.js.map → chunk-54B36CSW.js.map} +1 -1
- package/dist/chunk-5FQKELP6.js +28 -0
- package/dist/chunk-5FQKELP6.js.map +1 -0
- package/dist/{chunk-RJEZBOSH.js → chunk-5GSRIOXE.js} +24 -14
- package/dist/chunk-5GSRIOXE.js.map +1 -0
- package/dist/{chunk-OUZX7STE.cjs → chunk-5K3C3INR.cjs} +25 -53
- package/dist/chunk-5K3C3INR.cjs.map +1 -0
- package/dist/{chunk-AEYJ6PWC.js → chunk-5RFHYDQY.js} +16 -11
- package/dist/chunk-5RFHYDQY.js.map +1 -0
- package/dist/{chunk-E42WOTIC.js → chunk-6KG76KUZ.js} +3 -3
- package/dist/{chunk-E42WOTIC.js.map → chunk-6KG76KUZ.js.map} +1 -1
- package/dist/{chunk-I47WOF6E.js → chunk-6KGF66TR.js} +3 -3
- package/dist/{chunk-I47WOF6E.js.map → chunk-6KGF66TR.js.map} +1 -1
- package/dist/{chunk-TOQ4MGM5.js → chunk-6R2UZNVE.js} +6 -6
- package/dist/{chunk-TOQ4MGM5.js.map → chunk-6R2UZNVE.js.map} +1 -1
- package/dist/{chunk-BIJ6YDWJ.cjs → chunk-6SFMORQF.cjs} +15 -8
- package/dist/chunk-6SFMORQF.cjs.map +1 -0
- package/dist/{chunk-H4L456EW.js → chunk-6SKIBUCY.js} +12 -5
- package/dist/chunk-6SKIBUCY.js.map +1 -0
- package/dist/{chunk-ANACERIO.cjs → chunk-6SMVH3ON.cjs} +6 -6
- package/dist/{chunk-ANACERIO.cjs.map → chunk-6SMVH3ON.cjs.map} +1 -1
- package/dist/{chunk-ESRDHDYN.cjs → chunk-6ZPHID26.cjs} +9 -9
- package/dist/{chunk-ESRDHDYN.cjs.map → chunk-6ZPHID26.cjs.map} +1 -1
- package/dist/{chunk-SUT35RHA.cjs → chunk-76GVUEFH.cjs} +8 -8
- package/dist/{chunk-SUT35RHA.cjs.map → chunk-76GVUEFH.cjs.map} +1 -1
- package/dist/chunk-7VUDE5BI.js +91 -0
- package/dist/chunk-7VUDE5BI.js.map +1 -0
- package/dist/{chunk-Q3HMGFGI.js → chunk-7WQW7H3D.js} +98 -77
- package/dist/chunk-7WQW7H3D.js.map +1 -0
- package/dist/chunk-A2AC6WL5.cjs +4 -0
- package/dist/chunk-A2AC6WL5.cjs.map +1 -0
- package/dist/{chunk-2Y7ULSEU.js → chunk-A4QLLTMD.js} +17 -17
- package/dist/{chunk-2Y7ULSEU.js.map → chunk-A4QLLTMD.js.map} +1 -1
- package/dist/{chunk-HWD4HDQ5.cjs → chunk-AC4E3WQA.cjs} +10 -10
- package/dist/{chunk-HWD4HDQ5.cjs.map → chunk-AC4E3WQA.cjs.map} +1 -1
- package/dist/chunk-AFXU6XIS.js +3 -0
- package/dist/chunk-AFXU6XIS.js.map +1 -0
- package/dist/{chunk-L5PJCLV6.js → chunk-AKAXQ4RL.js} +16 -25
- package/dist/chunk-AKAXQ4RL.js.map +1 -0
- package/dist/{chunk-AV7D3SXF.js → chunk-AO4RVSCG.js} +4 -4
- package/dist/{chunk-AV7D3SXF.js.map → chunk-AO4RVSCG.js.map} +1 -1
- package/dist/{chunk-OERNLR2P.js → chunk-AX653SYJ.js} +8 -8
- package/dist/{chunk-OERNLR2P.js.map → chunk-AX653SYJ.js.map} +1 -1
- package/dist/{chunk-4HXNBLCJ.js → chunk-AXTX3IOR.js} +3 -3
- package/dist/{chunk-4HXNBLCJ.js.map → chunk-AXTX3IOR.js.map} +1 -1
- package/dist/{chunk-2AWSJF22.js → chunk-BNGYGCT2.js} +8 -8
- package/dist/chunk-BNGYGCT2.js.map +1 -0
- package/dist/{chunk-PGTOVMP7.cjs → chunk-BPAZTKMC.cjs} +10 -10
- package/dist/{chunk-PGTOVMP7.cjs.map → chunk-BPAZTKMC.cjs.map} +1 -1
- package/dist/{chunk-7CTHD4G6.cjs → chunk-BYV7NXC5.cjs} +5 -5
- package/dist/{chunk-7CTHD4G6.cjs.map → chunk-BYV7NXC5.cjs.map} +1 -1
- package/dist/{chunk-3Z5PF75J.cjs → chunk-CKDB7QNT.cjs} +29 -19
- package/dist/chunk-CKDB7QNT.cjs.map +1 -0
- package/dist/{chunk-3VJIUZAY.cjs → chunk-CVT7JW6C.cjs} +16 -25
- package/dist/chunk-CVT7JW6C.cjs.map +1 -0
- package/dist/{chunk-6DAZ2ZOW.cjs → chunk-CWZCBYVZ.cjs} +11 -11
- package/dist/{chunk-6DAZ2ZOW.cjs.map → chunk-CWZCBYVZ.cjs.map} +1 -1
- package/dist/{chunk-N77K3NQY.cjs → chunk-DTNIUZ3C.cjs} +7 -7
- package/dist/{chunk-N77K3NQY.cjs.map → chunk-DTNIUZ3C.cjs.map} +1 -1
- package/dist/{chunk-X4I5YARV.cjs → chunk-DUGGZUJP.cjs} +11 -11
- package/dist/{chunk-X4I5YARV.cjs.map → chunk-DUGGZUJP.cjs.map} +1 -1
- package/dist/{chunk-TTDNCN5G.cjs → chunk-DVCDAKPK.cjs} +13 -39
- package/dist/chunk-DVCDAKPK.cjs.map +1 -0
- package/dist/{chunk-2RZNX26F.cjs → chunk-DXUFDJHA.cjs} +12 -13
- package/dist/chunk-DXUFDJHA.cjs.map +1 -0
- package/dist/{chunk-4SUQFPWH.js → chunk-E6AKSBSP.js} +6 -6
- package/dist/{chunk-4SUQFPWH.js.map → chunk-E6AKSBSP.js.map} +1 -1
- package/dist/{chunk-THTVYP5V.js → chunk-EBV3EX3J.js} +21 -32
- package/dist/chunk-EBV3EX3J.js.map +1 -0
- package/dist/{chunk-JM4Q7ZQH.cjs → chunk-EEOUWM2F.cjs} +8 -8
- package/dist/chunk-EEOUWM2F.cjs.map +1 -0
- package/dist/{chunk-KC4EKXGF.js → chunk-EIJSWHG7.js} +9 -10
- package/dist/chunk-EIJSWHG7.js.map +1 -0
- package/dist/{chunk-IGJEZLHP.cjs → chunk-EQFSDFV2.cjs} +19 -19
- package/dist/{chunk-IGJEZLHP.cjs.map → chunk-EQFSDFV2.cjs.map} +1 -1
- package/dist/chunk-ESWYWWY2.js +162 -0
- package/dist/chunk-ESWYWWY2.js.map +1 -0
- package/dist/{chunk-UXGHFKLA.js → chunk-FHUOUARL.js} +4 -4
- package/dist/{chunk-UXGHFKLA.js.map → chunk-FHUOUARL.js.map} +1 -1
- package/dist/{chunk-HNDDNW52.js → chunk-FTNEAX24.js} +3 -3
- package/dist/{chunk-HNDDNW52.js.map → chunk-FTNEAX24.js.map} +1 -1
- package/dist/{chunk-JJNXQ7EL.js → chunk-FUU3I22W.js} +3 -3
- package/dist/{chunk-JJNXQ7EL.js.map → chunk-FUU3I22W.js.map} +1 -1
- package/dist/{chunk-OF5NULAO.js → chunk-GFMQIR5U.js} +7 -7
- package/dist/{chunk-OF5NULAO.js.map → chunk-GFMQIR5U.js.map} +1 -1
- package/dist/{chunk-JSAYTQTJ.cjs → chunk-GJZAGTPV.cjs} +7 -7
- package/dist/chunk-GJZAGTPV.cjs.map +1 -0
- package/dist/{chunk-J2YKUHQM.js → chunk-GKYGZWSQ.js} +14 -23
- package/dist/chunk-GKYGZWSQ.js.map +1 -0
- package/dist/{chunk-2F5TDBRT.cjs → chunk-GLFWSLJB.cjs} +8 -8
- package/dist/{chunk-2F5TDBRT.cjs.map → chunk-GLFWSLJB.cjs.map} +1 -1
- package/dist/{chunk-S5CMLG2E.js → chunk-GTZQT6MK.js} +9 -5
- package/dist/chunk-GTZQT6MK.js.map +1 -0
- package/dist/{chunk-4RDA4W4N.js → chunk-HEF53COU.js} +23 -7
- package/dist/chunk-HEF53COU.js.map +1 -0
- package/dist/{chunk-WPMWHKJX.js → chunk-I2DXEPDF.js} +5 -5
- package/dist/{chunk-WPMWHKJX.js.map → chunk-I2DXEPDF.js.map} +1 -1
- package/dist/{chunk-Z7OUMVR5.cjs → chunk-I4XYOJJS.cjs} +9 -9
- package/dist/{chunk-Z7OUMVR5.cjs.map → chunk-I4XYOJJS.cjs.map} +1 -1
- package/dist/{chunk-HWP2UGOC.cjs → chunk-IE7GWY4E.cjs} +126 -105
- package/dist/chunk-IE7GWY4E.cjs.map +1 -0
- package/dist/{chunk-YDNEAHVK.cjs → chunk-IH6DJWYH.cjs} +37 -37
- package/dist/{chunk-YDNEAHVK.cjs.map → chunk-IH6DJWYH.cjs.map} +1 -1
- package/dist/{chunk-D5OX6II7.cjs → chunk-IREOTHD3.cjs} +8 -8
- package/dist/chunk-IREOTHD3.cjs.map +1 -0
- package/dist/{chunk-L7XJZJCM.js → chunk-J4MQQ4K5.js} +5 -5
- package/dist/{chunk-L7XJZJCM.js.map → chunk-J4MQQ4K5.js.map} +1 -1
- package/dist/{chunk-UARQIMPS.js → chunk-JFLU2X5Q.js} +5 -5
- package/dist/{chunk-UARQIMPS.js.map → chunk-JFLU2X5Q.js.map} +1 -1
- package/dist/{chunk-VH3G4IUX.js → chunk-JMVYWHJ7.js} +12 -38
- package/dist/chunk-JMVYWHJ7.js.map +1 -0
- package/dist/{chunk-K4K4FU3D.cjs → chunk-JTPVAZE6.cjs} +11 -11
- package/dist/{chunk-K4K4FU3D.cjs.map → chunk-JTPVAZE6.cjs.map} +1 -1
- package/dist/{chunk-LW3DJOF4.cjs → chunk-JWMS6LHN.cjs} +6 -6
- package/dist/{chunk-LW3DJOF4.cjs.map → chunk-JWMS6LHN.cjs.map} +1 -1
- package/dist/{chunk-EBJPUXFQ.js → chunk-KEPCKSDE.js} +31 -11
- package/dist/chunk-KEPCKSDE.js.map +1 -0
- package/dist/{chunk-I2NG2P5K.cjs → chunk-KLPVBJGZ.cjs} +5 -5
- package/dist/{chunk-I2NG2P5K.cjs.map → chunk-KLPVBJGZ.cjs.map} +1 -1
- package/dist/{chunk-6PIVWNUR.js → chunk-KWZMXX4F.js} +5 -5
- package/dist/chunk-KWZMXX4F.js.map +1 -0
- package/dist/{chunk-3IYM5MAC.js → chunk-L747HIHG.js} +4 -4
- package/dist/{chunk-3IYM5MAC.js.map → chunk-L747HIHG.js.map} +1 -1
- package/dist/{chunk-HIH6MS5D.js → chunk-LBOWHXOF.js} +24 -6
- package/dist/chunk-LBOWHXOF.js.map +1 -0
- package/dist/{chunk-ZPJW3PP7.cjs → chunk-LTHPJRFK.cjs} +18 -10
- package/dist/chunk-LTHPJRFK.cjs.map +1 -0
- package/dist/{chunk-F7BFO3SD.cjs → chunk-LWB2CTX6.cjs} +24 -8
- package/dist/chunk-LWB2CTX6.cjs.map +1 -0
- package/dist/{chunk-FCUUGJTM.cjs → chunk-MJHEPDDX.cjs} +132 -160
- package/dist/chunk-MJHEPDDX.cjs.map +1 -0
- package/dist/{chunk-QO5C7TIV.js → chunk-MUXUHIIV.js} +5 -5
- package/dist/{chunk-QO5C7TIV.js.map → chunk-MUXUHIIV.js.map} +1 -1
- package/dist/{chunk-L5JS6P62.cjs → chunk-MYSLJWCW.cjs} +14 -10
- package/dist/chunk-MYSLJWCW.cjs.map +1 -0
- package/dist/{chunk-65MJZYO6.js → chunk-N6C37HXD.js} +14 -29
- package/dist/chunk-N6C37HXD.js.map +1 -0
- package/dist/{chunk-VO4FG3L2.cjs → chunk-NGNVNRAZ.cjs} +17 -17
- package/dist/{chunk-VO4FG3L2.cjs.map → chunk-NGNVNRAZ.cjs.map} +1 -1
- package/dist/{chunk-2WTHSGDP.cjs → chunk-NMC7QG2X.cjs} +14 -14
- package/dist/{chunk-2WTHSGDP.cjs.map → chunk-NMC7QG2X.cjs.map} +1 -1
- package/dist/{chunk-6EYLEVC6.js → chunk-NSWKBWPP.js} +15 -7
- package/dist/chunk-NSWKBWPP.js.map +1 -0
- package/dist/{chunk-FNRYGCO3.js → chunk-NYOZQE6P.js} +4 -4
- package/dist/{chunk-FNRYGCO3.js.map → chunk-NYOZQE6P.js.map} +1 -1
- package/dist/{chunk-GSTINE4X.js → chunk-O3UT5D57.js} +1775 -575
- package/dist/chunk-O3UT5D57.js.map +1 -0
- package/dist/{chunk-BSI4BQEX.cjs → chunk-OCYZKZ24.cjs} +4 -4
- package/dist/{chunk-BSI4BQEX.cjs.map → chunk-OCYZKZ24.cjs.map} +1 -1
- package/dist/{chunk-LBGC6EC5.js → chunk-OP6WQYYP.js} +15 -15
- package/dist/chunk-OP6WQYYP.js.map +1 -0
- package/dist/{chunk-TSKFGLGQ.cjs → chunk-OX2FNKIV.cjs} +18 -27
- package/dist/chunk-OX2FNKIV.cjs.map +1 -0
- package/dist/chunk-PG4CZRTU.js +77 -0
- package/dist/chunk-PG4CZRTU.js.map +1 -0
- package/dist/{chunk-TH537HOM.js → chunk-PQXPYN23.js} +6 -6
- package/dist/{chunk-TH537HOM.js.map → chunk-PQXPYN23.js.map} +1 -1
- package/dist/{chunk-U5M4JZBX.js → chunk-PYN75QAG.js} +6 -6
- package/dist/chunk-PYN75QAG.js.map +1 -0
- package/dist/{chunk-JS6MRT6M.js → chunk-QM7NQK2K.js} +4 -4
- package/dist/{chunk-JS6MRT6M.js.map → chunk-QM7NQK2K.js.map} +1 -1
- package/dist/{chunk-SUWRSJAN.cjs → chunk-RLIBY7XB.cjs} +16 -11
- package/dist/chunk-RLIBY7XB.cjs.map +1 -0
- package/dist/chunk-RNUQWYJJ.cjs +93 -0
- package/dist/chunk-RNUQWYJJ.cjs.map +1 -0
- package/dist/{chunk-GY2ZZR4Z.cjs → chunk-RUQODCTW.cjs} +18 -18
- package/dist/{chunk-GY2ZZR4Z.cjs.map → chunk-RUQODCTW.cjs.map} +1 -1
- package/dist/{chunk-FFF57VHO.cjs → chunk-RX2FXCIH.cjs} +8 -8
- package/dist/{chunk-FFF57VHO.cjs.map → chunk-RX2FXCIH.cjs.map} +1 -1
- package/dist/{chunk-EFBSEJBD.js → chunk-S4WWBV4N.js} +22 -47
- package/dist/chunk-S4WWBV4N.js.map +1 -0
- package/dist/{chunk-J3X465QT.cjs → chunk-SY2A4K6P.cjs} +9 -9
- package/dist/{chunk-J3X465QT.cjs.map → chunk-SY2A4K6P.cjs.map} +1 -1
- package/dist/{chunk-YJEX32HZ.cjs → chunk-U7QJJ3NR.cjs} +8 -8
- package/dist/{chunk-YJEX32HZ.cjs.map → chunk-U7QJJ3NR.cjs.map} +1 -1
- package/dist/{chunk-XZZI3JYK.cjs → chunk-UJDHRILS.cjs} +26 -8
- package/dist/chunk-UJDHRILS.cjs.map +1 -0
- package/dist/{chunk-IX26TMZD.cjs → chunk-UNS7OCEA.cjs} +5 -5
- package/dist/{chunk-IX26TMZD.cjs.map → chunk-UNS7OCEA.cjs.map} +1 -1
- package/dist/{chunk-RRXOSNCX.cjs → chunk-UR5EWWWL.cjs} +11 -11
- package/dist/{chunk-RRXOSNCX.cjs.map → chunk-UR5EWWWL.cjs.map} +1 -1
- package/dist/{chunk-6J326CN6.js → chunk-USEA7DB5.js} +4 -4
- package/dist/{chunk-6J326CN6.js.map → chunk-USEA7DB5.js.map} +1 -1
- package/dist/{chunk-DZZEJY3J.js → chunk-UUVI3TYW.js} +120 -148
- package/dist/chunk-UUVI3TYW.js.map +1 -0
- package/dist/{chunk-DV4K35UC.cjs → chunk-UW3KCCBT.cjs} +4 -4
- package/dist/{chunk-DV4K35UC.cjs.map → chunk-UW3KCCBT.cjs.map} +1 -1
- package/dist/{chunk-MEXR5ONE.js → chunk-V5XVXQWE.js} +5 -5
- package/dist/{chunk-MEXR5ONE.js.map → chunk-V5XVXQWE.js.map} +1 -1
- package/dist/{chunk-UXQSSRBQ.cjs → chunk-VCM4MR7N.cjs} +1785 -581
- package/dist/chunk-VCM4MR7N.cjs.map +1 -0
- package/dist/{chunk-VD52FLHL.js → chunk-VEQ5H765.js} +10 -10
- package/dist/{chunk-VD52FLHL.js.map → chunk-VEQ5H765.js.map} +1 -1
- package/dist/{chunk-Q4HAXT5C.cjs → chunk-VK7DXUGH.cjs} +31 -11
- package/dist/chunk-VK7DXUGH.cjs.map +1 -0
- package/dist/chunk-VPWNRWNO.cjs +81 -0
- package/dist/chunk-VPWNRWNO.cjs.map +1 -0
- package/dist/{chunk-VV72PGKH.cjs → chunk-VULMEKZZ.cjs} +27 -27
- package/dist/chunk-VULMEKZZ.cjs.map +1 -0
- package/dist/{chunk-MEUELWGO.cjs → chunk-VWG54F6X.cjs} +8 -8
- package/dist/{chunk-MEUELWGO.cjs.map → chunk-VWG54F6X.cjs.map} +1 -1
- package/dist/{chunk-MGJLBHPJ.js → chunk-WG4NNC3P.js} +4 -4
- package/dist/{chunk-MGJLBHPJ.js.map → chunk-WG4NNC3P.js.map} +1 -1
- package/dist/{chunk-V4ZH2H2P.cjs → chunk-WIFMXZIN.cjs} +14 -14
- package/dist/{chunk-V4ZH2H2P.cjs.map → chunk-WIFMXZIN.cjs.map} +1 -1
- package/dist/{chunk-5XMWGK3O.cjs → chunk-WOVSJHY6.cjs} +25 -36
- package/dist/chunk-WOVSJHY6.cjs.map +1 -0
- package/dist/{chunk-2VAUVJVG.js → chunk-X2P5SPGB.js} +3 -3
- package/dist/{chunk-2VAUVJVG.js.map → chunk-X2P5SPGB.js.map} +1 -1
- package/dist/{chunk-PBQMHXVO.js → chunk-XUCLNECV.js} +3 -3
- package/dist/{chunk-PBQMHXVO.js.map → chunk-XUCLNECV.js.map} +1 -1
- package/dist/{chunk-HXIU3SIQ.cjs → chunk-Y2GYPMLW.cjs} +5 -5
- package/dist/{chunk-HXIU3SIQ.cjs.map → chunk-Y2GYPMLW.cjs.map} +1 -1
- package/dist/{chunk-OTQAREYU.js → chunk-YAQB3UMC.js} +4 -4
- package/dist/{chunk-OTQAREYU.js.map → chunk-YAQB3UMC.js.map} +1 -1
- package/dist/{chunk-2VL66QBX.js → chunk-YGESCFX2.js} +3 -3
- package/dist/{chunk-2VL66QBX.js.map → chunk-YGESCFX2.js.map} +1 -1
- package/dist/{chunk-XPGIWOJO.cjs → chunk-YOAFVMEN.cjs} +18 -18
- package/dist/chunk-YOAFVMEN.cjs.map +1 -0
- package/dist/{chunk-2GMDMZKI.cjs → chunk-YQIDUJW2.cjs} +5 -5
- package/dist/{chunk-2GMDMZKI.cjs.map → chunk-YQIDUJW2.cjs.map} +1 -1
- package/dist/{chunk-R4DGCQTA.cjs → chunk-YQVWDHP4.cjs} +7 -7
- package/dist/{chunk-R4DGCQTA.cjs.map → chunk-YQVWDHP4.cjs.map} +1 -1
- package/dist/{chunk-LKGHYNLH.js → chunk-YRJYWTVG.js} +10 -10
- package/dist/chunk-YRJYWTVG.js.map +1 -0
- package/dist/{chunk-TKTCN4JE.cjs → chunk-ZNAGK36T.cjs} +9 -9
- package/dist/{chunk-TKTCN4JE.cjs.map → chunk-ZNAGK36T.cjs.map} +1 -1
- package/dist/{chunk-BSPWX2OZ.cjs → chunk-ZW2ZOEYM.cjs} +21 -15
- package/dist/chunk-ZW2ZOEYM.cjs.map +1 -0
- package/dist/components/Alert/index.cjs +10 -8
- package/dist/components/Alert/index.js +9 -7
- package/dist/components/AlertDialog/index.cjs +12 -10
- package/dist/components/AlertDialog/index.js +10 -8
- package/dist/components/AppShell/index.cjs +18 -15
- package/dist/components/AppShell/index.js +15 -12
- package/dist/components/AutocompleteInput/index.cjs +17 -14
- package/dist/components/AutocompleteInput/index.js +13 -10
- package/dist/components/Badge/Badge.d.ts.map +1 -1
- package/dist/components/Badge/Badge.recipe.d.ts +75 -41
- package/dist/components/Badge/Badge.recipe.d.ts.map +1 -1
- package/dist/components/Badge/index.cjs +3 -2
- package/dist/components/Badge/index.js +2 -1
- package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/index.cjs +5 -10
- package/dist/components/Breadcrumbs/index.js +2 -7
- package/dist/components/Button/Button.d.ts +5 -3
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/index.cjs +9 -7
- package/dist/components/Button/index.js +8 -6
- package/dist/components/Calendar/index.cjs +10 -8
- package/dist/components/Calendar/index.js +9 -7
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +83 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts +17 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts +13 -0
- package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts +58 -0
- package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/index.cjs +35 -0
- package/dist/components/CheckboxGroup/index.cjs.map +1 -0
- package/dist/components/CheckboxGroup/index.d.ts +4 -0
- package/dist/components/CheckboxGroup/index.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/index.js +22 -0
- package/dist/components/CheckboxGroup/index.js.map +1 -0
- package/dist/components/CheckboxInput/CheckboxInput.d.ts +11 -2
- package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts +6 -0
- package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts.map +1 -1
- package/dist/components/CheckboxInput/index.cjs +9 -8
- package/dist/components/CheckboxInput/index.js +8 -7
- package/dist/components/CodeBlock/index.cjs +10 -8
- package/dist/components/CodeBlock/index.js +9 -7
- package/dist/components/ContextMenu/index.cjs +14 -12
- package/dist/components/ContextMenu/index.js +12 -10
- package/dist/components/DateInput/index.cjs +13 -11
- package/dist/components/DateInput/index.js +12 -10
- package/dist/components/DateRangeInput/index.cjs +13 -11
- package/dist/components/DateRangeInput/index.js +12 -10
- package/dist/components/DateTimeInput/index.cjs +15 -13
- package/dist/components/DateTimeInput/index.js +14 -12
- package/dist/components/DropdownMenu/index.cjs +15 -13
- package/dist/components/DropdownMenu/index.js +11 -9
- package/dist/components/EmptyState/index.cjs +5 -5
- package/dist/components/EmptyState/index.js +4 -4
- package/dist/components/Field/index.cjs +6 -6
- package/dist/components/Field/index.js +4 -4
- package/dist/components/FileInput/index.cjs +11 -9
- package/dist/components/FileInput/index.js +10 -8
- package/dist/components/HoverCard/HoverCard.d.ts +6 -6
- package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/components/HoverCard/index.cjs +4 -4
- package/dist/components/HoverCard/index.js +2 -2
- package/dist/components/InputGroup/index.cjs +9 -9
- package/dist/components/InputGroup/index.js +5 -5
- package/dist/components/Item/Item.d.ts.map +1 -1
- package/dist/components/Item/index.cjs +7 -8
- package/dist/components/Item/index.js +6 -7
- package/dist/components/Layout/Layout.recipe.d.ts +17 -0
- package/dist/components/Layout/Layout.recipe.d.ts.map +1 -1
- package/dist/components/Layout/LayoutHeader.d.ts +12 -1
- package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
- package/dist/components/Layout/index.cjs +14 -12
- package/dist/components/Layout/index.js +9 -7
- package/dist/components/Lightbox/index.cjs +11 -9
- package/dist/components/Lightbox/index.js +9 -7
- package/dist/components/Link/Link.d.ts +4 -5
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/Link/Link.recipe.d.ts.map +1 -1
- package/dist/components/Link/index.cjs +9 -6
- package/dist/components/Link/index.js +6 -3
- package/dist/components/List/index.cjs +9 -10
- package/dist/components/List/index.js +7 -8
- package/dist/components/MetadataList/MetadataList.recipe.d.ts +9 -1
- package/dist/components/MetadataList/MetadataList.recipe.d.ts.map +1 -1
- package/dist/components/MetadataList/MetadataListItem.d.ts +6 -1
- package/dist/components/MetadataList/MetadataListItem.d.ts.map +1 -1
- package/dist/components/MetadataList/index.cjs +9 -6
- package/dist/components/MetadataList/index.js +7 -4
- package/dist/components/MultiSelect/index.cjs +14 -12
- package/dist/components/MultiSelect/index.js +13 -11
- package/dist/components/NumberInput/index.cjs +12 -10
- package/dist/components/NumberInput/index.js +11 -9
- package/dist/components/Pagination/index.cjs +10 -8
- package/dist/components/Pagination/index.js +9 -7
- package/dist/components/PasswordInput/index.cjs +13 -11
- package/dist/components/PasswordInput/index.js +12 -10
- package/dist/components/Popover/Popover.d.ts +13 -1
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/index.cjs +11 -9
- package/dist/components/Popover/index.js +9 -7
- package/dist/components/RadioGroup/index.cjs +10 -9
- package/dist/components/RadioGroup/index.js +8 -7
- package/dist/components/Schedule/CalendarEvent.d.ts +18 -4
- package/dist/components/Schedule/CalendarEvent.d.ts.map +1 -1
- package/dist/components/Schedule/DayView.d.ts +7 -1
- package/dist/components/Schedule/DayView.d.ts.map +1 -1
- package/dist/components/Schedule/ListView.d.ts.map +1 -1
- package/dist/components/Schedule/ListView.recipe.d.ts +56 -0
- package/dist/components/Schedule/ListView.recipe.d.ts.map +1 -0
- package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
- package/dist/components/Schedule/MonthlyView.recipe.d.ts +47 -0
- package/dist/components/Schedule/MonthlyView.recipe.d.ts.map +1 -0
- package/dist/components/Schedule/ScheduleEvent.recipe.d.ts +17 -0
- package/dist/components/Schedule/ScheduleEvent.recipe.d.ts.map +1 -1
- package/dist/components/Schedule/TimeGridView.d.ts +7 -1
- package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
- package/dist/components/Schedule/TimeGridView.recipe.d.ts +43 -0
- package/dist/components/Schedule/TimeGridView.recipe.d.ts.map +1 -0
- package/dist/components/Schedule/WeeklyView.d.ts +7 -1
- package/dist/components/Schedule/WeeklyView.d.ts.map +1 -1
- package/dist/components/Schedule/index.cjs +44 -21
- package/dist/components/Schedule/index.d.ts +6 -2
- package/dist/components/Schedule/index.d.ts.map +1 -1
- package/dist/components/Schedule/index.js +17 -10
- package/dist/components/Schedule/plugins/EventMovePlugin.d.ts +23 -0
- package/dist/components/Schedule/plugins/EventMovePlugin.d.ts.map +1 -0
- package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts +31 -0
- package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts.map +1 -0
- package/dist/components/Schedule/plugins/EventResizePlugin.d.ts +24 -0
- package/dist/components/Schedule/plugins/EventResizePlugin.d.ts.map +1 -0
- package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts +39 -0
- package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts.map +1 -0
- package/dist/components/Schedule/plugins/index.d.ts +4 -0
- package/dist/components/Schedule/plugins/index.d.ts.map +1 -1
- package/dist/components/Schedule/shared.d.ts +58 -3
- package/dist/components/Schedule/shared.d.ts.map +1 -1
- package/dist/components/Schedule/types.d.ts +47 -1
- package/dist/components/Schedule/types.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts +4 -0
- package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts.map +1 -0
- package/dist/components/SearchFilterInput/index.cjs +32 -29
- package/dist/components/SearchFilterInput/index.js +24 -21
- package/dist/components/Select/index.cjs +15 -13
- package/dist/components/Select/index.js +13 -11
- package/dist/components/SideNav/SideNav.d.ts.map +1 -1
- package/dist/components/SideNav/SideNav.recipe.d.ts +26 -7
- package/dist/components/SideNav/SideNav.recipe.d.ts.map +1 -1
- package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/components/SideNav/index.cjs +18 -15
- package/dist/components/SideNav/index.js +12 -9
- package/dist/components/Slider/index.cjs +6 -6
- package/dist/components/Slider/index.js +5 -5
- package/dist/components/Spinner/index.cjs +5 -5
- package/dist/components/Spinner/index.js +4 -4
- package/dist/components/SplitButton/index.cjs +13 -11
- package/dist/components/SplitButton/index.js +12 -10
- package/dist/components/Stepper/index.cjs +5 -5
- package/dist/components/Stepper/index.js +4 -4
- package/dist/components/Switch/index.cjs +6 -6
- package/dist/components/Switch/index.js +5 -5
- package/dist/components/Table/index.cjs +55 -52
- package/dist/components/Table/index.js +29 -26
- package/dist/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/components/Tabs/index.cjs +15 -13
- package/dist/components/Tabs/index.js +10 -8
- package/dist/components/Tag/Tag.d.ts.map +1 -1
- package/dist/components/Tag/index.cjs +8 -5
- package/dist/components/Tag/index.js +7 -4
- package/dist/components/TagsInput/index.cjs +15 -12
- package/dist/components/TagsInput/index.js +14 -11
- package/dist/components/Text/Heading.d.ts +5 -5
- package/dist/components/Text/Heading.d.ts.map +1 -1
- package/dist/components/Text/Text.d.ts +5 -5
- package/dist/components/Text/Text.d.ts.map +1 -1
- package/dist/components/Text/index.cjs +5 -5
- package/dist/components/Text/index.js +3 -3
- package/dist/components/TextArea/index.cjs +7 -7
- package/dist/components/TextArea/index.js +6 -6
- package/dist/components/TextInput/index.cjs +12 -10
- package/dist/components/TextInput/index.js +11 -9
- package/dist/components/Thumbnail/index.cjs +10 -8
- package/dist/components/Thumbnail/index.js +9 -7
- package/dist/components/TimeInput/index.cjs +11 -9
- package/dist/components/TimeInput/index.js +10 -8
- package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/components/Toast/index.cjs +12 -10
- package/dist/components/Toast/index.js +9 -7
- package/dist/components/ToggleButton/ToggleButton.recipe.d.ts.map +1 -1
- package/dist/components/ToggleButton/index.cjs +7 -7
- package/dist/components/ToggleButton/index.js +5 -5
- package/dist/components/Tooltip/Tooltip.d.ts +6 -6
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/index.cjs +4 -4
- package/dist/components/Tooltip/index.js +2 -2
- package/dist/components/TopNav/TopNavItem.d.ts.map +1 -1
- package/dist/components/TopNav/index.cjs +16 -13
- package/dist/components/TopNav/index.js +11 -8
- package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
- package/dist/components/TreeView/index.cjs +3 -2
- package/dist/components/TreeView/index.js +2 -1
- package/dist/index.cjs +260 -232
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +62 -58
- package/dist/index.js.map +1 -1
- package/dist/internal/ActionElement.d.ts +45 -0
- package/dist/internal/ActionElement.d.ts.map +1 -0
- package/dist/internal/HoverLayerTrigger.d.ts +3 -4
- package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
- package/dist/internal/useLayer.d.ts +12 -0
- package/dist/internal/useLayer.d.ts.map +1 -1
- package/dist/internal/useSelectListbox.d.ts +5 -5
- package/dist/internal/useSelectListbox.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/chunk-2AWSJF22.js.map +0 -1
- package/dist/chunk-2RZNX26F.cjs.map +0 -1
- package/dist/chunk-3VJIUZAY.cjs.map +0 -1
- package/dist/chunk-3Z5PF75J.cjs.map +0 -1
- package/dist/chunk-4RDA4W4N.js.map +0 -1
- package/dist/chunk-5XMWGK3O.cjs.map +0 -1
- package/dist/chunk-65MJZYO6.js.map +0 -1
- package/dist/chunk-6EYLEVC6.js.map +0 -1
- package/dist/chunk-6PIVWNUR.js.map +0 -1
- package/dist/chunk-AEYJ6PWC.js.map +0 -1
- package/dist/chunk-BIJ6YDWJ.cjs.map +0 -1
- package/dist/chunk-BSPWX2OZ.cjs.map +0 -1
- package/dist/chunk-D5OX6II7.cjs.map +0 -1
- package/dist/chunk-DZZEJY3J.js.map +0 -1
- package/dist/chunk-EBJPUXFQ.js.map +0 -1
- package/dist/chunk-EFBSEJBD.js.map +0 -1
- package/dist/chunk-F7BFO3SD.cjs.map +0 -1
- package/dist/chunk-FCUUGJTM.cjs.map +0 -1
- package/dist/chunk-GSTINE4X.js.map +0 -1
- package/dist/chunk-GW6P4FJ4.cjs.map +0 -1
- package/dist/chunk-H2EMKCWT.js +0 -78
- package/dist/chunk-H2EMKCWT.js.map +0 -1
- package/dist/chunk-H4L456EW.js.map +0 -1
- package/dist/chunk-HIH6MS5D.js.map +0 -1
- package/dist/chunk-HWP2UGOC.cjs.map +0 -1
- package/dist/chunk-J2YKUHQM.js.map +0 -1
- package/dist/chunk-JM4Q7ZQH.cjs.map +0 -1
- package/dist/chunk-JSAYTQTJ.cjs.map +0 -1
- package/dist/chunk-KC4EKXGF.js.map +0 -1
- package/dist/chunk-KUXFEAT4.cjs +0 -80
- package/dist/chunk-KUXFEAT4.cjs.map +0 -1
- package/dist/chunk-L5JS6P62.cjs.map +0 -1
- package/dist/chunk-L5PJCLV6.js.map +0 -1
- package/dist/chunk-LBGC6EC5.js.map +0 -1
- package/dist/chunk-LKGHYNLH.js.map +0 -1
- package/dist/chunk-OUZX7STE.cjs.map +0 -1
- package/dist/chunk-Q3HMGFGI.js.map +0 -1
- package/dist/chunk-Q4HAXT5C.cjs.map +0 -1
- package/dist/chunk-RJEZBOSH.js.map +0 -1
- package/dist/chunk-S5CMLG2E.js.map +0 -1
- package/dist/chunk-SUWRSJAN.cjs.map +0 -1
- package/dist/chunk-THTVYP5V.js.map +0 -1
- package/dist/chunk-TSKFGLGQ.cjs.map +0 -1
- package/dist/chunk-TTDNCN5G.cjs.map +0 -1
- package/dist/chunk-U5M4JZBX.js.map +0 -1
- package/dist/chunk-UXQSSRBQ.cjs.map +0 -1
- package/dist/chunk-VH3G4IUX.js.map +0 -1
- package/dist/chunk-VV72PGKH.cjs.map +0 -1
- package/dist/chunk-W5F7PYT2.js.map +0 -1
- package/dist/chunk-XPGIWOJO.cjs.map +0 -1
- package/dist/chunk-XZZI3JYK.cjs.map +0 -1
- package/dist/chunk-ZPJW3PP7.cjs.map +0 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkOX2FNKIV_cjs = require('./chunk-OX2FNKIV.cjs');
|
|
4
4
|
var chunkQB2BSOM4_cjs = require('./chunk-QB2BSOM4.cjs');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
5
|
+
var chunkMYSLJWCW_cjs = require('./chunk-MYSLJWCW.cjs');
|
|
6
|
+
var chunkWOVSJHY6_cjs = require('./chunk-WOVSJHY6.cjs');
|
|
7
|
+
var chunkCKDB7QNT_cjs = require('./chunk-CKDB7QNT.cjs');
|
|
8
8
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
9
9
|
var chunkJ4PIYOWT_cjs = require('./chunk-J4PIYOWT.cjs');
|
|
10
10
|
var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
|
|
@@ -103,7 +103,7 @@ function DropdownMenuItem({
|
|
|
103
103
|
style,
|
|
104
104
|
type: "button",
|
|
105
105
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
106
|
-
|
|
106
|
+
chunkOX2FNKIV_cjs.Item,
|
|
107
107
|
{
|
|
108
108
|
as: "span",
|
|
109
109
|
description,
|
|
@@ -151,7 +151,7 @@ function renderMenuItems(items) {
|
|
|
151
151
|
role: "group",
|
|
152
152
|
children: [
|
|
153
153
|
item.title != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
154
|
-
|
|
154
|
+
chunkCKDB7QNT_cjs.Text,
|
|
155
155
|
{
|
|
156
156
|
as: "span",
|
|
157
157
|
className: menuStyles.heading,
|
|
@@ -317,7 +317,7 @@ function DropdownMenu({
|
|
|
317
317
|
[items, children]
|
|
318
318
|
);
|
|
319
319
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
320
|
-
|
|
320
|
+
chunkMYSLJWCW_cjs.Popover,
|
|
321
321
|
{
|
|
322
322
|
content: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuContext, { value: contextValue, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
323
323
|
"div",
|
|
@@ -342,7 +342,7 @@ function DropdownMenu({
|
|
|
342
342
|
role: "menu",
|
|
343
343
|
style: { width: formatMenuWidth(menuWidth), ...style },
|
|
344
344
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
345
|
-
|
|
345
|
+
chunkWOVSJHY6_cjs.Button,
|
|
346
346
|
{
|
|
347
347
|
...button,
|
|
348
348
|
"data-testid": dataTestId,
|
|
@@ -366,5 +366,5 @@ exports.formatMenuWidth = formatMenuWidth;
|
|
|
366
366
|
exports.renderMenuItems = renderMenuItems;
|
|
367
367
|
exports.useDropdownMenuContext = useDropdownMenuContext;
|
|
368
368
|
exports.useMenuKeyboard = useMenuKeyboard;
|
|
369
|
-
//# sourceMappingURL=chunk-
|
|
370
|
-
//# sourceMappingURL=chunk-
|
|
369
|
+
//# sourceMappingURL=chunk-AC4E3WQA.cjs.map
|
|
370
|
+
//# sourceMappingURL=chunk-AC4E3WQA.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/DropdownMenu/DropdownMenuContext.ts","../src/components/DropdownMenu/DropdownMenuItem.recipe.ts","../src/components/DropdownMenu/DropdownMenuItem.tsx","../src/components/DropdownMenu/menuUtils.tsx","../src/components/DropdownMenu/DropdownMenu.tsx"],"names":["createContext","use","sva","jsx","cx","Item","Icon","css","Divider","jsxs","Text","useCallback","useState","useRef","isReactNode","useMemo","Popover","Button","Fragment","ChevronDown"],"mappings":";;;;;;;;;;;;;;;;AAQO,IAAM,mBAAA,GACXA,oBAA+C,IAAI;AAErD,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAE3B,SAAS,sBAAA,GAA0D;AACxE,EAAA,OAAOC,UAAI,mBAAmB,CAAA;AAChC;;;ACbO,IAAM,yBAAyBC,qBAAA,CAAI;AAAA,EACxC,KAAA,EAAO,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,OAAA;AAAA,MACT,CAAA,EAAG,MAAA;AAAA,MACH,YAAA,EAAc,IAAA;AAAA,MACd,KAAA,EAAO,IAAA;AAAA,MACP,MAAA,EAAQ,SAAA;AAAA,MACR,UAAA,EAAY,MAAA;AAAA,MACZ,SAAA,EAAW,OAAA;AAAA,MACX,MAAA,EAAQ,EAAC,EAAA,EAAI,WAAA,EAAW;AAAA,MACxB,aAAA,EAAe;AAAA,QACb,YAAA,EAAc,OAAA;AAAA,QACd,YAAA,EAAc,OAAA;AAAA,QACd,YAAA,EAAc,SAAA;AAAA,QACd,aAAA,EAAe;AAAA,OACjB;AAAA,MACA,SAAA,EAAW;AAAA,QACT,OAAA,EAAS,GAAA;AAAA,QACT,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,aAAA;AAAA,MACT,UAAA,EAAY,CAAA;AAAA,MACZ,KAAA,EAAO;AAAA;AACT,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI;AAAA,QACF,IAAA,EAAM;AAAA,UACJ,IAAA,EAAM,cAAA;AAAA,UACN,SAAS,EAAC,EAAA,EAAI,OAAO,EAAA,EAAI,KAAA,EAAO,KAAK,KAAA;AAAK;AAC5C,OACF;AAAA,MACA,EAAA,EAAI;AAAA,QACF,IAAA,EAAM,EAAC,IAAA,EAAM,cAAA,EAAgB,OAAA,EAAS,EAAC,EAAA,EAAI,KAAA,EAAO,EAAA,EAAI,GAAA,EAAG;AAAC,OAC5D;AAAA,MACA,EAAA,EAAI;AAAA,QACF,IAAA,EAAM;AAAA,UACJ,IAAA,EAAM,cAAA;AAAA,UACN,SAAS,EAAC,EAAA,EAAI,OAAO,EAAA,EAAI,KAAA,EAAO,KAAK,KAAA;AAAK;AAC5C;AACF;AACF,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;ACCM,SAAS,gBAAA,CAAiB;AAAA,EAC/B,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,WAAA;AAAA,EACA,UAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,KAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAA6C;AAC3C,EAAA,MAAM,UAAU,sBAAA,EAAuB;AACvC,EAAA,MAAM,QAAA,GAAW,SAAS,QAAA,IAAY,IAAA;AACtC,EAAA,MAAM,OAAA,GAAU,sBAAA,CAAuB,EAAC,IAAA,EAAM,UAAS,CAAA;AAEvD,EAAA,uBACEC,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,oBAAA,CAAG,OAAA,CAAQ,IAAA,EAAM,SAAS,CAAA;AAAA,MACrC,aAAA,EAAa,UAAA;AAAA,MACb,QAAA,EAAU,UAAA;AAAA,MACV,SAAS,MAAM;AACb,QAAA,OAAA,IAAU;AACV,QAAA,OAAA,EAAS,SAAA,EAAU;AAAA,MACrB,CAAA;AAAA,MACA,GAAA;AAAA,MACA,IAAA,EAAK,UAAA;AAAA,MACL,KAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACL,QAAA,kBAAAD,cAAA;AAAA,QAACE,sBAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAG,MAAA;AAAA,UACH,WAAA;AAAA,UACA,UAAA;AAAA,UACA,KAAA;AAAA,UACA,cACE,IAAA,IAAQ,IAAA,mBACNF,cAAA,CAAC,MAAA,EAAA,EAAK,WAAW,OAAA,CAAQ,IAAA,EACvB,QAAA,kBAAAA,cAAA,CAACG,sBAAA,EAAA,EAAK,OAAM,WAAA,EAAY,IAAA,EAAY,IAAA,EAAK,IAAA,EAAK,GAChD,CAAA,GACE;AAAA;AAAA;AAER;AAAA,GACF;AAEJ;AAEA,gBAAA,CAAiB,WAAA,GAAc,kBAAA;AC5F/B,IAAM,UAAA,GAAa;AAAA,EACjB,SAASC,qBAAA,CAAI;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,SAASA,qBAAA,CAAI;AAAA,IACX,EAAA,EAAI,GAAA;AAAA,IACJ,EAAA,EAAI,GAAA;AAAA,IACJ,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,SAASA,qBAAA,CAAI;AAAA,IACX,EAAA,EAAI;AAAA,GACL;AACH,CAAA;AAEO,SAAS,gBACd,KAAA,EACoB;AACpB,EAAA,IAAI,SAAS,IAAA,EAAM;AACjB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,GAAW,CAAA,EAAG,KAAK,CAAA,EAAA,CAAA,GAAO,KAAA;AACpD;AAEO,SAAS,gBACd,KAAA,EACW;AACX,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAChC,IAAA,IAAI,MAAA,IAAU,IAAA,IAAQ,IAAA,CAAK,IAAA,KAAS,SAAA,EAAW;AAC7C,MAAA,uBACEJ,eAACK,yBAAA,EAAA,EAAQ,SAAA,EAAW,WAAW,OAAA,EAAA,EAAc,CAAA,QAAA,EAAW,KAAK,CAAA,CAAI,CAAA;AAAA,IAErE;AAEA,IAAA,IAAI,UAAU,IAAA,EAAM;AAClB,MAAA,uBACEC,eAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,cAAY,IAAA,CAAK,KAAA;AAAA,UACjB,WAAW,UAAA,CAAW,OAAA;AAAA,UAEtB,IAAA,EAAK,OAAA;AAAA,UACJ,QAAA,EAAA;AAAA,YAAA,IAAA,CAAK,KAAA,IAAS,uBACbN,cAAAA;AAAA,cAACO,sBAAA;AAAA,cAAA;AAAA,gBACC,EAAA,EAAG,MAAA;AAAA,gBACH,WAAW,UAAA,CAAW,OAAA;AAAA,gBACtB,KAAA,EAAM,WAAA;AAAA,gBACN,IAAA,EAAK,YAAA;AAAA,gBACJ,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,aACR,GACE,IAAA;AAAA,YACH,IAAA,CAAK,KAAA,CAAM,GAAA,CAAI,CAAA,WAAA,qBACdP,cAAAA;AAAA,cAAC,gBAAA;AAAA,cAAA;AAAA,gBACC,aAAa,WAAA,CAAY,WAAA;AAAA,gBACzB,MAAM,WAAA,CAAY,IAAA;AAAA,gBAClB,YAAY,WAAA,CAAY,UAAA;AAAA,gBAExB,OAAO,WAAA,CAAY,KAAA;AAAA,gBACnB,SAAS,WAAA,CAAY;AAAA,eAAA;AAAA,cAFhB,WAAA,CAAY;AAAA,aAIpB;AAAA;AAAA,SAAA;AAAA,QApBI,CAAA,QAAA,EAAW,IAAA,CAAK,KAAA,IAAS,KAAK,CAAA;AAAA,OAqBrC;AAAA,IAEJ;AAEA,IAAA,uBACEA,cAAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,aAAa,IAAA,CAAK,WAAA;AAAA,QAClB,MAAM,IAAA,CAAK,IAAA;AAAA,QACX,YAAY,IAAA,CAAK,UAAA;AAAA,QAEjB,OAAO,IAAA,CAAK,KAAA;AAAA,QACZ,SAAS,IAAA,CAAK;AAAA,OAAA;AAAA,MAFT,IAAA,CAAK;AAAA,KAGZ;AAAA,EAEJ,CAAC,CAAA;AACH;AAEO,SAAS,eAAA,CACd,SACA,OAAA,EAC6C;AAC7C,EAAA,MAAM,YAAA,GAAeQ,kBAAY,MAAM;AACrC,IAAA,IAAI,OAAA,CAAQ,WAAW,IAAA,EAAM;AAC3B,MAAA,OAAO,EAAC;AAAA,IACV;AACA,IAAA,OAAO,KAAA,CAAM,IAAA;AAAA,MACX,QAAQ,OAAA,CAAQ,gBAAA;AAAA,QACd;AAAA;AACF,KACF;AAAA,EACF,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AAEZ,EAAA,OAAOA,iBAAA;AAAA,IACL,CAAC,KAAA,KAAsC;AACrC,MAAA,MAAM,YAAY,YAAA,EAAa;AAC/B,MAAA,IAAI,SAAA,CAAU,WAAW,CAAA,EAAG;AAC1B,QAAA;AAAA,MACF;AACA,MAAA,MAAM,eAAe,SAAA,CAAU,SAAA;AAAA,QAC7B,CAAA,IAAA,KAAQ,SAAS,QAAA,CAAS;AAAA,OAC5B;AACA,MAAA,IAAI,SAAA;AAEJ,MAAA,QAAQ,MAAM,GAAA;AAAK,QACjB,KAAK,WAAA;AACH,UAAA,SAAA,GACE,YAAA,KAAiB,EAAA,GAAK,CAAA,GAAA,CAAK,YAAA,GAAe,KAAK,SAAA,CAAU,MAAA;AAC3D,UAAA;AAAA,QACF,KAAK,SAAA;AACH,UAAA,SAAA,GACE,YAAA,KAAiB,KACb,SAAA,CAAU,MAAA,GAAS,KAClB,YAAA,GAAe,CAAA,GAAI,SAAA,CAAU,MAAA,IAAU,SAAA,CAAU,MAAA;AACxD,UAAA;AAAA,QACF,KAAK,MAAA;AACH,UAAA,SAAA,GAAY,CAAA;AACZ,UAAA;AAAA,QACF,KAAK,KAAA;AACH,UAAA,SAAA,GAAY,UAAU,MAAA,GAAS,CAAA;AAC/B,UAAA;AAAA,QACF,KAAK,QAAA;AACH,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA,OAAA,EAAQ;AACR,UAAA;AAAA,QACF,KAAK,OAAA;AAAA,QACL,KAAK,GAAA;AACH,UAAA,IAAI,QAAA,CAAS,yBAAyB,WAAA,EAAa;AACjD,YAAA,KAAA,CAAM,cAAA,EAAe;AACrB,YAAA,QAAA,CAAS,cAAc,KAAA,EAAM;AAAA,UAC/B;AACA,UAAA;AAAA,QACF;AACE,UAAA,IAAI,KAAA,CAAM,GAAA,CAAI,MAAA,KAAW,CAAA,EAAG;AAC1B,YAAA,MAAM,IAAA,GAAO,KAAA,CAAM,GAAA,CAAI,WAAA,EAAY;AACnC,YAAA,MAAM,UAAA,GAAa,YAAA,KAAiB,EAAA,GAAK,CAAA,GAAI,YAAA,GAAe,CAAA;AAC5D,YAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,SAAA,CAAU,QAAQ,CAAA,EAAA,EAAK;AACzC,cAAA,MAAM,KAAA,GAAA,CAAS,UAAA,GAAa,CAAA,IAAK,SAAA,CAAU,MAAA;AAC3C,cAAA,MAAM,QAAQ,SAAA,CAAU,KAAK,EAAE,WAAA,CAAY,IAAA,GAAO,WAAA,EAAY;AAC9D,cAAA,IAAI,KAAA,CAAM,UAAA,CAAW,IAAI,CAAA,EAAG;AAC1B,gBAAA,KAAA,CAAM,cAAA,EAAe;AACrB,gBAAA,SAAA,CAAU,KAAK,EAAE,KAAA,EAAM;AACvB,gBAAA;AAAA,cACF;AAAA,YACF;AAAA,UACF;AACA,UAAA;AAAA;AAGJ,MAAA,KAAA,CAAM,cAAA,EAAe;AACrB,MAAA,SAAA,CAAU,SAAS,GAAG,KAAA,EAAM;AAAA,IAC9B,CAAA;AAAA,IACA,CAAC,cAAc,OAAO;AAAA,GACxB;AACF;ACpEA,IAAM,MAAA,GAAS;AAAA,EACb,MAAMJ,qBAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,KAAA;AAAA,IACL,IAAA,EAAM,IAAA;AAAA,IACN,SAAA,EAAW,MAAA;AAAA,IACX,CAAA,EAAG;AAAA,GACJ;AACH,CAAA;AAEA,IAAM,aAAA,GAAgB,EAAC,KAAA,EAAO,MAAA,EAAM;AAK7B,SAAS,YAAA,CAAa;AAAA,EAC3B,MAAA,GAAS,aAAA;AAAA,EACT,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,YAAA,GAAe,IAAA;AAAA,EACf,UAAA,GAAa,IAAA;AAAA,EACb,UAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAAyC;AACvC,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIK,eAAS,KAAK,CAAA;AACtD,EAAA,MAAM,eAAe,UAAA,KAAe,MAAA;AACpC,EAAA,MAAM,MAAA,GAAS,eAAe,UAAA,GAAa,YAAA;AAC3C,EAAA,MAAM,QAAA,GAAuB,OAAO,IAAA,IAAQ,IAAA;AAC5C,EAAA,MAAM,OAAA,GAAUC,aAAuB,IAAI,CAAA;AAE3C,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,IAAA,IAAI,KAAA,IAAS,IAAA,IAAQC,6BAAA,CAAY,QAAQ,CAAA,EAAG;AAC1C,MAAA,MAAM,IAAI,KAAA;AAAA,QACR;AAAA,OACF;AAAA,IACF;AACA,IAAA,IAAI,KAAA,IAAS,IAAA,IAAQ,CAACA,6BAAA,CAAY,QAAQ,CAAA,EAAG;AAC3C,MAAA,MAAM,IAAI,MAAM,qDAAqD,CAAA;AAAA,IACvE;AAAA,EACF;AAEA,EAAA,MAAM,IAAA,GAAOH,kBAAY,MAAM;AAC7B,IAAA,IAAI,YAAA,EAAc;AAChB,MAAA,YAAA,GAAe,KAAK,CAAA;AAAA,IACtB,CAAA,MAAO;AACL,MAAA,eAAA,CAAgB,KAAK,CAAA;AAAA,IACvB;AAAA,EACF,CAAA,EAAG,CAAC,YAAA,EAAc,YAAY,CAAC,CAAA;AAE/B,EAAA,MAAM,iBAAA,GAAoB,eAAA,CAAgB,OAAA,EAAS,IAAI,CAAA;AAEvD,EAAA,MAAM,YAAA,GAAeI,aAAA;AAAA,IACnB,OAAO;AAAA,MACL,SAAA,EAAW,IAAA;AAAA,MACX;AAAA,KACF,CAAA;AAAA,IACA,CAAC,MAAM,QAAQ;AAAA,GACjB;AAEA,EAAA,MAAM,QAAA,GAAWA,aAAA;AAAA,IACf,MAAkB,KAAA,IAAS,IAAA,GAAO,QAAA,GAAW,gBAAgB,KAAK,CAAA;AAAA,IAClE,CAAC,OAAO,QAAQ;AAAA,GAClB;AAEA,EAAA,uBACEZ,cAAAA;AAAA,IAACa,yBAAA;AAAA,IAAA;AAAA,MACC,yBACEb,cAAAA,CAAC,mBAAA,EAAA,EAAoB,KAAA,EAAO,cAE1B,QAAA,kBAAAA,cAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAWC,oBAAA,CAAG,MAAA,CAAO,IAAA,EAAM,SAAS,CAAA;AAAA,UACpC,SAAA,EAAW,iBAAA;AAAA,UACX,GAAA,EAAK,OAAA;AAAA,UACL,QAAA,EAAU,EAAA;AAAA,UACT,QAAA,EAAA;AAAA;AAAA,OACH,EACF,CAAA;AAAA,MAEF,YAAA;AAAA,MACA,cAAA,EAAgB,KAAA;AAAA,MAChB,MAAA;AAAA,MACA,YAAA,EAAc,CAAC,UAAA,KAA8B;AAC3C,QAAA,IAAI,YAAA,EAAc;AAChB,UAAA,YAAA,GAAe,UAAU,CAAA;AAAA,QAC3B,CAAA,MAAO;AACL,UAAA,eAAA,CAAgB,UAAU,CAAA;AAAA,QAC5B;AAAA,MACF,CAAA;AAAA,MACA,IAAA,EAAK,MAAA;AAAA,MACL,OAAO,EAAC,KAAA,EAAO,gBAAgB,SAAS,CAAA,EAAG,GAAG,KAAA,EAAK;AAAA,MACnD,QAAA,kBAAAD,cAAAA;AAAA,QAACc,wBAAA;AAAA,QAAA;AAAA,UACE,GAAG,MAAA;AAAA,UACJ,aAAA,EAAa,UAAA;AAAA,UACb,UAAA,kBACER,eAAAA,CAAAS,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,YAAA,MAAA,CAAO,UAAA;AAAA,YACP,UAAA,mBAAaf,cAAAA,CAACG,sBAAA,EAAA,EAAK,MAAMa,uBAAA,EAAa,IAAA,EAAK,MAAK,CAAA,GAAK;AAAA,WAAA,EACxD,CAAA;AAAA,UAEF,OAAA;AAAA,UACA;AAAA;AAAA;AACF;AAAA,GACF;AAEJ;AAEA,YAAA,CAAa,WAAA,GAAc,cAAA","file":"chunk-HWD4HDQ5.cjs","sourcesContent":["import {createContext, use} from 'react';\nimport type {ButtonSize} from 'components/Button';\n\nexport interface DropdownMenuContextValue {\n closeMenu: () => void;\n menuSize: ButtonSize;\n}\n\nexport const DropdownMenuContext =\n createContext<DropdownMenuContextValue | null>(null);\n\nDropdownMenuContext.displayName = 'DropdownMenuContext';\n\nexport function useDropdownMenuContext(): DropdownMenuContextValue | null {\n return use(DropdownMenuContext);\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const dropdownMenuItemRecipe = sva({\n slots: ['root', 'icon'],\n base: {\n root: {\n display: 'block',\n w: 'full',\n borderRadius: 'md',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'body',\n textAlign: 'start',\n _hover: {bg: 'bg.subtle'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffsetTight',\n },\n _disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n },\n icon: {\n display: 'inline-flex',\n flexShrink: 0,\n color: 'fg.muted',\n },\n },\n variants: {\n size: {\n sm: {\n root: {\n minH: 'component.sm',\n '& > *': {py: '0.5', px: '1.5', gap: '1.5'},\n },\n },\n md: {\n root: {minH: 'component.md', '& > *': {py: '1.5', px: '2'}},\n },\n lg: {\n root: {\n minH: 'component.lg',\n '& > *': {py: '2.5', px: '2.5', gap: '2.5'},\n },\n },\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport type DropdownMenuItemVariants = RecipeVariantProps<\n typeof dropdownMenuItemRecipe\n>;\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useDropdownMenuContext} from 'components/DropdownMenu/DropdownMenuContext';\nimport {dropdownMenuItemRecipe} from 'components/DropdownMenu/DropdownMenuItem.recipe';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Item} from 'components/Item';\nimport {cx} from 'internal/cx';\n\nexport interface DropdownMenuItemProps {\n /**\n * Additional CSS class names applied to the item.\n */\n className?: string;\n /**\n * Test ID applied to the item.\n */\n 'data-testid'?: string;\n /**\n * Supporting text shown below the label.\n */\n description?: ReactNode;\n /**\n * Trailing content.\n */\n endContent?: ReactNode;\n /**\n * Icon rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Item label.\n */\n label: string;\n /**\n * Called when the item is selected.\n */\n onClick?: () => void;\n /**\n * Ref forwarded to the item button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Inline styles applied to the item.\n */\n style?: CSSProperties;\n}\n\n/**\n * Action item inside a `DropdownMenu`.\n */\nexport function DropdownMenuItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n icon,\n isDisabled = false,\n label,\n onClick,\n ref,\n style,\n}: DropdownMenuItemProps): React.JSX.Element {\n const context = useDropdownMenuContext();\n const menuSize = context?.menuSize ?? 'md';\n const classes = dropdownMenuItemRecipe({size: menuSize});\n\n return (\n <button\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n disabled={isDisabled}\n onClick={() => {\n onClick?.();\n context?.closeMenu();\n }}\n ref={ref}\n role=\"menuitem\"\n style={style}\n type=\"button\">\n <Item\n as=\"span\"\n description={description}\n endContent={endContent}\n label={label}\n startContent={\n icon != null ? (\n <span className={classes.icon}>\n <Icon color=\"secondary\" icon={icon} size=\"sm\" />\n </span>\n ) : null\n }\n />\n </button>\n );\n}\n\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n","/* eslint-disable @eslint-react/no-array-index-key */\nimport {useCallback, type KeyboardEvent, type ReactNode} from 'react';\nimport {Divider} from 'components/Divider';\nimport {DropdownMenuItem} from 'components/DropdownMenu/DropdownMenuItem';\nimport type {DropdownMenuOption} from 'components/DropdownMenu/types';\nimport {Text} from 'components/Text';\nimport {css} from 'styled-system/css';\n\nconst menuStyles = {\n section: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n }),\n heading: css({\n px: '2',\n py: '1',\n userSelect: 'none',\n }),\n divider: css({\n my: '1',\n }),\n} as const;\n\nexport function formatMenuWidth(\n value: number | string | undefined,\n): string | undefined {\n if (value == null) {\n return undefined;\n }\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nexport function renderMenuItems(\n items: ReadonlyArray<DropdownMenuOption>,\n): ReactNode {\n return items.map((item, index) => {\n if ('type' in item && item.type === 'divider') {\n return (\n <Divider className={menuStyles.divider} key={`divider-${index}`} />\n );\n }\n\n if ('type' in item) {\n return (\n <div\n aria-label={item.title}\n className={menuStyles.section}\n key={`section-${item.title ?? index}`}\n role=\"group\">\n {item.title != null ? (\n <Text\n as=\"span\"\n className={menuStyles.heading}\n color=\"secondary\"\n type=\"supporting\">\n {item.title}\n </Text>\n ) : null}\n {item.items.map(sectionItem => (\n <DropdownMenuItem\n description={sectionItem.description}\n icon={sectionItem.icon}\n isDisabled={sectionItem.isDisabled}\n key={sectionItem.label}\n label={sectionItem.label}\n onClick={sectionItem.onClick}\n />\n ))}\n </div>\n );\n }\n\n return (\n <DropdownMenuItem\n description={item.description}\n icon={item.icon}\n isDisabled={item.isDisabled}\n key={item.label}\n label={item.label}\n onClick={item.onClick}\n />\n );\n });\n}\n\nexport function useMenuKeyboard(\n menuRef: React.RefObject<HTMLElement | null>,\n onClose: () => void,\n): (event: KeyboardEvent<HTMLElement>) => void {\n const getMenuItems = useCallback(() => {\n if (menuRef.current == null) {\n return [];\n }\n return Array.from(\n menuRef.current.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"]:not(:disabled):not([aria-disabled=\"true\"])',\n ),\n );\n }, [menuRef]);\n\n return useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n const menuItems = getMenuItems();\n if (menuItems.length === 0) {\n return;\n }\n const currentIndex = menuItems.findIndex(\n item => item === document.activeElement,\n );\n let nextIndex: number;\n\n switch (event.key) {\n case 'ArrowDown':\n nextIndex =\n currentIndex === -1 ? 0 : (currentIndex + 1) % menuItems.length;\n break;\n case 'ArrowUp':\n nextIndex =\n currentIndex === -1\n ? menuItems.length - 1\n : (currentIndex - 1 + menuItems.length) % menuItems.length;\n break;\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = menuItems.length - 1;\n break;\n case 'Escape':\n event.preventDefault();\n onClose();\n return;\n case 'Enter':\n case ' ':\n if (document.activeElement instanceof HTMLElement) {\n event.preventDefault();\n document.activeElement.click();\n }\n return;\n default:\n if (event.key.length === 1) {\n const char = event.key.toLowerCase();\n const startIndex = currentIndex === -1 ? 0 : currentIndex + 1;\n for (let i = 0; i < menuItems.length; i++) {\n const index = (startIndex + i) % menuItems.length;\n const label = menuItems[index].textContent.trim().toLowerCase();\n if (label.startsWith(char)) {\n event.preventDefault();\n menuItems[index].focus();\n return;\n }\n }\n }\n return;\n }\n\n event.preventDefault();\n menuItems[nextIndex]?.focus();\n },\n [getMenuItems, onClose],\n );\n}\n","import {ChevronDown} from 'lucide-react';\nimport {\n useCallback,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button, type ButtonProps, type ButtonSize} from 'components/Button';\nimport {DropdownMenuContext} from 'components/DropdownMenu/DropdownMenuContext';\nimport {\n formatMenuWidth,\n renderMenuItems,\n useMenuKeyboard,\n} from 'components/DropdownMenu/menuUtils';\nimport type {DropdownMenuOption} from 'components/DropdownMenu/types';\nimport {Icon} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\n\nexport type {\n DropdownMenuDivider,\n DropdownMenuItemData,\n DropdownMenuOption,\n DropdownMenuSection,\n} from 'components/DropdownMenu/types';\n\ntype DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, K>\n : never;\n\nexport type DropdownMenuButtonProps = DistributiveOmit<ButtonProps, 'onClick'>;\n\nexport interface DropdownMenuProps {\n /**\n * Trigger button props.\n */\n button?: DropdownMenuButtonProps;\n /**\n * Compound menu content (alternative to `items`).\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the menu surface.\n */\n className?: string;\n /**\n * Test ID applied to the trigger button.\n */\n 'data-testid'?: string;\n /**\n * Whether to auto-focus the first menu item on open.\n * @default true\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a chevron on the trigger button.\n * @default true\n */\n hasChevron?: boolean;\n /**\n * Controlled open state.\n */\n isMenuOpen?: boolean;\n /**\n * Data-driven menu items.\n */\n items?: ReadonlyArray<DropdownMenuOption>;\n /**\n * Width of the menu surface.\n */\n menuWidth?: number | string;\n /**\n * Click handler for the trigger button.\n */\n onClick?: () => void;\n /**\n * Called when the menu open state changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the trigger button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Inline styles applied to the menu surface.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n menu: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n maxH: '80',\n overflowY: 'auto',\n p: '1',\n }),\n} as const;\n\nconst defaultButton = {label: 'Menu'} satisfies DropdownMenuButtonProps;\n\n/**\n * Button-triggered menu for grouped actions.\n */\nexport function DropdownMenu({\n button = defaultButton,\n children,\n className,\n 'data-testid': dataTestId,\n hasAutoFocus = true,\n hasChevron = true,\n isMenuOpen,\n items,\n menuWidth,\n onClick,\n onOpenChange,\n ref,\n style,\n}: DropdownMenuProps): React.JSX.Element {\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = isMenuOpen !== undefined;\n const isOpen = isControlled ? isMenuOpen : internalOpen;\n const menuSize: ButtonSize = button.size ?? 'md';\n const menuRef = useRef<HTMLDivElement>(null);\n\n if (process.env.NODE_ENV !== 'production') {\n if (items != null && isReactNode(children)) {\n throw new Error(\n 'DropdownMenu: pass either `items` or `children`, not both.',\n );\n }\n if (items == null && !isReactNode(children)) {\n throw new Error('DropdownMenu: provide either `items` or `children`.');\n }\n }\n\n const hide = useCallback(() => {\n if (isControlled) {\n onOpenChange?.(false);\n } else {\n setInternalOpen(false);\n }\n }, [isControlled, onOpenChange]);\n\n const handleMenuKeyDown = useMenuKeyboard(menuRef, hide);\n\n const contextValue = useMemo(\n () => ({\n closeMenu: hide,\n menuSize,\n }),\n [hide, menuSize],\n );\n\n const menuNode = useMemo(\n (): ReactNode => (items == null ? children : renderMenuItems(items)),\n [items, children],\n );\n\n return (\n <Popover\n content={\n <DropdownMenuContext value={contextValue}>\n {/* eslint-disable-next-line jsx-a11y-x/no-static-element-interactions -- keyboard handler captures events for the parent role=\"menu\" element */}\n <div\n className={cx(styles.menu, className)}\n onKeyDown={handleMenuKeyDown}\n ref={menuRef}\n tabIndex={-1}>\n {menuNode}\n </div>\n </DropdownMenuContext>\n }\n hasAutoFocus={hasAutoFocus}\n hasCloseButton={false}\n isOpen={isOpen}\n onOpenChange={(isNextOpen: boolean): void => {\n if (isControlled) {\n onOpenChange?.(isNextOpen);\n } else {\n setInternalOpen(isNextOpen);\n }\n }}\n role=\"menu\"\n style={{width: formatMenuWidth(menuWidth), ...style}}>\n <Button\n {...button}\n data-testid={dataTestId}\n endContent={\n <>\n {button.endContent}\n {hasChevron ? <Icon icon={ChevronDown} size=\"sm\" /> : null}\n </>\n }\n onClick={onClick}\n ref={ref}\n />\n </Popover>\n );\n}\n\nDropdownMenu.displayName = 'DropdownMenu';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/DropdownMenu/DropdownMenuContext.ts","../src/components/DropdownMenu/DropdownMenuItem.recipe.ts","../src/components/DropdownMenu/DropdownMenuItem.tsx","../src/components/DropdownMenu/menuUtils.tsx","../src/components/DropdownMenu/DropdownMenu.tsx"],"names":["createContext","use","sva","jsx","cx","Item","Icon","css","Divider","jsxs","Text","useCallback","useState","useRef","isReactNode","useMemo","Popover","Button","Fragment","ChevronDown"],"mappings":"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","file":"chunk-AC4E3WQA.cjs","sourcesContent":["import {createContext, use} from 'react';\nimport type {ButtonSize} from 'components/Button';\n\nexport interface DropdownMenuContextValue {\n closeMenu: () => void;\n menuSize: ButtonSize;\n}\n\nexport const DropdownMenuContext =\n createContext<DropdownMenuContextValue | null>(null);\n\nDropdownMenuContext.displayName = 'DropdownMenuContext';\n\nexport function useDropdownMenuContext(): DropdownMenuContextValue | null {\n return use(DropdownMenuContext);\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const dropdownMenuItemRecipe = sva({\n slots: ['root', 'icon'],\n base: {\n root: {\n display: 'block',\n w: 'full',\n borderRadius: 'md',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'body',\n textAlign: 'start',\n _hover: {bg: 'bg.subtle'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffsetTight',\n },\n _disabled: {\n opacity: 0.5,\n cursor: 'not-allowed',\n },\n },\n icon: {\n display: 'inline-flex',\n flexShrink: 0,\n color: 'fg.muted',\n },\n },\n variants: {\n size: {\n sm: {\n root: {\n minH: 'component.sm',\n '& > *': {py: '0.5', px: '1.5', gap: '1.5'},\n },\n },\n md: {\n root: {minH: 'component.md', '& > *': {py: '1.5', px: '2'}},\n },\n lg: {\n root: {\n minH: 'component.lg',\n '& > *': {py: '2.5', px: '2.5', gap: '2.5'},\n },\n },\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\nexport type DropdownMenuItemVariants = RecipeVariantProps<\n typeof dropdownMenuItemRecipe\n>;\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useDropdownMenuContext} from 'components/DropdownMenu/DropdownMenuContext';\nimport {dropdownMenuItemRecipe} from 'components/DropdownMenu/DropdownMenuItem.recipe';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Item} from 'components/Item';\nimport {cx} from 'internal/cx';\n\nexport interface DropdownMenuItemProps {\n /**\n * Additional CSS class names applied to the item.\n */\n className?: string;\n /**\n * Test ID applied to the item.\n */\n 'data-testid'?: string;\n /**\n * Supporting text shown below the label.\n */\n description?: ReactNode;\n /**\n * Trailing content.\n */\n endContent?: ReactNode;\n /**\n * Icon rendered before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Item label.\n */\n label: string;\n /**\n * Called when the item is selected.\n */\n onClick?: () => void;\n /**\n * Ref forwarded to the item button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Inline styles applied to the item.\n */\n style?: CSSProperties;\n}\n\n/**\n * Action item inside a `DropdownMenu`.\n */\nexport function DropdownMenuItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n icon,\n isDisabled = false,\n label,\n onClick,\n ref,\n style,\n}: DropdownMenuItemProps): React.JSX.Element {\n const context = useDropdownMenuContext();\n const menuSize = context?.menuSize ?? 'md';\n const classes = dropdownMenuItemRecipe({size: menuSize});\n\n return (\n <button\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n disabled={isDisabled}\n onClick={() => {\n onClick?.();\n context?.closeMenu();\n }}\n ref={ref}\n role=\"menuitem\"\n style={style}\n type=\"button\">\n <Item\n as=\"span\"\n description={description}\n endContent={endContent}\n label={label}\n startContent={\n icon != null ? (\n <span className={classes.icon}>\n <Icon color=\"secondary\" icon={icon} size=\"sm\" />\n </span>\n ) : null\n }\n />\n </button>\n );\n}\n\nDropdownMenuItem.displayName = 'DropdownMenuItem';\n","/* eslint-disable @eslint-react/no-array-index-key */\nimport {useCallback, type KeyboardEvent, type ReactNode} from 'react';\nimport {Divider} from 'components/Divider';\nimport {DropdownMenuItem} from 'components/DropdownMenu/DropdownMenuItem';\nimport type {DropdownMenuOption} from 'components/DropdownMenu/types';\nimport {Text} from 'components/Text';\nimport {css} from 'styled-system/css';\n\nconst menuStyles = {\n section: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n }),\n heading: css({\n px: '2',\n py: '1',\n userSelect: 'none',\n }),\n divider: css({\n my: '1',\n }),\n} as const;\n\nexport function formatMenuWidth(\n value: number | string | undefined,\n): string | undefined {\n if (value == null) {\n return undefined;\n }\n return typeof value === 'number' ? `${value}px` : value;\n}\n\nexport function renderMenuItems(\n items: ReadonlyArray<DropdownMenuOption>,\n): ReactNode {\n return items.map((item, index) => {\n if ('type' in item && item.type === 'divider') {\n return (\n <Divider className={menuStyles.divider} key={`divider-${index}`} />\n );\n }\n\n if ('type' in item) {\n return (\n <div\n aria-label={item.title}\n className={menuStyles.section}\n key={`section-${item.title ?? index}`}\n role=\"group\">\n {item.title != null ? (\n <Text\n as=\"span\"\n className={menuStyles.heading}\n color=\"secondary\"\n type=\"supporting\">\n {item.title}\n </Text>\n ) : null}\n {item.items.map(sectionItem => (\n <DropdownMenuItem\n description={sectionItem.description}\n icon={sectionItem.icon}\n isDisabled={sectionItem.isDisabled}\n key={sectionItem.label}\n label={sectionItem.label}\n onClick={sectionItem.onClick}\n />\n ))}\n </div>\n );\n }\n\n return (\n <DropdownMenuItem\n description={item.description}\n icon={item.icon}\n isDisabled={item.isDisabled}\n key={item.label}\n label={item.label}\n onClick={item.onClick}\n />\n );\n });\n}\n\nexport function useMenuKeyboard(\n menuRef: React.RefObject<HTMLElement | null>,\n onClose: () => void,\n): (event: KeyboardEvent<HTMLElement>) => void {\n const getMenuItems = useCallback(() => {\n if (menuRef.current == null) {\n return [];\n }\n return Array.from(\n menuRef.current.querySelectorAll<HTMLElement>(\n '[role=\"menuitem\"]:not(:disabled):not([aria-disabled=\"true\"])',\n ),\n );\n }, [menuRef]);\n\n return useCallback(\n (event: KeyboardEvent<HTMLElement>) => {\n const menuItems = getMenuItems();\n if (menuItems.length === 0) {\n return;\n }\n const currentIndex = menuItems.findIndex(\n item => item === document.activeElement,\n );\n let nextIndex: number;\n\n switch (event.key) {\n case 'ArrowDown':\n nextIndex =\n currentIndex === -1 ? 0 : (currentIndex + 1) % menuItems.length;\n break;\n case 'ArrowUp':\n nextIndex =\n currentIndex === -1\n ? menuItems.length - 1\n : (currentIndex - 1 + menuItems.length) % menuItems.length;\n break;\n case 'Home':\n nextIndex = 0;\n break;\n case 'End':\n nextIndex = menuItems.length - 1;\n break;\n case 'Escape':\n event.preventDefault();\n onClose();\n return;\n case 'Enter':\n case ' ':\n if (document.activeElement instanceof HTMLElement) {\n event.preventDefault();\n document.activeElement.click();\n }\n return;\n default:\n if (event.key.length === 1) {\n const char = event.key.toLowerCase();\n const startIndex = currentIndex === -1 ? 0 : currentIndex + 1;\n for (let i = 0; i < menuItems.length; i++) {\n const index = (startIndex + i) % menuItems.length;\n const label = menuItems[index].textContent.trim().toLowerCase();\n if (label.startsWith(char)) {\n event.preventDefault();\n menuItems[index].focus();\n return;\n }\n }\n }\n return;\n }\n\n event.preventDefault();\n menuItems[nextIndex]?.focus();\n },\n [getMenuItems, onClose],\n );\n}\n","import {ChevronDown} from 'lucide-react';\nimport {\n useCallback,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button, type ButtonProps, type ButtonSize} from 'components/Button';\nimport {DropdownMenuContext} from 'components/DropdownMenu/DropdownMenuContext';\nimport {\n formatMenuWidth,\n renderMenuItems,\n useMenuKeyboard,\n} from 'components/DropdownMenu/menuUtils';\nimport type {DropdownMenuOption} from 'components/DropdownMenu/types';\nimport {Icon} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {css} from 'styled-system/css';\n\nexport type {\n DropdownMenuDivider,\n DropdownMenuItemData,\n DropdownMenuOption,\n DropdownMenuSection,\n} from 'components/DropdownMenu/types';\n\ntype DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, K>\n : never;\n\nexport type DropdownMenuButtonProps = DistributiveOmit<ButtonProps, 'onClick'>;\n\nexport interface DropdownMenuProps {\n /**\n * Trigger button props.\n */\n button?: DropdownMenuButtonProps;\n /**\n * Compound menu content (alternative to `items`).\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the menu surface.\n */\n className?: string;\n /**\n * Test ID applied to the trigger button.\n */\n 'data-testid'?: string;\n /**\n * Whether to auto-focus the first menu item on open.\n * @default true\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a chevron on the trigger button.\n * @default true\n */\n hasChevron?: boolean;\n /**\n * Controlled open state.\n */\n isMenuOpen?: boolean;\n /**\n * Data-driven menu items.\n */\n items?: ReadonlyArray<DropdownMenuOption>;\n /**\n * Width of the menu surface.\n */\n menuWidth?: number | string;\n /**\n * Click handler for the trigger button.\n */\n onClick?: () => void;\n /**\n * Called when the menu open state changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the trigger button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Inline styles applied to the menu surface.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n menu: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n maxH: '80',\n overflowY: 'auto',\n p: '1',\n }),\n} as const;\n\nconst defaultButton = {label: 'Menu'} satisfies DropdownMenuButtonProps;\n\n/**\n * Button-triggered menu for grouped actions.\n */\nexport function DropdownMenu({\n button = defaultButton,\n children,\n className,\n 'data-testid': dataTestId,\n hasAutoFocus = true,\n hasChevron = true,\n isMenuOpen,\n items,\n menuWidth,\n onClick,\n onOpenChange,\n ref,\n style,\n}: DropdownMenuProps): React.JSX.Element {\n const [internalOpen, setInternalOpen] = useState(false);\n const isControlled = isMenuOpen !== undefined;\n const isOpen = isControlled ? isMenuOpen : internalOpen;\n const menuSize: ButtonSize = button.size ?? 'md';\n const menuRef = useRef<HTMLDivElement>(null);\n\n if (process.env.NODE_ENV !== 'production') {\n if (items != null && isReactNode(children)) {\n throw new Error(\n 'DropdownMenu: pass either `items` or `children`, not both.',\n );\n }\n if (items == null && !isReactNode(children)) {\n throw new Error('DropdownMenu: provide either `items` or `children`.');\n }\n }\n\n const hide = useCallback(() => {\n if (isControlled) {\n onOpenChange?.(false);\n } else {\n setInternalOpen(false);\n }\n }, [isControlled, onOpenChange]);\n\n const handleMenuKeyDown = useMenuKeyboard(menuRef, hide);\n\n const contextValue = useMemo(\n () => ({\n closeMenu: hide,\n menuSize,\n }),\n [hide, menuSize],\n );\n\n const menuNode = useMemo(\n (): ReactNode => (items == null ? children : renderMenuItems(items)),\n [items, children],\n );\n\n return (\n <Popover\n content={\n <DropdownMenuContext value={contextValue}>\n {/* eslint-disable-next-line jsx-a11y-x/no-static-element-interactions -- keyboard handler captures events for the parent role=\"menu\" element */}\n <div\n className={cx(styles.menu, className)}\n onKeyDown={handleMenuKeyDown}\n ref={menuRef}\n tabIndex={-1}>\n {menuNode}\n </div>\n </DropdownMenuContext>\n }\n hasAutoFocus={hasAutoFocus}\n hasCloseButton={false}\n isOpen={isOpen}\n onOpenChange={(isNextOpen: boolean): void => {\n if (isControlled) {\n onOpenChange?.(isNextOpen);\n } else {\n setInternalOpen(isNextOpen);\n }\n }}\n role=\"menu\"\n style={{width: formatMenuWidth(menuWidth), ...style}}>\n <Button\n {...button}\n data-testid={dataTestId}\n endContent={\n <>\n {button.endContent}\n {hasChevron ? <Icon icon={ChevronDown} size=\"sm\" /> : null}\n </>\n }\n onClick={onClick}\n ref={ref}\n />\n </Popover>\n );\n}\n\nDropdownMenu.displayName = 'DropdownMenu';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-AFXU6XIS.js"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ActionElement } from './chunk-PG4CZRTU.js';
|
|
1
2
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
2
3
|
import { Icon } from './chunk-IUW777WZ.js';
|
|
3
4
|
import { sva } from './chunk-IAVZKGZS.js';
|
|
@@ -348,15 +349,16 @@ function TreeViewItem({
|
|
|
348
349
|
const handlePointerDown = useCallback(() => {
|
|
349
350
|
onFocusItem(id, false);
|
|
350
351
|
}, [id, onFocusItem]);
|
|
351
|
-
const
|
|
352
|
+
const handleActionClick = useCallback(
|
|
352
353
|
(event) => {
|
|
353
|
-
if (
|
|
354
|
+
if (isDisabled) {
|
|
355
|
+
event.preventDefault();
|
|
356
|
+
event.stopPropagation();
|
|
354
357
|
return;
|
|
355
358
|
}
|
|
356
|
-
event
|
|
357
|
-
event.stopPropagation();
|
|
359
|
+
onClick?.(event);
|
|
358
360
|
},
|
|
359
|
-
[isDisabled]
|
|
361
|
+
[isDisabled, onClick]
|
|
360
362
|
);
|
|
361
363
|
const labelAndDescription = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
362
364
|
/* @__PURE__ */ jsx("span", { className: styles3.label, id: labelId, children: label }),
|
|
@@ -377,31 +379,20 @@ function TreeViewItem({
|
|
|
377
379
|
const content = /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
378
380
|
toggle,
|
|
379
381
|
!isReactNode(startContent) ? null : /* @__PURE__ */ jsx("span", { className: styles3.startContent, children: startContent }),
|
|
380
|
-
href != null ? /* @__PURE__ */ jsx(
|
|
381
|
-
|
|
382
|
+
href != null || onClick != null ? /* @__PURE__ */ jsx(
|
|
383
|
+
ActionElement,
|
|
382
384
|
{
|
|
383
385
|
"aria-describedby": description == null ? void 0 : descriptionId,
|
|
384
|
-
"aria-disabled": isDisabled
|
|
386
|
+
"aria-disabled": href != null && isDisabled ? true : void 0,
|
|
385
387
|
"aria-labelledby": labelId,
|
|
386
388
|
className: styles3.invisibleAction,
|
|
387
389
|
href,
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
target,
|
|
392
|
-
children: labelAndDescription
|
|
393
|
-
}
|
|
394
|
-
) : onClick != null ? /* @__PURE__ */ jsx(
|
|
395
|
-
"button",
|
|
396
|
-
{
|
|
397
|
-
"aria-describedby": description == null ? void 0 : descriptionId,
|
|
398
|
-
"aria-labelledby": labelId,
|
|
399
|
-
className: styles3.invisibleAction,
|
|
400
|
-
disabled: isDisabled,
|
|
401
|
-
onClick,
|
|
390
|
+
isDisabled: href == null ? isDisabled : void 0,
|
|
391
|
+
isLink: href != null,
|
|
392
|
+
onClick: handleActionClick,
|
|
402
393
|
ref: actionRef,
|
|
403
394
|
tabIndex: -1,
|
|
404
|
-
|
|
395
|
+
target: href != null ? target : void 0,
|
|
405
396
|
children: labelAndDescription
|
|
406
397
|
}
|
|
407
398
|
) : /* @__PURE__ */ jsx("span", { className: styles3.content, children: labelAndDescription }),
|
|
@@ -744,5 +735,5 @@ function TreeView({
|
|
|
744
735
|
TreeView.displayName = "TreeView";
|
|
745
736
|
|
|
746
737
|
export { TreeView };
|
|
747
|
-
//# sourceMappingURL=chunk-
|
|
748
|
-
//# sourceMappingURL=chunk-
|
|
738
|
+
//# sourceMappingURL=chunk-AKAXQ4RL.js.map
|
|
739
|
+
//# sourceMappingURL=chunk-AKAXQ4RL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/TreeView/TreeView.recipe.ts","../src/components/TreeView/TreeViewBranches.recipe.ts","../src/components/TreeView/TreeViewBranches.tsx","../src/components/TreeView/TreeViewItem.recipe.ts","../src/components/TreeView/TreeViewItem.tsx","../src/components/TreeView/TreeView.tsx"],"names":["styles","jsxs","Fragment","jsx","useId","useRef","useCallback"],"mappings":"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","file":"chunk-AKAXQ4RL.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const treeViewRecipe = sva({\n slots: ['root', 'header', 'list'],\n base: {\n root: {\n position: 'relative',\n },\n header: {\n mb: '2',\n },\n list: {\n m: 0,\n p: 0,\n listStyleType: 'none',\n },\n },\n});\n\nexport type TreeViewVariants = RecipeVariantProps<typeof treeViewRecipe>;\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const treeViewBranchesRecipe = sva({\n slots: ['container', 'line'],\n base: {\n container: {\n position: 'absolute',\n h: 'full',\n w: '5',\n },\n line: {\n position: 'absolute',\n insetInline: 0,\n m: 'auto',\n w: '1px',\n h: 'calc(100% + 1px)',\n borderRadius: 'xs',\n bg: 'border.emphasized',\n },\n },\n});\n\nexport type TreeViewBranchesVariants = RecipeVariantProps<\n typeof treeViewBranchesRecipe\n>;\n","/* eslint-disable silver-ui/require-component-props -- internal presentational connector */\n\nimport {treeViewBranchesRecipe} from 'components/TreeView/TreeViewBranches.recipe';\n\nconst styles = treeViewBranchesRecipe();\n\nconst branchOffset = '6px';\n\ninterface TreeViewBranchesProps {\n /**\n * Whether each ancestor at the corresponding level is the last sibling.\n */\n ancestorsIsLast: ReadonlyArray<boolean>;\n /**\n * Zero-based nesting depth used to draw vertical connector lines.\n */\n nestedLevel: number;\n}\n\n/**\n * Renders vertical connector lines for tree item indentation levels.\n */\nexport function TreeViewBranches({\n ancestorsIsLast,\n nestedLevel,\n}: TreeViewBranchesProps): React.JSX.Element {\n return (\n <>\n {ancestorsIsLast.map((ancestorIsLast, level) => {\n if (ancestorIsLast || level === nestedLevel - 1) {\n return null;\n }\n\n return (\n <div\n className={styles.container}\n // eslint-disable-next-line @eslint-react/no-array-index-key -- level is the stable connector coordinate\n key={level}\n style={{left: `calc(${branchOffset} + ${level} * 16px)`}}>\n <div className={styles.line} />\n </div>\n );\n })}\n {nestedLevel > 0 ? (\n <div\n className={styles.container}\n style={{left: `calc(${branchOffset} + ${nestedLevel - 1} * 16px)`}}>\n <div className={styles.line} />\n </div>\n ) : null}\n </>\n );\n}\n\nTreeViewBranches.displayName = 'TreeViewBranches';\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const treeViewItemRecipe = sva({\n slots: [\n 'wrapper',\n 'treeBranches',\n 'rowWrapper',\n 'contentWrapper',\n 'toggleButton',\n 'toggleSpacer',\n 'toggleIcon',\n 'startContent',\n 'content',\n 'invisibleAction',\n 'label',\n 'description',\n 'endContent',\n 'childGroup',\n ],\n base: {\n wrapper: {\n position: 'relative',\n m: 0,\n p: 0,\n w: 'full',\n listStyleType: 'none',\n outline: 'none',\n },\n treeBranches: {\n ps: '2',\n },\n rowWrapper: {\n position: 'relative',\n },\n contentWrapper: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n overflow: 'hidden',\n px: '2',\n borderRadius: 'md',\n outline: 'none',\n textAlign: 'start',\n },\n toggleButton: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n w: '4',\n h: '4',\n borderRadius: 'sm',\n color: 'fg.muted',\n cursor: 'pointer',\n },\n toggleSpacer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n w: '4',\n h: '4',\n color: 'fg.muted',\n },\n toggleIcon: {\n display: 'flex',\n transitionDuration: 'fast',\n transitionProperty: 'transform',\n transitionTimingFunction: 'default',\n },\n startContent: {\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n },\n content: {\n display: 'flex',\n flex: 1,\n minW: 0,\n flexDirection: 'column',\n textAlign: 'start',\n },\n invisibleAction: {\n display: 'flex',\n flex: 1,\n minW: 0,\n flexDirection: 'column',\n color: 'inherit',\n cursor: 'inherit',\n font: 'inherit',\n textAlign: 'start',\n textDecoration: 'none',\n outline: 'none',\n },\n label: {\n color: 'fg',\n },\n description: {\n color: 'fg.muted',\n fontSize: 'xs',\n lineHeight: 'normal',\n },\n endContent: {\n display: 'flex',\n alignItems: 'center',\n flexShrink: 0,\n ml: 'auto',\n },\n childGroup: {\n m: 0,\n p: 0,\n listStyleType: 'none',\n },\n },\n variants: {\n density: {\n balanced: {\n contentWrapper: {py: '2', fontSize: 'sm', lineHeight: 'normal'},\n },\n compact: {\n contentWrapper: {py: '1', fontSize: 'sm', lineHeight: 'normal'},\n },\n spacious: {\n contentWrapper: {py: '3', fontSize: 'sm', lineHeight: 'normal'},\n },\n },\n isInteractive: {\n true: {\n contentWrapper: {\n cursor: 'pointer',\n transitionDuration: 'fast',\n transitionProperty: 'background-color',\n transitionTimingFunction: 'default',\n _active: {\n bg: 'bg.hover',\n },\n _hover: {\n '@media (hover: hover)': {\n bg: 'bg.subtle',\n },\n },\n },\n },\n false: {},\n },\n isDisabled: {\n true: {\n contentWrapper: {\n cursor: 'not-allowed',\n opacity: 0.5,\n pointerEvents: 'none',\n },\n },\n false: {},\n },\n isSelected: {\n true: {\n contentWrapper: {bg: 'bg.selected'},\n },\n false: {},\n },\n isFocused: {\n true: {\n contentWrapper: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n false: {},\n },\n isExpanded: {\n true: {\n toggleIcon: {transform: 'rotate(90deg)'},\n },\n false: {},\n },\n },\n defaultVariants: {\n density: 'balanced',\n isInteractive: false,\n isDisabled: false,\n isSelected: false,\n isFocused: false,\n isExpanded: false,\n },\n});\n\nexport type TreeViewItemVariants = RecipeVariantProps<\n typeof treeViewItemRecipe\n>;\n","/* eslint-disable jsx-a11y-x/no-noninteractive-element-to-interactive-role, jsx-a11y-x/no-static-element-interactions, silver-ui/require-component-props -- internal recursive tree item */\n\nimport {ChevronRight} from 'lucide-react';\nimport {useCallback, useId, useRef, type ReactNode, type Ref} from 'react';\nimport {Icon} from 'components/Icon';\nimport {TreeViewBranches} from 'components/TreeView/TreeViewBranches';\nimport {treeViewItemRecipe} from 'components/TreeView/TreeViewItem.recipe';\nimport type {TreeViewDensity} from 'components/TreeView/types';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\ninterface TreeViewItemProps {\n /**\n * Whether each ancestor at the corresponding level is the last sibling.\n */\n ancestorsIsLast: ReadonlyArray<boolean>;\n /**\n * Plain-text label used for generated control labels.\n */\n ariaLabel?: string;\n /**\n * Spacing density for the item.\n */\n density: TreeViewDensity;\n /**\n * Secondary description text shown below the label.\n */\n description?: string;\n /**\n * Content rendered at the end of the item row.\n */\n endContent?: React.ReactNode;\n /**\n * Whether this item has child items.\n */\n hasChildren: boolean;\n /**\n * Link destination. When provided, the item renders as a link.\n */\n href?: string;\n /**\n * Unique identifier for the item.\n */\n id: string;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the item's children are visible.\n */\n isExpanded: boolean;\n /**\n * Whether this item currently owns roving focus.\n */\n isFocused: boolean;\n /**\n * Whether the item is selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Primary label content.\n */\n label: React.ReactNode;\n /**\n * Zero-based nesting depth of this item.\n */\n nestedLevel: number;\n /**\n * Click handler for the item action.\n */\n onClick?: (event: React.MouseEvent) => void;\n /**\n * Called when the item receives focus.\n */\n onFocusItem: (id: string, isFocusVisible?: boolean) => void;\n /**\n * Called for tree keyboard navigation.\n */\n onItemKeyDown: (\n event: React.KeyboardEvent<HTMLLIElement>,\n id: string,\n ) => void;\n /**\n * Called when the expand/collapse toggle is activated.\n */\n onToggle?: (id: string) => void;\n /**\n * Ref forwarded to the treeitem element.\n */\n ref?: Ref<HTMLLIElement>;\n /**\n * Pre-rendered child items.\n */\n renderedChildren?: ReactNode;\n /**\n * Content rendered before the label.\n */\n startContent?: React.ReactNode;\n /**\n * Roving tab index for this treeitem.\n */\n tabIndex: 0 | -1;\n /**\n * Link target attribute (e.g. '_blank').\n */\n target?: string;\n}\n\n/**\n * Renders a single tree item with toggle, branch lines, and optional link or button action.\n */\nexport function TreeViewItem({\n ariaLabel,\n ancestorsIsLast,\n density,\n description,\n endContent,\n hasChildren,\n href,\n id,\n isDisabled = false,\n isExpanded,\n isFocused,\n isSelected = false,\n label,\n nestedLevel,\n onClick,\n onFocusItem,\n onItemKeyDown,\n onToggle,\n ref,\n renderedChildren,\n startContent,\n tabIndex,\n target,\n}: TreeViewItemProps): React.JSX.Element {\n const labelId = useId();\n const descriptionId = useId();\n const actionRef = useRef<HTMLElement>(null);\n const isInteractive = onClick != null || href != null;\n const togglesOnRow = hasChildren && onClick == null && onToggle != null;\n const styles = treeViewItemRecipe({\n density,\n isInteractive: isInteractive || togglesOnRow,\n isDisabled,\n isSelected,\n isFocused,\n isExpanded,\n });\n const textLabel =\n ariaLabel ??\n (typeof label === 'string' || typeof label === 'number'\n ? String(label)\n : id);\n\n const handleToggle = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n onToggle?.(id);\n },\n [id, onToggle],\n );\n\n const handleRowClick = useCallback(() => {\n if (!togglesOnRow) {\n return;\n }\n\n if (isDisabled) {\n return;\n }\n onToggle(id);\n }, [id, isDisabled, onToggle, togglesOnRow]);\n\n const handleRowKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLLIElement>) => {\n event.stopPropagation();\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n if (togglesOnRow) {\n handleRowClick();\n return;\n }\n actionRef.current?.click();\n return;\n }\n onItemKeyDown(event, id);\n },\n [handleRowClick, id, onItemKeyDown, togglesOnRow],\n );\n\n const handleFocus = useCallback(\n (event: React.FocusEvent<HTMLLIElement>) => {\n if (event.currentTarget !== event.target) {\n return;\n }\n onFocusItem(id, event.currentTarget.matches(':focus-visible'));\n },\n [id, onFocusItem],\n );\n\n const handlePointerDown = useCallback(() => {\n onFocusItem(id, false);\n }, [id, onFocusItem]);\n\n const handleActionClick = useCallback(\n (event: React.MouseEvent<HTMLElement>) => {\n if (isDisabled) {\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n\n onClick?.(event);\n },\n [isDisabled, onClick],\n );\n\n const labelAndDescription = (\n <>\n <span className={styles.label} id={labelId}>\n {label}\n </span>\n {description == null ? null : (\n <span className={styles.description} id={descriptionId}>\n {description}\n </span>\n )}\n </>\n );\n\n const toggleIcon = (\n <span className={styles.toggleIcon}>\n <Icon icon={ChevronRight} size=\"sm\" />\n </span>\n );\n\n const toggle = hasChildren ? (\n onClick != null ? (\n <button\n aria-label={`Toggle ${textLabel} children`}\n className={styles.toggleButton}\n onClick={handleToggle}\n tabIndex={-1}\n type=\"button\">\n {toggleIcon}\n </button>\n ) : (\n <span className={styles.toggleSpacer}>{toggleIcon}</span>\n )\n ) : null;\n\n const content = (\n <>\n {toggle}\n {!isReactNode(startContent) ? null : (\n <span className={styles.startContent}>{startContent}</span>\n )}\n {href != null || onClick != null ? (\n <ActionElement\n aria-describedby={description == null ? undefined : descriptionId}\n aria-disabled={href != null && isDisabled ? true : undefined}\n aria-labelledby={labelId}\n className={styles.invisibleAction}\n href={href}\n isDisabled={href == null ? isDisabled : undefined}\n isLink={href != null}\n onClick={handleActionClick}\n ref={actionRef}\n tabIndex={-1}\n target={href != null ? target : undefined}>\n {labelAndDescription}\n </ActionElement>\n ) : (\n <span className={styles.content}>{labelAndDescription}</span>\n )}\n {!isReactNode(endContent) ? null : (\n <span className={styles.endContent}>{endContent}</span>\n )}\n </>\n );\n\n const marginLeft = hasChildren\n ? `calc(${nestedLevel} * 16px)`\n : `calc(${nestedLevel} * 16px + 24px)`;\n\n return (\n <li\n aria-describedby={description == null ? undefined : descriptionId}\n aria-disabled={isDisabled || undefined}\n aria-expanded={hasChildren ? isExpanded : undefined}\n aria-labelledby={labelId}\n aria-selected={isSelected || undefined}\n className={styles.wrapper}\n onFocus={handleFocus}\n onKeyDown={handleRowKeyDown}\n ref={ref}\n role=\"treeitem\"\n tabIndex={isDisabled ? -1 : tabIndex}>\n <div className={styles.treeBranches}>\n <TreeViewBranches\n ancestorsIsLast={ancestorsIsLast}\n nestedLevel={nestedLevel}\n />\n </div>\n <div className={styles.rowWrapper}>\n {/* eslint-disable-next-line jsx-a11y-x/click-events-have-key-events -- keyboard interaction is handled by the parent treeitem for roving focus. */}\n <div\n className={cx('silver-tree-view-item', styles.contentWrapper)}\n onClick={handleRowClick}\n onPointerDown={handlePointerDown}\n style={{marginLeft}}>\n {content}\n </div>\n </div>\n {isExpanded && isReactNode(renderedChildren) ? (\n <ul className={styles.childGroup} role=\"group\">\n {renderedChildren}\n </ul>\n ) : null}\n </li>\n );\n}\n\nTreeViewItem.displayName = 'TreeViewItem';\n","/* eslint-disable jsx-a11y-x/no-noninteractive-element-to-interactive-role -- tree semantics are applied to list markup */\n\nimport {\n useCallback,\n useId,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {treeViewRecipe} from 'components/TreeView/TreeView.recipe';\nimport {TreeViewItem} from 'components/TreeView/TreeViewItem';\nimport type {\n TreeViewDensity,\n TreeViewItemData,\n} from 'components/TreeView/types';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface TreeViewProps {\n /**\n * Additional CSS class names applied to the root.\n */\n className?: string;\n /**\n * Test ID applied to the root.\n */\n 'data-testid'?: string;\n /**\n * Spacing density for tree items.\n * @default 'balanced'\n */\n density?: TreeViewDensity;\n /**\n * Header content rendered above the tree and associated with `aria-labelledby`.\n */\n header?: ReactNode;\n /**\n * Recursive tree item data. Pass a stable reference, or memoize large inline\n * arrays, to avoid repeating recursive expansion scans on every render.\n */\n items: TreeViewItemData[];\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root.\n */\n style?: CSSProperties;\n}\n\nconst styles = treeViewRecipe();\n\ninterface VisibleTreeItem {\n hasChildren: boolean;\n id: string;\n isDisabled: boolean;\n isExpanded: boolean;\n label: string;\n parentId: string | null;\n}\n\nfunction collectExpandedKeys(items: TreeViewItemData[]): string[] {\n const keys: string[] = [];\n for (const item of items) {\n if (item.isExpanded && item.children != null && item.children.length > 0) {\n keys.push(item.id);\n }\n if (item.children != null) {\n keys.push(...collectExpandedKeys(item.children));\n }\n }\n return keys;\n}\n\nfunction getTextLabel(item: TreeViewItemData): string {\n if (item.ariaLabel != null) {\n return item.ariaLabel;\n }\n if (typeof item.label === 'string' || typeof item.label === 'number') {\n return String(item.label);\n }\n return item.id;\n}\n\nfunction getItemExpansion(\n id: string,\n expandedKeyOverrides: ReadonlyMap<string, boolean>,\n expandedKeysFromProps: ReadonlySet<string>,\n): boolean {\n return expandedKeyOverrides.has(id)\n ? (expandedKeyOverrides.get(id) ?? false)\n : expandedKeysFromProps.has(id);\n}\n\nfunction collectVisibleItems(\n items: TreeViewItemData[],\n expandedKeyOverrides: ReadonlyMap<string, boolean>,\n expandedKeysFromProps: ReadonlySet<string>,\n parentId: string | null = null,\n): VisibleTreeItem[] {\n const visibleItems: VisibleTreeItem[] = [];\n for (const item of items) {\n const hasChildren = item.children != null && item.children.length > 0;\n const isExpanded = getItemExpansion(\n item.id,\n expandedKeyOverrides,\n expandedKeysFromProps,\n );\n visibleItems.push({\n hasChildren,\n id: item.id,\n isDisabled: item.isDisabled === true,\n isExpanded,\n label: getTextLabel(item),\n parentId,\n });\n\n if (hasChildren && isExpanded) {\n visibleItems.push(\n ...collectVisibleItems(\n item.children ?? [],\n expandedKeyOverrides,\n expandedKeysFromProps,\n item.id,\n ),\n );\n }\n }\n return visibleItems;\n}\n\n/**\n * Renders a hierarchical tree of expandable and selectable items.\n */\nexport function TreeView({\n className,\n 'data-testid': dataTestId,\n density = 'balanced',\n header,\n items,\n ref,\n style,\n}: TreeViewProps): React.JSX.Element {\n const headerId = useId();\n const itemElementsRef = useRef(new Map<string, HTMLLIElement>());\n const inputModalityRef = useRef<'keyboard' | 'pointer'>('keyboard');\n const expandedKeysFromProps = useMemo(\n () => new Set(collectExpandedKeys(items)),\n [items],\n );\n const [expandedKeyOverrides, setExpandedKeyOverrides] = useState<\n Map<string, boolean>\n >(() => new Map());\n const [focusedId, setFocusedId] = useState<string | null>(null);\n const [hasFocusWithin, setHasFocusWithin] = useState(false);\n const [focusVisibleId, setFocusVisibleId] = useState<string | null>(null);\n\n const visibleItems = useMemo(\n () =>\n collectVisibleItems(items, expandedKeyOverrides, expandedKeysFromProps),\n [expandedKeyOverrides, expandedKeysFromProps, items],\n );\n const focusableItems = useMemo(\n () => visibleItems.filter(item => !item.isDisabled),\n [visibleItems],\n );\n const activeFocusedId =\n focusedId != null && focusableItems.some(item => item.id === focusedId)\n ? focusedId\n : (focusableItems[0]?.id ?? null);\n\n const handleToggle = useCallback(\n (id: string) => {\n setExpandedKeyOverrides(previous => {\n const next = new Map(previous);\n const defaultIsExpanded = expandedKeysFromProps.has(id);\n const isExpanded = previous.has(id)\n ? (previous.get(id) ?? false)\n : defaultIsExpanded;\n const nextIsExpanded = !isExpanded;\n if (nextIsExpanded === defaultIsExpanded) {\n next.delete(id);\n } else {\n next.set(id, nextIsExpanded);\n }\n return next;\n });\n },\n [expandedKeysFromProps],\n );\n\n const focusItem = useCallback((id: string) => {\n setFocusedId(id);\n itemElementsRef.current.get(id)?.focus();\n }, []);\n\n const handleItemFocus = useCallback((id: string, isFocusVisible = false) => {\n setFocusedId(id);\n setFocusVisibleId(\n isFocusVisible || inputModalityRef.current === 'keyboard' ? id : null,\n );\n }, []);\n\n const handleFocusCapture = useCallback(() => {\n setHasFocusWithin(true);\n }, []);\n\n const handleBlurCapture = useCallback((event: FocusEvent<HTMLDivElement>) => {\n const nextFocusedElement = event.relatedTarget;\n if (\n nextFocusedElement instanceof Node &&\n event.currentTarget.contains(nextFocusedElement)\n ) {\n return;\n }\n\n setHasFocusWithin(false);\n setFocusVisibleId(null);\n }, []);\n\n const handleKeyDownCapture = useCallback(() => {\n inputModalityRef.current = 'keyboard';\n }, []);\n\n const handlePointerDownCapture = useCallback(() => {\n inputModalityRef.current = 'pointer';\n }, []);\n\n const handleItemKeyDown = useCallback(\n (event: KeyboardEvent<HTMLLIElement>, id: string) => {\n const currentIndex = focusableItems.findIndex(item => item.id === id);\n if (currentIndex === -1) {\n return;\n }\n\n const currentItem = focusableItems[currentIndex];\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n const nextIndex = currentIndex + 1;\n if (nextIndex < focusableItems.length) {\n focusItem(focusableItems[nextIndex].id);\n }\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n const previousIndex = currentIndex - 1;\n if (previousIndex >= 0) {\n focusItem(focusableItems[previousIndex].id);\n }\n return;\n }\n\n if (event.key === 'Home') {\n event.preventDefault();\n if (focusableItems.length > 0) {\n focusItem(focusableItems[0].id);\n }\n return;\n }\n\n if (event.key === 'End') {\n event.preventDefault();\n if (focusableItems.length > 0) {\n focusItem(focusableItems[focusableItems.length - 1].id);\n }\n return;\n }\n\n if (event.key === 'ArrowRight') {\n if (!currentItem.hasChildren) {\n return;\n }\n event.preventDefault();\n if (!currentItem.isExpanded) {\n handleToggle(currentItem.id);\n return;\n }\n\n const firstChild = focusableItems.find(\n item => item.parentId === currentItem.id,\n );\n if (firstChild != null) {\n focusItem(firstChild.id);\n }\n return;\n }\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n if (currentItem.hasChildren && currentItem.isExpanded) {\n handleToggle(currentItem.id);\n return;\n }\n if (currentItem.parentId != null) {\n focusItem(currentItem.parentId);\n }\n return;\n }\n\n if (\n event.key.length === 1 &&\n !event.altKey &&\n !event.ctrlKey &&\n !event.metaKey\n ) {\n const query = event.key.toLocaleLowerCase();\n const orderedItems = [\n ...focusableItems.slice(currentIndex + 1),\n ...focusableItems.slice(0, currentIndex + 1),\n ];\n const matchingItem = orderedItems.find(item =>\n item.label.toLocaleLowerCase().startsWith(query),\n );\n if (matchingItem != null) {\n event.preventDefault();\n focusItem(matchingItem.id);\n }\n }\n },\n [focusItem, focusableItems, handleToggle],\n );\n\n const renderItems = useCallback(\n (\n treeItems: TreeViewItemData[],\n nestedLevel: number,\n ancestorsIsLast: ReadonlyArray<boolean>,\n ): ReactNode =>\n treeItems.map((item, index) => {\n const isLast = index === treeItems.length - 1;\n const hasChildren = item.children != null && item.children.length > 0;\n const isExpanded = expandedKeyOverrides.has(item.id)\n ? (expandedKeyOverrides.get(item.id) ?? false)\n : expandedKeysFromProps.has(item.id);\n const childAncestorsIsLast = hasChildren\n ? [...ancestorsIsLast, isLast]\n : ancestorsIsLast;\n const renderedChildren =\n isExpanded && hasChildren\n ? renderItems(\n item.children ?? [],\n nestedLevel + 1,\n childAncestorsIsLast,\n )\n : undefined;\n\n return (\n <TreeViewItem\n ancestorsIsLast={ancestorsIsLast}\n ariaLabel={item.ariaLabel}\n density={density}\n description={item.description}\n endContent={item.endContent}\n hasChildren={hasChildren}\n href={item.href}\n id={item.id}\n isDisabled={item.isDisabled}\n isExpanded={isExpanded}\n isFocused={hasFocusWithin && focusVisibleId === item.id}\n isSelected={item.isSelected}\n key={item.id}\n label={item.label}\n nestedLevel={nestedLevel}\n onClick={item.onClick}\n onFocusItem={handleItemFocus}\n onItemKeyDown={handleItemKeyDown}\n onToggle={handleToggle}\n ref={(element: HTMLLIElement | null) => {\n if (element == null) {\n itemElementsRef.current.delete(item.id);\n } else {\n itemElementsRef.current.set(item.id, element);\n }\n }}\n renderedChildren={renderedChildren}\n startContent={item.startContent}\n tabIndex={activeFocusedId === item.id ? 0 : -1}\n target={item.target}\n />\n );\n }),\n [\n activeFocusedId,\n density,\n expandedKeyOverrides,\n expandedKeysFromProps,\n focusVisibleId,\n hasFocusWithin,\n handleItemFocus,\n handleItemKeyDown,\n handleToggle,\n ],\n );\n\n return (\n <div\n className={cx(styles.root, className)}\n data-testid={dataTestId}\n onBlurCapture={handleBlurCapture}\n onFocusCapture={handleFocusCapture}\n onKeyDownCapture={handleKeyDownCapture}\n onPointerDownCapture={handlePointerDownCapture}\n ref={ref}\n style={style}>\n {!isReactNode(header) ? null : (\n <div className={styles.header} id={headerId}>\n {header}\n </div>\n )}\n <ul\n aria-labelledby={!isReactNode(header) ? undefined : headerId}\n className={styles.list}\n role=\"tree\">\n {renderItems(items, 0, [])}\n </ul>\n </div>\n );\n}\n\nTreeView.displayName = 'TreeView';\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Card } from './chunk-EIT2QSCA.js';
|
|
2
2
|
import { Divider } from './chunk-BQWUTDTN.js';
|
|
3
|
-
import { Button } from './chunk-
|
|
4
|
-
import { token } from './chunk-
|
|
3
|
+
import { Button } from './chunk-EBV3EX3J.js';
|
|
4
|
+
import { token } from './chunk-5GSRIOXE.js';
|
|
5
5
|
import { sva } from './chunk-IAVZKGZS.js';
|
|
6
6
|
import { cx } from './chunk-PPNETWIP.js';
|
|
7
7
|
import { Check, Copy } from 'lucide-react';
|
|
@@ -410,5 +410,5 @@ function CodeBlock({
|
|
|
410
410
|
CodeBlock.displayName = "CodeBlock";
|
|
411
411
|
|
|
412
412
|
export { CodeBlock };
|
|
413
|
-
//# sourceMappingURL=chunk-
|
|
414
|
-
//# sourceMappingURL=chunk-
|
|
413
|
+
//# sourceMappingURL=chunk-AO4RVSCG.js.map
|
|
414
|
+
//# sourceMappingURL=chunk-AO4RVSCG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CodeBlock/CodeBlock.recipe.ts","../src/components/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"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","file":"chunk-AV7D3SXF.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const codeBlockRecipe = sva({\n slots: [\n 'root',\n 'header',\n 'headerTitle',\n 'scroll',\n 'body',\n 'gutter',\n 'gutterLine',\n 'pre',\n 'code',\n 'line',\n 'copyButtonFloating',\n 'inlineCode',\n 'inlineDivider',\n ],\n base: {\n root: {\n color: 'fg',\n overflow: 'hidden',\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '3',\n px: '4',\n py: '2',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n headerTitle: {\n minW: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n color: 'fg.muted',\n fontFamily: 'mono',\n fontSize: 'xs',\n fontWeight: 'medium',\n },\n scroll: {\n overflow: 'auto',\n },\n body: {\n display: 'flex',\n minW: 'fit-content',\n },\n gutter: {\n flexShrink: 0,\n py: '3',\n ps: '4',\n pe: '3',\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n color: 'fg.muted',\n textAlign: 'end',\n userSelect: 'none',\n },\n gutterLine: {\n fontFamily: 'mono',\n lineHeight: '1.5rem',\n },\n pre: {\n m: 0,\n flex: 1,\n minW: 0,\n },\n code: {\n display: 'flex',\n flexDirection: 'column',\n color: 'fg',\n fontFamily: 'mono',\n tabSize: 2,\n whiteSpace: 'pre',\n wordBreak: 'normal',\n overflowWrap: 'normal',\n },\n line: {\n display: 'block',\n minH: '1.5rem',\n '&[data-highlighted]': {\n bg: 'bg.selected',\n mx: 'calc(var(--cb-padding) * -1)',\n px: 'var(--cb-padding)',\n },\n },\n copyButtonFloating: {\n position: 'absolute',\n top: '3',\n right: '3',\n zIndex: 1,\n // On hover-capable devices, hide until the block is hovered/focused (the\n // root reveals it via [data-cb-copy]). On touch devices it stays visible.\n '@media (hover: hover)': {\n opacity: 0,\n pointerEvents: 'none',\n transitionProperty: 'opacity',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0s',\n },\n },\n },\n inlineCode: {\n minW: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'pre',\n fontFamily: 'mono',\n },\n inlineDivider: {\n alignSelf: 'stretch',\n ms: '1.5',\n },\n },\n variants: {\n container: {\n card: {\n root: {\n position: 'relative',\n isolation: 'isolate',\n display: 'flex',\n flexDirection: 'column',\n borderRadius: 'md',\n '&:hover [data-cb-copy], &:focus-within [data-cb-copy]': {\n opacity: 1,\n pointerEvents: 'auto',\n },\n },\n },\n section: {\n root: {\n position: 'relative',\n isolation: 'isolate',\n display: 'flex',\n flexDirection: 'column',\n '&:hover [data-cb-copy], &:focus-within [data-cb-copy]': {\n opacity: 1,\n pointerEvents: 'auto',\n },\n },\n },\n inline: {\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n maxWidth: '100%',\n ps: '2.5',\n },\n },\n },\n size: {\n sm: {\n code: {fontSize: 'xs', lineHeight: '1.5rem'},\n gutter: {fontSize: 'xs', lineHeight: '1.5rem'},\n inlineCode: {fontSize: 'xs', lineHeight: '1.5rem'},\n },\n md: {\n code: {fontSize: 'sm', lineHeight: '1.5rem'},\n gutter: {fontSize: 'sm', lineHeight: '1.5rem'},\n inlineCode: {fontSize: 'sm', lineHeight: '1.5rem'},\n },\n },\n isWrapped: {\n true: {\n code: {\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowWrap: 'anywhere',\n },\n },\n },\n hasFloatingCopy: {\n true: {\n code: {pe: '12'},\n },\n },\n },\n defaultVariants: {\n container: 'card',\n size: 'md',\n isWrapped: false,\n hasFloatingCopy: false,\n },\n});\n\nexport type CodeBlockVariants = RecipeVariantProps<typeof codeBlockRecipe>;\n","'use client';\n\nimport {Check, Copy} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {Card} from 'components/Card';\nimport {codeBlockRecipe} from 'components/CodeBlock/CodeBlock.recipe';\nimport {Divider} from 'components/Divider';\nimport {cx} from 'internal/cx';\nimport type {SpacingToken} from 'internal/spacingTokens';\nimport {token} from 'styled-system/tokens';\n\nexport type CodeBlockContainer = 'card' | 'section' | 'inline';\nexport type CodeBlockSize = 'sm' | 'md';\n\nexport interface CodeBlockProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Source code to display.\n */\n code: string;\n /**\n * Container presentation style. Use `'inline'` for a compact, single-line\n * snippet (e.g. an install command) with the copy button rendered inline;\n * line numbers, titles, and `maxHeight` do not apply to inline blocks.\n * @default 'card'\n */\n container?: CodeBlockContainer;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Whether to show a copy button.\n * @default true\n */\n hasCopyButton?: boolean;\n /**\n * Whether to render line numbers.\n * @default false\n */\n hasLineNumbers?: boolean;\n /**\n * One-based line numbers to visually highlight.\n */\n highlightLines?: number[];\n /**\n * Whether long lines should wrap.\n * @default false\n */\n isWrapped?: boolean;\n /**\n * Accessible label for the code block region.\n */\n label?: string;\n /**\n * Maximum scrollable body height. Numbers are treated as pixels.\n */\n maxHeight?: number | string;\n /**\n * Called after code is successfully copied.\n */\n onCopy?: () => void;\n /**\n * Inner padding step.\n * @default 4\n */\n padding?: SpacingToken;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: CodeBlockSize;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Optional header title.\n */\n title?: string;\n /**\n * Width of the code block. Accepts any CSS width value.\n * @default 'fit-content'\n */\n width?: string;\n}\n\nfunction getLines(code: string): string[] {\n const lines = code.split('\\n');\n if (lines.length > 1 && lines[lines.length - 1] === '') {\n lines.pop();\n }\n return lines;\n}\n\nfunction getLineEntries(code: string): {lineNumber: number; text: string}[] {\n return getLines(code).map((text, index) => ({\n lineNumber: index + 1,\n text,\n }));\n}\n\nfunction getRegionLabel({\n label,\n title,\n}: {\n label?: string;\n title?: string;\n}): string {\n if (label != null) {\n return label;\n }\n\n if (title != null && title.length > 0) {\n return `${title} code block`;\n }\n\n return 'Code block';\n}\n\n/**\n * Read-only source code display.\n */\nexport function CodeBlock({\n className,\n code,\n container = 'card',\n 'data-testid': dataTestId,\n hasCopyButton = true,\n hasLineNumbers = false,\n highlightLines,\n isWrapped = false,\n label,\n maxHeight,\n onCopy,\n padding = 4,\n ref,\n size = 'md',\n style,\n title,\n width = 'fit-content',\n}: CodeBlockProps): React.JSX.Element {\n const [copied, setCopied] = useState(false);\n const copiedResetTimeoutRef = useRef<number | null>(null);\n const lines = useMemo(() => getLineEntries(code), [code]);\n const highlightLineKey = highlightLines?.join(',');\n const highlightedLines = useMemo(\n () =>\n highlightLineKey == null || highlightLineKey.length === 0\n ? null\n : new Set(highlightLineKey.split(',').map(Number)),\n [highlightLineKey],\n );\n const isInline = container === 'inline';\n const showHeader = !isInline && title != null;\n const regionLabel = getRegionLabel({label, title});\n\n const classes = codeBlockRecipe({\n container,\n size,\n isWrapped,\n hasFloatingCopy: !showHeader && hasCopyButton,\n });\n\n useEffect(() => {\n return () => {\n if (copiedResetTimeoutRef.current != null) {\n window.clearTimeout(copiedResetTimeoutRef.current);\n }\n };\n }, []);\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(code);\n setCopied(true);\n onCopy?.();\n if (copiedResetTimeoutRef.current != null) {\n window.clearTimeout(copiedResetTimeoutRef.current);\n }\n copiedResetTimeoutRef.current = window.setTimeout(() => {\n setCopied(false);\n copiedResetTimeoutRef.current = null;\n }, 2000);\n } catch {\n // Clipboard failures leave the copied state unchanged.\n }\n }, [code, onCopy]);\n\n const paddingToken = token(`spacing.${padding}`);\n const codeStyle: CSSProperties = {\n ['--cb-padding' as string]: paddingToken,\n padding: paddingToken,\n };\n\n const rootStyle: CSSProperties = isInline\n ? {...style}\n : {\n width,\n minWidth: width === 'fit-content' ? 'min(100%, 400px)' : undefined,\n maxWidth: width === 'fit-content' ? '100%' : undefined,\n ...style,\n };\n const scrollStyle: CSSProperties | undefined =\n maxHeight == null\n ? undefined\n : {\n maxHeight:\n typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight,\n };\n const scrollRegionProps = {\n 'aria-label': `${regionLabel} scroll area`,\n role: 'region',\n tabIndex: 0,\n } as const;\n\n const copyLabel = copied ? 'Copied' : 'Copy code';\n const copyButton = hasCopyButton ? (\n <Button\n icon={copied ? Check : Copy}\n isIconOnly\n label={copyLabel}\n onClick={() => {\n void handleCopy();\n }}\n size=\"sm\"\n tooltip={copyLabel}\n variant=\"ghost\"\n />\n ) : null;\n\n if (isInline) {\n return (\n <Card\n aria-label={regionLabel}\n className={cx(classes.root, className)}\n data-container={container}\n data-size={size}\n data-testid={dataTestId}\n padding={1}\n ref={ref}\n role=\"group\"\n style={rootStyle}>\n <code\n className={classes.inlineCode}\n data-testid={dataTestId == null ? undefined : `${dataTestId}-code`}>\n {code}\n </code>\n {copyButton != null ? (\n <>\n <Divider\n className={classes.inlineDivider}\n height=\"auto\"\n isFullBleed\n orientation=\"vertical\"\n />\n {copyButton}\n </>\n ) : null}\n </Card>\n );\n }\n\n return (\n <Card\n aria-label={regionLabel}\n className={cx(classes.root, className)}\n data-container={container}\n data-size={size}\n data-testid={dataTestId}\n ref={ref}\n role=\"region\"\n style={rootStyle}\n variant={container === 'section' ? 'section' : 'default'}>\n {showHeader ? (\n <div className={classes.header}>\n <div className={classes.headerTitle}>{title}</div>\n {copyButton}\n </div>\n ) : null}\n <div\n {...scrollRegionProps}\n className={classes.scroll}\n data-testid={dataTestId == null ? undefined : `${dataTestId}-scroll`}\n style={scrollStyle}>\n <div className={classes.body}>\n {hasLineNumbers ? (\n <div aria-hidden=\"true\" className={classes.gutter}>\n {lines.map(line => (\n <div className={classes.gutterLine} key={line.lineNumber}>\n {line.lineNumber}\n </div>\n ))}\n </div>\n ) : null}\n <pre className={classes.pre}>\n <code\n className={classes.code}\n data-testid={\n dataTestId == null ? undefined : `${dataTestId}-code`\n }\n data-wrapped={isWrapped ? '' : undefined}\n style={codeStyle}>\n {lines.map(line => (\n <span\n className={classes.line}\n data-highlighted={\n highlightedLines?.has(line.lineNumber) ? '' : undefined\n }\n data-line={line.lineNumber}\n key={line.lineNumber}>\n {line.text.length === 0 ? '\\u200b' : line.text}\n </span>\n ))}\n </code>\n </pre>\n </div>\n </div>\n {!showHeader && copyButton != null ? (\n <div className={classes.copyButtonFloating} data-cb-copy=\"\">\n {copyButton}\n </div>\n ) : null}\n </Card>\n );\n}\n\nCodeBlock.displayName = 'CodeBlock';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/CodeBlock/CodeBlock.recipe.ts","../src/components/CodeBlock/CodeBlock.tsx"],"names":[],"mappings":"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","file":"chunk-AO4RVSCG.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const codeBlockRecipe = sva({\n slots: [\n 'root',\n 'header',\n 'headerTitle',\n 'scroll',\n 'body',\n 'gutter',\n 'gutterLine',\n 'pre',\n 'code',\n 'line',\n 'copyButtonFloating',\n 'inlineCode',\n 'inlineDivider',\n ],\n base: {\n root: {\n color: 'fg',\n overflow: 'hidden',\n },\n header: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '3',\n px: '4',\n py: '2',\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n headerTitle: {\n minW: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n color: 'fg.muted',\n fontFamily: 'mono',\n fontSize: 'xs',\n fontWeight: 'medium',\n },\n scroll: {\n overflow: 'auto',\n },\n body: {\n display: 'flex',\n minW: 'fit-content',\n },\n gutter: {\n flexShrink: 0,\n py: '3',\n ps: '4',\n pe: '3',\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n color: 'fg.muted',\n textAlign: 'end',\n userSelect: 'none',\n },\n gutterLine: {\n fontFamily: 'mono',\n lineHeight: '1.5rem',\n },\n pre: {\n m: 0,\n flex: 1,\n minW: 0,\n },\n code: {\n display: 'flex',\n flexDirection: 'column',\n color: 'fg',\n fontFamily: 'mono',\n tabSize: 2,\n whiteSpace: 'pre',\n wordBreak: 'normal',\n overflowWrap: 'normal',\n },\n line: {\n display: 'block',\n minH: '1.5rem',\n '&[data-highlighted]': {\n bg: 'bg.selected',\n mx: 'calc(var(--cb-padding) * -1)',\n px: 'var(--cb-padding)',\n },\n },\n copyButtonFloating: {\n position: 'absolute',\n top: '3',\n right: '3',\n zIndex: 1,\n // On hover-capable devices, hide until the block is hovered/focused (the\n // root reveals it via [data-cb-copy]). On touch devices it stays visible.\n '@media (hover: hover)': {\n opacity: 0,\n pointerEvents: 'none',\n transitionProperty: 'opacity',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0s',\n },\n },\n },\n inlineCode: {\n minW: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'pre',\n fontFamily: 'mono',\n },\n inlineDivider: {\n alignSelf: 'stretch',\n ms: '1.5',\n },\n },\n variants: {\n container: {\n card: {\n root: {\n position: 'relative',\n isolation: 'isolate',\n display: 'flex',\n flexDirection: 'column',\n borderRadius: 'md',\n '&:hover [data-cb-copy], &:focus-within [data-cb-copy]': {\n opacity: 1,\n pointerEvents: 'auto',\n },\n },\n },\n section: {\n root: {\n position: 'relative',\n isolation: 'isolate',\n display: 'flex',\n flexDirection: 'column',\n '&:hover [data-cb-copy], &:focus-within [data-cb-copy]': {\n opacity: 1,\n pointerEvents: 'auto',\n },\n },\n },\n inline: {\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n maxWidth: '100%',\n ps: '2.5',\n },\n },\n },\n size: {\n sm: {\n code: {fontSize: 'xs', lineHeight: '1.5rem'},\n gutter: {fontSize: 'xs', lineHeight: '1.5rem'},\n inlineCode: {fontSize: 'xs', lineHeight: '1.5rem'},\n },\n md: {\n code: {fontSize: 'sm', lineHeight: '1.5rem'},\n gutter: {fontSize: 'sm', lineHeight: '1.5rem'},\n inlineCode: {fontSize: 'sm', lineHeight: '1.5rem'},\n },\n },\n isWrapped: {\n true: {\n code: {\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n overflowWrap: 'anywhere',\n },\n },\n },\n hasFloatingCopy: {\n true: {\n code: {pe: '12'},\n },\n },\n },\n defaultVariants: {\n container: 'card',\n size: 'md',\n isWrapped: false,\n hasFloatingCopy: false,\n },\n});\n\nexport type CodeBlockVariants = RecipeVariantProps<typeof codeBlockRecipe>;\n","'use client';\n\nimport {Check, Copy} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {Card} from 'components/Card';\nimport {codeBlockRecipe} from 'components/CodeBlock/CodeBlock.recipe';\nimport {Divider} from 'components/Divider';\nimport {cx} from 'internal/cx';\nimport type {SpacingToken} from 'internal/spacingTokens';\nimport {token} from 'styled-system/tokens';\n\nexport type CodeBlockContainer = 'card' | 'section' | 'inline';\nexport type CodeBlockSize = 'sm' | 'md';\n\nexport interface CodeBlockProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Source code to display.\n */\n code: string;\n /**\n * Container presentation style. Use `'inline'` for a compact, single-line\n * snippet (e.g. an install command) with the copy button rendered inline;\n * line numbers, titles, and `maxHeight` do not apply to inline blocks.\n * @default 'card'\n */\n container?: CodeBlockContainer;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Whether to show a copy button.\n * @default true\n */\n hasCopyButton?: boolean;\n /**\n * Whether to render line numbers.\n * @default false\n */\n hasLineNumbers?: boolean;\n /**\n * One-based line numbers to visually highlight.\n */\n highlightLines?: number[];\n /**\n * Whether long lines should wrap.\n * @default false\n */\n isWrapped?: boolean;\n /**\n * Accessible label for the code block region.\n */\n label?: string;\n /**\n * Maximum scrollable body height. Numbers are treated as pixels.\n */\n maxHeight?: number | string;\n /**\n * Called after code is successfully copied.\n */\n onCopy?: () => void;\n /**\n * Inner padding step.\n * @default 4\n */\n padding?: SpacingToken;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: CodeBlockSize;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Optional header title.\n */\n title?: string;\n /**\n * Width of the code block. Accepts any CSS width value.\n * @default 'fit-content'\n */\n width?: string;\n}\n\nfunction getLines(code: string): string[] {\n const lines = code.split('\\n');\n if (lines.length > 1 && lines[lines.length - 1] === '') {\n lines.pop();\n }\n return lines;\n}\n\nfunction getLineEntries(code: string): {lineNumber: number; text: string}[] {\n return getLines(code).map((text, index) => ({\n lineNumber: index + 1,\n text,\n }));\n}\n\nfunction getRegionLabel({\n label,\n title,\n}: {\n label?: string;\n title?: string;\n}): string {\n if (label != null) {\n return label;\n }\n\n if (title != null && title.length > 0) {\n return `${title} code block`;\n }\n\n return 'Code block';\n}\n\n/**\n * Read-only source code display.\n */\nexport function CodeBlock({\n className,\n code,\n container = 'card',\n 'data-testid': dataTestId,\n hasCopyButton = true,\n hasLineNumbers = false,\n highlightLines,\n isWrapped = false,\n label,\n maxHeight,\n onCopy,\n padding = 4,\n ref,\n size = 'md',\n style,\n title,\n width = 'fit-content',\n}: CodeBlockProps): React.JSX.Element {\n const [copied, setCopied] = useState(false);\n const copiedResetTimeoutRef = useRef<number | null>(null);\n const lines = useMemo(() => getLineEntries(code), [code]);\n const highlightLineKey = highlightLines?.join(',');\n const highlightedLines = useMemo(\n () =>\n highlightLineKey == null || highlightLineKey.length === 0\n ? null\n : new Set(highlightLineKey.split(',').map(Number)),\n [highlightLineKey],\n );\n const isInline = container === 'inline';\n const showHeader = !isInline && title != null;\n const regionLabel = getRegionLabel({label, title});\n\n const classes = codeBlockRecipe({\n container,\n size,\n isWrapped,\n hasFloatingCopy: !showHeader && hasCopyButton,\n });\n\n useEffect(() => {\n return () => {\n if (copiedResetTimeoutRef.current != null) {\n window.clearTimeout(copiedResetTimeoutRef.current);\n }\n };\n }, []);\n\n const handleCopy = useCallback(async () => {\n try {\n await navigator.clipboard.writeText(code);\n setCopied(true);\n onCopy?.();\n if (copiedResetTimeoutRef.current != null) {\n window.clearTimeout(copiedResetTimeoutRef.current);\n }\n copiedResetTimeoutRef.current = window.setTimeout(() => {\n setCopied(false);\n copiedResetTimeoutRef.current = null;\n }, 2000);\n } catch {\n // Clipboard failures leave the copied state unchanged.\n }\n }, [code, onCopy]);\n\n const paddingToken = token(`spacing.${padding}`);\n const codeStyle: CSSProperties = {\n ['--cb-padding' as string]: paddingToken,\n padding: paddingToken,\n };\n\n const rootStyle: CSSProperties = isInline\n ? {...style}\n : {\n width,\n minWidth: width === 'fit-content' ? 'min(100%, 400px)' : undefined,\n maxWidth: width === 'fit-content' ? '100%' : undefined,\n ...style,\n };\n const scrollStyle: CSSProperties | undefined =\n maxHeight == null\n ? undefined\n : {\n maxHeight:\n typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight,\n };\n const scrollRegionProps = {\n 'aria-label': `${regionLabel} scroll area`,\n role: 'region',\n tabIndex: 0,\n } as const;\n\n const copyLabel = copied ? 'Copied' : 'Copy code';\n const copyButton = hasCopyButton ? (\n <Button\n icon={copied ? Check : Copy}\n isIconOnly\n label={copyLabel}\n onClick={() => {\n void handleCopy();\n }}\n size=\"sm\"\n tooltip={copyLabel}\n variant=\"ghost\"\n />\n ) : null;\n\n if (isInline) {\n return (\n <Card\n aria-label={regionLabel}\n className={cx(classes.root, className)}\n data-container={container}\n data-size={size}\n data-testid={dataTestId}\n padding={1}\n ref={ref}\n role=\"group\"\n style={rootStyle}>\n <code\n className={classes.inlineCode}\n data-testid={dataTestId == null ? undefined : `${dataTestId}-code`}>\n {code}\n </code>\n {copyButton != null ? (\n <>\n <Divider\n className={classes.inlineDivider}\n height=\"auto\"\n isFullBleed\n orientation=\"vertical\"\n />\n {copyButton}\n </>\n ) : null}\n </Card>\n );\n }\n\n return (\n <Card\n aria-label={regionLabel}\n className={cx(classes.root, className)}\n data-container={container}\n data-size={size}\n data-testid={dataTestId}\n ref={ref}\n role=\"region\"\n style={rootStyle}\n variant={container === 'section' ? 'section' : 'default'}>\n {showHeader ? (\n <div className={classes.header}>\n <div className={classes.headerTitle}>{title}</div>\n {copyButton}\n </div>\n ) : null}\n <div\n {...scrollRegionProps}\n className={classes.scroll}\n data-testid={dataTestId == null ? undefined : `${dataTestId}-scroll`}\n style={scrollStyle}>\n <div className={classes.body}>\n {hasLineNumbers ? (\n <div aria-hidden=\"true\" className={classes.gutter}>\n {lines.map(line => (\n <div className={classes.gutterLine} key={line.lineNumber}>\n {line.lineNumber}\n </div>\n ))}\n </div>\n ) : null}\n <pre className={classes.pre}>\n <code\n className={classes.code}\n data-testid={\n dataTestId == null ? undefined : `${dataTestId}-code`\n }\n data-wrapped={isWrapped ? '' : undefined}\n style={codeStyle}>\n {lines.map(line => (\n <span\n className={classes.line}\n data-highlighted={\n highlightedLines?.has(line.lineNumber) ? '' : undefined\n }\n data-line={line.lineNumber}\n key={line.lineNumber}>\n {line.text.length === 0 ? '\\u200b' : line.text}\n </span>\n ))}\n </code>\n </pre>\n </div>\n </div>\n {!showHeader && copyButton != null ? (\n <div className={classes.copyButtonFloating} data-cb-copy=\"\">\n {copyButton}\n </div>\n ) : null}\n </Card>\n );\n}\n\nCodeBlock.displayName = 'CodeBlock';\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { Tag } from './chunk-
|
|
1
|
+
import { Tag } from './chunk-EIJSWHG7.js';
|
|
2
2
|
import { inputStyles, inputRecipe } from './chunk-3M23WX6K.js';
|
|
3
|
-
import { getNecessity, Field } from './chunk-
|
|
3
|
+
import { getNecessity, Field } from './chunk-USEA7DB5.js';
|
|
4
4
|
import { getStatusMessageID, getDescribedBy } from './chunk-G6HS52US.js';
|
|
5
|
-
import { Popover } from './chunk-
|
|
6
|
-
import { Button } from './chunk-
|
|
7
|
-
import { Spinner } from './chunk-
|
|
8
|
-
import { Text } from './chunk-
|
|
5
|
+
import { Popover } from './chunk-GTZQT6MK.js';
|
|
6
|
+
import { Button } from './chunk-EBV3EX3J.js';
|
|
7
|
+
import { Spinner } from './chunk-X2P5SPGB.js';
|
|
8
|
+
import { Text } from './chunk-5GSRIOXE.js';
|
|
9
9
|
import { mergeRefs } from './chunk-SGLIDI6R.js';
|
|
10
10
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
11
11
|
import { Icon } from './chunk-IUW777WZ.js';
|
|
@@ -669,5 +669,5 @@ function createStaticSearchSource(items, options) {
|
|
|
669
669
|
}
|
|
670
670
|
|
|
671
671
|
export { AutocompleteInput, AutocompleteInputItem, BaseAutocompleteInput, createStaticSearchSource };
|
|
672
|
-
//# sourceMappingURL=chunk-
|
|
673
|
-
//# sourceMappingURL=chunk-
|
|
672
|
+
//# sourceMappingURL=chunk-AX653SYJ.js.map
|
|
673
|
+
//# sourceMappingURL=chunk-AX653SYJ.js.map
|