silver-ui 0.3.1 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-QGHFUOUB.cjs → chunk-2A3V6OR7.cjs} +7 -7
- package/dist/{chunk-QGHFUOUB.cjs.map → chunk-2A3V6OR7.cjs.map} +1 -1
- package/dist/{chunk-RVENUWRD.js → chunk-2LABTS4P.js} +7 -7
- package/dist/{chunk-RVENUWRD.js.map → chunk-2LABTS4P.js.map} +1 -1
- package/dist/{chunk-DIIE44GO.js → chunk-2N6FOSNM.js} +5 -5
- package/dist/{chunk-DIIE44GO.js.map → chunk-2N6FOSNM.js.map} +1 -1
- package/dist/{chunk-LUBVZVY3.js → chunk-2RKMG2TC.js} +7 -7
- package/dist/{chunk-LUBVZVY3.js.map → chunk-2RKMG2TC.js.map} +1 -1
- package/dist/{chunk-EMHLPPQZ.js → chunk-3CJC4QE6.js} +4 -4
- package/dist/chunk-3CJC4QE6.js.map +1 -0
- package/dist/{chunk-P3SMNZCT.js → chunk-3JPUXC5U.js} +3 -3
- package/dist/{chunk-P3SMNZCT.js.map → chunk-3JPUXC5U.js.map} +1 -1
- package/dist/{chunk-F3ZNRO6W.js → chunk-3OIUA2NY.js} +5 -5
- package/dist/{chunk-F3ZNRO6W.js.map → chunk-3OIUA2NY.js.map} +1 -1
- package/dist/{chunk-PZ63ZCEO.cjs → chunk-3ZV3EGGK.cjs} +17 -17
- package/dist/{chunk-PZ63ZCEO.cjs.map → chunk-3ZV3EGGK.cjs.map} +1 -1
- package/dist/{chunk-O5A47TA2.js → chunk-4H7X5FGX.js} +5 -5
- package/dist/{chunk-O5A47TA2.js.map → chunk-4H7X5FGX.js.map} +1 -1
- package/dist/{chunk-Q3OA23V5.js → chunk-52WQDDWQ.js} +7 -7
- package/dist/{chunk-Q3OA23V5.js.map → chunk-52WQDDWQ.js.map} +1 -1
- package/dist/{chunk-ZLATP3P5.cjs → chunk-5D2OR64D.cjs} +6 -6
- package/dist/{chunk-ZLATP3P5.cjs.map → chunk-5D2OR64D.cjs.map} +1 -1
- package/dist/{chunk-YAIEA2YE.cjs → chunk-5PX76QOL.cjs} +3 -3
- package/dist/{chunk-YAIEA2YE.cjs.map → chunk-5PX76QOL.cjs.map} +1 -1
- package/dist/{chunk-HM7IEGQ2.cjs → chunk-5YS43PSQ.cjs} +7 -7
- package/dist/chunk-5YS43PSQ.cjs.map +1 -0
- package/dist/{chunk-D2DOHX4W.js → chunk-6ONAGCCZ.js} +13 -6
- package/dist/chunk-6ONAGCCZ.js.map +1 -0
- package/dist/{chunk-DSB4Q3AS.js → chunk-6ULCJ3XZ.js} +4 -4
- package/dist/{chunk-DSB4Q3AS.js.map → chunk-6ULCJ3XZ.js.map} +1 -1
- package/dist/{chunk-GXRH5XQY.js → chunk-6XWXBXYE.js} +5 -5
- package/dist/{chunk-GXRH5XQY.js.map → chunk-6XWXBXYE.js.map} +1 -1
- package/dist/{chunk-EXYBQVZT.js → chunk-7BSFKG7N.js} +3 -3
- package/dist/{chunk-EXYBQVZT.js.map → chunk-7BSFKG7N.js.map} +1 -1
- package/dist/{chunk-7GN6YTSS.cjs → chunk-7CCXHH6Y.cjs} +7 -7
- package/dist/chunk-7CCXHH6Y.cjs.map +1 -0
- package/dist/{chunk-PJMV2HTO.cjs → chunk-7U7JMRVF.cjs} +18 -18
- package/dist/{chunk-PJMV2HTO.cjs.map → chunk-7U7JMRVF.cjs.map} +1 -1
- package/dist/{chunk-M3IKL2VG.js → chunk-AFI4V7LI.js} +6 -6
- package/dist/{chunk-M3IKL2VG.js.map → chunk-AFI4V7LI.js.map} +1 -1
- package/dist/{chunk-OSBVDRVD.cjs → chunk-AHVHLNHU.cjs} +8 -8
- package/dist/{chunk-OSBVDRVD.cjs.map → chunk-AHVHLNHU.cjs.map} +1 -1
- package/dist/{chunk-6USJ4LJJ.js → chunk-AJ6X62AI.js} +4 -4
- package/dist/{chunk-6USJ4LJJ.js.map → chunk-AJ6X62AI.js.map} +1 -1
- package/dist/{chunk-UKDGDMWN.js → chunk-AP7BDTTF.js} +4 -4
- package/dist/{chunk-UKDGDMWN.js.map → chunk-AP7BDTTF.js.map} +1 -1
- package/dist/{chunk-7U7RP6N2.cjs → chunk-AWDIKDX5.cjs} +10 -10
- package/dist/{chunk-7U7RP6N2.cjs.map → chunk-AWDIKDX5.cjs.map} +1 -1
- package/dist/{chunk-5AYGQJOW.js → chunk-BCCPNGUV.js} +4 -4
- package/dist/{chunk-5AYGQJOW.js.map → chunk-BCCPNGUV.js.map} +1 -1
- package/dist/{chunk-QRKRVCA3.cjs → chunk-BLRWA445.cjs} +25 -25
- package/dist/{chunk-QRKRVCA3.cjs.map → chunk-BLRWA445.cjs.map} +1 -1
- package/dist/{chunk-BA4A7C7U.js → chunk-BSAZRW6T.js} +8 -8
- package/dist/{chunk-BA4A7C7U.js.map → chunk-BSAZRW6T.js.map} +1 -1
- package/dist/{chunk-5TT4PGZO.cjs → chunk-BUESV4DR.cjs} +9 -9
- package/dist/{chunk-5TT4PGZO.cjs.map → chunk-BUESV4DR.cjs.map} +1 -1
- package/dist/{chunk-HPVXP3DG.cjs → chunk-BULJWVPU.cjs} +16 -16
- package/dist/{chunk-HPVXP3DG.cjs.map → chunk-BULJWVPU.cjs.map} +1 -1
- package/dist/{chunk-L7BOLGF2.cjs → chunk-C6EYCIKJ.cjs} +3 -3
- package/dist/{chunk-L7BOLGF2.cjs.map → chunk-C6EYCIKJ.cjs.map} +1 -1
- package/dist/{chunk-4H35H54I.cjs → chunk-C732WXKS.cjs} +12 -12
- package/dist/{chunk-4H35H54I.cjs.map → chunk-C732WXKS.cjs.map} +1 -1
- package/dist/{chunk-S4B2D427.js → chunk-CGYZ6QWY.js} +4 -4
- package/dist/{chunk-S4B2D427.js.map → chunk-CGYZ6QWY.js.map} +1 -1
- package/dist/{chunk-QCT4BPB6.cjs → chunk-CKTXDIH4.cjs} +39 -40
- package/dist/chunk-CKTXDIH4.cjs.map +1 -0
- package/dist/{chunk-PYW5UO2Z.js → chunk-D3LZQ5QS.js} +4 -4
- package/dist/chunk-D3LZQ5QS.js.map +1 -0
- package/dist/{chunk-D3SSMY73.cjs → chunk-DIRVAHOF.cjs} +6 -6
- package/dist/{chunk-D3SSMY73.cjs.map → chunk-DIRVAHOF.cjs.map} +1 -1
- package/dist/{chunk-ZD3NPHZ7.cjs → chunk-DP7VC4FW.cjs} +4 -4
- package/dist/{chunk-ZD3NPHZ7.cjs.map → chunk-DP7VC4FW.cjs.map} +1 -1
- package/dist/{chunk-NYQPIBOD.cjs → chunk-DVGLYE3G.cjs} +10 -10
- package/dist/{chunk-NYQPIBOD.cjs.map → chunk-DVGLYE3G.cjs.map} +1 -1
- package/dist/{chunk-ZWULWVN3.js → chunk-DWUEPOYH.js} +7 -7
- package/dist/{chunk-ZWULWVN3.js.map → chunk-DWUEPOYH.js.map} +1 -1
- package/dist/{chunk-UN35QV25.js → chunk-DXPQRAGI.js} +4 -4
- package/dist/{chunk-UN35QV25.js.map → chunk-DXPQRAGI.js.map} +1 -1
- package/dist/{chunk-3XDUR3IG.cjs → chunk-E2A3GJSN.cjs} +5 -5
- package/dist/{chunk-3XDUR3IG.cjs.map → chunk-E2A3GJSN.cjs.map} +1 -1
- package/dist/{chunk-OULO3YDQ.cjs → chunk-EALKX3ST.cjs} +7 -7
- package/dist/{chunk-OULO3YDQ.cjs.map → chunk-EALKX3ST.cjs.map} +1 -1
- package/dist/{chunk-VAK4JQYL.js → chunk-EBDODJ5X.js} +6 -6
- package/dist/{chunk-VAK4JQYL.js.map → chunk-EBDODJ5X.js.map} +1 -1
- package/dist/{chunk-U5GTHA44.cjs → chunk-FB245S6T.cjs} +11 -11
- package/dist/{chunk-U5GTHA44.cjs.map → chunk-FB245S6T.cjs.map} +1 -1
- package/dist/{chunk-RNB4BDEG.js → chunk-FDUO2HVX.js} +3 -3
- package/dist/{chunk-RNB4BDEG.js.map → chunk-FDUO2HVX.js.map} +1 -1
- package/dist/{chunk-6W3L6IJB.cjs → chunk-FDZQPWFZ.cjs} +11 -11
- package/dist/{chunk-6W3L6IJB.cjs.map → chunk-FDZQPWFZ.cjs.map} +1 -1
- package/dist/{chunk-3L6KAW7G.js → chunk-FMLIYHDP.js} +5 -5
- package/dist/{chunk-3L6KAW7G.js.map → chunk-FMLIYHDP.js.map} +1 -1
- package/dist/{chunk-XADTIY7J.cjs → chunk-FNOUX5T2.cjs} +5 -5
- package/dist/{chunk-XADTIY7J.cjs.map → chunk-FNOUX5T2.cjs.map} +1 -1
- package/dist/{chunk-LFRTNC7M.cjs → chunk-FNZOICR4.cjs} +7 -7
- package/dist/{chunk-LFRTNC7M.cjs.map → chunk-FNZOICR4.cjs.map} +1 -1
- package/dist/{chunk-IRSJHEYI.js → chunk-FP5E5BUM.js} +3 -3
- package/dist/{chunk-IRSJHEYI.js.map → chunk-FP5E5BUM.js.map} +1 -1
- package/dist/{chunk-ZVH3BLYO.js → chunk-G2U2W422.js} +6 -6
- package/dist/{chunk-ZVH3BLYO.js.map → chunk-G2U2W422.js.map} +1 -1
- package/dist/{chunk-W3KMDQKP.cjs → chunk-G2WW52GO.cjs} +12 -12
- package/dist/{chunk-W3KMDQKP.cjs.map → chunk-G2WW52GO.cjs.map} +1 -1
- package/dist/{chunk-U2U4FMFM.cjs → chunk-G3KKLGZU.cjs} +9 -9
- package/dist/{chunk-U2U4FMFM.cjs.map → chunk-G3KKLGZU.cjs.map} +1 -1
- package/dist/{chunk-IKF6VHA4.cjs → chunk-GC5VUTUR.cjs} +4 -4
- package/dist/{chunk-IKF6VHA4.cjs.map → chunk-GC5VUTUR.cjs.map} +1 -1
- package/dist/{chunk-QL3YSC3H.cjs → chunk-GL7PSN7H.cjs} +15 -15
- package/dist/{chunk-QL3YSC3H.cjs.map → chunk-GL7PSN7H.cjs.map} +1 -1
- package/dist/{chunk-WMXIUOOU.cjs → chunk-GYVWTH3U.cjs} +3 -3
- package/dist/{chunk-WMXIUOOU.cjs.map → chunk-GYVWTH3U.cjs.map} +1 -1
- package/dist/{chunk-UXDXE7Z6.cjs → chunk-H2CZ6IE5.cjs} +38 -36
- package/dist/chunk-H2CZ6IE5.cjs.map +1 -0
- package/dist/{chunk-MGVEX3RS.js → chunk-H7HQYBPH.js} +25 -26
- package/dist/chunk-H7HQYBPH.js.map +1 -0
- package/dist/{chunk-ZNUOFLCQ.js → chunk-HINS4GY6.js} +3 -3
- package/dist/chunk-HINS4GY6.js.map +1 -0
- package/dist/{chunk-EC2ALHNJ.js → chunk-HNZWPIJE.js} +8 -8
- package/dist/{chunk-EC2ALHNJ.js.map → chunk-HNZWPIJE.js.map} +1 -1
- package/dist/{chunk-3ZFEBOXD.cjs → chunk-IA5GII7N.cjs} +16 -16
- package/dist/chunk-IA5GII7N.cjs.map +1 -0
- package/dist/{chunk-EHCAF6D3.js → chunk-IAVZKGZS.js} +14 -3
- package/dist/chunk-IAVZKGZS.js.map +1 -0
- package/dist/{chunk-AJTJD5C6.js → chunk-ILEKDNP7.js} +6 -6
- package/dist/{chunk-AJTJD5C6.js.map → chunk-ILEKDNP7.js.map} +1 -1
- package/dist/{chunk-XSQOHNIF.js → chunk-J3DNWPXJ.js} +3 -3
- package/dist/{chunk-XSQOHNIF.js.map → chunk-J3DNWPXJ.js.map} +1 -1
- package/dist/{chunk-M3BF3BBJ.cjs → chunk-J4OEETYQ.cjs} +10 -10
- package/dist/{chunk-M3BF3BBJ.cjs.map → chunk-J4OEETYQ.cjs.map} +1 -1
- package/dist/{chunk-YSTESYUB.js → chunk-J5IRFGUP.js} +8 -8
- package/dist/chunk-J5IRFGUP.js.map +1 -0
- package/dist/{chunk-5D4LRSIV.js → chunk-JDAJ2HJQ.js} +6 -6
- package/dist/{chunk-5D4LRSIV.js.map → chunk-JDAJ2HJQ.js.map} +1 -1
- package/dist/{chunk-3DJ46WN4.js → chunk-JIVYPJKO.js} +6 -6
- package/dist/{chunk-3DJ46WN4.js.map → chunk-JIVYPJKO.js.map} +1 -1
- package/dist/{chunk-U2WVHZ24.cjs → chunk-JJ324PSZ.cjs} +6 -6
- package/dist/chunk-JJ324PSZ.cjs.map +1 -0
- package/dist/{chunk-EE2O457Z.cjs → chunk-JSINCF2R.cjs} +10 -10
- package/dist/{chunk-EE2O457Z.cjs.map → chunk-JSINCF2R.cjs.map} +1 -1
- package/dist/{chunk-X2GRBPCJ.cjs → chunk-JTFNNEWR.cjs} +7 -7
- package/dist/{chunk-X2GRBPCJ.cjs.map → chunk-JTFNNEWR.cjs.map} +1 -1
- package/dist/{chunk-YAYINZT2.cjs → chunk-JYVYCU22.cjs} +3 -3
- package/dist/{chunk-YAYINZT2.cjs.map → chunk-JYVYCU22.cjs.map} +1 -1
- package/dist/{chunk-PQRIV5XU.js → chunk-K3XHXWBW.js} +9 -9
- package/dist/{chunk-PQRIV5XU.js.map → chunk-K3XHXWBW.js.map} +1 -1
- package/dist/{chunk-65QAZWOG.cjs → chunk-K4ZJNQTX.cjs} +4 -4
- package/dist/{chunk-65QAZWOG.cjs.map → chunk-K4ZJNQTX.cjs.map} +1 -1
- package/dist/{chunk-CZM5FAWL.cjs → chunk-KDR5DCYL.cjs} +9 -9
- package/dist/{chunk-CZM5FAWL.cjs.map → chunk-KDR5DCYL.cjs.map} +1 -1
- package/dist/{chunk-GLJWAY4A.cjs → chunk-KXIILLQD.cjs} +10 -10
- package/dist/{chunk-GLJWAY4A.cjs.map → chunk-KXIILLQD.cjs.map} +1 -1
- package/dist/{chunk-Y4FH67QZ.js → chunk-L6VSBBPP.js} +7 -7
- package/dist/{chunk-Y4FH67QZ.js.map → chunk-L6VSBBPP.js.map} +1 -1
- package/dist/{chunk-O4RTJESR.js → chunk-LNT2IFOA.js} +4 -4
- package/dist/{chunk-O4RTJESR.js.map → chunk-LNT2IFOA.js.map} +1 -1
- package/dist/{chunk-MUUPZEZ5.cjs → chunk-LO5NZY7N.cjs} +5 -5
- package/dist/{chunk-MUUPZEZ5.cjs.map → chunk-LO5NZY7N.cjs.map} +1 -1
- package/dist/{chunk-CN2HJ7CP.js → chunk-LQIZSE3O.js} +8 -8
- package/dist/{chunk-CN2HJ7CP.js.map → chunk-LQIZSE3O.js.map} +1 -1
- package/dist/{chunk-5GNYP3PH.cjs → chunk-LUQVSNQL.cjs} +16 -9
- package/dist/chunk-LUQVSNQL.cjs.map +1 -0
- package/dist/{chunk-TF7IWMV2.js → chunk-LY6Z6A54.js} +8 -8
- package/dist/{chunk-TF7IWMV2.js.map → chunk-LY6Z6A54.js.map} +1 -1
- package/dist/{chunk-QEFE4QBL.cjs → chunk-M26XECB2.cjs} +14 -14
- package/dist/{chunk-QEFE4QBL.cjs.map → chunk-M26XECB2.cjs.map} +1 -1
- package/dist/{chunk-VVO7GIHG.cjs → chunk-M2MC3E27.cjs} +7 -7
- package/dist/{chunk-VVO7GIHG.cjs.map → chunk-M2MC3E27.cjs.map} +1 -1
- package/dist/{chunk-HVUYVPQL.cjs → chunk-MAYQGKKW.cjs} +4 -4
- package/dist/{chunk-HVUYVPQL.cjs.map → chunk-MAYQGKKW.cjs.map} +1 -1
- package/dist/{chunk-2IKWX66Q.js → chunk-MI5QU37D.js} +5 -5
- package/dist/{chunk-2IKWX66Q.js.map → chunk-MI5QU37D.js.map} +1 -1
- package/dist/{chunk-XUJZTD4E.js → chunk-NFABMGNH.js} +54 -45
- package/dist/chunk-NFABMGNH.js.map +1 -0
- package/dist/{chunk-4MRORQNN.js → chunk-NI55JEYL.js} +4 -4
- package/dist/{chunk-4MRORQNN.js.map → chunk-NI55JEYL.js.map} +1 -1
- package/dist/{chunk-6MOJEGDU.cjs → chunk-O2WICOUK.cjs} +5 -5
- package/dist/{chunk-6MOJEGDU.cjs.map → chunk-O2WICOUK.cjs.map} +1 -1
- package/dist/{chunk-LX64ENLC.cjs → chunk-OBWWRRL6.cjs} +43 -43
- package/dist/chunk-OBWWRRL6.cjs.map +1 -0
- package/dist/{chunk-NH7KH7QP.js → chunk-PIOMR4X2.js} +5 -5
- package/dist/{chunk-NH7KH7QP.js.map → chunk-PIOMR4X2.js.map} +1 -1
- package/dist/{chunk-75CPTIET.js → chunk-PIZMCOKL.js} +3 -3
- package/dist/{chunk-75CPTIET.js.map → chunk-PIZMCOKL.js.map} +1 -1
- package/dist/{chunk-L5YTMHDI.cjs → chunk-PQEFVHJZ.cjs} +10 -10
- package/dist/{chunk-L5YTMHDI.cjs.map → chunk-PQEFVHJZ.cjs.map} +1 -1
- package/dist/{chunk-I7KILUVL.cjs → chunk-QATCDVZ6.cjs} +12 -12
- package/dist/{chunk-I7KILUVL.cjs.map → chunk-QATCDVZ6.cjs.map} +1 -1
- package/dist/{chunk-BRB52QFV.cjs → chunk-QOKEU3DC.cjs} +15 -15
- package/dist/{chunk-BRB52QFV.cjs.map → chunk-QOKEU3DC.cjs.map} +1 -1
- package/dist/{chunk-76B2VLID.js → chunk-QRFDPG34.js} +5 -5
- package/dist/{chunk-76B2VLID.js.map → chunk-QRFDPG34.js.map} +1 -1
- package/dist/{chunk-3IBY374V.cjs → chunk-QVNDZZS6.cjs} +10 -10
- package/dist/{chunk-3IBY374V.cjs.map → chunk-QVNDZZS6.cjs.map} +1 -1
- package/dist/{chunk-EBQ3A4XO.js → chunk-QY6OMQW6.js} +5 -5
- package/dist/{chunk-EBQ3A4XO.js.map → chunk-QY6OMQW6.js.map} +1 -1
- package/dist/{chunk-XIFLSMGW.js → chunk-R6CMJMIJ.js} +3 -3
- package/dist/{chunk-XIFLSMGW.js.map → chunk-R6CMJMIJ.js.map} +1 -1
- package/dist/{chunk-ASJ5CBCR.js → chunk-RLOGQBFD.js} +6 -6
- package/dist/{chunk-ASJ5CBCR.js.map → chunk-RLOGQBFD.js.map} +1 -1
- package/dist/{chunk-S4LVSSJI.js → chunk-S7INL5NI.js} +6 -6
- package/dist/{chunk-S4LVSSJI.js.map → chunk-S7INL5NI.js.map} +1 -1
- package/dist/{chunk-HNROO7CR.js → chunk-SBOXHIES.js} +13 -13
- package/dist/{chunk-HNROO7CR.js.map → chunk-SBOXHIES.js.map} +1 -1
- package/dist/{chunk-KFDHP4WP.cjs → chunk-SBS7U7CN.cjs} +6 -6
- package/dist/{chunk-KFDHP4WP.cjs.map → chunk-SBS7U7CN.cjs.map} +1 -1
- package/dist/{chunk-WYE3VOFK.cjs → chunk-SCGXGVNN.cjs} +16 -16
- package/dist/{chunk-WYE3VOFK.cjs.map → chunk-SCGXGVNN.cjs.map} +1 -1
- package/dist/{chunk-54J6FRPG.js → chunk-SOCSUNIM.js} +9 -9
- package/dist/{chunk-54J6FRPG.js.map → chunk-SOCSUNIM.js.map} +1 -1
- package/dist/{chunk-BS55BG2U.cjs → chunk-SR5VVJ5Y.cjs} +7 -7
- package/dist/{chunk-BS55BG2U.cjs.map → chunk-SR5VVJ5Y.cjs.map} +1 -1
- package/dist/{chunk-YLGAJD6Q.js → chunk-SSAYBCAD.js} +4 -4
- package/dist/{chunk-YLGAJD6Q.js.map → chunk-SSAYBCAD.js.map} +1 -1
- package/dist/{chunk-24J3BUKL.js → chunk-SUH62Z64.js} +3 -3
- package/dist/{chunk-24J3BUKL.js.map → chunk-SUH62Z64.js.map} +1 -1
- package/dist/{chunk-PL6J55JB.cjs → chunk-TBOQTPRO.cjs} +9 -9
- package/dist/{chunk-PL6J55JB.cjs.map → chunk-TBOQTPRO.cjs.map} +1 -1
- package/dist/{chunk-YNTPHZFJ.js → chunk-TCTPR7YQ.js} +3 -3
- package/dist/{chunk-YNTPHZFJ.js.map → chunk-TCTPR7YQ.js.map} +1 -1
- package/dist/{chunk-M3RNFDA2.cjs → chunk-TF7XVTSP.cjs} +59 -50
- package/dist/chunk-TF7XVTSP.cjs.map +1 -0
- package/dist/{chunk-CRQXHA7N.js → chunk-TKTLWX2V.js} +7 -7
- package/dist/{chunk-CRQXHA7N.js.map → chunk-TKTLWX2V.js.map} +1 -1
- package/dist/{chunk-F3NATTQG.cjs → chunk-TPB53MHV.cjs} +14 -14
- package/dist/{chunk-F3NATTQG.cjs.map → chunk-TPB53MHV.cjs.map} +1 -1
- package/dist/{chunk-MSNRGNVY.cjs → chunk-TQA3BI7M.cjs} +7 -7
- package/dist/{chunk-MSNRGNVY.cjs.map → chunk-TQA3BI7M.cjs.map} +1 -1
- package/dist/{chunk-WO6FS4DV.js → chunk-U6NH54YD.js} +5 -5
- package/dist/{chunk-WO6FS4DV.js.map → chunk-U6NH54YD.js.map} +1 -1
- package/dist/{chunk-NUTB2K4G.js → chunk-U7ALNPFJ.js} +3 -3
- package/dist/{chunk-NUTB2K4G.js.map → chunk-U7ALNPFJ.js.map} +1 -1
- package/dist/{chunk-RINP34ZG.js → chunk-UKW2C5RN.js} +4 -4
- package/dist/{chunk-RINP34ZG.js.map → chunk-UKW2C5RN.js.map} +1 -1
- package/dist/{chunk-AMFFE5UJ.js → chunk-UUVLEOSD.js} +4 -4
- package/dist/{chunk-AMFFE5UJ.js.map → chunk-UUVLEOSD.js.map} +1 -1
- package/dist/{chunk-6NTDPZWP.js → chunk-VFGSNR35.js} +4 -4
- package/dist/{chunk-6NTDPZWP.js.map → chunk-VFGSNR35.js.map} +1 -1
- package/dist/{chunk-KRZ57O2J.cjs → chunk-VGHNBMEJ.cjs} +6 -6
- package/dist/{chunk-KRZ57O2J.cjs.map → chunk-VGHNBMEJ.cjs.map} +1 -1
- package/dist/{chunk-5BCLEOFF.cjs → chunk-VHKA25IV.cjs} +15 -15
- package/dist/{chunk-5BCLEOFF.cjs.map → chunk-VHKA25IV.cjs.map} +1 -1
- package/dist/{chunk-23NN5WRP.cjs → chunk-VK4O6W2K.cjs} +6 -6
- package/dist/{chunk-23NN5WRP.cjs.map → chunk-VK4O6W2K.cjs.map} +1 -1
- package/dist/{chunk-2VOB6LEI.js → chunk-VQ7U3ASC.js} +4 -4
- package/dist/{chunk-2VOB6LEI.js.map → chunk-VQ7U3ASC.js.map} +1 -1
- package/dist/{chunk-7MN4JDP7.js → chunk-VUCMGGU5.js} +14 -14
- package/dist/chunk-VUCMGGU5.js.map +1 -0
- package/dist/{chunk-IHM2M74J.js → chunk-W2Q4PQ6I.js} +3 -3
- package/dist/{chunk-IHM2M74J.js.map → chunk-W2Q4PQ6I.js.map} +1 -1
- package/dist/{chunk-UPQHFW47.js → chunk-W3C6QQF7.js} +5 -5
- package/dist/{chunk-UPQHFW47.js.map → chunk-W3C6QQF7.js.map} +1 -1
- package/dist/{chunk-P6RAOXJA.js → chunk-WBGFFP3G.js} +6 -6
- package/dist/{chunk-P6RAOXJA.js.map → chunk-WBGFFP3G.js.map} +1 -1
- package/dist/{chunk-CZC2K5GJ.js → chunk-WBQNPBXR.js} +5 -5
- package/dist/{chunk-CZC2K5GJ.js.map → chunk-WBQNPBXR.js.map} +1 -1
- package/dist/{chunk-3TXVDCF2.js → chunk-WY5BOT7O.js} +4 -4
- package/dist/{chunk-3TXVDCF2.js.map → chunk-WY5BOT7O.js.map} +1 -1
- package/dist/{chunk-CEU7BIL6.cjs → chunk-X574M2JB.cjs} +13 -13
- package/dist/{chunk-CEU7BIL6.cjs.map → chunk-X574M2JB.cjs.map} +1 -1
- package/dist/{chunk-7PNLMDAR.cjs → chunk-XLKXFJMU.cjs} +8 -8
- package/dist/{chunk-7PNLMDAR.cjs.map → chunk-XLKXFJMU.cjs.map} +1 -1
- package/dist/{chunk-W5G7ZDQ6.cjs → chunk-XLNRO3S6.cjs} +4 -4
- package/dist/{chunk-W5G7ZDQ6.cjs.map → chunk-XLNRO3S6.cjs.map} +1 -1
- package/dist/{chunk-A66NIFJE.cjs → chunk-XXBA3KSH.cjs} +5 -5
- package/dist/{chunk-A66NIFJE.cjs.map → chunk-XXBA3KSH.cjs.map} +1 -1
- package/dist/{chunk-OWBNRALR.js → chunk-YAWVGZRC.js} +6 -6
- package/dist/{chunk-OWBNRALR.js.map → chunk-YAWVGZRC.js.map} +1 -1
- package/dist/{chunk-JEIQ5GDK.cjs → chunk-YHBYVERE.cjs} +18 -18
- package/dist/{chunk-JEIQ5GDK.cjs.map → chunk-YHBYVERE.cjs.map} +1 -1
- package/dist/{chunk-CPOYENSZ.cjs → chunk-YO3MBGBP.cjs} +4 -4
- package/dist/{chunk-CPOYENSZ.cjs.map → chunk-YO3MBGBP.cjs.map} +1 -1
- package/dist/{chunk-EVKFA5FA.cjs → chunk-YVHWOKR7.cjs} +23 -23
- package/dist/{chunk-EVKFA5FA.cjs.map → chunk-YVHWOKR7.cjs.map} +1 -1
- package/dist/{chunk-66LRFIYK.cjs → chunk-YWGYN6YV.cjs} +9 -9
- package/dist/{chunk-66LRFIYK.cjs.map → chunk-YWGYN6YV.cjs.map} +1 -1
- package/dist/{chunk-BAPCHFNX.cjs → chunk-YY6KJO5Z.cjs} +12 -12
- package/dist/{chunk-BAPCHFNX.cjs.map → chunk-YY6KJO5Z.cjs.map} +1 -1
- package/dist/{chunk-UYBGXFYX.js → chunk-YYNWZRXZ.js} +20 -18
- package/dist/chunk-YYNWZRXZ.js.map +1 -0
- package/dist/{chunk-5QPM5LUS.cjs → chunk-Z6RT3WPE.cjs} +15 -4
- package/dist/chunk-Z6RT3WPE.cjs.map +1 -0
- package/dist/{chunk-VEUZ5DZR.js → chunk-ZAX2UJBC.js} +6 -6
- package/dist/{chunk-VEUZ5DZR.js.map → chunk-ZAX2UJBC.js.map} +1 -1
- package/dist/{chunk-LHP47U6H.js → chunk-ZEA2VYX4.js} +3 -3
- package/dist/{chunk-LHP47U6H.js.map → chunk-ZEA2VYX4.js.map} +1 -1
- package/dist/{chunk-QEX7V7TI.cjs → chunk-ZFBQ4R7M.cjs} +10 -10
- package/dist/{chunk-QEX7V7TI.cjs.map → chunk-ZFBQ4R7M.cjs.map} +1 -1
- package/dist/{chunk-AX6HC2YY.cjs → chunk-ZN7CULIL.cjs} +3 -3
- package/dist/{chunk-AX6HC2YY.cjs.map → chunk-ZN7CULIL.cjs.map} +1 -1
- package/dist/{chunk-FZCBTFHY.js → chunk-ZQUPAIBS.js} +4 -4
- package/dist/{chunk-FZCBTFHY.js.map → chunk-ZQUPAIBS.js.map} +1 -1
- package/dist/{chunk-VJBBMBRT.cjs → chunk-ZTWBG2XY.cjs} +7 -7
- package/dist/{chunk-VJBBMBRT.cjs.map → chunk-ZTWBG2XY.cjs.map} +1 -1
- package/dist/components/Accordion/index.cjs +6 -7
- package/dist/components/Accordion/index.js +3 -4
- package/dist/components/Alert/index.cjs +12 -13
- package/dist/components/Alert/index.js +11 -12
- package/dist/components/AlertDialog/index.cjs +15 -16
- package/dist/components/AlertDialog/index.js +13 -14
- package/dist/components/AppShell/index.cjs +20 -21
- package/dist/components/AppShell/index.js +17 -18
- package/dist/components/AspectRatio/index.cjs +3 -3
- package/dist/components/AspectRatio/index.js +2 -2
- package/dist/components/AutocompleteInput/AutocompleteInput.d.ts +3 -1
- package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
- package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts +3 -1
- package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
- package/dist/components/AutocompleteInput/index.cjs +20 -21
- package/dist/components/AutocompleteInput/index.d.ts +1 -1
- package/dist/components/AutocompleteInput/index.d.ts.map +1 -1
- package/dist/components/AutocompleteInput/index.js +15 -16
- package/dist/components/AutocompleteInput/types.d.ts +3 -3
- package/dist/components/AutocompleteInput/types.d.ts.map +1 -1
- package/dist/components/Avatar/index.cjs +6 -7
- package/dist/components/Avatar/index.js +3 -4
- package/dist/components/AvatarGroup/index.cjs +6 -7
- package/dist/components/AvatarGroup/index.js +4 -5
- package/dist/components/Badge/index.cjs +1 -1
- package/dist/components/Badge/index.js +1 -1
- package/dist/components/Blockquote/index.cjs +4 -5
- package/dist/components/Blockquote/index.js +3 -4
- package/dist/components/Breadcrumbs/index.cjs +10 -11
- package/dist/components/Breadcrumbs/index.js +7 -8
- package/dist/components/Button/index.cjs +11 -12
- package/dist/components/Button/index.js +10 -11
- package/dist/components/ButtonGroup/index.cjs +1 -1
- package/dist/components/ButtonGroup/index.js +1 -1
- package/dist/components/Calendar/index.cjs +12 -13
- package/dist/components/Calendar/index.js +11 -12
- package/dist/components/Card/index.cjs +1 -1
- package/dist/components/Card/index.js +1 -1
- package/dist/components/Center/index.cjs +1 -1
- package/dist/components/Center/index.js +1 -1
- package/dist/components/CheckboxInput/index.cjs +12 -13
- package/dist/components/CheckboxInput/index.js +11 -12
- package/dist/components/CodeBlock/index.cjs +13 -14
- package/dist/components/CodeBlock/index.js +12 -13
- package/dist/components/ContextMenu/index.cjs +17 -18
- package/dist/components/ContextMenu/index.js +15 -16
- package/dist/components/DateInput/index.cjs +16 -17
- package/dist/components/DateInput/index.js +15 -16
- package/dist/components/DateRangeInput/index.cjs +16 -17
- package/dist/components/DateRangeInput/index.js +15 -16
- package/dist/components/DateTimeInput/index.cjs +18 -19
- package/dist/components/DateTimeInput/index.js +17 -18
- package/dist/components/Dialog/index.cjs +5 -6
- package/dist/components/Dialog/index.js +3 -4
- package/dist/components/Divider/index.cjs +4 -5
- package/dist/components/Divider/index.js +3 -4
- package/dist/components/Drawer/index.cjs +4 -4
- package/dist/components/Drawer/index.js +2 -2
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuItem.recipe.d.ts +36 -0
- package/dist/components/DropdownMenu/DropdownMenuItem.recipe.d.ts.map +1 -0
- package/dist/components/DropdownMenu/index.cjs +18 -19
- package/dist/components/DropdownMenu/index.js +14 -15
- package/dist/components/EmptyState/index.cjs +7 -8
- package/dist/components/EmptyState/index.js +6 -7
- package/dist/components/Field/index.cjs +10 -11
- package/dist/components/Field/index.js +8 -9
- package/dist/components/FileInput/index.cjs +14 -15
- package/dist/components/FileInput/index.js +13 -14
- package/dist/components/HoverCard/index.cjs +5 -5
- package/dist/components/HoverCard/index.js +3 -3
- package/dist/components/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/components/Icon/index.cjs +1 -1
- package/dist/components/Icon/index.js +1 -1
- package/dist/components/InputGroup/index.cjs +13 -14
- package/dist/components/InputGroup/index.js +9 -10
- package/dist/components/Item/index.cjs +8 -9
- package/dist/components/Item/index.js +7 -8
- package/dist/components/Kbd/index.cjs +4 -5
- package/dist/components/Kbd/index.js +3 -4
- package/dist/components/Layout/index.cjs +16 -17
- package/dist/components/Layout/index.js +11 -12
- package/dist/components/Lightbox/index.cjs +13 -14
- package/dist/components/Lightbox/index.js +11 -12
- package/dist/components/Link/index.cjs +8 -9
- package/dist/components/Link/index.js +5 -6
- package/dist/components/List/index.cjs +11 -12
- package/dist/components/List/index.js +9 -10
- package/dist/components/MetadataList/index.cjs +7 -8
- package/dist/components/MetadataList/index.js +5 -6
- package/dist/components/MultiSelect/index.cjs +15 -16
- package/dist/components/MultiSelect/index.js +14 -15
- package/dist/components/NavIcon/index.cjs +3 -3
- package/dist/components/NavIcon/index.js +2 -2
- package/dist/components/NumberInput/index.cjs +15 -16
- package/dist/components/NumberInput/index.js +14 -15
- package/dist/components/Pagination/index.cjs +12 -13
- package/dist/components/Pagination/index.js +11 -12
- package/dist/components/PasswordInput/index.cjs +16 -17
- package/dist/components/PasswordInput/index.js +15 -16
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/index.cjs +13 -14
- package/dist/components/Popover/index.js +11 -12
- package/dist/components/Progress/index.cjs +5 -6
- package/dist/components/Progress/index.js +4 -5
- package/dist/components/RadioGroup/index.cjs +13 -14
- package/dist/components/RadioGroup/index.js +11 -12
- package/dist/components/Rating/index.cjs +5 -6
- package/dist/components/Rating/index.js +4 -5
- package/dist/components/Schedule/ListView.d.ts.map +1 -1
- package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
- package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
- package/dist/components/Schedule/index.cjs +26 -27
- package/dist/components/Schedule/index.js +15 -16
- package/dist/components/Schedule/shared.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/index.cjs +33 -34
- package/dist/components/SearchFilterInput/index.js +25 -26
- package/dist/components/SegmentedControl/index.cjs +5 -5
- package/dist/components/SegmentedControl/index.js +3 -3
- package/dist/components/Select/index.cjs +17 -18
- package/dist/components/Select/index.js +15 -16
- package/dist/components/SideNav/index.cjs +19 -20
- package/dist/components/SideNav/index.js +13 -14
- package/dist/components/Skeleton/index.cjs +1 -1
- package/dist/components/Skeleton/index.js +1 -1
- package/dist/components/Slider/index.cjs +10 -11
- package/dist/components/Slider/index.js +9 -10
- package/dist/components/Spinner/index.cjs +7 -8
- package/dist/components/Spinner/index.js +6 -7
- package/dist/components/SplitButton/index.cjs +16 -17
- package/dist/components/SplitButton/index.js +15 -16
- package/dist/components/Stack/index.cjs +1 -1
- package/dist/components/Stack/index.js +1 -1
- package/dist/components/Stepper/index.cjs +8 -9
- package/dist/components/Stepper/index.js +5 -6
- package/dist/components/Switch/index.cjs +9 -10
- package/dist/components/Switch/index.js +8 -9
- package/dist/components/Table/index.cjs +57 -58
- package/dist/components/Table/index.js +29 -30
- package/dist/components/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
- package/dist/components/Tabs/index.cjs +17 -18
- package/dist/components/Tabs/index.js +12 -13
- package/dist/components/Tag/index.cjs +8 -9
- package/dist/components/Tag/index.js +7 -8
- package/dist/components/TagsInput/TagsInput.d.ts +3 -1
- package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
- package/dist/components/TagsInput/index.cjs +17 -18
- package/dist/components/TagsInput/index.js +16 -17
- package/dist/components/Text/index.cjs +6 -6
- package/dist/components/Text/index.js +4 -4
- package/dist/components/TextArea/index.cjs +11 -12
- package/dist/components/TextArea/index.js +10 -11
- package/dist/components/TextInput/index.cjs +15 -16
- package/dist/components/TextInput/index.js +14 -15
- package/dist/components/Thumbnail/index.cjs +12 -13
- package/dist/components/Thumbnail/index.js +11 -12
- package/dist/components/TimeInput/index.cjs +14 -15
- package/dist/components/TimeInput/index.js +13 -14
- package/dist/components/Toast/index.cjs +14 -15
- package/dist/components/Toast/index.js +11 -12
- package/dist/components/ToggleButton/index.cjs +10 -11
- package/dist/components/ToggleButton/index.js +8 -9
- package/dist/components/Tooltip/index.cjs +5 -5
- package/dist/components/Tooltip/index.js +3 -3
- package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/components/TopNav/index.cjs +19 -20
- package/dist/components/TopNav/index.js +13 -14
- package/dist/components/TreeView/index.cjs +3 -3
- package/dist/components/TreeView/index.js +2 -2
- package/dist/index.cjs +243 -244
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +74 -75
- package/dist/index.js.map +1 -1
- package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
- package/dist/internal/useLayer.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-3ZFEBOXD.cjs.map +0 -1
- package/dist/chunk-5GNYP3PH.cjs.map +0 -1
- package/dist/chunk-5QPM5LUS.cjs.map +0 -1
- package/dist/chunk-6BK4LUK4.cjs +0 -17
- package/dist/chunk-6BK4LUK4.cjs.map +0 -1
- package/dist/chunk-7GN6YTSS.cjs.map +0 -1
- package/dist/chunk-7MN4JDP7.js.map +0 -1
- package/dist/chunk-D2DOHX4W.js.map +0 -1
- package/dist/chunk-EHCAF6D3.js.map +0 -1
- package/dist/chunk-EMHLPPQZ.js.map +0 -1
- package/dist/chunk-GUKZNXTB.js +0 -15
- package/dist/chunk-GUKZNXTB.js.map +0 -1
- package/dist/chunk-HM7IEGQ2.cjs.map +0 -1
- package/dist/chunk-LX64ENLC.cjs.map +0 -1
- package/dist/chunk-M3RNFDA2.cjs.map +0 -1
- package/dist/chunk-MGVEX3RS.js.map +0 -1
- package/dist/chunk-PYW5UO2Z.js.map +0 -1
- package/dist/chunk-QCT4BPB6.cjs.map +0 -1
- package/dist/chunk-U2WVHZ24.cjs.map +0 -1
- package/dist/chunk-UXDXE7Z6.cjs.map +0 -1
- package/dist/chunk-UYBGXFYX.js.map +0 -1
- package/dist/chunk-XUJZTD4E.js.map +0 -1
- package/dist/chunk-YSTESYUB.js.map +0 -1
- package/dist/chunk-ZNUOFLCQ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Item/Item.tsx"],"names":["css","useLinkComponent","useRel","isReactNode","jsx","cx","jsxs","Fragment","Text"],"mappings":"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","file":"chunk-NYQPIBOD.cjs","sourcesContent":["/* eslint-disable @eslint-react/static-components -- intentional polymorphism via as/link component props */\n\nimport type {\n AriaAttributes,\n CSSProperties,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useRel} from '../../internal/linkAccessibility';\nimport type {LinkComponent as LinkComponentType} from '../Link';\nimport {useLinkComponent} from '../Link';\nimport {Text} from '../Text';\n\nconst SELECTABLE_ROLES = new Set([\n 'option',\n 'tab',\n 'row',\n 'gridcell',\n 'treeitem',\n]);\n\nexport type ItemAlign = 'center' | 'start';\nexport type ItemElement = 'div' | 'li' | 'span';\n\nexport interface ItemProps {\n /**\n * Vertical alignment of the start and end content slots.\n * @default 'center'\n */\n align?: ItemAlign;\n /**\n * ARIA current indicator forwarded to the interactive element.\n */\n 'aria-current'?: AriaAttributes['aria-current'];\n /**\n * HTML element used for the root.\n * @default 'div'\n */\n as?: ItemElement;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text shown below the label.\n */\n description?: ReactNode;\n /**\n * Maximum number of description lines before truncation.\n */\n descriptionLines?: number;\n /**\n * Content rendered after the label and description.\n * Position controlled by `endContentPosition`.\n */\n endContent?: ReactNode;\n /**\n * Where to place `endContent` within the item.\n * `'end'` pushes it to the trailing edge; `'inline'` keeps it next to the label.\n * @default 'end'\n */\n endContentPosition?: 'end' | 'inline';\n /**\n * Link URL. When set, the content area renders as a link.\n */\n href?: string;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the item should show highlighted styling.\n * @default false\n */\n isHighlighted?: boolean;\n /**\n * Whether the item is selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Primary item label.\n */\n label: ReactNode;\n /**\n * Maximum number of label lines before truncation.\n */\n labelLines?: number;\n /**\n * Content rendered outside the interactive area, before it.\n */\n leadingContent?: ReactNode;\n /**\n * Custom link component used when href is set.\n */\n linkComponent?: LinkComponentType;\n /**\n * Click handler. When set without href, the content area renders as a\n * button. When set with href, also fires on link clicks.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Link relationship. `noopener noreferrer` are added for `_blank` targets.\n */\n rel?: string;\n /**\n * ARIA role applied to the root element. When set, click handling is attached\n * to the root so parent composite widgets can own keyboard behavior.\n */\n role?: string;\n /**\n * Leading visual content, such as an icon, avatar, or image.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Link target.\n */\n target?: string;\n /**\n * Content rendered outside the interactive area, after it.\n */\n trailingContent?: ReactNode;\n /**\n * Width of the root element.\n * @default 'full'\n */\n width?: 'full' | 'auto';\n}\n\nconst styles = {\n root: css({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n px: '2',\n py: '2',\n textAlign: 'start',\n borderRadius: 'md',\n }),\n widthFull: css({\n w: 'full',\n }),\n alignStart: css({\n alignItems: 'flex-start',\n }),\n interactive: css({\n cursor: 'pointer',\n transitionProperty: 'background-color',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n _hover: {bg: 'bg.subtle'},\n _active: {bg: 'bg.hover'},\n '&:has(:focus-visible)': {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n highlighted: css({\n bg: 'bg.subtle',\n }),\n selected: css({\n bg: 'bg.selected',\n }),\n disabled: css({\n cursor: 'not-allowed',\n pointerEvents: 'none',\n }),\n disabledContent: css({\n opacity: 0.5,\n }),\n interactiveContent: css({\n cursor: 'inherit',\n color: 'inherit',\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flex: 1,\n minW: 0,\n textAlign: 'start',\n textDecoration: 'none',\n }),\n content: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flex: 1,\n minW: 0,\n textAlign: 'start',\n }),\n textContent: css({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minW: 0,\n }),\n startContent: css({\n display: 'inline-flex',\n flexShrink: 0,\n }),\n endContent: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n marginInlineStart: 'auto',\n }),\n endContentInline: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n }),\n labelRow: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n }),\n trailingContent: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n }),\n} as const;\n\nfunction getMaxLines(\n explicitLines: number | undefined,\n content: ReactNode,\n): number {\n if (explicitLines != null) {\n return explicitLines;\n }\n\n return typeof content === 'string' ? 1 : 0;\n}\n\n/**\n * Shared start content, label, description, and end content row primitive.\n */\nexport function Item({\n align = 'center',\n 'aria-current': ariaCurrent,\n as: Component = 'div',\n className,\n 'data-testid': dataTestId,\n description,\n descriptionLines,\n endContent,\n endContentPosition = 'end',\n href,\n isDisabled = false,\n isHighlighted = false,\n isSelected = false,\n label,\n labelLines,\n leadingContent,\n linkComponent,\n onClick,\n ref,\n rel,\n role,\n startContent,\n style,\n target,\n trailingContent,\n width = 'full',\n}: ItemProps): React.JSX.Element {\n const LinkComponent = useLinkComponent(linkComponent);\n const linkRel = useRel({target, rel});\n const isInteractive = href != null || onClick != null;\n const hasParentRole = role != null;\n\n const inlineEndContent =\n isReactNode(endContent) && endContentPosition === 'inline' ? (\n <span\n className={cx(\n styles.endContentInline,\n isDisabled ? styles.disabledContent : undefined,\n )}>\n {endContent}\n </span>\n ) : null;\n\n const labelAndDescription = (\n <>\n {inlineEndContent != null ? (\n <span className={styles.labelRow}>\n <Text as=\"span\" maxLines={getMaxLines(labelLines, label)} type=\"body\">\n {label}\n </Text>\n {inlineEndContent}\n </span>\n ) : (\n <Text as=\"span\" maxLines={getMaxLines(labelLines, label)} type=\"body\">\n {label}\n </Text>\n )}\n {isReactNode(description) ? (\n <Text\n as=\"span\"\n maxLines={getMaxLines(descriptionLines, description)}\n type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </>\n );\n\n const handleContainerClick = (event: MouseEvent<HTMLElement>) => {\n if (isDisabled) {\n return;\n }\n\n const targetElement = event.target as HTMLElement;\n if (targetElement.closest('button, a, input, select, textarea')) {\n return;\n }\n\n onClick?.(event);\n };\n\n const innerSlots = (\n <>\n {isReactNode(startContent) ? (\n <span className={styles.startContent}>{startContent}</span>\n ) : null}\n <span className={styles.textContent}>{labelAndDescription}</span>\n {isReactNode(endContent) && endContentPosition !== 'inline' ? (\n <span\n className={cx(\n styles.endContent,\n isDisabled ? styles.disabledContent : undefined,\n )}>\n {endContent}\n </span>\n ) : null}\n </>\n );\n\n const content = hasParentRole ? (\n <span\n className={cx(\n styles.content,\n isDisabled ? styles.disabledContent : undefined,\n )}>\n {innerSlots}\n </span>\n ) : href != null ? (\n <LinkComponent\n aria-current={ariaCurrent ?? undefined}\n aria-disabled={isDisabled || undefined}\n className={cx(\n styles.interactiveContent,\n isDisabled ? styles.disabledContent : undefined,\n )}\n href={href}\n onClick={(e: MouseEvent<HTMLElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n }}\n ref={undefined}\n rel={linkRel}\n tabIndex={isDisabled ? -1 : undefined}\n target={target}\n to={LinkComponent === 'a' ? undefined : href}>\n {innerSlots}\n </LinkComponent>\n ) : onClick != null ? (\n <button\n aria-current={ariaCurrent ?? undefined}\n className={cx(\n styles.interactiveContent,\n isDisabled ? styles.disabledContent : undefined,\n )}\n disabled={isDisabled}\n onClick={onClick}\n type=\"button\">\n {innerSlots}\n </button>\n ) : (\n <span\n className={cx(\n styles.content,\n isDisabled ? styles.disabledContent : undefined,\n )}>\n {innerSlots}\n </span>\n );\n\n return (\n <Component\n aria-disabled={isDisabled || undefined}\n aria-selected={\n isSelected && role != null && SELECTABLE_ROLES.has(role)\n ? true\n : undefined\n }\n className={cx(\n styles.root,\n width === 'full' ? styles.widthFull : undefined,\n align === 'start' ? styles.alignStart : undefined,\n isInteractive ? styles.interactive : undefined,\n isHighlighted ? styles.highlighted : undefined,\n isSelected ? styles.selected : undefined,\n isDisabled && !hasParentRole ? styles.disabled : undefined,\n className,\n )}\n data-testid={dataTestId}\n onClick={\n hasParentRole\n ? onClick\n : isInteractive\n ? handleContainerClick\n : undefined\n }\n ref={ref as Ref<never>}\n role={role}\n style={style}>\n {leadingContent}\n {content}\n {isReactNode(trailingContent) ? (\n <span className={styles.trailingContent}>{trailingContent}</span>\n ) : null}\n </Component>\n );\n}\n\nItem.displayName = 'Item';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Item/Item.tsx"],"names":["css","useLinkComponent","useRel","isReactNode","jsx","cx","jsxs","Fragment","Text"],"mappings":";;;;;;;;;AAkBA,IAAM,gBAAA,uBAAuB,GAAA,CAAI;AAAA,EAC/B,QAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,UAAA;AAAA,EACA;AACF,CAAC,CAAA;AA2HD,IAAM,MAAA,GAAS;AAAA,EACb,MAAMA,qBAAA,CAAI;AAAA,IACR,QAAA,EAAU,UAAA;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,EAAA,EAAI,GAAA;AAAA,IACJ,EAAA,EAAI,GAAA;AAAA,IACJ,SAAA,EAAW,OAAA;AAAA,IACX,YAAA,EAAc;AAAA,GACf,CAAA;AAAA,EACD,WAAWA,qBAAA,CAAI;AAAA,IACb,CAAA,EAAG;AAAA,GACJ,CAAA;AAAA,EACD,YAAYA,qBAAA,CAAI;AAAA,IACd,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,aAAaA,qBAAA,CAAI;AAAA,IACf,MAAA,EAAQ,SAAA;AAAA,IACR,kBAAA,EAAoB,kBAAA;AAAA,IACpB,kBAAA,EAAoB,MAAA;AAAA,IACpB,wBAAA,EAA0B,SAAA;AAAA,IAC1B,MAAA,EAAQ,EAAC,EAAA,EAAI,WAAA,EAAW;AAAA,IACxB,OAAA,EAAS,EAAC,EAAA,EAAI,UAAA,EAAU;AAAA,IACxB,uBAAA,EAAyB;AAAA,MACvB,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,OAAA;AAAA,MACd,YAAA,EAAc,SAAA;AAAA,MACd,aAAA,EAAe;AAAA;AACjB,GACD,CAAA;AAAA,EACD,aAAaA,qBAAA,CAAI;AAAA,IACf,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,EAAA,EAAI;AAAA,GACL,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,MAAA,EAAQ,aAAA;AAAA,IACR,aAAA,EAAe;AAAA,GAChB,CAAA;AAAA,EACD,iBAAiBA,qBAAA,CAAI;AAAA,IACnB,OAAA,EAAS;AAAA,GACV,CAAA;AAAA,EACD,oBAAoBA,qBAAA,CAAI;AAAA,IACtB,MAAA,EAAQ,SAAA;AAAA,IACR,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,IAAA,EAAM,CAAA;AAAA,IACN,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW,OAAA;AAAA,IACX,cAAA,EAAgB;AAAA,GACjB,CAAA;AAAA,EACD,SAASA,qBAAA,CAAI;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,GAAA;AAAA,IACL,IAAA,EAAM,CAAA;AAAA,IACN,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACZ,CAAA;AAAA,EACD,aAAaA,qBAAA,CAAI;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,IAAA,EAAM;AAAA,GACP,CAAA;AAAA,EACD,cAAcA,qBAAA,CAAI;AAAA,IAChB,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,YAAYA,qBAAA,CAAI;AAAA,IACd,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,UAAA,EAAY,CAAA;AAAA,IACZ,iBAAA,EAAmB;AAAA,GACpB,CAAA;AAAA,EACD,kBAAkBA,qBAAA,CAAI;AAAA,IACpB,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,UAAUA,qBAAA,CAAI;AAAA,IACZ,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,iBAAiBA,qBAAA,CAAI;AAAA,IACnB,OAAA,EAAS,aAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACb;AACH,CAAA;AAEA,SAAS,WAAA,CACP,eACA,OAAA,EACQ;AACR,EAAA,IAAI,iBAAiB,IAAA,EAAM;AACzB,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,OAAO,OAAO,OAAA,KAAY,QAAA,GAAW,CAAA,GAAI,CAAA;AAC3C;AAKO,SAAS,IAAA,CAAK;AAAA,EACnB,KAAA,GAAQ,QAAA;AAAA,EACR,cAAA,EAAgB,WAAA;AAAA,EAChB,IAAI,SAAA,GAAY,KAAA;AAAA,EAChB,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,WAAA;AAAA,EACA,gBAAA;AAAA,EACA,UAAA;AAAA,EACA,kBAAA,GAAqB,KAAA;AAAA,EACrB,IAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,aAAA,GAAgB,KAAA;AAAA,EAChB,UAAA,GAAa,KAAA;AAAA,EACb,KAAA;AAAA,EACA,UAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AAAA,EACA,OAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,eAAA;AAAA,EACA,KAAA,GAAQ;AACV,CAAA,EAAiC;AAC/B,EAAA,MAAM,aAAA,GAAgBC,mCAAiB,aAAa,CAAA;AACpD,EAAA,MAAM,OAAA,GAAUC,wBAAA,CAAO,EAAC,MAAA,EAAQ,KAAI,CAAA;AACpC,EAAA,MAAM,aAAA,GAAgB,IAAA,IAAQ,IAAA,IAAQ,OAAA,IAAW,IAAA;AACjD,EAAA,MAAM,gBAAgB,IAAA,IAAQ,IAAA;AAE9B,EAAA,MAAM,gBAAA,GACJC,6BAAA,CAAY,UAAU,CAAA,IAAK,uBAAuB,QAAA,mBAChDC,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,oBAAA;AAAA,QACT,MAAA,CAAO,gBAAA;AAAA,QACP,UAAA,GAAa,OAAO,eAAA,GAAkB;AAAA,OACxC;AAAA,MACC,QAAA,EAAA;AAAA;AAAA,GACH,GACE,IAAA;AAEN,EAAA,MAAM,sCACJC,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,gBAAA,IAAoB,IAAA,mBACnBD,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,OAAO,QAAA,EACtB,QAAA,EAAA;AAAA,sBAAAF,cAAA,CAACI,sBAAA,EAAA,EAAK,EAAA,EAAG,MAAA,EAAO,QAAA,EAAU,WAAA,CAAY,YAAY,KAAK,CAAA,EAAG,IAAA,EAAK,MAAA,EAC5D,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,MACC;AAAA,KAAA,EACH,CAAA,mBAEAJ,cAAA,CAACI,sBAAA,EAAA,EAAK,EAAA,EAAG,MAAA,EAAO,QAAA,EAAU,WAAA,CAAY,UAAA,EAAY,KAAK,CAAA,EAAG,IAAA,EAAK,MAAA,EAC5D,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,IAEDL,6BAAA,CAAY,WAAW,CAAA,mBACtBC,cAAA;AAAA,MAACI,sBAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAG,MAAA;AAAA,QACH,QAAA,EAAU,WAAA,CAAY,gBAAA,EAAkB,WAAW,CAAA;AAAA,QACnD,IAAA,EAAK,YAAA;AAAA,QACJ,QAAA,EAAA;AAAA;AAAA,KACH,GACE;AAAA,GAAA,EACN,CAAA;AAGF,EAAA,MAAM,oBAAA,GAAuB,CAAC,KAAA,KAAmC;AAC/D,IAAA,IAAI,UAAA,EAAY;AACd,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,gBAAgB,KAAA,CAAM,MAAA;AAC5B,IAAA,IAAI,aAAA,CAAc,OAAA,CAAQ,oCAAoC,CAAA,EAAG;AAC/D,MAAA;AAAA,IACF;AAEA,IAAA,OAAA,GAAU,KAAK,CAAA;AAAA,EACjB,CAAA;AAEA,EAAA,MAAM,6BACJF,eAAA,CAAAC,mBAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAAJ,6BAAA,CAAY,YAAY,oBACvBC,cAAA,CAAC,MAAA,EAAA,EAAK,WAAW,MAAA,CAAO,YAAA,EAAe,wBAAa,CAAA,GAClD,IAAA;AAAA,oBACJA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,MAAA,CAAO,aAAc,QAAA,EAAA,mBAAA,EAAoB,CAAA;AAAA,IACzDD,6BAAA,CAAY,UAAU,CAAA,IAAK,kBAAA,KAAuB,QAAA,mBACjDC,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWC,oBAAA;AAAA,UACT,MAAA,CAAO,UAAA;AAAA,UACP,UAAA,GAAa,OAAO,eAAA,GAAkB;AAAA,SACxC;AAAA,QACC,QAAA,EAAA;AAAA;AAAA,KACH,GACE;AAAA,GAAA,EACN,CAAA;AAGF,EAAA,MAAM,UAAU,aAAA,mBACdD,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,oBAAA;AAAA,QACT,MAAA,CAAO,OAAA;AAAA,QACP,UAAA,GAAa,OAAO,eAAA,GAAkB;AAAA,OACxC;AAAA,MACC,QAAA,EAAA;AAAA;AAAA,GACH,GACE,QAAQ,IAAA,mBACVD,cAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,gBAAc,WAAA,IAAe,MAAA;AAAA,MAC7B,iBAAe,UAAA,IAAc,MAAA;AAAA,MAC7B,SAAA,EAAWC,oBAAA;AAAA,QACT,MAAA,CAAO,kBAAA;AAAA,QACP,UAAA,GAAa,OAAO,eAAA,GAAkB;AAAA,OACxC;AAAA,MACA,IAAA;AAAA,MACA,OAAA,EAAS,CAAC,CAAA,KAA+B;AACvC,QAAA,IAAI,UAAA,EAAY;AACd,UAAA,CAAA,CAAE,cAAA,EAAe;AACjB,UAAA;AAAA,QACF;AACA,QAAA,OAAA,GAAU,CAAC,CAAA;AAAA,MACb,CAAA;AAAA,MACA,GAAA,EAAK,MAAA;AAAA,MACL,GAAA,EAAK,OAAA;AAAA,MACL,QAAA,EAAU,aAAa,EAAA,GAAK,MAAA;AAAA,MAC5B,MAAA;AAAA,MACA,EAAA,EAAI,aAAA,KAAkB,GAAA,GAAM,MAAA,GAAY,IAAA;AAAA,MACvC,QAAA,EAAA;AAAA;AAAA,GACH,GACE,WAAW,IAAA,mBACbD,cAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,gBAAc,WAAA,IAAe,MAAA;AAAA,MAC7B,SAAA,EAAWC,oBAAA;AAAA,QACT,MAAA,CAAO,kBAAA;AAAA,QACP,UAAA,GAAa,OAAO,eAAA,GAAkB;AAAA,OACxC;AAAA,MACA,QAAA,EAAU,UAAA;AAAA,MACV,OAAA;AAAA,MACA,IAAA,EAAK,QAAA;AAAA,MACJ,QAAA,EAAA;AAAA;AAAA,GACH,mBAEAD,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,oBAAA;AAAA,QACT,MAAA,CAAO,OAAA;AAAA,QACP,UAAA,GAAa,OAAO,eAAA,GAAkB;AAAA,OACxC;AAAA,MACC,QAAA,EAAA;AAAA;AAAA,GACH;AAGF,EAAA,uBACEC,eAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,iBAAe,UAAA,IAAc,MAAA;AAAA,MAC7B,eAAA,EACE,cAAc,IAAA,IAAQ,IAAA,IAAQ,iBAAiB,GAAA,CAAI,IAAI,IACnD,IAAA,GACA,MAAA;AAAA,MAEN,SAAA,EAAWD,oBAAA;AAAA,QACT,MAAA,CAAO,IAAA;AAAA,QACP,KAAA,KAAU,MAAA,GAAS,MAAA,CAAO,SAAA,GAAY,MAAA;AAAA,QACtC,KAAA,KAAU,OAAA,GAAU,MAAA,CAAO,UAAA,GAAa,MAAA;AAAA,QACxC,aAAA,GAAgB,OAAO,WAAA,GAAc,MAAA;AAAA,QACrC,aAAA,GAAgB,OAAO,WAAA,GAAc,MAAA;AAAA,QACrC,UAAA,GAAa,OAAO,QAAA,GAAW,MAAA;AAAA,QAC/B,UAAA,IAAc,CAAC,aAAA,GAAgB,MAAA,CAAO,QAAA,GAAW,MAAA;AAAA,QACjD;AAAA,OACF;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,OAAA,EACE,aAAA,GACI,OAAA,GACA,aAAA,GACE,oBAAA,GACA,MAAA;AAAA,MAER,GAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACC,QAAA,EAAA;AAAA,QAAA,cAAA;AAAA,QACA,OAAA;AAAA,QACAF,6BAAA,CAAY,eAAe,CAAA,mBAC1BC,cAAA,CAAC,UAAK,SAAA,EAAW,MAAA,CAAO,eAAA,EAAkB,QAAA,EAAA,eAAA,EAAgB,CAAA,GACxD;AAAA;AAAA;AAAA,GACN;AAEJ;AAEA,IAAA,CAAK,WAAA,GAAc,MAAA","file":"chunk-DVGLYE3G.cjs","sourcesContent":["/* eslint-disable @eslint-react/static-components -- intentional polymorphism via as/link component props */\n\nimport type {\n AriaAttributes,\n CSSProperties,\n MouseEvent,\n MouseEventHandler,\n ReactNode,\n Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useRel} from '../../internal/linkAccessibility';\nimport type {LinkComponent as LinkComponentType} from '../Link';\nimport {useLinkComponent} from '../Link';\nimport {Text} from '../Text';\n\nconst SELECTABLE_ROLES = new Set([\n 'option',\n 'tab',\n 'row',\n 'gridcell',\n 'treeitem',\n]);\n\nexport type ItemAlign = 'center' | 'start';\nexport type ItemElement = 'div' | 'li' | 'span';\n\nexport interface ItemProps {\n /**\n * Vertical alignment of the start and end content slots.\n * @default 'center'\n */\n align?: ItemAlign;\n /**\n * ARIA current indicator forwarded to the interactive element.\n */\n 'aria-current'?: AriaAttributes['aria-current'];\n /**\n * HTML element used for the root.\n * @default 'div'\n */\n as?: ItemElement;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text shown below the label.\n */\n description?: ReactNode;\n /**\n * Maximum number of description lines before truncation.\n */\n descriptionLines?: number;\n /**\n * Content rendered after the label and description.\n * Position controlled by `endContentPosition`.\n */\n endContent?: ReactNode;\n /**\n * Where to place `endContent` within the item.\n * `'end'` pushes it to the trailing edge; `'inline'` keeps it next to the label.\n * @default 'end'\n */\n endContentPosition?: 'end' | 'inline';\n /**\n * Link URL. When set, the content area renders as a link.\n */\n href?: string;\n /**\n * Whether the item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the item should show highlighted styling.\n * @default false\n */\n isHighlighted?: boolean;\n /**\n * Whether the item is selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Primary item label.\n */\n label: ReactNode;\n /**\n * Maximum number of label lines before truncation.\n */\n labelLines?: number;\n /**\n * Content rendered outside the interactive area, before it.\n */\n leadingContent?: ReactNode;\n /**\n * Custom link component used when href is set.\n */\n linkComponent?: LinkComponentType;\n /**\n * Click handler. When set without href, the content area renders as a\n * button. When set with href, also fires on link clicks.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Link relationship. `noopener noreferrer` are added for `_blank` targets.\n */\n rel?: string;\n /**\n * ARIA role applied to the root element. When set, click handling is attached\n * to the root so parent composite widgets can own keyboard behavior.\n */\n role?: string;\n /**\n * Leading visual content, such as an icon, avatar, or image.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Link target.\n */\n target?: string;\n /**\n * Content rendered outside the interactive area, after it.\n */\n trailingContent?: ReactNode;\n /**\n * Width of the root element.\n * @default 'full'\n */\n width?: 'full' | 'auto';\n}\n\nconst styles = {\n root: css({\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n px: '2',\n py: '2',\n textAlign: 'start',\n borderRadius: 'md',\n }),\n widthFull: css({\n w: 'full',\n }),\n alignStart: css({\n alignItems: 'flex-start',\n }),\n interactive: css({\n cursor: 'pointer',\n transitionProperty: 'background-color',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n _hover: {bg: 'bg.subtle'},\n _active: {bg: 'bg.hover'},\n '&:has(:focus-visible)': {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n highlighted: css({\n bg: 'bg.subtle',\n }),\n selected: css({\n bg: 'bg.selected',\n }),\n disabled: css({\n cursor: 'not-allowed',\n pointerEvents: 'none',\n }),\n disabledContent: css({\n opacity: 0.5,\n }),\n interactiveContent: css({\n cursor: 'inherit',\n color: 'inherit',\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flex: 1,\n minW: 0,\n textAlign: 'start',\n textDecoration: 'none',\n }),\n content: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flex: 1,\n minW: 0,\n textAlign: 'start',\n }),\n textContent: css({\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minW: 0,\n }),\n startContent: css({\n display: 'inline-flex',\n flexShrink: 0,\n }),\n endContent: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n marginInlineStart: 'auto',\n }),\n endContentInline: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n }),\n labelRow: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n }),\n trailingContent: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n }),\n} as const;\n\nfunction getMaxLines(\n explicitLines: number | undefined,\n content: ReactNode,\n): number {\n if (explicitLines != null) {\n return explicitLines;\n }\n\n return typeof content === 'string' ? 1 : 0;\n}\n\n/**\n * Shared start content, label, description, and end content row primitive.\n */\nexport function Item({\n align = 'center',\n 'aria-current': ariaCurrent,\n as: Component = 'div',\n className,\n 'data-testid': dataTestId,\n description,\n descriptionLines,\n endContent,\n endContentPosition = 'end',\n href,\n isDisabled = false,\n isHighlighted = false,\n isSelected = false,\n label,\n labelLines,\n leadingContent,\n linkComponent,\n onClick,\n ref,\n rel,\n role,\n startContent,\n style,\n target,\n trailingContent,\n width = 'full',\n}: ItemProps): React.JSX.Element {\n const LinkComponent = useLinkComponent(linkComponent);\n const linkRel = useRel({target, rel});\n const isInteractive = href != null || onClick != null;\n const hasParentRole = role != null;\n\n const inlineEndContent =\n isReactNode(endContent) && endContentPosition === 'inline' ? (\n <span\n className={cx(\n styles.endContentInline,\n isDisabled ? styles.disabledContent : undefined,\n )}>\n {endContent}\n </span>\n ) : null;\n\n const labelAndDescription = (\n <>\n {inlineEndContent != null ? (\n <span className={styles.labelRow}>\n <Text as=\"span\" maxLines={getMaxLines(labelLines, label)} type=\"body\">\n {label}\n </Text>\n {inlineEndContent}\n </span>\n ) : (\n <Text as=\"span\" maxLines={getMaxLines(labelLines, label)} type=\"body\">\n {label}\n </Text>\n )}\n {isReactNode(description) ? (\n <Text\n as=\"span\"\n maxLines={getMaxLines(descriptionLines, description)}\n type=\"supporting\">\n {description}\n </Text>\n ) : null}\n </>\n );\n\n const handleContainerClick = (event: MouseEvent<HTMLElement>) => {\n if (isDisabled) {\n return;\n }\n\n const targetElement = event.target as HTMLElement;\n if (targetElement.closest('button, a, input, select, textarea')) {\n return;\n }\n\n onClick?.(event);\n };\n\n const innerSlots = (\n <>\n {isReactNode(startContent) ? (\n <span className={styles.startContent}>{startContent}</span>\n ) : null}\n <span className={styles.textContent}>{labelAndDescription}</span>\n {isReactNode(endContent) && endContentPosition !== 'inline' ? (\n <span\n className={cx(\n styles.endContent,\n isDisabled ? styles.disabledContent : undefined,\n )}>\n {endContent}\n </span>\n ) : null}\n </>\n );\n\n const content = hasParentRole ? (\n <span\n className={cx(\n styles.content,\n isDisabled ? styles.disabledContent : undefined,\n )}>\n {innerSlots}\n </span>\n ) : href != null ? (\n <LinkComponent\n aria-current={ariaCurrent ?? undefined}\n aria-disabled={isDisabled || undefined}\n className={cx(\n styles.interactiveContent,\n isDisabled ? styles.disabledContent : undefined,\n )}\n href={href}\n onClick={(e: MouseEvent<HTMLElement>) => {\n if (isDisabled) {\n e.preventDefault();\n return;\n }\n onClick?.(e);\n }}\n ref={undefined}\n rel={linkRel}\n tabIndex={isDisabled ? -1 : undefined}\n target={target}\n to={LinkComponent === 'a' ? undefined : href}>\n {innerSlots}\n </LinkComponent>\n ) : onClick != null ? (\n <button\n aria-current={ariaCurrent ?? undefined}\n className={cx(\n styles.interactiveContent,\n isDisabled ? styles.disabledContent : undefined,\n )}\n disabled={isDisabled}\n onClick={onClick}\n type=\"button\">\n {innerSlots}\n </button>\n ) : (\n <span\n className={cx(\n styles.content,\n isDisabled ? styles.disabledContent : undefined,\n )}>\n {innerSlots}\n </span>\n );\n\n return (\n <Component\n aria-disabled={isDisabled || undefined}\n aria-selected={\n isSelected && role != null && SELECTABLE_ROLES.has(role)\n ? true\n : undefined\n }\n className={cx(\n styles.root,\n width === 'full' ? styles.widthFull : undefined,\n align === 'start' ? styles.alignStart : undefined,\n isInteractive ? styles.interactive : undefined,\n isHighlighted ? styles.highlighted : undefined,\n isSelected ? styles.selected : undefined,\n isDisabled && !hasParentRole ? styles.disabled : undefined,\n className,\n )}\n data-testid={dataTestId}\n onClick={\n hasParentRole\n ? onClick\n : isInteractive\n ? handleContainerClick\n : undefined\n }\n ref={ref as Ref<never>}\n role={role}\n style={style}>\n {leadingContent}\n {content}\n {isReactNode(trailingContent) ? (\n <span className={styles.trailingContent}>{trailingContent}</span>\n ) : null}\n </Component>\n );\n}\n\nItem.displayName = 'Item';\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { useInputGroup } from './chunk-
|
|
1
|
+
import { useInputGroup } from './chunk-FP5E5BUM.js';
|
|
2
2
|
import { inputStyles, inputRecipe } from './chunk-3M23WX6K.js';
|
|
3
|
-
import { getNecessity, Field } from './chunk-
|
|
3
|
+
import { getNecessity, Field } from './chunk-RLOGQBFD.js';
|
|
4
4
|
import { getStatusMessageID, getDescribedBy, getStatusIcon } from './chunk-WOIWI2UO.js';
|
|
5
|
-
import { Button } from './chunk-
|
|
6
|
-
import { Spinner } from './chunk-
|
|
5
|
+
import { Button } from './chunk-2LABTS4P.js';
|
|
6
|
+
import { Spinner } from './chunk-6ULCJ3XZ.js';
|
|
7
7
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
8
8
|
import { Icon } from './chunk-7T3SWOY7.js';
|
|
9
|
-
import { cx } from './chunk-PPNETWIP.js';
|
|
10
9
|
import { css } from './chunk-OD4DHHZH.js';
|
|
10
|
+
import { cx } from './chunk-PPNETWIP.js';
|
|
11
11
|
import { X } from 'lucide-react';
|
|
12
12
|
import { useId, useState, useMemo } from 'react';
|
|
13
13
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -208,5 +208,5 @@ function NumberInput({
|
|
|
208
208
|
NumberInput.displayName = "NumberInput";
|
|
209
209
|
|
|
210
210
|
export { NumberInput };
|
|
211
|
-
//# sourceMappingURL=chunk-
|
|
212
|
-
//# sourceMappingURL=chunk-
|
|
211
|
+
//# sourceMappingURL=chunk-DWUEPOYH.js.map
|
|
212
|
+
//# sourceMappingURL=chunk-DWUEPOYH.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/NumberInput/NumberInput.tsx"],"names":[],"mappings":"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","file":"chunk-ZWULWVN3.js","sourcesContent":["import {X} from 'lucide-react';\nimport {\n useId,\n useMemo,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {Button} from '../Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport {inputRecipe, inputStyles} from '../Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {useInputGroup} from '../InputGroup';\nimport {Spinner} from '../Spinner';\n\ntype NumberInputBaseProps = {\n /**\n * HTML autocomplete attribute value.\n */\n autoComplete?: string;\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the input, before the status icon.\n */\n endContent?: ReactNode;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to restrict input to integer values only.\n * @default false\n */\n isIntegerOnly?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon rendered beside the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum allowed value.\n */\n max?: number | null;\n /**\n * Minimum allowed value.\n */\n min?: number | null;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called when Enter is pressed.\n */\n onEnter?: () => void;\n /**\n * Called when the input receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Keyboard event handler for the input.\n */\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Icon shown before the input.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Step increment for the number input.\n */\n step?: number | null;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Unit label displayed after the input value.\n */\n units?: string | null;\n /**\n * Controlled numeric value.\n */\n value: number | null;\n} & FieldNecessity;\n\ntype NumberInputNonClearableProps = NumberInputBaseProps & {\n /**\n * Whether to show a clear button.\n */\n hasClear?: false;\n /**\n * Called when the numeric value changes.\n */\n onChange: (value: number) => void;\n};\n\ntype NumberInputClearableProps = NumberInputBaseProps & {\n /**\n * Whether to show a clear button.\n */\n hasClear: true;\n /**\n * Called when the numeric value changes or is cleared.\n */\n onChange: (value: number | null) => void;\n};\n\nexport type NumberInputProps =\n | NumberInputClearableProps\n | NumberInputNonClearableProps;\n\nconst styles = {\n units: css({\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n }),\n} as const;\n\nfunction parseNumberInput(\n input: string,\n options: {isIntegerOnly: boolean},\n): number | null {\n const trimmed = input.trim();\n if (trimmed === '' || trimmed === '-') {\n return null;\n }\n const number = Number(trimmed);\n if (!Number.isFinite(number)) {\n return null;\n }\n if (options.isIntegerOnly && !Number.isInteger(number)) {\n return null;\n }\n return number;\n}\n\nfunction clampValue(\n value: number,\n min?: number | null,\n max?: number | null,\n): number {\n let clamped = value;\n if (min != null && clamped < min) {\n clamped = min;\n }\n if (max != null && clamped > max) {\n clamped = max;\n }\n return clamped;\n}\n\n/**\n * Numeric input field with optional min/max bounds and step control.\n */\nexport function NumberInput({\n label,\n value,\n onChange,\n size: sizeProp = 'md',\n description,\n endContent,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isIntegerOnly = false,\n isLoading = false,\n hasClear,\n hasAutoFocus = false,\n htmlName,\n autoComplete,\n min,\n max,\n step,\n units,\n status,\n labelIcon,\n labelTooltip,\n startIcon,\n placeholder,\n onFocus,\n onBlur,\n onEnter,\n onKeyDown,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: NumberInputProps): React.JSX.Element {\n const inputId = useId();\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const inputGroup = useInputGroup();\n const effectiveDisabled = isDisabled || inputGroup?.isDisabled === true;\n const size = inputGroup?.size ?? sizeProp;\n const effectiveStatusType = status?.type ?? inputGroup?.statusType;\n const [pendingInput, setPendingInput] = useState<string | null>(null);\n const displayValue = useMemo(() => {\n if (pendingInput != null) {\n return pendingInput;\n }\n return value == null ? '' : String(value);\n }, [pendingInput, value]);\n\n const necessity = getNecessity(isOptional, isRequired);\n\n const inputWrapper = (\n <div\n className={cx(\n inputRecipe({\n size,\n status: effectiveStatusType,\n isDisabled: effectiveDisabled,\n }),\n inputGroup != null ? className : undefined,\n )}\n style={inputGroup != null ? style : undefined}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <input\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-label={inputGroup != null ? label : undefined}\n aria-required={isRequired ?? undefined}\n autoComplete={autoComplete}\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={inputStyles.control}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={effectiveDisabled}\n id={inputId}\n max={max ?? undefined}\n min={min ?? undefined}\n name={htmlName}\n onBlur={event => {\n if (pendingInput != null) {\n const parsed = parseNumberInput(pendingInput, {isIntegerOnly});\n if (parsed != null) {\n const clamped = clampValue(parsed, min, max);\n if (clamped !== value) {\n onChange(clamped);\n }\n }\n setPendingInput(null);\n }\n onBlur?.(event);\n }}\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = event.target.value;\n setPendingInput(nextValue);\n const parsed = parseNumberInput(nextValue, {isIntegerOnly});\n if (parsed != null) {\n const clamped = clampValue(parsed, min, max);\n if (clamped !== value) {\n onChange(clamped);\n }\n }\n }}\n onFocus={onFocus}\n onKeyDown={event => {\n if (event.key === 'Enter' && !event.nativeEvent.isComposing) {\n onEnter?.();\n }\n onKeyDown?.(event);\n }}\n placeholder={placeholder}\n ref={ref}\n required={isRequired ?? undefined}\n step={step ?? undefined}\n type=\"number\"\n value={displayValue}\n />\n {units != null ? <span className={styles.units}>{units}</span> : null}\n {hasClear === true && value != null && !effectiveDisabled ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={() => onChange(null)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {endContent}\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n );\n\n if (inputGroup != null) {\n return inputWrapper;\n }\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n {inputWrapper}\n </Field>\n );\n}\n\nNumberInput.displayName = 'NumberInput';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/NumberInput/NumberInput.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;AAwLA,IAAM,MAAA,GAAS;AAAA,EACb,OAAO,GAAA,CAAI;AAAA,IACT,KAAA,EAAO,UAAA;AAAA,IACP,UAAA,EAAY,MAAA;AAAA,IACZ,QAAA,EAAU;AAAA,GACX;AACH,CAAA;AAEA,SAAS,gBAAA,CACP,OACA,OAAA,EACe;AACf,EAAA,MAAM,OAAA,GAAU,MAAM,IAAA,EAAK;AAC3B,EAAA,IAAI,OAAA,KAAY,EAAA,IAAM,OAAA,KAAY,GAAA,EAAK;AACrC,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,MAAM,MAAA,GAAS,OAAO,OAAO,CAAA;AAC7B,EAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,MAAM,CAAA,EAAG;AAC5B,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,IAAI,QAAQ,aAAA,IAAiB,CAAC,MAAA,CAAO,SAAA,CAAU,MAAM,CAAA,EAAG;AACtD,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT;AAEA,SAAS,UAAA,CACP,KAAA,EACA,GAAA,EACA,GAAA,EACQ;AACR,EAAA,IAAI,OAAA,GAAU,KAAA;AACd,EAAA,IAAI,GAAA,IAAO,IAAA,IAAQ,OAAA,GAAU,GAAA,EAAK;AAChC,IAAA,OAAA,GAAU,GAAA;AAAA,EACZ;AACA,EAAA,IAAI,GAAA,IAAO,IAAA,IAAQ,OAAA,GAAU,GAAA,EAAK;AAChC,IAAA,OAAA,GAAU,GAAA;AAAA,EACZ;AACA,EAAA,OAAO,OAAA;AACT;AAKO,SAAS,WAAA,CAAY;AAAA,EAC1B,KAAA;AAAA,EACA,KAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAM,QAAA,GAAW,IAAA;AAAA,EACjB,WAAA;AAAA,EACA,UAAA;AAAA,EACA,aAAA,GAAgB,KAAA;AAAA,EAChB,UAAA;AAAA,EACA,UAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,aAAA,GAAgB,KAAA;AAAA,EAChB,SAAA,GAAY,KAAA;AAAA,EACZ,QAAA;AAAA,EACA,YAAA,GAAe,KAAA;AAAA,EACf,QAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA;AAAA,EACA,KAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,YAAA;AAAA,EACA,SAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,KAAA;AAAA,EACA;AACF,CAAA,EAAwC;AACtC,EAAA,MAAM,UAAU,KAAA,EAAM;AACtB,EAAA,MAAM,gBAAgB,WAAA,CAAY,WAAW,CAAA,GACzC,CAAA,EAAG,OAAO,CAAA,YAAA,CAAA,GACV,MAAA;AACJ,EAAA,MAAM,eAAA,GAAkB,kBAAA,CAAmB,OAAA,EAAS,MAAM,CAAA;AAC1D,EAAA,MAAM,WAAA,GAAc,cAAA,CAAe,aAAA,EAAe,eAAe,CAAA;AACjE,EAAA,MAAM,aAAa,aAAA,EAAc;AACjC,EAAA,MAAM,iBAAA,GAAoB,UAAA,IAAc,UAAA,EAAY,UAAA,KAAe,IAAA;AACnE,EAAA,MAAM,IAAA,GAAO,YAAY,IAAA,IAAQ,QAAA;AACjC,EAAA,MAAM,mBAAA,GAAsB,MAAA,EAAQ,IAAA,IAAQ,UAAA,EAAY,UAAA;AACxD,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,SAAwB,IAAI,CAAA;AACpE,EAAA,MAAM,YAAA,GAAe,QAAQ,MAAM;AACjC,IAAA,IAAI,gBAAgB,IAAA,EAAM;AACxB,MAAA,OAAO,YAAA;AAAA,IACT;AACA,IAAA,OAAO,KAAA,IAAS,IAAA,GAAO,EAAA,GAAK,MAAA,CAAO,KAAK,CAAA;AAAA,EAC1C,CAAA,EAAG,CAAC,YAAA,EAAc,KAAK,CAAC,CAAA;AAExB,EAAA,MAAM,SAAA,GAAY,YAAA,CAAa,UAAA,EAAY,UAAU,CAAA;AAErD,EAAA,MAAM,YAAA,mBACJ,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA;AAAA,QACT,WAAA,CAAY;AAAA,UACV,IAAA;AAAA,UACA,MAAA,EAAQ,mBAAA;AAAA,UACR,UAAA,EAAY;AAAA,SACb,CAAA;AAAA,QACD,UAAA,IAAc,OAAO,SAAA,GAAY;AAAA,OACnC;AAAA,MACA,KAAA,EAAO,UAAA,IAAc,IAAA,GAAO,KAAA,GAAQ,MAAA;AAAA,MACnC,QAAA,EAAA;AAAA,QAAA,SAAA,IAAa,IAAA,mBACZ,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,YAAY,QAAA,EAC3B,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,KAAA,EAAM,aAAY,IAAA,EAAM,SAAA,EAAW,IAAA,EAAK,IAAA,EAAK,GACrD,CAAA,GACE,IAAA;AAAA,wBACJ,GAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,aAAW,SAAA,IAAa,MAAA;AAAA,YACxB,kBAAA,EAAkB,WAAA;AAAA,YAClB,cAAA,EAAc,MAAA,EAAQ,IAAA,KAAS,OAAA,IAAW,MAAA;AAAA,YAC1C,YAAA,EAAY,UAAA,IAAc,IAAA,GAAO,KAAA,GAAQ,MAAA;AAAA,YACzC,iBAAe,UAAA,IAAc,MAAA;AAAA,YAC7B,YAAA;AAAA,YAEA,SAAA,EAAW,YAAA;AAAA,YACX,WAAW,WAAA,CAAY,OAAA;AAAA,YACvB,kBAAgB,YAAA,IAAgB,MAAA;AAAA,YAChC,aAAA,EAAa,UAAA;AAAA,YACb,QAAA,EAAU,iBAAA;AAAA,YACV,EAAA,EAAI,OAAA;AAAA,YACJ,KAAK,GAAA,IAAO,MAAA;AAAA,YACZ,KAAK,GAAA,IAAO,MAAA;AAAA,YACZ,IAAA,EAAM,QAAA;AAAA,YACN,QAAQ,CAAA,KAAA,KAAS;AACf,cAAA,IAAI,gBAAgB,IAAA,EAAM;AACxB,gBAAA,MAAM,MAAA,GAAS,gBAAA,CAAiB,YAAA,EAAc,EAAC,eAAc,CAAA;AAC7D,gBAAA,IAAI,UAAU,IAAA,EAAM;AAClB,kBAAA,MAAM,OAAA,GAAU,UAAA,CAAW,MAAA,EAAQ,GAAA,EAAK,GAAG,CAAA;AAC3C,kBAAA,IAAI,YAAY,KAAA,EAAO;AACrB,oBAAA,QAAA,CAAS,OAAO,CAAA;AAAA,kBAClB;AAAA,gBACF;AACA,gBAAA,eAAA,CAAgB,IAAI,CAAA;AAAA,cACtB;AACA,cAAA,MAAA,GAAS,KAAK,CAAA;AAAA,YAChB,CAAA;AAAA,YACA,QAAA,EAAU,CAAC,KAAA,KAAyC;AAClD,cAAA,MAAM,SAAA,GAAY,MAAM,MAAA,CAAO,KAAA;AAC/B,cAAA,eAAA,CAAgB,SAAS,CAAA;AACzB,cAAA,MAAM,MAAA,GAAS,gBAAA,CAAiB,SAAA,EAAW,EAAC,eAAc,CAAA;AAC1D,cAAA,IAAI,UAAU,IAAA,EAAM;AAClB,gBAAA,MAAM,OAAA,GAAU,UAAA,CAAW,MAAA,EAAQ,GAAA,EAAK,GAAG,CAAA;AAC3C,gBAAA,IAAI,YAAY,KAAA,EAAO;AACrB,kBAAA,QAAA,CAAS,OAAO,CAAA;AAAA,gBAClB;AAAA,cACF;AAAA,YACF,CAAA;AAAA,YACA,OAAA;AAAA,YACA,WAAW,CAAA,KAAA,KAAS;AAClB,cAAA,IAAI,MAAM,GAAA,KAAQ,OAAA,IAAW,CAAC,KAAA,CAAM,YAAY,WAAA,EAAa;AAC3D,gBAAA,OAAA,IAAU;AAAA,cACZ;AACA,cAAA,SAAA,GAAY,KAAK,CAAA;AAAA,YACnB,CAAA;AAAA,YACA,WAAA;AAAA,YACA,GAAA;AAAA,YACA,UAAU,UAAA,IAAc,MAAA;AAAA,YACxB,MAAM,IAAA,IAAQ,MAAA;AAAA,YACd,IAAA,EAAK,QAAA;AAAA,YACL,KAAA,EAAO;AAAA;AAAA,SACT;AAAA,QACC,KAAA,IAAS,uBAAO,GAAA,CAAC,MAAA,EAAA,EAAK,WAAW,MAAA,CAAO,KAAA,EAAQ,iBAAM,CAAA,GAAU,IAAA;AAAA,QAChE,QAAA,KAAa,IAAA,IAAQ,KAAA,IAAS,IAAA,IAAQ,CAAC,iBAAA,mBACtC,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,IAAA,EAAM,CAAA;AAAA,YACN,UAAA,EAAU,IAAA;AAAA,YACV,KAAA,EAAO,SAAS,KAAK,CAAA,CAAA;AAAA,YACrB,OAAA,EAAS,MAAM,QAAA,CAAS,IAAI,CAAA;AAAA,YAC5B,IAAA,EAAK,IAAA;AAAA,YACL,OAAA,EAAQ;AAAA;AAAA,SACV,GACE,IAAA;AAAA,QACH,UAAA;AAAA,QACA,SAAA,mBAAY,GAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAK,MAAK,CAAA,GAAK,IAAA;AAAA,QACpC,MAAA,IAAU,IAAA,mBACT,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,WAAA,CAAY,QAAA,EAC1B,QAAA,EAAA,aAAA,CAAc,MAAA,CAAO,IAAI,CAAA,EAC5B,CAAA,GACE;AAAA;AAAA;AAAA,GACN;AAGF,EAAA,IAAI,cAAc,IAAA,EAAM;AACtB,IAAA,OAAO,YAAA;AAAA,EACT;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,WAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACC,GAAG,SAAA;AAAA,MACJ,KAAA;AAAA,MACA,SAAA;AAAA,MACA,YAAA;AAAA,MACA,MAAA,EACE,UAAU,IAAA,GAAO,MAAA,GAAY,EAAC,GAAG,MAAA,EAAQ,WAAW,eAAA,EAAe;AAAA,MAErE,KAAA;AAAA,MACC,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-DWUEPOYH.js","sourcesContent":["import {X} from 'lucide-react';\nimport {\n useId,\n useMemo,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {Button} from '../Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport {inputRecipe, inputStyles} from '../Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {useInputGroup} from '../InputGroup';\nimport {Spinner} from '../Spinner';\n\ntype NumberInputBaseProps = {\n /**\n * HTML autocomplete attribute value.\n */\n autoComplete?: string;\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the input, before the status icon.\n */\n endContent?: ReactNode;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to restrict input to integer values only.\n * @default false\n */\n isIntegerOnly?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon rendered beside the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum allowed value.\n */\n max?: number | null;\n /**\n * Minimum allowed value.\n */\n min?: number | null;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called when Enter is pressed.\n */\n onEnter?: () => void;\n /**\n * Called when the input receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Keyboard event handler for the input.\n */\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Icon shown before the input.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Step increment for the number input.\n */\n step?: number | null;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Unit label displayed after the input value.\n */\n units?: string | null;\n /**\n * Controlled numeric value.\n */\n value: number | null;\n} & FieldNecessity;\n\ntype NumberInputNonClearableProps = NumberInputBaseProps & {\n /**\n * Whether to show a clear button.\n */\n hasClear?: false;\n /**\n * Called when the numeric value changes.\n */\n onChange: (value: number) => void;\n};\n\ntype NumberInputClearableProps = NumberInputBaseProps & {\n /**\n * Whether to show a clear button.\n */\n hasClear: true;\n /**\n * Called when the numeric value changes or is cleared.\n */\n onChange: (value: number | null) => void;\n};\n\nexport type NumberInputProps =\n | NumberInputClearableProps\n | NumberInputNonClearableProps;\n\nconst styles = {\n units: css({\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n }),\n} as const;\n\nfunction parseNumberInput(\n input: string,\n options: {isIntegerOnly: boolean},\n): number | null {\n const trimmed = input.trim();\n if (trimmed === '' || trimmed === '-') {\n return null;\n }\n const number = Number(trimmed);\n if (!Number.isFinite(number)) {\n return null;\n }\n if (options.isIntegerOnly && !Number.isInteger(number)) {\n return null;\n }\n return number;\n}\n\nfunction clampValue(\n value: number,\n min?: number | null,\n max?: number | null,\n): number {\n let clamped = value;\n if (min != null && clamped < min) {\n clamped = min;\n }\n if (max != null && clamped > max) {\n clamped = max;\n }\n return clamped;\n}\n\n/**\n * Numeric input field with optional min/max bounds and step control.\n */\nexport function NumberInput({\n label,\n value,\n onChange,\n size: sizeProp = 'md',\n description,\n endContent,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isIntegerOnly = false,\n isLoading = false,\n hasClear,\n hasAutoFocus = false,\n htmlName,\n autoComplete,\n min,\n max,\n step,\n units,\n status,\n labelIcon,\n labelTooltip,\n startIcon,\n placeholder,\n onFocus,\n onBlur,\n onEnter,\n onKeyDown,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: NumberInputProps): React.JSX.Element {\n const inputId = useId();\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const inputGroup = useInputGroup();\n const effectiveDisabled = isDisabled || inputGroup?.isDisabled === true;\n const size = inputGroup?.size ?? sizeProp;\n const effectiveStatusType = status?.type ?? inputGroup?.statusType;\n const [pendingInput, setPendingInput] = useState<string | null>(null);\n const displayValue = useMemo(() => {\n if (pendingInput != null) {\n return pendingInput;\n }\n return value == null ? '' : String(value);\n }, [pendingInput, value]);\n\n const necessity = getNecessity(isOptional, isRequired);\n\n const inputWrapper = (\n <div\n className={cx(\n inputRecipe({\n size,\n status: effectiveStatusType,\n isDisabled: effectiveDisabled,\n }),\n inputGroup != null ? className : undefined,\n )}\n style={inputGroup != null ? style : undefined}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <input\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-label={inputGroup != null ? label : undefined}\n aria-required={isRequired ?? undefined}\n autoComplete={autoComplete}\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={inputStyles.control}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={effectiveDisabled}\n id={inputId}\n max={max ?? undefined}\n min={min ?? undefined}\n name={htmlName}\n onBlur={event => {\n if (pendingInput != null) {\n const parsed = parseNumberInput(pendingInput, {isIntegerOnly});\n if (parsed != null) {\n const clamped = clampValue(parsed, min, max);\n if (clamped !== value) {\n onChange(clamped);\n }\n }\n setPendingInput(null);\n }\n onBlur?.(event);\n }}\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = event.target.value;\n setPendingInput(nextValue);\n const parsed = parseNumberInput(nextValue, {isIntegerOnly});\n if (parsed != null) {\n const clamped = clampValue(parsed, min, max);\n if (clamped !== value) {\n onChange(clamped);\n }\n }\n }}\n onFocus={onFocus}\n onKeyDown={event => {\n if (event.key === 'Enter' && !event.nativeEvent.isComposing) {\n onEnter?.();\n }\n onKeyDown?.(event);\n }}\n placeholder={placeholder}\n ref={ref}\n required={isRequired ?? undefined}\n step={step ?? undefined}\n type=\"number\"\n value={displayValue}\n />\n {units != null ? <span className={styles.units}>{units}</span> : null}\n {hasClear === true && value != null && !effectiveDisabled ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={() => onChange(null)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {endContent}\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n );\n\n if (inputGroup != null) {\n return inputWrapper;\n }\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n {inputWrapper}\n </Field>\n );\n}\n\nNumberInput.displayName = 'NumberInput';\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Heading, Text } from './chunk-
|
|
1
|
+
import { Heading, Text } from './chunk-QRFDPG34.js';
|
|
2
2
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
3
|
-
import { sva } from './chunk-
|
|
3
|
+
import { sva } from './chunk-IAVZKGZS.js';
|
|
4
4
|
import { cx } from './chunk-PPNETWIP.js';
|
|
5
5
|
import { useId } from 'react';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -106,5 +106,5 @@ function EmptyState({
|
|
|
106
106
|
EmptyState.displayName = "EmptyState";
|
|
107
107
|
|
|
108
108
|
export { EmptyState };
|
|
109
|
-
//# sourceMappingURL=chunk-
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
109
|
+
//# sourceMappingURL=chunk-DXPQRAGI.js.map
|
|
110
|
+
//# sourceMappingURL=chunk-DXPQRAGI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/EmptyState/EmptyState.recipe.ts","../src/components/EmptyState/EmptyState.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/EmptyState/EmptyState.recipe.ts","../src/components/EmptyState/EmptyState.tsx"],"names":[],"mappings":"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","file":"chunk-DXPQRAGI.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const emptyStateRecipe = sva({\n slots: ['root', 'illustration', 'text', 'actions'],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n gap: '4',\n w: 'full',\n px: '6',\n py: '8',\n },\n illustration: {\n display: 'inline-flex',\n color: 'fg.muted',\n w: '16',\n h: '16',\n '& > svg': {\n w: 'full',\n h: 'full',\n },\n },\n text: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '1',\n maxW: '96',\n },\n actions: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexWrap: 'wrap',\n gap: '2',\n mt: '1',\n },\n },\n variants: {\n isCompact: {\n true: {\n root: {\n gap: '2',\n px: '4',\n py: '4',\n },\n illustration: {\n w: '12',\n h: '12',\n },\n actions: {\n mt: '0',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isCompact: false,\n },\n});\n\nexport type EmptyStateVariants = RecipeVariantProps<typeof emptyStateRecipe>;\n","import {useId, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {Heading, type HeadingLevel, Text} from '../Text';\nimport {emptyStateRecipe} from './EmptyState.recipe';\n\nexport interface EmptyStateProps {\n /**\n * Action controls rendered below the text.\n */\n actions?: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text.\n */\n description?: string;\n /**\n * Semantic heading level for the title.\n * @default 3\n */\n headingLevel?: HeadingLevel;\n /**\n * Decorative illustration or large icon rendered above the title.\n */\n illustration?: ReactNode;\n /**\n * Whether to use tighter spacing for constrained areas.\n * @default false\n */\n isCompact?: boolean;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Primary empty-state message.\n */\n title: string;\n}\n\n/**\n * A placeholder for an empty data or content area.\n */\nexport function EmptyState({\n actions,\n className,\n 'data-testid': dataTestId,\n description,\n headingLevel = 3,\n illustration,\n isCompact = false,\n ref,\n style,\n title,\n}: EmptyStateProps): React.JSX.Element {\n const headingId = useId();\n const classes = emptyStateRecipe({isCompact});\n\n return (\n <div\n aria-labelledby={headingId}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"region\"\n style={style}>\n {isReactNode(illustration) ? (\n <div aria-hidden=\"true\" className={classes.illustration}>\n {illustration}\n </div>\n ) : null}\n <div className={classes.text}>\n <Heading id={headingId} level={headingLevel}>\n {title}\n </Heading>\n {description != null ? (\n <Text as=\"p\" color=\"secondary\">\n {description}\n </Text>\n ) : null}\n </div>\n {isReactNode(actions) ? (\n <div className={classes.actions}>{actions}</div>\n ) : null}\n </div>\n );\n}\n\nEmptyState.displayName = 'EmptyState';\n"]}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
4
4
|
var chunk4TIAKZ4Q_cjs = require('./chunk-4TIAKZ4Q.cjs');
|
|
5
|
-
var
|
|
6
|
-
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
5
|
+
var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
|
|
7
6
|
var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
|
|
7
|
+
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
8
8
|
var lucideReact = require('lucide-react');
|
|
9
9
|
var react = require('react');
|
|
10
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -18,7 +18,7 @@ function useAvatarGroup() {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
// src/components/Avatar/Avatar.recipe.ts
|
|
21
|
-
var avatarRecipe =
|
|
21
|
+
var avatarRecipe = chunkZ6RT3WPE_cjs.sva({
|
|
22
22
|
slots: ["root", "content", "image", "fallback", "status"],
|
|
23
23
|
base: {
|
|
24
24
|
root: {
|
|
@@ -309,5 +309,5 @@ exports.AvatarGroupContext = AvatarGroupContext;
|
|
|
309
309
|
exports.AvatarStatusDot = AvatarStatusDot;
|
|
310
310
|
exports.resolveAvatarSize = resolveAvatarSize;
|
|
311
311
|
exports.useAvatarGroup = useAvatarGroup;
|
|
312
|
-
//# sourceMappingURL=chunk-
|
|
313
|
-
//# sourceMappingURL=chunk-
|
|
312
|
+
//# sourceMappingURL=chunk-E2A3GJSN.cjs.map
|
|
313
|
+
//# sourceMappingURL=chunk-E2A3GJSN.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/AvatarGroup/AvatarGroupContext.ts","../src/components/Avatar/Avatar.recipe.ts","../src/components/Avatar/AvatarSizeContext.ts","../src/components/Avatar/Avatar.tsx","../src/components/Avatar/AvatarStatusDot.tsx"],"names":["createContext","use","sva","useMemo","jsx","jsxs","cx","Icon","User","isReactNode","useState","css"],"mappings":"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","file":"chunk-3XDUR3IG.cjs","sourcesContent":["import {createContext, use} from 'react';\nimport type {AvatarSize} from '../Avatar';\n\nexport interface AvatarGroupContextValue {\n numericSize: number;\n overlap: number;\n size: AvatarSize;\n}\n\nexport const AvatarGroupContext = createContext<AvatarGroupContextValue | null>(\n null,\n);\nAvatarGroupContext.displayName = 'AvatarGroupContext';\n\nexport function useAvatarGroup(): AvatarGroupContextValue | null {\n return use(AvatarGroupContext);\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const avatarRecipe = sva({\n slots: ['root', 'content', 'image', 'fallback', 'status'],\n base: {\n root: {\n position: 'relative',\n display: 'inline-flex',\n flexShrink: 0,\n verticalAlign: 'middle',\n borderRadius: 'full',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n overflow: 'hidden',\n userSelect: 'none',\n bg: 'bg.subtle',\n color: 'fg.muted',\n },\n image: {\n w: '100%',\n h: '100%',\n objectFit: 'cover',\n },\n fallback: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '100%',\n h: '100%',\n bg: 'bg.subtle',\n color: 'fg.muted',\n fontFamily: 'body',\n fontWeight: 'medium',\n textTransform: 'uppercase',\n },\n status: {\n position: 'absolute',\n },\n },\n variants: {\n isGrouped: {\n true: {\n root: {\n borderRadius: 'full',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n borderColor: 'bg',\n bg: 'bg',\n boxSizing: 'content-box',\n '&:not(:first-child)': {\n marginInlineStart: 'var(--avatar-group-overlap)',\n },\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isGrouped: false,\n },\n});\n\nexport type AvatarVariants = RecipeVariantProps<typeof avatarRecipe>;\n","import {createContext, use} from 'react';\n\nconst DEFAULT_AVATAR_SIZE = 36;\n\nexport const AvatarSizeContext = createContext<number>(DEFAULT_AVATAR_SIZE);\nAvatarSizeContext.displayName = 'AvatarSizeContext';\n\nexport function useAvatarSize(): number {\n return use(AvatarSizeContext);\n}\n","import {User} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useMemo, useState} from 'react';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useAvatarGroup} from '../AvatarGroup/AvatarGroupContext';\nimport {Icon} from '../Icon';\nimport {avatarRecipe} from './Avatar.recipe';\nimport {AvatarSizeContext} from './AvatarSizeContext';\n\nconst CIRCLE_EDGE_OFFSET_RATIO = (1 - 1 / Math.SQRT2) / 2;\nconst INITIALS_FONT_SIZE_RATIO = 0.4;\n\nexport type AvatarNamedSize = 'tiny' | 'xsmall' | 'small' | 'medium' | 'large';\n\nexport type AvatarNumericSize =\n | 16\n | 20\n | 24\n | 32\n | 36\n | 40\n | 48\n | 60\n | 64\n | 72\n | 96\n | 128\n | 144\n | 180;\n\nexport type AvatarSize = AvatarNamedSize | AvatarNumericSize;\n\n/**\n * Resolve an Avatar size token to its pixel size.\n */\nexport function resolveAvatarSize(size: AvatarSize): number {\n if (typeof size === 'number') {\n return size;\n }\n\n switch (size) {\n case 'tiny':\n return 20;\n case 'xsmall':\n return 24;\n case 'small':\n return 36;\n case 'medium':\n return 48;\n case 'large':\n return 128;\n }\n}\n\n/**\n * Displays a user profile image, initials, or a fallback icon.\n */\nexport interface AvatarProps {\n /**\n * Accessible text for the avatar image. Defaults to `name`, then \"Avatar\".\n */\n alt?: string;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Image URL to use if `src` fails to load.\n */\n fallbackSrc?: string;\n /**\n * User name used as fallback accessible text and initials.\n */\n name?: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Avatar size. Named sizes map to the same pixel values as the XDS source.\n * Default is `small`.\n */\n size?: AvatarSize;\n /**\n * Primary image URL.\n */\n src?: string;\n /**\n * Corner content, usually an AvatarStatusDot.\n */\n status?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nfunction getInitials(name: string): string {\n const words = name.trim().split(/\\s+/).filter(Boolean);\n\n if (words.length === 0) {\n return '';\n }\n\n if (words.length === 1) {\n return words[0].charAt(0).toUpperCase();\n }\n\n return `${words[0].charAt(0)}${words[words.length - 1].charAt(\n 0,\n )}`.toUpperCase();\n}\n\nexport function Avatar({\n alt,\n className,\n 'data-testid': dataTestId,\n fallbackSrc,\n name,\n ref,\n size = 'small',\n src,\n style,\n status,\n}: AvatarProps): React.JSX.Element {\n const avatarGroup = useAvatarGroup();\n const resolvedSize = avatarGroup?.size ?? size;\n const numericSize = useMemo(\n () => resolveAvatarSize(resolvedSize),\n [resolvedSize],\n );\n const classes = avatarRecipe({isGrouped: avatarGroup != null});\n const initials = name != null ? getInitials(name) : '';\n const showInitials = initials !== '';\n const accessibleName = alt ?? (showInitials ? name : undefined) ?? 'Avatar';\n const contentStyle = {\n width: numericSize,\n height: numericSize,\n };\n const fallbackStyle = {\n fontSize: numericSize * INITIALS_FONT_SIZE_RATIO,\n };\n const statusStyle = {\n bottom: numericSize * CIRCLE_EDGE_OFFSET_RATIO,\n right: numericSize * CIRCLE_EDGE_OFFSET_RATIO,\n transform: 'translate(50%, 50%)',\n };\n\n return (\n <AvatarSizeContext value={numericSize}>\n <div\n aria-label={accessibleName}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={style}>\n <div className={classes.content} style={contentStyle}>\n <AvatarImage\n classes={classes}\n fallbackSrc={fallbackSrc}\n key={`${src}\\0${fallbackSrc}`}\n src={src}>\n {showInitials ? (\n <div className={classes.fallback} style={fallbackStyle}>\n {initials}\n </div>\n ) : (\n <div className={classes.fallback}>\n <Icon\n icon={User}\n size={\n numericSize < 48 ? 'sm' : numericSize < 96 ? 'md' : 'lg'\n }\n />\n </div>\n )}\n </AvatarImage>\n </div>\n {isReactNode(status) ? (\n <div className={classes.status} style={statusStyle}>\n {status}\n </div>\n ) : null}\n </div>\n </AvatarSizeContext>\n );\n}\n\nfunction AvatarImage({\n children,\n classes,\n fallbackSrc,\n src,\n}: {\n children: ReactNode;\n classes: {image?: string};\n fallbackSrc?: string;\n src?: string;\n}): React.JSX.Element {\n const [imageError, setImageError] = useState(false);\n const [fallbackError, setFallbackError] = useState(false);\n const showImage = src != null && src !== '' && !imageError;\n const showFallbackImage =\n !showImage && fallbackSrc != null && fallbackSrc !== '' && !fallbackError;\n\n if (showImage) {\n return (\n <img\n alt=\"\"\n className={classes.image}\n onError={() => setImageError(true)}\n src={src}\n />\n );\n }\n\n if (showFallbackImage) {\n return (\n <img\n alt=\"\"\n className={classes.image}\n onError={() => setFallbackError(true)}\n src={fallbackSrc}\n />\n );\n }\n\n return <>{children}</>;\n}\n\nAvatar.displayName = 'Avatar';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useAvatarSize} from './AvatarSizeContext';\n\nexport type AvatarStatusDotVariant = 'success' | 'neutral' | 'error';\n\n/**\n * Size-aware status indicator intended for Avatar's `status` prop.\n */\nexport interface AvatarStatusDotProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Optional icon rendered inside medium and large dots.\n */\n icon?: ReactNode;\n /**\n * Accessible label describing the status, such as \"Online\".\n */\n label: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Semantic dot color. Default is `success`.\n */\n variant?: AvatarStatusDotVariant;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n borderStyle: 'solid',\n borderColor: 'bg',\n }),\n success: css({\n bg: 'presence.success',\n }),\n neutral: css({\n bg: 'presence.neutral',\n }),\n error: css({\n bg: 'presence.error',\n }),\n icon: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'fg.onPrimary',\n lineHeight: 0,\n '& > svg': {\n w: '100%',\n h: '100%',\n },\n }),\n};\n\nconst variantClassName: Record<AvatarStatusDotVariant, string> = {\n success: styles.success,\n neutral: styles.neutral,\n error: styles.error,\n};\n\nfunction resolveStatusDotSize(avatarSize: number): {\n borderWidth: number;\n dotSize: number;\n iconSize: number;\n} {\n if (avatarSize <= 36) {\n return {borderWidth: 1, dotSize: 10, iconSize: 0};\n }\n\n if (avatarSize <= 72) {\n return {borderWidth: 2, dotSize: 20, iconSize: 12};\n }\n\n return {borderWidth: 4, dotSize: 32, iconSize: 18};\n}\n\n/**\n * Size-aware status indicator dot rendered in the corner of an Avatar.\n */\nexport function AvatarStatusDot({\n className,\n 'data-testid': dataTestId,\n icon,\n label,\n ref,\n style,\n variant = 'success',\n}: AvatarStatusDotProps): React.JSX.Element {\n const avatarSize = useAvatarSize();\n const {borderWidth, dotSize, iconSize} = resolveStatusDotSize(avatarSize);\n const hasVisibleIcon = isReactNode(icon) && iconSize > 0;\n\n if (process.env.NODE_ENV !== 'production') {\n if (isReactNode(icon) && iconSize === 0) {\n console.warn(\n 'AvatarStatusDot: `icon` is not visible at avatar sizes 36px or ' +\n 'smaller. Use a larger avatar size or remove the `icon` prop.',\n );\n }\n }\n\n return (\n <div\n aria-label={label}\n className={cx(styles.root, variantClassName[variant], className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={{width: dotSize, height: dotSize, borderWidth, ...style}}>\n {hasVisibleIcon ? (\n <span\n aria-hidden=\"true\"\n className={styles.icon}\n style={{width: iconSize, height: iconSize}}>\n {icon}\n </span>\n ) : null}\n </div>\n );\n}\n\nAvatarStatusDot.displayName = 'AvatarStatusDot';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/AvatarGroup/AvatarGroupContext.ts","../src/components/Avatar/Avatar.recipe.ts","../src/components/Avatar/AvatarSizeContext.ts","../src/components/Avatar/Avatar.tsx","../src/components/Avatar/AvatarStatusDot.tsx"],"names":["createContext","use","sva","useMemo","jsx","jsxs","cx","Icon","User","isReactNode","useState","css"],"mappings":"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","file":"chunk-E2A3GJSN.cjs","sourcesContent":["import {createContext, use} from 'react';\nimport type {AvatarSize} from '../Avatar';\n\nexport interface AvatarGroupContextValue {\n numericSize: number;\n overlap: number;\n size: AvatarSize;\n}\n\nexport const AvatarGroupContext = createContext<AvatarGroupContextValue | null>(\n null,\n);\nAvatarGroupContext.displayName = 'AvatarGroupContext';\n\nexport function useAvatarGroup(): AvatarGroupContextValue | null {\n return use(AvatarGroupContext);\n}\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const avatarRecipe = sva({\n slots: ['root', 'content', 'image', 'fallback', 'status'],\n base: {\n root: {\n position: 'relative',\n display: 'inline-flex',\n flexShrink: 0,\n verticalAlign: 'middle',\n borderRadius: 'full',\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n overflow: 'hidden',\n userSelect: 'none',\n bg: 'bg.subtle',\n color: 'fg.muted',\n },\n image: {\n w: '100%',\n h: '100%',\n objectFit: 'cover',\n },\n fallback: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: '100%',\n h: '100%',\n bg: 'bg.subtle',\n color: 'fg.muted',\n fontFamily: 'body',\n fontWeight: 'medium',\n textTransform: 'uppercase',\n },\n status: {\n position: 'absolute',\n },\n },\n variants: {\n isGrouped: {\n true: {\n root: {\n borderRadius: 'full',\n borderWidth: 'emphasized',\n borderStyle: 'solid',\n borderColor: 'bg',\n bg: 'bg',\n boxSizing: 'content-box',\n '&:not(:first-child)': {\n marginInlineStart: 'var(--avatar-group-overlap)',\n },\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n isGrouped: false,\n },\n});\n\nexport type AvatarVariants = RecipeVariantProps<typeof avatarRecipe>;\n","import {createContext, use} from 'react';\n\nconst DEFAULT_AVATAR_SIZE = 36;\n\nexport const AvatarSizeContext = createContext<number>(DEFAULT_AVATAR_SIZE);\nAvatarSizeContext.displayName = 'AvatarSizeContext';\n\nexport function useAvatarSize(): number {\n return use(AvatarSizeContext);\n}\n","import {User} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useMemo, useState} from 'react';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useAvatarGroup} from '../AvatarGroup/AvatarGroupContext';\nimport {Icon} from '../Icon';\nimport {avatarRecipe} from './Avatar.recipe';\nimport {AvatarSizeContext} from './AvatarSizeContext';\n\nconst CIRCLE_EDGE_OFFSET_RATIO = (1 - 1 / Math.SQRT2) / 2;\nconst INITIALS_FONT_SIZE_RATIO = 0.4;\n\nexport type AvatarNamedSize = 'tiny' | 'xsmall' | 'small' | 'medium' | 'large';\n\nexport type AvatarNumericSize =\n | 16\n | 20\n | 24\n | 32\n | 36\n | 40\n | 48\n | 60\n | 64\n | 72\n | 96\n | 128\n | 144\n | 180;\n\nexport type AvatarSize = AvatarNamedSize | AvatarNumericSize;\n\n/**\n * Resolve an Avatar size token to its pixel size.\n */\nexport function resolveAvatarSize(size: AvatarSize): number {\n if (typeof size === 'number') {\n return size;\n }\n\n switch (size) {\n case 'tiny':\n return 20;\n case 'xsmall':\n return 24;\n case 'small':\n return 36;\n case 'medium':\n return 48;\n case 'large':\n return 128;\n }\n}\n\n/**\n * Displays a user profile image, initials, or a fallback icon.\n */\nexport interface AvatarProps {\n /**\n * Accessible text for the avatar image. Defaults to `name`, then \"Avatar\".\n */\n alt?: string;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Image URL to use if `src` fails to load.\n */\n fallbackSrc?: string;\n /**\n * User name used as fallback accessible text and initials.\n */\n name?: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Avatar size. Named sizes map to the same pixel values as the XDS source.\n * Default is `small`.\n */\n size?: AvatarSize;\n /**\n * Primary image URL.\n */\n src?: string;\n /**\n * Corner content, usually an AvatarStatusDot.\n */\n status?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nfunction getInitials(name: string): string {\n const words = name.trim().split(/\\s+/).filter(Boolean);\n\n if (words.length === 0) {\n return '';\n }\n\n if (words.length === 1) {\n return words[0].charAt(0).toUpperCase();\n }\n\n return `${words[0].charAt(0)}${words[words.length - 1].charAt(\n 0,\n )}`.toUpperCase();\n}\n\nexport function Avatar({\n alt,\n className,\n 'data-testid': dataTestId,\n fallbackSrc,\n name,\n ref,\n size = 'small',\n src,\n style,\n status,\n}: AvatarProps): React.JSX.Element {\n const avatarGroup = useAvatarGroup();\n const resolvedSize = avatarGroup?.size ?? size;\n const numericSize = useMemo(\n () => resolveAvatarSize(resolvedSize),\n [resolvedSize],\n );\n const classes = avatarRecipe({isGrouped: avatarGroup != null});\n const initials = name != null ? getInitials(name) : '';\n const showInitials = initials !== '';\n const accessibleName = alt ?? (showInitials ? name : undefined) ?? 'Avatar';\n const contentStyle = {\n width: numericSize,\n height: numericSize,\n };\n const fallbackStyle = {\n fontSize: numericSize * INITIALS_FONT_SIZE_RATIO,\n };\n const statusStyle = {\n bottom: numericSize * CIRCLE_EDGE_OFFSET_RATIO,\n right: numericSize * CIRCLE_EDGE_OFFSET_RATIO,\n transform: 'translate(50%, 50%)',\n };\n\n return (\n <AvatarSizeContext value={numericSize}>\n <div\n aria-label={accessibleName}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={style}>\n <div className={classes.content} style={contentStyle}>\n <AvatarImage\n classes={classes}\n fallbackSrc={fallbackSrc}\n key={`${src}\\0${fallbackSrc}`}\n src={src}>\n {showInitials ? (\n <div className={classes.fallback} style={fallbackStyle}>\n {initials}\n </div>\n ) : (\n <div className={classes.fallback}>\n <Icon\n icon={User}\n size={\n numericSize < 48 ? 'sm' : numericSize < 96 ? 'md' : 'lg'\n }\n />\n </div>\n )}\n </AvatarImage>\n </div>\n {isReactNode(status) ? (\n <div className={classes.status} style={statusStyle}>\n {status}\n </div>\n ) : null}\n </div>\n </AvatarSizeContext>\n );\n}\n\nfunction AvatarImage({\n children,\n classes,\n fallbackSrc,\n src,\n}: {\n children: ReactNode;\n classes: {image?: string};\n fallbackSrc?: string;\n src?: string;\n}): React.JSX.Element {\n const [imageError, setImageError] = useState(false);\n const [fallbackError, setFallbackError] = useState(false);\n const showImage = src != null && src !== '' && !imageError;\n const showFallbackImage =\n !showImage && fallbackSrc != null && fallbackSrc !== '' && !fallbackError;\n\n if (showImage) {\n return (\n <img\n alt=\"\"\n className={classes.image}\n onError={() => setImageError(true)}\n src={src}\n />\n );\n }\n\n if (showFallbackImage) {\n return (\n <img\n alt=\"\"\n className={classes.image}\n onError={() => setFallbackError(true)}\n src={fallbackSrc}\n />\n );\n }\n\n return <>{children}</>;\n}\n\nAvatar.displayName = 'Avatar';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useAvatarSize} from './AvatarSizeContext';\n\nexport type AvatarStatusDotVariant = 'success' | 'neutral' | 'error';\n\n/**\n * Size-aware status indicator intended for Avatar's `status` prop.\n */\nexport interface AvatarStatusDotProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Optional icon rendered inside medium and large dots.\n */\n icon?: ReactNode;\n /**\n * Accessible label describing the status, such as \"Online\".\n */\n label: string;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Semantic dot color. Default is `success`.\n */\n variant?: AvatarStatusDotVariant;\n}\n\nconst styles = {\n root: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n borderStyle: 'solid',\n borderColor: 'bg',\n }),\n success: css({\n bg: 'presence.success',\n }),\n neutral: css({\n bg: 'presence.neutral',\n }),\n error: css({\n bg: 'presence.error',\n }),\n icon: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: 'fg.onPrimary',\n lineHeight: 0,\n '& > svg': {\n w: '100%',\n h: '100%',\n },\n }),\n};\n\nconst variantClassName: Record<AvatarStatusDotVariant, string> = {\n success: styles.success,\n neutral: styles.neutral,\n error: styles.error,\n};\n\nfunction resolveStatusDotSize(avatarSize: number): {\n borderWidth: number;\n dotSize: number;\n iconSize: number;\n} {\n if (avatarSize <= 36) {\n return {borderWidth: 1, dotSize: 10, iconSize: 0};\n }\n\n if (avatarSize <= 72) {\n return {borderWidth: 2, dotSize: 20, iconSize: 12};\n }\n\n return {borderWidth: 4, dotSize: 32, iconSize: 18};\n}\n\n/**\n * Size-aware status indicator dot rendered in the corner of an Avatar.\n */\nexport function AvatarStatusDot({\n className,\n 'data-testid': dataTestId,\n icon,\n label,\n ref,\n style,\n variant = 'success',\n}: AvatarStatusDotProps): React.JSX.Element {\n const avatarSize = useAvatarSize();\n const {borderWidth, dotSize, iconSize} = resolveStatusDotSize(avatarSize);\n const hasVisibleIcon = isReactNode(icon) && iconSize > 0;\n\n if (process.env.NODE_ENV !== 'production') {\n if (isReactNode(icon) && iconSize === 0) {\n console.warn(\n 'AvatarStatusDot: `icon` is not visible at avatar sizes 36px or ' +\n 'smaller. Use a larger avatar size or remove the `icon` prop.',\n );\n }\n }\n\n return (\n <div\n aria-label={label}\n className={cx(styles.root, variantClassName[variant], className)}\n data-testid={dataTestId}\n ref={ref}\n role=\"img\"\n style={{width: dotSize, height: dotSize, borderWidth, ...style}}>\n {hasVisibleIcon ? (\n <span\n aria-hidden=\"true\"\n className={styles.icon}\n style={{width: iconSize, height: iconSize}}>\n {icon}\n </span>\n ) : null}\n </div>\n );\n}\n\nAvatarStatusDot.displayName = 'AvatarStatusDot';\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkG2WW52GO_cjs = require('./chunk-G2WW52GO.cjs');
|
|
4
|
+
var chunkFNZOICR4_cjs = require('./chunk-FNZOICR4.cjs');
|
|
5
5
|
var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
|
|
6
6
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
7
7
|
var chunk4TIAKZ4Q_cjs = require('./chunk-4TIAKZ4Q.cjs');
|
|
8
|
-
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
9
8
|
var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
|
|
9
|
+
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
10
10
|
var react = require('react');
|
|
11
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
12
12
|
var lucideReact = require('lucide-react');
|
|
@@ -118,7 +118,7 @@ function Tab({
|
|
|
118
118
|
value
|
|
119
119
|
}) {
|
|
120
120
|
const context = useTabsContext();
|
|
121
|
-
const LinkComponent =
|
|
121
|
+
const LinkComponent = chunkFNZOICR4_cjs.useLinkComponent(as);
|
|
122
122
|
const isSelected = context.value === value;
|
|
123
123
|
const displayIcon = isSelected && selectedIcon != null ? selectedIcon : icon;
|
|
124
124
|
const rootClassName = chunkSPDVNY2Z_cjs.cx(
|
|
@@ -430,7 +430,7 @@ function TabMenu({
|
|
|
430
430
|
focusMenuItem(event, nextIndex);
|
|
431
431
|
};
|
|
432
432
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
433
|
-
|
|
433
|
+
chunkG2WW52GO_cjs.Popover,
|
|
434
434
|
{
|
|
435
435
|
content: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles3.menu, children: options.map((option) => {
|
|
436
436
|
const isSelected = option.value === context.value;
|
|
@@ -522,5 +522,5 @@ exports.TabMenu = TabMenu;
|
|
|
522
522
|
exports.Tabs = Tabs;
|
|
523
523
|
exports.TabsContext = TabsContext;
|
|
524
524
|
exports.useTabsContext = useTabsContext;
|
|
525
|
-
//# sourceMappingURL=chunk-
|
|
526
|
-
//# sourceMappingURL=chunk-
|
|
525
|
+
//# sourceMappingURL=chunk-EALKX3ST.cjs.map
|
|
526
|
+
//# sourceMappingURL=chunk-EALKX3ST.cjs.map
|