@etus/ui 0.4.0-beta.18 → 0.4.0-beta.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-U2CXFKRK.js → chunk-2SUZS6GZ.js} +4 -4
- package/dist/{chunk-U2CXFKRK.js.map → chunk-2SUZS6GZ.js.map} +1 -1
- package/dist/{chunk-UPYT2XM5.js → chunk-2XNMKALT.js} +3 -3
- package/dist/{chunk-UPYT2XM5.js.map → chunk-2XNMKALT.js.map} +1 -1
- package/dist/{chunk-SM4AZOEP.js → chunk-3MOBFZJM.js} +4 -4
- package/dist/{chunk-SM4AZOEP.js.map → chunk-3MOBFZJM.js.map} +1 -1
- package/dist/{chunk-TA4HCLP3.js → chunk-3R6MY3YJ.js} +4 -4
- package/dist/{chunk-TA4HCLP3.js.map → chunk-3R6MY3YJ.js.map} +1 -1
- package/dist/{chunk-EVUHEBWX.js → chunk-447INBQP.js} +3 -3
- package/dist/{chunk-EVUHEBWX.js.map → chunk-447INBQP.js.map} +1 -1
- package/dist/{chunk-F7XARQUW.js → chunk-4LZ53BAG.js} +3 -3
- package/dist/{chunk-F7XARQUW.js.map → chunk-4LZ53BAG.js.map} +1 -1
- package/dist/{chunk-CYIFWQ5Y.js → chunk-4OWRNWHW.js} +3 -3
- package/dist/{chunk-CYIFWQ5Y.js.map → chunk-4OWRNWHW.js.map} +1 -1
- package/dist/{chunk-OQCGQG47.js → chunk-4RNPI3LU.js} +3 -3
- package/dist/{chunk-OQCGQG47.js.map → chunk-4RNPI3LU.js.map} +1 -1
- package/dist/{chunk-3NHH7VPI.js → chunk-4SFBDK4E.js} +4 -4
- package/dist/{chunk-3NHH7VPI.js.map → chunk-4SFBDK4E.js.map} +1 -1
- package/dist/{chunk-B7ZLPQSO.js → chunk-4XXAIWQ4.js} +3 -3
- package/dist/{chunk-B7ZLPQSO.js.map → chunk-4XXAIWQ4.js.map} +1 -1
- package/dist/{chunk-D2V2HKLX.js → chunk-5ETVWWA5.js} +3 -3
- package/dist/{chunk-D2V2HKLX.js.map → chunk-5ETVWWA5.js.map} +1 -1
- package/dist/{chunk-U4H3XHSI.js → chunk-5GV4LDX7.js} +4 -4
- package/dist/{chunk-U4H3XHSI.js.map → chunk-5GV4LDX7.js.map} +1 -1
- package/dist/{chunk-BFBGESUI.js → chunk-5MJQ5XSR.js} +4 -4
- package/dist/{chunk-BFBGESUI.js.map → chunk-5MJQ5XSR.js.map} +1 -1
- package/dist/{chunk-GKMR5SVC.js → chunk-5QDKJMUA.js} +3 -3
- package/dist/{chunk-GKMR5SVC.js.map → chunk-5QDKJMUA.js.map} +1 -1
- package/dist/{chunk-3NFQXZHO.js → chunk-5T7EKOJ5.js} +3 -3
- package/dist/{chunk-3NFQXZHO.js.map → chunk-5T7EKOJ5.js.map} +1 -1
- package/dist/{chunk-WBE6VQOO.js → chunk-5W3T767A.js} +3 -3
- package/dist/{chunk-WBE6VQOO.js.map → chunk-5W3T767A.js.map} +1 -1
- package/dist/{chunk-F5X2BBGU.js → chunk-5YUUE5JJ.js} +3 -3
- package/dist/{chunk-F5X2BBGU.js.map → chunk-5YUUE5JJ.js.map} +1 -1
- package/dist/{chunk-IQKKPOI7.js → chunk-627ZZ6HO.js} +4 -4
- package/dist/{chunk-IQKKPOI7.js.map → chunk-627ZZ6HO.js.map} +1 -1
- package/dist/{chunk-WCMRVCIM.js → chunk-6G5QK3SU.js} +3 -3
- package/dist/{chunk-WCMRVCIM.js.map → chunk-6G5QK3SU.js.map} +1 -1
- package/dist/{chunk-SMVH56FQ.js → chunk-6QVXMYKH.js} +3 -3
- package/dist/{chunk-SMVH56FQ.js.map → chunk-6QVXMYKH.js.map} +1 -1
- package/dist/{chunk-NWVYQYKK.js → chunk-6VEQLD2P.js} +3 -3
- package/dist/{chunk-NWVYQYKK.js.map → chunk-6VEQLD2P.js.map} +1 -1
- package/dist/{chunk-S6ORCWM2.js → chunk-73DDLKBG.js} +3 -3
- package/dist/{chunk-S6ORCWM2.js.map → chunk-73DDLKBG.js.map} +1 -1
- package/dist/{chunk-E27SQ54A.js → chunk-7AR5QRRX.js} +3 -3
- package/dist/{chunk-E27SQ54A.js.map → chunk-7AR5QRRX.js.map} +1 -1
- package/dist/{chunk-3MJNJKAF.js → chunk-7IKX4AFY.js} +4 -4
- package/dist/{chunk-3MJNJKAF.js.map → chunk-7IKX4AFY.js.map} +1 -1
- package/dist/{chunk-A7YNTSVU.js → chunk-7PX3WBR3.js} +3 -3
- package/dist/{chunk-A7YNTSVU.js.map → chunk-7PX3WBR3.js.map} +1 -1
- package/dist/{chunk-LR56MGWT.js → chunk-7QEFKWUR.js} +7 -7
- package/dist/{chunk-LR56MGWT.js.map → chunk-7QEFKWUR.js.map} +1 -1
- package/dist/{chunk-JRVUEOKT.js → chunk-7TX5X4EP.js} +3 -3
- package/dist/{chunk-JRVUEOKT.js.map → chunk-7TX5X4EP.js.map} +1 -1
- package/dist/{chunk-BQMQULAC.js → chunk-7XJQYAGY.js} +4 -4
- package/dist/{chunk-BQMQULAC.js.map → chunk-7XJQYAGY.js.map} +1 -1
- package/dist/{chunk-KA7747GR.js → chunk-7Y325TBV.js} +3 -3
- package/dist/{chunk-KA7747GR.js.map → chunk-7Y325TBV.js.map} +1 -1
- package/dist/{chunk-6KMRMXR6.js → chunk-7YZ7HNXX.js} +3 -3
- package/dist/{chunk-6KMRMXR6.js.map → chunk-7YZ7HNXX.js.map} +1 -1
- package/dist/{chunk-YACIRNVP.js → chunk-AD4RW2JV.js} +3 -3
- package/dist/{chunk-YACIRNVP.js.map → chunk-AD4RW2JV.js.map} +1 -1
- package/dist/{chunk-YMYXWHDU.js → chunk-ADX6C3V7.js} +3 -3
- package/dist/{chunk-YMYXWHDU.js.map → chunk-ADX6C3V7.js.map} +1 -1
- package/dist/{chunk-WVFQKBDB.js → chunk-AJUOTABG.js} +3 -3
- package/dist/{chunk-WVFQKBDB.js.map → chunk-AJUOTABG.js.map} +1 -1
- package/dist/{chunk-G5TWK7L3.js → chunk-AP4ZM3DV.js} +3 -3
- package/dist/{chunk-G5TWK7L3.js.map → chunk-AP4ZM3DV.js.map} +1 -1
- package/dist/{chunk-2X35C55E.js → chunk-ARJAIH7Q.js} +3 -3
- package/dist/{chunk-2X35C55E.js.map → chunk-ARJAIH7Q.js.map} +1 -1
- package/dist/{chunk-YCZ6M6EF.js → chunk-BBKDABQK.js} +3 -3
- package/dist/{chunk-YCZ6M6EF.js.map → chunk-BBKDABQK.js.map} +1 -1
- package/dist/{chunk-GPW57XOW.js → chunk-BSTUCHL4.js} +4 -4
- package/dist/{chunk-GPW57XOW.js.map → chunk-BSTUCHL4.js.map} +1 -1
- package/dist/{chunk-ARYBNQNS.js → chunk-BUCXPZYE.js} +4 -4
- package/dist/{chunk-ARYBNQNS.js.map → chunk-BUCXPZYE.js.map} +1 -1
- package/dist/{chunk-ESLSPRYA.js → chunk-C2MAX4YK.js} +3 -3
- package/dist/{chunk-ESLSPRYA.js.map → chunk-C2MAX4YK.js.map} +1 -1
- package/dist/{chunk-2FJJOHHH.js → chunk-C34UNXMN.js} +3 -3
- package/dist/{chunk-2FJJOHHH.js.map → chunk-C34UNXMN.js.map} +1 -1
- package/dist/{chunk-AEHYYTFW.js → chunk-CV77MF4G.js} +3 -3
- package/dist/{chunk-AEHYYTFW.js.map → chunk-CV77MF4G.js.map} +1 -1
- package/dist/{chunk-MQ2446N7.js → chunk-DGOW65KM.js} +3 -3
- package/dist/{chunk-MQ2446N7.js.map → chunk-DGOW65KM.js.map} +1 -1
- package/dist/{chunk-NULX3RRN.js → chunk-DJHDCDU6.js} +4 -4
- package/dist/{chunk-NULX3RRN.js.map → chunk-DJHDCDU6.js.map} +1 -1
- package/dist/{chunk-USPITOG4.js → chunk-DQGBTZRX.js} +4 -4
- package/dist/{chunk-USPITOG4.js.map → chunk-DQGBTZRX.js.map} +1 -1
- package/dist/{chunk-2IFYXJ3H.js → chunk-DRIEZH7R.js} +3 -3
- package/dist/{chunk-2IFYXJ3H.js.map → chunk-DRIEZH7R.js.map} +1 -1
- package/dist/{chunk-VWW3DJKI.js → chunk-E6SAO2CY.js} +3 -3
- package/dist/{chunk-VWW3DJKI.js.map → chunk-E6SAO2CY.js.map} +1 -1
- package/dist/{chunk-5ACHKT35.js → chunk-EDSIOUUR.js} +4 -4
- package/dist/{chunk-5ACHKT35.js.map → chunk-EDSIOUUR.js.map} +1 -1
- package/dist/{chunk-G2CMEHW6.js → chunk-ELRIFGMN.js} +4 -4
- package/dist/{chunk-G2CMEHW6.js.map → chunk-ELRIFGMN.js.map} +1 -1
- package/dist/{chunk-IMUBWKZC.js → chunk-EO4NGM5W.js} +4 -4
- package/dist/{chunk-IMUBWKZC.js.map → chunk-EO4NGM5W.js.map} +1 -1
- package/dist/{chunk-AFCSDND5.js → chunk-EQ4YAADN.js} +3 -3
- package/dist/{chunk-AFCSDND5.js.map → chunk-EQ4YAADN.js.map} +1 -1
- package/dist/{chunk-AP3T3KMY.js → chunk-EZYXD2YI.js} +4 -4
- package/dist/{chunk-AP3T3KMY.js.map → chunk-EZYXD2YI.js.map} +1 -1
- package/dist/{chunk-HJ4E6YPW.js → chunk-F3ETIDS7.js} +4 -4
- package/dist/{chunk-HJ4E6YPW.js.map → chunk-F3ETIDS7.js.map} +1 -1
- package/dist/{chunk-LNY2EXOV.js → chunk-F3WDMYZ4.js} +3 -3
- package/dist/{chunk-LNY2EXOV.js.map → chunk-F3WDMYZ4.js.map} +1 -1
- package/dist/{chunk-FPCRGFNY.js → chunk-FRKB4Z2P.js} +3 -3
- package/dist/{chunk-FPCRGFNY.js.map → chunk-FRKB4Z2P.js.map} +1 -1
- package/dist/{chunk-YGLD22TU.js → chunk-FVRSXJKS.js} +3 -3
- package/dist/{chunk-YGLD22TU.js.map → chunk-FVRSXJKS.js.map} +1 -1
- package/dist/{chunk-AR7K7Y4L.js → chunk-FXFVFSG5.js} +5 -5
- package/dist/{chunk-AR7K7Y4L.js.map → chunk-FXFVFSG5.js.map} +1 -1
- package/dist/{chunk-WQI2USN7.js → chunk-GDZECJFS.js} +3 -3
- package/dist/{chunk-WQI2USN7.js.map → chunk-GDZECJFS.js.map} +1 -1
- package/dist/{chunk-7CMOCWFX.js → chunk-GLHKHYJY.js} +8 -8
- package/dist/{chunk-7CMOCWFX.js.map → chunk-GLHKHYJY.js.map} +1 -1
- package/dist/{chunk-IA24GUNV.js → chunk-GRODCJS4.js} +8 -8
- package/dist/{chunk-IA24GUNV.js.map → chunk-GRODCJS4.js.map} +1 -1
- package/dist/{chunk-JDG5A44W.js → chunk-GVNG5ME6.js} +22 -11
- package/dist/chunk-GVNG5ME6.js.map +1 -0
- package/dist/{chunk-5J5OL4IV.js → chunk-GWSM2XNV.js} +3 -3
- package/dist/{chunk-5J5OL4IV.js.map → chunk-GWSM2XNV.js.map} +1 -1
- package/dist/{chunk-2NY6DDLO.js → chunk-H32A6UPL.js} +3 -3
- package/dist/{chunk-2NY6DDLO.js.map → chunk-H32A6UPL.js.map} +1 -1
- package/dist/{chunk-HV2ZZXFN.js → chunk-HHWUROMA.js} +6 -6
- package/dist/{chunk-HV2ZZXFN.js.map → chunk-HHWUROMA.js.map} +1 -1
- package/dist/{chunk-CNRV2IGH.js → chunk-HM6TEHA6.js} +3 -3
- package/dist/{chunk-CNRV2IGH.js.map → chunk-HM6TEHA6.js.map} +1 -1
- package/dist/{chunk-6ABGMOE2.js → chunk-HNQX6ZG7.js} +4 -4
- package/dist/{chunk-6ABGMOE2.js.map → chunk-HNQX6ZG7.js.map} +1 -1
- package/dist/{chunk-HAEZLC7V.js → chunk-I5RDX6O3.js} +3 -3
- package/dist/{chunk-HAEZLC7V.js.map → chunk-I5RDX6O3.js.map} +1 -1
- package/dist/{chunk-B2OCNHUW.js → chunk-IKLFWGFS.js} +70 -52
- package/dist/chunk-IKLFWGFS.js.map +1 -0
- package/dist/{chunk-DL7D5F7B.js → chunk-IPCT4YZT.js} +3 -3
- package/dist/{chunk-DL7D5F7B.js.map → chunk-IPCT4YZT.js.map} +1 -1
- package/dist/{chunk-BIUVOZQG.js → chunk-IPDAFW4F.js} +3 -3
- package/dist/{chunk-BIUVOZQG.js.map → chunk-IPDAFW4F.js.map} +1 -1
- package/dist/{chunk-G2MAGZHQ.js → chunk-IXZBH33I.js} +3 -3
- package/dist/{chunk-G2MAGZHQ.js.map → chunk-IXZBH33I.js.map} +1 -1
- package/dist/{chunk-ZHUW6UYD.js → chunk-JDETM3FL.js} +3 -3
- package/dist/{chunk-ZHUW6UYD.js.map → chunk-JDETM3FL.js.map} +1 -1
- package/dist/{chunk-HZ47LQFJ.js → chunk-JE46MFMN.js} +6 -6
- package/dist/{chunk-HZ47LQFJ.js.map → chunk-JE46MFMN.js.map} +1 -1
- package/dist/{chunk-3JCV72FO.js → chunk-JFV7CNBP.js} +4 -4
- package/dist/{chunk-3JCV72FO.js.map → chunk-JFV7CNBP.js.map} +1 -1
- package/dist/{chunk-7RTHGI6E.js → chunk-JPRHMMY6.js} +3 -3
- package/dist/{chunk-7RTHGI6E.js.map → chunk-JPRHMMY6.js.map} +1 -1
- package/dist/{chunk-G2V7D7VC.js → chunk-JUSPLVWO.js} +5 -5
- package/dist/{chunk-G2V7D7VC.js.map → chunk-JUSPLVWO.js.map} +1 -1
- package/dist/{chunk-FRDYXDAE.js → chunk-JUZ4JQWH.js} +3 -3
- package/dist/{chunk-FRDYXDAE.js.map → chunk-JUZ4JQWH.js.map} +1 -1
- package/dist/{chunk-6SHOL6WR.js → chunk-JVTB3NTP.js} +3 -3
- package/dist/{chunk-6SHOL6WR.js.map → chunk-JVTB3NTP.js.map} +1 -1
- package/dist/{chunk-XETKCF73.js → chunk-JXEIRIU4.js} +3 -3
- package/dist/{chunk-XETKCF73.js.map → chunk-JXEIRIU4.js.map} +1 -1
- package/dist/{chunk-XKO6G5H2.js → chunk-JYYB6F5O.js} +3 -3
- package/dist/{chunk-XKO6G5H2.js.map → chunk-JYYB6F5O.js.map} +1 -1
- package/dist/{chunk-V7WEN4SD.js → chunk-JZA45LEV.js} +3 -3
- package/dist/{chunk-V7WEN4SD.js.map → chunk-JZA45LEV.js.map} +1 -1
- package/dist/{chunk-FCSYPOHF.js → chunk-K44K3EHW.js} +3 -3
- package/dist/{chunk-FCSYPOHF.js.map → chunk-K44K3EHW.js.map} +1 -1
- package/dist/{chunk-ZMUUEXVD.js → chunk-K4UCALQQ.js} +3 -3
- package/dist/{chunk-ZMUUEXVD.js.map → chunk-K4UCALQQ.js.map} +1 -1
- package/dist/{chunk-KYURFRCH.js → chunk-KBU4KJKC.js} +7 -7
- package/dist/{chunk-KYURFRCH.js.map → chunk-KBU4KJKC.js.map} +1 -1
- package/dist/{chunk-JRWQHBJC.js → chunk-KDNTSZF5.js} +4 -4
- package/dist/{chunk-JRWQHBJC.js.map → chunk-KDNTSZF5.js.map} +1 -1
- package/dist/{chunk-WZ2J4ALB.js → chunk-KHCHATTD.js} +5 -5
- package/dist/{chunk-WZ2J4ALB.js.map → chunk-KHCHATTD.js.map} +1 -1
- package/dist/{chunk-57KTYE5H.js → chunk-KHJIUHHM.js} +3 -3
- package/dist/{chunk-57KTYE5H.js.map → chunk-KHJIUHHM.js.map} +1 -1
- package/dist/{chunk-H7JHFBFD.js → chunk-KLFYTLF3.js} +4 -4
- package/dist/{chunk-H7JHFBFD.js.map → chunk-KLFYTLF3.js.map} +1 -1
- package/dist/{chunk-W3QUVCRK.js → chunk-KXJ3SEW7.js} +3 -3
- package/dist/{chunk-W3QUVCRK.js.map → chunk-KXJ3SEW7.js.map} +1 -1
- package/dist/{chunk-X5XP5QVO.js → chunk-L4OQ6BJ5.js} +6 -6
- package/dist/{chunk-X5XP5QVO.js.map → chunk-L4OQ6BJ5.js.map} +1 -1
- package/dist/{chunk-MAM6VUKD.js → chunk-LCBB3N5H.js} +3 -3
- package/dist/{chunk-MAM6VUKD.js.map → chunk-LCBB3N5H.js.map} +1 -1
- package/dist/{chunk-FLERVSKG.js → chunk-LDK6ADKM.js} +6 -6
- package/dist/{chunk-FLERVSKG.js.map → chunk-LDK6ADKM.js.map} +1 -1
- package/dist/{chunk-K4MYVFWQ.js → chunk-LP6JYJQN.js} +4 -4
- package/dist/{chunk-K4MYVFWQ.js.map → chunk-LP6JYJQN.js.map} +1 -1
- package/dist/{chunk-7VGF6ZVE.js → chunk-LRE3LJMW.js} +5 -5
- package/dist/{chunk-7VGF6ZVE.js.map → chunk-LRE3LJMW.js.map} +1 -1
- package/dist/{chunk-LQVQ7SHG.js → chunk-LSRKDZW4.js} +4 -4
- package/dist/{chunk-LQVQ7SHG.js.map → chunk-LSRKDZW4.js.map} +1 -1
- package/dist/{chunk-WBERMEN7.js → chunk-MGIGDALC.js} +3 -3
- package/dist/{chunk-WBERMEN7.js.map → chunk-MGIGDALC.js.map} +1 -1
- package/dist/{chunk-IRFAIJLV.js → chunk-MNYU5MHO.js} +7 -7
- package/dist/{chunk-IRFAIJLV.js.map → chunk-MNYU5MHO.js.map} +1 -1
- package/dist/{chunk-6GWO7JNP.js → chunk-MXBDOYQL.js} +4 -4
- package/dist/{chunk-6GWO7JNP.js.map → chunk-MXBDOYQL.js.map} +1 -1
- package/dist/{chunk-37KLBMFQ.js → chunk-N2DAVD4Y.js} +3 -3
- package/dist/{chunk-37KLBMFQ.js.map → chunk-N2DAVD4Y.js.map} +1 -1
- package/dist/{chunk-EC5YEK3C.js → chunk-N5YGAESZ.js} +5 -5
- package/dist/{chunk-EC5YEK3C.js.map → chunk-N5YGAESZ.js.map} +1 -1
- package/dist/{chunk-DSCLJ3GK.js → chunk-N7VMQWM3.js} +15 -10
- package/dist/chunk-N7VMQWM3.js.map +1 -0
- package/dist/{chunk-5KTMPLDK.js → chunk-NAI3TX52.js} +3 -3
- package/dist/{chunk-5KTMPLDK.js.map → chunk-NAI3TX52.js.map} +1 -1
- package/dist/{chunk-QHKOBGLW.js → chunk-NGX3ITG4.js} +3 -3
- package/dist/{chunk-QHKOBGLW.js.map → chunk-NGX3ITG4.js.map} +1 -1
- package/dist/{chunk-5SUD32RK.js → chunk-NHUUSXBL.js} +3 -3
- package/dist/{chunk-5SUD32RK.js.map → chunk-NHUUSXBL.js.map} +1 -1
- package/dist/{chunk-IOWHM7ZY.js → chunk-NIRTZLZL.js} +4 -4
- package/dist/{chunk-IOWHM7ZY.js.map → chunk-NIRTZLZL.js.map} +1 -1
- package/dist/{chunk-5E44I7PB.js → chunk-NLPVF34P.js} +4 -4
- package/dist/{chunk-5E44I7PB.js.map → chunk-NLPVF34P.js.map} +1 -1
- package/dist/{chunk-ZPAWUKJI.js → chunk-NNWMBVCB.js} +4 -4
- package/dist/{chunk-ZPAWUKJI.js.map → chunk-NNWMBVCB.js.map} +1 -1
- package/dist/{chunk-H4ANCFZG.js → chunk-NUA54ABI.js} +4 -4
- package/dist/{chunk-H4ANCFZG.js.map → chunk-NUA54ABI.js.map} +1 -1
- package/dist/{chunk-ZPCELVWJ.js → chunk-NY2WZ4P2.js} +4 -4
- package/dist/{chunk-ZPCELVWJ.js.map → chunk-NY2WZ4P2.js.map} +1 -1
- package/dist/{chunk-BECPEVUL.js → chunk-O6LFU3KB.js} +3 -3
- package/dist/{chunk-BECPEVUL.js.map → chunk-O6LFU3KB.js.map} +1 -1
- package/dist/{chunk-HXHB2CK5.js → chunk-OAES72MK.js} +3 -3
- package/dist/{chunk-HXHB2CK5.js.map → chunk-OAES72MK.js.map} +1 -1
- package/dist/{chunk-NGR4HFVA.js → chunk-OCH7GGZF.js} +3 -3
- package/dist/{chunk-NGR4HFVA.js.map → chunk-OCH7GGZF.js.map} +1 -1
- package/dist/{chunk-HA5YVDHW.js → chunk-ONN5XVYC.js} +3 -3
- package/dist/{chunk-HA5YVDHW.js.map → chunk-ONN5XVYC.js.map} +1 -1
- package/dist/{chunk-OG3M4CMJ.js → chunk-OWZ3MZ5C.js} +3 -3
- package/dist/{chunk-OG3M4CMJ.js.map → chunk-OWZ3MZ5C.js.map} +1 -1
- package/dist/{chunk-MK6ID2HI.js → chunk-OXO6SKJO.js} +3 -3
- package/dist/{chunk-MK6ID2HI.js.map → chunk-OXO6SKJO.js.map} +1 -1
- package/dist/{chunk-5K2SOCOX.js → chunk-P4WMDGAQ.js} +4 -4
- package/dist/{chunk-5K2SOCOX.js.map → chunk-P4WMDGAQ.js.map} +1 -1
- package/dist/{chunk-K43MPWTO.js → chunk-PBZI5XNV.js} +3 -3
- package/dist/{chunk-K43MPWTO.js.map → chunk-PBZI5XNV.js.map} +1 -1
- package/dist/{chunk-HI3T55XK.js → chunk-PEX7FCZC.js} +3 -3
- package/dist/{chunk-HI3T55XK.js.map → chunk-PEX7FCZC.js.map} +1 -1
- package/dist/{chunk-WMG2MMJF.js → chunk-PI4WGIPG.js} +3 -3
- package/dist/{chunk-WMG2MMJF.js.map → chunk-PI4WGIPG.js.map} +1 -1
- package/dist/{chunk-V7O4X3AE.js → chunk-PTXC4KPQ.js} +4 -4
- package/dist/{chunk-V7O4X3AE.js.map → chunk-PTXC4KPQ.js.map} +1 -1
- package/dist/{chunk-34WNJNPL.js → chunk-PVIIIQJI.js} +6 -6
- package/dist/{chunk-34WNJNPL.js.map → chunk-PVIIIQJI.js.map} +1 -1
- package/dist/{chunk-A4O3USMA.js → chunk-PXR6CZIL.js} +4 -4
- package/dist/{chunk-A4O3USMA.js.map → chunk-PXR6CZIL.js.map} +1 -1
- package/dist/{chunk-KDJCZXLB.js → chunk-PZSKZFVO.js} +3 -3
- package/dist/{chunk-KDJCZXLB.js.map → chunk-PZSKZFVO.js.map} +1 -1
- package/dist/{chunk-DNAGXK2C.js → chunk-Q3JCNSPU.js} +4 -4
- package/dist/{chunk-DNAGXK2C.js.map → chunk-Q3JCNSPU.js.map} +1 -1
- package/dist/{chunk-JUTPDS4E.js → chunk-QD2ZS5DU.js} +4 -4
- package/dist/{chunk-JUTPDS4E.js.map → chunk-QD2ZS5DU.js.map} +1 -1
- package/dist/{chunk-DI3AISAZ.js → chunk-QJOWG2D4.js} +5 -5
- package/dist/{chunk-DI3AISAZ.js.map → chunk-QJOWG2D4.js.map} +1 -1
- package/dist/{chunk-6F5NWXZF.js → chunk-QLYH3GCV.js} +4 -4
- package/dist/{chunk-6F5NWXZF.js.map → chunk-QLYH3GCV.js.map} +1 -1
- package/dist/{chunk-F4EX3622.js → chunk-QO6TOE45.js} +3 -3
- package/dist/{chunk-F4EX3622.js.map → chunk-QO6TOE45.js.map} +1 -1
- package/dist/{chunk-46SUPGQV.js → chunk-QWWA4FZP.js} +3 -3
- package/dist/{chunk-46SUPGQV.js.map → chunk-QWWA4FZP.js.map} +1 -1
- package/dist/{chunk-VTDSGJ4R.js → chunk-QXET2TML.js} +4 -4
- package/dist/{chunk-VTDSGJ4R.js.map → chunk-QXET2TML.js.map} +1 -1
- package/dist/{chunk-2VHARFMD.js → chunk-QZ7SGO7L.js} +3 -3
- package/dist/{chunk-2VHARFMD.js.map → chunk-QZ7SGO7L.js.map} +1 -1
- package/dist/{chunk-XORDGKZI.js → chunk-R42LSLJL.js} +6 -6
- package/dist/{chunk-XORDGKZI.js.map → chunk-R42LSLJL.js.map} +1 -1
- package/dist/{chunk-EVZ2GZU4.js → chunk-RMJVCJ6U.js} +3 -3
- package/dist/{chunk-EVZ2GZU4.js.map → chunk-RMJVCJ6U.js.map} +1 -1
- package/dist/{chunk-UYPYAOET.js → chunk-ROPW65RD.js} +3 -3
- package/dist/{chunk-UYPYAOET.js.map → chunk-ROPW65RD.js.map} +1 -1
- package/dist/{chunk-M6VBDPNQ.js → chunk-RQBYBBMP.js} +3 -3
- package/dist/{chunk-M6VBDPNQ.js.map → chunk-RQBYBBMP.js.map} +1 -1
- package/dist/chunk-RVAYDRMA.js +31 -0
- package/dist/chunk-RVAYDRMA.js.map +1 -0
- package/dist/{chunk-ARNVOHVW.js → chunk-S4P7JIQ2.js} +3 -3
- package/dist/{chunk-ARNVOHVW.js.map → chunk-S4P7JIQ2.js.map} +1 -1
- package/dist/{chunk-AKRVZ2YW.js → chunk-S6BREP2G.js} +4 -4
- package/dist/{chunk-AKRVZ2YW.js.map → chunk-S6BREP2G.js.map} +1 -1
- package/dist/{chunk-Y5GO2F6P.js → chunk-SA3IQI3Y.js} +3 -3
- package/dist/{chunk-Y5GO2F6P.js.map → chunk-SA3IQI3Y.js.map} +1 -1
- package/dist/{chunk-56TC4CPT.js → chunk-SKI25Q7O.js} +6 -6
- package/dist/{chunk-56TC4CPT.js.map → chunk-SKI25Q7O.js.map} +1 -1
- package/dist/{chunk-MLSIZ6JU.js → chunk-SSKSWSVO.js} +5 -5
- package/dist/{chunk-MLSIZ6JU.js.map → chunk-SSKSWSVO.js.map} +1 -1
- package/dist/{chunk-VV6QE3M2.js → chunk-STADVFL2.js} +5 -5
- package/dist/{chunk-VV6QE3M2.js.map → chunk-STADVFL2.js.map} +1 -1
- package/dist/{chunk-UA3OQAHJ.js → chunk-SX63UD5X.js} +3 -3
- package/dist/{chunk-UA3OQAHJ.js.map → chunk-SX63UD5X.js.map} +1 -1
- package/dist/{chunk-YZY35OHQ.js → chunk-SXSR2VRG.js} +4 -4
- package/dist/{chunk-YZY35OHQ.js.map → chunk-SXSR2VRG.js.map} +1 -1
- package/dist/{chunk-AR3OXNPL.js → chunk-TDANAN5A.js} +3 -3
- package/dist/{chunk-AR3OXNPL.js.map → chunk-TDANAN5A.js.map} +1 -1
- package/dist/{chunk-7ZJ32KRQ.js → chunk-TEVGCTUN.js} +3 -3
- package/dist/{chunk-7ZJ32KRQ.js.map → chunk-TEVGCTUN.js.map} +1 -1
- package/dist/{chunk-GAMOVEZD.js → chunk-TIPKU427.js} +3 -3
- package/dist/{chunk-GAMOVEZD.js.map → chunk-TIPKU427.js.map} +1 -1
- package/dist/{chunk-2Q4I4VDB.js → chunk-TK5WS675.js} +3 -3
- package/dist/{chunk-2Q4I4VDB.js.map → chunk-TK5WS675.js.map} +1 -1
- package/dist/{chunk-EDSDAX56.js → chunk-TNSMTINE.js} +4 -4
- package/dist/{chunk-EDSDAX56.js.map → chunk-TNSMTINE.js.map} +1 -1
- package/dist/{chunk-5TABQJDW.js → chunk-TRTVYFOF.js} +3 -3
- package/dist/{chunk-5TABQJDW.js.map → chunk-TRTVYFOF.js.map} +1 -1
- package/dist/{chunk-QBLU7J34.js → chunk-TSE3PKWQ.js} +3 -3
- package/dist/{chunk-QBLU7J34.js.map → chunk-TSE3PKWQ.js.map} +1 -1
- package/dist/{chunk-3BBOSSDG.js → chunk-U7TPJMGY.js} +4 -4
- package/dist/{chunk-3BBOSSDG.js.map → chunk-U7TPJMGY.js.map} +1 -1
- package/dist/{chunk-PGRMKSVA.js → chunk-UC5J6GWG.js} +4 -4
- package/dist/{chunk-PGRMKSVA.js.map → chunk-UC5J6GWG.js.map} +1 -1
- package/dist/{chunk-HP7LEQJR.js → chunk-UNHPLKMR.js} +3 -3
- package/dist/{chunk-HP7LEQJR.js.map → chunk-UNHPLKMR.js.map} +1 -1
- package/dist/{chunk-I7ZLEC7Y.js → chunk-UZEJ3ZVR.js} +3 -3
- package/dist/{chunk-I7ZLEC7Y.js.map → chunk-UZEJ3ZVR.js.map} +1 -1
- package/dist/{chunk-J62NPPDO.js → chunk-UZZCEQH4.js} +4 -4
- package/dist/{chunk-J62NPPDO.js.map → chunk-UZZCEQH4.js.map} +1 -1
- package/dist/{chunk-AEE5GDNA.js → chunk-V4NSLSCA.js} +4 -4
- package/dist/{chunk-AEE5GDNA.js.map → chunk-V4NSLSCA.js.map} +1 -1
- package/dist/{chunk-IZC5YFGO.js → chunk-V57DERRV.js} +14 -7
- package/dist/chunk-V57DERRV.js.map +1 -0
- package/dist/{chunk-PM344VOQ.js → chunk-VHJ6ALIE.js} +4 -4
- package/dist/{chunk-PM344VOQ.js.map → chunk-VHJ6ALIE.js.map} +1 -1
- package/dist/{chunk-N3I6GA4I.js → chunk-WG34IXUV.js} +3 -3
- package/dist/{chunk-N3I6GA4I.js.map → chunk-WG34IXUV.js.map} +1 -1
- package/dist/{chunk-45YJLE4R.js → chunk-WGKOYZRI.js} +3 -3
- package/dist/{chunk-45YJLE4R.js.map → chunk-WGKOYZRI.js.map} +1 -1
- package/dist/{chunk-6DN2UAIR.js → chunk-WGSVSZ7V.js} +3 -3
- package/dist/{chunk-6DN2UAIR.js.map → chunk-WGSVSZ7V.js.map} +1 -1
- package/dist/{chunk-X4YUWX7H.js → chunk-WK324C6D.js} +4 -4
- package/dist/{chunk-X4YUWX7H.js.map → chunk-WK324C6D.js.map} +1 -1
- package/dist/{chunk-N2WITPE2.js → chunk-WOP5OWLG.js} +3 -3
- package/dist/{chunk-N2WITPE2.js.map → chunk-WOP5OWLG.js.map} +1 -1
- package/dist/{chunk-MAM5PTRV.js → chunk-WSDWJX4Y.js} +4 -4
- package/dist/{chunk-MAM5PTRV.js.map → chunk-WSDWJX4Y.js.map} +1 -1
- package/dist/{chunk-2XJWE2XR.js → chunk-WUS45IZW.js} +4 -4
- package/dist/{chunk-2XJWE2XR.js.map → chunk-WUS45IZW.js.map} +1 -1
- package/dist/{chunk-B3BDIM4H.js → chunk-WVOZYDH3.js} +3 -3
- package/dist/{chunk-B3BDIM4H.js.map → chunk-WVOZYDH3.js.map} +1 -1
- package/dist/{chunk-HVFACGNK.js → chunk-WWK7UIKK.js} +3 -3
- package/dist/{chunk-HVFACGNK.js.map → chunk-WWK7UIKK.js.map} +1 -1
- package/dist/{chunk-NCLOPI6U.js → chunk-X2EMALTZ.js} +3 -3
- package/dist/{chunk-NCLOPI6U.js.map → chunk-X2EMALTZ.js.map} +1 -1
- package/dist/{chunk-PK5O62XD.js → chunk-X4CJFD6D.js} +3 -3
- package/dist/{chunk-PK5O62XD.js.map → chunk-X4CJFD6D.js.map} +1 -1
- package/dist/{chunk-JWXK4TMX.js → chunk-XEQGATVF.js} +3 -3
- package/dist/{chunk-JWXK4TMX.js.map → chunk-XEQGATVF.js.map} +1 -1
- package/dist/{chunk-B6KQKQ4S.js → chunk-XMUD3LG7.js} +3 -3
- package/dist/{chunk-B6KQKQ4S.js.map → chunk-XMUD3LG7.js.map} +1 -1
- package/dist/{chunk-5ZEYTBTU.js → chunk-XWBVIBN4.js} +3 -3
- package/dist/{chunk-5ZEYTBTU.js.map → chunk-XWBVIBN4.js.map} +1 -1
- package/dist/{chunk-7I6KK6QE.js → chunk-XXWCMY2G.js} +3 -3
- package/dist/{chunk-7I6KK6QE.js.map → chunk-XXWCMY2G.js.map} +1 -1
- package/dist/{chunk-LFN7UHDT.js → chunk-Y4FEW7SR.js} +3 -3
- package/dist/{chunk-LFN7UHDT.js.map → chunk-Y4FEW7SR.js.map} +1 -1
- package/dist/{chunk-PFVT27B5.js → chunk-YC5VVIZO.js} +3 -3
- package/dist/{chunk-PFVT27B5.js.map → chunk-YC5VVIZO.js.map} +1 -1
- package/dist/{chunk-OR3NPCY2.js → chunk-YMCKML6D.js} +7 -7
- package/dist/{chunk-OR3NPCY2.js.map → chunk-YMCKML6D.js.map} +1 -1
- package/dist/{chunk-TGLALXPU.js → chunk-YMQDTTO7.js} +6 -6
- package/dist/{chunk-TGLALXPU.js.map → chunk-YMQDTTO7.js.map} +1 -1
- package/dist/{chunk-ZARZYMBM.js → chunk-YNTS4GRT.js} +3 -3
- package/dist/{chunk-ZARZYMBM.js.map → chunk-YNTS4GRT.js.map} +1 -1
- package/dist/{chunk-6SZRWNPT.js → chunk-ZOHLZ4YL.js} +3 -3
- package/dist/{chunk-6SZRWNPT.js.map → chunk-ZOHLZ4YL.js.map} +1 -1
- package/dist/{chunk-VUHJTTPV.js → chunk-ZVSMLMMS.js} +3 -3
- package/dist/{chunk-VUHJTTPV.js.map → chunk-ZVSMLMMS.js.map} +1 -1
- package/dist/{chunk-VKDN66VL.js → chunk-ZXWT4KWJ.js} +3 -3
- package/dist/{chunk-VKDN66VL.js.map → chunk-ZXWT4KWJ.js.map} +1 -1
- package/dist/components/advanced/AssetManager/index.js +2 -2
- package/dist/components/advanced/Calendar/index.js +7 -7
- package/dist/components/advanced/Command/index.js +3 -3
- package/dist/components/advanced/DragAndDrop/index.js +2 -2
- package/dist/components/advanced/ErrorBoundary/index.js +2 -2
- package/dist/components/advanced/EventCalendar/index.js +7 -7
- package/dist/components/advanced/FileDropzone/index.js +2 -2
- package/dist/components/advanced/FilePreview/index.js +2 -2
- package/dist/components/advanced/FileUpload/index.js +2 -2
- package/dist/components/advanced/FilterBuilder/index.js +9 -9
- package/dist/components/advanced/MarkdownEditor/index.js +6 -6
- package/dist/components/advanced/ReportBuilder/index.js +7 -7
- package/dist/components/advanced/RichTextEditor/index.js +4 -4
- package/dist/components/advanced/Search/index.js +2 -2
- package/dist/components/advanced/SortableList/index.js +2 -2
- package/dist/components/advanced/VersionControl/index.js +2 -2
- package/dist/components/advanced/index.js +30 -30
- package/dist/components/data-display/Accordion/index.js +2 -2
- package/dist/components/data-display/AreaChart/index.js +3 -3
- package/dist/components/data-display/Banner/index.js +2 -2
- package/dist/components/data-display/BarChart/index.js +3 -3
- package/dist/components/data-display/BarList/index.js +2 -2
- package/dist/components/data-display/Callout/index.js +2 -2
- package/dist/components/data-display/Carousel/index.js +7 -7
- package/dist/components/data-display/CategoryBar/index.js +3 -3
- package/dist/components/data-display/Chart/index.js +2 -2
- package/dist/components/data-display/ChartCard/index.js +5 -5
- package/dist/components/data-display/ChartLegend/index.js +2 -2
- package/dist/components/data-display/ComboChart/index.js +3 -3
- package/dist/components/data-display/DashboardCard/index.js +3 -3
- package/dist/components/data-display/DataTable/FilterBuilder/index.js +9 -9
- package/dist/components/data-display/DataTable/index.js +16 -16
- package/dist/components/data-display/DeltaBar/index.js +3 -3
- package/dist/components/data-display/EmptyState/index.js +2 -2
- package/dist/components/data-display/FeatureItem/index.js +3 -3
- package/dist/components/data-display/Feed/index.js +2 -2
- package/dist/components/data-display/FunnelChart/index.js +3 -3
- package/dist/components/data-display/GaugeChart/index.js +2 -2
- package/dist/components/data-display/Heatmap/index.js +3 -3
- package/dist/components/data-display/HoverCard/index.js +2 -2
- package/dist/components/data-display/ImageGallery/index.js +9 -9
- package/dist/components/data-display/Item/index.js +3 -3
- package/dist/components/data-display/KPICard/index.js +8 -8
- package/dist/components/data-display/Lightbox/index.js +2 -2
- package/dist/components/data-display/LineChart/index.js +3 -3
- package/dist/components/data-display/List/index.js +6 -6
- package/dist/components/data-display/MarkerBar/index.js +3 -3
- package/dist/components/data-display/PieChart/index.js +3 -3
- package/dist/components/data-display/RadarChart/index.js +3 -3
- package/dist/components/data-display/RadialChart/index.js +3 -3
- package/dist/components/data-display/ScatterChart/index.js +3 -3
- package/dist/components/data-display/SingleStat/index.js +3 -3
- package/dist/components/data-display/Sparkline/index.js +2 -2
- package/dist/components/data-display/Table/index.js +2 -2
- package/dist/components/data-display/Timeline/index.js +2 -2
- package/dist/components/data-display/Tracker/index.js +3 -3
- package/dist/components/data-display/VirtualTable/index.js +5 -5
- package/dist/components/data-display/index.js +56 -56
- package/dist/components/feedback/Alert/index.js +2 -2
- package/dist/components/feedback/AlertDialog/index.js +7 -7
- package/dist/components/feedback/ConfirmModal/index.js +8 -8
- package/dist/components/feedback/Dialog/index.js +2 -2
- package/dist/components/feedback/ErrorPage/index.js +2 -2
- package/dist/components/feedback/FocusTrap/index.js +2 -2
- package/dist/components/feedback/Message/index.js +2 -2
- package/dist/components/feedback/Modal/index.js +2 -2
- package/dist/components/feedback/Notification/index.js +4 -4
- package/dist/components/feedback/Popover/index.js +2 -2
- package/dist/components/feedback/Tooltip/index.js +2 -2
- package/dist/components/feedback/UpdatesWidget/index.js +2 -2
- package/dist/components/feedback/index.js +18 -18
- package/dist/components/forms/Autocomplete/index.js +2 -2
- package/dist/components/forms/Checkbox/index.js +2 -2
- package/dist/components/forms/CheckboxGroup/index.js +3 -3
- package/dist/components/forms/ColorPicker/index.js +3 -3
- package/dist/components/forms/Combobox/index.js +2 -2
- package/dist/components/forms/DatePicker/index.js +10 -10
- package/dist/components/forms/DateRangePicker/index.js +10 -10
- package/dist/components/forms/EmailInput/index.js +3 -3
- package/dist/components/forms/ErrorMessage/index.js +2 -2
- package/dist/components/forms/Field/index.js +4 -4
- package/dist/components/forms/FloatLabel/index.js +2 -2
- package/dist/components/forms/Form/index.js +3 -3
- package/dist/components/forms/FormValidation/index.js +2 -2
- package/dist/components/forms/HelpText/index.js +2 -2
- package/dist/components/forms/IftaLabel/index.js +2 -2
- package/dist/components/forms/InputGroup/index.js +9 -9
- package/dist/components/forms/InputOTP/index.js +2 -2
- package/dist/components/forms/InputOTPField/index.js +6 -6
- package/dist/components/forms/MultiSelect/index.js +3 -3
- package/dist/components/forms/NativeSelect/index.js +2 -2
- package/dist/components/forms/NumberInput/index.js +2 -2
- package/dist/components/forms/PasswordInput/index.js +3 -3
- package/dist/components/forms/PaymentInput/index.js +2 -2
- package/dist/components/forms/PhoneInput/index.js +2 -2
- package/dist/components/forms/RadioButton/index.js +2 -2
- package/dist/components/forms/RadioCardGroup/index.js +2 -2
- package/dist/components/forms/RadioGroup/index.js +2 -2
- package/dist/components/forms/Rating/index.js +2 -2
- package/dist/components/forms/SearchInput/index.js +3 -3
- package/dist/components/forms/Select/index.js +2 -2
- package/dist/components/forms/Slider/index.js +2 -2
- package/dist/components/forms/SuccessMessage/index.js +2 -2
- package/dist/components/forms/Switch/index.js +2 -2
- package/dist/components/forms/TagsInput/index.js +4 -4
- package/dist/components/forms/TextInput/index.js +2 -2
- package/dist/components/forms/Textarea/index.js +2 -2
- package/dist/components/forms/TextareaField/index.js +6 -6
- package/dist/components/forms/TimePicker/index.js +4 -4
- package/dist/components/forms/URLInput/index.js +3 -3
- package/dist/components/forms/index.js +50 -50
- package/dist/components/index.js +183 -183
- package/dist/components/layout/Card/index.js +2 -2
- package/dist/components/layout/Collapsible/index.js +2 -2
- package/dist/components/layout/Container/index.js +2 -2
- package/dist/components/layout/Flex/index.js +2 -2
- package/dist/components/layout/Grid/index.js +2 -2
- package/dist/components/layout/Panel/index.js +3 -3
- package/dist/components/layout/ResizablePanels/index.js +2 -2
- package/dist/components/layout/ResponsiveContainer/index.js +2 -2
- package/dist/components/layout/ScrollArea/index.js +2 -2
- package/dist/components/layout/Section/index.js +2 -2
- package/dist/components/layout/Sheet/index.js +2 -2
- package/dist/components/layout/Stack/index.js +2 -2
- package/dist/components/layout/index.js +13 -13
- package/dist/components/navigation/AccountSwitch/index.js +6 -6
- package/dist/components/navigation/Breadcrumb/index.js +2 -2
- package/dist/components/navigation/ContextMenu/index.js +2 -2
- package/dist/components/navigation/Drawer/index.js +2 -2
- package/dist/components/navigation/DropdownMenu/index.js +2 -2
- package/dist/components/navigation/FileTree/index.js +2 -2
- package/dist/components/navigation/Header/index.js +2 -2
- package/dist/components/navigation/LogoConta/index.js +2 -2
- package/dist/components/navigation/Menu/index.js +3 -3
- package/dist/components/navigation/Menubar/index.js +2 -2
- package/dist/components/navigation/Navbar/index.js +2 -2
- package/dist/components/navigation/NavigationMenu/index.js +2 -2
- package/dist/components/navigation/Pagination/index.js +7 -7
- package/dist/components/navigation/Sidebar/index.js +11 -11
- package/dist/components/navigation/SkipLinks/index.js +2 -2
- package/dist/components/navigation/SpeedDial/index.js +3 -3
- package/dist/components/navigation/TabNavigation/index.js +2 -2
- package/dist/components/navigation/TabPanel/index.js +2 -2
- package/dist/components/navigation/Tabs/index.js +2 -2
- package/dist/components/navigation/Toolbar/index.js +2 -2
- package/dist/components/navigation/Topbar/index.js +2 -2
- package/dist/components/navigation/index.js +32 -32
- package/dist/components/primitives/ArrowAnimated/index.js +2 -2
- package/dist/components/primitives/Avatar/index.js +3 -3
- package/dist/components/primitives/Badge/index.js +3 -3
- package/dist/components/primitives/Button/index.js +6 -6
- package/dist/components/primitives/ButtonGroup/index.js +3 -3
- package/dist/components/primitives/ConfirmButton/index.js +8 -8
- package/dist/components/primitives/Divider/index.js +2 -2
- package/dist/components/primitives/FeaturedIcon/index.js +2 -2
- package/dist/components/primitives/FolderStack/index.js +2 -2
- package/dist/components/primitives/Heading/index.js +2 -2
- package/dist/components/primitives/Icon/index.js +2 -2
- package/dist/components/primitives/Image/index.js +2 -2
- package/dist/components/primitives/Kbd/index.js +2 -2
- package/dist/components/primitives/Label/index.js +2 -2
- package/dist/components/primitives/Link/index.js +2 -2
- package/dist/components/primitives/Paragraph/index.js +2 -2
- package/dist/components/primitives/PaymentMethodIcon/index.js +2 -2
- package/dist/components/primitives/ProgressBar/index.js +3 -3
- package/dist/components/primitives/ProgressCircle/index.js +3 -3
- package/dist/components/primitives/SkeletonLoader/index.js +2 -2
- package/dist/components/primitives/Spacer/index.js +2 -2
- package/dist/components/primitives/Spinner/index.js +2 -2
- package/dist/components/primitives/SplitButton/index.js +3 -3
- package/dist/components/primitives/StatusIndicator/index.js +2 -2
- package/dist/components/primitives/Tag/index.js +2 -2
- package/dist/components/primitives/Text/index.js +2 -2
- package/dist/components/primitives/Thumbnail/index.js +3 -3
- package/dist/components/primitives/Toggle/index.js +2 -2
- package/dist/components/primitives/index.js +32 -32
- package/dist/components/workflow/ApprovalFlow/index.js +8 -8
- package/dist/components/workflow/ApprovalStatus/index.js +2 -2
- package/dist/components/workflow/CommentSystem/index.js +9 -9
- package/dist/components/workflow/Dashboard/index.js +7 -7
- package/dist/components/workflow/DashboardBuilder/index.js +9 -9
- package/dist/components/workflow/KanbanBoard/index.js +9 -9
- package/dist/components/workflow/ProgressSteps/index.js +2 -2
- package/dist/components/workflow/ReportGenerator/index.js +9 -9
- package/dist/components/workflow/Stepper/index.js +2 -2
- package/dist/components/workflow/TaskCard/index.js +2 -2
- package/dist/components/workflow/TaskList/index.js +2 -2
- package/dist/components/workflow/TaskStatus/index.js +3 -3
- package/dist/components/workflow/Wizard/index.js +8 -8
- package/dist/components/workflow/index.js +26 -26
- package/dist/index.d.ts +55 -14
- package/dist/index.js +183 -183
- package/dist/lib/utils.d.ts +2 -1
- package/dist/lib/utils.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-B2OCNHUW.js.map +0 -1
- package/dist/chunk-DSCLJ3GK.js.map +0 -1
- package/dist/chunk-HRNDJU7D.js +0 -11
- package/dist/chunk-HRNDJU7D.js.map +0 -1
- package/dist/chunk-IZC5YFGO.js.map +0 -1
- package/dist/chunk-JDG5A44W.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
2
2
|
import 'react';
|
|
3
3
|
import { cva } from 'class-variance-authority';
|
|
4
4
|
import { jsx } from 'react/jsx-runtime';
|
|
@@ -232,5 +232,5 @@ function TableCaption({
|
|
|
232
232
|
}
|
|
233
233
|
|
|
234
234
|
export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
|
|
235
|
-
//# sourceMappingURL=chunk-
|
|
236
|
-
//# sourceMappingURL=chunk-
|
|
235
|
+
//# sourceMappingURL=chunk-NHUUSXBL.js.map
|
|
236
|
+
//# sourceMappingURL=chunk-NHUUSXBL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/Table/Table.variants.ts","../src/components/data-display/Table/Table.tsx"],"names":[],"mappings":"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","file":"chunk-5SUD32RK.js","sourcesContent":["// Table/Table.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Table container style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const tableContainerVariants = cva(\n // Base styles (always applied)\n \"relative w-full overflow-x-auto\",\n {\n variants: {\n bordered: {\n true: \"rounded-md border\",\n false: \"\",\n },\n },\n defaultVariants: {\n bordered: false,\n },\n }\n)\n\n/**\n * Table style variants\n */\nexport const tableVariants = cva(\n // Base styles (always applied)\n \"w-full caption-bottom text-[length:var(--table-cell-text)]\",\n {\n variants: {\n density: {\n compact: \"[&_td]:py-[var(--table-cell-padding-compact-y)] [&_th]:py-[var(--table-cell-padding-compact-y)]\",\n default: \"[&_td]:py-[var(--table-cell-padding-default-y)] [&_th]:py-[var(--table-cell-padding-default-y)]\",\n comfortable: \"[&_td]:py-[var(--table-cell-padding-comfortable-y)] [&_th]:py-[var(--table-cell-padding-comfortable-y)]\",\n },\n },\n defaultVariants: {\n density: \"default\",\n },\n }\n)\n\n/**\n * Table row style variants\n */\nexport const tableRowVariants = cva(\n // Base styles (always applied)\n \"border-b border-[color:var(--table-row-border)] transition-colors\",\n {\n variants: {\n hoverable: {\n true: \"hover:bg-[color:var(--table-row-hover)]\",\n false: \"\",\n },\n selected: {\n true: \"bg-[color:var(--table-row-selected)]\",\n false: \"\",\n },\n striped: {\n true: \"even:bg-[color:var(--table-row-striped)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n hoverable: true,\n selected: false,\n striped: false,\n },\n }\n)\n\n/**\n * Table header cell style variants\n */\nexport const tableHeadVariants = cva(\n // Base styles (always applied)\n \"text-[length:var(--text-size-sm-font-size)] h-[var(--table-header-height)] px-[var(--table-header-padding-x)] text-left align-middle font-medium text-[color:var(--table-header-fg)] whitespace-nowrap\",\n {\n variants: {\n sortable: {\n true: \"cursor-pointer select-none hover:bg-[color:var(--table-row-hover)]\",\n false: \"\",\n },\n sticky: {\n true: \"sticky top-0 bg-[color:var(--background)] z-10\",\n false: \"\",\n },\n },\n defaultVariants: {\n sortable: false,\n sticky: false,\n },\n }\n)\n\n/**\n * Table cell style variants\n */\nexport const tableCellVariants = cva(\n // Base styles (always applied)\n \"px-[var(--table-cell-padding-x)] align-middle whitespace-nowrap text-[length:var(--table-cell-text)]\",\n {\n variants: {\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n },\n },\n defaultVariants: {\n align: \"left\",\n },\n }\n)\n\n// Export variant prop types\nexport type TableContainerVariantProps = VariantProps<typeof tableContainerVariants>\nexport type TableVariantProps = VariantProps<typeof tableVariants>\nexport type TableRowVariantProps = VariantProps<typeof tableRowVariants>\nexport type TableHeadVariantProps = VariantProps<typeof tableHeadVariants>\nexport type TableCellVariantProps = VariantProps<typeof tableCellVariants>\n","import type { TableSortDirection } from \"./Table.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n type TableCellVariantProps,\n tableCellVariants,\n type TableContainerVariantProps,\n tableContainerVariants,\n type TableHeadVariantProps,\n tableHeadVariants,\n type TableRowVariantProps,\n tableRowVariants,\n type TableVariantProps,\n tableVariants,\n} from \"./Table.variants\"\n\ntype TableProps = React.ComponentProps<\"table\"> &\n TableContainerVariantProps &\n TableVariantProps\n\nfunction Table({\n className,\n ref,\n bordered,\n density,\n ...props\n}: TableProps) {\n return (\n <div\n className={cn(\n tableContainerVariants({ bordered }),\n \"w-full overflow-x-auto\"\n )}\n data-slot=\"table-container\"\n >\n <table\n ref={ref}\n className={cn(tableVariants({ density }), className)}\n data-slot=\"table\"\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n className={cn(\"[&_tr]:border-b\", className)}\n data-slot=\"table-header\"\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n data-slot=\"table-body\"\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n className={cn(\n \"bg-[color:var(--table-footer-bg)] border-[color:var(--table-footer-border)] border-t font-medium [&>tr]:last:border-b-0\",\n className\n )}\n data-slot=\"table-footer\"\n {...props}\n />\n )\n}\n\ntype TableRowProps = React.ComponentProps<\"tr\"> & TableRowVariantProps\n\nfunction TableRow({\n className,\n hoverable,\n selected,\n striped,\n ...props\n}: TableRowProps) {\n return (\n <tr\n className={cn(\n tableRowVariants({ hoverable, selected, striped }),\n className\n )}\n data-slot=\"table-row\"\n data-state={selected ? \"selected\" : undefined}\n {...props}\n />\n )\n}\n\ntype TableHeadProps = React.ComponentProps<\"th\"> &\n TableHeadVariantProps & {\n /** Drives the `aria-sort` attribute when the column is sorted. */\n sortDirection?: TableSortDirection\n }\n\nconst ariaSortMap: Record<TableSortDirection, \"ascending\" | \"descending\" | \"none\"> = {\n asc: \"ascending\",\n desc: \"descending\",\n none: \"none\",\n}\n\nfunction TableHead({\n className,\n scope = \"col\",\n sortable,\n sticky,\n sortDirection,\n ...props\n}: TableHeadProps) {\n return (\n <th\n className={cn(\n tableHeadVariants({ sortable, sticky }),\n \"[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n aria-sort={sortDirection ? ariaSortMap[sortDirection] : undefined}\n data-slot=\"table-head\"\n scope={scope}\n {...props}\n />\n )\n}\n\ntype TableCellProps = Omit<React.ComponentProps<\"td\">, \"align\"> &\n TableCellVariantProps\n\nfunction TableCell({ className, align, ...props }: TableCellProps) {\n return (\n <td\n className={cn(\n tableCellVariants({ align }),\n \"[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n data-slot=\"table-cell\"\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n className={cn(\"text-[color:var(--table-caption-fg)] mt-[var(--table-caption-margin-top)] text-[length:var(--table-caption-text)]\", className)}\n data-slot=\"table-caption\"\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/Table/Table.variants.ts","../src/components/data-display/Table/Table.tsx"],"names":[],"mappings":"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","file":"chunk-NHUUSXBL.js","sourcesContent":["// Table/Table.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * Table container style variants using CVA\n *\n * @see https://cva.style/docs\n */\nexport const tableContainerVariants = cva(\n // Base styles (always applied)\n \"relative w-full overflow-x-auto\",\n {\n variants: {\n bordered: {\n true: \"rounded-md border\",\n false: \"\",\n },\n },\n defaultVariants: {\n bordered: false,\n },\n }\n)\n\n/**\n * Table style variants\n */\nexport const tableVariants = cva(\n // Base styles (always applied)\n \"w-full caption-bottom text-[length:var(--table-cell-text)]\",\n {\n variants: {\n density: {\n compact: \"[&_td]:py-[var(--table-cell-padding-compact-y)] [&_th]:py-[var(--table-cell-padding-compact-y)]\",\n default: \"[&_td]:py-[var(--table-cell-padding-default-y)] [&_th]:py-[var(--table-cell-padding-default-y)]\",\n comfortable: \"[&_td]:py-[var(--table-cell-padding-comfortable-y)] [&_th]:py-[var(--table-cell-padding-comfortable-y)]\",\n },\n },\n defaultVariants: {\n density: \"default\",\n },\n }\n)\n\n/**\n * Table row style variants\n */\nexport const tableRowVariants = cva(\n // Base styles (always applied)\n \"border-b border-[color:var(--table-row-border)] transition-colors\",\n {\n variants: {\n hoverable: {\n true: \"hover:bg-[color:var(--table-row-hover)]\",\n false: \"\",\n },\n selected: {\n true: \"bg-[color:var(--table-row-selected)]\",\n false: \"\",\n },\n striped: {\n true: \"even:bg-[color:var(--table-row-striped)]\",\n false: \"\",\n },\n },\n defaultVariants: {\n hoverable: true,\n selected: false,\n striped: false,\n },\n }\n)\n\n/**\n * Table header cell style variants\n */\nexport const tableHeadVariants = cva(\n // Base styles (always applied)\n \"text-[length:var(--text-size-sm-font-size)] h-[var(--table-header-height)] px-[var(--table-header-padding-x)] text-left align-middle font-medium text-[color:var(--table-header-fg)] whitespace-nowrap\",\n {\n variants: {\n sortable: {\n true: \"cursor-pointer select-none hover:bg-[color:var(--table-row-hover)]\",\n false: \"\",\n },\n sticky: {\n true: \"sticky top-0 bg-[color:var(--background)] z-10\",\n false: \"\",\n },\n },\n defaultVariants: {\n sortable: false,\n sticky: false,\n },\n }\n)\n\n/**\n * Table cell style variants\n */\nexport const tableCellVariants = cva(\n // Base styles (always applied)\n \"px-[var(--table-cell-padding-x)] align-middle whitespace-nowrap text-[length:var(--table-cell-text)]\",\n {\n variants: {\n align: {\n left: \"text-left\",\n center: \"text-center\",\n right: \"text-right\",\n },\n },\n defaultVariants: {\n align: \"left\",\n },\n }\n)\n\n// Export variant prop types\nexport type TableContainerVariantProps = VariantProps<typeof tableContainerVariants>\nexport type TableVariantProps = VariantProps<typeof tableVariants>\nexport type TableRowVariantProps = VariantProps<typeof tableRowVariants>\nexport type TableHeadVariantProps = VariantProps<typeof tableHeadVariants>\nexport type TableCellVariantProps = VariantProps<typeof tableCellVariants>\n","import type { TableSortDirection } from \"./Table.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n type TableCellVariantProps,\n tableCellVariants,\n type TableContainerVariantProps,\n tableContainerVariants,\n type TableHeadVariantProps,\n tableHeadVariants,\n type TableRowVariantProps,\n tableRowVariants,\n type TableVariantProps,\n tableVariants,\n} from \"./Table.variants\"\n\ntype TableProps = React.ComponentProps<\"table\"> &\n TableContainerVariantProps &\n TableVariantProps\n\nfunction Table({\n className,\n ref,\n bordered,\n density,\n ...props\n}: TableProps) {\n return (\n <div\n className={cn(\n tableContainerVariants({ bordered }),\n \"w-full overflow-x-auto\"\n )}\n data-slot=\"table-container\"\n >\n <table\n ref={ref}\n className={cn(tableVariants({ density }), className)}\n data-slot=\"table\"\n {...props}\n />\n </div>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n className={cn(\"[&_tr]:border-b\", className)}\n data-slot=\"table-header\"\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n data-slot=\"table-body\"\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n className={cn(\n \"bg-[color:var(--table-footer-bg)] border-[color:var(--table-footer-border)] border-t font-medium [&>tr]:last:border-b-0\",\n className\n )}\n data-slot=\"table-footer\"\n {...props}\n />\n )\n}\n\ntype TableRowProps = React.ComponentProps<\"tr\"> & TableRowVariantProps\n\nfunction TableRow({\n className,\n hoverable,\n selected,\n striped,\n ...props\n}: TableRowProps) {\n return (\n <tr\n className={cn(\n tableRowVariants({ hoverable, selected, striped }),\n className\n )}\n data-slot=\"table-row\"\n data-state={selected ? \"selected\" : undefined}\n {...props}\n />\n )\n}\n\ntype TableHeadProps = React.ComponentProps<\"th\"> &\n TableHeadVariantProps & {\n /** Drives the `aria-sort` attribute when the column is sorted. */\n sortDirection?: TableSortDirection\n }\n\nconst ariaSortMap: Record<TableSortDirection, \"ascending\" | \"descending\" | \"none\"> = {\n asc: \"ascending\",\n desc: \"descending\",\n none: \"none\",\n}\n\nfunction TableHead({\n className,\n scope = \"col\",\n sortable,\n sticky,\n sortDirection,\n ...props\n}: TableHeadProps) {\n return (\n <th\n className={cn(\n tableHeadVariants({ sortable, sticky }),\n \"[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n aria-sort={sortDirection ? ariaSortMap[sortDirection] : undefined}\n data-slot=\"table-head\"\n scope={scope}\n {...props}\n />\n )\n}\n\ntype TableCellProps = Omit<React.ComponentProps<\"td\">, \"align\"> &\n TableCellVariantProps\n\nfunction TableCell({ className, align, ...props }: TableCellProps) {\n return (\n <td\n className={cn(\n tableCellVariants({ align }),\n \"[&:has([role=checkbox])]:pr-0 [&>[role=checkbox]]:translate-y-[2px]\",\n className\n )}\n data-slot=\"table-cell\"\n {...props}\n />\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n className={cn(\"text-[color:var(--table-caption-fg)] mt-[var(--table-caption-margin-top)] text-[length:var(--table-caption-text)]\", className)}\n data-slot=\"table-caption\"\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableBody,\n TableCaption,\n TableCell,\n TableFooter,\n TableHead,\n TableHeader,\n TableRow,\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Checkbox } from './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
1
|
+
import { Checkbox } from './chunk-JXEIRIU4.js';
|
|
2
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
3
3
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
4
4
|
import { Command } from 'cmdk';
|
|
5
5
|
import { XIcon, ChevronDownIcon, SearchIcon } from 'lucide-react';
|
|
@@ -333,5 +333,5 @@ function MultiSelect({
|
|
|
333
333
|
}
|
|
334
334
|
|
|
335
335
|
export { MultiSelect };
|
|
336
|
-
//# sourceMappingURL=chunk-
|
|
337
|
-
//# sourceMappingURL=chunk-
|
|
336
|
+
//# sourceMappingURL=chunk-NIRTZLZL.js.map
|
|
337
|
+
//# sourceMappingURL=chunk-NIRTZLZL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/forms/MultiSelect/MultiSelect.variants.ts","../src/components/forms/MultiSelect/MultiSelect.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-IOWHM7ZY.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * MultiSelectTrigger variant styles using CVA\n */\nexport const multiSelectTriggerVariants = cva(\n // Base styles\n [\n \"flex w-full min-w-[var(--multiselect-trigger-width)] items-center justify-between gap-2 rounded-[var(--multiselect-trigger-radius)] border bg-transparent\",\n \"text-sm whitespace-normal shadow-xs transition-[color,box-shadow] outline-none\",\n \"data-[placeholder]:text-muted-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"dark:bg-input/30 dark:hover:bg-input/50\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-[var(--multiselect-trigger-min-height-sm)] px-[var(--multiselect-trigger-padding-x-sm)] py-[var(--multiselect-trigger-padding-y-sm)] text-[length:var(--multiselect-trigger-text-sm)]\",\n md: \"min-h-[var(--multiselect-trigger-min-height-md)] px-[var(--multiselect-trigger-padding-x-md)] py-[var(--multiselect-trigger-padding-y-md)] text-[length:var(--multiselect-trigger-text-md)]\",\n lg: \"min-h-[var(--multiselect-trigger-min-height-lg)] px-[var(--multiselect-trigger-padding-x-lg)] py-[var(--multiselect-trigger-padding-y-lg)] text-[length:var(--multiselect-trigger-text-lg)]\",\n },\n variant: {\n default: \"border-input shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0 shadow-none\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * MultiSelectContent variant styles using CVA\n */\nexport const multiSelectContentVariants = cva(\n // Base styles\n [\n \"bg-[color:var(--multiselect-content-bg)] text-[color:var(--multiselect-content-fg)]\",\n \"z-50 w-[var(--radix-popper-anchor-width)] min-w-[var(--multiselect-content-width)] overflow-hidden rounded-[var(--multiselect-content-radius)] border shadow-[var(--multiselect-content-shadow)] p-0\",\n // Animation classes\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * MultiSelectInput variant styles using CVA\n */\nexport const multiSelectInputVariants = cva(\n [\n \"flex h-[var(--multiselect-input-height)] w-full rounded-md bg-transparent py-[var(--multiselect-input-padding-y)] text-[length:var(--multiselect-input-text)] outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * MultiSelectItem variant styles using CVA\n */\nexport const multiSelectItemVariants = cva(\n [\n \"relative flex cursor-default items-center gap-2 rounded-[var(--multiselect-item-radius)] px-[var(--multiselect-item-padding-x)] py-[var(--multiselect-item-padding-y)] text-[length:var(--multiselect-item-text)]\",\n \"outline-none select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"data-[highlighted=true]:bg-accent data-[highlighted=true]:text-accent-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * MultiSelectEmpty variant styles using CVA\n */\nexport const multiSelectEmptyVariants = cva(\n [\"py-[var(--multiselect-empty-padding-y)] text-center text-[length:var(--multiselect-empty-text)] text-[color:var(--multiselect-empty-fg)]\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * MultiSelectTag variant styles using CVA\n */\nexport const multiSelectTagVariants = cva(\n [\n \"inline-flex items-center gap-1 rounded-[var(--multiselect-tag-radius)] bg-[color:var(--multiselect-tag-bg)] text-[color:var(--multiselect-tag-fg)]\",\n \"font-medium shrink-0\",\n \"[&_svg]:size-3 [&_svg]:shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"text-[length:var(--multiselect-tag-text-sm)] px-[var(--multiselect-tag-padding-x-sm)] py-[var(--multiselect-tag-padding-y-sm)]\",\n md: \"text-[length:var(--multiselect-tag-text-md)] px-[var(--multiselect-tag-padding-x-md)] py-[var(--multiselect-tag-padding-y-md)]\",\n lg: \"text-[length:var(--multiselect-tag-text-lg)] px-[var(--multiselect-tag-padding-x-lg)] py-[var(--multiselect-tag-padding-y-lg)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type MultiSelectTriggerVariantProps = VariantProps<typeof multiSelectTriggerVariants>\nexport type MultiSelectContentVariantProps = VariantProps<typeof multiSelectContentVariants>\nexport type MultiSelectInputVariantProps = VariantProps<typeof multiSelectInputVariants>\nexport type MultiSelectItemVariantProps = VariantProps<typeof multiSelectItemVariants>\nexport type MultiSelectEmptyVariantProps = VariantProps<typeof multiSelectEmptyVariants>\nexport type MultiSelectTagVariantProps = VariantProps<typeof multiSelectTagVariants>\n","import type { MultiSelectProps } from \"./MultiSelect.types\"\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { ChevronDownIcon, SearchIcon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Checkbox } from \"../Checkbox\"\nimport {\n multiSelectContentVariants,\n multiSelectEmptyVariants,\n multiSelectInputVariants,\n multiSelectItemVariants,\n multiSelectTagVariants,\n multiSelectTriggerVariants,\n} from \"./MultiSelect.variants\"\n\n/**\n * MultiSelect - A multi-selection component with tags display\n *\n * Uses Radix Popover for the dropdown container and cmdk (Command) for\n * search/filter functionality with full keyboard accessibility.\n * Selected items are displayed as removable tags.\n *\n * @example\n * ```tsx\n * <MultiSelect\n * options={[\n * { value: \"apple\", label: \"Apple\" },\n * { value: \"banana\", label: \"Banana\" },\n * ]}\n * placeholder=\"Select fruits...\"\n * onChange={(values) => console.log(values)}\n * />\n * ```\n */\nfunction MultiSelect({\n options,\n value: controlledValue,\n defaultValue = [],\n placeholder = \"Select options...\",\n searchPlaceholder = \"Search...\",\n emptyMessage = \"No results found.\",\n disabled = false,\n error = false,\n errorMessage: _errorMessage,\n icon,\n maxSelected,\n name,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n onChange,\n onSearch,\n required = false,\n size = \"md\",\n variant = \"default\",\n className,\n ...props\n}: MultiSelectProps) {\n // Handle controlled vs uncontrolled value\n const [internalValue, setInternalValue] = React.useState<string[]>(defaultValue)\n const values = controlledValue ?? internalValue\n\n // Handle controlled vs uncontrolled open state\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen)\n const open = controlledOpen ?? internalOpen\n\n // Search query state\n const [searchQuery, setSearchQuery] = React.useState(\"\")\n\n // Get labels for selected values\n const selectedLabels = React.useMemo(() => {\n return values\n .map((val) => {\n const option = options.find((opt) => opt.value === val)\n return option ? { value: val, label: option.label } : null\n })\n .filter((item): item is { label: string; value: string; } => item !== null)\n }, [values, options])\n\n // Check if max selected limit is reached\n const isMaxReached = maxSelected !== undefined && values.length >= maxSelected\n\n // Handle open state changes\n const handleOpenChange = React.useCallback(\n (newOpen: boolean) => {\n // Prevent opening when disabled\n if (disabled && newOpen) {\n return\n }\n\n if (controlledOpen === undefined) {\n setInternalOpen(newOpen)\n }\n onOpenChange?.(newOpen)\n\n // Clear search when closing\n if (!newOpen) {\n setSearchQuery(\"\")\n }\n },\n [controlledOpen, onOpenChange, disabled]\n )\n\n // Handle value toggle\n const handleToggle = React.useCallback(\n (selectedValue: string) => {\n const newValues = values.includes(selectedValue)\n ? values.filter((v) => v !== selectedValue)\n : isMaxReached\n ? values\n : [...values, selectedValue]\n\n if (controlledValue === undefined) {\n setInternalValue(newValues)\n }\n onChange?.(newValues)\n },\n [values, controlledValue, onChange, isMaxReached]\n )\n\n // Handle tag removal\n const handleRemove = React.useCallback(\n (valueToRemove: string, event?: React.MouseEvent) => {\n event?.stopPropagation()\n const newValues = values.filter((v) => v !== valueToRemove)\n if (controlledValue === undefined) {\n setInternalValue(newValues)\n }\n onChange?.(newValues)\n },\n [values, controlledValue, onChange]\n )\n\n // Handle search input changes\n const handleSearchChange = React.useCallback(\n (query: string) => {\n setSearchQuery(query)\n onSearch?.(query)\n },\n [onSearch]\n )\n\n return (\n <>\n {/* Hidden inputs for form submission */}\n {name &&\n values.map((val) => (\n <input key={val} name={name} type=\"hidden\" value={val} />\n ))}\n <PopoverPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger asChild disabled={disabled}>\n <div\n className={cn(\n multiSelectTriggerVariants({ size, variant }),\n \"cursor-pointer flex-wrap\",\n disabled && \"pointer-events-none\",\n className\n )}\n aria-disabled={disabled || undefined}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-invalid={error || undefined}\n aria-required={required || undefined}\n data-disabled={disabled || undefined}\n data-error={error || undefined}\n data-size={size}\n data-slot=\"multi-select\"\n data-variant={variant}\n role=\"combobox\"\n tabIndex={disabled ? -1 : 0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n if (!disabled) {\n handleOpenChange(!open)\n }\n }\n }}\n {...props}\n >\n <div\n className=\"flex flex-1 flex-wrap items-center gap-1\"\n data-slot=\"multi-select-trigger\"\n >\n {icon && (\n <span className=\"shrink-0\" data-slot=\"multi-select-icon\">\n {icon}\n </span>\n )}\n {selectedLabels.length === 0 ? (\n <span data-placeholder className=\"text-muted-foreground\">\n {placeholder}\n </span>\n ) : (\n selectedLabels.map((item) => (\n <span\n key={item.value}\n className={cn(multiSelectTagVariants({ size }))}\n data-slot=\"multi-select-tag\"\n data-value={item.value}\n >\n {item.label}\n <button\n aria-label={`Remove ${item.label}`}\n className=\"ml-0.5 rounded-sm hover:bg-foreground/10 focus:outline-none\"\n tabIndex={-1}\n type=\"button\"\n onClick={(e) => { handleRemove(item.value, e); }}\n >\n <XIcon className=\"size-3\" />\n </button>\n </span>\n ))\n )}\n </div>\n <ChevronDownIcon className=\"size-4 shrink-0 opacity-50\" />\n </div>\n </PopoverPrimitive.Trigger>\n\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align=\"start\"\n className={cn(multiSelectContentVariants())}\n data-slot=\"multi-select-content\"\n sideOffset={4}\n >\n <CommandPrimitive\n className=\"flex h-full w-full flex-col overflow-hidden\"\n shouldFilter={!onSearch}\n >\n <div className=\"flex items-center border-b px-3\">\n <SearchIcon className=\"mr-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n className={cn(multiSelectInputVariants())}\n data-slot=\"multi-select-input\"\n placeholder={searchPlaceholder}\n value={searchQuery}\n onValueChange={handleSearchChange}\n />\n </div>\n\n <CommandPrimitive.List className=\"max-h-72 overflow-y-auto overflow-x-hidden p-1\">\n <CommandPrimitive.Empty className={cn(multiSelectEmptyVariants())}>\n {emptyMessage}\n </CommandPrimitive.Empty>\n\n {options.map((option) => {\n const isSelected = values.includes(option.value)\n const isDisabled = option.disabled ?? (!isSelected && isMaxReached)\n\n return (\n <CommandPrimitive.Item\n key={option.value}\n className={cn(multiSelectItemVariants())}\n data-disabled={isDisabled || undefined}\n data-selected={isSelected || undefined}\n data-slot=\"multi-select-item\"\n disabled={isDisabled}\n value={option.label}\n onSelect={() => {\n if (!isDisabled) {\n handleToggle(option.value)\n }\n }}\n >\n <Checkbox\n aria-hidden\n checked={isSelected}\n className=\"pointer-events-none\"\n disabled={isDisabled}\n size=\"sm\"\n tabIndex={-1}\n />\n {option.label}\n </CommandPrimitive.Item>\n )\n })}\n </CommandPrimitive.List>\n </CommandPrimitive>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n </>\n )\n}\n\nexport { MultiSelect }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/MultiSelect/MultiSelect.variants.ts","../src/components/forms/MultiSelect/MultiSelect.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-NIRTZLZL.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * MultiSelectTrigger variant styles using CVA\n */\nexport const multiSelectTriggerVariants = cva(\n // Base styles\n [\n \"flex w-full min-w-[var(--multiselect-trigger-width)] items-center justify-between gap-2 rounded-[var(--multiselect-trigger-radius)] border bg-transparent\",\n \"text-sm whitespace-normal shadow-xs transition-[color,box-shadow] outline-none\",\n \"data-[placeholder]:text-muted-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"dark:bg-input/30 dark:hover:bg-input/50\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n size: {\n sm: \"min-h-[var(--multiselect-trigger-min-height-sm)] px-[var(--multiselect-trigger-padding-x-sm)] py-[var(--multiselect-trigger-padding-y-sm)] text-[length:var(--multiselect-trigger-text-sm)]\",\n md: \"min-h-[var(--multiselect-trigger-min-height-md)] px-[var(--multiselect-trigger-padding-x-md)] py-[var(--multiselect-trigger-padding-y-md)] text-[length:var(--multiselect-trigger-text-md)]\",\n lg: \"min-h-[var(--multiselect-trigger-min-height-lg)] px-[var(--multiselect-trigger-padding-x-lg)] py-[var(--multiselect-trigger-padding-y-lg)] text-[length:var(--multiselect-trigger-text-lg)]\",\n },\n variant: {\n default: \"border-input shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0 shadow-none\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * MultiSelectContent variant styles using CVA\n */\nexport const multiSelectContentVariants = cva(\n // Base styles\n [\n \"bg-[color:var(--multiselect-content-bg)] text-[color:var(--multiselect-content-fg)]\",\n \"z-50 w-[var(--radix-popper-anchor-width)] min-w-[var(--multiselect-content-width)] overflow-hidden rounded-[var(--multiselect-content-radius)] border shadow-[var(--multiselect-content-shadow)] p-0\",\n // Animation classes\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * MultiSelectInput variant styles using CVA\n */\nexport const multiSelectInputVariants = cva(\n [\n \"flex h-[var(--multiselect-input-height)] w-full rounded-md bg-transparent py-[var(--multiselect-input-padding-y)] text-[length:var(--multiselect-input-text)] outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * MultiSelectItem variant styles using CVA\n */\nexport const multiSelectItemVariants = cva(\n [\n \"relative flex cursor-default items-center gap-2 rounded-[var(--multiselect-item-radius)] px-[var(--multiselect-item-padding-x)] py-[var(--multiselect-item-padding-y)] text-[length:var(--multiselect-item-text)]\",\n \"outline-none select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"data-[highlighted=true]:bg-accent data-[highlighted=true]:text-accent-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * MultiSelectEmpty variant styles using CVA\n */\nexport const multiSelectEmptyVariants = cva(\n [\"py-[var(--multiselect-empty-padding-y)] text-center text-[length:var(--multiselect-empty-text)] text-[color:var(--multiselect-empty-fg)]\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * MultiSelectTag variant styles using CVA\n */\nexport const multiSelectTagVariants = cva(\n [\n \"inline-flex items-center gap-1 rounded-[var(--multiselect-tag-radius)] bg-[color:var(--multiselect-tag-bg)] text-[color:var(--multiselect-tag-fg)]\",\n \"font-medium shrink-0\",\n \"[&_svg]:size-3 [&_svg]:shrink-0\",\n ],\n {\n variants: {\n size: {\n sm: \"text-[length:var(--multiselect-tag-text-sm)] px-[var(--multiselect-tag-padding-x-sm)] py-[var(--multiselect-tag-padding-y-sm)]\",\n md: \"text-[length:var(--multiselect-tag-text-md)] px-[var(--multiselect-tag-padding-x-md)] py-[var(--multiselect-tag-padding-y-md)]\",\n lg: \"text-[length:var(--multiselect-tag-text-lg)] px-[var(--multiselect-tag-padding-x-lg)] py-[var(--multiselect-tag-padding-y-lg)]\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport type MultiSelectTriggerVariantProps = VariantProps<typeof multiSelectTriggerVariants>\nexport type MultiSelectContentVariantProps = VariantProps<typeof multiSelectContentVariants>\nexport type MultiSelectInputVariantProps = VariantProps<typeof multiSelectInputVariants>\nexport type MultiSelectItemVariantProps = VariantProps<typeof multiSelectItemVariants>\nexport type MultiSelectEmptyVariantProps = VariantProps<typeof multiSelectEmptyVariants>\nexport type MultiSelectTagVariantProps = VariantProps<typeof multiSelectTagVariants>\n","import type { MultiSelectProps } from \"./MultiSelect.types\"\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { ChevronDownIcon, SearchIcon, XIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Checkbox } from \"../Checkbox\"\nimport {\n multiSelectContentVariants,\n multiSelectEmptyVariants,\n multiSelectInputVariants,\n multiSelectItemVariants,\n multiSelectTagVariants,\n multiSelectTriggerVariants,\n} from \"./MultiSelect.variants\"\n\n/**\n * MultiSelect - A multi-selection component with tags display\n *\n * Uses Radix Popover for the dropdown container and cmdk (Command) for\n * search/filter functionality with full keyboard accessibility.\n * Selected items are displayed as removable tags.\n *\n * @example\n * ```tsx\n * <MultiSelect\n * options={[\n * { value: \"apple\", label: \"Apple\" },\n * { value: \"banana\", label: \"Banana\" },\n * ]}\n * placeholder=\"Select fruits...\"\n * onChange={(values) => console.log(values)}\n * />\n * ```\n */\nfunction MultiSelect({\n options,\n value: controlledValue,\n defaultValue = [],\n placeholder = \"Select options...\",\n searchPlaceholder = \"Search...\",\n emptyMessage = \"No results found.\",\n disabled = false,\n error = false,\n errorMessage: _errorMessage,\n icon,\n maxSelected,\n name,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n onChange,\n onSearch,\n required = false,\n size = \"md\",\n variant = \"default\",\n className,\n ...props\n}: MultiSelectProps) {\n // Handle controlled vs uncontrolled value\n const [internalValue, setInternalValue] = React.useState<string[]>(defaultValue)\n const values = controlledValue ?? internalValue\n\n // Handle controlled vs uncontrolled open state\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen)\n const open = controlledOpen ?? internalOpen\n\n // Search query state\n const [searchQuery, setSearchQuery] = React.useState(\"\")\n\n // Get labels for selected values\n const selectedLabels = React.useMemo(() => {\n return values\n .map((val) => {\n const option = options.find((opt) => opt.value === val)\n return option ? { value: val, label: option.label } : null\n })\n .filter((item): item is { label: string; value: string; } => item !== null)\n }, [values, options])\n\n // Check if max selected limit is reached\n const isMaxReached = maxSelected !== undefined && values.length >= maxSelected\n\n // Handle open state changes\n const handleOpenChange = React.useCallback(\n (newOpen: boolean) => {\n // Prevent opening when disabled\n if (disabled && newOpen) {\n return\n }\n\n if (controlledOpen === undefined) {\n setInternalOpen(newOpen)\n }\n onOpenChange?.(newOpen)\n\n // Clear search when closing\n if (!newOpen) {\n setSearchQuery(\"\")\n }\n },\n [controlledOpen, onOpenChange, disabled]\n )\n\n // Handle value toggle\n const handleToggle = React.useCallback(\n (selectedValue: string) => {\n const newValues = values.includes(selectedValue)\n ? values.filter((v) => v !== selectedValue)\n : isMaxReached\n ? values\n : [...values, selectedValue]\n\n if (controlledValue === undefined) {\n setInternalValue(newValues)\n }\n onChange?.(newValues)\n },\n [values, controlledValue, onChange, isMaxReached]\n )\n\n // Handle tag removal\n const handleRemove = React.useCallback(\n (valueToRemove: string, event?: React.MouseEvent) => {\n event?.stopPropagation()\n const newValues = values.filter((v) => v !== valueToRemove)\n if (controlledValue === undefined) {\n setInternalValue(newValues)\n }\n onChange?.(newValues)\n },\n [values, controlledValue, onChange]\n )\n\n // Handle search input changes\n const handleSearchChange = React.useCallback(\n (query: string) => {\n setSearchQuery(query)\n onSearch?.(query)\n },\n [onSearch]\n )\n\n return (\n <>\n {/* Hidden inputs for form submission */}\n {name &&\n values.map((val) => (\n <input key={val} name={name} type=\"hidden\" value={val} />\n ))}\n <PopoverPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger asChild disabled={disabled}>\n <div\n className={cn(\n multiSelectTriggerVariants({ size, variant }),\n \"cursor-pointer flex-wrap\",\n disabled && \"pointer-events-none\",\n className\n )}\n aria-disabled={disabled || undefined}\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n aria-invalid={error || undefined}\n aria-required={required || undefined}\n data-disabled={disabled || undefined}\n data-error={error || undefined}\n data-size={size}\n data-slot=\"multi-select\"\n data-variant={variant}\n role=\"combobox\"\n tabIndex={disabled ? -1 : 0}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n if (!disabled) {\n handleOpenChange(!open)\n }\n }\n }}\n {...props}\n >\n <div\n className=\"flex flex-1 flex-wrap items-center gap-1\"\n data-slot=\"multi-select-trigger\"\n >\n {icon && (\n <span className=\"shrink-0\" data-slot=\"multi-select-icon\">\n {icon}\n </span>\n )}\n {selectedLabels.length === 0 ? (\n <span data-placeholder className=\"text-muted-foreground\">\n {placeholder}\n </span>\n ) : (\n selectedLabels.map((item) => (\n <span\n key={item.value}\n className={cn(multiSelectTagVariants({ size }))}\n data-slot=\"multi-select-tag\"\n data-value={item.value}\n >\n {item.label}\n <button\n aria-label={`Remove ${item.label}`}\n className=\"ml-0.5 rounded-sm hover:bg-foreground/10 focus:outline-none\"\n tabIndex={-1}\n type=\"button\"\n onClick={(e) => { handleRemove(item.value, e); }}\n >\n <XIcon className=\"size-3\" />\n </button>\n </span>\n ))\n )}\n </div>\n <ChevronDownIcon className=\"size-4 shrink-0 opacity-50\" />\n </div>\n </PopoverPrimitive.Trigger>\n\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align=\"start\"\n className={cn(multiSelectContentVariants())}\n data-slot=\"multi-select-content\"\n sideOffset={4}\n >\n <CommandPrimitive\n className=\"flex h-full w-full flex-col overflow-hidden\"\n shouldFilter={!onSearch}\n >\n <div className=\"flex items-center border-b px-3\">\n <SearchIcon className=\"mr-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n className={cn(multiSelectInputVariants())}\n data-slot=\"multi-select-input\"\n placeholder={searchPlaceholder}\n value={searchQuery}\n onValueChange={handleSearchChange}\n />\n </div>\n\n <CommandPrimitive.List className=\"max-h-72 overflow-y-auto overflow-x-hidden p-1\">\n <CommandPrimitive.Empty className={cn(multiSelectEmptyVariants())}>\n {emptyMessage}\n </CommandPrimitive.Empty>\n\n {options.map((option) => {\n const isSelected = values.includes(option.value)\n const isDisabled = option.disabled ?? (!isSelected && isMaxReached)\n\n return (\n <CommandPrimitive.Item\n key={option.value}\n className={cn(multiSelectItemVariants())}\n data-disabled={isDisabled || undefined}\n data-selected={isSelected || undefined}\n data-slot=\"multi-select-item\"\n disabled={isDisabled}\n value={option.label}\n onSelect={() => {\n if (!isDisabled) {\n handleToggle(option.value)\n }\n }}\n >\n <Checkbox\n aria-hidden\n checked={isSelected}\n className=\"pointer-events-none\"\n disabled={isDisabled}\n size=\"sm\"\n tabIndex={-1}\n />\n {option.label}\n </CommandPrimitive.Item>\n )\n })}\n </CommandPrimitive.List>\n </CommandPrimitive>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n </>\n )\n}\n\nexport { MultiSelect }\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { buttonVariants } from './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
1
|
+
import { buttonVariants } from './chunk-L4OQ6BJ5.js';
|
|
2
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
3
3
|
import { ChevronLeftIcon, ChevronRightIcon, MoreHorizontalIcon } from 'lucide-react';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -128,5 +128,5 @@ function PaginationEllipsis({
|
|
|
128
128
|
}
|
|
129
129
|
|
|
130
130
|
export { Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, paginationContentVariants, paginationEllipsisVariants, paginationNextVariants, paginationPreviousVariants, paginationVariants };
|
|
131
|
-
//# sourceMappingURL=chunk-
|
|
132
|
-
//# sourceMappingURL=chunk-
|
|
131
|
+
//# sourceMappingURL=chunk-NLPVF34P.js.map
|
|
132
|
+
//# sourceMappingURL=chunk-NLPVF34P.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/navigation/Pagination/Pagination.variants.ts","../src/components/navigation/Pagination/Pagination.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/Pagination/Pagination.variants.ts","../src/components/navigation/Pagination/Pagination.tsx"],"names":[],"mappings":"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","file":"chunk-NLPVF34P.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * Pagination root variant styles\n */\nexport const paginationVariants = cva([\n \"mx-auto flex w-full justify-center\",\n])\n\n/**\n * PaginationContent variant styles\n */\nexport const paginationContentVariants = cva([\n \"flex flex-row items-center gap-[var(--pagination-content-gap)]\",\n])\n\n/**\n * PaginationPrevious variant styles\n */\nexport const paginationPreviousVariants = cva([\n \"gap-[var(--pagination-button-gap)] px-[var(--pagination-button-padding-x)] sm:pl-[var(--pagination-button-padding-x)]\",\n])\n\n/**\n * PaginationNext variant styles\n */\nexport const paginationNextVariants = cva([\n \"gap-[var(--pagination-button-gap)] px-[var(--pagination-button-padding-x)] sm:pr-[var(--pagination-button-padding-x)]\",\n])\n\n/**\n * PaginationEllipsis variant styles\n */\nexport const paginationEllipsisVariants = cva([\n \"flex size-[var(--pagination-ellipsis-size)] items-center justify-center\",\n])\n","import type {\n PaginationContentProps,\n PaginationEllipsisProps,\n PaginationItemProps,\n PaginationLinkProps,\n PaginationNextProps,\n PaginationPreviousProps,\n PaginationProps,\n} from \"./Pagination.types\"\n\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { buttonVariants } from \"../../primitives/Button\"\nimport {\n paginationContentVariants,\n paginationEllipsisVariants,\n paginationNextVariants,\n paginationPreviousVariants,\n paginationVariants,\n} from \"./Pagination.variants\"\n\n/**\n * Pagination - A navigation component for paginated content.\n *\n * Provides accessible navigation with previous/next buttons and page links.\n *\n * @example\n * <Pagination>\n * <PaginationContent>\n * <PaginationItem>\n * <PaginationPrevious href=\"#\" />\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\">1</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationLink href=\"#\" isActive>2</PaginationLink>\n * </PaginationItem>\n * <PaginationItem>\n * <PaginationNext href=\"#\" />\n * </PaginationItem>\n * </PaginationContent>\n * </Pagination>\n */\nfunction Pagination({ className, ...props }: PaginationProps) {\n return (\n <nav\n aria-label=\"pagination\"\n className={cn(paginationVariants(), className)}\n data-slot=\"pagination\"\n role=\"navigation\"\n {...props}\n />\n )\n}\n\n/**\n * PaginationContent - Container for pagination items.\n */\nfunction PaginationContent({\n className,\n ...props\n}: PaginationContentProps) {\n return (\n <ul\n className={cn(paginationContentVariants(), className)}\n data-slot=\"pagination-content\"\n {...props}\n />\n )\n}\n\n/**\n * PaginationItem - Wrapper for individual pagination elements.\n */\nfunction PaginationItem({ ...props }: PaginationItemProps) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\n/**\n * PaginationLink - A link to a specific page.\n *\n * Use isActive to indicate the current page.\n */\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className\n )}\n aria-current={isActive ? \"page\" : undefined}\n data-active={isActive}\n data-slot=\"pagination-link\"\n {...props}\n />\n )\n}\n\n/**\n * PaginationPrevious - Link to the previous page.\n *\n * Includes a chevron icon and \"Previous\" text on larger screens.\n */\nfunction PaginationPrevious({\n className,\n ...props\n}: PaginationPreviousProps) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n className={cn(paginationPreviousVariants(), className)}\n data-slot=\"pagination-previous\"\n size=\"default\"\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"hidden sm:block\">Previous</span>\n </PaginationLink>\n )\n}\n\n/**\n * PaginationNext - Link to the next page.\n *\n * Includes a chevron icon and \"Next\" text on larger screens.\n */\nfunction PaginationNext({\n className,\n ...props\n}: PaginationNextProps) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n className={cn(paginationNextVariants(), className)}\n data-slot=\"pagination-next\"\n size=\"default\"\n {...props}\n >\n <span className=\"hidden sm:block\">Next</span>\n <ChevronRightIcon />\n </PaginationLink>\n )\n}\n\n/**\n * PaginationEllipsis - Indicates more pages between visible page links.\n */\nfunction PaginationEllipsis({\n className,\n ...props\n}: PaginationEllipsisProps) {\n return (\n <span\n aria-hidden\n className={cn(paginationEllipsisVariants(), className)}\n data-slot=\"pagination-ellipsis\"\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationEllipsis,\n PaginationItem,\n PaginationLink,\n PaginationNext,\n PaginationPrevious,\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChartTooltipContent, ChartContainer, ChartTooltip, ChartLegend, ChartLegendContent } from './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
1
|
+
import { ChartTooltipContent, ChartContainer, ChartTooltip, ChartLegend, ChartLegendContent } from './chunk-XXWCMY2G.js';
|
|
2
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { LineChart as LineChart$1, CartesianGrid, XAxis, Label, YAxis, Line, LabelList } from 'recharts';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
@@ -262,5 +262,5 @@ function LineChart({
|
|
|
262
262
|
LineChart.displayName = "LineChart";
|
|
263
263
|
|
|
264
264
|
export { LineChart };
|
|
265
|
-
//# sourceMappingURL=chunk-
|
|
266
|
-
//# sourceMappingURL=chunk-
|
|
265
|
+
//# sourceMappingURL=chunk-NNWMBVCB.js.map
|
|
266
|
+
//# sourceMappingURL=chunk-NNWMBVCB.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/LineChart/LineChart.variants.ts","../src/components/data-display/LineChart/LineChart.tsx"],"names":["data","props","RechartsLineChart"],"mappings":"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","file":"chunk-ZPAWUKJI.js","sourcesContent":["// LineChart/LineChart.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * LineChart style variants using CVA\n *\n * Controls the line appearance and chart styling.\n *\n * @see https://cva.style/docs\n */\nexport const lineChartVariants = cva(\n // Base styles (always applied)\n \"\",\n {\n variants: {\n variant: {\n default: \"\",\n dashed: \"\",\n dotted: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Line stroke dash array configuration by variant\n */\nexport const lineStrokeDashArray: Record<string, string | undefined> = {\n default: undefined,\n dashed: \"5 5\",\n dotted: \"2 2\",\n}\n\n/**\n * Line curve type configuration\n */\nexport const curveTypes = {\n linear: \"linear\",\n monotone: \"monotone\",\n step: \"step\",\n stepAfter: \"stepAfter\",\n stepBefore: \"stepBefore\",\n natural: \"natural\",\n} as const\n\nexport type CurveType = keyof typeof curveTypes\n\n// Export variant prop types\nexport type LineChartVariantProps = VariantProps<typeof lineChartVariants>\n","\"use client\"\n\nimport type {\n LineChartProps,\n LineChartSeriesConfig,\n} from \"./LineChart.types\"\n\nimport * as React from \"react\"\nimport {\n CartesianGrid,\n Label,\n LabelList,\n Line,\n LineChart as RechartsLineChart,\n XAxis,\n YAxis,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"../Chart\"\nimport { lineStrokeDashArray } from \"./LineChart.variants\"\n\n/**\n * Normalize series to LineChartSeriesConfig format\n */\nfunction normalizeSeriesConfig(\n series: (LineChartSeriesConfig | string)[]\n): LineChartSeriesConfig[] {\n return series.map((s) =>\n typeof s === \"string\" ? { dataKey: s } : s\n )\n}\n\n/**\n * Get stroke dash array based on variant\n */\nfunction getVariantStrokeDasharray(variant: LineChartProps[\"variant\"]): string | undefined {\n return lineStrokeDashArray[variant ?? \"default\"]\n}\n\ninterface PointDotProps {\n cx?: number\n cy?: number\n index?: number\n}\n\nfunction makePointDotRenderer(\n dataKey: string,\n dotColors: string[],\n baseDot: boolean | { fill?: string; r?: number }\n) {\n const radius = typeof baseDot === \"object\" ? (baseDot.r ?? 3) : 3\n return function PointDot({ cx, cy, index }: PointDotProps) {\n const pointIndex = index ?? 0\n return (\n <circle\n key={`${dataKey}-dot-${String(pointIndex)}`}\n cx={cx}\n cy={cy}\n fill={dotColors[pointIndex % dotColors.length]}\n r={radius}\n />\n )\n }\n}\n\nfunction makePointLabelFormatter(\n showPointLabels: boolean | { formatter?: (value: number) => string }\n) {\n const formatter =\n typeof showPointLabels === \"object\" ? showPointLabels.formatter : undefined\n if (!formatter) return\n return (label: React.ReactNode) => formatter(Number(label))\n}\n\n/**\n * LineChart - Data visualization component for trends and time series\n *\n * Connects data points with lines, ideal for showing trends and changes\n * over a continuous axis (usually time). Supports multiple series for\n * comparison.\n *\n * @example\n * ```tsx\n * const data = [\n * { month: \"Jan\", desktop: 186, mobile: 80 },\n * { month: \"Feb\", desktop: 305, mobile: 200 },\n * ]\n *\n * const config = {\n * desktop: { label: \"Desktop\", color: \"hsl(var(--chart-1))\" },\n * mobile: { label: \"Mobile\", color: \"hsl(var(--chart-2))\" },\n * }\n *\n * <LineChart\n * data={data}\n * config={config}\n * xAxisKey=\"month\"\n * series={[\"desktop\", \"mobile\"]}\n * />\n * ```\n */\nexport function LineChart({\n activeDot = { r: 6 },\n allowDecimals = true,\n ariaLabel,\n autoMinValue = false,\n className,\n config,\n connectNulls = false,\n customTooltip,\n curveType = \"monotone\",\n data,\n dot = false,\n enableLegendSlider = false,\n gridDashArray = \"3 3\",\n intervalType,\n legendPosition = \"bottom\",\n maxValue,\n minValue,\n onValueChange,\n series,\n showGrid = true,\n showLegend = false,\n showPointLabels = false,\n showTooltip = true,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n strokeWidth = 2,\n tickGap,\n tooltipCallback,\n tooltipIndicator = \"dot\",\n variant = \"default\",\n xAxisLabel,\n xAxisKey,\n xAxisTickFormatter,\n yAxisLabel,\n yAxisTickFormatter,\n yAxisWidth,\n ...props\n}: LineChartProps) {\n const pointLabelFormatter = makePointLabelFormatter(showPointLabels)\n const normalizedSeries = normalizeSeriesConfig(series)\n const variantStrokeDasharray = getVariantStrokeDasharray(variant)\n const prevTooltipStateRef = React.useRef<boolean>(false)\n\n // Handle dot click for onValueChange\n const handleDotClick = React.useCallback(\n (dataKey: string) => (data: { payload: Record<string, unknown> }) => {\n if (!onValueChange) return\n const payload = data.payload\n const value = payload[dataKey]\n onValueChange({\n category: payload[xAxisKey],\n dataKey,\n payload,\n value: typeof value === \"number\" ? value : 0,\n })\n },\n [onValueChange, xAxisKey]\n )\n\n /* eslint-disable react-hooks/static-components, @eslint-react/no-nested-component-definitions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- Intentional: memoized render function with Recharts any-typed props */\n // Custom tooltip content wrapper for tooltipCallback\n const TooltipContentWithCallback = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const { active = false, label, payload } = props\n\n // Call tooltipCallback when state changes\n if (tooltipCallback && active !== prevTooltipStateRef.current) {\n prevTooltipStateRef.current = active\n tooltipCallback({\n active,\n label,\n payload: payload?.map((p: { dataKey: number | string; payload: Record<string, unknown>; value: number; }) => ({\n dataKey: String(p.dataKey),\n value: p.value,\n payload: p.payload,\n })),\n })\n }\n\n return <ChartTooltipContent indicator={tooltipIndicator} {...props} />\n },\n [tooltipCallback, tooltipIndicator]\n )\n\n // Calculate Y-axis domain\n const yDomain = React.useMemo(() => {\n const min = minValue ?? (autoMinValue ? \"auto\" : 0)\n const max = maxValue ?? \"auto\"\n return [min, max] as const\n }, [autoMinValue, maxValue, minValue])\n\n // Calculate X-axis ticks for startEndOnly\n const xAxisTicks = React.useMemo(() => {\n if (!startEndOnly || data.length < 2) return\n const first = data[0]\n const last = data[data.length - 1]\n if (!first || !last) return\n return [first[xAxisKey], last[xAxisKey]] as string[]\n }, [data, startEndOnly, xAxisKey])\n\n return (\n <div\n aria-label={ariaLabel}\n data-slot=\"line-chart\"\n role={ariaLabel ? \"img\" : undefined}\n {...props}\n >\n <ChartContainer\n className={cn(className)}\n config={config}\n >\n <RechartsLineChart\n accessibilityLayer\n data={data}\n margin={{ left: xAxisLabel ? 20 : 12, right: 12, bottom: yAxisLabel ? 20 : 0 }}\n >\n {showGrid && (\n <CartesianGrid strokeDasharray={gridDashArray} vertical={false} />\n )}\n\n {showXAxis && (\n <XAxis\n axisLine={false}\n dataKey={xAxisKey}\n interval={intervalType}\n minTickGap={tickGap}\n tickFormatter={xAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n ticks={xAxisTicks}\n >\n {xAxisLabel && (\n <Label offset={-5} position=\"insideBottom\" value={xAxisLabel} />\n )}\n </XAxis>\n )}\n\n {showYAxis && (\n <YAxis\n allowDecimals={allowDecimals}\n axisLine={false}\n domain={yDomain}\n tickFormatter={yAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n width={yAxisWidth}\n >\n {yAxisLabel && (\n <Label angle={-90} offset={-5} position=\"insideLeft\" value={yAxisLabel} />\n )}\n </YAxis>\n )}\n\n {showTooltip && (\n <ChartTooltip\n content={\n customTooltip\n ?? (tooltipCallback\n ? <TooltipContentWithCallback />\n : <ChartTooltipContent indicator={tooltipIndicator} />)\n }\n cursor={false}\n />\n )}\n\n {showLegend && (\n <ChartLegend\n align={legendPosition === \"left\" ? \"left\" : legendPosition === \"right\" ? \"right\" : \"center\"}\n content={<ChartLegendContent enableSlider={enableLegendSlider} />}\n layout={legendPosition === \"left\" || legendPosition === \"right\" ? \"vertical\" : \"horizontal\"}\n verticalAlign={legendPosition === \"top\" ? \"top\" : legendPosition === \"bottom\" ? \"bottom\" : \"middle\"}\n />\n )}\n\n {normalizedSeries.map((seriesConfig) => {\n const {\n activeDot: seriesActiveDot,\n dataKey,\n dot: seriesDot,\n dotColors,\n strokeDasharray: seriesStrokeDasharray,\n strokeOpacity,\n strokeWidth: seriesStrokeWidth,\n } = seriesConfig\n\n const stroke = `var(--color-${dataKey})`\n const finalStrokeDasharray = seriesStrokeDasharray ?? variantStrokeDasharray\n const baseDot = seriesDot ?? dot\n const finalDot = dotColors?.length\n ? makePointDotRenderer(dataKey, dotColors, baseDot)\n : baseDot\n const finalStrokeWidth = seriesStrokeWidth ?? strokeWidth\n\n // Merge activeDot config with click handler\n const baseActiveDot = seriesActiveDot ?? activeDot\n const finalActiveDot = onValueChange\n ? typeof baseActiveDot === \"object\"\n ? { ...baseActiveDot, onClick: handleDotClick(dataKey), style: { cursor: \"pointer\" } }\n : !baseActiveDot\n ? false\n : { r: 6, onClick: handleDotClick(dataKey), style: { cursor: \"pointer\" } }\n : baseActiveDot\n\n return (\n <Line\n key={dataKey}\n activeDot={finalActiveDot}\n connectNulls={connectNulls}\n dataKey={dataKey}\n dot={finalDot}\n stroke={stroke}\n strokeDasharray={finalStrokeDasharray}\n strokeOpacity={strokeOpacity}\n strokeWidth={finalStrokeWidth}\n type={curveType}\n >\n {showPointLabels ? (\n <LabelList\n className=\"fill-foreground text-xs\"\n dataKey={dataKey}\n formatter={pointLabelFormatter}\n offset={10}\n position=\"top\"\n />\n ) : null}\n </Line>\n )\n })}\n </RechartsLineChart>\n </ChartContainer>\n </div>\n )\n}\n\nLineChart.displayName = \"LineChart\"\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/LineChart/LineChart.variants.ts","../src/components/data-display/LineChart/LineChart.tsx"],"names":["data","props","RechartsLineChart"],"mappings":"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","file":"chunk-NNWMBVCB.js","sourcesContent":["// LineChart/LineChart.variants.ts\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * LineChart style variants using CVA\n *\n * Controls the line appearance and chart styling.\n *\n * @see https://cva.style/docs\n */\nexport const lineChartVariants = cva(\n // Base styles (always applied)\n \"\",\n {\n variants: {\n variant: {\n default: \"\",\n dashed: \"\",\n dotted: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * Line stroke dash array configuration by variant\n */\nexport const lineStrokeDashArray: Record<string, string | undefined> = {\n default: undefined,\n dashed: \"5 5\",\n dotted: \"2 2\",\n}\n\n/**\n * Line curve type configuration\n */\nexport const curveTypes = {\n linear: \"linear\",\n monotone: \"monotone\",\n step: \"step\",\n stepAfter: \"stepAfter\",\n stepBefore: \"stepBefore\",\n natural: \"natural\",\n} as const\n\nexport type CurveType = keyof typeof curveTypes\n\n// Export variant prop types\nexport type LineChartVariantProps = VariantProps<typeof lineChartVariants>\n","\"use client\"\n\nimport type {\n LineChartProps,\n LineChartSeriesConfig,\n} from \"./LineChart.types\"\n\nimport * as React from \"react\"\nimport {\n CartesianGrid,\n Label,\n LabelList,\n Line,\n LineChart as RechartsLineChart,\n XAxis,\n YAxis,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"../Chart\"\nimport { lineStrokeDashArray } from \"./LineChart.variants\"\n\n/**\n * Normalize series to LineChartSeriesConfig format\n */\nfunction normalizeSeriesConfig(\n series: (LineChartSeriesConfig | string)[]\n): LineChartSeriesConfig[] {\n return series.map((s) =>\n typeof s === \"string\" ? { dataKey: s } : s\n )\n}\n\n/**\n * Get stroke dash array based on variant\n */\nfunction getVariantStrokeDasharray(variant: LineChartProps[\"variant\"]): string | undefined {\n return lineStrokeDashArray[variant ?? \"default\"]\n}\n\ninterface PointDotProps {\n cx?: number\n cy?: number\n index?: number\n}\n\nfunction makePointDotRenderer(\n dataKey: string,\n dotColors: string[],\n baseDot: boolean | { fill?: string; r?: number }\n) {\n const radius = typeof baseDot === \"object\" ? (baseDot.r ?? 3) : 3\n return function PointDot({ cx, cy, index }: PointDotProps) {\n const pointIndex = index ?? 0\n return (\n <circle\n key={`${dataKey}-dot-${String(pointIndex)}`}\n cx={cx}\n cy={cy}\n fill={dotColors[pointIndex % dotColors.length]}\n r={radius}\n />\n )\n }\n}\n\nfunction makePointLabelFormatter(\n showPointLabels: boolean | { formatter?: (value: number) => string }\n) {\n const formatter =\n typeof showPointLabels === \"object\" ? showPointLabels.formatter : undefined\n if (!formatter) return\n return (label: React.ReactNode) => formatter(Number(label))\n}\n\n/**\n * LineChart - Data visualization component for trends and time series\n *\n * Connects data points with lines, ideal for showing trends and changes\n * over a continuous axis (usually time). Supports multiple series for\n * comparison.\n *\n * @example\n * ```tsx\n * const data = [\n * { month: \"Jan\", desktop: 186, mobile: 80 },\n * { month: \"Feb\", desktop: 305, mobile: 200 },\n * ]\n *\n * const config = {\n * desktop: { label: \"Desktop\", color: \"hsl(var(--chart-1))\" },\n * mobile: { label: \"Mobile\", color: \"hsl(var(--chart-2))\" },\n * }\n *\n * <LineChart\n * data={data}\n * config={config}\n * xAxisKey=\"month\"\n * series={[\"desktop\", \"mobile\"]}\n * />\n * ```\n */\nexport function LineChart({\n activeDot = { r: 6 },\n allowDecimals = true,\n ariaLabel,\n autoMinValue = false,\n className,\n config,\n connectNulls = false,\n customTooltip,\n curveType = \"monotone\",\n data,\n dot = false,\n enableLegendSlider = false,\n gridDashArray = \"3 3\",\n intervalType,\n legendPosition = \"bottom\",\n maxValue,\n minValue,\n onValueChange,\n series,\n showGrid = true,\n showLegend = false,\n showPointLabels = false,\n showTooltip = true,\n showXAxis = true,\n showYAxis = true,\n startEndOnly = false,\n strokeWidth = 2,\n tickGap,\n tooltipCallback,\n tooltipIndicator = \"dot\",\n variant = \"default\",\n xAxisLabel,\n xAxisKey,\n xAxisTickFormatter,\n yAxisLabel,\n yAxisTickFormatter,\n yAxisWidth,\n ...props\n}: LineChartProps) {\n const pointLabelFormatter = makePointLabelFormatter(showPointLabels)\n const normalizedSeries = normalizeSeriesConfig(series)\n const variantStrokeDasharray = getVariantStrokeDasharray(variant)\n const prevTooltipStateRef = React.useRef<boolean>(false)\n\n // Handle dot click for onValueChange\n const handleDotClick = React.useCallback(\n (dataKey: string) => (data: { payload: Record<string, unknown> }) => {\n if (!onValueChange) return\n const payload = data.payload\n const value = payload[dataKey]\n onValueChange({\n category: payload[xAxisKey],\n dataKey,\n payload,\n value: typeof value === \"number\" ? value : 0,\n })\n },\n [onValueChange, xAxisKey]\n )\n\n /* eslint-disable react-hooks/static-components, @eslint-react/no-nested-component-definitions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- Intentional: memoized render function with Recharts any-typed props */\n // Custom tooltip content wrapper for tooltipCallback\n const TooltipContentWithCallback = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const { active = false, label, payload } = props\n\n // Call tooltipCallback when state changes\n if (tooltipCallback && active !== prevTooltipStateRef.current) {\n prevTooltipStateRef.current = active\n tooltipCallback({\n active,\n label,\n payload: payload?.map((p: { dataKey: number | string; payload: Record<string, unknown>; value: number; }) => ({\n dataKey: String(p.dataKey),\n value: p.value,\n payload: p.payload,\n })),\n })\n }\n\n return <ChartTooltipContent indicator={tooltipIndicator} {...props} />\n },\n [tooltipCallback, tooltipIndicator]\n )\n\n // Calculate Y-axis domain\n const yDomain = React.useMemo(() => {\n const min = minValue ?? (autoMinValue ? \"auto\" : 0)\n const max = maxValue ?? \"auto\"\n return [min, max] as const\n }, [autoMinValue, maxValue, minValue])\n\n // Calculate X-axis ticks for startEndOnly\n const xAxisTicks = React.useMemo(() => {\n if (!startEndOnly || data.length < 2) return\n const first = data[0]\n const last = data[data.length - 1]\n if (!first || !last) return\n return [first[xAxisKey], last[xAxisKey]] as string[]\n }, [data, startEndOnly, xAxisKey])\n\n return (\n <div\n aria-label={ariaLabel}\n data-slot=\"line-chart\"\n role={ariaLabel ? \"img\" : undefined}\n {...props}\n >\n <ChartContainer\n className={cn(className)}\n config={config}\n >\n <RechartsLineChart\n accessibilityLayer\n data={data}\n margin={{ left: xAxisLabel ? 20 : 12, right: 12, bottom: yAxisLabel ? 20 : 0 }}\n >\n {showGrid && (\n <CartesianGrid strokeDasharray={gridDashArray} vertical={false} />\n )}\n\n {showXAxis && (\n <XAxis\n axisLine={false}\n dataKey={xAxisKey}\n interval={intervalType}\n minTickGap={tickGap}\n tickFormatter={xAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n ticks={xAxisTicks}\n >\n {xAxisLabel && (\n <Label offset={-5} position=\"insideBottom\" value={xAxisLabel} />\n )}\n </XAxis>\n )}\n\n {showYAxis && (\n <YAxis\n allowDecimals={allowDecimals}\n axisLine={false}\n domain={yDomain}\n tickFormatter={yAxisTickFormatter}\n tickLine={false}\n tickMargin={8}\n width={yAxisWidth}\n >\n {yAxisLabel && (\n <Label angle={-90} offset={-5} position=\"insideLeft\" value={yAxisLabel} />\n )}\n </YAxis>\n )}\n\n {showTooltip && (\n <ChartTooltip\n content={\n customTooltip\n ?? (tooltipCallback\n ? <TooltipContentWithCallback />\n : <ChartTooltipContent indicator={tooltipIndicator} />)\n }\n cursor={false}\n />\n )}\n\n {showLegend && (\n <ChartLegend\n align={legendPosition === \"left\" ? \"left\" : legendPosition === \"right\" ? \"right\" : \"center\"}\n content={<ChartLegendContent enableSlider={enableLegendSlider} />}\n layout={legendPosition === \"left\" || legendPosition === \"right\" ? \"vertical\" : \"horizontal\"}\n verticalAlign={legendPosition === \"top\" ? \"top\" : legendPosition === \"bottom\" ? \"bottom\" : \"middle\"}\n />\n )}\n\n {normalizedSeries.map((seriesConfig) => {\n const {\n activeDot: seriesActiveDot,\n dataKey,\n dot: seriesDot,\n dotColors,\n strokeDasharray: seriesStrokeDasharray,\n strokeOpacity,\n strokeWidth: seriesStrokeWidth,\n } = seriesConfig\n\n const stroke = `var(--color-${dataKey})`\n const finalStrokeDasharray = seriesStrokeDasharray ?? variantStrokeDasharray\n const baseDot = seriesDot ?? dot\n const finalDot = dotColors?.length\n ? makePointDotRenderer(dataKey, dotColors, baseDot)\n : baseDot\n const finalStrokeWidth = seriesStrokeWidth ?? strokeWidth\n\n // Merge activeDot config with click handler\n const baseActiveDot = seriesActiveDot ?? activeDot\n const finalActiveDot = onValueChange\n ? typeof baseActiveDot === \"object\"\n ? { ...baseActiveDot, onClick: handleDotClick(dataKey), style: { cursor: \"pointer\" } }\n : !baseActiveDot\n ? false\n : { r: 6, onClick: handleDotClick(dataKey), style: { cursor: \"pointer\" } }\n : baseActiveDot\n\n return (\n <Line\n key={dataKey}\n activeDot={finalActiveDot}\n connectNulls={connectNulls}\n dataKey={dataKey}\n dot={finalDot}\n stroke={stroke}\n strokeDasharray={finalStrokeDasharray}\n strokeOpacity={strokeOpacity}\n strokeWidth={finalStrokeWidth}\n type={curveType}\n >\n {showPointLabels ? (\n <LabelList\n className=\"fill-foreground text-xs\"\n dataKey={dataKey}\n formatter={pointLabelFormatter}\n offset={10}\n position=\"top\"\n />\n ) : null}\n </Line>\n )\n })}\n </RechartsLineChart>\n </ChartContainer>\n </div>\n )\n}\n\nLineChart.displayName = \"LineChart\"\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
1
|
+
import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './chunk-TEVGCTUN.js';
|
|
2
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -229,5 +229,5 @@ function CategoryBar({
|
|
|
229
229
|
CategoryBar.displayName = "CategoryBar";
|
|
230
230
|
|
|
231
231
|
export { CategoryBar };
|
|
232
|
-
//# sourceMappingURL=chunk-
|
|
233
|
-
//# sourceMappingURL=chunk-
|
|
232
|
+
//# sourceMappingURL=chunk-NUA54ABI.js.map
|
|
233
|
+
//# sourceMappingURL=chunk-NUA54ABI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/CategoryBar/CategoryBar.variants.ts","../src/components/data-display/CategoryBar/CategoryBar.tsx"],"names":[],"mappings":"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","file":"chunk-H4ANCFZG.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const categoryBarContainerVariants = cva(\n \"w-full\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const categoryBarVariants = cva(\n \"relative flex w-full overflow-hidden rounded-full\",\n {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-2\",\n md: \"h-3\",\n lg: \"h-4\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const categoryBarSegmentVariants = cva(\n \"transition-all duration-300\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer hover:opacity-80\",\n false: \"\",\n },\n animated: {\n true: \"\",\n false: \"!transition-none\",\n },\n },\n defaultVariants: {\n clickable: false,\n animated: true,\n },\n }\n)\n\nexport const categoryBarLabelsVariants = cva(\n \"mt-2 flex justify-between gap-2\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const categoryBarLabelItemVariants = cva(\n \"flex items-center gap-1.5 text-sm\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer hover:opacity-80\",\n false: \"\",\n },\n },\n defaultVariants: {\n clickable: false,\n },\n }\n)\n\nexport const categoryBarLabelDotVariants = cva(\n \"h-2 w-2 shrink-0 rounded-full\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const categoryBarMarkerVariants = cva(\n \"absolute top-0 h-full w-0.5 bg-foreground\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n","\"use client\"\n\nimport type { CategoryBarDataItem, CategoryBarProps } from \"./CategoryBar.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../../feedback/Tooltip\"\nimport {\n categoryBarContainerVariants,\n categoryBarLabelDotVariants,\n categoryBarLabelItemVariants,\n categoryBarLabelsVariants,\n categoryBarMarkerVariants,\n categoryBarSegmentVariants,\n categoryBarVariants,\n} from \"./CategoryBar.variants\"\n\n/**\n * Default colors for categories\n */\nconst DEFAULT_COLORS = [\n \"var(--chart-1)\",\n \"var(--chart-2)\",\n \"var(--chart-3)\",\n \"var(--chart-4)\",\n \"var(--chart-5)\",\n]\n\n/**\n * Default value formatter\n */\nfunction defaultValueFormatter(value: number): string {\n return value.toLocaleString()\n}\n\n/**\n * CategoryBar - Segmented bar showing proportional categories\n *\n * Displays categories as horizontal segments proportional to their values.\n * Similar to a pie chart but in a horizontal bar format. Ideal for showing\n * composition or breakdown of a total.\n *\n * @example\n * ```tsx\n * const data = [\n * { key: \"completed\", name: \"Completed\", value: 45, color: \"var(--chart-1)\" },\n * { key: \"in-progress\", name: \"In Progress\", value: 30, color: \"var(--chart-2)\" },\n * { key: \"pending\", name: \"Pending\", value: 25, color: \"var(--chart-3)\" },\n * ]\n *\n * <CategoryBar data={data} />\n * ```\n *\n * @example\n * ```tsx\n * // With marker and custom formatter\n * <CategoryBar\n * data={data}\n * markerValue={75}\n * valueFormatter={(v) => `${v}%`}\n * size=\"lg\"\n * />\n * ```\n */\nexport function CategoryBar({\n className,\n colors = DEFAULT_COLORS,\n data,\n markerValue,\n onClick,\n showAnimation = true,\n showLabels = true,\n showTooltip = true,\n size = \"md\",\n valueFormatter = defaultValueFormatter,\n ...props\n}: CategoryBarProps) {\n // Calculate total and percentages\n const total = React.useMemo(\n () => data.reduce((sum, item) => sum + item.value, 0),\n [data]\n )\n\n const segments = React.useMemo(() => {\n let cumulativePercent = 0\n return data.map((item, index) => {\n const percent = total > 0 ? (item.value / total) * 100 : 0\n const segment = {\n ...item,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Defensive: color is optional in CategoryBarItem\n color: item.color ?? colors[index % colors.length],\n percent,\n startPercent: cumulativePercent,\n }\n // eslint-disable-next-line react-hooks/immutability -- Safe: building cumulative value within useMemo callback\n cumulativePercent += percent\n return segment\n })\n }, [data, total, colors])\n\n const isClickable = Boolean(onClick)\n\n // Calculate marker position\n const markerPosition = React.useMemo(() => {\n if (markerValue === undefined || total === 0) return\n return (markerValue / total) * 100\n }, [markerValue, total])\n\n const renderSegment = (\n segment: CategoryBarDataItem & { percent: number; startPercent: number },\n index: number\n ) => {\n const segmentElement = (\n <div\n key={segment.key}\n className={cn(\n categoryBarSegmentVariants({\n animated: showAnimation,\n clickable: isClickable,\n })\n )}\n style={{\n backgroundColor: segment.color,\n width: `${String(segment.percent)}%`,\n }}\n aria-label={`${segment.name}: ${valueFormatter(segment.value)}`}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onClick={isClickable ? () => onClick?.(segment, index) : undefined}\n onKeyDown={\n isClickable\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(segment, index)\n }\n }\n : undefined\n }\n />\n )\n\n if (!showTooltip) return segmentElement\n\n return (\n <Tooltip key={segment.key}>\n <TooltipTrigger asChild>\n {segmentElement}\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <div\n className=\"h-2 w-2 rounded-full\"\n style={{ backgroundColor: segment.color }}\n />\n <span className=\"font-medium\">{segment.name}</span>\n </div>\n <div className=\"text-muted-foreground\">\n {valueFormatter(segment.value)} ({segment.percent.toFixed(1)}%)\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return (\n <div\n className={cn(categoryBarContainerVariants(), className)}\n data-slot=\"category-bar\"\n {...props}\n >\n <TooltipProvider>\n <div className={categoryBarVariants({ size })}>\n {segments.map((segment, index) => renderSegment(segment, index))}\n\n {markerPosition !== undefined && (\n <div\n className={categoryBarMarkerVariants()}\n style={{ left: `${String(markerPosition)}%` }}\n />\n )}\n </div>\n </TooltipProvider>\n\n {showLabels && (\n <div className={categoryBarLabelsVariants()}>\n {segments.map((segment, index) => (\n <div\n key={segment.key}\n className={cn(categoryBarLabelItemVariants({ clickable: isClickable }))}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onClick={isClickable ? () => onClick?.(segment, index) : undefined}\n onKeyDown={\n isClickable\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(segment, index)\n }\n }\n : undefined\n }\n >\n <div\n className={categoryBarLabelDotVariants()}\n style={{ backgroundColor: segment.color }}\n />\n <span className=\"text-muted-foreground\">{segment.name}</span>\n <span className=\"font-medium\">{valueFormatter(segment.value)}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n\nCategoryBar.displayName = \"CategoryBar\"\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/CategoryBar/CategoryBar.variants.ts","../src/components/data-display/CategoryBar/CategoryBar.tsx"],"names":[],"mappings":"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","file":"chunk-NUA54ABI.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const categoryBarContainerVariants = cva(\n \"w-full\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const categoryBarVariants = cva(\n \"relative flex w-full overflow-hidden rounded-full\",\n {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-2\",\n md: \"h-3\",\n lg: \"h-4\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const categoryBarSegmentVariants = cva(\n \"transition-all duration-300\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer hover:opacity-80\",\n false: \"\",\n },\n animated: {\n true: \"\",\n false: \"!transition-none\",\n },\n },\n defaultVariants: {\n clickable: false,\n animated: true,\n },\n }\n)\n\nexport const categoryBarLabelsVariants = cva(\n \"mt-2 flex justify-between gap-2\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const categoryBarLabelItemVariants = cva(\n \"flex items-center gap-1.5 text-sm\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer hover:opacity-80\",\n false: \"\",\n },\n },\n defaultVariants: {\n clickable: false,\n },\n }\n)\n\nexport const categoryBarLabelDotVariants = cva(\n \"h-2 w-2 shrink-0 rounded-full\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const categoryBarMarkerVariants = cva(\n \"absolute top-0 h-full w-0.5 bg-foreground\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n","\"use client\"\n\nimport type { CategoryBarDataItem, CategoryBarProps } from \"./CategoryBar.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../../feedback/Tooltip\"\nimport {\n categoryBarContainerVariants,\n categoryBarLabelDotVariants,\n categoryBarLabelItemVariants,\n categoryBarLabelsVariants,\n categoryBarMarkerVariants,\n categoryBarSegmentVariants,\n categoryBarVariants,\n} from \"./CategoryBar.variants\"\n\n/**\n * Default colors for categories\n */\nconst DEFAULT_COLORS = [\n \"var(--chart-1)\",\n \"var(--chart-2)\",\n \"var(--chart-3)\",\n \"var(--chart-4)\",\n \"var(--chart-5)\",\n]\n\n/**\n * Default value formatter\n */\nfunction defaultValueFormatter(value: number): string {\n return value.toLocaleString()\n}\n\n/**\n * CategoryBar - Segmented bar showing proportional categories\n *\n * Displays categories as horizontal segments proportional to their values.\n * Similar to a pie chart but in a horizontal bar format. Ideal for showing\n * composition or breakdown of a total.\n *\n * @example\n * ```tsx\n * const data = [\n * { key: \"completed\", name: \"Completed\", value: 45, color: \"var(--chart-1)\" },\n * { key: \"in-progress\", name: \"In Progress\", value: 30, color: \"var(--chart-2)\" },\n * { key: \"pending\", name: \"Pending\", value: 25, color: \"var(--chart-3)\" },\n * ]\n *\n * <CategoryBar data={data} />\n * ```\n *\n * @example\n * ```tsx\n * // With marker and custom formatter\n * <CategoryBar\n * data={data}\n * markerValue={75}\n * valueFormatter={(v) => `${v}%`}\n * size=\"lg\"\n * />\n * ```\n */\nexport function CategoryBar({\n className,\n colors = DEFAULT_COLORS,\n data,\n markerValue,\n onClick,\n showAnimation = true,\n showLabels = true,\n showTooltip = true,\n size = \"md\",\n valueFormatter = defaultValueFormatter,\n ...props\n}: CategoryBarProps) {\n // Calculate total and percentages\n const total = React.useMemo(\n () => data.reduce((sum, item) => sum + item.value, 0),\n [data]\n )\n\n const segments = React.useMemo(() => {\n let cumulativePercent = 0\n return data.map((item, index) => {\n const percent = total > 0 ? (item.value / total) * 100 : 0\n const segment = {\n ...item,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Defensive: color is optional in CategoryBarItem\n color: item.color ?? colors[index % colors.length],\n percent,\n startPercent: cumulativePercent,\n }\n // eslint-disable-next-line react-hooks/immutability -- Safe: building cumulative value within useMemo callback\n cumulativePercent += percent\n return segment\n })\n }, [data, total, colors])\n\n const isClickable = Boolean(onClick)\n\n // Calculate marker position\n const markerPosition = React.useMemo(() => {\n if (markerValue === undefined || total === 0) return\n return (markerValue / total) * 100\n }, [markerValue, total])\n\n const renderSegment = (\n segment: CategoryBarDataItem & { percent: number; startPercent: number },\n index: number\n ) => {\n const segmentElement = (\n <div\n key={segment.key}\n className={cn(\n categoryBarSegmentVariants({\n animated: showAnimation,\n clickable: isClickable,\n })\n )}\n style={{\n backgroundColor: segment.color,\n width: `${String(segment.percent)}%`,\n }}\n aria-label={`${segment.name}: ${valueFormatter(segment.value)}`}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onClick={isClickable ? () => onClick?.(segment, index) : undefined}\n onKeyDown={\n isClickable\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(segment, index)\n }\n }\n : undefined\n }\n />\n )\n\n if (!showTooltip) return segmentElement\n\n return (\n <Tooltip key={segment.key}>\n <TooltipTrigger asChild>\n {segmentElement}\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <div\n className=\"h-2 w-2 rounded-full\"\n style={{ backgroundColor: segment.color }}\n />\n <span className=\"font-medium\">{segment.name}</span>\n </div>\n <div className=\"text-muted-foreground\">\n {valueFormatter(segment.value)} ({segment.percent.toFixed(1)}%)\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return (\n <div\n className={cn(categoryBarContainerVariants(), className)}\n data-slot=\"category-bar\"\n {...props}\n >\n <TooltipProvider>\n <div className={categoryBarVariants({ size })}>\n {segments.map((segment, index) => renderSegment(segment, index))}\n\n {markerPosition !== undefined && (\n <div\n className={categoryBarMarkerVariants()}\n style={{ left: `${String(markerPosition)}%` }}\n />\n )}\n </div>\n </TooltipProvider>\n\n {showLabels && (\n <div className={categoryBarLabelsVariants()}>\n {segments.map((segment, index) => (\n <div\n key={segment.key}\n className={cn(categoryBarLabelItemVariants({ clickable: isClickable }))}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onClick={isClickable ? () => onClick?.(segment, index) : undefined}\n onKeyDown={\n isClickable\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(segment, index)\n }\n }\n : undefined\n }\n >\n <div\n className={categoryBarLabelDotVariants()}\n style={{ backgroundColor: segment.color }}\n />\n <span className=\"text-muted-foreground\">{segment.name}</span>\n <span className=\"font-medium\">{valueFormatter(segment.value)}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n\nCategoryBar.displayName = \"CategoryBar\"\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ChartTooltipContent, ChartContainer, ChartTooltip, ChartLegend, ChartLegendContent } from './chunk-
|
|
2
|
-
import { cn } from './chunk-
|
|
1
|
+
import { ChartTooltipContent, ChartContainer, ChartTooltip, ChartLegend, ChartLegendContent } from './chunk-XXWCMY2G.js';
|
|
2
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { FunnelChart as FunnelChart$1, Funnel, Cell, LabelList } from 'recharts';
|
|
5
5
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
@@ -123,5 +123,5 @@ function FunnelChart({
|
|
|
123
123
|
FunnelChart.displayName = "FunnelChart";
|
|
124
124
|
|
|
125
125
|
export { FunnelChart };
|
|
126
|
-
//# sourceMappingURL=chunk-
|
|
127
|
-
//# sourceMappingURL=chunk-
|
|
126
|
+
//# sourceMappingURL=chunk-NY2WZ4P2.js.map
|
|
127
|
+
//# sourceMappingURL=chunk-NY2WZ4P2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/FunnelChart/FunnelChart.tsx"],"names":["props","RechartsFunnelChart"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/FunnelChart/FunnelChart.tsx"],"names":["props","RechartsFunnelChart"],"mappings":"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","file":"chunk-NY2WZ4P2.js","sourcesContent":["\"use client\"\n\nimport type {\n FunnelChartDataItem,\n FunnelChartProps,\n} from \"./FunnelChart.types\"\n\nimport * as React from \"react\"\nimport {\n Cell,\n Funnel,\n LabelList,\n FunnelChart as RechartsFunnelChart,\n} from \"recharts\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n ChartContainer,\n ChartLegend,\n ChartLegendContent,\n ChartTooltip,\n ChartTooltipContent,\n} from \"../Chart\"\n\n/**\n * FunnelChart - Data visualization for conversion/process stages\n *\n * Displays data as a funnel with progressively smaller stages,\n * ideal for visualizing conversion rates, sales pipelines,\n * or any sequential process with drop-off.\n *\n * @example\n * ```tsx\n * const data = [\n * { name: \"Visitors\", value: 5000, fill: \"var(--color-visitors)\" },\n * { name: \"Leads\", value: 3000, fill: \"var(--color-leads)\" },\n * { name: \"Opportunities\", value: 1500, fill: \"var(--color-opportunities)\" },\n * { name: \"Sales\", value: 500, fill: \"var(--color-sales)\" },\n * ]\n *\n * const config = {\n * visitors: { label: \"Visitors\", color: \"hsl(var(--chart-1))\" },\n * leads: { label: \"Leads\", color: \"hsl(var(--chart-2))\" },\n * opportunities: { label: \"Opportunities\", color: \"hsl(var(--chart-3))\" },\n * sales: { label: \"Sales\", color: \"hsl(var(--chart-4))\" },\n * }\n *\n * <FunnelChart data={data} config={config} />\n * ```\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity -- Chart component requires handling many props and rendering logic\nexport function FunnelChart({\n animationDuration = 400,\n className,\n config,\n data,\n enableLegendSlider = false,\n isReversed = false,\n labelPosition = \"right\",\n legendPosition = \"bottom\",\n nameKey = \"name\",\n onClick,\n showLabels = true,\n showLegend = false,\n showTooltip = true,\n tooltipCallback,\n tooltipIndicator = \"dot\",\n valueFormatter,\n valueKey = \"value\",\n ...props\n}: FunnelChartProps) {\n const prevTooltipStateRef = React.useRef<boolean>(false)\n\n /* eslint-disable react-hooks/static-components, @eslint-react/no-nested-component-definitions, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access -- Intentional: memoized render function with Recharts any-typed props */\n // Custom tooltip content wrapper for tooltipCallback\n const TooltipContentWithCallback = React.useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (props: any) => {\n const { active = false, payload } = props\n\n // Call tooltipCallback when state changes\n if (tooltipCallback && active !== prevTooltipStateRef.current) {\n prevTooltipStateRef.current = active\n tooltipCallback({\n active,\n name: payload?.[0]?.name,\n payload: payload?.map((p: { name: string; payload: FunnelChartDataItem; value: number; }) => ({\n name: p.name,\n value: p.value,\n payload: p.payload,\n })),\n })\n }\n\n return (\n <ChartTooltipContent\n formatter={valueFormatter ? (value) => valueFormatter(Number(value)) : undefined}\n indicator={tooltipIndicator}\n nameKey={nameKey}\n {...props}\n />\n )\n },\n [tooltipCallback, tooltipIndicator, nameKey, valueFormatter]\n )\n\n // Event handler for click\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const handleClick: any = onClick\n ? (_: unknown, index: number) => {\n const item = data[index]\n if (item) onClick(item, index)\n }\n : undefined\n\n return (\n <div data-slot=\"funnel-chart\" {...props}>\n <ChartContainer\n className={cn(className)}\n config={config}\n >\n <RechartsFunnelChart>\n {showTooltip && (\n <ChartTooltip\n content={\n tooltipCallback\n ? <TooltipContentWithCallback />\n : <ChartTooltipContent\n formatter={valueFormatter ? (value) => valueFormatter(Number(value)) : undefined}\n indicator={tooltipIndicator}\n nameKey={nameKey}\n />\n }\n />\n )}\n\n {showLegend && (\n <ChartLegend\n align={legendPosition === \"left\" ? \"left\" : legendPosition === \"right\" ? \"right\" : \"center\"}\n content={<ChartLegendContent enableSlider={enableLegendSlider} nameKey={nameKey} />}\n layout={legendPosition === \"left\" || legendPosition === \"right\" ? \"vertical\" : \"horizontal\"}\n verticalAlign={legendPosition === \"top\" ? \"top\" : legendPosition === \"bottom\" ? \"bottom\" : \"middle\"}\n />\n )}\n\n <Funnel\n animationDuration={animationDuration}\n data={data}\n dataKey={valueKey}\n isAnimationActive={animationDuration > 0}\n nameKey={nameKey}\n reversed={isReversed}\n onClick={handleClick}\n >\n {data.map((entry) => (\n <Cell\n key={entry.name}\n fill={entry.fill ?? `var(--color-${entry.name.toLowerCase().replaceAll(\" \", \"-\")})`}\n style={onClick ? { cursor: \"pointer\" } : undefined}\n />\n ))}\n\n {showLabels && (\n <LabelList\n className=\"fill-foreground\"\n dataKey={nameKey}\n position={labelPosition}\n stroke=\"none\"\n />\n )}\n </Funnel>\n </RechartsFunnelChart>\n </ChartContainer>\n </div>\n )\n}\n\nFunnelChart.displayName = \"FunnelChart\"\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
2
2
|
import { Loader2Icon } from 'lucide-react';
|
|
3
3
|
import * as React from 'react';
|
|
4
4
|
import { cva } from 'class-variance-authority';
|
|
@@ -111,5 +111,5 @@ function Spinner({
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
export { GradientSpinner, Spinner, gradientSpinnerVariants, spinnerVariants };
|
|
114
|
-
//# sourceMappingURL=chunk-
|
|
115
|
-
//# sourceMappingURL=chunk-
|
|
114
|
+
//# sourceMappingURL=chunk-O6LFU3KB.js.map
|
|
115
|
+
//# sourceMappingURL=chunk-O6LFU3KB.js.map
|