@popcraft/kit 0.31.0 → 0.32.0
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/chunks/agent-LNZDZLDR.js +44 -0
- package/dist/chunks/api-SHU5H2PY.js +29 -0
- package/dist/chunks/build-AKMRSWRB.js +59 -0
- package/dist/chunks/builtin-KY56DU2Y.js +115 -0
- package/dist/chunks/check-template-OYCBJNDF.js +2277 -0
- package/dist/chunks/chunk-234GVJYA.js +109 -0
- package/dist/chunks/chunk-244VQ54U.js +358 -0
- package/dist/chunks/chunk-24VZDMPK.js +209 -0
- package/dist/chunks/chunk-26OQHOZI.js +123 -0
- package/dist/chunks/chunk-27GSJ5G5.js +278 -0
- package/dist/chunks/chunk-27X4OPQ3.js +44 -0
- package/dist/chunks/chunk-2BEHQ34I.js +270 -0
- package/dist/chunks/chunk-2BJFBFXK.js +33 -0
- package/dist/chunks/chunk-2BMJ4UG4.js +138 -0
- package/dist/chunks/chunk-2BVGM5PJ.js +33 -0
- package/dist/chunks/chunk-2CNLFCXM.js +60 -0
- package/dist/chunks/chunk-2DH2LPXQ.js +106 -0
- package/dist/chunks/chunk-2DLJ34AZ.js +77 -0
- package/dist/chunks/chunk-2DOWEP23.js +106 -0
- package/dist/chunks/chunk-2EJRSW3B.js +45 -0
- package/dist/chunks/chunk-2ETNHQDU.js +45 -0
- package/dist/chunks/chunk-2FCK73ME.js +163 -0
- package/dist/chunks/chunk-2FGU5OPW.js +33 -0
- package/dist/chunks/chunk-2HRRUKE4.js +90 -0
- package/dist/chunks/chunk-2J3PCCBE.js +33 -0
- package/dist/chunks/chunk-2J4DQY7Q.js +331 -0
- package/dist/chunks/chunk-2KEE23HU.js +152 -0
- package/dist/chunks/chunk-2KJTKSF7.js +305 -0
- package/dist/chunks/chunk-2P7ISWIA.js +1266 -0
- package/dist/chunks/chunk-2PEG56PC.js +11820 -0
- package/dist/chunks/chunk-2PYBOHPP.js +129 -0
- package/dist/chunks/chunk-2T3RXEHR.js +375 -0
- package/dist/chunks/chunk-2TIRUYXL.js +180 -0
- package/dist/chunks/chunk-2Y4IIPOE.js +228 -0
- package/dist/chunks/chunk-2ZOSBENB.js +36 -0
- package/dist/chunks/chunk-357MX4XC.js +155 -0
- package/dist/chunks/chunk-35EWVHEY.js +23 -0
- package/dist/chunks/chunk-37PXUEWP.js +150 -0
- package/dist/chunks/chunk-3A7TOUVA.js +60 -0
- package/dist/chunks/chunk-3AUXRA3F.js +149 -0
- package/dist/chunks/chunk-3BBLD65X.js +83 -0
- package/dist/chunks/chunk-3CB5FZ2F.js +399 -0
- package/dist/chunks/chunk-3DEPF3MD.js +68 -0
- package/dist/chunks/chunk-3FGWRSN5.js +178 -0
- package/dist/chunks/chunk-3G2SLNZD.js +206 -0
- package/dist/chunks/chunk-3HKODMVI.js +80 -0
- package/dist/chunks/chunk-3HSI3NPQ.js +100 -0
- package/dist/chunks/chunk-3N3DDMPA.js +88 -0
- package/dist/chunks/chunk-3N6BLOQT.js +777 -0
- package/dist/chunks/chunk-3NI5OGFT.js +558 -0
- package/dist/chunks/chunk-3OYPMUGF.js +85 -0
- package/dist/chunks/chunk-3OZNX2RW.js +362 -0
- package/dist/chunks/chunk-3QW2ZRSC.js +226 -0
- package/dist/chunks/chunk-3RR2AZWF.js +166 -0
- package/dist/chunks/chunk-3TXRGZEU.js +230 -0
- package/dist/chunks/chunk-3W3WQN2W.js +136 -0
- package/dist/chunks/chunk-3Z2ZGFT5.js +99 -0
- package/dist/chunks/chunk-3ZO43HDI.js +118 -0
- package/dist/chunks/chunk-42LFGCDX.js +42 -0
- package/dist/chunks/chunk-44NLGWX7.js +23 -0
- package/dist/chunks/chunk-46OKOUVF.js +110 -0
- package/dist/chunks/chunk-4AACDHFM.js +100 -0
- package/dist/chunks/chunk-4BGLN3US.js +23 -0
- package/dist/chunks/chunk-4CREVURI.js +1307 -0
- package/dist/chunks/chunk-4DWK6EEF.js +23 -0
- package/dist/chunks/chunk-4GG3UHQY.js +336 -0
- package/dist/chunks/chunk-4GGB33NY.js +898 -0
- package/dist/chunks/chunk-4GRUOQBH.js +685 -0
- package/dist/chunks/chunk-4H6F4SX6.js +59 -0
- package/dist/chunks/chunk-4K7VZEWL.js +45 -0
- package/dist/chunks/chunk-4S3URS6Z.js +172 -0
- package/dist/chunks/chunk-4S5TWA54.js +30 -0
- package/dist/chunks/chunk-4SPJ75RY.js +170 -0
- package/dist/chunks/chunk-4URHIHLG.js +728 -0
- package/dist/chunks/chunk-4WOXDZWL.js +152 -0
- package/dist/chunks/chunk-4X5G4QPZ.js +88 -0
- package/dist/chunks/chunk-4ZBHIQI3.js +71 -0
- package/dist/chunks/chunk-4ZI3MY6Q.js +100 -0
- package/dist/chunks/chunk-4ZWSOGLF.js +95 -0
- package/dist/chunks/chunk-52UK4HIK.js +168 -0
- package/dist/chunks/chunk-53IGZPFI.js +149 -0
- package/dist/chunks/chunk-53JDPAP4.js +263 -0
- package/dist/chunks/chunk-54K4BWHP.js +346 -0
- package/dist/chunks/chunk-55GSGQ22.js +209 -0
- package/dist/chunks/chunk-5AJJN4SZ.js +33 -0
- package/dist/chunks/chunk-5DV2UDUS.js +143 -0
- package/dist/chunks/chunk-5EHU4XFD.js +106 -0
- package/dist/chunks/chunk-5FD2PC5J.js +156 -0
- package/dist/chunks/chunk-5FPICOLV.js +89 -0
- package/dist/chunks/chunk-5FWRLBAW.js +138 -0
- package/dist/chunks/chunk-5GSRWIV2.js +33 -0
- package/dist/chunks/chunk-5ILC6R3Y.js +304 -0
- package/dist/chunks/chunk-5KR2J2CR.js +164 -0
- package/dist/chunks/chunk-5LQX4ILP.js +177 -0
- package/dist/chunks/chunk-5MEGWX5C.js +153 -0
- package/dist/chunks/chunk-5MEUN7SZ.js +303 -0
- package/dist/chunks/chunk-5NGWNEKU.js +33 -0
- package/dist/chunks/chunk-5OJA47IZ.js +99 -0
- package/dist/chunks/chunk-5PCFMR56.js +104 -0
- package/dist/chunks/chunk-5RRW5HGT.js +107 -0
- package/dist/chunks/chunk-5RWSY543.js +179 -0
- package/dist/chunks/chunk-5S23X3BA.js +163 -0
- package/dist/chunks/chunk-5SXABPXH.js +23 -0
- package/dist/chunks/chunk-5TJ6OREK.js +182 -0
- package/dist/chunks/chunk-5W3C5KDZ.js +106 -0
- package/dist/chunks/chunk-5X6DMD5A.js +503 -0
- package/dist/chunks/chunk-62MVOYLK.js +91 -0
- package/dist/chunks/chunk-62SM2ZMI.js +160 -0
- package/dist/chunks/chunk-645PFVD4.js +155 -0
- package/dist/chunks/chunk-6476X44H.js +342 -0
- package/dist/chunks/chunk-65RVTQRR.js +80 -0
- package/dist/chunks/chunk-675XJCZ4.js +261 -0
- package/dist/chunks/chunk-6AGJUNGT.js +155 -0
- package/dist/chunks/chunk-6AJHHLO6.js +185 -0
- package/dist/chunks/chunk-6CRT7IDI.js +877 -0
- package/dist/chunks/chunk-6DA3BPDG.js +119 -0
- package/dist/chunks/chunk-6EDUIURU.js +209 -0
- package/dist/chunks/chunk-6EFQ2GI6.js +117 -0
- package/dist/chunks/chunk-6EVUK5HU.js +87 -0
- package/dist/chunks/chunk-6FGA5DPZ.js +97 -0
- package/dist/chunks/chunk-6GMHLK2Q.js +80 -0
- package/dist/chunks/chunk-6HG4LBLO.js +23 -0
- package/dist/chunks/chunk-6IL7LJLA.js +136 -0
- package/dist/chunks/chunk-6KXNC2TP.js +77 -0
- package/dist/chunks/chunk-6QXJBXDE.js +200 -0
- package/dist/chunks/chunk-6REEUYWW.js +154 -0
- package/dist/chunks/chunk-6TWK3D4X.js +130 -0
- package/dist/chunks/chunk-6UEQFBWY.js +111 -0
- package/dist/chunks/chunk-6YOSXWZP.js +122 -0
- package/dist/chunks/chunk-6ZC5NWJX.js +165 -0
- package/dist/chunks/chunk-73WGEKAV.js +92 -0
- package/dist/chunks/chunk-73ZTTYZR.js +257 -0
- package/dist/chunks/chunk-74JAKKEI.js +145 -0
- package/dist/chunks/chunk-7A3MIEOO.js +33 -0
- package/dist/chunks/chunk-7A5X3MPD.js +139 -0
- package/dist/chunks/chunk-7CMEZLFV.js +23 -0
- package/dist/chunks/chunk-7CTL7VOX.js +108 -0
- package/dist/chunks/chunk-7D46BJKY.js +115 -0
- package/dist/chunks/chunk-7DIFO56V.js +82 -0
- package/dist/chunks/chunk-7DKGI65Y.js +305 -0
- package/dist/chunks/chunk-7EDUMRSP.js +63 -0
- package/dist/chunks/chunk-7IGLOKC3.js +33 -0
- package/dist/chunks/chunk-7KFQX6N5.js +33 -0
- package/dist/chunks/chunk-7L5NR427.js +117 -0
- package/dist/chunks/chunk-7RNNXZVW.js +197 -0
- package/dist/chunks/chunk-7TXYSS7Y.js +137 -0
- package/dist/chunks/chunk-7UZPG5OF.js +261 -0
- package/dist/chunks/chunk-7VKFRZUS.js +92 -0
- package/dist/chunks/chunk-7VONQLIJ.js +77 -0
- package/dist/chunks/chunk-7WZKZLHC.js +79 -0
- package/dist/chunks/chunk-7YKXBYPW.js +87 -0
- package/dist/chunks/chunk-7YWNU2LK.js +84 -0
- package/dist/chunks/chunk-A2YCZXKT.js +112 -0
- package/dist/chunks/chunk-A3VN4RGK.js +103 -0
- package/dist/chunks/chunk-A6A2JBPP.js +39 -0
- package/dist/chunks/chunk-A6W7TCYN.js +131 -0
- package/dist/chunks/chunk-A6YR7NCL.js +204 -0
- package/dist/chunks/chunk-A7B7AVJ2.js +33 -0
- package/dist/chunks/chunk-ACCEORUW.js +396 -0
- package/dist/chunks/chunk-ADBWFQST.js +140 -0
- package/dist/chunks/chunk-AE6OPGVT.js +497 -0
- package/dist/chunks/chunk-AFZSHMSN.js +247 -0
- package/dist/chunks/chunk-AIB22SFX.js +81 -0
- package/dist/chunks/chunk-AIOGZZNH.js +33 -0
- package/dist/chunks/chunk-ALGPGOMJ.js +117 -0
- package/dist/chunks/chunk-ALI2HZVF.js +327 -0
- package/dist/chunks/chunk-AMO2LCXI.js +206 -0
- package/dist/chunks/chunk-ANEDZH7A.js +45 -0
- package/dist/chunks/chunk-ANHFYSIK.js +23 -0
- package/dist/chunks/chunk-APBRV4W6.js +71 -0
- package/dist/chunks/chunk-APVJKUJP.js +10192 -0
- package/dist/chunks/chunk-AQZZ7NXG.js +33 -0
- package/dist/chunks/chunk-ARLI55LW.js +181 -0
- package/dist/chunks/chunk-AUDNQRAJ.js +170 -0
- package/dist/chunks/chunk-AWW5HNKW.js +298 -0
- package/dist/chunks/chunk-AWWZDFNO.js +112 -0
- package/dist/chunks/chunk-AXUQWEMX.js +86 -0
- package/dist/chunks/chunk-AYUZ47JD.js +98 -0
- package/dist/chunks/chunk-AYXXSKQH.js +23 -0
- package/dist/chunks/chunk-B4KCU67P.js +94 -0
- package/dist/chunks/chunk-B6SHLME3.js +47 -0
- package/dist/chunks/chunk-B7R4D5GQ.js +311 -0
- package/dist/chunks/chunk-BBYOVJQJ.js +98 -0
- package/dist/chunks/chunk-BC3MIZCD.js +111 -0
- package/dist/chunks/chunk-BCH6FNXB.js +50 -0
- package/dist/chunks/chunk-BDTCY5RE.js +190 -0
- package/dist/chunks/chunk-BH5MTM45.js +170 -0
- package/dist/chunks/chunk-BHT7E57Y.js +149 -0
- package/dist/chunks/chunk-BJ7KIGYV.js +170 -0
- package/dist/chunks/chunk-BJHWDQRI.js +109 -0
- package/dist/chunks/chunk-BKY75AW2.js +119 -0
- package/dist/chunks/chunk-BMWLLWMV.js +307 -0
- package/dist/chunks/chunk-BOR6OVBL.js +174 -0
- package/dist/chunks/chunk-BPQCEJLQ.js +298 -0
- package/dist/chunks/chunk-BRHNGS57.js +84 -0
- package/dist/chunks/chunk-BRLE5NZW.js +124 -0
- package/dist/chunks/chunk-BT4SHCEP.js +163 -0
- package/dist/chunks/chunk-BWB2TS4H.js +250 -0
- package/dist/chunks/chunk-BXSQ774Z.js +121 -0
- package/dist/chunks/chunk-BZFCSLR7.js +200 -0
- package/dist/chunks/chunk-C4STXVSA.js +23 -0
- package/dist/chunks/chunk-C5HM5OJJ.js +150 -0
- package/dist/chunks/chunk-C63WDV67.js +97 -0
- package/dist/chunks/chunk-C7X4DDSU.js +97 -0
- package/dist/chunks/chunk-CAL2ZF6M.js +198 -0
- package/dist/chunks/chunk-CAMZPMB7.js +209 -0
- package/dist/chunks/chunk-CCGTARBV.js +46 -0
- package/dist/chunks/chunk-CCJN5ULY.js +83 -0
- package/dist/chunks/chunk-CCPZIE73.js +161 -0
- package/dist/chunks/chunk-CEUH436H.js +105 -0
- package/dist/chunks/chunk-CGLFDWFM.js +99 -0
- package/dist/chunks/chunk-CGNNKKW7.js +70 -0
- package/dist/chunks/chunk-CHOXN3SQ.js +208 -0
- package/dist/chunks/chunk-CHWB4U2K.js +33 -0
- package/dist/chunks/chunk-CITKZJUF.js +109 -0
- package/dist/chunks/chunk-CKBPEGTH.js +260 -0
- package/dist/chunks/chunk-CL4K63NB.js +266 -0
- package/dist/chunks/chunk-CMBEGDWH.js +176 -0
- package/dist/chunks/chunk-CMOG7TOU.js +224 -0
- package/dist/chunks/chunk-CNVC6EPP.js +89 -0
- package/dist/chunks/chunk-COJM27N2.js +73 -0
- package/dist/chunks/chunk-CPRCZAB3.js +74 -0
- package/dist/chunks/chunk-CPZGUNKV.js +283 -0
- package/dist/chunks/chunk-CQYSUE36.js +324 -0
- package/dist/chunks/chunk-CR4OGLU2.js +23 -0
- package/dist/chunks/chunk-CR7Q7NTM.js +213 -0
- package/dist/chunks/chunk-CRTQZXSF.js +224 -0
- package/dist/chunks/chunk-CSS3B3N4.js +165 -0
- package/dist/chunks/chunk-CSW2CAUK.js +112 -0
- package/dist/chunks/chunk-CT35IIMQ.js +109 -0
- package/dist/chunks/chunk-CU3KVW5H.js +55 -0
- package/dist/chunks/chunk-CUMWJVNP.js +170 -0
- package/dist/chunks/chunk-CV6QBO5D.js +81 -0
- package/dist/chunks/chunk-CVB5F7FJ.js +92 -0
- package/dist/chunks/chunk-CVWKXDFH.js +102 -0
- package/dist/chunks/chunk-CX26P7IA.js +277 -0
- package/dist/chunks/chunk-CZCXFTP5.js +23 -0
- package/dist/chunks/chunk-D3U4EHJR.js +47 -0
- package/dist/chunks/chunk-D6J2AGZU.js +53 -0
- package/dist/chunks/chunk-D6VGJK6W.js +157 -0
- package/dist/chunks/chunk-DBSMVIXL.js +266 -0
- package/dist/chunks/chunk-DF5IDTZB.js +33 -0
- package/dist/chunks/chunk-DFZWVEGU.js +251 -0
- package/dist/chunks/chunk-DGK3MB6Y.js +85 -0
- package/dist/chunks/chunk-DHFFPZN7.js +193 -0
- package/dist/chunks/chunk-DHPPMW7M.js +33 -0
- package/dist/chunks/chunk-DIBT2Z4X.js +287 -0
- package/dist/chunks/chunk-DJ3F6EOL.js +86 -0
- package/dist/chunks/chunk-DJCBRATX.js +151 -0
- package/dist/chunks/chunk-DLNC4SLW.js +145 -0
- package/dist/chunks/chunk-DNH4D4JI.js +198 -0
- package/dist/chunks/chunk-DO6PZVWR.js +232 -0
- package/dist/chunks/chunk-DPH7UHGV.js +92 -0
- package/dist/chunks/chunk-DQ7AF2R5.js +217 -0
- package/dist/chunks/chunk-DQJKVQV4.js +163 -0
- package/dist/chunks/chunk-DQMCRGYD.js +589 -0
- package/dist/chunks/chunk-DRV5Z4KL.js +224 -0
- package/dist/chunks/chunk-DSTX54J4.js +330 -0
- package/dist/chunks/chunk-DUH7ZATR.js +283 -0
- package/dist/chunks/chunk-DVD56API.js +574 -0
- package/dist/chunks/chunk-DWUKOW7L.js +260 -0
- package/dist/chunks/chunk-DXR52ENL.js +122 -0
- package/dist/chunks/chunk-DYADJS4Y.js +39 -0
- package/dist/chunks/chunk-DZATVMBB.js +181 -0
- package/dist/chunks/chunk-DZIPU2Q4.js +201 -0
- package/dist/chunks/chunk-E2JZ2RZI.js +231 -0
- package/dist/chunks/chunk-E4KDI2GV.js +169 -0
- package/dist/chunks/chunk-E5IDXYQD.js +77 -0
- package/dist/chunks/chunk-EALHKOFS.js +23 -0
- package/dist/chunks/chunk-ECPRSOPE.js +80 -0
- package/dist/chunks/chunk-ECVD7DCS.js +225 -0
- package/dist/chunks/chunk-EFX2ICNU.js +100 -0
- package/dist/chunks/chunk-EJ66FNLZ.js +197 -0
- package/dist/chunks/chunk-ELVKOJH7.js +177 -0
- package/dist/chunks/chunk-EPMLMUXF.js +146 -0
- package/dist/chunks/chunk-ERIQ7JIJ.js +85 -0
- package/dist/chunks/chunk-ESBLUILZ.js +41 -0
- package/dist/chunks/chunk-ESV3AAQ4.js +103 -0
- package/dist/chunks/chunk-EWZRJTLT.js +108 -0
- package/dist/chunks/chunk-EX6OREVZ.js +141 -0
- package/dist/chunks/chunk-EXRI6KN5.js +45 -0
- package/dist/chunks/chunk-EZJNGKZ7.js +249 -0
- package/dist/chunks/chunk-F2RLM473.js +157 -0
- package/dist/chunks/chunk-F32ETZYX.js +33 -0
- package/dist/chunks/chunk-F47ZTZ2M.js +141 -0
- package/dist/chunks/chunk-F4EFW5XG.js +130 -0
- package/dist/chunks/chunk-F4UGIRWU.js +128 -0
- package/dist/chunks/chunk-F4X5MJ7O.js +204 -0
- package/dist/chunks/chunk-F5OWF2ZE.js +317 -0
- package/dist/chunks/chunk-F7SDLYHJ.js +79 -0
- package/dist/chunks/chunk-FC2FGSU2.js +564 -0
- package/dist/chunks/chunk-FCEF3YK4.js +86 -0
- package/dist/chunks/chunk-FCQR5LL4.js +134 -0
- package/dist/chunks/chunk-FFD46KYF.js +209 -0
- package/dist/chunks/chunk-FGJRVCXO.js +303 -0
- package/dist/chunks/chunk-FGKE26E7.js +196 -0
- package/dist/chunks/chunk-FGOZMT45.js +305 -0
- package/dist/chunks/chunk-FGWPOJZU.js +93 -0
- package/dist/chunks/chunk-FIBQTDOW.js +135 -0
- package/dist/chunks/chunk-FIE7F2FK.js +174 -0
- package/dist/chunks/chunk-FIHCLHSP.js +333 -0
- package/dist/chunks/chunk-FIYHEMRZ.js +282 -0
- package/dist/chunks/chunk-FLGMO3U4.js +142 -0
- package/dist/chunks/chunk-FM2YY4RI.js +33 -0
- package/dist/chunks/chunk-FMOZ3GG5.js +85 -0
- package/dist/chunks/chunk-FOBKKGOO.js +290 -0
- package/dist/chunks/chunk-FPG2DJ7G.js +55 -0
- package/dist/chunks/chunk-FPIWEYRR.js +55 -0
- package/dist/chunks/chunk-FPXJR73J.js +171 -0
- package/dist/chunks/chunk-FRAUSF6D.js +161 -0
- package/dist/chunks/chunk-FSFVNV3M.js +360 -0
- package/dist/chunks/chunk-FSHYNBWP.js +142 -0
- package/dist/chunks/chunk-FSMMRN2T.js +256 -0
- package/dist/chunks/chunk-FTJEGDDE.js +119 -0
- package/dist/chunks/chunk-FTLNZSGG.js +214 -0
- package/dist/chunks/chunk-FYWRH6KA.js +1417 -0
- package/dist/chunks/chunk-G2COC3YD.js +86 -0
- package/dist/chunks/chunk-G3FXK7V4.js +114 -0
- package/dist/chunks/chunk-G3ZJPXTX.js +69 -0
- package/dist/chunks/chunk-G7O24N7X.js +166 -0
- package/dist/chunks/chunk-GAZ57RX2.js +90 -0
- package/dist/chunks/chunk-GBR2VR7S.js +152 -0
- package/dist/chunks/chunk-GDJSAXPF.js +140 -0
- package/dist/chunks/chunk-GDSNX2LF.js +196 -0
- package/dist/chunks/chunk-GF6N47NL.js +199 -0
- package/dist/chunks/chunk-GFOGKCPL.js +129 -0
- package/dist/chunks/chunk-GG5FVHP3.js +23 -0
- package/dist/chunks/chunk-GHUS6F5D.js +94 -0
- package/dist/chunks/chunk-GIQH7FWT.js +153 -0
- package/dist/chunks/chunk-GIVNETXM.js +166 -0
- package/dist/chunks/chunk-GJXNZPEF.js +190 -0
- package/dist/chunks/chunk-GKEINFGS.js +178 -0
- package/dist/chunks/chunk-GLNDN2NE.js +172 -0
- package/dist/chunks/chunk-GMIR2QGA.js +171 -0
- package/dist/chunks/chunk-GN5W7TJD.js +90 -0
- package/dist/chunks/chunk-GOCBCU3X.js +284 -0
- package/dist/chunks/chunk-GPBPXMHK.js +78 -0
- package/dist/chunks/chunk-GQWCRSGC.js +79 -0
- package/dist/chunks/chunk-GRCLKQKE.js +188 -0
- package/dist/chunks/chunk-GU66LHPX.js +106 -0
- package/dist/chunks/chunk-GUVLFC76.js +169 -0
- package/dist/chunks/chunk-GVD3F2P2.js +102 -0
- package/dist/chunks/chunk-GWBJN7TJ.js +181 -0
- package/dist/chunks/chunk-GWFXO7P2.js +270 -0
- package/dist/chunks/chunk-GWSEQROS.js +1403 -0
- package/dist/chunks/chunk-GWSUQG2Q.js +158 -0
- package/dist/chunks/chunk-GY4NONBY.js +336 -0
- package/dist/chunks/chunk-H2EE57GO.js +1469 -0
- package/dist/chunks/chunk-H2M6VLML.js +78 -0
- package/dist/chunks/chunk-H4NDCUJZ.js +191 -0
- package/dist/chunks/chunk-H7NBNZMI.js +103 -0
- package/dist/chunks/chunk-H7RWKOFN.js +101 -0
- package/dist/chunks/chunk-HBPURYPZ.js +28 -0
- package/dist/chunks/chunk-HFHT5TR5.js +121 -0
- package/dist/chunks/chunk-HFTJ567N.js +115 -0
- package/dist/chunks/chunk-HIGV7NIT.js +344 -0
- package/dist/chunks/chunk-HIJBW52G.js +107 -0
- package/dist/chunks/chunk-HJCFC5IM.js +140 -0
- package/dist/chunks/chunk-HLOF7XSN.js +226 -0
- package/dist/chunks/chunk-HN2A65AT.js +75 -0
- package/dist/chunks/chunk-HRGTYCSS.js +79 -0
- package/dist/chunks/chunk-HRHP22IQ.js +195 -0
- package/dist/chunks/chunk-HUF4ZI5K.js +106 -0
- package/dist/chunks/chunk-HUOXOEYM.js +178 -0
- package/dist/chunks/chunk-HUSCHQZF.js +131 -0
- package/dist/chunks/chunk-HVWYS2FD.js +151 -0
- package/dist/chunks/chunk-HXWUGNFG.js +90 -0
- package/dist/chunks/chunk-HY7R464Y.js +164 -0
- package/dist/chunks/chunk-HYRSOXJU.js +114 -0
- package/dist/chunks/chunk-HZ4ATNWF.js +172 -0
- package/dist/chunks/chunk-I26ADZE5.js +234 -0
- package/dist/chunks/chunk-I4YJJX24.js +81 -0
- package/dist/chunks/chunk-I56YVBSU.js +149 -0
- package/dist/chunks/chunk-I6GZB3SS.js +76 -0
- package/dist/chunks/chunk-I6PRN3UI.js +351 -0
- package/dist/chunks/chunk-ICGYGLXG.js +30 -0
- package/dist/chunks/chunk-ICON2DHX.js +53 -0
- package/dist/chunks/chunk-IDYGA6JB.js +84 -0
- package/dist/chunks/chunk-IEWXITI5.js +60 -0
- package/dist/chunks/chunk-IEYDZGFE.js +81 -0
- package/dist/chunks/chunk-IFKULHJ3.js +80 -0
- package/dist/chunks/chunk-IJ7FBOET.js +84 -0
- package/dist/chunks/chunk-ILV22EPF.js +261 -0
- package/dist/chunks/chunk-INNLMWHT.js +100 -0
- package/dist/chunks/chunk-INREWU77.js +155 -0
- package/dist/chunks/chunk-IOX6VN3U.js +118 -0
- package/dist/chunks/chunk-IOXWI4IK.js +105 -0
- package/dist/chunks/chunk-IPMPNYBF.js +261 -0
- package/dist/chunks/chunk-IPRJUV2O.js +45 -0
- package/dist/chunks/chunk-IRET5WGV.js +78 -0
- package/dist/chunks/chunk-IROY6E3L.js +141 -0
- package/dist/chunks/chunk-IRTOBVAO.js +41 -0
- package/dist/chunks/chunk-ITYA32ZG.js +115 -0
- package/dist/chunks/chunk-IW5CQX6Y.js +378 -0
- package/dist/chunks/chunk-J3KDXPZA.js +358 -0
- package/dist/chunks/chunk-J3YVD5F6.js +133 -0
- package/dist/chunks/chunk-J4OWTFYV.js +123 -0
- package/dist/chunks/chunk-J7PAXPJN.js +1845 -0
- package/dist/chunks/chunk-J7YPJUR5.js +105 -0
- package/dist/chunks/chunk-JEGKI2RV.js +55 -0
- package/dist/chunks/chunk-JF2CGUPE.js +122 -0
- package/dist/chunks/chunk-JF5DTC5Z.js +152 -0
- package/dist/chunks/chunk-JFP52GVM.js +122 -0
- package/dist/chunks/chunk-JGOE6KRX.js +149 -0
- package/dist/chunks/chunk-JGQO3EKK.js +390 -0
- package/dist/chunks/chunk-JGZIQ3UI.js +70 -0
- package/dist/chunks/chunk-JHNVXMSM.js +331 -0
- package/dist/chunks/chunk-JIBAJIHB.js +218 -0
- package/dist/chunks/chunk-JIXBDRKL.js +320 -0
- package/dist/chunks/chunk-JJEXCQFJ.js +159 -0
- package/dist/chunks/chunk-JJTSI5Q5.js +108 -0
- package/dist/chunks/chunk-JNWUYMQ5.js +92 -0
- package/dist/chunks/chunk-JP3ATO2V.js +127 -0
- package/dist/chunks/chunk-JR5B76ZO.js +82 -0
- package/dist/chunks/chunk-JRQ4ZPRK.js +199 -0
- package/dist/chunks/chunk-JSM2H22F.js +95 -0
- package/dist/chunks/chunk-JTFFE573.js +97 -0
- package/dist/chunks/chunk-JTLL324P.js +66 -0
- package/dist/chunks/chunk-JW2VRSZ2.js +73 -0
- package/dist/chunks/chunk-JW37DZWL.js +23 -0
- package/dist/chunks/chunk-JXWHUS7L.js +189 -0
- package/dist/chunks/chunk-K36YCZO2.js +135 -0
- package/dist/chunks/chunk-K3QP3IUF.js +43 -0
- package/dist/chunks/chunk-K3ZYALMC.js +297 -0
- package/dist/chunks/chunk-K4QJ4SKU.js +231 -0
- package/dist/chunks/chunk-K5R3TTQD.js +173 -0
- package/dist/chunks/chunk-K65XPQAM.js +104 -0
- package/dist/chunks/chunk-K74MZQA2.js +161 -0
- package/dist/chunks/chunk-KCHDGEZ5.js +123 -0
- package/dist/chunks/chunk-KD2IEKAU.js +134 -0
- package/dist/chunks/chunk-KF3BSBC5.js +91 -0
- package/dist/chunks/chunk-KGCLVD34.js +104 -0
- package/dist/chunks/chunk-KIC5TSOB.js +83 -0
- package/dist/chunks/chunk-KKVSPEJA.js +62 -0
- package/dist/chunks/chunk-KLITWGKP.js +179 -0
- package/dist/chunks/chunk-KMTMJ264.js +156 -0
- package/dist/chunks/chunk-KMWE5QZ3.js +125 -0
- package/dist/chunks/chunk-KMYTBU7F.js +217 -0
- package/dist/chunks/chunk-KNXHE7SX.js +36 -0
- package/dist/chunks/chunk-KO5UAPHF.js +152 -0
- package/dist/chunks/chunk-KOEQLLOE.js +238 -0
- package/dist/chunks/chunk-KQ3JSNMU.js +96 -0
- package/dist/chunks/chunk-KRIM23HE.js +87 -0
- package/dist/chunks/chunk-KVFMQFQS.js +44 -0
- package/dist/chunks/chunk-KWH46HMO.js +140 -0
- package/dist/chunks/chunk-KWXWK2LA.js +36 -0
- package/dist/chunks/chunk-L3443FVX.js +147 -0
- package/dist/chunks/chunk-L3IYFCO4.js +130 -0
- package/dist/chunks/chunk-L4SKFLWD.js +192 -0
- package/dist/chunks/chunk-L6NNGCPO.js +50 -0
- package/dist/chunks/chunk-L6P7VDPV.js +71 -0
- package/dist/chunks/chunk-LBYNGWDZ.js +225 -0
- package/dist/chunks/chunk-LCPMHFRA.js +33 -0
- package/dist/chunks/chunk-LDQHBHU6.js +220 -0
- package/dist/chunks/chunk-LDXVA6PI.js +118 -0
- package/dist/chunks/chunk-LFBA5NUC.js +172 -0
- package/dist/chunks/chunk-LFQHGS2U.js +80 -0
- package/dist/chunks/chunk-LGDMAOXC.js +112 -0
- package/dist/chunks/chunk-LGDPZSDI.js +231 -0
- package/dist/chunks/chunk-LJF5M45X.js +210 -0
- package/dist/chunks/chunk-LOP6LDGQ.js +23 -0
- package/dist/chunks/chunk-LOQNCZFE.js +33 -0
- package/dist/chunks/chunk-LOTIIDDC.js +150 -0
- package/dist/chunks/chunk-LOUPBPQV.js +38 -0
- package/dist/chunks/chunk-LOZFDMQ2.js +82 -0
- package/dist/chunks/chunk-LPLI7CZR.js +110 -0
- package/dist/chunks/chunk-LPTGYYJP.js +169 -0
- package/dist/chunks/chunk-LQXV2SMI.js +250 -0
- package/dist/chunks/chunk-LS2DJ73W.js +23 -0
- package/dist/chunks/chunk-LT4ZFOAZ.js +206 -0
- package/dist/chunks/chunk-LVPOJ7EN.js +1309 -0
- package/dist/chunks/chunk-LX7EN665.js +23 -0
- package/dist/chunks/chunk-M2LWLS56.js +65 -0
- package/dist/chunks/chunk-M4FLYVZW.js +262 -0
- package/dist/chunks/chunk-M55GTXRW.js +166 -0
- package/dist/chunks/chunk-M6EOYUH3.js +315 -0
- package/dist/chunks/chunk-M7MIEQQJ.js +184 -0
- package/dist/chunks/chunk-MC4TU2YF.js +23 -0
- package/dist/chunks/chunk-MCD4ANE7.js +147 -0
- package/dist/chunks/chunk-MDVFISSB.js +139 -0
- package/dist/chunks/chunk-MEZ4SJUC.js +123 -0
- package/dist/chunks/chunk-MFPMMKHP.js +471 -0
- package/dist/chunks/chunk-MIZALSOT.js +222 -0
- package/dist/chunks/chunk-MJAYRERD.js +187 -0
- package/dist/chunks/chunk-MJSGJ6I4.js +65 -0
- package/dist/chunks/chunk-MNN76UQS.js +45 -0
- package/dist/chunks/chunk-MNVIAHOR.js +632 -0
- package/dist/chunks/chunk-MO7SQVMT.js +607 -0
- package/dist/chunks/chunk-MOVYLHBM.js +166 -0
- package/dist/chunks/chunk-MQJCN4M2.js +107 -0
- package/dist/chunks/chunk-MQOEQ4PC.js +23 -0
- package/dist/chunks/chunk-MSZ56S57.js +100 -0
- package/dist/chunks/chunk-MTMYLQWH.js +77 -0
- package/dist/chunks/chunk-MTVWZHE7.js +213 -0
- package/dist/chunks/chunk-MVCG76O6.js +33 -0
- package/dist/chunks/chunk-MVFUNXDH.js +191 -0
- package/dist/chunks/chunk-MVXFBGSB.js +23 -0
- package/dist/chunks/chunk-MXA2ETB3.js +36 -0
- package/dist/chunks/chunk-MYOJ2OUX.js +197 -0
- package/dist/chunks/chunk-MYTNLU6I.js +198 -0
- package/dist/chunks/chunk-MYZZPQU7.js +83 -0
- package/dist/chunks/chunk-MZSHZR4Y.js +207 -0
- package/dist/chunks/chunk-N2GXKXLR.js +160 -0
- package/dist/chunks/chunk-N2RBQBUE.js +11335 -0
- package/dist/chunks/chunk-N3SFUPHB.js +50 -0
- package/dist/chunks/chunk-N4APWKFW.js +287 -0
- package/dist/chunks/chunk-N6AWPVJ5.js +95 -0
- package/dist/chunks/chunk-N6MHOOB4.js +366 -0
- package/dist/chunks/chunk-NAHYH77A.js +93 -0
- package/dist/chunks/chunk-NB7EFSGY.js +94 -0
- package/dist/chunks/chunk-NE3UFFDY.js +1574 -0
- package/dist/chunks/chunk-NF3NXIQX.js +23 -0
- package/dist/chunks/chunk-NGVIYWK2.js +23 -0
- package/dist/chunks/chunk-NIKVFWDD.js +115 -0
- package/dist/chunks/chunk-NKGRJ4YD.js +112 -0
- package/dist/chunks/chunk-NOUWP3JK.js +158 -0
- package/dist/chunks/chunk-NTK3OXDK.js +226 -0
- package/dist/chunks/chunk-NTLYUEUQ.js +181 -0
- package/dist/chunks/chunk-NTWARAQQ.js +101 -0
- package/dist/chunks/chunk-NVBXTTEP.js +167 -0
- package/dist/chunks/chunk-NVPOIW4X.js +33 -0
- package/dist/chunks/chunk-NVY6SKE7.js +23 -0
- package/dist/chunks/chunk-NWFJLNAB.js +258 -0
- package/dist/chunks/chunk-NXBJDJKI.js +23 -0
- package/dist/chunks/chunk-NXNYN5TK.js +168 -0
- package/dist/chunks/chunk-NZB7XVRQ.js +105 -0
- package/dist/chunks/chunk-O2PKNDJG.js +139 -0
- package/dist/chunks/chunk-O2YIXIIW.js +135 -0
- package/dist/chunks/chunk-O3DCF2UM.js +244 -0
- package/dist/chunks/chunk-O3IVQ2F2.js +55 -0
- package/dist/chunks/chunk-O3UIIR6C.js +139 -0
- package/dist/chunks/chunk-O3W7HYS7.js +173 -0
- package/dist/chunks/chunk-O57R5OPE.js +104 -0
- package/dist/chunks/chunk-O6GMQ677.js +98 -0
- package/dist/chunks/chunk-O7QM4M5E.js +93 -0
- package/dist/chunks/chunk-OBTEVYZG.js +462 -0
- package/dist/chunks/chunk-OGDQ45BC.js +177 -0
- package/dist/chunks/chunk-OGZJE5X2.js +103 -0
- package/dist/chunks/chunk-OJSQNIHS.js +180 -0
- package/dist/chunks/chunk-OKLEUGZK.js +177 -0
- package/dist/chunks/chunk-OMWE4ML4.js +104 -0
- package/dist/chunks/chunk-OO27NDKX.js +161 -0
- package/dist/chunks/chunk-OPY6APVX.js +121 -0
- package/dist/chunks/chunk-OQLS4TOY.js +124 -0
- package/dist/chunks/chunk-OR4XXQMG.js +128 -0
- package/dist/chunks/chunk-ORTGNUHE.js +128 -0
- package/dist/chunks/chunk-OSLU6VYJ.js +194 -0
- package/dist/chunks/chunk-OSWMUR34.js +163 -0
- package/dist/chunks/chunk-OT5B7QDA.js +150 -0
- package/dist/chunks/chunk-OTE6EUWP.js +122 -0
- package/dist/chunks/chunk-OU52A4YW.js +165 -0
- package/dist/chunks/chunk-OVBTNR7U.js +23 -0
- package/dist/chunks/chunk-OXI222BA.js +54 -0
- package/dist/chunks/chunk-OYTQYBKJ.js +120 -0
- package/dist/chunks/chunk-P23KECK3.js +57 -0
- package/dist/chunks/chunk-P2OKKR5E.js +320 -0
- package/dist/chunks/chunk-P373HJEQ.js +153 -0
- package/dist/chunks/chunk-P5M5QCAJ.js +95 -0
- package/dist/chunks/chunk-PASNOILA.js +150 -0
- package/dist/chunks/chunk-PC4CRN7J.js +23 -0
- package/dist/chunks/chunk-PCSLYXTW.js +163 -0
- package/dist/chunks/chunk-PEDQKANG.js +33 -0
- package/dist/chunks/chunk-PFRPEJQ7.js +45 -0
- package/dist/chunks/chunk-PGC3HCFT.js +147 -0
- package/dist/chunks/chunk-PJY3DG52.js +317 -0
- package/dist/chunks/chunk-PKNRS7V7.js +94 -0
- package/dist/chunks/chunk-PLJJVVVO.js +201 -0
- package/dist/chunks/chunk-PNLEEGKA.js +33 -0
- package/dist/chunks/chunk-POZOGQG7.js +424 -0
- package/dist/chunks/chunk-PP45QTQ6.js +108 -0
- package/dist/chunks/chunk-PPRSMIGM.js +152 -0
- package/dist/chunks/chunk-PTRN7H4N.js +42 -0
- package/dist/chunks/chunk-PVMSTID2.js +23 -0
- package/dist/chunks/chunk-PWZ5TPBQ.js +100 -0
- package/dist/chunks/chunk-PYXHPAZX.js +738 -0
- package/dist/chunks/chunk-Q2ASEGWN.js +41 -0
- package/dist/chunks/chunk-Q3B5SHXG.js +45 -0
- package/dist/chunks/chunk-Q4DPRHT2.js +106 -0
- package/dist/chunks/chunk-Q63RQCF6.js +144 -0
- package/dist/chunks/chunk-Q7KAXGAK.js +120 -0
- package/dist/chunks/chunk-QBGTS5T7.js +138 -0
- package/dist/chunks/chunk-QCDV2YDY.js +217 -0
- package/dist/chunks/chunk-QF7A6T4H.js +279 -0
- package/dist/chunks/chunk-QGE2XW66.js +1649 -0
- package/dist/chunks/chunk-QHX6GEAS.js +150 -0
- package/dist/chunks/chunk-QMJCMJ4H.js +146 -0
- package/dist/chunks/chunk-QOR3X7UR.js +54 -0
- package/dist/chunks/chunk-QP7AFE5R.js +97 -0
- package/dist/chunks/chunk-QPL45ZDN.js +183 -0
- package/dist/chunks/chunk-QPUNDLA4.js +301 -0
- package/dist/chunks/chunk-QQL5ADGN.js +283 -0
- package/dist/chunks/chunk-QQMSM7EK.js +36 -0
- package/dist/chunks/chunk-QRSB6IKM.js +358 -0
- package/dist/chunks/chunk-QU2265DN.js +97 -0
- package/dist/chunks/chunk-QV5G6ISE.js +159 -0
- package/dist/chunks/chunk-QY5U725A.js +47 -0
- package/dist/chunks/chunk-QYBYPMVF.js +182 -0
- package/dist/chunks/chunk-R4KIPVK4.js +326 -0
- package/dist/chunks/chunk-R4Q47A2J.js +108 -0
- package/dist/chunks/chunk-R6FAPIVP.js +33 -0
- package/dist/chunks/chunk-R7VJXBUC.js +23 -0
- package/dist/chunks/chunk-RBS4AOLB.js +90 -0
- package/dist/chunks/chunk-RCAHZSQD.js +151 -0
- package/dist/chunks/chunk-RD2D2IIU.js +36 -0
- package/dist/chunks/chunk-REFDALWU.js +23 -0
- package/dist/chunks/chunk-RF3GVBXN.js +220 -0
- package/dist/chunks/chunk-RFA7INNF.js +45 -0
- package/dist/chunks/chunk-RFPREMKF.js +237 -0
- package/dist/chunks/chunk-RG563GJX.js +127 -0
- package/dist/chunks/chunk-RGG5GUS6.js +162 -0
- package/dist/chunks/chunk-RH7SANM5.js +180 -0
- package/dist/chunks/chunk-RHVN4HHJ.js +169 -0
- package/dist/chunks/chunk-RI6O4MTA.js +111 -0
- package/dist/chunks/chunk-RLAWIZTT.js +153 -0
- package/dist/chunks/chunk-RLTRN3YR.js +163 -0
- package/dist/chunks/chunk-RNCZVDXJ.js +102 -0
- package/dist/chunks/chunk-RNDHDUNJ.js +183 -0
- package/dist/chunks/chunk-ROIB32SA.js +87 -0
- package/dist/chunks/chunk-RPCYL3NK.js +260 -0
- package/dist/chunks/chunk-RTAG5GOL.js +184 -0
- package/dist/chunks/chunk-RWPOBQP7.js +33 -0
- package/dist/chunks/chunk-RX5SBRA2.js +1393 -0
- package/dist/chunks/chunk-RXJJAE3K.js +273 -0
- package/dist/chunks/chunk-RYUI74FY.js +101 -0
- package/dist/chunks/chunk-RZODBL5L.js +329 -0
- package/dist/chunks/chunk-S25774X3.js +242 -0
- package/dist/chunks/chunk-S45ZJFU2.js +104 -0
- package/dist/chunks/chunk-S4P43PZI.js +97 -0
- package/dist/chunks/chunk-S4Y3VMQH.js +887 -0
- package/dist/chunks/chunk-S57NBFBJ.js +152 -0
- package/dist/chunks/chunk-S6FNCLMU.js +108 -0
- package/dist/chunks/chunk-SBEKJIPH.js +162 -0
- package/dist/chunks/chunk-SC5RIAEC.js +362 -0
- package/dist/chunks/chunk-SDQESNSE.js +23 -0
- package/dist/chunks/chunk-SE3U4XYH.js +173 -0
- package/dist/chunks/chunk-SFRBQ2PK.js +95 -0
- package/dist/chunks/chunk-SGQ6HMGV.js +90 -0
- package/dist/chunks/chunk-SHP6NA5E.js +195 -0
- package/dist/chunks/chunk-SI3ZOUV3.js +50 -0
- package/dist/chunks/chunk-SKXTP74D.js +112 -0
- package/dist/chunks/chunk-SLC4C6NW.js +327 -0
- package/dist/chunks/chunk-SLFNBUMG.js +95 -0
- package/dist/chunks/chunk-SLHKGUXQ.js +106 -0
- package/dist/chunks/chunk-SMAOJZT3.js +97 -0
- package/dist/chunks/chunk-SNIXUPKT.js +145 -0
- package/dist/chunks/chunk-SNLKRCRD.js +89 -0
- package/dist/chunks/chunk-SOZ24MX4.js +106 -0
- package/dist/chunks/chunk-SPGXS7V6.js +239 -0
- package/dist/chunks/chunk-SRSUY2WG.js +265 -0
- package/dist/chunks/chunk-SSWFRDJZ.js +122 -0
- package/dist/chunks/chunk-ST4K264N.js +252 -0
- package/dist/chunks/chunk-SURNQA2T.js +110 -0
- package/dist/chunks/chunk-SX3BZRNE.js +45 -0
- package/dist/chunks/chunk-SXAEFH2P.js +260 -0
- package/dist/chunks/chunk-SXBITE3O.js +111 -0
- package/dist/chunks/chunk-SZXW5SHY.js +117 -0
- package/dist/chunks/chunk-T324DBIE.js +52 -0
- package/dist/chunks/chunk-T5EL32RC.js +133 -0
- package/dist/chunks/chunk-T6LDAWRN.js +23 -0
- package/dist/chunks/chunk-T6QWDC3F.js +49 -0
- package/dist/chunks/chunk-T6T6C5WX.js +215 -0
- package/dist/chunks/chunk-T6YFBUX5.js +179 -0
- package/dist/chunks/chunk-T7OCDXH3.js +84 -0
- package/dist/chunks/chunk-TASIFSPI.js +237 -0
- package/dist/chunks/chunk-TBIZI5NH.js +33 -0
- package/dist/chunks/chunk-TBVBI4EN.js +41 -0
- package/dist/chunks/chunk-TEEIKA7J.js +88 -0
- package/dist/chunks/chunk-TFWGUTYX.js +272 -0
- package/dist/chunks/chunk-TGEZ6XE4.js +81 -0
- package/dist/chunks/chunk-TI24GNCW.js +53 -0
- package/dist/chunks/chunk-TKYYND5Y.js +51 -0
- package/dist/chunks/chunk-TLUNM2TF.js +125 -0
- package/dist/chunks/chunk-TM5RDBI3.js +119 -0
- package/dist/chunks/chunk-TO2G6M5V.js +86 -0
- package/dist/chunks/chunk-TOP6QIZY.js +146 -0
- package/dist/chunks/chunk-TOZ7ELK3.js +192 -0
- package/dist/chunks/chunk-TQGA2XPO.js +174 -0
- package/dist/chunks/chunk-TRDR2HTF.js +192 -0
- package/dist/chunks/chunk-TTFJSFYE.js +45 -0
- package/dist/chunks/chunk-TTV6D6WE.js +80 -0
- package/dist/chunks/chunk-TUAADYK6.js +198 -0
- package/dist/chunks/chunk-TUGJBNNZ.js +122 -0
- package/dist/chunks/chunk-TUNKWS22.js +167 -0
- package/dist/chunks/chunk-TUTKS5P3.js +45 -0
- package/dist/chunks/chunk-TVEKOSL6.js +84 -0
- package/dist/chunks/chunk-TW2YBHAS.js +175 -0
- package/dist/chunks/chunk-TYBWMK2R.js +194 -0
- package/dist/chunks/chunk-TYDS5EEV.js +187 -0
- package/dist/chunks/chunk-TYZPQWCO.js +382 -0
- package/dist/chunks/chunk-U2USBF33.js +77 -0
- package/dist/chunks/chunk-UALZ77YU.js +101 -0
- package/dist/chunks/chunk-UBT4DZYW.js +304 -0
- package/dist/chunks/chunk-UCCRKS3X.js +102 -0
- package/dist/chunks/chunk-UD57CHXN.js +204 -0
- package/dist/chunks/chunk-UDKGYTJF.js +23 -0
- package/dist/chunks/chunk-UENEUEO4.js +78 -0
- package/dist/chunks/chunk-UFM7YDUK.js +72 -0
- package/dist/chunks/chunk-UFRPKZMD.js +33 -0
- package/dist/chunks/chunk-UGFV3A35.js +315 -0
- package/dist/chunks/chunk-UHQ6VJHC.js +215 -0
- package/dist/chunks/chunk-UJCH2M3Y.js +91 -0
- package/dist/chunks/chunk-UJTTWR5P.js +71 -0
- package/dist/chunks/chunk-UKJMBB65.js +304 -0
- package/dist/chunks/chunk-ULNC47JX.js +78 -0
- package/dist/chunks/chunk-ULOS6YOR.js +36 -0
- package/dist/chunks/chunk-UMGBNVBJ.js +97 -0
- package/dist/chunks/chunk-UMQJM2ZI.js +61 -0
- package/dist/chunks/chunk-UNAAYJKD.js +218 -0
- package/dist/chunks/chunk-UNP33F6D.js +23 -0
- package/dist/chunks/chunk-UNTH3AOH.js +176 -0
- package/dist/chunks/chunk-UP6M77DM.js +77 -0
- package/dist/chunks/chunk-UPJ5IXGA.js +293 -0
- package/dist/chunks/chunk-UPUIW6WL.js +240 -0
- package/dist/chunks/chunk-URCFHJXT.js +94 -0
- package/dist/chunks/chunk-URXKBGNG.js +304 -0
- package/dist/chunks/chunk-USOSAINL.js +94 -0
- package/dist/chunks/chunk-UTFC2DI3.js +49 -0
- package/dist/chunks/chunk-UVAM6572.js +23 -0
- package/dist/chunks/chunk-UWAMU3QI.js +345 -0
- package/dist/chunks/chunk-UWP5NEDG.js +267 -0
- package/dist/chunks/chunk-UWVAGRTP.js +113 -0
- package/dist/chunks/chunk-UXG3CC3X.js +103 -0
- package/dist/chunks/chunk-UYGTT3GT.js +157 -0
- package/dist/chunks/chunk-UYRIP57W.js +95 -0
- package/dist/chunks/chunk-V26DPHXS.js +93 -0
- package/dist/chunks/chunk-V2KZMUUV.js +52 -0
- package/dist/chunks/chunk-V4LR6DUQ.js +75 -0
- package/dist/chunks/chunk-V5OW4YFE.js +165 -0
- package/dist/chunks/chunk-V75VJKG5.js +299 -0
- package/dist/chunks/chunk-V7CW4BMC.js +105 -0
- package/dist/chunks/chunk-VD3VUBIQ.js +363 -0
- package/dist/chunks/chunk-VDZROQIV.js +102 -0
- package/dist/chunks/chunk-VEI66U2U.js +261 -0
- package/dist/chunks/chunk-VF4FO65C.js +102 -0
- package/dist/chunks/chunk-VIDB76SW.js +133 -0
- package/dist/chunks/chunk-VKC33NBX.js +33 -0
- package/dist/chunks/chunk-VM244NG3.js +76 -0
- package/dist/chunks/chunk-VMVVBNLQ.js +160 -0
- package/dist/chunks/chunk-VPI2II5W.js +161 -0
- package/dist/chunks/chunk-VRAGG32Y.js +49 -0
- package/dist/chunks/chunk-VS357YGY.js +176 -0
- package/dist/chunks/chunk-VS7JIEBJ.js +126 -0
- package/dist/chunks/chunk-VU4PV747.js +146 -0
- package/dist/chunks/chunk-VUBEGZJN.js +221 -0
- package/dist/chunks/chunk-VX7BKOHM.js +133 -0
- package/dist/chunks/chunk-VXZUNEFN.js +277 -0
- package/dist/chunks/chunk-VZJWTDTS.js +23 -0
- package/dist/chunks/chunk-VZTZJTPP.js +961 -0
- package/dist/chunks/chunk-W4LZGH6W.js +94 -0
- package/dist/chunks/chunk-W4NW4MP5.js +235 -0
- package/dist/chunks/chunk-W6CK5MYV.js +276 -0
- package/dist/chunks/chunk-WBK2DOWJ.js +23 -0
- package/dist/chunks/chunk-WBNQ7HAG.js +147 -0
- package/dist/chunks/chunk-WCHHYVVZ.js +141 -0
- package/dist/chunks/chunk-WCIXWIIL.js +93 -0
- package/dist/chunks/chunk-WCJZKLEY.js +23 -0
- package/dist/chunks/chunk-WDDXAXMY.js +45 -0
- package/dist/chunks/chunk-WDQAG2RE.js +100 -0
- package/dist/chunks/chunk-WDTBZJGD.js +198 -0
- package/dist/chunks/chunk-WDTDVTAN.js +45 -0
- package/dist/chunks/chunk-WEG6EAC7.js +23 -0
- package/dist/chunks/chunk-WGWVKCBU.js +84 -0
- package/dist/chunks/chunk-WJCJNPOX.js +159 -0
- package/dist/chunks/chunk-WJR5S6MQ.js +147 -0
- package/dist/chunks/chunk-WKKHCEXN.js +10429 -0
- package/dist/chunks/chunk-WLLGREOU.js +202 -0
- package/dist/chunks/chunk-WLMST5BF.js +93 -0
- package/dist/chunks/chunk-WM6ZEBNM.js +120 -0
- package/dist/chunks/chunk-WQBUPC5U.js +312 -0
- package/dist/chunks/chunk-WQD3M4SM.js +77 -0
- package/dist/chunks/chunk-WR75D2J2.js +274 -0
- package/dist/chunks/chunk-WSGRGT5E.js +145 -0
- package/dist/chunks/chunk-WT5F3ZNI.js +182 -0
- package/dist/chunks/chunk-WUSKZV2W.js +115 -0
- package/dist/chunks/chunk-WYNTEDM3.js +172 -0
- package/dist/chunks/chunk-X22CGIKE.js +75 -0
- package/dist/chunks/chunk-X2BAGHES.js +112 -0
- package/dist/chunks/chunk-X2BEN4S5.js +136 -0
- package/dist/chunks/chunk-X4EJUV3X.js +91 -0
- package/dist/chunks/chunk-X4HN5LP7.js +118 -0
- package/dist/chunks/chunk-X4UI5JKC.js +74 -0
- package/dist/chunks/chunk-X7SXUJNU.js +255 -0
- package/dist/chunks/chunk-XBOSHQH2.js +95 -0
- package/dist/chunks/chunk-XDK3FCKJ.js +215 -0
- package/dist/chunks/chunk-XE3WNWN6.js +30 -0
- package/dist/chunks/chunk-XE5PHXFW.js +36 -0
- package/dist/chunks/chunk-XID46XN3.js +45 -0
- package/dist/chunks/chunk-XIIFQUWN.js +48 -0
- package/dist/chunks/chunk-XIOZFBZ5.js +304 -0
- package/dist/chunks/chunk-XIRI5JXO.js +123 -0
- package/dist/chunks/chunk-XJUSSPSN.js +66 -0
- package/dist/chunks/chunk-XJYGS6YQ.js +131 -0
- package/dist/chunks/chunk-XL2QEXIR.js +83 -0
- package/dist/chunks/chunk-XLH3LH35.js +84 -0
- package/dist/chunks/chunk-XMBY4GQC.js +120 -0
- package/dist/chunks/chunk-XNCBJGF3.js +214 -0
- package/dist/chunks/chunk-XNIGSGRA.js +137 -0
- package/dist/chunks/chunk-XNMDDRTY.js +48 -0
- package/dist/chunks/chunk-XNXQIO3C.js +415 -0
- package/dist/chunks/chunk-XQJ2VVC6.js +69 -0
- package/dist/chunks/chunk-XS6WFGSH.js +110 -0
- package/dist/chunks/chunk-XTFV46GB.js +115 -0
- package/dist/chunks/chunk-XUZP6ZDB.js +113 -0
- package/dist/chunks/chunk-XW2CG5WK.js +122 -0
- package/dist/chunks/chunk-XY2UVFSV.js +33 -0
- package/dist/chunks/chunk-Y2JQPDHW.js +242 -0
- package/dist/chunks/chunk-Y3MKKFJV.js +97 -0
- package/dist/chunks/chunk-Y46TF5JZ.js +66 -0
- package/dist/chunks/chunk-Y4ZOHJT2.js +1136 -0
- package/dist/chunks/chunk-Y6DHN37V.js +98 -0
- package/dist/chunks/chunk-Y7F6GN5L.js +126 -0
- package/dist/chunks/chunk-YAKOWHWE.js +361 -0
- package/dist/chunks/chunk-YB6MELXO.js +196 -0
- package/dist/chunks/chunk-YDC5K6NX.js +130 -0
- package/dist/chunks/chunk-YDHKVZ4N.js +115 -0
- package/dist/chunks/chunk-YDNHZZGU.js +74 -0
- package/dist/chunks/chunk-YFWLU5WW.js +23 -0
- package/dist/chunks/chunk-YHMT5KEW.js +212 -0
- package/dist/chunks/chunk-YHTLNVXJ.js +23 -0
- package/dist/chunks/chunk-YI7HCLNY.js +200 -0
- package/dist/chunks/chunk-YIEUMY43.js +262 -0
- package/dist/chunks/chunk-YIMHLXXF.js +146 -0
- package/dist/chunks/chunk-YJSCKSNY.js +366 -0
- package/dist/chunks/chunk-YJYGAWBS.js +391 -0
- package/dist/chunks/chunk-YMVKPMZO.js +368 -0
- package/dist/chunks/chunk-YNAICOB2.js +187 -0
- package/dist/chunks/chunk-YOUKVCGZ.js +127 -0
- package/dist/chunks/chunk-YOYWFBRJ.js +651 -0
- package/dist/chunks/chunk-YPBD7EUC.js +146 -0
- package/dist/chunks/chunk-YPFYJKMM.js +118 -0
- package/dist/chunks/chunk-YPHNGRQP.js +175 -0
- package/dist/chunks/chunk-YPLJSTUA.js +97 -0
- package/dist/chunks/chunk-YQEP6YFO.js +78 -0
- package/dist/chunks/chunk-YRRB5QDQ.js +229 -0
- package/dist/chunks/chunk-YRZJ4QPG.js +626 -0
- package/dist/chunks/chunk-YSEL45TN.js +135 -0
- package/dist/chunks/chunk-YTS6PXTH.js +197 -0
- package/dist/chunks/chunk-YWNLZHPX.js +164 -0
- package/dist/chunks/chunk-YX2HWYPO.js +135 -0
- package/dist/chunks/chunk-YZVCBFAG.js +23 -0
- package/dist/chunks/chunk-Z257MZVJ.js +49 -0
- package/dist/chunks/chunk-Z2YHJW5G.js +221 -0
- package/dist/chunks/chunk-Z2ZTQOKM.js +78 -0
- package/dist/chunks/chunk-ZAYVCDGB.js +163 -0
- package/dist/chunks/chunk-ZBFR7DBR.js +70 -0
- package/dist/chunks/chunk-ZCLJADSE.js +154 -0
- package/dist/chunks/chunk-ZFUNZPIN.js +156 -0
- package/dist/chunks/chunk-ZGLXMJRC.js +290 -0
- package/dist/chunks/chunk-ZHMHZSPX.js +255 -0
- package/dist/chunks/chunk-ZJ2SB5ZT.js +33 -0
- package/dist/chunks/chunk-ZJS37D5Z.js +337 -0
- package/dist/chunks/chunk-ZLVYZPUR.js +87 -0
- package/dist/chunks/chunk-ZN7FO3G7.js +79 -0
- package/dist/chunks/chunk-ZOEQCG3C.js +147 -0
- package/dist/chunks/chunk-ZOGSIPQC.js +156 -0
- package/dist/chunks/chunk-ZOY44347.js +96 -0
- package/dist/chunks/chunk-ZPXL7YPT.js +282 -0
- package/dist/chunks/chunk-ZRN2UMCM.js +95 -0
- package/dist/chunks/chunk-ZSEPLVD5.js +105 -0
- package/dist/chunks/chunk-ZSJLSN7C.js +130 -0
- package/dist/chunks/chunk-ZU2EO2TX.js +172 -0
- package/dist/chunks/chunk-ZUQGVYN3.js +151 -0
- package/dist/chunks/chunk-ZVTRB4ZH.js +251 -0
- package/dist/chunks/chunk-ZW5QQB3F.js +100 -0
- package/dist/chunks/chunk-ZW7KTUDU.js +157 -0
- package/dist/chunks/chunk-ZY3DR3P6.js +63 -0
- package/dist/chunks/chunk-ZYNF7B6N.js +70 -0
- package/dist/chunks/client-ORABD53R.js +167 -0
- package/dist/chunks/client-YF3PYAFZ.js +44 -0
- package/dist/chunks/client-YOSPARZX.js +31 -0
- package/dist/chunks/client-actions-LYJHQ4IE.js +160 -0
- package/dist/chunks/dangerous-VCZB63L6.js +117 -0
- package/dist/chunks/editor-seams-4PF6BD4R.js +161 -0
- package/dist/chunks/editor-store-UAEROYSB.js +139 -0
- package/dist/chunks/export-QMP2HMKB.js +67 -0
- package/dist/chunks/export-watermark-2N7ALJXN.js +146 -0
- package/dist/chunks/eyedropper-3P75IZGM.js +349 -0
- package/dist/chunks/generate-media-DYXU4BZL.js +253 -0
- package/dist/chunks/host-J4QG5WB7.js +171 -0
- package/dist/chunks/integrations-KGJ2HE6V.js +115 -0
- package/dist/chunks/kit-modules-4HQU5EI2.js +18 -0
- package/dist/chunks/libraries-NIRTR2IA.js +302 -0
- package/dist/chunks/library-previews-IXWFHUTJ.js +199 -0
- package/dist/chunks/live-XZKNAJ2I.js +312 -0
- package/dist/chunks/lottie-DXGDMMEK.js +86 -0
- package/dist/chunks/media-tool-YFIYMYI5.js +332 -0
- package/dist/chunks/new-file-RNWHN4S6.js +129 -0
- package/dist/chunks/page-thumbnails-QUBYIFNT.js +137 -0
- package/dist/chunks/pdf-EM7WHNE5.js +1217 -0
- package/dist/chunks/player-check-PKCQDTMR.js +114 -0
- package/dist/chunks/plugin-AN5GLVH5.js +124 -0
- package/dist/chunks/plugin-import-J5ZNYSIY.js +666 -0
- package/dist/chunks/presence-YNSLRFAM.js +127 -0
- package/dist/chunks/preview-media-TOIQAI26.js +122 -0
- package/dist/chunks/project-HSN7DOPK.js +1653 -0
- package/dist/chunks/publish-site-T2C4IDD2.js +158 -0
- package/dist/chunks/publish-store-I2FOGDDF.js +93 -0
- package/dist/chunks/raster-actions-IVIGDYQU.js +229 -0
- package/dist/chunks/reference-images-GBFOIOAM.js +62 -0
- package/dist/chunks/resolvers-ONCAKSTL.js +139 -0
- package/dist/chunks/runner-IOXTGHBT.js +1233 -0
- package/dist/chunks/runtime-ZFSHTK76.js +32 -0
- package/dist/chunks/shader-preview-ZYBQBOJQ.js +518 -0
- package/dist/chunks/sites-XV7IK35R.js +33 -0
- package/dist/chunks/store-ZVOK3773.js +224 -0
- package/dist/chunks/storefront-MZM2W5DF.js +329 -0
- package/dist/chunks/storefront-prepare-WKX3DJCF.js +33 -0
- package/dist/chunks/svg-export-FP7NTL2M.js +81 -0
- package/dist/chunks/sync-XT2ZCTVE.js +153 -0
- package/dist/chunks/tabs-RIIW7KNI.js +311 -0
- package/dist/chunks/team-KM3FZ6AU.js +44 -0
- package/dist/chunks/team-client-2EXJKRDB.js +157 -0
- package/dist/chunks/templates-IIOLUAAI.js +181 -0
- package/dist/chunks/tools-5ISIPPXP.js +35 -0
- package/dist/chunks/ui-commands-GYCIF7UQ.js +269 -0
- package/dist/chunks/versions-JCQTXXUB.js +311 -0
- package/dist/chunks/video-GRV7TEX4.js +75 -0
- package/dist/fonts/chars.txt +1 -1
- package/dist/index.js +16 -16
- package/dist/lib/fonts/runtime.js +1 -1
- package/dist/lib/templates/capabilities.js +2 -2
- package/dist/lib/templates/finish.js +2 -2
- package/dist/lib/templates/upload.js +2 -2
- package/dist/lib/templates/vocabulary.js +2 -2
- package/dist/migrations/brand-media.js +6 -6
- package/dist/migrations/categories.js +2 -2
- package/dist/migrations/index.js +17 -17
- package/dist/migrations/timeline-facets.js +2 -2
- package/dist/seed/files.json +1 -1
- package/dist/seed/popcraft.comic-nested.json.gz +0 -0
- package/dist/seed/popcraft.comic-pinup.json.gz +0 -0
- package/dist/templates/anime/character.js +9 -9
- package/dist/templates/anime/duel.js +12 -12
- package/dist/templates/anime/morning.js +12 -12
- package/dist/templates/anime/rain.js +12 -12
- package/dist/templates/anime/shared.js +10 -10
- package/dist/templates/anime/starlight.js +12 -12
- package/dist/templates/anime/titan.js +12 -12
- package/dist/templates/app/festival-presale-electronic-ticket.js +11 -11
- package/dist/templates/app/festival-presale-family-ticket.js +11 -11
- package/dist/templates/app/festival-presale-folk-ticket.js +11 -11
- package/dist/templates/app/festival-presale-food-ticket.js +11 -11
- package/dist/templates/app/festival-presale-jazz-ticket.js +11 -11
- package/dist/templates/app/festival-presale-street-ticket.js +11 -11
- package/dist/templates/app/music/build.js +6 -6
- package/dist/templates/app/music-grove.js +9 -9
- package/dist/templates/app/music-nightline.js +9 -9
- package/dist/templates/app/music-orbit.js +9 -9
- package/dist/templates/app/music-undertow.js +9 -9
- package/dist/templates/app/onboarding-carousel.js +8 -8
- package/dist/templates/app/saas-store-paywall.js +8 -8
- package/dist/templates/app/splash.js +8 -8
- package/dist/templates/app/success-confetti.js +8 -8
- package/dist/templates/app/tour-tickets-june-ticket.js +8 -8
- package/dist/templates/app/tour-tickets-tide-ticket.js +8 -8
- package/dist/templates/app/tour-tickets-wreck-ticket.js +8 -8
- package/dist/templates/build.js +2 -2
- package/dist/templates/cards/index.js +10 -10
- package/dist/templates/cards/shared.js +8 -8
- package/dist/templates/cards/themes.js +9 -9
- package/dist/templates/count.js +3 -3
- package/dist/templates/data/bars.js +8 -8
- package/dist/templates/data/countdown-story.js +8 -8
- package/dist/templates/data/counters.js +8 -8
- package/dist/templates/data/donut.js +8 -8
- package/dist/templates/data/line.js +8 -8
- package/dist/templates/data/year-in-review.js +8 -8
- package/dist/templates/effects/glass-intro.js +8 -8
- package/dist/templates/effects/glass-promo.js +8 -8
- package/dist/templates/effects/grain-story.js +8 -8
- package/dist/templates/effects/grid-intro.js +8 -8
- package/dist/templates/effects/halftone-story.js +8 -8
- package/dist/templates/effects/mesh-story.js +8 -8
- package/dist/templates/effects/shader-title.js +8 -8
- package/dist/templates/email/april-fools-header.js +10 -10
- package/dist/templates/email/art-deco-invitation.js +9 -9
- package/dist/templates/email/autumn-harvest-header.js +9 -9
- package/dist/templates/email/back-to-school-header.js +9 -9
- package/dist/templates/email/black-friday-coupons-header.js +9 -9
- package/dist/templates/email/black-friday-header.js +9 -9
- package/dist/templates/email/black-friday-neon-header.js +9 -9
- package/dist/templates/email/black-friday-scratch-header.js +9 -9
- package/dist/templates/email/black-friday-ticker-header.js +9 -9
- package/dist/templates/email/broadsheet-weekly-edition-header.js +9 -9
- package/dist/templates/email/claymation-header.js +9 -9
- package/dist/templates/email/countdown-gif.js +9 -9
- package/dist/templates/email/cyberpunk-header.js +9 -9
- package/dist/templates/email/diwali-header.js +9 -9
- package/dist/templates/email/earth-day-header.js +9 -9
- package/dist/templates/email/festival-presale-electronic-header.js +11 -11
- package/dist/templates/email/festival-presale-family-header.js +11 -11
- package/dist/templates/email/festival-presale-folk-header.js +11 -11
- package/dist/templates/email/festival-presale-food-header.js +11 -11
- package/dist/templates/email/festival-presale-jazz-header.js +11 -11
- package/dist/templates/email/festival-presale-street-header.js +11 -11
- package/dist/templates/email/gothic-header.js +9 -9
- package/dist/templates/email/halloween-header.js +9 -9
- package/dist/templates/email/header-launch.js +9 -9
- package/dist/templates/email/header-newsletter.js +9 -9
- package/dist/templates/email/header-sale.js +9 -9
- package/dist/templates/email/lunar-new-year-header.js +9 -9
- package/dist/templates/email/manuscript-chronicle-header.js +9 -9
- package/dist/templates/email/new-year-header.js +9 -9
- package/dist/templates/email/noir-header.js +9 -9
- package/dist/templates/email/psychedelic-header.js +9 -9
- package/dist/templates/email/riso-zine-changelog-header.js +9 -9
- package/dist/templates/email/saas-mail-changelog.js +11 -11
- package/dist/templates/email/saas-mail-day-one.js +10 -10
- package/dist/templates/email/saas-mail-day-three.js +10 -10
- package/dist/templates/email/saas-mail-launch.js +10 -10
- package/dist/templates/email/saas-mail-payment-failed.js +10 -10
- package/dist/templates/email/saas-mail-sign-in-code.js +10 -10
- package/dist/templates/email/saas-mail-trial-ending.js +10 -10
- package/dist/templates/email/saas-mail-waitlist.js +10 -10
- package/dist/templates/email/shared.js +6 -6
- package/dist/templates/email/singles-day-header.js +9 -9
- package/dist/templates/email/solarpunk-header.js +9 -9
- package/dist/templates/email/space-opera-header.js +9 -9
- package/dist/templates/email/spring-bloom-header.js +9 -9
- package/dist/templates/email/style-bento-header.js +9 -9
- package/dist/templates/email/style-brutalist-header.js +9 -9
- package/dist/templates/email/style-dark-header.js +9 -9
- package/dist/templates/email/style-data-header.js +9 -9
- package/dist/templates/email/style-editorial-header.js +9 -9
- package/dist/templates/email/style-glass-header.js +9 -9
- package/dist/templates/email/style-gradient-header.js +9 -9
- package/dist/templates/email/style-maximal-header.js +9 -9
- package/dist/templates/email/style-pastel-header.js +9 -9
- package/dist/templates/email/style-sketch-header.js +9 -9
- package/dist/templates/email/style-swiss-header.js +9 -9
- package/dist/templates/email/style-terminal-header.js +9 -9
- package/dist/templates/email/summer-heatwave-header.js +9 -9
- package/dist/templates/email/tour-tickets-june-header.js +9 -9
- package/dist/templates/email/tour-tickets-tide-header.js +9 -9
- package/dist/templates/email/tour-tickets-wreck-header.js +9 -9
- package/dist/templates/email/transit-map-service-update.js +9 -9
- package/dist/templates/email/ukiyo-e-greeting-header.js +9 -9
- package/dist/templates/email/valentines-header.js +9 -9
- package/dist/templates/email/winter-cosy-header.js +9 -9
- package/dist/templates/email/winter-holidays-header.js +9 -9
- package/dist/templates/game/blossom-bash-puzzle.js +9 -9
- package/dist/templates/game/deckbound-roguelike.js +9 -9
- package/dist/templates/game/emberfall-rpg.js +9 -9
- package/dist/templates/game/hearthmoor-farm.js +9 -9
- package/dist/templates/game/index.js +22 -22
- package/dist/templates/game/iron-lotus-fighter.js +9 -9
- package/dist/templates/game/ironroot-rts.js +9 -9
- package/dist/templates/game/mossy-hollow-platformer.js +11 -11
- package/dist/templates/game/neon-apex-racing.js +9 -9
- package/dist/templates/game/platformer.js +10 -10
- package/dist/templates/game/pulse-riot-rhythm.js +9 -9
- package/dist/templates/game/shared.js +6 -6
- package/dist/templates/game/sprout-quest-pixel-platformer.js +11 -11
- package/dist/templates/game/vanta-fps.js +9 -9
- package/dist/templates/index.js +840 -826
- package/dist/templates/index.json +340 -0
- package/dist/templates/kinetic/letters.js +8 -8
- package/dist/templates/kinetic/lines.js +8 -8
- package/dist/templates/kinetic/typewriter.js +8 -8
- package/dist/templates/kinetic/word-swap.js +8 -8
- package/dist/templates/kinetic/words.js +8 -8
- package/dist/templates/kit.js +5 -5
- package/dist/templates/libraries/audio-reactive.js +8 -8
- package/dist/templates/libraries/loaders.js +8 -8
- package/dist/templates/libraries/micro-interactions.js +8 -8
- package/dist/templates/libraries/motion-essentials.js +8 -8
- package/dist/templates/libraries/toasts.js +8 -8
- package/dist/templates/lottie/ai.js +9 -9
- package/dist/templates/lottie/climate.js +9 -9
- package/dist/templates/lottie/commerce.js +9 -9
- package/dist/templates/lottie/education.js +9 -9
- package/dist/templates/lottie/fintech.js +9 -9
- package/dist/templates/lottie/food.js +9 -9
- package/dist/templates/lottie/health.js +9 -9
- package/dist/templates/lottie/index.js +33 -33
- package/dist/templates/lottie/lottie-kit.js +8 -8
- package/dist/templates/lottie/realestate.js +9 -9
- package/dist/templates/lottie/saas-ui-checklist.js +10 -10
- package/dist/templates/lottie/saas-ui-dashboard-hero.js +10 -10
- package/dist/templates/lottie/saas-ui-empty-data.js +10 -10
- package/dist/templates/lottie/saas-ui-empty-search.js +10 -10
- package/dist/templates/lottie/saas-ui-error-retry.js +10 -10
- package/dist/templates/lottie/saas-ui-file-upload.js +10 -10
- package/dist/templates/lottie/saas-ui-streaming-answer.js +10 -10
- package/dist/templates/lottie/saas-ui-sync-connected.js +10 -10
- package/dist/templates/lottie/saas-ui-trial-timeline.js +10 -10
- package/dist/templates/lottie/saas-ui-upgrade-unlocked.js +10 -10
- package/dist/templates/lottie/saas-ui.js +20 -20
- package/dist/templates/lottie/saas.js +9 -9
- package/dist/templates/lottie/security.js +9 -9
- package/dist/templates/lottie/techniques.js +9 -9
- package/dist/templates/lottie/travel.js +9 -9
- package/dist/templates/motion/ambient-loop.js +8 -8
- package/dist/templates/motion/app-icon-sting.js +8 -8
- package/dist/templates/motion/april-fools-infomercial-reel.js +10 -10
- package/dist/templates/motion/arcade-high-score.js +8 -8
- package/dist/templates/motion/art-deco-grand-opening.js +8 -8
- package/dist/templates/motion/autumn-harvest-year-reel.js +8 -8
- package/dist/templates/motion/back-to-school-timetable-reel.js +8 -8
- package/dist/templates/motion/bauhaus-launch-reel.js +8 -8
- package/dist/templates/motion/black-friday-coupons-deal-reel.js +8 -8
- package/dist/templates/motion/black-friday-coupons-last-day.js +8 -8
- package/dist/templates/motion/black-friday-deal-drop.js +8 -8
- package/dist/templates/motion/black-friday-neon-deal-reel.js +8 -8
- package/dist/templates/motion/black-friday-neon-last-day.js +8 -8
- package/dist/templates/motion/black-friday-scratch-countdown.js +8 -8
- package/dist/templates/motion/black-friday-scratch-deal-reel.js +8 -8
- package/dist/templates/motion/black-friday-scratch-last-day.js +8 -8
- package/dist/templates/motion/black-friday-ticker-deal-drop.js +8 -8
- package/dist/templates/motion/black-friday-ticker-last-call.js +8 -8
- package/dist/templates/motion/blueprint-rev-b-reel.js +8 -8
- package/dist/templates/motion/broadsheet-launch-reel.js +8 -8
- package/dist/templates/motion/broadsheet-milestone-post.js +9 -9
- package/dist/templates/motion/claymation-launch-reel.js +8 -8
- package/dist/templates/motion/comic-book-issue-reel.js +8 -8
- package/dist/templates/motion/countdown.js +8 -8
- package/dist/templates/motion/cyberpunk-lock-on-reel.js +8 -8
- package/dist/templates/motion/departure-board-reel.js +8 -8
- package/dist/templates/motion/diwali-lamps-reel.js +8 -8
- package/dist/templates/motion/earth-day-footprint-reel.js +8 -8
- package/dist/templates/motion/earth-day-pledge-post.js +8 -8
- package/dist/templates/motion/festival-presale-electronic-countdown.js +11 -11
- package/dist/templates/motion/festival-presale-electronic-lineup.js +11 -11
- package/dist/templates/motion/festival-presale-electronic-reel.js +11 -11
- package/dist/templates/motion/festival-presale-electronic-tier.js +11 -11
- package/dist/templates/motion/festival-presale-family-countdown.js +11 -11
- package/dist/templates/motion/festival-presale-family-lineup.js +11 -11
- package/dist/templates/motion/festival-presale-family-reel.js +11 -11
- package/dist/templates/motion/festival-presale-family-tier.js +11 -11
- package/dist/templates/motion/festival-presale-folk-countdown.js +11 -11
- package/dist/templates/motion/festival-presale-folk-lineup.js +11 -11
- package/dist/templates/motion/festival-presale-folk-reel.js +11 -11
- package/dist/templates/motion/festival-presale-folk-tier.js +11 -11
- package/dist/templates/motion/festival-presale-food-countdown.js +11 -11
- package/dist/templates/motion/festival-presale-food-lineup.js +11 -11
- package/dist/templates/motion/festival-presale-food-reel.js +11 -11
- package/dist/templates/motion/festival-presale-food-tier.js +11 -11
- package/dist/templates/motion/festival-presale-jazz-countdown.js +11 -11
- package/dist/templates/motion/festival-presale-jazz-lineup.js +11 -11
- package/dist/templates/motion/festival-presale-jazz-reel.js +11 -11
- package/dist/templates/motion/festival-presale-jazz-tier.js +11 -11
- package/dist/templates/motion/festival-presale-street-countdown.js +11 -11
- package/dist/templates/motion/festival-presale-street-lineup.js +11 -11
- package/dist/templates/motion/festival-presale-street-reel.js +11 -11
- package/dist/templates/motion/festival-presale-street-tier.js +11 -11
- package/dist/templates/motion/gothic-launch-reel.js +8 -8
- package/dist/templates/motion/halloween-graveyard-reel.js +8 -8
- package/dist/templates/motion/instagram-promo.js +8 -8
- package/dist/templates/motion/kinetic-headline.js +8 -8
- package/dist/templates/motion/landing-hero/index.js +11 -11
- package/dist/templates/motion/launch-trailer/document.js +840 -826
- package/dist/templates/motion/launch-trailer/index.js +11 -11
- package/dist/templates/motion/launch-trailer/scenes.js +10 -10
- package/dist/templates/motion/logo-reveal.js +8 -8
- package/dist/templates/motion/lower-third.js +8 -8
- package/dist/templates/motion/lunar-new-year-envelope-reel.js +8 -8
- package/dist/templates/motion/machined-trailer.js +10 -10
- package/dist/templates/motion/manuscript-launch-reel.js +8 -8
- package/dist/templates/motion/new-year-ball-drop-reel.js +8 -8
- package/dist/templates/motion/noir-case-reel.js +8 -8
- package/dist/templates/motion/pitch-title.js +8 -8
- package/dist/templates/motion/psychedelic-gig-reel.js +8 -8
- package/dist/templates/motion/riso-zine-launch-reel.js +8 -8
- package/dist/templates/motion/saas-ai-prompt.js +8 -8
- package/dist/templates/motion/saas-before-after.js +8 -8
- package/dist/templates/motion/saas-changelog-drop.js +8 -8
- package/dist/templates/motion/saas-film-webinar-opener.js +8 -8
- package/dist/templates/motion/saas-hook-features.js +8 -8
- package/dist/templates/motion/saas-mrr-milestone.js +8 -8
- package/dist/templates/motion/saas-screen-demo.js +8 -8
- package/dist/templates/motion/saas-store-install-ad.js +9 -9
- package/dist/templates/motion/saas-testimonial.js +8 -8
- package/dist/templates/motion/saas-vs-comparison.js +8 -8
- package/dist/templates/motion/singles-day-flash-post.js +8 -8
- package/dist/templates/motion/singles-day-live-reel.js +8 -8
- package/dist/templates/motion/smooth-loop.js +8 -8
- package/dist/templates/motion/solarpunk-rooftop-reel.js +8 -8
- package/dist/templates/motion/space-opera-countdown-reel.js +8 -8
- package/dist/templates/motion/spring-bloom-first-hundred-post.js +8 -8
- package/dist/templates/motion/spring-bloom-first-shoots-reel.js +8 -8
- package/dist/templates/motion/stat-pop.js +8 -8
- package/dist/templates/motion/style-bento-feature-demo.js +8 -8
- package/dist/templates/motion/style-bento-launch-reel.js +8 -8
- package/dist/templates/motion/style-brutalist-feature-demo.js +8 -8
- package/dist/templates/motion/style-brutalist-launch-reel.js +8 -8
- package/dist/templates/motion/style-dark-feature-demo.js +8 -8
- package/dist/templates/motion/style-dark-launch-reel.js +8 -8
- package/dist/templates/motion/style-data-feature-demo.js +8 -8
- package/dist/templates/motion/style-data-launch-reel.js +8 -8
- package/dist/templates/motion/style-editorial-feature-demo.js +8 -8
- package/dist/templates/motion/style-editorial-launch-reel.js +8 -8
- package/dist/templates/motion/style-glass-feature-demo.js +8 -8
- package/dist/templates/motion/style-glass-launch-reel.js +8 -8
- package/dist/templates/motion/style-gradient-feature-demo.js +8 -8
- package/dist/templates/motion/style-gradient-launch-reel.js +8 -8
- package/dist/templates/motion/style-maximal-feature-demo.js +8 -8
- package/dist/templates/motion/style-maximal-launch-reel.js +8 -8
- package/dist/templates/motion/style-pastel-feature-demo.js +8 -8
- package/dist/templates/motion/style-pastel-launch-reel.js +8 -8
- package/dist/templates/motion/style-sketch-feature-demo.js +8 -8
- package/dist/templates/motion/style-sketch-launch-reel.js +8 -8
- package/dist/templates/motion/style-swiss-feature-demo.js +8 -8
- package/dist/templates/motion/style-swiss-launch-reel.js +8 -8
- package/dist/templates/motion/style-terminal-feature-demo.js +8 -8
- package/dist/templates/motion/style-terminal-launch-reel.js +8 -8
- package/dist/templates/motion/summer-heatwave-lido-reel.js +8 -8
- package/dist/templates/motion/template-wall.js +9 -9
- package/dist/templates/motion/title-card-3d.js +8 -8
- package/dist/templates/motion/tour-tickets-june-city.js +8 -8
- package/dist/templates/motion/tour-tickets-june-dates.js +8 -8
- package/dist/templates/motion/tour-tickets-june-final.js +8 -8
- package/dist/templates/motion/tour-tickets-june-reel.js +8 -8
- package/dist/templates/motion/tour-tickets-tide-city.js +8 -8
- package/dist/templates/motion/tour-tickets-tide-dates.js +8 -8
- package/dist/templates/motion/tour-tickets-tide-final.js +8 -8
- package/dist/templates/motion/tour-tickets-tide-reel.js +8 -8
- package/dist/templates/motion/tour-tickets-wreck-city.js +8 -8
- package/dist/templates/motion/tour-tickets-wreck-dates.js +8 -8
- package/dist/templates/motion/tour-tickets-wreck-final.js +8 -8
- package/dist/templates/motion/tour-tickets-wreck-reel.js +8 -8
- package/dist/templates/motion/transit-map-line-opening.js +8 -8
- package/dist/templates/motion/transit-map-milestone-post.js +8 -8
- package/dist/templates/motion/ukiyo-e-launch-reel.js +8 -8
- package/dist/templates/motion/valentines-breakup-reel.js +8 -8
- package/dist/templates/motion/vaporwave-launch-reel.js +9 -9
- package/dist/templates/motion/winter-cosy-heads-down-post.js +8 -8
- package/dist/templates/motion/winter-cosy-hibernation-reel.js +8 -8
- package/dist/templates/motion/winter-holidays-advent-reel.js +8 -8
- package/dist/templates/motion-qa.js +6 -6
- package/dist/templates/motion3d/app-store-preview.js +9 -9
- package/dist/templates/motion3d/before-after-swing.js +9 -9
- package/dist/templates/motion3d/burger-reveal.js +9 -9
- package/dist/templates/motion3d/coverflow.js +9 -9
- package/dist/templates/motion3d/exploded-ui.js +9 -9
- package/dist/templates/motion3d/feature-flip.js +9 -9
- package/dist/templates/motion3d/kinetic-reveal.js +9 -9
- package/dist/templates/motion3d/laptop-reveal.js +9 -9
- package/dist/templates/motion3d/logo-extrude.js +9 -9
- package/dist/templates/motion3d/parallax-cascade.js +9 -9
- package/dist/templates/motion3d/phone-orbit.js +9 -9
- package/dist/templates/motion3d/pricing-fan.js +9 -9
- package/dist/templates/motion3d/product-turntable.js +9 -9
- package/dist/templates/motion3d/saas-film-cinematic-trailer.js +10 -10
- package/dist/templates/motion3d/screen-wall.js +9 -9
- package/dist/templates/motion3d/stage.js +6 -6
- package/dist/templates/motion3d/vertical-promo.js +9 -9
- package/dist/templates/music/edm-drop.js +9 -9
- package/dist/templates/music/festival-lineup.js +9 -9
- package/dist/templates/music/hiphop-lyrics.js +9 -9
- package/dist/templates/music/indie-poster.js +9 -9
- package/dist/templates/music/lofi-loop.js +9 -9
- package/dist/templates/music/podcast-audiogram.js +9 -9
- package/dist/templates/music/shared.js +6 -6
- package/dist/templates/music/synthwave-tunnel.js +9 -9
- package/dist/templates/print/comic-hero-cascade.js +100 -0
- package/dist/templates/print/comic-hero-chase.js +100 -0
- package/dist/templates/print/comic-hero-cover-modern.js +100 -0
- package/dist/templates/print/comic-hero-grid-break.js +100 -0
- package/dist/templates/print/comic-hero-interrogation.js +100 -0
- package/dist/templates/print/comic-hero-issue.js +109 -0
- package/dist/templates/print/comic-hero-manga-action.js +100 -0
- package/dist/templates/print/comic-hero-nested.js +100 -0
- package/dist/templates/print/comic-hero-overlap.js +100 -0
- package/dist/templates/print/comic-hero-parallel.js +100 -0
- package/dist/templates/print/comic-hero-pinup.js +100 -0
- package/dist/templates/print/comic-hero-widescreen.js +100 -0
- package/dist/templates/print/comic-modern-action-slant.js +8 -8
- package/dist/templates/print/comic-modern-cover-pulp.js +8 -8
- package/dist/templates/print/comic-modern-flashback.js +8 -8
- package/dist/templates/print/comic-modern-issue.js +17 -17
- package/dist/templates/print/comic-modern-nine-grid.js +8 -8
- package/dist/templates/print/comic-modern-page-classic.js +8 -8
- package/dist/templates/print/comic-modern-polyptych.js +8 -8
- package/dist/templates/print/comic-modern-radial.js +8 -8
- package/dist/templates/print/comic-modern-splash.js +8 -8
- package/dist/templates/print/comic-modern-spread.js +8 -8
- package/dist/templates/print/everyday-save-the-date.js +8 -8
- package/dist/templates/print/everyday-specials-board.js +8 -8
- package/dist/templates/print/holidays-christmas-church-newsletter.js +8 -8
- package/dist/templates/print/holidays-christmas-eve-invitation.js +8 -8
- package/dist/templates/print/holidays-christmas-gift-tags.js +8 -8
- package/dist/templates/print/holidays-diwali-party-invitation.js +8 -8
- package/dist/templates/print/holidays-easter-activity-sheet.js +8 -8
- package/dist/templates/print/holidays-easter-egg-hunt-flyer.js +8 -8
- package/dist/templates/print/holidays-eid-dinner-invitation.js +8 -8
- package/dist/templates/print/holidays-eid-gift-tags.js +8 -8
- package/dist/templates/print/holidays-halloween-party-invitation.js +8 -8
- package/dist/templates/print/holidays-halloween-treat-labels.js +8 -8
- package/dist/templates/print/holidays-halloween-trunk-or-treat-poster.js +8 -8
- package/dist/templates/print/holidays-hanukkah-activity-sheet.js +8 -8
- package/dist/templates/print/holidays-hanukkah-party-invitation.js +8 -8
- package/dist/templates/print/holidays-lunar-new-year-banquet-menu.js +8 -8
- package/dist/templates/print/holidays-new-years-eve-poster.js +8 -8
- package/dist/templates/print/holidays-thanksgiving-dinner-menu.js +8 -8
- package/dist/templates/print/holidays-thanksgiving-place-cards.js +8 -8
- package/dist/templates/print/holidays-valentines-dinner-menu.js +8 -8
- package/dist/templates/print/printshop-booklet-open-day.js +9 -9
- package/dist/templates/print/printshop-brochure-community.js +9 -9
- package/dist/templates/print/printshop-brochure-dental.js +9 -9
- package/dist/templates/print/printshop-brochure-gym.js +9 -9
- package/dist/templates/print/printshop-brochure-landscaping.js +9 -9
- package/dist/templates/print/printshop-brochure-travel.js +9 -9
- package/dist/templates/print/printshop-card-architect.js +9 -9
- package/dist/templates/print/printshop-card-barber.js +9 -9
- package/dist/templates/print/printshop-card-cafe.js +9 -9
- package/dist/templates/print/printshop-card-developer.js +9 -9
- package/dist/templates/print/printshop-card-florist.js +9 -9
- package/dist/templates/print/printshop-card-lawyer.js +9 -9
- package/dist/templates/print/printshop-card-photographer.js +9 -9
- package/dist/templates/print/printshop-card-plumber.js +9 -9
- package/dist/templates/print/printshop-card-realtor.js +9 -9
- package/dist/templates/print/printshop-card-yoga.js +9 -9
- package/dist/templates/print/printshop-flyer-charity-run.js +9 -9
- package/dist/templates/print/printshop-flyer-farmers-market.js +9 -9
- package/dist/templates/print/printshop-flyer-garage-sale.js +9 -9
- package/dist/templates/print/printshop-flyer-grand-opening.js +9 -9
- package/dist/templates/print/printshop-flyer-lost-pet.js +9 -9
- package/dist/templates/print/printshop-flyer-tutoring.js +9 -9
- package/dist/templates/print/printshop-flyer-yard-work.js +9 -9
- package/dist/templates/print/printshop-poster-live-music.js +9 -9
- package/dist/templates/print/studio-class-timetable-poster.js +8 -8
- package/dist/templates/print/studio-portfolio-booklet.js +8 -8
- package/dist/templates/saas/email-decks-shared.js +9 -9
- package/dist/templates/saas/email-decks.js +21 -21
- package/dist/templates/saas/index.js +194 -194
- package/dist/templates/saas/launch-kit.js +17 -17
- package/dist/templates/saas/launch-video.js +16 -16
- package/dist/templates/saas/lottie-shared.js +9 -9
- package/dist/templates/saas/stores-shared.js +6 -6
- package/dist/templates/saas/stores.js +19 -19
- package/dist/templates/saas/style-bento.js +18 -18
- package/dist/templates/saas/style-brutalist.js +18 -18
- package/dist/templates/saas/style-dark.js +18 -18
- package/dist/templates/saas/style-data.js +18 -18
- package/dist/templates/saas/style-editorial.js +18 -18
- package/dist/templates/saas/style-glass.js +18 -18
- package/dist/templates/saas/style-gradient.js +18 -18
- package/dist/templates/saas/style-maximal.js +18 -18
- package/dist/templates/saas/style-pastel.js +18 -18
- package/dist/templates/saas/style-sketch.js +18 -18
- package/dist/templates/saas/style-swiss.js +18 -18
- package/dist/templates/saas/style-terminal.js +18 -18
- package/dist/templates/saas/video.js +16 -16
- package/dist/templates/saas/web.js +20 -20
- package/dist/templates/scenes/before-after.js +8 -8
- package/dist/templates/scenes/carousel-video.js +9 -9
- package/dist/templates/scenes/saas-film-app-preview.js +9 -9
- package/dist/templates/scenes/saas-film-bright-trailer.js +9 -9
- package/dist/templates/scenes/saas-film-product-hunt-launch.js +9 -9
- package/dist/templates/scenes/saas-film-youtube-demo-kit.js +9 -9
- package/dist/templates/scenes/shared.js +6 -6
- package/dist/templates/scenes/story-ad.js +9 -9
- package/dist/templates/scenes/story-bakery.js +9 -9
- package/dist/templates/scenes/story-fitness.js +9 -9
- package/dist/templates/scenes/story-hotel.js +9 -9
- package/dist/templates/scenes/transitions-pack.js +9 -9
- package/dist/templates/scenes/web-scroll.js +9 -9
- package/dist/templates/slides/agenda.js +9 -9
- package/dist/templates/slides/deck.js +8 -8
- package/dist/templates/slides/education.js +9 -9
- package/dist/templates/slides/launch.js +9 -9
- package/dist/templates/slides/layouts.js +9 -9
- package/dist/templates/slides/pitch.js +9 -9
- package/dist/templates/slides/report.js +9 -9
- package/dist/templates/slides/saas-mail-investor-update.js +10 -10
- package/dist/templates/slides/saas-mail-seed-pitch.js +10 -10
- package/dist/templates/slides/sales.js +9 -9
- package/dist/templates/slides/section-divider.js +9 -9
- package/dist/templates/slides/title-card.js +9 -9
- package/dist/templates/slides/training.js +9 -9
- package/dist/templates/slides/webinar.js +9 -9
- package/dist/templates/slideshow/adoption.js +10 -10
- package/dist/templates/slideshow/baby.js +10 -10
- package/dist/templates/slideshow/birthday.js +10 -10
- package/dist/templates/slideshow/graduation.js +10 -10
- package/dist/templates/slideshow/holiday.js +10 -10
- package/dist/templates/slideshow/home.js +10 -10
- package/dist/templates/slideshow/index.js +17 -17
- package/dist/templates/slideshow/lease.js +10 -10
- package/dist/templates/slideshow/memorial.js +10 -10
- package/dist/templates/slideshow/portfolio.js +10 -10
- package/dist/templates/slideshow/product.js +10 -10
- package/dist/templates/slideshow/recipe.js +10 -10
- package/dist/templates/slideshow/shared.js +9 -9
- package/dist/templates/slideshow/team.js +10 -10
- package/dist/templates/slideshow/travel.js +10 -10
- package/dist/templates/slideshow/wedding.js +10 -10
- package/dist/templates/slideshow/year.js +10 -10
- package/dist/templates/social/april-fools-link-preview.js +10 -10
- package/dist/templates/social/april-fools-price-slash-post.js +10 -10
- package/dist/templates/social/arcade-boss-fight.js +8 -8
- package/dist/templates/social/arcade-level-up.js +8 -8
- package/dist/templates/social/art-deco-link-preview.js +8 -8
- package/dist/templates/social/art-deco-premiere-post.js +8 -8
- package/dist/templates/social/autumn-harvest-link-preview.js +8 -8
- package/dist/templates/social/autumn-harvest-thanks-post.js +8 -8
- package/dist/templates/social/back-to-school-link-preview.js +8 -8
- package/dist/templates/social/back-to-school-report-card-post.js +8 -8
- package/dist/templates/social/bauhaus-drift-post.js +8 -8
- package/dist/templates/social/bauhaus-link-preview.js +8 -8
- package/dist/templates/social/bauhaus-pricing-post.js +8 -8
- package/dist/templates/social/black-friday-ads.js +8 -8
- package/dist/templates/social/black-friday-countdown.js +8 -8
- package/dist/templates/social/black-friday-coupons-ads.js +8 -8
- package/dist/templates/social/black-friday-coupons-countdown.js +8 -8
- package/dist/templates/social/black-friday-neon-ads.js +8 -8
- package/dist/templates/social/black-friday-neon-countdown.js +8 -8
- package/dist/templates/social/black-friday-scratch-ads.js +8 -8
- package/dist/templates/social/black-friday-ticker-ads.js +8 -8
- package/dist/templates/social/black-friday-ticker-countdown.js +8 -8
- package/dist/templates/social/blueprint-dimension-post.js +8 -8
- package/dist/templates/social/blueprint-link-preview.js +8 -8
- package/dist/templates/social/blueprint-parts-list-post.js +8 -8
- package/dist/templates/social/broadsheet-hiring-classifieds.js +8 -8
- package/dist/templates/social/broadsheet-link-preview.js +8 -8
- package/dist/templates/social/claymation-link-preview.js +8 -8
- package/dist/templates/social/claymation-streak-post.js +8 -8
- package/dist/templates/social/comic-book-cover-preview.js +8 -8
- package/dist/templates/social/comic-book-strip-post.js +8 -8
- package/dist/templates/social/cyberpunk-implant-post.js +8 -8
- package/dist/templates/social/cyberpunk-link-preview.js +8 -8
- package/dist/templates/social/departure-board-pass-ad.js +8 -8
- package/dist/templates/social/departure-board-store-set.js +8 -8
- package/dist/templates/social/departure-board-thanks-post.js +8 -8
- package/dist/templates/social/diwali-link-preview.js +8 -8
- package/dist/templates/social/diwali-thanks-post.js +8 -8
- package/dist/templates/social/earth-day-link-preview.js +8 -8
- package/dist/templates/social/everyday-save-the-date-post.js +8 -8
- package/dist/templates/social/festival-presale-electronic-ads.js +11 -11
- package/dist/templates/social/festival-presale-family-ads.js +11 -11
- package/dist/templates/social/festival-presale-folk-ads.js +11 -11
- package/dist/templates/social/festival-presale-food-ads.js +11 -11
- package/dist/templates/social/festival-presale-jazz-ads.js +11 -11
- package/dist/templates/social/festival-presale-street-ads.js +11 -11
- package/dist/templates/social/gothic-feature-post.js +8 -8
- package/dist/templates/social/gothic-link-preview.js +8 -8
- package/dist/templates/social/halloween-link-preview.js +8 -8
- package/dist/templates/social/halloween-offer-post.js +8 -8
- package/dist/templates/social/holidays-diwali-sweet-shop-post.js +8 -8
- package/dist/templates/social/holidays-lunar-new-year-bakery-post.js +8 -8
- package/dist/templates/social/holidays-new-years-eve-shop-hours.js +8 -8
- package/dist/templates/social/holidays-thanksgiving-pie-orders-post.js +8 -8
- package/dist/templates/social/holidays-valentines-florist-post.js +8 -8
- package/dist/templates/social/lunar-new-year-greeting-post.js +8 -8
- package/dist/templates/social/lunar-new-year-link-preview.js +8 -8
- package/dist/templates/social/machined-link-preview.js +10 -10
- package/dist/templates/social/machined-plate-post.js +10 -10
- package/dist/templates/social/manuscript-chapter-post.js +8 -8
- package/dist/templates/social/manuscript-link-preview.js +8 -8
- package/dist/templates/social/new-year-link-preview.js +8 -8
- package/dist/templates/social/new-year-resolutions-post.js +8 -8
- package/dist/templates/social/noir-case-file.js +8 -8
- package/dist/templates/social/noir-feature-post.js +8 -8
- package/dist/templates/social/post-announcement.js +8 -8
- package/dist/templates/social/post-event.js +8 -8
- package/dist/templates/social/post-podcast.js +8 -8
- package/dist/templates/social/post-quote.js +8 -8
- package/dist/templates/social/post-sale.js +8 -8
- package/dist/templates/social/post-stat.js +8 -8
- package/dist/templates/social/post-testimonial.js +8 -8
- package/dist/templates/social/promo-announcement.js +8 -8
- package/dist/templates/social/promo-beat-drop.js +8 -8
- package/dist/templates/social/promo-event.js +8 -8
- package/dist/templates/social/promo-new-product.js +8 -8
- package/dist/templates/social/promo-quote-reveal.js +8 -8
- package/dist/templates/social/promo-sale-drop.js +8 -8
- package/dist/templates/social/promo-tip-list.js +8 -8
- package/dist/templates/social/psychedelic-lineup-post.js +8 -8
- package/dist/templates/social/psychedelic-link-preview.js +8 -8
- package/dist/templates/social/riso-zine-link-preview.js +8 -8
- package/dist/templates/social/riso-zine-mrr-poster.js +8 -8
- package/dist/templates/social/saas-kit-carousel.js +8 -8
- package/dist/templates/social/saas-kit-countdown-post.js +8 -8
- package/dist/templates/social/saas-kit-feature-drop.js +8 -8
- package/dist/templates/social/saas-kit-link-preview.js +8 -8
- package/dist/templates/social/saas-kit-live-post.js +8 -8
- package/dist/templates/social/saas-kit-mrr-card.js +8 -8
- package/dist/templates/social/saas-kit-ph-gallery.js +8 -8
- package/dist/templates/social/saas-kit-ph-thumb.js +8 -8
- package/dist/templates/social/saas-kit-youtube-thumbs.js +8 -8
- package/dist/templates/social/saas-store-b2b-ads.js +9 -9
- package/dist/templates/social/saas-store-caption-set.js +9 -9
- package/dist/templates/social/saas-store-chrome-kit.js +9 -9
- package/dist/templates/social/saas-store-ipad-set.js +9 -9
- package/dist/templates/social/saas-store-panorama.js +10 -10
- package/dist/templates/social/saas-store-play-kit.js +8 -8
- package/dist/templates/social/saas-store-story.js +9 -9
- package/dist/templates/social/singles-day-link-preview.js +8 -8
- package/dist/templates/social/solarpunk-impact-post.js +8 -8
- package/dist/templates/social/solarpunk-link-preview.js +8 -8
- package/dist/templates/social/space-opera-link-preview.js +8 -8
- package/dist/templates/social/space-opera-mission-patch-post.js +8 -8
- package/dist/templates/social/spring-bloom-link-preview.js +8 -8
- package/dist/templates/social/studio-class-timetable.js +8 -8
- package/dist/templates/social/studio-podcast-cover.js +8 -8
- package/dist/templates/social/style-bento-announcement.js +8 -8
- package/dist/templates/social/style-bento-link-preview.js +8 -8
- package/dist/templates/social/style-bento-milestone.js +8 -8
- package/dist/templates/social/style-bento-testimonial.js +8 -8
- package/dist/templates/social/style-brutalist-announcement.js +8 -8
- package/dist/templates/social/style-brutalist-link-preview.js +8 -8
- package/dist/templates/social/style-brutalist-milestone.js +8 -8
- package/dist/templates/social/style-brutalist-testimonial.js +8 -8
- package/dist/templates/social/style-dark-announcement.js +8 -8
- package/dist/templates/social/style-dark-link-preview.js +8 -8
- package/dist/templates/social/style-dark-milestone.js +8 -8
- package/dist/templates/social/style-dark-testimonial.js +8 -8
- package/dist/templates/social/style-data-announcement.js +8 -8
- package/dist/templates/social/style-data-link-preview.js +8 -8
- package/dist/templates/social/style-data-milestone.js +8 -8
- package/dist/templates/social/style-data-testimonial.js +8 -8
- package/dist/templates/social/style-editorial-announcement.js +8 -8
- package/dist/templates/social/style-editorial-link-preview.js +8 -8
- package/dist/templates/social/style-editorial-milestone.js +8 -8
- package/dist/templates/social/style-editorial-testimonial.js +8 -8
- package/dist/templates/social/style-glass-announcement.js +8 -8
- package/dist/templates/social/style-glass-link-preview.js +8 -8
- package/dist/templates/social/style-glass-milestone.js +8 -8
- package/dist/templates/social/style-glass-testimonial.js +8 -8
- package/dist/templates/social/style-gradient-announcement.js +8 -8
- package/dist/templates/social/style-gradient-link-preview.js +8 -8
- package/dist/templates/social/style-gradient-milestone.js +8 -8
- package/dist/templates/social/style-gradient-testimonial.js +8 -8
- package/dist/templates/social/style-maximal-announcement.js +8 -8
- package/dist/templates/social/style-maximal-link-preview.js +8 -8
- package/dist/templates/social/style-maximal-milestone.js +8 -8
- package/dist/templates/social/style-maximal-testimonial.js +8 -8
- package/dist/templates/social/style-pastel-announcement.js +8 -8
- package/dist/templates/social/style-pastel-link-preview.js +8 -8
- package/dist/templates/social/style-pastel-milestone.js +8 -8
- package/dist/templates/social/style-pastel-testimonial.js +8 -8
- package/dist/templates/social/style-sketch-announcement.js +8 -8
- package/dist/templates/social/style-sketch-link-preview.js +8 -8
- package/dist/templates/social/style-sketch-milestone.js +8 -8
- package/dist/templates/social/style-sketch-testimonial.js +8 -8
- package/dist/templates/social/style-swiss-announcement.js +8 -8
- package/dist/templates/social/style-swiss-link-preview.js +8 -8
- package/dist/templates/social/style-swiss-milestone.js +8 -8
- package/dist/templates/social/style-swiss-testimonial.js +8 -8
- package/dist/templates/social/style-terminal-announcement.js +8 -8
- package/dist/templates/social/style-terminal-link-preview.js +8 -8
- package/dist/templates/social/style-terminal-milestone.js +8 -8
- package/dist/templates/social/style-terminal-testimonial.js +8 -8
- package/dist/templates/social/summer-heatwave-link-preview.js +8 -8
- package/dist/templates/social/summer-heatwave-lolly-post.js +8 -8
- package/dist/templates/social/tour-tickets-june-ads.js +8 -8
- package/dist/templates/social/tour-tickets-tide-ads.js +8 -8
- package/dist/templates/social/tour-tickets-wreck-ads.js +8 -8
- package/dist/templates/social/transit-map-link-preview.js +8 -8
- package/dist/templates/social/ukiyo-e-link-preview.js +8 -8
- package/dist/templates/social/ukiyo-e-spike-post.js +8 -8
- package/dist/templates/social/valentines-link-preview.js +8 -8
- package/dist/templates/social/valentines-poem-post.js +8 -8
- package/dist/templates/social/vaporwave-feature-drop.js +8 -8
- package/dist/templates/social/vaporwave-link-preview.js +8 -8
- package/dist/templates/social/winter-cosy-link-preview.js +8 -8
- package/dist/templates/social/winter-holidays-link-preview.js +8 -8
- package/dist/templates/social/winter-holidays-thanks-post.js +8 -8
- package/dist/templates/stings/line-reveal.js +8 -8
- package/dist/templates/stings/sting-blur.js +8 -8
- package/dist/templates/stings/sting-pop.js +8 -8
- package/dist/templates/stings/sting-rise.js +8 -8
- package/dist/templates/stings/sting-shimmer.js +8 -8
- package/dist/templates/stings/word-swap.js +8 -8
- package/dist/templates/text/stat-counter.js +8 -8
- package/dist/templates/text/word-quote.js +8 -8
- package/dist/templates/themes/april-fools-shared.js +7 -7
- package/dist/templates/themes/april-fools.js +15 -15
- package/dist/templates/themes/arcade.js +12 -12
- package/dist/templates/themes/art-deco.js +14 -14
- package/dist/templates/themes/autumn-harvest.js +14 -14
- package/dist/templates/themes/back-to-school.js +14 -14
- package/dist/templates/themes/bauhaus.js +13 -13
- package/dist/templates/themes/black-friday-coupons.js +15 -15
- package/dist/templates/themes/black-friday-neon.js +15 -15
- package/dist/templates/themes/black-friday-scratch.js +15 -15
- package/dist/templates/themes/black-friday-ticker.js +15 -15
- package/dist/templates/themes/black-friday.js +14 -14
- package/dist/templates/themes/blueprint.js +13 -13
- package/dist/templates/themes/broadsheet.js +15 -15
- package/dist/templates/themes/claymation.js +14 -14
- package/dist/templates/themes/comic-book.js +22 -22
- package/dist/templates/themes/comic-hero-art.js +20 -0
- package/dist/templates/themes/comic-hero-page.js +67 -0
- package/dist/templates/themes/comic-hero.js +97 -1
- package/dist/templates/themes/comic-indie.js +8 -8
- package/dist/templates/themes/cyberpunk.js +14 -14
- package/dist/templates/themes/departure-board.js +13 -13
- package/dist/templates/themes/diwali.js +14 -14
- package/dist/templates/themes/earth-day.js +14 -14
- package/dist/templates/themes/everyday.js +15 -15
- package/dist/templates/themes/festival-presale-electronic-kit.js +10 -10
- package/dist/templates/themes/festival-presale-family-a-shared.js +9 -9
- package/dist/templates/themes/festival-presale-family-a.js +34 -34
- package/dist/templates/themes/festival-presale-family-b-shared.js +9 -9
- package/dist/templates/themes/festival-presale-family-b.js +34 -34
- package/dist/templates/themes/festival-presale-family-kit.js +10 -10
- package/dist/templates/themes/festival-presale-folk-kit.js +10 -10
- package/dist/templates/themes/festival-presale-food-kit.js +10 -10
- package/dist/templates/themes/festival-presale-jazz-kit.js +10 -10
- package/dist/templates/themes/festival-presale-street-kit.js +10 -10
- package/dist/templates/themes/festival-presale.js +14 -14
- package/dist/templates/themes/gothic.js +14 -14
- package/dist/templates/themes/halloween.js +14 -14
- package/dist/templates/themes/holidays.js +31 -31
- package/dist/templates/themes/index.js +434 -420
- package/dist/templates/themes/lunar-new-year.js +14 -14
- package/dist/templates/themes/machined-shared.js +7 -7
- package/dist/templates/themes/machined.js +14 -14
- package/dist/templates/themes/manuscript.js +14 -14
- package/dist/templates/themes/memories.js +18 -18
- package/dist/templates/themes/new-year.js +14 -14
- package/dist/templates/themes/noir.js +14 -14
- package/dist/templates/themes/printshop-shared.js +6 -6
- package/dist/templates/themes/printshop.js +33 -33
- package/dist/templates/themes/psychedelic.js +14 -14
- package/dist/templates/themes/riso-zine.js +14 -14
- package/dist/templates/themes/singles-day.js +14 -14
- package/dist/templates/themes/solarpunk.js +14 -14
- package/dist/templates/themes/space-opera.js +14 -14
- package/dist/templates/themes/spring-bloom.js +14 -14
- package/dist/templates/themes/studio.js +13 -13
- package/dist/templates/themes/summer-heatwave.js +14 -14
- package/dist/templates/themes/tour-tickets.js +33 -33
- package/dist/templates/themes/transit-map.js +14 -14
- package/dist/templates/themes/ukiyo-e.js +14 -14
- package/dist/templates/themes/valentines.js +14 -14
- package/dist/templates/themes/vaporwave.js +13 -13
- package/dist/templates/themes/winter-cosy.js +14 -14
- package/dist/templates/themes/winter-holidays.js +14 -14
- package/dist/templates/video/youtube-chapter.js +8 -8
- package/dist/templates/video/youtube-end-screen.js +8 -8
- package/dist/templates/video/youtube-intro.js +8 -8
- package/dist/templates/video/youtube-subscribe.js +8 -8
- package/dist/templates/web/app-ui.js +7 -7
- package/dist/templates/web/april-fools-landing.js +10 -10
- package/dist/templates/web/arcade-landing.js +8 -8
- package/dist/templates/web/art-deco-landing.js +8 -8
- package/dist/templates/web/autumn-harvest-landing.js +8 -8
- package/dist/templates/web/back-to-school-landing.js +8 -8
- package/dist/templates/web/bauhaus-landing.js +8 -8
- package/dist/templates/web/black-friday-coupons-landing.js +8 -8
- package/dist/templates/web/black-friday-landing.js +8 -8
- package/dist/templates/web/black-friday-neon-landing.js +8 -8
- package/dist/templates/web/black-friday-scratch-landing.js +8 -8
- package/dist/templates/web/black-friday-ticker-landing.js +8 -8
- package/dist/templates/web/blog-post.js +8 -8
- package/dist/templates/web/blueprint-landing.js +8 -8
- package/dist/templates/web/broadsheet-landing.js +8 -8
- package/dist/templates/web/claymation-landing.js +8 -8
- package/dist/templates/web/comic-book-landing.js +8 -8
- package/dist/templates/web/coming-soon-page.js +9 -9
- package/dist/templates/web/coming-soon.js +8 -8
- package/dist/templates/web/contact.js +9 -9
- package/dist/templates/web/cyberpunk-landing.js +8 -8
- package/dist/templates/web/daybreak-app.js +10 -10
- package/dist/templates/web/departure-board-download.js +8 -8
- package/dist/templates/web/diwali-landing.js +8 -8
- package/dist/templates/web/earth-day-landing.js +8 -8
- package/dist/templates/web/everyday-cafe.js +8 -8
- package/dist/templates/web/everyday-hotel.js +8 -8
- package/dist/templates/web/everyday-wedding.js +9 -9
- package/dist/templates/web/festival-presale-electronic.js +8 -8
- package/dist/templates/web/festival-presale-family.js +8 -8
- package/dist/templates/web/festival-presale-folk.js +8 -8
- package/dist/templates/web/festival-presale-food.js +8 -8
- package/dist/templates/web/festival-presale-jazz.js +8 -8
- package/dist/templates/web/festival-presale-street.js +8 -8
- package/dist/templates/web/forms.js +6 -6
- package/dist/templates/web/gothic-landing.js +8 -8
- package/dist/templates/web/halloween-landing.js +8 -8
- package/dist/templates/web/hero-animated.js +8 -8
- package/dist/templates/web/kindling-app.js +10 -10
- package/dist/templates/web/launch-waitlist.js +9 -9
- package/dist/templates/web/lunar-new-year-landing.js +8 -8
- package/dist/templates/web/machined-hero.js +10 -10
- package/dist/templates/web/manuscript-landing.js +8 -8
- package/dist/templates/web/marginalia-app.js +10 -10
- package/dist/templates/web/new-year-landing.js +8 -8
- package/dist/templates/web/noir-landing.js +8 -8
- package/dist/templates/web/page-404.js +8 -8
- package/dist/templates/web/portfolio-architect.js +9 -9
- package/dist/templates/web/portfolio-card-deck.js +9 -9
- package/dist/templates/web/portfolio-case-folio.js +9 -9
- package/dist/templates/web/portfolio-cube-gallery.js +9 -9
- package/dist/templates/web/portfolio-depth-tunnel.js +9 -9
- package/dist/templates/web/portfolio-editorial.js +9 -9
- package/dist/templates/web/portfolio-flip-wall.js +9 -9
- package/dist/templates/web/portfolio-index-list.js +9 -9
- package/dist/templates/web/portfolio-photographer.js +9 -9
- package/dist/templates/web/portfolio-reel-carousel.js +9 -9
- package/dist/templates/web/portfolio-shared.js +6 -6
- package/dist/templates/web/portfolio-sketchbook.js +9 -9
- package/dist/templates/web/portfolio-studio-grid.js +9 -9
- package/dist/templates/web/portfolio.js +8 -8
- package/dist/templates/web/portfolios.js +21 -21
- package/dist/templates/web/potluck-app.js +10 -10
- package/dist/templates/web/pricing-toggle.js +8 -8
- package/dist/templates/web/product-page.js +8 -8
- package/dist/templates/web/psychedelic-landing.js +8 -8
- package/dist/templates/web/riso-zine-landing.js +8 -8
- package/dist/templates/web/rsvp-invite.js +9 -9
- package/dist/templates/web/saas-ai-landing.js +8 -8
- package/dist/templates/web/saas-app-download.js +8 -8
- package/dist/templates/web/saas-case-study.js +8 -8
- package/dist/templates/web/saas-changelog.js +8 -8
- package/dist/templates/web/saas-comparison.js +8 -8
- package/dist/templates/web/saas-data-landing.js +8 -8
- package/dist/templates/web/saas-dev-landing.js +8 -8
- package/dist/templates/web/saas-indie-landing.js +8 -8
- package/dist/templates/web/saas-integrations.js +8 -8
- package/dist/templates/web/saas-security.js +8 -8
- package/dist/templates/web/saas-signup.js +8 -8
- package/dist/templates/web/saas-waitlist.js +8 -8
- package/dist/templates/web/saffron-app.js +10 -10
- package/dist/templates/web/shop-bloom.js +10 -10
- package/dist/templates/web/shop-circuit.js +10 -10
- package/dist/templates/web/shop-fieldwork.js +10 -10
- package/dist/templates/web/shop-greenhouse.js +10 -10
- package/dist/templates/web/shop-kiln.js +10 -10
- package/dist/templates/web/shop-marginalia.js +10 -10
- package/dist/templates/web/shop-ode.js +10 -10
- package/dist/templates/web/shop-shared.js +7 -7
- package/dist/templates/web/shop-static.js +10 -10
- package/dist/templates/web/shop-summit.js +10 -10
- package/dist/templates/web/shops.js +19 -19
- package/dist/templates/web/singles-day-landing.js +8 -8
- package/dist/templates/web/solarpunk-landing.js +8 -8
- package/dist/templates/web/space-opera-landing.js +8 -8
- package/dist/templates/web/spring-bloom-landing.js +8 -8
- package/dist/templates/web/studio-careers.js +8 -8
- package/dist/templates/web/style-bento-landing.js +8 -8
- package/dist/templates/web/style-bento-pricing.js +8 -8
- package/dist/templates/web/style-brutalist-landing.js +8 -8
- package/dist/templates/web/style-brutalist-pricing.js +8 -8
- package/dist/templates/web/style-dark-landing.js +8 -8
- package/dist/templates/web/style-dark-pricing.js +8 -8
- package/dist/templates/web/style-data-landing.js +8 -8
- package/dist/templates/web/style-data-pricing.js +8 -8
- package/dist/templates/web/style-editorial-landing.js +8 -8
- package/dist/templates/web/style-editorial-pricing.js +8 -8
- package/dist/templates/web/style-glass-landing.js +8 -8
- package/dist/templates/web/style-glass-pricing.js +8 -8
- package/dist/templates/web/style-gradient-landing.js +8 -8
- package/dist/templates/web/style-gradient-pricing.js +8 -8
- package/dist/templates/web/style-maximal-landing.js +8 -8
- package/dist/templates/web/style-maximal-pricing.js +8 -8
- package/dist/templates/web/style-pastel-landing.js +8 -8
- package/dist/templates/web/style-pastel-pricing.js +8 -8
- package/dist/templates/web/style-sketch-landing.js +8 -8
- package/dist/templates/web/style-sketch-pricing.js +8 -8
- package/dist/templates/web/style-swiss-landing.js +8 -8
- package/dist/templates/web/style-swiss-pricing.js +8 -8
- package/dist/templates/web/style-terminal-landing.js +8 -8
- package/dist/templates/web/style-terminal-pricing.js +8 -8
- package/dist/templates/web/summer-heatwave-landing.js +8 -8
- package/dist/templates/web/tempo-app.js +10 -10
- package/dist/templates/web/tour-tickets-june-landing.js +8 -8
- package/dist/templates/web/tour-tickets-tide-landing.js +8 -8
- package/dist/templates/web/tour-tickets-wreck-landing.js +8 -8
- package/dist/templates/web/transit-map-landing.js +8 -8
- package/dist/templates/web/ukiyo-e-landing.js +8 -8
- package/dist/templates/web/valentines-landing.js +8 -8
- package/dist/templates/web/vaporwave-landing.js +8 -8
- package/dist/templates/web/wayfarer-app.js +10 -10
- package/dist/templates/web/winter-cosy-landing.js +8 -8
- package/dist/templates/web/winter-holidays-landing.js +8 -8
- package/package.json +1 -1
- package/src/templates/print/comic-hero-cascade.ts +42 -0
- package/src/templates/print/comic-hero-chase.ts +42 -0
- package/src/templates/print/comic-hero-cover-modern.ts +34 -0
- package/src/templates/print/comic-hero-grid-break.ts +39 -0
- package/src/templates/print/comic-hero-interrogation.ts +41 -0
- package/src/templates/print/comic-hero-issue.ts +44 -0
- package/src/templates/print/comic-hero-manga-action.ts +38 -0
- package/src/templates/print/comic-hero-nested.ts +39 -0
- package/src/templates/print/comic-hero-overlap.ts +40 -0
- package/src/templates/print/comic-hero-parallel.ts +40 -0
- package/src/templates/print/comic-hero-pinup.ts +29 -0
- package/src/templates/print/comic-hero-widescreen.ts +35 -0
- package/src/templates/themes/comic-hero-art.ts +66 -0
- package/src/templates/themes/comic-hero-page.ts +326 -0
- package/src/templates/themes/comic-hero.ts +15 -2
- package/src/templates/themes/comic-indie.ts +51 -6
- package/types/templates/src/print/comic-hero-cascade.d.ts +5 -0
- package/types/templates/src/print/comic-hero-chase.d.ts +5 -0
- package/types/templates/src/print/comic-hero-cover-modern.d.ts +5 -0
- package/types/templates/src/print/comic-hero-grid-break.d.ts +5 -0
- package/types/templates/src/print/comic-hero-interrogation.d.ts +5 -0
- package/types/templates/src/print/comic-hero-issue.d.ts +2 -0
- package/types/templates/src/print/comic-hero-manga-action.d.ts +5 -0
- package/types/templates/src/print/comic-hero-nested.d.ts +5 -0
- package/types/templates/src/print/comic-hero-overlap.d.ts +5 -0
- package/types/templates/src/print/comic-hero-parallel.d.ts +5 -0
- package/types/templates/src/print/comic-hero-pinup.d.ts +5 -0
- package/types/templates/src/print/comic-hero-widescreen.d.ts +5 -0
- package/types/templates/src/themes/comic-hero-art.d.ts +318 -0
- package/types/templates/src/themes/comic-hero-page.d.ts +177 -0
- package/dist/chunks/agent-I67C3L25.js +0 -44
- package/dist/chunks/api-XSKQO3D7.js +0 -29
- package/dist/chunks/build-MXLGAHTQ.js +0 -59
- package/dist/chunks/builtin-FVINDQGX.js +0 -115
- package/dist/chunks/check-template-OT4C3B3V.js +0 -2277
- package/dist/chunks/chunk-22ALSAUF.js +0 -320
- package/dist/chunks/chunk-22BD4G3N.js +0 -23
- package/dist/chunks/chunk-255JUHQN.js +0 -738
- package/dist/chunks/chunk-26NYEW7U.js +0 -206
- package/dist/chunks/chunk-26TKS4S5.js +0 -94
- package/dist/chunks/chunk-272AJ6UC.js +0 -177
- package/dist/chunks/chunk-2AHLXHUM.js +0 -47
- package/dist/chunks/chunk-2AMD2WSX.js +0 -104
- package/dist/chunks/chunk-2B7LNTA5.js +0 -170
- package/dist/chunks/chunk-2DPZ5Z5H.js +0 -60
- package/dist/chunks/chunk-2FDNFAJ3.js +0 -170
- package/dist/chunks/chunk-2FGNJ4RL.js +0 -75
- package/dist/chunks/chunk-2GHHXYWJ.js +0 -187
- package/dist/chunks/chunk-2HR2MOFY.js +0 -88
- package/dist/chunks/chunk-2IOAJTVY.js +0 -89
- package/dist/chunks/chunk-2JLOWPDO.js +0 -255
- package/dist/chunks/chunk-2KLLLGJV.js +0 -60
- package/dist/chunks/chunk-2M3C7SJI.js +0 -147
- package/dist/chunks/chunk-2NDC42O2.js +0 -122
- package/dist/chunks/chunk-2O56UAP2.js +0 -73
- package/dist/chunks/chunk-2PYGZUEN.js +0 -232
- package/dist/chunks/chunk-2QSR37YI.js +0 -173
- package/dist/chunks/chunk-2UNKDIN3.js +0 -93
- package/dist/chunks/chunk-2YQ5O73Q.js +0 -224
- package/dist/chunks/chunk-2YVC6XTZ.js +0 -47
- package/dist/chunks/chunk-2ZLV775A.js +0 -298
- package/dist/chunks/chunk-2ZMOXL2T.js +0 -206
- package/dist/chunks/chunk-32DIQSFW.js +0 -102
- package/dist/chunks/chunk-32YK2WKX.js +0 -121
- package/dist/chunks/chunk-33BBMYOA.js +0 -196
- package/dist/chunks/chunk-36NHEW4G.js +0 -62
- package/dist/chunks/chunk-36OMZN2K.js +0 -139
- package/dist/chunks/chunk-37EN4AN6.js +0 -115
- package/dist/chunks/chunk-3BEYE2JO.js +0 -106
- package/dist/chunks/chunk-3E6KGWGF.js +0 -183
- package/dist/chunks/chunk-3EHNPIQT.js +0 -97
- package/dist/chunks/chunk-3ERQONC4.js +0 -152
- package/dist/chunks/chunk-3GROBTLG.js +0 -169
- package/dist/chunks/chunk-3HS2BHRT.js +0 -97
- package/dist/chunks/chunk-3KWUH3R3.js +0 -198
- package/dist/chunks/chunk-3LUFEE5M.js +0 -45
- package/dist/chunks/chunk-3MEQKW6I.js +0 -95
- package/dist/chunks/chunk-3NK4DDCZ.js +0 -215
- package/dist/chunks/chunk-3QCZYXZZ.js +0 -94
- package/dist/chunks/chunk-3QE57IDQ.js +0 -77
- package/dist/chunks/chunk-3QM22WL7.js +0 -49
- package/dist/chunks/chunk-3QQJIOTB.js +0 -262
- package/dist/chunks/chunk-3QRHKZKU.js +0 -497
- package/dist/chunks/chunk-3RT3CFL5.js +0 -195
- package/dist/chunks/chunk-3SFUI5UE.js +0 -36
- package/dist/chunks/chunk-3UWNAE5R.js +0 -209
- package/dist/chunks/chunk-3Y3BXWHH.js +0 -78
- package/dist/chunks/chunk-3YWQKJBC.js +0 -415
- package/dist/chunks/chunk-3YX4MMBD.js +0 -235
- package/dist/chunks/chunk-3ZY43WNP.js +0 -140
- package/dist/chunks/chunk-43AOMJX6.js +0 -396
- package/dist/chunks/chunk-44IVI5DJ.js +0 -326
- package/dist/chunks/chunk-45QICAHN.js +0 -180
- package/dist/chunks/chunk-4BPKUDBB.js +0 -129
- package/dist/chunks/chunk-4CYGEWXL.js +0 -23
- package/dist/chunks/chunk-4EPTPP5E.js +0 -93
- package/dist/chunks/chunk-4FDG4732.js +0 -225
- package/dist/chunks/chunk-4KAZVZFI.js +0 -174
- package/dist/chunks/chunk-4KJ6JXKZ.js +0 -95
- package/dist/chunks/chunk-4MKU3YJW.js +0 -278
- package/dist/chunks/chunk-4N7IKZHK.js +0 -79
- package/dist/chunks/chunk-4Q6IPKHH.js +0 -100
- package/dist/chunks/chunk-4UDU3LKV.js +0 -23
- package/dist/chunks/chunk-4VK6BP4B.js +0 -86
- package/dist/chunks/chunk-4WCN2SFF.js +0 -187
- package/dist/chunks/chunk-4WH454OB.js +0 -240
- package/dist/chunks/chunk-4XUDD2QY.js +0 -105
- package/dist/chunks/chunk-4XVLYGW4.js +0 -23
- package/dist/chunks/chunk-4ZCPJJVW.js +0 -94
- package/dist/chunks/chunk-4ZKXZRDC.js +0 -176
- package/dist/chunks/chunk-4ZWVLNWJ.js +0 -126
- package/dist/chunks/chunk-54SYFOSU.js +0 -120
- package/dist/chunks/chunk-56TDYGPU.js +0 -120
- package/dist/chunks/chunk-572QBW5I.js +0 -43
- package/dist/chunks/chunk-57BPIIH2.js +0 -607
- package/dist/chunks/chunk-5A3PRCRQ.js +0 -44
- package/dist/chunks/chunk-5ARBBS5L.js +0 -263
- package/dist/chunks/chunk-5BZFDLJ4.js +0 -100
- package/dist/chunks/chunk-5CK5HD6C.js +0 -283
- package/dist/chunks/chunk-5EDFBGOY.js +0 -33
- package/dist/chunks/chunk-5F36HTT3.js +0 -199
- package/dist/chunks/chunk-5HE7FX36.js +0 -66
- package/dist/chunks/chunk-5IPYX6VN.js +0 -165
- package/dist/chunks/chunk-5J4HX34C.js +0 -146
- package/dist/chunks/chunk-5K22XDQY.js +0 -115
- package/dist/chunks/chunk-5LX67OGK.js +0 -108
- package/dist/chunks/chunk-5P6B4D7H.js +0 -140
- package/dist/chunks/chunk-5QX572FE.js +0 -260
- package/dist/chunks/chunk-5RRLWHRR.js +0 -170
- package/dist/chunks/chunk-5UKXMYXO.js +0 -149
- package/dist/chunks/chunk-5WGLK2H5.js +0 -138
- package/dist/chunks/chunk-5X4YUKC4.js +0 -139
- package/dist/chunks/chunk-5XX3DRCS.js +0 -109
- package/dist/chunks/chunk-5ZDMK5WM.js +0 -284
- package/dist/chunks/chunk-5ZXGYEXW.js +0 -244
- package/dist/chunks/chunk-62LXN5HJ.js +0 -217
- package/dist/chunks/chunk-62MCZLXS.js +0 -70
- package/dist/chunks/chunk-63QVET22.js +0 -399
- package/dist/chunks/chunk-65NQ7TUS.js +0 -49
- package/dist/chunks/chunk-67G5BJT6.js +0 -33
- package/dist/chunks/chunk-6A74VDRQ.js +0 -55
- package/dist/chunks/chunk-6AB5B2ZJ.js +0 -1403
- package/dist/chunks/chunk-6AEB24YZ.js +0 -45
- package/dist/chunks/chunk-6BMMHDIR.js +0 -133
- package/dist/chunks/chunk-6CVPVVA3.js +0 -23
- package/dist/chunks/chunk-6ER5O6QK.js +0 -78
- package/dist/chunks/chunk-6I7CJJS2.js +0 -11335
- package/dist/chunks/chunk-6IPEOPJN.js +0 -23
- package/dist/chunks/chunk-6K7HYKRD.js +0 -107
- package/dist/chunks/chunk-6KUHSJ75.js +0 -84
- package/dist/chunks/chunk-6LMN4O2K.js +0 -210
- package/dist/chunks/chunk-6MQXGMKX.js +0 -728
- package/dist/chunks/chunk-6NPE5ABC.js +0 -201
- package/dist/chunks/chunk-6NTZRNPY.js +0 -276
- package/dist/chunks/chunk-6Q5QWTLH.js +0 -83
- package/dist/chunks/chunk-6QUHFY76.js +0 -95
- package/dist/chunks/chunk-6RZ4273P.js +0 -471
- package/dist/chunks/chunk-6UH7PVU4.js +0 -163
- package/dist/chunks/chunk-6WQXPIWB.js +0 -117
- package/dist/chunks/chunk-6YGEJAYA.js +0 -114
- package/dist/chunks/chunk-73FP3ZKL.js +0 -36
- package/dist/chunks/chunk-74UTAFMU.js +0 -239
- package/dist/chunks/chunk-75B6LDBT.js +0 -23
- package/dist/chunks/chunk-75C3QUPK.js +0 -23
- package/dist/chunks/chunk-75EZYRDM.js +0 -128
- package/dist/chunks/chunk-767QNG4R.js +0 -168
- package/dist/chunks/chunk-7BGQYMOU.js +0 -155
- package/dist/chunks/chunk-7C3MDH7N.js +0 -84
- package/dist/chunks/chunk-7DBVFWSZ.js +0 -178
- package/dist/chunks/chunk-7GIYVCVA.js +0 -119
- package/dist/chunks/chunk-7HHUIXQZ.js +0 -136
- package/dist/chunks/chunk-7HLD2F6B.js +0 -178
- package/dist/chunks/chunk-7LPIFDZY.js +0 -261
- package/dist/chunks/chunk-7LUOHZN5.js +0 -33
- package/dist/chunks/chunk-7MJBTQQ5.js +0 -45
- package/dist/chunks/chunk-7MKYLNPP.js +0 -77
- package/dist/chunks/chunk-7MSW2WTI.js +0 -81
- package/dist/chunks/chunk-7MZYUT7F.js +0 -125
- package/dist/chunks/chunk-7O35XSME.js +0 -38
- package/dist/chunks/chunk-7PFG5FCQ.js +0 -97
- package/dist/chunks/chunk-7PT5TCDM.js +0 -112
- package/dist/chunks/chunk-7RBFZ2ZP.js +0 -53
- package/dist/chunks/chunk-7SK2OFM6.js +0 -86
- package/dist/chunks/chunk-7VKTLJ5X.js +0 -131
- package/dist/chunks/chunk-7W4H3I72.js +0 -33
- package/dist/chunks/chunk-7XRJDJIW.js +0 -108
- package/dist/chunks/chunk-7YCOM3UJ.js +0 -231
- package/dist/chunks/chunk-7YLMIL5P.js +0 -30
- package/dist/chunks/chunk-A2OAK4IM.js +0 -163
- package/dist/chunks/chunk-A5PHXOJB.js +0 -279
- package/dist/chunks/chunk-A7ILKATD.js +0 -135
- package/dist/chunks/chunk-A7QAGGS4.js +0 -55
- package/dist/chunks/chunk-A7ZOEBUT.js +0 -360
- package/dist/chunks/chunk-ABZKL6BW.js +0 -10192
- package/dist/chunks/chunk-ACQWJWJ6.js +0 -247
- package/dist/chunks/chunk-ADLBFJRD.js +0 -78
- package/dist/chunks/chunk-AE6ROZA4.js +0 -146
- package/dist/chunks/chunk-AKQOIYDF.js +0 -162
- package/dist/chunks/chunk-ALCEPQPQ.js +0 -33
- package/dist/chunks/chunk-ALFYZCGL.js +0 -204
- package/dist/chunks/chunk-ALLNKI5W.js +0 -83
- package/dist/chunks/chunk-ANID7MDG.js +0 -179
- package/dist/chunks/chunk-APRQRJ32.js +0 -85
- package/dist/chunks/chunk-AQJM76ZK.js +0 -23
- package/dist/chunks/chunk-ARXMCHG5.js +0 -558
- package/dist/chunks/chunk-ASHATMUU.js +0 -209
- package/dist/chunks/chunk-ASTGMJ5S.js +0 -242
- package/dist/chunks/chunk-ASZTMVL4.js +0 -193
- package/dist/chunks/chunk-ATEECJLR.js +0 -18
- package/dist/chunks/chunk-AULEK4AI.js +0 -327
- package/dist/chunks/chunk-AZDLHEAY.js +0 -42
- package/dist/chunks/chunk-AZGDLYQU.js +0 -90
- package/dist/chunks/chunk-AZTLLNXL.js +0 -105
- package/dist/chunks/chunk-AZY4L6GX.js +0 -163
- package/dist/chunks/chunk-B2QYPRG7.js +0 -96
- package/dist/chunks/chunk-B3F5EMKD.js +0 -200
- package/dist/chunks/chunk-B3LQAWFG.js +0 -317
- package/dist/chunks/chunk-BAJLG3G7.js +0 -135
- package/dist/chunks/chunk-BBFJWGSR.js +0 -135
- package/dist/chunks/chunk-BBUAYMM7.js +0 -175
- package/dist/chunks/chunk-BCFEHRVZ.js +0 -48
- package/dist/chunks/chunk-BERGAM7M.js +0 -33
- package/dist/chunks/chunk-BF7ZBREJ.js +0 -133
- package/dist/chunks/chunk-BGR5WOWO.js +0 -208
- package/dist/chunks/chunk-BH5M54GQ.js +0 -84
- package/dist/chunks/chunk-BHCYTL37.js +0 -1417
- package/dist/chunks/chunk-BJ27GCLG.js +0 -220
- package/dist/chunks/chunk-BJDFFBBE.js +0 -157
- package/dist/chunks/chunk-BK6ZSMMB.js +0 -120
- package/dist/chunks/chunk-BL3RXZCH.js +0 -177
- package/dist/chunks/chunk-BPEDJCYE.js +0 -106
- package/dist/chunks/chunk-BSST5JMJ.js +0 -103
- package/dist/chunks/chunk-BUI4OOJG.js +0 -206
- package/dist/chunks/chunk-BUUZVJW2.js +0 -77
- package/dist/chunks/chunk-BUYHCJC4.js +0 -79
- package/dist/chunks/chunk-BWH22TJF.js +0 -209
- package/dist/chunks/chunk-BYKNZYGS.js +0 -777
- package/dist/chunks/chunk-BYWHR3JB.js +0 -113
- package/dist/chunks/chunk-C2MKR4VE.js +0 -136
- package/dist/chunks/chunk-C2STPWQC.js +0 -33
- package/dist/chunks/chunk-C4ZXGRKL.js +0 -105
- package/dist/chunks/chunk-C5GEQLQR.js +0 -221
- package/dist/chunks/chunk-C5PWCDGO.js +0 -178
- package/dist/chunks/chunk-C5UUYHI5.js +0 -174
- package/dist/chunks/chunk-C7UYXQXR.js +0 -72
- package/dist/chunks/chunk-CBRROZXI.js +0 -122
- package/dist/chunks/chunk-CBYUSQER.js +0 -151
- package/dist/chunks/chunk-CGAXX3QH.js +0 -95
- package/dist/chunks/chunk-CH2QQK6H.js +0 -197
- package/dist/chunks/chunk-CJZKCIYK.js +0 -366
- package/dist/chunks/chunk-CMK27OOU.js +0 -105
- package/dist/chunks/chunk-CNBIXJOG.js +0 -141
- package/dist/chunks/chunk-COIMIZHZ.js +0 -100
- package/dist/chunks/chunk-CPPJLF4P.js +0 -194
- package/dist/chunks/chunk-CR7DI7JZ.js +0 -99
- package/dist/chunks/chunk-CRMY4SRE.js +0 -172
- package/dist/chunks/chunk-CRTCG6CP.js +0 -283
- package/dist/chunks/chunk-CRTINW44.js +0 -137
- package/dist/chunks/chunk-CSMRSUJK.js +0 -221
- package/dist/chunks/chunk-CUK3ZDE3.js +0 -161
- package/dist/chunks/chunk-CV2RYQFE.js +0 -351
- package/dist/chunks/chunk-CVE65WWQ.js +0 -101
- package/dist/chunks/chunk-CWESIIOG.js +0 -242
- package/dist/chunks/chunk-CYYBMHWK.js +0 -198
- package/dist/chunks/chunk-CZVHIHKI.js +0 -503
- package/dist/chunks/chunk-D4GCZWGB.js +0 -165
- package/dist/chunks/chunk-D5NRDMOB.js +0 -122
- package/dist/chunks/chunk-D64CUY4W.js +0 -146
- package/dist/chunks/chunk-D6Y42WMC.js +0 -61
- package/dist/chunks/chunk-D7HK6GFW.js +0 -111
- package/dist/chunks/chunk-D7TGZGSI.js +0 -78
- package/dist/chunks/chunk-DCUOY7TT.js +0 -106
- package/dist/chunks/chunk-DEV4X3BC.js +0 -97
- package/dist/chunks/chunk-DFYCFAOB.js +0 -80
- package/dist/chunks/chunk-DHTO4K5U.js +0 -153
- package/dist/chunks/chunk-DIY7FEQG.js +0 -115
- package/dist/chunks/chunk-DKPNU7SW.js +0 -139
- package/dist/chunks/chunk-DMSQYZ5Y.js +0 -45
- package/dist/chunks/chunk-DMUD43OC.js +0 -23
- package/dist/chunks/chunk-DQKOYN5G.js +0 -304
- package/dist/chunks/chunk-DSGAOQAD.js +0 -23
- package/dist/chunks/chunk-DSSR7MTS.js +0 -230
- package/dist/chunks/chunk-DTPYNJKK.js +0 -122
- package/dist/chunks/chunk-DXOXBACU.js +0 -45
- package/dist/chunks/chunk-DXQIA62X.js +0 -301
- package/dist/chunks/chunk-DYSDUGRK.js +0 -36
- package/dist/chunks/chunk-DZ4GEQYH.js +0 -98
- package/dist/chunks/chunk-E2F5OVMQ.js +0 -23
- package/dist/chunks/chunk-E2NMG7YP.js +0 -228
- package/dist/chunks/chunk-E3JYQMGH.js +0 -110
- package/dist/chunks/chunk-E3KRGKDY.js +0 -36
- package/dist/chunks/chunk-E3O4RS7P.js +0 -181
- package/dist/chunks/chunk-E5MBDUQU.js +0 -109
- package/dist/chunks/chunk-E6BP7WGV.js +0 -202
- package/dist/chunks/chunk-E7SCSHJA.js +0 -23
- package/dist/chunks/chunk-EC5HOSB7.js +0 -118
- package/dist/chunks/chunk-EER3ZIOO.js +0 -140
- package/dist/chunks/chunk-EGCMRVUM.js +0 -307
- package/dist/chunks/chunk-EHFO2H5F.js +0 -94
- package/dist/chunks/chunk-EHJCAVRM.js +0 -362
- package/dist/chunks/chunk-EIUEZJNL.js +0 -100
- package/dist/chunks/chunk-EJDOCTLY.js +0 -80
- package/dist/chunks/chunk-EKHOAL4B.js +0 -362
- package/dist/chunks/chunk-EKZSZ5CT.js +0 -84
- package/dist/chunks/chunk-EL56LS7Z.js +0 -147
- package/dist/chunks/chunk-EM7RKDEK.js +0 -33
- package/dist/chunks/chunk-EMTPEXVV.js +0 -84
- package/dist/chunks/chunk-EMWDTGCM.js +0 -382
- package/dist/chunks/chunk-EO73IDCD.js +0 -287
- package/dist/chunks/chunk-EPSM6MKE.js +0 -30
- package/dist/chunks/chunk-EQ2YYW66.js +0 -23
- package/dist/chunks/chunk-ER4Q2QMN.js +0 -141
- package/dist/chunks/chunk-ESSLVDNS.js +0 -23
- package/dist/chunks/chunk-ET5REO6W.js +0 -251
- package/dist/chunks/chunk-ETTVYJPY.js +0 -45
- package/dist/chunks/chunk-EUZTWLRL.js +0 -177
- package/dist/chunks/chunk-EXLFMMUW.js +0 -358
- package/dist/chunks/chunk-F3IGXNV5.js +0 -320
- package/dist/chunks/chunk-F5VBU7WB.js +0 -172
- package/dist/chunks/chunk-F62VB44V.js +0 -1574
- package/dist/chunks/chunk-F7TQZRXN.js +0 -260
- package/dist/chunks/chunk-FCMZFHSX.js +0 -212
- package/dist/chunks/chunk-FCWRBIH6.js +0 -190
- package/dist/chunks/chunk-FDM6CL6Z.js +0 -41
- package/dist/chunks/chunk-FDMERRYK.js +0 -23
- package/dist/chunks/chunk-FE4O5TBQ.js +0 -231
- package/dist/chunks/chunk-FENNER3R.js +0 -176
- package/dist/chunks/chunk-FF2FRKH4.js +0 -143
- package/dist/chunks/chunk-FHJ6A5V7.js +0 -23
- package/dist/chunks/chunk-FK374Y3N.js +0 -23
- package/dist/chunks/chunk-FKJSFVK7.js +0 -92
- package/dist/chunks/chunk-FOE5HJTW.js +0 -165
- package/dist/chunks/chunk-FPDWP3W2.js +0 -50
- package/dist/chunks/chunk-FXIYE3XH.js +0 -49
- package/dist/chunks/chunk-FYQOQLVX.js +0 -77
- package/dist/chunks/chunk-G4GSFWV2.js +0 -33
- package/dist/chunks/chunk-G4P3BVBA.js +0 -93
- package/dist/chunks/chunk-G5TVYUEE.js +0 -156
- package/dist/chunks/chunk-G6OWNTWC.js +0 -23
- package/dist/chunks/chunk-G6WNVRXL.js +0 -81
- package/dist/chunks/chunk-G7F6PELH.js +0 -164
- package/dist/chunks/chunk-GCHL6JA4.js +0 -161
- package/dist/chunks/chunk-GE4TE7OJ.js +0 -23
- package/dist/chunks/chunk-GENWMOHR.js +0 -133
- package/dist/chunks/chunk-GEWFQS3X.js +0 -378
- package/dist/chunks/chunk-GGCHSKEM.js +0 -589
- package/dist/chunks/chunk-GGZMQ2JO.js +0 -33
- package/dist/chunks/chunk-GIDRMUUA.js +0 -151
- package/dist/chunks/chunk-GLERM3QE.js +0 -106
- package/dist/chunks/chunk-GMPIEAOG.js +0 -47
- package/dist/chunks/chunk-GO5ORWTY.js +0 -23
- package/dist/chunks/chunk-GPCMAEBF.js +0 -213
- package/dist/chunks/chunk-GS3ALS3C.js +0 -33
- package/dist/chunks/chunk-GTFBPQJR.js +0 -150
- package/dist/chunks/chunk-GTJYLWWE.js +0 -162
- package/dist/chunks/chunk-GWYBKSDL.js +0 -79
- package/dist/chunks/chunk-GX4O3SUN.js +0 -50
- package/dist/chunks/chunk-GXEQEHRJ.js +0 -10429
- package/dist/chunks/chunk-GZU76YJC.js +0 -179
- package/dist/chunks/chunk-H2JGFX3F.js +0 -82
- package/dist/chunks/chunk-H2Y2CMZE.js +0 -180
- package/dist/chunks/chunk-H4V24KD5.js +0 -23
- package/dist/chunks/chunk-H55BQLBV.js +0 -117
- package/dist/chunks/chunk-H7UQ6CTI.js +0 -77
- package/dist/chunks/chunk-HCOUABRF.js +0 -117
- package/dist/chunks/chunk-HCXYYJSM.js +0 -86
- package/dist/chunks/chunk-HEZSKMEP.js +0 -81
- package/dist/chunks/chunk-HGZTE7C4.js +0 -97
- package/dist/chunks/chunk-HHTMXVVT.js +0 -80
- package/dist/chunks/chunk-HJ73PDCK.js +0 -331
- package/dist/chunks/chunk-HO5PSVKU.js +0 -390
- package/dist/chunks/chunk-HOQMBKGN.js +0 -141
- package/dist/chunks/chunk-HQ2AXG33.js +0 -50
- package/dist/chunks/chunk-HQ7UIUGU.js +0 -115
- package/dist/chunks/chunk-HSGF2K4Y.js +0 -346
- package/dist/chunks/chunk-HTVSQBBR.js +0 -150
- package/dist/chunks/chunk-HUINZZSB.js +0 -152
- package/dist/chunks/chunk-HVC4EKRO.js +0 -90
- package/dist/chunks/chunk-HVR7N4ZR.js +0 -217
- package/dist/chunks/chunk-HVUC3FN7.js +0 -71
- package/dist/chunks/chunk-HZ67CFKH.js +0 -127
- package/dist/chunks/chunk-HZCDW57H.js +0 -33
- package/dist/chunks/chunk-HZGSIGPY.js +0 -100
- package/dist/chunks/chunk-I226Y4C5.js +0 -290
- package/dist/chunks/chunk-I22VCHUD.js +0 -191
- package/dist/chunks/chunk-I2RKRJRQ.js +0 -65
- package/dist/chunks/chunk-I3JBWNPW.js +0 -163
- package/dist/chunks/chunk-I4JKPVBJ.js +0 -177
- package/dist/chunks/chunk-I4WV5NEV.js +0 -33
- package/dist/chunks/chunk-I5ESLHYD.js +0 -23
- package/dist/chunks/chunk-I6SREAEO.js +0 -282
- package/dist/chunks/chunk-I77QGBZH.js +0 -142
- package/dist/chunks/chunk-ICHXXVUX.js +0 -33
- package/dist/chunks/chunk-IEOFIPGG.js +0 -112
- package/dist/chunks/chunk-IFEHXEH2.js +0 -1469
- package/dist/chunks/chunk-IFJPXT6P.js +0 -85
- package/dist/chunks/chunk-IGAOBELB.js +0 -305
- package/dist/chunks/chunk-IGV2RXXQ.js +0 -130
- package/dist/chunks/chunk-IIKPSUOK.js +0 -23
- package/dist/chunks/chunk-IJPF4OZ3.js +0 -66
- package/dist/chunks/chunk-IKBZNK6S.js +0 -165
- package/dist/chunks/chunk-IKT6SPCK.js +0 -130
- package/dist/chunks/chunk-IMEWW7TO.js +0 -78
- package/dist/chunks/chunk-IMWJ35FM.js +0 -144
- package/dist/chunks/chunk-IOBTRCHX.js +0 -220
- package/dist/chunks/chunk-IOIU4EUN.js +0 -192
- package/dist/chunks/chunk-IPAUCESI.js +0 -106
- package/dist/chunks/chunk-IRC4VJR6.js +0 -184
- package/dist/chunks/chunk-ISEHSZWF.js +0 -119
- package/dist/chunks/chunk-IVHFYNDB.js +0 -1309
- package/dist/chunks/chunk-IVK44RA5.js +0 -160
- package/dist/chunks/chunk-IVPTIX2T.js +0 -121
- package/dist/chunks/chunk-IXATRTYD.js +0 -266
- package/dist/chunks/chunk-IXYFMMDG.js +0 -108
- package/dist/chunks/chunk-IYF7OK2Z.js +0 -226
- package/dist/chunks/chunk-IZFT6WHR.js +0 -45
- package/dist/chunks/chunk-J2W2Y5CR.js +0 -95
- package/dist/chunks/chunk-J2XMHCOF.js +0 -80
- package/dist/chunks/chunk-J65CSSWM.js +0 -33
- package/dist/chunks/chunk-J6MFS3QB.js +0 -112
- package/dist/chunks/chunk-J7T5S6NA.js +0 -198
- package/dist/chunks/chunk-JHKF3USC.js +0 -363
- package/dist/chunks/chunk-JHKJOUUH.js +0 -59
- package/dist/chunks/chunk-JK27YT4C.js +0 -191
- package/dist/chunks/chunk-JKVRU2E2.js +0 -23
- package/dist/chunks/chunk-JMZVP5RZ.js +0 -95
- package/dist/chunks/chunk-JP6XISBO.js +0 -33
- package/dist/chunks/chunk-JSJBFBSH.js +0 -161
- package/dist/chunks/chunk-JV35MPM6.js +0 -151
- package/dist/chunks/chunk-JVISUTBJ.js +0 -195
- package/dist/chunks/chunk-JVZCIUHF.js +0 -36
- package/dist/chunks/chunk-JWP3EQP3.js +0 -23
- package/dist/chunks/chunk-JWWSURT3.js +0 -109
- package/dist/chunks/chunk-JXNWBXL5.js +0 -45
- package/dist/chunks/chunk-JYJDNJW6.js +0 -84
- package/dist/chunks/chunk-JYZIRBUJ.js +0 -337
- package/dist/chunks/chunk-K4RXT6XM.js +0 -76
- package/dist/chunks/chunk-K4UVU44T.js +0 -209
- package/dist/chunks/chunk-K5ZFL46S.js +0 -261
- package/dist/chunks/chunk-K6COXUA7.js +0 -91
- package/dist/chunks/chunk-KACSRFTX.js +0 -88
- package/dist/chunks/chunk-KCJJME3Z.js +0 -131
- package/dist/chunks/chunk-KDIAXVCT.js +0 -234
- package/dist/chunks/chunk-KEOCSWWH.js +0 -237
- package/dist/chunks/chunk-KG4YRLEE.js +0 -33
- package/dist/chunks/chunk-KGLEN7IR.js +0 -124
- package/dist/chunks/chunk-KH3VEZ5S.js +0 -111
- package/dist/chunks/chunk-KIPFMXT7.js +0 -163
- package/dist/chunks/chunk-KJYXT3SY.js +0 -110
- package/dist/chunks/chunk-KKELZHNW.js +0 -137
- package/dist/chunks/chunk-KMSKWB3P.js +0 -104
- package/dist/chunks/chunk-KNUSCXCL.js +0 -23
- package/dist/chunks/chunk-KP6JVMS5.js +0 -201
- package/dist/chunks/chunk-KPNARS52.js +0 -196
- package/dist/chunks/chunk-KQCYICKH.js +0 -54
- package/dist/chunks/chunk-KQFFHFMT.js +0 -94
- package/dist/chunks/chunk-KR6X4XRJ.js +0 -257
- package/dist/chunks/chunk-KTDUAQDZ.js +0 -78
- package/dist/chunks/chunk-KTKCNIDL.js +0 -252
- package/dist/chunks/chunk-KTOFG2ZU.js +0 -169
- package/dist/chunks/chunk-KTTVBM22.js +0 -77
- package/dist/chunks/chunk-KU3ESWYT.js +0 -107
- package/dist/chunks/chunk-KXZ47IY3.js +0 -68
- package/dist/chunks/chunk-KY2G26M7.js +0 -146
- package/dist/chunks/chunk-KY3DNVDJ.js +0 -33
- package/dist/chunks/chunk-KYEZPAWM.js +0 -214
- package/dist/chunks/chunk-KYHSYJNZ.js +0 -157
- package/dist/chunks/chunk-KYJGZOMT.js +0 -87
- package/dist/chunks/chunk-KZ3FLV7V.js +0 -23
- package/dist/chunks/chunk-KZ5D4UYS.js +0 -33
- package/dist/chunks/chunk-L36QNGUH.js +0 -366
- package/dist/chunks/chunk-L374J6OJ.js +0 -142
- package/dist/chunks/chunk-L54AIU2H.js +0 -218
- package/dist/chunks/chunk-LBHCFPLS.js +0 -462
- package/dist/chunks/chunk-LCVTXAMG.js +0 -100
- package/dist/chunks/chunk-LCVZ7WQR.js +0 -324
- package/dist/chunks/chunk-LDMLHS7Z.js +0 -92
- package/dist/chunks/chunk-LE76E2QH.js +0 -146
- package/dist/chunks/chunk-LEBE3NA6.js +0 -39
- package/dist/chunks/chunk-LFICIIA2.js +0 -163
- package/dist/chunks/chunk-LGCH5MYA.js +0 -126
- package/dist/chunks/chunk-LGECGENG.js +0 -131
- package/dist/chunks/chunk-LGUWKDUU.js +0 -170
- package/dist/chunks/chunk-LITEJCXB.js +0 -102
- package/dist/chunks/chunk-LKKQUSLN.js +0 -77
- package/dist/chunks/chunk-LN5IT5X3.js +0 -123
- package/dist/chunks/chunk-LNCOOQ5A.js +0 -181
- package/dist/chunks/chunk-LPBCRTSJ.js +0 -361
- package/dist/chunks/chunk-LQ52336V.js +0 -112
- package/dist/chunks/chunk-LRLXGUGI.js +0 -375
- package/dist/chunks/chunk-LRTDGCTH.js +0 -86
- package/dist/chunks/chunk-LSBWB5AF.js +0 -266
- package/dist/chunks/chunk-LUB6HYK4.js +0 -36
- package/dist/chunks/chunk-LUIP6W47.js +0 -197
- package/dist/chunks/chunk-LWYHZ42M.js +0 -125
- package/dist/chunks/chunk-LWZ34GVL.js +0 -98
- package/dist/chunks/chunk-LYIO5FIK.js +0 -98
- package/dist/chunks/chunk-LYNRXL5Y.js +0 -222
- package/dist/chunks/chunk-LYY4MC3U.js +0 -200
- package/dist/chunks/chunk-M2YCBFFL.js +0 -171
- package/dist/chunks/chunk-M3C4KVO4.js +0 -283
- package/dist/chunks/chunk-M3HB5J55.js +0 -344
- package/dist/chunks/chunk-M3JUL5R6.js +0 -71
- package/dist/chunks/chunk-M67PMDSR.js +0 -23
- package/dist/chunks/chunk-M75KV3IR.js +0 -277
- package/dist/chunks/chunk-MAFLNEMC.js +0 -209
- package/dist/chunks/chunk-MALIZUXA.js +0 -30
- package/dist/chunks/chunk-MC7AKFNW.js +0 -101
- package/dist/chunks/chunk-MCGYHMDT.js +0 -80
- package/dist/chunks/chunk-MCRYUK7R.js +0 -149
- package/dist/chunks/chunk-MD2UCEEA.js +0 -23
- package/dist/chunks/chunk-MD7YQEUI.js +0 -160
- package/dist/chunks/chunk-MFNFPRBF.js +0 -303
- package/dist/chunks/chunk-MHFTT634.js +0 -200
- package/dist/chunks/chunk-MHMEKZLL.js +0 -147
- package/dist/chunks/chunk-MIL6SFFD.js +0 -63
- package/dist/chunks/chunk-MJW24FUI.js +0 -169
- package/dist/chunks/chunk-MKAK6GOQ.js +0 -106
- package/dist/chunks/chunk-MLT4Y25H.js +0 -145
- package/dist/chunks/chunk-MPSB35QC.js +0 -36
- package/dist/chunks/chunk-MSHPJMZH.js +0 -111
- package/dist/chunks/chunk-MSPNPI73.js +0 -23
- package/dist/chunks/chunk-MSVXUE37.js +0 -161
- package/dist/chunks/chunk-MUB3U7J4.js +0 -149
- package/dist/chunks/chunk-MULT2WV2.js +0 -129
- package/dist/chunks/chunk-MWR2PW5Z.js +0 -564
- package/dist/chunks/chunk-MX6XBEB5.js +0 -91
- package/dist/chunks/chunk-MYP7PMFU.js +0 -261
- package/dist/chunks/chunk-MZFY26YI.js +0 -128
- package/dist/chunks/chunk-MZV6LKQK.js +0 -87
- package/dist/chunks/chunk-N2Q5S5AV.js +0 -345
- package/dist/chunks/chunk-N5DAHF7G.js +0 -103
- package/dist/chunks/chunk-N5KKULX6.js +0 -130
- package/dist/chunks/chunk-N63PUNE6.js +0 -261
- package/dist/chunks/chunk-N6YG3UHJ.js +0 -330
- package/dist/chunks/chunk-NA6AM2KB.js +0 -255
- package/dist/chunks/chunk-NAYYEK3U.js +0 -166
- package/dist/chunks/chunk-NBRSUPAS.js +0 -82
- package/dist/chunks/chunk-NCAK6G4F.js +0 -155
- package/dist/chunks/chunk-NFDVSIX2.js +0 -135
- package/dist/chunks/chunk-NIVVWPY5.js +0 -122
- package/dist/chunks/chunk-NJ2CK76F.js +0 -152
- package/dist/chunks/chunk-NK4V7T7C.js +0 -44
- package/dist/chunks/chunk-NMVAT5LP.js +0 -153
- package/dist/chunks/chunk-NNJ5IL6F.js +0 -103
- package/dist/chunks/chunk-NO2KLXDN.js +0 -108
- package/dist/chunks/chunk-NO5I5DK6.js +0 -169
- package/dist/chunks/chunk-NOTVCCCZ.js +0 -95
- package/dist/chunks/chunk-NPU7XOSG.js +0 -134
- package/dist/chunks/chunk-NQWVWH6D.js +0 -192
- package/dist/chunks/chunk-NRRHQ45H.js +0 -333
- package/dist/chunks/chunk-NSMERQO5.js +0 -78
- package/dist/chunks/chunk-NUE5VHJJ.js +0 -85
- package/dist/chunks/chunk-NUMUHHSN.js +0 -304
- package/dist/chunks/chunk-NWVBBARQ.js +0 -174
- package/dist/chunks/chunk-NZ43YYIG.js +0 -198
- package/dist/chunks/chunk-O2DQTWQA.js +0 -225
- package/dist/chunks/chunk-O3P273KX.js +0 -102
- package/dist/chunks/chunk-O4SOTKYL.js +0 -106
- package/dist/chunks/chunk-O5QPDWKV.js +0 -155
- package/dist/chunks/chunk-O7QR4CCZ.js +0 -23
- package/dist/chunks/chunk-OBPLDTUG.js +0 -55
- package/dist/chunks/chunk-OCP3CWBO.js +0 -108
- package/dist/chunks/chunk-OE4C6NC4.js +0 -145
- package/dist/chunks/chunk-OELSK4BF.js +0 -163
- package/dist/chunks/chunk-OFJD37NI.js +0 -105
- package/dist/chunks/chunk-OFO62YOH.js +0 -93
- package/dist/chunks/chunk-OGW6NFNI.js +0 -84
- package/dist/chunks/chunk-OH76T4CD.js +0 -97
- package/dist/chunks/chunk-OHZCHKLB.js +0 -157
- package/dist/chunks/chunk-OIRAGGZC.js +0 -136
- package/dist/chunks/chunk-OJ67EV4X.js +0 -189
- package/dist/chunks/chunk-OJODT4HL.js +0 -89
- package/dist/chunks/chunk-OMI4QH7F.js +0 -167
- package/dist/chunks/chunk-ONITBBLZ.js +0 -188
- package/dist/chunks/chunk-ONYSYKHQ.js +0 -119
- package/dist/chunks/chunk-OTFHMRHC.js +0 -152
- package/dist/chunks/chunk-OTTMTFU2.js +0 -173
- package/dist/chunks/chunk-OUO7SQNU.js +0 -105
- package/dist/chunks/chunk-OVDEQJP5.js +0 -139
- package/dist/chunks/chunk-OVSGK7IY.js +0 -115
- package/dist/chunks/chunk-OVUP6VYS.js +0 -305
- package/dist/chunks/chunk-OYK2PAKI.js +0 -156
- package/dist/chunks/chunk-OZJHS2NZ.js +0 -194
- package/dist/chunks/chunk-P4IAALK4.js +0 -23
- package/dist/chunks/chunk-P67IUC7G.js +0 -114
- package/dist/chunks/chunk-P6Z7STTM.js +0 -138
- package/dist/chunks/chunk-P7LCH4Q6.js +0 -149
- package/dist/chunks/chunk-P7TKHYFC.js +0 -153
- package/dist/chunks/chunk-PAN5CNMO.js +0 -23
- package/dist/chunks/chunk-PDJG3YOD.js +0 -92
- package/dist/chunks/chunk-PDREYVZ2.js +0 -336
- package/dist/chunks/chunk-PE2FC6BK.js +0 -152
- package/dist/chunks/chunk-PEXNP4OA.js +0 -130
- package/dist/chunks/chunk-PGB6AYOO.js +0 -238
- package/dist/chunks/chunk-PGSAB6S7.js +0 -110
- package/dist/chunks/chunk-PH4PSVET.js +0 -49
- package/dist/chunks/chunk-PIMXF247.js +0 -97
- package/dist/chunks/chunk-PMCXZPL3.js +0 -23
- package/dist/chunks/chunk-PNNPJM6F.js +0 -184
- package/dist/chunks/chunk-POG6FWNL.js +0 -215
- package/dist/chunks/chunk-PPC4HAMK.js +0 -23
- package/dist/chunks/chunk-PQ6IYRZK.js +0 -190
- package/dist/chunks/chunk-PQSZUHFC.js +0 -164
- package/dist/chunks/chunk-PSAGFU6Q.js +0 -198
- package/dist/chunks/chunk-PSW5LLKN.js +0 -33
- package/dist/chunks/chunk-PUIDRRR7.js +0 -218
- package/dist/chunks/chunk-PULX7G2V.js +0 -150
- package/dist/chunks/chunk-PVWIQ6SQ.js +0 -1266
- package/dist/chunks/chunk-PW7LN5MB.js +0 -87
- package/dist/chunks/chunk-PWJR5JRM.js +0 -36
- package/dist/chunks/chunk-PWNKCLF4.js +0 -127
- package/dist/chunks/chunk-PWYAIBIR.js +0 -304
- package/dist/chunks/chunk-Q22MANIU.js +0 -33
- package/dist/chunks/chunk-Q2KH47RA.js +0 -50
- package/dist/chunks/chunk-Q4ZDKXV5.js +0 -358
- package/dist/chunks/chunk-QB6JDZWT.js +0 -145
- package/dist/chunks/chunk-QCCQJ3VN.js +0 -170
- package/dist/chunks/chunk-QDRVOSDM.js +0 -77
- package/dist/chunks/chunk-QDVRQQCR.js +0 -121
- package/dist/chunks/chunk-QDVVYZKG.js +0 -100
- package/dist/chunks/chunk-QDYIYJXQ.js +0 -327
- package/dist/chunks/chunk-QEYMOYNX.js +0 -157
- package/dist/chunks/chunk-QHACWC4V.js +0 -103
- package/dist/chunks/chunk-QJPI4RLE.js +0 -187
- package/dist/chunks/chunk-QKPUTRVY.js +0 -41
- package/dist/chunks/chunk-QM6CDRKA.js +0 -66
- package/dist/chunks/chunk-QMUYUQRL.js +0 -123
- package/dist/chunks/chunk-QOMSXQJO.js +0 -1649
- package/dist/chunks/chunk-QS43QY44.js +0 -153
- package/dist/chunks/chunk-QSUBBUZY.js +0 -317
- package/dist/chunks/chunk-QSZXMQ56.js +0 -112
- package/dist/chunks/chunk-QTYYWPKH.js +0 -103
- package/dist/chunks/chunk-QUCDETJC.js +0 -159
- package/dist/chunks/chunk-QUSUWMPS.js +0 -159
- package/dist/chunks/chunk-QV7EQUQ7.js +0 -150
- package/dist/chunks/chunk-QWSMSXWV.js +0 -112
- package/dist/chunks/chunk-QXFSOKML.js +0 -23
- package/dist/chunks/chunk-QYNFD2NR.js +0 -60
- package/dist/chunks/chunk-R5OCZZID.js +0 -23
- package/dist/chunks/chunk-R5W6AP2S.js +0 -85
- package/dist/chunks/chunk-R6L6STWF.js +0 -45
- package/dist/chunks/chunk-R7IA7347.js +0 -11806
- package/dist/chunks/chunk-R7S3L5ZJ.js +0 -297
- package/dist/chunks/chunk-RAAJK3RZ.js +0 -877
- package/dist/chunks/chunk-RACVHFLU.js +0 -45
- package/dist/chunks/chunk-RBYESNG7.js +0 -119
- package/dist/chunks/chunk-RC3OQNV6.js +0 -94
- package/dist/chunks/chunk-RCCFOHQ4.js +0 -262
- package/dist/chunks/chunk-RDZB6H4S.js +0 -45
- package/dist/chunks/chunk-RF33G5J5.js +0 -213
- package/dist/chunks/chunk-RF7O6FK7.js +0 -632
- package/dist/chunks/chunk-RFOXHCIZ.js +0 -166
- package/dist/chunks/chunk-RFVDSBM4.js +0 -33
- package/dist/chunks/chunk-RGT5727A.js +0 -226
- package/dist/chunks/chunk-RJK7KNJF.js +0 -342
- package/dist/chunks/chunk-RKT3OM3G.js +0 -249
- package/dist/chunks/chunk-RM3DBF6C.js +0 -887
- package/dist/chunks/chunk-RM4VJZIY.js +0 -156
- package/dist/chunks/chunk-RMLMWFRT.js +0 -207
- package/dist/chunks/chunk-RQLZ3BGN.js +0 -45
- package/dist/chunks/chunk-RRHTIONH.js +0 -215
- package/dist/chunks/chunk-RRQHJSLU.js +0 -171
- package/dist/chunks/chunk-RRY426DS.js +0 -272
- package/dist/chunks/chunk-RXKFDGF2.js +0 -33
- package/dist/chunks/chunk-RZCO53GG.js +0 -52
- package/dist/chunks/chunk-S2BWFFVS.js +0 -80
- package/dist/chunks/chunk-S2EBZ6KM.js +0 -83
- package/dist/chunks/chunk-S2QZMHP2.js +0 -82
- package/dist/chunks/chunk-S2WM7CRJ.js +0 -45
- package/dist/chunks/chunk-S4543ASB.js +0 -172
- package/dist/chunks/chunk-S5AULSFY.js +0 -91
- package/dist/chunks/chunk-S5MG4DUD.js +0 -41
- package/dist/chunks/chunk-S6WCVASK.js +0 -87
- package/dist/chunks/chunk-SBJOCARO.js +0 -45
- package/dist/chunks/chunk-SF2SNRNO.js +0 -42
- package/dist/chunks/chunk-SFLOYGZM.js +0 -265
- package/dist/chunks/chunk-SGFDUNC3.js +0 -250
- package/dist/chunks/chunk-SICC453W.js +0 -89
- package/dist/chunks/chunk-SJDH7JPW.js +0 -96
- package/dist/chunks/chunk-SJPVRA7I.js +0 -90
- package/dist/chunks/chunk-SMJFCFGV.js +0 -55
- package/dist/chunks/chunk-SN56BMQH.js +0 -97
- package/dist/chunks/chunk-SN67AXU6.js +0 -315
- package/dist/chunks/chunk-SNFANI5V.js +0 -53
- package/dist/chunks/chunk-SOQBVZP6.js +0 -898
- package/dist/chunks/chunk-SQ3MOXRL.js +0 -273
- package/dist/chunks/chunk-SQ3WTKC2.js +0 -176
- package/dist/chunks/chunk-SRCJJKEA.js +0 -39
- package/dist/chunks/chunk-SVSI5F2F.js +0 -256
- package/dist/chunks/chunk-SXODBYHA.js +0 -159
- package/dist/chunks/chunk-SXVB5MIT.js +0 -117
- package/dist/chunks/chunk-SY2GM6S3.js +0 -90
- package/dist/chunks/chunk-SYDC3H44.js +0 -80
- package/dist/chunks/chunk-SZDHWUSZ.js +0 -88
- package/dist/chunks/chunk-SZVD5QFY.js +0 -147
- package/dist/chunks/chunk-T2AJV6J4.js +0 -83
- package/dist/chunks/chunk-T2GRHO6M.js +0 -102
- package/dist/chunks/chunk-T2HFBZWM.js +0 -311
- package/dist/chunks/chunk-T4YZFUXN.js +0 -182
- package/dist/chunks/chunk-T5F2YJOJ.js +0 -331
- package/dist/chunks/chunk-TAMGKTIJ.js +0 -164
- package/dist/chunks/chunk-TBRGDJL6.js +0 -86
- package/dist/chunks/chunk-TD6LAQBO.js +0 -154
- package/dist/chunks/chunk-TEIPZDLW.js +0 -204
- package/dist/chunks/chunk-TEUJMM3B.js +0 -368
- package/dist/chunks/chunk-TEWXAWB6.js +0 -192
- package/dist/chunks/chunk-TGURMGHP.js +0 -91
- package/dist/chunks/chunk-THNNRTQ4.js +0 -166
- package/dist/chunks/chunk-THZSTFMN.js +0 -106
- package/dist/chunks/chunk-TIEJDUHL.js +0 -185
- package/dist/chunks/chunk-TJNFPG2A.js +0 -102
- package/dist/chunks/chunk-TKASS4LY.js +0 -95
- package/dist/chunks/chunk-TLAPGPSX.js +0 -260
- package/dist/chunks/chunk-TPT2A73K.js +0 -258
- package/dist/chunks/chunk-TSBX7X3G.js +0 -303
- package/dist/chunks/chunk-TT6YVT4Z.js +0 -93
- package/dist/chunks/chunk-TXTZF6W4.js +0 -149
- package/dist/chunks/chunk-TXXICASN.js +0 -329
- package/dist/chunks/chunk-TYTX3B73.js +0 -81
- package/dist/chunks/chunk-TZVAAKYL.js +0 -46
- package/dist/chunks/chunk-TZZHMBDD.js +0 -154
- package/dist/chunks/chunk-U2ENIHUX.js +0 -76
- package/dist/chunks/chunk-U3ZT2VD4.js +0 -94
- package/dist/chunks/chunk-U4AAN7BS.js +0 -23
- package/dist/chunks/chunk-U5MC3QA3.js +0 -183
- package/dist/chunks/chunk-U6BJEIQP.js +0 -267
- package/dist/chunks/chunk-U6VHI6OH.js +0 -101
- package/dist/chunks/chunk-UBSY7DFF.js +0 -173
- package/dist/chunks/chunk-UCXVXXBG.js +0 -172
- package/dist/chunks/chunk-UDOGV76Y.js +0 -106
- package/dist/chunks/chunk-UDY3MLAZ.js +0 -124
- package/dist/chunks/chunk-UFH65KZI.js +0 -1393
- package/dist/chunks/chunk-UGVUKMNG.js +0 -274
- package/dist/chunks/chunk-UH5VSGA3.js +0 -1136
- package/dist/chunks/chunk-UIM2XET6.js +0 -260
- package/dist/chunks/chunk-UIWXIRRZ.js +0 -118
- package/dist/chunks/chunk-UIZNOAO4.js +0 -48
- package/dist/chunks/chunk-UNPW3UXC.js +0 -135
- package/dist/chunks/chunk-UPIAYACD.js +0 -53
- package/dist/chunks/chunk-UTRLOULL.js +0 -217
- package/dist/chunks/chunk-UTYCK652.js +0 -79
- package/dist/chunks/chunk-UWK4DADA.js +0 -147
- package/dist/chunks/chunk-UXC2PNCO.js +0 -55
- package/dist/chunks/chunk-UY6BUNGT.js +0 -33
- package/dist/chunks/chunk-V3N4OUHQ.js +0 -122
- package/dist/chunks/chunk-V534BI5Q.js +0 -287
- package/dist/chunks/chunk-V5CPTZAT.js +0 -100
- package/dist/chunks/chunk-V5NM5KTY.js +0 -128
- package/dist/chunks/chunk-VAIY2FY2.js +0 -134
- package/dist/chunks/chunk-VBM24EFF.js +0 -231
- package/dist/chunks/chunk-VC5RMGXC.js +0 -336
- package/dist/chunks/chunk-VCB4BNWN.js +0 -108
- package/dist/chunks/chunk-VE54GRQH.js +0 -250
- package/dist/chunks/chunk-VETXB6RM.js +0 -104
- package/dist/chunks/chunk-VFLJOFZZ.js +0 -424
- package/dist/chunks/chunk-VFM5V4Z3.js +0 -270
- package/dist/chunks/chunk-VGLBO4A4.js +0 -182
- package/dist/chunks/chunk-VGNHEFKY.js +0 -204
- package/dist/chunks/chunk-VI7W23WM.js +0 -277
- package/dist/chunks/chunk-VL7X2H7P.js +0 -172
- package/dist/chunks/chunk-VLU6TVTF.js +0 -51
- package/dist/chunks/chunk-VMTYPIUG.js +0 -104
- package/dist/chunks/chunk-VNB7JR2V.js +0 -123
- package/dist/chunks/chunk-VNGFYR6A.js +0 -391
- package/dist/chunks/chunk-VOBV7WFT.js +0 -95
- package/dist/chunks/chunk-VQHRKZZU.js +0 -100
- package/dist/chunks/chunk-VQR65YRR.js +0 -166
- package/dist/chunks/chunk-VQY2PF6O.js +0 -81
- package/dist/chunks/chunk-VS53WX7T.js +0 -101
- package/dist/chunks/chunk-VSWLSC6K.js +0 -282
- package/dist/chunks/chunk-VUFFLAWP.js +0 -172
- package/dist/chunks/chunk-VVBG4WNN.js +0 -199
- package/dist/chunks/chunk-VVS4ZQ7X.js +0 -130
- package/dist/chunks/chunk-VWDADJHC.js +0 -33
- package/dist/chunks/chunk-W3OKPZPN.js +0 -167
- package/dist/chunks/chunk-W5AHXXYK.js +0 -166
- package/dist/chunks/chunk-W5HDW2AI.js +0 -196
- package/dist/chunks/chunk-W5NLTWEG.js +0 -237
- package/dist/chunks/chunk-W5TKEG6G.js +0 -304
- package/dist/chunks/chunk-W5ZC3QXY.js +0 -1845
- package/dist/chunks/chunk-WBH7WTHV.js +0 -574
- package/dist/chunks/chunk-WC3H5XP3.js +0 -28
- package/dist/chunks/chunk-WCXDLKUP.js +0 -182
- package/dist/chunks/chunk-WD6LCUHI.js +0 -299
- package/dist/chunks/chunk-WDKS4Q4B.js +0 -122
- package/dist/chunks/chunk-WE74VG7G.js +0 -118
- package/dist/chunks/chunk-WHF5HVYJ.js +0 -145
- package/dist/chunks/chunk-WHXLS6MF.js +0 -33
- package/dist/chunks/chunk-WLVQE4VL.js +0 -158
- package/dist/chunks/chunk-WNJ43MJD.js +0 -312
- package/dist/chunks/chunk-WNKXEZVI.js +0 -151
- package/dist/chunks/chunk-WNMHTHQM.js +0 -358
- package/dist/chunks/chunk-WOWR2TVH.js +0 -298
- package/dist/chunks/chunk-WP4RX7T5.js +0 -138
- package/dist/chunks/chunk-WQVTBBXL.js +0 -251
- package/dist/chunks/chunk-WS76KAYF.js +0 -175
- package/dist/chunks/chunk-WSK2MP5Y.js +0 -197
- package/dist/chunks/chunk-WSZSCRCI.js +0 -141
- package/dist/chunks/chunk-WTQRSL65.js +0 -112
- package/dist/chunks/chunk-WUC767YJ.js +0 -127
- package/dist/chunks/chunk-WVAK7JCP.js +0 -270
- package/dist/chunks/chunk-WVJYGVES.js +0 -74
- package/dist/chunks/chunk-WVVD77J4.js +0 -179
- package/dist/chunks/chunk-WW3KMK5Z.js +0 -123
- package/dist/chunks/chunk-WYZMJSR4.js +0 -160
- package/dist/chunks/chunk-WZ7EJCW2.js +0 -104
- package/dist/chunks/chunk-X33WAEUJ.js +0 -118
- package/dist/chunks/chunk-X5AQIDE2.js +0 -156
- package/dist/chunks/chunk-XC5TR25N.js +0 -152
- package/dist/chunks/chunk-XDT4ITUB.js +0 -163
- package/dist/chunks/chunk-XG3ALKG2.js +0 -158
- package/dist/chunks/chunk-XGSBQUHC.js +0 -74
- package/dist/chunks/chunk-XH32W53D.js +0 -1307
- package/dist/chunks/chunk-XHNAOFWV.js +0 -33
- package/dist/chunks/chunk-XHRZ4JOB.js +0 -23
- package/dist/chunks/chunk-XHZQA2HB.js +0 -180
- package/dist/chunks/chunk-XI5FUBAQ.js +0 -651
- package/dist/chunks/chunk-XIJMDBQB.js +0 -79
- package/dist/chunks/chunk-XJ4IKSN2.js +0 -113
- package/dist/chunks/chunk-XJBGYILD.js +0 -99
- package/dist/chunks/chunk-XJZSDXEC.js +0 -97
- package/dist/chunks/chunk-XKFTMZO2.js +0 -155
- package/dist/chunks/chunk-XLB3EWLY.js +0 -97
- package/dist/chunks/chunk-XLUSU53J.js +0 -98
- package/dist/chunks/chunk-XM2W7YBY.js +0 -99
- package/dist/chunks/chunk-XMJESQG2.js +0 -224
- package/dist/chunks/chunk-XMRTIOEO.js +0 -33
- package/dist/chunks/chunk-XO3557DI.js +0 -152
- package/dist/chunks/chunk-XOZLK6DW.js +0 -92
- package/dist/chunks/chunk-XPRN7ZFT.js +0 -52
- package/dist/chunks/chunk-XQAZUIM3.js +0 -181
- package/dist/chunks/chunk-XT4Y4FUS.js +0 -685
- package/dist/chunks/chunk-XXGOWEOO.js +0 -120
- package/dist/chunks/chunk-Y3GGO4EO.js +0 -115
- package/dist/chunks/chunk-Y4BK2LWG.js +0 -197
- package/dist/chunks/chunk-YADEW6PA.js +0 -181
- package/dist/chunks/chunk-YBACAFRG.js +0 -23
- package/dist/chunks/chunk-YCVBO72U.js +0 -118
- package/dist/chunks/chunk-YCXTJOJ6.js +0 -33
- package/dist/chunks/chunk-YEOMPUVM.js +0 -146
- package/dist/chunks/chunk-YFYAVWRX.js +0 -261
- package/dist/chunks/chunk-YGLCZ3EJ.js +0 -260
- package/dist/chunks/chunk-YJYFWREA.js +0 -214
- package/dist/chunks/chunk-YKEIA4B6.js +0 -123
- package/dist/chunks/chunk-YL7UR6SQ.js +0 -133
- package/dist/chunks/chunk-YOG7PRIS.js +0 -90
- package/dist/chunks/chunk-YOKIINRU.js +0 -83
- package/dist/chunks/chunk-YPSMFMFY.js +0 -104
- package/dist/chunks/chunk-YPZFSYYF.js +0 -168
- package/dist/chunks/chunk-YQ6JTOJG.js +0 -293
- package/dist/chunks/chunk-YRVOJVEO.js +0 -75
- package/dist/chunks/chunk-YUVKXDSB.js +0 -93
- package/dist/chunks/chunk-YWGC64QH.js +0 -111
- package/dist/chunks/chunk-YWQVS363.js +0 -290
- package/dist/chunks/chunk-YZQV7SR5.js +0 -84
- package/dist/chunks/chunk-Z46HEUNT.js +0 -33
- package/dist/chunks/chunk-Z4UGPWPI.js +0 -229
- package/dist/chunks/chunk-Z7ALEKAF.js +0 -140
- package/dist/chunks/chunk-Z7PLG4EE.js +0 -90
- package/dist/chunks/chunk-ZAKBXIDX.js +0 -122
- package/dist/chunks/chunk-ZB5RFYBX.js +0 -115
- package/dist/chunks/chunk-ZBSFNT54.js +0 -102
- package/dist/chunks/chunk-ZDWOPCKZ.js +0 -150
- package/dist/chunks/chunk-ZEHR6WTK.js +0 -45
- package/dist/chunks/chunk-ZEJJPLNB.js +0 -69
- package/dist/chunks/chunk-ZEL3PEG5.js +0 -109
- package/dist/chunks/chunk-ZGDIS5FL.js +0 -97
- package/dist/chunks/chunk-ZHTEK2CJ.js +0 -33
- package/dist/chunks/chunk-ZJ5UMYA7.js +0 -161
- package/dist/chunks/chunk-ZJC7TOOQ.js +0 -41
- package/dist/chunks/chunk-ZJE4RQO2.js +0 -110
- package/dist/chunks/chunk-ZJH3RABK.js +0 -315
- package/dist/chunks/chunk-ZK7LWL3A.js +0 -626
- package/dist/chunks/chunk-ZMFWL54Z.js +0 -224
- package/dist/chunks/chunk-ZNCWMUQW.js +0 -87
- package/dist/chunks/chunk-ZPCWV6KC.js +0 -226
- package/dist/chunks/chunk-ZPKZRQXE.js +0 -45
- package/dist/chunks/chunk-ZPRRHPPV.js +0 -150
- package/dist/chunks/chunk-ZRSN4WGX.js +0 -147
- package/dist/chunks/chunk-ZY4NXOQ3.js +0 -961
- package/dist/chunks/chunk-ZY4RNFVT.js +0 -23
- package/dist/chunks/chunk-ZZGT53UI.js +0 -107
- package/dist/chunks/client-2HEZOM5I.js +0 -44
- package/dist/chunks/client-PM4VE3FO.js +0 -167
- package/dist/chunks/client-YZJYMQ2D.js +0 -31
- package/dist/chunks/client-actions-R5CL2RHR.js +0 -160
- package/dist/chunks/dangerous-YODZTOJG.js +0 -117
- package/dist/chunks/editor-seams-FQSYE6HQ.js +0 -161
- package/dist/chunks/editor-store-KJ3AIOPU.js +0 -139
- package/dist/chunks/export-MFXW233Y.js +0 -67
- package/dist/chunks/export-watermark-4IFE3L4K.js +0 -146
- package/dist/chunks/eyedropper-C5UHGUR7.js +0 -349
- package/dist/chunks/generate-media-KJZ7VHYQ.js +0 -253
- package/dist/chunks/host-PUTKYE2R.js +0 -171
- package/dist/chunks/integrations-AXAFDQBT.js +0 -115
- package/dist/chunks/kit-modules-6IOQJIEK.js +0 -18
- package/dist/chunks/libraries-G6WVELP7.js +0 -302
- package/dist/chunks/library-previews-2VGORSSU.js +0 -199
- package/dist/chunks/live-DXSEWNVA.js +0 -312
- package/dist/chunks/lottie-YCFQLOBY.js +0 -86
- package/dist/chunks/media-tool-K7HGCPXA.js +0 -332
- package/dist/chunks/new-file-KHJYOXLH.js +0 -129
- package/dist/chunks/page-thumbnails-NGBLARCZ.js +0 -137
- package/dist/chunks/pdf-E3BMX2WG.js +0 -1217
- package/dist/chunks/player-check-MP7S6J7X.js +0 -114
- package/dist/chunks/plugin-QW7XZQI4.js +0 -124
- package/dist/chunks/plugin-import-7FVQOCVU.js +0 -666
- package/dist/chunks/presence-NEF4UOQK.js +0 -127
- package/dist/chunks/preview-media-DU7U7PZH.js +0 -122
- package/dist/chunks/project-B3N2VRXF.js +0 -1653
- package/dist/chunks/publish-site-GWI7H5IU.js +0 -158
- package/dist/chunks/publish-store-4DJSJ6BH.js +0 -93
- package/dist/chunks/raster-actions-NFJCUMNQ.js +0 -229
- package/dist/chunks/reference-images-ZMMDYIQC.js +0 -62
- package/dist/chunks/resolvers-D4HAYQLE.js +0 -139
- package/dist/chunks/runner-CSW2Q53C.js +0 -1233
- package/dist/chunks/runtime-2S7AC64V.js +0 -32
- package/dist/chunks/shader-preview-YMF26YTT.js +0 -518
- package/dist/chunks/sites-NS663WRQ.js +0 -33
- package/dist/chunks/store-EKGSYCGL.js +0 -224
- package/dist/chunks/storefront-NCVPH27Q.js +0 -329
- package/dist/chunks/storefront-prepare-Y4SNFUE5.js +0 -33
- package/dist/chunks/svg-export-PUSTHART.js +0 -81
- package/dist/chunks/sync-WUFGCQPC.js +0 -153
- package/dist/chunks/tabs-LD5HEI5D.js +0 -311
- package/dist/chunks/team-KRB33NWX.js +0 -44
- package/dist/chunks/team-client-PD64YP6X.js +0 -157
- package/dist/chunks/templates-YFT6JJGD.js +0 -181
- package/dist/chunks/tools-MX42MEQX.js +0 -35
- package/dist/chunks/ui-commands-WFQWC656.js +0 -269
- package/dist/chunks/versions-JSAGYTWF.js +0 -311
- package/dist/chunks/video-LLS3JYU6.js +0 -75
- /package/dist/chunks/{chunk-4VAZPUKQ.js → chunk-5PSOLUKI.js} +0 -0
- /package/dist/chunks/{chunk-5RYYTRAQ.js → chunk-HENTV2KD.js} +0 -0
- /package/dist/chunks/{chunk-VCOQ4FKI.js → chunk-JIZTNKHY.js} +0 -0
|
@@ -0,0 +1,1653 @@
|
|
|
1
|
+
import { createRequire as __popcraftRequire } from 'node:module';
|
|
2
|
+
import { fileURLToPath as __popcraftPath } from 'node:url';
|
|
3
|
+
import { dirname as __popcraftDirname } from 'node:path';
|
|
4
|
+
const require = __popcraftRequire(import.meta.url);
|
|
5
|
+
const __filename = __popcraftPath(import.meta.url);
|
|
6
|
+
const __dirname = __popcraftDirname(__filename);
|
|
7
|
+
import {
|
|
8
|
+
bytesOf,
|
|
9
|
+
routeFile,
|
|
10
|
+
routeUp
|
|
11
|
+
} from "./chunk-ZFALJ2Y6.js";
|
|
12
|
+
import {
|
|
13
|
+
serializeHTML
|
|
14
|
+
} from "./chunk-4NPVL4BL.js";
|
|
15
|
+
import {
|
|
16
|
+
ASSET_DIR,
|
|
17
|
+
appAssetPaths,
|
|
18
|
+
externalizeBitmaps,
|
|
19
|
+
withAssetBase
|
|
20
|
+
} from "./chunk-CWE7VNSQ.js";
|
|
21
|
+
import {
|
|
22
|
+
componentName,
|
|
23
|
+
fileBase,
|
|
24
|
+
serializeReact,
|
|
25
|
+
withoutScreenIslands
|
|
26
|
+
} from "./chunk-ENA25RHE.js";
|
|
27
|
+
import "./chunk-5STBM3DT.js";
|
|
28
|
+
import {
|
|
29
|
+
fontFaceRules,
|
|
30
|
+
fontsURL
|
|
31
|
+
} from "./chunk-KBX6XBHO.js";
|
|
32
|
+
import {
|
|
33
|
+
escapeHTML,
|
|
34
|
+
tokensCSS
|
|
35
|
+
} from "./chunk-N42YJFOC.js";
|
|
36
|
+
import "./chunk-E5ADUDER.js";
|
|
37
|
+
import "./chunk-Y3UFFKMB.js";
|
|
38
|
+
import {
|
|
39
|
+
hrefOf,
|
|
40
|
+
opensNewTab
|
|
41
|
+
} from "./chunk-V6OEIHVT.js";
|
|
42
|
+
import "./chunk-II2HRRGK.js";
|
|
43
|
+
import {
|
|
44
|
+
usesSignIn
|
|
45
|
+
} from "./chunk-F5RHWEZF.js";
|
|
46
|
+
import "./chunk-NX52A7FG.js";
|
|
47
|
+
import "./chunk-HYO4HW5U.js";
|
|
48
|
+
import "./chunk-BYJORRKV.js";
|
|
49
|
+
import "./chunk-2ZBIYAVY.js";
|
|
50
|
+
import "./chunk-BMOIW4EK.js";
|
|
51
|
+
import "./chunk-BRLZFJJU.js";
|
|
52
|
+
import "./chunk-5YD4P6WO.js";
|
|
53
|
+
import "./chunk-THLMVVIT.js";
|
|
54
|
+
import "./chunk-EUAIH3EK.js";
|
|
55
|
+
import {
|
|
56
|
+
ITEM_RECORD,
|
|
57
|
+
copyRecord,
|
|
58
|
+
itemText,
|
|
59
|
+
layerId,
|
|
60
|
+
repeatRecords
|
|
61
|
+
} from "./chunk-4V23JBDL.js";
|
|
62
|
+
import {
|
|
63
|
+
SESSION_COOKIE,
|
|
64
|
+
USER_VARIABLES,
|
|
65
|
+
fieldKey,
|
|
66
|
+
visitorCollections
|
|
67
|
+
} from "./chunk-PKQGG3V6.js";
|
|
68
|
+
import "./chunk-AVWA3JAF.js";
|
|
69
|
+
import {
|
|
70
|
+
GOOGLE_FONTS,
|
|
71
|
+
NON_VARIABLE_FONTS
|
|
72
|
+
} from "./chunk-UBYSDAJE.js";
|
|
73
|
+
import "./chunk-SVJQJLCO.js";
|
|
74
|
+
import "./chunk-757XHU62.js";
|
|
75
|
+
import "./chunk-OPRSPQL6.js";
|
|
76
|
+
import "./chunk-QZWEMMEL.js";
|
|
77
|
+
import "./chunk-XDMQ6YHY.js";
|
|
78
|
+
import "./chunk-Q47DN67O.js";
|
|
79
|
+
import "./chunk-YQC2IVAU.js";
|
|
80
|
+
import "./chunk-EAVQBTTA.js";
|
|
81
|
+
import "./chunk-VDJPGIAE.js";
|
|
82
|
+
import "./chunk-Z73UNUL7.js";
|
|
83
|
+
import "./chunk-QLDV5WV5.js";
|
|
84
|
+
import {
|
|
85
|
+
getWorldTransform,
|
|
86
|
+
init_scene_graph,
|
|
87
|
+
uprightBounds
|
|
88
|
+
} from "./chunk-MQ66HDKC.js";
|
|
89
|
+
import "./chunk-N7XUSTLZ.js";
|
|
90
|
+
import "./chunk-XBVMM6ZD.js";
|
|
91
|
+
import "./chunk-5XSI3MNX.js";
|
|
92
|
+
import "./chunk-2LYY4KTS.js";
|
|
93
|
+
import "./chunk-SMR77HUB.js";
|
|
94
|
+
import "./chunk-2YBOCBPA.js";
|
|
95
|
+
import {
|
|
96
|
+
init_expressions,
|
|
97
|
+
parseExpression
|
|
98
|
+
} from "./chunk-FREAHUVP.js";
|
|
99
|
+
import "./chunk-PXXO7PQR.js";
|
|
100
|
+
import "./chunk-4VICNBUI.js";
|
|
101
|
+
import "./chunk-IPETYEVH.js";
|
|
102
|
+
import "./chunk-RW67KLLE.js";
|
|
103
|
+
import "./chunk-5X7A23T7.js";
|
|
104
|
+
import "./chunk-ONN5A5XM.js";
|
|
105
|
+
import "./chunk-EPG7TW6Z.js";
|
|
106
|
+
import "./chunk-NMFXCSU4.js";
|
|
107
|
+
import "./chunk-TSWHCDM7.js";
|
|
108
|
+
import "./chunk-CK43FENV.js";
|
|
109
|
+
import "./chunk-X53QDCNX.js";
|
|
110
|
+
import "./chunk-VBAS5IB5.js";
|
|
111
|
+
import "./chunk-CZXJDKOJ.js";
|
|
112
|
+
import {
|
|
113
|
+
init_define_POPCRAFT_COMPONENT_IDS
|
|
114
|
+
} from "./chunk-FFS4SO7R.js";
|
|
115
|
+
import "./chunk-LJSVREWM.js";
|
|
116
|
+
|
|
117
|
+
// lib/io/web/project/index.ts
|
|
118
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
119
|
+
|
|
120
|
+
// lib/io/web/project/build.ts
|
|
121
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
122
|
+
|
|
123
|
+
// lib/io/web/project/static.ts
|
|
124
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
125
|
+
|
|
126
|
+
// lib/site/live.ts
|
|
127
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
128
|
+
var HAS_ITEM = /\{\{\s*item[._]/;
|
|
129
|
+
function asRecords(doc, collectionId, rows) {
|
|
130
|
+
const collection = doc.collections?.[collectionId];
|
|
131
|
+
if (!collection) return [];
|
|
132
|
+
const made = (r) => new Date(r.createdAt).toLocaleDateString(void 0, { weekday: "short", day: "numeric", month: "short" });
|
|
133
|
+
return rows.map((r) => ({ id: r.id, collectionId, createdAt: r.createdAt, ...r.by !== void 0 ? { by: r.by } : {}, ...r.mine !== void 0 ? { mine: r.mine } : {}, values: Object.fromEntries(collection.fields.map((f) => {
|
|
134
|
+
const v = r.values[fieldKey(f.name)];
|
|
135
|
+
return [f.id, (v === null || v === void 0 || v === "") && f.type === "DATE" ? made(r) : v ?? void 0];
|
|
136
|
+
})) }));
|
|
137
|
+
}
|
|
138
|
+
function withVisitorRecords(site, collectionId, rows) {
|
|
139
|
+
const doc = site.program.document;
|
|
140
|
+
const collection = doc.collections?.[collectionId];
|
|
141
|
+
if (!collection) return site;
|
|
142
|
+
const records = asRecords(doc, collectionId, rows);
|
|
143
|
+
const samples = new Set(Object.values(doc.records ?? {}).filter((r) => r.collectionId === collectionId).map((r) => r.id));
|
|
144
|
+
const copyFor = (node, sample, record, above) => {
|
|
145
|
+
const id = node.id.split(`~${sample}`).join(`~${record.id}`);
|
|
146
|
+
const control = doc.nodes[layerId(node.id)]?.control;
|
|
147
|
+
const next = { ...node, id, children: node.children.map((c) => copyFor(c, sample, record, control)) };
|
|
148
|
+
if (next.tag === "button" && next.attrs?.value !== void 0 && control?.value && HAS_ITEM.test(control.value)) next.attrs = { ...next.attrs, value: itemText(control.value, collection, record) };
|
|
149
|
+
const starts = (control ?? above)?.value;
|
|
150
|
+
if (next.input && starts && HAS_ITEM.test(starts)) {
|
|
151
|
+
const value = itemText(starts, collection, record);
|
|
152
|
+
next.input = next.input.tag === "input" ? { ...next.input, attrs: { ...next.input.attrs, value } } : { ...next.input, value };
|
|
153
|
+
}
|
|
154
|
+
const written = doc.nodes[layerId(node.id)]?.characters;
|
|
155
|
+
if (next.text && written && HAS_ITEM.test(written)) {
|
|
156
|
+
next.text = { ...next.text, characters: itemText(written, collection, record) };
|
|
157
|
+
delete next.runs;
|
|
158
|
+
}
|
|
159
|
+
return next;
|
|
160
|
+
};
|
|
161
|
+
const others = Object.fromEntries(Object.entries(doc.records ?? {}).filter(([, r]) => r.collectionId !== collectionId));
|
|
162
|
+
const document = {
|
|
163
|
+
...doc,
|
|
164
|
+
records: { ...others, ...Object.fromEntries(records.map((r) => [r.id, r])) },
|
|
165
|
+
collections: { ...doc.collections, [collectionId]: { ...collection, order: records.map((r) => r.id) } }
|
|
166
|
+
};
|
|
167
|
+
const fill = (node) => {
|
|
168
|
+
const repeat = doc.nodes[layerId(node.id)]?.repeat;
|
|
169
|
+
if (repeat?.collectionId !== collectionId) return { ...node, children: node.children.map(fill) };
|
|
170
|
+
const first = node.children.map((c) => copyRecord(c.id)).find((r) => !!r && samples.has(r));
|
|
171
|
+
if (!first) return node;
|
|
172
|
+
const pattern = node.children.filter((c) => copyRecord(c.id) === first);
|
|
173
|
+
const kept = node.children.filter((c) => {
|
|
174
|
+
const r = copyRecord(c.id);
|
|
175
|
+
return !r || !samples.has(r);
|
|
176
|
+
});
|
|
177
|
+
const shown = repeatRecords(document, repeat);
|
|
178
|
+
return { ...node, children: [...kept, ...shown.flatMap((record) => pattern.map((c) => copyFor(c, first, record)))] };
|
|
179
|
+
};
|
|
180
|
+
return { ...site, pages: site.pages.map((p) => ({ ...p, tree: { ...p.tree, root: fill(p.tree.root) } })), program: { ...site.program, document } };
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
// lib/sites/data.ts
|
|
184
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
185
|
+
|
|
186
|
+
// lib/io/web/share.ts
|
|
187
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
188
|
+
function pageShareImage(site, page) {
|
|
189
|
+
if (page.shareImage) return { path: page.shareImage, width: 1200, height: 630 };
|
|
190
|
+
return site.share ? { path: site.share.image, width: site.share.width, height: site.share.height } : null;
|
|
191
|
+
}
|
|
192
|
+
var at = (origin, path) => `${origin ? origin.replace(/\/+$/, "") : ""}/${path.replace(/^\/+/, "")}`;
|
|
193
|
+
function shareMetaTags(site, page, opts = {}) {
|
|
194
|
+
const meta = (attr, key, value) => `<meta ${attr}="${key}" content="${escapeHTML(value)}" />`;
|
|
195
|
+
const image = pageShareImage(site, page);
|
|
196
|
+
return [
|
|
197
|
+
meta("property", "og:type", "website"),
|
|
198
|
+
meta("property", "og:site_name", site.name),
|
|
199
|
+
meta("property", "og:title", page.title),
|
|
200
|
+
...page.description ? [meta("property", "og:description", page.description)] : [],
|
|
201
|
+
...page.notFound ? [] : [meta("property", "og:url", at(opts.origin, page.route))],
|
|
202
|
+
...image ? [
|
|
203
|
+
meta("property", "og:image", at(opts.origin, image.path)),
|
|
204
|
+
meta("property", "og:image:width", String(image.width)),
|
|
205
|
+
meta("property", "og:image:height", String(image.height)),
|
|
206
|
+
meta("property", "og:image:alt", page.title)
|
|
207
|
+
] : [],
|
|
208
|
+
meta("name", "twitter:card", image ? "summary_large_image" : "summary"),
|
|
209
|
+
meta("name", "twitter:title", page.title),
|
|
210
|
+
...page.description ? [meta("name", "twitter:description", page.description)] : [],
|
|
211
|
+
...image ? [meta("name", "twitter:image", at(opts.origin, image.path))] : []
|
|
212
|
+
];
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
// lib/io/web/project/static.ts
|
|
216
|
+
function pageHTML(site, page, lang, lost = false, origin) {
|
|
217
|
+
const up = lost ? "/" : routeUp(page.route);
|
|
218
|
+
const fonts = fontsURL(site.fonts.filter((f) => !site.fontFaces?.some((s) => s.family === f.family)).map((f) => [f.family, f.weights]));
|
|
219
|
+
const rules = [
|
|
220
|
+
"html,body{margin:0;height:100%}#pc-root{min-height:100%;position:relative}*{box-sizing:border-box}",
|
|
221
|
+
// The file's own fonts, shipped in the site's fonts/ folder.
|
|
222
|
+
...fontFaceRules(site.fontFaces?.map((f) => ({ ...f, url: `${up}${f.url}` }))),
|
|
223
|
+
...site.tokens ? tokensCSS(site.tokens) : [],
|
|
224
|
+
...page.media ?? site.pages.find((p) => p.screen && p.screen === page.screen && p.media)?.media ?? []
|
|
225
|
+
];
|
|
226
|
+
const body = serializeHTML({ ...page.tree, root: withAssetBase(page.tree.root, up) }, { inline: true, ids: true });
|
|
227
|
+
const unseen = page.access === "signedIn" ? ' style="visibility:hidden"' : "";
|
|
228
|
+
return [
|
|
229
|
+
"<!DOCTYPE html>",
|
|
230
|
+
`<html lang="${escapeHTML(lang)}">`,
|
|
231
|
+
"<head>",
|
|
232
|
+
'<meta charset="utf-8" />',
|
|
233
|
+
'<meta name="viewport" content="width=device-width, initial-scale=1" />',
|
|
234
|
+
`<title>${escapeHTML(page.title)}</title>`,
|
|
235
|
+
...page.description ? [`<meta name="description" content="${escapeHTML(page.description)}" />`] : [],
|
|
236
|
+
...shareMetaTags(site, page, { origin }),
|
|
237
|
+
...fonts ? [`<link id="pc-fonts" rel="stylesheet" href="${escapeHTML(fonts)}" />`] : [],
|
|
238
|
+
`<style>
|
|
239
|
+
${rules.join("\n")}
|
|
240
|
+
</style>`,
|
|
241
|
+
"</head>",
|
|
242
|
+
"<body>",
|
|
243
|
+
`<div id="pc-root"${unseen}>
|
|
244
|
+
${body}
|
|
245
|
+
</div>`,
|
|
246
|
+
`<script src="${up}pc/site.js" data-site="${up}site.json" data-route="${lost ? "" : escapeHTML(page.route)}" data-start="${escapeHTML(page.id)}"></script>`,
|
|
247
|
+
"</body>",
|
|
248
|
+
"</html>",
|
|
249
|
+
""
|
|
250
|
+
].join("\n");
|
|
251
|
+
}
|
|
252
|
+
function staticSiteFiles(site, scripts, opts = {}) {
|
|
253
|
+
const lang = opts.lang ?? "en";
|
|
254
|
+
const files = externalizeBitmaps(site);
|
|
255
|
+
const taken = /* @__PURE__ */ new Set();
|
|
256
|
+
const still = visitorCollections(site.program.document.collections).reduce((s, c) => withVisitorRecords(s, c.id, []), site);
|
|
257
|
+
for (const page of still.pages) {
|
|
258
|
+
const path = page.notFound ? "404.html" : routeFile(page.route);
|
|
259
|
+
if (taken.has(path)) continue;
|
|
260
|
+
taken.add(path);
|
|
261
|
+
files.push({ path, content: pageHTML(still, page, lang, !!page.notFound, opts.origin) });
|
|
262
|
+
}
|
|
263
|
+
files.push({ path: "site.json", content: JSON.stringify(site) });
|
|
264
|
+
files.push({ path: "pc/site.js", content: scripts.site });
|
|
265
|
+
if (site.islands && scripts.island) files.push({ path: "pc/island.js", content: scripts.island });
|
|
266
|
+
if (site.code && scripts.code) files.push({ path: "pc/code.js", content: scripts.code });
|
|
267
|
+
return files;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
// lib/io/web/project/next.ts
|
|
271
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
272
|
+
|
|
273
|
+
// lib/io/web/project/behaviour.ts
|
|
274
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
275
|
+
init_expressions();
|
|
276
|
+
var identFor = (name) => {
|
|
277
|
+
const last = name.split("/").pop().replace(/[^A-Za-z0-9]+(.)?/g, (_m, c) => c ? c.toUpperCase() : "");
|
|
278
|
+
const id = last.charAt(0).toLowerCase() + last.slice(1);
|
|
279
|
+
return /^[A-Za-z_$]/.test(id) && !RESERVED.has(id) ? id : `v${id.charAt(0).toUpperCase()}${id.slice(1)}`;
|
|
280
|
+
};
|
|
281
|
+
var RESERVED = /* @__PURE__ */ new Set(["break", "case", "catch", "class", "const", "continue", "default", "delete", "do", "else", "export", "extends", "false", "finally", "for", "function", "if", "import", "in", "instanceof", "new", "null", "return", "super", "switch", "this", "throw", "true", "try", "typeof", "var", "void", "while", "with", "let", "static", "yield", "await", "set", "v"]);
|
|
282
|
+
var TS_TYPE = { BOOLEAN: "boolean", FLOAT: "number", STRING: "string", COLOR: "string" };
|
|
283
|
+
var DATA_FUNCTIONS = /* @__PURE__ */ new Set(["count", "sum", "distinct", "best", "countSince", "sumSince", "countOn", "streak"]);
|
|
284
|
+
var STYLE_PROPS = {
|
|
285
|
+
opacity: (e) => ["opacity", e],
|
|
286
|
+
width: (e) => ["width", `\`\${${e}}px\``],
|
|
287
|
+
height: (e) => ["height", `\`\${${e}}px\``],
|
|
288
|
+
rotation: (e) => ["rotate", `\`\${${e}}deg\``],
|
|
289
|
+
cornerRadius: (e) => ["borderRadius", `\`\${${e}}px\``]
|
|
290
|
+
};
|
|
291
|
+
function behaviourOf(site) {
|
|
292
|
+
const doc = site.program?.document ?? { nodes: {} };
|
|
293
|
+
const vars = Object.values(doc.variables ?? {});
|
|
294
|
+
const taken = /* @__PURE__ */ new Set();
|
|
295
|
+
const variables = vars.map((v) => {
|
|
296
|
+
let ident = identFor(v.name);
|
|
297
|
+
for (let n = 2; taken.has(ident); n++) ident = `${identFor(v.name)}${n}`;
|
|
298
|
+
taken.add(ident);
|
|
299
|
+
const coll = doc.variableCollections?.[v.variableCollectionId];
|
|
300
|
+
const raw = v.valuesByMode[coll?.defaultModeId ?? Object.keys(v.valuesByMode)[0]];
|
|
301
|
+
const type = TS_TYPE[v.type] ?? "string";
|
|
302
|
+
const initial = type === "boolean" ? String(!!raw) : type === "number" ? String(Number(raw) || 0) : JSON.stringify(typeof raw === "string" ? raw : raw && typeof raw === "object" && "r" in raw ? colorHex(raw) : "");
|
|
303
|
+
return { id: v.id, name: v.name, ident, type, initial };
|
|
304
|
+
});
|
|
305
|
+
const byId = new Map(variables.map((v) => [v.id, v]));
|
|
306
|
+
const byFull = new Map(variables.map((v) => [v.name, v]));
|
|
307
|
+
const short = /* @__PURE__ */ new Map();
|
|
308
|
+
for (const v of variables) {
|
|
309
|
+
const last = v.name.split("/").pop();
|
|
310
|
+
short.set(last, short.has(last) ? null : v);
|
|
311
|
+
}
|
|
312
|
+
const find = (name) => byFull.get(name) ?? short.get(name) ?? void 0;
|
|
313
|
+
const overlays = /* @__PURE__ */ new Set();
|
|
314
|
+
const missingByScreen = /* @__PURE__ */ new Map();
|
|
315
|
+
const screenOf = (id) => {
|
|
316
|
+
let at2 = id;
|
|
317
|
+
while (at2) {
|
|
318
|
+
const n = doc.nodes[at2];
|
|
319
|
+
if (!n) return null;
|
|
320
|
+
if (doc.nodes[n.parentId ?? ""]?.type === "PAGE") return at2;
|
|
321
|
+
at2 = n.parentId;
|
|
322
|
+
}
|
|
323
|
+
return null;
|
|
324
|
+
};
|
|
325
|
+
const miss = (nodeId, what) => {
|
|
326
|
+
const s = screenOf(nodeId);
|
|
327
|
+
if (s) (missingByScreen.get(s) ?? missingByScreen.set(s, /* @__PURE__ */ new Set()).get(s)).add(what);
|
|
328
|
+
};
|
|
329
|
+
let inItem = false;
|
|
330
|
+
const within = (webId, f) => {
|
|
331
|
+
const was = inItem;
|
|
332
|
+
inItem = webId.includes(`~${ITEM_RECORD}`);
|
|
333
|
+
try {
|
|
334
|
+
return f();
|
|
335
|
+
} finally {
|
|
336
|
+
inItem = was;
|
|
337
|
+
}
|
|
338
|
+
};
|
|
339
|
+
const expr = (src, o = {}) => {
|
|
340
|
+
let tree;
|
|
341
|
+
try {
|
|
342
|
+
tree = parseExpression(src, (name) => byFull.has(name));
|
|
343
|
+
} catch {
|
|
344
|
+
return null;
|
|
345
|
+
}
|
|
346
|
+
const go = (n) => {
|
|
347
|
+
switch (n.k) {
|
|
348
|
+
case "lit":
|
|
349
|
+
return JSON.stringify(n.v);
|
|
350
|
+
case "key":
|
|
351
|
+
return o.key ?? '""';
|
|
352
|
+
case "var": {
|
|
353
|
+
const field = inItem ? /^item[._](.+)$/.exec(n.name)?.[1] : void 0;
|
|
354
|
+
if (field) return `itemField(item, ${JSON.stringify(field)})`;
|
|
355
|
+
const v = find(n.name);
|
|
356
|
+
if (!v && inItem) return `itemField(item, ${JSON.stringify(n.name)})`;
|
|
357
|
+
if (!v) {
|
|
358
|
+
if (o.at) miss(o.at, `the value "${n.name}"`);
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
361
|
+
return `v.${v.ident}`;
|
|
362
|
+
}
|
|
363
|
+
case "un": {
|
|
364
|
+
const a = go(n.a);
|
|
365
|
+
return a === null ? null : n.op === "-" ? `ops.neg(${a})` : `ops.not(${a})`;
|
|
366
|
+
}
|
|
367
|
+
case "if": {
|
|
368
|
+
const c = go(n.c), a = go(n.a), b = go(n.b);
|
|
369
|
+
return c === null || a === null || b === null ? null : `(truthy(${c}) ? ${a} : ${b})`;
|
|
370
|
+
}
|
|
371
|
+
case "call": {
|
|
372
|
+
const args = n.args.map(go);
|
|
373
|
+
if (args.some((a) => a === null)) return null;
|
|
374
|
+
const over = DATA_FUNCTIONS.has(n.fn) && collections.length ? "site.call" : "call";
|
|
375
|
+
return `${over}(${JSON.stringify(n.fn)}${args.map((a) => `, ${a}`).join("")})`;
|
|
376
|
+
}
|
|
377
|
+
case "bin": {
|
|
378
|
+
const a = go(n.a), b = go(n.b);
|
|
379
|
+
if (a === null || b === null) return null;
|
|
380
|
+
if (n.op === "&&") return `(truthy(${a}) ? ${b} : ${a})`;
|
|
381
|
+
if (n.op === "||") return `(truthy(${a}) ? ${a} : ${b})`;
|
|
382
|
+
const op = { "+": "add", "-": "sub", "*": "mul", "/": "div", "%": "mod", "<": "lt", "<=": "le", ">": "gt", ">=": "ge", "==": "eq", "!=": "ne" }[n.op];
|
|
383
|
+
return op ? `ops.${op}(${a}, ${b})` : null;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
return null;
|
|
387
|
+
};
|
|
388
|
+
return go(tree);
|
|
389
|
+
};
|
|
390
|
+
const routeOf = (screenId) => screenId ? site.pages.find((p) => p.id === screenId && !p.record)?.route ?? null : null;
|
|
391
|
+
const setter = (a, key, at2) => {
|
|
392
|
+
const v = a.variableId ? byId.get(a.variableId) : void 0;
|
|
393
|
+
if (!v) return null;
|
|
394
|
+
if (a.variableToggle) return `set(${JSON.stringify(v.ident)}, !v.${v.ident})`;
|
|
395
|
+
if (a.variableExpression?.trim()) {
|
|
396
|
+
const e = expr(a.variableExpression, { key, at: at2 });
|
|
397
|
+
if (e === null) return null;
|
|
398
|
+
const coerce = v.type === "number" ? `num(${e})` : v.type === "boolean" ? `truthy(${e})` : `exprText(${e})`;
|
|
399
|
+
return `set(${JSON.stringify(v.ident)}, ${coerce})`;
|
|
400
|
+
}
|
|
401
|
+
const raw = a.variableValue;
|
|
402
|
+
const literal = v.type === "number" ? String(Number(raw) || 0) : v.type === "boolean" ? String(raw === true || raw === "true") : JSON.stringify(typeof raw === "string" ? raw : raw == null ? "" : String(raw));
|
|
403
|
+
return `set(${JSON.stringify(v.ident)}, ${literal})`;
|
|
404
|
+
};
|
|
405
|
+
const statements = (a, at2, key, changeTo) => {
|
|
406
|
+
switch (a.navigationType) {
|
|
407
|
+
case "NAVIGATE": {
|
|
408
|
+
const r = routeOf(a.destinationId);
|
|
409
|
+
if (r) return [`router.push(${JSON.stringify(r)})`];
|
|
410
|
+
miss(at2, "a go to a frame that is not one of the pages");
|
|
411
|
+
return [];
|
|
412
|
+
}
|
|
413
|
+
case "BACK":
|
|
414
|
+
return ["router.back()"];
|
|
415
|
+
case "OPEN_URL": {
|
|
416
|
+
const link = a.link;
|
|
417
|
+
if (!link) return [];
|
|
418
|
+
if (link.kind === "screen") return statements({ ...a, navigationType: "NAVIGATE", destinationId: link.frameId }, at2, key);
|
|
419
|
+
if (link.kind === "anchor") return statements({ ...a, navigationType: "SCROLL_TO", destinationId: link.nodeId }, at2, key);
|
|
420
|
+
const href = hrefOf(link, doc.nodes);
|
|
421
|
+
return href ? [opensNewTab(link) ? `window.open(${JSON.stringify(href)}, '_blank', 'noopener')` : `window.location.assign(${JSON.stringify(href)})`] : [];
|
|
422
|
+
}
|
|
423
|
+
case "SCROLL_TO":
|
|
424
|
+
return a.destinationId ? [`document.querySelector(${JSON.stringify(`[data-pc-id="${a.destinationId}"]`)})?.scrollIntoView({ behavior: 'smooth' })`] : [];
|
|
425
|
+
case "SET_VARIABLE": {
|
|
426
|
+
const s = setter(a, key, at2);
|
|
427
|
+
if (s) return [s];
|
|
428
|
+
miss(at2, "a Set variable");
|
|
429
|
+
return [];
|
|
430
|
+
}
|
|
431
|
+
case "CONDITIONAL": {
|
|
432
|
+
const out = [];
|
|
433
|
+
(a.branches ?? []).forEach((b, i) => {
|
|
434
|
+
const body = b.actions.flatMap((x) => statements(x, at2, key, changeTo));
|
|
435
|
+
const cond = b.condition?.trim() ? expr(b.condition, { key, at: at2 }) : null;
|
|
436
|
+
if (b.condition?.trim() && cond === null) return;
|
|
437
|
+
const head = !b.condition?.trim() ? i ? "else" : "" : `${i ? "else " : ""}if (truthy(${cond}))`;
|
|
438
|
+
out.push(`${head}${head ? " " : ""}{ ${body.join("; ")} }`);
|
|
439
|
+
});
|
|
440
|
+
return out.length ? [out.join(" ")] : [];
|
|
441
|
+
}
|
|
442
|
+
case "OVERLAY":
|
|
443
|
+
case "SWAP": {
|
|
444
|
+
if (!routeOf(a.destinationId)) {
|
|
445
|
+
miss(at2, "an overlay of a frame that is not one of the pages");
|
|
446
|
+
return [];
|
|
447
|
+
}
|
|
448
|
+
overlays.add(a.destinationId);
|
|
449
|
+
const bg = a.overlayBackground;
|
|
450
|
+
const opts = [`position: ${JSON.stringify(a.overlayPosition ?? "CENTER")}`, ...bg ? [`dim: ${JSON.stringify(`rgba(${Math.round(bg.color.r * 255)}, ${Math.round(bg.color.g * 255)}, ${Math.round(bg.color.b * 255)}, ${bg.opacity})`)}`] : [], ...a.closeOnOutsideClick ? ["closeOnOutside: true"] : [], ...a.overlayOffset ? [`offset: ${JSON.stringify(a.overlayOffset)}`] : []];
|
|
451
|
+
return [`overlays.${a.navigationType === "SWAP" ? "swap" : "open"}(${JSON.stringify(a.destinationId)}, { ${opts.join(", ")} })`];
|
|
452
|
+
}
|
|
453
|
+
case "CLOSE":
|
|
454
|
+
return ["overlays.close()"];
|
|
455
|
+
case "SET_MODE": {
|
|
456
|
+
const c = site.tokens?.collections.find((x) => x.id === a.collectionId);
|
|
457
|
+
if (!c || !a.modeId) {
|
|
458
|
+
miss(at2, "a Set mode");
|
|
459
|
+
return [];
|
|
460
|
+
}
|
|
461
|
+
const classes = c.modes.map((m) => m.id === c.defaultMode ? "" : m.className);
|
|
462
|
+
const to = a.modeId === "__NEXT__" ? "__NEXT__" : c.modes.find((m) => m.id === a.modeId)?.id === c.defaultMode ? "" : c.modes.find((m) => m.id === a.modeId)?.className ?? "";
|
|
463
|
+
return [`switchMode(document.documentElement, ${JSON.stringify(classes)}, ${JSON.stringify(to)})`];
|
|
464
|
+
}
|
|
465
|
+
case "TIMELINE": {
|
|
466
|
+
const t = a.timeline;
|
|
467
|
+
if (!t || t.op === "SCRUB") return [];
|
|
468
|
+
const screen = screenOf(at2);
|
|
469
|
+
const markers = site.pages.find((p) => p.id === screen)?.timeline?.stops ?? [];
|
|
470
|
+
const root = t.target === "INSTANCE" ? hostOf(at2) : screen;
|
|
471
|
+
return [`controlTimeline(document.querySelector(${JSON.stringify(`[data-pc-id="${root}"]`)}), ${JSON.stringify(t)}, ${JSON.stringify(markers)})`];
|
|
472
|
+
}
|
|
473
|
+
// On a component itself (a sheet that shows the masters) there is no instance to change: nothing to carry.
|
|
474
|
+
case "CHANGE_TO": {
|
|
475
|
+
const st = changeTo && a.destinationId ? changeTo(a.destinationId, a.targetId) : null;
|
|
476
|
+
if (st) return [st];
|
|
477
|
+
if (doc.nodes[at2]?.type !== "COMPONENT" && doc.nodes[at2]?.type !== "COMPONENT_SET") miss(at2, "a Change to whose instance is not on this page");
|
|
478
|
+
return [];
|
|
479
|
+
}
|
|
480
|
+
default:
|
|
481
|
+
miss(at2, { CHANGE_TO: "component variants" }[a.navigationType] ?? a.navigationType);
|
|
482
|
+
return [];
|
|
483
|
+
}
|
|
484
|
+
};
|
|
485
|
+
const interactionsOf = (id) => doc.nodes[id]?.interactions ?? [];
|
|
486
|
+
const hostOf = (id) => {
|
|
487
|
+
let at2 = id;
|
|
488
|
+
while (at2) {
|
|
489
|
+
if (doc.nodes[at2]?.type === "INSTANCE") return at2;
|
|
490
|
+
at2 = doc.nodes[at2]?.parentId;
|
|
491
|
+
}
|
|
492
|
+
return id;
|
|
493
|
+
};
|
|
494
|
+
const EVENT = { ON_CLICK: "onClick", MOUSE_ENTER: "onMouseEnter", MOUSE_LEAVE: "onMouseLeave", ON_PRESS: "onPointerDown" };
|
|
495
|
+
const nodeBindings = (id) => {
|
|
496
|
+
const n = doc.nodes[id];
|
|
497
|
+
if (!n) return null;
|
|
498
|
+
const out = { style: {} };
|
|
499
|
+
const take = (prop, e) => {
|
|
500
|
+
if (e === null) return;
|
|
501
|
+
if (prop === "characters") out.text = `exprText(${e})`;
|
|
502
|
+
else if (prop === "visible") out.visible = `truthy(${e})`;
|
|
503
|
+
else if (STYLE_PROPS[prop]) {
|
|
504
|
+
const [k, val] = STYLE_PROPS[prop](`num(${e})`);
|
|
505
|
+
out.style[k] = val;
|
|
506
|
+
}
|
|
507
|
+
};
|
|
508
|
+
for (const [prop, vid] of Object.entries(n.boundVariables ?? {})) {
|
|
509
|
+
const v = byId.get(vid);
|
|
510
|
+
if (v) take(prop, `v.${v.ident}`);
|
|
511
|
+
}
|
|
512
|
+
for (const [prop, src] of Object.entries(n.boundExpressions ?? {})) take(prop, expr(src, { at: id }));
|
|
513
|
+
return out.text || out.visible || Object.keys(out.style).length ? out : null;
|
|
514
|
+
};
|
|
515
|
+
const controlOf = (id) => doc.nodes[id]?.control;
|
|
516
|
+
const isForm = (id) => controlOf(id)?.kind === "FORM";
|
|
517
|
+
const formIds = Object.keys(doc.nodes ?? {}).filter(isForm);
|
|
518
|
+
const collections = visitorCollections(doc.collections);
|
|
519
|
+
const access = Object.fromEntries(site.pages.filter((p) => p.access && !p.notFound).map((p) => [p.route, p.access]));
|
|
520
|
+
const signIn = usesSignIn({ ...doc, nodes: doc.nodes ?? {} }) || Object.keys(access).length > 0;
|
|
521
|
+
const server = formIds.length || signIn || collections.length ? {
|
|
522
|
+
forms: formIds,
|
|
523
|
+
collections: collections.map((c) => ({ id: c.id, name: c.name, fields: c.fields.map((f) => ({ id: f.id, name: f.name, type: f.type, ...f.options ? { options: f.options } : {} })), ...c.perVisitor ? { perVisitor: true } : {}, ...c.shared ? { shared: true } : {} })),
|
|
524
|
+
signIn,
|
|
525
|
+
user: Object.fromEntries(Object.keys(USER_VARIABLES).map((k) => [k, byFull.get(USER_VARIABLES[k])]).filter(([, v]) => v)),
|
|
526
|
+
counts: collections.flatMap((c) => {
|
|
527
|
+
const v = byFull.get(`data/${fieldKey(c.name)}Count`);
|
|
528
|
+
return v && v.type === "number" ? [{ collection: c.id, variable: v }] : [];
|
|
529
|
+
}),
|
|
530
|
+
access,
|
|
531
|
+
redirect: {
|
|
532
|
+
signedOut: site.pages.find((p) => p.access === "signedOut" && !p.notFound)?.route ?? site.pages.find((p) => !p.access && !p.notFound)?.route ?? "/",
|
|
533
|
+
signedIn: site.pages.find((p) => p.access === "signedIn" && !p.notFound)?.route ?? site.pages.find((p) => !p.access && !p.notFound)?.route ?? "/"
|
|
534
|
+
}
|
|
535
|
+
} : null;
|
|
536
|
+
const under = (rootId) => {
|
|
537
|
+
const out = [];
|
|
538
|
+
const walk = (id) => {
|
|
539
|
+
out.push(id);
|
|
540
|
+
for (const c of doc.nodes[id]?.childIds ?? []) walk(c);
|
|
541
|
+
};
|
|
542
|
+
walk(rootId);
|
|
543
|
+
return out;
|
|
544
|
+
};
|
|
545
|
+
for (const id of Object.keys(doc.nodes ?? {})) for (const ix of interactionsOf(id)) statements(ix.action, id);
|
|
546
|
+
for (const id of formIds) {
|
|
547
|
+
const after = controlOf(id)?.onSubmit;
|
|
548
|
+
if (after) statements(after, id);
|
|
549
|
+
}
|
|
550
|
+
missingByScreen.clear();
|
|
551
|
+
return {
|
|
552
|
+
variables,
|
|
553
|
+
overlays,
|
|
554
|
+
server,
|
|
555
|
+
live: (rootId) => under(layerId(rootId)).some((id) => nodeBindings(id) || interactionsOf(id).length || isForm(id)),
|
|
556
|
+
bindings: (webId) => within(webId, () => nodeBindings(layerId(webId).split("::").pop())),
|
|
557
|
+
events: (webId, o = {}) => within(webId, () => {
|
|
558
|
+
const id = layerId(webId).split("::").pop();
|
|
559
|
+
const out = {};
|
|
560
|
+
const control = controlOf(id);
|
|
561
|
+
if (control?.kind === "FORM") {
|
|
562
|
+
const after = control.onSubmit ? statements(control.onSubmit, id, void 0, o.changeTo) : [];
|
|
563
|
+
const record = copyRecord(webId);
|
|
564
|
+
const form = { id, name: doc.nodes[id]?.name ?? id, ...control.formAction ? { action: control.formAction } : {}, ...control.collectionId ? { collectionId: control.collectionId } : {}, ...record ? { record } : {} };
|
|
565
|
+
out.onSubmit = `async (e) => { e.preventDefault(); if (await site.submit(e.currentTarget, (e.nativeEvent as SubmitEvent).submitter, ${JSON.stringify(form)})) { ${after.join("; ")} } }`;
|
|
566
|
+
}
|
|
567
|
+
const add = (prop, body) => {
|
|
568
|
+
if (body.length) out[prop] = `${out[prop] ? `${out[prop].slice(0, -2)}; ` : `(${body.some((b) => /\be\./.test(b)) ? "e" : ""}) => { `}${body.join("; ")} }`;
|
|
569
|
+
};
|
|
570
|
+
const own = interactionsOf(id).map((ix) => ({ ix, at: id }));
|
|
571
|
+
const fromVariant = o.variant ? interactionsOf(o.variant).map((ix) => ({ ix, at: o.variant })) : [];
|
|
572
|
+
for (const { ix, at: at2 } of [...own, ...fromVariant]) {
|
|
573
|
+
const body = statements(ix.action, at2, void 0, o.changeTo);
|
|
574
|
+
if (ix.action.navigationType === "CHANGE_TO" && o.variant && o.changeTo && (ix.trigger === "ON_HOVER" || ix.trigger === "ON_PRESS")) {
|
|
575
|
+
const [enter, leave] = ix.trigger === "ON_HOVER" ? ["onMouseEnter", "onMouseLeave"] : ["onPointerDown", "onPointerUp"];
|
|
576
|
+
add(enter, body);
|
|
577
|
+
const back = o.changeTo(o.variant);
|
|
578
|
+
if (back) add(leave, [back]);
|
|
579
|
+
continue;
|
|
580
|
+
}
|
|
581
|
+
if (ix.trigger === "ON_DRAG" || ix.action.navigationType === "ORBIT_3D") {
|
|
582
|
+
const a = ix.action;
|
|
583
|
+
if (a.navigationType === "ORBIT_3D") {
|
|
584
|
+
add("onPointerDown", [`orbitDrag(e.nativeEvent, document.querySelector<HTMLElement>(${JSON.stringify(`[data-pc-id="${a.destinationId ?? at2}"]`)}), ${JSON.stringify(a.orbit ?? {})})`]);
|
|
585
|
+
continue;
|
|
586
|
+
}
|
|
587
|
+
if (a.navigationType === "TIMELINE" && a.timeline?.op === "SCRUB") {
|
|
588
|
+
const screen = screenOf(at2);
|
|
589
|
+
const markers = site.pages.find((p) => p.id === screen)?.timeline?.stops ?? [];
|
|
590
|
+
add("onPointerDown", [`scrubTimeline(e.nativeEvent, document.querySelector(${JSON.stringify(`[data-pc-id="${a.timeline.target === "INSTANCE" ? hostOf(at2) : screen}"]`)}), ${JSON.stringify(a.timeline)}, ${JSON.stringify(markers)})`]);
|
|
591
|
+
continue;
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
const prop = EVENT[ix.trigger];
|
|
595
|
+
if (prop) add(prop, body);
|
|
596
|
+
}
|
|
597
|
+
return out;
|
|
598
|
+
}),
|
|
599
|
+
effects: (screenId) => {
|
|
600
|
+
const out = [];
|
|
601
|
+
for (const id of under(screenId)) for (const ix of interactionsOf(id)) {
|
|
602
|
+
if (ix.trigger === "AFTER_TIMEOUT") {
|
|
603
|
+
const body = statements(ix.action, id);
|
|
604
|
+
if (body.length) out.push(`const t${out.length} = window.setTimeout(() => { ${body.join("; ")} }, ${Math.max(0, ix.triggerDelay ?? 0)}); return () => window.clearTimeout(t${out.length})`);
|
|
605
|
+
}
|
|
606
|
+
if (ix.trigger === "KEY_DOWN") {
|
|
607
|
+
const key = ix.triggerKey;
|
|
608
|
+
const body = statements(ix.action, id, "e.key");
|
|
609
|
+
if (body.length) out.push(`const k${out.length} = (e: KeyboardEvent) => { ${key ? `if (e.key !== ${JSON.stringify(key)}) return; ` : ""}${body.join("; ")} }; window.addEventListener('keydown', k${out.length}); return () => window.removeEventListener('keydown', k${out.length})`);
|
|
610
|
+
}
|
|
611
|
+
}
|
|
612
|
+
return out;
|
|
613
|
+
},
|
|
614
|
+
missing: (rootId) => [...missingByScreen.get(layerId(rootId)) ?? []],
|
|
615
|
+
itemExpression: (src) => within(`~${ITEM_RECORD}`, () => expr(src))
|
|
616
|
+
};
|
|
617
|
+
}
|
|
618
|
+
function colorHex(c) {
|
|
619
|
+
const h = (x) => Math.round(Math.max(0, Math.min(1, x)) * 255).toString(16).padStart(2, "0");
|
|
620
|
+
return `#${h(c.r)}${h(c.g)}${h(c.b)}${c.a !== void 0 && c.a < 1 ? h(c.a) : ""}`;
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
// lib/io/web/project/server.ts
|
|
624
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
625
|
+
var lines = (...l) => `${l.filter((x) => typeof x === "string").join("\n")}
|
|
626
|
+
`;
|
|
627
|
+
function as(v, value, from) {
|
|
628
|
+
if (v.type === from) return value;
|
|
629
|
+
if (v.type === "boolean") return `!!${value}`;
|
|
630
|
+
if (v.type === "number") return from === "boolean" ? `(${value} ? 1 : 0)` : `Number(${value}) || 0`;
|
|
631
|
+
return `String(${value})`;
|
|
632
|
+
}
|
|
633
|
+
var setLine = (v, value, from) => v ? `set(${JSON.stringify(v.ident)}, ${as(v, value, from)})` : null;
|
|
634
|
+
function serverFiles(server) {
|
|
635
|
+
const files = [
|
|
636
|
+
{ path: "lib/popcraft-server.ts", content: lines(
|
|
637
|
+
"// The site's own server: the forms it keeps and the lists its visitors keep records in (from the design), its",
|
|
638
|
+
"// database (DATABASE_URL) and its sign-in (SITE_AUTH_URL). app/api/popcraft answers the pages through it.",
|
|
639
|
+
"",
|
|
640
|
+
"import type { Collection } from '@popcraft/runtime'",
|
|
641
|
+
"import { storeFor, type AuthKind, type SiteBackend, type SiteDatabase } from '@popcraft/runtime/server'",
|
|
642
|
+
"import { siteUrl } from '@/lib/site'",
|
|
643
|
+
"",
|
|
644
|
+
`const FORMS = new Set<string>(${JSON.stringify(server.forms)})`,
|
|
645
|
+
`const COLLECTIONS: Record<string, Collection> = ${JSON.stringify(Object.fromEntries(server.collections.map((c) => [c.id, c])), null, 2)}`,
|
|
646
|
+
"",
|
|
647
|
+
"let ready: Promise<SiteDatabase> | null = null",
|
|
648
|
+
"",
|
|
649
|
+
"/** The site's database: its two tables are made on first use. */",
|
|
650
|
+
"function database(): Promise<SiteDatabase | null> {",
|
|
651
|
+
" const url = process.env.DATABASE_URL",
|
|
652
|
+
" if (!url) return Promise.resolve(null)",
|
|
653
|
+
" ready ??= (async () => { const db = storeFor(url); await db.ensure(); return db })().catch((e: unknown) => { ready = null; throw e })",
|
|
654
|
+
" return ready",
|
|
655
|
+
"}",
|
|
656
|
+
"",
|
|
657
|
+
"/** The site's sign-in service (Neon Auth or Supabase Auth), told the site's own address. NEON_AUTH_URL is its older name. */",
|
|
658
|
+
"async function auth() {",
|
|
659
|
+
" const authUrl = process.env.SITE_AUTH_URL ?? process.env.NEON_AUTH_URL",
|
|
660
|
+
" if (!authUrl) return null",
|
|
661
|
+
" const kind = (process.env.SITE_AUTH_KIND as AuthKind | undefined) ?? 'neon-auth'",
|
|
662
|
+
" return { kind, authUrl, origin: siteUrl.origin, apiKey: process.env.SITE_AUTH_KEY, adminKey: process.env.SITE_AUTH_ADMIN_KEY }",
|
|
663
|
+
"}",
|
|
664
|
+
"",
|
|
665
|
+
"export const site: SiteBackend = {",
|
|
666
|
+
" database,",
|
|
667
|
+
" auth,",
|
|
668
|
+
" hasForm: id => FORMS.has(id),",
|
|
669
|
+
" collection: id => COLLECTIONS[id],",
|
|
670
|
+
" // Over https in production; `next dev` serves http, where a Secure cookie would not be kept.",
|
|
671
|
+
" secure: process.env.NODE_ENV === 'production',",
|
|
672
|
+
"}"
|
|
673
|
+
) },
|
|
674
|
+
{ path: "app/api/popcraft/[...path]/route.ts", content: lines(
|
|
675
|
+
"// The site's own requests (forms, sign-in, visitors' records), at /_pc/\u2026 (next.config.ts rewrites them here).",
|
|
676
|
+
"",
|
|
677
|
+
"import { siteRequest } from '@popcraft/runtime/server'",
|
|
678
|
+
"import { site } from '@/lib/popcraft-server'",
|
|
679
|
+
"",
|
|
680
|
+
"async function handle(request: Request, { params }: { params: Promise<{ path: string[] }> }): Promise<Response> {",
|
|
681
|
+
" const { path } = await params",
|
|
682
|
+
" return (await siteRequest(request, `_pc/${path.join('/')}`, site)) ?? Response.json({ error: 'Not found' }, { status: 404 })",
|
|
683
|
+
"}",
|
|
684
|
+
"",
|
|
685
|
+
"export { handle as DELETE, handle as GET, handle as POST }"
|
|
686
|
+
) }
|
|
687
|
+
];
|
|
688
|
+
const routes = Object.keys(server.access);
|
|
689
|
+
if (routes.length) files.push({ path: "proxy.ts", content: lines(
|
|
690
|
+
"// Each page for one kind of visitor sends the other kind where it is for them: a signed-in page needs an account,",
|
|
691
|
+
"// a sign-in page is for visitors without one. The session cookie is enough to decide here; the page's provider",
|
|
692
|
+
"// (lib/popcraft.tsx) asks the server who is signed in, and clears a cookie whose session has ended.",
|
|
693
|
+
"",
|
|
694
|
+
"import { NextResponse, type NextRequest } from 'next/server'",
|
|
695
|
+
"",
|
|
696
|
+
`const ACCESS: Record<string, 'signedIn' | 'signedOut'> = ${JSON.stringify(server.access)}`,
|
|
697
|
+
`const GO = ${JSON.stringify(server.redirect)}`,
|
|
698
|
+
"",
|
|
699
|
+
"export function proxy(request: NextRequest) {",
|
|
700
|
+
" const need = ACCESS[request.nextUrl.pathname]",
|
|
701
|
+
` const signedIn = request.cookies.has(${JSON.stringify(SESSION_COOKIE)})`,
|
|
702
|
+
" const to = need === 'signedIn' && !signedIn ? GO.signedOut : need === 'signedOut' && signedIn ? GO.signedIn : null",
|
|
703
|
+
" return to && to !== request.nextUrl.pathname ? NextResponse.redirect(new URL(to, request.url)) : NextResponse.next()",
|
|
704
|
+
"}",
|
|
705
|
+
"",
|
|
706
|
+
`export const config = { matcher: ${JSON.stringify(routes)} }`
|
|
707
|
+
) });
|
|
708
|
+
return files;
|
|
709
|
+
}
|
|
710
|
+
function siteProviderSource(server) {
|
|
711
|
+
const u = server.user;
|
|
712
|
+
const guards = Object.keys(server.access).length > 0;
|
|
713
|
+
const sayUser = [setLine(u.signedIn, "!!next", "boolean"), setLine(u.name, "next?.name ?? ''", "string"), setLine(u.email, "next?.email ?? ''", "string")].filter(Boolean);
|
|
714
|
+
const sayError = (value) => setLine(u.error, value, "string");
|
|
715
|
+
return [
|
|
716
|
+
"/** A form as the design made it: what it does on the site's server, and (in a list's copy) whose record it is about. */",
|
|
717
|
+
"export interface SiteForm { id: string; name: string; action?: AuthAction | 'deleteRecord' | 'updateRecord'; collectionId?: string; record?: string }",
|
|
718
|
+
"interface SiteStore {",
|
|
719
|
+
" user: SiteUser | null",
|
|
720
|
+
" /** The visitor's own records, by collection, newest first. */",
|
|
721
|
+
" records: Record<string, SiteRecord[]>",
|
|
722
|
+
" /** An expression function over the visitor's records (`count`, `streak`\u2026), by the collection's name. */",
|
|
723
|
+
" call(fn: string, ...args: ExprValue[]): ExprValue",
|
|
724
|
+
` /** Send a form; true when it worked (then the design's "on submit" runs). */`,
|
|
725
|
+
" submit(form: HTMLFormElement, submitter: HTMLElement | null, about: SiteForm): Promise<boolean>",
|
|
726
|
+
"}",
|
|
727
|
+
"",
|
|
728
|
+
"const client = createSiteClient()",
|
|
729
|
+
`const MINE = ${JSON.stringify(server.collections.map((c) => c.id))}`,
|
|
730
|
+
`/** Each list by the name an expression gives it. */`,
|
|
731
|
+
`const NAMES: Record<string, string> = ${JSON.stringify(Object.fromEntries(server.collections.map((c) => [c.name.trim().toLowerCase(), c.id])))}`,
|
|
732
|
+
...guards ? [`const ACCESS: Record<string, 'signedIn' | 'signedOut'> = ${JSON.stringify(server.access)}`, `const GO = ${JSON.stringify(server.redirect)}`] : [],
|
|
733
|
+
"const SiteContext = createContext<SiteStore | null>(null)",
|
|
734
|
+
"",
|
|
735
|
+
"/** The visitor: who is signed in (asked of the site's server on load), their records, and the design's variables that say so. */",
|
|
736
|
+
"export function SiteProvider({ children }: Readonly<{ children: ReactNode }>) {",
|
|
737
|
+
...sayUser.length || server.counts.length || u.error ? [" const { set } = useVariables()"] : [],
|
|
738
|
+
...guards ? [" const router = useRouter()", " const path = usePathname()"] : [],
|
|
739
|
+
" const [user, setUser] = useState<SiteUser | null>(null)",
|
|
740
|
+
...guards ? [" const [known, setKnown] = useState(false)"] : [],
|
|
741
|
+
" const [records, setRecords] = useState<Record<string, SiteRecord[]>>({})",
|
|
742
|
+
" const say = useCallback((next: SiteUser | null) => {",
|
|
743
|
+
" setUser(next)",
|
|
744
|
+
...sayUser.map((l) => ` ${l}`),
|
|
745
|
+
` }, [${sayUser.length ? "set" : ""}])`,
|
|
746
|
+
" const refresh = useCallback(async (who: SiteUser | null) => {",
|
|
747
|
+
" const next: Record<string, SiteRecord[]> = {}",
|
|
748
|
+
" for (const id of MINE) next[id] = who ? await client.records(id) : []",
|
|
749
|
+
" setRecords(next)",
|
|
750
|
+
...server.counts.map((c) => ` ${setLine(c.variable, `next[${JSON.stringify(c.collection)}].length`, "number")}`),
|
|
751
|
+
` }, [${server.counts.length ? "set" : ""}])`,
|
|
752
|
+
` useEffect(() => { void client.who().then(async who => { say(who); ${guards ? "setKnown(true); " : ""}await refresh(who) }) }, [say, refresh])`,
|
|
753
|
+
...guards ? [
|
|
754
|
+
" // A page for the other kind of visitor (a cookie whose session had ended got past proxy.ts): where a visit would land.",
|
|
755
|
+
" useEffect(() => {",
|
|
756
|
+
" if (!known) return",
|
|
757
|
+
" const need = ACCESS[path]",
|
|
758
|
+
" const to = need === 'signedIn' && !user ? GO.signedOut : need === 'signedOut' && user ? GO.signedIn : null",
|
|
759
|
+
" if (to && to !== path) router.replace(to)",
|
|
760
|
+
" }, [known, user, path, router])"
|
|
761
|
+
] : [],
|
|
762
|
+
" const submit = useCallback(async (form: HTMLFormElement, submitter: HTMLElement | null, about: SiteForm): Promise<boolean> => {",
|
|
763
|
+
" const values: Record<string, string> = {}",
|
|
764
|
+
" new FormData(form, submitter).forEach((value, key) => { if (typeof value === 'string') values[key] = value })",
|
|
765
|
+
...sayError("''") ? [` ${sayError("''")}`] : [],
|
|
766
|
+
" try {",
|
|
767
|
+
" if (about.action && about.action !== 'deleteRecord' && about.action !== 'updateRecord') {",
|
|
768
|
+
" const who = await client.act(about.action, values)",
|
|
769
|
+
" say(who)",
|
|
770
|
+
" await refresh(who)",
|
|
771
|
+
" return true",
|
|
772
|
+
" }",
|
|
773
|
+
" // A visitor's own list: a form bound to it adds a record; one inside a copy changes or removes that copy's.",
|
|
774
|
+
" const of = about.record ? MINE.find(id => records[id]?.some(r => r.id === about.record)) : about.collectionId && MINE.includes(about.collectionId) ? about.collectionId : undefined",
|
|
775
|
+
" if (of) {",
|
|
776
|
+
" if (!user) throw new Error('Sign in first.')",
|
|
777
|
+
" if (about.action === 'deleteRecord') await client.remove(of, about.record ?? '')",
|
|
778
|
+
" else if (about.action === 'updateRecord') { const was = records[of]?.find(r => r.id === about.record); if (!was) throw new Error('That is no longer here.'); await client.save(of, { ...was.values, ...values }, about.record) }",
|
|
779
|
+
" else await client.save(of, values)",
|
|
780
|
+
" await refresh(user)",
|
|
781
|
+
" return true",
|
|
782
|
+
" }",
|
|
783
|
+
` // Kept in the site's database. Refused (none attached, or the request failed): the design's "on submit" does not run.`,
|
|
784
|
+
" if (!await client.submit({ id: about.id, name: about.name, values })) throw new Error('That did not go through: nothing was saved. Try again in a moment.')",
|
|
785
|
+
" return true",
|
|
786
|
+
" } catch (e) {",
|
|
787
|
+
...sayError("e instanceof Error ? e.message : 'That did not work. Try again.'") ? [` ${sayError("e instanceof Error ? e.message : 'That did not work. Try again.'")}`] : [" void e"],
|
|
788
|
+
" return false",
|
|
789
|
+
" }",
|
|
790
|
+
` }, [records, user, say, refresh${u.error ? ", set" : ""}])`,
|
|
791
|
+
' // What `count("Checkins")` and the rest add up: the visitor\'s own records, with when each was made.',
|
|
792
|
+
" const data = useMemo<ExprData>(() => ({",
|
|
793
|
+
" rows: name => {",
|
|
794
|
+
" const id = NAMES[name.trim().toLowerCase()] ?? (MINE.includes(name) ? name : undefined)",
|
|
795
|
+
" return id ? (records[id] ?? []).map(r => ({ values: { id: r.id, by: r.by ?? '', mine: r.mine ?? true, ...r.values }, ...(r.createdAt ? { at: Date.parse(r.createdAt) } : {}) })) : undefined",
|
|
796
|
+
" },",
|
|
797
|
+
" }), [records])",
|
|
798
|
+
" const callData = useCallback((fn: string, ...args: ExprValue[]): ExprValue => {",
|
|
799
|
+
" const f = FUNCTIONS[fn]",
|
|
800
|
+
" if (!f) return 0",
|
|
801
|
+
" try { return f(args, data) } catch (e) { if (e instanceof ExprMissing) return 0; throw e }",
|
|
802
|
+
" }, [data])",
|
|
803
|
+
" const store = useMemo(() => ({ user, records, call: callData, submit }), [user, records, callData, submit])",
|
|
804
|
+
" return <SiteContext value={store}>{children}</SiteContext>",
|
|
805
|
+
"}",
|
|
806
|
+
"",
|
|
807
|
+
"/** A field of a visitor's record, as an expression reads it (`item.note`): its values, and `id`, `by`, `mine` and `age` (days old). */",
|
|
808
|
+
"export function itemField(item: SiteRecord, key: string): ExprValue {",
|
|
809
|
+
" if (key === 'id') return item.id",
|
|
810
|
+
" if (key === 'by') return item.by ?? ''",
|
|
811
|
+
" if (key === 'mine') return item.mine ?? true",
|
|
812
|
+
" if (key === 'age') return item.createdAt ? Math.max(0, dayOf(Date.now()) - dayOf(Date.parse(item.createdAt))) : 0",
|
|
813
|
+
" return item.values[key] ?? ''",
|
|
814
|
+
"}",
|
|
815
|
+
"",
|
|
816
|
+
"/** Two of a visitor's records in a list's order: by a field, numbers as numbers and words as words. */",
|
|
817
|
+
"export function itemCompare(a: SiteRecord, b: SiteRecord, key: string): number {",
|
|
818
|
+
" const x = itemField(a, key), y = itemField(b, key)",
|
|
819
|
+
" return typeof x === 'number' && typeof y === 'number' ? x - y : String(x).localeCompare(String(y), undefined, { numeric: true })",
|
|
820
|
+
"}",
|
|
821
|
+
"",
|
|
822
|
+
"/** A field of a visitor's record as words on the page (a yes-or-no as Yes or No). */",
|
|
823
|
+
"export function itemWords(item: SiteRecord, key: string): string {",
|
|
824
|
+
" const value = itemField(item, key)",
|
|
825
|
+
" return typeof value === 'boolean' ? (value ? 'Yes' : 'No') : String(value)",
|
|
826
|
+
"}",
|
|
827
|
+
"",
|
|
828
|
+
"/** The visitor, their records, and `submit` for a form. */",
|
|
829
|
+
"export function useSite(): SiteStore {",
|
|
830
|
+
" const store = useContext(SiteContext)",
|
|
831
|
+
" if (!store) throw new Error('useSite is used outside SiteProvider (app/layout.tsx)')",
|
|
832
|
+
" return store",
|
|
833
|
+
"}",
|
|
834
|
+
""
|
|
835
|
+
];
|
|
836
|
+
}
|
|
837
|
+
function serverReadme(server) {
|
|
838
|
+
return `## Forms${server.signIn ? ", accounts" : ""} and data
|
|
839
|
+
|
|
840
|
+
The site has a server of its own (\`app/api/popcraft\`, through \`@popcraft/runtime/server\`): it keeps what its forms
|
|
841
|
+
send${server.signIn ? ", signs visitors up and in with the database's own sign-in (Neon Auth or Supabase Auth)" : ""}${server.collections.length ? ", and keeps each visitor's own records" : ""}. Copy \`.env.example\` to
|
|
842
|
+
\`.env.local\` and set:
|
|
843
|
+
|
|
844
|
+
| Variable | What it is |
|
|
845
|
+
| --- | --- |
|
|
846
|
+
| \`DATABASE_URL\` | A Postgres connection string (a Neon or Supabase project's). The site makes its two tables on first use |
|
|
847
|
+
${server.signIn ? "| `SITE_AUTH_KIND` | `neon-auth` or `supabase-auth` |\n| `SITE_AUTH_URL` | The sign-in service: a Neon project's Auth URL (Neon console \u2192 Auth), or `https://<project>.supabase.co/auth/v1`. Add the site's address to its trusted domains / redirect URLs |\n| `SITE_AUTH_KEY` | Supabase only: the project's anon key |\n| `SITE_AUTH_ADMIN_KEY` | Supabase only, optional: the service-role key, so visitors can delete their accounts |\n" : ""}| \`NEXT_PUBLIC_SITE_URL\` | The site's address${server.signIn ? " (the origin the sign-in service is told visitors come from)" : ""} |
|
|
848
|
+
|
|
849
|
+
Without \`DATABASE_URL\` the pages still work: forms are sent and not kept${server.signIn ? ", and nobody can sign in" : ""}.
|
|
850
|
+
|
|
851
|
+
`;
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
// lib/io/web/project/islands.ts
|
|
855
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
856
|
+
function islandFiles(site, script) {
|
|
857
|
+
return [
|
|
858
|
+
{ path: "public/pc/island.js", content: script },
|
|
859
|
+
{ path: "public/pc/islands.json", content: JSON.stringify(site.islands ?? {}) },
|
|
860
|
+
{ path: "components/gpu-island.tsx", content: GPU_ISLAND }
|
|
861
|
+
];
|
|
862
|
+
}
|
|
863
|
+
var REACT_IMPORT = "import { useEffect, useRef } from 'react'";
|
|
864
|
+
var GPU_ISLAND = `'use client'
|
|
865
|
+
|
|
866
|
+
// A layer only the GPU draws, drawn live over its picture by PopCraft's renderer (public/pc/island.js), with what it
|
|
867
|
+
// draws from public/pc/islands.json. Both load once, the first time an island is on screen; without WebGPU the
|
|
868
|
+
// picture stays.
|
|
869
|
+
|
|
870
|
+
${REACT_IMPORT}
|
|
871
|
+
|
|
872
|
+
interface IslandHandle { invalidate(): void; destroy(): void }
|
|
873
|
+
interface IslandHost { mount(canvas: HTMLCanvasElement, spec: unknown, clock?: () => number): IslandHandle | null; destroy(): void }
|
|
874
|
+
declare global { var popcraftIsland: { createIslandHost(): Promise<IslandHost | null> } | undefined }
|
|
875
|
+
|
|
876
|
+
let host: Promise<{ host: IslandHost | null; specs: Record<string, unknown> }> | null = null
|
|
877
|
+
function islandHost() {
|
|
878
|
+
host ??= Promise.all([
|
|
879
|
+
new Promise<void>((resolve, reject) => {
|
|
880
|
+
if (globalThis.popcraftIsland) return resolve()
|
|
881
|
+
const script = document.createElement('script')
|
|
882
|
+
script.src = '/pc/island.js'
|
|
883
|
+
script.onload = () => resolve()
|
|
884
|
+
script.onerror = () => reject(new Error('The island renderer did not load'))
|
|
885
|
+
document.head.appendChild(script)
|
|
886
|
+
}).then(() => globalThis.popcraftIsland?.createIslandHost() ?? null),
|
|
887
|
+
fetch('/pc/islands.json').then(r => r.json() as Promise<Record<string, unknown>>),
|
|
888
|
+
]).then(([h, specs]) => ({ host: h, specs })).catch(() => ({ host: null, specs: {} }))
|
|
889
|
+
return host
|
|
890
|
+
}
|
|
891
|
+
|
|
892
|
+
/** Island \`id\` (its layer), posed at the time of screen \`screen\`'s timeline. */
|
|
893
|
+
export function GpuIsland({ id, screen }: { id: string; screen: string }) {
|
|
894
|
+
const canvas = useRef<HTMLCanvasElement>(null)
|
|
895
|
+
useEffect(() => {
|
|
896
|
+
const el = canvas.current
|
|
897
|
+
if (!el || typeof navigator === 'undefined' || !('gpu' in navigator)) return
|
|
898
|
+
const parent = el.parentElement
|
|
899
|
+
if (parent && getComputedStyle(parent).position === 'static') parent.style.position = 'relative'
|
|
900
|
+
let handle: IslandHandle | null = null
|
|
901
|
+
let gone = false
|
|
902
|
+
const started = performance.now()
|
|
903
|
+
// The screen's timeline (its CSS animations), else the time since the island appeared.
|
|
904
|
+
const clock = () => {
|
|
905
|
+
const timeline = document.querySelector(\`[data-pc-id="\${screen}"]\`)?.getAnimations({ subtree: true }).find(a => (a as CSSAnimation).animationName?.startsWith('timeline-'))
|
|
906
|
+
return timeline ? Number(timeline.currentTime ?? 0) : performance.now() - started
|
|
907
|
+
}
|
|
908
|
+
const start = () => void islandHost().then(({ host: h, specs }) => {
|
|
909
|
+
if (gone || !h || !specs[id]) return
|
|
910
|
+
handle = h.mount(el, specs[id], clock)
|
|
911
|
+
if (!handle) return
|
|
912
|
+
// The picture under it has done its work: the canvas shows the layer from here.
|
|
913
|
+
for (const child of el.parentElement?.children ?? []) if (child !== el) (child as HTMLElement).style.visibility = 'hidden'
|
|
914
|
+
el.style.display = 'block'
|
|
915
|
+
})
|
|
916
|
+
// Asked for once it is on screen, so a page whose island is far below loads nothing until it is reached.
|
|
917
|
+
const seen = new IntersectionObserver(entries => { if (entries.some(e => e.isIntersecting)) { seen.disconnect(); start() } })
|
|
918
|
+
seen.observe(el.parentElement ?? el)
|
|
919
|
+
return () => { gone = true; seen.disconnect(); handle?.destroy() }
|
|
920
|
+
}, [id, screen])
|
|
921
|
+
return <canvas ref={canvas} aria-hidden="true" style={{ position: 'absolute', inset: 0, width: '100%', height: '100%', display: 'none' }} />
|
|
922
|
+
}
|
|
923
|
+
`;
|
|
924
|
+
|
|
925
|
+
// lib/io/web/project/versions.ts
|
|
926
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
927
|
+
|
|
928
|
+
// packages/runtime/package.json
|
|
929
|
+
var package_default = {
|
|
930
|
+
name: "@popcraft/runtime",
|
|
931
|
+
version: "0.32.0",
|
|
932
|
+
description: "What code exported from PopCraft shares: the meaning of expressions (operators and functions) and, as it grows, the parts of a design's behaviour that are common code rather than generated React.",
|
|
933
|
+
license: "MIT",
|
|
934
|
+
homepage: "https://popcraft.app/docs/exporting/nextjs",
|
|
935
|
+
repository: {
|
|
936
|
+
type: "git",
|
|
937
|
+
url: "git+https://github.com/getpopcraft/popcraft-app.git",
|
|
938
|
+
directory: "packages/runtime"
|
|
939
|
+
},
|
|
940
|
+
type: "module",
|
|
941
|
+
sideEffects: false,
|
|
942
|
+
exports: {
|
|
943
|
+
".": {
|
|
944
|
+
types: "./dist/index.d.ts",
|
|
945
|
+
import: "./dist/index.js"
|
|
946
|
+
},
|
|
947
|
+
"./commerce": {
|
|
948
|
+
types: "./dist/commerce.d.ts",
|
|
949
|
+
import: "./dist/commerce.js"
|
|
950
|
+
},
|
|
951
|
+
"./server": {
|
|
952
|
+
types: "./dist/server/index.d.ts",
|
|
953
|
+
import: "./dist/server.js"
|
|
954
|
+
},
|
|
955
|
+
"./package.json": "./package.json"
|
|
956
|
+
},
|
|
957
|
+
files: [
|
|
958
|
+
"dist",
|
|
959
|
+
"CHANGELOG.md",
|
|
960
|
+
"README.md",
|
|
961
|
+
"LICENSE"
|
|
962
|
+
],
|
|
963
|
+
engines: {
|
|
964
|
+
node: ">=20.9.0"
|
|
965
|
+
},
|
|
966
|
+
scripts: {
|
|
967
|
+
build: "node build.mjs",
|
|
968
|
+
typecheck: "tsc --noEmit -p .",
|
|
969
|
+
prepublishOnly: "node build.mjs"
|
|
970
|
+
},
|
|
971
|
+
devDependencies: {
|
|
972
|
+
esbuild: "0.28.2"
|
|
973
|
+
},
|
|
974
|
+
dependencies: {
|
|
975
|
+
"@neondatabase/serverless": "^1.2.0",
|
|
976
|
+
postgres: "^3.4.9"
|
|
977
|
+
}
|
|
978
|
+
};
|
|
979
|
+
|
|
980
|
+
// lib/io/web/project/versions.ts
|
|
981
|
+
var EXPORT_VERSIONS = {
|
|
982
|
+
/** When the versions below were last checked against npm and built. */
|
|
983
|
+
checked: "2026-10-03",
|
|
984
|
+
/** The Node.js an exported Next.js project needs (Next.js's own floor). */
|
|
985
|
+
node: ">=20.9.0",
|
|
986
|
+
packages: {
|
|
987
|
+
next: "16.3.8",
|
|
988
|
+
react: "19.3.0",
|
|
989
|
+
"react-dom": "19.3.0",
|
|
990
|
+
typescript: "6.0.3",
|
|
991
|
+
"@types/node": "24.19.1",
|
|
992
|
+
"@types/react": "19.3.0",
|
|
993
|
+
"@types/react-dom": "19.3.0",
|
|
994
|
+
eslint: "9.39.5",
|
|
995
|
+
"eslint-config-next": "16.3.8",
|
|
996
|
+
tailwindcss: "4.3.3",
|
|
997
|
+
"@tailwindcss/postcss": "4.3.3"
|
|
998
|
+
}
|
|
999
|
+
};
|
|
1000
|
+
var RUNTIME_PACKAGE = { name: package_default.name, version: package_default.version };
|
|
1001
|
+
var runtimeRange = () => `>=${RUNTIME_PACKAGE.version} <${Number(RUNTIME_PACKAGE.version.split(".")[0]) + 1}.0.0`;
|
|
1002
|
+
var range = (name) => `^${EXPORT_VERSIONS.packages[name]}`;
|
|
1003
|
+
|
|
1004
|
+
// lib/io/web/project/next.ts
|
|
1005
|
+
var all = (n, out = []) => {
|
|
1006
|
+
out.push(n);
|
|
1007
|
+
n.children.forEach((c) => all(c, out));
|
|
1008
|
+
return out;
|
|
1009
|
+
};
|
|
1010
|
+
function unique(base, taken) {
|
|
1011
|
+
let name = base || "Module";
|
|
1012
|
+
for (let n = 2; taken.has(name); n++) name = `${base}${n}`;
|
|
1013
|
+
taken.add(name);
|
|
1014
|
+
return name;
|
|
1015
|
+
}
|
|
1016
|
+
var jsxProp = (k, v) => typeof v === "string" ? `${k}=${JSON.stringify(v)}` : `${k}={${JSON.stringify(v)}}`;
|
|
1017
|
+
var pageDir = (route) => route === "/" ? "app" : `app${route}`;
|
|
1018
|
+
var json = (v) => `${JSON.stringify(v, null, 2)}
|
|
1019
|
+
`;
|
|
1020
|
+
var googleSet = new Set(GOOGLE_FONTS);
|
|
1021
|
+
function projectFonts(site) {
|
|
1022
|
+
return site.fonts.filter((f) => googleSet.has(f.family)).map((f) => {
|
|
1023
|
+
const slug = f.family.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
1024
|
+
return { family: f.family, ident: f.family.replace(/[^A-Za-z0-9]+/g, "_"), variable: `--font-${slug}`, weights: f.weights, variableFont: !NON_VARIABLE_FONTS.has(f.family) };
|
|
1025
|
+
});
|
|
1026
|
+
}
|
|
1027
|
+
function nextProjectFiles(site, doc, opts = {}) {
|
|
1028
|
+
const tailwind = opts.styling === "tailwind";
|
|
1029
|
+
const fonts = projectFonts(site);
|
|
1030
|
+
const byFamily = new Map(fonts.map((f) => [f.family, f.variable]));
|
|
1031
|
+
const fontFamily = (value) => value.replace(/"([^"]+)"/, (m, family) => byFamily.has(family) ? `var(${byFamily.get(family)})` : m);
|
|
1032
|
+
const files = externalizeBitmaps(site).map((f) => ({ ...f, path: `public/${f.path}` }));
|
|
1033
|
+
const moduleFile = /* @__PURE__ */ new Map();
|
|
1034
|
+
const taken = /* @__PURE__ */ new Set();
|
|
1035
|
+
const packages = {};
|
|
1036
|
+
for (const id of Object.keys(site.code?.modules ?? {}).sort()) {
|
|
1037
|
+
const m = doc.codeModules?.[id];
|
|
1038
|
+
if (!m) continue;
|
|
1039
|
+
const name2 = unique(componentName(m.name), taken);
|
|
1040
|
+
moduleFile.set(id, name2);
|
|
1041
|
+
Object.assign(packages, m.packages);
|
|
1042
|
+
const source = m.source.endsWith("\n") ? m.source : `${m.source}
|
|
1043
|
+
`;
|
|
1044
|
+
files.push({ path: `components/code/${name2}.tsx`, content: /^\s*['"]use client['"]/.test(source) ? source : `'use client'
|
|
1045
|
+
|
|
1046
|
+
${source}` });
|
|
1047
|
+
}
|
|
1048
|
+
const islands = !!site.islands && Object.keys(site.islands).length > 0 && !!opts.islandScript;
|
|
1049
|
+
if (islands) files.push(...islandFiles(site, opts.islandScript));
|
|
1050
|
+
const behaviour = behaviourOf(site);
|
|
1051
|
+
const media = /* @__PURE__ */ new Set();
|
|
1052
|
+
const routes = [];
|
|
1053
|
+
for (const page of site.pages) {
|
|
1054
|
+
if (routes.includes(page.route) && !page.notFound) continue;
|
|
1055
|
+
if (!page.notFound) routes.push(page.route);
|
|
1056
|
+
for (const rule of page.media ?? site.pages.find((p) => p.screen && p.screen === page.screen && p.media)?.media ?? []) media.add(rule);
|
|
1057
|
+
files.push(...pageFiles(site, page, moduleFile, { tailwind, fontFamily, ownFonts: fonts.length > 0, behaviour, islands }));
|
|
1058
|
+
}
|
|
1059
|
+
const tokens = (site.tokens ? tokensCSS(site.tokens) : []).map(fontFamily);
|
|
1060
|
+
files.push({ path: "app/globals.css", content: [
|
|
1061
|
+
...tailwind ? ['@import "tailwindcss";', ""] : [],
|
|
1062
|
+
"html, body { margin: 0; min-height: 100%; }",
|
|
1063
|
+
"*, *::before, *::after { box-sizing: border-box; }",
|
|
1064
|
+
"img, picture, svg, video { display: block; max-width: 100%; }",
|
|
1065
|
+
...tokens,
|
|
1066
|
+
...[...media].map(fontFamily),
|
|
1067
|
+
""
|
|
1068
|
+
].join("\n") });
|
|
1069
|
+
const overlays = behaviour.overlays.size > 0;
|
|
1070
|
+
const server = behaviour.server;
|
|
1071
|
+
files.push({ path: "app/layout.tsx", content: layoutSource(site, fonts, { variables: behaviour.variables.length > 0 || overlays || !!server, overlays, server: !!server }) });
|
|
1072
|
+
if (overlays) files.push({ path: "components/overlays.tsx", content: overlaysSource(site, behaviour) });
|
|
1073
|
+
files.push({ path: "lib/popcraft.tsx", content: stateSource(behaviour) });
|
|
1074
|
+
if (server) files.push(...serverFiles(server));
|
|
1075
|
+
files.push({ path: "app/sitemap.ts", content: sitemapSource(routes) });
|
|
1076
|
+
files.push({ path: "app/robots.ts", content: robotsSource() });
|
|
1077
|
+
files.push({ path: "lib/site.ts", content: siteSource() });
|
|
1078
|
+
const name = fileBase(site.name).toLowerCase().replace(/[^a-z0-9-]+/g, "-").replace(/^-+|-+$/g, "") || "site";
|
|
1079
|
+
files.push({ path: "package.json", content: json({
|
|
1080
|
+
name,
|
|
1081
|
+
private: true,
|
|
1082
|
+
version: "0.1.0",
|
|
1083
|
+
type: "module",
|
|
1084
|
+
engines: { node: EXPORT_VERSIONS.node },
|
|
1085
|
+
scripts: { dev: "next dev", build: "next build", start: "next start", lint: "eslint .", typecheck: "tsc --noEmit" },
|
|
1086
|
+
dependencies: { next: range("next"), react: range("react"), "react-dom": range("react-dom"), [RUNTIME_PACKAGE.name]: runtimeRange(), ...packages },
|
|
1087
|
+
devDependencies: {
|
|
1088
|
+
"@types/node": range("@types/node"),
|
|
1089
|
+
"@types/react": range("@types/react"),
|
|
1090
|
+
"@types/react-dom": range("@types/react-dom"),
|
|
1091
|
+
eslint: range("eslint"),
|
|
1092
|
+
"eslint-config-next": range("eslint-config-next"),
|
|
1093
|
+
typescript: range("typescript"),
|
|
1094
|
+
...tailwind ? { tailwindcss: range("tailwindcss"), "@tailwindcss/postcss": range("@tailwindcss/postcss") } : {}
|
|
1095
|
+
}
|
|
1096
|
+
}) });
|
|
1097
|
+
files.push({ path: "tsconfig.json", content: json({
|
|
1098
|
+
compilerOptions: {
|
|
1099
|
+
target: "ES2022",
|
|
1100
|
+
lib: ["dom", "dom.iterable", "esnext"],
|
|
1101
|
+
allowJs: false,
|
|
1102
|
+
skipLibCheck: true,
|
|
1103
|
+
strict: true,
|
|
1104
|
+
noEmit: true,
|
|
1105
|
+
esModuleInterop: true,
|
|
1106
|
+
module: "esnext",
|
|
1107
|
+
moduleResolution: "bundler",
|
|
1108
|
+
resolveJsonModule: true,
|
|
1109
|
+
isolatedModules: true,
|
|
1110
|
+
jsx: "react-jsx",
|
|
1111
|
+
incremental: true,
|
|
1112
|
+
plugins: [{ name: "next" }],
|
|
1113
|
+
paths: { "@/*": ["./*"] }
|
|
1114
|
+
},
|
|
1115
|
+
include: ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", ".next/dev/types/**/*.ts"],
|
|
1116
|
+
exclude: ["node_modules"]
|
|
1117
|
+
}) });
|
|
1118
|
+
files.push({ path: "next.config.ts", content: [
|
|
1119
|
+
"import type { NextConfig } from 'next'",
|
|
1120
|
+
"",
|
|
1121
|
+
"const nextConfig: NextConfig = {",
|
|
1122
|
+
" // The pictures are the project's own, in public/: next/image serves them sized for each screen.",
|
|
1123
|
+
" images: { formats: ['image/avif', 'image/webp'] },",
|
|
1124
|
+
...server ? [
|
|
1125
|
+
" // The pages ask their server at /_pc/\u2026 as a published PopCraft site does; app/api/popcraft answers.",
|
|
1126
|
+
" async rewrites() { return [{ source: '/_pc/:path*', destination: '/api/popcraft/:path*' }] },"
|
|
1127
|
+
] : [],
|
|
1128
|
+
"}",
|
|
1129
|
+
"",
|
|
1130
|
+
"export default nextConfig",
|
|
1131
|
+
""
|
|
1132
|
+
].join("\n") });
|
|
1133
|
+
files.push({ path: "eslint.config.mjs", content: [
|
|
1134
|
+
"import { defineConfig, globalIgnores } from 'eslint/config'",
|
|
1135
|
+
"import nextVitals from 'eslint-config-next/core-web-vitals'",
|
|
1136
|
+
"import nextTs from 'eslint-config-next/typescript'",
|
|
1137
|
+
"",
|
|
1138
|
+
"export default defineConfig([",
|
|
1139
|
+
" ...nextVitals,",
|
|
1140
|
+
" ...nextTs,",
|
|
1141
|
+
` globalIgnores(['.next/**', 'out/**', 'build/**', 'next-env.d.ts'${islands ? ", 'public/pc/**'" : ""}]),`,
|
|
1142
|
+
"])",
|
|
1143
|
+
""
|
|
1144
|
+
].join("\n") });
|
|
1145
|
+
if (tailwind) files.push({ path: "postcss.config.mjs", content: "const config = { plugins: { '@tailwindcss/postcss': {} } }\n\nexport default config\n" });
|
|
1146
|
+
files.push({ path: ".gitignore", content: ["# dependencies", "/node_modules", "", "# next.js", "/.next/", "/out/", "next-env.d.ts", "*.tsbuildinfo", "", "# env files", ".env*", "!.env.example", "", "# misc", ".DS_Store", "*.pem", "npm-debug.log*", ""].join("\n") });
|
|
1147
|
+
files.push({ path: ".env.example", content: [
|
|
1148
|
+
"# The address the site is served from: used for its sitemap, robots.txt and social previews" + (server?.signIn ? ", and the origin" : ""),
|
|
1149
|
+
...server?.signIn ? ["# its sign-in service is told visitors come from."] : [],
|
|
1150
|
+
"NEXT_PUBLIC_SITE_URL=https://example.com",
|
|
1151
|
+
...server ? ["", "# The Postgres database the site keeps its forms and its visitors' records in (a Neon or Supabase project's connection string).", "# Two tables of its own are made on first use. Unset, forms are not kept and nobody can sign in.", "DATABASE_URL=postgresql://user:password@host/db?sslmode=require"] : [],
|
|
1152
|
+
...server?.signIn ? ["", "# Sign-in: neon-auth (the Neon project's Auth URL, Neon console \u2192 Auth) or supabase-auth", "# (https://<project>.supabase.co/auth/v1 and its anon key). Add NEXT_PUBLIC_SITE_URL to its trusted domains.", "SITE_AUTH_KIND=neon-auth", "SITE_AUTH_URL=https://ep-example.neonauth.us-east-2.aws.neon.build/neondb/auth", "SITE_AUTH_KEY=", "SITE_AUTH_ADMIN_KEY="] : [],
|
|
1153
|
+
""
|
|
1154
|
+
].join("\n") });
|
|
1155
|
+
files.push({ path: "README.md", content: readme(site, { tailwind, fonts, routes, code: moduleFile.size > 0, server }) });
|
|
1156
|
+
return files;
|
|
1157
|
+
}
|
|
1158
|
+
function listSource(r, b) {
|
|
1159
|
+
let out = `(site.records[${JSON.stringify(r.collectionId)}] ?? [])`;
|
|
1160
|
+
const keep = r.filter ? b.itemExpression(r.filter) : null;
|
|
1161
|
+
if (keep) out += `.filter(item => truthy(${keep}))`;
|
|
1162
|
+
if (r.sort) out += `.toSorted((a, b) => itemCompare(a, b, ${JSON.stringify(r.sort.key)})${r.sort.dir === "DESC" ? " * -1" : ""})`;
|
|
1163
|
+
if (r.offset || r.limit) out += `.slice(${r.offset ?? 0}${r.limit ? `, ${(r.offset ?? 0) + r.limit}` : ""})`;
|
|
1164
|
+
return out;
|
|
1165
|
+
}
|
|
1166
|
+
function pageFiles(site, page, moduleFile, o) {
|
|
1167
|
+
const imports = /* @__PURE__ */ new Map();
|
|
1168
|
+
const server = o.behaviour.server;
|
|
1169
|
+
const live = o.behaviour.live(page.tree.root.id) || !!server && all(page.tree.root).some((n) => n.repeat && server.collections.some((c) => c.id === n.repeat.collectionId));
|
|
1170
|
+
const effects = live ? o.behaviour.effects(page.tree.root.id) : [];
|
|
1171
|
+
let usesImage = false;
|
|
1172
|
+
let usesIsland = false;
|
|
1173
|
+
const render = (prelude2) => serializeReact({ ...page.tree, root: withAssetBase(page.tree.root, "/"), ...page.machine ? { stateMachine: page.machine } : {} }, {
|
|
1174
|
+
ids: true,
|
|
1175
|
+
name: "Screen",
|
|
1176
|
+
styling: o.tailwind ? "tailwind" : "inline",
|
|
1177
|
+
fontFamily: o.fontFamily,
|
|
1178
|
+
ownFonts: o.ownFonts,
|
|
1179
|
+
...live ? { behaviour: o.behaviour, prelude: prelude2 } : {},
|
|
1180
|
+
// A GPU island: drawn live over its picture by the renderer the project carries (./islands.ts).
|
|
1181
|
+
...o.islands ? { island: (n) => {
|
|
1182
|
+
usesIsland = true;
|
|
1183
|
+
return `<GpuIsland id=${JSON.stringify(n.id)} screen=${JSON.stringify(page.tree.root.id)} />`;
|
|
1184
|
+
} } : {},
|
|
1185
|
+
// A visitor's own lists are drawn from their records, which the site provider holds.
|
|
1186
|
+
...o.behaviour.server ? { lists: (r) => o.behaviour.server.collections.some((c) => c.id === r.collectionId) ? listSource(r, o.behaviour) : null } : {},
|
|
1187
|
+
image: (p) => {
|
|
1188
|
+
usesImage = true;
|
|
1189
|
+
return `<Image src=${JSON.stringify(p.src)} width={${Math.round(p.width)}} height={${Math.round(p.height)}} alt=${JSON.stringify(p.alt)} sizes="(max-width: ${Math.max(1, Math.round(p.width))}px) 100vw, ${Math.max(1, Math.round(p.width))}px" />`;
|
|
1190
|
+
},
|
|
1191
|
+
code: (node) => {
|
|
1192
|
+
const c = node.code;
|
|
1193
|
+
const file = moduleFile.get(c.module);
|
|
1194
|
+
if (!file) return null;
|
|
1195
|
+
const local = c.export && c.export !== "default" ? c.export : file;
|
|
1196
|
+
imports.set(local, c.export && c.export !== "default" ? `import { ${c.export} } from '@/components/code/${file}'` : `import ${file} from '@/components/code/${file}'`);
|
|
1197
|
+
return `<${local} ${Object.entries(c.props).map(([k, v]) => jsxProp(k, v)).join(" ")} />`;
|
|
1198
|
+
}
|
|
1199
|
+
});
|
|
1200
|
+
const effectLines = effects.map((e) => `useEffect(() => { ${e} }, [])`);
|
|
1201
|
+
const draft = `${render([])}
|
|
1202
|
+
${effectLines.join("\n")}`;
|
|
1203
|
+
const uses = (re) => re.test(draft);
|
|
1204
|
+
const store = [uses(/\bv\./) ? "v" : "", uses(/\bset\(/) ? "set" : ""].filter(Boolean);
|
|
1205
|
+
const prelude = live ? [
|
|
1206
|
+
...uses(/\brouter\./) ? ["const router = useRouter()"] : [],
|
|
1207
|
+
...store.length ? [`const { ${store.join(", ")} } = useVariables()`] : [],
|
|
1208
|
+
...uses(/\boverlays\./) ? ["const overlays = useOverlays()"] : [],
|
|
1209
|
+
...uses(/\bsite\.(submit|records|call)\b/) ? ["const site = useSite()"] : [],
|
|
1210
|
+
...effects.map((e) => {
|
|
1211
|
+
const deps = ["router", "set", "overlays"].filter((d) => new RegExp(`\\b${d}\\b`).test(e));
|
|
1212
|
+
return `useEffect(() => { ${e} }, [${deps.join(", ")}])`;
|
|
1213
|
+
})
|
|
1214
|
+
] : [];
|
|
1215
|
+
const body = live ? render(prelude) : draft.trimEnd();
|
|
1216
|
+
if (live) {
|
|
1217
|
+
if (uses(/\brouter\./)) imports.set("useRouter", "import { useRouter } from 'next/navigation'");
|
|
1218
|
+
const helpers = ["call", "exprText", "itemCompare", "itemField", "itemWords", "num", "ops", "truthy"].filter((h) => new RegExp(`\\b${h}[.(]`).test(body));
|
|
1219
|
+
const named = [...helpers, ...uses(/\boverlays\./) ? ["useOverlays"] : [], ...uses(/\bsite\.(submit|records|call)\b/) ? ["useSite"] : [], ...store.length ? ["useVariables"] : []].sort();
|
|
1220
|
+
if (named.length) imports.set("popcraft", `import { ${named.join(", ")} } from '@/lib/popcraft'`);
|
|
1221
|
+
const page2 = ["controlTimeline", "orbitDrag", "scrubTimeline", "switchMode"].filter((h) => new RegExp(`\\b${h}\\(`).test(body));
|
|
1222
|
+
if (page2.length) imports.set("runtime", `import { ${page2.join(", ")} } from '@popcraft/runtime'`);
|
|
1223
|
+
}
|
|
1224
|
+
if (usesImage) imports.set("Image", "import Image from 'next/image'");
|
|
1225
|
+
if (usesIsland) imports.set("GpuIsland", "import { GpuIsland } from '@/components/gpu-island'");
|
|
1226
|
+
const nodes = all(page.tree.root);
|
|
1227
|
+
const client = live || /\buse(Effect|Ref|State)\b/.test(body);
|
|
1228
|
+
const hooks = [/<Fragment\b/.test(body) ? "Fragment" : "", effects.length ? "useEffect" : "", /\buseState\(/.test(body) ? "useState" : ""].filter((h) => h && !new RegExp(`import \\{[^}]*\\b${h}\\b`).test(body));
|
|
1229
|
+
if (hooks.length) imports.set("react", `import { ${hooks.join(", ")} } from 'react'`);
|
|
1230
|
+
const left = [
|
|
1231
|
+
nodes.some((n) => n.island) && !o.islands ? "layers drawn live on the GPU are pictures here" : "",
|
|
1232
|
+
...o.behaviour.missing(page.tree.root.id)
|
|
1233
|
+
].filter(Boolean);
|
|
1234
|
+
const dir = page.notFound ? "app" : pageDir(page.route);
|
|
1235
|
+
const share = pageShareImage(site, page);
|
|
1236
|
+
const metadata = [
|
|
1237
|
+
"import type { Metadata } from 'next'",
|
|
1238
|
+
"",
|
|
1239
|
+
`export const metadata: Metadata = {`,
|
|
1240
|
+
` title: ${JSON.stringify(page.title)},`,
|
|
1241
|
+
...page.description ? [` description: ${JSON.stringify(page.description)},`] : [],
|
|
1242
|
+
...page.route !== "/" && !page.notFound ? [` alternates: { canonical: ${JSON.stringify(page.route)} },`] : [],
|
|
1243
|
+
// Its share image is in `public/` and named from the root: `metadataBase` (app/layout.tsx) makes it absolute.
|
|
1244
|
+
...share ? [
|
|
1245
|
+
` openGraph: { title: ${JSON.stringify(page.title)}${page.description ? `, description: ${JSON.stringify(page.description)}` : ""}, images: [{ url: ${JSON.stringify(`/${share.path}`)}, width: ${share.width}, height: ${share.height} }] },`,
|
|
1246
|
+
` twitter: { card: 'summary_large_image', title: ${JSON.stringify(page.title)}, images: [${JSON.stringify(`/${share.path}`)}] },`
|
|
1247
|
+
] : [],
|
|
1248
|
+
"}"
|
|
1249
|
+
];
|
|
1250
|
+
const screen = [
|
|
1251
|
+
...client ? ["'use client'", ""] : [],
|
|
1252
|
+
...[...imports.values()].sort(),
|
|
1253
|
+
...imports.size ? [""] : [],
|
|
1254
|
+
...left.length ? [`// Exported from PopCraft. Not carried into this page: ${left.join("; ")}. The static export plays them.`, ""] : [],
|
|
1255
|
+
body,
|
|
1256
|
+
""
|
|
1257
|
+
].join("\n");
|
|
1258
|
+
const screenFile = page.notFound ? "not-found-screen.tsx" : "screen.tsx";
|
|
1259
|
+
const pageFile = page.notFound ? "not-found.tsx" : "page.tsx";
|
|
1260
|
+
return [
|
|
1261
|
+
{ path: `${dir}/${screenFile}`, content: screen },
|
|
1262
|
+
{ path: `${dir}/${pageFile}`, content: [
|
|
1263
|
+
...metadata.slice(0, 1),
|
|
1264
|
+
`import { Screen } from './${screenFile.replace(/\.tsx$/, "")}'`,
|
|
1265
|
+
...metadata.slice(1),
|
|
1266
|
+
"",
|
|
1267
|
+
`export default function ${page.notFound ? "NotFound" : "Page"}() {`,
|
|
1268
|
+
" return <Screen />",
|
|
1269
|
+
"}",
|
|
1270
|
+
""
|
|
1271
|
+
].join("\n") }
|
|
1272
|
+
];
|
|
1273
|
+
}
|
|
1274
|
+
function layoutSource(site, fonts, o) {
|
|
1275
|
+
const { variables } = o;
|
|
1276
|
+
const modes = site.tokens?.active ?? [];
|
|
1277
|
+
const loaders = fonts.map((f) => {
|
|
1278
|
+
const name = f.ident.charAt(0).toLowerCase() + f.ident.slice(1).replace(/_/g, "");
|
|
1279
|
+
const weight = f.variableFont ? "" : `, weight: [${f.weights.map((w) => `'${w}'`).join(", ")}]`;
|
|
1280
|
+
return { name, line: `const ${name} = ${f.ident}({ subsets: ['latin'], display: 'swap', variable: '${f.variable}'${weight} })` };
|
|
1281
|
+
});
|
|
1282
|
+
const classes = [...loaders.map((l) => `\${${l.name}.variable}`), ...modes].join(" ");
|
|
1283
|
+
return [
|
|
1284
|
+
"import type { Metadata, Viewport } from 'next'",
|
|
1285
|
+
...fonts.length ? [`import { ${fonts.map((f) => f.ident).sort().join(", ")} } from 'next/font/google'`] : [],
|
|
1286
|
+
"import type { ReactNode } from 'react'",
|
|
1287
|
+
"import { siteUrl } from '@/lib/site'",
|
|
1288
|
+
...o.overlays ? ["import { Overlays } from '@/components/overlays'"] : [],
|
|
1289
|
+
...variables ? [`import { ${o.overlays ? "OverlayProvider, " : ""}${o.server ? "SiteProvider, " : ""}VariablesProvider } from '@/lib/popcraft'`] : [],
|
|
1290
|
+
"import './globals.css'",
|
|
1291
|
+
"",
|
|
1292
|
+
...loaders.length ? ["// The faces the design is set in, served from this site (no request to Google from a visitor's browser).", ...loaders.map((l) => l.line), ""] : [],
|
|
1293
|
+
"export const metadata: Metadata = {",
|
|
1294
|
+
" metadataBase: siteUrl,",
|
|
1295
|
+
` title: { default: ${JSON.stringify(site.name)}, template: ${JSON.stringify(`%s \xB7 ${site.name}`)} },`,
|
|
1296
|
+
` openGraph: { siteName: ${JSON.stringify(site.name)}, type: 'website' },`,
|
|
1297
|
+
"}",
|
|
1298
|
+
"",
|
|
1299
|
+
"export const viewport: Viewport = { width: 'device-width', initialScale: 1 }",
|
|
1300
|
+
"",
|
|
1301
|
+
"export default function RootLayout({ children }: Readonly<{ children: ReactNode }>) {",
|
|
1302
|
+
" return (",
|
|
1303
|
+
` <html lang="en"${classes ? ` className={\`${classes}\`}` : ""}>`,
|
|
1304
|
+
` <body>${variables ? "<VariablesProvider>" : ""}${o.server ? "<SiteProvider>" : ""}${o.overlays ? "<OverlayProvider>{children}<Overlays /></OverlayProvider>" : "{children}"}${o.server ? "</SiteProvider>" : ""}${variables ? "</VariablesProvider>" : ""}</body>`,
|
|
1305
|
+
" </html>",
|
|
1306
|
+
" )",
|
|
1307
|
+
"}",
|
|
1308
|
+
""
|
|
1309
|
+
].join("\n");
|
|
1310
|
+
}
|
|
1311
|
+
function overlaysSource(site, b) {
|
|
1312
|
+
const screens = [...b.overlays].map((id) => site.pages.find((p) => p.id === id)).filter((p) => !!p);
|
|
1313
|
+
const name = (p) => `${componentName(p.title || p.route) || "Overlay"}Overlay`;
|
|
1314
|
+
const align = { CENTER: ["center", "center"], TOP_LEFT: ["flex-start", "flex-start"], TOP_CENTER: ["center", "flex-start"], TOP_RIGHT: ["flex-end", "flex-start"], BOTTOM_LEFT: ["flex-start", "flex-end"], BOTTOM_CENTER: ["center", "flex-end"], BOTTOM_RIGHT: ["flex-end", "flex-end"], MANUAL: ["flex-start", "flex-start"] };
|
|
1315
|
+
return [
|
|
1316
|
+
"'use client'",
|
|
1317
|
+
"",
|
|
1318
|
+
"// The frames the design opens as overlays (OVERLAY / SWAP), drawn over the page while they are open: each is the",
|
|
1319
|
+
"// same screen its own route shows. Open, swap and close them with useOverlays() from lib/popcraft.",
|
|
1320
|
+
"",
|
|
1321
|
+
"import type { ComponentType } from 'react'",
|
|
1322
|
+
"import { useOverlays } from '@/lib/popcraft'",
|
|
1323
|
+
...screens.map((p) => `import { Screen as ${name(p)} } from '@/${pageDir(p.route)}/screen'`),
|
|
1324
|
+
"",
|
|
1325
|
+
"const SCREENS: Record<string, ComponentType> = {",
|
|
1326
|
+
...screens.map((p) => ` ${JSON.stringify(p.id)}: ${name(p)},`),
|
|
1327
|
+
"}",
|
|
1328
|
+
`const ALIGN: Record<string, [string, string]> = ${JSON.stringify(align)}`,
|
|
1329
|
+
"",
|
|
1330
|
+
"export function Overlays() {",
|
|
1331
|
+
" const { list, close } = useOverlays()",
|
|
1332
|
+
" return list.map(({ id, options }, i) => {",
|
|
1333
|
+
" const Screen = SCREENS[id]",
|
|
1334
|
+
" if (!Screen) return null",
|
|
1335
|
+
" const [justifyContent, alignItems] = ALIGN[options.position ?? 'CENTER']",
|
|
1336
|
+
" return (",
|
|
1337
|
+
' <div key={`${id}-${i}`} role="dialog" aria-modal="true" onClick={e => { if (options.closeOnOutside && e.target === e.currentTarget) close() }}',
|
|
1338
|
+
" style={{ position: 'fixed', inset: 0, zIndex: 1000 + i, display: 'flex', justifyContent, alignItems, background: options.dim ?? 'transparent', padding: options.offset ? `${options.offset.y}px 0 0 ${options.offset.x}px` : undefined }}>",
|
|
1339
|
+
" <Screen />",
|
|
1340
|
+
" </div>",
|
|
1341
|
+
" )",
|
|
1342
|
+
" })",
|
|
1343
|
+
"}",
|
|
1344
|
+
""
|
|
1345
|
+
].join("\n");
|
|
1346
|
+
}
|
|
1347
|
+
function stateSource(b) {
|
|
1348
|
+
return [
|
|
1349
|
+
"'use client'",
|
|
1350
|
+
"",
|
|
1351
|
+
"// The design's variables, as state every page shares (the provider is in app/layout.tsx), and the helpers the",
|
|
1352
|
+
"// screens' expressions call. What an expression means (its operators and functions) is @popcraft/runtime's, so a",
|
|
1353
|
+
"// value comes out here as it does in PopCraft.",
|
|
1354
|
+
"",
|
|
1355
|
+
`import { createContext, useCallback, useContext, ${b.server ? "useEffect, " : ""}useMemo, useState, type ReactNode } from 'react'`,
|
|
1356
|
+
...b.server && Object.keys(b.server.access).length ? ["import { usePathname, useRouter } from 'next/navigation'"] : [],
|
|
1357
|
+
`import { ${b.server ? "createSiteClient, dayOf, " : ""}ExprMissing, FUNCTIONS, exprText, num, ops, truthy, type ExprValue${b.server ? ", type AuthAction, type ExprData, type SiteRecord, type SiteUser" : ""} } from '@popcraft/runtime'`,
|
|
1358
|
+
"",
|
|
1359
|
+
"export { exprText, num, ops, truthy }",
|
|
1360
|
+
"",
|
|
1361
|
+
"export interface Variables {",
|
|
1362
|
+
...b.variables.map((v) => ` /** ${v.name} */
|
|
1363
|
+
${v.ident}: ${v.type}`),
|
|
1364
|
+
"}",
|
|
1365
|
+
"",
|
|
1366
|
+
"export const initialVariables: Variables = {",
|
|
1367
|
+
...b.variables.map((v) => ` ${v.ident}: ${v.initial},`),
|
|
1368
|
+
"}",
|
|
1369
|
+
"",
|
|
1370
|
+
"interface Store {",
|
|
1371
|
+
" v: Variables",
|
|
1372
|
+
" set: <K extends keyof Variables>(name: K, value: Variables[K]) => void",
|
|
1373
|
+
"}",
|
|
1374
|
+
"",
|
|
1375
|
+
"const VariablesContext = createContext<Store | null>(null)",
|
|
1376
|
+
"",
|
|
1377
|
+
"export function VariablesProvider({ children }: Readonly<{ children: ReactNode }>) {",
|
|
1378
|
+
" const [v, setV] = useState(initialVariables)",
|
|
1379
|
+
" const set = useCallback(<K extends keyof Variables>(name: K, value: Variables[K]) => setV(prev => ({ ...prev, [name]: value })), [])",
|
|
1380
|
+
" const store = useMemo(() => ({ v, set }), [v, set])",
|
|
1381
|
+
" return <VariablesContext value={store}>{children}</VariablesContext>",
|
|
1382
|
+
"}",
|
|
1383
|
+
"",
|
|
1384
|
+
"/** The variables, and the way to change one. */",
|
|
1385
|
+
"export function useVariables(): Store {",
|
|
1386
|
+
" const store = useContext(VariablesContext)",
|
|
1387
|
+
" if (!store) throw new Error('useVariables is used outside VariablesProvider (app/layout.tsx)')",
|
|
1388
|
+
" return store",
|
|
1389
|
+
"}",
|
|
1390
|
+
"",
|
|
1391
|
+
"/** Where an overlay sits over the page, and how it closes (OVERLAY / SWAP in the design). */",
|
|
1392
|
+
"export interface OverlayOptions { position?: 'CENTER' | 'TOP_LEFT' | 'TOP_CENTER' | 'TOP_RIGHT' | 'BOTTOM_LEFT' | 'BOTTOM_CENTER' | 'BOTTOM_RIGHT' | 'MANUAL'; dim?: string; closeOnOutside?: boolean; offset?: { x: number; y: number } }",
|
|
1393
|
+
"interface OverlayStore { open: OverlayEntry[]; push(id: string, o?: OverlayOptions): void; swap(id: string, o?: OverlayOptions): void; close(): void }",
|
|
1394
|
+
"export interface OverlayEntry { id: string; options: OverlayOptions }",
|
|
1395
|
+
"",
|
|
1396
|
+
"const OverlayContext = createContext<OverlayStore | null>(null)",
|
|
1397
|
+
"",
|
|
1398
|
+
"/** The overlays open over the page, top last. */",
|
|
1399
|
+
"export function OverlayProvider({ children }: Readonly<{ children: ReactNode }>) {",
|
|
1400
|
+
" const [open, setOpen] = useState<OverlayEntry[]>([])",
|
|
1401
|
+
" const store = useMemo<OverlayStore>(() => ({",
|
|
1402
|
+
" open,",
|
|
1403
|
+
" push: (id, options = {}) => setOpen(prev => [...prev, { id, options }]),",
|
|
1404
|
+
" swap: (id, options = {}) => setOpen(prev => [...prev.slice(0, -1), { id, options }]),",
|
|
1405
|
+
" close: () => setOpen(prev => prev.slice(0, -1)),",
|
|
1406
|
+
" }), [open])",
|
|
1407
|
+
" return <OverlayContext value={store}>{children}</OverlayContext>",
|
|
1408
|
+
"}",
|
|
1409
|
+
"",
|
|
1410
|
+
"/** Open, swap and close overlays: `overlays.open(id, { position, dim, closeOnOutside })`. */",
|
|
1411
|
+
"export function useOverlays() {",
|
|
1412
|
+
" const store = useContext(OverlayContext)",
|
|
1413
|
+
" if (!store) throw new Error('useOverlays is used outside OverlayProvider (app/layout.tsx)')",
|
|
1414
|
+
" return { open: store.push, swap: store.swap, close: store.close, list: store.open }",
|
|
1415
|
+
"}",
|
|
1416
|
+
"",
|
|
1417
|
+
...b.server ? siteProviderSource(b.server) : [],
|
|
1418
|
+
"/** One of the expression functions (`count`, `clamp`, `today`\u2026). One that adds up records that are not here gives 0. */",
|
|
1419
|
+
"export function call(fn: string, ...args: ExprValue[]): ExprValue {",
|
|
1420
|
+
" const f = FUNCTIONS[fn]",
|
|
1421
|
+
" if (!f) return 0",
|
|
1422
|
+
" try { return f(args) } catch (e) { if (e instanceof ExprMissing) return 0; throw e }",
|
|
1423
|
+
"}",
|
|
1424
|
+
""
|
|
1425
|
+
].join("\n");
|
|
1426
|
+
}
|
|
1427
|
+
var siteSource = () => [
|
|
1428
|
+
"// Where the site is served from (NEXT_PUBLIC_SITE_URL, see .env.example): its sitemap, robots.txt and the",
|
|
1429
|
+
"// addresses social previews link to are made from it.",
|
|
1430
|
+
"export const siteUrl = new URL(process.env.NEXT_PUBLIC_SITE_URL ?? 'http://localhost:3000')",
|
|
1431
|
+
""
|
|
1432
|
+
].join("\n");
|
|
1433
|
+
var sitemapSource = (routes) => [
|
|
1434
|
+
"import type { MetadataRoute } from 'next'",
|
|
1435
|
+
"import { siteUrl } from '@/lib/site'",
|
|
1436
|
+
"",
|
|
1437
|
+
"export default function sitemap(): MetadataRoute.Sitemap {",
|
|
1438
|
+
` return ${JSON.stringify(routes)}.map(route => ({ url: new URL(route, siteUrl).href, lastModified: new Date() }))`,
|
|
1439
|
+
"}",
|
|
1440
|
+
""
|
|
1441
|
+
].join("\n");
|
|
1442
|
+
var robotsSource = () => [
|
|
1443
|
+
"import type { MetadataRoute } from 'next'",
|
|
1444
|
+
"import { siteUrl } from '@/lib/site'",
|
|
1445
|
+
"",
|
|
1446
|
+
"export default function robots(): MetadataRoute.Robots {",
|
|
1447
|
+
" return { rules: { userAgent: '*', allow: '/' }, sitemap: new URL('/sitemap.xml', siteUrl).href }",
|
|
1448
|
+
"}",
|
|
1449
|
+
""
|
|
1450
|
+
].join("\n");
|
|
1451
|
+
function readme(site, o) {
|
|
1452
|
+
const v = EXPORT_VERSIONS.packages;
|
|
1453
|
+
return `# ${site.name}
|
|
1454
|
+
|
|
1455
|
+
Exported from [PopCraft](https://popcraft.app) as a Next.js ${v.next.split(".")[0]} project (App Router, React ${v.react.split(".")[0]}, TypeScript${o.tailwind ? `, Tailwind CSS ${v.tailwindcss.split(".")[0]}` : ""}).
|
|
1456
|
+
|
|
1457
|
+
## Run it
|
|
1458
|
+
|
|
1459
|
+
You need Node.js ${EXPORT_VERSIONS.node.replace(">=", "")} or newer.
|
|
1460
|
+
|
|
1461
|
+
\`\`\`bash
|
|
1462
|
+
npm install
|
|
1463
|
+
npm run dev
|
|
1464
|
+
\`\`\`
|
|
1465
|
+
|
|
1466
|
+
Then open http://localhost:3000.
|
|
1467
|
+
|
|
1468
|
+
| Command | What it does |
|
|
1469
|
+
| --- | --- |
|
|
1470
|
+
| \`npm run dev\` | Runs the site locally, reloading as you edit |
|
|
1471
|
+
| \`npm run build\` | Builds it for production |
|
|
1472
|
+
| \`npm start\` | Serves the production build |
|
|
1473
|
+
| \`npm run lint\` | Checks the code with ESLint (Next.js's recommended rules) |
|
|
1474
|
+
| \`npm run typecheck\` | Checks the types with TypeScript |
|
|
1475
|
+
|
|
1476
|
+
## What is where
|
|
1477
|
+
|
|
1478
|
+
| Path | What it is |
|
|
1479
|
+
| --- | --- |
|
|
1480
|
+
| \`app/layout.tsx\` | The page around every route: language, fonts, the site's metadata |
|
|
1481
|
+
${o.routes.map((r) => `| \`${pageDir(r)}/page.tsx\` | \`${r}\`: its title and description, and the screen it shows |`).join("\n")}
|
|
1482
|
+
| \`app/**/screen.tsx\` | Each screen as plain TSX: real elements, links and forms. A screen that runs in the browser starts with \`'use client'\` |
|
|
1483
|
+
| \`app/globals.css\` | The design's variables${o.tailwind ? ", Tailwind," : ""} and its breakpoints as media queries |
|
|
1484
|
+
| \`app/sitemap.ts\`, \`app/robots.ts\` | \`/sitemap.xml\` and \`/robots.txt\`, from \`NEXT_PUBLIC_SITE_URL\` |
|
|
1485
|
+
| \`public/\` | The pictures, served through \`next/image\` at the size each screen needs |
|
|
1486
|
+
${o.code ? "| `components/code/` | The file's code components, as their source |\n" : ""}${o.server ? "| `app/api/popcraft/`, `lib/popcraft-server.ts` | The site's own server: forms, sign-in and each visitor's records, answered by `@popcraft/runtime/server` |\n" : ""}${o.server && Object.keys(o.server.access).length ? "| `proxy.ts` | Sends a visitor to the page for them: signed-in pages need an account, sign-in pages are for visitors without one |\n" : ""}
|
|
1487
|
+
${o.fonts.length ? `Fonts (${o.fonts.map((f) => f.family).join(", ")}) load through \`next/font/google\`: they are downloaded at build time and served from the site itself.
|
|
1488
|
+
` : ""}
|
|
1489
|
+
${o.server ? serverReadme(o.server) : ""}## Deploy
|
|
1490
|
+
|
|
1491
|
+
Set \`NEXT_PUBLIC_SITE_URL\` to the site's address (copy \`.env.example\` to \`.env.local\` for local use), then deploy
|
|
1492
|
+
anywhere that runs Next.js: Vercel, a Node server (\`npm run build && npm start\`), or a container.
|
|
1493
|
+
|
|
1494
|
+
## Exporting again
|
|
1495
|
+
|
|
1496
|
+
Exporting from PopCraft again writes these files again. Keep changes you want to survive in files of your own, or
|
|
1497
|
+
treat this project as yours from here on and stop exporting.
|
|
1498
|
+
`;
|
|
1499
|
+
}
|
|
1500
|
+
|
|
1501
|
+
// lib/io/web/project/build.ts
|
|
1502
|
+
var runtimeScript = (name) => fetch(`/pc/${name}.js?fresh=${Date.now()}`, { cache: "no-store" }).then((r) => r.ok ? r.text() : null).catch(() => null);
|
|
1503
|
+
async function appAssetFiles(paths, under = "") {
|
|
1504
|
+
const got = await Promise.all(paths.map(async (path) => {
|
|
1505
|
+
const res = await fetch(path).catch(() => null);
|
|
1506
|
+
const file = res?.ok ? { path: `${under}${path.replace(/^\//, "")}`, content: new Uint8Array(await res.arrayBuffer()) } : null;
|
|
1507
|
+
return file;
|
|
1508
|
+
}));
|
|
1509
|
+
return got.filter((f) => f !== null);
|
|
1510
|
+
}
|
|
1511
|
+
async function completeSite(doc, pageId) {
|
|
1512
|
+
const [{ previewSite }, { rendererAssetResolvers }] = await Promise.all([import("./host-27DZN23E.js"), import("./resolvers-ONCAKSTL.js")]);
|
|
1513
|
+
return previewSite(doc, pageId, rendererAssetResolvers(doc));
|
|
1514
|
+
}
|
|
1515
|
+
var NoSiteRuntime = class extends Error {
|
|
1516
|
+
constructor() {
|
|
1517
|
+
super("The site runtime is not built in this copy of the app.");
|
|
1518
|
+
}
|
|
1519
|
+
};
|
|
1520
|
+
async function nextFilesOf(full, doc, opts = {}) {
|
|
1521
|
+
const site = withoutScreenIslands(full);
|
|
1522
|
+
const islandScript = site.islands && Object.keys(site.islands).length ? await runtimeScript("island") : null;
|
|
1523
|
+
return [...nextProjectFiles(site, doc, { ...opts, islandScript }), ...await appAssetFiles(appAssetPaths(site), "public/")];
|
|
1524
|
+
}
|
|
1525
|
+
async function staticFilesOf(site, opts = {}) {
|
|
1526
|
+
const [siteJs, island, code] = await Promise.all([runtimeScript("site"), site.islands ? runtimeScript("island") : null, site.code ? runtimeScript("code") : null]);
|
|
1527
|
+
if (!siteJs) throw new NoSiteRuntime();
|
|
1528
|
+
const { t } = await import("./runtime-ZFSHTK76.js");
|
|
1529
|
+
site = { ...site, strings: { ...site.strings, formNotSent: t("siteForm.notSent") } };
|
|
1530
|
+
return [...staticSiteFiles(site, { site: siteJs, island, code }, opts), ...await appAssetFiles(appAssetPaths(site))];
|
|
1531
|
+
}
|
|
1532
|
+
|
|
1533
|
+
// lib/io/web/project/share.ts
|
|
1534
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
1535
|
+
init_scene_graph();
|
|
1536
|
+
var SHARE_WIDTH = 1200;
|
|
1537
|
+
var SHARE_HEIGHT = 630;
|
|
1538
|
+
var SHARE_MAX_BYTES = 1024 * 1024;
|
|
1539
|
+
var SHARE_DIR = "share/";
|
|
1540
|
+
function shareCrop(w, h) {
|
|
1541
|
+
const ratio = SHARE_WIDTH / SHARE_HEIGHT;
|
|
1542
|
+
if (w / h > ratio) {
|
|
1543
|
+
const cw = h * ratio;
|
|
1544
|
+
return { x: (w - cw) / 2, y: 0, w: cw, h, scale: SHARE_HEIGHT / h };
|
|
1545
|
+
}
|
|
1546
|
+
const ch = w / ratio;
|
|
1547
|
+
return { x: 0, y: 0, w, h: ch, scale: SHARE_WIDTH / w };
|
|
1548
|
+
}
|
|
1549
|
+
function shareFrameOf(doc, site, choice) {
|
|
1550
|
+
if (choice?.kind === "frame" && doc.nodes[choice.frameId]) return choice.frameId;
|
|
1551
|
+
const home = site.pages.find((p) => p.id === site.home) ?? site.pages.find((p) => !p.notFound) ?? site.pages[0];
|
|
1552
|
+
return home ? home.screen ?? home.id : null;
|
|
1553
|
+
}
|
|
1554
|
+
async function drawShareFrame(doc, frameId) {
|
|
1555
|
+
const [{ getActiveRenderer }, { encodeImageData }, { documentForExport }] = await Promise.all([
|
|
1556
|
+
import("./renderer-registry-VXOZBJ24.js"),
|
|
1557
|
+
import("./export-QMP2HMKB.js"),
|
|
1558
|
+
import("./export-fills-N6NQHC3B.js")
|
|
1559
|
+
]);
|
|
1560
|
+
const renderer = getActiveRenderer();
|
|
1561
|
+
const frame = doc.nodes[frameId];
|
|
1562
|
+
if (!renderer || !frame) return null;
|
|
1563
|
+
const shown = documentForExport(doc);
|
|
1564
|
+
const box = uprightBounds(getWorldTransform(shown, frameId), frame.width, frame.height);
|
|
1565
|
+
const crop = shareCrop(box.maxX - box.minX, box.maxY - box.minY);
|
|
1566
|
+
const bounds = { minX: box.minX + crop.x, minY: box.minY + crop.y, maxX: box.minX + crop.x + crop.w, maxY: box.minY + crop.y + crop.h };
|
|
1567
|
+
const pixels = await renderer.exportRegion([shown.nodes[frameId] ?? frame], bounds, crop.scale, shown, shown.styles, void 0, true);
|
|
1568
|
+
if (!pixels) return null;
|
|
1569
|
+
const png = await encodeImageData(pixels, "PNG");
|
|
1570
|
+
if (png && png.size <= SHARE_MAX_BYTES) return { bytes: new Uint8Array(await png.arrayBuffer()), ext: "png" };
|
|
1571
|
+
const jpg = await encodeImageData(pixels, "JPG", 0.85);
|
|
1572
|
+
return jpg ? { bytes: new Uint8Array(await jpg.arrayBuffer()), ext: "jpg" } : null;
|
|
1573
|
+
}
|
|
1574
|
+
var IMAGE_EXT = { "image/png": "png", "image/jpeg": "jpg", "image/webp": "webp", "image/gif": "gif" };
|
|
1575
|
+
async function shareImageFiles(doc, site, under = "") {
|
|
1576
|
+
const files = [];
|
|
1577
|
+
const choice = doc.site?.shareImage;
|
|
1578
|
+
if (choice?.kind === "image") {
|
|
1579
|
+
const { loadMediaBlob } = await import("./media-store-AFWF72EA.js");
|
|
1580
|
+
const blob = await loadMediaBlob(choice.src).catch(() => null);
|
|
1581
|
+
const ext = blob && IMAGE_EXT[blob.type];
|
|
1582
|
+
if (blob && ext) {
|
|
1583
|
+
const path = `${SHARE_DIR}og.${ext}`;
|
|
1584
|
+
files.push({ path: under + path, content: new Uint8Array(await blob.arrayBuffer()) });
|
|
1585
|
+
const size = await imageSize(blob);
|
|
1586
|
+
site.share = { image: path, width: size?.width ?? SHARE_WIDTH, height: size?.height ?? SHARE_HEIGHT };
|
|
1587
|
+
}
|
|
1588
|
+
}
|
|
1589
|
+
if (!site.share) {
|
|
1590
|
+
const frameId = shareFrameOf(doc, site, choice);
|
|
1591
|
+
const drawn = frameId ? await drawShareFrame(doc, frameId) : null;
|
|
1592
|
+
if (drawn) {
|
|
1593
|
+
const path = `${SHARE_DIR}og.${drawn.ext}`;
|
|
1594
|
+
files.push({ path: under + path, content: drawn.bytes });
|
|
1595
|
+
site.share = { image: path, width: SHARE_WIDTH, height: SHARE_HEIGHT };
|
|
1596
|
+
}
|
|
1597
|
+
}
|
|
1598
|
+
const drawnFor = /* @__PURE__ */ new Map();
|
|
1599
|
+
for (const page of site.pages) {
|
|
1600
|
+
const own = doc.nodes[page.screen ?? page.id]?.route?.shareImage;
|
|
1601
|
+
if (!own || !doc.nodes[own]) continue;
|
|
1602
|
+
if (!drawnFor.has(own)) {
|
|
1603
|
+
const drawn = await drawShareFrame(doc, own);
|
|
1604
|
+
const path2 = drawn ? `${SHARE_DIR}${own.replace(/[^\w-]/g, "_")}.${drawn.ext}` : null;
|
|
1605
|
+
if (drawn && path2) files.push({ path: under + path2, content: drawn.bytes });
|
|
1606
|
+
drawnFor.set(own, path2);
|
|
1607
|
+
}
|
|
1608
|
+
const path = drawnFor.get(own);
|
|
1609
|
+
if (path) page.shareImage = path;
|
|
1610
|
+
}
|
|
1611
|
+
return files;
|
|
1612
|
+
}
|
|
1613
|
+
async function imageSize(blob) {
|
|
1614
|
+
const b = new Uint8Array(await blob.slice(0, 64 * 1024).arrayBuffer());
|
|
1615
|
+
return pictureSize(b);
|
|
1616
|
+
}
|
|
1617
|
+
function pictureSize(b) {
|
|
1618
|
+
const dv = new DataView(b.buffer, b.byteOffset, b.byteLength);
|
|
1619
|
+
if (b.length > 24 && b[0] === 137 && b[1] === 80) return { width: dv.getUint32(16), height: dv.getUint32(20) };
|
|
1620
|
+
if (b[0] === 255 && b[1] === 216) {
|
|
1621
|
+
let i = 2;
|
|
1622
|
+
while (i + 9 < b.length) {
|
|
1623
|
+
if (b[i] !== 255) return null;
|
|
1624
|
+
const marker = b[i + 1];
|
|
1625
|
+
const len = dv.getUint16(i + 2);
|
|
1626
|
+
if (marker >= 192 && marker <= 207 && marker !== 196 && marker !== 200 && marker !== 204) return { height: dv.getUint16(i + 5), width: dv.getUint16(i + 7) };
|
|
1627
|
+
i += 2 + len;
|
|
1628
|
+
}
|
|
1629
|
+
}
|
|
1630
|
+
return null;
|
|
1631
|
+
}
|
|
1632
|
+
export {
|
|
1633
|
+
ASSET_DIR,
|
|
1634
|
+
NoSiteRuntime,
|
|
1635
|
+
SHARE_HEIGHT,
|
|
1636
|
+
SHARE_MAX_BYTES,
|
|
1637
|
+
SHARE_WIDTH,
|
|
1638
|
+
appAssetFiles,
|
|
1639
|
+
appAssetPaths,
|
|
1640
|
+
bytesOf,
|
|
1641
|
+
completeSite,
|
|
1642
|
+
drawShareFrame,
|
|
1643
|
+
externalizeBitmaps,
|
|
1644
|
+
nextFilesOf,
|
|
1645
|
+
nextProjectFiles,
|
|
1646
|
+
routeFile,
|
|
1647
|
+
routeUp,
|
|
1648
|
+
shareCrop,
|
|
1649
|
+
shareImageFiles,
|
|
1650
|
+
staticFilesOf,
|
|
1651
|
+
staticSiteFiles,
|
|
1652
|
+
withAssetBase
|
|
1653
|
+
};
|