silver-ui 0.3.0 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{chunk-E7UOFIBW.cjs → chunk-23NN5WRP.cjs} +7 -6
- package/dist/chunk-23NN5WRP.cjs.map +1 -0
- package/dist/chunk-2PSZAWLC.js +8 -0
- package/dist/chunk-2PSZAWLC.js.map +1 -0
- package/dist/{chunk-5MDH6QZE.js → chunk-2XAA3CM5.js} +7 -10
- package/dist/chunk-2XAA3CM5.js.map +1 -0
- package/dist/{chunk-AGJ5SZCM.js → chunk-3DJ46WN4.js} +5 -5
- package/dist/{chunk-AGJ5SZCM.js.map → chunk-3DJ46WN4.js.map} +1 -1
- package/dist/{chunk-UYXQBM2B.cjs → chunk-3IBY374V.cjs} +9 -9
- package/dist/{chunk-UYXQBM2B.cjs.map → chunk-3IBY374V.cjs.map} +1 -1
- package/dist/{chunk-KIGRE6NA.js → chunk-3L6KAW7G.js} +5 -5
- package/dist/{chunk-KIGRE6NA.js.map → chunk-3L6KAW7G.js.map} +1 -1
- package/dist/{chunk-ZH3GKYUZ.js → chunk-3TXVDCF2.js} +3 -3
- package/dist/{chunk-ZH3GKYUZ.js.map → chunk-3TXVDCF2.js.map} +1 -1
- package/dist/{chunk-P4A7GWQY.cjs → chunk-3XDUR3IG.cjs} +7 -6
- package/dist/chunk-3XDUR3IG.cjs.map +1 -0
- package/dist/{chunk-Y5SXQR52.cjs → chunk-3ZFEBOXD.cjs} +28 -17
- package/dist/chunk-3ZFEBOXD.cjs.map +1 -0
- package/dist/{chunk-ZTQQ2O6O.cjs → chunk-4H35H54I.cjs} +35 -33
- package/dist/chunk-4H35H54I.cjs.map +1 -0
- package/dist/chunk-4MRORQNN.js +213 -0
- package/dist/chunk-4MRORQNN.js.map +1 -0
- package/dist/{chunk-XQU4ECJY.js → chunk-54J6FRPG.js} +16 -15
- package/dist/chunk-54J6FRPG.js.map +1 -0
- package/dist/chunk-5AYGQJOW.js +162 -0
- package/dist/chunk-5AYGQJOW.js.map +1 -0
- package/dist/{chunk-UR7RYJOU.cjs → chunk-5BCLEOFF.cjs} +19 -16
- package/dist/chunk-5BCLEOFF.cjs.map +1 -0
- package/dist/{chunk-2YC7SMVF.js → chunk-5D4LRSIV.js} +6 -5
- package/dist/chunk-5D4LRSIV.js.map +1 -0
- package/dist/{chunk-OJKZS6HG.cjs → chunk-5GNYP3PH.cjs} +256 -209
- package/dist/chunk-5GNYP3PH.cjs.map +1 -0
- package/dist/{chunk-I2X2Z7FA.cjs → chunk-5TT4PGZO.cjs} +5 -5
- package/dist/{chunk-I2X2Z7FA.cjs.map → chunk-5TT4PGZO.cjs.map} +1 -1
- package/dist/{chunk-TRK2ZZFB.cjs → chunk-65QAZWOG.cjs} +4 -3
- package/dist/chunk-65QAZWOG.cjs.map +1 -0
- package/dist/{chunk-C264Z2GQ.cjs → chunk-66LRFIYK.cjs} +8 -7
- package/dist/chunk-66LRFIYK.cjs.map +1 -0
- package/dist/{chunk-BDPE6ZKX.cjs → chunk-6MOJEGDU.cjs} +3 -3
- package/dist/{chunk-BDPE6ZKX.cjs.map → chunk-6MOJEGDU.cjs.map} +1 -1
- package/dist/{chunk-BA2VUDQS.js → chunk-6NTDPZWP.js} +3 -3
- package/dist/{chunk-BA2VUDQS.js.map → chunk-6NTDPZWP.js.map} +1 -1
- package/dist/{chunk-35MFOORC.js → chunk-6USJ4LJJ.js} +4 -4
- package/dist/{chunk-35MFOORC.js.map → chunk-6USJ4LJJ.js.map} +1 -1
- package/dist/{chunk-JAHKLROD.cjs → chunk-6W3L6IJB.cjs} +13 -12
- package/dist/chunk-6W3L6IJB.cjs.map +1 -0
- package/dist/{chunk-7P3VY5JZ.js → chunk-75CPTIET.js} +8 -7
- package/dist/chunk-75CPTIET.js.map +1 -0
- package/dist/{chunk-J2FCNWYM.js → chunk-76B2VLID.js} +82 -88
- package/dist/chunk-76B2VLID.js.map +1 -0
- package/dist/{chunk-E4KM3RQ2.js → chunk-7MN4JDP7.js} +31 -16
- package/dist/chunk-7MN4JDP7.js.map +1 -0
- package/dist/{chunk-ZNPTARIS.cjs → chunk-7PNLMDAR.cjs} +8 -8
- package/dist/{chunk-ZNPTARIS.cjs.map → chunk-7PNLMDAR.cjs.map} +1 -1
- package/dist/{chunk-4T62TLOD.cjs → chunk-7U7RP6N2.cjs} +8 -8
- package/dist/{chunk-4T62TLOD.cjs.map → chunk-7U7RP6N2.cjs.map} +1 -1
- package/dist/{chunk-XM3AZXOA.js → chunk-AJTJD5C6.js} +5 -5
- package/dist/{chunk-XM3AZXOA.js.map → chunk-AJTJD5C6.js.map} +1 -1
- package/dist/chunk-AMFFE5UJ.js +216 -0
- package/dist/chunk-AMFFE5UJ.js.map +1 -0
- package/dist/{chunk-K6CQ45C2.js → chunk-ASJ5CBCR.js} +7 -6
- package/dist/chunk-ASJ5CBCR.js.map +1 -0
- package/dist/{chunk-67VLK263.js → chunk-BA4A7C7U.js} +12 -9
- package/dist/chunk-BA4A7C7U.js.map +1 -0
- package/dist/{chunk-KFEXS6OK.cjs → chunk-BAPCHFNX.cjs} +10 -9
- package/dist/chunk-BAPCHFNX.cjs.map +1 -0
- package/dist/{chunk-YBPG5RPR.cjs → chunk-BRB52QFV.cjs} +14 -54
- package/dist/chunk-BRB52QFV.cjs.map +1 -0
- package/dist/chunk-BS55BG2U.cjs +164 -0
- package/dist/chunk-BS55BG2U.cjs.map +1 -0
- package/dist/{chunk-PLXUM7U6.cjs → chunk-CEU7BIL6.cjs} +11 -11
- package/dist/{chunk-PLXUM7U6.cjs.map → chunk-CEU7BIL6.cjs.map} +1 -1
- package/dist/{chunk-AADUJ6CN.js → chunk-CN2HJ7CP.js} +212 -183
- package/dist/chunk-CN2HJ7CP.js.map +1 -0
- package/dist/{chunk-PXVVTPRJ.js → chunk-CRQXHA7N.js} +9 -8
- package/dist/chunk-CRQXHA7N.js.map +1 -0
- package/dist/{chunk-5BLNJVIA.js → chunk-CZC2K5GJ.js} +10 -9
- package/dist/chunk-CZC2K5GJ.js.map +1 -0
- package/dist/{chunk-WA4VZ363.cjs → chunk-CZM5FAWL.cjs} +11 -10
- package/dist/chunk-CZM5FAWL.cjs.map +1 -0
- package/dist/{chunk-AH4AMQEO.js → chunk-D2DOHX4W.js} +253 -206
- package/dist/chunk-D2DOHX4W.js.map +1 -0
- package/dist/{chunk-WNGBWUWZ.cjs → chunk-D3SSMY73.cjs} +6 -6
- package/dist/{chunk-WNGBWUWZ.cjs.map → chunk-D3SSMY73.cjs.map} +1 -1
- package/dist/{chunk-GI5MVVIX.js → chunk-DIIE44GO.js} +14 -13
- package/dist/chunk-DIIE44GO.js.map +1 -0
- package/dist/{chunk-S54CKWKV.js → chunk-DSB4Q3AS.js} +3 -3
- package/dist/{chunk-S54CKWKV.js.map → chunk-DSB4Q3AS.js.map} +1 -1
- package/dist/{chunk-AMG3S252.js → chunk-EBQ3A4XO.js} +9 -8
- package/dist/chunk-EBQ3A4XO.js.map +1 -0
- package/dist/{chunk-PXTE3XRD.js → chunk-EC2ALHNJ.js} +73 -67
- package/dist/chunk-EC2ALHNJ.js.map +1 -0
- package/dist/{chunk-WWB4NSEY.cjs → chunk-EE2O457Z.cjs} +7 -7
- package/dist/{chunk-WWB4NSEY.cjs.map → chunk-EE2O457Z.cjs.map} +1 -1
- package/dist/{chunk-MQQ4GSUG.cjs → chunk-EVKFA5FA.cjs} +27 -26
- package/dist/chunk-EVKFA5FA.cjs.map +1 -0
- package/dist/{chunk-ZXPKFGRB.cjs → chunk-F3NATTQG.cjs} +81 -75
- package/dist/chunk-F3NATTQG.cjs.map +1 -0
- package/dist/{chunk-OJCJPYXE.js → chunk-F3ZNRO6W.js} +8 -7
- package/dist/chunk-F3ZNRO6W.js.map +1 -0
- package/dist/{chunk-OHKL4DOV.js → chunk-FZCBTFHY.js} +7 -6
- package/dist/chunk-FZCBTFHY.js.map +1 -0
- package/dist/{chunk-2D6SGEPH.cjs → chunk-GLJWAY4A.cjs} +15 -10
- package/dist/chunk-GLJWAY4A.cjs.map +1 -0
- package/dist/{chunk-6XESVFC3.js → chunk-GXRH5XQY.js} +89 -74
- package/dist/chunk-GXRH5XQY.js.map +1 -0
- package/dist/{chunk-VYFMYXU4.js → chunk-HNROO7CR.js} +230 -170
- package/dist/chunk-HNROO7CR.js.map +1 -0
- package/dist/{chunk-UJODHP7E.cjs → chunk-HPVXP3DG.cjs} +12 -11
- package/dist/chunk-HPVXP3DG.cjs.map +1 -0
- package/dist/chunk-HVUYVPQL.cjs +193 -0
- package/dist/chunk-HVUYVPQL.cjs.map +1 -0
- package/dist/{chunk-CFOGSQCG.cjs → chunk-I7KILUVL.cjs} +13 -12
- package/dist/chunk-I7KILUVL.cjs.map +1 -0
- package/dist/{chunk-UY3MYNI6.js → chunk-IHM2M74J.js} +5 -4
- package/dist/chunk-IHM2M74J.js.map +1 -0
- package/dist/{chunk-4M2KCZMO.js → chunk-IRSJHEYI.js} +5 -4
- package/dist/chunk-IRSJHEYI.js.map +1 -0
- package/dist/{chunk-BFWKL5MJ.cjs → chunk-JEIQ5GDK.cjs} +25 -24
- package/dist/chunk-JEIQ5GDK.cjs.map +1 -0
- package/dist/{chunk-YXYD5HKL.cjs → chunk-KFDHP4WP.cjs} +4 -4
- package/dist/{chunk-YXYD5HKL.cjs.map → chunk-KFDHP4WP.cjs.map} +1 -1
- package/dist/{chunk-6ADWXOZ2.cjs → chunk-KRZ57O2J.cjs} +3 -3
- package/dist/{chunk-6ADWXOZ2.cjs.map → chunk-KRZ57O2J.cjs.map} +1 -1
- package/dist/{chunk-W3QVSVL7.cjs → chunk-L5YTMHDI.cjs} +11 -10
- package/dist/chunk-L5YTMHDI.cjs.map +1 -0
- package/dist/{chunk-PNYF6NS4.cjs → chunk-L7BOLGF2.cjs} +8 -7
- package/dist/chunk-L7BOLGF2.cjs.map +1 -0
- package/dist/{chunk-WATCCAQU.js → chunk-LHP47U6H.js} +4 -3
- package/dist/chunk-LHP47U6H.js.map +1 -0
- package/dist/{chunk-YGYA4BYN.js → chunk-LUBVZVY3.js} +17 -16
- package/dist/chunk-LUBVZVY3.js.map +1 -0
- package/dist/{chunk-ATDW2VII.cjs → chunk-LX64ENLC.cjs} +66 -51
- package/dist/chunk-LX64ENLC.cjs.map +1 -0
- package/dist/{chunk-25FU5AVR.cjs → chunk-M3BF3BBJ.cjs} +13 -12
- package/dist/chunk-M3BF3BBJ.cjs.map +1 -0
- package/dist/chunk-M3IKL2VG.js +393 -0
- package/dist/chunk-M3IKL2VG.js.map +1 -0
- package/dist/{chunk-SFT5LCQP.cjs → chunk-M3RNFDA2.cjs} +14 -13
- package/dist/chunk-M3RNFDA2.cjs.map +1 -0
- package/dist/{chunk-CZNN2GOC.js → chunk-MGVEX3RS.js} +6 -6
- package/dist/{chunk-CZNN2GOC.js.map → chunk-MGVEX3RS.js.map} +1 -1
- package/dist/chunk-MSNRGNVY.cjs +216 -0
- package/dist/chunk-MSNRGNVY.cjs.map +1 -0
- package/dist/{chunk-IXJOPMJX.cjs → chunk-MUUPZEZ5.cjs} +7 -6
- package/dist/chunk-MUUPZEZ5.cjs.map +1 -0
- package/dist/{chunk-XVRQSTUF.js → chunk-N2TNBDQI.js} +4 -3
- package/dist/chunk-N2TNBDQI.js.map +1 -0
- package/dist/{chunk-3DW2N6UN.js → chunk-NH7KH7QP.js} +3 -3
- package/dist/{chunk-3DW2N6UN.js.map → chunk-NH7KH7QP.js.map} +1 -1
- package/dist/{chunk-76FHSISK.cjs → chunk-NHXJVSZZ.cjs} +7 -10
- package/dist/chunk-NHXJVSZZ.cjs.map +1 -0
- package/dist/{chunk-4I6VIR44.cjs → chunk-NYQPIBOD.cjs} +12 -11
- package/dist/chunk-NYQPIBOD.cjs.map +1 -0
- package/dist/{chunk-YJJOKZN2.js → chunk-O4RTJESR.js} +3 -3
- package/dist/{chunk-YJJOKZN2.js.map → chunk-O4RTJESR.js.map} +1 -1
- package/dist/{chunk-BERQEJYB.js → chunk-O5A47TA2.js} +5 -4
- package/dist/chunk-O5A47TA2.js.map +1 -0
- package/dist/{chunk-DSNJDFO3.cjs → chunk-OSBVDRVD.cjs} +17 -16
- package/dist/chunk-OSBVDRVD.cjs.map +1 -0
- package/dist/{chunk-32G54PL3.cjs → chunk-OULO3YDQ.cjs} +6 -5
- package/dist/chunk-OULO3YDQ.cjs.map +1 -0
- package/dist/{chunk-PXIWITSS.js → chunk-OWBNRALR.js} +5 -5
- package/dist/{chunk-PXIWITSS.js.map → chunk-OWBNRALR.js.map} +1 -1
- package/dist/{chunk-GEGYC7CE.js → chunk-P6RAOXJA.js} +5 -5
- package/dist/chunk-P6RAOXJA.js.map +1 -0
- package/dist/{chunk-3PDUOYAT.cjs → chunk-PJMV2HTO.cjs} +27 -29
- package/dist/chunk-PJMV2HTO.cjs.map +1 -0
- package/dist/{chunk-3WMLV4VP.cjs → chunk-PL6J55JB.cjs} +6 -6
- package/dist/chunk-PL6J55JB.cjs.map +1 -0
- package/dist/chunk-PQRIV5XU.js +242 -0
- package/dist/chunk-PQRIV5XU.js.map +1 -0
- package/dist/chunk-PZ63ZCEO.cjs +470 -0
- package/dist/chunk-PZ63ZCEO.cjs.map +1 -0
- package/dist/{chunk-EUN5TCB2.js → chunk-Q3OA23V5.js} +17 -19
- package/dist/chunk-Q3OA23V5.js.map +1 -0
- package/dist/chunk-QAO6QMNQ.cjs +10 -0
- package/dist/chunk-QAO6QMNQ.cjs.map +1 -0
- package/dist/{chunk-X5ZQRMEM.cjs → chunk-QCT4BPB6.cjs} +19 -19
- package/dist/{chunk-X5ZQRMEM.cjs.map → chunk-QCT4BPB6.cjs.map} +1 -1
- package/dist/{chunk-JMNH45Q3.cjs → chunk-QEFE4QBL.cjs} +81 -87
- package/dist/chunk-QEFE4QBL.cjs.map +1 -0
- package/dist/{chunk-AXT4VA5N.cjs → chunk-QEX7V7TI.cjs} +10 -9
- package/dist/chunk-QEX7V7TI.cjs.map +1 -0
- package/dist/chunk-QGHFUOUB.cjs +112 -0
- package/dist/chunk-QGHFUOUB.cjs.map +1 -0
- package/dist/{chunk-ITDQSF2O.cjs → chunk-QL3YSC3H.cjs} +16 -15
- package/dist/chunk-QL3YSC3H.cjs.map +1 -0
- package/dist/{chunk-PTJ5YZFY.cjs → chunk-QRKRVCA3.cjs} +238 -178
- package/dist/chunk-QRKRVCA3.cjs.map +1 -0
- package/dist/{chunk-S4GLMGFI.js → chunk-RINP34ZG.js} +5 -4
- package/dist/chunk-RINP34ZG.js.map +1 -0
- package/dist/{chunk-HLN3JQYD.js → chunk-RVENUWRD.js} +15 -55
- package/dist/chunk-RVENUWRD.js.map +1 -0
- package/dist/{chunk-GTPRZCNZ.js → chunk-S4B2D427.js} +3 -3
- package/dist/{chunk-GTPRZCNZ.js.map → chunk-S4B2D427.js.map} +1 -1
- package/dist/{chunk-5Q5TJUHI.js → chunk-S4LVSSJI.js} +11 -6
- package/dist/chunk-S4LVSSJI.js.map +1 -0
- package/dist/{chunk-L6JT244G.cjs → chunk-SSOAZZNR.cjs} +4 -3
- package/dist/chunk-SSOAZZNR.cjs.map +1 -0
- package/dist/{chunk-BYBVI7UN.js → chunk-TF7IWMV2.js} +9 -8
- package/dist/chunk-TF7IWMV2.js.map +1 -0
- package/dist/{chunk-FQSOUCZS.cjs → chunk-U2U4FMFM.cjs} +8 -8
- package/dist/{chunk-FQSOUCZS.cjs.map → chunk-U2U4FMFM.cjs.map} +1 -1
- package/dist/chunk-U5GTHA44.cjs +395 -0
- package/dist/chunk-U5GTHA44.cjs.map +1 -0
- package/dist/{chunk-OMHOVHPX.js → chunk-UKDGDMWN.js} +4 -4
- package/dist/{chunk-OMHOVHPX.js.map → chunk-UKDGDMWN.js.map} +1 -1
- package/dist/chunk-UN35QV25.js +110 -0
- package/dist/chunk-UN35QV25.js.map +1 -0
- package/dist/{chunk-RKMW3ZOK.js → chunk-UPQHFW47.js} +4 -4
- package/dist/{chunk-RKMW3ZOK.js.map → chunk-UPQHFW47.js.map} +1 -1
- package/dist/{chunk-ACQMLJ4I.cjs → chunk-UXDXE7Z6.cjs} +39 -38
- package/dist/chunk-UXDXE7Z6.cjs.map +1 -0
- package/dist/{chunk-IG4UJZ6B.js → chunk-UYBGXFYX.js} +20 -19
- package/dist/chunk-UYBGXFYX.js.map +1 -0
- package/dist/{chunk-ZW2ATXTL.js → chunk-VAK4JQYL.js} +7 -6
- package/dist/chunk-VAK4JQYL.js.map +1 -0
- package/dist/{chunk-7FY26X2V.js → chunk-VEUZ5DZR.js} +6 -5
- package/dist/chunk-VEUZ5DZR.js.map +1 -0
- package/dist/{chunk-JVLE7PCJ.cjs → chunk-VJBBMBRT.cjs} +7 -7
- package/dist/{chunk-JVLE7PCJ.cjs.map → chunk-VJBBMBRT.cjs.map} +1 -1
- package/dist/chunk-VVO7GIHG.cjs +220 -0
- package/dist/chunk-VVO7GIHG.cjs.map +1 -0
- package/dist/{chunk-MAL4D4LR.cjs → chunk-W3KMDQKP.cjs} +8 -7
- package/dist/chunk-W3KMDQKP.cjs.map +1 -0
- package/dist/{chunk-MACIT6C6.js → chunk-WO6FS4DV.js} +5 -4
- package/dist/chunk-WO6FS4DV.js.map +1 -0
- package/dist/chunk-WYE3VOFK.cjs +244 -0
- package/dist/chunk-WYE3VOFK.cjs.map +1 -0
- package/dist/{chunk-BJD32VBQ.cjs → chunk-X2GRBPCJ.cjs} +89 -74
- package/dist/chunk-X2GRBPCJ.cjs.map +1 -0
- package/dist/{chunk-4YQSKCVF.cjs → chunk-XADTIY7J.cjs} +4 -4
- package/dist/{chunk-4YQSKCVF.cjs.map → chunk-XADTIY7J.cjs.map} +1 -1
- package/dist/{chunk-H2SGYAUO.js → chunk-XUJZTD4E.js} +9 -8
- package/dist/chunk-XUJZTD4E.js.map +1 -0
- package/dist/{chunk-ZNZ67KFM.js → chunk-Y4FH67QZ.js} +8 -7
- package/dist/chunk-Y4FH67QZ.js.map +1 -0
- package/dist/{chunk-SEAVOF6B.js → chunk-YLGAJD6Q.js} +8 -6
- package/dist/chunk-YLGAJD6Q.js.map +1 -0
- package/dist/chunk-YNTPHZFJ.js +191 -0
- package/dist/chunk-YNTPHZFJ.js.map +1 -0
- package/dist/{chunk-4Z62KDKI.js → chunk-YSTESYUB.js} +23 -12
- package/dist/chunk-YSTESYUB.js.map +1 -0
- package/dist/{chunk-K77D7H4V.cjs → chunk-ZD3NPHZ7.cjs} +5 -4
- package/dist/chunk-ZD3NPHZ7.cjs.map +1 -0
- package/dist/{chunk-UMGW7WJI.cjs → chunk-ZLATP3P5.cjs} +10 -8
- package/dist/chunk-ZLATP3P5.cjs.map +1 -0
- package/dist/{chunk-VSEKSDTK.js → chunk-ZVH3BLYO.js} +8 -7
- package/dist/chunk-ZVH3BLYO.js.map +1 -0
- package/dist/{chunk-ISYUZ5FS.js → chunk-ZWULWVN3.js} +30 -28
- package/dist/chunk-ZWULWVN3.js.map +1 -0
- package/dist/components/Accordion/AccordionItem.recipe.d.ts +1 -1
- package/dist/components/Accordion/index.cjs +5 -5
- package/dist/components/Accordion/index.js +2 -2
- package/dist/components/Alert/Alert.d.ts.map +1 -1
- package/dist/components/Alert/Alert.recipe.d.ts +1 -1
- package/dist/components/Alert/index.cjs +8 -7
- package/dist/components/Alert/index.js +7 -6
- package/dist/components/AlertDialog/index.cjs +10 -9
- package/dist/components/AlertDialog/index.js +8 -7
- package/dist/components/AppShell/AppShell.d.ts.map +1 -1
- package/dist/components/AppShell/index.cjs +16 -15
- package/dist/components/AppShell/index.js +13 -12
- package/dist/components/AutocompleteInput/AutocompleteInput.d.ts +6 -1
- package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
- package/dist/components/AutocompleteInput/AutocompleteInput.recipe.d.ts +42 -0
- package/dist/components/AutocompleteInput/AutocompleteInput.recipe.d.ts.map +1 -0
- package/dist/components/AutocompleteInput/AutocompleteInputItem.d.ts +27 -4
- package/dist/components/AutocompleteInput/AutocompleteInputItem.d.ts.map +1 -1
- package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts +22 -2
- package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
- package/dist/components/AutocompleteInput/index.cjs +14 -13
- 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 +10 -9
- package/dist/components/AutocompleteInput/types.d.ts +39 -3
- package/dist/components/AutocompleteInput/types.d.ts.map +1 -1
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar/AvatarStatusDot.d.ts.map +1 -1
- package/dist/components/Avatar/index.cjs +6 -5
- package/dist/components/Avatar/index.js +3 -2
- package/dist/components/AvatarGroup/index.cjs +6 -5
- package/dist/components/AvatarGroup/index.js +4 -3
- package/dist/components/Blockquote/Blockquote.d.ts.map +1 -1
- package/dist/components/Blockquote/index.cjs +3 -2
- package/dist/components/Blockquote/index.js +2 -1
- package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/BreadcrumbItem.recipe.d.ts +22 -0
- package/dist/components/Breadcrumbs/BreadcrumbItem.recipe.d.ts.map +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.recipe.d.ts +4 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.recipe.d.ts.map +1 -0
- package/dist/components/Breadcrumbs/index.cjs +6 -4
- package/dist/components/Breadcrumbs/index.js +3 -1
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/Button.recipe.d.ts +80 -62
- package/dist/components/Button/Button.recipe.d.ts.map +1 -1
- package/dist/components/Button/index.cjs +7 -6
- package/dist/components/Button/index.js +6 -5
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/Calendar.recipe.d.ts +86 -0
- package/dist/components/Calendar/Calendar.recipe.d.ts.map +1 -0
- package/dist/components/Calendar/index.cjs +8 -7
- package/dist/components/Calendar/index.js +7 -6
- package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts +39 -0
- package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts.map +1 -0
- package/dist/components/CheckboxInput/index.cjs +7 -6
- package/dist/components/CheckboxInput/index.js +6 -5
- package/dist/components/CodeBlock/index.cjs +9 -8
- package/dist/components/CodeBlock/index.js +8 -7
- package/dist/components/ContextMenu/index.cjs +13 -12
- package/dist/components/ContextMenu/index.js +11 -10
- package/dist/components/DateInput/DateInput.d.ts +5 -1
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/index.cjs +11 -10
- package/dist/components/DateInput/index.js +10 -9
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/index.cjs +11 -10
- package/dist/components/DateRangeInput/index.js +10 -9
- package/dist/components/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/components/DateTimeInput/index.cjs +13 -12
- package/dist/components/DateTimeInput/index.js +12 -11
- package/dist/components/Divider/Divider.d.ts.map +1 -1
- package/dist/components/Divider/index.cjs +3 -2
- package/dist/components/Divider/index.js +2 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/DropdownMenu/index.cjs +14 -13
- package/dist/components/DropdownMenu/index.js +10 -9
- package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.recipe.d.ts +13 -4
- package/dist/components/EmptyState/EmptyState.recipe.d.ts.map +1 -1
- package/dist/components/EmptyState/index.cjs +5 -3
- package/dist/components/EmptyState/index.js +4 -2
- package/dist/components/Field/Field.d.ts.map +1 -1
- package/dist/components/Field/index.cjs +6 -5
- package/dist/components/Field/index.js +4 -3
- package/dist/components/FileInput/FileInput.d.ts.map +1 -1
- package/dist/components/FileInput/index.cjs +9 -8
- package/dist/components/FileInput/index.js +8 -7
- package/dist/components/InputGroup/InputGroup.d.ts.map +1 -1
- package/dist/components/InputGroup/index.cjs +9 -8
- package/dist/components/InputGroup/index.js +5 -4
- package/dist/components/Item/Item.d.ts.map +1 -1
- package/dist/components/Item/index.cjs +4 -3
- package/dist/components/Item/index.js +3 -2
- package/dist/components/Layout/Layout.d.ts.map +1 -1
- package/dist/components/Layout/LayoutFooter.d.ts.map +1 -1
- package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
- package/dist/components/Layout/index.cjs +12 -11
- package/dist/components/Layout/index.js +7 -6
- package/dist/components/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/components/Lightbox/index.cjs +9 -8
- package/dist/components/Lightbox/index.js +7 -6
- package/dist/components/Link/index.cjs +1 -0
- package/dist/components/Link/index.js +1 -0
- package/dist/components/List/List.d.ts.map +1 -1
- package/dist/components/List/List.recipe.d.ts +42 -0
- package/dist/components/List/List.recipe.d.ts.map +1 -0
- package/dist/components/List/ListItem.d.ts.map +1 -1
- package/dist/components/List/index.cjs +7 -5
- package/dist/components/List/index.js +5 -3
- package/dist/components/MetadataList/index.cjs +4 -4
- package/dist/components/MetadataList/index.js +2 -2
- package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/dist/components/MultiSelect/index.cjs +11 -10
- package/dist/components/MultiSelect/index.js +10 -9
- package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/components/NumberInput/index.cjs +10 -9
- package/dist/components/NumberInput/index.js +9 -8
- package/dist/components/Pagination/index.cjs +8 -7
- package/dist/components/Pagination/index.js +7 -6
- package/dist/components/PasswordInput/index.cjs +11 -10
- package/dist/components/PasswordInput/index.js +10 -9
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/index.cjs +9 -8
- package/dist/components/Popover/index.js +7 -6
- package/dist/components/Progress/Progress.d.ts.map +1 -1
- package/dist/components/Progress/Progress.recipe.d.ts +34 -16
- package/dist/components/Progress/Progress.recipe.d.ts.map +1 -1
- package/dist/components/Progress/index.cjs +4 -2
- package/dist/components/Progress/index.js +3 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
- package/dist/components/RadioGroup/RadioGroupItem.d.ts.map +1 -1
- package/dist/components/RadioGroup/index.cjs +8 -7
- package/dist/components/RadioGroup/index.js +6 -5
- package/dist/components/Rating/index.cjs +3 -3
- package/dist/components/Rating/index.js +2 -2
- package/dist/components/Schedule/index.cjs +22 -21
- package/dist/components/Schedule/index.js +11 -10
- package/dist/components/SearchFilterInput/SearchFilterInput.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/index.cjs +30 -29
- package/dist/components/SearchFilterInput/index.js +22 -21
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/Select.recipe.d.ts +25 -0
- package/dist/components/Select/Select.recipe.d.ts.map +1 -0
- package/dist/components/Select/SelectOption.d.ts.map +1 -1
- package/dist/components/Select/index.cjs +13 -12
- package/dist/components/Select/index.js +11 -10
- package/dist/components/SideNav/SideNav.d.ts.map +1 -1
- package/dist/components/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/components/SideNav/SideNavSection.d.ts.map +1 -1
- package/dist/components/SideNav/index.cjs +15 -14
- package/dist/components/SideNav/index.js +9 -8
- package/dist/components/Slider/index.cjs +6 -5
- package/dist/components/Slider/index.js +5 -4
- package/dist/components/Spinner/index.cjs +3 -3
- package/dist/components/Spinner/index.js +2 -2
- package/dist/components/SplitButton/index.cjs +12 -11
- package/dist/components/SplitButton/index.js +11 -10
- package/dist/components/Stack/HStack.d.ts +1 -1
- package/dist/components/Stack/HStack.d.ts.map +1 -1
- package/dist/components/Stack/VStack.d.ts +1 -1
- package/dist/components/Stack/VStack.d.ts.map +1 -1
- package/dist/components/Stack/index.cjs +3 -3
- package/dist/components/Stack/index.d.ts +1 -1
- package/dist/components/Stack/index.d.ts.map +1 -1
- package/dist/components/Stack/index.js +1 -1
- package/dist/components/Stack/{Stack.d.ts → internal/Stack.d.ts} +13 -3
- package/dist/components/Stack/internal/Stack.d.ts.map +1 -0
- package/dist/components/Stack/{Stack.recipe.d.ts → internal/Stack.recipe.d.ts} +1 -1
- package/dist/components/Stack/internal/Stack.recipe.d.ts.map +1 -0
- package/dist/components/Stepper/Step.d.ts.map +1 -1
- package/dist/components/Stepper/index.cjs +6 -5
- package/dist/components/Stepper/index.js +3 -2
- package/dist/components/Switch/Switch.d.ts.map +1 -1
- package/dist/components/Switch/index.cjs +6 -5
- package/dist/components/Switch/index.js +5 -4
- package/dist/components/Table/BaseTable.d.ts.map +1 -1
- package/dist/components/Table/index.cjs +53 -52
- package/dist/components/Table/index.js +25 -24
- package/dist/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/components/Tabs/index.cjs +13 -12
- package/dist/components/Tabs/index.js +8 -7
- package/dist/components/Tag/Tag.d.ts +2 -2
- package/dist/components/Tag/Tag.d.ts.map +1 -1
- package/dist/components/Tag/Tag.recipe.d.ts +103 -68
- package/dist/components/Tag/Tag.recipe.d.ts.map +1 -1
- package/dist/components/Tag/index.cjs +4 -2
- package/dist/components/Tag/index.js +3 -1
- package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
- package/dist/components/TagsInput/index.cjs +12 -11
- package/dist/components/TagsInput/index.js +11 -10
- package/dist/components/Text/Heading.d.ts.map +1 -1
- package/dist/components/Text/Text.d.ts.map +1 -1
- package/dist/components/Text/index.cjs +3 -3
- package/dist/components/Text/index.js +1 -1
- package/dist/components/TextArea/TextArea.d.ts.map +1 -1
- package/dist/components/TextArea/index.cjs +7 -6
- package/dist/components/TextArea/index.js +6 -5
- package/dist/components/TextInput/TextInput.d.ts.map +1 -1
- package/dist/components/TextInput/index.cjs +10 -9
- package/dist/components/TextInput/index.js +9 -8
- package/dist/components/Thumbnail/Thumbnail.recipe.d.ts +1 -1
- package/dist/components/Thumbnail/index.cjs +8 -7
- package/dist/components/Thumbnail/index.js +7 -6
- package/dist/components/TimeInput/TimeInput.d.ts +10 -2
- package/dist/components/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/components/TimeInput/index.cjs +9 -8
- package/dist/components/TimeInput/index.js +8 -7
- package/dist/components/Toast/Toast.d.ts.map +1 -1
- package/dist/components/Toast/Toast.recipe.d.ts +39 -0
- package/dist/components/Toast/Toast.recipe.d.ts.map +1 -0
- package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/components/Toast/index.cjs +10 -9
- package/dist/components/Toast/index.js +7 -6
- package/dist/components/ToggleButton/index.cjs +7 -7
- package/dist/components/ToggleButton/index.js +5 -5
- package/dist/components/TopNav/TopNav.d.ts.map +1 -1
- package/dist/components/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/components/TopNav/index.cjs +15 -14
- package/dist/components/TopNav/index.js +9 -8
- package/dist/components/TreeView/TreeView.d.ts.map +1 -1
- package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
- package/dist/components/TreeView/index.cjs +3 -2
- package/dist/components/TreeView/index.js +2 -1
- package/dist/index.cjs +218 -217
- 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 +64 -63
- package/dist/index.js.map +1 -1
- package/dist/internal/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/internal/OverflowList.d.ts.map +1 -1
- package/dist/internal/index.d.ts +1 -0
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/isReactNode.d.ts +3 -0
- package/dist/internal/isReactNode.d.ts.map +1 -0
- package/dist/internal/useSelectListbox.d.ts +2 -2
- package/dist/internal/useSelectListbox.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/chunk-25FU5AVR.cjs.map +0 -1
- package/dist/chunk-2D6SGEPH.cjs.map +0 -1
- package/dist/chunk-2TGDDZG6.cjs +0 -441
- package/dist/chunk-2TGDDZG6.cjs.map +0 -1
- package/dist/chunk-2YC7SMVF.js.map +0 -1
- package/dist/chunk-32G54PL3.cjs.map +0 -1
- package/dist/chunk-3PDUOYAT.cjs.map +0 -1
- package/dist/chunk-3WMLV4VP.cjs.map +0 -1
- package/dist/chunk-4I6VIR44.cjs.map +0 -1
- package/dist/chunk-4M2KCZMO.js.map +0 -1
- package/dist/chunk-4YESF35X.cjs +0 -211
- package/dist/chunk-4YESF35X.cjs.map +0 -1
- package/dist/chunk-4Z62KDKI.js.map +0 -1
- package/dist/chunk-5BLNJVIA.js.map +0 -1
- package/dist/chunk-5MDH6QZE.js.map +0 -1
- package/dist/chunk-5Q5TJUHI.js.map +0 -1
- package/dist/chunk-67VLK263.js.map +0 -1
- package/dist/chunk-6D3FA247.js +0 -126
- package/dist/chunk-6D3FA247.js.map +0 -1
- package/dist/chunk-6XESVFC3.js.map +0 -1
- package/dist/chunk-76FHSISK.cjs.map +0 -1
- package/dist/chunk-77RGTGRM.cjs +0 -128
- package/dist/chunk-77RGTGRM.cjs.map +0 -1
- package/dist/chunk-7FY26X2V.js.map +0 -1
- package/dist/chunk-7P3VY5JZ.js.map +0 -1
- package/dist/chunk-AADUJ6CN.js.map +0 -1
- package/dist/chunk-ACQMLJ4I.cjs.map +0 -1
- package/dist/chunk-AH4AMQEO.js.map +0 -1
- package/dist/chunk-AMG3S252.js.map +0 -1
- package/dist/chunk-ATDW2VII.cjs.map +0 -1
- package/dist/chunk-AXT4VA5N.cjs.map +0 -1
- package/dist/chunk-BERQEJYB.js.map +0 -1
- package/dist/chunk-BFWKL5MJ.cjs.map +0 -1
- package/dist/chunk-BJD32VBQ.cjs.map +0 -1
- package/dist/chunk-BYBVI7UN.js.map +0 -1
- package/dist/chunk-C264Z2GQ.cjs.map +0 -1
- package/dist/chunk-CFOGSQCG.cjs.map +0 -1
- package/dist/chunk-DSNJDFO3.cjs.map +0 -1
- package/dist/chunk-E2JZGYKU.cjs +0 -181
- package/dist/chunk-E2JZGYKU.cjs.map +0 -1
- package/dist/chunk-E4KM3RQ2.js.map +0 -1
- package/dist/chunk-E7UOFIBW.cjs.map +0 -1
- package/dist/chunk-EFO5NDBJ.js +0 -191
- package/dist/chunk-EFO5NDBJ.js.map +0 -1
- package/dist/chunk-EUN5TCB2.js.map +0 -1
- package/dist/chunk-GEGYC7CE.js.map +0 -1
- package/dist/chunk-GI5MVVIX.js.map +0 -1
- package/dist/chunk-H2SGYAUO.js.map +0 -1
- package/dist/chunk-HLN3JQYD.js.map +0 -1
- package/dist/chunk-IG4UJZ6B.js.map +0 -1
- package/dist/chunk-ISYUZ5FS.js.map +0 -1
- package/dist/chunk-ITDQSF2O.cjs.map +0 -1
- package/dist/chunk-IXJOPMJX.cjs.map +0 -1
- package/dist/chunk-J2FCNWYM.js.map +0 -1
- package/dist/chunk-JAHKLROD.cjs.map +0 -1
- package/dist/chunk-JMNH45Q3.cjs.map +0 -1
- package/dist/chunk-K6CQ45C2.js.map +0 -1
- package/dist/chunk-K77D7H4V.cjs.map +0 -1
- package/dist/chunk-KFEXS6OK.cjs.map +0 -1
- package/dist/chunk-L6JT244G.cjs.map +0 -1
- package/dist/chunk-L6WUK7O4.js +0 -207
- package/dist/chunk-L6WUK7O4.js.map +0 -1
- package/dist/chunk-LJLCGQRV.js +0 -99
- package/dist/chunk-LJLCGQRV.js.map +0 -1
- package/dist/chunk-MACIT6C6.js.map +0 -1
- package/dist/chunk-MAL4D4LR.cjs.map +0 -1
- package/dist/chunk-MMST4VXH.cjs +0 -392
- package/dist/chunk-MMST4VXH.cjs.map +0 -1
- package/dist/chunk-MQQ4GSUG.cjs.map +0 -1
- package/dist/chunk-OHKL4DOV.js.map +0 -1
- package/dist/chunk-OJCJPYXE.js.map +0 -1
- package/dist/chunk-OJKZS6HG.cjs.map +0 -1
- package/dist/chunk-P4A7GWQY.cjs.map +0 -1
- package/dist/chunk-P4TOIB2A.cjs +0 -101
- package/dist/chunk-P4TOIB2A.cjs.map +0 -1
- package/dist/chunk-PJXJOI73.js +0 -232
- package/dist/chunk-PJXJOI73.js.map +0 -1
- package/dist/chunk-PNYF6NS4.cjs.map +0 -1
- package/dist/chunk-PTJ5YZFY.cjs.map +0 -1
- package/dist/chunk-PXTE3XRD.js.map +0 -1
- package/dist/chunk-PXVVTPRJ.js.map +0 -1
- package/dist/chunk-S4GLMGFI.js.map +0 -1
- package/dist/chunk-SEAVOF6B.js.map +0 -1
- package/dist/chunk-SFT5LCQP.cjs.map +0 -1
- package/dist/chunk-SSOHJEHS.js +0 -390
- package/dist/chunk-SSOHJEHS.js.map +0 -1
- package/dist/chunk-TO3ZPSYO.cjs +0 -234
- package/dist/chunk-TO3ZPSYO.cjs.map +0 -1
- package/dist/chunk-TRK2ZZFB.cjs.map +0 -1
- package/dist/chunk-UJODHP7E.cjs.map +0 -1
- package/dist/chunk-UMGW7WJI.cjs.map +0 -1
- package/dist/chunk-UR7RYJOU.cjs.map +0 -1
- package/dist/chunk-UX2Z7LRM.cjs +0 -194
- package/dist/chunk-UX2Z7LRM.cjs.map +0 -1
- package/dist/chunk-UY3MYNI6.js.map +0 -1
- package/dist/chunk-VSEKSDTK.js.map +0 -1
- package/dist/chunk-VYFMYXU4.js.map +0 -1
- package/dist/chunk-W3QVSVL7.cjs.map +0 -1
- package/dist/chunk-WA4VZ363.cjs.map +0 -1
- package/dist/chunk-WATCCAQU.js.map +0 -1
- package/dist/chunk-XQU4ECJY.js.map +0 -1
- package/dist/chunk-XVRQSTUF.js.map +0 -1
- package/dist/chunk-Y5SXQR52.cjs.map +0 -1
- package/dist/chunk-YBPG5RPR.cjs.map +0 -1
- package/dist/chunk-YGYA4BYN.js.map +0 -1
- package/dist/chunk-ZC6GLBEL.js +0 -179
- package/dist/chunk-ZC6GLBEL.js.map +0 -1
- package/dist/chunk-ZNZ67KFM.js.map +0 -1
- package/dist/chunk-ZTQQ2O6O.cjs.map +0 -1
- package/dist/chunk-ZW2ATXTL.js.map +0 -1
- package/dist/chunk-ZXPKFGRB.cjs.map +0 -1
- package/dist/components/Stack/Stack.d.ts.map +0 -1
- package/dist/components/Stack/Stack.recipe.d.ts.map +0 -1
package/dist/chunk-ZC6GLBEL.js
DELETED
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import { VisuallyHidden } from './chunk-EXYBQVZT.js';
|
|
2
|
-
import { cva } from './chunk-FMEIPGUP.js';
|
|
3
|
-
import { cx } from './chunk-PPNETWIP.js';
|
|
4
|
-
import { css } from './chunk-OD4DHHZH.js';
|
|
5
|
-
import { useId } from 'react';
|
|
6
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
7
|
-
|
|
8
|
-
// src/components/Progress/Progress.recipe.ts
|
|
9
|
-
var progressFillRecipe = cva({
|
|
10
|
-
base: {
|
|
11
|
-
h: "full",
|
|
12
|
-
borderRadius: "full",
|
|
13
|
-
transitionProperty: "width",
|
|
14
|
-
transitionDuration: "normal",
|
|
15
|
-
transitionTimingFunction: "default",
|
|
16
|
-
"@media (prefers-reduced-motion: reduce)": {
|
|
17
|
-
transitionDuration: "0s"
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
variants: {
|
|
21
|
-
variant: {
|
|
22
|
-
error: { bg: "status.error.solid" },
|
|
23
|
-
info: { bg: "status.info.solid" },
|
|
24
|
-
neutral: { bg: "status.neutral.solid" },
|
|
25
|
-
success: { bg: "status.success.solid" },
|
|
26
|
-
warning: { bg: "status.warning.solid" }
|
|
27
|
-
},
|
|
28
|
-
isDisabled: {
|
|
29
|
-
true: { bg: "status.disabled.solid" },
|
|
30
|
-
false: {}
|
|
31
|
-
},
|
|
32
|
-
isIndeterminate: {
|
|
33
|
-
true: {
|
|
34
|
-
w: "40%",
|
|
35
|
-
animation: "pulse 1.5s ease-in-out infinite",
|
|
36
|
-
transitionProperty: "none",
|
|
37
|
-
transitionDuration: "0s",
|
|
38
|
-
"@media (prefers-reduced-motion: reduce)": {
|
|
39
|
-
animation: "pulse 3s ease-in-out infinite"
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
false: {}
|
|
43
|
-
}
|
|
44
|
-
},
|
|
45
|
-
defaultVariants: {
|
|
46
|
-
variant: "info",
|
|
47
|
-
isDisabled: false,
|
|
48
|
-
isIndeterminate: false
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
var styles = {
|
|
52
|
-
container: css({
|
|
53
|
-
display: "flex",
|
|
54
|
-
flexDirection: "column",
|
|
55
|
-
gap: "1",
|
|
56
|
-
w: "full",
|
|
57
|
-
minW: "12"
|
|
58
|
-
}),
|
|
59
|
-
header: css({
|
|
60
|
-
display: "flex",
|
|
61
|
-
alignItems: "baseline",
|
|
62
|
-
justifyContent: "space-between",
|
|
63
|
-
gap: "2"
|
|
64
|
-
}),
|
|
65
|
-
label: css({
|
|
66
|
-
color: "fg",
|
|
67
|
-
fontFamily: "body",
|
|
68
|
-
fontSize: "sm",
|
|
69
|
-
fontWeight: "medium",
|
|
70
|
-
lineHeight: "normal"
|
|
71
|
-
}),
|
|
72
|
-
disabledText: css({
|
|
73
|
-
color: "fg.disabled"
|
|
74
|
-
}),
|
|
75
|
-
valueLabel: css({
|
|
76
|
-
color: "fg.muted",
|
|
77
|
-
fontFamily: "body",
|
|
78
|
-
fontSize: "sm",
|
|
79
|
-
lineHeight: "normal",
|
|
80
|
-
whiteSpace: "nowrap"
|
|
81
|
-
}),
|
|
82
|
-
track: css({
|
|
83
|
-
w: "full",
|
|
84
|
-
h: "2",
|
|
85
|
-
overflow: "hidden",
|
|
86
|
-
borderRadius: "full",
|
|
87
|
-
bg: "bg.hover"
|
|
88
|
-
})
|
|
89
|
-
};
|
|
90
|
-
function defaultFormatValueLabel(value, max) {
|
|
91
|
-
if (max <= 0) {
|
|
92
|
-
return "0%";
|
|
93
|
-
}
|
|
94
|
-
return `${Math.round(value / max * 100)}%`;
|
|
95
|
-
}
|
|
96
|
-
function Progress({
|
|
97
|
-
className,
|
|
98
|
-
"data-testid": dataTestId,
|
|
99
|
-
formatValueLabel = defaultFormatValueLabel,
|
|
100
|
-
hasValueLabel = false,
|
|
101
|
-
isDisabled = false,
|
|
102
|
-
isIndeterminate = false,
|
|
103
|
-
isLabelHidden = false,
|
|
104
|
-
label,
|
|
105
|
-
max = 100,
|
|
106
|
-
ref,
|
|
107
|
-
role: roleProp = "progressbar",
|
|
108
|
-
style,
|
|
109
|
-
value = 0,
|
|
110
|
-
variant = "info"
|
|
111
|
-
}) {
|
|
112
|
-
const labelId = useId();
|
|
113
|
-
if (process.env.NODE_ENV !== "production" && max <= 0) {
|
|
114
|
-
console.warn("Progress: `max` must be greater than 0.");
|
|
115
|
-
}
|
|
116
|
-
const clampedValue = Math.min(Math.max(0, value), max);
|
|
117
|
-
const percentage = max > 0 ? clampedValue / max * 100 : 0;
|
|
118
|
-
const valueText = formatValueLabel(clampedValue, max);
|
|
119
|
-
const showValueLabel = hasValueLabel && !isIndeterminate;
|
|
120
|
-
return /* @__PURE__ */ jsxs(
|
|
121
|
-
"div",
|
|
122
|
-
{
|
|
123
|
-
className: cx(styles.container, className),
|
|
124
|
-
"data-testid": dataTestId,
|
|
125
|
-
ref,
|
|
126
|
-
style,
|
|
127
|
-
children: [
|
|
128
|
-
!isLabelHidden || showValueLabel ? /* @__PURE__ */ jsxs("div", { className: styles.header, children: [
|
|
129
|
-
isLabelHidden ? /* @__PURE__ */ jsx(VisuallyHidden, { id: labelId, children: label }) : /* @__PURE__ */ jsx(
|
|
130
|
-
"span",
|
|
131
|
-
{
|
|
132
|
-
className: cx(
|
|
133
|
-
styles.label,
|
|
134
|
-
isDisabled ? styles.disabledText : void 0
|
|
135
|
-
),
|
|
136
|
-
id: labelId,
|
|
137
|
-
children: label
|
|
138
|
-
}
|
|
139
|
-
),
|
|
140
|
-
showValueLabel ? /* @__PURE__ */ jsx(
|
|
141
|
-
"span",
|
|
142
|
-
{
|
|
143
|
-
className: cx(
|
|
144
|
-
styles.valueLabel,
|
|
145
|
-
isDisabled ? styles.disabledText : void 0
|
|
146
|
-
),
|
|
147
|
-
children: valueText
|
|
148
|
-
}
|
|
149
|
-
) : null
|
|
150
|
-
] }) : /* @__PURE__ */ jsx(VisuallyHidden, { id: labelId, children: label }),
|
|
151
|
-
/* @__PURE__ */ jsx(
|
|
152
|
-
"div",
|
|
153
|
-
{
|
|
154
|
-
"aria-disabled": isDisabled || void 0,
|
|
155
|
-
"aria-labelledby": labelId,
|
|
156
|
-
"aria-valuemax": isIndeterminate ? void 0 : max,
|
|
157
|
-
"aria-valuemin": isIndeterminate ? void 0 : 0,
|
|
158
|
-
"aria-valuenow": isIndeterminate ? void 0 : clampedValue,
|
|
159
|
-
"aria-valuetext": isIndeterminate ? void 0 : valueText,
|
|
160
|
-
className: styles.track,
|
|
161
|
-
role: isIndeterminate ? "progressbar" : roleProp,
|
|
162
|
-
children: /* @__PURE__ */ jsx(
|
|
163
|
-
"div",
|
|
164
|
-
{
|
|
165
|
-
className: progressFillRecipe({ variant, isDisabled, isIndeterminate }),
|
|
166
|
-
style: isIndeterminate ? void 0 : { width: `${percentage}%` }
|
|
167
|
-
}
|
|
168
|
-
)
|
|
169
|
-
}
|
|
170
|
-
)
|
|
171
|
-
]
|
|
172
|
-
}
|
|
173
|
-
);
|
|
174
|
-
}
|
|
175
|
-
Progress.displayName = "Progress";
|
|
176
|
-
|
|
177
|
-
export { Progress };
|
|
178
|
-
//# sourceMappingURL=chunk-ZC6GLBEL.js.map
|
|
179
|
-
//# sourceMappingURL=chunk-ZC6GLBEL.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Progress/Progress.recipe.ts","../src/components/Progress/Progress.tsx"],"names":[],"mappings":";;;;;;;;AAEO,IAAM,qBAAqB,GAAA,CAAI;AAAA,EACpC,IAAA,EAAM;AAAA,IACJ,CAAA,EAAG,MAAA;AAAA,IACH,YAAA,EAAc,MAAA;AAAA,IACd,kBAAA,EAAoB,OAAA;AAAA,IACpB,kBAAA,EAAoB,QAAA;AAAA,IACpB,wBAAA,EAA0B,SAAA;AAAA,IAC1B,yCAAA,EAA2C;AAAA,MACzC,kBAAA,EAAoB;AAAA;AACtB,GACF;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,EAAC,EAAA,EAAI,oBAAA,EAAoB;AAAA,MAChC,IAAA,EAAM,EAAC,EAAA,EAAI,mBAAA,EAAmB;AAAA,MAC9B,OAAA,EAAS,EAAC,EAAA,EAAI,sBAAA,EAAsB;AAAA,MACpC,OAAA,EAAS,EAAC,EAAA,EAAI,sBAAA,EAAsB;AAAA,MACpC,OAAA,EAAS,EAAC,EAAA,EAAI,sBAAA;AAAsB,KACtC;AAAA,IACA,UAAA,EAAY;AAAA,MACV,IAAA,EAAM,EAAC,EAAA,EAAI,uBAAA,EAAuB;AAAA,MAClC,OAAO;AAAC,KACV;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA,QACJ,CAAA,EAAG,KAAA;AAAA,QACH,SAAA,EAAW,iCAAA;AAAA,QACX,kBAAA,EAAoB,MAAA;AAAA,QACpB,kBAAA,EAAoB,IAAA;AAAA,QACpB,yCAAA,EAA2C;AAAA,UACzC,SAAA,EAAW;AAAA;AACb,OACF;AAAA,MACA,OAAO;AAAC;AACV,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,KAAA;AAAA,IACZ,eAAA,EAAiB;AAAA;AAErB,CAAC,CAAA;ACsCD,IAAM,MAAA,GAAS;AAAA,EACb,WAAW,GAAA,CAAI;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK,GAAA;AAAA,IACL,CAAA,EAAG,MAAA;AAAA,IACH,IAAA,EAAM;AAAA,GACP,CAAA;AAAA,EACD,QAAQ,GAAA,CAAI;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,UAAA;AAAA,IACZ,cAAA,EAAgB,eAAA;AAAA,IAChB,GAAA,EAAK;AAAA,GACN,CAAA;AAAA,EACD,OAAO,GAAA,CAAI;AAAA,IACT,KAAA,EAAO,IAAA;AAAA,IACP,UAAA,EAAY,MAAA;AAAA,IACZ,QAAA,EAAU,IAAA;AAAA,IACV,UAAA,EAAY,QAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,cAAc,GAAA,CAAI;AAAA,IAChB,KAAA,EAAO;AAAA,GACR,CAAA;AAAA,EACD,YAAY,GAAA,CAAI;AAAA,IACd,KAAA,EAAO,UAAA;AAAA,IACP,UAAA,EAAY,MAAA;AAAA,IACZ,QAAA,EAAU,IAAA;AAAA,IACV,UAAA,EAAY,QAAA;AAAA,IACZ,UAAA,EAAY;AAAA,GACb,CAAA;AAAA,EACD,OAAO,GAAA,CAAI;AAAA,IACT,CAAA,EAAG,MAAA;AAAA,IACH,CAAA,EAAG,GAAA;AAAA,IACH,QAAA,EAAU,QAAA;AAAA,IACV,YAAA,EAAc,MAAA;AAAA,IACd,EAAA,EAAI;AAAA,GACL;AACH,CAAA;AAEA,SAAS,uBAAA,CAAwB,OAAe,GAAA,EAAqB;AACnE,EAAA,IAAI,OAAO,CAAA,EAAG;AACZ,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,GAAG,IAAA,CAAK,KAAA,CAAO,KAAA,GAAQ,GAAA,GAAO,GAAG,CAAC,CAAA,CAAA,CAAA;AAC3C;AAKO,SAAS,QAAA,CAAS;AAAA,EACvB,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,gBAAA,GAAmB,uBAAA;AAAA,EACnB,aAAA,GAAgB,KAAA;AAAA,EAChB,UAAA,GAAa,KAAA;AAAA,EACb,eAAA,GAAkB,KAAA;AAAA,EAClB,aAAA,GAAgB,KAAA;AAAA,EAChB,KAAA;AAAA,EACA,GAAA,GAAM,GAAA;AAAA,EACN,GAAA;AAAA,EACA,MAAM,QAAA,GAAW,aAAA;AAAA,EACjB,KAAA;AAAA,EACA,KAAA,GAAQ,CAAA;AAAA,EACR,OAAA,GAAU;AACZ,CAAA,EAAqC;AACnC,EAAA,MAAM,UAAU,KAAA,EAAM;AAEtB,EAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,IAAgB,OAAO,CAAA,EAAG;AACrD,IAAA,OAAA,CAAQ,KAAK,yCAAyC,CAAA;AAAA,EACxD;AAEA,EAAA,MAAM,YAAA,GAAe,KAAK,GAAA,CAAI,IAAA,CAAK,IAAI,CAAA,EAAG,KAAK,GAAG,GAAG,CAAA;AACrD,EAAA,MAAM,UAAA,GAAa,GAAA,GAAM,CAAA,GAAK,YAAA,GAAe,MAAO,GAAA,GAAM,CAAA;AAC1D,EAAA,MAAM,SAAA,GAAY,gBAAA,CAAiB,YAAA,EAAc,GAAG,CAAA;AACpD,EAAA,MAAM,cAAA,GAAiB,iBAAiB,CAAC,eAAA;AAEzC,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,MAAA,CAAO,SAAA,EAAW,SAAS,CAAA;AAAA,MACzC,aAAA,EAAa,UAAA;AAAA,MACb,GAAA;AAAA,MACA,KAAA;AAAA,MACC,QAAA,EAAA;AAAA,QAAA,CAAC,iBAAiB,cAAA,mBACjB,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAO,MAAA,EACpB,QAAA,EAAA;AAAA,UAAA,aAAA,mBACC,GAAA,CAAC,cAAA,EAAA,EAAe,EAAA,EAAI,OAAA,EAAU,iBAAM,CAAA,mBAEpC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAA,CAAO,KAAA;AAAA,gBACP,UAAA,GAAa,OAAO,YAAA,GAAe;AAAA,eACrC;AAAA,cACA,EAAA,EAAI,OAAA;AAAA,cACH,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,UAED,cAAA,mBACC,GAAA;AAAA,YAAC,MAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,MAAA,CAAO,UAAA;AAAA,gBACP,UAAA,GAAa,OAAO,YAAA,GAAe;AAAA,eACrC;AAAA,cACC,QAAA,EAAA;AAAA;AAAA,WACH,GACE;AAAA,SAAA,EACN,CAAA,mBAEA,GAAA,CAAC,cAAA,EAAA,EAAe,EAAA,EAAI,SAAU,QAAA,EAAA,KAAA,EAAM,CAAA;AAAA,wBAGtC,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,iBAAe,UAAA,IAAc,MAAA;AAAA,YAC7B,iBAAA,EAAiB,OAAA;AAAA,YACjB,eAAA,EAAe,kBAAkB,MAAA,GAAY,GAAA;AAAA,YAC7C,eAAA,EAAe,kBAAkB,MAAA,GAAY,CAAA;AAAA,YAC7C,eAAA,EAAe,kBAAkB,MAAA,GAAY,YAAA;AAAA,YAC7C,gBAAA,EAAgB,kBAAkB,MAAA,GAAY,SAAA;AAAA,YAC9C,WAAW,MAAA,CAAO,KAAA;AAAA,YAClB,IAAA,EAAM,kBAAkB,aAAA,GAAgB,QAAA;AAAA,YACxC,QAAA,kBAAA,GAAA;AAAA,cAAC,KAAA;AAAA,cAAA;AAAA,gBACC,WAAW,kBAAA,CAAmB,EAAC,OAAA,EAAS,UAAA,EAAY,iBAAgB,CAAA;AAAA,gBACpE,OAAO,eAAA,GAAkB,MAAA,GAAY,EAAC,KAAA,EAAO,CAAA,EAAG,UAAU,CAAA,CAAA,CAAA;AAAG;AAAA;AAC/D;AAAA;AACF;AAAA;AAAA,GACF;AAEJ;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-ZC6GLBEL.js","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const progressFillRecipe = cva({\n base: {\n h: 'full',\n borderRadius: 'full',\n transitionProperty: 'width',\n transitionDuration: 'normal',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0s',\n },\n },\n variants: {\n variant: {\n error: {bg: 'status.error.solid'},\n info: {bg: 'status.info.solid'},\n neutral: {bg: 'status.neutral.solid'},\n success: {bg: 'status.success.solid'},\n warning: {bg: 'status.warning.solid'},\n },\n isDisabled: {\n true: {bg: 'status.disabled.solid'},\n false: {},\n },\n isIndeterminate: {\n true: {\n w: '40%',\n animation: 'pulse 1.5s ease-in-out infinite',\n transitionProperty: 'none',\n transitionDuration: '0s',\n '@media (prefers-reduced-motion: reduce)': {\n animation: 'pulse 3s ease-in-out infinite',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n variant: 'info',\n isDisabled: false,\n isIndeterminate: false,\n },\n});\n\nexport type ProgressFillVariants = RecipeVariantProps<\n typeof progressFillRecipe\n>;\n","import {useId, type CSSProperties, type Ref} from 'react';\nimport {css} from 'styled-system/css';\nimport {VisuallyHidden} from '../../internal/VisuallyHidden';\nimport {cx} from '../../internal/cx';\nimport {progressFillRecipe} from './Progress.recipe';\n\nexport type ProgressVariant =\n | 'error'\n | 'info'\n | 'neutral'\n | 'success'\n | 'warning';\n\nexport interface ProgressProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Custom formatter for the value label and aria-valuetext.\n */\n formatValueLabel?: (value: number, max: number) => string;\n /**\n * Whether to display the formatted value beside the label.\n * @default false\n */\n hasValueLabel?: boolean;\n /**\n * Whether the progress bar is visually disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to render an indeterminate loading indicator.\n * @default false\n */\n isIndeterminate?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Accessible label for the progress bar.\n */\n label: string;\n /**\n * Maximum progress value.\n * @default 100\n */\n max?: number;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * ARIA role for the progress indicator. Use 'progressbar' for task\n * completion and 'meter' for static gauges.\n * @default 'progressbar'\n */\n role?: 'meter' | 'progressbar';\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Current progress value.\n * @default 0\n */\n value?: number;\n /**\n * Semantic color variant.\n * @default 'info'\n */\n variant?: ProgressVariant;\n}\n\nconst styles = {\n container: css({\n display: 'flex',\n flexDirection: 'column',\n gap: '1',\n w: 'full',\n minW: '12',\n }),\n header: css({\n display: 'flex',\n alignItems: 'baseline',\n justifyContent: 'space-between',\n gap: '2',\n }),\n label: css({\n color: 'fg',\n fontFamily: 'body',\n fontSize: 'sm',\n fontWeight: 'medium',\n lineHeight: 'normal',\n }),\n disabledText: css({\n color: 'fg.disabled',\n }),\n valueLabel: css({\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n lineHeight: 'normal',\n whiteSpace: 'nowrap',\n }),\n track: css({\n w: 'full',\n h: '2',\n overflow: 'hidden',\n borderRadius: 'full',\n bg: 'bg.hover',\n }),\n} as const;\n\nfunction defaultFormatValueLabel(value: number, max: number): string {\n if (max <= 0) {\n return '0%';\n }\n return `${Math.round((value / max) * 100)}%`;\n}\n\n/**\n * A progress bar that communicates determinate or indeterminate loading state.\n */\nexport function Progress({\n className,\n 'data-testid': dataTestId,\n formatValueLabel = defaultFormatValueLabel,\n hasValueLabel = false,\n isDisabled = false,\n isIndeterminate = false,\n isLabelHidden = false,\n label,\n max = 100,\n ref,\n role: roleProp = 'progressbar',\n style,\n value = 0,\n variant = 'info',\n}: ProgressProps): React.JSX.Element {\n const labelId = useId();\n\n if (process.env.NODE_ENV !== 'production' && max <= 0) {\n console.warn('Progress: `max` must be greater than 0.');\n }\n\n const clampedValue = Math.min(Math.max(0, value), max);\n const percentage = max > 0 ? (clampedValue / max) * 100 : 0;\n const valueText = formatValueLabel(clampedValue, max);\n const showValueLabel = hasValueLabel && !isIndeterminate;\n\n return (\n <div\n className={cx(styles.container, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n {!isLabelHidden || showValueLabel ? (\n <div className={styles.header}>\n {isLabelHidden ? (\n <VisuallyHidden id={labelId}>{label}</VisuallyHidden>\n ) : (\n <span\n className={cx(\n styles.label,\n isDisabled ? styles.disabledText : undefined,\n )}\n id={labelId}>\n {label}\n </span>\n )}\n {showValueLabel ? (\n <span\n className={cx(\n styles.valueLabel,\n isDisabled ? styles.disabledText : undefined,\n )}>\n {valueText}\n </span>\n ) : null}\n </div>\n ) : (\n <VisuallyHidden id={labelId}>{label}</VisuallyHidden>\n )}\n\n <div\n aria-disabled={isDisabled || undefined}\n aria-labelledby={labelId}\n aria-valuemax={isIndeterminate ? undefined : max}\n aria-valuemin={isIndeterminate ? undefined : 0}\n aria-valuenow={isIndeterminate ? undefined : clampedValue}\n aria-valuetext={isIndeterminate ? undefined : valueText}\n className={styles.track}\n role={isIndeterminate ? 'progressbar' : roleProp}>\n <div\n className={progressFillRecipe({variant, isDisabled, isIndeterminate})}\n style={isIndeterminate ? undefined : {width: `${percentage}%`}}\n />\n </div>\n </div>\n );\n}\n\nProgress.displayName = 'Progress';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/internal/formatFileSize.ts","../src/components/FileInput/FileInput.tsx"],"names":[],"mappings":"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","file":"chunk-ZNZ67KFM.js","sourcesContent":["export function formatFileSize(bytes: number): string {\n if (bytes < 1024) {\n return `${bytes} B`;\n }\n\n if (bytes < 1024 * 1024) {\n return `${(bytes / 1024).toFixed(1)} KB`;\n }\n\n return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;\n}\n","import {Upload, X} from 'lucide-react';\nimport {\n useId,\n useRef,\n useState,\n type CSSProperties,\n type DragEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {formatFileSize} from '../../internal/formatFileSize';\nimport {mergeRefs} from '../../internal/mergeRefs';\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 {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Spinner} from '../Spinner';\nimport {Text} from '../Text';\n\nexport type FileInputMode = 'dropzone' | 'input';\n\ninterface FileInputBaseProps {\n /**\n * Comma-separated MIME types or file extensions the input accepts.\n */\n accept?: string;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the hidden file input.\n */\n 'data-testid'?: string;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\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 in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label text.\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 file size in bytes.\n */\n maxSize?: number;\n /**\n * Display mode: inline input or drag-and-drop dropzone.\n * @default 'input'\n */\n mode?: FileInputMode;\n /**\n * Placeholder text shown when no file is selected.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the hidden file input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the input.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\ninterface FileInputSingleProps extends FileInputBaseProps {\n /**\n * Whether multiple files can be selected.\n */\n isMultiple?: false;\n /**\n * Maximum number of files allowed. Only applicable when isMultiple is true.\n */\n maxFiles?: undefined;\n /**\n * Called when the selected file changes.\n */\n onChange: (file: File | null) => void;\n /**\n * Currently selected file.\n */\n value: File | null;\n}\n\ninterface FileInputMultipleProps extends FileInputBaseProps {\n /**\n * Whether multiple files can be selected.\n */\n isMultiple: true;\n /**\n * Maximum number of files allowed.\n */\n maxFiles?: number;\n /**\n * Called when the selected files change.\n */\n onChange: (files: File[]) => void;\n /**\n * Currently selected files.\n */\n value: File[];\n}\n\nexport type FileInputProps = (FileInputMultipleProps | FileInputSingleProps) &\n FieldNecessity;\n\nconst styles = {\n surface: css({\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n px: '3',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'md',\n bg: 'bg',\n cursor: 'pointer',\n _hover: {borderColor: 'fg.muted'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n dropzone: css({\n minH: '32',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center',\n borderStyle: 'dashed',\n textAlign: 'center',\n '& > *': {\n flex: 'none',\n },\n }),\n disabled: css({\n cursor: 'not-allowed',\n opacity: 0.55,\n }),\n active: css({\n borderColor: 'primary',\n bg: 'bg.selected',\n }),\n hiddenInput: css({\n position: 'absolute',\n w: '1px',\n h: '1px',\n p: 0,\n m: '-1px',\n overflow: 'hidden',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n }),\n fileName: css({\n flex: 1,\n minW: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }),\n icon: css({\n display: 'inline-flex',\n color: 'fg.muted',\n }),\n} as const;\n\nfunction validateFiles(\n files: File[],\n options: {\n accept?: string;\n isMultiple: boolean;\n maxFiles?: number;\n maxSize?: number;\n },\n): {error: string | null; files: File[]} {\n let validFiles = files;\n if (options.accept != null) {\n const acceptedTypes = options.accept\n .split(',')\n .map(type => type.trim().toLowerCase());\n validFiles = validFiles.filter(file =>\n acceptedTypes.some(type => {\n if (type.startsWith('.')) {\n return file.name.toLowerCase().endsWith(type);\n }\n if (type.endsWith('/*')) {\n return file.type.startsWith(type.slice(0, -1));\n }\n return file.type.toLowerCase() === type;\n }),\n );\n if (validFiles.length !== files.length) {\n return {\n files: validFiles,\n error: 'One or more files are not an accepted type.',\n };\n }\n }\n if (options.maxSize != null) {\n const maxSize = options.maxSize;\n const oversized = validFiles.find(file => file.size > maxSize);\n if (oversized != null) {\n return {\n error: `\"${oversized.name}\" exceeds ${formatFileSize(maxSize)}.`,\n files: validFiles.filter(file => file.size <= maxSize),\n };\n }\n }\n if (\n options.isMultiple &&\n options.maxFiles != null &&\n validFiles.length > options.maxFiles\n ) {\n return {\n files: validFiles.slice(0, options.maxFiles),\n error: `Maximum ${options.maxFiles} files allowed.`,\n };\n }\n return {files: validFiles, error: null};\n}\n\nfunction getFileNames(value: File | File[] | null): string | null {\n if (value == null) {\n return null;\n }\n if (Array.isArray(value)) {\n return value.length === 0 ? null : value.map(file => file.name).join(', ');\n }\n return value.name;\n}\n\n/**\n * A file input supporting both inline and drag-and-drop dropzone modes.\n */\nexport function FileInput({\n label,\n value,\n onChange,\n accept,\n isMultiple = false,\n maxSize,\n maxFiles,\n mode = 'input',\n placeholder,\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n size = 'md',\n status: statusFromProps,\n labelIcon,\n labelTooltip,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: FileInputProps): React.JSX.Element {\n const inputId = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const [isDragOver, setIsDragOver] = useState(false);\n const [validationError, setValidationError] = useState<string | null>(null);\n const status =\n statusFromProps ??\n (validationError == null\n ? undefined\n : {type: 'error' as const, message: validationError});\n const descriptionID =\n description != null ? `${inputId}-description` : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const fileNames = getFileNames(value);\n const displayText =\n fileNames ?? placeholder ?? (isMultiple ? 'Choose files' : 'Choose file');\n const isDropzone = mode === 'dropzone';\n\n const handleFiles = (files: File[]) => {\n if (isDisabled) {\n return;\n }\n const result = validateFiles(files, {\n accept,\n isMultiple,\n maxFiles,\n maxSize,\n });\n setValidationError(result.error);\n if (isMultiple) {\n (onChange as (files: File[]) => void)(result.files);\n } else if (result.files.length === 0) {\n (onChange as (file: File | null) => void)(null);\n } else {\n (onChange as (file: File | null) => void)(result.files[0]);\n }\n };\n\n const handleClear = () => {\n setValidationError(null);\n if (isMultiple) {\n (onChange as (files: File[]) => void)([]);\n } else {\n (onChange as (file: File | null) => void)(null);\n }\n };\n\n const dragProps = isDropzone\n ? {\n onDragEnter: (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n if (!isDisabled) {\n setIsDragOver(true);\n }\n },\n onDragLeave: (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragOver(false);\n },\n onDragOver: (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n if (!isDisabled) {\n setIsDragOver(true);\n }\n },\n onDrop: (event: DragEvent<HTMLDivElement>) => {\n event.preventDefault();\n setIsDragOver(false);\n if (!isDisabled) {\n handleFiles(Array.from(event.dataTransfer.files));\n }\n },\n }\n : {};\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\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 <div\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-disabled={isDisabled || undefined}\n className={cx(\n styles.surface,\n isDropzone\n ? styles.dropzone\n : inputRecipe({size, status: status?.type, isDisabled}),\n isDisabled ? styles.disabled : undefined,\n isDragOver ? styles.active : undefined,\n className,\n )}\n onClick={() => {\n if (!isDisabled) {\n inputRef.current?.click();\n }\n }}\n onKeyDown={event => {\n if (!isDisabled && (event.key === 'Enter' || event.key === ' ')) {\n event.preventDefault();\n inputRef.current?.click();\n }\n }}\n role=\"button\"\n style={style}\n tabIndex={isDisabled ? -1 : 0}\n {...dragProps}>\n <input\n accept={accept}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n className={styles.hiddenInput}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n multiple={isMultiple}\n onChange={event => {\n handleFiles(Array.from(event.target.files ?? []));\n event.currentTarget.value = '';\n }}\n ref={mergeRefs(ref, inputRef)}\n required={isRequired}\n type=\"file\"\n />\n {isLoading ? (\n <Spinner size={isDropzone ? 'md' : 'sm'} />\n ) : (\n <span className={styles.icon}>\n <Icon icon={Upload} size={isDropzone ? 'md' : 'sm'} />\n </span>\n )}\n <Text\n as=\"span\"\n className={styles.fileName}\n color={fileNames == null ? 'secondary' : 'primary'}>\n {isDragOver ? 'Drop files here' : displayText}\n </Text>\n {fileNames != null ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={event => {\n event.stopPropagation();\n handleClear();\n }}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {status != null && !isDropzone ? (\n <span className={styles.icon}>{getStatusIcon(status.type)}</span>\n ) : null}\n </div>\n </Field>\n );\n}\n\nFileInput.displayName = 'FileInput';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/NumberInput/NumberInput.tsx"],"names":["css","useId","getStatusMessageID","getDescribedBy","useInputGroup","useState","useMemo","getNecessity","jsxs","cx","inputRecipe","jsx","inputStyles","Icon","Button","X","Spinner","getStatusIcon","Field"],"mappings":"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","file":"chunk-ZTQQ2O6O.cjs","sourcesContent":["import {X} from 'lucide-react';\nimport {\n useId,\n useMemo,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {Button} from '../Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport {inputRecipe, inputStyles} from '../Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {useInputGroup} from '../InputGroup';\nimport {Spinner} from '../Spinner';\n\ntype NumberInputBaseProps = {\n /**\n * HTML autocomplete attribute value.\n */\n autoComplete?: string;\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the input, before the status icon.\n */\n endContent?: ReactNode;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to restrict input to integer values only.\n * @default false\n */\n isIntegerOnly?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon rendered beside the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum allowed value.\n */\n max?: number | null;\n /**\n * Minimum allowed value.\n */\n min?: number | null;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called when Enter is pressed.\n */\n onEnter?: () => void;\n /**\n * Called when the input receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Keyboard event handler for the input.\n */\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Icon shown before the input.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Step increment for the number input.\n */\n step?: number | null;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Unit label displayed after the input value.\n */\n units?: string | null;\n /**\n * Controlled numeric value.\n */\n value: number | null;\n} & FieldNecessity;\n\ntype NumberInputNonClearableProps = NumberInputBaseProps & {\n /**\n * Whether to show a clear button.\n */\n hasClear?: false;\n /**\n * Called when the numeric value changes.\n */\n onChange: (value: number) => void;\n};\n\ntype NumberInputClearableProps = NumberInputBaseProps & {\n /**\n * Whether to show a clear button.\n */\n hasClear: true;\n /**\n * Called when the numeric value changes or is cleared.\n */\n onChange: (value: number | null) => void;\n};\n\nexport type NumberInputProps =\n | NumberInputClearableProps\n | NumberInputNonClearableProps;\n\nconst styles = {\n units: css({\n color: 'fg.muted',\n fontFamily: 'body',\n fontSize: 'sm',\n }),\n} as const;\n\nfunction parseNumberInput(\n input: string,\n options: {isIntegerOnly: boolean; max?: number | null; min?: number | null},\n): number | null {\n const trimmed = input.trim();\n if (trimmed === '' || trimmed === '-') {\n return null;\n }\n const number = Number(trimmed);\n if (!Number.isFinite(number)) {\n return null;\n }\n if (options.isIntegerOnly && !Number.isInteger(number)) {\n return null;\n }\n if (options.min != null && number < options.min) {\n return null;\n }\n if (options.max != null && number > options.max) {\n return null;\n }\n return number;\n}\n\n/**\n * Numeric input field with optional min/max bounds and step control.\n */\nexport function NumberInput({\n label,\n value,\n onChange,\n size: sizeProp = 'md',\n description,\n endContent,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isIntegerOnly = false,\n isLoading = false,\n hasClear,\n hasAutoFocus = false,\n htmlName,\n autoComplete,\n min,\n max,\n step,\n units,\n status,\n labelIcon,\n labelTooltip,\n startIcon,\n placeholder,\n onFocus,\n onBlur,\n onEnter,\n onKeyDown,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: NumberInputProps): React.JSX.Element {\n const inputId = useId();\n const descriptionID =\n description != null ? `${inputId}-description` : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const inputGroup = useInputGroup();\n const effectiveDisabled = isDisabled || inputGroup?.isDisabled === true;\n const size = inputGroup?.size ?? sizeProp;\n const effectiveStatusType = status?.type ?? inputGroup?.statusType;\n const [pendingInput, setPendingInput] = useState<string | null>(null);\n const displayValue = useMemo(() => {\n if (pendingInput != null) {\n return pendingInput;\n }\n return value == null ? '' : String(value);\n }, [pendingInput, value]);\n const isInputValid =\n pendingInput == null ||\n pendingInput.trim() === '' ||\n parseNumberInput(pendingInput, {min, max, isIntegerOnly}) != null;\n\n const necessity = getNecessity(isOptional, isRequired);\n\n const inputWrapper = (\n <div\n className={cx(\n inputRecipe({\n size,\n status: effectiveStatusType,\n isDisabled: effectiveDisabled,\n }),\n inputGroup != null ? className : undefined,\n )}\n style={inputGroup != null ? style : undefined}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <input\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || !isInputValid || undefined}\n aria-label={inputGroup != null ? label : undefined}\n aria-required={isRequired ?? undefined}\n autoComplete={autoComplete}\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={inputStyles.control}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={effectiveDisabled}\n id={inputId}\n max={max ?? undefined}\n min={min ?? undefined}\n name={htmlName}\n onBlur={event => {\n if (pendingInput != null) {\n const parsed = parseNumberInput(pendingInput, {\n min,\n max,\n isIntegerOnly,\n });\n if (parsed != null && parsed !== value) {\n onChange(parsed);\n }\n setPendingInput(null);\n }\n onBlur?.(event);\n }}\n onChange={(event: ChangeEvent<HTMLInputElement>) => {\n const nextValue = event.target.value;\n setPendingInput(nextValue);\n const parsed = parseNumberInput(nextValue, {\n min,\n max,\n isIntegerOnly,\n });\n if (parsed != null && parsed !== value) {\n onChange(parsed);\n }\n }}\n onFocus={onFocus}\n onKeyDown={event => {\n if (event.key === 'Enter' && !event.nativeEvent.isComposing) {\n onEnter?.();\n }\n onKeyDown?.(event);\n }}\n placeholder={placeholder}\n ref={ref}\n required={isRequired ?? undefined}\n step={step ?? undefined}\n type=\"number\"\n value={displayValue}\n />\n {units != null ? <span className={styles.units}>{units}</span> : null}\n {hasClear === true && value != null && !effectiveDisabled ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={() => onChange(null)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {endContent}\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n );\n\n if (inputGroup != null) {\n return inputWrapper;\n }\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n {inputWrapper}\n </Field>\n );\n}\n\nNumberInput.displayName = 'NumberInput';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/TextArea/TextArea.tsx"],"names":[],"mappings":"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","file":"chunk-ZW2ATXTL.js","sourcesContent":["import {\n useId,\n type ChangeEvent,\n type CSSProperties,\n type ClipboardEvent,\n type FocusEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {css} from 'styled-system/css';\nimport {cx} from '../../internal/cx';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from '../Field';\nimport {inputRecipe, inputStyles} from '../Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from '../Field/inputUtils';\nimport {Icon, type IconComponent} from '../Icon';\nimport {Spinner} from '../Spinner';\nimport {Text} from '../Text';\n\nexport type TextAreaProps = {\n /**\n * Additional CSS class names applied to the textarea wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the textarea element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * Whether to focus the textarea on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether the browser spellcheck is enabled.\n * @default true\n */\n hasSpellCheck?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the textarea 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 textarea 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 character count. Displays a counter when set.\n */\n maxLength?: number;\n /**\n * Called when the textarea loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * Called with the next string value.\n */\n onChange: (value: string, event: ChangeEvent<HTMLTextAreaElement>) => void;\n /**\n * Called when the textarea receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLTextAreaElement>) => void;\n /**\n * Called when content is pasted into the textarea.\n */\n onPaste?: (event: ClipboardEvent<HTMLTextAreaElement>) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the textarea element.\n */\n ref?: Ref<HTMLTextAreaElement>;\n /**\n * Number of visible text rows.\n * @default 3\n */\n rows?: number;\n /**\n * Visual size.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Icon shown before the textarea.\n */\n startIcon?: IconComponent;\n /**\n * Validation status displayed below the textarea.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the textarea wrapper.\n */\n style?: CSSProperties;\n /**\n * Controlled textarea value.\n */\n value: string;\n} & FieldNecessity;\n\nconst styles = {\n wrapper: css({\n alignItems: 'flex-start',\n py: '2',\n }),\n textarea: css({\n resize: 'vertical',\n minH: '20',\n }),\n counter: css({\n alignSelf: 'flex-end',\n mt: '1',\n }),\n counterOverLimit: css({\n color: 'status.error.fg',\n }),\n} as const;\n\n/**\n * Multi-line text input field with optional character counter.\n */\nexport function TextArea({\n label,\n value,\n onChange,\n rows = 3,\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n hasSpellCheck = true,\n hasAutoFocus = false,\n htmlName,\n status,\n labelIcon,\n labelTooltip,\n startIcon,\n placeholder,\n maxLength,\n onPaste,\n onFocus,\n onBlur,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TextAreaProps): React.JSX.Element {\n const inputId = useId();\n const descriptionID =\n description != null ? `${inputId}-description` : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const counterID = maxLength != null ? `${inputId}-counter` : undefined;\n const describedBy = getDescribedBy(descriptionID, statusMessageID, counterID);\n const isOverLimit = maxLength != null && value.length > maxLength;\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 <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n )}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <textarea\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || isOverLimit || undefined}\n aria-required={isRequired ?? undefined}\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={cx(inputStyles.control, styles.textarea)}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => onChange(event.target.value, event)}\n onFocus={onFocus}\n onPaste={onPaste}\n placeholder={placeholder}\n ref={ref}\n rows={rows}\n spellCheck={hasSpellCheck}\n value={value}\n />\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n {maxLength != null ? (\n <Text\n as=\"span\"\n className={cx(\n styles.counter,\n isOverLimit ? styles.counterOverLimit : undefined,\n )}\n color=\"secondary\"\n id={counterID}\n type=\"supporting\">\n {value.length}/{maxLength}\n </Text>\n ) : null}\n </Field>\n );\n}\n\nTextArea.displayName = 'TextArea';\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/MultiSelect/MultiSelect.tsx"],"names":["css","useMemo","useCallback","useSelectListbox","jsx","cx","jsxs","Badge","Text","Icon","Check","Fragment","renderSelectListboxOptions","inputRecipe","Spinner","Button","X","ChevronDown","getNecessity","Field","Popover"],"mappings":"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","file":"chunk-ZXPKFGRB.cjs","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 _disabled: {\n opacity: 0.55,\n cursor: 'not-allowed',\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 <button\n aria-selected={isSelected}\n className={cx(\n styles.option,\n isHighlighted ? styles.optionHighlighted : undefined,\n )}\n data-value={option.value}\n disabled={option.isDisabled}\n id={getOptionId(option.value)}\n key={option.value}\n onClick={handleOptionClick}\n onMouseEnter={handleOptionMouseEnter}\n role=\"option\"\n tabIndex={isHighlighted ? 0 : -1}\n type=\"button\">\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 </button>\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 <button\n aria-selected={allSelected}\n className={styles.option}\n onClick={toggleAll}\n role=\"option\"\n type=\"button\">\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 </button>\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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Stack.d.ts","sourceRoot":"","sources":["../../../src/components/Stack/Stack.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,WAAW,EAChB,KAAK,cAAc,EACnB,KAAK,SAAS,EACd,KAAK,GAAG,EACT,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAc,KAAK,SAAS,EAAC,MAAM,4BAA4B,CAAC;AAGvE,YAAY,EAAC,SAAS,EAAC,CAAC;AACxB,MAAM,MAAM,cAAc,GAAG,YAAY,GAAG,UAAU,CAAC;AACvD,MAAM,MAAM,kBAAkB,GAC1B,OAAO,GACP,QAAQ,GACR,KAAK,GACL,SAAS,GACT,QAAQ,GACR,QAAQ,CAAC;AACb,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AACzE,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG,mBAAmB,CAAC;AACtE,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,cAAc,CAAC;AAC3D,MAAM,MAAM,QAAQ,GAAG,YAAY,CAAC;AAEpC,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,WAAW,CAAC;IAC7D;;OAEG;IACH,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B;;OAEG;IACH,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B;;OAEG;IACH,GAAG,CAAC,EAAE,QAAQ,CAAC;IACf;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;OAEG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;OAEG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACvB;;OAEG;IACH,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;OAEG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAkBD,wBAAgB,KAAK,CAAC,EACpB,KAAK,EACL,QAAQ,EACR,SAAS,EACT,aAAa,EAAE,UAAU,EACzB,SAAsB,EACtB,EAAE,EAAE,OAAe,EACnB,GAAG,EACH,MAAM,EACN,MAAM,EACN,OAAO,EACP,GAAG,EACH,KAAK,EACL,MAAM,EACN,KAAK,EACL,IAAe,EACf,GAAG,SAAS,EACb,EAAE,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkChC;yBAnDe,KAAK"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Stack.recipe.d.ts","sourceRoot":"","sources":["../../../src/components/Stack/Stack.recipe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAM,KAAK,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAE/D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2CtB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,kBAAkB,CAAC,OAAO,WAAW,CAAC,CAAC"}
|