@etus/ui 0.4.0-beta.1 → 0.4.0-beta.3
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-23BHD62H.js +288 -0
- package/dist/chunk-23BHD62H.js.map +1 -0
- package/dist/chunk-2D6OFVPN.js +145 -0
- package/dist/chunk-2D6OFVPN.js.map +1 -0
- package/dist/chunk-2IFYXJ3H.js +107 -0
- package/dist/chunk-2IFYXJ3H.js.map +1 -0
- package/dist/chunk-2UGDLAYC.js +71 -0
- package/dist/chunk-2UGDLAYC.js.map +1 -0
- package/dist/chunk-2VHARFMD.js +670 -0
- package/dist/chunk-2VHARFMD.js.map +1 -0
- package/dist/chunk-2XJWE2XR.js +36 -0
- package/dist/chunk-2XJWE2XR.js.map +1 -0
- package/dist/chunk-3JIXCWJO.js +182 -0
- package/dist/chunk-3JIXCWJO.js.map +1 -0
- package/dist/chunk-3L5G7VI2.js +203 -0
- package/dist/chunk-3L5G7VI2.js.map +1 -0
- package/dist/chunk-3MJNJKAF.js +264 -0
- package/dist/chunk-3MJNJKAF.js.map +1 -0
- package/dist/chunk-3NFQXZHO.js +199 -0
- package/dist/chunk-3NFQXZHO.js.map +1 -0
- package/dist/chunk-3RJEA2MM.js +560 -0
- package/dist/chunk-3RJEA2MM.js.map +1 -0
- package/dist/chunk-3WOGOTOV.js +152 -0
- package/dist/chunk-3WOGOTOV.js.map +1 -0
- package/dist/chunk-43SINRHH.js +853 -0
- package/dist/chunk-43SINRHH.js.map +1 -0
- package/dist/chunk-46ESMCEQ.js +80 -0
- package/dist/chunk-46ESMCEQ.js.map +1 -0
- package/dist/chunk-4HRQX2IA.js +928 -0
- package/dist/chunk-4HRQX2IA.js.map +1 -0
- package/dist/chunk-4J6DHPYY.js +130 -0
- package/dist/chunk-4J6DHPYY.js.map +1 -0
- package/dist/chunk-4MQNDQ4O.js +62 -0
- package/dist/chunk-4MQNDQ4O.js.map +1 -0
- package/dist/chunk-4RSHPKHB.js +268 -0
- package/dist/chunk-4RSHPKHB.js.map +1 -0
- package/dist/chunk-4Y72SPNL.js +283 -0
- package/dist/chunk-4Y72SPNL.js.map +1 -0
- package/dist/chunk-53RWD44Z.js +90 -0
- package/dist/chunk-53RWD44Z.js.map +1 -0
- package/dist/chunk-57KTYE5H.js +273 -0
- package/dist/chunk-57KTYE5H.js.map +1 -0
- package/dist/chunk-5J5OL4IV.js +529 -0
- package/dist/chunk-5J5OL4IV.js.map +1 -0
- package/dist/chunk-5KTMPLDK.js +251 -0
- package/dist/chunk-5KTMPLDK.js.map +1 -0
- package/dist/chunk-5YDFC74M.js +310 -0
- package/dist/chunk-5YDFC74M.js.map +1 -0
- package/dist/chunk-5ZEYTBTU.js +288 -0
- package/dist/chunk-5ZEYTBTU.js.map +1 -0
- package/dist/chunk-5ZKKXLPF.js +177 -0
- package/dist/chunk-5ZKKXLPF.js.map +1 -0
- package/dist/chunk-65YSTUD2.js +206 -0
- package/dist/chunk-65YSTUD2.js.map +1 -0
- package/dist/chunk-6GWO7JNP.js +438 -0
- package/dist/chunk-6GWO7JNP.js.map +1 -0
- package/dist/chunk-6SHOL6WR.js +163 -0
- package/dist/chunk-6SHOL6WR.js.map +1 -0
- package/dist/chunk-6SZRWNPT.js +67 -0
- package/dist/chunk-6SZRWNPT.js.map +1 -0
- package/dist/chunk-6VCJU6XD.js +19 -0
- package/dist/chunk-6VCJU6XD.js.map +1 -0
- package/dist/chunk-6XY7QYVR.js +812 -0
- package/dist/chunk-6XY7QYVR.js.map +1 -0
- package/dist/chunk-6Z73ZQOP.js +3 -0
- package/dist/chunk-6Z73ZQOP.js.map +1 -0
- package/dist/chunk-6ZAMTPGN.js +309 -0
- package/dist/chunk-6ZAMTPGN.js.map +1 -0
- package/dist/chunk-75QBUI2P.js +4497 -0
- package/dist/chunk-75QBUI2P.js.map +1 -0
- package/dist/chunk-7BAL24EU.js +204 -0
- package/dist/chunk-7BAL24EU.js.map +1 -0
- package/dist/chunk-7I6KK6QE.js +411 -0
- package/dist/chunk-7I6KK6QE.js.map +1 -0
- package/dist/chunk-7QDWREVG.js +342 -0
- package/dist/chunk-7QDWREVG.js.map +1 -0
- package/dist/chunk-7RTHGI6E.js +154 -0
- package/dist/chunk-7RTHGI6E.js.map +1 -0
- package/dist/chunk-7Y2UQMX6.js +524 -0
- package/dist/chunk-7Y2UQMX6.js.map +1 -0
- package/dist/chunk-7ZJ32KRQ.js +100 -0
- package/dist/chunk-7ZJ32KRQ.js.map +1 -0
- package/dist/chunk-AEE5GDNA.js +220 -0
- package/dist/chunk-AEE5GDNA.js.map +1 -0
- package/dist/chunk-AEHYYTFW.js +70 -0
- package/dist/chunk-AEHYYTFW.js.map +1 -0
- package/dist/chunk-AFCSDND5.js +58 -0
- package/dist/chunk-AFCSDND5.js.map +1 -0
- package/dist/chunk-AR3OXNPL.js +70 -0
- package/dist/chunk-AR3OXNPL.js.map +1 -0
- package/dist/chunk-ARNVOHVW.js +103 -0
- package/dist/chunk-ARNVOHVW.js.map +1 -0
- package/dist/chunk-ATIEGLR2.js +3 -0
- package/dist/chunk-ATIEGLR2.js.map +1 -0
- package/dist/chunk-AV5YQ2Z4.js +515 -0
- package/dist/chunk-AV5YQ2Z4.js.map +1 -0
- package/dist/chunk-AWWBBMMY.js +1070 -0
- package/dist/chunk-AWWBBMMY.js.map +1 -0
- package/dist/chunk-AZANPNLR.js +134 -0
- package/dist/chunk-AZANPNLR.js.map +1 -0
- package/dist/chunk-B3BDIM4H.js +137 -0
- package/dist/chunk-B3BDIM4H.js.map +1 -0
- package/dist/chunk-B6KQKQ4S.js +774 -0
- package/dist/chunk-B6KQKQ4S.js.map +1 -0
- package/dist/chunk-B7ZLPQSO.js +181 -0
- package/dist/chunk-B7ZLPQSO.js.map +1 -0
- package/dist/chunk-BECPEVUL.js +115 -0
- package/dist/chunk-BECPEVUL.js.map +1 -0
- package/dist/chunk-BFBGESUI.js +217 -0
- package/dist/chunk-BFBGESUI.js.map +1 -0
- package/dist/chunk-BITATKTH.js +3 -0
- package/dist/chunk-BITATKTH.js.map +1 -0
- package/dist/chunk-BIUVOZQG.js +370 -0
- package/dist/chunk-BIUVOZQG.js.map +1 -0
- package/dist/chunk-BQMQULAC.js +37 -0
- package/dist/chunk-BQMQULAC.js.map +1 -0
- package/dist/chunk-BWGZKU3I.js +3 -0
- package/dist/chunk-BWGZKU3I.js.map +1 -0
- package/dist/chunk-CCUCWL6M.js +1203 -0
- package/dist/chunk-CCUCWL6M.js.map +1 -0
- package/dist/chunk-CKD4UBV6.js +138 -0
- package/dist/chunk-CKD4UBV6.js.map +1 -0
- package/dist/chunk-CNRV2IGH.js +111 -0
- package/dist/chunk-CNRV2IGH.js.map +1 -0
- package/dist/chunk-CP2PEDG2.js +383 -0
- package/dist/chunk-CP2PEDG2.js.map +1 -0
- package/dist/chunk-CSXT7SKR.js +139 -0
- package/dist/chunk-CSXT7SKR.js.map +1 -0
- package/dist/chunk-CUWQUGGB.js +228 -0
- package/dist/chunk-CUWQUGGB.js.map +1 -0
- package/dist/chunk-CXHA5D3I.js +170 -0
- package/dist/chunk-CXHA5D3I.js.map +1 -0
- package/dist/chunk-CYIFWQ5Y.js +197 -0
- package/dist/chunk-CYIFWQ5Y.js.map +1 -0
- package/dist/chunk-D2V2HKLX.js +249 -0
- package/dist/chunk-D2V2HKLX.js.map +1 -0
- package/dist/chunk-D5DM6GZB.js +204 -0
- package/dist/chunk-D5DM6GZB.js.map +1 -0
- package/dist/chunk-DL7D5F7B.js +63 -0
- package/dist/chunk-DL7D5F7B.js.map +1 -0
- package/dist/chunk-DNAGXK2C.js +91 -0
- package/dist/chunk-DNAGXK2C.js.map +1 -0
- package/dist/chunk-DYDXGWH2.js +109 -0
- package/dist/chunk-DYDXGWH2.js.map +1 -0
- package/dist/chunk-DZALMUQD.js +482 -0
- package/dist/chunk-DZALMUQD.js.map +1 -0
- package/dist/chunk-E27SQ54A.js +122 -0
- package/dist/chunk-E27SQ54A.js.map +1 -0
- package/dist/chunk-ESLSPRYA.js +875 -0
- package/dist/chunk-ESLSPRYA.js.map +1 -0
- package/dist/chunk-EVUHEBWX.js +35 -0
- package/dist/chunk-EVUHEBWX.js.map +1 -0
- package/dist/chunk-F6ZKBK5B.js +265 -0
- package/dist/chunk-F6ZKBK5B.js.map +1 -0
- package/dist/chunk-F7XARQUW.js +82 -0
- package/dist/chunk-F7XARQUW.js.map +1 -0
- package/dist/chunk-FCSYPOHF.js +77 -0
- package/dist/chunk-FCSYPOHF.js.map +1 -0
- package/dist/chunk-FDES5YDF.js +159 -0
- package/dist/chunk-FDES5YDF.js.map +1 -0
- package/dist/chunk-FPCRGFNY.js +776 -0
- package/dist/chunk-FPCRGFNY.js.map +1 -0
- package/dist/chunk-FRDYXDAE.js +69 -0
- package/dist/chunk-FRDYXDAE.js.map +1 -0
- package/dist/chunk-FSMHI7DW.js +291 -0
- package/dist/chunk-FSMHI7DW.js.map +1 -0
- package/dist/chunk-FUCQNVJL.js +90 -0
- package/dist/chunk-FUCQNVJL.js.map +1 -0
- package/dist/chunk-FYJHWYPM.js +539 -0
- package/dist/chunk-FYJHWYPM.js.map +1 -0
- package/dist/chunk-G2V7D7VC.js +371 -0
- package/dist/chunk-G2V7D7VC.js.map +1 -0
- package/dist/chunk-G5TWK7L3.js +667 -0
- package/dist/chunk-G5TWK7L3.js.map +1 -0
- package/dist/chunk-G6SIIN2B.js +3 -0
- package/dist/chunk-G6SIIN2B.js.map +1 -0
- package/dist/chunk-GAP3OZR7.js +223 -0
- package/dist/chunk-GAP3OZR7.js.map +1 -0
- package/dist/chunk-GBTVAO4V.js +316 -0
- package/dist/chunk-GBTVAO4V.js.map +1 -0
- package/dist/chunk-GKMR5SVC.js +97 -0
- package/dist/chunk-GKMR5SVC.js.map +1 -0
- package/dist/chunk-GL56KIFL.js +79 -0
- package/dist/chunk-GL56KIFL.js.map +1 -0
- package/dist/chunk-GLEKBJLR.js +226 -0
- package/dist/chunk-GLEKBJLR.js.map +1 -0
- package/dist/chunk-GPW57XOW.js +80 -0
- package/dist/chunk-GPW57XOW.js.map +1 -0
- package/dist/chunk-H4ANCFZG.js +233 -0
- package/dist/chunk-H4ANCFZG.js.map +1 -0
- package/dist/chunk-HAEZLC7V.js +122 -0
- package/dist/chunk-HAEZLC7V.js.map +1 -0
- package/dist/chunk-HIEOL77G.js +460 -0
- package/dist/chunk-HIEOL77G.js.map +1 -0
- package/dist/chunk-HKXQLWGR.js +335 -0
- package/dist/chunk-HKXQLWGR.js.map +1 -0
- package/dist/chunk-HNYBLROK.js +469 -0
- package/dist/chunk-HNYBLROK.js.map +1 -0
- package/dist/chunk-HRNDJU7D.js +5 -5
- package/dist/chunk-HRNDJU7D.js.map +1 -1
- package/dist/chunk-HXHB2CK5.js +108 -0
- package/dist/chunk-HXHB2CK5.js.map +1 -0
- package/dist/chunk-I7ZLEC7Y.js +128 -0
- package/dist/chunk-I7ZLEC7Y.js.map +1 -0
- package/dist/chunk-ICAQYWCX.js +153 -0
- package/dist/chunk-ICAQYWCX.js.map +1 -0
- package/dist/chunk-IFHF4UES.js +387 -0
- package/dist/chunk-IFHF4UES.js.map +1 -0
- package/dist/chunk-IRIIK3BU.js +215 -0
- package/dist/chunk-IRIIK3BU.js.map +1 -0
- package/dist/chunk-IRKDMISK.js +62 -0
- package/dist/chunk-IRKDMISK.js.map +1 -0
- package/dist/chunk-IXJHHR3Y.js +3 -0
- package/dist/chunk-IXJHHR3Y.js.map +1 -0
- package/dist/chunk-JDTAG7KZ.js +33 -0
- package/dist/chunk-JDTAG7KZ.js.map +1 -0
- package/dist/chunk-JLVL76SW.js +544 -0
- package/dist/chunk-JLVL76SW.js.map +1 -0
- package/dist/chunk-JPA2VQRW.js +119 -0
- package/dist/chunk-JPA2VQRW.js.map +1 -0
- package/dist/chunk-JWXK4TMX.js +106 -0
- package/dist/chunk-JWXK4TMX.js.map +1 -0
- package/dist/chunk-K3J7YLL4.js +153 -0
- package/dist/chunk-K3J7YLL4.js.map +1 -0
- package/dist/chunk-K45MMHLA.js +258 -0
- package/dist/chunk-K45MMHLA.js.map +1 -0
- package/dist/chunk-KNH7JW6E.js +142 -0
- package/dist/chunk-KNH7JW6E.js.map +1 -0
- package/dist/chunk-KOTCWE7V.js +345 -0
- package/dist/chunk-KOTCWE7V.js.map +1 -0
- package/dist/chunk-KR3IVNQH.js +402 -0
- package/dist/chunk-KR3IVNQH.js.map +1 -0
- package/dist/chunk-KRHL3YH2.js +3 -0
- package/dist/chunk-KRHL3YH2.js.map +1 -0
- package/dist/chunk-KXSJSLPJ.js +354 -0
- package/dist/chunk-KXSJSLPJ.js.map +1 -0
- package/dist/chunk-L2XR5IFJ.js +103 -0
- package/dist/chunk-L2XR5IFJ.js.map +1 -0
- package/dist/chunk-LATTRPLQ.js +286 -0
- package/dist/chunk-LATTRPLQ.js.map +1 -0
- package/dist/chunk-LFN7UHDT.js +122 -0
- package/dist/chunk-LFN7UHDT.js.map +1 -0
- package/dist/chunk-LMTNDUIP.js +96 -0
- package/dist/chunk-LMTNDUIP.js.map +1 -0
- package/dist/chunk-LNY2EXOV.js +349 -0
- package/dist/chunk-LNY2EXOV.js.map +1 -0
- package/dist/chunk-LQVQ7SHG.js +226 -0
- package/dist/chunk-LQVQ7SHG.js.map +1 -0
- package/dist/chunk-MDQFZEIC.js +174 -0
- package/dist/chunk-MDQFZEIC.js.map +1 -0
- package/dist/chunk-MK6ID2HI.js +532 -0
- package/dist/chunk-MK6ID2HI.js.map +1 -0
- package/dist/chunk-MQ2446N7.js +216 -0
- package/dist/chunk-MQ2446N7.js.map +1 -0
- package/dist/chunk-MVOENLOZ.js +3 -0
- package/dist/chunk-MVOENLOZ.js.map +1 -0
- package/dist/chunk-N23L6UDK.js +108 -0
- package/dist/chunk-N23L6UDK.js.map +1 -0
- package/dist/chunk-N3I6GA4I.js +137 -0
- package/dist/chunk-N3I6GA4I.js.map +1 -0
- package/dist/chunk-N4UTBJRY.js +72 -0
- package/dist/chunk-N4UTBJRY.js.map +1 -0
- package/dist/chunk-NCLOPI6U.js +347 -0
- package/dist/chunk-NCLOPI6U.js.map +1 -0
- package/dist/chunk-NGR4HFVA.js +136 -0
- package/dist/chunk-NGR4HFVA.js.map +1 -0
- package/dist/chunk-NK5Q2YRM.js +70 -0
- package/dist/chunk-NK5Q2YRM.js.map +1 -0
- package/dist/chunk-NNOGFX66.js +3 -0
- package/dist/chunk-NNOGFX66.js.map +1 -0
- package/dist/chunk-NWFRMVI2.js +147 -0
- package/dist/chunk-NWFRMVI2.js.map +1 -0
- package/dist/chunk-NWVYQYKK.js +75 -0
- package/dist/chunk-NWVYQYKK.js.map +1 -0
- package/dist/chunk-NXQ25PKF.js +318 -0
- package/dist/chunk-NXQ25PKF.js.map +1 -0
- package/dist/chunk-OEXQ2MOY.js +338 -0
- package/dist/chunk-OEXQ2MOY.js.map +1 -0
- package/dist/chunk-ONTUN5XH.js +57 -0
- package/dist/chunk-ONTUN5XH.js.map +1 -0
- package/dist/chunk-OQCGQG47.js +83 -0
- package/dist/chunk-OQCGQG47.js.map +1 -0
- package/dist/chunk-OWIFNJXZ.js +167 -0
- package/dist/chunk-OWIFNJXZ.js.map +1 -0
- package/dist/chunk-PFVT27B5.js +92 -0
- package/dist/chunk-PFVT27B5.js.map +1 -0
- package/dist/chunk-PGTCXLGY.js +67 -0
- package/dist/chunk-PGTCXLGY.js.map +1 -0
- package/dist/chunk-PK5O62XD.js +58 -0
- package/dist/chunk-PK5O62XD.js.map +1 -0
- package/dist/chunk-PLLJNHWU.js +175 -0
- package/dist/chunk-PLLJNHWU.js.map +1 -0
- package/dist/chunk-POZNQWZE.js +995 -0
- package/dist/chunk-POZNQWZE.js.map +1 -0
- package/dist/chunk-PWCMCMDN.js +67 -0
- package/dist/chunk-PWCMCMDN.js.map +1 -0
- package/dist/chunk-Q43KJP5A.js +294 -0
- package/dist/chunk-Q43KJP5A.js.map +1 -0
- package/dist/chunk-QHKOBGLW.js +119 -0
- package/dist/chunk-QHKOBGLW.js.map +1 -0
- package/dist/chunk-QSY52N3A.js +1062 -0
- package/dist/chunk-QSY52N3A.js.map +1 -0
- package/dist/chunk-QUENPT24.js +100 -0
- package/dist/chunk-QUENPT24.js.map +1 -0
- package/dist/chunk-QWRHPNBY.js +924 -0
- package/dist/chunk-QWRHPNBY.js.map +1 -0
- package/dist/chunk-RPV77BCQ.js +238 -0
- package/dist/chunk-RPV77BCQ.js.map +1 -0
- package/dist/chunk-S6ORCWM2.js +205 -0
- package/dist/chunk-S6ORCWM2.js.map +1 -0
- package/dist/chunk-SAKW2OKH.js +237 -0
- package/dist/chunk-SAKW2OKH.js.map +1 -0
- package/dist/chunk-SHS6EGWS.js +226 -0
- package/dist/chunk-SHS6EGWS.js.map +1 -0
- package/dist/chunk-SM4AZOEP.js +222 -0
- package/dist/chunk-SM4AZOEP.js.map +1 -0
- package/dist/chunk-SXJMERQL.js +40 -0
- package/dist/chunk-SXJMERQL.js.map +1 -0
- package/dist/chunk-TAZPML2P.js +198 -0
- package/dist/chunk-TAZPML2P.js.map +1 -0
- package/dist/chunk-TQBUBD3E.js +100 -0
- package/dist/chunk-TQBUBD3E.js.map +1 -0
- package/dist/chunk-U4H3XHSI.js +305 -0
- package/dist/chunk-U4H3XHSI.js.map +1 -0
- package/dist/chunk-U74PNG4S.js +167 -0
- package/dist/chunk-U74PNG4S.js.map +1 -0
- package/dist/chunk-U77MCUVE.js +3 -0
- package/dist/chunk-U77MCUVE.js.map +1 -0
- package/dist/chunk-UA3OQAHJ.js +140 -0
- package/dist/chunk-UA3OQAHJ.js.map +1 -0
- package/dist/chunk-UCGT2IR4.js +297 -0
- package/dist/chunk-UCGT2IR4.js.map +1 -0
- package/dist/chunk-UFRMZ3M6.js +284 -0
- package/dist/chunk-UFRMZ3M6.js.map +1 -0
- package/dist/chunk-UKC3Q6OA.js +159 -0
- package/dist/chunk-UKC3Q6OA.js.map +1 -0
- package/dist/chunk-UOHVT5KN.js +3 -0
- package/dist/chunk-UOHVT5KN.js.map +1 -0
- package/dist/chunk-UP2VWCW5.js +2 -7
- package/dist/chunk-UP2VWCW5.js.map +1 -1
- package/dist/chunk-V7WEN4SD.js +444 -0
- package/dist/chunk-V7WEN4SD.js.map +1 -0
- package/dist/chunk-VFALJSXB.js +373 -0
- package/dist/chunk-VFALJSXB.js.map +1 -0
- package/dist/chunk-VJITPUUS.js +225 -0
- package/dist/chunk-VJITPUUS.js.map +1 -0
- package/dist/chunk-VKDN66VL.js +129 -0
- package/dist/chunk-VKDN66VL.js.map +1 -0
- package/dist/chunk-VOCA4KZB.js +655 -0
- package/dist/chunk-VOCA4KZB.js.map +1 -0
- package/dist/chunk-VT4IMHGE.js +292 -0
- package/dist/chunk-VT4IMHGE.js.map +1 -0
- package/dist/chunk-VWW3DJKI.js +53 -0
- package/dist/chunk-VWW3DJKI.js.map +1 -0
- package/dist/chunk-VZZ3HP7G.js +230 -0
- package/dist/chunk-VZZ3HP7G.js.map +1 -0
- package/dist/chunk-W3QUVCRK.js +54 -0
- package/dist/chunk-W3QUVCRK.js.map +1 -0
- package/dist/chunk-W4NC5CU5.js +175 -0
- package/dist/chunk-W4NC5CU5.js.map +1 -0
- package/dist/chunk-WBE6VQOO.js +235 -0
- package/dist/chunk-WBE6VQOO.js.map +1 -0
- package/dist/chunk-WG5IYG7X.js +3 -0
- package/dist/chunk-WG5IYG7X.js.map +1 -0
- package/dist/chunk-WH7Y2MAY.js +24 -0
- package/dist/chunk-WH7Y2MAY.js.map +1 -0
- package/dist/chunk-X4YUWX7H.js +146 -0
- package/dist/chunk-X4YUWX7H.js.map +1 -0
- package/dist/chunk-XETKCF73.js +74 -0
- package/dist/chunk-XETKCF73.js.map +1 -0
- package/dist/chunk-XPVKJIWY.js +55 -0
- package/dist/chunk-XPVKJIWY.js.map +1 -0
- package/dist/chunk-XV6NXXXP.js +206 -0
- package/dist/chunk-XV6NXXXP.js.map +1 -0
- package/dist/chunk-XXFKDEFH.js +143 -0
- package/dist/chunk-XXFKDEFH.js.map +1 -0
- package/dist/chunk-Y555RCRZ.js +26 -0
- package/dist/chunk-Y555RCRZ.js.map +1 -0
- package/dist/chunk-Y5GO2F6P.js +188 -0
- package/dist/chunk-Y5GO2F6P.js.map +1 -0
- package/dist/chunk-YCZ6M6EF.js +912 -0
- package/dist/chunk-YCZ6M6EF.js.map +1 -0
- package/dist/chunk-YMYXWHDU.js +96 -0
- package/dist/chunk-YMYXWHDU.js.map +1 -0
- package/dist/chunk-YTGYSNFR.js +101 -0
- package/dist/chunk-YTGYSNFR.js.map +1 -0
- package/dist/chunk-YZY35OHQ.js +279 -0
- package/dist/chunk-YZY35OHQ.js.map +1 -0
- package/dist/chunk-Z3FL7LEK.js +401 -0
- package/dist/chunk-Z3FL7LEK.js.map +1 -0
- package/dist/chunk-ZARZYMBM.js +95 -0
- package/dist/chunk-ZARZYMBM.js.map +1 -0
- package/dist/chunk-ZJVZ3LQS.js +199 -0
- package/dist/chunk-ZJVZ3LQS.js.map +1 -0
- package/dist/chunk-ZKK7L7H7.js +78 -0
- package/dist/chunk-ZKK7L7H7.js.map +1 -0
- package/dist/chunk-ZPCELVWJ.js +127 -0
- package/dist/chunk-ZPCELVWJ.js.map +1 -0
- package/dist/chunk-ZUFM33AV.js +113 -0
- package/dist/chunk-ZUFM33AV.js.map +1 -0
- package/dist/components/advanced/AssetManager/index.js +5 -0
- package/dist/components/advanced/AssetManager/index.js.map +1 -0
- package/dist/components/advanced/Calendar/index.js +10 -0
- package/dist/components/advanced/Calendar/index.js.map +1 -0
- package/dist/components/advanced/Command/index.js +6 -0
- package/dist/components/advanced/Command/index.js.map +1 -0
- package/dist/components/advanced/DragAndDrop/index.js +5 -0
- package/dist/components/advanced/DragAndDrop/index.js.map +1 -0
- package/dist/components/advanced/ErrorBoundary/index.js +5 -0
- package/dist/components/advanced/ErrorBoundary/index.js.map +1 -0
- package/dist/components/advanced/EventCalendar/index.js +10 -0
- package/dist/components/advanced/EventCalendar/index.js.map +1 -0
- package/dist/components/advanced/FileDropzone/index.js +5 -0
- package/dist/components/advanced/FileDropzone/index.js.map +1 -0
- package/dist/components/advanced/FilePreview/index.js +5 -0
- package/dist/components/advanced/FilePreview/index.js.map +1 -0
- package/dist/components/advanced/FileUpload/index.js +5 -0
- package/dist/components/advanced/FileUpload/index.js.map +1 -0
- package/dist/components/advanced/FilterBuilder/index.js +13 -0
- package/dist/components/advanced/FilterBuilder/index.js.map +1 -0
- package/dist/components/advanced/MarkdownEditor/index.js +9 -0
- package/dist/components/advanced/MarkdownEditor/index.js.map +1 -0
- package/dist/components/advanced/Portal/index.js +4 -0
- package/dist/components/advanced/Portal/index.js.map +1 -0
- package/dist/components/advanced/RichTextEditor/index.js +7 -0
- package/dist/components/advanced/RichTextEditor/index.js.map +1 -0
- package/dist/components/advanced/Search/index.js +5 -0
- package/dist/components/advanced/Search/index.js.map +1 -0
- package/dist/components/advanced/SortableList/index.js +5 -0
- package/dist/components/advanced/SortableList/index.js.map +1 -0
- package/dist/components/advanced/VersionControl/index.js +5 -0
- package/dist/components/advanced/VersionControl/index.js.map +1 -0
- package/dist/components/advanced/index.js +32 -0
- package/dist/components/advanced/index.js.map +1 -0
- package/dist/components/data-display/Accordion/index.js +5 -0
- package/dist/components/data-display/Accordion/index.js.map +1 -0
- package/dist/components/data-display/AreaChart/index.js +6 -0
- package/dist/components/data-display/AreaChart/index.js.map +1 -0
- package/dist/components/data-display/Banner/index.js +5 -0
- package/dist/components/data-display/Banner/index.js.map +1 -0
- package/dist/components/data-display/BarChart/index.js +6 -0
- package/dist/components/data-display/BarChart/index.js.map +1 -0
- package/dist/components/data-display/BarList/index.js +5 -0
- package/dist/components/data-display/BarList/index.js.map +1 -0
- package/dist/components/data-display/Callout/index.js +5 -0
- package/dist/components/data-display/Callout/index.js.map +1 -0
- package/dist/components/data-display/Carousel/index.js +10 -0
- package/dist/components/data-display/Carousel/index.js.map +1 -0
- package/dist/components/data-display/CategoryBar/index.js +6 -0
- package/dist/components/data-display/CategoryBar/index.js.map +1 -0
- package/dist/components/data-display/Chart/index.js +5 -0
- package/dist/components/data-display/Chart/index.js.map +1 -0
- package/dist/components/data-display/ChartCard/index.js +11 -0
- package/dist/components/data-display/ChartCard/index.js.map +1 -0
- package/dist/components/data-display/ChartLegend/index.js +6 -0
- package/dist/components/data-display/ChartLegend/index.js.map +1 -0
- package/dist/components/data-display/ComboChart/index.js +6 -0
- package/dist/components/data-display/ComboChart/index.js.map +1 -0
- package/dist/components/data-display/DashboardCard/index.js +6 -0
- package/dist/components/data-display/DashboardCard/index.js.map +1 -0
- package/dist/components/data-display/DashboardFilterbar/index.js +111 -0
- package/dist/components/data-display/DashboardFilterbar/index.js.map +1 -0
- package/dist/components/data-display/DataTable/FilterBuilder/index.js +13 -0
- package/dist/components/data-display/DataTable/FilterBuilder/index.js.map +1 -0
- package/dist/components/data-display/DataTable/index.js +22 -0
- package/dist/components/data-display/DataTable/index.js.map +1 -0
- package/dist/components/data-display/DeltaBar/index.js +6 -0
- package/dist/components/data-display/DeltaBar/index.js.map +1 -0
- package/dist/components/data-display/EmptyState/index.js +5 -0
- package/dist/components/data-display/EmptyState/index.js.map +1 -0
- package/dist/components/data-display/Feed/index.js +5 -0
- package/dist/components/data-display/Feed/index.js.map +1 -0
- package/dist/components/data-display/FunnelChart/index.js +6 -0
- package/dist/components/data-display/FunnelChart/index.js.map +1 -0
- package/dist/components/data-display/GaugeChart/index.js +5 -0
- package/dist/components/data-display/GaugeChart/index.js.map +1 -0
- package/dist/components/data-display/Heatmap/index.js +6 -0
- package/dist/components/data-display/Heatmap/index.js.map +1 -0
- package/dist/components/data-display/HoverCard/index.js +5 -0
- package/dist/components/data-display/HoverCard/index.js.map +1 -0
- package/dist/components/data-display/ImageGallery/index.js +6 -0
- package/dist/components/data-display/ImageGallery/index.js.map +1 -0
- package/dist/components/data-display/Item/index.js +6 -0
- package/dist/components/data-display/Item/index.js.map +1 -0
- package/dist/components/data-display/KPICard/index.js +11 -0
- package/dist/components/data-display/KPICard/index.js.map +1 -0
- package/dist/components/data-display/Lightbox/index.js +5 -0
- package/dist/components/data-display/Lightbox/index.js.map +1 -0
- package/dist/components/data-display/LineChart/index.js +6 -0
- package/dist/components/data-display/LineChart/index.js.map +1 -0
- package/dist/components/data-display/List/index.js +10 -0
- package/dist/components/data-display/List/index.js.map +1 -0
- package/dist/components/data-display/MarkerBar/index.js +6 -0
- package/dist/components/data-display/MarkerBar/index.js.map +1 -0
- package/dist/components/data-display/PieChart/index.js +6 -0
- package/dist/components/data-display/PieChart/index.js.map +1 -0
- package/dist/components/data-display/RadarChart/index.js +6 -0
- package/dist/components/data-display/RadarChart/index.js.map +1 -0
- package/dist/components/data-display/RadialChart/index.js +6 -0
- package/dist/components/data-display/RadialChart/index.js.map +1 -0
- package/dist/components/data-display/ScatterChart/index.js +6 -0
- package/dist/components/data-display/ScatterChart/index.js.map +1 -0
- package/dist/components/data-display/SingleStat/index.js +6 -0
- package/dist/components/data-display/SingleStat/index.js.map +1 -0
- package/dist/components/data-display/Sparkline/index.js +5 -0
- package/dist/components/data-display/Sparkline/index.js.map +1 -0
- package/dist/components/data-display/Table/index.js +5 -0
- package/dist/components/data-display/Table/index.js.map +1 -0
- package/dist/components/data-display/Timeline/index.js +5 -0
- package/dist/components/data-display/Timeline/index.js.map +1 -0
- package/dist/components/data-display/Tracker/index.js +6 -0
- package/dist/components/data-display/Tracker/index.js.map +1 -0
- package/dist/components/data-display/VirtualTable/index.js +8 -0
- package/dist/components/data-display/VirtualTable/index.js.map +1 -0
- package/dist/components/data-display/index.js +63 -0
- package/dist/components/data-display/index.js.map +1 -0
- package/dist/components/feedback/Alert/index.js +5 -0
- package/dist/components/feedback/Alert/index.js.map +1 -0
- package/dist/components/feedback/AlertDialog/index.js +10 -0
- package/dist/components/feedback/AlertDialog/index.js.map +1 -0
- package/dist/components/feedback/ConfirmModal/index.js +11 -0
- package/dist/components/feedback/ConfirmModal/index.js.map +1 -0
- package/dist/components/feedback/Dialog/index.js +5 -0
- package/dist/components/feedback/Dialog/index.js.map +1 -0
- package/dist/components/feedback/ErrorPage/index.js +5 -0
- package/dist/components/feedback/ErrorPage/index.js.map +1 -0
- package/dist/components/feedback/FocusTrap/index.js +5 -0
- package/dist/components/feedback/FocusTrap/index.js.map +1 -0
- package/dist/components/feedback/Message/index.js +5 -0
- package/dist/components/feedback/Message/index.js.map +1 -0
- package/dist/components/feedback/Modal/index.js +5 -0
- package/dist/components/feedback/Modal/index.js.map +1 -0
- package/dist/components/feedback/Notification/index.js +7 -0
- package/dist/components/feedback/Notification/index.js.map +1 -0
- package/dist/components/feedback/Popover/index.js +5 -0
- package/dist/components/feedback/Popover/index.js.map +1 -0
- package/dist/components/feedback/Toast/index.js +4 -0
- package/dist/components/feedback/Toast/index.js.map +1 -0
- package/dist/components/feedback/Tooltip/index.js +5 -0
- package/dist/components/feedback/Tooltip/index.js.map +1 -0
- package/dist/components/feedback/UpdatesWidget/index.js +5 -0
- package/dist/components/feedback/UpdatesWidget/index.js.map +1 -0
- package/dist/components/feedback/index.js +23 -0
- package/dist/components/feedback/index.js.map +1 -0
- package/dist/components/forms/Autocomplete/index.js +5 -0
- package/dist/components/forms/Autocomplete/index.js.map +1 -0
- package/dist/components/forms/Checkbox/index.js +5 -0
- package/dist/components/forms/Checkbox/index.js.map +1 -0
- package/dist/components/forms/CheckboxGroup/index.js +6 -0
- package/dist/components/forms/CheckboxGroup/index.js.map +1 -0
- package/dist/components/forms/ColorPicker/index.js +6 -0
- package/dist/components/forms/ColorPicker/index.js.map +1 -0
- package/dist/components/forms/Combobox/index.js +5 -0
- package/dist/components/forms/Combobox/index.js.map +1 -0
- package/dist/components/forms/DatePicker/index.js +13 -0
- package/dist/components/forms/DatePicker/index.js.map +1 -0
- package/dist/components/forms/DateRangePicker/index.js +13 -0
- package/dist/components/forms/DateRangePicker/index.js.map +1 -0
- package/dist/components/forms/EmailInput/index.js +7 -0
- package/dist/components/forms/EmailInput/index.js.map +1 -0
- package/dist/components/forms/ErrorMessage/index.js +5 -0
- package/dist/components/forms/ErrorMessage/index.js.map +1 -0
- package/dist/components/forms/Field/index.js +7 -0
- package/dist/components/forms/Field/index.js.map +1 -0
- package/dist/components/forms/FloatLabel/index.js +5 -0
- package/dist/components/forms/FloatLabel/index.js.map +1 -0
- package/dist/components/forms/Form/index.js +6 -0
- package/dist/components/forms/Form/index.js.map +1 -0
- package/dist/components/forms/FormValidation/index.js +5 -0
- package/dist/components/forms/FormValidation/index.js.map +1 -0
- package/dist/components/forms/HelpText/index.js +5 -0
- package/dist/components/forms/HelpText/index.js.map +1 -0
- package/dist/components/forms/IftaLabel/index.js +5 -0
- package/dist/components/forms/IftaLabel/index.js.map +1 -0
- package/dist/components/forms/InputGroup/index.js +13 -0
- package/dist/components/forms/InputGroup/index.js.map +1 -0
- package/dist/components/forms/InputOTP/index.js +5 -0
- package/dist/components/forms/InputOTP/index.js.map +1 -0
- package/dist/components/forms/InputOTPField/index.js +9 -0
- package/dist/components/forms/InputOTPField/index.js.map +1 -0
- package/dist/components/forms/MultiSelect/index.js +5 -0
- package/dist/components/forms/MultiSelect/index.js.map +1 -0
- package/dist/components/forms/NativeSelect/index.js +5 -0
- package/dist/components/forms/NativeSelect/index.js.map +1 -0
- package/dist/components/forms/NumberInput/index.js +6 -0
- package/dist/components/forms/NumberInput/index.js.map +1 -0
- package/dist/components/forms/PasswordInput/index.js +7 -0
- package/dist/components/forms/PasswordInput/index.js.map +1 -0
- package/dist/components/forms/PaymentInput/index.js +5 -0
- package/dist/components/forms/PaymentInput/index.js.map +1 -0
- package/dist/components/forms/PhoneInput/index.js +5 -0
- package/dist/components/forms/PhoneInput/index.js.map +1 -0
- package/dist/components/forms/RadioButton/index.js +6 -0
- package/dist/components/forms/RadioButton/index.js.map +1 -0
- package/dist/components/forms/RadioCardGroup/index.js +5 -0
- package/dist/components/forms/RadioCardGroup/index.js.map +1 -0
- package/dist/components/forms/RadioGroup/index.js +6 -0
- package/dist/components/forms/RadioGroup/index.js.map +1 -0
- package/dist/components/forms/Rating/index.js +5 -0
- package/dist/components/forms/Rating/index.js.map +1 -0
- package/dist/components/forms/SearchInput/index.js +7 -0
- package/dist/components/forms/SearchInput/index.js.map +1 -0
- package/dist/components/forms/Select/index.js +5 -0
- package/dist/components/forms/Select/index.js.map +1 -0
- package/dist/components/forms/Slider/index.js +5 -0
- package/dist/components/forms/Slider/index.js.map +1 -0
- package/dist/components/forms/SuccessMessage/index.js +5 -0
- package/dist/components/forms/SuccessMessage/index.js.map +1 -0
- package/dist/components/forms/Switch/index.js +5 -0
- package/dist/components/forms/Switch/index.js.map +1 -0
- package/dist/components/forms/TagsInput/index.js +8 -0
- package/dist/components/forms/TagsInput/index.js.map +1 -0
- package/dist/components/forms/TextInput/index.js +6 -0
- package/dist/components/forms/TextInput/index.js.map +1 -0
- package/dist/components/forms/Textarea/index.js +5 -0
- package/dist/components/forms/Textarea/index.js.map +1 -0
- package/dist/components/forms/TextareaField/index.js +9 -0
- package/dist/components/forms/TextareaField/index.js.map +1 -0
- package/dist/components/forms/TimePicker/index.js +7 -0
- package/dist/components/forms/TimePicker/index.js.map +1 -0
- package/dist/components/forms/ToggleGroup/index.js +6 -0
- package/dist/components/forms/ToggleGroup/index.js.map +1 -0
- package/dist/components/forms/URLInput/index.js +7 -0
- package/dist/components/forms/URLInput/index.js.map +1 -0
- package/dist/components/forms/index.js +58 -0
- package/dist/components/forms/index.js.map +1 -0
- package/dist/components/index.js +200 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/layout/Card/index.js +5 -0
- package/dist/components/layout/Card/index.js.map +1 -0
- package/dist/components/layout/Collapsible/index.js +5 -0
- package/dist/components/layout/Collapsible/index.js.map +1 -0
- package/dist/components/layout/Container/index.js +5 -0
- package/dist/components/layout/Container/index.js.map +1 -0
- package/dist/components/layout/Flex/index.js +5 -0
- package/dist/components/layout/Flex/index.js.map +1 -0
- package/dist/components/layout/Grid/index.js +5 -0
- package/dist/components/layout/Grid/index.js.map +1 -0
- package/dist/components/layout/Panel/index.js +5 -0
- package/dist/components/layout/Panel/index.js.map +1 -0
- package/dist/components/layout/ResizablePanels/index.js +5 -0
- package/dist/components/layout/ResizablePanels/index.js.map +1 -0
- package/dist/components/layout/ResponsiveContainer/index.js +5 -0
- package/dist/components/layout/ResponsiveContainer/index.js.map +1 -0
- package/dist/components/layout/ScrollArea/index.js +5 -0
- package/dist/components/layout/ScrollArea/index.js.map +1 -0
- package/dist/components/layout/Section/index.js +5 -0
- package/dist/components/layout/Section/index.js.map +1 -0
- package/dist/components/layout/Sheet/index.js +5 -0
- package/dist/components/layout/Sheet/index.js.map +1 -0
- package/dist/components/layout/Stack/index.js +5 -0
- package/dist/components/layout/Stack/index.js.map +1 -0
- package/dist/components/layout/index.js +17 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/navigation/AccountSwitch/index.js +10 -0
- package/dist/components/navigation/AccountSwitch/index.js.map +1 -0
- package/dist/components/navigation/Breadcrumb/index.js +5 -0
- package/dist/components/navigation/Breadcrumb/index.js.map +1 -0
- package/dist/components/navigation/ContextMenu/index.js +5 -0
- package/dist/components/navigation/ContextMenu/index.js.map +1 -0
- package/dist/components/navigation/Drawer/index.js +5 -0
- package/dist/components/navigation/Drawer/index.js.map +1 -0
- package/dist/components/navigation/DropdownMenu/index.js +5 -0
- package/dist/components/navigation/DropdownMenu/index.js.map +1 -0
- package/dist/components/navigation/FileTree/index.js +5 -0
- package/dist/components/navigation/FileTree/index.js.map +1 -0
- package/dist/components/navigation/Header/index.js +5 -0
- package/dist/components/navigation/Header/index.js.map +1 -0
- package/dist/components/navigation/Menu/index.js +5 -0
- package/dist/components/navigation/Menu/index.js.map +1 -0
- package/dist/components/navigation/Menubar/index.js +5 -0
- package/dist/components/navigation/Menubar/index.js.map +1 -0
- package/dist/components/navigation/MobileSidebar/index.js +190 -0
- package/dist/components/navigation/MobileSidebar/index.js.map +1 -0
- package/dist/components/navigation/Navbar/index.js +5 -0
- package/dist/components/navigation/Navbar/index.js.map +1 -0
- package/dist/components/navigation/NavigationMenu/index.js +5 -0
- package/dist/components/navigation/NavigationMenu/index.js.map +1 -0
- package/dist/components/navigation/Pagination/index.js +10 -0
- package/dist/components/navigation/Pagination/index.js.map +1 -0
- package/dist/components/navigation/Sidebar/index.js +16 -0
- package/dist/components/navigation/Sidebar/index.js.map +1 -0
- package/dist/components/navigation/SkipLinks/index.js +5 -0
- package/dist/components/navigation/SkipLinks/index.js.map +1 -0
- package/dist/components/navigation/SpeedDial/index.js +6 -0
- package/dist/components/navigation/SpeedDial/index.js.map +1 -0
- package/dist/components/navigation/TabNavigation/index.js +5 -0
- package/dist/components/navigation/TabNavigation/index.js.map +1 -0
- package/dist/components/navigation/TabPanel/index.js +5 -0
- package/dist/components/navigation/TabPanel/index.js.map +1 -0
- package/dist/components/navigation/Tabs/index.js +5 -0
- package/dist/components/navigation/Tabs/index.js.map +1 -0
- package/dist/components/navigation/Toolbar/index.js +5 -0
- package/dist/components/navigation/Toolbar/index.js.map +1 -0
- package/dist/components/navigation/Topbar/index.js +5 -0
- package/dist/components/navigation/Topbar/index.js.map +1 -0
- package/dist/components/navigation/UserProfileDropdown/index.js +224 -0
- package/dist/components/navigation/UserProfileDropdown/index.js.map +1 -0
- package/dist/components/navigation/WorkspaceDropdown/index.js +192 -0
- package/dist/components/navigation/WorkspaceDropdown/index.js.map +1 -0
- package/dist/components/navigation/index.js +37 -0
- package/dist/components/navigation/index.js.map +1 -0
- package/dist/components/primitives/ArrowAnimated/index.js +92 -0
- package/dist/components/primitives/ArrowAnimated/index.js.map +1 -0
- package/dist/components/primitives/AspectRatio/index.js +4 -0
- package/dist/components/primitives/AspectRatio/index.js.map +1 -0
- package/dist/components/primitives/Avatar/index.js +6 -0
- package/dist/components/primitives/Avatar/index.js.map +1 -0
- package/dist/components/primitives/Badge/index.js +7 -0
- package/dist/components/primitives/Badge/index.js.map +1 -0
- package/dist/components/primitives/Button/index.js +9 -0
- package/dist/components/primitives/Button/index.js.map +1 -0
- package/dist/components/primitives/ButtonGroup/index.js +7 -0
- package/dist/components/primitives/ButtonGroup/index.js.map +1 -0
- package/dist/components/primitives/ConfirmButton/index.js +11 -0
- package/dist/components/primitives/ConfirmButton/index.js.map +1 -0
- package/dist/components/primitives/Divider/index.js +5 -0
- package/dist/components/primitives/Divider/index.js.map +1 -0
- package/dist/components/primitives/FeatureItem/index.js +5 -0
- package/dist/components/primitives/FeatureItem/index.js.map +1 -0
- package/dist/components/primitives/FeaturedIcon/index.js +5 -0
- package/dist/components/primitives/FeaturedIcon/index.js.map +1 -0
- package/dist/components/primitives/FolderStack/index.js +5 -0
- package/dist/components/primitives/FolderStack/index.js.map +1 -0
- package/dist/components/primitives/Heading/index.js +5 -0
- package/dist/components/primitives/Heading/index.js.map +1 -0
- package/dist/components/primitives/Icon/index.js +5 -0
- package/dist/components/primitives/Icon/index.js.map +1 -0
- package/dist/components/primitives/Image/index.js +5 -0
- package/dist/components/primitives/Image/index.js.map +1 -0
- package/dist/components/primitives/Kbd/index.js +5 -0
- package/dist/components/primitives/Kbd/index.js.map +1 -0
- package/dist/components/primitives/Label/index.js +5 -0
- package/dist/components/primitives/Label/index.js.map +1 -0
- package/dist/components/primitives/Link/index.js +5 -0
- package/dist/components/primitives/Link/index.js.map +1 -0
- package/dist/components/primitives/Paragraph/index.js +5 -0
- package/dist/components/primitives/Paragraph/index.js.map +1 -0
- package/dist/components/primitives/ProgressBar/index.js +6 -0
- package/dist/components/primitives/ProgressBar/index.js.map +1 -0
- package/dist/components/primitives/ProgressCircle/index.js +6 -0
- package/dist/components/primitives/ProgressCircle/index.js.map +1 -0
- package/dist/components/primitives/SkeletonLoader/index.js +5 -0
- package/dist/components/primitives/SkeletonLoader/index.js.map +1 -0
- package/dist/components/primitives/Spacer/index.js +5 -0
- package/dist/components/primitives/Spacer/index.js.map +1 -0
- package/dist/components/primitives/Spinner/index.js +5 -0
- package/dist/components/primitives/Spinner/index.js.map +1 -0
- package/dist/components/primitives/SplitButton/index.js +6 -0
- package/dist/components/primitives/SplitButton/index.js.map +1 -0
- package/dist/components/primitives/StatusIndicator/index.js +5 -0
- package/dist/components/primitives/StatusIndicator/index.js.map +1 -0
- package/dist/components/primitives/Tag/index.js +5 -0
- package/dist/components/primitives/Tag/index.js.map +1 -0
- package/dist/components/primitives/Text/index.js +5 -0
- package/dist/components/primitives/Text/index.js.map +1 -0
- package/dist/components/primitives/Thumbnail/index.js +6 -0
- package/dist/components/primitives/Thumbnail/index.js.map +1 -0
- package/dist/components/primitives/Toggle/index.js +5 -0
- package/dist/components/primitives/Toggle/index.js.map +1 -0
- package/dist/components/primitives/index.js +38 -0
- package/dist/components/primitives/index.js.map +1 -0
- package/dist/components/workflow/ApprovalFlow/index.js +11 -0
- package/dist/components/workflow/ApprovalFlow/index.js.map +1 -0
- package/dist/components/workflow/ApprovalStatus/index.js +5 -0
- package/dist/components/workflow/ApprovalStatus/index.js.map +1 -0
- package/dist/components/workflow/CommentSystem/index.js +12 -0
- package/dist/components/workflow/CommentSystem/index.js.map +1 -0
- package/dist/components/workflow/Dashboard/index.js +10 -0
- package/dist/components/workflow/Dashboard/index.js.map +1 -0
- package/dist/components/workflow/DashboardBuilder/index.js +13 -0
- package/dist/components/workflow/DashboardBuilder/index.js.map +1 -0
- package/dist/components/workflow/KanbanBoard/index.js +13 -0
- package/dist/components/workflow/KanbanBoard/index.js.map +1 -0
- package/dist/components/workflow/ProgressSteps/index.js +5 -0
- package/dist/components/workflow/ProgressSteps/index.js.map +1 -0
- package/dist/components/workflow/ReportGenerator/index.js +12 -0
- package/dist/components/workflow/ReportGenerator/index.js.map +1 -0
- package/dist/components/workflow/Stepper/index.js +5 -0
- package/dist/components/workflow/Stepper/index.js.map +1 -0
- package/dist/components/workflow/TaskCard/index.js +5 -0
- package/dist/components/workflow/TaskCard/index.js.map +1 -0
- package/dist/components/workflow/TaskList/index.js +5 -0
- package/dist/components/workflow/TaskList/index.js.map +1 -0
- package/dist/components/workflow/TaskStatus/index.js +6 -0
- package/dist/components/workflow/TaskStatus/index.js.map +1 -0
- package/dist/components/workflow/Wizard/index.js +11 -0
- package/dist/components/workflow/Wizard/index.js.map +1 -0
- package/dist/components/workflow/index.js +32 -0
- package/dist/components/workflow/index.js.map +1 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.js +201 -52429
- package/dist/index.js.map +1 -1
- package/dist/jspdf.node.min-CTWP225M.js +372 -656
- package/dist/jspdf.node.min-CTWP225M.js.map +1 -1
- package/dist/jspdf.plugin.autotable-AAE7PZKA.js +4 -14
- package/dist/jspdf.plugin.autotable-AAE7PZKA.js.map +1 -1
- package/dist/lib/chart-colors.js +4 -0
- package/dist/lib/chart-colors.js.map +1 -0
- package/dist/lib/utils.js +3 -7
- package/dist/lib/utils.js.map +1 -1
- package/dist/styles.css +5265 -0
- package/dist/xlsx-PWHBQ6NK.js +206 -366
- package/dist/xlsx-PWHBQ6NK.js.map +1 -1
- package/package.json +11 -7
- package/styles.css +0 -1
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
import { Table, TableHeader, TableRow, TableHead, TableBody, TableCell } from './chunk-65YSTUD2.js';
|
|
2
|
+
import { Checkbox } from './chunk-XETKCF73.js';
|
|
3
|
+
import { SkeletonLoader } from './chunk-QHKOBGLW.js';
|
|
4
|
+
import { cn } from './chunk-HRNDJU7D.js';
|
|
5
|
+
import { useReactTable, getCoreRowModel, flexRender } from '@tanstack/react-table';
|
|
6
|
+
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
9
|
+
|
|
10
|
+
var SKELETON_KEYS = [
|
|
11
|
+
"skeleton-row-1",
|
|
12
|
+
"skeleton-row-2",
|
|
13
|
+
"skeleton-row-3",
|
|
14
|
+
"skeleton-row-4",
|
|
15
|
+
"skeleton-row-5"
|
|
16
|
+
];
|
|
17
|
+
function VirtualTable({
|
|
18
|
+
data,
|
|
19
|
+
columns,
|
|
20
|
+
rowHeight = 40,
|
|
21
|
+
overscan = 5,
|
|
22
|
+
estimateSize,
|
|
23
|
+
containerHeight = 400,
|
|
24
|
+
enableRowSelection = false,
|
|
25
|
+
onRowClick,
|
|
26
|
+
getRowId,
|
|
27
|
+
loading = false,
|
|
28
|
+
loadingComponent,
|
|
29
|
+
emptyState,
|
|
30
|
+
className,
|
|
31
|
+
rowSelection: controlledRowSelection,
|
|
32
|
+
onRowSelectionChange,
|
|
33
|
+
onSelectionChange,
|
|
34
|
+
rowClassName,
|
|
35
|
+
stickyHeader = true
|
|
36
|
+
}) {
|
|
37
|
+
const parentRef = React.useRef(null);
|
|
38
|
+
const [internalRowSelection, setInternalRowSelection] = React.useState({});
|
|
39
|
+
const rowSelection = controlledRowSelection ?? internalRowSelection;
|
|
40
|
+
const handleRowSelectionChange = React.useCallback(
|
|
41
|
+
(updaterOrValue) => {
|
|
42
|
+
const newValue = typeof updaterOrValue === "function" ? updaterOrValue(rowSelection) : updaterOrValue;
|
|
43
|
+
if (onRowSelectionChange) {
|
|
44
|
+
onRowSelectionChange(newValue);
|
|
45
|
+
} else {
|
|
46
|
+
setInternalRowSelection(newValue);
|
|
47
|
+
}
|
|
48
|
+
if (onSelectionChange) {
|
|
49
|
+
const selectedIndices = Object.keys(newValue).filter(
|
|
50
|
+
(key) => newValue[key]
|
|
51
|
+
);
|
|
52
|
+
const selectedRows = selectedIndices.map((idx) => data[Number(idx)]).filter(Boolean);
|
|
53
|
+
onSelectionChange(selectedRows);
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
[rowSelection, onRowSelectionChange, onSelectionChange, data]
|
|
57
|
+
);
|
|
58
|
+
const tableColumns = React.useMemo(() => {
|
|
59
|
+
if (!enableRowSelection) return columns;
|
|
60
|
+
return [
|
|
61
|
+
{
|
|
62
|
+
id: "select",
|
|
63
|
+
header: ({ table: table2 }) => /* @__PURE__ */ jsx(
|
|
64
|
+
Checkbox,
|
|
65
|
+
{
|
|
66
|
+
checked: table2.getIsAllPageRowsSelected() || table2.getIsSomePageRowsSelected() && "indeterminate",
|
|
67
|
+
"aria-label": "Select all",
|
|
68
|
+
onCheckedChange: (value) => {
|
|
69
|
+
table2.toggleAllPageRowsSelected(!!value);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
),
|
|
73
|
+
cell: ({ row }) => /* @__PURE__ */ jsx(
|
|
74
|
+
Checkbox,
|
|
75
|
+
{
|
|
76
|
+
"aria-label": "Select row",
|
|
77
|
+
checked: row.getIsSelected(),
|
|
78
|
+
onCheckedChange: (value) => {
|
|
79
|
+
row.toggleSelected(!!value);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
),
|
|
83
|
+
enableSorting: false,
|
|
84
|
+
enableHiding: false,
|
|
85
|
+
size: 40
|
|
86
|
+
},
|
|
87
|
+
...columns
|
|
88
|
+
];
|
|
89
|
+
}, [columns, enableRowSelection]);
|
|
90
|
+
const table = useReactTable({
|
|
91
|
+
data,
|
|
92
|
+
columns: tableColumns,
|
|
93
|
+
state: {
|
|
94
|
+
rowSelection
|
|
95
|
+
},
|
|
96
|
+
enableRowSelection,
|
|
97
|
+
getRowId,
|
|
98
|
+
getCoreRowModel: getCoreRowModel(),
|
|
99
|
+
onRowSelectionChange: handleRowSelectionChange
|
|
100
|
+
});
|
|
101
|
+
const { rows } = table.getRowModel();
|
|
102
|
+
const virtualizer = useVirtualizer({
|
|
103
|
+
count: rows.length,
|
|
104
|
+
getScrollElement: () => parentRef.current,
|
|
105
|
+
estimateSize: estimateSize ?? (() => rowHeight),
|
|
106
|
+
overscan
|
|
107
|
+
});
|
|
108
|
+
const virtualItems = virtualizer.getVirtualItems();
|
|
109
|
+
const totalSize = virtualizer.getTotalSize();
|
|
110
|
+
const containerStyle = {
|
|
111
|
+
height: typeof containerHeight === "number" ? `${String(containerHeight)}px` : containerHeight,
|
|
112
|
+
overflow: "auto",
|
|
113
|
+
willChange: "transform"
|
|
114
|
+
};
|
|
115
|
+
if (loading) {
|
|
116
|
+
return /* @__PURE__ */ jsx("div", { className: cn("space-y-4", className), "data-slot": "virtual-table", children: loadingComponent ?? /* @__PURE__ */ jsx("div", { className: "space-y-2", "data-slot": "virtual-table-loading", children: SKELETON_KEYS.map((key) => /* @__PURE__ */ jsx(SkeletonLoader, { className: "h-10 w-full" }, key)) }) });
|
|
117
|
+
}
|
|
118
|
+
if (data.length === 0) {
|
|
119
|
+
return /* @__PURE__ */ jsx("div", { className: cn("space-y-4", className), "data-slot": "virtual-table", children: emptyState ?? /* @__PURE__ */ jsx(
|
|
120
|
+
"div",
|
|
121
|
+
{
|
|
122
|
+
className: "flex flex-col items-center justify-center py-12 text-center",
|
|
123
|
+
"data-slot": "virtual-table-empty",
|
|
124
|
+
children: /* @__PURE__ */ jsx("p", { className: "text-muted-foreground text-sm", children: "No data available" })
|
|
125
|
+
}
|
|
126
|
+
) });
|
|
127
|
+
}
|
|
128
|
+
const firstItem = virtualItems[0];
|
|
129
|
+
const lastItem = virtualItems[virtualItems.length - 1];
|
|
130
|
+
const paddingTop = firstItem ? firstItem.start : 0;
|
|
131
|
+
const paddingBottom = lastItem ? totalSize - lastItem.end : 0;
|
|
132
|
+
return /* @__PURE__ */ jsx(
|
|
133
|
+
"div",
|
|
134
|
+
{
|
|
135
|
+
className: cn("rounded-md border", className),
|
|
136
|
+
"data-slot": "virtual-table",
|
|
137
|
+
children: /* @__PURE__ */ jsx(
|
|
138
|
+
"div",
|
|
139
|
+
{
|
|
140
|
+
ref: parentRef,
|
|
141
|
+
className: "relative",
|
|
142
|
+
"data-slot": "virtual-table-container",
|
|
143
|
+
style: containerStyle,
|
|
144
|
+
children: /* @__PURE__ */ jsxs(Table, { children: [
|
|
145
|
+
/* @__PURE__ */ jsx(
|
|
146
|
+
TableHeader,
|
|
147
|
+
{
|
|
148
|
+
className: cn(
|
|
149
|
+
stickyHeader && "bg-[color:var(--table-header-bg)] sticky top-0 z-10"
|
|
150
|
+
),
|
|
151
|
+
children: table.getHeaderGroups().map((headerGroup) => /* @__PURE__ */ jsx(TableRow, { children: headerGroup.headers.map((header) => /* @__PURE__ */ jsx(
|
|
152
|
+
TableHead,
|
|
153
|
+
{
|
|
154
|
+
style: {
|
|
155
|
+
width: header.getSize() !== 150 ? header.getSize() : void 0
|
|
156
|
+
},
|
|
157
|
+
children: header.isPlaceholder ? null : flexRender(
|
|
158
|
+
header.column.columnDef.header,
|
|
159
|
+
header.getContext()
|
|
160
|
+
)
|
|
161
|
+
},
|
|
162
|
+
header.id
|
|
163
|
+
)) }, headerGroup.id))
|
|
164
|
+
}
|
|
165
|
+
),
|
|
166
|
+
/* @__PURE__ */ jsxs(TableBody, { children: [
|
|
167
|
+
paddingTop > 0 && /* @__PURE__ */ jsx("tr", { "aria-hidden": "true", children: /* @__PURE__ */ jsx(
|
|
168
|
+
"td",
|
|
169
|
+
{
|
|
170
|
+
colSpan: tableColumns.length,
|
|
171
|
+
style: { height: `${String(paddingTop)}px`, padding: 0 }
|
|
172
|
+
}
|
|
173
|
+
) }),
|
|
174
|
+
virtualItems.map((virtualRow) => {
|
|
175
|
+
const row = rows[virtualRow.index];
|
|
176
|
+
if (!row) return null;
|
|
177
|
+
return /* @__PURE__ */ jsx(
|
|
178
|
+
TableRow,
|
|
179
|
+
{
|
|
180
|
+
className: cn(
|
|
181
|
+
onRowClick && "cursor-pointer",
|
|
182
|
+
rowClassName?.(row)
|
|
183
|
+
),
|
|
184
|
+
style: {
|
|
185
|
+
height: `${String(virtualRow.size)}px`
|
|
186
|
+
},
|
|
187
|
+
"aria-rowindex": virtualRow.index + 1,
|
|
188
|
+
"data-state": row.getIsSelected() ? "selected" : void 0,
|
|
189
|
+
onClick: onRowClick ? () => {
|
|
190
|
+
onRowClick(row.original);
|
|
191
|
+
} : void 0,
|
|
192
|
+
children: row.getVisibleCells().map((cell) => /* @__PURE__ */ jsx(
|
|
193
|
+
TableCell,
|
|
194
|
+
{
|
|
195
|
+
style: {
|
|
196
|
+
width: cell.column.getSize() !== 150 ? cell.column.getSize() : void 0
|
|
197
|
+
},
|
|
198
|
+
children: flexRender(
|
|
199
|
+
cell.column.columnDef.cell,
|
|
200
|
+
cell.getContext()
|
|
201
|
+
)
|
|
202
|
+
},
|
|
203
|
+
cell.id
|
|
204
|
+
))
|
|
205
|
+
},
|
|
206
|
+
row.id
|
|
207
|
+
);
|
|
208
|
+
}),
|
|
209
|
+
paddingBottom > 0 && /* @__PURE__ */ jsx("tr", { "aria-hidden": "true", children: /* @__PURE__ */ jsx(
|
|
210
|
+
"td",
|
|
211
|
+
{
|
|
212
|
+
colSpan: tableColumns.length,
|
|
213
|
+
style: { height: `${String(paddingBottom)}px`, padding: 0 }
|
|
214
|
+
}
|
|
215
|
+
) })
|
|
216
|
+
] })
|
|
217
|
+
] })
|
|
218
|
+
}
|
|
219
|
+
)
|
|
220
|
+
}
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
export { VirtualTable };
|
|
225
|
+
//# sourceMappingURL=chunk-GLEKBJLR.js.map
|
|
226
|
+
//# sourceMappingURL=chunk-GLEKBJLR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/VirtualTable/VirtualTable.tsx"],"names":["table"],"mappings":"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","file":"chunk-GLEKBJLR.js","sourcesContent":["import type { VirtualTableProps } from \"./VirtualTable.types\"\nimport type {\n Table as ReactTable,\n Row,\n RowSelectionState,\n} from \"@tanstack/react-table\"\n\nimport {\n flexRender,\n getCoreRowModel,\n useReactTable,\n} from \"@tanstack/react-table\"\nimport { useVirtualizer } from \"@tanstack/react-virtual\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Checkbox } from \"../../forms/Checkbox\"\nimport { SkeletonLoader } from \"../../primitives/SkeletonLoader\"\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"../Table\"\n\n// Static keys for skeleton loader to avoid array index as key\nconst SKELETON_KEYS = [\n \"skeleton-row-1\",\n \"skeleton-row-2\",\n \"skeleton-row-3\",\n \"skeleton-row-4\",\n \"skeleton-row-5\",\n] as const\n\n/**\n * VirtualTable - High-performance virtualized table for large datasets.\n *\n * Renders only visible rows in the viewport, enabling smooth scrolling\n * with thousands or millions of rows. Built on TanStack Virtual and\n * TanStack Table.\n *\n * @example\n * ```tsx\n * import { VirtualTable } from '@etus/ui'\n * import { ColumnDef } from '@tanstack/react-table'\n *\n * interface LogEntry {\n * id: string\n * timestamp: Date\n * level: 'info' | 'warn' | 'error'\n * message: string\n * }\n *\n * const columns: ColumnDef<LogEntry>[] = [\n * { accessorKey: 'timestamp', header: 'Time', size: 150 },\n * { accessorKey: 'level', header: 'Level', size: 80 },\n * { accessorKey: 'message', header: 'Message' },\n * ]\n *\n * function LogViewer() {\n * const { data } = useLogs() // 100k+ entries\n *\n * return (\n * <VirtualTable\n * data={data}\n * columns={columns}\n * rowHeight={36}\n * containerHeight={600}\n * getRowId={(row) => row.id}\n * />\n * )\n * }\n * ```\n */\nfunction VirtualTable<TData>({\n data,\n columns,\n rowHeight = 40,\n overscan = 5,\n estimateSize,\n containerHeight = 400,\n enableRowSelection = false,\n onRowClick,\n getRowId,\n loading = false,\n loadingComponent,\n emptyState,\n className,\n rowSelection: controlledRowSelection,\n onRowSelectionChange,\n onSelectionChange,\n rowClassName,\n stickyHeader = true,\n}: VirtualTableProps<TData>) {\n const parentRef = React.useRef<HTMLDivElement>(null)\n const [internalRowSelection, setInternalRowSelection] =\n React.useState<RowSelectionState>({})\n\n const rowSelection = controlledRowSelection ?? internalRowSelection\n\n // Create wrapper for row selection change to also notify onSelectionChange\n const handleRowSelectionChange = React.useCallback(\n (\n updaterOrValue:\n | ((old: RowSelectionState) => RowSelectionState)\n | RowSelectionState\n ) => {\n const newValue =\n typeof updaterOrValue === \"function\"\n ? updaterOrValue(rowSelection)\n : updaterOrValue\n\n // Update internal or controlled state\n if (onRowSelectionChange) {\n onRowSelectionChange(newValue)\n } else {\n setInternalRowSelection(newValue)\n }\n\n // Notify parent of selected rows as TData array\n if (onSelectionChange) {\n const selectedIndices = Object.keys(newValue).filter(\n (key) => newValue[key]\n )\n const selectedRows = selectedIndices\n .map((idx) => data[Number(idx)])\n .filter(Boolean) as TData[]\n onSelectionChange(selectedRows)\n }\n },\n [rowSelection, onRowSelectionChange, onSelectionChange, data]\n )\n\n // Memoize column definitions with selection column\n const tableColumns = React.useMemo(() => {\n if (!enableRowSelection) return columns\n\n return [\n {\n id: \"select\",\n header: ({ table }: { table: ReactTable<TData> }) => (\n <Checkbox\n checked={\n table.getIsAllPageRowsSelected() ||\n (table.getIsSomePageRowsSelected() && \"indeterminate\")\n }\n aria-label=\"Select all\"\n onCheckedChange={(value) => {\n table.toggleAllPageRowsSelected(!!value)\n }}\n />\n ),\n cell: ({ row }: { row: Row<TData> }) => (\n <Checkbox\n aria-label=\"Select row\"\n checked={row.getIsSelected()}\n onCheckedChange={(value) => {\n row.toggleSelected(!!value)\n }}\n />\n ),\n enableSorting: false,\n enableHiding: false,\n size: 40,\n },\n ...columns,\n ]\n }, [columns, enableRowSelection])\n\n // Initialize table\n // eslint-disable-next-line react-hooks/incompatible-library -- TanStack Table's API is required here.\n const table = useReactTable({\n data,\n columns: tableColumns,\n state: {\n rowSelection,\n },\n enableRowSelection,\n getRowId,\n getCoreRowModel: getCoreRowModel(),\n onRowSelectionChange: handleRowSelectionChange,\n })\n\n const { rows } = table.getRowModel()\n\n // Initialize virtualizer\n const virtualizer = useVirtualizer({\n count: rows.length,\n getScrollElement: () => parentRef.current,\n estimateSize: estimateSize ?? (() => rowHeight),\n overscan,\n })\n\n const virtualItems = virtualizer.getVirtualItems()\n const totalSize = virtualizer.getTotalSize()\n\n // Calculate container height style\n const containerStyle: React.CSSProperties = {\n height:\n typeof containerHeight === \"number\"\n ? `${String(containerHeight)}px`\n : containerHeight,\n overflow: \"auto\",\n willChange: \"transform\",\n }\n\n // Render loading state\n if (loading) {\n return (\n <div className={cn(\"space-y-4\", className)} data-slot=\"virtual-table\">\n {loadingComponent ?? (\n <div className=\"space-y-2\" data-slot=\"virtual-table-loading\">\n {SKELETON_KEYS.map((key) => (\n <SkeletonLoader key={key} className=\"h-10 w-full\" />\n ))}\n </div>\n )}\n </div>\n )\n }\n\n // Render empty state\n if (data.length === 0) {\n return (\n <div className={cn(\"space-y-4\", className)} data-slot=\"virtual-table\">\n {emptyState ?? (\n <div\n className=\"flex flex-col items-center justify-center py-12 text-center\"\n data-slot=\"virtual-table-empty\"\n >\n <p className=\"text-muted-foreground text-sm\">No data available</p>\n </div>\n )}\n </div>\n )\n }\n\n // Calculate padding for virtual items\n const firstItem = virtualItems[0]\n const lastItem = virtualItems[virtualItems.length - 1]\n const paddingTop = firstItem ? firstItem.start : 0\n const paddingBottom = lastItem ? totalSize - lastItem.end : 0\n\n return (\n <div\n className={cn(\"rounded-md border\", className)}\n data-slot=\"virtual-table\"\n >\n <div\n ref={parentRef}\n className=\"relative\"\n data-slot=\"virtual-table-container\"\n style={containerStyle}\n >\n <Table>\n <TableHeader\n className={cn(\n stickyHeader && \"bg-[color:var(--table-header-bg)] sticky top-0 z-10\"\n )}\n >\n {table.getHeaderGroups().map((headerGroup) => (\n <TableRow key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <TableHead\n key={header.id}\n style={{\n width: header.getSize() !== 150 ? header.getSize() : undefined,\n }}\n >\n {header.isPlaceholder\n ? null\n : flexRender(\n header.column.columnDef.header,\n header.getContext()\n )}\n </TableHead>\n ))}\n </TableRow>\n ))}\n </TableHeader>\n <TableBody>\n {/* Top padding row */}\n {paddingTop > 0 && (\n <tr aria-hidden=\"true\">\n <td\n colSpan={tableColumns.length}\n style={{ height: `${String(paddingTop)}px`, padding: 0 }}\n />\n </tr>\n )}\n\n {/* Virtual rows */}\n {virtualItems.map((virtualRow) => {\n const row = rows[virtualRow.index]\n if (!row) return null\n return (\n <TableRow\n key={row.id}\n className={cn(\n onRowClick && \"cursor-pointer\",\n rowClassName?.(row)\n )}\n style={{\n height: `${String(virtualRow.size)}px`,\n }}\n aria-rowindex={virtualRow.index + 1}\n data-state={row.getIsSelected() ? \"selected\" : undefined}\n onClick={\n onRowClick\n ? () => {\n onRowClick(row.original)\n }\n : undefined\n }\n >\n {row.getVisibleCells().map((cell) => (\n <TableCell\n key={cell.id}\n style={{\n width:\n cell.column.getSize() !== 150\n ? cell.column.getSize()\n : undefined,\n }}\n >\n {flexRender(\n cell.column.columnDef.cell,\n cell.getContext()\n )}\n </TableCell>\n ))}\n </TableRow>\n )\n })}\n\n {/* Bottom padding row */}\n {paddingBottom > 0 && (\n <tr aria-hidden=\"true\">\n <td\n colSpan={tableColumns.length}\n style={{ height: `${String(paddingBottom)}px`, padding: 0 }}\n />\n </tr>\n )}\n </TableBody>\n </Table>\n </div>\n </div>\n )\n}\n\nexport { VirtualTable }\n"]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './chunk-7ZJ32KRQ.js';
|
|
2
|
+
import { cn } from './chunk-HRNDJU7D.js';
|
|
3
|
+
import 'react';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var trackerContainerVariants = cva(
|
|
8
|
+
"flex w-full items-center",
|
|
9
|
+
{
|
|
10
|
+
variants: {},
|
|
11
|
+
defaultVariants: {}
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
var trackerBlockVariants = cva(
|
|
15
|
+
"h-full flex-1 rounded-xs transition-colors first:rounded-l-md last:rounded-r-md",
|
|
16
|
+
{
|
|
17
|
+
variants: {
|
|
18
|
+
clickable: {
|
|
19
|
+
true: "cursor-pointer hover:opacity-80",
|
|
20
|
+
false: ""
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
defaultVariants: {
|
|
24
|
+
clickable: false
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
);
|
|
28
|
+
function Tracker({
|
|
29
|
+
className,
|
|
30
|
+
data,
|
|
31
|
+
defaultColor = "var(--muted)",
|
|
32
|
+
gap = 1,
|
|
33
|
+
onClick,
|
|
34
|
+
...props
|
|
35
|
+
}) {
|
|
36
|
+
const isClickable = Boolean(onClick);
|
|
37
|
+
const renderBlock = (block, index) => {
|
|
38
|
+
const blockElement = /* @__PURE__ */ jsx(
|
|
39
|
+
"div",
|
|
40
|
+
{
|
|
41
|
+
"aria-label": typeof block.tooltip === "string" ? block.tooltip : void 0,
|
|
42
|
+
className: cn(trackerBlockVariants({ clickable: isClickable })),
|
|
43
|
+
role: isClickable ? "button" : void 0,
|
|
44
|
+
style: { backgroundColor: block.color ?? defaultColor },
|
|
45
|
+
tabIndex: isClickable ? 0 : void 0,
|
|
46
|
+
onClick: isClickable ? () => onClick?.(block, index) : void 0,
|
|
47
|
+
onKeyDown: isClickable ? (e) => {
|
|
48
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
49
|
+
e.preventDefault();
|
|
50
|
+
onClick?.(block, index);
|
|
51
|
+
}
|
|
52
|
+
} : void 0
|
|
53
|
+
},
|
|
54
|
+
block.key ?? index
|
|
55
|
+
);
|
|
56
|
+
if (!block.tooltip) return blockElement;
|
|
57
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
58
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: blockElement }),
|
|
59
|
+
/* @__PURE__ */ jsx(TooltipContent, { children: block.tooltip })
|
|
60
|
+
] }, block.key ?? index);
|
|
61
|
+
};
|
|
62
|
+
return /* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsx(
|
|
63
|
+
"div",
|
|
64
|
+
{
|
|
65
|
+
style: {
|
|
66
|
+
gap: `${String(gap)}px`,
|
|
67
|
+
height: "24px"
|
|
68
|
+
},
|
|
69
|
+
className: cn(trackerContainerVariants(), className),
|
|
70
|
+
"data-slot": "tracker",
|
|
71
|
+
...props,
|
|
72
|
+
children: data.map((block, index) => renderBlock(block, index))
|
|
73
|
+
}
|
|
74
|
+
) });
|
|
75
|
+
}
|
|
76
|
+
Tracker.displayName = "Tracker";
|
|
77
|
+
|
|
78
|
+
export { Tracker };
|
|
79
|
+
//# sourceMappingURL=chunk-GPW57XOW.js.map
|
|
80
|
+
//# sourceMappingURL=chunk-GPW57XOW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/Tracker/Tracker.variants.ts","../src/components/data-display/Tracker/Tracker.tsx"],"names":[],"mappings":";;;;;;AAEO,IAAM,wBAAA,GAA2B,GAAA;AAAA,EACtC,0BAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB,CAAA;AAEO,IAAM,oBAAA,GAAuB,GAAA;AAAA,EAClC,iFAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,iCAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW;AAAA;AACb;AAEJ,CAAA;ACmBO,SAAS,OAAA,CAAQ;AAAA,EACtB,SAAA;AAAA,EACA,IAAA;AAAA,EACA,YAAA,GAAe,cAAA;AAAA,EACf,GAAA,GAAM,CAAA;AAAA,EACN,OAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAiB;AACf,EAAA,MAAM,WAAA,GAAc,QAAQ,OAAO,CAAA;AAEnC,EAAA,MAAM,WAAA,GAAc,CAAC,KAAA,EAAyB,KAAA,KAAkB;AAC9D,IAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QAEC,cAAY,OAAO,KAAA,CAAM,OAAA,KAAY,QAAA,GAAW,MAAM,OAAA,GAAU,MAAA;AAAA,QAChE,WAAW,EAAA,CAAG,oBAAA,CAAqB,EAAE,SAAA,EAAW,WAAA,EAAa,CAAC,CAAA;AAAA,QAC9D,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,QAE/B,KAAA,EAAO,EAAE,eAAA,EAAiB,KAAA,CAAM,SAAS,YAAA,EAAa;AAAA,QACtD,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,QAC5B,SAAS,WAAA,GAAc,MAAM,OAAA,GAAU,KAAA,EAAO,KAAK,CAAA,GAAI,MAAA;AAAA,QACvD,SAAA,EACE,WAAA,GACI,CAAC,CAAA,KAAM;AACL,UAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,OAAA,GAAU,OAAO,KAAK,CAAA;AAAA,UACxB;AAAA,QACF,CAAA,GACA;AAAA,OAAA;AAAA,MAhBD,MAAM,GAAA,IAAO;AAAA,KAkBpB;AAGF,IAAA,IAAI,CAAC,KAAA,CAAM,OAAA,EAAS,OAAO,YAAA;AAE3B,IAAA,4BACG,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EACpB,QAAA,EAAA,YAAA,EACH,CAAA;AAAA,sBACA,GAAA,CAAC,cAAA,EAAA,EAAgB,QAAA,EAAA,KAAA,CAAM,OAAA,EAAQ;AAAA,KAAA,EAAA,EAJnB,KAAA,CAAM,OAAO,KAK3B,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,2BACG,eAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,GAAA,EAAK,CAAA,EAAG,MAAA,CAAO,GAAG,CAAC,CAAA,EAAA,CAAA;AAAA,QACnB,MAAA,EAAQ;AAAA,OACV;AAAA,MACA,SAAA,EAAW,EAAA,CAAG,wBAAA,EAAyB,EAAG,SAAS,CAAA;AAAA,MACnD,WAAA,EAAU,SAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,IAAA,CAAK,IAAI,CAAC,KAAA,EAAO,UAAU,WAAA,CAAY,KAAA,EAAO,KAAK,CAAC;AAAA;AAAA,GACvD,EACF,CAAA;AAEJ;AAEA,OAAA,CAAQ,WAAA,GAAc,SAAA","file":"chunk-GPW57XOW.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const trackerContainerVariants = cva(\n \"flex w-full items-center\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const trackerBlockVariants = cva(\n \"h-full flex-1 rounded-xs transition-colors first:rounded-l-md last:rounded-r-md\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer hover:opacity-80\",\n false: \"\",\n },\n },\n defaultVariants: {\n clickable: false,\n },\n }\n)\n","\"use client\"\n\nimport type { TrackerBlockData, TrackerProps } from \"./Tracker.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../../feedback/Tooltip\"\nimport {\n trackerBlockVariants,\n trackerContainerVariants,\n} from \"./Tracker.variants\"\n\n/**\n * Tracker - Status visualization component\n *\n * Displays a series of colored blocks to represent status over time.\n * Commonly used for uptime monitoring, availability indicators,\n * or any time-series status data.\n *\n * @example\n * ```tsx\n * const data = [\n * { color: \"var(--success)\", tooltip: \"Jan 1 - Operational\" },\n * { color: \"var(--success)\", tooltip: \"Jan 2 - Operational\" },\n * { color: \"var(--warning)\", tooltip: \"Jan 3 - Degraded\" },\n * { color: \"var(--success)\", tooltip: \"Jan 4 - Operational\" },\n * { color: \"var(--destructive)\", tooltip: \"Jan 5 - Outage\" },\n * ]\n *\n * <Tracker data={data} />\n * ```\n *\n * @example\n * ```tsx\n * // With click handler\n * <Tracker\n * data={data}\n * onClick={(block, index) => console.log(`Clicked block ${index}`)}\n * />\n * ```\n */\nexport function Tracker({\n className,\n data,\n defaultColor = \"var(--muted)\",\n gap = 1,\n onClick,\n ...props\n}: TrackerProps) {\n const isClickable = Boolean(onClick)\n\n const renderBlock = (block: TrackerBlockData, index: number) => {\n const blockElement = (\n <div\n key={block.key ?? index}\n aria-label={typeof block.tooltip === \"string\" ? block.tooltip : undefined}\n className={cn(trackerBlockVariants({ clickable: isClickable }))}\n role={isClickable ? \"button\" : undefined}\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Defensive: color is optional in TrackerBlock\n style={{ backgroundColor: block.color ?? defaultColor }}\n tabIndex={isClickable ? 0 : undefined}\n onClick={isClickable ? () => onClick?.(block, index) : undefined}\n onKeyDown={\n isClickable\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(block, index)\n }\n }\n : undefined\n }\n />\n )\n\n if (!block.tooltip) return blockElement\n\n return (\n <Tooltip key={block.key ?? index}>\n <TooltipTrigger asChild>\n {blockElement}\n </TooltipTrigger>\n <TooltipContent>{block.tooltip}</TooltipContent>\n </Tooltip>\n )\n }\n\n return (\n <TooltipProvider>\n <div\n style={{\n gap: `${String(gap)}px`,\n height: \"24px\",\n }}\n className={cn(trackerContainerVariants(), className)}\n data-slot=\"tracker\"\n {...props}\n >\n {data.map((block, index) => renderBlock(block, index))}\n </div>\n </TooltipProvider>\n )\n}\n\nTracker.displayName = \"Tracker\"\n"]}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent } from './chunk-7ZJ32KRQ.js';
|
|
2
|
+
import { cn } from './chunk-HRNDJU7D.js';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
var categoryBarContainerVariants = cva(
|
|
8
|
+
"w-full",
|
|
9
|
+
{
|
|
10
|
+
variants: {},
|
|
11
|
+
defaultVariants: {}
|
|
12
|
+
}
|
|
13
|
+
);
|
|
14
|
+
var categoryBarVariants = cva(
|
|
15
|
+
"relative flex w-full overflow-hidden rounded-full",
|
|
16
|
+
{
|
|
17
|
+
variants: {
|
|
18
|
+
size: {
|
|
19
|
+
xs: "h-1",
|
|
20
|
+
sm: "h-2",
|
|
21
|
+
md: "h-3",
|
|
22
|
+
lg: "h-4"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
defaultVariants: {
|
|
26
|
+
size: "md"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
);
|
|
30
|
+
var categoryBarSegmentVariants = cva(
|
|
31
|
+
"transition-all duration-300",
|
|
32
|
+
{
|
|
33
|
+
variants: {
|
|
34
|
+
clickable: {
|
|
35
|
+
true: "cursor-pointer hover:opacity-80",
|
|
36
|
+
false: ""
|
|
37
|
+
},
|
|
38
|
+
animated: {
|
|
39
|
+
true: "",
|
|
40
|
+
false: "!transition-none"
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
defaultVariants: {
|
|
44
|
+
clickable: false,
|
|
45
|
+
animated: true
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
var categoryBarLabelsVariants = cva(
|
|
50
|
+
"mt-2 flex justify-between gap-2",
|
|
51
|
+
{
|
|
52
|
+
variants: {},
|
|
53
|
+
defaultVariants: {}
|
|
54
|
+
}
|
|
55
|
+
);
|
|
56
|
+
var categoryBarLabelItemVariants = cva(
|
|
57
|
+
"flex items-center gap-1.5 text-sm",
|
|
58
|
+
{
|
|
59
|
+
variants: {
|
|
60
|
+
clickable: {
|
|
61
|
+
true: "cursor-pointer hover:opacity-80",
|
|
62
|
+
false: ""
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
defaultVariants: {
|
|
66
|
+
clickable: false
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
);
|
|
70
|
+
var categoryBarLabelDotVariants = cva(
|
|
71
|
+
"h-2 w-2 shrink-0 rounded-full",
|
|
72
|
+
{
|
|
73
|
+
variants: {},
|
|
74
|
+
defaultVariants: {}
|
|
75
|
+
}
|
|
76
|
+
);
|
|
77
|
+
var categoryBarMarkerVariants = cva(
|
|
78
|
+
"absolute top-0 h-full w-0.5 bg-foreground",
|
|
79
|
+
{
|
|
80
|
+
variants: {},
|
|
81
|
+
defaultVariants: {}
|
|
82
|
+
}
|
|
83
|
+
);
|
|
84
|
+
var DEFAULT_COLORS = [
|
|
85
|
+
"var(--chart-1)",
|
|
86
|
+
"var(--chart-2)",
|
|
87
|
+
"var(--chart-3)",
|
|
88
|
+
"var(--chart-4)",
|
|
89
|
+
"var(--chart-5)"
|
|
90
|
+
];
|
|
91
|
+
function defaultValueFormatter(value) {
|
|
92
|
+
return value.toLocaleString();
|
|
93
|
+
}
|
|
94
|
+
function CategoryBar({
|
|
95
|
+
className,
|
|
96
|
+
colors = DEFAULT_COLORS,
|
|
97
|
+
data,
|
|
98
|
+
markerValue,
|
|
99
|
+
onClick,
|
|
100
|
+
showAnimation = true,
|
|
101
|
+
showLabels = true,
|
|
102
|
+
showTooltip = true,
|
|
103
|
+
size = "md",
|
|
104
|
+
valueFormatter = defaultValueFormatter,
|
|
105
|
+
...props
|
|
106
|
+
}) {
|
|
107
|
+
const total = React.useMemo(
|
|
108
|
+
() => data.reduce((sum, item) => sum + item.value, 0),
|
|
109
|
+
[data]
|
|
110
|
+
);
|
|
111
|
+
const segments = React.useMemo(() => {
|
|
112
|
+
let cumulativePercent = 0;
|
|
113
|
+
return data.map((item, index) => {
|
|
114
|
+
const percent = total > 0 ? item.value / total * 100 : 0;
|
|
115
|
+
const segment = {
|
|
116
|
+
...item,
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Defensive: color is optional in CategoryBarItem
|
|
118
|
+
color: item.color ?? colors[index % colors.length],
|
|
119
|
+
percent,
|
|
120
|
+
startPercent: cumulativePercent
|
|
121
|
+
};
|
|
122
|
+
cumulativePercent += percent;
|
|
123
|
+
return segment;
|
|
124
|
+
});
|
|
125
|
+
}, [data, total, colors]);
|
|
126
|
+
const isClickable = Boolean(onClick);
|
|
127
|
+
const markerPosition = React.useMemo(() => {
|
|
128
|
+
if (markerValue === void 0 || total === 0) return;
|
|
129
|
+
return markerValue / total * 100;
|
|
130
|
+
}, [markerValue, total]);
|
|
131
|
+
const renderSegment = (segment, index) => {
|
|
132
|
+
const segmentElement = /* @__PURE__ */ jsx(
|
|
133
|
+
"div",
|
|
134
|
+
{
|
|
135
|
+
className: cn(
|
|
136
|
+
categoryBarSegmentVariants({
|
|
137
|
+
animated: showAnimation,
|
|
138
|
+
clickable: isClickable
|
|
139
|
+
})
|
|
140
|
+
),
|
|
141
|
+
style: {
|
|
142
|
+
backgroundColor: segment.color,
|
|
143
|
+
width: `${String(segment.percent)}%`
|
|
144
|
+
},
|
|
145
|
+
"aria-label": `${segment.name}: ${valueFormatter(segment.value)}`,
|
|
146
|
+
role: isClickable ? "button" : void 0,
|
|
147
|
+
tabIndex: isClickable ? 0 : void 0,
|
|
148
|
+
onClick: isClickable ? () => onClick?.(segment, index) : void 0,
|
|
149
|
+
onKeyDown: isClickable ? (e) => {
|
|
150
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
151
|
+
e.preventDefault();
|
|
152
|
+
onClick?.(segment, index);
|
|
153
|
+
}
|
|
154
|
+
} : void 0
|
|
155
|
+
},
|
|
156
|
+
segment.key
|
|
157
|
+
);
|
|
158
|
+
if (!showTooltip) return segmentElement;
|
|
159
|
+
return /* @__PURE__ */ jsxs(Tooltip, { children: [
|
|
160
|
+
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children: segmentElement }),
|
|
161
|
+
/* @__PURE__ */ jsx(TooltipContent, { children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
162
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
163
|
+
/* @__PURE__ */ jsx(
|
|
164
|
+
"div",
|
|
165
|
+
{
|
|
166
|
+
className: "h-2 w-2 rounded-full",
|
|
167
|
+
style: { backgroundColor: segment.color }
|
|
168
|
+
}
|
|
169
|
+
),
|
|
170
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium", children: segment.name })
|
|
171
|
+
] }),
|
|
172
|
+
/* @__PURE__ */ jsxs("div", { className: "text-muted-foreground", children: [
|
|
173
|
+
valueFormatter(segment.value),
|
|
174
|
+
" (",
|
|
175
|
+
segment.percent.toFixed(1),
|
|
176
|
+
"%)"
|
|
177
|
+
] })
|
|
178
|
+
] }) })
|
|
179
|
+
] }, segment.key);
|
|
180
|
+
};
|
|
181
|
+
return /* @__PURE__ */ jsxs(
|
|
182
|
+
"div",
|
|
183
|
+
{
|
|
184
|
+
className: cn(categoryBarContainerVariants(), className),
|
|
185
|
+
"data-slot": "category-bar",
|
|
186
|
+
...props,
|
|
187
|
+
children: [
|
|
188
|
+
/* @__PURE__ */ jsx(TooltipProvider, { children: /* @__PURE__ */ jsxs("div", { className: categoryBarVariants({ size }), children: [
|
|
189
|
+
segments.map((segment, index) => renderSegment(segment, index)),
|
|
190
|
+
markerPosition !== void 0 && /* @__PURE__ */ jsx(
|
|
191
|
+
"div",
|
|
192
|
+
{
|
|
193
|
+
className: categoryBarMarkerVariants(),
|
|
194
|
+
style: { left: `${String(markerPosition)}%` }
|
|
195
|
+
}
|
|
196
|
+
)
|
|
197
|
+
] }) }),
|
|
198
|
+
showLabels && /* @__PURE__ */ jsx("div", { className: categoryBarLabelsVariants(), children: segments.map((segment, index) => /* @__PURE__ */ jsxs(
|
|
199
|
+
"div",
|
|
200
|
+
{
|
|
201
|
+
className: cn(categoryBarLabelItemVariants({ clickable: isClickable })),
|
|
202
|
+
role: isClickable ? "button" : void 0,
|
|
203
|
+
tabIndex: isClickable ? 0 : void 0,
|
|
204
|
+
onClick: isClickable ? () => onClick?.(segment, index) : void 0,
|
|
205
|
+
onKeyDown: isClickable ? (e) => {
|
|
206
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
207
|
+
e.preventDefault();
|
|
208
|
+
onClick?.(segment, index);
|
|
209
|
+
}
|
|
210
|
+
} : void 0,
|
|
211
|
+
children: [
|
|
212
|
+
/* @__PURE__ */ jsx(
|
|
213
|
+
"div",
|
|
214
|
+
{
|
|
215
|
+
className: categoryBarLabelDotVariants(),
|
|
216
|
+
style: { backgroundColor: segment.color }
|
|
217
|
+
}
|
|
218
|
+
),
|
|
219
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: segment.name }),
|
|
220
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium", children: valueFormatter(segment.value) })
|
|
221
|
+
]
|
|
222
|
+
},
|
|
223
|
+
segment.key
|
|
224
|
+
)) })
|
|
225
|
+
]
|
|
226
|
+
}
|
|
227
|
+
);
|
|
228
|
+
}
|
|
229
|
+
CategoryBar.displayName = "CategoryBar";
|
|
230
|
+
|
|
231
|
+
export { CategoryBar };
|
|
232
|
+
//# sourceMappingURL=chunk-H4ANCFZG.js.map
|
|
233
|
+
//# sourceMappingURL=chunk-H4ANCFZG.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/data-display/CategoryBar/CategoryBar.variants.ts","../src/components/data-display/CategoryBar/CategoryBar.tsx"],"names":[],"mappings":";;;;;;AAEO,IAAM,4BAAA,GAA+B,GAAA;AAAA,EAC1C,QAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB,CAAA;AAEO,IAAM,mBAAA,GAAsB,GAAA;AAAA,EACjC,mDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,KAAA;AAAA,QACJ,EAAA,EAAI,KAAA;AAAA,QACJ,EAAA,EAAI,KAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEO,IAAM,0BAAA,GAA6B,GAAA;AAAA,EACxC,6BAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,iCAAA;AAAA,QACN,KAAA,EAAO;AAAA,OACT;AAAA,MACA,QAAA,EAAU;AAAA,QACR,IAAA,EAAM,EAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW,KAAA;AAAA,MACX,QAAA,EAAU;AAAA;AACZ;AAEJ,CAAA;AAEO,IAAM,yBAAA,GAA4B,GAAA;AAAA,EACvC,iCAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB,CAAA;AAEO,IAAM,4BAAA,GAA+B,GAAA;AAAA,EAC1C,mCAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,SAAA,EAAW;AAAA,QACT,IAAA,EAAM,iCAAA;AAAA,QACN,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,SAAA,EAAW;AAAA;AACb;AAEJ,CAAA;AAEO,IAAM,2BAAA,GAA8B,GAAA;AAAA,EACzC,+BAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB,CAAA;AAEO,IAAM,yBAAA,GAA4B,GAAA;AAAA,EACvC,2CAAA;AAAA,EACA;AAAA,IACE,UAAU,EAAC;AAAA,IACX,iBAAiB;AAAC;AAEtB,CAAA;AC/DA,IAAM,cAAA,GAAiB;AAAA,EACrB,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA,gBAAA;AAAA,EACA;AACF,CAAA;AAKA,SAAS,sBAAsB,KAAA,EAAuB;AACpD,EAAA,OAAO,MAAM,cAAA,EAAe;AAC9B;AA+BO,SAAS,WAAA,CAAY;AAAA,EAC1B,SAAA;AAAA,EACA,MAAA,GAAS,cAAA;AAAA,EACT,IAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,aAAA,GAAgB,IAAA;AAAA,EAChB,UAAA,GAAa,IAAA;AAAA,EACb,WAAA,GAAc,IAAA;AAAA,EACd,IAAA,GAAO,IAAA;AAAA,EACP,cAAA,GAAiB,qBAAA;AAAA,EACjB,GAAG;AACL,CAAA,EAAqB;AAEnB,EAAA,MAAM,KAAA,GAAc,KAAA,CAAA,OAAA;AAAA,IAClB,MAAM,KAAK,MAAA,CAAO,CAAC,KAAK,IAAA,KAAS,GAAA,GAAM,IAAA,CAAK,KAAA,EAAO,CAAC,CAAA;AAAA,IACpD,CAAC,IAAI;AAAA,GACP;AAEA,EAAA,MAAM,QAAA,GAAiB,cAAQ,MAAM;AACnC,IAAA,IAAI,iBAAA,GAAoB,CAAA;AACxB,IAAA,OAAO,IAAA,CAAK,GAAA,CAAI,CAAC,IAAA,EAAM,KAAA,KAAU;AAC/B,MAAA,MAAM,UAAU,KAAA,GAAQ,CAAA,GAAK,IAAA,CAAK,KAAA,GAAQ,QAAS,GAAA,GAAM,CAAA;AACzD,MAAA,MAAM,OAAA,GAAU;AAAA,QACd,GAAG,IAAA;AAAA;AAAA,QAEH,OAAO,IAAA,CAAK,KAAA,IAAS,MAAA,CAAO,KAAA,GAAQ,OAAO,MAAM,CAAA;AAAA,QACjD,OAAA;AAAA,QACA,YAAA,EAAc;AAAA,OAChB;AAEA,MAAA,iBAAA,IAAqB,OAAA;AACrB,MAAA,OAAO,OAAA;AAAA,IACT,CAAC,CAAA;AAAA,EACH,CAAA,EAAG,CAAC,IAAA,EAAM,KAAA,EAAO,MAAM,CAAC,CAAA;AAExB,EAAA,MAAM,WAAA,GAAc,QAAQ,OAAO,CAAA;AAGnC,EAAA,MAAM,cAAA,GAAuB,cAAQ,MAAM;AACzC,IAAA,IAAI,WAAA,KAAgB,MAAA,IAAa,KAAA,KAAU,CAAA,EAAG;AAC9C,IAAA,OAAQ,cAAc,KAAA,GAAS,GAAA;AAAA,EACjC,CAAA,EAAG,CAAC,WAAA,EAAa,KAAK,CAAC,CAAA;AAEvB,EAAA,MAAM,aAAA,GAAgB,CACpB,OAAA,EACA,KAAA,KACG;AACH,IAAA,MAAM,cAAA,mBACJ,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QAEC,SAAA,EAAW,EAAA;AAAA,UACT,0BAAA,CAA2B;AAAA,YACzB,QAAA,EAAU,aAAA;AAAA,YACV,SAAA,EAAW;AAAA,WACZ;AAAA,SACH;AAAA,QACA,KAAA,EAAO;AAAA,UACL,iBAAiB,OAAA,CAAQ,KAAA;AAAA,UACzB,KAAA,EAAO,CAAA,EAAG,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAC,CAAA,CAAA;AAAA,SACnC;AAAA,QACA,YAAA,EAAY,GAAG,OAAA,CAAQ,IAAI,KAAK,cAAA,CAAe,OAAA,CAAQ,KAAK,CAAC,CAAA,CAAA;AAAA,QAC7D,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,QAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,QAC5B,SAAS,WAAA,GAAc,MAAM,OAAA,GAAU,OAAA,EAAS,KAAK,CAAA,GAAI,MAAA;AAAA,QACzD,SAAA,EACE,WAAA,GACI,CAAC,CAAA,KAAM;AACL,UAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,YAAA,CAAA,CAAE,cAAA,EAAe;AACjB,YAAA,OAAA,GAAU,SAAS,KAAK,CAAA;AAAA,UAC1B;AAAA,QACF,CAAA,GACA;AAAA,OAAA;AAAA,MAvBD,OAAA,CAAQ;AAAA,KAyBf;AAGF,IAAA,IAAI,CAAC,aAAa,OAAO,cAAA;AAEzB,IAAA,4BACG,OAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,OAAA,EAAO,IAAA,EACpB,QAAA,EAAA,cAAA,EACH,CAAA;AAAA,sBACA,GAAA,CAAC,cAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,qBAAA,EACb,QAAA,EAAA;AAAA,wBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,yBAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAU,sBAAA;AAAA,cACV,KAAA,EAAO,EAAE,eAAA,EAAiB,OAAA,CAAQ,KAAA;AAAM;AAAA,WAC1C;AAAA,0BACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,aAAA,EAAe,kBAAQ,IAAA,EAAK;AAAA,SAAA,EAC9C,CAAA;AAAA,wBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,uBAAA,EACZ,QAAA,EAAA;AAAA,UAAA,cAAA,CAAe,QAAQ,KAAK,CAAA;AAAA,UAAE,IAAA;AAAA,UAAG,OAAA,CAAQ,OAAA,CAAQ,OAAA,CAAQ,CAAC,CAAA;AAAA,UAAE;AAAA,SAAA,EAC/D;AAAA,OAAA,EACF,CAAA,EACF;AAAA,KAAA,EAAA,EAjBY,QAAQ,GAkBtB,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,EAAA,CAAG,4BAAA,EAA6B,EAAG,SAAS,CAAA;AAAA,MACvD,WAAA,EAAU,cAAA;AAAA,MACT,GAAG,KAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,eAAA,EAAA,EACC,+BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,oBAAoB,EAAE,IAAA,EAAM,CAAA,EACzC,QAAA,EAAA;AAAA,UAAA,QAAA,CAAS,IAAI,CAAC,OAAA,EAAS,UAAU,aAAA,CAAc,OAAA,EAAS,KAAK,CAAC,CAAA;AAAA,UAE9D,mBAAmB,MAAA,oBAClB,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAW,yBAAA,EAA0B;AAAA,cACrC,OAAO,EAAE,IAAA,EAAM,GAAG,MAAA,CAAO,cAAc,CAAC,CAAA,CAAA,CAAA;AAAI;AAAA;AAC9C,SAAA,EAEJ,CAAA,EACF,CAAA;AAAA,QAEC,UAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,yBAAA,IACb,QAAA,EAAA,QAAA,CAAS,GAAA,CAAI,CAAC,OAAA,EAAS,KAAA,qBACtB,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,WAAW,EAAA,CAAG,4BAAA,CAA6B,EAAE,SAAA,EAAW,WAAA,EAAa,CAAC,CAAA;AAAA,YACtE,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,YAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,YAC5B,SAAS,WAAA,GAAc,MAAM,OAAA,GAAU,OAAA,EAAS,KAAK,CAAA,GAAI,MAAA;AAAA,YACzD,SAAA,EACE,WAAA,GACI,CAAC,CAAA,KAAM;AACL,cAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,gBAAA,CAAA,CAAE,cAAA,EAAe;AACjB,gBAAA,OAAA,GAAU,SAAS,KAAK,CAAA;AAAA,cAC1B;AAAA,YACF,CAAA,GACA,MAAA;AAAA,YAGN,QAAA,EAAA;AAAA,8BAAA,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,WAAW,2BAAA,EAA4B;AAAA,kBACvC,KAAA,EAAO,EAAE,eAAA,EAAiB,OAAA,CAAQ,KAAA;AAAM;AAAA,eAC1C;AAAA,8BACA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAA,EAAyB,kBAAQ,IAAA,EAAK,CAAA;AAAA,kCACrD,MAAA,EAAA,EAAK,SAAA,EAAU,eAAe,QAAA,EAAA,cAAA,CAAe,OAAA,CAAQ,KAAK,CAAA,EAAE;AAAA;AAAA,WAAA;AAAA,UArBxD,OAAA,CAAQ;AAAA,SAuBhB,CAAA,EACH;AAAA;AAAA;AAAA,GAEJ;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-H4ANCFZG.js","sourcesContent":["import { cva } from \"class-variance-authority\"\n\nexport const categoryBarContainerVariants = cva(\n \"w-full\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const categoryBarVariants = cva(\n \"relative flex w-full overflow-hidden rounded-full\",\n {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-2\",\n md: \"h-3\",\n lg: \"h-4\",\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n }\n)\n\nexport const categoryBarSegmentVariants = cva(\n \"transition-all duration-300\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer hover:opacity-80\",\n false: \"\",\n },\n animated: {\n true: \"\",\n false: \"!transition-none\",\n },\n },\n defaultVariants: {\n clickable: false,\n animated: true,\n },\n }\n)\n\nexport const categoryBarLabelsVariants = cva(\n \"mt-2 flex justify-between gap-2\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const categoryBarLabelItemVariants = cva(\n \"flex items-center gap-1.5 text-sm\",\n {\n variants: {\n clickable: {\n true: \"cursor-pointer hover:opacity-80\",\n false: \"\",\n },\n },\n defaultVariants: {\n clickable: false,\n },\n }\n)\n\nexport const categoryBarLabelDotVariants = cva(\n \"h-2 w-2 shrink-0 rounded-full\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport const categoryBarMarkerVariants = cva(\n \"absolute top-0 h-full w-0.5 bg-foreground\",\n {\n variants: {},\n defaultVariants: {},\n }\n)\n","\"use client\"\n\nimport type { CategoryBarDataItem, CategoryBarProps } from \"./CategoryBar.types\"\n\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from \"../../feedback/Tooltip\"\nimport {\n categoryBarContainerVariants,\n categoryBarLabelDotVariants,\n categoryBarLabelItemVariants,\n categoryBarLabelsVariants,\n categoryBarMarkerVariants,\n categoryBarSegmentVariants,\n categoryBarVariants,\n} from \"./CategoryBar.variants\"\n\n/**\n * Default colors for categories\n */\nconst DEFAULT_COLORS = [\n \"var(--chart-1)\",\n \"var(--chart-2)\",\n \"var(--chart-3)\",\n \"var(--chart-4)\",\n \"var(--chart-5)\",\n]\n\n/**\n * Default value formatter\n */\nfunction defaultValueFormatter(value: number): string {\n return value.toLocaleString()\n}\n\n/**\n * CategoryBar - Segmented bar showing proportional categories\n *\n * Displays categories as horizontal segments proportional to their values.\n * Similar to a pie chart but in a horizontal bar format. Ideal for showing\n * composition or breakdown of a total.\n *\n * @example\n * ```tsx\n * const data = [\n * { key: \"completed\", name: \"Completed\", value: 45, color: \"var(--chart-1)\" },\n * { key: \"in-progress\", name: \"In Progress\", value: 30, color: \"var(--chart-2)\" },\n * { key: \"pending\", name: \"Pending\", value: 25, color: \"var(--chart-3)\" },\n * ]\n *\n * <CategoryBar data={data} />\n * ```\n *\n * @example\n * ```tsx\n * // With marker and custom formatter\n * <CategoryBar\n * data={data}\n * markerValue={75}\n * valueFormatter={(v) => `${v}%`}\n * size=\"lg\"\n * />\n * ```\n */\nexport function CategoryBar({\n className,\n colors = DEFAULT_COLORS,\n data,\n markerValue,\n onClick,\n showAnimation = true,\n showLabels = true,\n showTooltip = true,\n size = \"md\",\n valueFormatter = defaultValueFormatter,\n ...props\n}: CategoryBarProps) {\n // Calculate total and percentages\n const total = React.useMemo(\n () => data.reduce((sum, item) => sum + item.value, 0),\n [data]\n )\n\n const segments = React.useMemo(() => {\n let cumulativePercent = 0\n return data.map((item, index) => {\n const percent = total > 0 ? (item.value / total) * 100 : 0\n const segment = {\n ...item,\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- Defensive: color is optional in CategoryBarItem\n color: item.color ?? colors[index % colors.length],\n percent,\n startPercent: cumulativePercent,\n }\n // eslint-disable-next-line react-hooks/immutability -- Safe: building cumulative value within useMemo callback\n cumulativePercent += percent\n return segment\n })\n }, [data, total, colors])\n\n const isClickable = Boolean(onClick)\n\n // Calculate marker position\n const markerPosition = React.useMemo(() => {\n if (markerValue === undefined || total === 0) return\n return (markerValue / total) * 100\n }, [markerValue, total])\n\n const renderSegment = (\n segment: CategoryBarDataItem & { percent: number; startPercent: number },\n index: number\n ) => {\n const segmentElement = (\n <div\n key={segment.key}\n className={cn(\n categoryBarSegmentVariants({\n animated: showAnimation,\n clickable: isClickable,\n })\n )}\n style={{\n backgroundColor: segment.color,\n width: `${String(segment.percent)}%`,\n }}\n aria-label={`${segment.name}: ${valueFormatter(segment.value)}`}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onClick={isClickable ? () => onClick?.(segment, index) : undefined}\n onKeyDown={\n isClickable\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(segment, index)\n }\n }\n : undefined\n }\n />\n )\n\n if (!showTooltip) return segmentElement\n\n return (\n <Tooltip key={segment.key}>\n <TooltipTrigger asChild>\n {segmentElement}\n </TooltipTrigger>\n <TooltipContent>\n <div className=\"flex flex-col gap-1\">\n <div className=\"flex items-center gap-2\">\n <div\n className=\"h-2 w-2 rounded-full\"\n style={{ backgroundColor: segment.color }}\n />\n <span className=\"font-medium\">{segment.name}</span>\n </div>\n <div className=\"text-muted-foreground\">\n {valueFormatter(segment.value)} ({segment.percent.toFixed(1)}%)\n </div>\n </div>\n </TooltipContent>\n </Tooltip>\n )\n }\n\n return (\n <div\n className={cn(categoryBarContainerVariants(), className)}\n data-slot=\"category-bar\"\n {...props}\n >\n <TooltipProvider>\n <div className={categoryBarVariants({ size })}>\n {segments.map((segment, index) => renderSegment(segment, index))}\n\n {markerPosition !== undefined && (\n <div\n className={categoryBarMarkerVariants()}\n style={{ left: `${String(markerPosition)}%` }}\n />\n )}\n </div>\n </TooltipProvider>\n\n {showLabels && (\n <div className={categoryBarLabelsVariants()}>\n {segments.map((segment, index) => (\n <div\n key={segment.key}\n className={cn(categoryBarLabelItemVariants({ clickable: isClickable }))}\n role={isClickable ? \"button\" : undefined}\n tabIndex={isClickable ? 0 : undefined}\n onClick={isClickable ? () => onClick?.(segment, index) : undefined}\n onKeyDown={\n isClickable\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault()\n onClick?.(segment, index)\n }\n }\n : undefined\n }\n >\n <div\n className={categoryBarLabelDotVariants()}\n style={{ backgroundColor: segment.color }}\n />\n <span className=\"text-muted-foreground\">{segment.name}</span>\n <span className=\"font-medium\">{valueFormatter(segment.value)}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n )\n}\n\nCategoryBar.displayName = \"CategoryBar\"\n"]}
|