@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 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/Heatmap/Heatmap.tsx"],"names":["ratio"],"mappings":"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","file":"chunk-6GWO7JNP.js","sourcesContent":["\"use client\"\n\nimport type {\n HeatmapCellEventPayload,\n HeatmapCellProps,\n HeatmapData,\n HeatmapProps,\n} from \"./Heatmap.types\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../../feedback/Tooltip\"\n\n// ============================================================================\n// Constants for CSS Variables\n// ============================================================================\n\nconst CSS_VAR_MUTED = \"var(--muted)\"\nconst CSS_VAR_PRIMARY = \"var(--primary)\"\n\n// ============================================================================\n// Variants\n// ============================================================================\n\nconst heatmapVariants = cva(\"inline-flex flex-col gap-2\", {\n variants: {\n variant: {\n calendar: \"\",\n grid: \"\",\n triangular: \"\",\n },\n },\n defaultVariants: {\n variant: \"grid\",\n },\n})\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\n/**\n * Interpolate between two colors based on a ratio (0-1)\n */\nfunction interpolateColor(\n color1: string,\n color2: string,\n ratio: number\n): string {\n // Handle CSS variable format\n if (color1.startsWith(\"var(\") || color2.startsWith(\"var(\")) {\n // Use color-mix for CSS variables\n return `color-mix(in srgb, ${color2} ${String(Math.round(ratio * 100))}%, ${color1})`\n }\n\n // Handle HSL format\n if (color1.startsWith(\"hsl\") || color2.startsWith(\"hsl\")) {\n // Use opacity-based interpolation for HSL\n const opacity = Math.max(0.1, Math.min(1, ratio))\n return color2.replace(\")\", ` / ${String(opacity)})`)\n }\n\n // Handle hex colors\n const hexToRgb = (hex: string): [number, number, number] | null => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n if (!result?.[1] || !result[2] || !result[3]) return null\n return [\n Number.parseInt(result[1], 16),\n Number.parseInt(result[2], 16),\n Number.parseInt(result[3], 16),\n ]\n }\n\n const rgb1 = hexToRgb(color1)\n const rgb2 = hexToRgb(color2)\n\n if (!rgb1 || !rgb2) {\n // Fallback to color-mix for any other format\n return `color-mix(in srgb, ${color2} ${String(Math.round(ratio * 100))}%, ${color1})`\n }\n\n const r = Math.round(rgb1[0] + (rgb2[0] - rgb1[0]) * ratio)\n const g = Math.round(rgb1[1] + (rgb2[1] - rgb1[1]) * ratio)\n const b = Math.round(rgb1[2] + (rgb2[2] - rgb1[2]) * ratio)\n\n return `rgb(${String(r)}, ${String(g)}, ${String(b)})`\n}\n\n/**\n * Get color for a value based on scale type\n */\nfunction getColorForValue(\n value: number,\n min: number,\n max: number,\n colorScale: \"diverging\" | \"sequential\",\n minColor: string,\n maxColor: string,\n midColor?: string\n): string {\n if (max === min) return maxColor\n\n if (colorScale === \"diverging\") {\n const mid = (max + min) / 2\n const midColorActual = midColor ?? CSS_VAR_MUTED\n\n if (value < mid) {\n const ratio = (value - min) / (mid - min)\n return interpolateColor(minColor, midColorActual, ratio)\n } else {\n const ratio = (value - mid) / (max - mid)\n return interpolateColor(midColorActual, maxColor, ratio)\n }\n }\n\n // Sequential\n const ratio = (value - min) / (max - min)\n return interpolateColor(minColor, maxColor, ratio)\n}\n\n// ============================================================================\n// HeatmapCell Component\n// ============================================================================\n\nfunction HeatmapCell({\n color,\n data,\n isHighlighted,\n isSelected,\n onClick,\n renderTooltip,\n showTooltip,\n size,\n}: HeatmapCellProps) {\n const cellContent = (\n <div\n className={cn(\n \"rounded-sm cursor-pointer transition-all\",\n \"hover:ring-2 hover:ring-ring hover:ring-offset-1\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n isSelected && \"ring-2 ring-primary ring-offset-2\",\n isHighlighted && \"ring-1 ring-muted-foreground/50\"\n )}\n style={{\n backgroundColor: color,\n height: size,\n width: size,\n }}\n aria-label={`${data.label ?? `${String(data.x)}, ${String(data.y)}`}: ${String(data.value)}`}\n data-highlighted={isHighlighted ? true : undefined}\n data-selected={isSelected ? true : undefined}\n data-slot=\"heatmap-cell\"\n data-value={data.value}\n role=\"gridcell\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(e as unknown as React.MouseEvent)\n }\n }}\n />\n )\n\n if (!showTooltip) {\n return cellContent\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{cellContent}</TooltipTrigger>\n <TooltipContent>\n {renderTooltip ? (\n renderTooltip(data)\n ) : (\n <div className=\"space-y-1\">\n {data.label && <p className=\"font-medium\">{data.label}</p>}\n <p className=\"text-sm\">\n <span className=\"text-muted-foreground\">Value: </span>\n <span className=\"font-mono\">{data.value}</span>\n </p>\n <p className=\"text-xs text-muted-foreground\">\n {String(data.x)}, {String(data.y)}\n </p>\n </div>\n )}\n </TooltipContent>\n </Tooltip>\n )\n}\n\n// ============================================================================\n// HeatmapLegend Component\n// ============================================================================\n\ninterface HeatmapLegendProps {\n colorScale: \"diverging\" | \"sequential\"\n max: number\n maxColor: string\n midColor?: string\n min: number\n minColor: string\n position: \"bottom\" | \"left\" | \"right\" | \"top\"\n}\n\nfunction HeatmapLegend({\n colorScale,\n max,\n maxColor,\n midColor,\n min,\n minColor,\n position,\n}: HeatmapLegendProps) {\n const isHorizontal = position === \"top\" || position === \"bottom\"\n const gradientStyle =\n colorScale === \"diverging\"\n ? {\n background: `linear-gradient(${isHorizontal ? \"to right\" : \"to top\"}, ${minColor}, ${midColor ?? CSS_VAR_MUTED}, ${maxColor})`,\n }\n : {\n background: `linear-gradient(${isHorizontal ? \"to right\" : \"to top\"}, ${minColor}, ${maxColor})`,\n }\n\n return (\n <div\n className={cn(\n \"flex items-center gap-2 text-xs text-muted-foreground\",\n isHorizontal ? \"flex-row\" : \"flex-col\"\n )}\n data-slot=\"heatmap-legend\"\n >\n <span className=\"font-mono\">{min}</span>\n <div\n className={cn(\n \"rounded\",\n isHorizontal ? \"w-24 h-3\" : \"w-3 h-24\"\n )}\n style={gradientStyle}\n />\n <span className=\"font-mono\">{max}</span>\n </div>\n )\n}\n\n// ============================================================================\n// Main Heatmap Component\n// ============================================================================\n\nfunction Heatmap({\n ariaLabel,\n cellGap = 2,\n cellSize = 20,\n className,\n colorScale = \"sequential\",\n data,\n highlightedRow,\n legendPosition = \"bottom\",\n maxColor = CSS_VAR_PRIMARY,\n midColor,\n minColor = CSS_VAR_MUTED,\n onCellClick,\n onRowHover,\n renderTooltip,\n selectedCell,\n showLegend = true,\n showTooltip = true,\n valueKey,\n variant = \"grid\",\n xKey,\n xLabels,\n yKey,\n yLabels,\n ...props\n}: HeatmapProps) {\n // Derive labels from data if not provided\n const derivedXLabels = React.useMemo(() => {\n if (xLabels) return xLabels\n const uniqueX = [...new Set(data.map((d) => String(d[xKey as keyof HeatmapData])))]\n return uniqueX\n }, [data, xKey, xLabels])\n\n const derivedYLabels = React.useMemo(() => {\n if (yLabels) return yLabels\n const uniqueY = [...new Set(data.map((d) => String(d[yKey as keyof HeatmapData])))]\n return uniqueY\n }, [data, yKey, yLabels])\n\n // Calculate min/max values\n const { maxValue, minValue } = React.useMemo(() => {\n const values = data.map((d) => d[valueKey as keyof HeatmapData] as number)\n return {\n maxValue: Math.max(...values),\n minValue: Math.min(...values),\n }\n }, [data, valueKey])\n\n // Build data lookup map\n const dataMap = React.useMemo(() => {\n const map = new Map<string, HeatmapData>()\n data.forEach((d) => {\n const key = `${String(d[xKey as keyof HeatmapData])}-${String(d[yKey as keyof HeatmapData])}`\n map.set(key, d)\n })\n return map\n }, [data, xKey, yKey])\n\n // Handle cell click\n const handleCellClick = React.useCallback(\n (cellData: HeatmapData) => (event: React.MouseEvent) => {\n if (!onCellClick) return\n\n const payload: HeatmapCellEventPayload = {\n label: cellData.label,\n timestamp: Date.now(),\n value: cellData.value,\n x: cellData.x,\n y: cellData.y,\n }\n onCellClick(event, payload)\n },\n [onCellClick]\n )\n\n // Determine which cells to render based on variant\n const shouldRenderCell = React.useCallback(\n (xIndex: number, yIndex: number): boolean => {\n if (variant === \"triangular\") {\n // Only render lower triangle (including diagonal)\n return yIndex >= xIndex\n }\n return true\n },\n [variant]\n )\n\n // Get cell data for coordinates\n const getCellData = React.useCallback(\n (xLabel: string, yLabel: string): HeatmapData | null => {\n const key = `${xLabel}-${yLabel}`\n const found = dataMap.get(key)\n if (found) return found\n\n // Also try with the actual data keys\n const matchingData = data.find(\n (d) =>\n String(d[xKey as keyof HeatmapData]) === xLabel &&\n String(d[yKey as keyof HeatmapData]) === yLabel\n )\n return matchingData ?? null\n },\n [data, dataMap, xKey, yKey]\n )\n\n const renderLegend = showLegend && (\n <HeatmapLegend\n colorScale={colorScale}\n max={maxValue}\n maxColor={maxColor}\n midColor={midColor}\n min={minValue}\n minColor={minColor}\n position={legendPosition}\n />\n )\n\n return (\n <div\n aria-label={ariaLabel ?? \"Heatmap visualization\"}\n className={cn(heatmapVariants({ variant }), className)}\n data-slot=\"heatmap\"\n role=\"region\"\n {...props}\n >\n {/* Screen reader accessible table */}\n <table className=\"sr-only\">\n <caption>{ariaLabel ?? \"Heatmap data\"}</caption>\n <thead>\n <tr>\n <th scope=\"col\">Row / Column</th>\n {derivedXLabels.map((label) => (\n <th key={label} scope=\"col\">\n {label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {derivedYLabels.map((yLabel, yIndex) => (\n <tr key={yLabel}>\n <th scope=\"row\">{yLabel}</th>\n {derivedXLabels.map((xLabel, xIndex) => {\n if (!shouldRenderCell(xIndex, yIndex)) {\n return <td key={xLabel}>-</td>\n }\n const cellData = getCellData(xLabel, yLabel)\n return (\n <td key={xLabel}>{cellData?.value ?? \"-\"}</td>\n )\n })}\n </tr>\n ))}\n </tbody>\n </table>\n\n {/* Legend at top/left */}\n {showLegend && (legendPosition === \"top\" || legendPosition === \"left\") && (\n <div\n className={cn(\n legendPosition === \"left\" && \"self-center\"\n )}\n >\n {renderLegend}\n </div>\n )}\n\n {/* Visual heatmap */}\n <div\n className={cn(\n \"flex\",\n legendPosition === \"left\" || legendPosition === \"right\"\n ? \"flex-row gap-4\"\n : \"flex-col\"\n )}\n >\n {/* Y-axis labels */}\n <div className=\"flex gap-0.5\" data-slot=\"heatmap-container\">\n <div className=\"flex flex-col\" style={{ gap: cellGap }}>\n {derivedYLabels.map((yLabel) => (\n <div\n key={yLabel}\n className=\"flex items-center justify-end pr-2 text-xs text-muted-foreground\"\n style={{ height: cellSize }}\n >\n {yLabel}\n </div>\n ))}\n </div>\n\n {/* Grid */}\n <div\n aria-hidden=\"true\"\n className=\"flex flex-col\"\n data-slot=\"heatmap-grid\"\n role=\"grid\"\n style={{ gap: cellGap }}\n >\n {derivedYLabels.map((yLabel, yIndex) => (\n <div\n key={yLabel}\n className=\"flex\"\n data-slot=\"heatmap-row\"\n role=\"row\"\n style={{ gap: cellGap }}\n onMouseEnter={() => onRowHover?.(yLabel)}\n onMouseLeave={() => onRowHover?.(null)}\n >\n {derivedXLabels.map((xLabel, xIndex) => {\n if (!shouldRenderCell(xIndex, yIndex)) {\n // Render empty placeholder for triangular layout\n return (\n <div\n key={xLabel}\n style={{ height: cellSize, width: cellSize }}\n />\n )\n }\n\n const cellData = getCellData(xLabel, yLabel)\n\n if (!cellData) {\n // Empty cell\n return (\n <div\n key={xLabel}\n className=\"rounded-sm bg-muted\"\n data-empty=\"true\"\n data-slot=\"heatmap-cell\"\n role=\"gridcell\"\n style={{ height: cellSize, width: cellSize }}\n />\n )\n }\n\n const color = getColorForValue(\n cellData.value,\n minValue,\n maxValue,\n colorScale,\n minColor,\n maxColor,\n midColor\n )\n\n const isSelected =\n selectedCell?.x === cellData.x &&\n selectedCell.y === cellData.y\n\n const isHighlighted = highlightedRow === yLabel\n\n return (\n <HeatmapCell\n key={xLabel}\n data={{\n label: cellData.label,\n value: cellData.value,\n x: cellData.x,\n y: cellData.y,\n }}\n color={color}\n isHighlighted={isHighlighted}\n isSelected={isSelected}\n renderTooltip={renderTooltip}\n showTooltip={showTooltip}\n size={cellSize}\n onClick={handleCellClick(cellData)}\n />\n )\n })}\n </div>\n ))}\n\n {/* X-axis labels */}\n {variant !== \"calendar\" && (\n <div\n className=\"flex pt-1\"\n data-slot=\"heatmap-x-labels\"\n style={{ gap: cellGap }}\n >\n {derivedXLabels.map((xLabel) => (\n <div\n key={xLabel}\n className=\"flex items-start justify-center text-xs text-muted-foreground\"\n style={{ width: cellSize }}\n >\n <span\n className={cn(\n derivedXLabels.length > 10 && \"rotate-45 origin-top-left text-xs\"\n )}\n >\n {xLabel}\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Legend at bottom/right */}\n {showLegend && (legendPosition === \"bottom\" || legendPosition === \"right\") && (\n <div\n className={cn(\n \"flex justify-end\",\n legendPosition === \"right\" && \"self-center\"\n )}\n >\n {renderLegend}\n </div>\n )}\n </div>\n )\n}\n\nexport { Heatmap, HeatmapCell, HeatmapLegend, heatmapVariants }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/Heatmap/Heatmap.tsx"],"names":["ratio"],"mappings":"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","file":"chunk-MXBDOYQL.js","sourcesContent":["\"use client\"\n\nimport type {\n HeatmapCellEventPayload,\n HeatmapCellProps,\n HeatmapData,\n HeatmapProps,\n} from \"./Heatmap.types\"\n\nimport { cva } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipTrigger } from \"../../feedback/Tooltip\"\n\n// ============================================================================\n// Constants for CSS Variables\n// ============================================================================\n\nconst CSS_VAR_MUTED = \"var(--muted)\"\nconst CSS_VAR_PRIMARY = \"var(--primary)\"\n\n// ============================================================================\n// Variants\n// ============================================================================\n\nconst heatmapVariants = cva(\"inline-flex flex-col gap-2\", {\n variants: {\n variant: {\n calendar: \"\",\n grid: \"\",\n triangular: \"\",\n },\n },\n defaultVariants: {\n variant: \"grid\",\n },\n})\n\n// ============================================================================\n// Utility Functions\n// ============================================================================\n\n/**\n * Interpolate between two colors based on a ratio (0-1)\n */\nfunction interpolateColor(\n color1: string,\n color2: string,\n ratio: number\n): string {\n // Handle CSS variable format\n if (color1.startsWith(\"var(\") || color2.startsWith(\"var(\")) {\n // Use color-mix for CSS variables\n return `color-mix(in srgb, ${color2} ${String(Math.round(ratio * 100))}%, ${color1})`\n }\n\n // Handle HSL format\n if (color1.startsWith(\"hsl\") || color2.startsWith(\"hsl\")) {\n // Use opacity-based interpolation for HSL\n const opacity = Math.max(0.1, Math.min(1, ratio))\n return color2.replace(\")\", ` / ${String(opacity)})`)\n }\n\n // Handle hex colors\n const hexToRgb = (hex: string): [number, number, number] | null => {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex)\n if (!result?.[1] || !result[2] || !result[3]) return null\n return [\n Number.parseInt(result[1], 16),\n Number.parseInt(result[2], 16),\n Number.parseInt(result[3], 16),\n ]\n }\n\n const rgb1 = hexToRgb(color1)\n const rgb2 = hexToRgb(color2)\n\n if (!rgb1 || !rgb2) {\n // Fallback to color-mix for any other format\n return `color-mix(in srgb, ${color2} ${String(Math.round(ratio * 100))}%, ${color1})`\n }\n\n const r = Math.round(rgb1[0] + (rgb2[0] - rgb1[0]) * ratio)\n const g = Math.round(rgb1[1] + (rgb2[1] - rgb1[1]) * ratio)\n const b = Math.round(rgb1[2] + (rgb2[2] - rgb1[2]) * ratio)\n\n return `rgb(${String(r)}, ${String(g)}, ${String(b)})`\n}\n\n/**\n * Get color for a value based on scale type\n */\nfunction getColorForValue(\n value: number,\n min: number,\n max: number,\n colorScale: \"diverging\" | \"sequential\",\n minColor: string,\n maxColor: string,\n midColor?: string\n): string {\n if (max === min) return maxColor\n\n if (colorScale === \"diverging\") {\n const mid = (max + min) / 2\n const midColorActual = midColor ?? CSS_VAR_MUTED\n\n if (value < mid) {\n const ratio = (value - min) / (mid - min)\n return interpolateColor(minColor, midColorActual, ratio)\n } else {\n const ratio = (value - mid) / (max - mid)\n return interpolateColor(midColorActual, maxColor, ratio)\n }\n }\n\n // Sequential\n const ratio = (value - min) / (max - min)\n return interpolateColor(minColor, maxColor, ratio)\n}\n\n// ============================================================================\n// HeatmapCell Component\n// ============================================================================\n\nfunction HeatmapCell({\n color,\n data,\n isHighlighted,\n isSelected,\n onClick,\n renderTooltip,\n showTooltip,\n size,\n}: HeatmapCellProps) {\n const cellContent = (\n <div\n className={cn(\n \"rounded-sm cursor-pointer transition-all\",\n \"hover:ring-2 hover:ring-ring hover:ring-offset-1\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2\",\n isSelected && \"ring-2 ring-primary ring-offset-2\",\n isHighlighted && \"ring-1 ring-muted-foreground/50\"\n )}\n style={{\n backgroundColor: color,\n height: size,\n width: size,\n }}\n aria-label={`${data.label ?? `${String(data.x)}, ${String(data.y)}`}: ${String(data.value)}`}\n data-highlighted={isHighlighted ? true : undefined}\n data-selected={isSelected ? true : undefined}\n data-slot=\"heatmap-cell\"\n data-value={data.value}\n role=\"gridcell\"\n tabIndex={0}\n onClick={onClick}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(e as unknown as React.MouseEvent)\n }\n }}\n />\n )\n\n if (!showTooltip) {\n return cellContent\n }\n\n return (\n <Tooltip>\n <TooltipTrigger asChild>{cellContent}</TooltipTrigger>\n <TooltipContent>\n {renderTooltip ? (\n renderTooltip(data)\n ) : (\n <div className=\"space-y-1\">\n {data.label && <p className=\"font-medium\">{data.label}</p>}\n <p className=\"text-sm\">\n <span className=\"text-muted-foreground\">Value: </span>\n <span className=\"font-mono\">{data.value}</span>\n </p>\n <p className=\"text-xs text-muted-foreground\">\n {String(data.x)}, {String(data.y)}\n </p>\n </div>\n )}\n </TooltipContent>\n </Tooltip>\n )\n}\n\n// ============================================================================\n// HeatmapLegend Component\n// ============================================================================\n\ninterface HeatmapLegendProps {\n colorScale: \"diverging\" | \"sequential\"\n max: number\n maxColor: string\n midColor?: string\n min: number\n minColor: string\n position: \"bottom\" | \"left\" | \"right\" | \"top\"\n}\n\nfunction HeatmapLegend({\n colorScale,\n max,\n maxColor,\n midColor,\n min,\n minColor,\n position,\n}: HeatmapLegendProps) {\n const isHorizontal = position === \"top\" || position === \"bottom\"\n const gradientStyle =\n colorScale === \"diverging\"\n ? {\n background: `linear-gradient(${isHorizontal ? \"to right\" : \"to top\"}, ${minColor}, ${midColor ?? CSS_VAR_MUTED}, ${maxColor})`,\n }\n : {\n background: `linear-gradient(${isHorizontal ? \"to right\" : \"to top\"}, ${minColor}, ${maxColor})`,\n }\n\n return (\n <div\n className={cn(\n \"flex items-center gap-2 text-xs text-muted-foreground\",\n isHorizontal ? \"flex-row\" : \"flex-col\"\n )}\n data-slot=\"heatmap-legend\"\n >\n <span className=\"font-mono\">{min}</span>\n <div\n className={cn(\n \"rounded\",\n isHorizontal ? \"w-24 h-3\" : \"w-3 h-24\"\n )}\n style={gradientStyle}\n />\n <span className=\"font-mono\">{max}</span>\n </div>\n )\n}\n\n// ============================================================================\n// Main Heatmap Component\n// ============================================================================\n\nfunction Heatmap({\n ariaLabel,\n cellGap = 2,\n cellSize = 20,\n className,\n colorScale = \"sequential\",\n data,\n highlightedRow,\n legendPosition = \"bottom\",\n maxColor = CSS_VAR_PRIMARY,\n midColor,\n minColor = CSS_VAR_MUTED,\n onCellClick,\n onRowHover,\n renderTooltip,\n selectedCell,\n showLegend = true,\n showTooltip = true,\n valueKey,\n variant = \"grid\",\n xKey,\n xLabels,\n yKey,\n yLabels,\n ...props\n}: HeatmapProps) {\n // Derive labels from data if not provided\n const derivedXLabels = React.useMemo(() => {\n if (xLabels) return xLabels\n const uniqueX = [...new Set(data.map((d) => String(d[xKey as keyof HeatmapData])))]\n return uniqueX\n }, [data, xKey, xLabels])\n\n const derivedYLabels = React.useMemo(() => {\n if (yLabels) return yLabels\n const uniqueY = [...new Set(data.map((d) => String(d[yKey as keyof HeatmapData])))]\n return uniqueY\n }, [data, yKey, yLabels])\n\n // Calculate min/max values\n const { maxValue, minValue } = React.useMemo(() => {\n const values = data.map((d) => d[valueKey as keyof HeatmapData] as number)\n return {\n maxValue: Math.max(...values),\n minValue: Math.min(...values),\n }\n }, [data, valueKey])\n\n // Build data lookup map\n const dataMap = React.useMemo(() => {\n const map = new Map<string, HeatmapData>()\n data.forEach((d) => {\n const key = `${String(d[xKey as keyof HeatmapData])}-${String(d[yKey as keyof HeatmapData])}`\n map.set(key, d)\n })\n return map\n }, [data, xKey, yKey])\n\n // Handle cell click\n const handleCellClick = React.useCallback(\n (cellData: HeatmapData) => (event: React.MouseEvent) => {\n if (!onCellClick) return\n\n const payload: HeatmapCellEventPayload = {\n label: cellData.label,\n timestamp: Date.now(),\n value: cellData.value,\n x: cellData.x,\n y: cellData.y,\n }\n onCellClick(event, payload)\n },\n [onCellClick]\n )\n\n // Determine which cells to render based on variant\n const shouldRenderCell = React.useCallback(\n (xIndex: number, yIndex: number): boolean => {\n if (variant === \"triangular\") {\n // Only render lower triangle (including diagonal)\n return yIndex >= xIndex\n }\n return true\n },\n [variant]\n )\n\n // Get cell data for coordinates\n const getCellData = React.useCallback(\n (xLabel: string, yLabel: string): HeatmapData | null => {\n const key = `${xLabel}-${yLabel}`\n const found = dataMap.get(key)\n if (found) return found\n\n // Also try with the actual data keys\n const matchingData = data.find(\n (d) =>\n String(d[xKey as keyof HeatmapData]) === xLabel &&\n String(d[yKey as keyof HeatmapData]) === yLabel\n )\n return matchingData ?? null\n },\n [data, dataMap, xKey, yKey]\n )\n\n const renderLegend = showLegend && (\n <HeatmapLegend\n colorScale={colorScale}\n max={maxValue}\n maxColor={maxColor}\n midColor={midColor}\n min={minValue}\n minColor={minColor}\n position={legendPosition}\n />\n )\n\n return (\n <div\n aria-label={ariaLabel ?? \"Heatmap visualization\"}\n className={cn(heatmapVariants({ variant }), className)}\n data-slot=\"heatmap\"\n role=\"region\"\n {...props}\n >\n {/* Screen reader accessible table */}\n <table className=\"sr-only\">\n <caption>{ariaLabel ?? \"Heatmap data\"}</caption>\n <thead>\n <tr>\n <th scope=\"col\">Row / Column</th>\n {derivedXLabels.map((label) => (\n <th key={label} scope=\"col\">\n {label}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {derivedYLabels.map((yLabel, yIndex) => (\n <tr key={yLabel}>\n <th scope=\"row\">{yLabel}</th>\n {derivedXLabels.map((xLabel, xIndex) => {\n if (!shouldRenderCell(xIndex, yIndex)) {\n return <td key={xLabel}>-</td>\n }\n const cellData = getCellData(xLabel, yLabel)\n return (\n <td key={xLabel}>{cellData?.value ?? \"-\"}</td>\n )\n })}\n </tr>\n ))}\n </tbody>\n </table>\n\n {/* Legend at top/left */}\n {showLegend && (legendPosition === \"top\" || legendPosition === \"left\") && (\n <div\n className={cn(\n legendPosition === \"left\" && \"self-center\"\n )}\n >\n {renderLegend}\n </div>\n )}\n\n {/* Visual heatmap */}\n <div\n className={cn(\n \"flex\",\n legendPosition === \"left\" || legendPosition === \"right\"\n ? \"flex-row gap-4\"\n : \"flex-col\"\n )}\n >\n {/* Y-axis labels */}\n <div className=\"flex gap-0.5\" data-slot=\"heatmap-container\">\n <div className=\"flex flex-col\" style={{ gap: cellGap }}>\n {derivedYLabels.map((yLabel) => (\n <div\n key={yLabel}\n className=\"flex items-center justify-end pr-2 text-xs text-muted-foreground\"\n style={{ height: cellSize }}\n >\n {yLabel}\n </div>\n ))}\n </div>\n\n {/* Grid */}\n <div\n aria-hidden=\"true\"\n className=\"flex flex-col\"\n data-slot=\"heatmap-grid\"\n role=\"grid\"\n style={{ gap: cellGap }}\n >\n {derivedYLabels.map((yLabel, yIndex) => (\n <div\n key={yLabel}\n className=\"flex\"\n data-slot=\"heatmap-row\"\n role=\"row\"\n style={{ gap: cellGap }}\n onMouseEnter={() => onRowHover?.(yLabel)}\n onMouseLeave={() => onRowHover?.(null)}\n >\n {derivedXLabels.map((xLabel, xIndex) => {\n if (!shouldRenderCell(xIndex, yIndex)) {\n // Render empty placeholder for triangular layout\n return (\n <div\n key={xLabel}\n style={{ height: cellSize, width: cellSize }}\n />\n )\n }\n\n const cellData = getCellData(xLabel, yLabel)\n\n if (!cellData) {\n // Empty cell\n return (\n <div\n key={xLabel}\n className=\"rounded-sm bg-muted\"\n data-empty=\"true\"\n data-slot=\"heatmap-cell\"\n role=\"gridcell\"\n style={{ height: cellSize, width: cellSize }}\n />\n )\n }\n\n const color = getColorForValue(\n cellData.value,\n minValue,\n maxValue,\n colorScale,\n minColor,\n maxColor,\n midColor\n )\n\n const isSelected =\n selectedCell?.x === cellData.x &&\n selectedCell.y === cellData.y\n\n const isHighlighted = highlightedRow === yLabel\n\n return (\n <HeatmapCell\n key={xLabel}\n data={{\n label: cellData.label,\n value: cellData.value,\n x: cellData.x,\n y: cellData.y,\n }}\n color={color}\n isHighlighted={isHighlighted}\n isSelected={isSelected}\n renderTooltip={renderTooltip}\n showTooltip={showTooltip}\n size={cellSize}\n onClick={handleCellClick(cellData)}\n />\n )\n })}\n </div>\n ))}\n\n {/* X-axis labels */}\n {variant !== \"calendar\" && (\n <div\n className=\"flex pt-1\"\n data-slot=\"heatmap-x-labels\"\n style={{ gap: cellGap }}\n >\n {derivedXLabels.map((xLabel) => (\n <div\n key={xLabel}\n className=\"flex items-start justify-center text-xs text-muted-foreground\"\n style={{ width: cellSize }}\n >\n <span\n className={cn(\n derivedXLabels.length > 10 && \"rotate-45 origin-top-left text-xs\"\n )}\n >\n {xLabel}\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Legend at bottom/right */}\n {showLegend && (legendPosition === \"bottom\" || legendPosition === \"right\") && (\n <div\n className={cn(\n \"flex justify-end\",\n legendPosition === \"right\" && \"self-center\"\n )}\n >\n {renderLegend}\n </div>\n )}\n </div>\n )\n}\n\nexport { Heatmap, HeatmapCell, HeatmapLegend, heatmapVariants }\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
2
2
|
import { cva } from 'class-variance-authority';
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -42,5 +42,5 @@ function LogoConta({
|
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
export { LogoConta, logoContaVariants };
|
|
45
|
-
//# sourceMappingURL=chunk-
|
|
46
|
-
//# sourceMappingURL=chunk-
|
|
45
|
+
//# sourceMappingURL=chunk-N2DAVD4Y.js.map
|
|
46
|
+
//# sourceMappingURL=chunk-N2DAVD4Y.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/navigation/LogoConta/LogoConta.variants.ts","../src/components/navigation/LogoConta/LogoConta.tsx"],"names":[],"mappings":";;;;AAqBO,IAAM,iBAAA,GAAoB,GAAA;AAAA,EAC/B,kHAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM,kEAAA;AAAA,QACN,IAAA,EAAM,qFAAA;AAAA,QACN,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;ACZA,SAAS,SAAA,CAAU;AAAA,EACjB,SAAA;AAAA,EACA,IAAA,GAAO,MAAA;AAAA,EACP,GAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AAIjB,EAAA,MAAM,UAAA,GAAa,CAAC,GAAA,IAAO,GAAA,CAAI,MAAK,KAAM,EAAA;AAE1C,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAa,aAAa,IAAA,GAAO,MAAA;AAAA,MACjC,YAAA,EAAY,aAAa,MAAA,GAAY,GAAA;AAAA,MACrC,WAAW,EAAA,CAAG,iBAAA,CAAkB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MACpD,WAAA,EAAU,YAAA;AAAA,MACV,WAAA,EAAW,IAAA;AAAA,MACX,IAAA,EAAM,aAAa,MAAA,GAAY,KAAA;AAAA,MAC9B,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,GAAA,uBAAO,KAAA,EAAA,EAAI,GAAA,EAAI,IAAG,SAAA,EAAU,0BAAA,EAA2B,KAAU,CAAA,GAAK;AAAA;AAAA,GACzE;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/LogoConta/LogoConta.variants.ts","../src/components/navigation/LogoConta/LogoConta.tsx"],"names":[],"mappings":";;;;AAqBO,IAAM,iBAAA,GAAoB,GAAA;AAAA,EAC/B,kHAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,IAAA,EAAM,kEAAA;AAAA,QACN,IAAA,EAAM,qFAAA;AAAA,QACN,IAAA,EAAM;AAAA;AACR,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;ACZA,SAAS,SAAA,CAAU;AAAA,EACjB,SAAA;AAAA,EACA,IAAA,GAAO,MAAA;AAAA,EACP,GAAA;AAAA,EACA,GAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AAIjB,EAAA,MAAM,UAAA,GAAa,CAAC,GAAA,IAAO,GAAA,CAAI,MAAK,KAAM,EAAA;AAE1C,EAAA,uBACE,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,aAAA,EAAa,aAAa,IAAA,GAAO,MAAA;AAAA,MACjC,YAAA,EAAY,aAAa,MAAA,GAAY,GAAA;AAAA,MACrC,WAAW,EAAA,CAAG,iBAAA,CAAkB,EAAE,IAAA,EAAM,GAAG,SAAS,CAAA;AAAA,MACpD,WAAA,EAAU,YAAA;AAAA,MACV,WAAA,EAAW,IAAA;AAAA,MACX,IAAA,EAAM,aAAa,MAAA,GAAY,KAAA;AAAA,MAC9B,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,GAAA,uBAAO,KAAA,EAAA,EAAI,GAAA,EAAI,IAAG,SAAA,EAAU,0BAAA,EAA2B,KAAU,CAAA,GAAK;AAAA;AAAA,GACzE;AAEJ","file":"chunk-N2DAVD4Y.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\n/**\n * LogoConta root styles.\n *\n * Figma: `Core Components — Seven > Logo-Conta` (node 1138:2959). A\n * rounded-square (radius-sm) colour-filled badge that frames a brand\n * logo/symbol — used in the app shell (sidebar header / account switcher,\n * Sidebar set 1091:9106).\n *\n * The badge size comes from `--logo-conta-size` (24px in Figma). Each\n * `tone` reuses an existing global token pair, mirroring the three example\n * accounts in Figma — no new colour tokens are introduced:\n * - `mint` → Plusdin → `--primary` (Figma default/green/500)\n * - `blue` → Brius → `--status-info-background` (Figma status/info)\n * - `lime` → Got All Cards → `--secondary`\n *\n * Tone backgrounds are tokenised presets for the documented example accounts;\n * for an account whose brand colour is none of the three, override the\n * background via `className`/`style`.\n */\nexport const logoContaVariants = cva(\n \"inline-grid size-[var(--logo-conta-size)] shrink-0 place-items-center overflow-hidden rounded-[var(--radius-sm)]\",\n {\n variants: {\n tone: {\n mint: \"bg-[color:var(--primary)] text-[color:var(--primary-foreground)]\",\n blue: \"bg-[color:var(--status-info-background)] text-[color:var(--status-info-foreground)]\",\n lime: \"bg-[color:var(--secondary)] text-[color:var(--secondary-foreground)]\",\n },\n },\n defaultVariants: {\n tone: \"mint\",\n },\n },\n)\n","import type { LogoContaProps } from \"./LogoConta.types\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { logoContaVariants } from \"./LogoConta.variants\"\n\n/**\n * LogoConta — rounded-square, colour-filled badge that frames an account's\n * brand logo/symbol. Part of the app shell (sidebar header / account switcher).\n *\n * Pass the mark via `children` (recommended — compose any SVG/letter over the\n * `tone` background) or via `src` (image URL). Provide `alt` with the account\n * name to expose `role=\"img\"`; omit it for a decorative badge (`aria-hidden`).\n *\n * @example\n * // Symbol composed over the tone background\n * <LogoConta alt=\"Plusdin\" tone=\"mint\">\n * <span className=\"text-xs font-bold\">p</span>\n * </LogoConta>\n *\n * @example\n * // Image logo\n * <LogoConta alt=\"Brius\" src=\"/logos/brius.svg\" tone=\"blue\" />\n */\nfunction LogoConta({\n className,\n tone = \"mint\",\n src,\n alt,\n children,\n ...props\n}: LogoContaProps) {\n // Labelled XOR decorative: a non-empty `alt` makes the badge an informative\n // image; otherwise it is hidden from assistive tech. The inner <img> is kept\n // decorative so the name is announced exactly once (via the wrapper).\n const decorative = !alt || alt.trim() === \"\"\n\n return (\n <span\n aria-hidden={decorative ? true : undefined}\n aria-label={decorative ? undefined : alt}\n className={cn(logoContaVariants({ tone }), className)}\n data-slot=\"logo-conta\"\n data-tone={tone}\n role={decorative ? undefined : \"img\"}\n {...props}\n >\n {src ? <img alt=\"\" className=\"size-full object-contain\" src={src} /> : children}\n </span>\n )\n}\n\nexport { LogoConta, logoContaVariants }\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SkeletonLoader } from './chunk-
|
|
2
|
-
import { Badge } from './chunk-
|
|
3
|
-
import { cn } from './chunk-
|
|
1
|
+
import { SkeletonLoader } from './chunk-NGX3ITG4.js';
|
|
2
|
+
import { Badge } from './chunk-HNQX6ZG7.js';
|
|
3
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
4
4
|
import * as React from 'react';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
6
6
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -194,5 +194,5 @@ function ChartCard({
|
|
|
194
194
|
ChartCard.displayName = "ChartCard";
|
|
195
195
|
|
|
196
196
|
export { ChartCard, chartCardChartVariants, chartCardHeaderVariants, chartCardPreviousValueVariants, chartCardTitleVariants, chartCardValueContainerVariants, chartCardValueVariants, chartCardVariants };
|
|
197
|
-
//# sourceMappingURL=chunk-
|
|
198
|
-
//# sourceMappingURL=chunk-
|
|
197
|
+
//# sourceMappingURL=chunk-N5YGAESZ.js.map
|
|
198
|
+
//# sourceMappingURL=chunk-N5YGAESZ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/ChartCard/ChartCard.variants.ts","../src/components/data-display/ChartCard/ChartCard.tsx"],"names":[],"mappings":";;;;;;;AAWO,IAAM,iBAAA,GAAoB,GAAA;AAAA,EAC/B,2NAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,EAAA;AAAA,QACT,QAAA,EAAU,gDAAA;AAAA,QACV,QAAA,EAAU;AAAA;AACZ,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAMO,IAAM,uBAAA,GAA0B,GAAA;AAAA,EACrC;AACF;AAKO,IAAM,sBAAA,GAAyB,GAAA;AAAA,EACpC;AACF;AAKO,IAAM,+BAAA,GAAkC,GAAA;AAAA,EAC7C;AACF;AAKO,IAAM,sBAAA,GAAyB,GAAA;AAAA,EACpC;AACF;AAKO,IAAM,8BAAA,GAAiC,GAAA;AAAA,EAC5C;AACF;AAOO,IAAM,sBAAA,GAAyB,GAAA;AAAA,EACpC;AACF;AC/CA,IAAM,gBAAA,GAA4C,CAAC,KAAA,KAAU,MAAA,CAAO,KAAK,CAAA;AAKzE,SAAS,cAAc,KAAA,EAAgE;AACrF,EAAA,IAAI,QAAQ,CAAA,EAAG;AACb,IAAA,OAAO,SAAA;AAAA,EACT,CAAA,MAAA,IAAW,QAAQ,CAAA,EAAG;AACpB,IAAA,IAAI,QAAQ,GAAA,EAAK;AACf,MAAA,OAAO,SAAA;AAAA,IACT;AACA,IAAA,OAAO,aAAA;AAAA,EACT;AACA,EAAA,OAAO,OAAA;AACT;AAKA,SAAS,iBAAiB,KAAA,EAAuB;AAC/C,EAAA,MAAM,IAAA,GAAO,KAAA,GAAQ,CAAA,GAAI,GAAA,GAAM,EAAA;AAC/B,EAAA,OAAO,GAAG,IAAI,CAAA,EAAA,CAAI,QAAQ,GAAA,EAAK,OAAA,CAAQ,CAAC,CAAC,CAAA,CAAA,CAAA;AAC3C;AAkCA,SAAS,SAAA,CAAU;AAAA,EACjB,KAAA;AAAA,EACA,KAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,gBAAA,GAAmB,eAAA;AAAA,EACnB,IAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,MAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,OAAA,GAAU,KAAA;AAAA,EACV,IAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA,GAAiB,gBAAA;AAAA,EACjB,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAmB;AACjB,EAAA,MAAM,OAAA,GAAU,CAAC,OAAA,IAAW,IAAA,CAAK,MAAA,KAAW,CAAA;AAG5C,EAAA,MAAM,UAAA,GAAmB,cAAQ,MAAM;AACrC,IAAA,OAAO,IAAA,CAAK,OAAO,CAAC,GAAA,EAAK,SAAS,GAAA,IAAO,IAAA,CAAK,KAAA,IAAS,CAAA,CAAA,EAAI,CAAC,CAAA;AAAA,EAC9D,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAET,EAAA,MAAM,kBAAA,GAA2B,cAAQ,MAAM;AAC7C,IAAA,OAAO,IAAA,CAAK,OAAO,CAAC,GAAA,EAAK,SAAS,GAAA,IAAO,IAAA,CAAK,aAAA,IAAiB,CAAA,CAAA,EAAI,CAAC,CAAA;AAAA,EACtE,CAAA,EAAG,CAAC,IAAI,CAAC,CAAA;AAGT,EAAA,MAAM,SAAA,GAAkB,cAAQ,MAAM;AACpC,IAAA,IAAI,gBAAA,KAAqB,eAAA,IAAmB,kBAAA,KAAuB,CAAA,EAAG;AACpE,MAAA,OAAO,CAAA;AAAA,IACT;AACA,IAAA,OAAA,CAAQ,aAAa,kBAAA,IAAsB,kBAAA;AAAA,EAC7C,CAAA,EAAG,CAAC,gBAAA,EAAkB,kBAAA,EAAoB,UAAU,CAAC,CAAA;AAGrD,EAAA,MAAM,iBAAiB,gBAAA,KAAqB,eAAA;AAG5C,EAAA,MAAM,SAAA,mBACJ,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2BAAA,EACZ,QAAA,EAAA;AAAA,IAAA,YAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,0BAAA,EAA4B,QAAA,EAAA,YAAA,EAAa,CAAA;AAAA,oBAE3D,GAAA,CAAC,QAAG,SAAA,EAAW,EAAA,CAAG,wBAAwB,CAAA,EAAG,WAAA,EAAU,kBAAA,EACpD,QAAA,EAAA,KAAA,EACH;AAAA,GAAA,EACF,CAAA;AAIF,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE,IAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAY,GAAG,KAAK,CAAA,OAAA,CAAA;AAAA,QACpB,WAAW,EAAA,CAAG,iBAAA,CAAkB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QACvD,YAAA,EAAW,MAAA;AAAA,QACX,WAAA,EAAU,YAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,yBAAyB,CAAA,EAAG,aAAU,mBAAA,EACtD,QAAA,EAAA;AAAA,YAAA,SAAA;AAAA,YACA,YAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,4BAA4B,QAAA,EAAA,YAAA,EAAa;AAAA,WAAA,EAE7D,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA;AAAA,gBACT,sBAAA,EAAuB;AAAA,gBACvB,WAAA;AAAA,gBACA;AAAA,eACF;AAAA,cACA,WAAA,EAAU,kBAAA;AAAA,cAET,QAAA,EAAA,YAAA,IAAgB;AAAA;AAAA;AACnB;AAAA;AAAA,KACF;AAAA,EAEJ;AAGA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,uBACE,IAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,WAAA,EAAU,MAAA;AAAA,QACV,WAAW,EAAA,CAAG,iBAAA,CAAkB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,QACvD,WAAA,EAAU,YAAA;AAAA,QACT,GAAG,KAAA;AAAA,QAEJ,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,yBAAyB,CAAA,EAAG,aAAU,mBAAA,EACvD,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,cAAA,EAAA,EAAe,WAAU,UAAA,EAAW,CAAA;AAAA,4BACrC,GAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAU,UAAA,EAAW;AAAA,WAAA,EACvC,CAAA;AAAA,0BACA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,CAAA;AAAA,cAC/C,WAAA,EAAU,kBAAA;AAAA,cAEV,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAU,UAAA,EAAW;AAAA;AAAA,WACvC;AAAA,0BACA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAuB,EAAG,WAAW,CAAA,EACtD,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAU,eAAA,EAAgB,CAAA,EAC5C;AAAA;AAAA;AAAA,KACF;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,cAAY,CAAA,EAAG,KAAK,CAAA,EAAA,EAAK,cAAA,CAAe,UAAU,CAAC,CAAA,CAAA;AAAA,MACnD,WAAW,EAAA,CAAG,iBAAA,CAAkB,EAAE,OAAA,EAAS,GAAG,SAAS,CAAA;AAAA,MACvD,WAAA,EAAU,YAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAGJ,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,SAAI,SAAA,EAAW,EAAA,CAAG,yBAAyB,CAAA,EAAG,aAAU,mBAAA,EACvD,QAAA,EAAA;AAAA,0BAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,2BAAA,EACZ,QAAA,EAAA;AAAA,YAAA,YAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,0BAAA,EAA4B,QAAA,EAAA,YAAA,EAAa,CAAA;AAAA,4BAE3D,GAAA,CAAC,QAAG,SAAA,EAAW,EAAA,CAAG,wBAAwB,CAAA,EAAG,WAAA,EAAU,kBAAA,EACpD,QAAA,EAAA,KAAA,EACH,CAAA;AAAA,YACC,cAAA,KACC,KAAA,oBACE,GAAA,CAAC,KAAA,EAAA,EAAM,KAAA,EAAO,aAAA,CAAc,SAAS,CAAA,EAAG,IAAA,EAAK,IAAA,EAC1C,QAAA,EAAA,gBAAA,CAAiB,SAAS,CAAA,EAC7B,CAAA;AAAA,WAAA,EAGN,CAAA;AAAA,UACC,YAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,WAAA,EAAU,4BAA4B,QAAA,EAAA,YAAA,EAAa;AAAA,SAAA,EAE7D,CAAA;AAAA,wBAGA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,CAAA;AAAA,YAC/C,WAAA,EAAU,kBAAA;AAAA,YAEV,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,GAAA,EAAA,EAAE,WAAW,EAAA,CAAG,sBAAA,EAAwB,CAAA,EACtC,QAAA,EAAA,cAAA,CAAe,UAAU,CAAA,EAC5B,CAAA;AAAA,cACC,kCACC,IAAA,CAAC,GAAA,EAAA,EAAE,WAAW,EAAA,CAAG,8BAAA,EAAgC,CAAA,EAAG,QAAA,EAAA;AAAA,gBAAA,OAAA;AAAA,gBAC5C,eAAe,kBAAkB;AAAA,eAAA,EACzC;AAAA;AAAA;AAAA,SAEJ;AAAA,QAGC,wBACC,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,4BAAA,EAA6B,WAAA,EAAU,mBACnD,QAAA,EAAA,IAAA,EACH,CAAA;AAAA,QAID,CAAC,eAAe,KAAA,oBACf,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,EAAA,CAAG,sBAAA,EAAuB,EAAG,WAAW,CAAA;AAAA,YACnD,WAAA,EAAU,kBAAA;AAAA,YAET,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,QAID,0BACC,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,4BAAA,EAA6B,WAAA,EAAU,qBACnD,QAAA,EAAA,MAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ;AAEA,SAAA,CAAU,WAAA,GAAc,WAAA","file":"chunk-EC5YEK3C.js","sourcesContent":["// ChartCard/ChartCard.variants.ts\nimport { cva } from \"class-variance-authority\"\n\n/**\n * ChartCard container variants.\n *\n * Consumes the `--chart-card-*` component tokens (DES-1253). The Figma container\n * is flat — background + radius + asymmetric padding, no border or shadow — so the\n * base styles render that container and `outlined` / `elevated` are code-only\n * extensions (documented in the README) layered on top.\n */\nexport const chartCardVariants = cva(\n \"rounded-[var(--chart-card-radius)] bg-[color:var(--chart-card-bg)] px-[var(--chart-card-padding-x)] pt-[var(--chart-card-padding-top)] pb-[var(--chart-card-padding-bottom)] text-[color:var(--chart-card-fg)] transition\",\n {\n variants: {\n variant: {\n default: \"\",\n outlined: \"border border-[color:var(--chart-card-border)]\",\n elevated: \"shadow-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * ChartCard header (Title Row) — leading group (featured icon + title + badge)\n * and an optional trailing overflow action.\n */\nexport const chartCardHeaderVariants = cva(\n \"flex items-center justify-between gap-x-2\"\n)\n\n/**\n * ChartCard title — Figma Heading/H5 (18px / 24px / SemiBold), tokenised.\n */\nexport const chartCardTitleVariants = cva(\n \"text-[length:var(--chart-card-title-size)] font-[var(--chart-card-title-weight)] leading-[var(--chart-card-title-line-height)] text-[color:var(--chart-card-title-color)]\"\n)\n\n/**\n * ChartCard value container.\n */\nexport const chartCardValueContainerVariants = cva(\n \"mt-2 flex items-baseline justify-between\"\n)\n\n/**\n * ChartCard KPI value text — tokenised size + color.\n */\nexport const chartCardValueVariants = cva(\n \"text-[length:var(--chart-card-value-size)] text-[color:var(--chart-card-value-color)]\"\n)\n\n/**\n * ChartCard previous-value caption.\n */\nexport const chartCardPreviousValueVariants = cva(\n \"text-sm text-[color:var(--chart-card-previous-color)]\"\n)\n\n/**\n * ChartCard chart-slot wrapper — 24px row gap + tokenised area height\n * (`--chart-card-chart-height`). The injected chart fills the area via\n * `[&>*]:h-full`; the `chartHeight` prop overrides the height.\n */\nexport const chartCardChartVariants = cva(\n \"mt-[var(--chart-card-gap)] h-[var(--chart-card-chart-height)] [&>*]:h-full\"\n)\n","// ChartCard/ChartCard.tsx\n\"use client\"\n\nimport type { ChartCardProps, ChartCardValueFormatter } from \"./ChartCard.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { SkeletonLoader } from \"../../primitives/SkeletonLoader\"\nimport {\n chartCardChartVariants,\n chartCardHeaderVariants,\n chartCardPreviousValueVariants,\n chartCardTitleVariants,\n chartCardValueContainerVariants,\n chartCardValueVariants,\n chartCardVariants,\n} from \"./ChartCard.variants\"\n\n/**\n * Default value formatter (returns value as string)\n */\nconst defaultFormatter: ChartCardValueFormatter = (value) => String(value)\n\n/**\n * Get badge color based on evolution percentage\n */\nfunction getBadgeColor(value: number): \"destructive\" | \"muted\" | \"success\" | \"warning\" {\n if (value > 0) {\n return \"success\"\n } else if (value < 0) {\n if (value < -50) {\n return \"warning\"\n }\n return \"destructive\"\n }\n return \"muted\"\n}\n\n/**\n * Format percentage for display\n */\nfunction formatPercentage(value: number): string {\n const sign = value > 0 ? \"+\" : \"\"\n return `${sign}${(value * 100).toFixed(1)}%`\n}\n\n/**\n * ChartCard - Dashboard KPI widget with a chart-agnostic slot.\n *\n * Renders a KPI value with an auto evolution badge and optional comparison\n * period. The chart itself is **injected by the consumer** via the `chart`\n * slot — ChartCard ships no default chart (DES-1253). The Title Row exposes\n * `featuredIcon` + `headerAction` (overflow) slots, with optional `tabs` and\n * `footer` composition slots below.\n *\n * @example\n * ```tsx\n * const data = [\n * { formattedDate: \"01/01\", value: 1000, previousValue: 900 },\n * { formattedDate: \"02/01\", value: 1200, previousValue: 1100 },\n * ]\n *\n * <ChartCard\n * title=\"Revenue\"\n * data={data}\n * comparisonPeriod=\"previous-year\"\n * valueFormatter={(v) => `$${v.toLocaleString()}`}\n * chart={\n * <LineChart\n * className=\"h-full\"\n * data={data}\n * config={{ value: { label: \"Current\" } }}\n * series={[\"value\"]}\n * />\n * }\n * />\n * ```\n */\nfunction ChartCard({\n badge,\n chart,\n chartHeight,\n className,\n comparisonPeriod = \"no-comparison\",\n data,\n emptyMessage,\n featuredIcon,\n footer,\n headerAction,\n isThumbnail = false,\n loading = false,\n tabs,\n title,\n valueFormatter = defaultFormatter,\n variant,\n ...props\n}: ChartCardProps) {\n const isEmpty = !loading && data.length === 0\n\n // Calculate totals\n const totalValue = React.useMemo(() => {\n return data.reduce((acc, item) => acc + (item.value ?? 0), 0)\n }, [data])\n\n const totalPreviousValue = React.useMemo(() => {\n return data.reduce((acc, item) => acc + (item.previousValue ?? 0), 0)\n }, [data])\n\n // Calculate evolution percentage\n const evolution = React.useMemo(() => {\n if (comparisonPeriod === \"no-comparison\" || totalPreviousValue === 0) {\n return 0\n }\n return (totalValue - totalPreviousValue) / totalPreviousValue\n }, [comparisonPeriod, totalPreviousValue, totalValue])\n\n // Show comparison UI elements\n const showComparison = comparisonPeriod !== \"no-comparison\"\n\n // Title Row leading slots (featured icon + title), shared across states.\n const titleLead = (\n <div className=\"flex items-center gap-x-2\">\n {featuredIcon && (\n <span data-slot=\"chart-card-featured-icon\">{featuredIcon}</span>\n )}\n <h3 className={cn(chartCardTitleVariants())} data-slot=\"chart-card-title\">\n {title}\n </h3>\n </div>\n )\n\n // Empty state (DES-1254 item 3 — Figma Empty State)\n if (isEmpty) {\n return (\n <article\n aria-label={`${title}: empty`}\n className={cn(chartCardVariants({ variant }), className)}\n data-empty=\"true\"\n data-slot=\"chart-card\"\n {...props}\n >\n <div className={cn(chartCardHeaderVariants())} data-slot=\"chart-card-header\">\n {titleLead}\n {headerAction && (\n <span data-slot=\"chart-card-header-action\">{headerAction}</span>\n )}\n </div>\n <div\n className={cn(\n chartCardChartVariants(),\n chartHeight,\n \"flex items-center justify-center text-[length:var(--chart-card-empty-state-caption-size)] text-[color:var(--chart-card-empty-state-caption-color)]\"\n )}\n data-slot=\"chart-card-empty\"\n >\n {emptyMessage ?? \"No data available\"}\n </div>\n </article>\n )\n }\n\n // Loading state\n if (loading) {\n return (\n <article\n aria-busy=\"true\"\n className={cn(chartCardVariants({ variant }), className)}\n data-slot=\"chart-card\"\n {...props}\n >\n <div className={cn(chartCardHeaderVariants())} data-slot=\"chart-card-header\">\n <SkeletonLoader className=\"h-4 w-24\" />\n <SkeletonLoader className=\"h-5 w-12\" />\n </div>\n <div\n className={cn(chartCardValueContainerVariants())}\n data-slot=\"chart-card-value\"\n >\n <SkeletonLoader className=\"h-7 w-32\" />\n </div>\n <div className={cn(chartCardChartVariants(), chartHeight)}>\n <SkeletonLoader className=\"h-full w-full\" />\n </div>\n </article>\n )\n }\n\n return (\n <article\n aria-label={`${title}: ${valueFormatter(totalValue)}`}\n className={cn(chartCardVariants({ variant }), className)}\n data-slot=\"chart-card\"\n {...props}\n >\n {/* Title Row — featured icon + title + badge / overflow action */}\n <div className={cn(chartCardHeaderVariants())} data-slot=\"chart-card-header\">\n <div className=\"flex items-center gap-x-2\">\n {featuredIcon && (\n <span data-slot=\"chart-card-featured-icon\">{featuredIcon}</span>\n )}\n <h3 className={cn(chartCardTitleVariants())} data-slot=\"chart-card-title\">\n {title}\n </h3>\n {showComparison && (\n badge ?? (\n <Badge color={getBadgeColor(evolution)} size=\"sm\">\n {formatPercentage(evolution)}\n </Badge>\n )\n )}\n </div>\n {headerAction && (\n <span data-slot=\"chart-card-header-action\">{headerAction}</span>\n )}\n </div>\n\n {/* Value display */}\n <div\n className={cn(chartCardValueContainerVariants())}\n data-slot=\"chart-card-value\"\n >\n <p className={cn(chartCardValueVariants())}>\n {valueFormatter(totalValue)}\n </p>\n {showComparison && (\n <p className={cn(chartCardPreviousValueVariants())}>\n from {valueFormatter(totalPreviousValue)}\n </p>\n )}\n </div>\n\n {/* Tabs row slot (Figma showTabs) */}\n {tabs && (\n <div className=\"mt-[var(--chart-card-gap)]\" data-slot=\"chart-card-tabs\">\n {tabs}\n </div>\n )}\n\n {/* Chart slot — injected by the consumer (chart-agnostic) */}\n {!isThumbnail && chart && (\n <div\n className={cn(chartCardChartVariants(), chartHeight)}\n data-slot=\"chart-card-chart\"\n >\n {chart}\n </div>\n )}\n\n {/* Card Footer slot (Figma showCardFooter — trend + total) */}\n {footer && (\n <div className=\"mt-[var(--chart-card-gap)]\" data-slot=\"chart-card-footer\">\n {footer}\n </div>\n )}\n </article>\n )\n}\n\nChartCard.displayName = \"ChartCard\"\n\nexport { ChartCard }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/ChartCard/ChartCard.variants.ts","../src/components/data-display/ChartCard/ChartCard.tsx"],"names":[],"mappings":"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","file":"chunk-N5YGAESZ.js","sourcesContent":["// ChartCard/ChartCard.variants.ts\nimport { cva } from \"class-variance-authority\"\n\n/**\n * ChartCard container variants.\n *\n * Consumes the `--chart-card-*` component tokens (DES-1253). The Figma container\n * is flat — background + radius + asymmetric padding, no border or shadow — so the\n * base styles render that container and `outlined` / `elevated` are code-only\n * extensions (documented in the README) layered on top.\n */\nexport const chartCardVariants = cva(\n \"rounded-[var(--chart-card-radius)] bg-[color:var(--chart-card-bg)] px-[var(--chart-card-padding-x)] pt-[var(--chart-card-padding-top)] pb-[var(--chart-card-padding-bottom)] text-[color:var(--chart-card-fg)] transition\",\n {\n variants: {\n variant: {\n default: \"\",\n outlined: \"border border-[color:var(--chart-card-border)]\",\n elevated: \"shadow-sm\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\n/**\n * ChartCard header (Title Row) — leading group (featured icon + title + badge)\n * and an optional trailing overflow action.\n */\nexport const chartCardHeaderVariants = cva(\n \"flex items-center justify-between gap-x-2\"\n)\n\n/**\n * ChartCard title — Figma Heading/H5 (18px / 24px / SemiBold), tokenised.\n */\nexport const chartCardTitleVariants = cva(\n \"text-[length:var(--chart-card-title-size)] font-[var(--chart-card-title-weight)] leading-[var(--chart-card-title-line-height)] text-[color:var(--chart-card-title-color)]\"\n)\n\n/**\n * ChartCard value container.\n */\nexport const chartCardValueContainerVariants = cva(\n \"mt-2 flex items-baseline justify-between\"\n)\n\n/**\n * ChartCard KPI value text — tokenised size + color.\n */\nexport const chartCardValueVariants = cva(\n \"text-[length:var(--chart-card-value-size)] text-[color:var(--chart-card-value-color)]\"\n)\n\n/**\n * ChartCard previous-value caption.\n */\nexport const chartCardPreviousValueVariants = cva(\n \"text-sm text-[color:var(--chart-card-previous-color)]\"\n)\n\n/**\n * ChartCard chart-slot wrapper — 24px row gap + tokenised area height\n * (`--chart-card-chart-height`). The injected chart fills the area via\n * `[&>*]:h-full`; the `chartHeight` prop overrides the height.\n */\nexport const chartCardChartVariants = cva(\n \"mt-[var(--chart-card-gap)] h-[var(--chart-card-chart-height)] [&>*]:h-full\"\n)\n","// ChartCard/ChartCard.tsx\n\"use client\"\n\nimport type { ChartCardProps, ChartCardValueFormatter } from \"./ChartCard.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Badge } from \"../../primitives/Badge\"\nimport { SkeletonLoader } from \"../../primitives/SkeletonLoader\"\nimport {\n chartCardChartVariants,\n chartCardHeaderVariants,\n chartCardPreviousValueVariants,\n chartCardTitleVariants,\n chartCardValueContainerVariants,\n chartCardValueVariants,\n chartCardVariants,\n} from \"./ChartCard.variants\"\n\n/**\n * Default value formatter (returns value as string)\n */\nconst defaultFormatter: ChartCardValueFormatter = (value) => String(value)\n\n/**\n * Get badge color based on evolution percentage\n */\nfunction getBadgeColor(value: number): \"destructive\" | \"muted\" | \"success\" | \"warning\" {\n if (value > 0) {\n return \"success\"\n } else if (value < 0) {\n if (value < -50) {\n return \"warning\"\n }\n return \"destructive\"\n }\n return \"muted\"\n}\n\n/**\n * Format percentage for display\n */\nfunction formatPercentage(value: number): string {\n const sign = value > 0 ? \"+\" : \"\"\n return `${sign}${(value * 100).toFixed(1)}%`\n}\n\n/**\n * ChartCard - Dashboard KPI widget with a chart-agnostic slot.\n *\n * Renders a KPI value with an auto evolution badge and optional comparison\n * period. The chart itself is **injected by the consumer** via the `chart`\n * slot — ChartCard ships no default chart (DES-1253). The Title Row exposes\n * `featuredIcon` + `headerAction` (overflow) slots, with optional `tabs` and\n * `footer` composition slots below.\n *\n * @example\n * ```tsx\n * const data = [\n * { formattedDate: \"01/01\", value: 1000, previousValue: 900 },\n * { formattedDate: \"02/01\", value: 1200, previousValue: 1100 },\n * ]\n *\n * <ChartCard\n * title=\"Revenue\"\n * data={data}\n * comparisonPeriod=\"previous-year\"\n * valueFormatter={(v) => `$${v.toLocaleString()}`}\n * chart={\n * <LineChart\n * className=\"h-full\"\n * data={data}\n * config={{ value: { label: \"Current\" } }}\n * series={[\"value\"]}\n * />\n * }\n * />\n * ```\n */\nfunction ChartCard({\n badge,\n chart,\n chartHeight,\n className,\n comparisonPeriod = \"no-comparison\",\n data,\n emptyMessage,\n featuredIcon,\n footer,\n headerAction,\n isThumbnail = false,\n loading = false,\n tabs,\n title,\n valueFormatter = defaultFormatter,\n variant,\n ...props\n}: ChartCardProps) {\n const isEmpty = !loading && data.length === 0\n\n // Calculate totals\n const totalValue = React.useMemo(() => {\n return data.reduce((acc, item) => acc + (item.value ?? 0), 0)\n }, [data])\n\n const totalPreviousValue = React.useMemo(() => {\n return data.reduce((acc, item) => acc + (item.previousValue ?? 0), 0)\n }, [data])\n\n // Calculate evolution percentage\n const evolution = React.useMemo(() => {\n if (comparisonPeriod === \"no-comparison\" || totalPreviousValue === 0) {\n return 0\n }\n return (totalValue - totalPreviousValue) / totalPreviousValue\n }, [comparisonPeriod, totalPreviousValue, totalValue])\n\n // Show comparison UI elements\n const showComparison = comparisonPeriod !== \"no-comparison\"\n\n // Title Row leading slots (featured icon + title), shared across states.\n const titleLead = (\n <div className=\"flex items-center gap-x-2\">\n {featuredIcon && (\n <span data-slot=\"chart-card-featured-icon\">{featuredIcon}</span>\n )}\n <h3 className={cn(chartCardTitleVariants())} data-slot=\"chart-card-title\">\n {title}\n </h3>\n </div>\n )\n\n // Empty state (DES-1254 item 3 — Figma Empty State)\n if (isEmpty) {\n return (\n <article\n aria-label={`${title}: empty`}\n className={cn(chartCardVariants({ variant }), className)}\n data-empty=\"true\"\n data-slot=\"chart-card\"\n {...props}\n >\n <div className={cn(chartCardHeaderVariants())} data-slot=\"chart-card-header\">\n {titleLead}\n {headerAction && (\n <span data-slot=\"chart-card-header-action\">{headerAction}</span>\n )}\n </div>\n <div\n className={cn(\n chartCardChartVariants(),\n chartHeight,\n \"flex items-center justify-center text-[length:var(--chart-card-empty-state-caption-size)] text-[color:var(--chart-card-empty-state-caption-color)]\"\n )}\n data-slot=\"chart-card-empty\"\n >\n {emptyMessage ?? \"No data available\"}\n </div>\n </article>\n )\n }\n\n // Loading state\n if (loading) {\n return (\n <article\n aria-busy=\"true\"\n className={cn(chartCardVariants({ variant }), className)}\n data-slot=\"chart-card\"\n {...props}\n >\n <div className={cn(chartCardHeaderVariants())} data-slot=\"chart-card-header\">\n <SkeletonLoader className=\"h-4 w-24\" />\n <SkeletonLoader className=\"h-5 w-12\" />\n </div>\n <div\n className={cn(chartCardValueContainerVariants())}\n data-slot=\"chart-card-value\"\n >\n <SkeletonLoader className=\"h-7 w-32\" />\n </div>\n <div className={cn(chartCardChartVariants(), chartHeight)}>\n <SkeletonLoader className=\"h-full w-full\" />\n </div>\n </article>\n )\n }\n\n return (\n <article\n aria-label={`${title}: ${valueFormatter(totalValue)}`}\n className={cn(chartCardVariants({ variant }), className)}\n data-slot=\"chart-card\"\n {...props}\n >\n {/* Title Row — featured icon + title + badge / overflow action */}\n <div className={cn(chartCardHeaderVariants())} data-slot=\"chart-card-header\">\n <div className=\"flex items-center gap-x-2\">\n {featuredIcon && (\n <span data-slot=\"chart-card-featured-icon\">{featuredIcon}</span>\n )}\n <h3 className={cn(chartCardTitleVariants())} data-slot=\"chart-card-title\">\n {title}\n </h3>\n {showComparison && (\n badge ?? (\n <Badge color={getBadgeColor(evolution)} size=\"sm\">\n {formatPercentage(evolution)}\n </Badge>\n )\n )}\n </div>\n {headerAction && (\n <span data-slot=\"chart-card-header-action\">{headerAction}</span>\n )}\n </div>\n\n {/* Value display */}\n <div\n className={cn(chartCardValueContainerVariants())}\n data-slot=\"chart-card-value\"\n >\n <p className={cn(chartCardValueVariants())}>\n {valueFormatter(totalValue)}\n </p>\n {showComparison && (\n <p className={cn(chartCardPreviousValueVariants())}>\n from {valueFormatter(totalPreviousValue)}\n </p>\n )}\n </div>\n\n {/* Tabs row slot (Figma showTabs) */}\n {tabs && (\n <div className=\"mt-[var(--chart-card-gap)]\" data-slot=\"chart-card-tabs\">\n {tabs}\n </div>\n )}\n\n {/* Chart slot — injected by the consumer (chart-agnostic) */}\n {!isThumbnail && chart && (\n <div\n className={cn(chartCardChartVariants(), chartHeight)}\n data-slot=\"chart-card-chart\"\n >\n {chart}\n </div>\n )}\n\n {/* Card Footer slot (Figma showCardFooter — trend + total) */}\n {footer && (\n <div className=\"mt-[var(--chart-card-gap)]\" data-slot=\"chart-card-footer\">\n {footer}\n </div>\n )}\n </article>\n )\n}\n\nChartCard.displayName = \"ChartCard\"\n\nexport { ChartCard }\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuLabel, DropdownMenuGroup, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, DropdownMenuItem } from './chunk-
|
|
2
|
-
import { Avatar, AvatarImage, AvatarFallback } from './chunk-
|
|
3
|
-
import { Badge } from './chunk-
|
|
4
|
-
import { cn } from './chunk-
|
|
1
|
+
import { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuSeparator, DropdownMenuLabel, DropdownMenuGroup, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, DropdownMenuItem } from './chunk-6G5QK3SU.js';
|
|
2
|
+
import { Avatar, AvatarImage, AvatarFallback } from './chunk-U7TPJMGY.js';
|
|
3
|
+
import { Badge } from './chunk-HNQX6ZG7.js';
|
|
4
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
5
5
|
import { ChevronsUpDown, Check } from 'lucide-react';
|
|
6
6
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
|
|
@@ -45,6 +45,7 @@ function AccountSwitch({
|
|
|
45
45
|
accounts,
|
|
46
46
|
triggerShape = "pill",
|
|
47
47
|
placement = "sidebar",
|
|
48
|
+
compact = false,
|
|
48
49
|
header,
|
|
49
50
|
footer,
|
|
50
51
|
onSelect,
|
|
@@ -116,15 +117,17 @@ function AccountSwitch({
|
|
|
116
117
|
{
|
|
117
118
|
className: cn(
|
|
118
119
|
"inline-flex min-w-0 items-center gap-2 h-[var(--input-size-md-h)] border transition-colors hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none",
|
|
119
|
-
triggerShape === "pill" ? "rounded-full
|
|
120
|
+
triggerShape === "pill" ? ["rounded-full bg-card text-card-foreground", compact ? "p-1.5" : "pl-1.5 pr-3"] : [
|
|
120
121
|
// Figma 1138:2522 "Input" — bg background, border input, radius md;
|
|
121
122
|
// inside an icon-collapsed sidebar only the logo remains (2418:9772)
|
|
122
|
-
"rounded-[var(--radius-md)]
|
|
123
|
+
"rounded-[var(--radius-md)] bg-background text-foreground",
|
|
124
|
+
compact ? "px-2" : "px-3",
|
|
123
125
|
"border-[color:var(--input-border-default)]",
|
|
124
126
|
"group-data-[collapsible=icon]:px-2"
|
|
125
127
|
],
|
|
126
128
|
className
|
|
127
129
|
),
|
|
130
|
+
"data-compact": compact ? "" : void 0,
|
|
128
131
|
"data-placement": placement,
|
|
129
132
|
"data-slot": "account-switch-trigger",
|
|
130
133
|
type: "button",
|
|
@@ -147,7 +150,8 @@ function AccountSwitch({
|
|
|
147
150
|
className: cn(
|
|
148
151
|
"truncate max-w-[var(--account-switch-name-max-width)]",
|
|
149
152
|
// Figma 1138:2523 — rect/sidebar name is 16px regular muted-foreground
|
|
150
|
-
triggerShape === "pill" ? "text-sm font-medium" : "text-base font-normal text-muted-foreground group-data-[collapsible=icon]:hidden"
|
|
153
|
+
triggerShape === "pill" ? "text-sm font-medium" : "text-base font-normal text-muted-foreground group-data-[collapsible=icon]:hidden",
|
|
154
|
+
compact && "hidden"
|
|
151
155
|
),
|
|
152
156
|
children: currentAccount.name
|
|
153
157
|
}
|
|
@@ -158,7 +162,8 @@ function AccountSwitch({
|
|
|
158
162
|
{
|
|
159
163
|
className: cn(
|
|
160
164
|
"text-muted-foreground shrink-0 ml-auto",
|
|
161
|
-
triggerShape === "pill" ? "size-3.5" : "size-4 group-data-[collapsible=icon]:hidden"
|
|
165
|
+
triggerShape === "pill" ? "size-3.5" : "size-4 group-data-[collapsible=icon]:hidden",
|
|
166
|
+
compact && "hidden"
|
|
162
167
|
),
|
|
163
168
|
"aria-hidden": "true"
|
|
164
169
|
}
|
|
@@ -191,5 +196,5 @@ function AccountSwitch({
|
|
|
191
196
|
}
|
|
192
197
|
|
|
193
198
|
export { AccountSwitch };
|
|
194
|
-
//# sourceMappingURL=chunk-
|
|
195
|
-
//# sourceMappingURL=chunk-
|
|
199
|
+
//# sourceMappingURL=chunk-N7VMQWM3.js.map
|
|
200
|
+
//# sourceMappingURL=chunk-N7VMQWM3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/AccountSwitch/AccountSwitch.tsx"],"names":[],"mappings":"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","file":"chunk-N7VMQWM3.js","sourcesContent":["\"use client\";\n\nimport type {\n AccountSwitchAccount,\n AccountSwitchProps,\n} from \"./AccountSwitch.types\";\n\nimport { Check, ChevronsUpDown } from \"lucide-react\";\n\nimport { cn } from \"../../../lib/utils\";\nimport { Avatar, AvatarFallback, AvatarImage } from \"../../primitives/Avatar\";\nimport { Badge } from \"../../primitives/Badge\";\nimport {\n DropdownMenu,\n DropdownMenuContent,\n DropdownMenuGroup,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuSeparator,\n DropdownMenuSub,\n DropdownMenuSubContent,\n DropdownMenuSubTrigger,\n DropdownMenuTrigger,\n} from \"../DropdownMenu\";\n\nconst MAX_NAVIGATION_DEPTH = 3;\n\nfunction getCurrentAccount(\n accounts: AccountSwitchAccount[],\n): AccountSwitchAccount | undefined {\n for (const account of accounts) {\n if (account.isCurrent) {\n return account;\n }\n\n const currentChild = getCurrentAccount(account.children ?? []);\n if (currentChild) {\n return currentChild;\n }\n }\n\n return undefined;\n}\n\nfunction AccountSwitchItemContent({\n account,\n isCurrent,\n}: {\n account: AccountSwitchAccount;\n isCurrent: boolean;\n}) {\n return (\n <>\n {account.logo ?? (\n <Avatar size=\"xs\">\n {account.avatarSrc && (\n <AvatarImage alt={account.name} src={account.avatarSrc} />\n )}\n <AvatarFallback>\n {account.avatarFallback ?? account.name.charAt(0)}\n </AvatarFallback>\n </Avatar>\n )}\n <span className=\"min-w-0 flex-1 truncate\">{account.name}</span>\n {account.plan && (\n <Badge\n color={account.plan === \"PRO\" ? \"primary\" : \"muted\"}\n size=\"sm\"\n type=\"pill-color\"\n >\n {account.plan}\n </Badge>\n )}\n {isCurrent && (\n <Check aria-hidden=\"true\" className=\"size-3.5 text-primary\" />\n )}\n </>\n );\n}\n\nfunction AccountSwitch({\n className,\n accounts,\n triggerShape = \"pill\",\n placement = \"sidebar\",\n compact = false,\n header,\n footer,\n onSelect,\n ...props\n}: AccountSwitchProps) {\n const currentAccount = getCurrentAccount(accounts) ?? accounts[0];\n const contentAlign = placement === \"header\" ? \"end\" : \"start\";\n\n const handleSelect = (account: AccountSwitchAccount) => {\n if (!account.disabled && account.id !== currentAccount?.id) {\n onSelect?.(account);\n }\n };\n\n const renderAccountItem = (account: AccountSwitchAccount, depth: number) => {\n const children =\n depth < MAX_NAVIGATION_DEPTH ? (account.children ?? []) : [];\n const hasChildren = children.length > 0;\n const isCurrent = account.id === currentAccount?.id;\n const stateProps = {\n \"aria-current\": isCurrent ? (\"true\" as const) : undefined,\n \"data-selected\": isCurrent ? \"true\" : undefined,\n };\n\n if (hasChildren) {\n return (\n <DropdownMenuSub key={account.id}>\n <DropdownMenuSubTrigger\n className={cn(\n \"flex min-w-0 items-center gap-2\",\n isCurrent && \"bg-accent text-accent-foreground\",\n )}\n data-account-switch-level={depth}\n disabled={account.disabled}\n {...stateProps}\n >\n <AccountSwitchItemContent account={account} isCurrent={isCurrent} />\n </DropdownMenuSubTrigger>\n <DropdownMenuSubContent\n className=\"min-w-[var(--account-switch-content-min-width)]\"\n data-account-switch-level={depth + 1}\n >\n <DropdownMenuGroup>\n {children.map((childAccount) =>\n renderAccountItem(childAccount, depth + 1),\n )}\n </DropdownMenuGroup>\n </DropdownMenuSubContent>\n </DropdownMenuSub>\n );\n }\n\n return (\n <DropdownMenuItem\n key={account.id}\n className={cn(\n \"flex min-w-0 items-center gap-2\",\n isCurrent && \"bg-accent text-accent-foreground\",\n )}\n data-account-switch-level={depth}\n disabled={account.disabled}\n onClick={() => {\n handleSelect(account);\n }}\n {...stateProps}\n >\n <AccountSwitchItemContent account={account} isCurrent={isCurrent} />\n </DropdownMenuItem>\n );\n };\n\n return (\n <DropdownMenu>\n <DropdownMenuTrigger asChild>\n <button\n className={cn(\n \"inline-flex min-w-0 items-center gap-2 h-[var(--input-size-md-h)] border transition-colors hover:bg-accent/50 focus-visible:ring-2 focus-visible:ring-ring focus-visible:outline-none\",\n triggerShape === \"pill\"\n ? [\"rounded-full bg-card text-card-foreground\", compact ? \"p-1.5\" : \"pl-1.5 pr-3\"]\n : [\n // Figma 1138:2522 \"Input\" — bg background, border input, radius md;\n // inside an icon-collapsed sidebar only the logo remains (2418:9772)\n \"rounded-[var(--radius-md)] bg-background text-foreground\",\n compact ? \"px-2\" : \"px-3\",\n \"border-[color:var(--input-border-default)]\",\n \"group-data-[collapsible=icon]:px-2\",\n ],\n className,\n )}\n data-compact={compact ? \"\" : undefined}\n data-placement={placement}\n data-slot=\"account-switch-trigger\"\n type=\"button\"\n {...props}\n >\n {currentAccount && (\n <>\n {currentAccount.logo ?? (\n <Avatar size=\"xs\">\n {currentAccount.avatarSrc && (\n <AvatarImage\n alt={currentAccount.name}\n src={currentAccount.avatarSrc}\n />\n )}\n <AvatarFallback>\n {currentAccount.avatarFallback ??\n currentAccount.name.charAt(0)}\n </AvatarFallback>\n </Avatar>\n )}\n <span\n className={cn(\n \"truncate max-w-[var(--account-switch-name-max-width)]\",\n // Figma 1138:2523 — rect/sidebar name is 16px regular muted-foreground\n triggerShape === \"pill\"\n ? \"text-sm font-medium\"\n : \"text-base font-normal text-muted-foreground group-data-[collapsible=icon]:hidden\",\n compact && \"hidden\",\n )}\n >\n {currentAccount.name}\n </span>\n </>\n )}\n <ChevronsUpDown\n className={cn(\n \"text-muted-foreground shrink-0 ml-auto\",\n triggerShape === \"pill\"\n ? \"size-3.5\"\n : \"size-4 group-data-[collapsible=icon]:hidden\",\n compact && \"hidden\",\n )}\n aria-hidden=\"true\"\n />\n </button>\n </DropdownMenuTrigger>\n <DropdownMenuContent\n align={contentAlign}\n className=\"min-w-[var(--account-switch-content-min-width)]\"\n data-placement={placement}\n data-slot=\"account-switch-content\"\n >\n {header && (\n <>\n <div className=\"px-2 py-1.5\">{header}</div>\n <DropdownMenuSeparator />\n </>\n )}\n <DropdownMenuLabel className=\"text-xs font-medium text-muted-foreground uppercase tracking-wider\">\n Contas\n </DropdownMenuLabel>\n <DropdownMenuGroup>\n {accounts.map((account) => renderAccountItem(account, 1))}\n </DropdownMenuGroup>\n {footer && (\n <>\n <DropdownMenuSeparator />\n {footer}\n </>\n )}\n </DropdownMenuContent>\n </DropdownMenu>\n );\n}\n\nexport { AccountSwitch };\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
2
2
|
import { cva } from 'class-variance-authority';
|
|
3
3
|
import 'react';
|
|
4
4
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
@@ -247,5 +247,5 @@ function GaugeChart({
|
|
|
247
247
|
}
|
|
248
248
|
|
|
249
249
|
export { GaugeChart, gaugeChartVariants };
|
|
250
|
-
//# sourceMappingURL=chunk-
|
|
251
|
-
//# sourceMappingURL=chunk-
|
|
250
|
+
//# sourceMappingURL=chunk-NAI3TX52.js.map
|
|
251
|
+
//# sourceMappingURL=chunk-NAI3TX52.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/data-display/GaugeChart/GaugeChart.tsx"],"names":[],"mappings":"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","file":"chunk-5KTMPLDK.js","sourcesContent":["import type { GaugeChartProps, GaugeSize, GaugeVariant, GaugeZone } from \"./GaugeChart.types\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst gaugeChartVariants = cva(\"relative inline-flex items-center justify-center\", {\n variants: {\n size: {\n lg: \"\",\n md: \"\",\n sm: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n})\n\n/** Size configurations for the gauge */\nconst SIZE_CONFIG: Record<GaugeSize, { fontSize: { label: string; minMax: string; value: string }; strokeWidth: number; width: number }> = {\n lg: { fontSize: { label: \"text-base\", minMax: \"text-sm\", value: \"text-3xl\" }, strokeWidth: 16, width: 240 },\n md: { fontSize: { label: \"text-sm\", minMax: \"text-xs\", value: \"text-2xl\" }, strokeWidth: 12, width: 180 },\n sm: { fontSize: { label: \"text-xs\", minMax: \"text-xs\", value: \"text-lg\" }, strokeWidth: 8, width: 120 },\n}\n\n/** Variant configurations for arc angles */\nconst VARIANT_CONFIG: Record<GaugeVariant, { endAngle: number; rotation: number; startAngle: number }> = {\n full: { endAngle: 450, rotation: 0, startAngle: 90 },\n semicircle: { endAngle: 0, rotation: 0, startAngle: 180 },\n \"three-quarters\": { endAngle: -45, rotation: 0, startAngle: 225 },\n}\n\n/** CSS variable for primary color */\nconst PRIMARY_COLOR_VAR = \"var(--primary)\"\n/** CSS variable for muted color */\nconst MUTED_COLOR_VAR = \"var(--muted)\"\n\n/**\n * Calculate SVG arc path\n */\nfunction describeArc(\n cx: number,\n cy: number,\n radius: number,\n startAngle: number,\n endAngle: number\n): string {\n const start = polarToCartesian(cx, cy, radius, endAngle)\n const end = polarToCartesian(cx, cy, radius, startAngle)\n const largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\"\n\n return [\n \"M\", String(start.x), String(start.y),\n \"A\", String(radius), String(radius), \"0\", largeArcFlag, \"0\", String(end.x), String(end.y),\n ].join(\" \")\n}\n\n/**\n * Convert polar coordinates to cartesian\n */\nfunction polarToCartesian(\n cx: number,\n cy: number,\n radius: number,\n angleInDegrees: number\n): { x: number; y: number } {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180\n return {\n x: cx + radius * Math.cos(angleInRadians),\n y: cy + radius * Math.sin(angleInRadians),\n }\n}\n\n/**\n * Get the color for a given value based on zones\n */\nfunction getZoneColor(value: number, zones: GaugeZone[] | undefined): string {\n if (!zones?.length) {\n return PRIMARY_COLOR_VAR\n }\n\n for (const zone of zones) {\n if (value >= zone.min && value < zone.max) {\n return zone.color\n }\n }\n\n // Check if value equals the max of the last zone\n const lastZone = zones.at(-1)\n if (lastZone && value >= lastZone.min && value <= lastZone.max) {\n return lastZone.color\n }\n\n return PRIMARY_COLOR_VAR\n}\n\n/**\n * GaugeChart - A speedometer-style gauge for displaying values on a scale\n * @example\n * <GaugeChart label=\"Score\" unit=\"%\" value={75} />\n * @example\n * <GaugeChart\n * max={100}\n * min={-100}\n * value={42}\n * zones={[\n * { color: \"var(--destructive)\", max: 0, min: -100 },\n * { color: \"var(--warning)\", max: 50, min: 0 },\n * { color: \"var(--success)\", max: 100, min: 50 },\n * ]}\n * />\n */\nfunction GaugeChart({\n animated = true,\n className,\n label,\n max = 100,\n min = 0,\n showLabels = true,\n showValue = true,\n size = \"md\",\n unit,\n value,\n variant = \"semicircle\",\n zones,\n}: GaugeChartProps) {\n // Clamp value to min/max range\n const clampedValue = Math.min(Math.max(value, min), max)\n\n // Calculate percentage\n const percentage = ((clampedValue - min) / (max - min)) * 100\n\n // Get configuration\n const sizeConfig = SIZE_CONFIG[size]\n const variantConfig = VARIANT_CONFIG[variant]\n\n // SVG dimensions\n const width = sizeConfig.width\n const height = variant === \"semicircle\"\n ? width / 2 + sizeConfig.strokeWidth * 2\n : variant === \"three-quarters\"\n ? width * 0.75 + sizeConfig.strokeWidth\n : width\n\n const cx = width / 2\n const cy = variant === \"semicircle\"\n ? width / 2\n : variant === \"three-quarters\"\n ? width * 0.5\n : width / 2\n\n const radius = (width - sizeConfig.strokeWidth * 2) / 2\n\n // Calculate arc angles\n const { endAngle, startAngle } = variantConfig\n const totalAngle = Math.abs(startAngle - endAngle)\n const valueAngle = startAngle - (percentage / 100) * totalAngle\n\n // Arc paths\n const backgroundPath = describeArc(cx, cy, radius, startAngle, endAngle)\n const valuePath = percentage > 0\n ? describeArc(cx, cy, radius, startAngle, valueAngle)\n : \"\"\n\n // Get color based on zones\n const fillColor = getZoneColor(clampedValue, zones)\n\n // Calculate arc length for animation\n const circumference = 2 * Math.PI * radius\n const arcLength = (totalAngle / 360) * circumference\n const valueArcLength = (percentage / 100) * arcLength\n\n // ARIA label\n const ariaLabel = label\n ? `${label}: ${String(clampedValue)}${unit ?? \"\"}`\n : `Value: ${String(clampedValue)}${unit ?? \"\"}`\n\n // Calculate label positions for min/max\n const minLabelPos = polarToCartesian(cx, cy, radius + sizeConfig.strokeWidth + 8, startAngle)\n const maxLabelPos = polarToCartesian(cx, cy, radius + sizeConfig.strokeWidth + 8, endAngle)\n\n // Common text class name\n const mutedTextClass = \"fill-muted-foreground\"\n\n return (\n <div\n aria-label={ariaLabel}\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={clampedValue}\n className={cn(gaugeChartVariants({ size }), className)}\n role=\"meter\"\n >\n <svg\n className=\"overflow-visible\"\n height={height}\n viewBox={`0 0 ${String(width)} ${String(height)}`}\n width={width}\n >\n {/* Zone backgrounds if zones are provided */}\n {zones?.length ? (\n zones.map((zone) => {\n const zoneStartPercent = ((zone.min - min) / (max - min)) * 100\n const zoneEndPercent = ((zone.max - min) / (max - min)) * 100\n const zoneStartAngle = startAngle - (zoneStartPercent / 100) * totalAngle\n const zoneEndAngle = startAngle - (zoneEndPercent / 100) * totalAngle\n const zonePath = describeArc(cx, cy, radius, zoneStartAngle, zoneEndAngle)\n\n return (\n <path\n key={`zone-${String(zone.min)}-${String(zone.max)}`}\n d={zonePath}\n fill=\"none\"\n opacity={0.2}\n stroke={zone.color}\n strokeLinecap=\"round\"\n strokeWidth={sizeConfig.strokeWidth}\n />\n )\n })\n ) : (\n /* Default track background */\n <path\n d={backgroundPath}\n fill=\"none\"\n stroke={MUTED_COLOR_VAR}\n strokeLinecap=\"round\"\n strokeWidth={sizeConfig.strokeWidth}\n />\n )}\n\n {/* Value arc */}\n {valuePath && (\n <path\n style={animated ? {\n strokeDasharray: `${String(valueArcLength)} ${String(arcLength)}`,\n strokeDashoffset: 0,\n } : undefined}\n className={cn(animated && \"transition-all duration-500 ease-out\")}\n d={valuePath}\n fill=\"none\"\n stroke={fillColor}\n strokeLinecap=\"round\"\n strokeWidth={sizeConfig.strokeWidth}\n />\n )}\n\n {/* Center content */}\n <g className=\"pointer-events-none\">\n {showValue && (\n <text\n className={cn(\"fill-foreground font-bold\", sizeConfig.fontSize.value)}\n dominantBaseline={variant === \"semicircle\" ? \"auto\" : \"central\"}\n textAnchor=\"middle\"\n x={cx}\n y={variant === \"semicircle\" ? cy - 8 : cy}\n >\n {clampedValue}\n {unit && (\n <tspan className=\"text-muted-foreground font-normal\" fontSize=\"0.6em\">\n {unit}\n </tspan>\n )}\n </text>\n )}\n\n {label && (\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.label)}\n dominantBaseline={variant === \"semicircle\" ? \"hanging\" : \"central\"}\n textAnchor=\"middle\"\n x={cx}\n y={variant === \"semicircle\" ? cy + (showValue ? 8 : 0) : cy + (showValue ? 20 : 0)}\n >\n {label}\n </text>\n )}\n </g>\n\n {/* Min/Max labels */}\n {showLabels && variant === \"semicircle\" && (\n <>\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.minMax)}\n textAnchor=\"start\"\n x={sizeConfig.strokeWidth}\n y={cy + sizeConfig.strokeWidth + 12}\n >\n {min}\n </text>\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.minMax)}\n textAnchor=\"end\"\n x={width - sizeConfig.strokeWidth}\n y={cy + sizeConfig.strokeWidth + 12}\n >\n {max}\n </text>\n </>\n )}\n\n {showLabels && variant === \"three-quarters\" && (\n <>\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.minMax)}\n dominantBaseline=\"middle\"\n textAnchor=\"end\"\n x={minLabelPos.x}\n y={minLabelPos.y}\n >\n {min}\n </text>\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.minMax)}\n dominantBaseline=\"middle\"\n textAnchor=\"start\"\n x={maxLabelPos.x}\n y={maxLabelPos.y}\n >\n {max}\n </text>\n </>\n )}\n </svg>\n </div>\n )\n}\n\nexport { GaugeChart, gaugeChartVariants }\nexport type { VariantProps as GaugeChartVariantProps }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/GaugeChart/GaugeChart.tsx"],"names":[],"mappings":"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","file":"chunk-NAI3TX52.js","sourcesContent":["import type { GaugeChartProps, GaugeSize, GaugeVariant, GaugeZone } from \"./GaugeChart.types\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\n\nconst gaugeChartVariants = cva(\"relative inline-flex items-center justify-center\", {\n variants: {\n size: {\n lg: \"\",\n md: \"\",\n sm: \"\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n})\n\n/** Size configurations for the gauge */\nconst SIZE_CONFIG: Record<GaugeSize, { fontSize: { label: string; minMax: string; value: string }; strokeWidth: number; width: number }> = {\n lg: { fontSize: { label: \"text-base\", minMax: \"text-sm\", value: \"text-3xl\" }, strokeWidth: 16, width: 240 },\n md: { fontSize: { label: \"text-sm\", minMax: \"text-xs\", value: \"text-2xl\" }, strokeWidth: 12, width: 180 },\n sm: { fontSize: { label: \"text-xs\", minMax: \"text-xs\", value: \"text-lg\" }, strokeWidth: 8, width: 120 },\n}\n\n/** Variant configurations for arc angles */\nconst VARIANT_CONFIG: Record<GaugeVariant, { endAngle: number; rotation: number; startAngle: number }> = {\n full: { endAngle: 450, rotation: 0, startAngle: 90 },\n semicircle: { endAngle: 0, rotation: 0, startAngle: 180 },\n \"three-quarters\": { endAngle: -45, rotation: 0, startAngle: 225 },\n}\n\n/** CSS variable for primary color */\nconst PRIMARY_COLOR_VAR = \"var(--primary)\"\n/** CSS variable for muted color */\nconst MUTED_COLOR_VAR = \"var(--muted)\"\n\n/**\n * Calculate SVG arc path\n */\nfunction describeArc(\n cx: number,\n cy: number,\n radius: number,\n startAngle: number,\n endAngle: number\n): string {\n const start = polarToCartesian(cx, cy, radius, endAngle)\n const end = polarToCartesian(cx, cy, radius, startAngle)\n const largeArcFlag = endAngle - startAngle <= 180 ? \"0\" : \"1\"\n\n return [\n \"M\", String(start.x), String(start.y),\n \"A\", String(radius), String(radius), \"0\", largeArcFlag, \"0\", String(end.x), String(end.y),\n ].join(\" \")\n}\n\n/**\n * Convert polar coordinates to cartesian\n */\nfunction polarToCartesian(\n cx: number,\n cy: number,\n radius: number,\n angleInDegrees: number\n): { x: number; y: number } {\n const angleInRadians = ((angleInDegrees - 90) * Math.PI) / 180\n return {\n x: cx + radius * Math.cos(angleInRadians),\n y: cy + radius * Math.sin(angleInRadians),\n }\n}\n\n/**\n * Get the color for a given value based on zones\n */\nfunction getZoneColor(value: number, zones: GaugeZone[] | undefined): string {\n if (!zones?.length) {\n return PRIMARY_COLOR_VAR\n }\n\n for (const zone of zones) {\n if (value >= zone.min && value < zone.max) {\n return zone.color\n }\n }\n\n // Check if value equals the max of the last zone\n const lastZone = zones.at(-1)\n if (lastZone && value >= lastZone.min && value <= lastZone.max) {\n return lastZone.color\n }\n\n return PRIMARY_COLOR_VAR\n}\n\n/**\n * GaugeChart - A speedometer-style gauge for displaying values on a scale\n * @example\n * <GaugeChart label=\"Score\" unit=\"%\" value={75} />\n * @example\n * <GaugeChart\n * max={100}\n * min={-100}\n * value={42}\n * zones={[\n * { color: \"var(--destructive)\", max: 0, min: -100 },\n * { color: \"var(--warning)\", max: 50, min: 0 },\n * { color: \"var(--success)\", max: 100, min: 50 },\n * ]}\n * />\n */\nfunction GaugeChart({\n animated = true,\n className,\n label,\n max = 100,\n min = 0,\n showLabels = true,\n showValue = true,\n size = \"md\",\n unit,\n value,\n variant = \"semicircle\",\n zones,\n}: GaugeChartProps) {\n // Clamp value to min/max range\n const clampedValue = Math.min(Math.max(value, min), max)\n\n // Calculate percentage\n const percentage = ((clampedValue - min) / (max - min)) * 100\n\n // Get configuration\n const sizeConfig = SIZE_CONFIG[size]\n const variantConfig = VARIANT_CONFIG[variant]\n\n // SVG dimensions\n const width = sizeConfig.width\n const height = variant === \"semicircle\"\n ? width / 2 + sizeConfig.strokeWidth * 2\n : variant === \"three-quarters\"\n ? width * 0.75 + sizeConfig.strokeWidth\n : width\n\n const cx = width / 2\n const cy = variant === \"semicircle\"\n ? width / 2\n : variant === \"three-quarters\"\n ? width * 0.5\n : width / 2\n\n const radius = (width - sizeConfig.strokeWidth * 2) / 2\n\n // Calculate arc angles\n const { endAngle, startAngle } = variantConfig\n const totalAngle = Math.abs(startAngle - endAngle)\n const valueAngle = startAngle - (percentage / 100) * totalAngle\n\n // Arc paths\n const backgroundPath = describeArc(cx, cy, radius, startAngle, endAngle)\n const valuePath = percentage > 0\n ? describeArc(cx, cy, radius, startAngle, valueAngle)\n : \"\"\n\n // Get color based on zones\n const fillColor = getZoneColor(clampedValue, zones)\n\n // Calculate arc length for animation\n const circumference = 2 * Math.PI * radius\n const arcLength = (totalAngle / 360) * circumference\n const valueArcLength = (percentage / 100) * arcLength\n\n // ARIA label\n const ariaLabel = label\n ? `${label}: ${String(clampedValue)}${unit ?? \"\"}`\n : `Value: ${String(clampedValue)}${unit ?? \"\"}`\n\n // Calculate label positions for min/max\n const minLabelPos = polarToCartesian(cx, cy, radius + sizeConfig.strokeWidth + 8, startAngle)\n const maxLabelPos = polarToCartesian(cx, cy, radius + sizeConfig.strokeWidth + 8, endAngle)\n\n // Common text class name\n const mutedTextClass = \"fill-muted-foreground\"\n\n return (\n <div\n aria-label={ariaLabel}\n aria-valuemax={max}\n aria-valuemin={min}\n aria-valuenow={clampedValue}\n className={cn(gaugeChartVariants({ size }), className)}\n role=\"meter\"\n >\n <svg\n className=\"overflow-visible\"\n height={height}\n viewBox={`0 0 ${String(width)} ${String(height)}`}\n width={width}\n >\n {/* Zone backgrounds if zones are provided */}\n {zones?.length ? (\n zones.map((zone) => {\n const zoneStartPercent = ((zone.min - min) / (max - min)) * 100\n const zoneEndPercent = ((zone.max - min) / (max - min)) * 100\n const zoneStartAngle = startAngle - (zoneStartPercent / 100) * totalAngle\n const zoneEndAngle = startAngle - (zoneEndPercent / 100) * totalAngle\n const zonePath = describeArc(cx, cy, radius, zoneStartAngle, zoneEndAngle)\n\n return (\n <path\n key={`zone-${String(zone.min)}-${String(zone.max)}`}\n d={zonePath}\n fill=\"none\"\n opacity={0.2}\n stroke={zone.color}\n strokeLinecap=\"round\"\n strokeWidth={sizeConfig.strokeWidth}\n />\n )\n })\n ) : (\n /* Default track background */\n <path\n d={backgroundPath}\n fill=\"none\"\n stroke={MUTED_COLOR_VAR}\n strokeLinecap=\"round\"\n strokeWidth={sizeConfig.strokeWidth}\n />\n )}\n\n {/* Value arc */}\n {valuePath && (\n <path\n style={animated ? {\n strokeDasharray: `${String(valueArcLength)} ${String(arcLength)}`,\n strokeDashoffset: 0,\n } : undefined}\n className={cn(animated && \"transition-all duration-500 ease-out\")}\n d={valuePath}\n fill=\"none\"\n stroke={fillColor}\n strokeLinecap=\"round\"\n strokeWidth={sizeConfig.strokeWidth}\n />\n )}\n\n {/* Center content */}\n <g className=\"pointer-events-none\">\n {showValue && (\n <text\n className={cn(\"fill-foreground font-bold\", sizeConfig.fontSize.value)}\n dominantBaseline={variant === \"semicircle\" ? \"auto\" : \"central\"}\n textAnchor=\"middle\"\n x={cx}\n y={variant === \"semicircle\" ? cy - 8 : cy}\n >\n {clampedValue}\n {unit && (\n <tspan className=\"text-muted-foreground font-normal\" fontSize=\"0.6em\">\n {unit}\n </tspan>\n )}\n </text>\n )}\n\n {label && (\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.label)}\n dominantBaseline={variant === \"semicircle\" ? \"hanging\" : \"central\"}\n textAnchor=\"middle\"\n x={cx}\n y={variant === \"semicircle\" ? cy + (showValue ? 8 : 0) : cy + (showValue ? 20 : 0)}\n >\n {label}\n </text>\n )}\n </g>\n\n {/* Min/Max labels */}\n {showLabels && variant === \"semicircle\" && (\n <>\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.minMax)}\n textAnchor=\"start\"\n x={sizeConfig.strokeWidth}\n y={cy + sizeConfig.strokeWidth + 12}\n >\n {min}\n </text>\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.minMax)}\n textAnchor=\"end\"\n x={width - sizeConfig.strokeWidth}\n y={cy + sizeConfig.strokeWidth + 12}\n >\n {max}\n </text>\n </>\n )}\n\n {showLabels && variant === \"three-quarters\" && (\n <>\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.minMax)}\n dominantBaseline=\"middle\"\n textAnchor=\"end\"\n x={minLabelPos.x}\n y={minLabelPos.y}\n >\n {min}\n </text>\n <text\n className={cn(mutedTextClass, sizeConfig.fontSize.minMax)}\n dominantBaseline=\"middle\"\n textAnchor=\"start\"\n x={maxLabelPos.x}\n y={maxLabelPos.y}\n >\n {max}\n </text>\n </>\n )}\n </svg>\n </div>\n )\n}\n\nexport { GaugeChart, gaugeChartVariants }\nexport type { VariantProps as GaugeChartVariantProps }\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-RVAYDRMA.js';
|
|
2
2
|
import { cva } from 'class-variance-authority';
|
|
3
3
|
import { jsx } from 'react/jsx-runtime';
|
|
4
4
|
|
|
@@ -115,5 +115,5 @@ function SkeletonLoader({
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
export { SkeletonLoader, skeletonLoaderVariants };
|
|
118
|
-
//# sourceMappingURL=chunk-
|
|
119
|
-
//# sourceMappingURL=chunk-
|
|
118
|
+
//# sourceMappingURL=chunk-NGX3ITG4.js.map
|
|
119
|
+
//# sourceMappingURL=chunk-NGX3ITG4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/primitives/SkeletonLoader/SkeletonLoader.variants.ts","../src/components/primitives/SkeletonLoader/SkeletonLoader.tsx"],"names":[],"mappings":"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","file":"chunk-QHKOBGLW.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * SkeletonLoader variants using CVA\n */\nexport const skeletonLoaderVariants = cva(\"bg-[color:var(--skeleton-bg)]\", {\n variants: {\n /**\n * Shape variant determines the skeleton's visual form\n */\n shape: {\n /** Rectangular shape with rounded corners (default) */\n rectangle: \"rounded-[var(--skeleton-shape-rectangle-border-radius)]\",\n /** Circular shape for avatars */\n circle: \"rounded-[var(--skeleton-shape-circle-border-radius)] aspect-[var(--skeleton-shape-circle-aspect-ratio)]\",\n /** Single line of text */\n text: \"h-[var(--skeleton-shape-text-height)] rounded-[var(--skeleton-shape-text-border-radius)]\",\n /** Heading text */\n heading: \"h-[var(--skeleton-shape-heading-height)] rounded-[var(--skeleton-shape-heading-border-radius)]\",\n /** Square shape */\n square: \"aspect-[var(--skeleton-shape-square-aspect-ratio)] rounded-[var(--skeleton-shape-square-border-radius)]\",\n /** Pill shape for tags/badges */\n pill: \"rounded-[var(--skeleton-shape-pill-border-radius)]\",\n },\n /**\n * Size preset for common use cases\n */\n size: {\n xs: \"\",\n sm: \"\",\n md: \"\",\n lg: \"\",\n xl: \"\",\n full: \"w-full\",\n },\n /**\n * Animation variant\n * - pulse: Subtle opacity fade (default)\n * - shimmer: Left-to-right shine effect\n * - wave: PrimeVue-style wave animation with gradient\n * - none: No animation\n */\n animation: {\n pulse: \"animate-pulse\",\n shimmer:\n \"relative overflow-hidden before:absolute before:inset-0 before:-translate-x-full before:animate-[shimmer_2s_infinite] before:bg-gradient-to-r before:from-transparent before:via-white/20 before:to-transparent\",\n wave: \"relative overflow-hidden before:absolute before:inset-0 before:animate-[wave_1.5s_ease-in-out_infinite] before:bg-gradient-to-r before:from-transparent before:via-[color:var(--skeleton-wave-color,rgba(255,255,255,0.4))] before:to-transparent\",\n none: \"animate-none\",\n },\n },\n compoundVariants: [\n // Rectangle sizes (default shape) — per Bowser audit SkeletonLoader: rectangle+md rendered 0x0 (no default dims)\n { shape: \"rectangle\", size: \"xs\", class: \"h-3 w-24\" },\n { shape: \"rectangle\", size: \"sm\", class: \"h-4 w-32\" },\n { shape: \"rectangle\", size: \"md\", class: \"h-5 w-48\" },\n { shape: \"rectangle\", size: \"lg\", class: \"h-8 w-64\" },\n { shape: \"rectangle\", size: \"xl\", class: \"h-12 w-80\" },\n // Circle sizes\n { shape: \"circle\", size: \"xs\", class: \"size-[var(--skeleton-size-circle-xs)]\" },\n { shape: \"circle\", size: \"sm\", class: \"size-[var(--skeleton-size-circle-sm)]\" },\n { shape: \"circle\", size: \"md\", class: \"size-[var(--skeleton-size-circle-md)]\" },\n { shape: \"circle\", size: \"lg\", class: \"size-[var(--skeleton-size-circle-lg)]\" },\n { shape: \"circle\", size: \"xl\", class: \"size-[var(--skeleton-size-circle-xl)]\" },\n // Square sizes\n // Reuse circle sizes for square since they are typically same dimensions\n { shape: \"square\", size: \"xs\", class: \"size-[var(--skeleton-size-circle-xs)]\" },\n { shape: \"square\", size: \"sm\", class: \"size-[var(--skeleton-size-circle-sm)]\" },\n { shape: \"square\", size: \"md\", class: \"size-[var(--skeleton-size-circle-md)]\" },\n { shape: \"square\", size: \"lg\", class: \"size-[var(--skeleton-size-circle-lg)]\" },\n { shape: \"square\", size: \"xl\", class: \"size-[var(--skeleton-size-circle-xl)]\" },\n // Text line sizes (width)\n { shape: \"text\", size: \"xs\", class: \"w-[var(--skeleton-size-text-xs)]\" },\n { shape: \"text\", size: \"sm\", class: \"w-[var(--skeleton-size-text-sm)]\" },\n { shape: \"text\", size: \"md\", class: \"w-[var(--skeleton-size-text-md)]\" },\n { shape: \"text\", size: \"lg\", class: \"w-[var(--skeleton-size-text-lg)]\" },\n { shape: \"text\", size: \"xl\", class: \"w-[var(--skeleton-size-text-xl)]\" },\n // Heading sizes (width) - reusing text widths but slightly adjusted or mapped if needed\n // For now mapping to text sizes but could be separate tokens if design demands\n { shape: \"heading\", size: \"xs\", class: \"w-[var(--skeleton-size-text-sm)]\" },\n { shape: \"heading\", size: \"sm\", class: \"w-[var(--skeleton-size-text-md)]\" },\n { shape: \"heading\", size: \"md\", class: \"w-[var(--skeleton-size-text-lg)]\" },\n { shape: \"heading\", size: \"lg\", class: \"w-[var(--skeleton-size-text-xl)]\" },\n { shape: \"heading\", size: \"xl\", class: \"w-full\" }, // fallback\n // Pill sizes\n { shape: \"pill\", size: \"xs\", class: \"h-[var(--skeleton-size-pill-xs-height)] w-[var(--skeleton-size-pill-xs-width)]\" },\n { shape: \"pill\", size: \"sm\", class: \"h-[var(--skeleton-size-pill-sm-height)] w-[var(--skeleton-size-pill-sm-width)]\" },\n { shape: \"pill\", size: \"md\", class: \"h-[var(--skeleton-size-pill-md-height)] w-[var(--skeleton-size-pill-md-width)]\" },\n { shape: \"pill\", size: \"lg\", class: \"h-[var(--skeleton-size-pill-lg-height)] w-[var(--skeleton-size-pill-lg-width)]\" },\n { shape: \"pill\", size: \"xl\", class: \"h-[var(--skeleton-size-pill-xl-height)] w-[var(--skeleton-size-pill-xl-width)]\" },\n ],\n defaultVariants: {\n shape: \"rectangle\",\n size: \"md\",\n animation: \"pulse\",\n },\n }\n)\n\nexport type SkeletonLoaderVariants = VariantProps<typeof skeletonLoaderVariants>\n","import type { SkeletonLoaderProps } from \"./SkeletonLoader.types\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { skeletonLoaderVariants } from \"./SkeletonLoader.variants\"\n\n/**\n * SkeletonLoader component for displaying placeholder loading states.\n *\n * Provides visual feedback during content loading with multiple shape\n * and animation variants.\n *\n * @example\n * ```tsx\n * // Text line placeholder\n * <SkeletonLoader shape=\"text\" size=\"md\" />\n *\n * // Avatar placeholder\n * <SkeletonLoader shape=\"circle\" size=\"lg\" />\n *\n * // Card content placeholder\n * <div className=\"space-y-2\">\n * <SkeletonLoader shape=\"heading\" size=\"lg\" />\n * <SkeletonLoader shape=\"text\" size=\"full\" />\n * <SkeletonLoader shape=\"text\" size=\"lg\" />\n * </div>\n * ```\n */\nfunction SkeletonLoader({\n className,\n shape,\n size,\n animation,\n ...props\n}: SkeletonLoaderProps) {\n return (\n <div\n aria-hidden=\"true\"\n className={cn(skeletonLoaderVariants({ shape, size, animation }), className)}\n data-slot=\"skeleton-loader\"\n {...props}\n />\n )\n}\n\nexport { SkeletonLoader, skeletonLoaderVariants }\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/primitives/SkeletonLoader/SkeletonLoader.variants.ts","../src/components/primitives/SkeletonLoader/SkeletonLoader.tsx"],"names":[],"mappings":"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","file":"chunk-NGX3ITG4.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * SkeletonLoader variants using CVA\n */\nexport const skeletonLoaderVariants = cva(\"bg-[color:var(--skeleton-bg)]\", {\n variants: {\n /**\n * Shape variant determines the skeleton's visual form\n */\n shape: {\n /** Rectangular shape with rounded corners (default) */\n rectangle: \"rounded-[var(--skeleton-shape-rectangle-border-radius)]\",\n /** Circular shape for avatars */\n circle: \"rounded-[var(--skeleton-shape-circle-border-radius)] aspect-[var(--skeleton-shape-circle-aspect-ratio)]\",\n /** Single line of text */\n text: \"h-[var(--skeleton-shape-text-height)] rounded-[var(--skeleton-shape-text-border-radius)]\",\n /** Heading text */\n heading: \"h-[var(--skeleton-shape-heading-height)] rounded-[var(--skeleton-shape-heading-border-radius)]\",\n /** Square shape */\n square: \"aspect-[var(--skeleton-shape-square-aspect-ratio)] rounded-[var(--skeleton-shape-square-border-radius)]\",\n /** Pill shape for tags/badges */\n pill: \"rounded-[var(--skeleton-shape-pill-border-radius)]\",\n },\n /**\n * Size preset for common use cases\n */\n size: {\n xs: \"\",\n sm: \"\",\n md: \"\",\n lg: \"\",\n xl: \"\",\n full: \"w-full\",\n },\n /**\n * Animation variant\n * - pulse: Subtle opacity fade (default)\n * - shimmer: Left-to-right shine effect\n * - wave: PrimeVue-style wave animation with gradient\n * - none: No animation\n */\n animation: {\n pulse: \"animate-pulse\",\n shimmer:\n \"relative overflow-hidden before:absolute before:inset-0 before:-translate-x-full before:animate-[shimmer_2s_infinite] before:bg-gradient-to-r before:from-transparent before:via-white/20 before:to-transparent\",\n wave: \"relative overflow-hidden before:absolute before:inset-0 before:animate-[wave_1.5s_ease-in-out_infinite] before:bg-gradient-to-r before:from-transparent before:via-[color:var(--skeleton-wave-color,rgba(255,255,255,0.4))] before:to-transparent\",\n none: \"animate-none\",\n },\n },\n compoundVariants: [\n // Rectangle sizes (default shape) — per Bowser audit SkeletonLoader: rectangle+md rendered 0x0 (no default dims)\n { shape: \"rectangle\", size: \"xs\", class: \"h-3 w-24\" },\n { shape: \"rectangle\", size: \"sm\", class: \"h-4 w-32\" },\n { shape: \"rectangle\", size: \"md\", class: \"h-5 w-48\" },\n { shape: \"rectangle\", size: \"lg\", class: \"h-8 w-64\" },\n { shape: \"rectangle\", size: \"xl\", class: \"h-12 w-80\" },\n // Circle sizes\n { shape: \"circle\", size: \"xs\", class: \"size-[var(--skeleton-size-circle-xs)]\" },\n { shape: \"circle\", size: \"sm\", class: \"size-[var(--skeleton-size-circle-sm)]\" },\n { shape: \"circle\", size: \"md\", class: \"size-[var(--skeleton-size-circle-md)]\" },\n { shape: \"circle\", size: \"lg\", class: \"size-[var(--skeleton-size-circle-lg)]\" },\n { shape: \"circle\", size: \"xl\", class: \"size-[var(--skeleton-size-circle-xl)]\" },\n // Square sizes\n // Reuse circle sizes for square since they are typically same dimensions\n { shape: \"square\", size: \"xs\", class: \"size-[var(--skeleton-size-circle-xs)]\" },\n { shape: \"square\", size: \"sm\", class: \"size-[var(--skeleton-size-circle-sm)]\" },\n { shape: \"square\", size: \"md\", class: \"size-[var(--skeleton-size-circle-md)]\" },\n { shape: \"square\", size: \"lg\", class: \"size-[var(--skeleton-size-circle-lg)]\" },\n { shape: \"square\", size: \"xl\", class: \"size-[var(--skeleton-size-circle-xl)]\" },\n // Text line sizes (width)\n { shape: \"text\", size: \"xs\", class: \"w-[var(--skeleton-size-text-xs)]\" },\n { shape: \"text\", size: \"sm\", class: \"w-[var(--skeleton-size-text-sm)]\" },\n { shape: \"text\", size: \"md\", class: \"w-[var(--skeleton-size-text-md)]\" },\n { shape: \"text\", size: \"lg\", class: \"w-[var(--skeleton-size-text-lg)]\" },\n { shape: \"text\", size: \"xl\", class: \"w-[var(--skeleton-size-text-xl)]\" },\n // Heading sizes (width) - reusing text widths but slightly adjusted or mapped if needed\n // For now mapping to text sizes but could be separate tokens if design demands\n { shape: \"heading\", size: \"xs\", class: \"w-[var(--skeleton-size-text-sm)]\" },\n { shape: \"heading\", size: \"sm\", class: \"w-[var(--skeleton-size-text-md)]\" },\n { shape: \"heading\", size: \"md\", class: \"w-[var(--skeleton-size-text-lg)]\" },\n { shape: \"heading\", size: \"lg\", class: \"w-[var(--skeleton-size-text-xl)]\" },\n { shape: \"heading\", size: \"xl\", class: \"w-full\" }, // fallback\n // Pill sizes\n { shape: \"pill\", size: \"xs\", class: \"h-[var(--skeleton-size-pill-xs-height)] w-[var(--skeleton-size-pill-xs-width)]\" },\n { shape: \"pill\", size: \"sm\", class: \"h-[var(--skeleton-size-pill-sm-height)] w-[var(--skeleton-size-pill-sm-width)]\" },\n { shape: \"pill\", size: \"md\", class: \"h-[var(--skeleton-size-pill-md-height)] w-[var(--skeleton-size-pill-md-width)]\" },\n { shape: \"pill\", size: \"lg\", class: \"h-[var(--skeleton-size-pill-lg-height)] w-[var(--skeleton-size-pill-lg-width)]\" },\n { shape: \"pill\", size: \"xl\", class: \"h-[var(--skeleton-size-pill-xl-height)] w-[var(--skeleton-size-pill-xl-width)]\" },\n ],\n defaultVariants: {\n shape: \"rectangle\",\n size: \"md\",\n animation: \"pulse\",\n },\n }\n)\n\nexport type SkeletonLoaderVariants = VariantProps<typeof skeletonLoaderVariants>\n","import type { SkeletonLoaderProps } from \"./SkeletonLoader.types\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { skeletonLoaderVariants } from \"./SkeletonLoader.variants\"\n\n/**\n * SkeletonLoader component for displaying placeholder loading states.\n *\n * Provides visual feedback during content loading with multiple shape\n * and animation variants.\n *\n * @example\n * ```tsx\n * // Text line placeholder\n * <SkeletonLoader shape=\"text\" size=\"md\" />\n *\n * // Avatar placeholder\n * <SkeletonLoader shape=\"circle\" size=\"lg\" />\n *\n * // Card content placeholder\n * <div className=\"space-y-2\">\n * <SkeletonLoader shape=\"heading\" size=\"lg\" />\n * <SkeletonLoader shape=\"text\" size=\"full\" />\n * <SkeletonLoader shape=\"text\" size=\"lg\" />\n * </div>\n * ```\n */\nfunction SkeletonLoader({\n className,\n shape,\n size,\n animation,\n ...props\n}: SkeletonLoaderProps) {\n return (\n <div\n aria-hidden=\"true\"\n className={cn(skeletonLoaderVariants({ shape, size, animation }), className)}\n data-slot=\"skeleton-loader\"\n {...props}\n />\n )\n}\n\nexport { SkeletonLoader, skeletonLoaderVariants }\n"]}
|