@etus/ui 0.4.0-beta.1 → 0.4.0-beta.11
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-2FJJOHHH.js +408 -0
- package/dist/chunk-2FJJOHHH.js.map +1 -0
- package/dist/chunk-2IFYXJ3H.js +107 -0
- package/dist/chunk-2IFYXJ3H.js.map +1 -0
- package/dist/chunk-2Q4I4VDB.js +175 -0
- package/dist/chunk-2Q4I4VDB.js.map +1 -0
- package/dist/chunk-2ROFZG3A.js +55 -0
- package/dist/chunk-2ROFZG3A.js.map +1 -0
- package/dist/chunk-2TAFX4RZ.js +1208 -0
- package/dist/chunk-2TAFX4RZ.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-2Z722V5K.js +231 -0
- package/dist/chunk-2Z722V5K.js.map +1 -0
- package/dist/chunk-36LMNJKG.js +4505 -0
- package/dist/chunk-36LMNJKG.js.map +1 -0
- package/dist/chunk-37IIHQP4.js +233 -0
- package/dist/chunk-37IIHQP4.js.map +1 -0
- package/dist/chunk-3BBOSSDG.js +460 -0
- package/dist/chunk-3BBOSSDG.js.map +1 -0
- package/dist/chunk-3JCV72FO.js +288 -0
- package/dist/chunk-3JCV72FO.js.map +1 -0
- package/dist/chunk-3KOLK3OB.js +198 -0
- package/dist/chunk-3KOLK3OB.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-42RY5GAT.js +995 -0
- package/dist/chunk-42RY5GAT.js.map +1 -0
- package/dist/chunk-45D4O7RK.js +78 -0
- package/dist/chunk-45D4O7RK.js.map +1 -0
- package/dist/chunk-46ESMCEQ.js +80 -0
- package/dist/chunk-46ESMCEQ.js.map +1 -0
- package/dist/chunk-4GVOOXYD.js +304 -0
- package/dist/chunk-4GVOOXYD.js.map +1 -0
- package/dist/chunk-4KOJTZVU.js +834 -0
- package/dist/chunk-4KOJTZVU.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-57KTYE5H.js +273 -0
- package/dist/chunk-57KTYE5H.js.map +1 -0
- package/dist/chunk-5GE3BQA7.js +270 -0
- package/dist/chunk-5GE3BQA7.js.map +1 -0
- package/dist/chunk-5I7AXWJU.js +174 -0
- package/dist/chunk-5I7AXWJU.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-5SUD32RK.js +236 -0
- package/dist/chunk-5SUD32RK.js.map +1 -0
- package/dist/chunk-5ZEYTBTU.js +288 -0
- package/dist/chunk-5ZEYTBTU.js.map +1 -0
- package/dist/chunk-5ZWFIDO2.js +3 -0
- package/dist/chunk-5ZWFIDO2.js.map +1 -0
- package/dist/chunk-66TBTTZO.js +171 -0
- package/dist/chunk-66TBTTZO.js.map +1 -0
- package/dist/chunk-6DN2UAIR.js +172 -0
- package/dist/chunk-6DN2UAIR.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-6TBA37U7.js +233 -0
- package/dist/chunk-6TBA37U7.js.map +1 -0
- package/dist/chunk-6VCJU6XD.js +19 -0
- package/dist/chunk-6VCJU6XD.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-7B577M5O.js +297 -0
- package/dist/chunk-7B577M5O.js.map +1 -0
- package/dist/chunk-7EGN7IGY.js +539 -0
- package/dist/chunk-7EGN7IGY.js.map +1 -0
- package/dist/chunk-7HT32DZG.js +354 -0
- package/dist/chunk-7HT32DZG.js.map +1 -0
- package/dist/chunk-7I6KK6QE.js +411 -0
- package/dist/chunk-7I6KK6QE.js.map +1 -0
- package/dist/chunk-7J5OM4ZD.js +226 -0
- package/dist/chunk-7J5OM4ZD.js.map +1 -0
- package/dist/chunk-7RTHGI6E.js +154 -0
- package/dist/chunk-7RTHGI6E.js.map +1 -0
- package/dist/chunk-7SPMPMXE.js +132 -0
- package/dist/chunk-7SPMPMXE.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-A7YNTSVU.js +96 -0
- package/dist/chunk-A7YNTSVU.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-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-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-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-D6TH3EGA.js +204 -0
- package/dist/chunk-D6TH3EGA.js.map +1 -0
- package/dist/chunk-DCUFQJYP.js +373 -0
- package/dist/chunk-DCUFQJYP.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-DQ43X75Q.js +495 -0
- package/dist/chunk-DQ43X75Q.js.map +1 -0
- package/dist/chunk-DYDXGWH2.js +109 -0
- package/dist/chunk-DYDXGWH2.js.map +1 -0
- package/dist/chunk-E27SQ54A.js +122 -0
- package/dist/chunk-E27SQ54A.js.map +1 -0
- package/dist/chunk-E2TI5V67.js +286 -0
- package/dist/chunk-E2TI5V67.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-EVZ2GZU4.js +288 -0
- package/dist/chunk-EVZ2GZU4.js.map +1 -0
- package/dist/chunk-F7XARQUW.js +82 -0
- package/dist/chunk-F7XARQUW.js.map +1 -0
- package/dist/chunk-FBFP6LWC.js +143 -0
- package/dist/chunk-FBFP6LWC.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-G2MAGZHQ.js +63 -0
- package/dist/chunk-G2MAGZHQ.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-G7PBPX3K.js +228 -0
- package/dist/chunk-G7PBPX3K.js.map +1 -0
- package/dist/chunk-GAMOVEZD.js +113 -0
- package/dist/chunk-GAMOVEZD.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-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-H5N3VPBG.js +153 -0
- package/dist/chunk-H5N3VPBG.js.map +1 -0
- package/dist/chunk-HAEZLC7V.js +122 -0
- package/dist/chunk-HAEZLC7V.js.map +1 -0
- package/dist/chunk-HANDVWJA.js +924 -0
- package/dist/chunk-HANDVWJA.js.map +1 -0
- package/dist/chunk-HI3T55XK.js +145 -0
- package/dist/chunk-HI3T55XK.js.map +1 -0
- package/dist/chunk-HJ4E6YPW.js +236 -0
- package/dist/chunk-HJ4E6YPW.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-IFHF4UES.js +387 -0
- package/dist/chunk-IFHF4UES.js.map +1 -0
- package/dist/chunk-IHW6IJE5.js +597 -0
- package/dist/chunk-IHW6IJE5.js.map +1 -0
- package/dist/chunk-IOWHM7ZY.js +337 -0
- package/dist/chunk-IOWHM7ZY.js.map +1 -0
- package/dist/chunk-IRIIK3BU.js +215 -0
- package/dist/chunk-IRIIK3BU.js.map +1 -0
- package/dist/chunk-IXJHHR3Y.js +3 -0
- package/dist/chunk-IXJHHR3Y.js.map +1 -0
- package/dist/chunk-IZC5YFGO.js +226 -0
- package/dist/chunk-IZC5YFGO.js.map +1 -0
- package/dist/chunk-JDTAG7KZ.js +33 -0
- package/dist/chunk-JDTAG7KZ.js.map +1 -0
- package/dist/chunk-JPA2VQRW.js +119 -0
- package/dist/chunk-JPA2VQRW.js.map +1 -0
- package/dist/chunk-JRWQHBJC.js +466 -0
- package/dist/chunk-JRWQHBJC.js.map +1 -0
- package/dist/chunk-JUTPDS4E.js +139 -0
- package/dist/chunk-JUTPDS4E.js.map +1 -0
- package/dist/chunk-JWXK4TMX.js +106 -0
- package/dist/chunk-JWXK4TMX.js.map +1 -0
- package/dist/chunk-K3QIPEIV.js +1070 -0
- package/dist/chunk-K3QIPEIV.js.map +1 -0
- package/dist/chunk-K45MMHLA.js +258 -0
- package/dist/chunk-K45MMHLA.js.map +1 -0
- package/dist/chunk-KO3R4JFH.js +316 -0
- package/dist/chunk-KO3R4JFH.js.map +1 -0
- package/dist/chunk-KRHL3YH2.js +3 -0
- package/dist/chunk-KRHL3YH2.js.map +1 -0
- package/dist/chunk-L2XR5IFJ.js +103 -0
- package/dist/chunk-L2XR5IFJ.js.map +1 -0
- package/dist/chunk-LFN7UHDT.js +122 -0
- package/dist/chunk-LFN7UHDT.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-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-NCT5WXKG.js +159 -0
- package/dist/chunk-NCT5WXKG.js.map +1 -0
- package/dist/chunk-NGR4HFVA.js +136 -0
- package/dist/chunk-NGR4HFVA.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-OWLYSN7L.js +928 -0
- package/dist/chunk-OWLYSN7L.js.map +1 -0
- package/dist/chunk-OXDWUKGP.js +291 -0
- package/dist/chunk-OXDWUKGP.js.map +1 -0
- package/dist/chunk-PFVT27B5.js +92 -0
- package/dist/chunk-PFVT27B5.js.map +1 -0
- package/dist/chunk-PK5O62XD.js +58 -0
- package/dist/chunk-PK5O62XD.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-QUENPT24.js +100 -0
- package/dist/chunk-QUENPT24.js.map +1 -0
- package/dist/chunk-QYWCXM7F.js +96 -0
- package/dist/chunk-QYWCXM7F.js.map +1 -0
- package/dist/chunk-R52QIEJZ.js +183 -0
- package/dist/chunk-R52QIEJZ.js.map +1 -0
- package/dist/chunk-RN4WIA4D.js +853 -0
- package/dist/chunk-RN4WIA4D.js.map +1 -0
- package/dist/chunk-RRORYKXT.js +204 -0
- package/dist/chunk-RRORYKXT.js.map +1 -0
- package/dist/chunk-S6ORCWM2.js +205 -0
- package/dist/chunk-S6ORCWM2.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-U2CXFKRK.js +227 -0
- package/dist/chunk-U2CXFKRK.js.map +1 -0
- package/dist/chunk-U2R47SPY.js +101 -0
- package/dist/chunk-U2R47SPY.js.map +1 -0
- package/dist/chunk-U4H3XHSI.js +305 -0
- package/dist/chunk-U4H3XHSI.js.map +1 -0
- package/dist/chunk-U6EOAIPK.js +67 -0
- package/dist/chunk-U6EOAIPK.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-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-UPK5B2FL.js +199 -0
- package/dist/chunk-UPK5B2FL.js.map +1 -0
- package/dist/chunk-UPYT2XM5.js +152 -0
- package/dist/chunk-UPYT2XM5.js.map +1 -0
- package/dist/chunk-V7WEN4SD.js +444 -0
- package/dist/chunk-V7WEN4SD.js.map +1 -0
- package/dist/chunk-VAVE4ZJF.js +165 -0
- package/dist/chunk-VAVE4ZJF.js.map +1 -0
- package/dist/chunk-VBJ26PZJ.js +147 -0
- package/dist/chunk-VBJ26PZJ.js.map +1 -0
- package/dist/chunk-VKDN66VL.js +129 -0
- package/dist/chunk-VKDN66VL.js.map +1 -0
- package/dist/chunk-VNAC3RM2.js +1062 -0
- package/dist/chunk-VNAC3RM2.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-WBE6VQOO.js +235 -0
- package/dist/chunk-WBE6VQOO.js.map +1 -0
- package/dist/chunk-WDPGJHLV.js +515 -0
- package/dist/chunk-WDPGJHLV.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-WKWLKGNI.js +643 -0
- package/dist/chunk-WKWLKGNI.js.map +1 -0
- package/dist/chunk-WOOBWQHY.js +544 -0
- package/dist/chunk-WOOBWQHY.js.map +1 -0
- package/dist/chunk-X3AXEE3S.js +812 -0
- package/dist/chunk-X3AXEE3S.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-XLTSCY22.js +93 -0
- package/dist/chunk-XLTSCY22.js.map +1 -0
- package/dist/chunk-XOGMDABS.js +152 -0
- package/dist/chunk-XOGMDABS.js.map +1 -0
- package/dist/chunk-XYYOV5GW.js +186 -0
- package/dist/chunk-XYYOV5GW.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-Y6ZXHHUS.js +482 -0
- package/dist/chunk-Y6ZXHHUS.js.map +1 -0
- package/dist/chunk-YACIRNVP.js +70 -0
- package/dist/chunk-YACIRNVP.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-YZY35OHQ.js +279 -0
- package/dist/chunk-YZY35OHQ.js.map +1 -0
- package/dist/chunk-Z2RO42XL.js +700 -0
- package/dist/chunk-Z2RO42XL.js.map +1 -0
- package/dist/chunk-Z46KLLW2.js +90 -0
- package/dist/chunk-Z46KLLW2.js.map +1 -0
- package/dist/chunk-Z4KW5VW6.js +383 -0
- package/dist/chunk-Z4KW5VW6.js.map +1 -0
- package/dist/chunk-ZARZYMBM.js +95 -0
- package/dist/chunk-ZARZYMBM.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-ZUNG2RTQ.js +342 -0
- package/dist/chunk-ZUNG2RTQ.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/ReportBuilder/index.js +11 -0
- package/dist/components/advanced/ReportBuilder/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 +36 -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 +9 -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 +13 -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 +12 -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 +6 -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 +201 -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 +6 -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 +6 -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 +38 -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/fonts/inter-OFL.txt +92 -0
- package/dist/fonts/inter-latin-400-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-500-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-600-normal.woff2 +0 -0
- package/dist/fonts/inter-latin-700-normal.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-OFL.txt +93 -0
- package/dist/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-latin-500-normal.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
- package/dist/hooks/index.js +6 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.d.ts +483 -148
- package/dist/index.js +202 -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 +5642 -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 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/advanced/ReportBuilder/ReportBuilder.tsx"],"names":[],"mappings":"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","file":"chunk-4KOJTZVU.js","sourcesContent":["\"use client\"\n\n// ReportBuilder — a faithful copy of Google Ad Manager's report builder bar:\n// a dimensions+metrics chip strip with an inline typeahead field, a sentence-\n// chip filter row (\"Source (src) is any of a, b\") with an inline \"Add filter\"\n// field, and the \"All dimensions and metrics\" View-all dialog (draft + Apply).\n//\n// Interaction contract (observed on the live GAM builder, 2026-06-09):\n// • Chips are inert — only their delete × reacts. The ONLY dropdown opener is\n// the inline text field; typing filters; checkboxes toggle without closing.\n// • \"Add filter\" is an inline field too: focusing lists the filter fields,\n// typing filters them, picking one opens that field's editor popup\n// (title + ✕, operator, value chips + type-to-search, blue Apply).\n// • \"View all\" opens a near-fullscreen dialog where selections are a DRAFT —\n// only Apply commits, Cancel discards.\n//\n// Visuals measured from the live GAM DOM: chips 24px + 1px #dadce0 border at\n// 12px radius, labels 13px/500 #5f6368, field glyphs 16px (#4285f4 dimension,\n// #34a853 \"123\" metric), popups 8px radius with Material's two-layer shadow,\n// internal dividers #e0e0e0, placeholders #757575, blue accents #1a73e8 /\n// #1967d2 / #e8f0fe.\n\nimport type {\n ReportBuilderField,\n ReportBuilderFieldKind,\n ReportBuilderFilter,\n ReportBuilderFilterField,\n ReportBuilderProps,\n} from \"./ReportBuilder.types\"\n\nimport { Filter, Search, Shapes, Table, X } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport { Dialog, DialogContent, DialogTitle } from \"../../feedback/Dialog\"\nimport { Popover, PopoverAnchor, PopoverContent } from \"../../feedback/Popover\"\nimport { Checkbox } from \"../../forms/Checkbox\"\nimport { NumberInput } from \"../../forms/NumberInput\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"../../forms/Select\"\n\nconst NUMBER_OPS = [\n { v: \">=\", l: \"≥\" },\n { v: \"<=\", l: \"≤\" },\n { v: \">\", l: \">\" },\n { v: \"<\", l: \"<\" },\n { v: \"=\", l: \"=\" },\n { v: \"between\", l: \"between\" },\n] as const\n\n/** GAM's blue Material checkbox — 18px, 2px #757575 border, checked #1a73e8. */\nconst GAM_CHECKBOX =\n \"size-[18px] rounded-xs border-2 border-[color:var(--report-builder-fg-subtle)] data-[state=checked]:border-[color:var(--report-builder-accent)] data-[state=checked]:bg-[color:var(--report-builder-accent)] data-[state=checked]:text-[color:var(--report-builder-on-accent)]\"\n\n/** GAM popup container — 8px radius, no border, Material two-layer shadow. */\nconst GAM_POPUP =\n \"rounded-lg border-0 p-0 [--report-builder-popup-shadow:0_1px_2px_0_var(--report-builder-shadow),0_2px_6px_2px_var(--report-builder-shadow-subtle)] shadow-[var(--report-builder-popup-shadow)]\"\n\nconst numFmt = (n: null | number | undefined) =>\n n == null ? \"\" : n.toLocaleString(\"en-US\")\n\n/** \"a, b, c\" up to 3 values, then \"+N\". */\nfunction listFmt(vals: string[]): string {\n const head = vals.slice(0, 3).join(\", \")\n return vals.length > 3 ? `${head} +${String(vals.length - 3)}` : head\n}\n\n/** Editor prefill for a filter field, from an existing filter if any. */\nfunction editorStateFor(existing?: ReportBuilderFilter) {\n return {\n a: existing?.a != null ? String(existing.a) : \"\",\n b: existing?.b != null ? String(existing.b) : \"\",\n op:\n existing && existing.op !== \"anyOf\" && existing.op !== \"contains\"\n ? existing.op\n : \">=\",\n text: existing?.text ?? \"\",\n vals: existing?.values ?? [],\n }\n}\n\n/** GAM shows custom keys as \"Label (key)\"; natives (label == key) plain. */\nfunction fieldLabel(label: string, key: string): string {\n return label.toLowerCase() === key.toLowerCase() ? label : `${label} (${key})`\n}\n\n/** Material \"123\" metric glyph, rendered as bold text like GAM's icon. */\nfunction MetricGlyph() {\n return (\n <span className=\"flex h-4 w-[22px] items-center justify-center text-[12px] font-bold leading-none tracking-tighter text-[color:var(--report-builder-positive)]\">\n 123\n </span>\n )\n}\n\n/** Material \"category\" dimension glyph — 16px, #4285f4. Lucide Shapes ≈ category. */\nfunction DimGlyph() {\n return <Shapes className=\"shrink-0 text-[color:var(--report-builder-accent-bright)]\" size={16} />\n}\n\nfunction KindGlyph({ kind }: { kind: ReportBuilderFieldKind }) {\n return kind === \"metric\" ? <MetricGlyph /> : <DimGlyph />\n}\n\n/** material-chip, measured: 24px tall (+1px border), 12px radius, #dadce0\n * outline, white bg, 12px left pad, 13px/500 #5f6368 label, 32×24 delete\n * button. `active` = GAM's blue editing highlight. */\nfunction GamChip({\n icon,\n children,\n active,\n onClick,\n onRemove,\n}: {\n active?: boolean\n children: React.ReactNode\n icon?: React.ReactNode\n onClick?: () => void\n onRemove?: () => void\n}) {\n return (\n <span\n className={cn(\n \"inline-flex h-[26px] items-center rounded-xl border pl-3 text-[13px] font-medium\",\n active\n ? \"border-[color:var(--report-builder-accent-border)] bg-[color:var(--report-builder-accent-bg)] text-[color:var(--report-builder-accent-hover)]\"\n : \"border-[color:var(--report-builder-border)] bg-[color:var(--report-builder-surface)] text-[color:var(--report-builder-fg-muted)]\",\n !onRemove && \"pr-3\",\n onClick && \"cursor-pointer\",\n onClick && !active && \"hover:bg-[color:var(--report-builder-surface-subtle)]\"\n )}\n onClick={onClick}\n >\n {icon && <span className=\"mr-2 flex items-center\">{icon}</span>}\n <span className=\"whitespace-nowrap\">{children}</span>\n {onRemove && (\n <button\n className={cn(\n \"flex h-6 w-8 items-center justify-center\",\n active ? \"text-[color:var(--report-builder-accent-hover)]\" : \"text-[color:var(--report-builder-fg-muted)] hover:text-[color:var(--report-builder-fg-secondary)]\"\n )}\n aria-label=\"Remove\"\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation()\n onRemove()\n }}\n >\n <X size={18} />\n </button>\n )}\n </span>\n )\n}\n\n// ---------------------------------------------------------------------------\n// \"All dimensions and metrics\" dialog (GAM's View-all modal)\n// ---------------------------------------------------------------------------\n\nfunction AllFieldsDialog({\n onOpenChange,\n fields,\n dimensions,\n metrics,\n onSelectionChange,\n}: {\n dimensions: string[]\n fields: ReportBuilderField[]\n metrics: string[]\n onOpenChange: (o: boolean) => void\n onSelectionChange: ReportBuilderProps[\"onSelectionChange\"]\n}) {\n // The dialog is mounted fresh on every open (see FieldsBar), so the draft\n // is simply seeded from props at mount time — no re-seeding effect needed.\n const [draftDims, setDraftDims] = React.useState<string[]>(dimensions)\n const [draftMets, setDraftMets] = React.useState<string[]>(metrics)\n const [display, setDisplay] = React.useState<\"all\" | \"dimensions\" | \"metrics\">(\"all\")\n const [category, setCategory] = React.useState<\"dimensions\" | \"metrics\" | \"popular\">(\n \"popular\"\n )\n const [search, setSearch] = React.useState(\"\")\n const [hovered, setHovered] = React.useState<null | string>(null)\n\n function toggleDraft(kind: ReportBuilderFieldKind, key: string) {\n const [cur, set] =\n kind === \"dimension\"\n ? ([draftDims, setDraftDims] as const)\n : ([draftMets, setDraftMets] as const)\n set(cur.includes(key) ? cur.filter((k) => k !== key) : [...cur, key])\n }\n\n function apply() {\n onSelectionChange(\"dimensions\", draftDims)\n onSelectionChange(\"metrics\", draftMets)\n onOpenChange(false)\n }\n\n const match = (l: string) => l.toLowerCase().includes(search.trim().toLowerCase())\n const items = fields.filter((f) => {\n if (!match(f.label)) return false\n if (display === \"dimensions\" && f.kind !== \"dimension\") return false\n if (display === \"metrics\" && f.kind !== \"metric\") return false\n if (category === \"dimensions\" && f.kind !== \"dimension\") return false\n if (category === \"metrics\" && f.kind !== \"metric\") return false\n return true\n })\n const selected = [\n ...draftDims.map((k) => fields.find((f) => f.kind === \"dimension\" && f.key === k)),\n ...draftMets.map((k) => fields.find((f) => f.kind === \"metric\" && f.key === k)),\n ].filter((f): f is ReportBuilderField => !!f)\n\n const CATS = [\n { k: \"popular\", l: \"Popular\" },\n { k: \"dimensions\", l: \"Dimensions\" },\n { k: \"metrics\", l: \"Metrics\" },\n ] as const\n const DISPLAYS = [\n { k: \"all\", l: \"All\" },\n { k: \"dimensions\", l: \"Dimensions\" },\n { k: \"metrics\", l: \"Metrics\" },\n ] as const\n\n return (\n <Dialog open onOpenChange={onOpenChange}>\n <DialogContent\n className=\"left-0 top-0 flex h-screen max-h-screen w-[min(1500px,96vw)] max-w-none translate-x-0 translate-y-0 flex-col gap-0 rounded-none border-0 bg-[color:var(--report-builder-surface)] p-0 text-[color:var(--report-builder-fg)]\"\n showCloseButton={false}\n >\n {/* header: ✕ + title + Display toggles */}\n <div className=\"flex shrink-0 items-center gap-4 px-4 py-3\">\n <button\n aria-label=\"Close\"\n className=\"rounded-full p-1.5 text-[color:var(--report-builder-fg-muted)] hover:bg-[color:var(--report-builder-surface-hover)]\"\n type=\"button\"\n onClick={() => {\n onOpenChange(false)\n }}\n >\n <X size={20} />\n </button>\n <DialogTitle className=\"text-xl font-normal text-[color:var(--report-builder-fg)]\">\n All dimensions and metrics\n </DialogTitle>\n <div className=\"flex-1\" />\n <span className=\"text-sm text-[color:var(--report-builder-fg-muted)]\">Display</span>\n <div className=\"flex gap-2\">\n {DISPLAYS.map((d) => (\n <button\n key={d.k}\n className={cn(\n \"h-8 rounded px-3 text-sm font-medium\",\n display === d.k\n ? \"bg-[color:var(--report-builder-accent-bg)] text-[color:var(--report-builder-accent-hover)]\"\n : \"border border-[color:var(--report-builder-border)] text-[color:var(--report-builder-fg-secondary)] hover:bg-[color:var(--report-builder-surface-subtle)]\"\n )}\n type=\"button\"\n onClick={() => {\n setDisplay(d.k)\n }}\n >\n {display === d.k ? \"✓ \" : \"\"}\n {d.l}\n </button>\n ))}\n </div>\n </div>\n {/* search */}\n <div className=\"flex shrink-0 items-center gap-3 border-y border-[color:var(--report-builder-border-strong)] px-4 py-2.5\">\n <Search className=\"text-[color:var(--report-builder-fg-muted)]\" size={18} />\n <input\n autoFocus\n className=\"w-full bg-transparent text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)]\"\n placeholder=\"Search\"\n value={search}\n onChange={(e) => {\n setSearch(e.target.value)\n }}\n />\n </div>\n {/* body: categories | list | selected | description */}\n <div className=\"flex min-h-0 flex-1\">\n <div className=\"w-56 shrink-0 overflow-auto border-r border-[color:var(--report-builder-border-strong)] py-1\">\n {CATS.map((c) => (\n <button\n key={c.k}\n className={cn(\n \"flex h-9 w-full items-center px-4 text-left text-sm\",\n category === c.k\n ? \"bg-[color:var(--report-builder-surface-hover)] text-[color:var(--report-builder-fg)]\"\n : \"text-[color:var(--report-builder-fg-secondary)] hover:bg-[color:var(--report-builder-surface-subtle)]\"\n )}\n type=\"button\"\n onClick={() => {\n setCategory(c.k)\n }}\n >\n {c.l}\n </button>\n ))}\n </div>\n <div className=\"min-w-0 flex-[1.4] overflow-auto py-1\">\n {items.map((f) => {\n const sel =\n f.kind === \"dimension\"\n ? draftDims.includes(f.key)\n : draftMets.includes(f.key)\n return (\n <label\n key={`${f.kind}:${f.key}`}\n className=\"flex h-9 cursor-pointer items-center gap-3 px-4 text-[15px] text-[color:var(--report-builder-fg-strong)] hover:bg-[color:var(--report-builder-surface-muted)]\"\n onMouseEnter={() => {\n setHovered(`${f.kind}:${f.key}`)\n }}\n onMouseLeave={() => {\n setHovered(null)\n }}\n // Mirror hover on keyboard focus so the description pane is\n // reachable without a mouse (WCAG 2.1 AA). Focus bubbles from\n // the inner checkbox to this label.\n onFocus={() => {\n setHovered(`${f.kind}:${f.key}`)\n }}\n onBlur={() => {\n setHovered(null)\n }}\n >\n <Checkbox\n checked={sel}\n className={GAM_CHECKBOX}\n onCheckedChange={() => {\n toggleDraft(f.kind, f.key)\n }}\n />\n <span className=\"flex items-center gap-2\">\n <KindGlyph kind={f.kind} />\n {f.label}\n </span>\n </label>\n )\n })}\n {items.length === 0 && (\n <div className=\"px-4 py-3 text-sm text-[color:var(--report-builder-fg-subtle)]\">No matches</div>\n )}\n </div>\n <div className=\"w-96 shrink-0 overflow-auto border-l border-[color:var(--report-builder-border-strong)]\">\n <div className=\"flex items-center justify-between px-4 py-3\">\n <span className=\"text-sm font-medium text-[color:var(--report-builder-fg)]\">\n {selected.length} Selected\n </span>\n <button\n className=\"text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:underline\"\n type=\"button\"\n onClick={() => {\n setDraftDims([])\n setDraftMets([])\n }}\n >\n Clear all\n </button>\n </div>\n {selected.map((f) => (\n <div key={`${f.kind}:${f.key}`} className=\"px-4 py-1.5\">\n <div className=\"text-xs text-[color:var(--report-builder-fg-muted)]\">\n {f.kind === \"dimension\" ? \"Dimensions\" : \"Metrics\"}\n </div>\n <div className=\"flex items-center gap-2\">\n <KindGlyph kind={f.kind} />\n <span className=\"flex-1 text-sm text-[color:var(--report-builder-fg)]\">{f.label}</span>\n <button\n aria-label={`Remove ${f.label}`}\n className=\"rounded-full p-1 text-[color:var(--report-builder-fg-muted)] hover:bg-[color:var(--report-builder-surface-hover)]\"\n type=\"button\"\n onClick={() => {\n toggleDraft(f.kind, f.key)\n }}\n >\n <X size={16} />\n </button>\n </div>\n </div>\n ))}\n </div>\n <div className=\"w-80 shrink-0 overflow-auto border-l border-[color:var(--report-builder-border-strong)] p-4 text-sm text-[color:var(--report-builder-fg)]\">\n {hovered\n ? (fields.find((f) => `${f.kind}:${f.key}` === hovered)?.description ??\n fields.find((f) => `${f.kind}:${f.key}` === hovered)?.label)\n : \"Hover over a dimension or metric to see a description\"}\n </div>\n </div>\n {/* footer: Apply / Cancel */}\n <div className=\"flex shrink-0 items-center gap-4 border-t border-[color:var(--report-builder-border-strong)] px-4 py-3\">\n <button\n className=\"rounded bg-[color:var(--report-builder-accent)] px-6 py-2 text-sm font-medium text-[color:var(--report-builder-on-accent)] hover:bg-[color:var(--report-builder-accent-hover)] disabled:cursor-not-allowed disabled:opacity-50\"\n disabled={draftDims.length === 0 || draftMets.length === 0}\n type=\"button\"\n onClick={apply}\n >\n Apply\n </button>\n <button\n className=\"rounded px-2 py-2 text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:bg-[color:var(--report-builder-accent-bg-subtle)]\"\n type=\"button\"\n onClick={() => {\n onOpenChange(false)\n }}\n >\n Cancel\n </button>\n </div>\n </DialogContent>\n </Dialog>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Dimensions + metrics chip strip\n// ---------------------------------------------------------------------------\n\nfunction FieldsBar({\n fields,\n dimensions,\n metrics,\n onSelectionChange,\n}: Pick<\n ReportBuilderProps,\n \"dimensions\" | \"fields\" | \"metrics\" | \"onSelectionChange\"\n>) {\n const [open, setOpen] = React.useState(false)\n const [viewAllOpen, setViewAllOpen] = React.useState(false)\n const [search, setSearch] = React.useState(\"\")\n const [hovered, setHovered] = React.useState<null | string>(null)\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const byKey = (kind: ReportBuilderFieldKind, key: string) =>\n fields.find((f) => f.kind === kind && f.key === key)\n\n function toggle(kind: ReportBuilderFieldKind, key: string) {\n const plural = kind === \"dimension\" ? \"dimensions\" : \"metrics\"\n const cur = kind === \"dimension\" ? dimensions : metrics\n if (cur.includes(key)) {\n if (cur.length === 1) return // keep at least one of each\n onSelectionChange(plural, cur.filter((k) => k !== key))\n } else {\n onSelectionChange(plural, [...cur, key])\n }\n }\n\n const match = (l: string) => l.toLowerCase().includes(search.trim().toLowerCase())\n const items = fields.filter((f) => match(f.label))\n\n return (\n <div className=\"flex items-start border-b border-[color:var(--report-builder-border)] bg-[color:var(--report-builder-surface)] py-3\">\n <Popover\n open={open}\n onOpenChange={(o) => {\n setOpen(o)\n if (!o) {\n setSearch(\"\")\n setHovered(null)\n }\n }}\n >\n {/* anchor spans icon + strip so the dropdown is as wide as the strip */}\n <PopoverAnchor asChild>\n <div className=\"flex min-w-0 flex-1 items-start\">\n <div className=\"flex shrink-0 items-center px-3\">\n <Table className=\"text-[color:var(--report-builder-fg)]\" size={24} strokeWidth={1.5} />\n </div>\n <div className=\"min-w-0 flex-1\">\n {/* chips are NOT a click target (GAM: only their × reacts) */}\n <div className=\"flex flex-wrap items-center gap-x-2 gap-y-1\">\n {dimensions.map((k) => (\n <GamChip\n key={`d:${k}`}\n icon={<DimGlyph />}\n onRemove={\n dimensions.length > 1 ? () => { toggle(\"dimension\", k); } : undefined\n }\n >\n {byKey(\"dimension\", k)?.label ?? k}\n </GamChip>\n ))}\n {metrics.map((k) => (\n <GamChip\n key={`m:${k}`}\n icon={<MetricGlyph />}\n onRemove={metrics.length > 1 ? () => { toggle(\"metric\", k); } : undefined}\n >\n {byKey(\"metric\", k)?.label ?? k}\n </GamChip>\n ))}\n </div>\n {/* the inline search field — the ONLY opener, like GAM's combobox */}\n <input\n ref={inputRef}\n className=\"mt-2 w-full max-w-md bg-transparent text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)]\"\n placeholder=\"Select dimensions and metrics\"\n value={search}\n onChange={(e) => {\n setSearch(e.target.value)\n if (!open) setOpen(true)\n }}\n onFocus={() => {\n setOpen(true)\n }}\n />\n </div>\n </div>\n </PopoverAnchor>\n {/* GAM dropdown: strip-wide, two panes (list | description), View all footer */}\n <PopoverContent\n align=\"start\"\n className={GAM_POPUP}\n sideOffset={4}\n style={{ width: \"var(--radix-popper-anchor-width)\" }}\n onInteractOutside={(e) => {\n if (e.target === inputRef.current) e.preventDefault()\n }}\n onOpenAutoFocus={(e) => {\n e.preventDefault()\n }}\n >\n <div className=\"flex\">\n <div className=\"max-h-[340px] flex-[1.6] overflow-auto py-1\">\n {!search.trim() && (\n <div className=\"px-4 pb-1 pt-2 text-xs font-normal text-[color:var(--report-builder-fg-subtle)]\">\n Popular\n </div>\n )}\n {items.map((f) => {\n const sel =\n f.kind === \"dimension\"\n ? dimensions.includes(f.key)\n : metrics.includes(f.key)\n return (\n <label\n key={`${f.kind}:${f.key}`}\n className=\"flex h-8 cursor-pointer items-center gap-3 px-4 text-[15px] text-[color:var(--report-builder-fg-strong)] hover:bg-[color:var(--report-builder-surface-muted)]\"\n onMouseEnter={() => {\n setHovered(`${f.kind}:${f.key}`)\n }}\n onMouseLeave={() => {\n setHovered(null)\n }}\n // Mirror hover on keyboard focus so the description pane is\n // reachable without a mouse (WCAG 2.1 AA). Focus bubbles\n // from the inner checkbox to this label.\n onFocus={() => {\n setHovered(`${f.kind}:${f.key}`)\n }}\n onBlur={() => {\n setHovered(null)\n }}\n >\n <Checkbox\n checked={sel}\n className={GAM_CHECKBOX}\n onCheckedChange={() => {\n toggle(f.kind, f.key)\n }}\n />\n <span className=\"flex items-center gap-2\">\n <KindGlyph kind={f.kind} />\n {f.label}\n </span>\n </label>\n )\n })}\n {items.length === 0 && (\n <div className=\"px-4 py-2 text-sm text-[color:var(--report-builder-fg-subtle)]\">No matches</div>\n )}\n </div>\n <div className=\"min-h-[200px] flex-1 border-l border-[color:var(--report-builder-border-strong)] p-4 text-sm text-[color:var(--report-builder-fg)]\">\n {hovered\n ? (fields.find((f) => `${f.kind}:${f.key}` === hovered)?.description ??\n fields.find((f) => `${f.kind}:${f.key}` === hovered)?.label)\n : \"Hover over a dimension or metric to see a description\"}\n </div>\n </div>\n <div className=\"border-t border-[color:var(--report-builder-border-strong)] px-4 py-2.5\">\n <button\n aria-label=\"View all fields\"\n className=\"text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:underline\"\n type=\"button\"\n onClick={() => {\n setOpen(false)\n setViewAllOpen(true)\n }}\n >\n View all\n </button>\n </div>\n </PopoverContent>\n </Popover>\n <div className=\"flex shrink-0 items-center self-stretch border-l border-[color:var(--report-builder-border)] px-4\">\n <button\n aria-label=\"View all dimensions and metrics\"\n className=\"text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:underline\"\n type=\"button\"\n onClick={() => {\n setViewAllOpen(true)\n }}\n >\n View all\n </button>\n </div>\n {viewAllOpen && (\n <AllFieldsDialog\n dimensions={dimensions}\n fields={fields}\n metrics={metrics}\n onOpenChange={setViewAllOpen}\n onSelectionChange={onSelectionChange}\n />\n )}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// Filter chips row\n// ---------------------------------------------------------------------------\n\nfunction filterChipLabel(f: ReportBuilderFilter, ff?: ReportBuilderFilterField): string {\n const label = ff ? fieldLabel(ff.label, ff.key) : f.field\n if (f.op === \"anyOf\") return `${label} is any of ${listFmt(f.values ?? [])}`\n if (f.op === \"contains\") return `${label} contains \"${f.text ?? \"\"}\"`\n if (f.op === \"between\") return `${ff?.label ?? f.field} between ${numFmt(f.a)} and ${numFmt(f.b)}`\n const op = NUMBER_OPS.find((o) => o.v === f.op)?.l ?? f.op\n return `${ff?.label ?? f.field} ${op} ${numFmt(f.a)}`\n}\n\n/** Build the filter entry from editor state.\n * Returns the entry, `null` for an empty editor (→ remove the filter), or\n * `\"invalid\"` for unparsable numeric input (→ keep the editor open). */\nfunction buildFilterEntry(\n ff: ReportBuilderFilterField,\n s: { a: string; b: string; op: string; text: string; vals: string[] }\n): \"invalid\" | null | ReportBuilderFilter {\n if (ff.type === \"enum\") {\n return s.vals.length ? { field: ff.key, op: \"anyOf\", values: s.vals } : null\n }\n if (ff.type === \"text\") {\n const t = s.text.trim()\n return t ? { field: ff.key, op: \"contains\", text: t } : null\n }\n const na = Number.parseFloat(s.a)\n if (Number.isNaN(na)) return \"invalid\"\n const nb = s.op === \"between\" ? Number.parseFloat(s.b) : null\n if (nb != null && Number.isNaN(nb)) return \"invalid\"\n return { a: na, b: nb, field: ff.key, op: s.op as ReportBuilderFilter[\"op\"] }\n}\n\nfunction FiltersBar({\n filterFields,\n filters,\n onFiltersChange,\n}: {\n filterFields: ReportBuilderFilterField[]\n filters: ReportBuilderFilter[]\n onFiltersChange: (filters: ReportBuilderFilter[]) => void\n}) {\n const [open, setOpen] = React.useState(false)\n const [fieldKey, setFieldKey] = React.useState<null | string>(null) // null = field list\n const [editIdx, setEditIdx] = React.useState<null | number>(null)\n const [vals, setVals] = React.useState<string[]>([])\n const [text, setText] = React.useState(\"\")\n const [op, setOp] = React.useState<string>(\">=\")\n const [a, setA] = React.useState(\"\")\n const [b, setB] = React.useState(\"\")\n const [fsearch, setFsearch] = React.useState(\"\") // field-list typeahead\n const [vsearch, setVsearch] = React.useState(\"\") // value typeahead in editor\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n const fieldOf = (key: string) => filterFields.find((f) => f.key === key)\n\n function reset() {\n setFieldKey(null)\n setEditIdx(null)\n setVals([])\n setText(\"\")\n setOp(\">=\")\n setA(\"\")\n setB(\"\")\n setFsearch(\"\")\n setVsearch(\"\")\n }\n\n function openEditor(key: string, idx?: number) {\n const ff = fieldOf(key)\n if (!ff) return\n // enum/text fields keep one filter per field — editing replaces it\n const existingIdx =\n idx ?? (ff.type === \"number\" ? -1 : filters.findIndex((x) => x.field === key))\n const seed = editorStateFor(existingIdx >= 0 ? filters[existingIdx] : undefined)\n setFieldKey(key)\n setEditIdx(existingIdx >= 0 ? existingIdx : null)\n setVsearch(\"\")\n setVals(seed.vals)\n setText(seed.text)\n setOp(seed.op)\n setA(seed.a)\n setB(seed.b)\n setOpen(true)\n }\n\n function apply() {\n const ff = fieldKey ? fieldOf(fieldKey) : null\n if (!ff) return\n const entry = buildFilterEntry(ff, { a, b, op, text, vals })\n if (entry === \"invalid\") return\n const next = [...filters]\n if (editIdx != null) {\n if (entry) next[editIdx] = entry\n else next.splice(editIdx, 1)\n } else if (entry) {\n next.push(entry)\n }\n onFiltersChange(next)\n setOpen(false)\n reset()\n }\n\n const editorField = fieldKey ? fieldOf(fieldKey) : null\n const valueOptions = editorField?.options ?? []\n const valueSuggestions = valueOptions.filter(\n (v) => !vals.includes(v) && v.toLowerCase().includes(vsearch.trim().toLowerCase())\n )\n const fieldMatches = (l: string) =>\n l.toLowerCase().includes(fsearch.trim().toLowerCase())\n\n return (\n <div className=\"flex min-h-12 items-center bg-[color:var(--report-builder-surface)] py-2\">\n <div className=\"flex shrink-0 items-center px-3\">\n <Filter className=\"text-[color:var(--report-builder-accent)]\" fill=\"currentColor\" size={20} strokeWidth={0} />\n </div>\n <div className=\"flex min-w-0 flex-1 flex-wrap items-center gap-x-2 gap-y-1\">\n {filters.map((f, i) => (\n <GamChip\n // Content-based key, not the array index: number fields allow\n // duplicate filters on the same field, so an index key mis-keys\n // survivors on removal/reorder. The chip label is unique per filter.\n key={`${f.field}:${filterChipLabel(f, fieldOf(f.field))}`}\n active={open && editIdx === i}\n onClick={() => {\n openEditor(f.field, i)\n }}\n onRemove={() => {\n onFiltersChange(filters.filter((_, j) => j !== i))\n }}\n >\n {filterChipLabel(f, fieldOf(f.field))}\n </GamChip>\n ))}\n {/* \"Add filter\" inline field — the opener, like GAM's combobox */}\n <Popover\n open={open}\n onOpenChange={(o) => {\n setOpen(o)\n if (!o) reset()\n }}\n >\n <PopoverAnchor asChild>\n <input\n ref={inputRef}\n className=\"w-28 bg-transparent px-2 py-1 text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)]\"\n placeholder=\"Add filter\"\n value={fsearch}\n onChange={(e) => {\n setFsearch(e.target.value)\n if (!open) setOpen(true)\n }}\n onFocus={() => {\n if (fieldKey === null) setOpen(true)\n }}\n />\n </PopoverAnchor>\n <PopoverContent\n align=\"start\"\n className={cn(fieldKey === null ? \"w-72\" : \"w-[26rem]\", GAM_POPUP)}\n onInteractOutside={(e) => {\n if (e.target === inputRef.current) e.preventDefault()\n }}\n onOpenAutoFocus={(e) => {\n e.preventDefault()\n }}\n >\n {fieldKey === null ? (\n // step 1 — field list (filtered by the inline field's text)\n <div className=\"max-h-80 overflow-auto py-1\">\n {filterFields\n .filter((f) => fieldMatches(f.label))\n .map((f) => (\n <button\n key={f.key}\n className=\"flex h-8 w-full items-center gap-2 px-4 text-left text-[15px] text-[color:var(--report-builder-fg-strong)] hover:bg-[color:var(--report-builder-surface-muted)]\"\n type=\"button\"\n onClick={() => {\n openEditor(f.key)\n }}\n >\n <KindGlyph kind={f.glyph ?? \"dimension\"} />\n {f.label}\n </button>\n ))}\n </div>\n ) : (\n // step 2 — GAM editor popup: title + ✕, operator, values, Apply\n <div>\n <div className=\"flex items-center justify-between px-3 pb-1 pt-3\">\n <span className=\"text-base text-[color:var(--report-builder-fg)]\">\n {editorField ? fieldLabel(editorField.label, editorField.key) : fieldKey}\n </span>\n <button\n aria-label=\"Close\"\n className=\"rounded-full p-1 text-[color:var(--report-builder-fg-muted)] hover:bg-[color:var(--report-builder-surface-hover)]\"\n type=\"button\"\n onClick={() => {\n setOpen(false)\n reset()\n }}\n >\n <X size={18} />\n </button>\n </div>\n {editorField?.type === \"text\" ? (\n <div className=\"px-3 py-2\">\n <div className=\"mb-2 rounded border border-[color:var(--report-builder-border)] px-3 py-2 text-[13px] text-[color:var(--report-builder-fg-muted)]\">\n contains\n </div>\n <input\n autoFocus\n className=\"w-full border-b border-[color:var(--report-builder-border)] bg-transparent py-1 text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)] focus:border-[color:var(--report-builder-accent)]\"\n placeholder=\"Type to search\"\n value={text}\n onChange={(e) => {\n setText(e.target.value)\n }}\n />\n </div>\n ) : editorField?.type === \"number\" ? (\n <div className=\"flex items-center gap-2 px-3 py-2\">\n <Select value={op} onValueChange={setOp}>\n <SelectTrigger className=\"w-24\" size=\"sm\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {NUMBER_OPS.map((o) => (\n <SelectItem key={o.v} value={o.v}>\n {o.l}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <NumberInput\n placeholder=\"value\"\n value={a}\n onChange={(e) => {\n setA(e.target.value)\n }}\n />\n {op === \"between\" && (\n <NumberInput\n placeholder=\"to\"\n value={b}\n onChange={(e) => {\n setB(e.target.value)\n }}\n />\n )}\n </div>\n ) : (\n <div className=\"px-3 py-2\">\n {/* operator box (enum fields are \"is any of\") */}\n <div className=\"mb-2 rounded border border-[color:var(--report-builder-border)] px-3 py-2 text-[13px] text-[color:var(--report-builder-fg-muted)]\">\n is any of\n </div>\n {/* selected values as chips, like GAM */}\n {vals.length > 0 && (\n <div className=\"mb-1 flex flex-wrap gap-x-2 gap-y-1\">\n {vals.map((v) => (\n <GamChip\n key={v}\n onRemove={() => {\n setVals((p) => p.filter((x) => x !== v))\n }}\n >\n {v}\n </GamChip>\n ))}\n </div>\n )}\n <input\n autoFocus\n className=\"w-full border-b border-[color:var(--report-builder-border)] bg-transparent py-1 text-sm text-[color:var(--report-builder-fg)] outline-none placeholder:text-[color:var(--report-builder-fg-subtle)] focus:border-[color:var(--report-builder-accent)]\"\n placeholder=\"Type to search\"\n value={vsearch}\n onChange={(e) => {\n setVsearch(e.target.value)\n }}\n // Keyboard parity with GAM: Enter adds the first\n // suggestion, so the enum editor is operable without a\n // mouse (WCAG 2.1 AA).\n onKeyDown={(e) => {\n const first = valueSuggestions[0]\n if (e.key === \"Enter\" && first) {\n e.preventDefault()\n setVals((p) => [...p, first])\n setVsearch(\"\")\n }\n }}\n />\n <div className=\"mt-1 max-h-44 overflow-auto\">\n {valueSuggestions.map((v) => (\n <button\n key={v}\n className=\"flex h-8 w-full items-center px-2 text-left text-sm text-[color:var(--report-builder-fg-strong)] hover:bg-[color:var(--report-builder-surface-muted)]\"\n type=\"button\"\n onClick={() => {\n setVals((p) => [...p, v])\n setVsearch(\"\")\n }}\n >\n {v}\n </button>\n ))}\n </div>\n </div>\n )}\n {/* GAM's blue \"Apply\" text button */}\n <div className=\"flex justify-end px-3 pb-2 pt-1\">\n <button\n className=\"rounded px-2 py-1 text-sm font-medium text-[color:var(--report-builder-accent-hover)] hover:bg-[color:var(--report-builder-accent-bg-subtle)]\"\n type=\"button\"\n onClick={apply}\n >\n Apply\n </button>\n </div>\n </div>\n )}\n </PopoverContent>\n </Popover>\n </div>\n {filters.length > 0 && (\n <button\n aria-label=\"Clear all filters\"\n className=\"mx-2 flex shrink-0 items-center rounded-full p-2 text-[color:var(--report-builder-fg-muted)] hover:bg-[color:var(--report-builder-surface-hover)]\"\n type=\"button\"\n onClick={() => {\n onFiltersChange([])\n }}\n >\n <X size={20} />\n </button>\n )}\n </div>\n )\n}\n\n// ---------------------------------------------------------------------------\n// ReportBuilder — the bordered card with both bars\n// ---------------------------------------------------------------------------\n\n/**\n * ReportBuilder - GAM-style report builder bar\n *\n * A faithful copy of Google Ad Manager's report builder: a dimensions+metrics\n * chip strip with inline typeahead, a sentence-chip filter row with an inline\n * \"Add filter\" field and per-field editors, and the \"All dimensions and\n * metrics\" View-all dialog with draft + Apply.\n *\n * @example\n * ```tsx\n * <ReportBuilder\n * fields={[\n * { key: \"date\", label: \"Date\", kind: \"dimension\" },\n * { key: \"rev\", label: \"Revenue\", kind: \"metric\" },\n * ]}\n * dimensions={[\"date\"]}\n * metrics={[\"rev\"]}\n * onSelectionChange={(kind, keys) => { ... }}\n * filterFields={[\n * { key: \"src\", label: \"Source\", type: \"enum\", options: [\"google\", \"facebook\"] },\n * { key: \"rev\", label: \"Revenue\", type: \"number\", glyph: \"metric\" },\n * ]}\n * filters={filters}\n * onFiltersChange={setFilters}\n * />\n * ```\n */\nexport function ReportBuilder({\n fields,\n dimensions,\n metrics,\n onSelectionChange,\n filterFields,\n filters = [],\n onFiltersChange,\n className,\n ...props\n}: ReportBuilderProps) {\n return (\n <div\n className={cn(\"flex flex-col border border-[color:var(--report-builder-border)] bg-[color:var(--report-builder-surface)]\", className)}\n data-slot=\"report-builder\"\n {...props}\n >\n <FieldsBar\n dimensions={dimensions}\n fields={fields}\n metrics={metrics}\n onSelectionChange={onSelectionChange}\n />\n {filterFields && filterFields.length > 0 && onFiltersChange && (\n <FiltersBar\n filterFields={filterFields}\n filters={filters}\n onFiltersChange={onFiltersChange}\n />\n )}\n </div>\n )\n}\n"]}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { cn } from './chunk-HRNDJU7D.js';
|
|
2
|
+
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
3
|
+
import { Command } from 'cmdk';
|
|
4
|
+
import { ChevronDownIcon, SearchIcon, CheckIcon } from 'lucide-react';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { cva } from 'class-variance-authority';
|
|
7
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
var comboboxTriggerVariants = cva(
|
|
10
|
+
// Base styles
|
|
11
|
+
[
|
|
12
|
+
"flex w-fit items-center justify-between gap-[var(--combobox-trigger-gap)] rounded-[var(--combobox-trigger-radius)] border bg-transparent",
|
|
13
|
+
"text-[length:var(--combobox-trigger-text)] whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none",
|
|
14
|
+
"data-[placeholder]:text-muted-foreground",
|
|
15
|
+
"[&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
16
|
+
"focus-visible:border-[color:var(--combobox-trigger-border-focus)] focus-visible:ring-[color:var(--combobox-trigger-ring-primary)]/50 focus-visible:ring-[length:var(--combobox-trigger-ring-width)]",
|
|
17
|
+
"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
|
|
18
|
+
"dark:bg-input/30 dark:hover:bg-input/50",
|
|
19
|
+
"disabled:cursor-not-allowed disabled:bg-[color:var(--combobox-trigger-disabled-bg)] disabled:text-[color:var(--combobox-trigger-disabled-fg)] disabled:border-[color:var(--combobox-trigger-disabled-border)]",
|
|
20
|
+
"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
21
|
+
],
|
|
22
|
+
{
|
|
23
|
+
variants: {
|
|
24
|
+
size: {
|
|
25
|
+
sm: "h-[var(--combobox-trigger-height-sm)] px-[var(--combobox-trigger-padding-x-sm)] py-[var(--combobox-trigger-padding-y-sm)] text-[length:var(--combobox-trigger-text-sm)]",
|
|
26
|
+
md: "h-[var(--combobox-trigger-height-md)] px-[var(--combobox-trigger-padding-x-md)] py-[var(--combobox-trigger-padding-y-md)] text-[length:var(--combobox-trigger-text-md)]",
|
|
27
|
+
lg: "h-[var(--combobox-trigger-height-lg)] px-[var(--combobox-trigger-padding-x-lg)] py-[var(--combobox-trigger-padding-y-lg)] text-[length:var(--combobox-trigger-text-lg)]"
|
|
28
|
+
},
|
|
29
|
+
variant: {
|
|
30
|
+
default: "border-input shadow-xs",
|
|
31
|
+
filled: "border-transparent bg-muted",
|
|
32
|
+
flushed: "rounded-none border-x-0 border-t-0 border-b-input px-0 shadow-none"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
defaultVariants: {
|
|
36
|
+
size: "md",
|
|
37
|
+
variant: "default"
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
var comboboxContentVariants = cva(
|
|
42
|
+
// Base styles
|
|
43
|
+
[
|
|
44
|
+
"bg-[color:var(--combobox-content-bg)] text-[color:var(--combobox-content-fg)]",
|
|
45
|
+
"z-50 w-[var(--combobox-content-min-width)] overflow-hidden rounded-[var(--combobox-content-radius)] border border-[color:var(--combobox-content-border)] shadow-[var(--combobox-content-shadow)] p-0",
|
|
46
|
+
// Animation classes
|
|
47
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
48
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
49
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
50
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2",
|
|
51
|
+
"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2"
|
|
52
|
+
],
|
|
53
|
+
{
|
|
54
|
+
variants: {},
|
|
55
|
+
defaultVariants: {}
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
var comboboxInputVariants = cva(
|
|
59
|
+
[
|
|
60
|
+
"flex h-9 w-full rounded-md bg-transparent py-3 text-sm outline-none",
|
|
61
|
+
"placeholder:text-muted-foreground",
|
|
62
|
+
"disabled:cursor-not-allowed disabled:opacity-50"
|
|
63
|
+
],
|
|
64
|
+
{
|
|
65
|
+
variants: {},
|
|
66
|
+
defaultVariants: {}
|
|
67
|
+
}
|
|
68
|
+
);
|
|
69
|
+
var comboboxItemVariants = cva(
|
|
70
|
+
[
|
|
71
|
+
"relative flex cursor-default items-center gap-2 rounded-[var(--combobox-item-radius)] px-[var(--combobox-item-padding-x)] py-[var(--combobox-item-padding-y)] text-[length:var(--combobox-item-text)]",
|
|
72
|
+
"outline-none select-none",
|
|
73
|
+
"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50",
|
|
74
|
+
"data-[selected=true]:bg-[color:var(--combobox-item-focus-bg)] data-[selected=true]:text-[color:var(--combobox-item-focus-fg)]",
|
|
75
|
+
"[&_svg:not([class*='text-'])]:text-muted-foreground",
|
|
76
|
+
"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4"
|
|
77
|
+
],
|
|
78
|
+
{
|
|
79
|
+
variants: {},
|
|
80
|
+
defaultVariants: {}
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
var comboboxEmptyVariants = cva(
|
|
84
|
+
["py-6 text-center text-sm text-muted-foreground"],
|
|
85
|
+
{
|
|
86
|
+
variants: {},
|
|
87
|
+
defaultVariants: {}
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
function Combobox({
|
|
91
|
+
options,
|
|
92
|
+
value: controlledValue,
|
|
93
|
+
defaultValue,
|
|
94
|
+
placeholder = "Select an option...",
|
|
95
|
+
searchPlaceholder = "Search...",
|
|
96
|
+
emptyMessage = "No results found.",
|
|
97
|
+
disabled = false,
|
|
98
|
+
open: controlledOpen,
|
|
99
|
+
defaultOpen = false,
|
|
100
|
+
onOpenChange,
|
|
101
|
+
onChange,
|
|
102
|
+
onSearch,
|
|
103
|
+
size = "md",
|
|
104
|
+
variant = "default",
|
|
105
|
+
kbdHint,
|
|
106
|
+
className,
|
|
107
|
+
...props
|
|
108
|
+
}) {
|
|
109
|
+
const [internalValue, setInternalValue] = React.useState(defaultValue);
|
|
110
|
+
const value = controlledValue ?? internalValue;
|
|
111
|
+
const [internalOpen, setInternalOpen] = React.useState(defaultOpen);
|
|
112
|
+
const open = controlledOpen ?? internalOpen;
|
|
113
|
+
const [searchQuery, setSearchQuery] = React.useState("");
|
|
114
|
+
const selectedLabel = React.useMemo(() => {
|
|
115
|
+
if (!value) return null;
|
|
116
|
+
const option = options.find((opt) => opt.value === value);
|
|
117
|
+
return option?.label ?? null;
|
|
118
|
+
}, [value, options]);
|
|
119
|
+
const handleOpenChange = React.useCallback(
|
|
120
|
+
(newOpen) => {
|
|
121
|
+
if (controlledOpen === void 0) {
|
|
122
|
+
setInternalOpen(newOpen);
|
|
123
|
+
}
|
|
124
|
+
onOpenChange?.(newOpen);
|
|
125
|
+
if (!newOpen) {
|
|
126
|
+
setSearchQuery("");
|
|
127
|
+
}
|
|
128
|
+
},
|
|
129
|
+
[controlledOpen, onOpenChange]
|
|
130
|
+
);
|
|
131
|
+
const handleSelect = React.useCallback(
|
|
132
|
+
(selectedValue) => {
|
|
133
|
+
if (controlledValue === void 0) {
|
|
134
|
+
setInternalValue(selectedValue);
|
|
135
|
+
}
|
|
136
|
+
onChange?.(selectedValue);
|
|
137
|
+
handleOpenChange(false);
|
|
138
|
+
},
|
|
139
|
+
[controlledValue, onChange, handleOpenChange]
|
|
140
|
+
);
|
|
141
|
+
const handleSearchChange = React.useCallback(
|
|
142
|
+
(query) => {
|
|
143
|
+
setSearchQuery(query);
|
|
144
|
+
onSearch?.(query);
|
|
145
|
+
},
|
|
146
|
+
[onSearch]
|
|
147
|
+
);
|
|
148
|
+
return /* @__PURE__ */ jsxs(PopoverPrimitive.Root, { open, onOpenChange: handleOpenChange, children: [
|
|
149
|
+
/* @__PURE__ */ jsx(PopoverPrimitive.Trigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
150
|
+
"button",
|
|
151
|
+
{
|
|
152
|
+
"aria-expanded": open,
|
|
153
|
+
"aria-haspopup": "listbox",
|
|
154
|
+
className: cn(comboboxTriggerVariants({ size, variant }), className),
|
|
155
|
+
"data-size": size,
|
|
156
|
+
"data-slot": "combobox",
|
|
157
|
+
"data-variant": variant,
|
|
158
|
+
disabled,
|
|
159
|
+
role: "combobox",
|
|
160
|
+
type: "button",
|
|
161
|
+
...props,
|
|
162
|
+
children: [
|
|
163
|
+
/* @__PURE__ */ jsx(
|
|
164
|
+
"span",
|
|
165
|
+
{
|
|
166
|
+
className: "truncate",
|
|
167
|
+
"data-placeholder": !selectedLabel || void 0,
|
|
168
|
+
"data-slot": "combobox-trigger",
|
|
169
|
+
children: selectedLabel ?? placeholder
|
|
170
|
+
}
|
|
171
|
+
),
|
|
172
|
+
/* @__PURE__ */ jsx(ChevronDownIcon, { className: "size-4 shrink-0 opacity-50" })
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
) }),
|
|
176
|
+
/* @__PURE__ */ jsx(PopoverPrimitive.Portal, { children: /* @__PURE__ */ jsx(
|
|
177
|
+
PopoverPrimitive.Content,
|
|
178
|
+
{
|
|
179
|
+
align: "start",
|
|
180
|
+
className: cn(comboboxContentVariants()),
|
|
181
|
+
"data-slot": "combobox-content",
|
|
182
|
+
sideOffset: 4,
|
|
183
|
+
children: /* @__PURE__ */ jsxs(
|
|
184
|
+
Command,
|
|
185
|
+
{
|
|
186
|
+
className: "flex h-full w-full flex-col overflow-hidden",
|
|
187
|
+
shouldFilter: !onSearch,
|
|
188
|
+
children: [
|
|
189
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center border-b px-3", children: [
|
|
190
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: "mr-2 size-4 shrink-0 opacity-50" }),
|
|
191
|
+
/* @__PURE__ */ jsx(
|
|
192
|
+
Command.Input,
|
|
193
|
+
{
|
|
194
|
+
"aria-autocomplete": "list",
|
|
195
|
+
className: cn(comboboxInputVariants()),
|
|
196
|
+
"data-slot": "combobox-input",
|
|
197
|
+
placeholder: searchPlaceholder,
|
|
198
|
+
value: searchQuery,
|
|
199
|
+
onValueChange: handleSearchChange
|
|
200
|
+
}
|
|
201
|
+
),
|
|
202
|
+
kbdHint && /* @__PURE__ */ jsx(
|
|
203
|
+
"kbd",
|
|
204
|
+
{
|
|
205
|
+
"aria-hidden": "true",
|
|
206
|
+
className: "ml-2 inline-flex h-5 shrink-0 items-center rounded border bg-muted px-1.5 text-[10px] font-semibold text-muted-foreground",
|
|
207
|
+
"data-slot": "combobox-kbd",
|
|
208
|
+
children: kbdHint
|
|
209
|
+
}
|
|
210
|
+
)
|
|
211
|
+
] }),
|
|
212
|
+
/* @__PURE__ */ jsxs(
|
|
213
|
+
Command.List,
|
|
214
|
+
{
|
|
215
|
+
className: "max-h-72 overflow-y-auto overflow-x-hidden p-1",
|
|
216
|
+
"data-slot": "combobox-list",
|
|
217
|
+
children: [
|
|
218
|
+
/* @__PURE__ */ jsx(
|
|
219
|
+
Command.Empty,
|
|
220
|
+
{
|
|
221
|
+
className: cn(comboboxEmptyVariants()),
|
|
222
|
+
"data-slot": "combobox-empty",
|
|
223
|
+
children: emptyMessage
|
|
224
|
+
}
|
|
225
|
+
),
|
|
226
|
+
options.map((option) => /* @__PURE__ */ jsxs(
|
|
227
|
+
Command.Item,
|
|
228
|
+
{
|
|
229
|
+
className: cn(comboboxItemVariants()),
|
|
230
|
+
"data-disabled": option.disabled ?? void 0,
|
|
231
|
+
"data-selected": value === option.value || void 0,
|
|
232
|
+
"data-slot": "combobox-item",
|
|
233
|
+
disabled: option.disabled ?? false,
|
|
234
|
+
value: option.label,
|
|
235
|
+
onSelect: () => {
|
|
236
|
+
if (!option.disabled) {
|
|
237
|
+
handleSelect(option.value);
|
|
238
|
+
}
|
|
239
|
+
},
|
|
240
|
+
children: [
|
|
241
|
+
/* @__PURE__ */ jsx(
|
|
242
|
+
CheckIcon,
|
|
243
|
+
{
|
|
244
|
+
className: cn(
|
|
245
|
+
"size-4",
|
|
246
|
+
value === option.value ? "opacity-100" : "opacity-0"
|
|
247
|
+
)
|
|
248
|
+
}
|
|
249
|
+
),
|
|
250
|
+
option.label
|
|
251
|
+
]
|
|
252
|
+
},
|
|
253
|
+
option.value
|
|
254
|
+
))
|
|
255
|
+
]
|
|
256
|
+
}
|
|
257
|
+
)
|
|
258
|
+
]
|
|
259
|
+
}
|
|
260
|
+
)
|
|
261
|
+
}
|
|
262
|
+
) })
|
|
263
|
+
] });
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
export { Combobox };
|
|
267
|
+
//# sourceMappingURL=chunk-4RSHPKHB.js.map
|
|
268
|
+
//# sourceMappingURL=chunk-4RSHPKHB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/forms/Combobox/Combobox.variants.ts","../src/components/forms/Combobox/Combobox.tsx"],"names":["CommandPrimitive"],"mappings":"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","file":"chunk-4RSHPKHB.js","sourcesContent":["import { cva, type VariantProps } from \"class-variance-authority\"\n\n/**\n * ComboboxTrigger variant styles using CVA\n */\nexport const comboboxTriggerVariants = cva(\n // Base styles\n [\n \"flex w-fit items-center justify-between gap-[var(--combobox-trigger-gap)] rounded-[var(--combobox-trigger-radius)] border bg-transparent\",\n \"text-[length:var(--combobox-trigger-text)] whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none\",\n \"data-[placeholder]:text-muted-foreground\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"focus-visible:border-[color:var(--combobox-trigger-border-focus)] focus-visible:ring-[color:var(--combobox-trigger-ring-primary)]/50 focus-visible:ring-[length:var(--combobox-trigger-ring-width)]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n \"dark:bg-input/30 dark:hover:bg-input/50\",\n \"disabled:cursor-not-allowed disabled:bg-[color:var(--combobox-trigger-disabled-bg)] disabled:text-[color:var(--combobox-trigger-disabled-fg)] disabled:border-[color:var(--combobox-trigger-disabled-border)]\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {\n size: {\n sm: \"h-[var(--combobox-trigger-height-sm)] px-[var(--combobox-trigger-padding-x-sm)] py-[var(--combobox-trigger-padding-y-sm)] text-[length:var(--combobox-trigger-text-sm)]\",\n md: \"h-[var(--combobox-trigger-height-md)] px-[var(--combobox-trigger-padding-x-md)] py-[var(--combobox-trigger-padding-y-md)] text-[length:var(--combobox-trigger-text-md)]\",\n lg: \"h-[var(--combobox-trigger-height-lg)] px-[var(--combobox-trigger-padding-x-lg)] py-[var(--combobox-trigger-padding-y-lg)] text-[length:var(--combobox-trigger-text-lg)]\",\n },\n variant: {\n default: \"border-input shadow-xs\",\n filled: \"border-transparent bg-muted\",\n flushed: \"rounded-none border-x-0 border-t-0 border-b-input px-0 shadow-none\",\n },\n },\n defaultVariants: {\n size: \"md\",\n variant: \"default\",\n },\n }\n)\n\n/**\n * ComboboxContent variant styles using CVA\n */\nexport const comboboxContentVariants = cva(\n // Base styles\n [\n \"bg-[color:var(--combobox-content-bg)] text-[color:var(--combobox-content-fg)]\",\n \"z-50 w-[var(--combobox-content-min-width)] overflow-hidden rounded-[var(--combobox-content-radius)] border border-[color:var(--combobox-content-border)] shadow-[var(--combobox-content-shadow)] p-0\",\n // Animation classes\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2\",\n \"data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * ComboboxInput variant styles using CVA\n */\nexport const comboboxInputVariants = cva(\n [\n \"flex h-9 w-full rounded-md bg-transparent py-3 text-sm outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * ComboboxItem variant styles using CVA\n */\nexport const comboboxItemVariants = cva(\n [\n \"relative flex cursor-default items-center gap-2 rounded-[var(--combobox-item-radius)] px-[var(--combobox-item-padding-x)] py-[var(--combobox-item-padding-y)] text-[length:var(--combobox-item-text)]\",\n \"outline-none select-none\",\n \"data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50\",\n \"data-[selected=true]:bg-[color:var(--combobox-item-focus-bg)] data-[selected=true]:text-[color:var(--combobox-item-focus-fg)]\",\n \"[&_svg:not([class*='text-'])]:text-muted-foreground\",\n \"[&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n ],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\n/**\n * ComboboxEmpty variant styles using CVA\n */\nexport const comboboxEmptyVariants = cva(\n [\"py-6 text-center text-sm text-muted-foreground\"],\n {\n variants: {},\n defaultVariants: {},\n }\n)\n\nexport type ComboboxTriggerVariantProps = VariantProps<typeof comboboxTriggerVariants>\nexport type ComboboxContentVariantProps = VariantProps<typeof comboboxContentVariants>\nexport type ComboboxInputVariantProps = VariantProps<typeof comboboxInputVariants>\nexport type ComboboxItemVariantProps = VariantProps<typeof comboboxItemVariants>\nexport type ComboboxEmptyVariantProps = VariantProps<typeof comboboxEmptyVariants>\n","import type { ComboboxProps } from \"./Combobox.types\"\n\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { CheckIcon, ChevronDownIcon, SearchIcon } from \"lucide-react\"\nimport * as React from \"react\"\n\nimport { cn } from \"../../../lib/utils\"\nimport {\n comboboxContentVariants,\n comboboxEmptyVariants,\n comboboxInputVariants,\n comboboxItemVariants,\n comboboxTriggerVariants,\n} from \"./Combobox.variants\"\n\n/**\n * Combobox - A searchable select component with keyboard navigation\n *\n * Uses Radix Popover for the dropdown container and cmdk (Command) for\n * search/filter functionality with full keyboard accessibility.\n *\n * @example\n * ```tsx\n * <Combobox\n * options={[\n * { value: \"apple\", label: \"Apple\" },\n * { value: \"banana\", label: \"Banana\" },\n * ]}\n * placeholder=\"Select a fruit...\"\n * onChange={(value) => console.log(value)}\n * />\n * ```\n */\nfunction Combobox({\n options,\n value: controlledValue,\n defaultValue,\n placeholder = \"Select an option...\",\n searchPlaceholder = \"Search...\",\n emptyMessage = \"No results found.\",\n disabled = false,\n open: controlledOpen,\n defaultOpen = false,\n onOpenChange,\n onChange,\n onSearch,\n size = \"md\",\n variant = \"default\",\n kbdHint,\n className,\n ...props\n}: ComboboxProps) {\n // Handle controlled vs uncontrolled value\n const [internalValue, setInternalValue] = React.useState<string | undefined>(defaultValue)\n const value = controlledValue ?? internalValue\n\n // Handle controlled vs uncontrolled open state\n const [internalOpen, setInternalOpen] = React.useState(defaultOpen)\n const open = controlledOpen ?? internalOpen\n\n // Search query state\n const [searchQuery, setSearchQuery] = React.useState(\"\")\n\n // Get the label for the currently selected value\n const selectedLabel = React.useMemo(() => {\n if (!value) return null\n const option = options.find((opt) => opt.value === value)\n return option?.label ?? null\n }, [value, options])\n\n // Handle open state changes\n const handleOpenChange = React.useCallback(\n (newOpen: boolean) => {\n if (controlledOpen === undefined) {\n setInternalOpen(newOpen)\n }\n onOpenChange?.(newOpen)\n\n // Clear search when closing\n if (!newOpen) {\n setSearchQuery(\"\")\n }\n },\n [controlledOpen, onOpenChange]\n )\n\n // Handle value selection\n const handleSelect = React.useCallback(\n (selectedValue: string) => {\n if (controlledValue === undefined) {\n setInternalValue(selectedValue)\n }\n onChange?.(selectedValue)\n handleOpenChange(false)\n },\n [controlledValue, onChange, handleOpenChange]\n )\n\n // Handle search input changes\n const handleSearchChange = React.useCallback(\n (query: string) => {\n setSearchQuery(query)\n onSearch?.(query)\n },\n [onSearch]\n )\n\n return (\n <PopoverPrimitive.Root open={open} onOpenChange={handleOpenChange}>\n <PopoverPrimitive.Trigger asChild>\n <button\n aria-expanded={open}\n aria-haspopup=\"listbox\"\n className={cn(comboboxTriggerVariants({ size, variant }), className)}\n data-size={size}\n data-slot=\"combobox\"\n data-variant={variant}\n disabled={disabled}\n role=\"combobox\"\n type=\"button\"\n {...props}\n >\n <span\n className=\"truncate\"\n data-placeholder={!selectedLabel || undefined}\n data-slot=\"combobox-trigger\"\n >\n {selectedLabel ?? placeholder}\n </span>\n <ChevronDownIcon className=\"size-4 shrink-0 opacity-50\" />\n </button>\n </PopoverPrimitive.Trigger>\n\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n align=\"start\"\n className={cn(comboboxContentVariants())}\n data-slot=\"combobox-content\"\n sideOffset={4}\n >\n <CommandPrimitive\n className=\"flex h-full w-full flex-col overflow-hidden\"\n shouldFilter={!onSearch}\n >\n <div className=\"flex items-center border-b px-3\">\n <SearchIcon className=\"mr-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n aria-autocomplete=\"list\"\n className={cn(comboboxInputVariants())}\n data-slot=\"combobox-input\"\n placeholder={searchPlaceholder}\n value={searchQuery}\n onValueChange={handleSearchChange}\n />\n {kbdHint && (\n <kbd\n aria-hidden=\"true\"\n className=\"ml-2 inline-flex h-5 shrink-0 items-center rounded border bg-muted px-1.5 text-[10px] font-semibold text-muted-foreground\"\n data-slot=\"combobox-kbd\"\n >\n {kbdHint}\n </kbd>\n )}\n </div>\n\n <CommandPrimitive.List\n className=\"max-h-72 overflow-y-auto overflow-x-hidden p-1\"\n data-slot=\"combobox-list\"\n >\n <CommandPrimitive.Empty\n className={cn(comboboxEmptyVariants())}\n data-slot=\"combobox-empty\"\n >\n {emptyMessage}\n </CommandPrimitive.Empty>\n\n {options.map((option) => (\n <CommandPrimitive.Item\n key={option.value}\n className={cn(comboboxItemVariants())}\n data-disabled={option.disabled ?? undefined}\n data-selected={value === option.value || undefined}\n data-slot=\"combobox-item\"\n disabled={option.disabled ?? false}\n value={option.label}\n onSelect={() => {\n if (!option.disabled) {\n handleSelect(option.value)\n }\n }}\n >\n <CheckIcon\n className={cn(\n \"size-4\",\n value === option.value ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n {option.label}\n </CommandPrimitive.Item>\n ))}\n </CommandPrimitive.List>\n </CommandPrimitive>\n </PopoverPrimitive.Content>\n </PopoverPrimitive.Portal>\n </PopoverPrimitive.Root>\n )\n}\n\nexport { Combobox }\n"]}
|