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/Thumbnail/Thumbnail.recipe.ts","../src/components/Thumbnail/Thumbnail.tsx"],"names":["sva","useState","Skeleton","jsx","Icon","ImageIcon","jsxs","Spinner","Button","X","cx","Tooltip"],"mappings":"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","file":"chunk-EE2O457Z.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const thumbnailRecipe = sva({\n slots: [\n 'root',\n 'imageContainer',\n 'imageButton',\n 'image',\n 'placeholder',\n 'insetBorder',\n 'remove',\n 'overlay',\n ],\n base: {\n root: {\n position: 'relative',\n display: 'inline-flex',\n flexDirection: 'column',\n w: '16',\n flexShrink: 0,\n isolation: 'isolate',\n },\n imageContainer: {\n position: 'relative',\n w: 'full',\n aspectRatio: '1',\n borderRadius: 'md',\n overflow: 'hidden',\n bg: 'surface.gray',\n },\n imageButton: {\n display: 'block',\n w: 'full',\n h: 'full',\n cursor: 'pointer',\n borderRadius: 'inherit',\n overflow: 'hidden',\n },\n image: {\n display: 'block',\n w: 'full',\n h: 'full',\n objectFit: 'cover',\n },\n placeholder: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'full',\n h: 'full',\n color: 'fg.muted',\n },\n insetBorder: {\n position: 'absolute',\n inset: 0,\n borderRadius: 'inherit',\n boxShadow: 'inset 0 0 0 1px token(colors.border.emphasized)',\n pointerEvents: 'none',\n },\n remove: {\n position: 'absolute',\n top: '1',\n right: '1',\n zIndex: 1,\n color: 'fg.onPrimary',\n },\n overlay: {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n bg: 'overlay.scrim.subtle',\n borderRadius: 'inherit',\n zIndex: 1,\n },\n },\n variants: {\n isDisabled: {\n true: {\n root: {\n opacity: 0.5,\n pointerEvents: 'none',\n },\n },\n },\n isInteractive: {\n true: {\n imageContainer: {\n cursor: 'pointer',\n transitionProperty: 'opacity, box-shadow',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n _hover: {\n boxShadow: 'lg',\n opacity: 0.9,\n },\n _active: {\n opacity: 0.75,\n },\n '&:has(:focus-visible)': {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n },\n },\n },\n defaultVariants: {\n isDisabled: false,\n isInteractive: false,\n },\n});\n\nexport type ThumbnailVariants = RecipeVariantProps<typeof thumbnailRecipe>;\n","import {ImageIcon, X} from 'lucide-react';\nimport {useState, type CSSProperties, type MouseEvent, type Ref} from 'react';\nimport {cx} from '../../internal/cx';\nimport {Button} from '../Button';\nimport {Icon} from '../Icon';\nimport {Skeleton} from '../Skeleton';\nimport {Spinner} from '../Spinner';\nimport {Tooltip} from '../Tooltip';\nimport {thumbnailRecipe} from './Thumbnail.recipe';\n\nexport interface ThumbnailProps {\n /**\n * Alt text describing the image content. Use `label` for a file name or\n * action label shown in the tooltip and button accessible names.\n */\n alt?: string;\n /**\n * Additional CSS class names applied to the root.\n */\n className?: string;\n /**\n * Test ID applied to the root.\n */\n 'data-testid'?: string;\n /**\n * Whether the thumbnail is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the thumbnail is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * File name or short item label used for the root accessible name, tooltip,\n * and open/remove button labels. When omitted, `alt` is used as a fallback.\n */\n label?: string;\n /**\n * Called when the thumbnail image area is clicked.\n */\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Called when the remove button is clicked.\n */\n onRemove?: (event: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Image source.\n */\n src?: string;\n /**\n * Inline styles applied to the root.\n */\n style?: CSSProperties;\n}\n\ntype ThumbnailClasses = ReturnType<typeof thumbnailRecipe>;\n\ntype ThumbnailImageAreaProps = Pick<\n ThumbnailProps,\n 'alt' | 'isLoading' | 'onClick' | 'onRemove' | 'src'\n> & {\n accessibleName: string;\n classes: ThumbnailClasses;\n isDisabled: boolean;\n};\n\nfunction ThumbnailImageArea({\n accessibleName,\n alt,\n classes,\n isDisabled,\n isLoading = false,\n onClick,\n onRemove,\n src,\n}: ThumbnailImageAreaProps): React.JSX.Element {\n const [hasImageError, setHasImageError] = useState(false);\n const hasImage = src != null && !hasImageError;\n const isInteractive = onClick != null && !isDisabled && !isLoading;\n const imageContent =\n isLoading && !hasImage ? (\n <Skeleton radius={2} />\n ) : hasImage ? (\n <img\n alt={alt ?? ''}\n className={classes.image}\n onError={() => setHasImageError(true)}\n src={src}\n />\n ) : (\n <div className={classes.placeholder}>\n <Icon icon={ImageIcon} size=\"lg\" />\n </div>\n );\n\n return (\n <div className={classes.imageContainer}>\n {isInteractive ? (\n <button\n aria-label={`Open ${accessibleName}`}\n className={classes.imageButton}\n onClick={onClick}\n type=\"button\">\n {imageContent}\n </button>\n ) : (\n imageContent\n )}\n {hasImage ? <div className={classes.insetBorder} /> : null}\n {isLoading && hasImage ? (\n <div className={classes.overlay}>\n <Spinner size=\"sm\" variant=\"onMedia\" />\n </div>\n ) : null}\n {onRemove != null && !isDisabled ? (\n <div className={classes.remove}>\n <Button\n icon={X}\n isIconOnly\n label={`Remove ${accessibleName}`}\n onClick={event => {\n event.stopPropagation();\n onRemove(event as MouseEvent<HTMLButtonElement>);\n }}\n size=\"sm\"\n variant=\"onSolid\"\n />\n </div>\n ) : null}\n </div>\n );\n}\n\n/**\n * Square image preview for attachments and media.\n */\nexport function Thumbnail({\n alt,\n className,\n 'data-testid': dataTestId,\n isDisabled = false,\n isLoading = false,\n label,\n onClick,\n onRemove,\n ref,\n src,\n style,\n}: ThumbnailProps): React.JSX.Element {\n const accessibleName = label ?? alt ?? 'thumbnail';\n const isInteractive = onClick != null && !isDisabled && !isLoading;\n const classes = thumbnailRecipe({isDisabled, isInteractive});\n\n const thumbnail = (\n <div\n aria-busy={isLoading || undefined}\n aria-label={accessibleName}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <ThumbnailImageArea\n accessibleName={accessibleName}\n alt={alt}\n classes={classes}\n isDisabled={isDisabled}\n isLoading={isLoading}\n key={src ?? 'empty'}\n onClick={onClick}\n onRemove={onRemove}\n src={src}\n />\n </div>\n );\n\n return label != null ? (\n <Tooltip content={label}>{thumbnail}</Tooltip>\n ) : (\n thumbnail\n );\n}\n\nThumbnail.displayName = 'Thumbnail';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Thumbnail/Thumbnail.recipe.ts","../src/components/Thumbnail/Thumbnail.tsx"],"names":["sva","useState","Skeleton","jsx","Icon","ImageIcon","jsxs","Spinner","Button","X","cx","Tooltip"],"mappings":"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","file":"chunk-JSINCF2R.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const thumbnailRecipe = sva({\n slots: [\n 'root',\n 'imageContainer',\n 'imageButton',\n 'image',\n 'placeholder',\n 'insetBorder',\n 'remove',\n 'overlay',\n ],\n base: {\n root: {\n position: 'relative',\n display: 'inline-flex',\n flexDirection: 'column',\n w: '16',\n flexShrink: 0,\n isolation: 'isolate',\n },\n imageContainer: {\n position: 'relative',\n w: 'full',\n aspectRatio: '1',\n borderRadius: 'md',\n overflow: 'hidden',\n bg: 'surface.gray',\n },\n imageButton: {\n display: 'block',\n w: 'full',\n h: 'full',\n cursor: 'pointer',\n borderRadius: 'inherit',\n overflow: 'hidden',\n },\n image: {\n display: 'block',\n w: 'full',\n h: 'full',\n objectFit: 'cover',\n },\n placeholder: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'full',\n h: 'full',\n color: 'fg.muted',\n },\n insetBorder: {\n position: 'absolute',\n inset: 0,\n borderRadius: 'inherit',\n boxShadow: 'inset 0 0 0 1px token(colors.border.emphasized)',\n pointerEvents: 'none',\n },\n remove: {\n position: 'absolute',\n top: '1',\n right: '1',\n zIndex: 1,\n color: 'fg.onPrimary',\n },\n overlay: {\n position: 'absolute',\n inset: 0,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n bg: 'overlay.scrim.subtle',\n borderRadius: 'inherit',\n zIndex: 1,\n },\n },\n variants: {\n isDisabled: {\n true: {\n root: {\n opacity: 0.5,\n pointerEvents: 'none',\n },\n },\n },\n isInteractive: {\n true: {\n imageContainer: {\n cursor: 'pointer',\n transitionProperty: 'opacity, box-shadow',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n _hover: {\n boxShadow: 'lg',\n opacity: 0.9,\n },\n _active: {\n opacity: 0.75,\n },\n '&:has(:focus-visible)': {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n },\n },\n },\n defaultVariants: {\n isDisabled: false,\n isInteractive: false,\n },\n});\n\nexport type ThumbnailVariants = RecipeVariantProps<typeof thumbnailRecipe>;\n","import {ImageIcon, X} from 'lucide-react';\nimport {useState, type CSSProperties, type MouseEvent, type Ref} from 'react';\nimport {cx} from '../../internal/cx';\nimport {Button} from '../Button';\nimport {Icon} from '../Icon';\nimport {Skeleton} from '../Skeleton';\nimport {Spinner} from '../Spinner';\nimport {Tooltip} from '../Tooltip';\nimport {thumbnailRecipe} from './Thumbnail.recipe';\n\nexport interface ThumbnailProps {\n /**\n * Alt text describing the image content. Use `label` for a file name or\n * action label shown in the tooltip and button accessible names.\n */\n alt?: string;\n /**\n * Additional CSS class names applied to the root.\n */\n className?: string;\n /**\n * Test ID applied to the root.\n */\n 'data-testid'?: string;\n /**\n * Whether the thumbnail is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether the thumbnail is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * File name or short item label used for the root accessible name, tooltip,\n * and open/remove button labels. When omitted, `alt` is used as a fallback.\n */\n label?: string;\n /**\n * Called when the thumbnail image area is clicked.\n */\n onClick?: (event: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Called when the remove button is clicked.\n */\n onRemove?: (event: MouseEvent<HTMLButtonElement>) => void;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Image source.\n */\n src?: string;\n /**\n * Inline styles applied to the root.\n */\n style?: CSSProperties;\n}\n\ntype ThumbnailClasses = ReturnType<typeof thumbnailRecipe>;\n\ntype ThumbnailImageAreaProps = Pick<\n ThumbnailProps,\n 'alt' | 'isLoading' | 'onClick' | 'onRemove' | 'src'\n> & {\n accessibleName: string;\n classes: ThumbnailClasses;\n isDisabled: boolean;\n};\n\nfunction ThumbnailImageArea({\n accessibleName,\n alt,\n classes,\n isDisabled,\n isLoading = false,\n onClick,\n onRemove,\n src,\n}: ThumbnailImageAreaProps): React.JSX.Element {\n const [hasImageError, setHasImageError] = useState(false);\n const hasImage = src != null && !hasImageError;\n const isInteractive = onClick != null && !isDisabled && !isLoading;\n const imageContent =\n isLoading && !hasImage ? (\n <Skeleton radius={2} />\n ) : hasImage ? (\n <img\n alt={alt ?? ''}\n className={classes.image}\n onError={() => setHasImageError(true)}\n src={src}\n />\n ) : (\n <div className={classes.placeholder}>\n <Icon icon={ImageIcon} size=\"lg\" />\n </div>\n );\n\n return (\n <div className={classes.imageContainer}>\n {isInteractive ? (\n <button\n aria-label={`Open ${accessibleName}`}\n className={classes.imageButton}\n onClick={onClick}\n type=\"button\">\n {imageContent}\n </button>\n ) : (\n imageContent\n )}\n {hasImage ? <div className={classes.insetBorder} /> : null}\n {isLoading && hasImage ? (\n <div className={classes.overlay}>\n <Spinner size=\"sm\" variant=\"onMedia\" />\n </div>\n ) : null}\n {onRemove != null && !isDisabled ? (\n <div className={classes.remove}>\n <Button\n icon={X}\n isIconOnly\n label={`Remove ${accessibleName}`}\n onClick={event => {\n event.stopPropagation();\n onRemove(event as MouseEvent<HTMLButtonElement>);\n }}\n size=\"sm\"\n variant=\"onSolid\"\n />\n </div>\n ) : null}\n </div>\n );\n}\n\n/**\n * Square image preview for attachments and media.\n */\nexport function Thumbnail({\n alt,\n className,\n 'data-testid': dataTestId,\n isDisabled = false,\n isLoading = false,\n label,\n onClick,\n onRemove,\n ref,\n src,\n style,\n}: ThumbnailProps): React.JSX.Element {\n const accessibleName = label ?? alt ?? 'thumbnail';\n const isInteractive = onClick != null && !isDisabled && !isLoading;\n const classes = thumbnailRecipe({isDisabled, isInteractive});\n\n const thumbnail = (\n <div\n aria-busy={isLoading || undefined}\n aria-label={accessibleName}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <ThumbnailImageArea\n accessibleName={accessibleName}\n alt={alt}\n classes={classes}\n isDisabled={isDisabled}\n isLoading={isLoading}\n key={src ?? 'empty'}\n onClick={onClick}\n onRemove={onRemove}\n src={src}\n />\n </div>\n );\n\n return label != null ? (\n <Tooltip content={label}>{thumbnail}</Tooltip>\n ) : (\n thumbnail\n );\n}\n\nThumbnail.displayName = 'Thumbnail';\n"]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkR37R7DEV_cjs = require('./chunk-R37R7DEV.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkQOKEU3DC_cjs = require('./chunk-QOKEU3DC.cjs');
|
|
5
5
|
var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
|
|
6
|
-
var
|
|
7
|
-
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
6
|
+
var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
|
|
8
7
|
var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
|
|
8
|
+
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
9
9
|
var lucideReact = require('lucide-react');
|
|
10
10
|
var react = require('react');
|
|
11
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
12
12
|
|
|
13
13
|
// src/components/Toast/Toast.recipe.ts
|
|
14
|
-
var toastRecipe =
|
|
14
|
+
var toastRecipe = chunkZ6RT3WPE_cjs.sva({
|
|
15
15
|
slots: ["root", "inner", "content", "end"],
|
|
16
16
|
base: {
|
|
17
17
|
root: {
|
|
@@ -163,7 +163,7 @@ function Toast({
|
|
|
163
163
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.end, children: [
|
|
164
164
|
endContent,
|
|
165
165
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
166
|
-
|
|
166
|
+
chunkQOKEU3DC_cjs.Button,
|
|
167
167
|
{
|
|
168
168
|
icon: lucideReact.X,
|
|
169
169
|
isIconOnly: true,
|
|
@@ -386,5 +386,5 @@ function useToast() {
|
|
|
386
386
|
exports.Toast = Toast;
|
|
387
387
|
exports.ToastViewport = ToastViewport;
|
|
388
388
|
exports.useToast = useToast;
|
|
389
|
-
//# sourceMappingURL=chunk-
|
|
390
|
-
//# sourceMappingURL=chunk-
|
|
389
|
+
//# sourceMappingURL=chunk-JTFNNEWR.cjs.map
|
|
390
|
+
//# sourceMappingURL=chunk-JTFNNEWR.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Toast/Toast.recipe.ts","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastContext.ts","../src/components/Toast/ToastViewport.tsx","../src/components/Toast/useToast.tsx"],"names":["sva","useRef","useEffect","useCallback","nowMonotonicMilliseconds","jsx","cx","jsxs","Button","X","createContext","css","useState","useMemo","mergeRefs","use","nowEpochMilliseconds"],"mappings":"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","file":"chunk-X2GRBPCJ.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const toastRecipe = sva({\n slots: ['root', 'inner', 'content', 'end'],\n base: {\n root: {\n width: '25rem',\n maxW: 'calc(100vw - 32px)',\n p: '4',\n borderRadius: 'lg',\n boxShadow: 'xl',\n fontFamily: 'body',\n transitionProperty: 'opacity, transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@starting-style': {\n opacity: 0,\n transform: 'translateY(8px)',\n },\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n },\n },\n inner: {\n display: 'flex',\n alignItems: 'center',\n gap: '3',\n },\n content: {\n flex: 1,\n minW: 0,\n },\n end: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flexShrink: 0,\n },\n },\n variants: {\n type: {\n info: {root: {bg: 'status.info.solid', color: 'status.info.solidFg'}},\n error: {root: {bg: 'status.error.solid', color: 'status.error.solidFg'}},\n success: {\n root: {bg: 'status.success.solid', color: 'status.success.solidFg'},\n },\n warning: {\n root: {bg: 'status.warning.solid', color: 'status.warning.solidFg'},\n },\n },\n isExiting: {\n true: {\n root: {\n opacity: 0,\n transform: 'translateY(-8px)',\n },\n },\n },\n },\n defaultVariants: {\n type: 'info',\n isExiting: false,\n },\n});\n\nexport type ToastVariants = RecipeVariantProps<typeof toastRecipe>;\n","/* eslint-disable jsx-a11y-x/no-static-element-interactions */\nimport {X} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {cx} from '../../internal/cx';\nimport {nowMonotonicMilliseconds} from '../../internal/time';\nimport {Button} from '../Button';\nimport {toastRecipe} from './Toast.recipe';\nimport type {ToastDismissReason, ToastType} from './types';\n\nexport interface ToastProps {\n /**\n * Auto-dismiss duration in milliseconds.\n */\n autoHideDuration: number;\n /**\n * Toast message content.\n */\n body: ReactNode;\n /**\n * Additional CSS class names applied to the toast.\n */\n className?: string;\n /**\n * Test ID applied to the toast.\n */\n 'data-testid'?: string;\n /**\n * Content rendered before the dismiss button.\n */\n endContent?: ReactNode;\n /**\n * Whether the toast auto-dismisses.\n */\n isAutoHide: boolean;\n /**\n * Whether the toast is exiting.\n * @default false\n */\n isExiting?: boolean;\n /**\n * Called when the toast should be dismissed.\n */\n onDismiss: (reason: ToastDismissReason) => void;\n /**\n * Ref forwarded to the toast element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the toast.\n */\n style?: CSSProperties;\n /**\n * Toast tone.\n */\n type: ToastType;\n}\n\nconst assertiveTypes: Partial<Record<ToastType, true>> = {\n error: true,\n warning: true,\n};\n\n/**\n * An individual toast notification.\n */\nexport function Toast({\n autoHideDuration,\n body,\n className,\n 'data-testid': dataTestId,\n endContent,\n isAutoHide,\n isExiting = false,\n onDismiss,\n ref,\n style,\n type,\n}: ToastProps): React.JSX.Element {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const startedAtRef = useRef<number | null>(null);\n const remainingRef = useRef(autoHideDuration);\n const isPausedRef = useRef(false);\n const onDismissRef = useRef(onDismiss);\n useEffect(() => {\n onDismissRef.current = onDismiss;\n });\n\n const startTimer = useCallback(() => {\n if (!isAutoHide) {\n return;\n }\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n }\n startedAtRef.current = nowMonotonicMilliseconds();\n timerRef.current = setTimeout(\n () => onDismissRef.current('auto'),\n remainingRef.current,\n );\n }, [isAutoHide]);\n\n const pauseTimer = useCallback(() => {\n if (!isAutoHide || isPausedRef.current) {\n return;\n }\n isPausedRef.current = true;\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n if (startedAtRef.current != null) {\n remainingRef.current = Math.max(\n remainingRef.current -\n (nowMonotonicMilliseconds() - startedAtRef.current),\n 1000,\n );\n }\n }, [isAutoHide]);\n\n const resumeTimer = useCallback(() => {\n if (!isAutoHide || !isPausedRef.current) {\n return;\n }\n isPausedRef.current = false;\n startTimer();\n }, [isAutoHide, startTimer]);\n\n useEffect(() => {\n remainingRef.current = autoHideDuration;\n startTimer();\n return () => {\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n }\n };\n }, [autoHideDuration, startTimer]);\n\n const classes = toastRecipe({type, isExiting});\n\n return (\n <div\n aria-atomic=\"true\"\n aria-live={assertiveTypes[type] ? 'assertive' : 'polite'}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onBlurCapture={resumeTimer}\n onFocusCapture={pauseTimer}\n onMouseEnter={pauseTimer}\n onMouseLeave={resumeTimer}\n ref={ref}\n role={assertiveTypes[type] ? 'alert' : 'status'}\n style={style}>\n <div className={classes.inner}>\n <div className={classes.content}>{body}</div>\n <div className={classes.end}>\n {endContent}\n <Button\n icon={X}\n isIconOnly\n label=\"Dismiss notification\"\n onClick={() => onDismiss('manual')}\n size=\"sm\"\n variant=\"onSolid\"\n />\n </div>\n </div>\n </div>\n );\n}\n\nToast.displayName = 'Toast';\n","import {createContext} from 'react';\nimport type {ToastDismissReason, ToastEntry} from './types';\n\nexport interface ToastContextValue {\n addToast: (entry: ToastEntry) => void;\n findByUniqueID: (uniqueID: string) => ToastEntry | undefined;\n removeToast: (id: string, reason: ToastDismissReason) => void;\n}\n\nexport const ToastContext = createContext<ToastContextValue | null>(null);\n\nToastContext.displayName = 'ToastContext';\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {mergeRefs} from '../../internal/mergeRefs';\nimport {Toast} from './Toast';\nimport {ToastContext, type ToastContextValue} from './ToastContext';\nimport type {ToastDismissReason, ToastEntry, ToastPosition} from './types';\n\nexport interface ToastViewportInset {\n bottom?: number;\n end?: number;\n start?: number;\n top?: number;\n}\n\nexport interface ToastViewportProps {\n /**\n * App content that should receive the toast context.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the viewport.\n */\n className?: string;\n /**\n * Test ID applied to the viewport.\n */\n 'data-testid'?: string;\n /**\n * Custom viewport inset.\n */\n inset?: Readonly<ToastViewportInset>;\n /**\n * Whether to promote the viewport to the CSS top layer using popover.\n * @default true\n */\n isTopLayer?: boolean;\n /**\n * Maximum visible toast count.\n * @default 5\n */\n maxVisible?: number;\n /**\n * Toast stack position.\n * @default 'bottomEnd'\n */\n position?: ToastPosition;\n /**\n * Ref forwarded to the viewport element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the viewport.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n viewport: css({\n position: 'fixed',\n zIndex: 500,\n display: 'flex',\n flexDirection: 'column',\n p: '4',\n pointerEvents: 'none',\n inset: 'unset',\n m: 0,\n borderWidth: 0,\n bg: 'transparent',\n overflow: 'visible',\n }),\n bottomEnd: css({bottom: 0, insetInlineEnd: 0, alignItems: 'flex-end'}),\n bottomStart: css({bottom: 0, insetInlineStart: 0, alignItems: 'flex-start'}),\n topEnd: css({\n top: 0,\n insetInlineEnd: 0,\n alignItems: 'flex-end',\n flexDirection: 'column-reverse',\n }),\n topStart: css({\n top: 0,\n insetInlineStart: 0,\n alignItems: 'flex-start',\n flexDirection: 'column-reverse',\n }),\n wrapper: css({\n pointerEvents: 'auto',\n display: 'grid',\n gridTemplateRows: '1fr',\n pb: '3',\n transitionProperty: 'grid-template-rows, padding',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n },\n }),\n wrapperExiting: css({\n gridTemplateRows: '0fr',\n pb: 0,\n }),\n wrapperInner: css({\n overflow: 'hidden',\n }),\n position: {\n bottomEnd: '',\n bottomStart: '',\n topEnd: '',\n topStart: '',\n } satisfies Record<ToastPosition, string>,\n} as const;\n\nstyles.position.bottomEnd = styles.bottomEnd;\nstyles.position.bottomStart = styles.bottomStart;\nstyles.position.topEnd = styles.topEnd;\nstyles.position.topStart = styles.topStart;\n\n/**\n * Toast provider and viewport. Mount once near the app root to enable\n * toast notifications. Components below this provider can call `useToast()`\n * to show toasts.\n *\n * @example\n * ```tsx\n * function App() {\n * return (\n * <ToastViewport>\n * <MyRoutes />\n * </ToastViewport>\n * );\n * }\n * ```\n */\nexport function ToastViewport({\n children,\n className,\n 'data-testid': dataTestId,\n inset,\n isTopLayer = true,\n maxVisible = 5,\n position = 'bottomEnd',\n ref,\n style,\n}: ToastViewportProps): React.JSX.Element {\n const [toasts, setToasts] = useState<ToastEntry[]>([]);\n const [exitingIds, setExitingIds] = useState<Set<string>>(() => new Set());\n const toastsRef = useRef(toasts);\n const viewportRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n toastsRef.current = toasts;\n }, [toasts]);\n\n const addToast = useCallback((entry: ToastEntry) => {\n setToasts(previous => {\n const {uniqueID, collisionBehavior = 'overwrite'} = entry.options;\n if (uniqueID != null) {\n const existing = previous.find(\n toast => toast.options.uniqueID === uniqueID,\n );\n if (existing != null) {\n if (collisionBehavior === 'ignore') {\n return previous;\n }\n return previous.map(toast =>\n toast.options.uniqueID === uniqueID ? entry : toast,\n );\n }\n }\n return [...previous, entry];\n });\n }, []);\n\n const removeToast = useCallback((id: string, reason: ToastDismissReason) => {\n const entry = toastsRef.current.find(toast => toast.id === id);\n entry?.options.onHide?.(reason);\n setExitingIds(previous => new Set(previous).add(id));\n globalThis.setTimeout(() => {\n setExitingIds(previous => {\n const next = new Set(previous);\n next.delete(id);\n return next;\n });\n setToasts(previous => previous.filter(toast => toast.id !== id));\n }, 180);\n }, []);\n\n const findByUniqueID = useCallback((uniqueID: string) => {\n return toastsRef.current.find(toast => toast.options.uniqueID === uniqueID);\n }, []);\n\n const contextValue = useMemo<ToastContextValue>(\n () => ({addToast, findByUniqueID, removeToast}),\n [addToast, findByUniqueID, removeToast],\n );\n\n useEffect(() => {\n if (!isTopLayer) {\n return;\n }\n try {\n viewportRef.current?.showPopover();\n } catch {\n // Already showing.\n }\n }, [isTopLayer]);\n\n const insetStyle: CSSProperties = {\n ...(inset?.top != null ? {top: inset.top} : null),\n ...(inset?.bottom != null ? {bottom: inset.bottom} : null),\n ...(inset?.start != null ? {insetInlineStart: inset.start} : null),\n ...(inset?.end != null ? {insetInlineEnd: inset.end} : null),\n ...style,\n };\n const visibleToasts = toasts.slice(-maxVisible);\n\n return (\n <ToastContext value={contextValue}>\n {children}\n <div\n aria-label=\"Notifications\"\n className={cx(styles.viewport, styles.position[position], className)}\n data-testid={dataTestId}\n popover={isTopLayer ? 'manual' : undefined}\n ref={mergeRefs(viewportRef, ref)}\n role=\"region\"\n style={insetStyle}>\n {visibleToasts.map(entry => {\n const type = entry.options.type ?? 'info';\n const isAutoHide =\n entry.options.isAutoHide ?? (type === 'error' ? false : true);\n return (\n <div\n className={cx(\n styles.wrapper,\n exitingIds.has(entry.id) ? styles.wrapperExiting : undefined,\n )}\n key={entry.id}>\n <div className={styles.wrapperInner}>\n <Toast\n autoHideDuration={entry.options.autoHideDuration ?? 5000}\n body={entry.options.body}\n endContent={entry.options.endContent}\n isAutoHide={isAutoHide}\n isExiting={exitingIds.has(entry.id)}\n onDismiss={reason => removeToast(entry.id, reason)}\n type={type}\n />\n </div>\n </div>\n );\n })}\n </div>\n </ToastContext>\n );\n}\n\nToastViewport.displayName = 'ToastViewport';\n","import {use, useCallback} from 'react';\nimport {nowEpochMilliseconds} from '../../internal/time';\nimport {ToastContext} from './ToastContext';\nimport type {\n ShowToastFn,\n ToastDismissFn,\n ToastEntry,\n ToastOptions,\n} from './types';\n\nlet toastIdCounter = 0;\n\nfunction generateToastId(): string {\n toastIdCounter += 1;\n return `silver-toast-${toastIdCounter}`;\n}\n\n/**\n * Returns a function that shows a toast notification.\n * Must be called within a `ToastViewport` provider.\n * The returned function accepts `ToastOptions` and returns a dismiss callback.\n */\nexport function useToast(): ShowToastFn {\n const context = use(ToastContext);\n\n if (context == null) {\n throw new Error(\n 'useToast must be used within a ToastViewport. Add <ToastViewport> near your app root to enable toast notifications.',\n );\n }\n\n return useCallback(\n (options: ToastOptions): ToastDismissFn => {\n const id = generateToastId();\n const entry: ToastEntry = {\n createdAt: nowEpochMilliseconds(),\n id,\n options,\n };\n context.addToast(entry);\n return () => context.removeToast(id, 'manual');\n },\n [context],\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Toast/Toast.recipe.ts","../src/components/Toast/Toast.tsx","../src/components/Toast/ToastContext.ts","../src/components/Toast/ToastViewport.tsx","../src/components/Toast/useToast.tsx"],"names":["sva","useRef","useEffect","useCallback","nowMonotonicMilliseconds","jsx","cx","jsxs","Button","X","createContext","css","useState","useMemo","mergeRefs","use","nowEpochMilliseconds"],"mappings":"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","file":"chunk-JTFNNEWR.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const toastRecipe = sva({\n slots: ['root', 'inner', 'content', 'end'],\n base: {\n root: {\n width: '25rem',\n maxW: 'calc(100vw - 32px)',\n p: '4',\n borderRadius: 'lg',\n boxShadow: 'xl',\n fontFamily: 'body',\n transitionProperty: 'opacity, transform',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@starting-style': {\n opacity: 0,\n transform: 'translateY(8px)',\n },\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n },\n },\n inner: {\n display: 'flex',\n alignItems: 'center',\n gap: '3',\n },\n content: {\n flex: 1,\n minW: 0,\n },\n end: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flexShrink: 0,\n },\n },\n variants: {\n type: {\n info: {root: {bg: 'status.info.solid', color: 'status.info.solidFg'}},\n error: {root: {bg: 'status.error.solid', color: 'status.error.solidFg'}},\n success: {\n root: {bg: 'status.success.solid', color: 'status.success.solidFg'},\n },\n warning: {\n root: {bg: 'status.warning.solid', color: 'status.warning.solidFg'},\n },\n },\n isExiting: {\n true: {\n root: {\n opacity: 0,\n transform: 'translateY(-8px)',\n },\n },\n },\n },\n defaultVariants: {\n type: 'info',\n isExiting: false,\n },\n});\n\nexport type ToastVariants = RecipeVariantProps<typeof toastRecipe>;\n","/* eslint-disable jsx-a11y-x/no-static-element-interactions */\nimport {X} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useRef,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {cx} from '../../internal/cx';\nimport {nowMonotonicMilliseconds} from '../../internal/time';\nimport {Button} from '../Button';\nimport {toastRecipe} from './Toast.recipe';\nimport type {ToastDismissReason, ToastType} from './types';\n\nexport interface ToastProps {\n /**\n * Auto-dismiss duration in milliseconds.\n */\n autoHideDuration: number;\n /**\n * Toast message content.\n */\n body: ReactNode;\n /**\n * Additional CSS class names applied to the toast.\n */\n className?: string;\n /**\n * Test ID applied to the toast.\n */\n 'data-testid'?: string;\n /**\n * Content rendered before the dismiss button.\n */\n endContent?: ReactNode;\n /**\n * Whether the toast auto-dismisses.\n */\n isAutoHide: boolean;\n /**\n * Whether the toast is exiting.\n * @default false\n */\n isExiting?: boolean;\n /**\n * Called when the toast should be dismissed.\n */\n onDismiss: (reason: ToastDismissReason) => void;\n /**\n * Ref forwarded to the toast element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the toast.\n */\n style?: CSSProperties;\n /**\n * Toast tone.\n */\n type: ToastType;\n}\n\nconst assertiveTypes: Partial<Record<ToastType, true>> = {\n error: true,\n warning: true,\n};\n\n/**\n * An individual toast notification.\n */\nexport function Toast({\n autoHideDuration,\n body,\n className,\n 'data-testid': dataTestId,\n endContent,\n isAutoHide,\n isExiting = false,\n onDismiss,\n ref,\n style,\n type,\n}: ToastProps): React.JSX.Element {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const startedAtRef = useRef<number | null>(null);\n const remainingRef = useRef(autoHideDuration);\n const isPausedRef = useRef(false);\n const onDismissRef = useRef(onDismiss);\n useEffect(() => {\n onDismissRef.current = onDismiss;\n });\n\n const startTimer = useCallback(() => {\n if (!isAutoHide) {\n return;\n }\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n }\n startedAtRef.current = nowMonotonicMilliseconds();\n timerRef.current = setTimeout(\n () => onDismissRef.current('auto'),\n remainingRef.current,\n );\n }, [isAutoHide]);\n\n const pauseTimer = useCallback(() => {\n if (!isAutoHide || isPausedRef.current) {\n return;\n }\n isPausedRef.current = true;\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n if (startedAtRef.current != null) {\n remainingRef.current = Math.max(\n remainingRef.current -\n (nowMonotonicMilliseconds() - startedAtRef.current),\n 1000,\n );\n }\n }, [isAutoHide]);\n\n const resumeTimer = useCallback(() => {\n if (!isAutoHide || !isPausedRef.current) {\n return;\n }\n isPausedRef.current = false;\n startTimer();\n }, [isAutoHide, startTimer]);\n\n useEffect(() => {\n remainingRef.current = autoHideDuration;\n startTimer();\n return () => {\n if (timerRef.current != null) {\n clearTimeout(timerRef.current);\n }\n };\n }, [autoHideDuration, startTimer]);\n\n const classes = toastRecipe({type, isExiting});\n\n return (\n <div\n aria-atomic=\"true\"\n aria-live={assertiveTypes[type] ? 'assertive' : 'polite'}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onBlurCapture={resumeTimer}\n onFocusCapture={pauseTimer}\n onMouseEnter={pauseTimer}\n onMouseLeave={resumeTimer}\n ref={ref}\n role={assertiveTypes[type] ? 'alert' : 'status'}\n style={style}>\n <div className={classes.inner}>\n <div className={classes.content}>{body}</div>\n <div className={classes.end}>\n {endContent}\n <Button\n icon={X}\n isIconOnly\n label=\"Dismiss notification\"\n onClick={() => onDismiss('manual')}\n size=\"sm\"\n variant=\"onSolid\"\n />\n </div>\n </div>\n </div>\n );\n}\n\nToast.displayName = 'Toast';\n","import {createContext} from 'react';\nimport type {ToastDismissReason, ToastEntry} from './types';\n\nexport interface ToastContextValue {\n addToast: (entry: ToastEntry) => void;\n findByUniqueID: (uniqueID: string) => ToastEntry | undefined;\n removeToast: (id: string, reason: ToastDismissReason) => void;\n}\n\nexport const ToastContext = createContext<ToastContextValue | null>(null);\n\nToastContext.displayName = 'ToastContext';\n","import {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {mergeRefs} from '../../internal/mergeRefs';\nimport {Toast} from './Toast';\nimport {ToastContext, type ToastContextValue} from './ToastContext';\nimport type {ToastDismissReason, ToastEntry, ToastPosition} from './types';\n\nexport interface ToastViewportInset {\n bottom?: number;\n end?: number;\n start?: number;\n top?: number;\n}\n\nexport interface ToastViewportProps {\n /**\n * App content that should receive the toast context.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the viewport.\n */\n className?: string;\n /**\n * Test ID applied to the viewport.\n */\n 'data-testid'?: string;\n /**\n * Custom viewport inset.\n */\n inset?: Readonly<ToastViewportInset>;\n /**\n * Whether to promote the viewport to the CSS top layer using popover.\n * @default true\n */\n isTopLayer?: boolean;\n /**\n * Maximum visible toast count.\n * @default 5\n */\n maxVisible?: number;\n /**\n * Toast stack position.\n * @default 'bottomEnd'\n */\n position?: ToastPosition;\n /**\n * Ref forwarded to the viewport element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Inline styles applied to the viewport.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n viewport: css({\n position: 'fixed',\n zIndex: 500,\n display: 'flex',\n flexDirection: 'column',\n p: '4',\n pointerEvents: 'none',\n inset: 'unset',\n m: 0,\n borderWidth: 0,\n bg: 'transparent',\n overflow: 'visible',\n }),\n bottomEnd: css({bottom: 0, insetInlineEnd: 0, alignItems: 'flex-end'}),\n bottomStart: css({bottom: 0, insetInlineStart: 0, alignItems: 'flex-start'}),\n topEnd: css({\n top: 0,\n insetInlineEnd: 0,\n alignItems: 'flex-end',\n flexDirection: 'column-reverse',\n }),\n topStart: css({\n top: 0,\n insetInlineStart: 0,\n alignItems: 'flex-start',\n flexDirection: 'column-reverse',\n }),\n wrapper: css({\n pointerEvents: 'auto',\n display: 'grid',\n gridTemplateRows: '1fr',\n pb: '3',\n transitionProperty: 'grid-template-rows, padding',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0.01ms',\n },\n }),\n wrapperExiting: css({\n gridTemplateRows: '0fr',\n pb: 0,\n }),\n wrapperInner: css({\n overflow: 'hidden',\n }),\n position: {\n bottomEnd: '',\n bottomStart: '',\n topEnd: '',\n topStart: '',\n } satisfies Record<ToastPosition, string>,\n} as const;\n\nstyles.position.bottomEnd = styles.bottomEnd;\nstyles.position.bottomStart = styles.bottomStart;\nstyles.position.topEnd = styles.topEnd;\nstyles.position.topStart = styles.topStart;\n\n/**\n * Toast provider and viewport. Mount once near the app root to enable\n * toast notifications. Components below this provider can call `useToast()`\n * to show toasts.\n *\n * @example\n * ```tsx\n * function App() {\n * return (\n * <ToastViewport>\n * <MyRoutes />\n * </ToastViewport>\n * );\n * }\n * ```\n */\nexport function ToastViewport({\n children,\n className,\n 'data-testid': dataTestId,\n inset,\n isTopLayer = true,\n maxVisible = 5,\n position = 'bottomEnd',\n ref,\n style,\n}: ToastViewportProps): React.JSX.Element {\n const [toasts, setToasts] = useState<ToastEntry[]>([]);\n const [exitingIds, setExitingIds] = useState<Set<string>>(() => new Set());\n const toastsRef = useRef(toasts);\n const viewportRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n toastsRef.current = toasts;\n }, [toasts]);\n\n const addToast = useCallback((entry: ToastEntry) => {\n setToasts(previous => {\n const {uniqueID, collisionBehavior = 'overwrite'} = entry.options;\n if (uniqueID != null) {\n const existing = previous.find(\n toast => toast.options.uniqueID === uniqueID,\n );\n if (existing != null) {\n if (collisionBehavior === 'ignore') {\n return previous;\n }\n return previous.map(toast =>\n toast.options.uniqueID === uniqueID ? entry : toast,\n );\n }\n }\n return [...previous, entry];\n });\n }, []);\n\n const removeToast = useCallback((id: string, reason: ToastDismissReason) => {\n const entry = toastsRef.current.find(toast => toast.id === id);\n entry?.options.onHide?.(reason);\n setExitingIds(previous => new Set(previous).add(id));\n globalThis.setTimeout(() => {\n setExitingIds(previous => {\n const next = new Set(previous);\n next.delete(id);\n return next;\n });\n setToasts(previous => previous.filter(toast => toast.id !== id));\n }, 180);\n }, []);\n\n const findByUniqueID = useCallback((uniqueID: string) => {\n return toastsRef.current.find(toast => toast.options.uniqueID === uniqueID);\n }, []);\n\n const contextValue = useMemo<ToastContextValue>(\n () => ({addToast, findByUniqueID, removeToast}),\n [addToast, findByUniqueID, removeToast],\n );\n\n useEffect(() => {\n if (!isTopLayer) {\n return;\n }\n try {\n viewportRef.current?.showPopover();\n } catch {\n // Already showing.\n }\n }, [isTopLayer]);\n\n const insetStyle: CSSProperties = {\n ...(inset?.top != null ? {top: inset.top} : null),\n ...(inset?.bottom != null ? {bottom: inset.bottom} : null),\n ...(inset?.start != null ? {insetInlineStart: inset.start} : null),\n ...(inset?.end != null ? {insetInlineEnd: inset.end} : null),\n ...style,\n };\n const visibleToasts = toasts.slice(-maxVisible);\n\n return (\n <ToastContext value={contextValue}>\n {children}\n <div\n aria-label=\"Notifications\"\n className={cx(styles.viewport, styles.position[position], className)}\n data-testid={dataTestId}\n popover={isTopLayer ? 'manual' : undefined}\n ref={mergeRefs(viewportRef, ref)}\n role=\"region\"\n style={insetStyle}>\n {visibleToasts.map(entry => {\n const type = entry.options.type ?? 'info';\n const isAutoHide =\n entry.options.isAutoHide ?? (type === 'error' ? false : true);\n return (\n <div\n className={cx(\n styles.wrapper,\n exitingIds.has(entry.id) ? styles.wrapperExiting : undefined,\n )}\n key={entry.id}>\n <div className={styles.wrapperInner}>\n <Toast\n autoHideDuration={entry.options.autoHideDuration ?? 5000}\n body={entry.options.body}\n endContent={entry.options.endContent}\n isAutoHide={isAutoHide}\n isExiting={exitingIds.has(entry.id)}\n onDismiss={reason => removeToast(entry.id, reason)}\n type={type}\n />\n </div>\n </div>\n );\n })}\n </div>\n </ToastContext>\n );\n}\n\nToastViewport.displayName = 'ToastViewport';\n","import {use, useCallback} from 'react';\nimport {nowEpochMilliseconds} from '../../internal/time';\nimport {ToastContext} from './ToastContext';\nimport type {\n ShowToastFn,\n ToastDismissFn,\n ToastEntry,\n ToastOptions,\n} from './types';\n\nlet toastIdCounter = 0;\n\nfunction generateToastId(): string {\n toastIdCounter += 1;\n return `silver-toast-${toastIdCounter}`;\n}\n\n/**\n * Returns a function that shows a toast notification.\n * Must be called within a `ToastViewport` provider.\n * The returned function accepts `ToastOptions` and returns a dismiss callback.\n */\nexport function useToast(): ShowToastFn {\n const context = use(ToastContext);\n\n if (context == null) {\n throw new Error(\n 'useToast must be used within a ToastViewport. Add <ToastViewport> near your app root to enable toast notifications.',\n );\n }\n\n return useCallback(\n (options: ToastOptions): ToastDismissFn => {\n const id = generateToastId();\n const entry: ToastEntry = {\n createdAt: nowEpochMilliseconds(),\n id,\n options,\n };\n context.addToast(entry);\n return () => context.removeToast(id, 'manual');\n },\n [context],\n );\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
4
3
|
var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
|
|
4
|
+
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
7
7
|
var styles = {
|
|
@@ -38,5 +38,5 @@ function NavIcon({
|
|
|
38
38
|
NavIcon.displayName = "NavIcon";
|
|
39
39
|
|
|
40
40
|
exports.NavIcon = NavIcon;
|
|
41
|
-
//# sourceMappingURL=chunk-
|
|
42
|
-
//# sourceMappingURL=chunk-
|
|
41
|
+
//# sourceMappingURL=chunk-JYVYCU22.cjs.map
|
|
42
|
+
//# sourceMappingURL=chunk-JYVYCU22.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/NavIcon/NavIcon.tsx"],"names":["css","jsx","cx"],"mappings":";;;;;;AA2BA,IAAM,MAAA,GAAS;AAAA,EACb,MAAMA,qBAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,YAAA,EAAc,MAAA;AAAA,IACd,EAAA,EAAI,SAAA;AAAA,IACJ,KAAA,EAAO,cAAA;AAAA,IACP,UAAA,EAAY,CAAA;AAAA,IACZ,CAAA,EAAG,cAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACJ;AACH,CAAA;AAMO,SAAS,OAAA,CAAQ;AAAA,EACtB,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,IAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,uBACEC,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,oBAAA,CAAG,MAAA,CAAO,IAAA,EAAM,SAAS,CAAA;AAAA,MACpC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACC,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/NavIcon/NavIcon.tsx"],"names":["css","jsx","cx"],"mappings":";;;;;;AA2BA,IAAM,MAAA,GAAS;AAAA,EACb,MAAMA,qBAAA,CAAI;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,cAAA,EAAgB,QAAA;AAAA,IAChB,YAAA,EAAc,MAAA;AAAA,IACd,EAAA,EAAI,SAAA;AAAA,IACJ,KAAA,EAAO,cAAA;AAAA,IACP,UAAA,EAAY,CAAA;AAAA,IACZ,CAAA,EAAG,cAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACJ;AACH,CAAA;AAMO,SAAS,OAAA,CAAQ;AAAA,EACtB,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,IAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAAoC;AAClC,EAAA,uBACEC,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,oBAAA,CAAG,MAAA,CAAO,IAAA,EAAM,SAAS,CAAA;AAAA,MACpC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACC,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-JYVYCU22.cjs","sourcesContent":["import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\n\nexport interface NavIconProps {\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 * The icon element to render inside the circular background.\n */\n icon: ReactNode;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLSpanElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nconst styles = {\n base: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 'full',\n bg: 'primary',\n color: 'fg.onPrimary',\n flexShrink: 0,\n w: 'component.sm',\n h: 'component.sm',\n }),\n};\n\n/**\n * Circular icon container for navigation headers.\n * Wraps an icon with a circular accent-colored background.\n */\nexport function NavIcon({\n className,\n 'data-testid': dataTestId,\n icon,\n ref,\n style,\n}: NavIconProps): React.JSX.Element {\n return (\n <span\n className={cx(styles.base, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {icon}\n </span>\n );\n}\n\nNavIcon.displayName = 'NavIcon';\n"]}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { Item } from './chunk-
|
|
1
|
+
import { Item } from './chunk-QY6OMQW6.js';
|
|
2
2
|
import { getStatusMessageID, getDescribedBy } from './chunk-WOIWI2UO.js';
|
|
3
|
-
import { fieldRecipe } from './chunk-
|
|
4
|
-
import { Spinner } from './chunk-
|
|
5
|
-
import { Text } from './chunk-
|
|
6
|
-
import { VisuallyHidden } from './chunk-
|
|
7
|
-
import { Tooltip } from './chunk-
|
|
3
|
+
import { fieldRecipe } from './chunk-U7ALNPFJ.js';
|
|
4
|
+
import { Spinner } from './chunk-6ULCJ3XZ.js';
|
|
5
|
+
import { Text } from './chunk-QRFDPG34.js';
|
|
6
|
+
import { VisuallyHidden } from './chunk-7BSFKG7N.js';
|
|
7
|
+
import { Tooltip } from './chunk-3CJC4QE6.js';
|
|
8
8
|
import { mergeRefs } from './chunk-SGLIDI6R.js';
|
|
9
9
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
10
10
|
import { Icon } from './chunk-7T3SWOY7.js';
|
|
11
|
-
import { sva } from './chunk-
|
|
11
|
+
import { sva } from './chunk-IAVZKGZS.js';
|
|
12
12
|
import { cx } from './chunk-PPNETWIP.js';
|
|
13
13
|
import { Minus, Check, Info } from 'lucide-react';
|
|
14
14
|
import { useId, useRef, useEffect } from 'react';
|
|
@@ -238,5 +238,5 @@ function CheckboxInput({
|
|
|
238
238
|
CheckboxInput.displayName = "CheckboxInput";
|
|
239
239
|
|
|
240
240
|
export { CheckboxInput };
|
|
241
|
-
//# sourceMappingURL=chunk-
|
|
242
|
-
//# sourceMappingURL=chunk-
|
|
241
|
+
//# sourceMappingURL=chunk-K3XHXWBW.js.map
|
|
242
|
+
//# sourceMappingURL=chunk-K3XHXWBW.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CheckboxInput/CheckboxInput.recipe.ts","../src/components/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"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","file":"chunk-PQRIV5XU.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const checkboxInputRecipe = sva({\n slots: [\n 'root',\n 'boxWrap',\n 'input',\n 'box',\n 'icon',\n 'label',\n 'indicator',\n 'tooltipIcon',\n ],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n },\n boxWrap: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n },\n input: {\n position: 'absolute',\n inset: 0,\n opacity: 0,\n cursor: 'pointer',\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n box: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'sm',\n bg: 'bg',\n color: 'fg.onPrimary',\n pointerEvents: 'none',\n _peerFocusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n icon: {\n w: '70%',\n h: '70%',\n },\n label: {\n cursor: 'pointer',\n },\n indicator: {\n fontWeight: 'normal',\n color: 'fg.muted',\n },\n tooltipIcon: {\n display: 'inline-flex',\n color: 'fg.muted',\n },\n },\n variants: {\n size: {\n sm: {box: {w: '4.5', h: '4.5'}},\n md: {box: {w: '5.5', h: '5.5'}},\n },\n isChecked: {\n true: {box: {bg: 'primary', borderColor: 'primary'}},\n false: {},\n },\n isDisabled: {\n true: {\n box: {opacity: 0.55},\n label: {cursor: 'not-allowed'},\n },\n false: {},\n },\n },\n defaultVariants: {\n size: 'md',\n isChecked: false,\n isDisabled: false,\n },\n});\n\nexport type CheckboxInputVariants = RecipeVariantProps<\n typeof checkboxInputRecipe\n>;\n","import {Check, Info, Minus} from 'lucide-react';\nimport {\n useEffect,\n useId,\n useRef,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {VisuallyHidden} from '../../internal/VisuallyHidden';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {mergeRefs} from '../../internal/mergeRefs';\nimport type {FieldNecessity, InputStatus} from '../Field';\nimport {fieldRecipe} from '../Field/Field.recipe';\nimport {getDescribedBy, getStatusMessageID} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Item} from '../Item';\nimport {Spinner} from '../Spinner';\nimport {Text} from '../Text';\nimport {Tooltip} from '../Tooltip';\nimport {checkboxInputRecipe} from './CheckboxInput.recipe';\n\nexport type CheckboxInputSize = 'sm' | 'md';\nexport type CheckboxInputValue = boolean | 'indeterminate';\n\nexport type CheckboxInputProps = {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label.\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 'inline'\n */\n endContentPosition?: 'end' | 'inline';\n /**\n * HTML name attribute for native form submission.\n */\n htmlName?: string;\n /**\n * Whether the checkbox is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the checkbox is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Whether the checkbox is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Field label text.\n */\n label: string;\n /**\n * Optional content shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called when the checked state changes.\n */\n onChange: (checked: boolean, event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Called when the input receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the checkbox.\n * @default 'md'\n */\n size?: CheckboxInputSize;\n /**\n * Content rendered after the checkbox control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Validation status displayed below the checkbox.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Current checked state: true, false, or 'indeterminate'.\n */\n value: CheckboxInputValue;\n} & FieldNecessity;\n\n/**\n * A checkbox input with label, description, and validation support.\n */\nexport function CheckboxInput({\n label,\n value,\n onChange,\n description,\n endContent,\n endContentPosition = 'inline',\n htmlName,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isReadOnly = false,\n isLoading = false,\n status,\n labelIcon,\n labelTooltip,\n size = 'md',\n startContent,\n onFocus,\n onBlur,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: CheckboxInputProps): React.JSX.Element {\n const inputId = useId();\n const descriptionId = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(\n isReactNode(description) ? descriptionId : undefined,\n statusMessageID,\n );\n const isIndeterminate = value === 'indeterminate';\n const isChecked = value === true;\n const isCheckedOrIndeterminate = isChecked || isIndeterminate;\n const classes = checkboxInputRecipe({\n size,\n isChecked: isCheckedOrIndeterminate,\n isDisabled,\n });\n\n useEffect(() => {\n if (inputRef.current != null) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n const statusText = isOptional ? 'Optional' : isRequired ? 'Required' : null;\n\n const control = (\n <span className={classes.boxWrap}>\n <input\n aria-busy={isLoading || undefined}\n aria-checked={isIndeterminate ? 'mixed' : undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-readonly={isReadOnly || undefined}\n checked={isChecked}\n // `peer` is the marker class Panda's `_peerFocusVisible` selector on\n // the box targets (`.peer:is(:focus-visible,…) ~ &`); without it the\n // box's keyboard focus ring never renders.\n className={cx('peer', classes.input)}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => {\n if (isReadOnly) {\n event.preventDefault();\n return;\n }\n onChange(event.target.checked, event);\n }}\n onClick={event => {\n // For checkboxes the native toggle happens during `click`, before\n // `change` fires, so blocking only `onChange` lets the box flip\n // momentarily until React resets it. Preventing the click stops the\n // toggle outright — and covers label clicks and Space-key activation,\n // which both dispatch a click on the input.\n if (isReadOnly) {\n event.preventDefault();\n }\n }}\n onFocus={onFocus}\n readOnly={isReadOnly}\n ref={mergeRefs(ref, inputRef)}\n required={isRequired}\n type=\"checkbox\"\n />\n <span aria-hidden=\"true\" className={classes.box}>\n {isLoading ? (\n <Spinner\n size=\"sm\"\n variant={isCheckedOrIndeterminate ? 'onMedia' : 'default'}\n />\n ) : isIndeterminate ? (\n <Icon className={classes.icon} icon={Minus} />\n ) : isChecked ? (\n <Icon className={classes.icon} icon={Check} />\n ) : null}\n </span>\n </span>\n );\n\n const labelContent = (\n <>\n {labelIcon != null ? (\n <Icon color=\"secondary\" icon={labelIcon} size=\"sm\" />\n ) : null}\n {label}\n {statusText != null ? (\n <Text as=\"span\" className={classes.indicator} type=\"supporting\">\n <span aria-hidden=\"true\"> · </span>\n {statusText}\n </Text>\n ) : null}\n {isReactNode(labelTooltip) ? (\n <Tooltip content={labelTooltip}>\n <span className={classes.tooltipIcon}>\n <Icon icon={Info} size=\"sm\" />\n </span>\n </Tooltip>\n ) : null}\n </>\n );\n\n const labelNode = (\n <label className={classes.label} htmlFor={inputId}>\n {isLabelHidden ? (\n <VisuallyHidden>{labelContent}</VisuallyHidden>\n ) : (\n labelContent\n )}\n </label>\n );\n\n const statusNode =\n status?.message != null ? (\n <div\n aria-live={status.type === 'error' ? 'assertive' : 'polite'}\n className={\n fieldRecipe({\n statusType: status.type,\n statusVariant: 'detached',\n }).status\n }\n id={statusMessageID}\n role={status.type === 'error' ? 'alert' : 'status'}>\n {status.message}\n </div>\n ) : null;\n\n const item = (\n <Item\n description={\n isReactNode(description) ? (\n <span id={descriptionId}>{description}</span>\n ) : undefined\n }\n endContent={endContent}\n endContentPosition={endContentPosition}\n isDisabled={isDisabled}\n label={labelNode}\n leadingContent={control}\n startContent={startContent}\n />\n );\n\n return (\n <div className={cx(classes.root, className)} style={style}>\n {item}\n {statusNode}\n </div>\n );\n}\n\nCheckboxInput.displayName = 'CheckboxInput';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/CheckboxInput/CheckboxInput.recipe.ts","../src/components/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"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","file":"chunk-K3XHXWBW.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const checkboxInputRecipe = sva({\n slots: [\n 'root',\n 'boxWrap',\n 'input',\n 'box',\n 'icon',\n 'label',\n 'indicator',\n 'tooltipIcon',\n ],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n },\n boxWrap: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n },\n input: {\n position: 'absolute',\n inset: 0,\n opacity: 0,\n cursor: 'pointer',\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n box: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'sm',\n bg: 'bg',\n color: 'fg.onPrimary',\n pointerEvents: 'none',\n _peerFocusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n icon: {\n w: '70%',\n h: '70%',\n },\n label: {\n cursor: 'pointer',\n },\n indicator: {\n fontWeight: 'normal',\n color: 'fg.muted',\n },\n tooltipIcon: {\n display: 'inline-flex',\n color: 'fg.muted',\n },\n },\n variants: {\n size: {\n sm: {box: {w: '4.5', h: '4.5'}},\n md: {box: {w: '5.5', h: '5.5'}},\n },\n isChecked: {\n true: {box: {bg: 'primary', borderColor: 'primary'}},\n false: {},\n },\n isDisabled: {\n true: {\n box: {opacity: 0.55},\n label: {cursor: 'not-allowed'},\n },\n false: {},\n },\n },\n defaultVariants: {\n size: 'md',\n isChecked: false,\n isDisabled: false,\n },\n});\n\nexport type CheckboxInputVariants = RecipeVariantProps<\n typeof checkboxInputRecipe\n>;\n","import {Check, Info, Minus} from 'lucide-react';\nimport {\n useEffect,\n useId,\n useRef,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {VisuallyHidden} from '../../internal/VisuallyHidden';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {mergeRefs} from '../../internal/mergeRefs';\nimport type {FieldNecessity, InputStatus} from '../Field';\nimport {fieldRecipe} from '../Field/Field.recipe';\nimport {getDescribedBy, getStatusMessageID} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Item} from '../Item';\nimport {Spinner} from '../Spinner';\nimport {Text} from '../Text';\nimport {Tooltip} from '../Tooltip';\nimport {checkboxInputRecipe} from './CheckboxInput.recipe';\n\nexport type CheckboxInputSize = 'sm' | 'md';\nexport type CheckboxInputValue = boolean | 'indeterminate';\n\nexport type CheckboxInputProps = {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label.\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 'inline'\n */\n endContentPosition?: 'end' | 'inline';\n /**\n * HTML name attribute for native form submission.\n */\n htmlName?: string;\n /**\n * Whether the checkbox is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the checkbox is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Whether the checkbox is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Field label text.\n */\n label: string;\n /**\n * Optional content shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called when the checked state changes.\n */\n onChange: (checked: boolean, event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Called when the input receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the checkbox.\n * @default 'md'\n */\n size?: CheckboxInputSize;\n /**\n * Content rendered after the checkbox control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Validation status displayed below the checkbox.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Current checked state: true, false, or 'indeterminate'.\n */\n value: CheckboxInputValue;\n} & FieldNecessity;\n\n/**\n * A checkbox input with label, description, and validation support.\n */\nexport function CheckboxInput({\n label,\n value,\n onChange,\n description,\n endContent,\n endContentPosition = 'inline',\n htmlName,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isReadOnly = false,\n isLoading = false,\n status,\n labelIcon,\n labelTooltip,\n size = 'md',\n startContent,\n onFocus,\n onBlur,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: CheckboxInputProps): React.JSX.Element {\n const inputId = useId();\n const descriptionId = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(\n isReactNode(description) ? descriptionId : undefined,\n statusMessageID,\n );\n const isIndeterminate = value === 'indeterminate';\n const isChecked = value === true;\n const isCheckedOrIndeterminate = isChecked || isIndeterminate;\n const classes = checkboxInputRecipe({\n size,\n isChecked: isCheckedOrIndeterminate,\n isDisabled,\n });\n\n useEffect(() => {\n if (inputRef.current != null) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n const statusText = isOptional ? 'Optional' : isRequired ? 'Required' : null;\n\n const control = (\n <span className={classes.boxWrap}>\n <input\n aria-busy={isLoading || undefined}\n aria-checked={isIndeterminate ? 'mixed' : undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-readonly={isReadOnly || undefined}\n checked={isChecked}\n // `peer` is the marker class Panda's `_peerFocusVisible` selector on\n // the box targets (`.peer:is(:focus-visible,…) ~ &`); without it the\n // box's keyboard focus ring never renders.\n className={cx('peer', classes.input)}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => {\n if (isReadOnly) {\n event.preventDefault();\n return;\n }\n onChange(event.target.checked, event);\n }}\n onClick={event => {\n // For checkboxes the native toggle happens during `click`, before\n // `change` fires, so blocking only `onChange` lets the box flip\n // momentarily until React resets it. Preventing the click stops the\n // toggle outright — and covers label clicks and Space-key activation,\n // which both dispatch a click on the input.\n if (isReadOnly) {\n event.preventDefault();\n }\n }}\n onFocus={onFocus}\n readOnly={isReadOnly}\n ref={mergeRefs(ref, inputRef)}\n required={isRequired}\n type=\"checkbox\"\n />\n <span aria-hidden=\"true\" className={classes.box}>\n {isLoading ? (\n <Spinner\n size=\"sm\"\n variant={isCheckedOrIndeterminate ? 'onMedia' : 'default'}\n />\n ) : isIndeterminate ? (\n <Icon className={classes.icon} icon={Minus} />\n ) : isChecked ? (\n <Icon className={classes.icon} icon={Check} />\n ) : null}\n </span>\n </span>\n );\n\n const labelContent = (\n <>\n {labelIcon != null ? (\n <Icon color=\"secondary\" icon={labelIcon} size=\"sm\" />\n ) : null}\n {label}\n {statusText != null ? (\n <Text as=\"span\" className={classes.indicator} type=\"supporting\">\n <span aria-hidden=\"true\"> · </span>\n {statusText}\n </Text>\n ) : null}\n {isReactNode(labelTooltip) ? (\n <Tooltip content={labelTooltip}>\n <span className={classes.tooltipIcon}>\n <Icon icon={Info} size=\"sm\" />\n </span>\n </Tooltip>\n ) : null}\n </>\n );\n\n const labelNode = (\n <label className={classes.label} htmlFor={inputId}>\n {isLabelHidden ? (\n <VisuallyHidden>{labelContent}</VisuallyHidden>\n ) : (\n labelContent\n )}\n </label>\n );\n\n const statusNode =\n status?.message != null ? (\n <div\n aria-live={status.type === 'error' ? 'assertive' : 'polite'}\n className={\n fieldRecipe({\n statusType: status.type,\n statusVariant: 'detached',\n }).status\n }\n id={statusMessageID}\n role={status.type === 'error' ? 'alert' : 'status'}>\n {status.message}\n </div>\n ) : null;\n\n const item = (\n <Item\n description={\n isReactNode(description) ? (\n <span id={descriptionId}>{description}</span>\n ) : undefined\n }\n endContent={endContent}\n endContentPosition={endContentPosition}\n isDisabled={isDisabled}\n label={labelNode}\n leadingContent={control}\n startContent={startContent}\n />\n );\n\n return (\n <div className={cx(classes.root, className)} style={style}>\n {item}\n {statusNode}\n </div>\n );\n}\n\nCheckboxInput.displayName = 'CheckboxInput';\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
|
|
5
5
|
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
|
|
8
8
|
// src/components/Blockquote/Blockquote.recipe.ts
|
|
9
|
-
var blockquoteRecipe =
|
|
9
|
+
var blockquoteRecipe = chunkZ6RT3WPE_cjs.sva({
|
|
10
10
|
slots: ["root", "cite"],
|
|
11
11
|
base: {
|
|
12
12
|
root: {
|
|
@@ -52,5 +52,5 @@ function Blockquote({
|
|
|
52
52
|
Blockquote.displayName = "Blockquote";
|
|
53
53
|
|
|
54
54
|
exports.Blockquote = Blockquote;
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
55
|
+
//# sourceMappingURL=chunk-K4ZJNQTX.cjs.map
|
|
56
|
+
//# sourceMappingURL=chunk-K4ZJNQTX.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Blockquote/Blockquote.recipe.ts","../src/components/Blockquote/Blockquote.tsx"],"names":["sva","jsxs","cx","isReactNode","jsx"],"mappings":";;;;;;;;AAEO,IAAM,mBAAmBA,qBAAA,CAAI;AAAA,EAClC,KAAA,EAAO,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM;AAAA,MACJ,sBAAA,EAAwB,YAAA;AAAA,MACxB,sBAAA,EAAwB,OAAA;AAAA,MACxB,sBAAA,EAAwB,mBAAA;AAAA,MACxB,EAAA,EAAI,GAAA;AAAA,MACJ,KAAA,EAAO,UAAA;AAAA,MACP,CAAA,EAAG;AAAA,KACL;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,OAAA;AAAA,MACT,EAAA,EAAI,GAAA;AAAA,MACJ,QAAA,EAAU,IAAA;AAAA,MACV,UAAA,EAAY,QAAA;AAAA,MACZ,SAAA,EAAW;AAAA;AACb;AAEJ,CAAC,CAAA;ACiBM,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,GAAA;AAAA,EACA;AACF,CAAA,EAAuC;AACrC,EAAA,MAAM,UAAU,gBAAA,EAAiB;AAEjC,EAAA,uBACEC,eAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,oBAAA,CAAG,OAAA,CAAQ,IAAA,EAAM,SAAS,CAAA;AAAA,MACrC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACC,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACAC,6BAAA,CAAY,IAAI,CAAA,mBACfC,cAAA,CAAC,QAAA,EAAA,EACC,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,OAAA,CAAQ,IAAA,EAAO,QAAA,EAAA,IAAA,EAAK,CAAA,EACvC,CAAA,GACE;AAAA;AAAA;AAAA,GACN;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/Blockquote/Blockquote.recipe.ts","../src/components/Blockquote/Blockquote.tsx"],"names":["sva","jsxs","cx","isReactNode","jsx"],"mappings":";;;;;;;;AAEO,IAAM,mBAAmBA,qBAAA,CAAI;AAAA,EAClC,KAAA,EAAO,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,EACtB,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM;AAAA,MACJ,sBAAA,EAAwB,YAAA;AAAA,MACxB,sBAAA,EAAwB,OAAA;AAAA,MACxB,sBAAA,EAAwB,mBAAA;AAAA,MACxB,EAAA,EAAI,GAAA;AAAA,MACJ,KAAA,EAAO,UAAA;AAAA,MACP,CAAA,EAAG;AAAA,KACL;AAAA,IACA,IAAA,EAAM;AAAA,MACJ,OAAA,EAAS,OAAA;AAAA,MACT,EAAA,EAAI,GAAA;AAAA,MACJ,QAAA,EAAU,IAAA;AAAA,MACV,UAAA,EAAY,QAAA;AAAA,MACZ,SAAA,EAAW;AAAA;AACb;AAEJ,CAAC,CAAA;ACiBM,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,GAAA;AAAA,EACA;AACF,CAAA,EAAuC;AACrC,EAAA,MAAM,UAAU,gBAAA,EAAiB;AAEjC,EAAA,uBACEC,eAAA;AAAA,IAAC,YAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAWC,oBAAA,CAAG,OAAA,CAAQ,IAAA,EAAM,SAAS,CAAA;AAAA,MACrC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACC,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,QACAC,6BAAA,CAAY,IAAI,CAAA,mBACfC,cAAA,CAAC,QAAA,EAAA,EACC,QAAA,kBAAAA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,OAAA,CAAQ,IAAA,EAAO,QAAA,EAAA,IAAA,EAAK,CAAA,EACvC,CAAA,GACE;AAAA;AAAA;AAAA,GACN;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA","file":"chunk-K4ZJNQTX.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const blockquoteRecipe = sva({\n slots: ['root', 'cite'],\n base: {\n root: {\n borderInlineStartWidth: 'emphasized',\n borderInlineStartStyle: 'solid',\n borderInlineStartColor: 'border.emphasized',\n ps: '4',\n color: 'fg.muted',\n m: 0,\n },\n cite: {\n display: 'block',\n mt: '2',\n fontSize: 'sm',\n lineHeight: 'normal',\n fontStyle: 'normal',\n },\n },\n});\n\nexport type BlockquoteVariants = RecipeVariantProps<typeof blockquoteRecipe>;\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {blockquoteRecipe} from './Blockquote.recipe';\n\n/**\n * Styled block quotation with an optional citation footer.\n */\nexport interface BlockquoteProps {\n /**\n * Quoted content.\n */\n children: ReactNode;\n /**\n * Citation text rendered in a footer below the quote.\n */\n cite?: 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 * Ref forwarded to the blockquote element.\n */\n ref?: Ref<HTMLQuoteElement>;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\n/**\n * Styled block quotation with an optional citation footer.\n */\nexport function Blockquote({\n children,\n cite,\n className,\n 'data-testid': dataTestId,\n ref,\n style,\n}: BlockquoteProps): React.JSX.Element {\n const classes = blockquoteRecipe();\n\n return (\n <blockquote\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {children}\n {isReactNode(cite) ? (\n <footer>\n <cite className={classes.cite}>{cite}</cite>\n </footer>\n ) : null}\n </blockquote>\n );\n}\n\nBlockquote.displayName = 'Blockquote';\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkDVGLYE3G_cjs = require('./chunk-DVGLYE3G.cjs');
|
|
4
|
+
var chunkYY6KJO5Z_cjs = require('./chunk-YY6KJO5Z.cjs');
|
|
5
5
|
var chunk2P6D43V2_cjs = require('./chunk-2P6D43V2.cjs');
|
|
6
6
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
7
|
-
var
|
|
7
|
+
var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
|
|
8
8
|
var chunkJRBQKFVO_cjs = require('./chunk-JRBQKFVO.cjs');
|
|
9
9
|
var react = require('react');
|
|
10
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -32,7 +32,7 @@ var radioGroupRecipe = chunkJRBQKFVO_cjs.cva({
|
|
|
32
32
|
orientation: "vertical"
|
|
33
33
|
}
|
|
34
34
|
});
|
|
35
|
-
var radioGroupItemRecipe =
|
|
35
|
+
var radioGroupItemRecipe = chunkZ6RT3WPE_cjs.sva({
|
|
36
36
|
slots: ["controlWrap", "input", "radio", "dot", "label"],
|
|
37
37
|
base: {
|
|
38
38
|
controlWrap: {
|
|
@@ -158,9 +158,9 @@ function RadioGroup({
|
|
|
158
158
|
}),
|
|
159
159
|
[isDisabled, isRequired, nameId, onChange, orientation, size, value]
|
|
160
160
|
);
|
|
161
|
-
const necessity =
|
|
161
|
+
const necessity = chunkYY6KJO5Z_cjs.getNecessity(isOptional, isRequired);
|
|
162
162
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
163
|
-
|
|
163
|
+
chunkYY6KJO5Z_cjs.Field,
|
|
164
164
|
{
|
|
165
165
|
className,
|
|
166
166
|
"data-testid": dataTestId,
|
|
@@ -235,7 +235,7 @@ function RadioGroupItem({
|
|
|
235
235
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: classes.radio, children: isChecked ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.dot }) : null })
|
|
236
236
|
] });
|
|
237
237
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
238
|
-
|
|
238
|
+
chunkDVGLYE3G_cjs.Item,
|
|
239
239
|
{
|
|
240
240
|
className,
|
|
241
241
|
"data-testid": dataTestId,
|
|
@@ -256,5 +256,5 @@ RadioGroupItem.displayName = "RadioGroupItem";
|
|
|
256
256
|
|
|
257
257
|
exports.RadioGroup = RadioGroup;
|
|
258
258
|
exports.RadioGroupItem = RadioGroupItem;
|
|
259
|
-
//# sourceMappingURL=chunk-
|
|
260
|
-
//# sourceMappingURL=chunk-
|
|
259
|
+
//# sourceMappingURL=chunk-KDR5DCYL.cjs.map
|
|
260
|
+
//# sourceMappingURL=chunk-KDR5DCYL.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/RadioGroup/RadioGroup.recipe.ts","../src/components/RadioGroup/RadioGroupContext.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/RadioGroup/RadioGroupItem.tsx"],"names":["cva","sva","createContext","useId","isReactNode","getStatusMessageID","getDescribedBy","useMemo","getNecessity","jsx","Field","use","jsxs","Item"],"mappings":";;;;;;;;;;;;AAKO,IAAM,mBAAmBA,qBAAA,CAAI;AAAA,EAClC,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS;AAAA,GACX;AAAA,EACA,QAAA,EAAU;AAAA,IACR,WAAA,EAAa;AAAA,MACX,QAAA,EAAU;AAAA,QACR,aAAA,EAAe,QAAA;AAAA,QACf,GAAA,EAAK;AAAA,OACP;AAAA,MACA,UAAA,EAAY;AAAA,QACV,aAAA,EAAe,KAAA;AAAA,QACf,QAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAW,GAAA;AAAA,QACX,MAAA,EAAQ;AAAA;AACV;AACF,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,WAAA,EAAa;AAAA;AAEjB,CAAC,CAAA;AAQM,IAAM,uBAAuBC,qBAAA,CAAI;AAAA,EACtC,OAAO,CAAC,aAAA,EAAe,OAAA,EAAS,OAAA,EAAS,OAAO,OAAO,CAAA;AAAA,EACvD,IAAA,EAAM;AAAA,IACJ,WAAA,EAAa;AAAA,MACX,QAAA,EAAU,UAAA;AAAA,MACV,OAAA,EAAS,aAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,UAAA,EAAY,CAAA;AAAA,MACZ,YAAA,EAAc,MAAA;AAAA,MACd,SAAA,EAAW,SAAA;AAAA,MACX,4BAAA,EAA8B;AAAA,QAC5B,YAAA,EAAc,OAAA;AAAA,QACd,YAAA,EAAc,OAAA;AAAA,QACd,YAAA,EAAc,SAAA;AAAA,QACd,aAAA,EAAe;AAAA;AACjB,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,QAAA,EAAU,UAAA;AAAA,MACV,KAAA,EAAO,CAAA;AAAA,MACP,CAAA,EAAG,CAAA;AAAA,MACH,CAAA,EAAG,CAAA;AAAA,MACH,OAAA,EAAS,CAAA;AAAA,MACT,MAAA,EAAQ,SAAA;AAAA,MACR,MAAA,EAAQ,CAAA;AAAA,MACR,SAAA,EAAW;AAAA,QACT,MAAA,EAAQ;AAAA;AACV,KACF;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,aAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,WAAA,EAAa,SAAA;AAAA,MACb,WAAA,EAAa,OAAA;AAAA,MACb,WAAA,EAAa,mBAAA;AAAA,MACb,YAAA,EAAc,MAAA;AAAA,MACd,EAAA,EAAI,IAAA;AAAA,MACJ,aAAA,EAAe;AAAA,KACjB;AAAA,IACA,GAAA,EAAK;AAAA,MACH,YAAA,EAAc,MAAA;AAAA,MACd,EAAA,EAAI;AAAA,KACN;AAAA,IACA,KAAA,EAAO;AAAA,MACL,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI;AAAA,QACF,WAAA,EAAa,EAAC,CAAA,EAAG,GAAA,EAAK,GAAG,GAAA,EAAG;AAAA,QAC5B,KAAA,EAAO,EAAC,CAAA,EAAG,KAAA,EAAO,GAAG,KAAA,EAAK;AAAA,QAC1B,GAAA,EAAK,EAAC,CAAA,EAAG,GAAA,EAAK,GAAG,GAAA;AAAG,OACtB;AAAA,MACA,EAAA,EAAI;AAAA,QACF,WAAA,EAAa,EAAC,CAAA,EAAG,GAAA,EAAK,GAAG,GAAA,EAAG;AAAA,QAC5B,KAAA,EAAO,EAAC,CAAA,EAAG,KAAA,EAAO,GAAG,KAAA,EAAK;AAAA,QAC1B,GAAA,EAAK,EAAC,CAAA,EAAG,KAAA,EAAO,GAAG,KAAA;AAAK,OAC1B;AAAA,MACA,EAAA,EAAI;AAAA,QACF,WAAA,EAAa,EAAC,CAAA,EAAG,GAAA,EAAK,GAAG,GAAA,EAAG;AAAA,QAC5B,KAAA,EAAO,EAAC,CAAA,EAAG,KAAA,EAAO,GAAG,KAAA,EAAK;AAAA,QAC1B,GAAA,EAAK,EAAC,CAAA,EAAG,GAAA,EAAK,GAAG,GAAA;AAAG;AACtB,KACF;AAAA,IACA,SAAA,EAAW;AAAA,MACT,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,EAAC,EAAA,EAAI,SAAA,EAAW,aAAa,SAAA;AAAS;AAC/C,KACF;AAAA,IACA,UAAA,EAAY;AAAA,MACV,IAAA,EAAM;AAAA,QACJ,KAAA,EAAO,EAAC,OAAA,EAAS,IAAA,EAAI;AAAA,QACrB,KAAA,EAAO,EAAC,KAAA,EAAO,aAAA,EAAe,QAAQ,aAAA;AAAa;AACrD;AACF,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,IAAA;AAAA,IACN,SAAA,EAAW,KAAA;AAAA,IACX,UAAA,EAAY;AAAA;AAEhB,CAAC,CAAA;ACvGM,IAAM,iBAAA,GAAoBC,mBAAA;AAAA,EAC/B;AACF,CAAA;AAEA,iBAAA,CAAkB,WAAA,GAAc,mBAAA;AC4EzB,SAAS,UAAA,CAAW;AAAA,EACzB,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,WAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,aAAA,GAAgB,KAAA;AAAA,EAChB,UAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA,GAAc,UAAA;AAAA,EACd,GAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,MAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAAuC;AACrC,EAAA,MAAM,SAASC,WAAA,EAAM;AACrB,EAAA,MAAM,UAAUA,WAAA,EAAM;AACtB,EAAA,MAAM,OAAA,GAAU,GAAG,OAAO,CAAA,MAAA,CAAA;AAC1B,EAAA,MAAM,gBAAgBC,6BAAA,CAAY,WAAW,CAAA,GACzC,CAAA,EAAG,OAAO,CAAA,YAAA,CAAA,GACV,MAAA;AACJ,EAAA,MAAM,eAAA,GAAkBC,oCAAA,CAAmB,OAAA,EAAS,MAAM,CAAA;AAC1D,EAAA,MAAM,WAAA,GAAcC,gCAAA,CAAe,aAAA,EAAe,eAAe,CAAA;AACjE,EAAA,MAAM,YAAA,GAAeC,aAAA;AAAA,IACnB,OAAO;AAAA,MACL,UAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAA,EAAM,MAAA;AAAA,MACN,QAAA;AAAA,MACA,WAAA;AAAA,MACA,IAAA;AAAA,MACA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,UAAA,EAAY,UAAA,EAAY,QAAQ,QAAA,EAAU,WAAA,EAAa,MAAM,KAAK;AAAA,GACrE;AAEA,EAAA,MAAM,SAAA,GAAYC,8BAAA,CAAa,UAAA,EAAY,UAAU,CAAA;AAErD,EAAA,uBACEC,cAAA;AAAA,IAACC,uBAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,OAAA;AAAA,MACA,UAAA;AAAA,MACA,aAAA;AAAA,MACC,GAAG,SAAA;AAAA,MACJ,KAAA;AAAA,MACA,OAAA,EAAQ,MAAA;AAAA,MACR,OAAA;AAAA,MACA,YAAA;AAAA,MACA,GAAA;AAAA,MACA,MAAA,EACE,UAAU,IAAA,GAAO,MAAA,GAAY,EAAC,GAAG,MAAA,EAAQ,WAAW,eAAA,EAAe;AAAA,MAErE,aAAA,EAAc,UAAA;AAAA,MACd,KAAA;AAAA,MACA,QAAA,kBAAAD,cAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,kBAAA,EAAkB,WAAA;AAAA,UAClB,cAAA,EAAc,MAAA,EAAQ,IAAA,KAAS,OAAA,IAAW,MAAA;AAAA,UAC1C,iBAAA,EAAiB,OAAA;AAAA,UACjB,kBAAA,EAAkB,WAAA;AAAA,UAClB,iBAAe,UAAA,IAAc,MAAA;AAAA,UAC7B,SAAA,EAAW,gBAAA,CAAiB,EAAC,WAAA,EAAY,CAAA;AAAA,UACzC,EAAA,EAAI,OAAA;AAAA,UACJ,IAAA,EAAK,YAAA;AAAA,UACL,QAAA,kBAAAA,cAAA,CAAC,iBAAA,EAAA,EAAkB,KAAA,EAAO,YAAA,EAAe,QAAA,EAAS;AAAA;AAAA;AACpD;AAAA,GACF;AAEJ;AAEA,UAAA,CAAW,WAAA,GAAc,YAAA;ACrHlB,SAAS,cAAA,CAAe;AAAA,EAC7B,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,WAAA;AAAA,EACA,UAAA;AAAA,EACA,YAAY,cAAA,GAAiB,KAAA;AAAA,EAC7B,KAAA;AAAA,EACA,GAAA;AAAA,EACA,YAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA2C;AACzC,EAAA,MAAM,OAAA,GAAUE,UAAI,iBAAiB,CAAA;AACrC,EAAA,IAAI,WAAW,IAAA,EAAM;AACnB,IAAA,MAAM,IAAI,MAAM,iDAAiD,CAAA;AAAA,EACnE;AAEA,EAAA,MAAM,KAAKR,WAAAA,EAAM;AACjB,EAAA,MAAM,gBAAgBA,WAAAA,EAAM;AAC5B,EAAA,MAAM,UAAA,GAAa,QAAQ,UAAA,IAAc,cAAA;AACzC,EAAA,MAAM,SAAA,GAAY,QAAQ,KAAA,KAAU,KAAA;AACpC,EAAA,MAAM,OAAO,OAAA,CAAQ,IAAA;AACrB,EAAA,MAAM,UAAU,oBAAA,CAAqB,EAAC,IAAA,EAAM,SAAA,EAAW,YAAW,CAAA;AAClE,EAAA,MAAM,OAAA,mBACJS,eAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,QAAQ,WAAA,EACvB,QAAA,EAAA;AAAA,oBAAAH,cAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,kBAAA,EAAkBL,6BAAA,CAAY,WAAW,CAAA,GAAI,aAAA,GAAgB,MAAA;AAAA,QAC7D,OAAA,EAAS,SAAA;AAAA,QACT,WAAW,OAAA,CAAQ,KAAA;AAAA,QACnB,QAAA,EAAU,UAAA;AAAA,QACV,EAAA;AAAA,QACA,MAAM,OAAA,CAAQ,IAAA;AAAA,QACd,QAAA,EAAU,MAAM,OAAA,CAAQ,QAAA,CAAS,KAAK,CAAA;AAAA,QACtC,UAAU,OAAA,CAAQ,UAAA;AAAA,QAClB,IAAA,EAAK,OAAA;AAAA,QACL;AAAA;AAAA,KACF;AAAA,oBACAK,cAAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,MAAA,EAAO,WAAW,OAAA,CAAQ,KAAA,EACzC,QAAA,EAAA,SAAA,mBAAYA,eAAC,MAAA,EAAA,EAAK,SAAA,EAAW,OAAA,CAAQ,GAAA,EAAK,IAAK,IAAA,EAClD;AAAA,GAAA,EACF,CAAA;AAGF,EAAA,uBACEA,cAAAA;AAAA,IAACI,sBAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,aAAA,EAAa,UAAA;AAAA,MACb,WAAA,EACET,6BAAA,CAAY,WAAW,CAAA,mBACrBK,eAAC,MAAA,EAAA,EAAK,EAAA,EAAI,aAAA,EAAgB,QAAA,EAAA,WAAA,EAAY,CAAA,GACpC,MAAA;AAAA,MAEN,UAAA;AAAA,MACA,kBAAA,EAAmB,QAAA;AAAA,MACnB,UAAA;AAAA,MACA,KAAA,kBACEA,cAAAA,CAAC,OAAA,EAAA,EAAM,WAAW,OAAA,CAAQ,KAAA,EAAO,OAAA,EAAS,EAAA,EACvC,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,MAEF,cAAA,EAAgB,OAAA;AAAA,MAChB,GAAA;AAAA,MACA,YAAA;AAAA,MACA,KAAA;AAAA,MACA,KAAA,EAAO,OAAA,CAAQ,WAAA,KAAgB,YAAA,GAAe,MAAA,GAAS;AAAA;AAAA,GACzD;AAEJ;AAEA,cAAA,CAAe,WAAA,GAAc,gBAAA","file":"chunk-CZM5FAWL.cjs","sourcesContent":["import {cva, sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Group container layout — single element with an orientation variant.\n */\nexport const radioGroupRecipe = cva({\n base: {\n display: 'flex',\n },\n variants: {\n orientation: {\n vertical: {\n flexDirection: 'column',\n gap: '0.5',\n },\n horizontal: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n columnGap: '4',\n rowGap: '0',\n },\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport type RadioGroupVariants = RecipeVariantProps<typeof radioGroupRecipe>;\n\n/**\n * Individual radio item — multi-slot recipe for the control, its visual\n * radio circle, the selection dot, and the clickable label.\n */\nexport const radioGroupItemRecipe = sva({\n slots: ['controlWrap', 'input', 'radio', 'dot', 'label'],\n base: {\n controlWrap: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n borderRadius: 'full',\n isolation: 'isolate',\n '&:has(input:focus-visible)': {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n input: {\n position: 'absolute',\n inset: 0,\n m: 0,\n p: 0,\n opacity: 0,\n cursor: 'pointer',\n zIndex: 1,\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n radio: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'full',\n bg: 'bg',\n pointerEvents: 'none',\n },\n dot: {\n borderRadius: 'full',\n bg: 'fg.onPrimary',\n },\n label: {\n cursor: 'pointer',\n },\n },\n variants: {\n size: {\n sm: {\n controlWrap: {w: '5', h: '5'},\n radio: {w: '4.5', h: '4.5'},\n dot: {w: '2', h: '2'},\n },\n md: {\n controlWrap: {w: '6', h: '6'},\n radio: {w: '5.5', h: '5.5'},\n dot: {w: '2.5', h: '2.5'},\n },\n lg: {\n controlWrap: {w: '7', h: '7'},\n radio: {w: '6.5', h: '6.5'},\n dot: {w: '3', h: '3'},\n },\n },\n isChecked: {\n true: {\n radio: {bg: 'primary', borderColor: 'primary'},\n },\n },\n isDisabled: {\n true: {\n radio: {opacity: 0.55},\n label: {color: 'fg.disabled', cursor: 'not-allowed'},\n },\n },\n },\n defaultVariants: {\n size: 'md',\n isChecked: false,\n isDisabled: false,\n },\n});\n\nexport type RadioGroupItemVariants = RecipeVariantProps<\n typeof radioGroupItemRecipe\n>;\n","import {createContext} from 'react';\n\nexport type RadioGroupOrientation = 'horizontal' | 'vertical';\nexport type RadioGroupSize = 'sm' | 'md' | 'lg';\n\nexport interface RadioGroupContextValue {\n isDisabled: boolean;\n isRequired?: boolean;\n name: string;\n onChange: (value: string) => void;\n orientation: RadioGroupOrientation;\n size: RadioGroupSize;\n value: string;\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(\n null,\n);\n\nRadioGroupContext.displayName = 'RadioGroupContext';\n","import {\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport isReactNode from '../../internal/isReactNode';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputStatus,\n} from '../Field';\nimport {getDescribedBy, getStatusMessageID} from '../Field/inputUtils';\nimport {radioGroupRecipe} from './RadioGroup.recipe';\nimport {\n RadioGroupContext,\n type RadioGroupOrientation,\n type RadioGroupSize,\n} from './RadioGroupContext';\n\nexport type {RadioGroupOrientation} from './RadioGroupContext';\n\nexport type RadioGroupProps = {\n /**\n * Radio list items to render.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the field root.\n */\n className?: string;\n /**\n * Test ID applied to the field root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether all radio items are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Label text for the radio group.\n */\n label: string;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Callback fired when the selected value changes.\n * Memoize with `useCallback` to avoid unnecessary re-renders of radio items.\n */\n onChange: (value: string) => void;\n /**\n * Layout direction of the radio items.\n * @default 'vertical'\n */\n orientation?: RadioGroupOrientation;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the radio controls.\n * @default 'md'\n */\n size?: RadioGroupSize;\n /**\n * Validation status displayed below the group.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the field root.\n */\n style?: CSSProperties;\n /**\n * The currently selected value.\n */\n value: string;\n} & FieldNecessity;\n\n/**\n * A controlled radio group for single-value selection.\n */\nexport function RadioGroup({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n isDisabled = false,\n isLabelHidden = false,\n isOptional,\n isRequired,\n label,\n labelTooltip,\n onChange,\n orientation = 'vertical',\n ref,\n size = 'md',\n status,\n style,\n value,\n}: RadioGroupProps): React.JSX.Element {\n const nameId = useId();\n const inputId = useId();\n const labelId = `${inputId}-label`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const contextValue = useMemo(\n () => ({\n isDisabled,\n isRequired,\n name: nameId,\n onChange,\n orientation,\n size,\n value,\n }),\n [isDisabled, isRequired, nameId, onChange, orientation, size, value],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n data-testid={dataTestId}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelAs=\"span\"\n labelId={labelId}\n labelTooltip={labelTooltip}\n ref={ref}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n statusVariant=\"detached\"\n style={style}>\n <div\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-labelledby={labelId}\n aria-orientation={orientation}\n aria-required={isRequired ?? undefined}\n className={radioGroupRecipe({orientation})}\n id={inputId}\n role=\"radiogroup\">\n <RadioGroupContext value={contextValue}>{children}</RadioGroupContext>\n </div>\n </Field>\n );\n}\n\nRadioGroup.displayName = 'RadioGroup';\n","import {use, useId, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport isReactNode from '../../internal/isReactNode';\nimport {Item} from '../Item';\nimport {radioGroupItemRecipe} from './RadioGroup.recipe';\nimport {RadioGroupContext} from './RadioGroupContext';\n\nexport interface RadioGroupItemProps {\n /**\n * Additional CSS class names applied to the item root.\n */\n className?: string;\n /**\n * Test ID applied to the item root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the item label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label and description.\n */\n endContent?: ReactNode;\n /**\n * Whether this radio item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Label text for the radio item.\n */\n label: string;\n /**\n * Ref forwarded to the item root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Content rendered after the radio control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the item root.\n */\n style?: CSSProperties;\n /**\n * Value represented by this radio item.\n */\n value: string;\n}\n\n/**\n * An individual radio option within a `RadioGroup`.\n */\nexport function RadioGroupItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n isDisabled: isItemDisabled = false,\n label,\n ref,\n startContent,\n style,\n value,\n}: RadioGroupItemProps): React.JSX.Element {\n const context = use(RadioGroupContext);\n if (context == null) {\n throw new Error('RadioGroupItem must be used within a RadioGroup');\n }\n\n const id = useId();\n const descriptionId = useId();\n const isDisabled = context.isDisabled || isItemDisabled;\n const isChecked = context.value === value;\n const size = context.size;\n const classes = radioGroupItemRecipe({size, isChecked, isDisabled});\n const control = (\n <span className={classes.controlWrap}>\n <input\n aria-describedby={isReactNode(description) ? descriptionId : undefined}\n checked={isChecked}\n className={classes.input}\n disabled={isDisabled}\n id={id}\n name={context.name}\n onChange={() => context.onChange(value)}\n required={context.isRequired}\n type=\"radio\"\n value={value}\n />\n <span aria-hidden=\"true\" className={classes.radio}>\n {isChecked ? <span className={classes.dot} /> : null}\n </span>\n </span>\n );\n\n return (\n <Item\n className={className}\n data-testid={dataTestId}\n description={\n isReactNode(description) ? (\n <span id={descriptionId}>{description}</span>\n ) : undefined\n }\n endContent={endContent}\n endContentPosition=\"inline\"\n isDisabled={isDisabled}\n label={\n <label className={classes.label} htmlFor={id}>\n {label}\n </label>\n }\n leadingContent={control}\n ref={ref}\n startContent={startContent}\n style={style}\n width={context.orientation === 'horizontal' ? 'auto' : 'full'}\n />\n );\n}\n\nRadioGroupItem.displayName = 'RadioGroupItem';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/RadioGroup/RadioGroup.recipe.ts","../src/components/RadioGroup/RadioGroupContext.tsx","../src/components/RadioGroup/RadioGroup.tsx","../src/components/RadioGroup/RadioGroupItem.tsx"],"names":["cva","sva","createContext","useId","isReactNode","getStatusMessageID","getDescribedBy","useMemo","getNecessity","jsx","Field","use","jsxs","Item"],"mappings":"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","file":"chunk-KDR5DCYL.cjs","sourcesContent":["import {cva, sva, type RecipeVariantProps} from 'styled-system/css';\n\n/**\n * Group container layout — single element with an orientation variant.\n */\nexport const radioGroupRecipe = cva({\n base: {\n display: 'flex',\n },\n variants: {\n orientation: {\n vertical: {\n flexDirection: 'column',\n gap: '0.5',\n },\n horizontal: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n columnGap: '4',\n rowGap: '0',\n },\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport type RadioGroupVariants = RecipeVariantProps<typeof radioGroupRecipe>;\n\n/**\n * Individual radio item — multi-slot recipe for the control, its visual\n * radio circle, the selection dot, and the clickable label.\n */\nexport const radioGroupItemRecipe = sva({\n slots: ['controlWrap', 'input', 'radio', 'dot', 'label'],\n base: {\n controlWrap: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n borderRadius: 'full',\n isolation: 'isolate',\n '&:has(input:focus-visible)': {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n input: {\n position: 'absolute',\n inset: 0,\n m: 0,\n p: 0,\n opacity: 0,\n cursor: 'pointer',\n zIndex: 1,\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n radio: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'full',\n bg: 'bg',\n pointerEvents: 'none',\n },\n dot: {\n borderRadius: 'full',\n bg: 'fg.onPrimary',\n },\n label: {\n cursor: 'pointer',\n },\n },\n variants: {\n size: {\n sm: {\n controlWrap: {w: '5', h: '5'},\n radio: {w: '4.5', h: '4.5'},\n dot: {w: '2', h: '2'},\n },\n md: {\n controlWrap: {w: '6', h: '6'},\n radio: {w: '5.5', h: '5.5'},\n dot: {w: '2.5', h: '2.5'},\n },\n lg: {\n controlWrap: {w: '7', h: '7'},\n radio: {w: '6.5', h: '6.5'},\n dot: {w: '3', h: '3'},\n },\n },\n isChecked: {\n true: {\n radio: {bg: 'primary', borderColor: 'primary'},\n },\n },\n isDisabled: {\n true: {\n radio: {opacity: 0.55},\n label: {color: 'fg.disabled', cursor: 'not-allowed'},\n },\n },\n },\n defaultVariants: {\n size: 'md',\n isChecked: false,\n isDisabled: false,\n },\n});\n\nexport type RadioGroupItemVariants = RecipeVariantProps<\n typeof radioGroupItemRecipe\n>;\n","import {createContext} from 'react';\n\nexport type RadioGroupOrientation = 'horizontal' | 'vertical';\nexport type RadioGroupSize = 'sm' | 'md' | 'lg';\n\nexport interface RadioGroupContextValue {\n isDisabled: boolean;\n isRequired?: boolean;\n name: string;\n onChange: (value: string) => void;\n orientation: RadioGroupOrientation;\n size: RadioGroupSize;\n value: string;\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | null>(\n null,\n);\n\nRadioGroupContext.displayName = 'RadioGroupContext';\n","import {\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport isReactNode from '../../internal/isReactNode';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputStatus,\n} from '../Field';\nimport {getDescribedBy, getStatusMessageID} from '../Field/inputUtils';\nimport {radioGroupRecipe} from './RadioGroup.recipe';\nimport {\n RadioGroupContext,\n type RadioGroupOrientation,\n type RadioGroupSize,\n} from './RadioGroupContext';\n\nexport type {RadioGroupOrientation} from './RadioGroupContext';\n\nexport type RadioGroupProps = {\n /**\n * Radio list items to render.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the field root.\n */\n className?: string;\n /**\n * Test ID applied to the field root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether all radio items are disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Label text for the radio group.\n */\n label: string;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Callback fired when the selected value changes.\n * Memoize with `useCallback` to avoid unnecessary re-renders of radio items.\n */\n onChange: (value: string) => void;\n /**\n * Layout direction of the radio items.\n * @default 'vertical'\n */\n orientation?: RadioGroupOrientation;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the radio controls.\n * @default 'md'\n */\n size?: RadioGroupSize;\n /**\n * Validation status displayed below the group.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the field root.\n */\n style?: CSSProperties;\n /**\n * The currently selected value.\n */\n value: string;\n} & FieldNecessity;\n\n/**\n * A controlled radio group for single-value selection.\n */\nexport function RadioGroup({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n isDisabled = false,\n isLabelHidden = false,\n isOptional,\n isRequired,\n label,\n labelTooltip,\n onChange,\n orientation = 'vertical',\n ref,\n size = 'md',\n status,\n style,\n value,\n}: RadioGroupProps): React.JSX.Element {\n const nameId = useId();\n const inputId = useId();\n const labelId = `${inputId}-label`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const contextValue = useMemo(\n () => ({\n isDisabled,\n isRequired,\n name: nameId,\n onChange,\n orientation,\n size,\n value,\n }),\n [isDisabled, isRequired, nameId, onChange, orientation, size, value],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n data-testid={dataTestId}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelAs=\"span\"\n labelId={labelId}\n labelTooltip={labelTooltip}\n ref={ref}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n statusVariant=\"detached\"\n style={style}>\n <div\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-labelledby={labelId}\n aria-orientation={orientation}\n aria-required={isRequired ?? undefined}\n className={radioGroupRecipe({orientation})}\n id={inputId}\n role=\"radiogroup\">\n <RadioGroupContext value={contextValue}>{children}</RadioGroupContext>\n </div>\n </Field>\n );\n}\n\nRadioGroup.displayName = 'RadioGroup';\n","import {use, useId, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport isReactNode from '../../internal/isReactNode';\nimport {Item} from '../Item';\nimport {radioGroupItemRecipe} from './RadioGroup.recipe';\nimport {RadioGroupContext} from './RadioGroupContext';\n\nexport interface RadioGroupItemProps {\n /**\n * Additional CSS class names applied to the item root.\n */\n className?: string;\n /**\n * Test ID applied to the item root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the item label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label and description.\n */\n endContent?: ReactNode;\n /**\n * Whether this radio item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Label text for the radio item.\n */\n label: string;\n /**\n * Ref forwarded to the item root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Content rendered after the radio control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the item root.\n */\n style?: CSSProperties;\n /**\n * Value represented by this radio item.\n */\n value: string;\n}\n\n/**\n * An individual radio option within a `RadioGroup`.\n */\nexport function RadioGroupItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n isDisabled: isItemDisabled = false,\n label,\n ref,\n startContent,\n style,\n value,\n}: RadioGroupItemProps): React.JSX.Element {\n const context = use(RadioGroupContext);\n if (context == null) {\n throw new Error('RadioGroupItem must be used within a RadioGroup');\n }\n\n const id = useId();\n const descriptionId = useId();\n const isDisabled = context.isDisabled || isItemDisabled;\n const isChecked = context.value === value;\n const size = context.size;\n const classes = radioGroupItemRecipe({size, isChecked, isDisabled});\n const control = (\n <span className={classes.controlWrap}>\n <input\n aria-describedby={isReactNode(description) ? descriptionId : undefined}\n checked={isChecked}\n className={classes.input}\n disabled={isDisabled}\n id={id}\n name={context.name}\n onChange={() => context.onChange(value)}\n required={context.isRequired}\n type=\"radio\"\n value={value}\n />\n <span aria-hidden=\"true\" className={classes.radio}>\n {isChecked ? <span className={classes.dot} /> : null}\n </span>\n </span>\n );\n\n return (\n <Item\n className={className}\n data-testid={dataTestId}\n description={\n isReactNode(description) ? (\n <span id={descriptionId}>{description}</span>\n ) : undefined\n }\n endContent={endContent}\n endContentPosition=\"inline\"\n isDisabled={isDisabled}\n label={\n <label className={classes.label} htmlFor={id}>\n {label}\n </label>\n }\n leadingContent={control}\n ref={ref}\n startContent={startContent}\n style={style}\n width={context.orientation === 'horizontal' ? 'auto' : 'full'}\n />\n );\n}\n\nRadioGroupItem.displayName = 'RadioGroupItem';\n"]}
|