@popcraft/kit 0.24.2 → 0.25.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-45ZGYKTC.js +44 -0
- package/dist/chunks/api-GWG3RH2R.js +29 -0
- package/dist/chunks/build-K6QBTLT7.js +54 -0
- package/dist/chunks/builtin-ZS3HJHZL.js +113 -0
- package/dist/chunks/check-template-RZ7IO333.js +2271 -0
- package/dist/chunks/chunk-22RNC42G.js +88 -0
- package/dist/chunks/chunk-22X32RVE.js +304 -0
- package/dist/chunks/chunk-22ZQB56G.js +83 -0
- package/dist/chunks/chunk-23CG5QSQ.js +336 -0
- package/dist/chunks/chunk-24ODLUVG.js +238 -0
- package/dist/chunks/chunk-256467CL.js +80 -0
- package/dist/chunks/chunk-25EEF4UJ.js +55 -0
- package/dist/chunks/chunk-25FM5JIR.js +33 -0
- package/dist/chunks/chunk-26CY425H.js +82 -0
- package/dist/chunks/chunk-26GTJDKR.js +84 -0
- package/dist/chunks/chunk-27EVM272.js +260 -0
- package/dist/chunks/chunk-2AQK4IIV.js +199 -0
- package/dist/chunks/chunk-2BJT7OHE.js +106 -0
- package/dist/chunks/chunk-2CXMXFAW.js +46 -0
- package/dist/chunks/chunk-2DVF7PPY.js +256 -0
- package/dist/chunks/chunk-2DYV25E5.js +179 -0
- package/dist/chunks/chunk-2ELQVHTV.js +119 -0
- package/dist/chunks/chunk-2ESYJQRX.js +330 -0
- package/dist/chunks/chunk-2F5X6FRA.js +33 -0
- package/dist/chunks/chunk-2F7QJD6Q.js +149 -0
- package/dist/chunks/chunk-2FNVNBED.js +106 -0
- package/dist/chunks/chunk-2HG5MVF6.js +102 -0
- package/dist/chunks/chunk-2IPINHWY.js +242 -0
- package/dist/chunks/chunk-2IQICEEP.js +98 -0
- package/dist/chunks/chunk-2JBFGO4J.js +126 -0
- package/dist/chunks/chunk-2LQGEK5W.js +187 -0
- package/dist/chunks/chunk-2NOYW7U5.js +110 -0
- package/dist/chunks/chunk-2O2RYIOB.js +112 -0
- package/dist/chunks/chunk-2OFFK3MV.js +107 -0
- package/dist/chunks/chunk-2OQJT3F6.js +108 -0
- package/dist/chunks/chunk-2PLOMY6Q.js +130 -0
- package/dist/chunks/chunk-2TVQYCDW.js +23 -0
- package/dist/chunks/chunk-2VSWD2HJ.js +146 -0
- package/dist/chunks/chunk-2WAL6YCH.js +92 -0
- package/dist/chunks/chunk-2WQHUA67.js +258 -0
- package/dist/chunks/chunk-2XZW35C4.js +327 -0
- package/dist/chunks/chunk-32E3YATK.js +23 -0
- package/dist/chunks/chunk-32V4D45K.js +103 -0
- package/dist/chunks/chunk-36SDNHYF.js +196 -0
- package/dist/chunks/chunk-36VXBMLU.js +97 -0
- package/dist/chunks/chunk-3B5AXYYL.js +166 -0
- package/dist/chunks/chunk-3BUB46T5.js +122 -0
- package/dist/chunks/chunk-3CCNGD3B.js +18 -0
- package/dist/chunks/chunk-3DWOQ4LW.js +28 -0
- package/dist/chunks/chunk-3ENDXJW7.js +100 -0
- package/dist/chunks/chunk-3FMRMDP6.js +84 -0
- package/dist/chunks/chunk-3FOT7NVR.js +194 -0
- package/dist/chunks/chunk-3HDJLLZM.js +50 -0
- package/dist/chunks/chunk-3HXGYSL5.js +261 -0
- package/dist/chunks/chunk-3LPEZVYI.js +115 -0
- package/dist/chunks/chunk-3N5NAHPY.js +110 -0
- package/dist/chunks/chunk-3NCU3RLR.js +150 -0
- package/dist/chunks/chunk-3NYC62VG.js +282 -0
- package/dist/chunks/chunk-3PL2BEUY.js +331 -0
- package/dist/chunks/chunk-3QIDCP4M.js +33 -0
- package/dist/chunks/chunk-3RL4MRQT.js +123 -0
- package/dist/chunks/chunk-3RWLFAIA.js +197 -0
- package/dist/chunks/chunk-3SFLKXF3.js +117 -0
- package/dist/chunks/chunk-3TCAZ447.js +105 -0
- package/dist/chunks/chunk-3UIQQSHY.js +362 -0
- package/dist/chunks/chunk-3W2MSVJA.js +564 -0
- package/dist/chunks/chunk-3XP3ON6M.js +206 -0
- package/dist/chunks/chunk-3YFJ5CDS.js +94 -0
- package/dist/chunks/chunk-43LSJUG4.js +214 -0
- package/dist/chunks/chunk-44GLC6RY.js +161 -0
- package/dist/chunks/chunk-44JKPK6Q.js +270 -0
- package/dist/chunks/chunk-45437ZJN.js +108 -0
- package/dist/chunks/chunk-47HWZ6LP.js +168 -0
- package/dist/chunks/chunk-47VVF5TM.js +49 -0
- package/dist/chunks/chunk-4A5B7J2G.js +172 -0
- package/dist/chunks/chunk-4BSNZ6JA.js +77 -0
- package/dist/chunks/chunk-4BSSD4KD.js +898 -0
- package/dist/chunks/chunk-4CUMZUKO.js +23 -0
- package/dist/chunks/chunk-4DTENBJJ.js +136 -0
- package/dist/chunks/chunk-4FSACN3Q.js +152 -0
- package/dist/chunks/chunk-4HW7YYWZ.js +88 -0
- package/dist/chunks/chunk-4MP4PZTT.js +303 -0
- package/dist/chunks/chunk-4N72M4CD.js +150 -0
- package/dist/chunks/chunk-4O6DHCVV.js +97 -0
- package/dist/chunks/chunk-4OFCQIRH.js +206 -0
- package/dist/chunks/chunk-4QBQ4RAA.js +1649 -0
- package/dist/chunks/chunk-4QF2DSIQ.js +95 -0
- package/dist/chunks/chunk-4RH2TPRU.js +127 -0
- package/dist/chunks/chunk-4S64KGGB.js +78 -0
- package/dist/chunks/chunk-4SGCHV6F.js +77 -0
- package/dist/chunks/chunk-4SPXP5Z4.js +114 -0
- package/dist/chunks/chunk-4T3VUR2E.js +23 -0
- package/dist/chunks/chunk-4TPWXYGK.js +263 -0
- package/dist/chunks/chunk-4UXEXYYZ.js +239 -0
- package/dist/chunks/chunk-4Y7SXYC4.js +172 -0
- package/dist/chunks/chunk-4YFMC6OS.js +142 -0
- package/dist/chunks/chunk-4ZLRNUKR.js +231 -0
- package/dist/chunks/chunk-55L54JVS.js +78 -0
- package/dist/chunks/chunk-57MSU3KE.js +161 -0
- package/dist/chunks/chunk-5F5ZFFCC.js +126 -0
- package/dist/chunks/chunk-5FT63PG7.js +89 -0
- package/dist/chunks/chunk-5GGBYBUJ.js +279 -0
- package/dist/chunks/chunk-5HG4LWF5.js +11413 -0
- package/dist/chunks/chunk-5IS5RIGV.js +163 -0
- package/dist/chunks/chunk-5KABUIFE.js +84 -0
- package/dist/chunks/chunk-5KHX4PDB.js +154 -0
- package/dist/chunks/chunk-5LC4LLR4.js +180 -0
- package/dist/chunks/chunk-5MUQTPV6.js +84 -0
- package/dist/chunks/chunk-5O42E2RM.js +123 -0
- package/dist/chunks/chunk-5P2EXDJP.js +215 -0
- package/dist/chunks/chunk-5PSXZIHG.js +152 -0
- package/dist/chunks/chunk-5RAHZBBI.js +123 -0
- package/dist/chunks/chunk-5RW35U7H.js +230 -0
- package/dist/chunks/chunk-5RWKRO3R.js +290 -0
- package/dist/chunks/chunk-5SMOILSW.js +180 -0
- package/dist/chunks/chunk-5SOQ25Y3.js +23 -0
- package/dist/chunks/chunk-5THOAXJD.js +70 -0
- package/dist/chunks/chunk-5WGMPGKY.js +558 -0
- package/dist/chunks/chunk-63KB2ADE.js +146 -0
- package/dist/chunks/chunk-63X37RCC.js +10182 -0
- package/dist/chunks/chunk-64W72FBA.js +149 -0
- package/dist/chunks/chunk-6B5LGLOO.js +83 -0
- package/dist/chunks/chunk-6DJXV5QV.js +287 -0
- package/dist/chunks/chunk-6DSIW7GV.js +82 -0
- package/dist/chunks/chunk-6EGC5MGK.js +138 -0
- package/dist/chunks/chunk-6F26W53D.js +77 -0
- package/dist/chunks/chunk-6GM3RIOH.js +125 -0
- package/dist/chunks/chunk-6GOO2NM3.js +226 -0
- package/dist/chunks/chunk-6HDJX7JF.js +76 -0
- package/dist/chunks/chunk-6IYYE372.js +272 -0
- package/dist/chunks/chunk-6M2KLG7B.js +329 -0
- package/dist/chunks/chunk-6N6ATVYJ.js +155 -0
- package/dist/chunks/chunk-6NG5K7WN.js +33 -0
- package/dist/chunks/chunk-6SJWEO74.js +85 -0
- package/dist/chunks/chunk-6SZNU4JY.js +106 -0
- package/dist/chunks/chunk-6TJIEERG.js +210 -0
- package/dist/chunks/chunk-6UJOR3YF.js +957 -0
- package/dist/chunks/chunk-6V2VBW6C.js +159 -0
- package/dist/chunks/chunk-6VCQ4ZEG.js +103 -0
- package/dist/chunks/chunk-6XTIWLHK.js +240 -0
- package/dist/chunks/chunk-6Z5GDKOE.js +80 -0
- package/dist/chunks/chunk-724K6YSI.js +23 -0
- package/dist/chunks/chunk-72LCYQBN.js +182 -0
- package/dist/chunks/chunk-72QPCPDS.js +131 -0
- package/dist/chunks/chunk-73HFERF5.js +181 -0
- package/dist/chunks/chunk-74XEAEQZ.js +171 -0
- package/dist/chunks/chunk-76KELGDG.js +282 -0
- package/dist/chunks/chunk-77TKKLAS.js +101 -0
- package/dist/chunks/chunk-77XDHDHG.js +163 -0
- package/dist/chunks/chunk-7AKS6GMG.js +159 -0
- package/dist/chunks/chunk-7AMD4YA7.js +41 -0
- package/dist/chunks/chunk-7BDCMMSD.js +36 -0
- package/dist/chunks/chunk-7BDWH6IE.js +100 -0
- package/dist/chunks/chunk-7DUVPXBP.js +90 -0
- package/dist/chunks/chunk-7E2R7GYC.js +193 -0
- package/dist/chunks/chunk-7EDFXCY7.js +131 -0
- package/dist/chunks/chunk-7ENRTJY5.js +209 -0
- package/dist/chunks/chunk-7EZFQO5N.js +366 -0
- package/dist/chunks/chunk-7FRGENTQ.js +157 -0
- package/dist/chunks/chunk-7HOSZARG.js +190 -0
- package/dist/chunks/chunk-7M53WPLD.js +155 -0
- package/dist/chunks/chunk-7N2K5NME.js +626 -0
- package/dist/chunks/chunk-7N7GWTB5.js +139 -0
- package/dist/chunks/chunk-7NSEEIMJ.js +79 -0
- package/dist/chunks/chunk-7QKHLQUO.js +36 -0
- package/dist/chunks/chunk-7QKM7NQS.js +23 -0
- package/dist/chunks/chunk-7SKWTK22.js +262 -0
- package/dist/chunks/chunk-7SLCDCQ3.js +297 -0
- package/dist/chunks/chunk-7UVHFYHJ.js +204 -0
- package/dist/chunks/chunk-7VRAKURD.js +121 -0
- package/dist/chunks/chunk-A4XS6G7W.js +47 -0
- package/dist/chunks/chunk-A7X53FKW.js +304 -0
- package/dist/chunks/chunk-ACMYWNPT.js +111 -0
- package/dist/chunks/chunk-ACTNHKOC.js +178 -0
- package/dist/chunks/chunk-ADZXK6SM.js +90 -0
- package/dist/chunks/chunk-AE6S2M2B.js +651 -0
- package/dist/chunks/chunk-AFBTJOJP.js +86 -0
- package/dist/chunks/chunk-AHX2V3K2.js +47 -0
- package/dist/chunks/chunk-AKEFHBZF.js +167 -0
- package/dist/chunks/chunk-AM4QLGDM.js +33 -0
- package/dist/chunks/chunk-AN772BNF.js +174 -0
- package/dist/chunks/chunk-AP7PHJ54.js +312 -0
- package/dist/chunks/chunk-APM3D23V.js +23 -0
- package/dist/chunks/chunk-AQSN5T2U.js +23 -0
- package/dist/chunks/chunk-AS3ZILTF.js +224 -0
- package/dist/chunks/chunk-ASVDOX62.js +33 -0
- package/dist/chunks/chunk-ASWAIYNC.js +887 -0
- package/dist/chunks/chunk-ASXV6WER.js +133 -0
- package/dist/chunks/chunk-AUK3VYPV.js +172 -0
- package/dist/chunks/chunk-AV7BMDYY.js +231 -0
- package/dist/chunks/chunk-AVCNIKVD.js +305 -0
- package/dist/chunks/chunk-AXNE5CPD.js +81 -0
- package/dist/chunks/chunk-AYVAHMWQ.js +30 -0
- package/dist/chunks/chunk-AZJOPK75.js +23 -0
- package/dist/chunks/chunk-AZKFF4A7.js +165 -0
- package/dist/chunks/chunk-AZKWGJHU.js +176 -0
- package/dist/chunks/chunk-AZMKBVZR.js +368 -0
- package/dist/chunks/chunk-B3ASV6KS.js +33 -0
- package/dist/chunks/chunk-B53ZGR2D.js +77 -0
- package/dist/chunks/chunk-B6GIKFBY.js +33 -0
- package/dist/chunks/chunk-BBGUFVH3.js +176 -0
- package/dist/chunks/chunk-BDP4IUZA.js +76 -0
- package/dist/chunks/chunk-BEH5PYCR.js +23 -0
- package/dist/chunks/chunk-BH2NRUV6.js +382 -0
- package/dist/chunks/chunk-BHIV4SVT.js +110 -0
- package/dist/chunks/chunk-BHV6LKWO.js +229 -0
- package/dist/chunks/chunk-BKCV2KLZ.js +133 -0
- package/dist/chunks/chunk-BLRRMMWM.js +33 -0
- package/dist/chunks/chunk-BNQAMFPH.js +153 -0
- package/dist/chunks/chunk-BOSFGFH5.js +49 -0
- package/dist/chunks/chunk-BP5QXJ3Q.js +261 -0
- package/dist/chunks/chunk-BPWIA36F.js +150 -0
- package/dist/chunks/chunk-BSLTAZD7.js +358 -0
- package/dist/chunks/chunk-BT7BXCO6.js +156 -0
- package/dist/chunks/chunk-BU67IXGP.js +128 -0
- package/dist/chunks/chunk-BV3I5YS6.js +226 -0
- package/dist/chunks/chunk-BYRALMQM.js +83 -0
- package/dist/chunks/chunk-C22YM3DB.js +77 -0
- package/dist/chunks/chunk-C2ZDZ44Y.js +375 -0
- package/dist/chunks/chunk-C3RQ5SGY.js +45 -0
- package/dist/chunks/chunk-C4FJZ76B.js +260 -0
- package/dist/chunks/chunk-C5AANG72.js +342 -0
- package/dist/chunks/chunk-C5VOY23E.js +210 -0
- package/dist/chunks/chunk-C6ZEZXKS.js +224 -0
- package/dist/chunks/chunk-C75JHOW3.js +237 -0
- package/dist/chunks/chunk-CA2XT44T.js +87 -0
- package/dist/chunks/chunk-CANJ4WFS.js +255 -0
- package/dist/chunks/chunk-CB64COUY.js +164 -0
- package/dist/chunks/chunk-CBR626SM.js +204 -0
- package/dist/chunks/chunk-CDZWU24V.js +91 -0
- package/dist/chunks/chunk-CFCZFVQN.js +23 -0
- package/dist/chunks/chunk-CFQF557I.js +156 -0
- package/dist/chunks/chunk-CG3NLQKA.js +138 -0
- package/dist/chunks/chunk-CGVEBU5T.js +106 -0
- package/dist/chunks/chunk-CGVMRHEJ.js +55 -0
- package/dist/chunks/chunk-CIYZFYTU.js +262 -0
- package/dist/chunks/chunk-CJY4TNOS.js +217 -0
- package/dist/chunks/chunk-CLRKVDHX.js +33 -0
- package/dist/chunks/chunk-CMNLTO3U.js +147 -0
- package/dist/chunks/chunk-CN6HEOMF.js +81 -0
- package/dist/chunks/chunk-CNB5IKP2.js +198 -0
- package/dist/chunks/chunk-CNKUEB3Y.js +163 -0
- package/dist/chunks/chunk-CNTK4ONT.js +139 -0
- package/dist/chunks/chunk-CQJCZAFT.js +119 -0
- package/dist/chunks/chunk-CSIACK6R.js +108 -0
- package/dist/chunks/chunk-CTKQX7PC.js +225 -0
- package/dist/chunks/chunk-CWIB2O47.js +78 -0
- package/dist/chunks/chunk-CXUXO5UA.js +151 -0
- package/dist/chunks/chunk-CYF4ZKFJ.js +221 -0
- package/dist/chunks/chunk-CYMLYHO4.js +121 -0
- package/dist/chunks/chunk-CYRHW6XG.js +351 -0
- package/dist/chunks/chunk-CZP6ZUR4.js +78 -0
- package/dist/chunks/chunk-D22534DX.js +45 -0
- package/dist/chunks/chunk-D374E5AW.js +113 -0
- package/dist/chunks/chunk-D4W4BCRH.js +391 -0
- package/dist/chunks/chunk-D7GKEYFB.js +293 -0
- package/dist/chunks/chunk-DCP2C3W2.js +104 -0
- package/dist/chunks/chunk-DDM4OFVP.js +1469 -0
- package/dist/chunks/chunk-DEZMWNNV.js +304 -0
- package/dist/chunks/chunk-DFWBCNW5.js +213 -0
- package/dist/chunks/chunk-DIBIREY3.js +154 -0
- package/dist/chunks/chunk-DJNTNPZ7.js +362 -0
- package/dist/chunks/chunk-DK4X3E45.js +33 -0
- package/dist/chunks/chunk-DNF4YSRZ.js +208 -0
- package/dist/chunks/chunk-DNL4EXWP.js +162 -0
- package/dist/chunks/chunk-DO3MEP2E.js +171 -0
- package/dist/chunks/chunk-DPCVPV7J.js +95 -0
- package/dist/chunks/chunk-DQDLGCVI.js +192 -0
- package/dist/chunks/chunk-DQHKV663.js +189 -0
- package/dist/chunks/chunk-DQNVUAF5.js +87 -0
- package/dist/chunks/chunk-DQQNEJYQ.js +166 -0
- package/dist/chunks/chunk-DSN4WQA2.js +44 -0
- package/dist/chunks/chunk-DTFBGVE2.js +36 -0
- package/dist/chunks/chunk-DTSZBMUF.js +152 -0
- package/dist/chunks/chunk-DVP23MAI.js +33 -0
- package/dist/chunks/chunk-DWJLDYGN.js +177 -0
- package/dist/chunks/chunk-DY77NFNR.js +93 -0
- package/dist/chunks/chunk-DZDTVMUO.js +33 -0
- package/dist/chunks/chunk-E46INOES.js +156 -0
- package/dist/chunks/chunk-E4SLYKH3.js +273 -0
- package/dist/chunks/chunk-E5UBHJFU.js +23 -0
- package/dist/chunks/chunk-E7A7FZN7.js +41 -0
- package/dist/chunks/chunk-EAAUKDKB.js +151 -0
- package/dist/chunks/chunk-ECHHT5KG.js +237 -0
- package/dist/chunks/chunk-EDCBYEZA.js +155 -0
- package/dist/chunks/chunk-EDOA5X6N.js +147 -0
- package/dist/chunks/chunk-EFDBUY67.js +33 -0
- package/dist/chunks/chunk-EKIQ77SE.js +23 -0
- package/dist/chunks/chunk-EKV2YWKB.js +235 -0
- package/dist/chunks/chunk-EMJBEROR.js +195 -0
- package/dist/chunks/chunk-EN3ISMEG.js +200 -0
- package/dist/chunks/chunk-ERHSB56N.js +156 -0
- package/dist/chunks/chunk-ESTEDS6U.js +50 -0
- package/dist/chunks/chunk-ESWKMEN4.js +41 -0
- package/dist/chunks/chunk-EVWOOAWA.js +105 -0
- package/dist/chunks/chunk-EZSF53X5.js +127 -0
- package/dist/chunks/chunk-EZYGPG5J.js +100 -0
- package/dist/chunks/chunk-F472JWP3.js +1136 -0
- package/dist/chunks/chunk-F5O6RPON.js +111 -0
- package/dist/chunks/chunk-F7MV2OYN.js +93 -0
- package/dist/chunks/chunk-FAMBXRBM.js +251 -0
- package/dist/chunks/chunk-FAVZ6IES.js +104 -0
- package/dist/chunks/chunk-FB3SYMQT.js +137 -0
- package/dist/chunks/chunk-FCK5SPO3.js +23 -0
- package/dist/chunks/chunk-FE5PINIC.js +97 -0
- package/dist/chunks/chunk-FHM2ZUO2.js +72 -0
- package/dist/chunks/chunk-FILU522C.js +165 -0
- package/dist/chunks/chunk-FJ65KAV5.js +283 -0
- package/dist/chunks/chunk-FLISMK7J.js +153 -0
- package/dist/chunks/chunk-FNCSG23N.js +122 -0
- package/dist/chunks/chunk-FOH67YBV.js +358 -0
- package/dist/chunks/chunk-FOHHZR6N.js +257 -0
- package/dist/chunks/chunk-FOM33PRI.js +33 -0
- package/dist/chunks/chunk-FP7A5CNE.js +299 -0
- package/dist/chunks/chunk-FRXYC2BB.js +39 -0
- package/dist/chunks/chunk-FSYAKL3Y.js +307 -0
- package/dist/chunks/chunk-FV6XRGFE.js +98 -0
- package/dist/chunks/chunk-FXND5ZPI.js +78 -0
- package/dist/chunks/chunk-FY3KUEGM.js +166 -0
- package/dist/chunks/chunk-FYZYHQSN.js +345 -0
- package/dist/chunks/chunk-G3UWLHYD.js +179 -0
- package/dist/chunks/chunk-G3ZX4RJK.js +149 -0
- package/dist/chunks/chunk-G4DYR4AR.js +79 -0
- package/dist/chunks/chunk-G4XRS4WU.js +30 -0
- package/dist/chunks/chunk-GAQD6CN2.js +206 -0
- package/dist/chunks/chunk-GCRVK2FA.js +178 -0
- package/dist/chunks/chunk-GCXA75PM.js +23 -0
- package/dist/chunks/chunk-GCZNQTN6.js +290 -0
- package/dist/chunks/chunk-GDLNXNTG.js +84 -0
- package/dist/chunks/chunk-GFF5YWWB.js +79 -0
- package/dist/chunks/chunk-GFTON6F3.js +80 -0
- package/dist/chunks/chunk-GGZ2QH2M.js +104 -0
- package/dist/chunks/chunk-GIAW3KAV.js +181 -0
- package/dist/chunks/chunk-GKAERJSI.js +177 -0
- package/dist/chunks/chunk-GLEAW73L.js +23 -0
- package/dist/chunks/chunk-GLIYS64Y.js +87 -0
- package/dist/chunks/chunk-GLMZTQBN.js +155 -0
- package/dist/chunks/chunk-GNMYTM2B.js +77 -0
- package/dist/chunks/chunk-GO4HBL64.js +336 -0
- package/dist/chunks/chunk-GRL2GMU2.js +109 -0
- package/dist/chunks/chunk-GTRURIIB.js +124 -0
- package/dist/chunks/chunk-GXIBN73T.js +109 -0
- package/dist/chunks/chunk-GYXGO45B.js +97 -0
- package/dist/chunks/chunk-H35YLZV2.js +102 -0
- package/dist/chunks/chunk-H6JBVJZI.js +150 -0
- package/dist/chunks/chunk-HCJ4YARL.js +125 -0
- package/dist/chunks/chunk-HCQULFUV.js +84 -0
- package/dist/chunks/chunk-HD2ZBLFU.js +90 -0
- package/dist/chunks/chunk-HEBHBZLM.js +311 -0
- package/dist/chunks/chunk-HGIWP5WW.js +98 -0
- package/dist/chunks/chunk-HGTM2JVZ.js +117 -0
- package/dist/chunks/chunk-HILEPJJO.js +103 -0
- package/dist/chunks/chunk-HJIMF4NA.js +90 -0
- package/dist/chunks/chunk-HKFNGEB3.js +123 -0
- package/dist/chunks/chunk-HKXNKW7E.js +101 -0
- package/dist/chunks/chunk-HMDWUWJW.js +101 -0
- package/dist/chunks/chunk-HMGAJTTK.js +74 -0
- package/dist/chunks/chunk-HN5S47VT.js +74 -0
- package/dist/chunks/chunk-HOLXUB2D.js +151 -0
- package/dist/chunks/chunk-HQGZZ2MK.js +462 -0
- package/dist/chunks/chunk-HQYZ4URA.js +36 -0
- package/dist/chunks/chunk-HR7HCFPX.js +10425 -0
- package/dist/chunks/chunk-HUI5HRI4.js +150 -0
- package/dist/chunks/chunk-HV3V64AV.js +360 -0
- package/dist/chunks/chunk-HVD6EQ67.js +139 -0
- package/dist/chunks/chunk-HXWTRCDP.js +92 -0
- package/dist/chunks/chunk-HY7VMP6F.js +111 -0
- package/dist/chunks/chunk-HYBRRA6A.js +221 -0
- package/dist/chunks/chunk-I4B6OO22.js +123 -0
- package/dist/chunks/chunk-I5KJ4RYI.js +165 -0
- package/dist/chunks/chunk-I75EHXSL.js +607 -0
- package/dist/chunks/chunk-IAK4EGOW.js +149 -0
- package/dist/chunks/chunk-IB36KOAE.js +60 -0
- package/dist/chunks/chunk-IC7274GH.js +209 -0
- package/dist/chunks/chunk-ID6YV4QF.js +184 -0
- package/dist/chunks/chunk-IECJMYFV.js +30 -0
- package/dist/chunks/chunk-IFJTWD4O.js +45 -0
- package/dist/chunks/chunk-IGDTOI5Y.js +62 -0
- package/dist/chunks/chunk-IHCLOKGO.js +346 -0
- package/dist/chunks/chunk-INFIFTBV.js +1393 -0
- package/dist/chunks/chunk-IPFF7BV7.js +153 -0
- package/dist/chunks/chunk-IPHFL5G7.js +97 -0
- package/dist/chunks/chunk-IPJBL73R.js +197 -0
- package/dist/chunks/chunk-ISAKZHVA.js +83 -0
- package/dist/chunks/chunk-ISRWSG4R.js +99 -0
- package/dist/chunks/chunk-IT6MNS4P.js +220 -0
- package/dist/chunks/chunk-ITSYENCT.js +48 -0
- package/dist/chunks/chunk-IUTLSBIH.js +101 -0
- package/dist/chunks/chunk-IVBJ7MTY.js +33 -0
- package/dist/chunks/chunk-IW4QEOOY.js +127 -0
- package/dist/chunks/chunk-IYCYJMDY.js +260 -0
- package/dist/chunks/chunk-IYLSH7NQ.js +23 -0
- package/dist/chunks/chunk-IYXO7S7X.js +23 -0
- package/dist/chunks/chunk-J36GQWWD.js +45 -0
- package/dist/chunks/chunk-J3D62BAC.js +172 -0
- package/dist/chunks/chunk-J3MLEXQ6.js +336 -0
- package/dist/chunks/chunk-J3R3YGHV.js +152 -0
- package/dist/chunks/chunk-J45SHRHA.js +158 -0
- package/dist/chunks/chunk-J4PFKKUW.js +250 -0
- package/dist/chunks/chunk-J57CGYSM.js +18 -0
- package/dist/chunks/chunk-J7W7SQCY.js +23 -0
- package/dist/chunks/chunk-JABQYQ3C.js +163 -0
- package/dist/chunks/chunk-JAEO6PTM.js +146 -0
- package/dist/chunks/chunk-JF2L6WGC.js +287 -0
- package/dist/chunks/chunk-JG2LOE5P.js +140 -0
- package/dist/chunks/chunk-JGEUCDS4.js +134 -0
- package/dist/chunks/chunk-JHHE6IFQ.js +213 -0
- package/dist/chunks/chunk-JHLS7WVH.js +108 -0
- package/dist/chunks/chunk-JLACP7US.js +1574 -0
- package/dist/chunks/chunk-JMGTVSNK.js +525 -0
- package/dist/chunks/chunk-JN6KGF3X.js +133 -0
- package/dist/chunks/chunk-JOTVTAJI.js +214 -0
- package/dist/chunks/chunk-JPDFMQSK.js +324 -0
- package/dist/chunks/chunk-JPH6HOYU.js +33 -0
- package/dist/chunks/chunk-JTLIJUQC.js +33 -0
- package/dist/chunks/chunk-JTOSIMQO.js +45 -0
- package/dist/chunks/chunk-JTSHQ227.js +95 -0
- package/dist/chunks/chunk-JVXBAZF5.js +23 -0
- package/dist/chunks/chunk-JWLR6K62.js +36 -0
- package/dist/chunks/chunk-K3SIJ67O.js +196 -0
- package/dist/chunks/chunk-K5JPN3KA.js +331 -0
- package/dist/chunks/chunk-KBOQAVP2.js +23 -0
- package/dist/chunks/chunk-KCZFJR2O.js +23 -0
- package/dist/chunks/chunk-KF2J5RLA.js +122 -0
- package/dist/chunks/chunk-KFGD6HPK.js +104 -0
- package/dist/chunks/chunk-KFUB6AC4.js +142 -0
- package/dist/chunks/chunk-KG6CLCGF.js +33 -0
- package/dist/chunks/chunk-KM2NXI5U.js +283 -0
- package/dist/chunks/chunk-KOFUYOXO.js +23 -0
- package/dist/chunks/chunk-KPGLCEH4.js +100 -0
- package/dist/chunks/chunk-KQVK5ZZB.js +118 -0
- package/dist/chunks/chunk-KSSWISRP.js +98 -0
- package/dist/chunks/chunk-KU6XT3MP.js +146 -0
- package/dist/chunks/chunk-KZ4WXZP5.js +255 -0
- package/dist/chunks/chunk-KZOULL5H.js +66 -0
- package/dist/chunks/chunk-L2EAL33W.js +152 -0
- package/dist/chunks/chunk-L5GYVSSI.js +198 -0
- package/dist/chunks/chunk-L5WK53H5.js +123 -0
- package/dist/chunks/chunk-L6ADBDJR.js +738 -0
- package/dist/chunks/chunk-LEB5TCN5.js +80 -0
- package/dist/chunks/chunk-LFYNAAAQ.js +36 -0
- package/dist/chunks/chunk-LG4D3XGQ.js +100 -0
- package/dist/chunks/chunk-LGZJHZFS.js +303 -0
- package/dist/chunks/chunk-LHMKJ6EW.js +115 -0
- package/dist/chunks/chunk-LJSDX4WU.js +33 -0
- package/dist/chunks/chunk-LKCPVFHU.js +80 -0
- package/dist/chunks/chunk-LKSMH2XN.js +110 -0
- package/dist/chunks/chunk-LKWODNCS.js +52 -0
- package/dist/chunks/chunk-LLCSM3VJ.js +130 -0
- package/dist/chunks/chunk-LMWBMMIP.js +120 -0
- package/dist/chunks/chunk-LN562MQ2.js +106 -0
- package/dist/chunks/chunk-LOZ3AMP2.js +165 -0
- package/dist/chunks/chunk-LPDOTFUB.js +122 -0
- package/dist/chunks/chunk-LQ4PKHSX.js +361 -0
- package/dist/chunks/chunk-LQRDKA4Q.js +99 -0
- package/dist/chunks/chunk-LS4GYIM5.js +83 -0
- package/dist/chunks/chunk-LSBPW77M.js +145 -0
- package/dist/chunks/chunk-LTJSNXAU.js +152 -0
- package/dist/chunks/chunk-LUBK7P37.js +135 -0
- package/dist/chunks/chunk-LUEPTDAU.js +79 -0
- package/dist/chunks/chunk-LUFQLTSZ.js +222 -0
- package/dist/chunks/chunk-LUJ7T65D.js +497 -0
- package/dist/chunks/chunk-LXMGMNST.js +317 -0
- package/dist/chunks/chunk-LYGJQA2W.js +209 -0
- package/dist/chunks/chunk-M3LJESEK.js +85 -0
- package/dist/chunks/chunk-M3P4VTFE.js +160 -0
- package/dist/chunks/chunk-M4XV5HU2.js +89 -0
- package/dist/chunks/chunk-M5Y63HCO.js +23 -0
- package/dist/chunks/chunk-M6OJ6XUH.js +119 -0
- package/dist/chunks/chunk-MBJ6CWMZ.js +1309 -0
- package/dist/chunks/chunk-MCUL7OFO.js +45 -0
- package/dist/chunks/chunk-ME5GU26W.js +135 -0
- package/dist/chunks/chunk-MEQIP72O.js +23 -0
- package/dist/chunks/chunk-MGSJUGYI.js +94 -0
- package/dist/chunks/chunk-MMNAEEBH.js +194 -0
- package/dist/chunks/chunk-MOXE2LVS.js +102 -0
- package/dist/chunks/chunk-MPI6SCA7.js +574 -0
- package/dist/chunks/chunk-MQSAGHE4.js +33 -0
- package/dist/chunks/chunk-MT3MXO75.js +164 -0
- package/dist/chunks/chunk-MVFPEBMY.js +45 -0
- package/dist/chunks/chunk-MVFTU7FR.js +209 -0
- package/dist/chunks/chunk-MVXK7NGK.js +54 -0
- package/dist/chunks/chunk-MW5F26D6.js +85 -0
- package/dist/chunks/chunk-MWFJ6YVW.js +366 -0
- package/dist/chunks/chunk-N2A7IYXU.js +162 -0
- package/dist/chunks/chunk-N2FYMBGZ.js +41 -0
- package/dist/chunks/chunk-N33LTG5A.js +260 -0
- package/dist/chunks/chunk-N345MTET.js +160 -0
- package/dist/chunks/chunk-N43G5CHB.js +209 -0
- package/dist/chunks/chunk-N63AM3TR.js +147 -0
- package/dist/chunks/chunk-N6SUNRFK.js +106 -0
- package/dist/chunks/chunk-N7BK7VCE.js +94 -0
- package/dist/chunks/chunk-NA3X3BNK.js +173 -0
- package/dist/chunks/chunk-NAKOHNB4.js +185 -0
- package/dist/chunks/chunk-NBRDSCXS.js +198 -0
- package/dist/chunks/chunk-NDLYUJLN.js +183 -0
- package/dist/chunks/chunk-NHOHED2C.js +170 -0
- package/dist/chunks/chunk-NHXNUDC5.js +45 -0
- package/dist/chunks/chunk-NKS4IWYD.js +68 -0
- package/dist/chunks/chunk-NKWAANLB.js +85 -0
- package/dist/chunks/chunk-NL5MEACK.js +70 -0
- package/dist/chunks/chunk-NLHAWQLO.js +128 -0
- package/dist/chunks/chunk-NLXZ5RAL.js +261 -0
- package/dist/chunks/chunk-NN73C6Y6.js +86 -0
- package/dist/chunks/chunk-NN7PTVAW.js +106 -0
- package/dist/chunks/chunk-NRCJJZBK.js +60 -0
- package/dist/chunks/chunk-NRUR2FZE.js +775 -0
- package/dist/chunks/chunk-NSF57CYY.js +164 -0
- package/dist/chunks/chunk-NSLWQ5ZB.js +278 -0
- package/dist/chunks/chunk-NU33AI32.js +23 -0
- package/dist/chunks/chunk-NV2MVWWL.js +157 -0
- package/dist/chunks/chunk-NWIUPME5.js +91 -0
- package/dist/chunks/chunk-NYEE6XK7.js +23 -0
- package/dist/chunks/chunk-NYYN7YE7.js +78 -0
- package/dist/chunks/chunk-O24FY473.js +43 -0
- package/dist/chunks/chunk-O2CAGN6R.js +90 -0
- package/dist/chunks/chunk-O5WFLCVU.js +146 -0
- package/dist/chunks/chunk-O5WPFOA3.js +169 -0
- package/dist/chunks/chunk-OCSLBM6W.js +200 -0
- package/dist/chunks/chunk-OFBMLZOA.js +226 -0
- package/dist/chunks/chunk-OG3LNFZ7.js +1403 -0
- package/dist/chunks/chunk-OGTRYMBE.js +66 -0
- package/dist/chunks/chunk-OINGSM6H.js +36 -0
- package/dist/chunks/chunk-OLN4TCUX.js +93 -0
- package/dist/chunks/chunk-ON4PFGF6.js +163 -0
- package/dist/chunks/chunk-ON4TK76F.js +175 -0
- package/dist/chunks/chunk-ONY2SIHS.js +33 -0
- package/dist/chunks/chunk-OOGCRXNV.js +184 -0
- package/dist/chunks/chunk-OQOEFC2U.js +86 -0
- package/dist/chunks/chunk-OQOSHZCI.js +135 -0
- package/dist/chunks/chunk-ORPIGG2F.js +84 -0
- package/dist/chunks/chunk-OWGUVGAV.js +128 -0
- package/dist/chunks/chunk-OWZLREWX.js +18 -0
- package/dist/chunks/chunk-OXSVZKEG.js +129 -0
- package/dist/chunks/chunk-OZG32TKE.js +88 -0
- package/dist/chunks/chunk-OZZDETOU.js +109 -0
- package/dist/chunks/chunk-P2KQFS5C.js +167 -0
- package/dist/chunks/chunk-P3VJIMYS.js +266 -0
- package/dist/chunks/chunk-P43ECBT6.js +122 -0
- package/dist/chunks/chunk-P65SXEXV.js +183 -0
- package/dist/chunks/chunk-P67L32AF.js +45 -0
- package/dist/chunks/chunk-P6TPDLAF.js +45 -0
- package/dist/chunks/chunk-PCYIUONW.js +79 -0
- package/dist/chunks/chunk-PD6VSH5W.js +92 -0
- package/dist/chunks/chunk-PDT7Y2QY.js +252 -0
- package/dist/chunks/chunk-PDWXGRT4.js +215 -0
- package/dist/chunks/chunk-PFZZCO3F.js +45 -0
- package/dist/chunks/chunk-PGQXRMF6.js +23 -0
- package/dist/chunks/chunk-PGVZFKTB.js +23 -0
- package/dist/chunks/chunk-PJLNZH45.js +97 -0
- package/dist/chunks/chunk-PKUBSDKU.js +192 -0
- package/dist/chunks/chunk-PKUR3SZA.js +277 -0
- package/dist/chunks/chunk-PLAZNOC6.js +106 -0
- package/dist/chunks/chunk-PMA4XJ2E.js +93 -0
- package/dist/chunks/chunk-PPDSFHJU.js +120 -0
- package/dist/chunks/chunk-PR5DHSB2.js +204 -0
- package/dist/chunks/chunk-PRZT22AB.js +84 -0
- package/dist/chunks/chunk-PU74GVOB.js +159 -0
- package/dist/chunks/chunk-PV67ONKA.js +232 -0
- package/dist/chunks/chunk-PWJUTCE3.js +23 -0
- package/dist/chunks/chunk-PXF25QYX.js +344 -0
- package/dist/chunks/chunk-PXZJ5WB4.js +170 -0
- package/dist/chunks/chunk-PZB7QVR2.js +135 -0
- package/dist/chunks/chunk-Q2ML7IIN.js +163 -0
- package/dist/chunks/chunk-Q463ARD6.js +92 -0
- package/dist/chunks/chunk-Q67L2B7C.js +166 -0
- package/dist/chunks/chunk-Q6VPPKMZ.js +86 -0
- package/dist/chunks/chunk-Q7NND4P2.js +147 -0
- package/dist/chunks/chunk-QAPCYOYS.js +78 -0
- package/dist/chunks/chunk-QAVWMRRM.js +877 -0
- package/dist/chunks/chunk-QC3B7UVZ.js +89 -0
- package/dist/chunks/chunk-QCFYG52R.js +39 -0
- package/dist/chunks/chunk-QCWNDROJ.js +215 -0
- package/dist/chunks/chunk-QE7FYJQY.js +177 -0
- package/dist/chunks/chunk-QF7A3BCO.js +100 -0
- package/dist/chunks/chunk-QFGFR5FQ.js +45 -0
- package/dist/chunks/chunk-QH55ERQK.js +97 -0
- package/dist/chunks/chunk-QJGFOGOO.js +55 -0
- package/dist/chunks/chunk-QPUYNCBZ.js +141 -0
- package/dist/chunks/chunk-QREG6HEK.js +11047 -0
- package/dist/chunks/chunk-QVGSH6Q6.js +104 -0
- package/dist/chunks/chunk-QYFFG22S.js +104 -0
- package/dist/chunks/chunk-R3VT6DXH.js +283 -0
- package/dist/chunks/chunk-R4BMMEF3.js +298 -0
- package/dist/chunks/chunk-R5CW4CNP.js +422 -0
- package/dist/chunks/chunk-R644FBZJ.js +122 -0
- package/dist/chunks/chunk-R6YDAK34.js +196 -0
- package/dist/chunks/chunk-R7AZUHH5.js +191 -0
- package/dist/chunks/chunk-REJO7GXO.js +157 -0
- package/dist/chunks/chunk-RHIIKLF7.js +399 -0
- package/dist/chunks/chunk-RHXQOK7P.js +80 -0
- package/dist/chunks/chunk-RITI3TIK.js +96 -0
- package/dist/chunks/chunk-RIV22A5D.js +201 -0
- package/dist/chunks/chunk-RKBKCKXS.js +363 -0
- package/dist/chunks/chunk-RKGHMFRL.js +327 -0
- package/dist/chunks/chunk-RKWPMQEL.js +168 -0
- package/dist/chunks/chunk-RKYD57E6.js +105 -0
- package/dist/chunks/chunk-ROV7ETIP.js +53 -0
- package/dist/chunks/chunk-RQYFCN3D.js +45 -0
- package/dist/chunks/chunk-RS5Q3VMA.js +82 -0
- package/dist/chunks/chunk-RUVZAZ23.js +75 -0
- package/dist/chunks/chunk-RVD7NQTR.js +71 -0
- package/dist/chunks/chunk-RZOYTO7X.js +33 -0
- package/dist/chunks/chunk-RZU4WDTG.js +33 -0
- package/dist/chunks/chunk-S23IRIYF.js +415 -0
- package/dist/chunks/chunk-S3IBBQ6X.js +178 -0
- package/dist/chunks/chunk-S427YWNZ.js +97 -0
- package/dist/chunks/chunk-S4H6L5V7.js +195 -0
- package/dist/chunks/chunk-S4WPYEAF.js +284 -0
- package/dist/chunks/chunk-S4ZOZD6H.js +117 -0
- package/dist/chunks/chunk-S56WE7YN.js +298 -0
- package/dist/chunks/chunk-SAQONTBF.js +181 -0
- package/dist/chunks/chunk-SERAFAMT.js +104 -0
- package/dist/chunks/chunk-SH5K2PRM.js +112 -0
- package/dist/chunks/chunk-SJWSOIF4.js +173 -0
- package/dist/chunks/chunk-SKDLN5H6.js +358 -0
- package/dist/chunks/chunk-SKLNT65P.js +102 -0
- package/dist/chunks/chunk-SMEILFKW.js +73 -0
- package/dist/chunks/chunk-SMGOXFBP.js +277 -0
- package/dist/chunks/chunk-SMLB3NNB.js +120 -0
- package/dist/chunks/chunk-SMU7E2YT.js +80 -0
- package/dist/chunks/chunk-SQZSFDY4.js +728 -0
- package/dist/chunks/chunk-SRUIVSNJ.js +182 -0
- package/dist/chunks/chunk-STA2K7YR.js +75 -0
- package/dist/chunks/chunk-STHOMFWN.js +105 -0
- package/dist/chunks/chunk-SWMZWYSW.js +74 -0
- package/dist/chunks/chunk-SY2AWH4M.js +217 -0
- package/dist/chunks/chunk-T3RDIEDU.js +276 -0
- package/dist/chunks/chunk-T3SGRYUX.js +1221 -0
- package/dist/chunks/chunk-T3VWGGHV.js +147 -0
- package/dist/chunks/chunk-T6QGTQM5.js +182 -0
- package/dist/chunks/chunk-TADKRSY5.js +112 -0
- package/dist/chunks/chunk-TAUH2SVE.js +108 -0
- package/dist/chunks/chunk-TCJ7JLR5.js +180 -0
- package/dist/chunks/chunk-TEYJBXTO.js +175 -0
- package/dist/chunks/chunk-THQCAAVK.js +320 -0
- package/dist/chunks/chunk-TI7LS72O.js +71 -0
- package/dist/chunks/chunk-TIRPXUK2.js +33 -0
- package/dist/chunks/chunk-TJE2VJL6.js +114 -0
- package/dist/chunks/chunk-TKOIQDHT.js +198 -0
- package/dist/chunks/chunk-TKY6CPTF.js +77 -0
- package/dist/chunks/chunk-TMC7BPJE.js +145 -0
- package/dist/chunks/chunk-TP5HRS44.js +234 -0
- package/dist/chunks/chunk-TPT2NXIM.js +685 -0
- package/dist/chunks/chunk-TQKUAF43.js +304 -0
- package/dist/chunks/chunk-TRUFIU5W.js +201 -0
- package/dist/chunks/chunk-TWCEUTLH.js +96 -0
- package/dist/chunks/chunk-TZYTHG34.js +390 -0
- package/dist/chunks/chunk-U3DDH7UC.js +23 -0
- package/dist/chunks/chunk-UAAOYC7D.js +141 -0
- package/dist/chunks/chunk-UBGQCHHL.js +36 -0
- package/dist/chunks/chunk-UCGAWDC2.js +23 -0
- package/dist/chunks/chunk-UCPQZ4K4.js +202 -0
- package/dist/chunks/chunk-UDO3ZU5T.js +173 -0
- package/dist/chunks/chunk-UH3V6M54.js +23 -0
- package/dist/chunks/chunk-UI26XUIK.js +115 -0
- package/dist/chunks/chunk-UI2O3BNM.js +138 -0
- package/dist/chunks/chunk-UKUBK2J5.js +315 -0
- package/dist/chunks/chunk-UM5CR545.js +181 -0
- package/dist/chunks/chunk-UO5JRF3V.js +33 -0
- package/dist/chunks/chunk-UPA4HKPX.js +320 -0
- package/dist/chunks/chunk-USECLL4V.js +274 -0
- package/dist/chunks/chunk-USLYZW4Y.js +91 -0
- package/dist/chunks/chunk-UTRCTUZY.js +161 -0
- package/dist/chunks/chunk-UVBAU7WG.js +95 -0
- package/dist/chunks/chunk-UVBDZF4G.js +81 -0
- package/dist/chunks/chunk-UVMU6CXR.js +95 -0
- package/dist/chunks/chunk-UYQ2UFTT.js +85 -0
- package/dist/chunks/chunk-UZ3MWGAC.js +105 -0
- package/dist/chunks/chunk-UZ7MGUZ2.js +23 -0
- package/dist/chunks/chunk-V3LOBUUJ.js +97 -0
- package/dist/chunks/chunk-V57VMN77.js +225 -0
- package/dist/chunks/chunk-V6AJ6HTE.js +149 -0
- package/dist/chunks/chunk-V6COW3DB.js +199 -0
- package/dist/chunks/chunk-VCKAFPUH.js +130 -0
- package/dist/chunks/chunk-VE7OL2SV.js +33 -0
- package/dist/chunks/chunk-VGKSMW54.js +113 -0
- package/dist/chunks/chunk-VHCVD4FI.js +301 -0
- package/dist/chunks/chunk-VN6YFNOL.js +191 -0
- package/dist/chunks/chunk-VPJXZKTM.js +38 -0
- package/dist/chunks/chunk-VPOIIJMA.js +192 -0
- package/dist/chunks/chunk-VQBSXFZJ.js +33 -0
- package/dist/chunks/chunk-VQCUSDKV.js +129 -0
- package/dist/chunks/chunk-VREFP24C.js +94 -0
- package/dist/chunks/chunk-VU6QMEJW.js +23 -0
- package/dist/chunks/chunk-VV5XNSCZ.js +172 -0
- package/dist/chunks/chunk-VVA2GHJU.js +188 -0
- package/dist/chunks/chunk-VVBGHH62.js +231 -0
- package/dist/chunks/chunk-VVTSSGFF.js +172 -0
- package/dist/chunks/chunk-VXVBVJVN.js +170 -0
- package/dist/chunks/chunk-VYEHEIHO.js +396 -0
- package/dist/chunks/chunk-VYLNO5SJ.js +217 -0
- package/dist/chunks/chunk-W2576PVF.js +95 -0
- package/dist/chunks/chunk-W2ACVAU6.js +99 -0
- package/dist/chunks/chunk-W2AKEHRS.js +326 -0
- package/dist/chunks/chunk-W2TTQU5L.js +145 -0
- package/dist/chunks/chunk-W3AHRWGJ.js +108 -0
- package/dist/chunks/chunk-W3H6MQ7S.js +270 -0
- package/dist/chunks/chunk-W64T6NE5.js +190 -0
- package/dist/chunks/chunk-WBM4N4JM.js +166 -0
- package/dist/chunks/chunk-WBOMALBS.js +198 -0
- package/dist/chunks/chunk-WDH4AQIL.js +55 -0
- package/dist/chunks/chunk-WFDMO3WE.js +169 -0
- package/dist/chunks/chunk-WFTJKOXH.js +53 -0
- package/dist/chunks/chunk-WGTIUIIW.js +120 -0
- package/dist/chunks/chunk-WKI5SN52.js +102 -0
- package/dist/chunks/chunk-WL4ZYNBA.js +33 -0
- package/dist/chunks/chunk-WLF7ODLN.js +177 -0
- package/dist/chunks/chunk-WMISSA5V.js +144 -0
- package/dist/chunks/chunk-WN54DD42.js +292 -0
- package/dist/chunks/chunk-WNEPSM3I.js +23 -0
- package/dist/chunks/chunk-WNEWEPJ2.js +102 -0
- package/dist/chunks/chunk-WNTKCDJF.js +174 -0
- package/dist/chunks/chunk-WQ4QBUIX.js +42 -0
- package/dist/chunks/chunk-WQQY6YDV.js +197 -0
- package/dist/chunks/chunk-WRSQJNOU.js +147 -0
- package/dist/chunks/chunk-WSBLYY6H.js +266 -0
- package/dist/chunks/chunk-WTSIBQT2.js +160 -0
- package/dist/chunks/chunk-WV4ZSLQE.js +94 -0
- package/dist/chunks/chunk-WW5JIPMG.js +118 -0
- package/dist/chunks/chunk-X2UQGV5X.js +333 -0
- package/dist/chunks/chunk-X4JTSSMF.js +106 -0
- package/dist/chunks/chunk-X5RPTBKJ.js +200 -0
- package/dist/chunks/chunk-X7KWYGKN.js +218 -0
- package/dist/chunks/chunk-X7YZKLRT.js +589 -0
- package/dist/chunks/chunk-XAJBRDFV.js +133 -0
- package/dist/chunks/chunk-XBRXS3BT.js +79 -0
- package/dist/chunks/chunk-XGZDLVMB.js +135 -0
- package/dist/chunks/chunk-XHUS3EOR.js +94 -0
- package/dist/chunks/chunk-XIBDDL4O.js +77 -0
- package/dist/chunks/chunk-XJN2YNQT.js +261 -0
- package/dist/chunks/chunk-XKSIWVQ6.js +45 -0
- package/dist/chunks/chunk-XNHQMKHP.js +187 -0
- package/dist/chunks/chunk-XONMRKVE.js +140 -0
- package/dist/chunks/chunk-XPS27MST.js +112 -0
- package/dist/chunks/chunk-XSQ5M65B.js +23 -0
- package/dist/chunks/chunk-XTXT3DO7.js +158 -0
- package/dist/chunks/chunk-XUUXJMZZ.js +81 -0
- package/dist/chunks/chunk-XV2SMOPQ.js +305 -0
- package/dist/chunks/chunk-XVPG2DPR.js +251 -0
- package/dist/chunks/chunk-XVZN2DZI.js +224 -0
- package/dist/chunks/chunk-XWBX2V3S.js +65 -0
- package/dist/chunks/chunk-XWFCSIP2.js +97 -0
- package/dist/chunks/chunk-XWZMO4J3.js +33 -0
- package/dist/chunks/chunk-XXCOX7T4.js +118 -0
- package/dist/chunks/chunk-XZ6POAQB.js +23 -0
- package/dist/chunks/chunk-XZGXQTFC.js +81 -0
- package/dist/chunks/chunk-XZHVYOAA.js +250 -0
- package/dist/chunks/chunk-Y2GXOSSG.js +124 -0
- package/dist/chunks/chunk-Y2XS3ACD.js +93 -0
- package/dist/chunks/chunk-Y45334OM.js +55 -0
- package/dist/chunks/chunk-Y4F2ZAZG.js +50 -0
- package/dist/chunks/chunk-Y4QH77GT.js +100 -0
- package/dist/chunks/chunk-Y5CRJQX2.js +179 -0
- package/dist/chunks/chunk-Y5QJWQE7.js +119 -0
- package/dist/chunks/chunk-YANDIWSA.js +187 -0
- package/dist/chunks/chunk-YAWBFDMN.js +503 -0
- package/dist/chunks/chunk-YFCLVUFS.js +33 -0
- package/dist/chunks/chunk-YIOL4CS5.js +247 -0
- package/dist/chunks/chunk-YK5Y73N2.js +1307 -0
- package/dist/chunks/chunk-YMRA5R7L.js +151 -0
- package/dist/chunks/chunk-YNA6R7YX.js +117 -0
- package/dist/chunks/chunk-YO2EUFXG.js +23 -0
- package/dist/chunks/chunk-YPCDWWMP.js +228 -0
- package/dist/chunks/chunk-YRT4D4UR.js +95 -0
- package/dist/chunks/chunk-YS5ZC6P5.js +315 -0
- package/dist/chunks/chunk-YS6UCFLF.js +86 -0
- package/dist/chunks/chunk-YSCTUFIQ.js +220 -0
- package/dist/chunks/chunk-YSYZW4VZ.js +471 -0
- package/dist/chunks/chunk-YTT3ZBQJ.js +242 -0
- package/dist/chunks/chunk-YW3XELGA.js +317 -0
- package/dist/chunks/chunk-YWNYSW4P.js +112 -0
- package/dist/chunks/chunk-YWV3Q5GQ.js +378 -0
- package/dist/chunks/chunk-YYY4WMY3.js +23 -0
- package/dist/chunks/chunk-Z4T7V2CZ.js +44 -0
- package/dist/chunks/chunk-ZAHVKXS7.js +115 -0
- package/dist/chunks/chunk-ZDJT66UO.js +111 -0
- package/dist/chunks/chunk-ZEJL3G3T.js +244 -0
- package/dist/chunks/chunk-ZEYSCO6I.js +249 -0
- package/dist/chunks/chunk-ZJZ6HKBP.js +777 -0
- package/dist/chunks/chunk-ZKHYC3QO.js +118 -0
- package/dist/chunks/chunk-ZNAVR6M7.js +163 -0
- package/dist/chunks/chunk-ZPD2FN7R.js +90 -0
- package/dist/chunks/chunk-ZPQYHYFA.js +170 -0
- package/dist/chunks/chunk-ZRUP2URT.js +136 -0
- package/dist/chunks/chunk-ZUIKYAQ2.js +197 -0
- package/dist/chunks/chunk-ZVE42YQM.js +169 -0
- package/dist/chunks/chunk-ZVMY6CV7.js +212 -0
- package/dist/chunks/chunk-ZVTHRMU3.js +157 -0
- package/dist/chunks/chunk-ZWDPMVSU.js +23 -0
- package/dist/chunks/chunk-ZXKLNDKW.js +118 -0
- package/dist/chunks/chunk-ZXLRLH5A.js +265 -0
- package/dist/chunks/chunk-ZXMOVNBS.js +161 -0
- package/dist/chunks/chunk-ZXZ22FKF.js +45 -0
- package/dist/chunks/chunk-ZZMCAZHY.js +45 -0
- package/dist/chunks/client-6DUSRTZG.js +31 -0
- package/dist/chunks/client-TRFNJJHQ.js +167 -0
- package/dist/chunks/client-XYPBNSQ7.js +44 -0
- package/dist/chunks/client-actions-SSUZUEG7.js +155 -0
- package/dist/chunks/dangerous-UX4DHJ7U.js +115 -0
- package/dist/chunks/editor-seams-V7ZP7XH3.js +156 -0
- package/dist/chunks/editor-store-OIHZT244.js +134 -0
- package/dist/chunks/export-JXIYZ2EN.js +66 -0
- package/dist/chunks/export-watermark-4NAP5RVM.js +141 -0
- package/dist/chunks/eyedropper-QXEY7LVL.js +344 -0
- package/dist/chunks/generate-media-JAEHWNF6.js +252 -0
- package/dist/chunks/host-IKFYVZS7.js +166 -0
- package/dist/chunks/integrations-U5X2BHVK.js +115 -0
- package/dist/chunks/kit-modules-BAUMECYQ.js +18 -0
- package/dist/chunks/libraries-Q5TCHWGI.js +297 -0
- package/dist/chunks/library-previews-MF5NU2WH.js +198 -0
- package/dist/chunks/live-4XQEGNLA.js +307 -0
- package/dist/chunks/media-tool-OSQR45HY.js +327 -0
- package/dist/chunks/new-file-VVLWHEJ4.js +124 -0
- package/dist/chunks/plugin-44ZW5UEP.js +122 -0
- package/dist/chunks/plugin-import-3ISLDX7T.js +659 -0
- package/dist/chunks/presence-WVU4OIUA.js +122 -0
- package/dist/chunks/preview-media-DHSULYNO.js +1 -1
- package/dist/chunks/project-EG7XFEJU.js +1647 -0
- package/dist/chunks/publish-site-WFIX42D3.js +153 -0
- package/dist/chunks/publish-store-6BS7OIP4.js +92 -0
- package/dist/chunks/raster-actions-37XUQSVZ.js +224 -0
- package/dist/chunks/reference-images-ZYTEZKW6.js +61 -0
- package/dist/chunks/resolvers-LUWPUCST.js +137 -0
- package/dist/chunks/runner-HZ7MU6ER.js +1228 -0
- package/dist/chunks/runtime-KBXEF3ON.js +32 -0
- package/dist/chunks/shader-preview-WWGGU6RD.js +517 -0
- package/dist/chunks/sites-W7OTY7KH.js +33 -0
- package/dist/chunks/store-PHWBXKNY.js +219 -0
- package/dist/chunks/storefront-QILVHEM6.js +326 -0
- package/dist/chunks/storefront-prepare-N6SPU7SQ.js +33 -0
- package/dist/chunks/svg-export-HRLHID4V.js +79 -0
- package/dist/chunks/sync-IJNKHQRF.js +148 -0
- package/dist/chunks/tabs-G6OTEGA5.js +306 -0
- package/dist/chunks/team-M2EN4JT5.js +44 -0
- package/dist/chunks/templates-PVDEF4H5.js +180 -0
- package/dist/chunks/theme-store-KIOR4H4Y.js +39 -0
- package/dist/chunks/tools-WDFCY4BH.js +35 -0
- package/dist/chunks/ui-commands-QHFGR33P.js +264 -0
- package/dist/chunks/versions-S7COCZSQ.js +306 -0
- package/dist/chunks/video-7B5R5APU.js +1 -1
- package/dist/fonts/chars.txt +1 -1
- package/dist/index.js +9 -9
- 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 +3 -3
- package/dist/migrations/categories.js +2 -2
- package/dist/migrations/index.js +11 -11
- package/dist/migrations/timeline-facets.js +2 -2
- package/dist/seed/popcraft.comic-cover-pulp.json.gz +0 -0
- package/dist/seed/popcraft.comic-radial.json.gz +0 -0
- package/dist/templates/anime/character.js +6 -6
- package/dist/templates/anime/duel.js +9 -9
- package/dist/templates/anime/morning.js +9 -9
- package/dist/templates/anime/rain.js +9 -9
- package/dist/templates/anime/shared.js +7 -7
- package/dist/templates/anime/starlight.js +9 -9
- package/dist/templates/anime/titan.js +9 -9
- package/dist/templates/app/festival-presale-electronic-ticket.js +8 -8
- package/dist/templates/app/festival-presale-family-ticket.js +8 -8
- package/dist/templates/app/festival-presale-folk-ticket.js +8 -8
- package/dist/templates/app/festival-presale-food-ticket.js +8 -8
- package/dist/templates/app/festival-presale-jazz-ticket.js +8 -8
- package/dist/templates/app/festival-presale-street-ticket.js +8 -8
- package/dist/templates/app/music/build.js +3 -3
- package/dist/templates/app/music-grove.js +6 -6
- package/dist/templates/app/music-nightline.js +6 -6
- package/dist/templates/app/music-orbit.js +6 -6
- package/dist/templates/app/music-undertow.js +6 -6
- package/dist/templates/app/onboarding-carousel.js +5 -5
- package/dist/templates/app/saas-store-paywall.js +5 -5
- package/dist/templates/app/splash.js +5 -5
- package/dist/templates/app/success-confetti.js +5 -5
- package/dist/templates/app/tour-tickets-june-ticket.js +5 -5
- package/dist/templates/app/tour-tickets-tide-ticket.js +5 -5
- package/dist/templates/app/tour-tickets-wreck-ticket.js +5 -5
- package/dist/templates/build.js +2 -2
- package/dist/templates/cards/index.js +7 -7
- package/dist/templates/cards/shared.js +5 -5
- package/dist/templates/cards/themes.js +6 -6
- package/dist/templates/count.js +3 -3
- package/dist/templates/data/bars.js +5 -5
- package/dist/templates/data/countdown-story.js +5 -5
- package/dist/templates/data/counters.js +5 -5
- package/dist/templates/data/donut.js +5 -5
- package/dist/templates/data/line.js +5 -5
- package/dist/templates/data/year-in-review.js +5 -5
- package/dist/templates/effects/glass-intro.js +5 -5
- package/dist/templates/effects/glass-promo.js +5 -5
- package/dist/templates/effects/grain-story.js +5 -5
- package/dist/templates/effects/grid-intro.js +5 -5
- package/dist/templates/effects/halftone-story.js +5 -5
- package/dist/templates/effects/mesh-story.js +5 -5
- package/dist/templates/effects/shader-title.js +5 -5
- package/dist/templates/email/april-fools-header.js +7 -7
- package/dist/templates/email/art-deco-invitation.js +6 -6
- package/dist/templates/email/autumn-harvest-header.js +6 -6
- package/dist/templates/email/back-to-school-header.js +6 -6
- package/dist/templates/email/black-friday-coupons-header.js +6 -6
- package/dist/templates/email/black-friday-header.js +6 -6
- package/dist/templates/email/black-friday-neon-header.js +6 -6
- package/dist/templates/email/black-friday-scratch-header.js +6 -6
- package/dist/templates/email/black-friday-ticker-header.js +6 -6
- package/dist/templates/email/broadsheet-weekly-edition-header.js +6 -6
- package/dist/templates/email/claymation-header.js +6 -6
- package/dist/templates/email/countdown-gif.js +6 -6
- package/dist/templates/email/cyberpunk-header.js +6 -6
- package/dist/templates/email/diwali-header.js +6 -6
- package/dist/templates/email/earth-day-header.js +6 -6
- package/dist/templates/email/festival-presale-electronic-header.js +8 -8
- package/dist/templates/email/festival-presale-family-header.js +8 -8
- package/dist/templates/email/festival-presale-folk-header.js +8 -8
- package/dist/templates/email/festival-presale-food-header.js +8 -8
- package/dist/templates/email/festival-presale-jazz-header.js +8 -8
- package/dist/templates/email/festival-presale-street-header.js +8 -8
- package/dist/templates/email/gothic-header.js +6 -6
- package/dist/templates/email/halloween-header.js +6 -6
- package/dist/templates/email/header-launch.js +6 -6
- package/dist/templates/email/header-newsletter.js +6 -6
- package/dist/templates/email/header-sale.js +6 -6
- package/dist/templates/email/lunar-new-year-header.js +6 -6
- package/dist/templates/email/manuscript-chronicle-header.js +6 -6
- package/dist/templates/email/new-year-header.js +6 -6
- package/dist/templates/email/noir-header.js +6 -6
- package/dist/templates/email/psychedelic-header.js +6 -6
- package/dist/templates/email/riso-zine-changelog-header.js +6 -6
- package/dist/templates/email/saas-mail-changelog.js +8 -8
- package/dist/templates/email/saas-mail-day-one.js +7 -7
- package/dist/templates/email/saas-mail-day-three.js +7 -7
- package/dist/templates/email/saas-mail-launch.js +7 -7
- package/dist/templates/email/saas-mail-payment-failed.js +7 -7
- package/dist/templates/email/saas-mail-sign-in-code.js +7 -7
- package/dist/templates/email/saas-mail-trial-ending.js +7 -7
- package/dist/templates/email/saas-mail-waitlist.js +7 -7
- package/dist/templates/email/shared.js +3 -3
- package/dist/templates/email/singles-day-header.js +6 -6
- package/dist/templates/email/solarpunk-header.js +6 -6
- package/dist/templates/email/space-opera-header.js +6 -6
- package/dist/templates/email/spring-bloom-header.js +6 -6
- package/dist/templates/email/style-bento-header.js +6 -6
- package/dist/templates/email/style-brutalist-header.js +6 -6
- package/dist/templates/email/style-dark-header.js +6 -6
- package/dist/templates/email/style-data-header.js +6 -6
- package/dist/templates/email/style-editorial-header.js +6 -6
- package/dist/templates/email/style-glass-header.js +6 -6
- package/dist/templates/email/style-gradient-header.js +6 -6
- package/dist/templates/email/style-maximal-header.js +6 -6
- package/dist/templates/email/style-pastel-header.js +6 -6
- package/dist/templates/email/style-sketch-header.js +6 -6
- package/dist/templates/email/style-swiss-header.js +6 -6
- package/dist/templates/email/style-terminal-header.js +6 -6
- package/dist/templates/email/summer-heatwave-header.js +6 -6
- package/dist/templates/email/tour-tickets-june-header.js +6 -6
- package/dist/templates/email/tour-tickets-tide-header.js +6 -6
- package/dist/templates/email/tour-tickets-wreck-header.js +6 -6
- package/dist/templates/email/transit-map-service-update.js +6 -6
- package/dist/templates/email/ukiyo-e-greeting-header.js +6 -6
- package/dist/templates/email/valentines-header.js +6 -6
- package/dist/templates/email/winter-cosy-header.js +6 -6
- package/dist/templates/email/winter-holidays-header.js +6 -6
- package/dist/templates/game/blossom-bash-puzzle.js +6 -6
- package/dist/templates/game/deckbound-roguelike.js +6 -6
- package/dist/templates/game/emberfall-rpg.js +6 -6
- package/dist/templates/game/hearthmoor-farm.js +6 -6
- package/dist/templates/game/index.js +19 -19
- package/dist/templates/game/iron-lotus-fighter.js +6 -6
- package/dist/templates/game/ironroot-rts.js +6 -6
- package/dist/templates/game/mossy-hollow-platformer.js +8 -8
- package/dist/templates/game/neon-apex-racing.js +6 -6
- package/dist/templates/game/platformer.js +7 -7
- package/dist/templates/game/pulse-riot-rhythm.js +6 -6
- package/dist/templates/game/shared.js +3 -3
- package/dist/templates/game/sprout-quest-pixel-platformer.js +8 -8
- package/dist/templates/game/vanta-fps.js +6 -6
- package/dist/templates/index.js +767 -752
- package/dist/templates/index.json +248 -0
- package/dist/templates/kinetic/letters.js +5 -5
- package/dist/templates/kinetic/lines.js +5 -5
- package/dist/templates/kinetic/typewriter.js +5 -5
- package/dist/templates/kinetic/word-swap.js +5 -5
- package/dist/templates/kinetic/words.js +5 -5
- package/dist/templates/kit.js +2 -2
- package/dist/templates/libraries/audio-reactive.js +5 -5
- package/dist/templates/libraries/loaders.js +5 -5
- package/dist/templates/libraries/micro-interactions.js +5 -5
- package/dist/templates/libraries/motion-essentials.js +5 -5
- package/dist/templates/libraries/toasts.js +5 -5
- package/dist/templates/lottie/ai.js +6 -6
- package/dist/templates/lottie/climate.js +6 -6
- package/dist/templates/lottie/commerce.js +6 -6
- package/dist/templates/lottie/education.js +6 -6
- package/dist/templates/lottie/fintech.js +6 -6
- package/dist/templates/lottie/food.js +6 -6
- package/dist/templates/lottie/health.js +6 -6
- package/dist/templates/lottie/index.js +30 -30
- package/dist/templates/lottie/lottie-kit.js +5 -5
- package/dist/templates/lottie/realestate.js +6 -6
- package/dist/templates/lottie/saas-ui-checklist.js +7 -7
- package/dist/templates/lottie/saas-ui-dashboard-hero.js +7 -7
- package/dist/templates/lottie/saas-ui-empty-data.js +7 -7
- package/dist/templates/lottie/saas-ui-empty-search.js +7 -7
- package/dist/templates/lottie/saas-ui-error-retry.js +7 -7
- package/dist/templates/lottie/saas-ui-file-upload.js +7 -7
- package/dist/templates/lottie/saas-ui-streaming-answer.js +7 -7
- package/dist/templates/lottie/saas-ui-sync-connected.js +7 -7
- package/dist/templates/lottie/saas-ui-trial-timeline.js +7 -7
- package/dist/templates/lottie/saas-ui-upgrade-unlocked.js +7 -7
- package/dist/templates/lottie/saas-ui.js +17 -17
- package/dist/templates/lottie/saas.js +6 -6
- package/dist/templates/lottie/security.js +6 -6
- package/dist/templates/lottie/techniques.js +6 -6
- package/dist/templates/lottie/travel.js +6 -6
- package/dist/templates/motion/ambient-loop.js +5 -5
- package/dist/templates/motion/app-icon-sting.js +5 -5
- package/dist/templates/motion/april-fools-infomercial-reel.js +7 -7
- package/dist/templates/motion/arcade-high-score.js +5 -5
- package/dist/templates/motion/art-deco-grand-opening.js +5 -5
- package/dist/templates/motion/autumn-harvest-year-reel.js +5 -5
- package/dist/templates/motion/back-to-school-timetable-reel.js +5 -5
- package/dist/templates/motion/bauhaus-launch-reel.js +5 -5
- package/dist/templates/motion/black-friday-coupons-deal-reel.js +5 -5
- package/dist/templates/motion/black-friday-coupons-last-day.js +5 -5
- package/dist/templates/motion/black-friday-deal-drop.js +5 -5
- package/dist/templates/motion/black-friday-neon-deal-reel.js +5 -5
- package/dist/templates/motion/black-friday-neon-last-day.js +5 -5
- package/dist/templates/motion/black-friday-scratch-countdown.js +5 -5
- package/dist/templates/motion/black-friday-scratch-deal-reel.js +5 -5
- package/dist/templates/motion/black-friday-scratch-last-day.js +5 -5
- package/dist/templates/motion/black-friday-ticker-deal-drop.js +5 -5
- package/dist/templates/motion/black-friday-ticker-last-call.js +5 -5
- package/dist/templates/motion/blueprint-rev-b-reel.js +5 -5
- package/dist/templates/motion/broadsheet-launch-reel.js +5 -5
- package/dist/templates/motion/broadsheet-milestone-post.js +6 -6
- package/dist/templates/motion/claymation-launch-reel.js +5 -5
- package/dist/templates/motion/comic-book-issue-reel.js +5 -5
- package/dist/templates/motion/countdown.js +5 -5
- package/dist/templates/motion/cyberpunk-lock-on-reel.js +5 -5
- package/dist/templates/motion/departure-board-reel.js +5 -5
- package/dist/templates/motion/diwali-lamps-reel.js +5 -5
- package/dist/templates/motion/earth-day-footprint-reel.js +5 -5
- package/dist/templates/motion/earth-day-pledge-post.js +5 -5
- package/dist/templates/motion/festival-presale-electronic-countdown.js +8 -8
- package/dist/templates/motion/festival-presale-electronic-lineup.js +8 -8
- package/dist/templates/motion/festival-presale-electronic-reel.js +8 -8
- package/dist/templates/motion/festival-presale-electronic-tier.js +8 -8
- package/dist/templates/motion/festival-presale-family-countdown.js +8 -8
- package/dist/templates/motion/festival-presale-family-lineup.js +8 -8
- package/dist/templates/motion/festival-presale-family-reel.js +8 -8
- package/dist/templates/motion/festival-presale-family-tier.js +8 -8
- package/dist/templates/motion/festival-presale-folk-countdown.js +8 -8
- package/dist/templates/motion/festival-presale-folk-lineup.js +8 -8
- package/dist/templates/motion/festival-presale-folk-reel.js +8 -8
- package/dist/templates/motion/festival-presale-folk-tier.js +8 -8
- package/dist/templates/motion/festival-presale-food-countdown.js +8 -8
- package/dist/templates/motion/festival-presale-food-lineup.js +8 -8
- package/dist/templates/motion/festival-presale-food-reel.js +8 -8
- package/dist/templates/motion/festival-presale-food-tier.js +8 -8
- package/dist/templates/motion/festival-presale-jazz-countdown.js +8 -8
- package/dist/templates/motion/festival-presale-jazz-lineup.js +8 -8
- package/dist/templates/motion/festival-presale-jazz-reel.js +8 -8
- package/dist/templates/motion/festival-presale-jazz-tier.js +8 -8
- package/dist/templates/motion/festival-presale-street-countdown.js +8 -8
- package/dist/templates/motion/festival-presale-street-lineup.js +8 -8
- package/dist/templates/motion/festival-presale-street-reel.js +8 -8
- package/dist/templates/motion/festival-presale-street-tier.js +8 -8
- package/dist/templates/motion/gothic-launch-reel.js +5 -5
- package/dist/templates/motion/halloween-graveyard-reel.js +5 -5
- package/dist/templates/motion/instagram-promo.js +5 -5
- package/dist/templates/motion/kinetic-headline.js +5 -5
- package/dist/templates/motion/landing-hero/index.js +8 -8
- package/dist/templates/motion/launch-trailer/document.js +767 -752
- package/dist/templates/motion/launch-trailer/index.js +8 -8
- package/dist/templates/motion/launch-trailer/scenes.js +7 -7
- package/dist/templates/motion/logo-reveal.js +5 -5
- package/dist/templates/motion/lower-third.js +5 -5
- package/dist/templates/motion/lunar-new-year-envelope-reel.js +5 -5
- package/dist/templates/motion/machined-trailer.js +7 -7
- package/dist/templates/motion/manuscript-launch-reel.js +5 -5
- package/dist/templates/motion/new-year-ball-drop-reel.js +5 -5
- package/dist/templates/motion/noir-case-reel.js +5 -5
- package/dist/templates/motion/pitch-title.js +5 -5
- package/dist/templates/motion/psychedelic-gig-reel.js +5 -5
- package/dist/templates/motion/riso-zine-launch-reel.js +5 -5
- package/dist/templates/motion/saas-ai-prompt.js +5 -5
- package/dist/templates/motion/saas-before-after.js +5 -5
- package/dist/templates/motion/saas-changelog-drop.js +5 -5
- package/dist/templates/motion/saas-film-webinar-opener.js +5 -5
- package/dist/templates/motion/saas-hook-features.js +5 -5
- package/dist/templates/motion/saas-mrr-milestone.js +5 -5
- package/dist/templates/motion/saas-screen-demo.js +5 -5
- package/dist/templates/motion/saas-store-install-ad.js +6 -6
- package/dist/templates/motion/saas-testimonial.js +5 -5
- package/dist/templates/motion/saas-vs-comparison.js +5 -5
- package/dist/templates/motion/singles-day-flash-post.js +5 -5
- package/dist/templates/motion/singles-day-live-reel.js +5 -5
- package/dist/templates/motion/smooth-loop.js +5 -5
- package/dist/templates/motion/solarpunk-rooftop-reel.js +5 -5
- package/dist/templates/motion/space-opera-countdown-reel.js +5 -5
- package/dist/templates/motion/spring-bloom-first-hundred-post.js +5 -5
- package/dist/templates/motion/spring-bloom-first-shoots-reel.js +5 -5
- package/dist/templates/motion/stat-pop.js +5 -5
- package/dist/templates/motion/style-bento-feature-demo.js +5 -5
- package/dist/templates/motion/style-bento-launch-reel.js +5 -5
- package/dist/templates/motion/style-brutalist-feature-demo.js +5 -5
- package/dist/templates/motion/style-brutalist-launch-reel.js +5 -5
- package/dist/templates/motion/style-dark-feature-demo.js +5 -5
- package/dist/templates/motion/style-dark-launch-reel.js +5 -5
- package/dist/templates/motion/style-data-feature-demo.js +5 -5
- package/dist/templates/motion/style-data-launch-reel.js +5 -5
- package/dist/templates/motion/style-editorial-feature-demo.js +5 -5
- package/dist/templates/motion/style-editorial-launch-reel.js +5 -5
- package/dist/templates/motion/style-glass-feature-demo.js +5 -5
- package/dist/templates/motion/style-glass-launch-reel.js +5 -5
- package/dist/templates/motion/style-gradient-feature-demo.js +5 -5
- package/dist/templates/motion/style-gradient-launch-reel.js +5 -5
- package/dist/templates/motion/style-maximal-feature-demo.js +5 -5
- package/dist/templates/motion/style-maximal-launch-reel.js +5 -5
- package/dist/templates/motion/style-pastel-feature-demo.js +5 -5
- package/dist/templates/motion/style-pastel-launch-reel.js +5 -5
- package/dist/templates/motion/style-sketch-feature-demo.js +5 -5
- package/dist/templates/motion/style-sketch-launch-reel.js +5 -5
- package/dist/templates/motion/style-swiss-feature-demo.js +5 -5
- package/dist/templates/motion/style-swiss-launch-reel.js +5 -5
- package/dist/templates/motion/style-terminal-feature-demo.js +5 -5
- package/dist/templates/motion/style-terminal-launch-reel.js +5 -5
- package/dist/templates/motion/summer-heatwave-lido-reel.js +5 -5
- package/dist/templates/motion/template-wall.js +6 -6
- package/dist/templates/motion/title-card-3d.js +5 -5
- package/dist/templates/motion/tour-tickets-june-city.js +5 -5
- package/dist/templates/motion/tour-tickets-june-dates.js +5 -5
- package/dist/templates/motion/tour-tickets-june-final.js +5 -5
- package/dist/templates/motion/tour-tickets-june-reel.js +5 -5
- package/dist/templates/motion/tour-tickets-tide-city.js +5 -5
- package/dist/templates/motion/tour-tickets-tide-dates.js +5 -5
- package/dist/templates/motion/tour-tickets-tide-final.js +5 -5
- package/dist/templates/motion/tour-tickets-tide-reel.js +5 -5
- package/dist/templates/motion/tour-tickets-wreck-city.js +5 -5
- package/dist/templates/motion/tour-tickets-wreck-dates.js +5 -5
- package/dist/templates/motion/tour-tickets-wreck-final.js +5 -5
- package/dist/templates/motion/tour-tickets-wreck-reel.js +5 -5
- package/dist/templates/motion/transit-map-line-opening.js +5 -5
- package/dist/templates/motion/transit-map-milestone-post.js +5 -5
- package/dist/templates/motion/ukiyo-e-launch-reel.js +5 -5
- package/dist/templates/motion/valentines-breakup-reel.js +5 -5
- package/dist/templates/motion/vaporwave-launch-reel.js +6 -6
- package/dist/templates/motion/winter-cosy-heads-down-post.js +5 -5
- package/dist/templates/motion/winter-cosy-hibernation-reel.js +5 -5
- package/dist/templates/motion/winter-holidays-advent-reel.js +5 -5
- package/dist/templates/motion-qa.js +3 -3
- package/dist/templates/motion3d/app-store-preview.js +6 -6
- package/dist/templates/motion3d/before-after-swing.js +6 -6
- package/dist/templates/motion3d/burger-reveal.js +6 -6
- package/dist/templates/motion3d/coverflow.js +6 -6
- package/dist/templates/motion3d/exploded-ui.js +6 -6
- package/dist/templates/motion3d/feature-flip.js +6 -6
- package/dist/templates/motion3d/kinetic-reveal.js +6 -6
- package/dist/templates/motion3d/laptop-reveal.js +6 -6
- package/dist/templates/motion3d/logo-extrude.js +6 -6
- package/dist/templates/motion3d/parallax-cascade.js +6 -6
- package/dist/templates/motion3d/phone-orbit.js +6 -6
- package/dist/templates/motion3d/pricing-fan.js +6 -6
- package/dist/templates/motion3d/product-turntable.js +6 -6
- package/dist/templates/motion3d/saas-film-cinematic-trailer.js +7 -7
- package/dist/templates/motion3d/screen-wall.js +6 -6
- package/dist/templates/motion3d/stage.js +3 -3
- package/dist/templates/motion3d/vertical-promo.js +6 -6
- package/dist/templates/music/edm-drop.js +6 -6
- package/dist/templates/music/festival-lineup.js +6 -6
- package/dist/templates/music/hiphop-lyrics.js +6 -6
- package/dist/templates/music/indie-poster.js +6 -6
- package/dist/templates/music/lofi-loop.js +6 -6
- package/dist/templates/music/podcast-audiogram.js +6 -6
- package/dist/templates/music/shared.js +3 -3
- package/dist/templates/music/synthwave-tunnel.js +6 -6
- package/dist/templates/print/comic-book-action-slant.js +97 -0
- package/dist/templates/print/comic-book-cover-pulp.js +97 -0
- package/dist/templates/print/comic-book-flashback.js +97 -0
- package/dist/templates/print/comic-book-issue.js +104 -0
- package/dist/templates/print/comic-book-nine-grid.js +97 -0
- package/dist/templates/print/comic-book-page-classic.js +97 -0
- package/dist/templates/print/comic-book-polyptych.js +97 -0
- package/dist/templates/print/comic-book-radial.js +97 -0
- package/dist/templates/print/comic-book-splash.js +97 -0
- package/dist/templates/print/comic-book-spread.js +97 -0
- package/dist/templates/print/everyday-save-the-date.js +5 -5
- package/dist/templates/print/everyday-specials-board.js +5 -5
- package/dist/templates/print/studio-class-timetable-poster.js +5 -5
- package/dist/templates/print/studio-portfolio-booklet.js +5 -5
- package/dist/templates/saas/email-decks-shared.js +6 -6
- package/dist/templates/saas/email-decks.js +18 -18
- package/dist/templates/saas/index.js +191 -191
- package/dist/templates/saas/launch-kit.js +14 -14
- package/dist/templates/saas/launch-video.js +13 -13
- package/dist/templates/saas/lottie-shared.js +6 -6
- package/dist/templates/saas/stores-shared.js +3 -3
- package/dist/templates/saas/stores.js +16 -16
- package/dist/templates/saas/style-bento.js +15 -15
- package/dist/templates/saas/style-brutalist.js +15 -15
- package/dist/templates/saas/style-dark.js +15 -15
- package/dist/templates/saas/style-data.js +15 -15
- package/dist/templates/saas/style-editorial.js +15 -15
- package/dist/templates/saas/style-glass.js +15 -15
- package/dist/templates/saas/style-gradient.js +15 -15
- package/dist/templates/saas/style-maximal.js +15 -15
- package/dist/templates/saas/style-pastel.js +15 -15
- package/dist/templates/saas/style-sketch.js +15 -15
- package/dist/templates/saas/style-swiss.js +15 -15
- package/dist/templates/saas/style-terminal.js +15 -15
- package/dist/templates/saas/video.js +13 -13
- package/dist/templates/saas/web.js +17 -17
- package/dist/templates/scenes/before-after.js +5 -5
- package/dist/templates/scenes/carousel-video.js +6 -6
- package/dist/templates/scenes/saas-film-app-preview.js +6 -6
- package/dist/templates/scenes/saas-film-bright-trailer.js +6 -6
- package/dist/templates/scenes/saas-film-product-hunt-launch.js +6 -6
- package/dist/templates/scenes/saas-film-youtube-demo-kit.js +6 -6
- package/dist/templates/scenes/shared.js +3 -3
- package/dist/templates/scenes/story-ad.js +6 -6
- package/dist/templates/scenes/story-bakery.js +6 -6
- package/dist/templates/scenes/story-fitness.js +6 -6
- package/dist/templates/scenes/story-hotel.js +6 -6
- package/dist/templates/scenes/transitions-pack.js +6 -6
- package/dist/templates/scenes/web-scroll.js +6 -6
- package/dist/templates/slides/agenda.js +6 -6
- package/dist/templates/slides/deck.js +5 -5
- package/dist/templates/slides/education.js +6 -6
- package/dist/templates/slides/launch.js +6 -6
- package/dist/templates/slides/layouts.js +6 -6
- package/dist/templates/slides/pitch.js +6 -6
- package/dist/templates/slides/report.js +6 -6
- package/dist/templates/slides/saas-mail-investor-update.js +7 -7
- package/dist/templates/slides/saas-mail-seed-pitch.js +7 -7
- package/dist/templates/slides/sales.js +6 -6
- package/dist/templates/slides/section-divider.js +6 -6
- package/dist/templates/slides/title-card.js +6 -6
- package/dist/templates/slides/training.js +6 -6
- package/dist/templates/slides/webinar.js +6 -6
- package/dist/templates/slideshow/baby.js +7 -7
- package/dist/templates/slideshow/birthday.js +7 -7
- package/dist/templates/slideshow/holiday.js +7 -7
- package/dist/templates/slideshow/home.js +7 -7
- package/dist/templates/slideshow/index.js +14 -14
- package/dist/templates/slideshow/memorial.js +7 -7
- package/dist/templates/slideshow/shared.js +6 -6
- package/dist/templates/slideshow/travel.js +7 -7
- package/dist/templates/slideshow/wedding.js +7 -7
- package/dist/templates/social/april-fools-link-preview.js +7 -7
- package/dist/templates/social/april-fools-price-slash-post.js +7 -7
- package/dist/templates/social/arcade-boss-fight.js +5 -5
- package/dist/templates/social/arcade-level-up.js +5 -5
- package/dist/templates/social/art-deco-link-preview.js +5 -5
- package/dist/templates/social/art-deco-premiere-post.js +5 -5
- package/dist/templates/social/autumn-harvest-link-preview.js +5 -5
- package/dist/templates/social/autumn-harvest-thanks-post.js +5 -5
- package/dist/templates/social/back-to-school-link-preview.js +5 -5
- package/dist/templates/social/back-to-school-report-card-post.js +5 -5
- package/dist/templates/social/bauhaus-drift-post.js +5 -5
- package/dist/templates/social/bauhaus-link-preview.js +5 -5
- package/dist/templates/social/bauhaus-pricing-post.js +5 -5
- package/dist/templates/social/black-friday-ads.js +5 -5
- package/dist/templates/social/black-friday-countdown.js +5 -5
- package/dist/templates/social/black-friday-coupons-ads.js +5 -5
- package/dist/templates/social/black-friday-coupons-countdown.js +5 -5
- package/dist/templates/social/black-friday-neon-ads.js +5 -5
- package/dist/templates/social/black-friday-neon-countdown.js +5 -5
- package/dist/templates/social/black-friday-scratch-ads.js +5 -5
- package/dist/templates/social/black-friday-ticker-ads.js +5 -5
- package/dist/templates/social/black-friday-ticker-countdown.js +5 -5
- package/dist/templates/social/blueprint-dimension-post.js +5 -5
- package/dist/templates/social/blueprint-link-preview.js +5 -5
- package/dist/templates/social/blueprint-parts-list-post.js +5 -5
- package/dist/templates/social/broadsheet-hiring-classifieds.js +5 -5
- package/dist/templates/social/broadsheet-link-preview.js +5 -5
- package/dist/templates/social/claymation-link-preview.js +5 -5
- package/dist/templates/social/claymation-streak-post.js +5 -5
- package/dist/templates/social/comic-book-cover-preview.js +5 -5
- package/dist/templates/social/comic-book-strip-post.js +5 -5
- package/dist/templates/social/cyberpunk-implant-post.js +5 -5
- package/dist/templates/social/cyberpunk-link-preview.js +5 -5
- package/dist/templates/social/departure-board-pass-ad.js +5 -5
- package/dist/templates/social/departure-board-store-set.js +5 -5
- package/dist/templates/social/departure-board-thanks-post.js +5 -5
- package/dist/templates/social/diwali-link-preview.js +5 -5
- package/dist/templates/social/diwali-thanks-post.js +5 -5
- package/dist/templates/social/earth-day-link-preview.js +5 -5
- package/dist/templates/social/everyday-save-the-date-post.js +5 -5
- package/dist/templates/social/festival-presale-electronic-ads.js +8 -8
- package/dist/templates/social/festival-presale-family-ads.js +8 -8
- package/dist/templates/social/festival-presale-folk-ads.js +8 -8
- package/dist/templates/social/festival-presale-food-ads.js +8 -8
- package/dist/templates/social/festival-presale-jazz-ads.js +8 -8
- package/dist/templates/social/festival-presale-street-ads.js +8 -8
- package/dist/templates/social/gothic-feature-post.js +5 -5
- package/dist/templates/social/gothic-link-preview.js +5 -5
- package/dist/templates/social/halloween-link-preview.js +5 -5
- package/dist/templates/social/halloween-offer-post.js +5 -5
- package/dist/templates/social/lunar-new-year-greeting-post.js +5 -5
- package/dist/templates/social/lunar-new-year-link-preview.js +5 -5
- package/dist/templates/social/machined-link-preview.js +7 -7
- package/dist/templates/social/machined-plate-post.js +7 -7
- package/dist/templates/social/manuscript-chapter-post.js +5 -5
- package/dist/templates/social/manuscript-link-preview.js +5 -5
- package/dist/templates/social/new-year-link-preview.js +5 -5
- package/dist/templates/social/new-year-resolutions-post.js +5 -5
- package/dist/templates/social/noir-case-file.js +5 -5
- package/dist/templates/social/noir-feature-post.js +5 -5
- package/dist/templates/social/post-announcement.js +5 -5
- package/dist/templates/social/post-event.js +5 -5
- package/dist/templates/social/post-podcast.js +5 -5
- package/dist/templates/social/post-quote.js +5 -5
- package/dist/templates/social/post-sale.js +5 -5
- package/dist/templates/social/post-stat.js +5 -5
- package/dist/templates/social/post-testimonial.js +5 -5
- package/dist/templates/social/promo-announcement.js +5 -5
- package/dist/templates/social/promo-beat-drop.js +5 -5
- package/dist/templates/social/promo-event.js +5 -5
- package/dist/templates/social/promo-new-product.js +5 -5
- package/dist/templates/social/promo-quote-reveal.js +5 -5
- package/dist/templates/social/promo-sale-drop.js +5 -5
- package/dist/templates/social/promo-tip-list.js +5 -5
- package/dist/templates/social/psychedelic-lineup-post.js +5 -5
- package/dist/templates/social/psychedelic-link-preview.js +5 -5
- package/dist/templates/social/riso-zine-link-preview.js +5 -5
- package/dist/templates/social/riso-zine-mrr-poster.js +5 -5
- package/dist/templates/social/saas-kit-carousel.js +5 -5
- package/dist/templates/social/saas-kit-countdown-post.js +5 -5
- package/dist/templates/social/saas-kit-feature-drop.js +5 -5
- package/dist/templates/social/saas-kit-link-preview.js +5 -5
- package/dist/templates/social/saas-kit-live-post.js +5 -5
- package/dist/templates/social/saas-kit-mrr-card.js +5 -5
- package/dist/templates/social/saas-kit-ph-gallery.js +5 -5
- package/dist/templates/social/saas-kit-ph-thumb.js +5 -5
- package/dist/templates/social/saas-kit-youtube-thumbs.js +5 -5
- package/dist/templates/social/saas-store-b2b-ads.js +6 -6
- package/dist/templates/social/saas-store-caption-set.js +6 -6
- package/dist/templates/social/saas-store-chrome-kit.js +6 -6
- package/dist/templates/social/saas-store-ipad-set.js +6 -6
- package/dist/templates/social/saas-store-panorama.js +7 -7
- package/dist/templates/social/saas-store-play-kit.js +5 -5
- package/dist/templates/social/saas-store-story.js +6 -6
- package/dist/templates/social/singles-day-link-preview.js +5 -5
- package/dist/templates/social/solarpunk-impact-post.js +5 -5
- package/dist/templates/social/solarpunk-link-preview.js +5 -5
- package/dist/templates/social/space-opera-link-preview.js +5 -5
- package/dist/templates/social/space-opera-mission-patch-post.js +5 -5
- package/dist/templates/social/spring-bloom-link-preview.js +5 -5
- package/dist/templates/social/studio-class-timetable.js +5 -5
- package/dist/templates/social/studio-podcast-cover.js +5 -5
- package/dist/templates/social/style-bento-announcement.js +5 -5
- package/dist/templates/social/style-bento-link-preview.js +5 -5
- package/dist/templates/social/style-bento-milestone.js +5 -5
- package/dist/templates/social/style-bento-testimonial.js +5 -5
- package/dist/templates/social/style-brutalist-announcement.js +5 -5
- package/dist/templates/social/style-brutalist-link-preview.js +5 -5
- package/dist/templates/social/style-brutalist-milestone.js +5 -5
- package/dist/templates/social/style-brutalist-testimonial.js +5 -5
- package/dist/templates/social/style-dark-announcement.js +5 -5
- package/dist/templates/social/style-dark-link-preview.js +5 -5
- package/dist/templates/social/style-dark-milestone.js +5 -5
- package/dist/templates/social/style-dark-testimonial.js +5 -5
- package/dist/templates/social/style-data-announcement.js +5 -5
- package/dist/templates/social/style-data-link-preview.js +5 -5
- package/dist/templates/social/style-data-milestone.js +5 -5
- package/dist/templates/social/style-data-testimonial.js +5 -5
- package/dist/templates/social/style-editorial-announcement.js +5 -5
- package/dist/templates/social/style-editorial-link-preview.js +5 -5
- package/dist/templates/social/style-editorial-milestone.js +5 -5
- package/dist/templates/social/style-editorial-testimonial.js +5 -5
- package/dist/templates/social/style-glass-announcement.js +5 -5
- package/dist/templates/social/style-glass-link-preview.js +5 -5
- package/dist/templates/social/style-glass-milestone.js +5 -5
- package/dist/templates/social/style-glass-testimonial.js +5 -5
- package/dist/templates/social/style-gradient-announcement.js +5 -5
- package/dist/templates/social/style-gradient-link-preview.js +5 -5
- package/dist/templates/social/style-gradient-milestone.js +5 -5
- package/dist/templates/social/style-gradient-testimonial.js +5 -5
- package/dist/templates/social/style-maximal-announcement.js +5 -5
- package/dist/templates/social/style-maximal-link-preview.js +5 -5
- package/dist/templates/social/style-maximal-milestone.js +5 -5
- package/dist/templates/social/style-maximal-testimonial.js +5 -5
- package/dist/templates/social/style-pastel-announcement.js +5 -5
- package/dist/templates/social/style-pastel-link-preview.js +5 -5
- package/dist/templates/social/style-pastel-milestone.js +5 -5
- package/dist/templates/social/style-pastel-testimonial.js +5 -5
- package/dist/templates/social/style-sketch-announcement.js +5 -5
- package/dist/templates/social/style-sketch-link-preview.js +5 -5
- package/dist/templates/social/style-sketch-milestone.js +5 -5
- package/dist/templates/social/style-sketch-testimonial.js +5 -5
- package/dist/templates/social/style-swiss-announcement.js +5 -5
- package/dist/templates/social/style-swiss-link-preview.js +5 -5
- package/dist/templates/social/style-swiss-milestone.js +5 -5
- package/dist/templates/social/style-swiss-testimonial.js +5 -5
- package/dist/templates/social/style-terminal-announcement.js +5 -5
- package/dist/templates/social/style-terminal-link-preview.js +5 -5
- package/dist/templates/social/style-terminal-milestone.js +5 -5
- package/dist/templates/social/style-terminal-testimonial.js +5 -5
- package/dist/templates/social/summer-heatwave-link-preview.js +5 -5
- package/dist/templates/social/summer-heatwave-lolly-post.js +5 -5
- package/dist/templates/social/tour-tickets-june-ads.js +5 -5
- package/dist/templates/social/tour-tickets-tide-ads.js +5 -5
- package/dist/templates/social/tour-tickets-wreck-ads.js +5 -5
- package/dist/templates/social/transit-map-link-preview.js +5 -5
- package/dist/templates/social/ukiyo-e-link-preview.js +5 -5
- package/dist/templates/social/ukiyo-e-spike-post.js +5 -5
- package/dist/templates/social/valentines-link-preview.js +5 -5
- package/dist/templates/social/valentines-poem-post.js +5 -5
- package/dist/templates/social/vaporwave-feature-drop.js +5 -5
- package/dist/templates/social/vaporwave-link-preview.js +5 -5
- package/dist/templates/social/winter-cosy-link-preview.js +5 -5
- package/dist/templates/social/winter-holidays-link-preview.js +5 -5
- package/dist/templates/social/winter-holidays-thanks-post.js +5 -5
- package/dist/templates/stings/line-reveal.js +5 -5
- package/dist/templates/stings/sting-blur.js +5 -5
- package/dist/templates/stings/sting-pop.js +5 -5
- package/dist/templates/stings/sting-rise.js +5 -5
- package/dist/templates/stings/sting-shimmer.js +5 -5
- package/dist/templates/stings/word-swap.js +5 -5
- package/dist/templates/text/stat-counter.js +5 -5
- package/dist/templates/text/word-quote.js +5 -5
- package/dist/templates/themes/april-fools-shared.js +4 -4
- package/dist/templates/themes/april-fools.js +12 -12
- package/dist/templates/themes/arcade.js +9 -9
- package/dist/templates/themes/art-deco.js +11 -11
- package/dist/templates/themes/autumn-harvest.js +11 -11
- package/dist/templates/themes/back-to-school.js +11 -11
- package/dist/templates/themes/bauhaus.js +10 -10
- package/dist/templates/themes/black-friday-coupons.js +12 -12
- package/dist/templates/themes/black-friday-neon.js +12 -12
- package/dist/templates/themes/black-friday-scratch.js +12 -12
- package/dist/templates/themes/black-friday-ticker.js +12 -12
- package/dist/templates/themes/black-friday.js +11 -11
- package/dist/templates/themes/blueprint.js +10 -10
- package/dist/templates/themes/broadsheet.js +12 -12
- package/dist/templates/themes/claymation.js +11 -11
- package/dist/templates/themes/comic-book-art.js +32 -0
- package/dist/templates/themes/comic-book-page.js +63 -0
- package/dist/templates/themes/comic-book.js +21 -9
- package/dist/templates/themes/cyberpunk.js +11 -11
- package/dist/templates/themes/departure-board.js +10 -10
- package/dist/templates/themes/diwali.js +11 -11
- package/dist/templates/themes/earth-day.js +11 -11
- package/dist/templates/themes/everyday.js +12 -12
- package/dist/templates/themes/festival-presale-electronic-kit.js +7 -7
- package/dist/templates/themes/festival-presale-family-a-shared.js +6 -6
- package/dist/templates/themes/festival-presale-family-a.js +31 -31
- package/dist/templates/themes/festival-presale-family-b-shared.js +6 -6
- package/dist/templates/themes/festival-presale-family-b.js +31 -31
- package/dist/templates/themes/festival-presale-family-kit.js +7 -7
- package/dist/templates/themes/festival-presale-folk-kit.js +7 -7
- package/dist/templates/themes/festival-presale-food-kit.js +7 -7
- package/dist/templates/themes/festival-presale-jazz-kit.js +7 -7
- package/dist/templates/themes/festival-presale-street-kit.js +7 -7
- package/dist/templates/themes/festival-presale.js +11 -11
- package/dist/templates/themes/gothic.js +11 -11
- package/dist/templates/themes/halloween.js +11 -11
- package/dist/templates/themes/holidays.js +14 -0
- package/dist/templates/themes/index.js +359 -344
- package/dist/templates/themes/lunar-new-year.js +11 -11
- package/dist/templates/themes/machined-shared.js +4 -4
- package/dist/templates/themes/machined.js +11 -11
- package/dist/templates/themes/manuscript.js +11 -11
- package/dist/templates/themes/memories.js +14 -0
- package/dist/templates/themes/new-year.js +11 -11
- package/dist/templates/themes/noir.js +11 -11
- package/dist/templates/themes/printshop.js +14 -0
- package/dist/templates/themes/psychedelic.js +11 -11
- package/dist/templates/themes/riso-zine.js +11 -11
- package/dist/templates/themes/singles-day.js +11 -11
- package/dist/templates/themes/solarpunk.js +11 -11
- package/dist/templates/themes/space-opera.js +11 -11
- package/dist/templates/themes/spring-bloom.js +11 -11
- package/dist/templates/themes/studio.js +10 -10
- package/dist/templates/themes/summer-heatwave.js +11 -11
- package/dist/templates/themes/tour-tickets.js +30 -30
- package/dist/templates/themes/transit-map.js +11 -11
- package/dist/templates/themes/ukiyo-e.js +11 -11
- package/dist/templates/themes/valentines.js +11 -11
- package/dist/templates/themes/vaporwave.js +10 -10
- package/dist/templates/themes/winter-cosy.js +11 -11
- package/dist/templates/themes/winter-holidays.js +11 -11
- package/dist/templates/video/youtube-chapter.js +5 -5
- package/dist/templates/video/youtube-end-screen.js +5 -5
- package/dist/templates/video/youtube-intro.js +5 -5
- package/dist/templates/video/youtube-subscribe.js +5 -5
- package/dist/templates/web/app-ui.js +4 -4
- package/dist/templates/web/april-fools-landing.js +7 -7
- package/dist/templates/web/arcade-landing.js +5 -5
- package/dist/templates/web/art-deco-landing.js +5 -5
- package/dist/templates/web/autumn-harvest-landing.js +5 -5
- package/dist/templates/web/back-to-school-landing.js +5 -5
- package/dist/templates/web/bauhaus-landing.js +5 -5
- package/dist/templates/web/black-friday-coupons-landing.js +5 -5
- package/dist/templates/web/black-friday-landing.js +5 -5
- package/dist/templates/web/black-friday-neon-landing.js +5 -5
- package/dist/templates/web/black-friday-scratch-landing.js +5 -5
- package/dist/templates/web/black-friday-ticker-landing.js +5 -5
- package/dist/templates/web/blog-post.js +5 -5
- package/dist/templates/web/blueprint-landing.js +5 -5
- package/dist/templates/web/broadsheet-landing.js +5 -5
- package/dist/templates/web/claymation-landing.js +5 -5
- package/dist/templates/web/comic-book-landing.js +5 -5
- package/dist/templates/web/coming-soon-page.js +6 -6
- package/dist/templates/web/coming-soon.js +5 -5
- package/dist/templates/web/contact.js +6 -6
- package/dist/templates/web/cyberpunk-landing.js +5 -5
- package/dist/templates/web/daybreak-app.js +7 -7
- package/dist/templates/web/departure-board-download.js +5 -5
- package/dist/templates/web/diwali-landing.js +5 -5
- package/dist/templates/web/earth-day-landing.js +5 -5
- package/dist/templates/web/everyday-cafe.js +5 -5
- package/dist/templates/web/everyday-hotel.js +5 -5
- package/dist/templates/web/everyday-wedding.js +6 -6
- package/dist/templates/web/festival-presale-electronic.js +5 -5
- package/dist/templates/web/festival-presale-family.js +5 -5
- package/dist/templates/web/festival-presale-folk.js +5 -5
- package/dist/templates/web/festival-presale-food.js +5 -5
- package/dist/templates/web/festival-presale-jazz.js +5 -5
- package/dist/templates/web/festival-presale-street.js +5 -5
- package/dist/templates/web/forms.js +3 -3
- package/dist/templates/web/gothic-landing.js +5 -5
- package/dist/templates/web/halloween-landing.js +5 -5
- package/dist/templates/web/hero-animated.js +5 -5
- package/dist/templates/web/kindling-app.js +7 -7
- package/dist/templates/web/launch-waitlist.js +6 -6
- package/dist/templates/web/lunar-new-year-landing.js +5 -5
- package/dist/templates/web/machined-hero.js +7 -7
- package/dist/templates/web/manuscript-landing.js +5 -5
- package/dist/templates/web/marginalia-app.js +7 -7
- package/dist/templates/web/new-year-landing.js +5 -5
- package/dist/templates/web/noir-landing.js +5 -5
- package/dist/templates/web/page-404.js +5 -5
- package/dist/templates/web/portfolio-architect.js +6 -6
- package/dist/templates/web/portfolio-card-deck.js +6 -6
- package/dist/templates/web/portfolio-case-folio.js +6 -6
- package/dist/templates/web/portfolio-cube-gallery.js +6 -6
- package/dist/templates/web/portfolio-depth-tunnel.js +6 -6
- package/dist/templates/web/portfolio-editorial.js +6 -6
- package/dist/templates/web/portfolio-flip-wall.js +6 -6
- package/dist/templates/web/portfolio-index-list.js +6 -6
- package/dist/templates/web/portfolio-photographer.js +6 -6
- package/dist/templates/web/portfolio-reel-carousel.js +6 -6
- package/dist/templates/web/portfolio-shared.js +3 -3
- package/dist/templates/web/portfolio-sketchbook.js +6 -6
- package/dist/templates/web/portfolio-studio-grid.js +6 -6
- package/dist/templates/web/portfolio.js +5 -5
- package/dist/templates/web/portfolios.js +18 -18
- package/dist/templates/web/potluck-app.js +7 -7
- package/dist/templates/web/pricing-toggle.js +5 -5
- package/dist/templates/web/product-page.js +5 -5
- package/dist/templates/web/psychedelic-landing.js +5 -5
- package/dist/templates/web/riso-zine-landing.js +5 -5
- package/dist/templates/web/rsvp-invite.js +6 -6
- package/dist/templates/web/saas-ai-landing.js +5 -5
- package/dist/templates/web/saas-app-download.js +5 -5
- package/dist/templates/web/saas-case-study.js +5 -5
- package/dist/templates/web/saas-changelog.js +5 -5
- package/dist/templates/web/saas-comparison.js +5 -5
- package/dist/templates/web/saas-data-landing.js +5 -5
- package/dist/templates/web/saas-dev-landing.js +5 -5
- package/dist/templates/web/saas-indie-landing.js +5 -5
- package/dist/templates/web/saas-integrations.js +5 -5
- package/dist/templates/web/saas-security.js +5 -5
- package/dist/templates/web/saas-signup.js +5 -5
- package/dist/templates/web/saas-waitlist.js +5 -5
- package/dist/templates/web/saffron-app.js +7 -7
- package/dist/templates/web/shop-bloom.js +7 -7
- package/dist/templates/web/shop-circuit.js +7 -7
- package/dist/templates/web/shop-fieldwork.js +7 -7
- package/dist/templates/web/shop-greenhouse.js +7 -7
- package/dist/templates/web/shop-kiln.js +7 -7
- package/dist/templates/web/shop-marginalia.js +7 -7
- package/dist/templates/web/shop-ode.js +7 -7
- package/dist/templates/web/shop-shared.js +4 -4
- package/dist/templates/web/shop-static.js +7 -7
- package/dist/templates/web/shop-summit.js +7 -7
- package/dist/templates/web/shops.js +16 -16
- package/dist/templates/web/singles-day-landing.js +5 -5
- package/dist/templates/web/solarpunk-landing.js +5 -5
- package/dist/templates/web/space-opera-landing.js +5 -5
- package/dist/templates/web/spring-bloom-landing.js +5 -5
- package/dist/templates/web/studio-careers.js +5 -5
- package/dist/templates/web/style-bento-landing.js +5 -5
- package/dist/templates/web/style-bento-pricing.js +5 -5
- package/dist/templates/web/style-brutalist-landing.js +5 -5
- package/dist/templates/web/style-brutalist-pricing.js +5 -5
- package/dist/templates/web/style-dark-landing.js +5 -5
- package/dist/templates/web/style-dark-pricing.js +5 -5
- package/dist/templates/web/style-data-landing.js +5 -5
- package/dist/templates/web/style-data-pricing.js +5 -5
- package/dist/templates/web/style-editorial-landing.js +5 -5
- package/dist/templates/web/style-editorial-pricing.js +5 -5
- package/dist/templates/web/style-glass-landing.js +5 -5
- package/dist/templates/web/style-glass-pricing.js +5 -5
- package/dist/templates/web/style-gradient-landing.js +5 -5
- package/dist/templates/web/style-gradient-pricing.js +5 -5
- package/dist/templates/web/style-maximal-landing.js +5 -5
- package/dist/templates/web/style-maximal-pricing.js +5 -5
- package/dist/templates/web/style-pastel-landing.js +5 -5
- package/dist/templates/web/style-pastel-pricing.js +5 -5
- package/dist/templates/web/style-sketch-landing.js +5 -5
- package/dist/templates/web/style-sketch-pricing.js +5 -5
- package/dist/templates/web/style-swiss-landing.js +5 -5
- package/dist/templates/web/style-swiss-pricing.js +5 -5
- package/dist/templates/web/style-terminal-landing.js +5 -5
- package/dist/templates/web/style-terminal-pricing.js +5 -5
- package/dist/templates/web/summer-heatwave-landing.js +5 -5
- package/dist/templates/web/tempo-app.js +7 -7
- package/dist/templates/web/tour-tickets-june-landing.js +5 -5
- package/dist/templates/web/tour-tickets-tide-landing.js +5 -5
- package/dist/templates/web/tour-tickets-wreck-landing.js +5 -5
- package/dist/templates/web/transit-map-landing.js +5 -5
- package/dist/templates/web/ukiyo-e-landing.js +5 -5
- package/dist/templates/web/valentines-landing.js +5 -5
- package/dist/templates/web/vaporwave-landing.js +5 -5
- package/dist/templates/web/wayfarer-app.js +7 -7
- package/dist/templates/web/winter-cosy-landing.js +5 -5
- package/dist/templates/web/winter-holidays-landing.js +5 -5
- package/package.json +1 -1
- package/src/templates/print/comic-book-action-slant.ts +53 -0
- package/src/templates/print/comic-book-cover-pulp.ts +39 -0
- package/src/templates/print/comic-book-flashback.ts +44 -0
- package/src/templates/print/comic-book-issue.ts +75 -0
- package/src/templates/print/comic-book-nine-grid.ts +63 -0
- package/src/templates/print/comic-book-page-classic.ts +57 -0
- package/src/templates/print/comic-book-polyptych.ts +47 -0
- package/src/templates/print/comic-book-radial.ts +45 -0
- package/src/templates/print/comic-book-splash.ts +39 -0
- package/src/templates/print/comic-book-spread.ts +58 -0
- package/src/templates/themes/comic-book-art.ts +796 -0
- package/src/templates/themes/comic-book-page.ts +305 -0
- package/src/templates/themes/comic-book.ts +15 -1
- package/src/templates/themes/holidays.ts +5 -0
- package/src/templates/themes/index.ts +6 -0
- package/src/templates/themes/memories.ts +5 -0
- package/src/templates/themes/printshop.ts +5 -0
- package/types/templates/src/print/comic-book-action-slant.d.ts +4 -0
- package/types/templates/src/print/comic-book-cover-pulp.d.ts +4 -0
- package/types/templates/src/print/comic-book-flashback.d.ts +4 -0
- package/types/templates/src/print/comic-book-issue.d.ts +2 -0
- package/types/templates/src/print/comic-book-nine-grid.d.ts +4 -0
- package/types/templates/src/print/comic-book-page-classic.d.ts +5 -0
- package/types/templates/src/print/comic-book-polyptych.d.ts +4 -0
- package/types/templates/src/print/comic-book-radial.d.ts +4 -0
- package/types/templates/src/print/comic-book-splash.d.ts +4 -0
- package/types/templates/src/print/comic-book-spread.d.ts +4 -0
- package/types/templates/src/themes/comic-book-art.d.ts +153 -0
- package/types/templates/src/themes/comic-book-page.d.ts +174 -0
- package/types/templates/src/themes/holidays.d.ts +3 -0
- package/types/templates/src/themes/memories.d.ts +3 -0
- package/types/templates/src/themes/printshop.d.ts +3 -0
- package/dist/chunks/agent-VX44HOXQ.js +0 -44
- package/dist/chunks/api-SP5CMW7F.js +0 -29
- package/dist/chunks/build-6SE3CKZK.js +0 -54
- package/dist/chunks/builtin-U5OSIAGB.js +0 -113
- package/dist/chunks/check-template-EZECNGXQ.js +0 -2271
- package/dist/chunks/chunk-22OEP4AQ.js +0 -138
- package/dist/chunks/chunk-2656R7PT.js +0 -41
- package/dist/chunks/chunk-27DY5XJW.js +0 -242
- package/dist/chunks/chunk-2CN5MIO4.js +0 -181
- package/dist/chunks/chunk-2DCQD75I.js +0 -170
- package/dist/chunks/chunk-2DKIVBHT.js +0 -114
- package/dist/chunks/chunk-2E5ZU2HW.js +0 -104
- package/dist/chunks/chunk-2EI3KBBW.js +0 -45
- package/dist/chunks/chunk-2I73DX54.js +0 -111
- package/dist/chunks/chunk-2KUXHG3P.js +0 -98
- package/dist/chunks/chunk-2LVLNF67.js +0 -396
- package/dist/chunks/chunk-2RE3I5LP.js +0 -95
- package/dist/chunks/chunk-2SB4LPAU.js +0 -80
- package/dist/chunks/chunk-2SBDOIK2.js +0 -266
- package/dist/chunks/chunk-2T7Z22ZB.js +0 -146
- package/dist/chunks/chunk-2UVJTZK6.js +0 -177
- package/dist/chunks/chunk-2XM4P46D.js +0 -204
- package/dist/chunks/chunk-326JLCSG.js +0 -358
- package/dist/chunks/chunk-32G7LMPG.js +0 -1469
- package/dist/chunks/chunk-32PNHUTY.js +0 -106
- package/dist/chunks/chunk-33MCX3CQ.js +0 -196
- package/dist/chunks/chunk-344GY3HS.js +0 -199
- package/dist/chunks/chunk-34DZABRO.js +0 -195
- package/dist/chunks/chunk-35L4QJ3C.js +0 -33
- package/dist/chunks/chunk-362FACIG.js +0 -179
- package/dist/chunks/chunk-37FOYKBJ.js +0 -172
- package/dist/chunks/chunk-3CKUTCRL.js +0 -130
- package/dist/chunks/chunk-3EQDPTJ2.js +0 -101
- package/dist/chunks/chunk-3FAJ6SWW.js +0 -80
- package/dist/chunks/chunk-3K373EBZ.js +0 -390
- package/dist/chunks/chunk-3LR54KIZ.js +0 -331
- package/dist/chunks/chunk-3M7E4Z56.js +0 -224
- package/dist/chunks/chunk-3NMQUFLK.js +0 -140
- package/dist/chunks/chunk-3NWLAARU.js +0 -33
- package/dist/chunks/chunk-3PEJMVQP.js +0 -33
- package/dist/chunks/chunk-3PJCKLIN.js +0 -74
- package/dist/chunks/chunk-3QLWBZVO.js +0 -50
- package/dist/chunks/chunk-3SPNGK2Q.js +0 -50
- package/dist/chunks/chunk-3VKJHOM6.js +0 -115
- package/dist/chunks/chunk-3YGQUBPX.js +0 -304
- package/dist/chunks/chunk-42LWY44M.js +0 -84
- package/dist/chunks/chunk-43D6WJXH.js +0 -237
- package/dist/chunks/chunk-443O5BH5.js +0 -33
- package/dist/chunks/chunk-45LYIKW6.js +0 -191
- package/dist/chunks/chunk-467SURPV.js +0 -462
- package/dist/chunks/chunk-472LYVCM.js +0 -197
- package/dist/chunks/chunk-47PCZPPQ.js +0 -93
- package/dist/chunks/chunk-4BQ35K2I.js +0 -153
- package/dist/chunks/chunk-4FENUGRS.js +0 -124
- package/dist/chunks/chunk-4JFUCBQJ.js +0 -109
- package/dist/chunks/chunk-4JGL3OVX.js +0 -28
- package/dist/chunks/chunk-4KT7JGZC.js +0 -45
- package/dist/chunks/chunk-4OP26XRY.js +0 -626
- package/dist/chunks/chunk-4QHSV3TJ.js +0 -23
- package/dist/chunks/chunk-4QLBJRG6.js +0 -152
- package/dist/chunks/chunk-4QWYTKZG.js +0 -23
- package/dist/chunks/chunk-4RJITZT3.js +0 -225
- package/dist/chunks/chunk-4UYYYQMK.js +0 -152
- package/dist/chunks/chunk-4VN556RN.js +0 -80
- package/dist/chunks/chunk-4VTSPEWZ.js +0 -55
- package/dist/chunks/chunk-4WZW7LLJ.js +0 -173
- package/dist/chunks/chunk-4X7QRNC4.js +0 -198
- package/dist/chunks/chunk-532RTMDC.js +0 -198
- package/dist/chunks/chunk-53VHXZFK.js +0 -125
- package/dist/chunks/chunk-54BTAXAX.js +0 -122
- package/dist/chunks/chunk-54OYNBHM.js +0 -222
- package/dist/chunks/chunk-54TTZFX3.js +0 -282
- package/dist/chunks/chunk-54UXLMDQ.js +0 -81
- package/dist/chunks/chunk-54ZT2PHC.js +0 -135
- package/dist/chunks/chunk-562A6JCW.js +0 -97
- package/dist/chunks/chunk-57TFUDUK.js +0 -200
- package/dist/chunks/chunk-5ATPEHI5.js +0 -102
- package/dist/chunks/chunk-5C546ZIA.js +0 -192
- package/dist/chunks/chunk-5CHYS6M6.js +0 -41
- package/dist/chunks/chunk-5CUTMXNT.js +0 -145
- package/dist/chunks/chunk-5E6HCSTG.js +0 -153
- package/dist/chunks/chunk-5FFXVELY.js +0 -81
- package/dist/chunks/chunk-5FW6SHUP.js +0 -135
- package/dist/chunks/chunk-5G4JERCF.js +0 -304
- package/dist/chunks/chunk-5II54NUK.js +0 -171
- package/dist/chunks/chunk-5KA2IBBT.js +0 -155
- package/dist/chunks/chunk-5L2UE5ZH.js +0 -127
- package/dist/chunks/chunk-5MYWQ5JL.js +0 -165
- package/dist/chunks/chunk-5QHO2WTW.js +0 -33
- package/dist/chunks/chunk-5RB6FURO.js +0 -150
- package/dist/chunks/chunk-63BH7POO.js +0 -202
- package/dist/chunks/chunk-63M623TU.js +0 -150
- package/dist/chunks/chunk-64RESH2E.js +0 -336
- package/dist/chunks/chunk-65BNCYMM.js +0 -315
- package/dist/chunks/chunk-65UDICHL.js +0 -23
- package/dist/chunks/chunk-6643XXAW.js +0 -290
- package/dist/chunks/chunk-66X7MI5P.js +0 -119
- package/dist/chunks/chunk-6BFE44LC.js +0 -90
- package/dist/chunks/chunk-6EKTZRLQ.js +0 -257
- package/dist/chunks/chunk-6FFOSNTG.js +0 -97
- package/dist/chunks/chunk-6GGM5HEN.js +0 -147
- package/dist/chunks/chunk-6GH5IIUT.js +0 -158
- package/dist/chunks/chunk-6K526UP3.js +0 -23
- package/dist/chunks/chunk-6KBBV4X5.js +0 -155
- package/dist/chunks/chunk-6L2AUHXW.js +0 -177
- package/dist/chunks/chunk-6LWZDK7Z.js +0 -100
- package/dist/chunks/chunk-6N22HKR5.js +0 -23
- package/dist/chunks/chunk-6NCDWY64.js +0 -94
- package/dist/chunks/chunk-6NJ4UCZM.js +0 -39
- package/dist/chunks/chunk-6NJWT5M7.js +0 -168
- package/dist/chunks/chunk-6P7YC2IG.js +0 -147
- package/dist/chunks/chunk-6QJHYWLT.js +0 -33
- package/dist/chunks/chunk-6TGE4JPW.js +0 -23
- package/dist/chunks/chunk-6WDOLGSX.js +0 -90
- package/dist/chunks/chunk-6XNGM6FW.js +0 -298
- package/dist/chunks/chunk-72Z5VIH4.js +0 -84
- package/dist/chunks/chunk-73XXWYXA.js +0 -83
- package/dist/chunks/chunk-74BMAO6K.js +0 -198
- package/dist/chunks/chunk-74FZQZBC.js +0 -45
- package/dist/chunks/chunk-7FY4ZCKE.js +0 -111
- package/dist/chunks/chunk-7HSU6JYM.js +0 -81
- package/dist/chunks/chunk-7I4S5W2L.js +0 -108
- package/dist/chunks/chunk-7IBMJYYT.js +0 -33
- package/dist/chunks/chunk-7LMDELO4.js +0 -120
- package/dist/chunks/chunk-7LUGSIMT.js +0 -118
- package/dist/chunks/chunk-7MA4DBJN.js +0 -150
- package/dist/chunks/chunk-7MHV6ZSA.js +0 -161
- package/dist/chunks/chunk-7N5IA2AQ.js +0 -144
- package/dist/chunks/chunk-7NBEQHSZ.js +0 -33
- package/dist/chunks/chunk-7NTRM5HK.js +0 -226
- package/dist/chunks/chunk-7O4XVRPA.js +0 -110
- package/dist/chunks/chunk-7OZT7GQK.js +0 -106
- package/dist/chunks/chunk-7PN42MDP.js +0 -283
- package/dist/chunks/chunk-7PP5742Q.js +0 -157
- package/dist/chunks/chunk-7QD6IHR4.js +0 -102
- package/dist/chunks/chunk-7RNWFU3X.js +0 -218
- package/dist/chunks/chunk-7RTCALZI.js +0 -60
- package/dist/chunks/chunk-7S6WPICH.js +0 -49
- package/dist/chunks/chunk-7STTG4JP.js +0 -78
- package/dist/chunks/chunk-7TPNLNMV.js +0 -82
- package/dist/chunks/chunk-7V2AVIPX.js +0 -261
- package/dist/chunks/chunk-7VY4SNAB.js +0 -154
- package/dist/chunks/chunk-7ZY4ADN7.js +0 -231
- package/dist/chunks/chunk-A64TXRHT.js +0 -266
- package/dist/chunks/chunk-A6K6OYST.js +0 -182
- package/dist/chunks/chunk-AAEFDFTM.js +0 -173
- package/dist/chunks/chunk-ADVSI6H3.js +0 -198
- package/dist/chunks/chunk-ADWJ3VKB.js +0 -100
- package/dist/chunks/chunk-AETTVEQN.js +0 -95
- package/dist/chunks/chunk-AG6QM2FE.js +0 -212
- package/dist/chunks/chunk-AIHFUHCL.js +0 -103
- package/dist/chunks/chunk-AIVYY236.js +0 -237
- package/dist/chunks/chunk-AK6DCRCJ.js +0 -100
- package/dist/chunks/chunk-AMCKEC2K.js +0 -105
- package/dist/chunks/chunk-AMY67SXU.js +0 -133
- package/dist/chunks/chunk-AOQVRHK4.js +0 -33
- package/dist/chunks/chunk-AQMTP6J6.js +0 -172
- package/dist/chunks/chunk-AQWMXUBA.js +0 -898
- package/dist/chunks/chunk-AT6AFO6H.js +0 -232
- package/dist/chunks/chunk-AU3O4A7F.js +0 -117
- package/dist/chunks/chunk-AU7VNAFH.js +0 -209
- package/dist/chunks/chunk-AW4AWZQF.js +0 -97
- package/dist/chunks/chunk-AW5A66UN.js +0 -126
- package/dist/chunks/chunk-AWAZQT2H.js +0 -193
- package/dist/chunks/chunk-AZ5FFNAF.js +0 -197
- package/dist/chunks/chunk-B3Y5M33J.js +0 -317
- package/dist/chunks/chunk-B4TH456J.js +0 -261
- package/dist/chunks/chunk-B55C4Y6W.js +0 -197
- package/dist/chunks/chunk-B5C3DCZ6.js +0 -78
- package/dist/chunks/chunk-B6RFNKGV.js +0 -283
- package/dist/chunks/chunk-BGOPVC5T.js +0 -213
- package/dist/chunks/chunk-BHGXNZZ6.js +0 -139
- package/dist/chunks/chunk-BHK7BMYF.js +0 -105
- package/dist/chunks/chunk-BK2DGAOU.js +0 -152
- package/dist/chunks/chunk-BNAVNKTZ.js +0 -33
- package/dist/chunks/chunk-BNGQDFQM.js +0 -23
- package/dist/chunks/chunk-BNODOYGR.js +0 -117
- package/dist/chunks/chunk-BNOL6QLW.js +0 -169
- package/dist/chunks/chunk-BP2BJB6V.js +0 -113
- package/dist/chunks/chunk-BPGUQS5U.js +0 -194
- package/dist/chunks/chunk-BR3ABVDO.js +0 -213
- package/dist/chunks/chunk-BVIW5I5R.js +0 -172
- package/dist/chunks/chunk-BVIZKJV2.js +0 -320
- package/dist/chunks/chunk-BXMFM3TQ.js +0 -589
- package/dist/chunks/chunk-BYSU3SCY.js +0 -111
- package/dist/chunks/chunk-C3CU2U6C.js +0 -45
- package/dist/chunks/chunk-C4M56NC5.js +0 -134
- package/dist/chunks/chunk-C4VUE5TI.js +0 -200
- package/dist/chunks/chunk-C7QXQT5R.js +0 -33
- package/dist/chunks/chunk-CBQRE5MC.js +0 -190
- package/dist/chunks/chunk-CIHJPU63.js +0 -81
- package/dist/chunks/chunk-CKY3OT3T.js +0 -33
- package/dist/chunks/chunk-CLDOP4CP.js +0 -86
- package/dist/chunks/chunk-CLDWXFCB.js +0 -299
- package/dist/chunks/chunk-CLYB3WFS.js +0 -86
- package/dist/chunks/chunk-CNU5DIH7.js +0 -336
- package/dist/chunks/chunk-CTGIXVKD.js +0 -231
- package/dist/chunks/chunk-D2L3725A.js +0 -122
- package/dist/chunks/chunk-D45QHK36.js +0 -55
- package/dist/chunks/chunk-D4RP5OLY.js +0 -74
- package/dist/chunks/chunk-D7R6POPZ.js +0 -23
- package/dist/chunks/chunk-DAB3HLAI.js +0 -52
- package/dist/chunks/chunk-DBCYFKE3.js +0 -33
- package/dist/chunks/chunk-DCR33XA4.js +0 -262
- package/dist/chunks/chunk-DD4YKXRI.js +0 -165
- package/dist/chunks/chunk-DDMOVJJX.js +0 -260
- package/dist/chunks/chunk-DEKYK7JC.js +0 -23
- package/dist/chunks/chunk-DEOYZPAS.js +0 -33
- package/dist/chunks/chunk-DGIUT6VJ.js +0 -342
- package/dist/chunks/chunk-DIDTFCUY.js +0 -86
- package/dist/chunks/chunk-DLFODLBP.js +0 -128
- package/dist/chunks/chunk-DNP2KVL4.js +0 -23
- package/dist/chunks/chunk-DPC6PI6X.js +0 -36
- package/dist/chunks/chunk-DQCD4P5J.js +0 -23
- package/dist/chunks/chunk-DQGADYLF.js +0 -23
- package/dist/chunks/chunk-DRRSXCJL.js +0 -136
- package/dist/chunks/chunk-DS4Y4ZSB.js +0 -33
- package/dist/chunks/chunk-DSI6KPFK.js +0 -104
- package/dist/chunks/chunk-DTJ7BJIW.js +0 -1574
- package/dist/chunks/chunk-DTMEZGDI.js +0 -191
- package/dist/chunks/chunk-DTQ7VJWY.js +0 -73
- package/dist/chunks/chunk-DUU6FCY3.js +0 -130
- package/dist/chunks/chunk-DV4CVIZU.js +0 -113
- package/dist/chunks/chunk-DW6XOEB5.js +0 -86
- package/dist/chunks/chunk-DWAIR3ZY.js +0 -503
- package/dist/chunks/chunk-DWW4H73V.js +0 -329
- package/dist/chunks/chunk-DXOV5ILY.js +0 -23
- package/dist/chunks/chunk-DY2OFZRP.js +0 -55
- package/dist/chunks/chunk-E22FTSZX.js +0 -162
- package/dist/chunks/chunk-E25AVAEY.js +0 -123
- package/dist/chunks/chunk-E2PV3V22.js +0 -71
- package/dist/chunks/chunk-E2S4U36H.js +0 -167
- package/dist/chunks/chunk-E4DFDIA4.js +0 -33
- package/dist/chunks/chunk-E5ZC56EU.js +0 -23
- package/dist/chunks/chunk-E7AGTZN2.js +0 -187
- package/dist/chunks/chunk-EB7VRGCE.js +0 -105
- package/dist/chunks/chunk-ECNSLXGV.js +0 -118
- package/dist/chunks/chunk-EE3Z5V72.js +0 -142
- package/dist/chunks/chunk-EEFJ54MN.js +0 -157
- package/dist/chunks/chunk-EEIBH3BD.js +0 -270
- package/dist/chunks/chunk-EHT2BGAB.js +0 -87
- package/dist/chunks/chunk-EJHKS674.js +0 -46
- package/dist/chunks/chunk-EJKNFLFZ.js +0 -172
- package/dist/chunks/chunk-EJLUDUV5.js +0 -96
- package/dist/chunks/chunk-EKODUW2N.js +0 -290
- package/dist/chunks/chunk-ELIL2COL.js +0 -200
- package/dist/chunks/chunk-ENVEIVII.js +0 -244
- package/dist/chunks/chunk-EO3JD7BX.js +0 -70
- package/dist/chunks/chunk-EOJIG355.js +0 -147
- package/dist/chunks/chunk-EPCRK3YH.js +0 -78
- package/dist/chunks/chunk-EPDMQT56.js +0 -163
- package/dist/chunks/chunk-EQ4TF3V7.js +0 -249
- package/dist/chunks/chunk-ETUS54K7.js +0 -45
- package/dist/chunks/chunk-EU3DBPBQ.js +0 -115
- package/dist/chunks/chunk-EXBD6HZN.js +0 -92
- package/dist/chunks/chunk-EYZTEZNN.js +0 -738
- package/dist/chunks/chunk-F2HHKWSQ.js +0 -170
- package/dist/chunks/chunk-F2TVCZ6J.js +0 -23
- package/dist/chunks/chunk-F37PTXWO.js +0 -154
- package/dist/chunks/chunk-F3KZGYHY.js +0 -98
- package/dist/chunks/chunk-F6EUUBLD.js +0 -368
- package/dist/chunks/chunk-F6Z5MUAH.js +0 -209
- package/dist/chunks/chunk-FBEL3DYI.js +0 -53
- package/dist/chunks/chunk-FBPRQ6XB.js +0 -163
- package/dist/chunks/chunk-FBSXFLVC.js +0 -89
- package/dist/chunks/chunk-FDQ6ZVKG.js +0 -85
- package/dist/chunks/chunk-FJHFF57A.js +0 -346
- package/dist/chunks/chunk-FJWLBDCU.js +0 -11413
- package/dist/chunks/chunk-FKIOKXRT.js +0 -106
- package/dist/chunks/chunk-FLO442N7.js +0 -89
- package/dist/chunks/chunk-FLWQNOLS.js +0 -230
- package/dist/chunks/chunk-FNGCO4KT.js +0 -375
- package/dist/chunks/chunk-FOI47LLO.js +0 -55
- package/dist/chunks/chunk-FOJ7ECSX.js +0 -77
- package/dist/chunks/chunk-FQFHKYYU.js +0 -196
- package/dist/chunks/chunk-FQLULPMM.js +0 -98
- package/dist/chunks/chunk-FRHZPKAU.js +0 -145
- package/dist/chunks/chunk-FTJ64ICT.js +0 -84
- package/dist/chunks/chunk-FTMCLQIB.js +0 -23
- package/dist/chunks/chunk-FUP74PLY.js +0 -115
- package/dist/chunks/chunk-FXH46RSH.js +0 -358
- package/dist/chunks/chunk-FYCO5U4Y.js +0 -93
- package/dist/chunks/chunk-FZSHS6UZ.js +0 -150
- package/dist/chunks/chunk-G377QI3P.js +0 -305
- package/dist/chunks/chunk-G5ZHNDQ3.js +0 -324
- package/dist/chunks/chunk-G6JVAFRU.js +0 -234
- package/dist/chunks/chunk-G72WMAWM.js +0 -106
- package/dist/chunks/chunk-G7K24K65.js +0 -210
- package/dist/chunks/chunk-GAC62KL2.js +0 -128
- package/dist/chunks/chunk-GAVLKNXU.js +0 -100
- package/dist/chunks/chunk-GB5BUUI5.js +0 -273
- package/dist/chunks/chunk-GC4U7UYU.js +0 -45
- package/dist/chunks/chunk-GDA5LFHC.js +0 -157
- package/dist/chunks/chunk-GDJLADJW.js +0 -179
- package/dist/chunks/chunk-GH34EYR7.js +0 -229
- package/dist/chunks/chunk-GHPUUBCT.js +0 -303
- package/dist/chunks/chunk-GI4OZW77.js +0 -23
- package/dist/chunks/chunk-GIINMYGJ.js +0 -183
- package/dist/chunks/chunk-GKEKWFZZ.js +0 -45
- package/dist/chunks/chunk-GKVXM4JS.js +0 -130
- package/dist/chunks/chunk-GL7GZ3GY.js +0 -263
- package/dist/chunks/chunk-GNH5C47L.js +0 -131
- package/dist/chunks/chunk-GOATYZ4B.js +0 -112
- package/dist/chunks/chunk-GOLC5UV5.js +0 -129
- package/dist/chunks/chunk-GONTQRE7.js +0 -23
- package/dist/chunks/chunk-GTA5LT6W.js +0 -84
- package/dist/chunks/chunk-GVIYIFWF.js +0 -103
- package/dist/chunks/chunk-GVWNR4D5.js +0 -120
- package/dist/chunks/chunk-GWFGF3PK.js +0 -471
- package/dist/chunks/chunk-GYYHPOYE.js +0 -42
- package/dist/chunks/chunk-H3HTB3EC.js +0 -23
- package/dist/chunks/chunk-H6STUZKR.js +0 -38
- package/dist/chunks/chunk-HDLXTNBF.js +0 -33
- package/dist/chunks/chunk-HE3WXPOY.js +0 -181
- package/dist/chunks/chunk-HENALN3H.js +0 -99
- package/dist/chunks/chunk-HHGESGNQ.js +0 -185
- package/dist/chunks/chunk-HHXQEOXO.js +0 -76
- package/dist/chunks/chunk-HKDVTY6S.js +0 -91
- package/dist/chunks/chunk-HLYO5T4M.js +0 -198
- package/dist/chunks/chunk-HNYLVI7U.js +0 -163
- package/dist/chunks/chunk-HOJERD3F.js +0 -179
- package/dist/chunks/chunk-HQXU2P6R.js +0 -150
- package/dist/chunks/chunk-HRD6YRTR.js +0 -10182
- package/dist/chunks/chunk-HSI2KE4P.js +0 -87
- package/dist/chunks/chunk-HUQNEZM4.js +0 -95
- package/dist/chunks/chunk-HVELMMZE.js +0 -172
- package/dist/chunks/chunk-HYNJ5EUY.js +0 -258
- package/dist/chunks/chunk-HYX6Y2BJ.js +0 -261
- package/dist/chunks/chunk-HZUTLYGO.js +0 -287
- package/dist/chunks/chunk-I2K3NNYU.js +0 -36
- package/dist/chunks/chunk-I5SDA5LA.js +0 -158
- package/dist/chunks/chunk-I732GOAR.js +0 -45
- package/dist/chunks/chunk-I74V4A4N.js +0 -182
- package/dist/chunks/chunk-IAQTFYTH.js +0 -226
- package/dist/chunks/chunk-ICFOJTE3.js +0 -331
- package/dist/chunks/chunk-IDK6PFSN.js +0 -114
- package/dist/chunks/chunk-IESPO6SJ.js +0 -83
- package/dist/chunks/chunk-IGL6JTNI.js +0 -139
- package/dist/chunks/chunk-II5UZKJ5.js +0 -260
- package/dist/chunks/chunk-IJA7W2BD.js +0 -361
- package/dist/chunks/chunk-IJISPEQR.js +0 -23
- package/dist/chunks/chunk-IJRTLULF.js +0 -226
- package/dist/chunks/chunk-IK4EOKIV.js +0 -115
- package/dist/chunks/chunk-ILJ6MEF2.js +0 -104
- package/dist/chunks/chunk-IPKT27OK.js +0 -146
- package/dist/chunks/chunk-ITMGRWYO.js +0 -107
- package/dist/chunks/chunk-IUF7E45C.js +0 -149
- package/dist/chunks/chunk-IUS4DYSG.js +0 -170
- package/dist/chunks/chunk-IUUXJSAI.js +0 -1221
- package/dist/chunks/chunk-IVBOH2VM.js +0 -165
- package/dist/chunks/chunk-IVVTOVYN.js +0 -208
- package/dist/chunks/chunk-IWC2GYK2.js +0 -23
- package/dist/chunks/chunk-IXEAC6IC.js +0 -23
- package/dist/chunks/chunk-IXVISSNK.js +0 -141
- package/dist/chunks/chunk-IYEFSYUS.js +0 -83
- package/dist/chunks/chunk-IYF2U3DB.js +0 -183
- package/dist/chunks/chunk-IYJMEWFX.js +0 -231
- package/dist/chunks/chunk-IYSJTSGD.js +0 -80
- package/dist/chunks/chunk-JACOXD6S.js +0 -23
- package/dist/chunks/chunk-JAPHT7XO.js +0 -201
- package/dist/chunks/chunk-JB2J545S.js +0 -117
- package/dist/chunks/chunk-JD75KLZ5.js +0 -133
- package/dist/chunks/chunk-JEGEDC77.js +0 -307
- package/dist/chunks/chunk-JF4CIRDX.js +0 -23
- package/dist/chunks/chunk-JFS55LEX.js +0 -151
- package/dist/chunks/chunk-JGYP57Y7.js +0 -176
- package/dist/chunks/chunk-JHZAXNDF.js +0 -97
- package/dist/chunks/chunk-JIKMYDUO.js +0 -111
- package/dist/chunks/chunk-JJ7TD3T7.js +0 -129
- package/dist/chunks/chunk-JKLTIW7Y.js +0 -260
- package/dist/chunks/chunk-JKXXVDSS.js +0 -45
- package/dist/chunks/chunk-JM5V5UEA.js +0 -88
- package/dist/chunks/chunk-JNPDG5B4.js +0 -777
- package/dist/chunks/chunk-JPFDABLV.js +0 -106
- package/dist/chunks/chunk-JQ3DH2JS.js +0 -30
- package/dist/chunks/chunk-JQ6RCMEJ.js +0 -215
- package/dist/chunks/chunk-JQDTBZQ5.js +0 -255
- package/dist/chunks/chunk-JQWYXW3X.js +0 -160
- package/dist/chunks/chunk-JTRUITUI.js +0 -164
- package/dist/chunks/chunk-JUL3K4PX.js +0 -119
- package/dist/chunks/chunk-JV27LQZ5.js +0 -127
- package/dist/chunks/chunk-JZTQ6VDM.js +0 -123
- package/dist/chunks/chunk-JZYMTLTW.js +0 -77
- package/dist/chunks/chunk-K3FNL7FY.js +0 -23
- package/dist/chunks/chunk-K3OFF2VP.js +0 -23
- package/dist/chunks/chunk-K47QH4Z6.js +0 -415
- package/dist/chunks/chunk-KBCNQYNM.js +0 -45
- package/dist/chunks/chunk-KCQURIWO.js +0 -149
- package/dist/chunks/chunk-KDTFGBPW.js +0 -49
- package/dist/chunks/chunk-KENJPJED.js +0 -80
- package/dist/chunks/chunk-KF3HTPHQ.js +0 -160
- package/dist/chunks/chunk-KFMKTJOG.js +0 -177
- package/dist/chunks/chunk-KHOH7NUK.js +0 -101
- package/dist/chunks/chunk-KJSXMERS.js +0 -55
- package/dist/chunks/chunk-KMVS5NDJ.js +0 -297
- package/dist/chunks/chunk-KOYK6VHY.js +0 -102
- package/dist/chunks/chunk-KPYQQNAV.js +0 -201
- package/dist/chunks/chunk-KQA3VLLM.js +0 -94
- package/dist/chunks/chunk-KQRHLISF.js +0 -147
- package/dist/chunks/chunk-KTLF4M6Q.js +0 -84
- package/dist/chunks/chunk-KU47HIPC.js +0 -176
- package/dist/chunks/chunk-KXJCFOKU.js +0 -23
- package/dist/chunks/chunk-KXVUMQOQ.js +0 -156
- package/dist/chunks/chunk-KYVHH7IY.js +0 -225
- package/dist/chunks/chunk-L3IJ5J5T.js +0 -33
- package/dist/chunks/chunk-L4NNSMFS.js +0 -108
- package/dist/chunks/chunk-L4XZK4PX.js +0 -147
- package/dist/chunks/chunk-L7PAAVHA.js +0 -62
- package/dist/chunks/chunk-LARFGICZ.js +0 -33
- package/dist/chunks/chunk-LARSRFDC.js +0 -47
- package/dist/chunks/chunk-LBO5FSJU.js +0 -41
- package/dist/chunks/chunk-LDOSBEER.js +0 -574
- package/dist/chunks/chunk-LDTA25KY.js +0 -293
- package/dist/chunks/chunk-LFRNPJVY.js +0 -214
- package/dist/chunks/chunk-LH3FUQ3M.js +0 -360
- package/dist/chunks/chunk-LH5Q73Y5.js +0 -82
- package/dist/chunks/chunk-LHNL5WSE.js +0 -184
- package/dist/chunks/chunk-LHQVNS7J.js +0 -23
- package/dist/chunks/chunk-LIITJXZC.js +0 -99
- package/dist/chunks/chunk-LKLY6IMC.js +0 -180
- package/dist/chunks/chunk-LKQLFUMM.js +0 -44
- package/dist/chunks/chunk-LO2YGZM6.js +0 -11047
- package/dist/chunks/chunk-LOUVS7RY.js +0 -251
- package/dist/chunks/chunk-LSFJG5KF.js +0 -122
- package/dist/chunks/chunk-LSHITSNS.js +0 -78
- package/dist/chunks/chunk-LSW2RLOU.js +0 -607
- package/dist/chunks/chunk-LVF5YQHD.js +0 -165
- package/dist/chunks/chunk-LW7VE7YN.js +0 -277
- package/dist/chunks/chunk-LXEBB4ZW.js +0 -23
- package/dist/chunks/chunk-LZ7NOFBJ.js +0 -45
- package/dist/chunks/chunk-M3T4IRPW.js +0 -209
- package/dist/chunks/chunk-M4MUGP4X.js +0 -33
- package/dist/chunks/chunk-M55VIHZI.js +0 -85
- package/dist/chunks/chunk-M5MCY5H2.js +0 -119
- package/dist/chunks/chunk-MA4CSNL7.js +0 -198
- package/dist/chunks/chunk-MBLG2FGZ.js +0 -122
- package/dist/chunks/chunk-MBNW74FQ.js +0 -78
- package/dist/chunks/chunk-MBUQH764.js +0 -97
- package/dist/chunks/chunk-MDKDFBUQ.js +0 -44
- package/dist/chunks/chunk-MELMHLPG.js +0 -159
- package/dist/chunks/chunk-METY3ZE6.js +0 -153
- package/dist/chunks/chunk-MFSP52AB.js +0 -33
- package/dist/chunks/chunk-MGVOTEIA.js +0 -311
- package/dist/chunks/chunk-MHCGUPI3.js +0 -65
- package/dist/chunks/chunk-MHT7B5UV.js +0 -36
- package/dist/chunks/chunk-MJIYJPFN.js +0 -161
- package/dist/chunks/chunk-MNOBCA5W.js +0 -102
- package/dist/chunks/chunk-MOB2MFSZ.js +0 -108
- package/dist/chunks/chunk-MORJNIYQ.js +0 -327
- package/dist/chunks/chunk-MQPCBEHM.js +0 -112
- package/dist/chunks/chunk-MSTEERO6.js +0 -327
- package/dist/chunks/chunk-MW6Z2OQ3.js +0 -166
- package/dist/chunks/chunk-MWVTZQDA.js +0 -156
- package/dist/chunks/chunk-MX2U4UCZ.js +0 -239
- package/dist/chunks/chunk-MXQ6QFV6.js +0 -304
- package/dist/chunks/chunk-MZVYR3E3.js +0 -23
- package/dist/chunks/chunk-N3MUYR4M.js +0 -190
- package/dist/chunks/chunk-N42L2K6X.js +0 -23
- package/dist/chunks/chunk-N4GE7SD6.js +0 -209
- package/dist/chunks/chunk-N6A2P44G.js +0 -192
- package/dist/chunks/chunk-N6VNPO2Z.js +0 -181
- package/dist/chunks/chunk-NEEDOCU3.js +0 -23
- package/dist/chunks/chunk-NEGWVHHD.js +0 -162
- package/dist/chunks/chunk-NG3NIQ7O.js +0 -71
- package/dist/chunks/chunk-NH7OCDZS.js +0 -362
- package/dist/chunks/chunk-NHGOZ5ON.js +0 -382
- package/dist/chunks/chunk-NHKZNKVN.js +0 -79
- package/dist/chunks/chunk-NIFQVM6V.js +0 -79
- package/dist/chunks/chunk-NIJ446XG.js +0 -94
- package/dist/chunks/chunk-NK6JALSF.js +0 -36
- package/dist/chunks/chunk-NKWX7HVF.js +0 -78
- package/dist/chunks/chunk-NLA2BRX2.js +0 -151
- package/dist/chunks/chunk-NLCB46KV.js +0 -45
- package/dist/chunks/chunk-NLI6V3FI.js +0 -272
- package/dist/chunks/chunk-NNGXILFJ.js +0 -92
- package/dist/chunks/chunk-NOAPAVM5.js +0 -175
- package/dist/chunks/chunk-NSZY4XKS.js +0 -133
- package/dist/chunks/chunk-NT2D2JSN.js +0 -131
- package/dist/chunks/chunk-NTUSSYQN.js +0 -45
- package/dist/chunks/chunk-NUKOXYOV.js +0 -103
- package/dist/chunks/chunk-NURYYUTR.js +0 -221
- package/dist/chunks/chunk-NVSYKIUA.js +0 -220
- package/dist/chunks/chunk-NWC4HRWP.js +0 -147
- package/dist/chunks/chunk-NYGBLPEV.js +0 -215
- package/dist/chunks/chunk-NYIOZRPI.js +0 -83
- package/dist/chunks/chunk-NZ747MG7.js +0 -366
- package/dist/chunks/chunk-OAR362QM.js +0 -161
- package/dist/chunks/chunk-OCQA5KLE.js +0 -277
- package/dist/chunks/chunk-OCVR5XZG.js +0 -84
- package/dist/chunks/chunk-OESYC5DM.js +0 -564
- package/dist/chunks/chunk-OGA4L2O2.js +0 -135
- package/dist/chunks/chunk-OGCXTO4V.js +0 -422
- package/dist/chunks/chunk-OHK3UV6D.js +0 -240
- package/dist/chunks/chunk-OHKHKK6N.js +0 -97
- package/dist/chunks/chunk-OLOVS4F4.js +0 -164
- package/dist/chunks/chunk-OLWZQB4A.js +0 -80
- package/dist/chunks/chunk-OMABEW66.js +0 -77
- package/dist/chunks/chunk-ONGDSE2P.js +0 -106
- package/dist/chunks/chunk-ONZU66QP.js +0 -651
- package/dist/chunks/chunk-OQTVVTPA.js +0 -344
- package/dist/chunks/chunk-OUTR727N.js +0 -206
- package/dist/chunks/chunk-OV7EQ2KI.js +0 -54
- package/dist/chunks/chunk-OVD5LMEC.js +0 -138
- package/dist/chunks/chunk-OZGCRTG5.js +0 -320
- package/dist/chunks/chunk-P2ORB3QY.js +0 -255
- package/dist/chunks/chunk-P3HR6Z4E.js +0 -117
- package/dist/chunks/chunk-P56A43DY.js +0 -163
- package/dist/chunks/chunk-P5IL5LDH.js +0 -274
- package/dist/chunks/chunk-P5KBUTL7.js +0 -88
- package/dist/chunks/chunk-P5LUQ56Z.js +0 -36
- package/dist/chunks/chunk-P5OIAET2.js +0 -33
- package/dist/chunks/chunk-P6DCOMDC.js +0 -104
- package/dist/chunks/chunk-PBF6GX7H.js +0 -33
- package/dist/chunks/chunk-PCUQWCMI.js +0 -345
- package/dist/chunks/chunk-PDIIDOXA.js +0 -23
- package/dist/chunks/chunk-PDY4J5KS.js +0 -99
- package/dist/chunks/chunk-PG62KGAE.js +0 -177
- package/dist/chunks/chunk-PHL4UJ65.js +0 -88
- package/dist/chunks/chunk-PJA55GML.js +0 -262
- package/dist/chunks/chunk-PKOKVSQB.js +0 -84
- package/dist/chunks/chunk-PN3DROZ4.js +0 -83
- package/dist/chunks/chunk-POL4QQR3.js +0 -23
- package/dist/chunks/chunk-PQBFKGVB.js +0 -333
- package/dist/chunks/chunk-PRRG3DKO.js +0 -378
- package/dist/chunks/chunk-PTJFWESI.js +0 -180
- package/dist/chunks/chunk-PTOC5HIP.js +0 -121
- package/dist/chunks/chunk-PUUTQLYJ.js +0 -247
- package/dist/chunks/chunk-PVFOJC22.js +0 -206
- package/dist/chunks/chunk-PWNG2VLK.js +0 -112
- package/dist/chunks/chunk-PZZ4WQRI.js +0 -957
- package/dist/chunks/chunk-Q4FHQHHY.js +0 -194
- package/dist/chunks/chunk-Q4WKN4TW.js +0 -80
- package/dist/chunks/chunk-Q56FBZEK.js +0 -109
- package/dist/chunks/chunk-QCTJAPZT.js +0 -351
- package/dist/chunks/chunk-QFB3NCY2.js +0 -102
- package/dist/chunks/chunk-QFGFUCJY.js +0 -204
- package/dist/chunks/chunk-QH3CGMIH.js +0 -250
- package/dist/chunks/chunk-QIBOH2C7.js +0 -366
- package/dist/chunks/chunk-QIMLZGER.js +0 -1307
- package/dist/chunks/chunk-QJ3U2YPR.js +0 -33
- package/dist/chunks/chunk-QJXLQ2P7.js +0 -155
- package/dist/chunks/chunk-QL2KVB6N.js +0 -283
- package/dist/chunks/chunk-QNYGHXQ2.js +0 -169
- package/dist/chunks/chunk-QOO724FQ.js +0 -112
- package/dist/chunks/chunk-QPT62ML3.js +0 -204
- package/dist/chunks/chunk-QPWCE5D6.js +0 -136
- package/dist/chunks/chunk-QQ4BLMMP.js +0 -159
- package/dist/chunks/chunk-QQKMEYR5.js +0 -90
- package/dist/chunks/chunk-QTNJIDPQ.js +0 -94
- package/dist/chunks/chunk-QUKNODMB.js +0 -172
- package/dist/chunks/chunk-QVLACARA.js +0 -120
- package/dist/chunks/chunk-QVMZF2KT.js +0 -138
- package/dist/chunks/chunk-QWKY7MO3.js +0 -174
- package/dist/chunks/chunk-R2PHJOEY.js +0 -94
- package/dist/chunks/chunk-R6LESOFG.js +0 -106
- package/dist/chunks/chunk-RFNQHB46.js +0 -72
- package/dist/chunks/chunk-RH3HI5DB.js +0 -279
- package/dist/chunks/chunk-RH6O6P2W.js +0 -178
- package/dist/chunks/chunk-RIGEIZFJ.js +0 -91
- package/dist/chunks/chunk-RISEMZFV.js +0 -238
- package/dist/chunks/chunk-RJ42VQTS.js +0 -887
- package/dist/chunks/chunk-RLDNZSFC.js +0 -251
- package/dist/chunks/chunk-ROD25BHH.js +0 -77
- package/dist/chunks/chunk-RPHBAI7Z.js +0 -105
- package/dist/chunks/chunk-RQMFXUV7.js +0 -123
- package/dist/chunks/chunk-RVA7EV7U.js +0 -45
- package/dist/chunks/chunk-RVCAOBQB.js +0 -125
- package/dist/chunks/chunk-RVV2RQK5.js +0 -220
- package/dist/chunks/chunk-RWDIVKR5.js +0 -287
- package/dist/chunks/chunk-RYLBEWTG.js +0 -33
- package/dist/chunks/chunk-RZM3RVV2.js +0 -305
- package/dist/chunks/chunk-S5MRGVTN.js +0 -282
- package/dist/chunks/chunk-S5T3LTFE.js +0 -78
- package/dist/chunks/chunk-S6QMTNP7.js +0 -278
- package/dist/chunks/chunk-SAI52TVK.js +0 -265
- package/dist/chunks/chunk-SBJD4ADV.js +0 -128
- package/dist/chunks/chunk-SCMDBCRE.js +0 -81
- package/dist/chunks/chunk-SDHTQQQS.js +0 -152
- package/dist/chunks/chunk-SDZ5NAYO.js +0 -182
- package/dist/chunks/chunk-SFEHN74K.js +0 -363
- package/dist/chunks/chunk-SGL2BNUU.js +0 -141
- package/dist/chunks/chunk-SJVXQWYQ.js +0 -1649
- package/dist/chunks/chunk-SP6TUV2W.js +0 -163
- package/dist/chunks/chunk-SQZWARQY.js +0 -877
- package/dist/chunks/chunk-SSDGRUUH.js +0 -106
- package/dist/chunks/chunk-SZDDYKAR.js +0 -30
- package/dist/chunks/chunk-T4J3WTW5.js +0 -95
- package/dist/chunks/chunk-T4TZVEYO.js +0 -217
- package/dist/chunks/chunk-T4Y7BBV3.js +0 -45
- package/dist/chunks/chunk-TA3M3YV4.js +0 -135
- package/dist/chunks/chunk-TB2ZNNVI.js +0 -93
- package/dist/chunks/chunk-TBIKBN6K.js +0 -156
- package/dist/chunks/chunk-TC5JJPU7.js +0 -326
- package/dist/chunks/chunk-TCL5TKXQ.js +0 -90
- package/dist/chunks/chunk-TERY4ZMV.js +0 -48
- package/dist/chunks/chunk-TEYKXAEM.js +0 -728
- package/dist/chunks/chunk-THJGYTNB.js +0 -228
- package/dist/chunks/chunk-TJ66FPOG.js +0 -87
- package/dist/chunks/chunk-TJRE2F4X.js +0 -195
- package/dist/chunks/chunk-TKEHGYAG.js +0 -110
- package/dist/chunks/chunk-TKEUPHUF.js +0 -252
- package/dist/chunks/chunk-TKG22SDV.js +0 -90
- package/dist/chunks/chunk-TLUKTRAD.js +0 -164
- package/dist/chunks/chunk-TMIUJGSB.js +0 -123
- package/dist/chunks/chunk-TMXEE3YS.js +0 -217
- package/dist/chunks/chunk-TNBL5NGE.js +0 -23
- package/dist/chunks/chunk-TNOZQ5G5.js +0 -1403
- package/dist/chunks/chunk-TO6ZLDML.js +0 -101
- package/dist/chunks/chunk-TOLOSKZV.js +0 -330
- package/dist/chunks/chunk-TOLXOMZ2.js +0 -23
- package/dist/chunks/chunk-TOUWUSNZ.js +0 -39
- package/dist/chunks/chunk-TPG3N43V.js +0 -84
- package/dist/chunks/chunk-TQD3HTU5.js +0 -110
- package/dist/chunks/chunk-TQOOAIEY.js +0 -184
- package/dist/chunks/chunk-TR2KTXZ4.js +0 -85
- package/dist/chunks/chunk-TRWANSIN.js +0 -146
- package/dist/chunks/chunk-TSEUPIMG.js +0 -97
- package/dist/chunks/chunk-TUGQ2AXO.js +0 -270
- package/dist/chunks/chunk-TUK4EQ5Y.js +0 -197
- package/dist/chunks/chunk-TUVHZQ6D.js +0 -301
- package/dist/chunks/chunk-TUVQMYRQ.js +0 -76
- package/dist/chunks/chunk-TUY2Q5I6.js +0 -142
- package/dist/chunks/chunk-TVDUUAI2.js +0 -187
- package/dist/chunks/chunk-TVUVJC6F.js +0 -284
- package/dist/chunks/chunk-TWRG3UIX.js +0 -45
- package/dist/chunks/chunk-U2OO6L5F.js +0 -105
- package/dist/chunks/chunk-U5NEHTCO.js +0 -33
- package/dist/chunks/chunk-U5TEMVH4.js +0 -53
- package/dist/chunks/chunk-U5TMYJVE.js +0 -127
- package/dist/chunks/chunk-U5TVMEDM.js +0 -196
- package/dist/chunks/chunk-U6FNT6OS.js +0 -149
- package/dist/chunks/chunk-U6G4S356.js +0 -155
- package/dist/chunks/chunk-U6GAKQW5.js +0 -145
- package/dist/chunks/chunk-U7DJH7UU.js +0 -36
- package/dist/chunks/chunk-UAACDLAQ.js +0 -250
- package/dist/chunks/chunk-UAFFU4RL.js +0 -151
- package/dist/chunks/chunk-UAYH46MX.js +0 -77
- package/dist/chunks/chunk-UBRD52US.js +0 -43
- package/dist/chunks/chunk-UD7DAKW7.js +0 -146
- package/dist/chunks/chunk-UEJDG22W.js +0 -399
- package/dist/chunks/chunk-UEMNFQLC.js +0 -1309
- package/dist/chunks/chunk-UFCSAGQ4.js +0 -260
- package/dist/chunks/chunk-UGPVMKWJ.js +0 -157
- package/dist/chunks/chunk-UM2L6NDA.js +0 -156
- package/dist/chunks/chunk-UM5U7UQH.js +0 -96
- package/dist/chunks/chunk-UMDNJVBE.js +0 -685
- package/dist/chunks/chunk-UOP2MU6M.js +0 -33
- package/dist/chunks/chunk-UTJP5H45.js +0 -100
- package/dist/chunks/chunk-UXSYB6PG.js +0 -77
- package/dist/chunks/chunk-UYC4IISQ.js +0 -112
- package/dist/chunks/chunk-UYTIS6XU.js +0 -121
- package/dist/chunks/chunk-UZVULRXL.js +0 -166
- package/dist/chunks/chunk-V2JC42XF.js +0 -336
- package/dist/chunks/chunk-V67WFSPL.js +0 -178
- package/dist/chunks/chunk-V7ASKTCN.js +0 -10425
- package/dist/chunks/chunk-VBBDTU6M.js +0 -108
- package/dist/chunks/chunk-VBOTYIIA.js +0 -315
- package/dist/chunks/chunk-VCKM6HZP.js +0 -317
- package/dist/chunks/chunk-VDZGOSBV.js +0 -109
- package/dist/chunks/chunk-VFUUYT2J.js +0 -362
- package/dist/chunks/chunk-VFUV7MOB.js +0 -209
- package/dist/chunks/chunk-VGXXOWBE.js +0 -166
- package/dist/chunks/chunk-VHLDRFT6.js +0 -95
- package/dist/chunks/chunk-VIA7CTNS.js +0 -126
- package/dist/chunks/chunk-VIBT5FZO.js +0 -60
- package/dist/chunks/chunk-VKUN6IYX.js +0 -122
- package/dist/chunks/chunk-VM4ASKD7.js +0 -168
- package/dist/chunks/chunk-VOTLOLO2.js +0 -151
- package/dist/chunks/chunk-VPEQP7ZA.js +0 -173
- package/dist/chunks/chunk-VQR65B5O.js +0 -33
- package/dist/chunks/chunk-VQX7XWVG.js +0 -140
- package/dist/chunks/chunk-VS2SMITG.js +0 -149
- package/dist/chunks/chunk-VSIUDJU4.js +0 -66
- package/dist/chunks/chunk-VTA2EMF6.js +0 -93
- package/dist/chunks/chunk-VU3OQMXA.js +0 -95
- package/dist/chunks/chunk-VVPAKRKM.js +0 -1393
- package/dist/chunks/chunk-VWX6U4PS.js +0 -149
- package/dist/chunks/chunk-VYT6J3OK.js +0 -166
- package/dist/chunks/chunk-W2WGFAN6.js +0 -171
- package/dist/chunks/chunk-W3XLANE3.js +0 -108
- package/dist/chunks/chunk-W4MDIQ4Y.js +0 -120
- package/dist/chunks/chunk-W65ZA7RG.js +0 -104
- package/dist/chunks/chunk-W7RTB37P.js +0 -276
- package/dist/chunks/chunk-W7ZKXMLP.js +0 -106
- package/dist/chunks/chunk-WAEJSIRB.js +0 -135
- package/dist/chunks/chunk-WBLZM4KW.js +0 -23
- package/dist/chunks/chunk-WBOKHNTT.js +0 -89
- package/dist/chunks/chunk-WC33G3IK.js +0 -192
- package/dist/chunks/chunk-WDFE5MEE.js +0 -235
- package/dist/chunks/chunk-WDG7XDKA.js +0 -161
- package/dist/chunks/chunk-WDWLFLIW.js +0 -303
- package/dist/chunks/chunk-WE2NL4WJ.js +0 -79
- package/dist/chunks/chunk-WI22WOFC.js +0 -181
- package/dist/chunks/chunk-WIVC7SAK.js +0 -118
- package/dist/chunks/chunk-WJPNNOYN.js +0 -312
- package/dist/chunks/chunk-WMWB75ZT.js +0 -23
- package/dist/chunks/chunk-WOXG4T5N.js +0 -206
- package/dist/chunks/chunk-WQ2UF2DO.js +0 -152
- package/dist/chunks/chunk-WQPMIDFW.js +0 -298
- package/dist/chunks/chunk-WR7RFYLV.js +0 -36
- package/dist/chunks/chunk-WRMCQAYW.js +0 -33
- package/dist/chunks/chunk-WT2CI2VC.js +0 -101
- package/dist/chunks/chunk-WVRV5H2L.js +0 -180
- package/dist/chunks/chunk-WW5XQFOL.js +0 -97
- package/dist/chunks/chunk-WXSOCXQJ.js +0 -50
- package/dist/chunks/chunk-WZCDOJ75.js +0 -77
- package/dist/chunks/chunk-WZKMPZIJ.js +0 -30
- package/dist/chunks/chunk-WZU2ZCCG.js +0 -166
- package/dist/chunks/chunk-X5TFN2NC.js +0 -23
- package/dist/chunks/chunk-X63YCLFO.js +0 -525
- package/dist/chunks/chunk-X77HP47O.js +0 -118
- package/dist/chunks/chunk-XCCZDB2O.js +0 -92
- package/dist/chunks/chunk-XCHP4PJQ.js +0 -214
- package/dist/chunks/chunk-XI25JVUF.js +0 -104
- package/dist/chunks/chunk-XLKNEJ63.js +0 -108
- package/dist/chunks/chunk-XNVAKVX4.js +0 -36
- package/dist/chunks/chunk-XNVS633H.js +0 -47
- package/dist/chunks/chunk-XOD23FJ7.js +0 -133
- package/dist/chunks/chunk-XPH2XVS7.js +0 -160
- package/dist/chunks/chunk-XSIQ7LLC.js +0 -23
- package/dist/chunks/chunk-XSPTTHSB.js +0 -224
- package/dist/chunks/chunk-XTEICDBJ.js +0 -33
- package/dist/chunks/chunk-XVETPPEH.js +0 -118
- package/dist/chunks/chunk-XVITFP3Q.js +0 -119
- package/dist/chunks/chunk-XWCH4VJA.js +0 -159
- package/dist/chunks/chunk-XXQRO5DZ.js +0 -152
- package/dist/chunks/chunk-Y4VI5YZI.js +0 -187
- package/dist/chunks/chunk-Y62SFADQ.js +0 -95
- package/dist/chunks/chunk-Y6ZEWGTT.js +0 -90
- package/dist/chunks/chunk-Y7575IKL.js +0 -79
- package/dist/chunks/chunk-Y7FZELXB.js +0 -85
- package/dist/chunks/chunk-Y7XPIRBM.js +0 -175
- package/dist/chunks/chunk-YAETVBNR.js +0 -391
- package/dist/chunks/chunk-YAQF2JE3.js +0 -41
- package/dist/chunks/chunk-YAXLRQSF.js +0 -139
- package/dist/chunks/chunk-YCJA447V.js +0 -77
- package/dist/chunks/chunk-YDQF44T3.js +0 -110
- package/dist/chunks/chunk-YEO6RUET.js +0 -23
- package/dist/chunks/chunk-YFK2PZKB.js +0 -100
- package/dist/chunks/chunk-YFZFYBL6.js +0 -163
- package/dist/chunks/chunk-YH36WR7K.js +0 -94
- package/dist/chunks/chunk-YIHX2H5M.js +0 -1136
- package/dist/chunks/chunk-YIN5BTMA.js +0 -497
- package/dist/chunks/chunk-YJFYZ4JW.js +0 -188
- package/dist/chunks/chunk-YJMUSRFG.js +0 -30
- package/dist/chunks/chunk-YKMCW6EK.js +0 -217
- package/dist/chunks/chunk-YMNSLN5B.js +0 -189
- package/dist/chunks/chunk-YP4YOMDX.js +0 -169
- package/dist/chunks/chunk-YQDQ2JJQ.js +0 -261
- package/dist/chunks/chunk-YQMTFQNM.js +0 -199
- package/dist/chunks/chunk-YQYASQOQ.js +0 -33
- package/dist/chunks/chunk-YSC7URPF.js +0 -167
- package/dist/chunks/chunk-YUUD4RJH.js +0 -93
- package/dist/chunks/chunk-YV7O6CXN.js +0 -304
- package/dist/chunks/chunk-YVRQR6CJ.js +0 -97
- package/dist/chunks/chunk-YZ22UHP2.js +0 -123
- package/dist/chunks/chunk-YZ5KVU7Z.js +0 -221
- package/dist/chunks/chunk-YZZVBZNC.js +0 -174
- package/dist/chunks/chunk-Z3N6G47V.js +0 -558
- package/dist/chunks/chunk-Z5QOT7OC.js +0 -122
- package/dist/chunks/chunk-Z6XIRV55.js +0 -98
- package/dist/chunks/chunk-Z76MRLJA.js +0 -242
- package/dist/chunks/chunk-Z7NQYO45.js +0 -178
- package/dist/chunks/chunk-ZARHXKXQ.js +0 -224
- package/dist/chunks/chunk-ZC43SCUN.js +0 -124
- package/dist/chunks/chunk-ZDZPUIMZ.js +0 -23
- package/dist/chunks/chunk-ZEDQSA3Y.js +0 -79
- package/dist/chunks/chunk-ZHRBVIDC.js +0 -215
- package/dist/chunks/chunk-ZJVHFYUY.js +0 -82
- package/dist/chunks/chunk-ZL3N6JDK.js +0 -92
- package/dist/chunks/chunk-ZMNLHBFT.js +0 -137
- package/dist/chunks/chunk-ZO6ROVYT.js +0 -100
- package/dist/chunks/chunk-ZPAMZLGL.js +0 -91
- package/dist/chunks/chunk-ZPX4BZBR.js +0 -256
- package/dist/chunks/chunk-ZRIVIQGI.js +0 -146
- package/dist/chunks/chunk-ZVAL4CXP.js +0 -358
- package/dist/chunks/chunk-ZWDSBTMD.js +0 -170
- package/dist/chunks/chunk-ZWL77CGH.js +0 -75
- package/dist/chunks/chunk-ZWWDZY4H.js +0 -163
- package/dist/chunks/chunk-ZYUSJE3Z.js +0 -97
- package/dist/chunks/client-J5CP43BE.js +0 -167
- package/dist/chunks/client-MAWI2SX5.js +0 -31
- package/dist/chunks/client-TWAOOPOO.js +0 -44
- package/dist/chunks/client-actions-VLIKMFF7.js +0 -155
- package/dist/chunks/dangerous-VZWIC27O.js +0 -115
- package/dist/chunks/editor-seams-2GS73AD4.js +0 -156
- package/dist/chunks/editor-store-XCA367TU.js +0 -134
- package/dist/chunks/export-GCUSEC64.js +0 -66
- package/dist/chunks/export-watermark-SHBFBAKI.js +0 -141
- package/dist/chunks/eyedropper-QGWM7AXJ.js +0 -344
- package/dist/chunks/generate-media-254TVROQ.js +0 -252
- package/dist/chunks/host-IL7QVBH7.js +0 -166
- package/dist/chunks/integrations-R374NBXT.js +0 -115
- package/dist/chunks/kit-modules-H7HT3OA3.js +0 -18
- package/dist/chunks/libraries-XSOLYQW3.js +0 -297
- package/dist/chunks/library-previews-JYZZ6MQG.js +0 -198
- package/dist/chunks/live-KVLZXYKO.js +0 -307
- package/dist/chunks/media-tool-Y7FKHQMM.js +0 -327
- package/dist/chunks/new-file-HVBBR7S3.js +0 -124
- package/dist/chunks/plugin-5AIB3DJ2.js +0 -122
- package/dist/chunks/plugin-import-VYQZYWKV.js +0 -659
- package/dist/chunks/presence-BVHIO62T.js +0 -122
- package/dist/chunks/project-BZ47MQ44.js +0 -1647
- package/dist/chunks/publish-site-XOPEYDOD.js +0 -153
- package/dist/chunks/publish-store-SIZDWTBT.js +0 -92
- package/dist/chunks/raster-actions-MVJBGYCD.js +0 -224
- package/dist/chunks/reference-images-KCEATODJ.js +0 -61
- package/dist/chunks/resolvers-5Q6VAHZ5.js +0 -137
- package/dist/chunks/runner-LLMQGXO2.js +0 -1228
- package/dist/chunks/runtime-WMLX5IGB.js +0 -32
- package/dist/chunks/shader-preview-ZQ46GRRO.js +0 -517
- package/dist/chunks/sites-QGITEOXU.js +0 -33
- package/dist/chunks/store-ZUM467VR.js +0 -219
- package/dist/chunks/storefront-Y5ZIZ5LI.js +0 -326
- package/dist/chunks/storefront-prepare-JQ2E5LHB.js +0 -33
- package/dist/chunks/svg-export-42UC4MTJ.js +0 -79
- package/dist/chunks/sync-TR2IIB5B.js +0 -148
- package/dist/chunks/tabs-GDPUBX7B.js +0 -306
- package/dist/chunks/team-4CQS74ZT.js +0 -44
- package/dist/chunks/templates-D6JB4IF7.js +0 -180
- package/dist/chunks/theme-store-T6K3BK4F.js +0 -39
- package/dist/chunks/tools-5ZVMZAGH.js +0 -35
- package/dist/chunks/ui-commands-W3H3VL2A.js +0 -264
- package/dist/chunks/versions-7M3OW5ZH.js +0 -306
- /package/dist/chunks/{chunk-N5SACKQ6.js → chunk-2PQI2R5L.js} +0 -0
- /package/dist/chunks/{chunk-FIIOCXDS.js → chunk-FJRVE5LG.js} +0 -0
|
@@ -1,1647 +0,0 @@
|
|
|
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-PUUCE4NS.js";
|
|
12
|
-
import {
|
|
13
|
-
serializeHTML
|
|
14
|
-
} from "./chunk-OT26PQOK.js";
|
|
15
|
-
import {
|
|
16
|
-
ASSET_DIR,
|
|
17
|
-
appAssetPaths,
|
|
18
|
-
externalizeBitmaps,
|
|
19
|
-
withAssetBase
|
|
20
|
-
} from "./chunk-X67RZDY7.js";
|
|
21
|
-
import {
|
|
22
|
-
componentName,
|
|
23
|
-
fileBase,
|
|
24
|
-
fontsURL,
|
|
25
|
-
serializeReact,
|
|
26
|
-
withoutScreenIslands
|
|
27
|
-
} from "./chunk-2UTO5644.js";
|
|
28
|
-
import "./chunk-HXDZI7ZZ.js";
|
|
29
|
-
import {
|
|
30
|
-
escapeHTML,
|
|
31
|
-
tokensCSS
|
|
32
|
-
} from "./chunk-DHZBRKFZ.js";
|
|
33
|
-
import "./chunk-Q3LHD6Z5.js";
|
|
34
|
-
import "./chunk-OIQSOCOU.js";
|
|
35
|
-
import {
|
|
36
|
-
hrefOf,
|
|
37
|
-
opensNewTab
|
|
38
|
-
} from "./chunk-NS75Z4Y5.js";
|
|
39
|
-
import "./chunk-WGWAUMXY.js";
|
|
40
|
-
import {
|
|
41
|
-
usesSignIn
|
|
42
|
-
} from "./chunk-63KFJC4W.js";
|
|
43
|
-
import "./chunk-KMTP6JI7.js";
|
|
44
|
-
import "./chunk-WNNI4AGC.js";
|
|
45
|
-
import "./chunk-TNFFT3O5.js";
|
|
46
|
-
import "./chunk-N3KKWZKT.js";
|
|
47
|
-
import "./chunk-CBZPKKB3.js";
|
|
48
|
-
import "./chunk-P2LIBAGF.js";
|
|
49
|
-
import "./chunk-Q7LANE4G.js";
|
|
50
|
-
import "./chunk-VG6DGRSQ.js";
|
|
51
|
-
import "./chunk-D27VWWNN.js";
|
|
52
|
-
import {
|
|
53
|
-
ITEM_RECORD,
|
|
54
|
-
copyRecord,
|
|
55
|
-
itemText,
|
|
56
|
-
layerId,
|
|
57
|
-
repeatRecords
|
|
58
|
-
} from "./chunk-X4J663TQ.js";
|
|
59
|
-
import {
|
|
60
|
-
SESSION_COOKIE,
|
|
61
|
-
USER_VARIABLES,
|
|
62
|
-
fieldKey,
|
|
63
|
-
visitorCollections
|
|
64
|
-
} from "./chunk-X2PCP2GO.js";
|
|
65
|
-
import "./chunk-AVWA3JAF.js";
|
|
66
|
-
import {
|
|
67
|
-
GOOGLE_FONTS,
|
|
68
|
-
NON_VARIABLE_FONTS
|
|
69
|
-
} from "./chunk-LUMECRFW.js";
|
|
70
|
-
import "./chunk-73G63N4F.js";
|
|
71
|
-
import "./chunk-U4LTVSLE.js";
|
|
72
|
-
import "./chunk-USNPFHKI.js";
|
|
73
|
-
import "./chunk-ITAEZYM3.js";
|
|
74
|
-
import "./chunk-KJQMMKPO.js";
|
|
75
|
-
import "./chunk-MTP3EPX3.js";
|
|
76
|
-
import "./chunk-STB3GK3P.js";
|
|
77
|
-
import "./chunk-XV5ONKNC.js";
|
|
78
|
-
import "./chunk-Q5FICCEE.js";
|
|
79
|
-
import "./chunk-3KX7WU34.js";
|
|
80
|
-
import "./chunk-5C7BZONG.js";
|
|
81
|
-
import {
|
|
82
|
-
getWorldTransform,
|
|
83
|
-
init_scene_graph,
|
|
84
|
-
uprightBounds
|
|
85
|
-
} from "./chunk-PLZOQXMQ.js";
|
|
86
|
-
import "./chunk-OGA5VCNY.js";
|
|
87
|
-
import "./chunk-I3NUEMNB.js";
|
|
88
|
-
import "./chunk-SZSJX54N.js";
|
|
89
|
-
import "./chunk-XZQLIU72.js";
|
|
90
|
-
import "./chunk-4PE7EX3N.js";
|
|
91
|
-
import {
|
|
92
|
-
init_expressions,
|
|
93
|
-
parseExpression
|
|
94
|
-
} from "./chunk-OYXVKB4X.js";
|
|
95
|
-
import "./chunk-TNMSVKUF.js";
|
|
96
|
-
import "./chunk-62AVP6QT.js";
|
|
97
|
-
import "./chunk-MFNTHBR5.js";
|
|
98
|
-
import "./chunk-AYZ32MGJ.js";
|
|
99
|
-
import "./chunk-CAGDE6PT.js";
|
|
100
|
-
import "./chunk-POXV7LS3.js";
|
|
101
|
-
import "./chunk-D3K35HSL.js";
|
|
102
|
-
import "./chunk-6YICR6OK.js";
|
|
103
|
-
import "./chunk-MF4NUZBE.js";
|
|
104
|
-
import "./chunk-7ECF2YL5.js";
|
|
105
|
-
import "./chunk-PSVLITJE.js";
|
|
106
|
-
import "./chunk-CQPFKV2N.js";
|
|
107
|
-
import "./chunk-CVWCFBOJ.js";
|
|
108
|
-
import {
|
|
109
|
-
init_define_POPCRAFT_COMPONENT_IDS
|
|
110
|
-
} from "./chunk-6VMOKHMF.js";
|
|
111
|
-
import "./chunk-LJSVREWM.js";
|
|
112
|
-
|
|
113
|
-
// lib/io/web/project/index.ts
|
|
114
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
115
|
-
|
|
116
|
-
// lib/io/web/project/build.ts
|
|
117
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
118
|
-
|
|
119
|
-
// lib/io/web/project/static.ts
|
|
120
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
121
|
-
|
|
122
|
-
// lib/site/live.ts
|
|
123
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
124
|
-
var HAS_ITEM = /\{\{\s*item[._]/;
|
|
125
|
-
function asRecords(doc, collectionId, rows) {
|
|
126
|
-
const collection = doc.collections?.[collectionId];
|
|
127
|
-
if (!collection) return [];
|
|
128
|
-
const made = (r) => new Date(r.createdAt).toLocaleDateString(void 0, { weekday: "short", day: "numeric", month: "short" });
|
|
129
|
-
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) => {
|
|
130
|
-
const v = r.values[fieldKey(f.name)];
|
|
131
|
-
return [f.id, (v === null || v === void 0 || v === "") && f.type === "DATE" ? made(r) : v ?? void 0];
|
|
132
|
-
})) }));
|
|
133
|
-
}
|
|
134
|
-
function withVisitorRecords(site, collectionId, rows) {
|
|
135
|
-
const doc = site.program.document;
|
|
136
|
-
const collection = doc.collections?.[collectionId];
|
|
137
|
-
if (!collection) return site;
|
|
138
|
-
const records = asRecords(doc, collectionId, rows);
|
|
139
|
-
const samples = new Set(Object.values(doc.records ?? {}).filter((r) => r.collectionId === collectionId).map((r) => r.id));
|
|
140
|
-
const copyFor = (node, sample, record, above) => {
|
|
141
|
-
const id = node.id.split(`~${sample}`).join(`~${record.id}`);
|
|
142
|
-
const control = doc.nodes[layerId(node.id)]?.control;
|
|
143
|
-
const next = { ...node, id, children: node.children.map((c) => copyFor(c, sample, record, control)) };
|
|
144
|
-
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) };
|
|
145
|
-
const starts = (control ?? above)?.value;
|
|
146
|
-
if (next.input && starts && HAS_ITEM.test(starts)) {
|
|
147
|
-
const value = itemText(starts, collection, record);
|
|
148
|
-
next.input = next.input.tag === "input" ? { ...next.input, attrs: { ...next.input.attrs, value } } : { ...next.input, value };
|
|
149
|
-
}
|
|
150
|
-
const written = doc.nodes[layerId(node.id)]?.characters;
|
|
151
|
-
if (next.text && written && HAS_ITEM.test(written)) {
|
|
152
|
-
next.text = { ...next.text, characters: itemText(written, collection, record) };
|
|
153
|
-
delete next.runs;
|
|
154
|
-
}
|
|
155
|
-
return next;
|
|
156
|
-
};
|
|
157
|
-
const others = Object.fromEntries(Object.entries(doc.records ?? {}).filter(([, r]) => r.collectionId !== collectionId));
|
|
158
|
-
const document = {
|
|
159
|
-
...doc,
|
|
160
|
-
records: { ...others, ...Object.fromEntries(records.map((r) => [r.id, r])) },
|
|
161
|
-
collections: { ...doc.collections, [collectionId]: { ...collection, order: records.map((r) => r.id) } }
|
|
162
|
-
};
|
|
163
|
-
const fill = (node) => {
|
|
164
|
-
const repeat = doc.nodes[layerId(node.id)]?.repeat;
|
|
165
|
-
if (repeat?.collectionId !== collectionId) return { ...node, children: node.children.map(fill) };
|
|
166
|
-
const first = node.children.map((c) => copyRecord(c.id)).find((r) => !!r && samples.has(r));
|
|
167
|
-
if (!first) return node;
|
|
168
|
-
const pattern = node.children.filter((c) => copyRecord(c.id) === first);
|
|
169
|
-
const kept = node.children.filter((c) => {
|
|
170
|
-
const r = copyRecord(c.id);
|
|
171
|
-
return !r || !samples.has(r);
|
|
172
|
-
});
|
|
173
|
-
const shown = repeatRecords(document, repeat);
|
|
174
|
-
return { ...node, children: [...kept, ...shown.flatMap((record) => pattern.map((c) => copyFor(c, first, record)))] };
|
|
175
|
-
};
|
|
176
|
-
return { ...site, pages: site.pages.map((p) => ({ ...p, tree: { ...p.tree, root: fill(p.tree.root) } })), program: { ...site.program, document } };
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
// lib/sites/data.ts
|
|
180
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
181
|
-
|
|
182
|
-
// lib/io/web/share.ts
|
|
183
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
184
|
-
function pageShareImage(site, page) {
|
|
185
|
-
if (page.shareImage) return { path: page.shareImage, width: 1200, height: 630 };
|
|
186
|
-
return site.share ? { path: site.share.image, width: site.share.width, height: site.share.height } : null;
|
|
187
|
-
}
|
|
188
|
-
var at = (origin, path) => `${origin ? origin.replace(/\/+$/, "") : ""}/${path.replace(/^\/+/, "")}`;
|
|
189
|
-
function shareMetaTags(site, page, opts = {}) {
|
|
190
|
-
const meta = (attr, key, value) => `<meta ${attr}="${key}" content="${escapeHTML(value)}" />`;
|
|
191
|
-
const image = pageShareImage(site, page);
|
|
192
|
-
return [
|
|
193
|
-
meta("property", "og:type", "website"),
|
|
194
|
-
meta("property", "og:site_name", site.name),
|
|
195
|
-
meta("property", "og:title", page.title),
|
|
196
|
-
...page.description ? [meta("property", "og:description", page.description)] : [],
|
|
197
|
-
...page.notFound ? [] : [meta("property", "og:url", at(opts.origin, page.route))],
|
|
198
|
-
...image ? [
|
|
199
|
-
meta("property", "og:image", at(opts.origin, image.path)),
|
|
200
|
-
meta("property", "og:image:width", String(image.width)),
|
|
201
|
-
meta("property", "og:image:height", String(image.height)),
|
|
202
|
-
meta("property", "og:image:alt", page.title)
|
|
203
|
-
] : [],
|
|
204
|
-
meta("name", "twitter:card", image ? "summary_large_image" : "summary"),
|
|
205
|
-
meta("name", "twitter:title", page.title),
|
|
206
|
-
...page.description ? [meta("name", "twitter:description", page.description)] : [],
|
|
207
|
-
...image ? [meta("name", "twitter:image", at(opts.origin, image.path))] : []
|
|
208
|
-
];
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
// lib/io/web/project/static.ts
|
|
212
|
-
function pageHTML(site, page, lang, lost = false, origin) {
|
|
213
|
-
const up = lost ? "/" : routeUp(page.route);
|
|
214
|
-
const fonts = fontsURL(site.fonts.map((f) => [f.family, f.weights]));
|
|
215
|
-
const rules = [
|
|
216
|
-
"html,body{margin:0;height:100%}#pc-root{min-height:100%;position:relative}*{box-sizing:border-box}",
|
|
217
|
-
...site.tokens ? tokensCSS(site.tokens) : [],
|
|
218
|
-
...page.media ?? site.pages.find((p) => p.screen && p.screen === page.screen && p.media)?.media ?? []
|
|
219
|
-
];
|
|
220
|
-
const body = serializeHTML({ ...page.tree, root: withAssetBase(page.tree.root, up) }, { inline: true, ids: true });
|
|
221
|
-
const unseen = page.access === "signedIn" ? ' style="visibility:hidden"' : "";
|
|
222
|
-
return [
|
|
223
|
-
"<!DOCTYPE html>",
|
|
224
|
-
`<html lang="${escapeHTML(lang)}">`,
|
|
225
|
-
"<head>",
|
|
226
|
-
'<meta charset="utf-8" />',
|
|
227
|
-
'<meta name="viewport" content="width=device-width, initial-scale=1" />',
|
|
228
|
-
`<title>${escapeHTML(page.title)}</title>`,
|
|
229
|
-
...page.description ? [`<meta name="description" content="${escapeHTML(page.description)}" />`] : [],
|
|
230
|
-
...shareMetaTags(site, page, { origin }),
|
|
231
|
-
...fonts ? [`<link id="pc-fonts" rel="stylesheet" href="${escapeHTML(fonts)}" />`] : [],
|
|
232
|
-
`<style>
|
|
233
|
-
${rules.join("\n")}
|
|
234
|
-
</style>`,
|
|
235
|
-
"</head>",
|
|
236
|
-
"<body>",
|
|
237
|
-
`<div id="pc-root"${unseen}>
|
|
238
|
-
${body}
|
|
239
|
-
</div>`,
|
|
240
|
-
`<script src="${up}pc/site.js" data-site="${up}site.json" data-route="${lost ? "" : escapeHTML(page.route)}" data-start="${escapeHTML(page.id)}"></script>`,
|
|
241
|
-
"</body>",
|
|
242
|
-
"</html>",
|
|
243
|
-
""
|
|
244
|
-
].join("\n");
|
|
245
|
-
}
|
|
246
|
-
function staticSiteFiles(site, scripts, opts = {}) {
|
|
247
|
-
const lang = opts.lang ?? "en";
|
|
248
|
-
const files = externalizeBitmaps(site);
|
|
249
|
-
const taken = /* @__PURE__ */ new Set();
|
|
250
|
-
const still = visitorCollections(site.program.document.collections).reduce((s, c) => withVisitorRecords(s, c.id, []), site);
|
|
251
|
-
for (const page of still.pages) {
|
|
252
|
-
const path = page.notFound ? "404.html" : routeFile(page.route);
|
|
253
|
-
if (taken.has(path)) continue;
|
|
254
|
-
taken.add(path);
|
|
255
|
-
files.push({ path, content: pageHTML(still, page, lang, !!page.notFound, opts.origin) });
|
|
256
|
-
}
|
|
257
|
-
files.push({ path: "site.json", content: JSON.stringify(site) });
|
|
258
|
-
files.push({ path: "pc/site.js", content: scripts.site });
|
|
259
|
-
if (site.islands && scripts.island) files.push({ path: "pc/island.js", content: scripts.island });
|
|
260
|
-
if (site.code && scripts.code) files.push({ path: "pc/code.js", content: scripts.code });
|
|
261
|
-
return files;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
// lib/io/web/project/next.ts
|
|
265
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
266
|
-
|
|
267
|
-
// lib/io/web/project/behaviour.ts
|
|
268
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
269
|
-
init_expressions();
|
|
270
|
-
var identFor = (name) => {
|
|
271
|
-
const last = name.split("/").pop().replace(/[^A-Za-z0-9]+(.)?/g, (_m, c) => c ? c.toUpperCase() : "");
|
|
272
|
-
const id = last.charAt(0).toLowerCase() + last.slice(1);
|
|
273
|
-
return /^[A-Za-z_$]/.test(id) && !RESERVED.has(id) ? id : `v${id.charAt(0).toUpperCase()}${id.slice(1)}`;
|
|
274
|
-
};
|
|
275
|
-
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"]);
|
|
276
|
-
var TS_TYPE = { BOOLEAN: "boolean", FLOAT: "number", STRING: "string", COLOR: "string" };
|
|
277
|
-
var DATA_FUNCTIONS = /* @__PURE__ */ new Set(["count", "sum", "distinct", "best", "countSince", "sumSince", "countOn", "streak"]);
|
|
278
|
-
var STYLE_PROPS = {
|
|
279
|
-
opacity: (e) => ["opacity", e],
|
|
280
|
-
width: (e) => ["width", `\`\${${e}}px\``],
|
|
281
|
-
height: (e) => ["height", `\`\${${e}}px\``],
|
|
282
|
-
rotation: (e) => ["rotate", `\`\${${e}}deg\``],
|
|
283
|
-
cornerRadius: (e) => ["borderRadius", `\`\${${e}}px\``]
|
|
284
|
-
};
|
|
285
|
-
function behaviourOf(site) {
|
|
286
|
-
const doc = site.program?.document ?? { nodes: {} };
|
|
287
|
-
const vars = Object.values(doc.variables ?? {});
|
|
288
|
-
const taken = /* @__PURE__ */ new Set();
|
|
289
|
-
const variables = vars.map((v) => {
|
|
290
|
-
let ident = identFor(v.name);
|
|
291
|
-
for (let n = 2; taken.has(ident); n++) ident = `${identFor(v.name)}${n}`;
|
|
292
|
-
taken.add(ident);
|
|
293
|
-
const coll = doc.variableCollections?.[v.variableCollectionId];
|
|
294
|
-
const raw = v.valuesByMode[coll?.defaultModeId ?? Object.keys(v.valuesByMode)[0]];
|
|
295
|
-
const type = TS_TYPE[v.type] ?? "string";
|
|
296
|
-
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) : "");
|
|
297
|
-
return { id: v.id, name: v.name, ident, type, initial };
|
|
298
|
-
});
|
|
299
|
-
const byId = new Map(variables.map((v) => [v.id, v]));
|
|
300
|
-
const byFull = new Map(variables.map((v) => [v.name, v]));
|
|
301
|
-
const short = /* @__PURE__ */ new Map();
|
|
302
|
-
for (const v of variables) {
|
|
303
|
-
const last = v.name.split("/").pop();
|
|
304
|
-
short.set(last, short.has(last) ? null : v);
|
|
305
|
-
}
|
|
306
|
-
const find = (name) => byFull.get(name) ?? short.get(name) ?? void 0;
|
|
307
|
-
const overlays = /* @__PURE__ */ new Set();
|
|
308
|
-
const missingByScreen = /* @__PURE__ */ new Map();
|
|
309
|
-
const screenOf = (id) => {
|
|
310
|
-
let at2 = id;
|
|
311
|
-
while (at2) {
|
|
312
|
-
const n = doc.nodes[at2];
|
|
313
|
-
if (!n) return null;
|
|
314
|
-
if (doc.nodes[n.parentId ?? ""]?.type === "PAGE") return at2;
|
|
315
|
-
at2 = n.parentId;
|
|
316
|
-
}
|
|
317
|
-
return null;
|
|
318
|
-
};
|
|
319
|
-
const miss = (nodeId, what) => {
|
|
320
|
-
const s = screenOf(nodeId);
|
|
321
|
-
if (s) (missingByScreen.get(s) ?? missingByScreen.set(s, /* @__PURE__ */ new Set()).get(s)).add(what);
|
|
322
|
-
};
|
|
323
|
-
let inItem = false;
|
|
324
|
-
const within = (webId, f) => {
|
|
325
|
-
const was = inItem;
|
|
326
|
-
inItem = webId.includes(`~${ITEM_RECORD}`);
|
|
327
|
-
try {
|
|
328
|
-
return f();
|
|
329
|
-
} finally {
|
|
330
|
-
inItem = was;
|
|
331
|
-
}
|
|
332
|
-
};
|
|
333
|
-
const expr = (src, o = {}) => {
|
|
334
|
-
let tree;
|
|
335
|
-
try {
|
|
336
|
-
tree = parseExpression(src, (name) => byFull.has(name));
|
|
337
|
-
} catch {
|
|
338
|
-
return null;
|
|
339
|
-
}
|
|
340
|
-
const go = (n) => {
|
|
341
|
-
switch (n.k) {
|
|
342
|
-
case "lit":
|
|
343
|
-
return JSON.stringify(n.v);
|
|
344
|
-
case "key":
|
|
345
|
-
return o.key ?? '""';
|
|
346
|
-
case "var": {
|
|
347
|
-
const field = inItem ? /^item[._](.+)$/.exec(n.name)?.[1] : void 0;
|
|
348
|
-
if (field) return `itemField(item, ${JSON.stringify(field)})`;
|
|
349
|
-
const v = find(n.name);
|
|
350
|
-
if (!v && inItem) return `itemField(item, ${JSON.stringify(n.name)})`;
|
|
351
|
-
if (!v) {
|
|
352
|
-
if (o.at) miss(o.at, `the value "${n.name}"`);
|
|
353
|
-
return null;
|
|
354
|
-
}
|
|
355
|
-
return `v.${v.ident}`;
|
|
356
|
-
}
|
|
357
|
-
case "un": {
|
|
358
|
-
const a = go(n.a);
|
|
359
|
-
return a === null ? null : n.op === "-" ? `ops.neg(${a})` : `ops.not(${a})`;
|
|
360
|
-
}
|
|
361
|
-
case "if": {
|
|
362
|
-
const c = go(n.c), a = go(n.a), b = go(n.b);
|
|
363
|
-
return c === null || a === null || b === null ? null : `(truthy(${c}) ? ${a} : ${b})`;
|
|
364
|
-
}
|
|
365
|
-
case "call": {
|
|
366
|
-
const args = n.args.map(go);
|
|
367
|
-
if (args.some((a) => a === null)) return null;
|
|
368
|
-
const over = DATA_FUNCTIONS.has(n.fn) && collections.length ? "site.call" : "call";
|
|
369
|
-
return `${over}(${JSON.stringify(n.fn)}${args.map((a) => `, ${a}`).join("")})`;
|
|
370
|
-
}
|
|
371
|
-
case "bin": {
|
|
372
|
-
const a = go(n.a), b = go(n.b);
|
|
373
|
-
if (a === null || b === null) return null;
|
|
374
|
-
if (n.op === "&&") return `(truthy(${a}) ? ${b} : ${a})`;
|
|
375
|
-
if (n.op === "||") return `(truthy(${a}) ? ${a} : ${b})`;
|
|
376
|
-
const op = { "+": "add", "-": "sub", "*": "mul", "/": "div", "%": "mod", "<": "lt", "<=": "le", ">": "gt", ">=": "ge", "==": "eq", "!=": "ne" }[n.op];
|
|
377
|
-
return op ? `ops.${op}(${a}, ${b})` : null;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
return null;
|
|
381
|
-
};
|
|
382
|
-
return go(tree);
|
|
383
|
-
};
|
|
384
|
-
const routeOf = (screenId) => screenId ? site.pages.find((p) => p.id === screenId && !p.record)?.route ?? null : null;
|
|
385
|
-
const setter = (a, key, at2) => {
|
|
386
|
-
const v = a.variableId ? byId.get(a.variableId) : void 0;
|
|
387
|
-
if (!v) return null;
|
|
388
|
-
if (a.variableToggle) return `set(${JSON.stringify(v.ident)}, !v.${v.ident})`;
|
|
389
|
-
if (a.variableExpression?.trim()) {
|
|
390
|
-
const e = expr(a.variableExpression, { key, at: at2 });
|
|
391
|
-
if (e === null) return null;
|
|
392
|
-
const coerce = v.type === "number" ? `num(${e})` : v.type === "boolean" ? `truthy(${e})` : `exprText(${e})`;
|
|
393
|
-
return `set(${JSON.stringify(v.ident)}, ${coerce})`;
|
|
394
|
-
}
|
|
395
|
-
const raw = a.variableValue;
|
|
396
|
-
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));
|
|
397
|
-
return `set(${JSON.stringify(v.ident)}, ${literal})`;
|
|
398
|
-
};
|
|
399
|
-
const statements = (a, at2, key, changeTo) => {
|
|
400
|
-
switch (a.navigationType) {
|
|
401
|
-
case "NAVIGATE": {
|
|
402
|
-
const r = routeOf(a.destinationId);
|
|
403
|
-
if (r) return [`router.push(${JSON.stringify(r)})`];
|
|
404
|
-
miss(at2, "a go to a frame that is not one of the pages");
|
|
405
|
-
return [];
|
|
406
|
-
}
|
|
407
|
-
case "BACK":
|
|
408
|
-
return ["router.back()"];
|
|
409
|
-
case "OPEN_URL": {
|
|
410
|
-
const link = a.link;
|
|
411
|
-
if (!link) return [];
|
|
412
|
-
if (link.kind === "screen") return statements({ ...a, navigationType: "NAVIGATE", destinationId: link.frameId }, at2, key);
|
|
413
|
-
if (link.kind === "anchor") return statements({ ...a, navigationType: "SCROLL_TO", destinationId: link.nodeId }, at2, key);
|
|
414
|
-
const href = hrefOf(link, doc.nodes);
|
|
415
|
-
return href ? [opensNewTab(link) ? `window.open(${JSON.stringify(href)}, '_blank', 'noopener')` : `window.location.assign(${JSON.stringify(href)})`] : [];
|
|
416
|
-
}
|
|
417
|
-
case "SCROLL_TO":
|
|
418
|
-
return a.destinationId ? [`document.querySelector(${JSON.stringify(`[data-pc-id="${a.destinationId}"]`)})?.scrollIntoView({ behavior: 'smooth' })`] : [];
|
|
419
|
-
case "SET_VARIABLE": {
|
|
420
|
-
const s = setter(a, key, at2);
|
|
421
|
-
if (s) return [s];
|
|
422
|
-
miss(at2, "a Set variable");
|
|
423
|
-
return [];
|
|
424
|
-
}
|
|
425
|
-
case "CONDITIONAL": {
|
|
426
|
-
const out = [];
|
|
427
|
-
(a.branches ?? []).forEach((b, i) => {
|
|
428
|
-
const body = b.actions.flatMap((x) => statements(x, at2, key, changeTo));
|
|
429
|
-
const cond = b.condition?.trim() ? expr(b.condition, { key, at: at2 }) : null;
|
|
430
|
-
if (b.condition?.trim() && cond === null) return;
|
|
431
|
-
const head = !b.condition?.trim() ? i ? "else" : "" : `${i ? "else " : ""}if (truthy(${cond}))`;
|
|
432
|
-
out.push(`${head}${head ? " " : ""}{ ${body.join("; ")} }`);
|
|
433
|
-
});
|
|
434
|
-
return out.length ? [out.join(" ")] : [];
|
|
435
|
-
}
|
|
436
|
-
case "OVERLAY":
|
|
437
|
-
case "SWAP": {
|
|
438
|
-
if (!routeOf(a.destinationId)) {
|
|
439
|
-
miss(at2, "an overlay of a frame that is not one of the pages");
|
|
440
|
-
return [];
|
|
441
|
-
}
|
|
442
|
-
overlays.add(a.destinationId);
|
|
443
|
-
const bg = a.overlayBackground;
|
|
444
|
-
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)}`] : []];
|
|
445
|
-
return [`overlays.${a.navigationType === "SWAP" ? "swap" : "open"}(${JSON.stringify(a.destinationId)}, { ${opts.join(", ")} })`];
|
|
446
|
-
}
|
|
447
|
-
case "CLOSE":
|
|
448
|
-
return ["overlays.close()"];
|
|
449
|
-
case "SET_MODE": {
|
|
450
|
-
const c = site.tokens?.collections.find((x) => x.id === a.collectionId);
|
|
451
|
-
if (!c || !a.modeId) {
|
|
452
|
-
miss(at2, "a Set mode");
|
|
453
|
-
return [];
|
|
454
|
-
}
|
|
455
|
-
const classes = c.modes.map((m) => m.id === c.defaultMode ? "" : m.className);
|
|
456
|
-
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 ?? "";
|
|
457
|
-
return [`switchMode(document.documentElement, ${JSON.stringify(classes)}, ${JSON.stringify(to)})`];
|
|
458
|
-
}
|
|
459
|
-
case "TIMELINE": {
|
|
460
|
-
const t = a.timeline;
|
|
461
|
-
if (!t || t.op === "SCRUB") return [];
|
|
462
|
-
const screen = screenOf(at2);
|
|
463
|
-
const markers = site.pages.find((p) => p.id === screen)?.timeline?.stops ?? [];
|
|
464
|
-
const root = t.target === "INSTANCE" ? hostOf(at2) : screen;
|
|
465
|
-
return [`controlTimeline(document.querySelector(${JSON.stringify(`[data-pc-id="${root}"]`)}), ${JSON.stringify(t)}, ${JSON.stringify(markers)})`];
|
|
466
|
-
}
|
|
467
|
-
// On a component itself (a sheet that shows the masters) there is no instance to change: nothing to carry.
|
|
468
|
-
case "CHANGE_TO": {
|
|
469
|
-
const st = changeTo && a.destinationId ? changeTo(a.destinationId, a.targetId) : null;
|
|
470
|
-
if (st) return [st];
|
|
471
|
-
if (doc.nodes[at2]?.type !== "COMPONENT" && doc.nodes[at2]?.type !== "COMPONENT_SET") miss(at2, "a Change to whose instance is not on this page");
|
|
472
|
-
return [];
|
|
473
|
-
}
|
|
474
|
-
default:
|
|
475
|
-
miss(at2, { CHANGE_TO: "component variants" }[a.navigationType] ?? a.navigationType);
|
|
476
|
-
return [];
|
|
477
|
-
}
|
|
478
|
-
};
|
|
479
|
-
const interactionsOf = (id) => doc.nodes[id]?.interactions ?? [];
|
|
480
|
-
const hostOf = (id) => {
|
|
481
|
-
let at2 = id;
|
|
482
|
-
while (at2) {
|
|
483
|
-
if (doc.nodes[at2]?.type === "INSTANCE") return at2;
|
|
484
|
-
at2 = doc.nodes[at2]?.parentId;
|
|
485
|
-
}
|
|
486
|
-
return id;
|
|
487
|
-
};
|
|
488
|
-
const EVENT = { ON_CLICK: "onClick", MOUSE_ENTER: "onMouseEnter", MOUSE_LEAVE: "onMouseLeave", ON_PRESS: "onPointerDown" };
|
|
489
|
-
const nodeBindings = (id) => {
|
|
490
|
-
const n = doc.nodes[id];
|
|
491
|
-
if (!n) return null;
|
|
492
|
-
const out = { style: {} };
|
|
493
|
-
const take = (prop, e) => {
|
|
494
|
-
if (e === null) return;
|
|
495
|
-
if (prop === "characters") out.text = `exprText(${e})`;
|
|
496
|
-
else if (prop === "visible") out.visible = `truthy(${e})`;
|
|
497
|
-
else if (STYLE_PROPS[prop]) {
|
|
498
|
-
const [k, val] = STYLE_PROPS[prop](`num(${e})`);
|
|
499
|
-
out.style[k] = val;
|
|
500
|
-
}
|
|
501
|
-
};
|
|
502
|
-
for (const [prop, vid] of Object.entries(n.boundVariables ?? {})) {
|
|
503
|
-
const v = byId.get(vid);
|
|
504
|
-
if (v) take(prop, `v.${v.ident}`);
|
|
505
|
-
}
|
|
506
|
-
for (const [prop, src] of Object.entries(n.boundExpressions ?? {})) take(prop, expr(src, { at: id }));
|
|
507
|
-
return out.text || out.visible || Object.keys(out.style).length ? out : null;
|
|
508
|
-
};
|
|
509
|
-
const controlOf = (id) => doc.nodes[id]?.control;
|
|
510
|
-
const isForm = (id) => controlOf(id)?.kind === "FORM";
|
|
511
|
-
const formIds = Object.keys(doc.nodes ?? {}).filter(isForm);
|
|
512
|
-
const collections = visitorCollections(doc.collections);
|
|
513
|
-
const access = Object.fromEntries(site.pages.filter((p) => p.access && !p.notFound).map((p) => [p.route, p.access]));
|
|
514
|
-
const signIn = usesSignIn({ ...doc, nodes: doc.nodes ?? {} }) || Object.keys(access).length > 0;
|
|
515
|
-
const server = formIds.length || signIn || collections.length ? {
|
|
516
|
-
forms: formIds,
|
|
517
|
-
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 } : {} })),
|
|
518
|
-
signIn,
|
|
519
|
-
user: Object.fromEntries(Object.keys(USER_VARIABLES).map((k) => [k, byFull.get(USER_VARIABLES[k])]).filter(([, v]) => v)),
|
|
520
|
-
counts: collections.flatMap((c) => {
|
|
521
|
-
const v = byFull.get(`data/${fieldKey(c.name)}Count`);
|
|
522
|
-
return v && v.type === "number" ? [{ collection: c.id, variable: v }] : [];
|
|
523
|
-
}),
|
|
524
|
-
access,
|
|
525
|
-
redirect: {
|
|
526
|
-
signedOut: site.pages.find((p) => p.access === "signedOut" && !p.notFound)?.route ?? site.pages.find((p) => !p.access && !p.notFound)?.route ?? "/",
|
|
527
|
-
signedIn: site.pages.find((p) => p.access === "signedIn" && !p.notFound)?.route ?? site.pages.find((p) => !p.access && !p.notFound)?.route ?? "/"
|
|
528
|
-
}
|
|
529
|
-
} : null;
|
|
530
|
-
const under = (rootId) => {
|
|
531
|
-
const out = [];
|
|
532
|
-
const walk = (id) => {
|
|
533
|
-
out.push(id);
|
|
534
|
-
for (const c of doc.nodes[id]?.childIds ?? []) walk(c);
|
|
535
|
-
};
|
|
536
|
-
walk(rootId);
|
|
537
|
-
return out;
|
|
538
|
-
};
|
|
539
|
-
for (const id of Object.keys(doc.nodes ?? {})) for (const ix of interactionsOf(id)) statements(ix.action, id);
|
|
540
|
-
for (const id of formIds) {
|
|
541
|
-
const after = controlOf(id)?.onSubmit;
|
|
542
|
-
if (after) statements(after, id);
|
|
543
|
-
}
|
|
544
|
-
missingByScreen.clear();
|
|
545
|
-
return {
|
|
546
|
-
variables,
|
|
547
|
-
overlays,
|
|
548
|
-
server,
|
|
549
|
-
live: (rootId) => under(layerId(rootId)).some((id) => nodeBindings(id) || interactionsOf(id).length || isForm(id)),
|
|
550
|
-
bindings: (webId) => within(webId, () => nodeBindings(layerId(webId).split("::").pop())),
|
|
551
|
-
events: (webId, o = {}) => within(webId, () => {
|
|
552
|
-
const id = layerId(webId).split("::").pop();
|
|
553
|
-
const out = {};
|
|
554
|
-
const control = controlOf(id);
|
|
555
|
-
if (control?.kind === "FORM") {
|
|
556
|
-
const after = control.onSubmit ? statements(control.onSubmit, id, void 0, o.changeTo) : [];
|
|
557
|
-
const record = copyRecord(webId);
|
|
558
|
-
const form = { id, name: doc.nodes[id]?.name ?? id, ...control.formAction ? { action: control.formAction } : {}, ...control.collectionId ? { collectionId: control.collectionId } : {}, ...record ? { record } : {} };
|
|
559
|
-
out.onSubmit = `async (e) => { e.preventDefault(); if (await site.submit(e.currentTarget, (e.nativeEvent as SubmitEvent).submitter, ${JSON.stringify(form)})) { ${after.join("; ")} } }`;
|
|
560
|
-
}
|
|
561
|
-
const add = (prop, body) => {
|
|
562
|
-
if (body.length) out[prop] = `${out[prop] ? `${out[prop].slice(0, -2)}; ` : `(${body.some((b) => /\be\./.test(b)) ? "e" : ""}) => { `}${body.join("; ")} }`;
|
|
563
|
-
};
|
|
564
|
-
const own = interactionsOf(id).map((ix) => ({ ix, at: id }));
|
|
565
|
-
const fromVariant = o.variant ? interactionsOf(o.variant).map((ix) => ({ ix, at: o.variant })) : [];
|
|
566
|
-
for (const { ix, at: at2 } of [...own, ...fromVariant]) {
|
|
567
|
-
const body = statements(ix.action, at2, void 0, o.changeTo);
|
|
568
|
-
if (ix.action.navigationType === "CHANGE_TO" && o.variant && o.changeTo && (ix.trigger === "ON_HOVER" || ix.trigger === "ON_PRESS")) {
|
|
569
|
-
const [enter, leave] = ix.trigger === "ON_HOVER" ? ["onMouseEnter", "onMouseLeave"] : ["onPointerDown", "onPointerUp"];
|
|
570
|
-
add(enter, body);
|
|
571
|
-
const back = o.changeTo(o.variant);
|
|
572
|
-
if (back) add(leave, [back]);
|
|
573
|
-
continue;
|
|
574
|
-
}
|
|
575
|
-
if (ix.trigger === "ON_DRAG" || ix.action.navigationType === "ORBIT_3D") {
|
|
576
|
-
const a = ix.action;
|
|
577
|
-
if (a.navigationType === "ORBIT_3D") {
|
|
578
|
-
add("onPointerDown", [`orbitDrag(e.nativeEvent, document.querySelector<HTMLElement>(${JSON.stringify(`[data-pc-id="${a.destinationId ?? at2}"]`)}), ${JSON.stringify(a.orbit ?? {})})`]);
|
|
579
|
-
continue;
|
|
580
|
-
}
|
|
581
|
-
if (a.navigationType === "TIMELINE" && a.timeline?.op === "SCRUB") {
|
|
582
|
-
const screen = screenOf(at2);
|
|
583
|
-
const markers = site.pages.find((p) => p.id === screen)?.timeline?.stops ?? [];
|
|
584
|
-
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)})`]);
|
|
585
|
-
continue;
|
|
586
|
-
}
|
|
587
|
-
}
|
|
588
|
-
const prop = EVENT[ix.trigger];
|
|
589
|
-
if (prop) add(prop, body);
|
|
590
|
-
}
|
|
591
|
-
return out;
|
|
592
|
-
}),
|
|
593
|
-
effects: (screenId) => {
|
|
594
|
-
const out = [];
|
|
595
|
-
for (const id of under(screenId)) for (const ix of interactionsOf(id)) {
|
|
596
|
-
if (ix.trigger === "AFTER_TIMEOUT") {
|
|
597
|
-
const body = statements(ix.action, id);
|
|
598
|
-
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})`);
|
|
599
|
-
}
|
|
600
|
-
if (ix.trigger === "KEY_DOWN") {
|
|
601
|
-
const key = ix.triggerKey;
|
|
602
|
-
const body = statements(ix.action, id, "e.key");
|
|
603
|
-
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})`);
|
|
604
|
-
}
|
|
605
|
-
}
|
|
606
|
-
return out;
|
|
607
|
-
},
|
|
608
|
-
missing: (rootId) => [...missingByScreen.get(layerId(rootId)) ?? []],
|
|
609
|
-
itemExpression: (src) => within(`~${ITEM_RECORD}`, () => expr(src))
|
|
610
|
-
};
|
|
611
|
-
}
|
|
612
|
-
function colorHex(c) {
|
|
613
|
-
const h = (x) => Math.round(Math.max(0, Math.min(1, x)) * 255).toString(16).padStart(2, "0");
|
|
614
|
-
return `#${h(c.r)}${h(c.g)}${h(c.b)}${c.a !== void 0 && c.a < 1 ? h(c.a) : ""}`;
|
|
615
|
-
}
|
|
616
|
-
|
|
617
|
-
// lib/io/web/project/server.ts
|
|
618
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
619
|
-
var lines = (...l) => `${l.filter((x) => typeof x === "string").join("\n")}
|
|
620
|
-
`;
|
|
621
|
-
function as(v, value, from) {
|
|
622
|
-
if (v.type === from) return value;
|
|
623
|
-
if (v.type === "boolean") return `!!${value}`;
|
|
624
|
-
if (v.type === "number") return from === "boolean" ? `(${value} ? 1 : 0)` : `Number(${value}) || 0`;
|
|
625
|
-
return `String(${value})`;
|
|
626
|
-
}
|
|
627
|
-
var setLine = (v, value, from) => v ? `set(${JSON.stringify(v.ident)}, ${as(v, value, from)})` : null;
|
|
628
|
-
function serverFiles(server) {
|
|
629
|
-
const files = [
|
|
630
|
-
{ path: "lib/popcraft-server.ts", content: lines(
|
|
631
|
-
"// The site's own server: the forms it keeps and the lists its visitors keep records in (from the design), its",
|
|
632
|
-
"// database (DATABASE_URL) and its sign-in (SITE_AUTH_URL). app/api/popcraft answers the pages through it.",
|
|
633
|
-
"",
|
|
634
|
-
"import type { Collection } from '@popcraft/runtime'",
|
|
635
|
-
"import { storeFor, type AuthKind, type SiteBackend, type SiteDatabase } from '@popcraft/runtime/server'",
|
|
636
|
-
"import { siteUrl } from '@/lib/site'",
|
|
637
|
-
"",
|
|
638
|
-
`const FORMS = new Set<string>(${JSON.stringify(server.forms)})`,
|
|
639
|
-
`const COLLECTIONS: Record<string, Collection> = ${JSON.stringify(Object.fromEntries(server.collections.map((c) => [c.id, c])), null, 2)}`,
|
|
640
|
-
"",
|
|
641
|
-
"let ready: Promise<SiteDatabase> | null = null",
|
|
642
|
-
"",
|
|
643
|
-
"/** The site's database: its two tables are made on first use. */",
|
|
644
|
-
"function database(): Promise<SiteDatabase | null> {",
|
|
645
|
-
" const url = process.env.DATABASE_URL",
|
|
646
|
-
" if (!url) return Promise.resolve(null)",
|
|
647
|
-
" ready ??= (async () => { const db = storeFor(url); await db.ensure(); return db })().catch((e: unknown) => { ready = null; throw e })",
|
|
648
|
-
" return ready",
|
|
649
|
-
"}",
|
|
650
|
-
"",
|
|
651
|
-
"/** The site's sign-in service (Neon Auth or Supabase Auth), told the site's own address. NEON_AUTH_URL is its older name. */",
|
|
652
|
-
"async function auth() {",
|
|
653
|
-
" const authUrl = process.env.SITE_AUTH_URL ?? process.env.NEON_AUTH_URL",
|
|
654
|
-
" if (!authUrl) return null",
|
|
655
|
-
" const kind = (process.env.SITE_AUTH_KIND as AuthKind | undefined) ?? 'neon-auth'",
|
|
656
|
-
" return { kind, authUrl, origin: siteUrl.origin, apiKey: process.env.SITE_AUTH_KEY, adminKey: process.env.SITE_AUTH_ADMIN_KEY }",
|
|
657
|
-
"}",
|
|
658
|
-
"",
|
|
659
|
-
"export const site: SiteBackend = {",
|
|
660
|
-
" database,",
|
|
661
|
-
" auth,",
|
|
662
|
-
" hasForm: id => FORMS.has(id),",
|
|
663
|
-
" collection: id => COLLECTIONS[id],",
|
|
664
|
-
" // Over https in production; `next dev` serves http, where a Secure cookie would not be kept.",
|
|
665
|
-
" secure: process.env.NODE_ENV === 'production',",
|
|
666
|
-
"}"
|
|
667
|
-
) },
|
|
668
|
-
{ path: "app/api/popcraft/[...path]/route.ts", content: lines(
|
|
669
|
-
"// The site's own requests (forms, sign-in, visitors' records), at /_pc/\u2026 (next.config.ts rewrites them here).",
|
|
670
|
-
"",
|
|
671
|
-
"import { siteRequest } from '@popcraft/runtime/server'",
|
|
672
|
-
"import { site } from '@/lib/popcraft-server'",
|
|
673
|
-
"",
|
|
674
|
-
"async function handle(request: Request, { params }: { params: Promise<{ path: string[] }> }): Promise<Response> {",
|
|
675
|
-
" const { path } = await params",
|
|
676
|
-
" return (await siteRequest(request, `_pc/${path.join('/')}`, site)) ?? Response.json({ error: 'Not found' }, { status: 404 })",
|
|
677
|
-
"}",
|
|
678
|
-
"",
|
|
679
|
-
"export { handle as DELETE, handle as GET, handle as POST }"
|
|
680
|
-
) }
|
|
681
|
-
];
|
|
682
|
-
const routes = Object.keys(server.access);
|
|
683
|
-
if (routes.length) files.push({ path: "proxy.ts", content: lines(
|
|
684
|
-
"// Each page for one kind of visitor sends the other kind where it is for them: a signed-in page needs an account,",
|
|
685
|
-
"// a sign-in page is for visitors without one. The session cookie is enough to decide here; the page's provider",
|
|
686
|
-
"// (lib/popcraft.tsx) asks the server who is signed in, and clears a cookie whose session has ended.",
|
|
687
|
-
"",
|
|
688
|
-
"import { NextResponse, type NextRequest } from 'next/server'",
|
|
689
|
-
"",
|
|
690
|
-
`const ACCESS: Record<string, 'signedIn' | 'signedOut'> = ${JSON.stringify(server.access)}`,
|
|
691
|
-
`const GO = ${JSON.stringify(server.redirect)}`,
|
|
692
|
-
"",
|
|
693
|
-
"export function proxy(request: NextRequest) {",
|
|
694
|
-
" const need = ACCESS[request.nextUrl.pathname]",
|
|
695
|
-
` const signedIn = request.cookies.has(${JSON.stringify(SESSION_COOKIE)})`,
|
|
696
|
-
" const to = need === 'signedIn' && !signedIn ? GO.signedOut : need === 'signedOut' && signedIn ? GO.signedIn : null",
|
|
697
|
-
" return to && to !== request.nextUrl.pathname ? NextResponse.redirect(new URL(to, request.url)) : NextResponse.next()",
|
|
698
|
-
"}",
|
|
699
|
-
"",
|
|
700
|
-
`export const config = { matcher: ${JSON.stringify(routes)} }`
|
|
701
|
-
) });
|
|
702
|
-
return files;
|
|
703
|
-
}
|
|
704
|
-
function siteProviderSource(server) {
|
|
705
|
-
const u = server.user;
|
|
706
|
-
const guards = Object.keys(server.access).length > 0;
|
|
707
|
-
const sayUser = [setLine(u.signedIn, "!!next", "boolean"), setLine(u.name, "next?.name ?? ''", "string"), setLine(u.email, "next?.email ?? ''", "string")].filter(Boolean);
|
|
708
|
-
const sayError = (value) => setLine(u.error, value, "string");
|
|
709
|
-
return [
|
|
710
|
-
"/** 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. */",
|
|
711
|
-
"export interface SiteForm { id: string; name: string; action?: AuthAction | 'deleteRecord' | 'updateRecord'; collectionId?: string; record?: string }",
|
|
712
|
-
"interface SiteStore {",
|
|
713
|
-
" user: SiteUser | null",
|
|
714
|
-
" /** The visitor's own records, by collection, newest first. */",
|
|
715
|
-
" records: Record<string, SiteRecord[]>",
|
|
716
|
-
" /** An expression function over the visitor's records (`count`, `streak`\u2026), by the collection's name. */",
|
|
717
|
-
" call(fn: string, ...args: ExprValue[]): ExprValue",
|
|
718
|
-
` /** Send a form; true when it worked (then the design's "on submit" runs). */`,
|
|
719
|
-
" submit(form: HTMLFormElement, submitter: HTMLElement | null, about: SiteForm): Promise<boolean>",
|
|
720
|
-
"}",
|
|
721
|
-
"",
|
|
722
|
-
"const client = createSiteClient()",
|
|
723
|
-
`const MINE = ${JSON.stringify(server.collections.map((c) => c.id))}`,
|
|
724
|
-
`/** Each list by the name an expression gives it. */`,
|
|
725
|
-
`const NAMES: Record<string, string> = ${JSON.stringify(Object.fromEntries(server.collections.map((c) => [c.name.trim().toLowerCase(), c.id])))}`,
|
|
726
|
-
...guards ? [`const ACCESS: Record<string, 'signedIn' | 'signedOut'> = ${JSON.stringify(server.access)}`, `const GO = ${JSON.stringify(server.redirect)}`] : [],
|
|
727
|
-
"const SiteContext = createContext<SiteStore | null>(null)",
|
|
728
|
-
"",
|
|
729
|
-
"/** The visitor: who is signed in (asked of the site's server on load), their records, and the design's variables that say so. */",
|
|
730
|
-
"export function SiteProvider({ children }: Readonly<{ children: ReactNode }>) {",
|
|
731
|
-
...sayUser.length || server.counts.length || u.error ? [" const { set } = useVariables()"] : [],
|
|
732
|
-
...guards ? [" const router = useRouter()", " const path = usePathname()"] : [],
|
|
733
|
-
" const [user, setUser] = useState<SiteUser | null>(null)",
|
|
734
|
-
...guards ? [" const [known, setKnown] = useState(false)"] : [],
|
|
735
|
-
" const [records, setRecords] = useState<Record<string, SiteRecord[]>>({})",
|
|
736
|
-
" const say = useCallback((next: SiteUser | null) => {",
|
|
737
|
-
" setUser(next)",
|
|
738
|
-
...sayUser.map((l) => ` ${l}`),
|
|
739
|
-
` }, [${sayUser.length ? "set" : ""}])`,
|
|
740
|
-
" const refresh = useCallback(async (who: SiteUser | null) => {",
|
|
741
|
-
" const next: Record<string, SiteRecord[]> = {}",
|
|
742
|
-
" for (const id of MINE) next[id] = who ? await client.records(id) : []",
|
|
743
|
-
" setRecords(next)",
|
|
744
|
-
...server.counts.map((c) => ` ${setLine(c.variable, `next[${JSON.stringify(c.collection)}].length`, "number")}`),
|
|
745
|
-
` }, [${server.counts.length ? "set" : ""}])`,
|
|
746
|
-
` useEffect(() => { void client.who().then(async who => { say(who); ${guards ? "setKnown(true); " : ""}await refresh(who) }) }, [say, refresh])`,
|
|
747
|
-
...guards ? [
|
|
748
|
-
" // A page for the other kind of visitor (a cookie whose session had ended got past proxy.ts): where a visit would land.",
|
|
749
|
-
" useEffect(() => {",
|
|
750
|
-
" if (!known) return",
|
|
751
|
-
" const need = ACCESS[path]",
|
|
752
|
-
" const to = need === 'signedIn' && !user ? GO.signedOut : need === 'signedOut' && user ? GO.signedIn : null",
|
|
753
|
-
" if (to && to !== path) router.replace(to)",
|
|
754
|
-
" }, [known, user, path, router])"
|
|
755
|
-
] : [],
|
|
756
|
-
" const submit = useCallback(async (form: HTMLFormElement, submitter: HTMLElement | null, about: SiteForm): Promise<boolean> => {",
|
|
757
|
-
" const values: Record<string, string> = {}",
|
|
758
|
-
" new FormData(form, submitter).forEach((value, key) => { if (typeof value === 'string') values[key] = value })",
|
|
759
|
-
...sayError("''") ? [` ${sayError("''")}`] : [],
|
|
760
|
-
" try {",
|
|
761
|
-
" if (about.action && about.action !== 'deleteRecord' && about.action !== 'updateRecord') {",
|
|
762
|
-
" const who = await client.act(about.action, values)",
|
|
763
|
-
" say(who)",
|
|
764
|
-
" await refresh(who)",
|
|
765
|
-
" return true",
|
|
766
|
-
" }",
|
|
767
|
-
" // A visitor's own list: a form bound to it adds a record; one inside a copy changes or removes that copy's.",
|
|
768
|
-
" const of = about.record ? MINE.find(id => records[id]?.some(r => r.id === about.record)) : about.collectionId && MINE.includes(about.collectionId) ? about.collectionId : undefined",
|
|
769
|
-
" if (of) {",
|
|
770
|
-
" if (!user) throw new Error('Sign in first.')",
|
|
771
|
-
" if (about.action === 'deleteRecord') await client.remove(of, about.record ?? '')",
|
|
772
|
-
" 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) }",
|
|
773
|
-
" else await client.save(of, values)",
|
|
774
|
-
" await refresh(user)",
|
|
775
|
-
" return true",
|
|
776
|
-
" }",
|
|
777
|
-
` // Kept in the site's database. Refused (none attached, or the request failed): the design's "on submit" does not run.`,
|
|
778
|
-
" 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.')",
|
|
779
|
-
" return true",
|
|
780
|
-
" } catch (e) {",
|
|
781
|
-
...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"],
|
|
782
|
-
" return false",
|
|
783
|
-
" }",
|
|
784
|
-
` }, [records, user, say, refresh${u.error ? ", set" : ""}])`,
|
|
785
|
-
' // What `count("Checkins")` and the rest add up: the visitor\'s own records, with when each was made.',
|
|
786
|
-
" const data = useMemo<ExprData>(() => ({",
|
|
787
|
-
" rows: name => {",
|
|
788
|
-
" const id = NAMES[name.trim().toLowerCase()] ?? (MINE.includes(name) ? name : undefined)",
|
|
789
|
-
" 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",
|
|
790
|
-
" },",
|
|
791
|
-
" }), [records])",
|
|
792
|
-
" const callData = useCallback((fn: string, ...args: ExprValue[]): ExprValue => {",
|
|
793
|
-
" const f = FUNCTIONS[fn]",
|
|
794
|
-
" if (!f) return 0",
|
|
795
|
-
" try { return f(args, data) } catch (e) { if (e instanceof ExprMissing) return 0; throw e }",
|
|
796
|
-
" }, [data])",
|
|
797
|
-
" const store = useMemo(() => ({ user, records, call: callData, submit }), [user, records, callData, submit])",
|
|
798
|
-
" return <SiteContext value={store}>{children}</SiteContext>",
|
|
799
|
-
"}",
|
|
800
|
-
"",
|
|
801
|
-
"/** A field of a visitor's record, as an expression reads it (`item.note`): its values, and `id`, `by`, `mine` and `age` (days old). */",
|
|
802
|
-
"export function itemField(item: SiteRecord, key: string): ExprValue {",
|
|
803
|
-
" if (key === 'id') return item.id",
|
|
804
|
-
" if (key === 'by') return item.by ?? ''",
|
|
805
|
-
" if (key === 'mine') return item.mine ?? true",
|
|
806
|
-
" if (key === 'age') return item.createdAt ? Math.max(0, dayOf(Date.now()) - dayOf(Date.parse(item.createdAt))) : 0",
|
|
807
|
-
" return item.values[key] ?? ''",
|
|
808
|
-
"}",
|
|
809
|
-
"",
|
|
810
|
-
"/** Two of a visitor's records in a list's order: by a field, numbers as numbers and words as words. */",
|
|
811
|
-
"export function itemCompare(a: SiteRecord, b: SiteRecord, key: string): number {",
|
|
812
|
-
" const x = itemField(a, key), y = itemField(b, key)",
|
|
813
|
-
" return typeof x === 'number' && typeof y === 'number' ? x - y : String(x).localeCompare(String(y), undefined, { numeric: true })",
|
|
814
|
-
"}",
|
|
815
|
-
"",
|
|
816
|
-
"/** A field of a visitor's record as words on the page (a yes-or-no as Yes or No). */",
|
|
817
|
-
"export function itemWords(item: SiteRecord, key: string): string {",
|
|
818
|
-
" const value = itemField(item, key)",
|
|
819
|
-
" return typeof value === 'boolean' ? (value ? 'Yes' : 'No') : String(value)",
|
|
820
|
-
"}",
|
|
821
|
-
"",
|
|
822
|
-
"/** The visitor, their records, and `submit` for a form. */",
|
|
823
|
-
"export function useSite(): SiteStore {",
|
|
824
|
-
" const store = useContext(SiteContext)",
|
|
825
|
-
" if (!store) throw new Error('useSite is used outside SiteProvider (app/layout.tsx)')",
|
|
826
|
-
" return store",
|
|
827
|
-
"}",
|
|
828
|
-
""
|
|
829
|
-
];
|
|
830
|
-
}
|
|
831
|
-
function serverReadme(server) {
|
|
832
|
-
return `## Forms${server.signIn ? ", accounts" : ""} and data
|
|
833
|
-
|
|
834
|
-
The site has a server of its own (\`app/api/popcraft\`, through \`@popcraft/runtime/server\`): it keeps what its forms
|
|
835
|
-
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
|
|
836
|
-
\`.env.local\` and set:
|
|
837
|
-
|
|
838
|
-
| Variable | What it is |
|
|
839
|
-
| --- | --- |
|
|
840
|
-
| \`DATABASE_URL\` | A Postgres connection string (a Neon or Supabase project's). The site makes its two tables on first use |
|
|
841
|
-
${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)" : ""} |
|
|
842
|
-
|
|
843
|
-
Without \`DATABASE_URL\` the pages still work: forms are sent and not kept${server.signIn ? ", and nobody can sign in" : ""}.
|
|
844
|
-
|
|
845
|
-
`;
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
// lib/io/web/project/islands.ts
|
|
849
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
850
|
-
function islandFiles(site, script) {
|
|
851
|
-
return [
|
|
852
|
-
{ path: "public/pc/island.js", content: script },
|
|
853
|
-
{ path: "public/pc/islands.json", content: JSON.stringify(site.islands ?? {}) },
|
|
854
|
-
{ path: "components/gpu-island.tsx", content: GPU_ISLAND }
|
|
855
|
-
];
|
|
856
|
-
}
|
|
857
|
-
var REACT_IMPORT = "import { useEffect, useRef } from 'react'";
|
|
858
|
-
var GPU_ISLAND = `'use client'
|
|
859
|
-
|
|
860
|
-
// A layer only the GPU draws, drawn live over its picture by PopCraft's renderer (public/pc/island.js), with what it
|
|
861
|
-
// draws from public/pc/islands.json. Both load once, the first time an island is on screen; without WebGPU the
|
|
862
|
-
// picture stays.
|
|
863
|
-
|
|
864
|
-
${REACT_IMPORT}
|
|
865
|
-
|
|
866
|
-
interface IslandHandle { invalidate(): void; destroy(): void }
|
|
867
|
-
interface IslandHost { mount(canvas: HTMLCanvasElement, spec: unknown, clock?: () => number): IslandHandle | null; destroy(): void }
|
|
868
|
-
declare global { var popcraftIsland: { createIslandHost(): Promise<IslandHost | null> } | undefined }
|
|
869
|
-
|
|
870
|
-
let host: Promise<{ host: IslandHost | null; specs: Record<string, unknown> }> | null = null
|
|
871
|
-
function islandHost() {
|
|
872
|
-
host ??= Promise.all([
|
|
873
|
-
new Promise<void>((resolve, reject) => {
|
|
874
|
-
if (globalThis.popcraftIsland) return resolve()
|
|
875
|
-
const script = document.createElement('script')
|
|
876
|
-
script.src = '/pc/island.js'
|
|
877
|
-
script.onload = () => resolve()
|
|
878
|
-
script.onerror = () => reject(new Error('The island renderer did not load'))
|
|
879
|
-
document.head.appendChild(script)
|
|
880
|
-
}).then(() => globalThis.popcraftIsland?.createIslandHost() ?? null),
|
|
881
|
-
fetch('/pc/islands.json').then(r => r.json() as Promise<Record<string, unknown>>),
|
|
882
|
-
]).then(([h, specs]) => ({ host: h, specs })).catch(() => ({ host: null, specs: {} }))
|
|
883
|
-
return host
|
|
884
|
-
}
|
|
885
|
-
|
|
886
|
-
/** Island \`id\` (its layer), posed at the time of screen \`screen\`'s timeline. */
|
|
887
|
-
export function GpuIsland({ id, screen }: { id: string; screen: string }) {
|
|
888
|
-
const canvas = useRef<HTMLCanvasElement>(null)
|
|
889
|
-
useEffect(() => {
|
|
890
|
-
const el = canvas.current
|
|
891
|
-
if (!el || typeof navigator === 'undefined' || !('gpu' in navigator)) return
|
|
892
|
-
const parent = el.parentElement
|
|
893
|
-
if (parent && getComputedStyle(parent).position === 'static') parent.style.position = 'relative'
|
|
894
|
-
let handle: IslandHandle | null = null
|
|
895
|
-
let gone = false
|
|
896
|
-
const started = performance.now()
|
|
897
|
-
// The screen's timeline (its CSS animations), else the time since the island appeared.
|
|
898
|
-
const clock = () => {
|
|
899
|
-
const timeline = document.querySelector(\`[data-pc-id="\${screen}"]\`)?.getAnimations({ subtree: true }).find(a => (a as CSSAnimation).animationName?.startsWith('timeline-'))
|
|
900
|
-
return timeline ? Number(timeline.currentTime ?? 0) : performance.now() - started
|
|
901
|
-
}
|
|
902
|
-
const start = () => void islandHost().then(({ host: h, specs }) => {
|
|
903
|
-
if (gone || !h || !specs[id]) return
|
|
904
|
-
handle = h.mount(el, specs[id], clock)
|
|
905
|
-
if (!handle) return
|
|
906
|
-
// The picture under it has done its work: the canvas shows the layer from here.
|
|
907
|
-
for (const child of el.parentElement?.children ?? []) if (child !== el) (child as HTMLElement).style.visibility = 'hidden'
|
|
908
|
-
el.style.display = 'block'
|
|
909
|
-
})
|
|
910
|
-
// Asked for once it is on screen, so a page whose island is far below loads nothing until it is reached.
|
|
911
|
-
const seen = new IntersectionObserver(entries => { if (entries.some(e => e.isIntersecting)) { seen.disconnect(); start() } })
|
|
912
|
-
seen.observe(el.parentElement ?? el)
|
|
913
|
-
return () => { gone = true; seen.disconnect(); handle?.destroy() }
|
|
914
|
-
}, [id, screen])
|
|
915
|
-
return <canvas ref={canvas} aria-hidden="true" style={{ position: 'absolute', inset: 0, width: '100%', height: '100%', display: 'none' }} />
|
|
916
|
-
}
|
|
917
|
-
`;
|
|
918
|
-
|
|
919
|
-
// lib/io/web/project/versions.ts
|
|
920
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
921
|
-
|
|
922
|
-
// packages/runtime/package.json
|
|
923
|
-
var package_default = {
|
|
924
|
-
name: "@popcraft/runtime",
|
|
925
|
-
version: "0.24.2",
|
|
926
|
-
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.",
|
|
927
|
-
license: "MIT",
|
|
928
|
-
homepage: "https://popcraft.app/docs/exporting/nextjs",
|
|
929
|
-
repository: {
|
|
930
|
-
type: "git",
|
|
931
|
-
url: "git+https://github.com/getpopcraft/popcraft-app.git",
|
|
932
|
-
directory: "packages/runtime"
|
|
933
|
-
},
|
|
934
|
-
type: "module",
|
|
935
|
-
sideEffects: false,
|
|
936
|
-
exports: {
|
|
937
|
-
".": {
|
|
938
|
-
types: "./dist/index.d.ts",
|
|
939
|
-
import: "./dist/index.js"
|
|
940
|
-
},
|
|
941
|
-
"./commerce": {
|
|
942
|
-
types: "./dist/commerce.d.ts",
|
|
943
|
-
import: "./dist/commerce.js"
|
|
944
|
-
},
|
|
945
|
-
"./server": {
|
|
946
|
-
types: "./dist/server/index.d.ts",
|
|
947
|
-
import: "./dist/server.js"
|
|
948
|
-
},
|
|
949
|
-
"./package.json": "./package.json"
|
|
950
|
-
},
|
|
951
|
-
files: [
|
|
952
|
-
"dist",
|
|
953
|
-
"CHANGELOG.md",
|
|
954
|
-
"README.md",
|
|
955
|
-
"LICENSE"
|
|
956
|
-
],
|
|
957
|
-
engines: {
|
|
958
|
-
node: ">=20.9.0"
|
|
959
|
-
},
|
|
960
|
-
scripts: {
|
|
961
|
-
build: "node build.mjs",
|
|
962
|
-
typecheck: "tsc --noEmit -p .",
|
|
963
|
-
prepublishOnly: "node build.mjs"
|
|
964
|
-
},
|
|
965
|
-
devDependencies: {
|
|
966
|
-
esbuild: "0.28.2"
|
|
967
|
-
},
|
|
968
|
-
dependencies: {
|
|
969
|
-
"@neondatabase/serverless": "^1.2.0",
|
|
970
|
-
postgres: "^3.4.9"
|
|
971
|
-
}
|
|
972
|
-
};
|
|
973
|
-
|
|
974
|
-
// lib/io/web/project/versions.ts
|
|
975
|
-
var EXPORT_VERSIONS = {
|
|
976
|
-
/** When the versions below were last checked against npm and built. */
|
|
977
|
-
checked: "2026-10-03",
|
|
978
|
-
/** The Node.js an exported Next.js project needs (Next.js's own floor). */
|
|
979
|
-
node: ">=20.9.0",
|
|
980
|
-
packages: {
|
|
981
|
-
next: "16.3.8",
|
|
982
|
-
react: "19.3.0",
|
|
983
|
-
"react-dom": "19.3.0",
|
|
984
|
-
typescript: "6.0.3",
|
|
985
|
-
"@types/node": "24.19.1",
|
|
986
|
-
"@types/react": "19.3.0",
|
|
987
|
-
"@types/react-dom": "19.3.0",
|
|
988
|
-
eslint: "9.39.5",
|
|
989
|
-
"eslint-config-next": "16.3.8",
|
|
990
|
-
tailwindcss: "4.3.3",
|
|
991
|
-
"@tailwindcss/postcss": "4.3.3"
|
|
992
|
-
}
|
|
993
|
-
};
|
|
994
|
-
var RUNTIME_PACKAGE = { name: package_default.name, version: package_default.version };
|
|
995
|
-
var runtimeRange = () => `>=${RUNTIME_PACKAGE.version} <${Number(RUNTIME_PACKAGE.version.split(".")[0]) + 1}.0.0`;
|
|
996
|
-
var range = (name) => `^${EXPORT_VERSIONS.packages[name]}`;
|
|
997
|
-
|
|
998
|
-
// lib/io/web/project/next.ts
|
|
999
|
-
var all = (n, out = []) => {
|
|
1000
|
-
out.push(n);
|
|
1001
|
-
n.children.forEach((c) => all(c, out));
|
|
1002
|
-
return out;
|
|
1003
|
-
};
|
|
1004
|
-
function unique(base, taken) {
|
|
1005
|
-
let name = base || "Module";
|
|
1006
|
-
for (let n = 2; taken.has(name); n++) name = `${base}${n}`;
|
|
1007
|
-
taken.add(name);
|
|
1008
|
-
return name;
|
|
1009
|
-
}
|
|
1010
|
-
var jsxProp = (k, v) => typeof v === "string" ? `${k}=${JSON.stringify(v)}` : `${k}={${JSON.stringify(v)}}`;
|
|
1011
|
-
var pageDir = (route) => route === "/" ? "app" : `app${route}`;
|
|
1012
|
-
var json = (v) => `${JSON.stringify(v, null, 2)}
|
|
1013
|
-
`;
|
|
1014
|
-
var googleSet = new Set(GOOGLE_FONTS);
|
|
1015
|
-
function projectFonts(site) {
|
|
1016
|
-
return site.fonts.filter((f) => googleSet.has(f.family)).map((f) => {
|
|
1017
|
-
const slug = f.family.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "");
|
|
1018
|
-
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) };
|
|
1019
|
-
});
|
|
1020
|
-
}
|
|
1021
|
-
function nextProjectFiles(site, doc, opts = {}) {
|
|
1022
|
-
const tailwind = opts.styling === "tailwind";
|
|
1023
|
-
const fonts = projectFonts(site);
|
|
1024
|
-
const byFamily = new Map(fonts.map((f) => [f.family, f.variable]));
|
|
1025
|
-
const fontFamily = (value) => value.replace(/"([^"]+)"/, (m, family) => byFamily.has(family) ? `var(${byFamily.get(family)})` : m);
|
|
1026
|
-
const files = externalizeBitmaps(site).map((f) => ({ ...f, path: `public/${f.path}` }));
|
|
1027
|
-
const moduleFile = /* @__PURE__ */ new Map();
|
|
1028
|
-
const taken = /* @__PURE__ */ new Set();
|
|
1029
|
-
const packages = {};
|
|
1030
|
-
for (const id of Object.keys(site.code?.modules ?? {}).sort()) {
|
|
1031
|
-
const m = doc.codeModules?.[id];
|
|
1032
|
-
if (!m) continue;
|
|
1033
|
-
const name2 = unique(componentName(m.name), taken);
|
|
1034
|
-
moduleFile.set(id, name2);
|
|
1035
|
-
Object.assign(packages, m.packages);
|
|
1036
|
-
const source = m.source.endsWith("\n") ? m.source : `${m.source}
|
|
1037
|
-
`;
|
|
1038
|
-
files.push({ path: `components/code/${name2}.tsx`, content: /^\s*['"]use client['"]/.test(source) ? source : `'use client'
|
|
1039
|
-
|
|
1040
|
-
${source}` });
|
|
1041
|
-
}
|
|
1042
|
-
const islands = !!site.islands && Object.keys(site.islands).length > 0 && !!opts.islandScript;
|
|
1043
|
-
if (islands) files.push(...islandFiles(site, opts.islandScript));
|
|
1044
|
-
const behaviour = behaviourOf(site);
|
|
1045
|
-
const media = /* @__PURE__ */ new Set();
|
|
1046
|
-
const routes = [];
|
|
1047
|
-
for (const page of site.pages) {
|
|
1048
|
-
if (routes.includes(page.route) && !page.notFound) continue;
|
|
1049
|
-
if (!page.notFound) routes.push(page.route);
|
|
1050
|
-
for (const rule of page.media ?? site.pages.find((p) => p.screen && p.screen === page.screen && p.media)?.media ?? []) media.add(rule);
|
|
1051
|
-
files.push(...pageFiles(site, page, moduleFile, { tailwind, fontFamily, ownFonts: fonts.length > 0, behaviour, islands }));
|
|
1052
|
-
}
|
|
1053
|
-
const tokens = (site.tokens ? tokensCSS(site.tokens) : []).map(fontFamily);
|
|
1054
|
-
files.push({ path: "app/globals.css", content: [
|
|
1055
|
-
...tailwind ? ['@import "tailwindcss";', ""] : [],
|
|
1056
|
-
"html, body { margin: 0; min-height: 100%; }",
|
|
1057
|
-
"*, *::before, *::after { box-sizing: border-box; }",
|
|
1058
|
-
"img, picture, svg, video { display: block; max-width: 100%; }",
|
|
1059
|
-
...tokens,
|
|
1060
|
-
...[...media].map(fontFamily),
|
|
1061
|
-
""
|
|
1062
|
-
].join("\n") });
|
|
1063
|
-
const overlays = behaviour.overlays.size > 0;
|
|
1064
|
-
const server = behaviour.server;
|
|
1065
|
-
files.push({ path: "app/layout.tsx", content: layoutSource(site, fonts, { variables: behaviour.variables.length > 0 || overlays || !!server, overlays, server: !!server }) });
|
|
1066
|
-
if (overlays) files.push({ path: "components/overlays.tsx", content: overlaysSource(site, behaviour) });
|
|
1067
|
-
files.push({ path: "lib/popcraft.tsx", content: stateSource(behaviour) });
|
|
1068
|
-
if (server) files.push(...serverFiles(server));
|
|
1069
|
-
files.push({ path: "app/sitemap.ts", content: sitemapSource(routes) });
|
|
1070
|
-
files.push({ path: "app/robots.ts", content: robotsSource() });
|
|
1071
|
-
files.push({ path: "lib/site.ts", content: siteSource() });
|
|
1072
|
-
const name = fileBase(site.name).toLowerCase().replace(/[^a-z0-9-]+/g, "-").replace(/^-+|-+$/g, "") || "site";
|
|
1073
|
-
files.push({ path: "package.json", content: json({
|
|
1074
|
-
name,
|
|
1075
|
-
private: true,
|
|
1076
|
-
version: "0.1.0",
|
|
1077
|
-
type: "module",
|
|
1078
|
-
engines: { node: EXPORT_VERSIONS.node },
|
|
1079
|
-
scripts: { dev: "next dev", build: "next build", start: "next start", lint: "eslint .", typecheck: "tsc --noEmit" },
|
|
1080
|
-
dependencies: { next: range("next"), react: range("react"), "react-dom": range("react-dom"), [RUNTIME_PACKAGE.name]: runtimeRange(), ...packages },
|
|
1081
|
-
devDependencies: {
|
|
1082
|
-
"@types/node": range("@types/node"),
|
|
1083
|
-
"@types/react": range("@types/react"),
|
|
1084
|
-
"@types/react-dom": range("@types/react-dom"),
|
|
1085
|
-
eslint: range("eslint"),
|
|
1086
|
-
"eslint-config-next": range("eslint-config-next"),
|
|
1087
|
-
typescript: range("typescript"),
|
|
1088
|
-
...tailwind ? { tailwindcss: range("tailwindcss"), "@tailwindcss/postcss": range("@tailwindcss/postcss") } : {}
|
|
1089
|
-
}
|
|
1090
|
-
}) });
|
|
1091
|
-
files.push({ path: "tsconfig.json", content: json({
|
|
1092
|
-
compilerOptions: {
|
|
1093
|
-
target: "ES2022",
|
|
1094
|
-
lib: ["dom", "dom.iterable", "esnext"],
|
|
1095
|
-
allowJs: false,
|
|
1096
|
-
skipLibCheck: true,
|
|
1097
|
-
strict: true,
|
|
1098
|
-
noEmit: true,
|
|
1099
|
-
esModuleInterop: true,
|
|
1100
|
-
module: "esnext",
|
|
1101
|
-
moduleResolution: "bundler",
|
|
1102
|
-
resolveJsonModule: true,
|
|
1103
|
-
isolatedModules: true,
|
|
1104
|
-
jsx: "react-jsx",
|
|
1105
|
-
incremental: true,
|
|
1106
|
-
plugins: [{ name: "next" }],
|
|
1107
|
-
paths: { "@/*": ["./*"] }
|
|
1108
|
-
},
|
|
1109
|
-
include: ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts", ".next/dev/types/**/*.ts"],
|
|
1110
|
-
exclude: ["node_modules"]
|
|
1111
|
-
}) });
|
|
1112
|
-
files.push({ path: "next.config.ts", content: [
|
|
1113
|
-
"import type { NextConfig } from 'next'",
|
|
1114
|
-
"",
|
|
1115
|
-
"const nextConfig: NextConfig = {",
|
|
1116
|
-
" // The pictures are the project's own, in public/: next/image serves them sized for each screen.",
|
|
1117
|
-
" images: { formats: ['image/avif', 'image/webp'] },",
|
|
1118
|
-
...server ? [
|
|
1119
|
-
" // The pages ask their server at /_pc/\u2026 as a published PopCraft site does; app/api/popcraft answers.",
|
|
1120
|
-
" async rewrites() { return [{ source: '/_pc/:path*', destination: '/api/popcraft/:path*' }] },"
|
|
1121
|
-
] : [],
|
|
1122
|
-
"}",
|
|
1123
|
-
"",
|
|
1124
|
-
"export default nextConfig",
|
|
1125
|
-
""
|
|
1126
|
-
].join("\n") });
|
|
1127
|
-
files.push({ path: "eslint.config.mjs", content: [
|
|
1128
|
-
"import { defineConfig, globalIgnores } from 'eslint/config'",
|
|
1129
|
-
"import nextVitals from 'eslint-config-next/core-web-vitals'",
|
|
1130
|
-
"import nextTs from 'eslint-config-next/typescript'",
|
|
1131
|
-
"",
|
|
1132
|
-
"export default defineConfig([",
|
|
1133
|
-
" ...nextVitals,",
|
|
1134
|
-
" ...nextTs,",
|
|
1135
|
-
` globalIgnores(['.next/**', 'out/**', 'build/**', 'next-env.d.ts'${islands ? ", 'public/pc/**'" : ""}]),`,
|
|
1136
|
-
"])",
|
|
1137
|
-
""
|
|
1138
|
-
].join("\n") });
|
|
1139
|
-
if (tailwind) files.push({ path: "postcss.config.mjs", content: "const config = { plugins: { '@tailwindcss/postcss': {} } }\n\nexport default config\n" });
|
|
1140
|
-
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") });
|
|
1141
|
-
files.push({ path: ".env.example", content: [
|
|
1142
|
-
"# The address the site is served from: used for its sitemap, robots.txt and social previews" + (server?.signIn ? ", and the origin" : ""),
|
|
1143
|
-
...server?.signIn ? ["# its sign-in service is told visitors come from."] : [],
|
|
1144
|
-
"NEXT_PUBLIC_SITE_URL=https://example.com",
|
|
1145
|
-
...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"] : [],
|
|
1146
|
-
...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="] : [],
|
|
1147
|
-
""
|
|
1148
|
-
].join("\n") });
|
|
1149
|
-
files.push({ path: "README.md", content: readme(site, { tailwind, fonts, routes, code: moduleFile.size > 0, server }) });
|
|
1150
|
-
return files;
|
|
1151
|
-
}
|
|
1152
|
-
function listSource(r, b) {
|
|
1153
|
-
let out = `(site.records[${JSON.stringify(r.collectionId)}] ?? [])`;
|
|
1154
|
-
const keep = r.filter ? b.itemExpression(r.filter) : null;
|
|
1155
|
-
if (keep) out += `.filter(item => truthy(${keep}))`;
|
|
1156
|
-
if (r.sort) out += `.toSorted((a, b) => itemCompare(a, b, ${JSON.stringify(r.sort.key)})${r.sort.dir === "DESC" ? " * -1" : ""})`;
|
|
1157
|
-
if (r.offset || r.limit) out += `.slice(${r.offset ?? 0}${r.limit ? `, ${(r.offset ?? 0) + r.limit}` : ""})`;
|
|
1158
|
-
return out;
|
|
1159
|
-
}
|
|
1160
|
-
function pageFiles(site, page, moduleFile, o) {
|
|
1161
|
-
const imports = /* @__PURE__ */ new Map();
|
|
1162
|
-
const server = o.behaviour.server;
|
|
1163
|
-
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));
|
|
1164
|
-
const effects = live ? o.behaviour.effects(page.tree.root.id) : [];
|
|
1165
|
-
let usesImage = false;
|
|
1166
|
-
let usesIsland = false;
|
|
1167
|
-
const render = (prelude2) => serializeReact({ ...page.tree, root: withAssetBase(page.tree.root, "/"), ...page.machine ? { stateMachine: page.machine } : {} }, {
|
|
1168
|
-
ids: true,
|
|
1169
|
-
name: "Screen",
|
|
1170
|
-
styling: o.tailwind ? "tailwind" : "inline",
|
|
1171
|
-
fontFamily: o.fontFamily,
|
|
1172
|
-
ownFonts: o.ownFonts,
|
|
1173
|
-
...live ? { behaviour: o.behaviour, prelude: prelude2 } : {},
|
|
1174
|
-
// A GPU island: drawn live over its picture by the renderer the project carries (./islands.ts).
|
|
1175
|
-
...o.islands ? { island: (n) => {
|
|
1176
|
-
usesIsland = true;
|
|
1177
|
-
return `<GpuIsland id=${JSON.stringify(n.id)} screen=${JSON.stringify(page.tree.root.id)} />`;
|
|
1178
|
-
} } : {},
|
|
1179
|
-
// A visitor's own lists are drawn from their records, which the site provider holds.
|
|
1180
|
-
...o.behaviour.server ? { lists: (r) => o.behaviour.server.collections.some((c) => c.id === r.collectionId) ? listSource(r, o.behaviour) : null } : {},
|
|
1181
|
-
image: (p) => {
|
|
1182
|
-
usesImage = true;
|
|
1183
|
-
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" />`;
|
|
1184
|
-
},
|
|
1185
|
-
code: (node) => {
|
|
1186
|
-
const c = node.code;
|
|
1187
|
-
const file = moduleFile.get(c.module);
|
|
1188
|
-
if (!file) return null;
|
|
1189
|
-
const local = c.export && c.export !== "default" ? c.export : file;
|
|
1190
|
-
imports.set(local, c.export && c.export !== "default" ? `import { ${c.export} } from '@/components/code/${file}'` : `import ${file} from '@/components/code/${file}'`);
|
|
1191
|
-
return `<${local} ${Object.entries(c.props).map(([k, v]) => jsxProp(k, v)).join(" ")} />`;
|
|
1192
|
-
}
|
|
1193
|
-
});
|
|
1194
|
-
const effectLines = effects.map((e) => `useEffect(() => { ${e} }, [])`);
|
|
1195
|
-
const draft = `${render([])}
|
|
1196
|
-
${effectLines.join("\n")}`;
|
|
1197
|
-
const uses = (re) => re.test(draft);
|
|
1198
|
-
const store = [uses(/\bv\./) ? "v" : "", uses(/\bset\(/) ? "set" : ""].filter(Boolean);
|
|
1199
|
-
const prelude = live ? [
|
|
1200
|
-
...uses(/\brouter\./) ? ["const router = useRouter()"] : [],
|
|
1201
|
-
...store.length ? [`const { ${store.join(", ")} } = useVariables()`] : [],
|
|
1202
|
-
...uses(/\boverlays\./) ? ["const overlays = useOverlays()"] : [],
|
|
1203
|
-
...uses(/\bsite\.(submit|records|call)\b/) ? ["const site = useSite()"] : [],
|
|
1204
|
-
...effects.map((e) => {
|
|
1205
|
-
const deps = ["router", "set", "overlays"].filter((d) => new RegExp(`\\b${d}\\b`).test(e));
|
|
1206
|
-
return `useEffect(() => { ${e} }, [${deps.join(", ")}])`;
|
|
1207
|
-
})
|
|
1208
|
-
] : [];
|
|
1209
|
-
const body = live ? render(prelude) : draft.trimEnd();
|
|
1210
|
-
if (live) {
|
|
1211
|
-
if (uses(/\brouter\./)) imports.set("useRouter", "import { useRouter } from 'next/navigation'");
|
|
1212
|
-
const helpers = ["call", "exprText", "itemCompare", "itemField", "itemWords", "num", "ops", "truthy"].filter((h) => new RegExp(`\\b${h}[.(]`).test(body));
|
|
1213
|
-
const named = [...helpers, ...uses(/\boverlays\./) ? ["useOverlays"] : [], ...uses(/\bsite\.(submit|records|call)\b/) ? ["useSite"] : [], ...store.length ? ["useVariables"] : []].sort();
|
|
1214
|
-
if (named.length) imports.set("popcraft", `import { ${named.join(", ")} } from '@/lib/popcraft'`);
|
|
1215
|
-
const page2 = ["controlTimeline", "orbitDrag", "scrubTimeline", "switchMode"].filter((h) => new RegExp(`\\b${h}\\(`).test(body));
|
|
1216
|
-
if (page2.length) imports.set("runtime", `import { ${page2.join(", ")} } from '@popcraft/runtime'`);
|
|
1217
|
-
}
|
|
1218
|
-
if (usesImage) imports.set("Image", "import Image from 'next/image'");
|
|
1219
|
-
if (usesIsland) imports.set("GpuIsland", "import { GpuIsland } from '@/components/gpu-island'");
|
|
1220
|
-
const nodes = all(page.tree.root);
|
|
1221
|
-
const client = live || /\buse(Effect|Ref|State)\b/.test(body);
|
|
1222
|
-
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));
|
|
1223
|
-
if (hooks.length) imports.set("react", `import { ${hooks.join(", ")} } from 'react'`);
|
|
1224
|
-
const left = [
|
|
1225
|
-
nodes.some((n) => n.island) && !o.islands ? "layers drawn live on the GPU are pictures here" : "",
|
|
1226
|
-
...o.behaviour.missing(page.tree.root.id)
|
|
1227
|
-
].filter(Boolean);
|
|
1228
|
-
const dir = page.notFound ? "app" : pageDir(page.route);
|
|
1229
|
-
const share = pageShareImage(site, page);
|
|
1230
|
-
const metadata = [
|
|
1231
|
-
"import type { Metadata } from 'next'",
|
|
1232
|
-
"",
|
|
1233
|
-
`export const metadata: Metadata = {`,
|
|
1234
|
-
` title: ${JSON.stringify(page.title)},`,
|
|
1235
|
-
...page.description ? [` description: ${JSON.stringify(page.description)},`] : [],
|
|
1236
|
-
...page.route !== "/" && !page.notFound ? [` alternates: { canonical: ${JSON.stringify(page.route)} },`] : [],
|
|
1237
|
-
// Its share image is in `public/` and named from the root: `metadataBase` (app/layout.tsx) makes it absolute.
|
|
1238
|
-
...share ? [
|
|
1239
|
-
` 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} }] },`,
|
|
1240
|
-
` twitter: { card: 'summary_large_image', title: ${JSON.stringify(page.title)}, images: [${JSON.stringify(`/${share.path}`)}] },`
|
|
1241
|
-
] : [],
|
|
1242
|
-
"}"
|
|
1243
|
-
];
|
|
1244
|
-
const screen = [
|
|
1245
|
-
...client ? ["'use client'", ""] : [],
|
|
1246
|
-
...[...imports.values()].sort(),
|
|
1247
|
-
...imports.size ? [""] : [],
|
|
1248
|
-
...left.length ? [`// Exported from PopCraft. Not carried into this page: ${left.join("; ")}. The static export plays them.`, ""] : [],
|
|
1249
|
-
body,
|
|
1250
|
-
""
|
|
1251
|
-
].join("\n");
|
|
1252
|
-
const screenFile = page.notFound ? "not-found-screen.tsx" : "screen.tsx";
|
|
1253
|
-
const pageFile = page.notFound ? "not-found.tsx" : "page.tsx";
|
|
1254
|
-
return [
|
|
1255
|
-
{ path: `${dir}/${screenFile}`, content: screen },
|
|
1256
|
-
{ path: `${dir}/${pageFile}`, content: [
|
|
1257
|
-
...metadata.slice(0, 1),
|
|
1258
|
-
`import { Screen } from './${screenFile.replace(/\.tsx$/, "")}'`,
|
|
1259
|
-
...metadata.slice(1),
|
|
1260
|
-
"",
|
|
1261
|
-
`export default function ${page.notFound ? "NotFound" : "Page"}() {`,
|
|
1262
|
-
" return <Screen />",
|
|
1263
|
-
"}",
|
|
1264
|
-
""
|
|
1265
|
-
].join("\n") }
|
|
1266
|
-
];
|
|
1267
|
-
}
|
|
1268
|
-
function layoutSource(site, fonts, o) {
|
|
1269
|
-
const { variables } = o;
|
|
1270
|
-
const modes = site.tokens?.active ?? [];
|
|
1271
|
-
const loaders = fonts.map((f) => {
|
|
1272
|
-
const name = f.ident.charAt(0).toLowerCase() + f.ident.slice(1).replace(/_/g, "");
|
|
1273
|
-
const weight = f.variableFont ? "" : `, weight: [${f.weights.map((w) => `'${w}'`).join(", ")}]`;
|
|
1274
|
-
return { name, line: `const ${name} = ${f.ident}({ subsets: ['latin'], display: 'swap', variable: '${f.variable}'${weight} })` };
|
|
1275
|
-
});
|
|
1276
|
-
const classes = [...loaders.map((l) => `\${${l.name}.variable}`), ...modes].join(" ");
|
|
1277
|
-
return [
|
|
1278
|
-
"import type { Metadata, Viewport } from 'next'",
|
|
1279
|
-
...fonts.length ? [`import { ${fonts.map((f) => f.ident).sort().join(", ")} } from 'next/font/google'`] : [],
|
|
1280
|
-
"import type { ReactNode } from 'react'",
|
|
1281
|
-
"import { siteUrl } from '@/lib/site'",
|
|
1282
|
-
...o.overlays ? ["import { Overlays } from '@/components/overlays'"] : [],
|
|
1283
|
-
...variables ? [`import { ${o.overlays ? "OverlayProvider, " : ""}${o.server ? "SiteProvider, " : ""}VariablesProvider } from '@/lib/popcraft'`] : [],
|
|
1284
|
-
"import './globals.css'",
|
|
1285
|
-
"",
|
|
1286
|
-
...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), ""] : [],
|
|
1287
|
-
"export const metadata: Metadata = {",
|
|
1288
|
-
" metadataBase: siteUrl,",
|
|
1289
|
-
` title: { default: ${JSON.stringify(site.name)}, template: ${JSON.stringify(`%s \xB7 ${site.name}`)} },`,
|
|
1290
|
-
` openGraph: { siteName: ${JSON.stringify(site.name)}, type: 'website' },`,
|
|
1291
|
-
"}",
|
|
1292
|
-
"",
|
|
1293
|
-
"export const viewport: Viewport = { width: 'device-width', initialScale: 1 }",
|
|
1294
|
-
"",
|
|
1295
|
-
"export default function RootLayout({ children }: Readonly<{ children: ReactNode }>) {",
|
|
1296
|
-
" return (",
|
|
1297
|
-
` <html lang="en"${classes ? ` className={\`${classes}\`}` : ""}>`,
|
|
1298
|
-
` <body>${variables ? "<VariablesProvider>" : ""}${o.server ? "<SiteProvider>" : ""}${o.overlays ? "<OverlayProvider>{children}<Overlays /></OverlayProvider>" : "{children}"}${o.server ? "</SiteProvider>" : ""}${variables ? "</VariablesProvider>" : ""}</body>`,
|
|
1299
|
-
" </html>",
|
|
1300
|
-
" )",
|
|
1301
|
-
"}",
|
|
1302
|
-
""
|
|
1303
|
-
].join("\n");
|
|
1304
|
-
}
|
|
1305
|
-
function overlaysSource(site, b) {
|
|
1306
|
-
const screens = [...b.overlays].map((id) => site.pages.find((p) => p.id === id)).filter((p) => !!p);
|
|
1307
|
-
const name = (p) => `${componentName(p.title || p.route) || "Overlay"}Overlay`;
|
|
1308
|
-
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"] };
|
|
1309
|
-
return [
|
|
1310
|
-
"'use client'",
|
|
1311
|
-
"",
|
|
1312
|
-
"// The frames the design opens as overlays (OVERLAY / SWAP), drawn over the page while they are open: each is the",
|
|
1313
|
-
"// same screen its own route shows. Open, swap and close them with useOverlays() from lib/popcraft.",
|
|
1314
|
-
"",
|
|
1315
|
-
"import type { ComponentType } from 'react'",
|
|
1316
|
-
"import { useOverlays } from '@/lib/popcraft'",
|
|
1317
|
-
...screens.map((p) => `import { Screen as ${name(p)} } from '@/${pageDir(p.route)}/screen'`),
|
|
1318
|
-
"",
|
|
1319
|
-
"const SCREENS: Record<string, ComponentType> = {",
|
|
1320
|
-
...screens.map((p) => ` ${JSON.stringify(p.id)}: ${name(p)},`),
|
|
1321
|
-
"}",
|
|
1322
|
-
`const ALIGN: Record<string, [string, string]> = ${JSON.stringify(align)}`,
|
|
1323
|
-
"",
|
|
1324
|
-
"export function Overlays() {",
|
|
1325
|
-
" const { list, close } = useOverlays()",
|
|
1326
|
-
" return list.map(({ id, options }, i) => {",
|
|
1327
|
-
" const Screen = SCREENS[id]",
|
|
1328
|
-
" if (!Screen) return null",
|
|
1329
|
-
" const [justifyContent, alignItems] = ALIGN[options.position ?? 'CENTER']",
|
|
1330
|
-
" return (",
|
|
1331
|
-
' <div key={`${id}-${i}`} role="dialog" aria-modal="true" onClick={e => { if (options.closeOnOutside && e.target === e.currentTarget) close() }}',
|
|
1332
|
-
" 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 }}>",
|
|
1333
|
-
" <Screen />",
|
|
1334
|
-
" </div>",
|
|
1335
|
-
" )",
|
|
1336
|
-
" })",
|
|
1337
|
-
"}",
|
|
1338
|
-
""
|
|
1339
|
-
].join("\n");
|
|
1340
|
-
}
|
|
1341
|
-
function stateSource(b) {
|
|
1342
|
-
return [
|
|
1343
|
-
"'use client'",
|
|
1344
|
-
"",
|
|
1345
|
-
"// The design's variables, as state every page shares (the provider is in app/layout.tsx), and the helpers the",
|
|
1346
|
-
"// screens' expressions call. What an expression means (its operators and functions) is @popcraft/runtime's, so a",
|
|
1347
|
-
"// value comes out here as it does in PopCraft.",
|
|
1348
|
-
"",
|
|
1349
|
-
`import { createContext, useCallback, useContext, ${b.server ? "useEffect, " : ""}useMemo, useState, type ReactNode } from 'react'`,
|
|
1350
|
-
...b.server && Object.keys(b.server.access).length ? ["import { usePathname, useRouter } from 'next/navigation'"] : [],
|
|
1351
|
-
`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'`,
|
|
1352
|
-
"",
|
|
1353
|
-
"export { exprText, num, ops, truthy }",
|
|
1354
|
-
"",
|
|
1355
|
-
"export interface Variables {",
|
|
1356
|
-
...b.variables.map((v) => ` /** ${v.name} */
|
|
1357
|
-
${v.ident}: ${v.type}`),
|
|
1358
|
-
"}",
|
|
1359
|
-
"",
|
|
1360
|
-
"export const initialVariables: Variables = {",
|
|
1361
|
-
...b.variables.map((v) => ` ${v.ident}: ${v.initial},`),
|
|
1362
|
-
"}",
|
|
1363
|
-
"",
|
|
1364
|
-
"interface Store {",
|
|
1365
|
-
" v: Variables",
|
|
1366
|
-
" set: <K extends keyof Variables>(name: K, value: Variables[K]) => void",
|
|
1367
|
-
"}",
|
|
1368
|
-
"",
|
|
1369
|
-
"const VariablesContext = createContext<Store | null>(null)",
|
|
1370
|
-
"",
|
|
1371
|
-
"export function VariablesProvider({ children }: Readonly<{ children: ReactNode }>) {",
|
|
1372
|
-
" const [v, setV] = useState(initialVariables)",
|
|
1373
|
-
" const set = useCallback(<K extends keyof Variables>(name: K, value: Variables[K]) => setV(prev => ({ ...prev, [name]: value })), [])",
|
|
1374
|
-
" const store = useMemo(() => ({ v, set }), [v, set])",
|
|
1375
|
-
" return <VariablesContext value={store}>{children}</VariablesContext>",
|
|
1376
|
-
"}",
|
|
1377
|
-
"",
|
|
1378
|
-
"/** The variables, and the way to change one. */",
|
|
1379
|
-
"export function useVariables(): Store {",
|
|
1380
|
-
" const store = useContext(VariablesContext)",
|
|
1381
|
-
" if (!store) throw new Error('useVariables is used outside VariablesProvider (app/layout.tsx)')",
|
|
1382
|
-
" return store",
|
|
1383
|
-
"}",
|
|
1384
|
-
"",
|
|
1385
|
-
"/** Where an overlay sits over the page, and how it closes (OVERLAY / SWAP in the design). */",
|
|
1386
|
-
"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 } }",
|
|
1387
|
-
"interface OverlayStore { open: OverlayEntry[]; push(id: string, o?: OverlayOptions): void; swap(id: string, o?: OverlayOptions): void; close(): void }",
|
|
1388
|
-
"export interface OverlayEntry { id: string; options: OverlayOptions }",
|
|
1389
|
-
"",
|
|
1390
|
-
"const OverlayContext = createContext<OverlayStore | null>(null)",
|
|
1391
|
-
"",
|
|
1392
|
-
"/** The overlays open over the page, top last. */",
|
|
1393
|
-
"export function OverlayProvider({ children }: Readonly<{ children: ReactNode }>) {",
|
|
1394
|
-
" const [open, setOpen] = useState<OverlayEntry[]>([])",
|
|
1395
|
-
" const store = useMemo<OverlayStore>(() => ({",
|
|
1396
|
-
" open,",
|
|
1397
|
-
" push: (id, options = {}) => setOpen(prev => [...prev, { id, options }]),",
|
|
1398
|
-
" swap: (id, options = {}) => setOpen(prev => [...prev.slice(0, -1), { id, options }]),",
|
|
1399
|
-
" close: () => setOpen(prev => prev.slice(0, -1)),",
|
|
1400
|
-
" }), [open])",
|
|
1401
|
-
" return <OverlayContext value={store}>{children}</OverlayContext>",
|
|
1402
|
-
"}",
|
|
1403
|
-
"",
|
|
1404
|
-
"/** Open, swap and close overlays: `overlays.open(id, { position, dim, closeOnOutside })`. */",
|
|
1405
|
-
"export function useOverlays() {",
|
|
1406
|
-
" const store = useContext(OverlayContext)",
|
|
1407
|
-
" if (!store) throw new Error('useOverlays is used outside OverlayProvider (app/layout.tsx)')",
|
|
1408
|
-
" return { open: store.push, swap: store.swap, close: store.close, list: store.open }",
|
|
1409
|
-
"}",
|
|
1410
|
-
"",
|
|
1411
|
-
...b.server ? siteProviderSource(b.server) : [],
|
|
1412
|
-
"/** One of the expression functions (`count`, `clamp`, `today`\u2026). One that adds up records that are not here gives 0. */",
|
|
1413
|
-
"export function call(fn: string, ...args: ExprValue[]): ExprValue {",
|
|
1414
|
-
" const f = FUNCTIONS[fn]",
|
|
1415
|
-
" if (!f) return 0",
|
|
1416
|
-
" try { return f(args) } catch (e) { if (e instanceof ExprMissing) return 0; throw e }",
|
|
1417
|
-
"}",
|
|
1418
|
-
""
|
|
1419
|
-
].join("\n");
|
|
1420
|
-
}
|
|
1421
|
-
var siteSource = () => [
|
|
1422
|
-
"// Where the site is served from (NEXT_PUBLIC_SITE_URL, see .env.example): its sitemap, robots.txt and the",
|
|
1423
|
-
"// addresses social previews link to are made from it.",
|
|
1424
|
-
"export const siteUrl = new URL(process.env.NEXT_PUBLIC_SITE_URL ?? 'http://localhost:3000')",
|
|
1425
|
-
""
|
|
1426
|
-
].join("\n");
|
|
1427
|
-
var sitemapSource = (routes) => [
|
|
1428
|
-
"import type { MetadataRoute } from 'next'",
|
|
1429
|
-
"import { siteUrl } from '@/lib/site'",
|
|
1430
|
-
"",
|
|
1431
|
-
"export default function sitemap(): MetadataRoute.Sitemap {",
|
|
1432
|
-
` return ${JSON.stringify(routes)}.map(route => ({ url: new URL(route, siteUrl).href, lastModified: new Date() }))`,
|
|
1433
|
-
"}",
|
|
1434
|
-
""
|
|
1435
|
-
].join("\n");
|
|
1436
|
-
var robotsSource = () => [
|
|
1437
|
-
"import type { MetadataRoute } from 'next'",
|
|
1438
|
-
"import { siteUrl } from '@/lib/site'",
|
|
1439
|
-
"",
|
|
1440
|
-
"export default function robots(): MetadataRoute.Robots {",
|
|
1441
|
-
" return { rules: { userAgent: '*', allow: '/' }, sitemap: new URL('/sitemap.xml', siteUrl).href }",
|
|
1442
|
-
"}",
|
|
1443
|
-
""
|
|
1444
|
-
].join("\n");
|
|
1445
|
-
function readme(site, o) {
|
|
1446
|
-
const v = EXPORT_VERSIONS.packages;
|
|
1447
|
-
return `# ${site.name}
|
|
1448
|
-
|
|
1449
|
-
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]}` : ""}).
|
|
1450
|
-
|
|
1451
|
-
## Run it
|
|
1452
|
-
|
|
1453
|
-
You need Node.js ${EXPORT_VERSIONS.node.replace(">=", "")} or newer.
|
|
1454
|
-
|
|
1455
|
-
\`\`\`bash
|
|
1456
|
-
npm install
|
|
1457
|
-
npm run dev
|
|
1458
|
-
\`\`\`
|
|
1459
|
-
|
|
1460
|
-
Then open http://localhost:3000.
|
|
1461
|
-
|
|
1462
|
-
| Command | What it does |
|
|
1463
|
-
| --- | --- |
|
|
1464
|
-
| \`npm run dev\` | Runs the site locally, reloading as you edit |
|
|
1465
|
-
| \`npm run build\` | Builds it for production |
|
|
1466
|
-
| \`npm start\` | Serves the production build |
|
|
1467
|
-
| \`npm run lint\` | Checks the code with ESLint (Next.js's recommended rules) |
|
|
1468
|
-
| \`npm run typecheck\` | Checks the types with TypeScript |
|
|
1469
|
-
|
|
1470
|
-
## What is where
|
|
1471
|
-
|
|
1472
|
-
| Path | What it is |
|
|
1473
|
-
| --- | --- |
|
|
1474
|
-
| \`app/layout.tsx\` | The page around every route: language, fonts, the site's metadata |
|
|
1475
|
-
${o.routes.map((r) => `| \`${pageDir(r)}/page.tsx\` | \`${r}\`: its title and description, and the screen it shows |`).join("\n")}
|
|
1476
|
-
| \`app/**/screen.tsx\` | Each screen as plain TSX: real elements, links and forms. A screen that runs in the browser starts with \`'use client'\` |
|
|
1477
|
-
| \`app/globals.css\` | The design's variables${o.tailwind ? ", Tailwind," : ""} and its breakpoints as media queries |
|
|
1478
|
-
| \`app/sitemap.ts\`, \`app/robots.ts\` | \`/sitemap.xml\` and \`/robots.txt\`, from \`NEXT_PUBLIC_SITE_URL\` |
|
|
1479
|
-
| \`public/\` | The pictures, served through \`next/image\` at the size each screen needs |
|
|
1480
|
-
${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" : ""}
|
|
1481
|
-
${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.
|
|
1482
|
-
` : ""}
|
|
1483
|
-
${o.server ? serverReadme(o.server) : ""}## Deploy
|
|
1484
|
-
|
|
1485
|
-
Set \`NEXT_PUBLIC_SITE_URL\` to the site's address (copy \`.env.example\` to \`.env.local\` for local use), then deploy
|
|
1486
|
-
anywhere that runs Next.js: Vercel, a Node server (\`npm run build && npm start\`), or a container.
|
|
1487
|
-
|
|
1488
|
-
## Exporting again
|
|
1489
|
-
|
|
1490
|
-
Exporting from PopCraft again writes these files again. Keep changes you want to survive in files of your own, or
|
|
1491
|
-
treat this project as yours from here on and stop exporting.
|
|
1492
|
-
`;
|
|
1493
|
-
}
|
|
1494
|
-
|
|
1495
|
-
// lib/io/web/project/build.ts
|
|
1496
|
-
var runtimeScript = (name) => fetch(`/pc/${name}.js?fresh=${Date.now()}`, { cache: "no-store" }).then((r) => r.ok ? r.text() : null).catch(() => null);
|
|
1497
|
-
async function appAssetFiles(paths, under = "") {
|
|
1498
|
-
const got = await Promise.all(paths.map(async (path) => {
|
|
1499
|
-
const res = await fetch(path).catch(() => null);
|
|
1500
|
-
const file = res?.ok ? { path: `${under}${path.replace(/^\//, "")}`, content: new Uint8Array(await res.arrayBuffer()) } : null;
|
|
1501
|
-
return file;
|
|
1502
|
-
}));
|
|
1503
|
-
return got.filter((f) => f !== null);
|
|
1504
|
-
}
|
|
1505
|
-
async function completeSite(doc, pageId) {
|
|
1506
|
-
const [{ previewSite }, { rendererAssetResolvers }] = await Promise.all([import("./host-NMWTKJJP.js"), import("./resolvers-5Q6VAHZ5.js")]);
|
|
1507
|
-
return previewSite(doc, pageId, rendererAssetResolvers(doc));
|
|
1508
|
-
}
|
|
1509
|
-
var NoSiteRuntime = class extends Error {
|
|
1510
|
-
constructor() {
|
|
1511
|
-
super("The site runtime is not built in this copy of the app.");
|
|
1512
|
-
}
|
|
1513
|
-
};
|
|
1514
|
-
async function nextFilesOf(full, doc, opts = {}) {
|
|
1515
|
-
const site = withoutScreenIslands(full);
|
|
1516
|
-
const islandScript = site.islands && Object.keys(site.islands).length ? await runtimeScript("island") : null;
|
|
1517
|
-
return [...nextProjectFiles(site, doc, { ...opts, islandScript }), ...await appAssetFiles(appAssetPaths(site), "public/")];
|
|
1518
|
-
}
|
|
1519
|
-
async function staticFilesOf(site, opts = {}) {
|
|
1520
|
-
const [siteJs, island, code] = await Promise.all([runtimeScript("site"), site.islands ? runtimeScript("island") : null, site.code ? runtimeScript("code") : null]);
|
|
1521
|
-
if (!siteJs) throw new NoSiteRuntime();
|
|
1522
|
-
const { t } = await import("./runtime-WMLX5IGB.js");
|
|
1523
|
-
site = { ...site, strings: { ...site.strings, formNotSent: t("siteForm.notSent") } };
|
|
1524
|
-
return [...staticSiteFiles(site, { site: siteJs, island, code }, opts), ...await appAssetFiles(appAssetPaths(site))];
|
|
1525
|
-
}
|
|
1526
|
-
|
|
1527
|
-
// lib/io/web/project/share.ts
|
|
1528
|
-
init_define_POPCRAFT_COMPONENT_IDS();
|
|
1529
|
-
init_scene_graph();
|
|
1530
|
-
var SHARE_WIDTH = 1200;
|
|
1531
|
-
var SHARE_HEIGHT = 630;
|
|
1532
|
-
var SHARE_MAX_BYTES = 1024 * 1024;
|
|
1533
|
-
var SHARE_DIR = "share/";
|
|
1534
|
-
function shareCrop(w, h) {
|
|
1535
|
-
const ratio = SHARE_WIDTH / SHARE_HEIGHT;
|
|
1536
|
-
if (w / h > ratio) {
|
|
1537
|
-
const cw = h * ratio;
|
|
1538
|
-
return { x: (w - cw) / 2, y: 0, w: cw, h, scale: SHARE_HEIGHT / h };
|
|
1539
|
-
}
|
|
1540
|
-
const ch = w / ratio;
|
|
1541
|
-
return { x: 0, y: 0, w, h: ch, scale: SHARE_WIDTH / w };
|
|
1542
|
-
}
|
|
1543
|
-
function shareFrameOf(doc, site, choice) {
|
|
1544
|
-
if (choice?.kind === "frame" && doc.nodes[choice.frameId]) return choice.frameId;
|
|
1545
|
-
const home = site.pages.find((p) => p.id === site.home) ?? site.pages.find((p) => !p.notFound) ?? site.pages[0];
|
|
1546
|
-
return home ? home.screen ?? home.id : null;
|
|
1547
|
-
}
|
|
1548
|
-
async function drawShareFrame(doc, frameId) {
|
|
1549
|
-
const [{ getActiveRenderer }, { encodeImageData }, { documentForExport }] = await Promise.all([
|
|
1550
|
-
import("./renderer-registry-B3UEHFJO.js"),
|
|
1551
|
-
import("./export-GCUSEC64.js"),
|
|
1552
|
-
import("./export-fills-QVBT27RN.js")
|
|
1553
|
-
]);
|
|
1554
|
-
const renderer = getActiveRenderer();
|
|
1555
|
-
const frame = doc.nodes[frameId];
|
|
1556
|
-
if (!renderer || !frame) return null;
|
|
1557
|
-
const shown = documentForExport(doc);
|
|
1558
|
-
const box = uprightBounds(getWorldTransform(shown, frameId), frame.width, frame.height);
|
|
1559
|
-
const crop = shareCrop(box.maxX - box.minX, box.maxY - box.minY);
|
|
1560
|
-
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 };
|
|
1561
|
-
const pixels = await renderer.exportRegion([shown.nodes[frameId] ?? frame], bounds, crop.scale, shown, shown.styles, void 0, true);
|
|
1562
|
-
if (!pixels) return null;
|
|
1563
|
-
const png = await encodeImageData(pixels, "PNG");
|
|
1564
|
-
if (png && png.size <= SHARE_MAX_BYTES) return { bytes: new Uint8Array(await png.arrayBuffer()), ext: "png" };
|
|
1565
|
-
const jpg = await encodeImageData(pixels, "JPG", 0.85);
|
|
1566
|
-
return jpg ? { bytes: new Uint8Array(await jpg.arrayBuffer()), ext: "jpg" } : null;
|
|
1567
|
-
}
|
|
1568
|
-
var IMAGE_EXT = { "image/png": "png", "image/jpeg": "jpg", "image/webp": "webp", "image/gif": "gif" };
|
|
1569
|
-
async function shareImageFiles(doc, site, under = "") {
|
|
1570
|
-
const files = [];
|
|
1571
|
-
const choice = doc.site?.shareImage;
|
|
1572
|
-
if (choice?.kind === "image") {
|
|
1573
|
-
const { loadMediaBlob } = await import("./media-store-2FX7NN63.js");
|
|
1574
|
-
const blob = await loadMediaBlob(choice.src).catch(() => null);
|
|
1575
|
-
const ext = blob && IMAGE_EXT[blob.type];
|
|
1576
|
-
if (blob && ext) {
|
|
1577
|
-
const path = `${SHARE_DIR}og.${ext}`;
|
|
1578
|
-
files.push({ path: under + path, content: new Uint8Array(await blob.arrayBuffer()) });
|
|
1579
|
-
const size = await imageSize(blob);
|
|
1580
|
-
site.share = { image: path, width: size?.width ?? SHARE_WIDTH, height: size?.height ?? SHARE_HEIGHT };
|
|
1581
|
-
}
|
|
1582
|
-
}
|
|
1583
|
-
if (!site.share) {
|
|
1584
|
-
const frameId = shareFrameOf(doc, site, choice);
|
|
1585
|
-
const drawn = frameId ? await drawShareFrame(doc, frameId) : null;
|
|
1586
|
-
if (drawn) {
|
|
1587
|
-
const path = `${SHARE_DIR}og.${drawn.ext}`;
|
|
1588
|
-
files.push({ path: under + path, content: drawn.bytes });
|
|
1589
|
-
site.share = { image: path, width: SHARE_WIDTH, height: SHARE_HEIGHT };
|
|
1590
|
-
}
|
|
1591
|
-
}
|
|
1592
|
-
const drawnFor = /* @__PURE__ */ new Map();
|
|
1593
|
-
for (const page of site.pages) {
|
|
1594
|
-
const own = doc.nodes[page.screen ?? page.id]?.route?.shareImage;
|
|
1595
|
-
if (!own || !doc.nodes[own]) continue;
|
|
1596
|
-
if (!drawnFor.has(own)) {
|
|
1597
|
-
const drawn = await drawShareFrame(doc, own);
|
|
1598
|
-
const path2 = drawn ? `${SHARE_DIR}${own.replace(/[^\w-]/g, "_")}.${drawn.ext}` : null;
|
|
1599
|
-
if (drawn && path2) files.push({ path: under + path2, content: drawn.bytes });
|
|
1600
|
-
drawnFor.set(own, path2);
|
|
1601
|
-
}
|
|
1602
|
-
const path = drawnFor.get(own);
|
|
1603
|
-
if (path) page.shareImage = path;
|
|
1604
|
-
}
|
|
1605
|
-
return files;
|
|
1606
|
-
}
|
|
1607
|
-
async function imageSize(blob) {
|
|
1608
|
-
const b = new Uint8Array(await blob.slice(0, 64 * 1024).arrayBuffer());
|
|
1609
|
-
return pictureSize(b);
|
|
1610
|
-
}
|
|
1611
|
-
function pictureSize(b) {
|
|
1612
|
-
const dv = new DataView(b.buffer, b.byteOffset, b.byteLength);
|
|
1613
|
-
if (b.length > 24 && b[0] === 137 && b[1] === 80) return { width: dv.getUint32(16), height: dv.getUint32(20) };
|
|
1614
|
-
if (b[0] === 255 && b[1] === 216) {
|
|
1615
|
-
let i = 2;
|
|
1616
|
-
while (i + 9 < b.length) {
|
|
1617
|
-
if (b[i] !== 255) return null;
|
|
1618
|
-
const marker = b[i + 1];
|
|
1619
|
-
const len = dv.getUint16(i + 2);
|
|
1620
|
-
if (marker >= 192 && marker <= 207 && marker !== 196 && marker !== 200 && marker !== 204) return { height: dv.getUint16(i + 5), width: dv.getUint16(i + 7) };
|
|
1621
|
-
i += 2 + len;
|
|
1622
|
-
}
|
|
1623
|
-
}
|
|
1624
|
-
return null;
|
|
1625
|
-
}
|
|
1626
|
-
export {
|
|
1627
|
-
ASSET_DIR,
|
|
1628
|
-
NoSiteRuntime,
|
|
1629
|
-
SHARE_HEIGHT,
|
|
1630
|
-
SHARE_MAX_BYTES,
|
|
1631
|
-
SHARE_WIDTH,
|
|
1632
|
-
appAssetFiles,
|
|
1633
|
-
appAssetPaths,
|
|
1634
|
-
bytesOf,
|
|
1635
|
-
completeSite,
|
|
1636
|
-
drawShareFrame,
|
|
1637
|
-
externalizeBitmaps,
|
|
1638
|
-
nextFilesOf,
|
|
1639
|
-
nextProjectFiles,
|
|
1640
|
-
routeFile,
|
|
1641
|
-
routeUp,
|
|
1642
|
-
shareCrop,
|
|
1643
|
-
shareImageFiles,
|
|
1644
|
-
staticFilesOf,
|
|
1645
|
-
staticSiteFiles,
|
|
1646
|
-
withAssetBase
|
|
1647
|
-
};
|