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/MultiSelect/MultiSelect.tsx"],"names":[],"mappings":"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","file":"chunk-EC2ALHNJ.js","sourcesContent":["import {Check, ChevronDown, X} from 'lucide-react';\nimport {\n useCallback,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {\n renderSelectListboxOptions,\n useSelectListbox,\n type SelectListboxOptionData,\n} from '../../internal/useSelectListbox';\nimport {Badge} from '../Badge';\nimport {Button} from '../Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport {inputRecipe} from '../Field/inputStyles';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Popover} from '../Popover';\nimport {Spinner} from '../Spinner';\nimport {Text} from '../Text';\n\nexport interface MultiSelectOptionData extends SelectListboxOptionData {\n /**\n * Icon displayed before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the option is disabled.\n */\n isDisabled?: boolean;\n /**\n * Option label. Defaults to `value`.\n */\n label?: string;\n /**\n * Option value.\n */\n value: string;\n}\n\nexport interface MultiSelectDivider {\n /**\n * Discriminator identifying a divider entry.\n */\n type: 'divider';\n}\n\nexport interface MultiSelectSection {\n /**\n * Options within this section.\n */\n options: ReadonlyArray<MultiSelectOptionData>;\n /**\n * Optional heading text for the section.\n */\n title?: string;\n /**\n * Discriminator identifying a section entry.\n */\n type: 'section';\n}\n\nexport type MultiSelectOption =\n | MultiSelectDivider\n | MultiSelectOptionData\n | MultiSelectSection\n | string;\n\nexport type MultiSelectTriggerDisplay = 'count' | 'labels' | 'badges';\n\nexport type MultiSelectProps = {\n /**\n * Custom render function for selectable options.\n */\n children?: (option: MultiSelectOptionData) => ReactNode;\n /**\n * Additional CSS class names applied to the trigger wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the combobox button.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether to show a clear button when values are selected.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Whether to show search input in the dropdown.\n * @default false\n */\n hasSearch?: boolean;\n /**\n * Whether to show a select-all option.\n * @default false\n */\n hasSelectAll?: boolean;\n /**\n * Whether the selector starts open.\n * @default false\n */\n isDefaultOpen?: boolean;\n /**\n * Whether the selector 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 selector is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum number of badges before showing an overflow count.\n * @default 3\n */\n maxBadges?: number;\n /**\n * Called when selection changes.\n */\n onChange: (value: string[]) => void;\n /**\n * Options to display.\n */\n options: ReadonlyArray<MultiSelectOption>;\n /**\n * Placeholder shown when no values are selected.\n * @default 'Select...'\n */\n placeholder?: string;\n /**\n * Ref forwarded to the combobox button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Search input placeholder.\n * @default 'Search...'\n */\n searchPlaceholder?: string;\n /**\n * Select-all option label.\n * @default 'Select all'\n */\n selectAllLabel?: string;\n /**\n * Select size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Start icon rendered in the trigger.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the selector.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the trigger wrapper.\n */\n style?: CSSProperties;\n /**\n * How selected items are summarized in the trigger.\n * @default 'count'\n */\n triggerDisplay?: MultiSelectTriggerDisplay;\n /**\n * Selected option values.\n */\n value: string[];\n} & FieldNecessity;\n\nconst styles = {\n wrapper: css({\n cursor: 'pointer',\n }),\n wrapperDisabled: css({\n cursor: 'not-allowed',\n }),\n trigger: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '2',\n flex: 1,\n minW: 0,\n p: 0,\n borderWidth: 0,\n bg: 'transparent',\n color: 'inherit',\n cursor: 'pointer',\n fontFamily: 'body',\n outline: 'none',\n textAlign: 'start',\n _disabled: {cursor: 'not-allowed'},\n }),\n triggerText: css({\n flex: 1,\n minW: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n placeholder: css({color: 'fg.muted'}),\n iconSlot: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n color: 'fg.muted',\n }),\n badges: css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n minW: 0,\n overflow: 'hidden',\n }),\n menu: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n maxH: '80',\n overflowY: 'auto',\n p: '1',\n }),\n search: css({\n w: 'full',\n px: '2',\n py: '1',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'md',\n fontFamily: 'body',\n outline: 'none',\n _focus: {borderColor: 'primary'},\n }),\n option: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n w: 'full',\n px: '2',\n py: '2',\n borderWidth: 0,\n borderRadius: 'md',\n bg: 'transparent',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'body',\n textAlign: 'start',\n _hover: {bg: 'bg.subtle'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffsetTight',\n },\n '&[aria-disabled=\"true\"]': {\n opacity: 0.55,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n }),\n checkbox: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n w: '5',\n h: '5',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'fg.muted',\n borderRadius: 'sm',\n bg: 'bg',\n color: 'fg.onPrimary',\n }),\n checkboxSelected: css({\n bg: 'primary',\n borderColor: 'primary',\n }),\n optionHighlighted: css({bg: 'bg.subtle'}),\n optionContent: css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2',\n minW: 0,\n flex: 1,\n }),\n sectionHeading: css({\n px: '2',\n py: '1',\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n fontWeight: 'semibold',\n }),\n divider: css({\n h: '1px',\n bg: 'border',\n my: '1',\n }),\n} as const;\n\n/**\n * Multi-select dropdown field with checkbox-style options.\n */\nexport function MultiSelect({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n hasClear = false,\n hasSearch = false,\n hasSelectAll = false,\n isDefaultOpen = false,\n isDisabled = false,\n isLabelHidden = false,\n isLoading = false,\n isOptional,\n isRequired,\n label,\n labelIcon,\n labelTooltip,\n maxBadges = 3,\n onChange,\n options,\n placeholder = 'Select...',\n ref,\n searchPlaceholder = 'Search...',\n selectAllLabel = 'Select all',\n size = 'md',\n startIcon,\n status,\n style,\n triggerDisplay = 'count',\n value,\n}: MultiSelectProps): React.JSX.Element {\n const selectedValues = useMemo(() => new Set(value), [value]);\n const commitChange = useCallback(\n (nextValue: string[]) => {\n onChange(nextValue);\n },\n [onChange],\n );\n\n const toggleValue = useCallback(\n (option: MultiSelectOptionData): boolean => {\n if (option.isDisabled === true) {\n return false;\n }\n\n const nextValues = new Set(value);\n if (nextValues.has(option.value)) {\n nextValues.delete(option.value);\n } else {\n nextValues.add(option.value);\n }\n commitChange(Array.from(nextValues));\n return true;\n },\n [commitChange, value],\n );\n\n const {\n activeDescendantId,\n describedBy,\n descriptionID,\n filteredValues,\n getOptionId,\n handleKeyboardNavigation,\n handleOptionClick,\n handleOptionMouseEnter,\n highlightedValue,\n inputId,\n isInteractionDisabled,\n isOpen,\n listboxId,\n query,\n selectableOptions,\n setHighlightedValue,\n setIsOpen,\n setQuery,\n statusMessageID,\n triggerRef,\n visibleSelectableOptions,\n } = useSelectListbox({\n description,\n isDefaultOpen,\n isDisabled,\n isLoading,\n onCommitOption: toggleValue,\n options,\n selectedValues,\n shouldClearOnCommit: false,\n status,\n });\n\n const selectedOptions = useMemo(\n () => selectableOptions.filter(option => selectedValues.has(option.value)),\n [selectableOptions, selectedValues],\n );\n const enabledVisibleOptions = useMemo(\n () => visibleSelectableOptions.filter(option => option.isDisabled !== true),\n [visibleSelectableOptions],\n );\n const allSelected =\n enabledVisibleOptions.length > 0 &&\n enabledVisibleOptions.every(option => selectedValues.has(option.value));\n\n const toggleAll = useCallback(() => {\n if (allSelected) {\n commitChange(\n value.filter(\n optionValue =>\n !enabledVisibleOptions.some(option => option.value === optionValue),\n ),\n );\n return;\n }\n\n const nextValues = new Set(value);\n for (const option of enabledVisibleOptions) {\n nextValues.add(option.value);\n }\n commitChange(Array.from(nextValues));\n }, [allSelected, commitChange, enabledVisibleOptions, value]);\n\n const renderTriggerValue = (): ReactNode => {\n if (selectedOptions.length === 0) {\n return (\n <span className={cx(styles.triggerText, styles.placeholder)}>\n {placeholder}\n </span>\n );\n }\n if (triggerDisplay === 'labels') {\n const labels = selectedOptions.map(\n option => option.label ?? option.value,\n );\n return <span className={styles.triggerText}>{labels.join(', ')}</span>;\n }\n if (triggerDisplay === 'badges') {\n const visible = selectedOptions.slice(0, maxBadges);\n const overflow = selectedOptions.length - visible.length;\n return (\n <span className={styles.badges}>\n {visible.map(option => (\n <Badge key={option.value} label={option.label ?? option.value} />\n ))}\n {overflow > 0 ? (\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n +{overflow}\n </Text>\n ) : null}\n </span>\n );\n }\n return (\n <span className={styles.triggerText}>\n {selectedOptions.length} selected\n </span>\n );\n };\n\n const renderOption = (option: MultiSelectOptionData): ReactNode => {\n if (!filteredValues.has(option.value)) {\n return null;\n }\n const isSelected = selectedValues.has(option.value);\n const isHighlighted = highlightedValue === option.value;\n return (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events -- keyboard navigation is handled by the combobox input, not individual options\n <div\n aria-disabled={option.isDisabled ?? undefined}\n aria-selected={isSelected}\n className={cx(\n styles.option,\n isHighlighted ? styles.optionHighlighted : undefined,\n )}\n data-value={option.value}\n id={getOptionId(option.value)}\n key={option.value}\n onClick={option.isDisabled ? undefined : handleOptionClick}\n onMouseEnter={handleOptionMouseEnter}\n role=\"option\"\n tabIndex={isHighlighted ? 0 : -1}>\n <span\n aria-hidden=\"true\"\n className={cx(\n styles.checkbox,\n isSelected ? styles.checkboxSelected : undefined,\n )}>\n {isSelected ? <Icon icon={Check} size=\"sm\" /> : null}\n </span>\n <span className={styles.optionContent}>\n {children == null ? (\n <>\n {option.icon != null ? (\n <span className={styles.iconSlot}>\n <Icon color=\"secondary\" icon={option.icon} size=\"sm\" />\n </span>\n ) : null}\n {option.label}\n </>\n ) : (\n children(option)\n )}\n </span>\n </div>\n );\n };\n\n const optionNodes = renderSelectListboxOptions({\n dividerClassName: styles.divider,\n inputId,\n options,\n renderOption,\n sectionHeadingClassName: styles.sectionHeading,\n });\n\n const menu = (\n <>\n {hasSearch ? (\n <input\n aria-activedescendant={activeDescendantId}\n aria-autocomplete=\"list\"\n aria-controls={listboxId}\n aria-label={`Search ${label}`}\n className={styles.search}\n onChange={event => {\n setQuery(event.target.value);\n setHighlightedValue(null);\n }}\n onKeyDown={handleKeyboardNavigation}\n placeholder={searchPlaceholder}\n type=\"search\"\n value={query}\n />\n ) : null}\n <div\n aria-label={`${label} options`}\n aria-multiselectable=\"true\"\n className={styles.menu}\n id={listboxId}\n role=\"listbox\">\n {hasSelectAll ? (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events -- keyboard navigation is handled by the combobox input, not individual options\n <div\n aria-selected={allSelected}\n className={styles.option}\n onClick={toggleAll}\n role=\"option\"\n tabIndex={-1}>\n <span\n aria-hidden=\"true\"\n className={cx(\n styles.checkbox,\n allSelected ? styles.checkboxSelected : undefined,\n )}>\n {allSelected ? <Icon icon={Check} size=\"sm\" /> : null}\n </span>\n <span className={styles.optionContent}>{selectAllLabel}</span>\n </div>\n ) : null}\n {optionNodes}\n </div>\n </>\n );\n\n const trigger = (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events, jsx-a11y-x/no-static-element-interactions -- mouse clicks anywhere on the visual input delegate to the inner combobox button; keyboard handling stays on that button.\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n isInteractionDisabled ? styles.wrapperDisabled : undefined,\n )}\n onClick={() => {\n if (!isInteractionDisabled) {\n setIsOpen(currentIsOpen => !currentIsOpen);\n }\n }}\n ref={triggerRef}>\n {startIcon != null ? (\n <span className={styles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <button\n aria-activedescendant={activeDescendantId}\n aria-busy={isLoading || undefined}\n aria-controls={listboxId}\n aria-describedby={describedBy}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-invalid={status?.type === 'error' || undefined}\n className={styles.trigger}\n data-testid={dataTestId}\n disabled={isInteractionDisabled}\n id={inputId}\n onKeyDown={handleKeyboardNavigation}\n ref={ref}\n role=\"combobox\"\n type=\"button\">\n {renderTriggerValue()}\n </button>\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {hasClear && value.length > 0 && !isDisabled ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={event => {\n event.stopPropagation();\n commitChange([]);\n }}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n <span className={styles.iconSlot}>\n <Icon icon={ChevronDown} size=\"sm\" />\n </span>\n </div>\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n {trigger}\n <Popover\n anchorRef={triggerRef}\n content={menu}\n hasAutoFocus={hasSearch}\n hasCloseButton={false}\n isEnabled={false}\n isOpen={isOpen}\n onOpenChange={setIsOpen}\n />\n </Field>\n );\n}\n\nMultiSelect.displayName = 'MultiSelect';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/MultiSelect/MultiSelect.tsx"],"names":[],"mappings":"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","file":"chunk-HNZWPIJE.js","sourcesContent":["import {Check, ChevronDown, X} from 'lucide-react';\nimport {\n useCallback,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {\n renderSelectListboxOptions,\n useSelectListbox,\n type SelectListboxOptionData,\n} from '../../internal/useSelectListbox';\nimport {Badge} from '../Badge';\nimport {Button} from '../Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport {inputRecipe} from '../Field/inputStyles';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Popover} from '../Popover';\nimport {Spinner} from '../Spinner';\nimport {Text} from '../Text';\n\nexport interface MultiSelectOptionData extends SelectListboxOptionData {\n /**\n * Icon displayed before the label.\n */\n icon?: IconComponent;\n /**\n * Whether the option is disabled.\n */\n isDisabled?: boolean;\n /**\n * Option label. Defaults to `value`.\n */\n label?: string;\n /**\n * Option value.\n */\n value: string;\n}\n\nexport interface MultiSelectDivider {\n /**\n * Discriminator identifying a divider entry.\n */\n type: 'divider';\n}\n\nexport interface MultiSelectSection {\n /**\n * Options within this section.\n */\n options: ReadonlyArray<MultiSelectOptionData>;\n /**\n * Optional heading text for the section.\n */\n title?: string;\n /**\n * Discriminator identifying a section entry.\n */\n type: 'section';\n}\n\nexport type MultiSelectOption =\n | MultiSelectDivider\n | MultiSelectOptionData\n | MultiSelectSection\n | string;\n\nexport type MultiSelectTriggerDisplay = 'count' | 'labels' | 'badges';\n\nexport type MultiSelectProps = {\n /**\n * Custom render function for selectable options.\n */\n children?: (option: MultiSelectOptionData) => ReactNode;\n /**\n * Additional CSS class names applied to the trigger wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the combobox button.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether to show a clear button when values are selected.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Whether to show search input in the dropdown.\n * @default false\n */\n hasSearch?: boolean;\n /**\n * Whether to show a select-all option.\n * @default false\n */\n hasSelectAll?: boolean;\n /**\n * Whether the selector starts open.\n * @default false\n */\n isDefaultOpen?: boolean;\n /**\n * Whether the selector 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 selector is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum number of badges before showing an overflow count.\n * @default 3\n */\n maxBadges?: number;\n /**\n * Called when selection changes.\n */\n onChange: (value: string[]) => void;\n /**\n * Options to display.\n */\n options: ReadonlyArray<MultiSelectOption>;\n /**\n * Placeholder shown when no values are selected.\n * @default 'Select...'\n */\n placeholder?: string;\n /**\n * Ref forwarded to the combobox button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Search input placeholder.\n * @default 'Search...'\n */\n searchPlaceholder?: string;\n /**\n * Select-all option label.\n * @default 'Select all'\n */\n selectAllLabel?: string;\n /**\n * Select size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Start icon rendered in the trigger.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the selector.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the trigger wrapper.\n */\n style?: CSSProperties;\n /**\n * How selected items are summarized in the trigger.\n * @default 'count'\n */\n triggerDisplay?: MultiSelectTriggerDisplay;\n /**\n * Selected option values.\n */\n value: string[];\n} & FieldNecessity;\n\nconst styles = {\n wrapper: css({\n cursor: 'pointer',\n }),\n wrapperDisabled: css({\n cursor: 'not-allowed',\n }),\n trigger: css({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '2',\n flex: 1,\n minW: 0,\n p: 0,\n borderWidth: 0,\n bg: 'transparent',\n color: 'inherit',\n cursor: 'pointer',\n fontFamily: 'body',\n outline: 'none',\n textAlign: 'start',\n _disabled: {cursor: 'not-allowed'},\n }),\n triggerText: css({\n flex: 1,\n minW: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n placeholder: css({color: 'fg.muted'}),\n iconSlot: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n color: 'fg.muted',\n }),\n badges: css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '1',\n minW: 0,\n overflow: 'hidden',\n }),\n menu: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n maxH: '80',\n overflowY: 'auto',\n p: '1',\n }),\n search: css({\n w: 'full',\n px: '2',\n py: '1',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'md',\n fontFamily: 'body',\n outline: 'none',\n _focus: {borderColor: 'primary'},\n }),\n option: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n w: 'full',\n px: '2',\n py: '2',\n borderWidth: 0,\n borderRadius: 'md',\n bg: 'transparent',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'body',\n textAlign: 'start',\n _hover: {bg: 'bg.subtle'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffsetTight',\n },\n '&[aria-disabled=\"true\"]': {\n opacity: 0.55,\n cursor: 'not-allowed',\n pointerEvents: 'none',\n },\n }),\n checkbox: css({\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n w: '5',\n h: '5',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'fg.muted',\n borderRadius: 'sm',\n bg: 'bg',\n color: 'fg.onPrimary',\n }),\n checkboxSelected: css({\n bg: 'primary',\n borderColor: 'primary',\n }),\n optionHighlighted: css({bg: 'bg.subtle'}),\n optionContent: css({\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2',\n minW: 0,\n flex: 1,\n }),\n sectionHeading: css({\n px: '2',\n py: '1',\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n fontWeight: 'semibold',\n }),\n divider: css({\n h: '1px',\n bg: 'border',\n my: '1',\n }),\n} as const;\n\n/**\n * Multi-select dropdown field with checkbox-style options.\n */\nexport function MultiSelect({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n hasClear = false,\n hasSearch = false,\n hasSelectAll = false,\n isDefaultOpen = false,\n isDisabled = false,\n isLabelHidden = false,\n isLoading = false,\n isOptional,\n isRequired,\n label,\n labelIcon,\n labelTooltip,\n maxBadges = 3,\n onChange,\n options,\n placeholder = 'Select...',\n ref,\n searchPlaceholder = 'Search...',\n selectAllLabel = 'Select all',\n size = 'md',\n startIcon,\n status,\n style,\n triggerDisplay = 'count',\n value,\n}: MultiSelectProps): React.JSX.Element {\n const selectedValues = useMemo(() => new Set(value), [value]);\n const commitChange = useCallback(\n (nextValue: string[]) => {\n onChange(nextValue);\n },\n [onChange],\n );\n\n const toggleValue = useCallback(\n (option: MultiSelectOptionData): boolean => {\n if (option.isDisabled === true) {\n return false;\n }\n\n const nextValues = new Set(value);\n if (nextValues.has(option.value)) {\n nextValues.delete(option.value);\n } else {\n nextValues.add(option.value);\n }\n commitChange(Array.from(nextValues));\n return true;\n },\n [commitChange, value],\n );\n\n const {\n activeDescendantId,\n describedBy,\n descriptionID,\n filteredValues,\n getOptionId,\n handleKeyboardNavigation,\n handleOptionClick,\n handleOptionMouseEnter,\n highlightedValue,\n inputId,\n isInteractionDisabled,\n isOpen,\n listboxId,\n query,\n selectableOptions,\n setHighlightedValue,\n setIsOpen,\n setQuery,\n statusMessageID,\n triggerRef,\n visibleSelectableOptions,\n } = useSelectListbox({\n description,\n isDefaultOpen,\n isDisabled,\n isLoading,\n onCommitOption: toggleValue,\n options,\n selectedValues,\n shouldClearOnCommit: false,\n status,\n });\n\n const selectedOptions = useMemo(\n () => selectableOptions.filter(option => selectedValues.has(option.value)),\n [selectableOptions, selectedValues],\n );\n const enabledVisibleOptions = useMemo(\n () => visibleSelectableOptions.filter(option => option.isDisabled !== true),\n [visibleSelectableOptions],\n );\n const allSelected =\n enabledVisibleOptions.length > 0 &&\n enabledVisibleOptions.every(option => selectedValues.has(option.value));\n\n const toggleAll = useCallback(() => {\n if (allSelected) {\n commitChange(\n value.filter(\n optionValue =>\n !enabledVisibleOptions.some(option => option.value === optionValue),\n ),\n );\n return;\n }\n\n const nextValues = new Set(value);\n for (const option of enabledVisibleOptions) {\n nextValues.add(option.value);\n }\n commitChange(Array.from(nextValues));\n }, [allSelected, commitChange, enabledVisibleOptions, value]);\n\n const renderTriggerValue = (): ReactNode => {\n if (selectedOptions.length === 0) {\n return (\n <span className={cx(styles.triggerText, styles.placeholder)}>\n {placeholder}\n </span>\n );\n }\n if (triggerDisplay === 'labels') {\n const labels = selectedOptions.map(\n option => option.label ?? option.value,\n );\n return <span className={styles.triggerText}>{labels.join(', ')}</span>;\n }\n if (triggerDisplay === 'badges') {\n const visible = selectedOptions.slice(0, maxBadges);\n const overflow = selectedOptions.length - visible.length;\n return (\n <span className={styles.badges}>\n {visible.map(option => (\n <Badge key={option.value} label={option.label ?? option.value} />\n ))}\n {overflow > 0 ? (\n <Text as=\"span\" color=\"secondary\" type=\"supporting\">\n +{overflow}\n </Text>\n ) : null}\n </span>\n );\n }\n return (\n <span className={styles.triggerText}>\n {selectedOptions.length} selected\n </span>\n );\n };\n\n const renderOption = (option: MultiSelectOptionData): ReactNode => {\n if (!filteredValues.has(option.value)) {\n return null;\n }\n const isSelected = selectedValues.has(option.value);\n const isHighlighted = highlightedValue === option.value;\n return (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events -- keyboard navigation is handled by the combobox input, not individual options\n <div\n aria-disabled={option.isDisabled ?? undefined}\n aria-selected={isSelected}\n className={cx(\n styles.option,\n isHighlighted ? styles.optionHighlighted : undefined,\n )}\n data-value={option.value}\n id={getOptionId(option.value)}\n key={option.value}\n onClick={option.isDisabled ? undefined : handleOptionClick}\n onMouseEnter={handleOptionMouseEnter}\n role=\"option\"\n tabIndex={isHighlighted ? 0 : -1}>\n <span\n aria-hidden=\"true\"\n className={cx(\n styles.checkbox,\n isSelected ? styles.checkboxSelected : undefined,\n )}>\n {isSelected ? <Icon icon={Check} size=\"sm\" /> : null}\n </span>\n <span className={styles.optionContent}>\n {children == null ? (\n <>\n {option.icon != null ? (\n <span className={styles.iconSlot}>\n <Icon color=\"secondary\" icon={option.icon} size=\"sm\" />\n </span>\n ) : null}\n {option.label}\n </>\n ) : (\n children(option)\n )}\n </span>\n </div>\n );\n };\n\n const optionNodes = renderSelectListboxOptions({\n dividerClassName: styles.divider,\n inputId,\n options,\n renderOption,\n sectionHeadingClassName: styles.sectionHeading,\n });\n\n const menu = (\n <>\n {hasSearch ? (\n <input\n aria-activedescendant={activeDescendantId}\n aria-autocomplete=\"list\"\n aria-controls={listboxId}\n aria-label={`Search ${label}`}\n className={styles.search}\n onChange={event => {\n setQuery(event.target.value);\n setHighlightedValue(null);\n }}\n onKeyDown={handleKeyboardNavigation}\n placeholder={searchPlaceholder}\n type=\"search\"\n value={query}\n />\n ) : null}\n <div\n aria-label={`${label} options`}\n aria-multiselectable=\"true\"\n className={styles.menu}\n id={listboxId}\n role=\"listbox\">\n {hasSelectAll ? (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events -- keyboard navigation is handled by the combobox input, not individual options\n <div\n aria-selected={allSelected}\n className={styles.option}\n onClick={toggleAll}\n role=\"option\"\n tabIndex={-1}>\n <span\n aria-hidden=\"true\"\n className={cx(\n styles.checkbox,\n allSelected ? styles.checkboxSelected : undefined,\n )}>\n {allSelected ? <Icon icon={Check} size=\"sm\" /> : null}\n </span>\n <span className={styles.optionContent}>{selectAllLabel}</span>\n </div>\n ) : null}\n {optionNodes}\n </div>\n </>\n );\n\n const trigger = (\n // eslint-disable-next-line jsx-a11y-x/click-events-have-key-events, jsx-a11y-x/no-static-element-interactions -- mouse clicks anywhere on the visual input delegate to the inner combobox button; keyboard handling stays on that button.\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n isInteractionDisabled ? styles.wrapperDisabled : undefined,\n )}\n onClick={() => {\n if (!isInteractionDisabled) {\n setIsOpen(currentIsOpen => !currentIsOpen);\n }\n }}\n ref={triggerRef}>\n {startIcon != null ? (\n <span className={styles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <button\n aria-activedescendant={activeDescendantId}\n aria-busy={isLoading || undefined}\n aria-controls={listboxId}\n aria-describedby={describedBy}\n aria-expanded={isOpen}\n aria-haspopup=\"listbox\"\n aria-invalid={status?.type === 'error' || undefined}\n className={styles.trigger}\n data-testid={dataTestId}\n disabled={isInteractionDisabled}\n id={inputId}\n onKeyDown={handleKeyboardNavigation}\n ref={ref}\n role=\"combobox\"\n type=\"button\">\n {renderTriggerValue()}\n </button>\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {hasClear && value.length > 0 && !isDisabled ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={event => {\n event.stopPropagation();\n commitChange([]);\n }}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n <span className={styles.iconSlot}>\n <Icon icon={ChevronDown} size=\"sm\" />\n </span>\n </div>\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n {trigger}\n <Popover\n anchorRef={triggerRef}\n content={menu}\n hasAutoFocus={hasSearch}\n hasCloseButton={false}\n isEnabled={false}\n isOpen={isOpen}\n onOpenChange={setIsOpen}\n />\n </Field>\n );\n}\n\nMultiSelect.displayName = 'MultiSelect';\n"]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkBLRWA445_cjs = require('./chunk-BLRWA445.cjs');
|
|
4
|
+
var chunkFB245S6T_cjs = require('./chunk-FB245S6T.cjs');
|
|
5
5
|
var chunkVXBVSYPA_cjs = require('./chunk-VXBVSYPA.cjs');
|
|
6
|
-
var
|
|
6
|
+
var chunkYY6KJO5Z_cjs = require('./chunk-YY6KJO5Z.cjs');
|
|
7
7
|
var chunk2P6D43V2_cjs = require('./chunk-2P6D43V2.cjs');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
8
|
+
var chunkQOKEU3DC_cjs = require('./chunk-QOKEU3DC.cjs');
|
|
9
|
+
var chunkJJ324PSZ_cjs = require('./chunk-JJ324PSZ.cjs');
|
|
10
10
|
var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
|
|
11
11
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
12
12
|
var chunk4TIAKZ4Q_cjs = require('./chunk-4TIAKZ4Q.cjs');
|
|
13
|
-
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
14
13
|
var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
|
|
14
|
+
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
15
15
|
var lucideReact = require('lucide-react');
|
|
16
16
|
var react = require('react');
|
|
17
17
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -115,10 +115,10 @@ function OverflowList({
|
|
|
115
115
|
},
|
|
116
116
|
[calculate]
|
|
117
117
|
);
|
|
118
|
-
|
|
118
|
+
chunkJJ324PSZ_cjs.useIsomorphicLayoutEffect(() => {
|
|
119
119
|
calculate();
|
|
120
120
|
}, [calculate]);
|
|
121
|
-
|
|
121
|
+
chunkJJ324PSZ_cjs.useIsomorphicLayoutEffect(() => {
|
|
122
122
|
const container = containerRef.current;
|
|
123
123
|
if (container == null || typeof ResizeObserver === "undefined") {
|
|
124
124
|
return;
|
|
@@ -282,7 +282,7 @@ function TagsInput({
|
|
|
282
282
|
const [announcement, setAnnouncement] = react.useState("");
|
|
283
283
|
const [queryValue, setQueryValue] = react.useState("");
|
|
284
284
|
const isLayerMode = tagOverflowBehavior === "unfocusedLayer";
|
|
285
|
-
const layer =
|
|
285
|
+
const layer = chunkJJ324PSZ_cjs.useLayer();
|
|
286
286
|
const layerContentRef = react.useRef(null);
|
|
287
287
|
const selectedIDsRef = react.useRef(/* @__PURE__ */ new Set());
|
|
288
288
|
selectedIDsRef.current = new Set(value.map((item) => item.id));
|
|
@@ -416,9 +416,9 @@ function TagsInput({
|
|
|
416
416
|
);
|
|
417
417
|
}
|
|
418
418
|
}, [isDisabled, isFocusInTagsInput, isLayerMode, layer]);
|
|
419
|
-
const necessity =
|
|
419
|
+
const necessity = chunkYY6KJO5Z_cjs.getNecessity(isOptional, isRequired);
|
|
420
420
|
const tokens = value.map((item) => /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.tag, children: renderTag == null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
421
|
-
|
|
421
|
+
chunkFB245S6T_cjs.Tag,
|
|
422
422
|
{
|
|
423
423
|
isDisabled,
|
|
424
424
|
label: item.label,
|
|
@@ -464,7 +464,7 @@ function TagsInput({
|
|
|
464
464
|
}
|
|
465
465
|
) : tokens,
|
|
466
466
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
467
|
-
|
|
467
|
+
chunkBLRWA445_cjs.BaseAutocompleteInput,
|
|
468
468
|
{
|
|
469
469
|
anchorRef: wrapperRef,
|
|
470
470
|
ariaDescribedBy: describedBy,
|
|
@@ -525,7 +525,7 @@ function TagsInput({
|
|
|
525
525
|
),
|
|
526
526
|
chunkQAO6QMNQ_cjs.isReactNode(endContent) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: styles2.endContent, children: endContent }) : null,
|
|
527
527
|
hasClear && value.length > 0 && !isDisabled && !isReadOnly ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
528
|
-
|
|
528
|
+
chunkQOKEU3DC_cjs.Button,
|
|
529
529
|
{
|
|
530
530
|
icon: lucideReact.X,
|
|
531
531
|
isIconOnly: true,
|
|
@@ -604,7 +604,7 @@ function TagsInput({
|
|
|
604
604
|
)
|
|
605
605
|
] }) : wrapperContent;
|
|
606
606
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
607
|
-
|
|
607
|
+
chunkYY6KJO5Z_cjs.Field,
|
|
608
608
|
{
|
|
609
609
|
className,
|
|
610
610
|
description,
|
|
@@ -626,5 +626,5 @@ function TagsInput({
|
|
|
626
626
|
TagsInput.displayName = "TagsInput";
|
|
627
627
|
|
|
628
628
|
exports.TagsInput = TagsInput;
|
|
629
|
-
//# sourceMappingURL=chunk-
|
|
630
|
-
//# sourceMappingURL=chunk-
|
|
629
|
+
//# sourceMappingURL=chunk-IA5GII7N.cjs.map
|
|
630
|
+
//# sourceMappingURL=chunk-IA5GII7N.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/OverflowList.tsx","../src/components/TagsInput/TagsInput.tsx"],"names":["css","Children","useState","useRef","useCallback","useIsomorphicLayoutEffect","jsxs","Fragment","isReactNode","jsx","cx","mergeRefs","styles","useId","getStatusMessageID","getDescribedBy","useLayer","useMemo","useImperativeHandle","getNecessity","Tag","inputRecipe","inputStyles","Icon","BaseAutocompleteInput","Button","X","Field"],"mappings":"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","file":"chunk-IA5GII7N.cjs","sourcesContent":["import {\n Children,\n useCallback,\n useRef,\n useState,\n type CSSProperties,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from './cx';\nimport isReactNode from './isReactNode';\nimport {mergeRefs} from './mergeRefs';\nimport {useIsomorphicLayoutEffect} from './useIsomorphicLayoutEffect';\n\nexport interface OverflowItem {\n child: ReactElement;\n index: number;\n}\n\nexport interface OverflowListProps {\n behavior?: 'observeParent' | 'observeSelf';\n children: ReactNode;\n className?: string;\n collapseFrom?: 'end' | 'start';\n gap?: number;\n minVisibleItems?: number;\n overflowRenderer?: (overflowItems: OverflowItem[]) => ReactNode;\n ref?: Ref<HTMLDivElement>;\n style?: CSSProperties;\n}\n\nconst styles = {\n container: css({\n display: 'flex',\n alignItems: 'center',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n minW: 0,\n }),\n fillParent: css({\n flex: '1 1 0',\n }),\n measureContainer: css({\n position: 'absolute',\n visibility: 'hidden',\n h: 0,\n overflow: 'hidden',\n display: 'flex',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n pointerEvents: 'none',\n }),\n measureIndicator: css({\n display: 'inline-flex',\n }),\n} as const;\n\nfunction getAvailableWidth(\n container: HTMLElement,\n observeParent: boolean,\n): number {\n if (observeParent && container.parentElement != null) {\n const parent = container.parentElement;\n const parentStyle = window.getComputedStyle(parent);\n const paddingLeft = Number.parseFloat(parentStyle.paddingLeft) || 0;\n const paddingRight = Number.parseFloat(parentStyle.paddingRight) || 0;\n return parent.clientWidth - paddingLeft - paddingRight;\n }\n\n return container.offsetWidth;\n}\n\nexport function OverflowList({\n behavior = 'observeSelf',\n children,\n className,\n collapseFrom = 'end',\n gap = 0,\n minVisibleItems = 0,\n overflowRenderer,\n ref,\n style,\n}: OverflowListProps): React.JSX.Element {\n // eslint-disable-next-line @eslint-react/no-children-to-array -- matches XDSOverflowList: normalizes children before width measurement\n const childArray = Children.toArray(children) as ReactElement[];\n const itemCount = childArray.length;\n const observeParent = behavior === 'observeParent';\n const [visibleCount, setVisibleCount] = useState(itemCount);\n const containerRef = useRef<HTMLElement | null>(null);\n const measureRef = useRef<HTMLElement | null>(null);\n\n const calculate = useCallback(() => {\n const container = containerRef.current;\n const measure = measureRef.current;\n if (container == null || measure == null) {\n return;\n }\n\n const availableWidth = Math.min(\n getAvailableWidth(container, observeParent),\n container.offsetWidth || Number.POSITIVE_INFINITY,\n );\n const allChildren = Array.from(measure.children) as HTMLElement[];\n const hasIndicator = allChildren.length > itemCount;\n const measuredItems = hasIndicator\n ? allChildren.slice(0, itemCount)\n : allChildren;\n const indicatorWidth = hasIndicator\n ? allChildren[allChildren.length - 1].offsetWidth\n : 0;\n\n if (measuredItems.length === 0) {\n // eslint-disable-next-line @eslint-react/set-state-in-effect -- visible count is derived from measured DOM widths\n setVisibleCount(0);\n return;\n }\n\n const measuredWidths = measuredItems.map(item => item.offsetWidth);\n const orderedWidths =\n collapseFrom === 'end' ? measuredWidths : [...measuredWidths].reverse();\n let totalWidth = 0;\n let count = 0;\n\n for (const itemWidth of orderedWidths) {\n const gapWidth = count > 0 ? gap : 0;\n const candidateWidth = totalWidth + itemWidth + gapWidth;\n const isLastItem = count === orderedWidths.length - 1;\n const reservedWidth = isLastItem\n ? 0\n : indicatorWidth + (count > 0 || indicatorWidth > 0 ? gap : 0);\n\n if (\n candidateWidth + reservedWidth > availableWidth &&\n count >= minVisibleItems\n ) {\n break;\n }\n\n totalWidth = candidateWidth;\n count++;\n }\n\n // eslint-disable-next-line @eslint-react/set-state-in-effect -- visible count is derived from measured DOM widths\n setVisibleCount(Math.max(Math.min(count, itemCount), minVisibleItems));\n }, [collapseFrom, gap, itemCount, minVisibleItems, observeParent]);\n\n const containerRefCallback = useCallback((element: HTMLDivElement | null) => {\n containerRef.current = element;\n }, []);\n\n const measureRefCallback = useCallback(\n (element: HTMLDivElement | null) => {\n measureRef.current = element;\n if (element != null) {\n calculate();\n }\n },\n [calculate],\n );\n\n useIsomorphicLayoutEffect(() => {\n calculate();\n }, [calculate]);\n\n useIsomorphicLayoutEffect(() => {\n const container = containerRef.current;\n if (container == null || typeof ResizeObserver === 'undefined') {\n return;\n }\n\n const target =\n observeParent && container.parentElement != null\n ? container.parentElement\n : container;\n const observer = new ResizeObserver(calculate);\n observer.observe(target);\n return () => observer.disconnect();\n }, [calculate, observeParent]);\n\n const allItems: OverflowItem[] = childArray.map((child, index) => ({\n child,\n index,\n }));\n const visibleItems =\n collapseFrom === 'end'\n ? allItems.slice(0, visibleCount)\n : allItems.slice(itemCount - visibleCount);\n const overflowItems =\n collapseFrom === 'end'\n ? allItems.slice(visibleCount)\n : allItems.slice(0, itemCount - visibleCount);\n const hasOverflow = visibleCount < itemCount;\n const measureIndicator = overflowRenderer?.(allItems);\n\n return (\n <>\n <div\n aria-hidden=\"true\"\n className={styles.measureContainer}\n inert\n ref={measureRefCallback}\n style={{gap}}>\n {childArray}\n {isReactNode(measureIndicator) ? (\n <div className={styles.measureIndicator}>{measureIndicator}</div>\n ) : null}\n </div>\n <div\n className={cx(\n styles.container,\n observeParent && hasOverflow ? styles.fillParent : undefined,\n className,\n )}\n ref={mergeRefs(ref, containerRefCallback)}\n style={{gap, ...style}}>\n {collapseFrom === 'start' && hasOverflow\n ? overflowRenderer?.(overflowItems)\n : null}\n {visibleItems.map(({child}) => child)}\n {collapseFrom === 'end' && hasOverflow\n ? overflowRenderer?.(overflowItems)\n : null}\n </div>\n </>\n );\n}\n","import {X} from 'lucide-react';\nimport {\n useCallback,\n useImperativeHandle,\n useId,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {OverflowList} from '../../internal/OverflowList';\nimport {cx} from '../../internal/cx';\nimport isReactNode from '../../internal/isReactNode';\nimport {useLayer} from '../../internal/useLayer';\nimport {BaseAutocompleteInput} from '../AutocompleteInput';\nimport type {SearchableItem, SearchSource} from '../AutocompleteInput';\nimport {Button} from '../Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport {inputRecipe, inputStyles} from '../Field/inputStyles';\nimport {getDescribedBy, getStatusMessageID} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Tag} from '../Tag';\n\nexport type TagsInputChange<T extends SearchableItem> =\n | {item: T; type: 'add'}\n | {item: T; type: 'create'}\n | {item: T; type: 'remove'}\n | {items: T[]; type: 'remove-all'};\n\nexport type TagsInputOverflowBehavior =\n | 'none'\n | 'unfocusedInline'\n | 'unfocusedLayer';\n\nexport interface TagsInputHandle {\n /**\n * Blur the input.\n */\n blur(): void;\n /**\n * Focus the input.\n */\n focus(): void;\n}\n\nexport type TagsInputProps<T extends SearchableItem = SearchableItem> = {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input wrapper.\n */\n 'data-testid'?: string;\n /**\n * Debounce delay in milliseconds before search runs.\n * @default 150\n */\n debounceMs?: number;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Empty state text.\n * @default 'No results found'\n */\n emptySearchResultsText?: string;\n /**\n * Content rendered at the end of the input row.\n */\n endContent?: ReactNode;\n /**\n * Imperative focus/blur handle.\n */\n handleRef?: Ref<TagsInputHandle>;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a clear button that removes all tags.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Whether users can create a tag from free text.\n * @default false\n */\n hasCreate?: boolean;\n /**\n * Whether to show bootstrap results on focus before typing.\n * @default false\n */\n hasEntriesOnFocus?: boolean;\n /**\n * Whether the input 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 input is read-only. Prevents typing and hides the clear\n * button without applying disabled opacity.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum number of selected tags.\n */\n maxEntries?: number;\n /**\n * Maximum number of menu items.\n * @default 10\n */\n maxMenuItems?: number;\n /**\n * Called when focus leaves the tags-input.\n */\n onBlur?: (event: FocusEvent<HTMLDivElement>) => void;\n /**\n * Called when selected tags change.\n */\n onChange: (items: T[], change: TagsInputChange<T>) => void;\n /**\n * Called when focus enters the tags-input.\n */\n onFocus?: (event: FocusEvent<HTMLDivElement>) => void;\n /**\n * Called when the query changes.\n */\n onQueryChange?: (query: string) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Custom result renderer.\n */\n renderItem?: (item: T) => ReactNode;\n /**\n * Custom tag renderer.\n */\n renderTag?: (item: T, onRemove: () => void) => ReactNode;\n /**\n * Provides results for the menu. Use `createStaticSearchSource` for\n * in-memory data, or implement {@link SearchSource} for async/remote\n * search.\n */\n searchSource: SearchSource<T>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Icon shown before the input.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the tags-input.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Controls how tags overflow when the container is too narrow.\n * - `'none'`: Tags wrap to multiple lines (default).\n * - `'unfocusedInline'`: Single line with \"+ N more\" when unfocused; expands inline on focus.\n * - `'unfocusedLayer'`: Single line with \"+ N more\" when unfocused; expands as overlay on focus.\n * @default 'none'\n */\n tagOverflowBehavior?: TagsInputOverflowBehavior;\n /**\n * Selected items.\n */\n value: T[];\n} & FieldNecessity;\n\nconst CREATABLE_ID_PREFIX = '__silver_create__';\n\nconst styles = {\n wrapper: css({\n cursor: 'text',\n flexWrap: 'wrap',\n alignItems: 'center',\n h: 'auto',\n }),\n wrapperWithTags: css({\n rowGap: '1',\n }),\n wrapperWithTagsSize: {\n sm: css({pt: '0px', pb: '0.5'}),\n md: css({py: '1'}),\n lg: css({py: '1'}),\n },\n layerPopover: css({\n w: 'anchor-size(width)',\n }),\n truncatedWrapper: css({\n flexWrap: 'nowrap',\n overflow: 'hidden',\n }),\n truncatedSize: {\n sm: css({h: 'component.sm'}),\n md: css({h: 'component.md'}),\n lg: css({h: 'component.lg'}),\n },\n tag: css({flexShrink: 0}),\n input: css({\n minW: '10',\n flex: '1 1 40px',\n }),\n inputHidden: css({\n position: 'absolute',\n opacity: 0,\n w: 0,\n minW: 0,\n flexBasis: 0,\n }),\n endContent: css({\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n }),\n overflowText: css({\n flexShrink: 0,\n whiteSpace: 'nowrap',\n fontSize: 'sm',\n color: 'fg.muted',\n px: '1',\n }),\n liveRegion: css({\n position: 'absolute',\n w: '1px',\n h: '1px',\n overflow: 'hidden',\n clip: 'rect(0 0 0 0)',\n whiteSpace: 'nowrap',\n }),\n} as const;\n\nfunction isCreatableItem<T extends SearchableItem>(item: T): boolean {\n return item.id.startsWith(CREATABLE_ID_PREFIX);\n}\n\n/**\n * Multi-select combobox that renders selected values as removable tags.\n */\nexport function TagsInput<T extends SearchableItem>({\n className,\n 'data-testid': dataTestId,\n debounceMs,\n description,\n emptySearchResultsText,\n endContent,\n hasAutoFocus = false,\n hasClear = false,\n hasCreate = false,\n hasEntriesOnFocus = false,\n handleRef,\n isDisabled = false,\n isLabelHidden = false,\n isReadOnly = false,\n isOptional,\n isRequired,\n label,\n labelIcon,\n labelTooltip,\n maxEntries,\n maxMenuItems,\n onBlur,\n onChange,\n onFocus,\n onQueryChange,\n placeholder,\n ref,\n renderItem,\n renderTag,\n searchSource,\n size = 'md',\n startIcon,\n status,\n style,\n tagOverflowBehavior = 'none',\n value,\n}: TagsInputProps<T>): React.JSX.Element {\n const inputId = useId();\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const inputRef = useRef<HTMLInputElement>(null);\n const wrapperRef = useRef<HTMLDivElement>(null);\n const [isFocusedWithin, setIsFocusedWithin] = useState(false);\n const [announcement, setAnnouncement] = useState('');\n const [queryValue, setQueryValue] = useState('');\n const isLayerMode = tagOverflowBehavior === 'unfocusedLayer';\n const layer = useLayer();\n const layerContentRef = useRef<HTMLDivElement>(null);\n const selectedIDsRef = useRef(new Set<string>());\n // eslint-disable-next-line @eslint-react/refs -- latest-ref pattern: synchronous, idempotent sync with props\n selectedIDsRef.current = new Set(value.map(item => item.id));\n const isAtMax = maxEntries != null && value.length >= maxEntries;\n const isAtMaxRef = useRef(false);\n // eslint-disable-next-line @eslint-react/refs -- latest-ref pattern\n isAtMaxRef.current = isAtMax;\n const isTruncated =\n !isFocusedWithin && tagOverflowBehavior !== 'none' && value.length > 0;\n\n const placeholderRef = useCallback(\n (element: HTMLElement | null) => {\n if (isLayerMode) {\n layer.ref(element);\n }\n },\n [isLayerMode, layer],\n );\n\n const isFocusInTagsInput = useCallback(\n (target: EventTarget | null): boolean => {\n if (!(target instanceof Node)) {\n return false;\n }\n if (wrapperRef.current?.contains(target)) {\n return true;\n }\n if (layerContentRef.current?.contains(target)) {\n return true;\n }\n const popoverElement = document.getElementById(layer.id);\n return popoverElement?.contains(target) ?? false;\n },\n [layer.id],\n );\n\n const filteredSource = useMemo<SearchSource<T>>(\n () => ({\n cancel: () => searchSource.cancel?.(),\n async bootstrap() {\n const results = await searchSource.bootstrap();\n return results.filter(item => !selectedIDsRef.current.has(item.id));\n },\n async search(searchQuery) {\n const results = await searchSource.search(searchQuery);\n const filteredResults = results.filter(\n item => !selectedIDsRef.current.has(item.id),\n );\n if (!hasCreate || searchQuery.trim() === '' || isAtMaxRef.current) {\n return filteredResults;\n }\n const existing = filteredResults.some(\n item => item.label.toLowerCase() === searchQuery.trim().toLowerCase(),\n );\n if (existing) {\n return filteredResults;\n }\n return [\n // eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n {\n id: `${CREATABLE_ID_PREFIX}${searchQuery}`,\n label: `Create \"${searchQuery}\"`,\n auxiliaryData: {value: searchQuery},\n } as T,\n ...filteredResults,\n ];\n },\n }),\n [hasCreate, searchSource],\n );\n\n useImperativeHandle(\n handleRef,\n () => ({\n blur: () => inputRef.current?.blur(),\n focus: () => inputRef.current?.focus(),\n }),\n [],\n );\n\n const valueRef = useRef(value);\n // eslint-disable-next-line @eslint-react/refs -- latest-ref pattern\n valueRef.current = value;\n const onChangeRef = useRef(onChange);\n // eslint-disable-next-line @eslint-react/refs -- latest-ref pattern\n onChangeRef.current = onChange;\n\n const announce = useCallback((message: string) => {\n setAnnouncement('');\n requestAnimationFrame(() => setAnnouncement(message));\n }, []);\n\n const removeItem = useCallback(\n (item: T) => {\n onChangeRef.current(\n valueRef.current.filter(selectedItem => selectedItem.id !== item.id),\n {item, type: 'remove'},\n );\n announce(`Removed ${item.label}`);\n },\n [announce],\n );\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n const comingFromOutside = !isFocusInTagsInput(event.relatedTarget);\n setIsFocusedWithin(true);\n if (isLayerMode) {\n layer.show();\n }\n if (comingFromOutside) {\n onFocus?.(event);\n }\n },\n [isFocusInTagsInput, isLayerMode, layer, onFocus],\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n if (!isFocusInTagsInput(event.relatedTarget)) {\n setIsFocusedWithin(false);\n if (isLayerMode) {\n layer.hide();\n }\n onBlur?.(event);\n }\n },\n [isFocusInTagsInput, isLayerMode, layer, onBlur],\n );\n\n const handleWrapperPointerDown = useCallback(() => {\n if (!isDisabled) {\n if (isLayerMode) {\n layer.show();\n setIsFocusedWithin(true);\n }\n document.addEventListener(\n 'click',\n event => {\n // Focus the input only when the click that completes this press lands\n // inside the TagsInput. A press on a tag may open a popover anchored to\n // it (e.g. SearchFilterInput's edit popover); since the tag's own click\n // can stop propagation, this listener instead fires on the next click\n // — which might be a control in that popover. Focusing the input then\n // would steal focus back and briefly re-open the input's surface.\n if (isFocusInTagsInput(event.target)) {\n requestAnimationFrame(() => inputRef.current?.focus());\n }\n },\n {once: true},\n );\n }\n }, [isDisabled, isFocusInTagsInput, isLayerMode, layer]);\n\n const necessity = getNecessity(isOptional, isRequired);\n\n const tokens = value.map(item => (\n <span className={styles.tag} key={item.id}>\n {renderTag == null ? (\n <Tag\n isDisabled={isDisabled}\n label={item.label}\n onRemove={() => removeItem(item)}\n size={size}\n />\n ) : (\n renderTag(item, () => removeItem(item))\n )}\n </span>\n ));\n\n const wrapperContent = (\n <>\n {/* eslint-disable-next-line jsx-a11y-x/no-noninteractive-element-interactions -- pointerdown delegates to inner input for focus convenience */}\n <div\n aria-label={label}\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n value.length > 0 && !isTruncated ? styles.wrapperWithTags : undefined,\n value.length > 0 && !isTruncated\n ? styles.wrapperWithTagsSize[size]\n : undefined,\n isTruncated ? styles.truncatedWrapper : undefined,\n isTruncated ? styles.truncatedSize[size] : undefined,\n )}\n data-testid={dataTestId}\n onBlur={handleBlur}\n onFocus={handleFocus}\n onPointerDown={handleWrapperPointerDown}\n ref={wrapperRef}\n role=\"group\">\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n {isTruncated ? (\n <OverflowList\n behavior=\"observeParent\"\n gap={4}\n overflowRenderer={overflowItems => (\n <span className={styles.overflowText}>\n +{overflowItems.length} more\n </span>\n )}>\n {tokens}\n </OverflowList>\n ) : (\n tokens\n )}\n <BaseAutocompleteInput\n anchorRef={wrapperRef}\n ariaDescribedBy={describedBy}\n className={cx(\n styles.input,\n isAtMax || isTruncated ? styles.inputHidden : undefined,\n )}\n debounceMs={debounceMs}\n emptySearchResultsText={emptySearchResultsText}\n hasAutoFocus={hasAutoFocus}\n hasEntriesOnFocus={hasEntriesOnFocus}\n hasReopenOnSelect={hasEntriesOnFocus}\n inputId={inputId}\n isDisabled={isDisabled || isReadOnly || isAtMax}\n maxMenuItems={maxMenuItems}\n onChange={item => {\n if (item == null) {\n return;\n }\n if (isCreatableItem(item)) {\n const rawValue =\n typeof item.auxiliaryData === 'object' &&\n item.auxiliaryData != null &&\n 'value' in item.auxiliaryData\n ? String(item.auxiliaryData.value)\n : item.label;\n const createdItem = {\n ...item,\n id: rawValue,\n label: rawValue,\n };\n onChangeRef.current([...valueRef.current, createdItem], {\n item: createdItem,\n type: 'create',\n });\n announce(`Added ${rawValue}`);\n return;\n }\n onChangeRef.current([...valueRef.current, item], {\n item,\n type: 'add',\n });\n announce(`Added ${item.label}`);\n }}\n onKeyDown={(event: KeyboardEvent<HTMLInputElement>) => {\n if (\n event.key === 'Backspace' &&\n event.currentTarget.value === '' &&\n valueRef.current.length > 0\n ) {\n const item = valueRef.current[valueRef.current.length - 1];\n removeItem(item);\n }\n }}\n onQueryChange={nextQuery => {\n setQueryValue(nextQuery);\n onQueryChange?.(nextQuery);\n }}\n placeholder={value.length === 0 ? placeholder : undefined}\n query={queryValue}\n ref={inputRef}\n renderItem={renderItem}\n searchSource={filteredSource}\n size={size}\n value={null}\n />\n {isReactNode(endContent) ? (\n <span className={styles.endContent}>{endContent}</span>\n ) : null}\n {hasClear && value.length > 0 && !isDisabled && !isReadOnly ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={event => {\n event.stopPropagation();\n onChangeRef.current([], {\n items: valueRef.current,\n type: 'remove-all',\n });\n announce('Cleared all tags');\n }}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n <span aria-live=\"polite\" className={styles.liveRegion} role=\"status\">\n {announcement}\n </span>\n </div>\n </>\n );\n\n const popoverOverrideStyle: CSSProperties = {\n positionArea: undefined,\n positionTryFallbacks: undefined,\n top: 'anchor(top)',\n left: 'anchor(start)',\n };\n\n const inputContent = isLayerMode ? (\n <>\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n isTruncated ? styles.truncatedWrapper : undefined,\n styles.truncatedSize[size],\n )}\n onPointerDown={handleWrapperPointerDown}\n ref={placeholderRef}>\n {isTruncated ? (\n <>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <OverflowList\n behavior=\"observeParent\"\n gap={4}\n overflowRenderer={overflowItems => (\n <span className={styles.overflowText}>\n +{overflowItems.length} more\n </span>\n )}>\n {tokens}\n </OverflowList>\n </>\n ) : null}\n </div>\n {layer.render(\n <div\n data-testid={dataTestId == null ? undefined : `${dataTestId}-layer`}\n ref={layerContentRef}>\n {wrapperContent}\n </div>,\n {\n alignment: 'start',\n className: styles.layerPopover,\n placement: 'below',\n style: popoverOverrideStyle,\n },\n )}\n </>\n ) : (\n wrapperContent\n );\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n ref={ref}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n {inputContent}\n </Field>\n );\n}\n\nTagsInput.displayName = 'TagsInput';\n"]}
|
|
@@ -1,7 +1,18 @@
|
|
|
1
|
-
import { cx } from './chunk-GUKZNXTB.js';
|
|
2
1
|
import { cva } from './chunk-FMEIPGUP.js';
|
|
3
2
|
import { getSlotRecipes, memo, splitProps, compact } from './chunk-OD4DHHZH.js';
|
|
4
3
|
|
|
4
|
+
// styled-system/css/cx.js
|
|
5
|
+
function cx() {
|
|
6
|
+
let str = "", i = 0, arg;
|
|
7
|
+
for (; i < arguments.length; ) {
|
|
8
|
+
if ((arg = arguments[i++]) && typeof arg === "string") {
|
|
9
|
+
str && (str += " ");
|
|
10
|
+
str += arg;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
return str;
|
|
14
|
+
}
|
|
15
|
+
|
|
5
16
|
// styled-system/css/sva.js
|
|
6
17
|
function sva(config) {
|
|
7
18
|
const slots = Object.entries(getSlotRecipes(config)).map(([slot, slotCva]) => [slot, cva(slotCva)]);
|
|
@@ -40,5 +51,5 @@ function sva(config) {
|
|
|
40
51
|
}
|
|
41
52
|
|
|
42
53
|
export { sva };
|
|
43
|
-
//# sourceMappingURL=chunk-
|
|
44
|
-
//# sourceMappingURL=chunk-
|
|
54
|
+
//# sourceMappingURL=chunk-IAVZKGZS.js.map
|
|
55
|
+
//# sourceMappingURL=chunk-IAVZKGZS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../styled-system/css/cx.js","../styled-system/css/sva.js"],"names":["variants"],"mappings":";;;;AAAA,SAAS,EAAA,GAAK;AACZ,EAAA,IAAI,GAAA,GAAM,EAAA,EACR,CAAA,GAAI,CAAA,EACJ,GAAA;AAEF,EAAA,OAAO,CAAA,GAAI,UAAU,MAAA,IAAU;AAC7B,IAAA,IAAA,CAAK,MAAM,SAAA,CAAU,CAAA,EAAG,CAAA,KAAM,OAAO,QAAQ,QAAA,EAAU;AACrD,MAAA,GAAA,KAAQ,GAAA,IAAO,GAAA,CAAA;AACf,MAAA,GAAA,IAAO,GAAA;AAAA,IACT;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT;;;ACRO,SAAS,IAAI,MAAA,EAAQ;AAC1B,EAAA,MAAM,QAAQ,MAAA,CAAO,OAAA,CAAQ,eAAe,MAAM,CAAC,EAAE,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,OAAO,CAAA,KAAM,CAAC,MAAM,GAAA,CAAI,OAAO,CAAC,CAAC,CAAA;AAClG,EAAA,MAAM,eAAA,GAAkB,MAAA,CAAO,eAAA,IAAmB,EAAC;AAEnD,EAAA,MAAM,YAAA,GAAe,MAAM,MAAA,CAAO,CAAC,KAAK,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM;AACxD,IAAA,IAAI,OAAO,SAAA,EAAW,GAAA,CAAI,IAAI,CAAA,GAAI,MAAM,MAAA,CAAO,SAAA;AAC/C,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,SAAS,MAAM,KAAA,EAAO;AACpB,IAAA,MAAM,SAAS,KAAA,CAAM,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM,CAAC,IAAA,EAAM,EAAA,CAAG,MAAM,KAAK,CAAA,EAAG,aAAa,IAAI,CAAC,CAAC,CAAC,CAAA;AACxF,IAAA,OAAO,MAAA,CAAO,YAAY,MAAM,CAAA;AAAA,EAClC;AAEA,EAAA,SAAS,IAAI,KAAA,EAAO;AAClB,IAAA,MAAM,MAAA,GAAS,KAAA,CAAM,GAAA,CAAI,CAAC,CAAC,IAAA,EAAM,KAAK,CAAA,KAAM,CAAC,IAAA,EAAM,KAAA,CAAM,GAAA,CAAI,KAAK,CAAC,CAAC,CAAA;AACpE,IAAA,OAAO,MAAA,CAAO,YAAY,MAAM,CAAA;AAAA,EAClC;AAEA,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,QAAA,IAAY,EAAC;AACrC,EAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,QAAQ,CAAA;AAExC,EAAA,SAAS,kBAAkB,KAAA,EAAO;AAChC,IAAA,OAAO,UAAA,CAAW,OAAO,WAAW,CAAA;AAAA,EACtC;AACA,EAAA,MAAM,eAAA,GAAkB,CAACA,SAAAA,MAAc,EAAE,GAAG,eAAA,EAAiB,GAAG,OAAA,CAAQA,SAAQ,CAAA,EAAE,CAAA;AAElF,EAAA,MAAM,aAAa,MAAA,CAAO,WAAA;AAAA,IACxB,OAAO,OAAA,CAAQ,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM,CAAC,GAAA,EAAK,MAAA,CAAO,IAAA,CAAK,KAAK,CAAC,CAAC;AAAA,GAC1E;AAEA,EAAA,OAAO,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,EAAG;AAAA,IAChC,OAAA,EAAS,KAAA;AAAA,IACT,GAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,iBAAA;AAAA,IACA;AAAA,GACD,CAAA;AACH","file":"chunk-IAVZKGZS.js","sourcesContent":["function cx() {\n let str = '',\n i = 0,\n arg\n\n for (; i < arguments.length; ) {\n if ((arg = arguments[i++]) && typeof arg === 'string') {\n str && (str += ' ')\n str += arg\n }\n }\n return str\n}\n\nexport { cx }","import { compact, getSlotRecipes, memo, splitProps } from '../helpers.js';\nimport { cva } from './cva.js';\nimport { cx } from './cx.js';\n\nexport function sva(config) {\n const slots = Object.entries(getSlotRecipes(config)).map(([slot, slotCva]) => [slot, cva(slotCva)])\n const defaultVariants = config.defaultVariants ?? {}\n\n const classNameMap = slots.reduce((acc, [slot, cvaFn]) => {\n if (config.className) acc[slot] = cvaFn.config.className\n return acc\n }, {})\n\n function svaFn(props) {\n const result = slots.map(([slot, cvaFn]) => [slot, cx(cvaFn(props), classNameMap[slot])])\n return Object.fromEntries(result)\n }\n\n function raw(props) {\n const result = slots.map(([slot, cvaFn]) => [slot, cvaFn.raw(props)])\n return Object.fromEntries(result)\n }\n\n const variants = config.variants ?? {};\n const variantKeys = Object.keys(variants);\n\n function splitVariantProps(props) {\n return splitProps(props, variantKeys);\n }\n const getVariantProps = (variants) => ({ ...defaultVariants, ...compact(variants) })\n\n const variantMap = Object.fromEntries(\n Object.entries(variants).map(([key, value]) => [key, Object.keys(value)])\n );\n\n return Object.assign(memo(svaFn), {\n __cva__: false,\n raw,\n config,\n variantMap,\n variantKeys,\n classNameMap,\n splitVariantProps,\n getVariantProps,\n })\n}"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Skeleton } from './chunk-M4JUQCKP.js';
|
|
2
|
-
import { Button } from './chunk-
|
|
3
|
-
import { Spinner } from './chunk-
|
|
4
|
-
import { Tooltip } from './chunk-
|
|
2
|
+
import { Button } from './chunk-2LABTS4P.js';
|
|
3
|
+
import { Spinner } from './chunk-6ULCJ3XZ.js';
|
|
4
|
+
import { Tooltip } from './chunk-3CJC4QE6.js';
|
|
5
5
|
import { Icon } from './chunk-7T3SWOY7.js';
|
|
6
|
-
import { sva } from './chunk-
|
|
6
|
+
import { sva } from './chunk-IAVZKGZS.js';
|
|
7
7
|
import { cx } from './chunk-PPNETWIP.js';
|
|
8
8
|
import { ImageIcon, X } from 'lucide-react';
|
|
9
9
|
import { useState } from 'react';
|
|
@@ -220,5 +220,5 @@ function Thumbnail({
|
|
|
220
220
|
Thumbnail.displayName = "Thumbnail";
|
|
221
221
|
|
|
222
222
|
export { Thumbnail };
|
|
223
|
-
//# sourceMappingURL=chunk-
|
|
224
|
-
//# sourceMappingURL=chunk-
|
|
223
|
+
//# sourceMappingURL=chunk-ILEKDNP7.js.map
|
|
224
|
+
//# sourceMappingURL=chunk-ILEKDNP7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Thumbnail/Thumbnail.recipe.ts","../src/components/Thumbnail/Thumbnail.tsx"],"names":[],"mappings":"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","file":"chunk-AJTJD5C6.js","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":[],"mappings":";;;;;;;;;;;;AAEO,IAAM,kBAAkB,GAAA,CAAI;AAAA,EACjC,KAAA,EAAO;AAAA,IACL,MAAA;AAAA,IACA,gBAAA;AAAA,IACA,aAAA;AAAA,IACA,OAAA;AAAA,IACA,aAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GACF;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM;AAAA,MACJ,QAAA,EAAU,UAAA;AAAA,MACV,OAAA,EAAS,aAAA;AAAA,MACT,aAAA,EAAe,QAAA;AAAA,MACf,CAAA,EAAG,IAAA;AAAA,MACH,UAAA,EAAY,CAAA;AAAA,MACZ,SAAA,EAAW;AAAA,KACb;AAAA,IACA,cAAA,EAAgB;AAAA,MACd,QAAA,EAAU,UAAA;AAAA,MACV,CAAA,EAAG,MAAA;AAAA,MACH,WAAA,EAAa,GAAA;AAAA,MACb,YAAA,EAAc,IAAA;AAAA,MACd,QAAA,EAAU,QAAA;AAAA,MACV,EAAA,EAAI;AAAA,KACN;AAAA,IACA,WAAA,EAAa;AAAA,MACX,OAAA,EAAS,OAAA;AAAA,MACT,CAAA,EAAG,MAAA;AAAA,MACH,CAAA,EAAG,MAAA;AAAA,MACH,MAAA,EAAQ,SAAA;AAAA,MACR,YAAA,EAAc,SAAA;AAAA,MACd,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,OAAA;AAAA,MACT,CAAA,EAAG,MAAA;AAAA,MACH,CAAA,EAAG,MAAA;AAAA,MACH,SAAA,EAAW;AAAA,KACb;AAAA,IACA,WAAA,EAAa;AAAA,MACX,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,CAAA,EAAG,MAAA;AAAA,MACH,CAAA,EAAG,MAAA;AAAA,MACH,KAAA,EAAO;AAAA,KACT;AAAA,IACA,WAAA,EAAa;AAAA,MACX,QAAA,EAAU,UAAA;AAAA,MACV,KAAA,EAAO,CAAA;AAAA,MACP,YAAA,EAAc,SAAA;AAAA,MACd,SAAA,EAAW,iDAAA;AAAA,MACX,aAAA,EAAe;AAAA,KACjB;AAAA,IACA,MAAA,EAAQ;AAAA,MACN,QAAA,EAAU,UAAA;AAAA,MACV,GAAA,EAAK,GAAA;AAAA,MACL,KAAA,EAAO,GAAA;AAAA,MACP,MAAA,EAAQ,CAAA;AAAA,MACR,KAAA,EAAO;AAAA,KACT;AAAA,IACA,OAAA,EAAS;AAAA,MACP,QAAA,EAAU,UAAA;AAAA,MACV,KAAA,EAAO,CAAA;AAAA,MACP,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,EAAA,EAAI,sBAAA;AAAA,MACJ,YAAA,EAAc,SAAA;AAAA,MACd,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,UAAA,EAAY;AAAA,MACV,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM;AAAA,UACJ,OAAA,EAAS,GAAA;AAAA,UACT,aAAA,EAAe;AAAA;AACjB;AACF,KACF;AAAA,IACA,aAAA,EAAe;AAAA,MACb,IAAA,EAAM;AAAA,QACJ,cAAA,EAAgB;AAAA,UACd,MAAA,EAAQ,SAAA;AAAA,UACR,kBAAA,EAAoB,qBAAA;AAAA,UACpB,kBAAA,EAAoB,MAAA;AAAA,UACpB,wBAAA,EAA0B,SAAA;AAAA,UAC1B,MAAA,EAAQ;AAAA,YACN,SAAA,EAAW,IAAA;AAAA,YACX,OAAA,EAAS;AAAA,WACX;AAAA,UACA,OAAA,EAAS;AAAA,YACP,OAAA,EAAS;AAAA,WACX;AAAA,UACA,uBAAA,EAAyB;AAAA,YACvB,YAAA,EAAc,OAAA;AAAA,YACd,YAAA,EAAc,OAAA;AAAA,YACd,YAAA,EAAc,SAAA;AAAA,YACd,aAAA,EAAe;AAAA;AACjB;AACF;AACF;AACF,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,UAAA,EAAY,KAAA;AAAA,IACZ,aAAA,EAAe;AAAA;AAEnB,CAAC,CAAA;AC1CD,SAAS,kBAAA,CAAmB;AAAA,EAC1B,cAAA;AAAA,EACA,GAAA;AAAA,EACA,OAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA,GAAY,KAAA;AAAA,EACZ,OAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA+C;AAC7C,EAAA,MAAM,CAAC,aAAA,EAAe,gBAAgB,CAAA,GAAI,SAAS,KAAK,CAAA;AACxD,EAAA,MAAM,QAAA,GAAW,GAAA,IAAO,IAAA,IAAQ,CAAC,aAAA;AACjC,EAAA,MAAM,aAAA,GAAgB,OAAA,IAAW,IAAA,IAAQ,CAAC,cAAc,CAAC,SAAA;AACzD,EAAA,MAAM,YAAA,GACJ,aAAa,CAAC,QAAA,uBACX,QAAA,EAAA,EAAS,MAAA,EAAQ,CAAA,EAAG,CAAA,GACnB,QAAA,mBACF,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAK,GAAA,IAAO,EAAA;AAAA,MACZ,WAAW,OAAA,CAAQ,KAAA;AAAA,MACnB,OAAA,EAAS,MAAM,gBAAA,CAAiB,IAAI,CAAA;AAAA,MACpC;AAAA;AAAA,GACF,mBAEA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,WAAA,EACtB,QAAA,kBAAA,GAAA,CAAC,IAAA,EAAA,EAAK,IAAA,EAAM,SAAA,EAAW,IAAA,EAAK,IAAA,EAAK,CAAA,EACnC,CAAA;AAGJ,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,cAAA,EACrB,QAAA,EAAA;AAAA,IAAA,aAAA,mBACC,GAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAY,QAAQ,cAAc,CAAA,CAAA;AAAA,QAClC,WAAW,OAAA,CAAQ,WAAA;AAAA,QACnB,OAAA;AAAA,QACA,IAAA,EAAK,QAAA;AAAA,QACJ,QAAA,EAAA;AAAA;AAAA,KACH,GAEA,YAAA;AAAA,IAED,2BAAW,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,aAAa,CAAA,GAAK,IAAA;AAAA,IACrD,SAAA,IAAa,QAAA,mBACZ,GAAA,CAAC,KAAA,EAAA,EAAI,WAAW,OAAA,CAAQ,OAAA,EACtB,QAAA,kBAAA,GAAA,CAAC,OAAA,EAAA,EAAQ,IAAA,EAAK,IAAA,EAAK,OAAA,EAAQ,SAAA,EAAU,GACvC,CAAA,GACE,IAAA;AAAA,IACH,QAAA,IAAY,QAAQ,CAAC,UAAA,uBACnB,KAAA,EAAA,EAAI,SAAA,EAAW,QAAQ,MAAA,EACtB,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM,CAAA;AAAA,QACN,UAAA,EAAU,IAAA;AAAA,QACV,KAAA,EAAO,UAAU,cAAc,CAAA,CAAA;AAAA,QAC/B,SAAS,CAAA,KAAA,KAAS;AAChB,UAAA,KAAA,CAAM,eAAA,EAAgB;AACtB,UAAA,QAAA,CAAS,KAAsC,CAAA;AAAA,QACjD,CAAA;AAAA,QACA,IAAA,EAAK,IAAA;AAAA,QACL,OAAA,EAAQ;AAAA;AAAA,OAEZ,CAAA,GACE;AAAA,GAAA,EACN,CAAA;AAEJ;AAKO,SAAS,SAAA,CAAU;AAAA,EACxB,GAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA,GAAa,KAAA;AAAA,EACb,SAAA,GAAY,KAAA;AAAA,EACZ,KAAA;AAAA,EACA,OAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAAsC;AACpC,EAAA,MAAM,cAAA,GAAiB,SAAS,GAAA,IAAO,WAAA;AACvC,EAAA,MAAM,aAAA,GAAgB,OAAA,IAAW,IAAA,IAAQ,CAAC,cAAc,CAAC,SAAA;AACzD,EAAA,MAAM,OAAA,GAAU,eAAA,CAAgB,EAAC,UAAA,EAAY,eAAc,CAAA;AAE3D,EAAA,MAAM,SAAA,mBACJ,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,aAAW,SAAA,IAAa,MAAA;AAAA,MACxB,YAAA,EAAY,cAAA;AAAA,MACZ,SAAA,EAAW,EAAA,CAAG,OAAA,CAAQ,IAAA,EAAM,SAAS,CAAA;AAAA,MACrC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA,kBAAA,GAAA;AAAA,QAAC,kBAAA;AAAA,QAAA;AAAA,UACC,cAAA;AAAA,UACA,GAAA;AAAA,UACA,OAAA;AAAA,UACA,UAAA;AAAA,UACA,SAAA;AAAA,UAEA,OAAA;AAAA,UACA,QAAA;AAAA,UACA;AAAA,SAAA;AAAA,QAHK,GAAA,IAAO;AAAA;AAId;AAAA,GACF;AAGF,EAAA,OAAO,SAAS,IAAA,mBACd,GAAA,CAAC,WAAQ,OAAA,EAAS,KAAA,EAAQ,qBAAU,CAAA,GAEpC,SAAA;AAEJ;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA","file":"chunk-ILEKDNP7.js","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,6 +1,6 @@
|
|
|
1
1
|
import { cva } from './chunk-FMEIPGUP.js';
|
|
2
|
-
import { cx } from './chunk-PPNETWIP.js';
|
|
3
2
|
import { css } from './chunk-OD4DHHZH.js';
|
|
3
|
+
import { cx } from './chunk-PPNETWIP.js';
|
|
4
4
|
import { jsx } from 'react/jsx-runtime';
|
|
5
5
|
|
|
6
6
|
// src/components/AspectRatio/AspectRatio.recipe.ts
|
|
@@ -54,5 +54,5 @@ function AspectRatio({
|
|
|
54
54
|
AspectRatio.displayName = "AspectRatio";
|
|
55
55
|
|
|
56
56
|
export { AspectRatio };
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
58
|
-
//# sourceMappingURL=chunk-
|
|
57
|
+
//# sourceMappingURL=chunk-J3DNWPXJ.js.map
|
|
58
|
+
//# sourceMappingURL=chunk-J3DNWPXJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/AspectRatio/AspectRatio.recipe.ts","../src/components/AspectRatio/AspectRatio.tsx"],"names":[],"mappings":";;;;;;AAEO,IAAM,oBAAoB,GAAA,CAAI;AAAA,EACnC,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,UAAA;AAAA,IACV,CAAA,EAAG,MAAA;AAAA,IACH,IAAA,EAAM,CAAA;AAAA,IACN,UAAA,EAAY,CAAA;AAAA,IACZ,QAAA,EAAU;AAAA;AAEd,CAAC,CAAA;ACSD,IAAM,MAAA,GAAS;AAAA,EACb,OAAO,GAAA,CAAI;AAAA,IACT,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,CAAA;AAAA,IACP,CAAA,EAAG,MAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACJ;AACH,CAAA;AAEO,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,KAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwC;AACtC,EAAA,MAAM,YAAA,GAAe,MAAA,CAAO,QAAA,CAAS,KAAK,KAAK,KAAA,GAAQ,CAAA;AAEvD,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,kEAAA,EAAqE,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA;AAAA,OACpF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,aAAA,GAAgB,eAAe,KAAA,GAAQ,CAAA;AAE7C,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAkB,EAAG,SAAS,CAAA;AAAA,MAC5C,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA,EAAO,EAAC,GAAG,KAAA,EAAO,aAAa,aAAA,EAAa;AAAA,MAC5C,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,OAAQ,QAAA,EAAS;AAAA;AAAA,GAC1C;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/AspectRatio/AspectRatio.recipe.ts","../src/components/AspectRatio/AspectRatio.tsx"],"names":[],"mappings":";;;;;;AAEO,IAAM,oBAAoB,GAAA,CAAI;AAAA,EACnC,IAAA,EAAM;AAAA,IACJ,QAAA,EAAU,UAAA;AAAA,IACV,CAAA,EAAG,MAAA;AAAA,IACH,IAAA,EAAM,CAAA;AAAA,IACN,UAAA,EAAY,CAAA;AAAA,IACZ,QAAA,EAAU;AAAA;AAEd,CAAC,CAAA;ACSD,IAAM,MAAA,GAAS;AAAA,EACb,OAAO,GAAA,CAAI;AAAA,IACT,QAAA,EAAU,UAAA;AAAA,IACV,KAAA,EAAO,CAAA;AAAA,IACP,CAAA,EAAG,MAAA;AAAA,IACH,CAAA,EAAG;AAAA,GACJ;AACH,CAAA;AAEO,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,KAAA;AAAA,EACA,GAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAwC;AACtC,EAAA,MAAM,YAAA,GAAe,MAAA,CAAO,QAAA,CAAS,KAAK,KAAK,KAAA,GAAQ,CAAA;AAEvD,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,EAAc;AACzC,IAAA,IAAI,CAAC,YAAA,EAAc;AACjB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,kEAAA,EAAqE,MAAA,CAAO,KAAK,CAAC,CAAA,CAAA;AAAA,OACpF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,aAAA,GAAgB,eAAe,KAAA,GAAQ,CAAA;AAE7C,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACE,GAAG,IAAA;AAAA,MACJ,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAkB,EAAG,SAAS,CAAA;AAAA,MAC5C,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA,EAAO,EAAC,GAAG,KAAA,EAAO,aAAa,aAAA,EAAa;AAAA,MAC5C,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,MAAA,CAAO,OAAQ,QAAA,EAAS;AAAA;AAAA,GAC1C;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-J3DNWPXJ.js","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const aspectRatioRecipe = cva({\n base: {\n position: 'relative',\n w: '100%',\n minH: 0,\n flexShrink: 0,\n overflow: 'clip',\n },\n});\n\nexport type AspectRatioVariants = RecipeVariantProps<typeof aspectRatioRecipe>;\n","import type {ComponentPropsWithRef} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {aspectRatioRecipe} from './AspectRatio.recipe';\n\n/**\n * Maintains a fixed width-to-height ratio for media or embedded content.\n */\nexport interface AspectRatioProps extends ComponentPropsWithRef<'div'> {\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Width divided by height, such as `16 / 9`, `4 / 3`, or `1`.\n */\n ratio: number;\n}\n\nconst styles = {\n child: css({\n position: 'absolute',\n inset: 0,\n w: '100%',\n h: '100%',\n }),\n};\n\nexport function AspectRatio({\n children,\n className,\n 'data-testid': dataTestId,\n ratio,\n ref,\n style,\n ...rest\n}: AspectRatioProps): React.JSX.Element {\n const isValidRatio = Number.isFinite(ratio) && ratio > 0;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!isValidRatio) {\n throw new Error(\n `AspectRatio: \\`ratio\\` must be a finite positive number, received ${String(ratio)}.`,\n );\n }\n }\n\n const resolvedRatio = isValidRatio ? ratio : 1;\n\n return (\n <div\n {...rest}\n className={cx(aspectRatioRecipe(), className)}\n data-testid={dataTestId}\n ref={ref}\n style={{...style, aspectRatio: resolvedRatio}}>\n <div className={styles.child}>{children}</div>\n </div>\n );\n}\n\nAspectRatio.displayName = 'AspectRatio';\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkQOKEU3DC_cjs = require('./chunk-QOKEU3DC.cjs');
|
|
4
|
+
var chunkM26XECB2_cjs = require('./chunk-M26XECB2.cjs');
|
|
5
5
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
6
6
|
var chunk4TIAKZ4Q_cjs = require('./chunk-4TIAKZ4Q.cjs');
|
|
7
|
-
var
|
|
7
|
+
var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
|
|
8
8
|
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
9
9
|
var lucideReact = require('lucide-react');
|
|
10
10
|
var react = require('react');
|
|
@@ -24,7 +24,7 @@ var paddingVariants = {
|
|
|
24
24
|
8: { bodyContent: { px: "8", py: "8" } },
|
|
25
25
|
10: { bodyContent: { px: "10", py: "10" } }
|
|
26
26
|
};
|
|
27
|
-
var alertRecipe =
|
|
27
|
+
var alertRecipe = chunkZ6RT3WPE_cjs.sva({
|
|
28
28
|
slots: [
|
|
29
29
|
"root",
|
|
30
30
|
"header",
|
|
@@ -228,13 +228,13 @@ function Alert({
|
|
|
228
228
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.header, children: [
|
|
229
229
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: classes.icon, children: icon ?? defaultIcons[status] }),
|
|
230
230
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.content, children: [
|
|
231
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
232
|
-
chunkQAO6QMNQ_cjs.isReactNode(description) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
231
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkM26XECB2_cjs.Text, { as: "p", type: "label", weight: "semibold", children: title }),
|
|
232
|
+
chunkQAO6QMNQ_cjs.isReactNode(description) ? /* @__PURE__ */ jsxRuntime.jsx(chunkM26XECB2_cjs.Text, { as: "p", color: "secondary", type: "supporting", children: description }) : null
|
|
233
233
|
] }),
|
|
234
234
|
showEndArea ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.endArea, children: [
|
|
235
235
|
endContent,
|
|
236
236
|
hasChildren ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
237
|
-
|
|
237
|
+
chunkQOKEU3DC_cjs.Button,
|
|
238
238
|
{
|
|
239
239
|
"aria-controls": bodyId,
|
|
240
240
|
"aria-expanded": isExpanded,
|
|
@@ -248,7 +248,7 @@ function Alert({
|
|
|
248
248
|
}
|
|
249
249
|
) : null,
|
|
250
250
|
isDismissable ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
251
|
-
|
|
251
|
+
chunkQOKEU3DC_cjs.Button,
|
|
252
252
|
{
|
|
253
253
|
icon: lucideReact.X,
|
|
254
254
|
isIconOnly: true,
|
|
@@ -279,5 +279,5 @@ function Alert({
|
|
|
279
279
|
Alert.displayName = "Alert";
|
|
280
280
|
|
|
281
281
|
exports.Alert = Alert;
|
|
282
|
-
//# sourceMappingURL=chunk-
|
|
283
|
-
//# sourceMappingURL=chunk-
|
|
282
|
+
//# sourceMappingURL=chunk-J4OEETYQ.cjs.map
|
|
283
|
+
//# sourceMappingURL=chunk-J4OEETYQ.cjs.map
|