@popcraft/kit 0.25.0 → 0.26.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 → agent-NTEAEZBN.js} +1 -1
- package/dist/chunks/{build-K6QBTLT7.js → build-W5O2ZVN7.js} +2 -2
- package/dist/chunks/{builtin-ZS3HJHZL.js → builtin-KX2SGDND.js} +3 -3
- package/dist/chunks/{check-template-RZ7IO333.js → check-template-B2KKE6BW.js} +2 -2
- package/dist/chunks/{chunk-ZKHYC3QO.js → chunk-37WES5PM.js} +2 -2
- package/dist/chunks/chunk-45JABNLR.js +161 -0
- package/dist/chunks/chunk-4OGILN7Y.js +141 -0
- package/dist/chunks/{chunk-63X37RCC.js → chunk-5NWVUAWR.js} +4 -4
- package/dist/chunks/{chunk-QREG6HEK.js → chunk-67SLLJJB.js} +40 -40
- package/dist/chunks/chunk-6DV5JZ5M.js +121 -0
- package/dist/chunks/chunk-7Q67MXXL.js +140 -0
- package/dist/chunks/{chunk-R5CW4CNP.js → chunk-A6GPFR5O.js} +11 -11
- package/dist/chunks/chunk-AISWLDDO.js +895 -0
- package/dist/chunks/{chunk-ADZXK6SM.js → chunk-AQGECTRJ.js} +1 -1
- package/dist/chunks/chunk-ASWWZNTY.js +130 -0
- package/dist/chunks/chunk-BNEFANT2.js +134 -0
- package/dist/chunks/{chunk-REJO7GXO.js → chunk-CFEKYNGQ.js} +2 -2
- package/dist/chunks/{chunk-5HG4LWF5.js → chunk-D4HEDPVN.js} +161 -0
- package/dist/chunks/chunk-DRESZDOP.js +130 -0
- package/dist/chunks/{chunk-3W2MSVJA.js → chunk-EBLHS2EG.js} +5 -5
- package/dist/chunks/chunk-EHTLT6XJ.js +131 -0
- package/dist/chunks/{chunk-2AQK4IIV.js → chunk-EVFG2K4L.js} +1 -1
- package/dist/chunks/{chunk-6TJIEERG.js → chunk-F4NTIOTT.js} +26 -26
- package/dist/chunks/chunk-FC7B22QS.js +150 -0
- package/dist/chunks/{chunk-V6COW3DB.js → chunk-G6MIC23V.js} +1 -1
- package/dist/chunks/{chunk-4QBQ4RAA.js → chunk-GODXMHO3.js} +4 -4
- package/dist/chunks/chunk-GT22XGDH.js +152 -0
- package/dist/chunks/chunk-HL4M53ZR.js +143 -0
- package/dist/chunks/{chunk-MPI6SCA7.js → chunk-IDL5KKIC.js} +5 -5
- package/dist/chunks/{chunk-HR7HCFPX.js → chunk-IM6HORNC.js} +5 -5
- package/dist/chunks/{chunk-UVMU6CXR.js → chunk-IWCZDFXL.js} +17 -17
- package/dist/chunks/{chunk-OCSLBM6W.js → chunk-JXAJ6OST.js} +1 -1
- package/dist/chunks/{chunk-5WGMPGKY.js → chunk-KS7DVWDB.js} +1 -1
- package/dist/chunks/chunk-NHDBQ4G7.js +137 -0
- package/dist/chunks/chunk-NKPU5TF2.js +103 -0
- package/dist/chunks/chunk-NO734F3F.js +146 -0
- package/dist/chunks/{chunk-ASWAIYNC.js → chunk-NR2SFSJU.js} +3 -3
- package/dist/chunks/{chunk-CJY4TNOS.js → chunk-O3BEBIDN.js} +3 -1
- package/dist/chunks/{chunk-UDO3ZU5T.js → chunk-OR6HMJRM.js} +1 -1
- package/dist/chunks/chunk-OTICJQ4T.js +267 -0
- package/dist/chunks/chunk-PWZZRGWI.js +141 -0
- package/dist/chunks/{chunk-AE6S2M2B.js → chunk-QX4U3VTU.js} +25 -25
- package/dist/chunks/{chunk-TRUFIU5W.js → chunk-R3YD6VL6.js} +3 -3
- package/dist/chunks/{chunk-YSYZW4VZ.js → chunk-SFPM3UJA.js} +7 -7
- package/dist/chunks/chunk-SNXQM4UO.js +115 -0
- package/dist/chunks/chunk-T3LV66CQ.js +139 -0
- package/dist/chunks/chunk-TDGIO2S7.js +145 -0
- package/dist/chunks/chunk-TFNV2UP4.js +87 -0
- package/dist/chunks/chunk-UJZXKOTP.js +136 -0
- package/dist/chunks/{chunk-QAVWMRRM.js → chunk-V5HI55XO.js} +2 -2
- package/dist/chunks/chunk-VVNPBBPL.js +174 -0
- package/dist/chunks/{chunk-22RNC42G.js → chunk-YHA45NK5.js} +1 -1
- package/dist/chunks/{chunk-27EVM272.js → chunk-YPMT4Y4N.js} +2 -2
- package/dist/chunks/chunk-YRSDFRCX.js +122 -0
- package/dist/chunks/chunk-ZNARVSMD.js +140 -0
- package/dist/chunks/{chunk-3DWOQ4LW.js → chunk-ZTBKAGBN.js} +2 -2
- package/dist/chunks/{client-6DUSRTZG.js → client-25NJXQWL.js} +1 -1
- package/dist/chunks/{client-XYPBNSQ7.js → client-7AQTKZHV.js} +2 -2
- package/dist/chunks/{client-TRFNJJHQ.js → client-LWBTUXQK.js} +2 -2
- package/dist/chunks/{client-actions-SSUZUEG7.js → client-actions-3HIRRSOL.js} +4 -4
- package/dist/chunks/{dangerous-UX4DHJ7U.js → dangerous-XJOHEWL6.js} +3 -3
- package/dist/chunks/{editor-seams-V7ZP7XH3.js → editor-seams-4DREZRTT.js} +9 -9
- package/dist/chunks/{editor-store-OIHZT244.js → editor-store-C4VWC23J.js} +1 -1
- package/dist/chunks/{export-watermark-4NAP5RVM.js → export-watermark-OKGRZNOU.js} +5 -5
- package/dist/chunks/{eyedropper-QXEY7LVL.js → eyedropper-WZYSTUTM.js} +1 -1
- package/dist/chunks/{generate-media-JAEHWNF6.js → generate-media-DFSHOPOI.js} +2 -2
- package/dist/chunks/{host-IKFYVZS7.js → host-4ZE7SIWR.js} +6 -6
- package/dist/chunks/{integrations-U5X2BHVK.js → integrations-LPC35FKX.js} +1 -1
- package/dist/chunks/{kit-modules-BAUMECYQ.js → kit-modules-BAKTDLOZ.js} +1 -1
- package/dist/chunks/{libraries-Q5TCHWGI.js → libraries-ACERXG2O.js} +5 -5
- package/dist/chunks/{live-4XQEGNLA.js → live-ZIVBFX3G.js} +3 -3
- package/dist/chunks/{media-tool-OSQR45HY.js → media-tool-2ZPIQKJD.js} +1 -1
- package/dist/chunks/{new-file-VVLWHEJ4.js → new-file-XS3KCMGM.js} +3 -3
- package/dist/chunks/{plugin-44ZW5UEP.js → plugin-6RNMUP5I.js} +2 -2
- package/dist/chunks/{plugin-import-3ISLDX7T.js → plugin-import-UC5BHZFE.js} +13 -13
- package/dist/chunks/{presence-WVU4OIUA.js → presence-TLDOMBPD.js} +2 -2
- package/dist/chunks/{project-EG7XFEJU.js → project-NMPK4R5M.js} +1 -1
- package/dist/chunks/{publish-site-WFIX42D3.js → publish-site-R46ZILSS.js} +6 -6
- package/dist/chunks/{publish-store-6BS7OIP4.js → publish-store-MIPHEDLV.js} +4 -4
- package/dist/chunks/{raster-actions-37XUQSVZ.js → raster-actions-7EI5THLB.js} +1 -1
- package/dist/chunks/{runner-HZ7MU6ER.js → runner-I66TTKKZ.js} +16 -16
- package/dist/chunks/{store-PHWBXKNY.js → store-7WMR3JKP.js} +5 -5
- package/dist/chunks/{sync-IJNKHQRF.js → sync-OFINS45Q.js} +5 -5
- package/dist/chunks/{tabs-G6OTEGA5.js → tabs-PEH6VX3X.js} +8 -8
- package/dist/chunks/{team-M2EN4JT5.js → team-GGW3O32G.js} +1 -1
- package/dist/chunks/{tools-WDFCY4BH.js → tools-TKCA46ZS.js} +2 -2
- package/dist/chunks/{ui-commands-QHFGR33P.js → ui-commands-6K4PYKU5.js} +11 -11
- package/dist/chunks/{versions-S7COCZSQ.js → versions-KHRNQFGF.js} +5 -5
- package/dist/index.js +4 -4
- package/dist/seed/files.json +1 -1
- package/dist/templates/count.js +1 -1
- package/dist/templates/index.js +125 -101
- package/dist/templates/index.json +756 -0
- package/dist/templates/motion/landing-hero/index.js +4 -4
- package/dist/templates/motion/launch-trailer/document.js +125 -101
- package/dist/templates/motion/launch-trailer/index.js +4 -4
- package/dist/templates/motion/launch-trailer/scenes.js +3 -3
- package/dist/templates/motion/template-wall.js +2 -2
- package/dist/templates/print/holidays-christmas-church-newsletter.js +94 -0
- package/dist/templates/print/holidays-christmas-eve-invitation.js +94 -0
- package/dist/templates/print/holidays-christmas-gift-tags.js +94 -0
- package/dist/templates/print/holidays-diwali-party-invitation.js +95 -0
- package/dist/templates/print/holidays-easter-activity-sheet.js +94 -0
- package/dist/templates/print/holidays-easter-egg-hunt-flyer.js +94 -0
- package/dist/templates/print/holidays-eid-dinner-invitation.js +95 -0
- package/dist/templates/print/holidays-eid-gift-tags.js +94 -0
- package/dist/templates/print/holidays-halloween-party-invitation.js +95 -0
- package/dist/templates/print/holidays-halloween-treat-labels.js +94 -0
- package/dist/templates/print/holidays-halloween-trunk-or-treat-poster.js +94 -0
- package/dist/templates/print/holidays-hanukkah-activity-sheet.js +94 -0
- package/dist/templates/print/holidays-hanukkah-party-invitation.js +94 -0
- package/dist/templates/print/holidays-lunar-new-year-banquet-menu.js +95 -0
- package/dist/templates/print/holidays-new-years-eve-poster.js +94 -0
- package/dist/templates/print/holidays-thanksgiving-dinner-menu.js +94 -0
- package/dist/templates/print/holidays-thanksgiving-place-cards.js +94 -0
- package/dist/templates/print/holidays-valentines-dinner-menu.js +94 -0
- package/dist/templates/saas/email-decks.js +2 -2
- package/dist/templates/saas/index.js +37 -37
- package/dist/templates/saas/launch-kit.js +2 -2
- package/dist/templates/saas/launch-video.js +2 -2
- package/dist/templates/saas/stores.js +2 -2
- package/dist/templates/saas/style-bento.js +2 -2
- package/dist/templates/saas/style-dark.js +2 -2
- package/dist/templates/saas/style-editorial.js +2 -2
- package/dist/templates/saas/style-gradient.js +2 -2
- package/dist/templates/saas/style-pastel.js +2 -2
- package/dist/templates/saas/style-swiss.js +2 -2
- package/dist/templates/slideshow/index.js +3 -3
- package/dist/templates/social/holidays-diwali-sweet-shop-post.js +96 -0
- package/dist/templates/social/holidays-lunar-new-year-bakery-post.js +96 -0
- package/dist/templates/social/holidays-new-years-eve-shop-hours.js +96 -0
- package/dist/templates/social/holidays-thanksgiving-pie-orders-post.js +96 -0
- package/dist/templates/social/holidays-valentines-florist-post.js +96 -0
- package/dist/templates/themes/black-friday-coupons.js +2 -2
- package/dist/templates/themes/black-friday-neon.js +2 -2
- package/dist/templates/themes/blueprint.js +2 -2
- package/dist/templates/themes/broadsheet.js +2 -2
- package/dist/templates/themes/cyberpunk.js +2 -2
- package/dist/templates/themes/departure-board.js +2 -2
- package/dist/templates/themes/festival-presale-family-a.js +2 -2
- package/dist/templates/themes/festival-presale-family-b.js +2 -2
- package/dist/templates/themes/holidays-shared.js +172 -0
- package/dist/templates/themes/holidays.js +107 -1
- package/dist/templates/themes/index.js +72 -48
- package/dist/templates/themes/lunar-new-year.js +2 -2
- package/dist/templates/themes/noir.js +2 -2
- package/dist/templates/themes/psychedelic.js +2 -2
- package/dist/templates/themes/space-opera.js +2 -2
- package/dist/templates/themes/studio.js +3 -3
- package/dist/templates/themes/tour-tickets.js +2 -2
- package/dist/templates/themes/vaporwave.js +2 -2
- package/package.json +1 -1
- package/src/templates/print/holidays-christmas-church-newsletter.ts +246 -0
- package/src/templates/print/holidays-christmas-eve-invitation.ts +121 -0
- package/src/templates/print/holidays-christmas-gift-tags.ts +117 -0
- package/src/templates/print/holidays-diwali-party-invitation.ts +98 -0
- package/src/templates/print/holidays-easter-activity-sheet.ts +108 -0
- package/src/templates/print/holidays-easter-egg-hunt-flyer.ts +118 -0
- package/src/templates/print/holidays-eid-dinner-invitation.ts +104 -0
- package/src/templates/print/holidays-eid-gift-tags.ts +94 -0
- package/src/templates/print/holidays-halloween-party-invitation.ts +101 -0
- package/src/templates/print/holidays-halloween-treat-labels.ts +86 -0
- package/src/templates/print/holidays-halloween-trunk-or-treat-poster.ts +148 -0
- package/src/templates/print/holidays-hanukkah-activity-sheet.ts +112 -0
- package/src/templates/print/holidays-hanukkah-party-invitation.ts +112 -0
- package/src/templates/print/holidays-lunar-new-year-banquet-menu.ts +110 -0
- package/src/templates/print/holidays-new-years-eve-poster.ts +117 -0
- package/src/templates/print/holidays-thanksgiving-dinner-menu.ts +110 -0
- package/src/templates/print/holidays-thanksgiving-place-cards.ts +80 -0
- package/src/templates/print/holidays-valentines-dinner-menu.ts +95 -0
- package/src/templates/social/holidays-diwali-sweet-shop-post.ts +121 -0
- package/src/templates/social/holidays-lunar-new-year-bakery-post.ts +110 -0
- package/src/templates/social/holidays-new-years-eve-shop-hours.ts +118 -0
- package/src/templates/social/holidays-thanksgiving-pie-orders-post.ts +115 -0
- package/src/templates/social/holidays-valentines-florist-post.ts +102 -0
- package/src/templates/themes/holidays-shared.ts +903 -0
- package/src/templates/themes/holidays.ts +24 -1
- package/types/templates/src/print/holidays-christmas-church-newsletter.d.ts +2 -0
- package/types/templates/src/print/holidays-christmas-eve-invitation.d.ts +2 -0
- package/types/templates/src/print/holidays-christmas-gift-tags.d.ts +2 -0
- package/types/templates/src/print/holidays-diwali-party-invitation.d.ts +2 -0
- package/types/templates/src/print/holidays-easter-activity-sheet.d.ts +2 -0
- package/types/templates/src/print/holidays-easter-egg-hunt-flyer.d.ts +2 -0
- package/types/templates/src/print/holidays-eid-dinner-invitation.d.ts +2 -0
- package/types/templates/src/print/holidays-eid-gift-tags.d.ts +2 -0
- package/types/templates/src/print/holidays-halloween-party-invitation.d.ts +2 -0
- package/types/templates/src/print/holidays-halloween-treat-labels.d.ts +2 -0
- package/types/templates/src/print/holidays-halloween-trunk-or-treat-poster.d.ts +2 -0
- package/types/templates/src/print/holidays-hanukkah-activity-sheet.d.ts +2 -0
- package/types/templates/src/print/holidays-hanukkah-party-invitation.d.ts +2 -0
- package/types/templates/src/print/holidays-lunar-new-year-banquet-menu.d.ts +2 -0
- package/types/templates/src/print/holidays-new-years-eve-poster.d.ts +2 -0
- package/types/templates/src/print/holidays-thanksgiving-dinner-menu.d.ts +2 -0
- package/types/templates/src/print/holidays-thanksgiving-place-cards.d.ts +2 -0
- package/types/templates/src/print/holidays-valentines-dinner-menu.d.ts +2 -0
- package/types/templates/src/social/holidays-diwali-sweet-shop-post.d.ts +2 -0
- package/types/templates/src/social/holidays-lunar-new-year-bakery-post.d.ts +2 -0
- package/types/templates/src/social/holidays-new-years-eve-shop-hours.d.ts +2 -0
- package/types/templates/src/social/holidays-thanksgiving-pie-orders-post.d.ts +2 -0
- package/types/templates/src/social/holidays-valentines-florist-post.d.ts +2 -0
- package/types/templates/src/themes/holidays-shared.d.ts +374 -0
- package/dist/chunks/chunk-OWZLREWX.js +0 -18
- package/dist/chunks/{chunk-IFJTWD4O.js → chunk-2R3MZKA2.js} +3 -3
- package/dist/chunks/{chunk-P67L32AF.js → chunk-3DBNMCGN.js} +3 -3
- package/dist/chunks/{chunk-DZDTVMUO.js → chunk-3VHOXVMF.js} +3 -3
- package/dist/chunks/{chunk-2PQI2R5L.js → chunk-64RMGOTG.js} +0 -0
- package/dist/chunks/{chunk-7BDCMMSD.js → chunk-6Y46SDFE.js} +3 -3
- package/dist/chunks/{chunk-6VCQ4ZEG.js → chunk-AFARXTNQ.js} +3 -3
- package/dist/chunks/{chunk-ITSYENCT.js → chunk-BI3M4RUH.js} +3 -3
- package/dist/chunks/{chunk-25FM5JIR.js → chunk-BP7CHO7K.js} +3 -3
- package/dist/chunks/{chunk-D22534DX.js → chunk-DPTFZDOS.js} +3 -3
- package/dist/chunks/{chunk-JWLR6K62.js → chunk-FNUM5W3W.js} +3 -3
- package/dist/chunks/{chunk-JPH6HOYU.js → chunk-HJQU5POV.js} +3 -3
- package/dist/chunks/{chunk-HQYZ4URA.js → chunk-IJ65QZLL.js} +3 -3
- package/dist/chunks/{chunk-47VVF5TM.js → chunk-INT2OPPY.js} +8 -8
- package/dist/chunks/{chunk-AYVAHMWQ.js → chunk-JPMLUHZX.js} +3 -3
- package/dist/chunks/{chunk-LFYNAAAQ.js → chunk-LMRTRVPC.js} +3 -3
- package/dist/chunks/{chunk-HJIMF4NA.js → chunk-NGMCQZA6.js} +3 -3
- package/dist/chunks/{chunk-B3ASV6KS.js → chunk-PQBYL7AI.js} +3 -3
- package/dist/chunks/{chunk-NHXNUDC5.js → chunk-QD4QORNR.js} +3 -3
- package/dist/chunks/{chunk-P6TPDLAF.js → chunk-S3C6L5KF.js} +3 -3
- package/dist/chunks/{chunk-TIRPXUK2.js → chunk-S7L2D7NH.js} +3 -3
- package/dist/chunks/{chunk-QFGFR5FQ.js → chunk-TYOOL27R.js} +3 -3
- package/dist/chunks/{chunk-32V4D45K.js → chunk-TYW7EXV6.js} +3 -3
- package/dist/chunks/{chunk-3QIDCP4M.js → chunk-VOEAQIQT.js} +3 -3
- package/dist/chunks/{chunk-ASVDOX62.js → chunk-VVUQG4ME.js} +3 -3
- package/dist/chunks/{chunk-ZXZ22FKF.js → chunk-XTWKSMJC.js} +3 -3
- package/dist/chunks/{chunk-6NG5K7WN.js → chunk-YHEMML5Q.js} +3 -3
- package/dist/chunks/{chunk-MVFPEBMY.js → chunk-ZKRSVNY4.js} +3 -3
|
@@ -864,7 +864,7 @@ init_scene_graph();
|
|
|
864
864
|
var licence = external_exports.enum(["commercial", "any"]).optional().describe("commercial (default): only licences that allow commercial use and edits (CC0, public domain, CC BY, CC BY-SA). any: every Creative Commons licence, including NC and ND.");
|
|
865
865
|
var brief2 = (p) => ({ id: p.id, title: p.title, creator: p.credit.creator, licence: licenceLabel(p.credit), width: p.width, height: p.height, source: p.credit.sourceUrl });
|
|
866
866
|
async function placeImportedPicture(ctx, imported, at, what, extra = {}) {
|
|
867
|
-
const client = await import("./client-
|
|
867
|
+
const client = await import("./client-25NJXQWL.js");
|
|
868
868
|
if (at.fillLayerId) {
|
|
869
869
|
const doc2 = ctx.doc();
|
|
870
870
|
const target = nodeOrThrow(doc2, at.fillLayerId);
|
|
@@ -910,7 +910,7 @@ var photoSearch = defineCommand({
|
|
|
910
910
|
}
|
|
911
911
|
},
|
|
912
912
|
run: async (args) => {
|
|
913
|
-
const { searchStockPhotos } = await import("./client-
|
|
913
|
+
const { searchStockPhotos } = await import("./client-25NJXQWL.js");
|
|
914
914
|
const page = await searchStockPhotos(args.query, args.page ?? 1, { licence: args.licence });
|
|
915
915
|
return {
|
|
916
916
|
summary: `${page.results.length} photo${page.results.length === 1 ? "" : "s"} for \u201C${page.query}\u201D (page ${page.page} of ${page.pageCount || 1})`,
|
|
@@ -944,7 +944,7 @@ var photoInsert = defineCommand({
|
|
|
944
944
|
run: async (args, ctx) => {
|
|
945
945
|
if (!args.id && !args.query) throw new ToolError("Pass an id from search_photos, or a query.");
|
|
946
946
|
if (args.id && !isPhotoId(args.id)) throw new ToolError(`"${args.id}" is not a photo id from search_photos.`);
|
|
947
|
-
const client = await import("./client-
|
|
947
|
+
const client = await import("./client-25NJXQWL.js");
|
|
948
948
|
let photo;
|
|
949
949
|
if (args.id) photo = await client.stockPhotoInfo(args.id);
|
|
950
950
|
else {
|
|
@@ -982,7 +982,7 @@ var mediaList = defineCommand({
|
|
|
982
982
|
}
|
|
983
983
|
},
|
|
984
984
|
run: async (args) => {
|
|
985
|
-
const { listLibraryMedia } = await import("./client-
|
|
985
|
+
const { listLibraryMedia } = await import("./client-LWBTUXQK.js");
|
|
986
986
|
const page = await listLibraryMedia(args);
|
|
987
987
|
return { summary: `${page.items.length} media item${page.items.length === 1 ? "" : "s"}${page.nextCursor ? " (more)" : ""}`, data: { workspaceId: page.workspaceId, items: page.items.map(brief3), nextCursor: page.nextCursor } };
|
|
988
988
|
}
|
|
@@ -1013,7 +1013,7 @@ var mediaInsert = defineCommand({
|
|
|
1013
1013
|
run: async (args, ctx) => {
|
|
1014
1014
|
const contentType = args.contentType ?? "image/*";
|
|
1015
1015
|
if (!contentType.startsWith("image/")) throw new ToolError("insert_media places pictures; this item is not one.");
|
|
1016
|
-
const { importLibraryPicture } = await import("./client-
|
|
1016
|
+
const { importLibraryPicture } = await import("./client-LWBTUXQK.js");
|
|
1017
1017
|
const item = { hash: args.hash, fileKey: args.fileKey, fileName: args.name ?? "Media", contentType, size: 0, createdAt: "", fileCount: 1, source: null };
|
|
1018
1018
|
const imported = await importLibraryPicture(item);
|
|
1019
1019
|
return placeImportedPicture(ctx, imported, args, `\u201C${imported.name}\u201D`, { hash: imported.hash });
|
|
@@ -1034,7 +1034,7 @@ var mediaDownload = defineCommand({
|
|
|
1034
1034
|
// The Library's right-click menu: saves the item's file to the computer.
|
|
1035
1035
|
expose: { ui: { label: "Download", palette: false } },
|
|
1036
1036
|
run: async (args) => {
|
|
1037
|
-
const { libraryBlob, libraryFileName } = await import("./client-
|
|
1037
|
+
const { libraryBlob, libraryFileName } = await import("./client-LWBTUXQK.js");
|
|
1038
1038
|
const { downloadBlob } = await import("./download-P52YK7FC.js");
|
|
1039
1039
|
const item = { hash: args.hash, fileKey: args.fileKey, fileName: args.name ?? "media", contentType: args.contentType ?? "", size: 0, createdAt: "", fileCount: 1, source: null };
|
|
1040
1040
|
const blob = await libraryBlob(item);
|
|
@@ -1065,7 +1065,7 @@ var mediaDelete = defineCommand({
|
|
|
1065
1065
|
}
|
|
1066
1066
|
},
|
|
1067
1067
|
run: async (args) => {
|
|
1068
|
-
const { deleteLibraryMedia } = await import("./client-
|
|
1068
|
+
const { deleteLibraryMedia } = await import("./client-LWBTUXQK.js");
|
|
1069
1069
|
const out = await deleteLibraryMedia(args.workspace, args.hash);
|
|
1070
1070
|
return { summary: `Deleted it from the library (it was in ${out.files} file${out.files === 1 ? "" : "s"})`, data: out };
|
|
1071
1071
|
}
|
|
@@ -1079,13 +1079,13 @@ async function signedIn() {
|
|
|
1079
1079
|
}
|
|
1080
1080
|
async function publishedFile() {
|
|
1081
1081
|
await signedIn();
|
|
1082
|
-
const { openFileKey } = await import("./publish-site-
|
|
1082
|
+
const { openFileKey } = await import("./publish-site-R46ZILSS.js");
|
|
1083
1083
|
const key = openFileKey();
|
|
1084
1084
|
if (!key) throw new CommandError("This file is not saved to the cloud yet, so it has no site. Publish it first.", "failed");
|
|
1085
1085
|
return key;
|
|
1086
1086
|
}
|
|
1087
1087
|
async function formsWithoutDatabase(key) {
|
|
1088
|
-
const [{ useEditorStore }, { usesForms, formsGoNowhere }, { siteBackend }] = await Promise.all([import("./editor-store-
|
|
1088
|
+
const [{ useEditorStore }, { usesForms, formsGoNowhere }, { siteBackend }] = await Promise.all([import("./editor-store-C4VWC23J.js"), import("./backend-HMDYWKKL.js"), import("./integrations-LPC35FKX.js")]);
|
|
1089
1089
|
const doc2 = useEditorStore.getState().document;
|
|
1090
1090
|
if (!usesForms(doc2)) return false;
|
|
1091
1091
|
return formsGoNowhere(doc2, await siteBackend(key).catch(() => void 0));
|
|
@@ -1121,7 +1121,7 @@ var publishSite = defineCommand({
|
|
|
1121
1121
|
const { cleanSlug } = await import("./rules-YTGQFWTU.js");
|
|
1122
1122
|
const address = p.address === void 0 ? void 0 : cleanSlug(p.address);
|
|
1123
1123
|
if (address === null) throw new CommandError("That cannot be a site address: use 3 to 40 letters, digits and dashes.", "invalid_params");
|
|
1124
|
-
const { publishOpenFile, NoScreens } = await import("./publish-site-
|
|
1124
|
+
const { publishOpenFile, NoScreens } = await import("./publish-site-R46ZILSS.js");
|
|
1125
1125
|
try {
|
|
1126
1126
|
const done = await publishOpenFile(address);
|
|
1127
1127
|
ctx.notice(`Published version ${done.version}: ${done.url}`);
|
|
@@ -1176,7 +1176,7 @@ var publishListSites = defineCommand({
|
|
|
1176
1176
|
},
|
|
1177
1177
|
run: async (p) => {
|
|
1178
1178
|
await signedIn();
|
|
1179
|
-
const [{ workspaceSites }, { activeTeamWorkspaceId, useHyperyTeam }] = await Promise.all([import("./sites-W7OTY7KH.js"), import("./team-
|
|
1179
|
+
const [{ workspaceSites }, { activeTeamWorkspaceId, useHyperyTeam }] = await Promise.all([import("./sites-W7OTY7KH.js"), import("./team-GGW3O32G.js")]);
|
|
1180
1180
|
const workspaceId = p.workspaceId ?? activeTeamWorkspaceId() ?? useHyperyTeam.getState().personalWorkspaceId;
|
|
1181
1181
|
if (!workspaceId) throw new CommandError("Your workspaces have not loaded yet. Try again in a moment.", "failed");
|
|
1182
1182
|
const out = await workspaceSites(workspaceId);
|
|
@@ -1225,12 +1225,12 @@ var publishStatus = defineCommand({
|
|
|
1225
1225
|
},
|
|
1226
1226
|
run: async () => {
|
|
1227
1227
|
await signedIn();
|
|
1228
|
-
const [{ openFileKey }, { siteStatus }] = await Promise.all([import("./publish-site-
|
|
1228
|
+
const [{ openFileKey }, { siteStatus }] = await Promise.all([import("./publish-site-R46ZILSS.js"), import("./sites-W7OTY7KH.js")]);
|
|
1229
1229
|
const key = openFileKey();
|
|
1230
1230
|
const status = await siteStatus(key);
|
|
1231
1231
|
const site = status.site;
|
|
1232
|
-
const backend = key ? await (await import("./integrations-
|
|
1233
|
-
const destinations = key ? await (await import("./integrations-
|
|
1232
|
+
const backend = key ? await (await import("./integrations-LPC35FKX.js")).siteBackend(key).catch(() => null) : null;
|
|
1233
|
+
const destinations = key ? await (await import("./integrations-LPC35FKX.js")).listDestinations(key).catch(() => []) : [];
|
|
1234
1234
|
return {
|
|
1235
1235
|
summary: !status.configured ? "This server does not publish websites" : !site ? "Not published yet" : site.currentVersion === null ? `Offline (${site.versions.length} versions kept) \u2014 ${site.url}` : `Version ${site.currentVersion} is online at ${site.url}`,
|
|
1236
1236
|
data: { ...statusData(status), database: backend?.database ? { provider: backend.database.connection.provider, account: backend.database.connection.account, target: backend.database.target.map((t) => t.name), visitorsCanSignIn: backend.database.signIn } : null, destinations: destinations.map((d) => ({ destinationId: d.id, provider: d.connection.provider, account: d.connection.account, kind: d.capability, target: d.target.map((t) => t.name), lastSent: d.lastDeploy })) }
|
|
@@ -1261,7 +1261,7 @@ var publishStore = defineCommand({
|
|
|
1261
1261
|
},
|
|
1262
1262
|
run: async (p, ctx) => {
|
|
1263
1263
|
await signedIn();
|
|
1264
|
-
const { deployOpenStore } = await import("./publish-store-
|
|
1264
|
+
const { deployOpenStore } = await import("./publish-store-MIPHEDLV.js");
|
|
1265
1265
|
const done = await deployOpenStore(ctx.doc(), ctx.pageId(), { destinationId: p.destinationId }).catch((e) => {
|
|
1266
1266
|
throw new CommandError(e instanceof Error ? e.message : String(e), "failed");
|
|
1267
1267
|
});
|
|
@@ -1290,7 +1290,7 @@ var integrationList = defineCommand({
|
|
|
1290
1290
|
}
|
|
1291
1291
|
},
|
|
1292
1292
|
run: async ({ capability }) => {
|
|
1293
|
-
const [{ cloudUser }, { integrationsWorkspaceId, listWorkspaceIntegrations }] = await Promise.all([import("./session-FZCE76T4.js"), import("./integrations-
|
|
1293
|
+
const [{ cloudUser }, { integrationsWorkspaceId, listWorkspaceIntegrations }] = await Promise.all([import("./session-FZCE76T4.js"), import("./integrations-LPC35FKX.js")]);
|
|
1294
1294
|
if (!cloudUser()) throw new CommandError("You are not signed in: integrations belong to your account's workspace.", "denied");
|
|
1295
1295
|
const workspaceId = integrationsWorkspaceId();
|
|
1296
1296
|
if (!workspaceId) throw new CommandError("Your workspaces have not loaded yet. Try again in a moment.", "failed");
|
|
@@ -1331,7 +1331,7 @@ var integrationOpen = defineCommand({
|
|
|
1331
1331
|
}
|
|
1332
1332
|
});
|
|
1333
1333
|
async function openFile() {
|
|
1334
|
-
const [{ cloudUser }, { openFileKey }] = await Promise.all([import("./session-FZCE76T4.js"), import("./publish-site-
|
|
1334
|
+
const [{ cloudUser }, { openFileKey }] = await Promise.all([import("./session-FZCE76T4.js"), import("./publish-site-R46ZILSS.js")]);
|
|
1335
1335
|
if (!cloudUser()) throw new CommandError("You are not signed in.", "denied");
|
|
1336
1336
|
const key = openFileKey();
|
|
1337
1337
|
if (!key) throw new CommandError("This file is not saved to the cloud yet. Publish it first (publish_site).", "failed");
|
|
@@ -1357,7 +1357,7 @@ var integrationListResources = defineCommand({
|
|
|
1357
1357
|
}
|
|
1358
1358
|
},
|
|
1359
1359
|
run: async ({ connectionId, capability, path }) => {
|
|
1360
|
-
const { listResources } = await import("./integrations-
|
|
1360
|
+
const { listResources } = await import("./integrations-LPC35FKX.js");
|
|
1361
1361
|
const list = await listResources(connectionId, capability, asPath2(path));
|
|
1362
1362
|
return {
|
|
1363
1363
|
summary: list.level ? `${list.resources.length} at the ${list.level.label.toLowerCase()} level${list.canCreate ? " (a new one can be made)" : ""}` : "Nothing further to pick: the path is complete",
|
|
@@ -1392,7 +1392,7 @@ var integrationAddDestination = defineCommand({
|
|
|
1392
1392
|
},
|
|
1393
1393
|
run: async (p, ctx) => {
|
|
1394
1394
|
const key = await openFile();
|
|
1395
|
-
const { addDestination, createDestination, createResource } = await import("./integrations-
|
|
1395
|
+
const { addDestination, createDestination, createResource } = await import("./integrations-LPC35FKX.js");
|
|
1396
1396
|
let made;
|
|
1397
1397
|
if (p.create) made = await createDestination(key, p.capability, void 0, p.connectionId);
|
|
1398
1398
|
else {
|
|
@@ -1429,7 +1429,7 @@ var integrationDeploy = defineCommand({
|
|
|
1429
1429
|
},
|
|
1430
1430
|
run: async (p, ctx) => {
|
|
1431
1431
|
const key = await openFile();
|
|
1432
|
-
const { deployDestination, listDestinations } = await import("./integrations-
|
|
1432
|
+
const { deployDestination, listDestinations } = await import("./integrations-LPC35FKX.js");
|
|
1433
1433
|
const all = await listDestinations(key);
|
|
1434
1434
|
const dest = p.destinationId ? all.find((d) => d.id === p.destinationId) : all.length === 1 ? all[0] : void 0;
|
|
1435
1435
|
if (!dest) throw new CommandError(all.length ? `Say which destination: ${all.map((d) => `${d.id} (${d.target.map((t) => t.name).join(" / ")})`).join(", ")}.` : "This file has no destination yet. Add one first (add_site_destination).", "invalid_params");
|
|
@@ -1463,7 +1463,7 @@ var integrationAttachDatabase = defineCommand({
|
|
|
1463
1463
|
},
|
|
1464
1464
|
run: async (p, ctx) => {
|
|
1465
1465
|
const key = await openFile();
|
|
1466
|
-
const { attachDatabase, createDatabase, createResource, listResources } = await import("./integrations-
|
|
1466
|
+
const { attachDatabase, createDatabase, createResource, listResources } = await import("./integrations-LPC35FKX.js");
|
|
1467
1467
|
if (p.create) return attached(await createDatabase(key, void 0, p.connectionId), ctx);
|
|
1468
1468
|
if (!p.connectionId || !p.target) throw new CommandError("Say connectionId and target, or create: true.", "invalid_params");
|
|
1469
1469
|
let target = asPath2(p.target);
|
|
@@ -1502,7 +1502,7 @@ var integrationSubmissions = defineCommand({
|
|
|
1502
1502
|
},
|
|
1503
1503
|
run: async ({ form, limit }) => {
|
|
1504
1504
|
const key = await openFile();
|
|
1505
|
-
const { listSubmissions } = await import("./integrations-
|
|
1505
|
+
const { listSubmissions } = await import("./integrations-LPC35FKX.js");
|
|
1506
1506
|
const rows = await listSubmissions(key, { form, limit: limit ?? 20 });
|
|
1507
1507
|
return { summary: rows.length ? `${rows.length} ${rows.length === 1 ? "submission" : "submissions"}, the newest ${new Date(rows[0].createdAt).toISOString()}` : "Nothing has been sent yet", data: { submissions: rows } };
|
|
1508
1508
|
}
|
|
@@ -1527,7 +1527,7 @@ var integrationSetSignIn = defineCommand({
|
|
|
1527
1527
|
},
|
|
1528
1528
|
run: async ({ on }, ctx) => {
|
|
1529
1529
|
const key = await openFile();
|
|
1530
|
-
const { setSignIn } = await import("./integrations-
|
|
1530
|
+
const { setSignIn } = await import("./integrations-LPC35FKX.js");
|
|
1531
1531
|
const done = await setSignIn(key, on);
|
|
1532
1532
|
ctx.notice(on ? "Visitors can sign in." : "Sign-in is off.");
|
|
1533
1533
|
return { summary: on ? "Visitors can now create accounts and sign in on the published site" : "Sign-in is off for the published site", data: { signIn: !!done.database?.signIn } };
|
|
@@ -1539,7 +1539,7 @@ var integrationConfirmCommands = [integrationAddDestination, integrationDeploy,
|
|
|
1539
1539
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
1540
1540
|
async function cloudFile() {
|
|
1541
1541
|
const [{ syncStatus }, { cloudUser }] = await Promise.all([
|
|
1542
|
-
import("./sync-
|
|
1542
|
+
import("./sync-OFINS45Q.js"),
|
|
1543
1543
|
import("./session-FZCE76T4.js")
|
|
1544
1544
|
]);
|
|
1545
1545
|
const link2 = syncStatus().link;
|
|
@@ -1691,11 +1691,11 @@ var fileDuplicate = defineCommand({
|
|
|
1691
1691
|
},
|
|
1692
1692
|
run: async (_p, ctx) => {
|
|
1693
1693
|
const [{ syncStatus }, { cloudApi }, { isDesktopTabs }, { createFileInTab }, { openNewCloudFile }, { v4: uuid }] = await Promise.all([
|
|
1694
|
-
import("./sync-
|
|
1694
|
+
import("./sync-OFINS45Q.js"),
|
|
1695
1695
|
import("./api-GWG3RH2R.js"),
|
|
1696
1696
|
import("./tab-mode-H7FXWBQN.js"),
|
|
1697
|
-
import("./tabs-
|
|
1698
|
-
import("./sync-
|
|
1697
|
+
import("./tabs-PEH6VX3X.js"),
|
|
1698
|
+
import("./sync-OFINS45Q.js"),
|
|
1699
1699
|
import("./dist-node-PFCYBZF7.js")
|
|
1700
1700
|
]);
|
|
1701
1701
|
const doc2 = ctx.doc();
|
|
@@ -4311,7 +4311,7 @@ var viewCopyLink = defineCommand({
|
|
|
4311
4311
|
},
|
|
4312
4312
|
run: async (args, ctx) => {
|
|
4313
4313
|
const [{ syncStatus }, { fileUrl }, { withDeepLink }] = await Promise.all([
|
|
4314
|
-
import("./sync-
|
|
4314
|
+
import("./sync-OFINS45Q.js"),
|
|
4315
4315
|
import("./api-GWG3RH2R.js"),
|
|
4316
4316
|
import("./deep-link-2GZ3XM5I.js")
|
|
4317
4317
|
]);
|
|
@@ -4636,7 +4636,7 @@ var pageGo = defineCommand({
|
|
|
4636
4636
|
] }
|
|
4637
4637
|
},
|
|
4638
4638
|
run: async ({ to }) => {
|
|
4639
|
-
const { useEditorStore } = await import("./editor-store-
|
|
4639
|
+
const { useEditorStore } = await import("./editor-store-C4VWC23J.js");
|
|
4640
4640
|
useEditorStore.getState().goToPrintPage(to);
|
|
4641
4641
|
return { summary: typeof to === "number" ? `Page ${to + 1}` : `${to} page` };
|
|
4642
4642
|
}
|
|
@@ -4670,7 +4670,7 @@ var pageSetup = defineCommand({
|
|
|
4670
4670
|
}
|
|
4671
4671
|
},
|
|
4672
4672
|
run: async (args) => {
|
|
4673
|
-
const { useEditorStore } = await import("./editor-store-
|
|
4673
|
+
const { useEditorStore } = await import("./editor-store-C4VWC23J.js");
|
|
4674
4674
|
useEditorStore.getState().applyPageSetup(args);
|
|
4675
4675
|
return { summary: `Page setup updated${args.kind ? ` (${args.kind.toLowerCase()})` : ""}` };
|
|
4676
4676
|
}
|
|
@@ -5429,7 +5429,7 @@ async function docAtTime(doc2, ids, time2) {
|
|
|
5429
5429
|
let frameId;
|
|
5430
5430
|
if (time2 === void 0) {
|
|
5431
5431
|
try {
|
|
5432
|
-
const { useEditorStore } = await import("./editor-store-
|
|
5432
|
+
const { useEditorStore } = await import("./editor-store-C4VWC23J.js");
|
|
5433
5433
|
const st = useEditorStore.getState();
|
|
5434
5434
|
const target = st.transport?.target;
|
|
5435
5435
|
if (st.mode !== "ANIMATE" || target?.kind !== "frame") return doc2;
|
|
@@ -5807,7 +5807,7 @@ async function runAnimationExport(format, args, ctx) {
|
|
|
5807
5807
|
const filename = exportFileName(args.filename || targetName(doc2, target), format);
|
|
5808
5808
|
const [{ exportAnimation }, { memoryDestination }] = await Promise.all([import("./video-7B5R5APU.js"), import("./destination-HXYQZTLQ.js")]);
|
|
5809
5809
|
if (format === "lottie" || format === "dotlottie") return runLottieExport(renderer, doc2, spec, filename, ctx, memoryDestination, args.stateMachine);
|
|
5810
|
-
const planWatermark = format !== "png" && await (await import("./export-watermark-
|
|
5810
|
+
const planWatermark = format !== "png" && await (await import("./export-watermark-OKGRZNOU.js")).exportWatermark();
|
|
5811
5811
|
if (format !== "png") spec = { ...spec, watermark: planWatermark || args.watermark !== false };
|
|
5812
5812
|
const dest = ctx.destination ? await ctx.destination(filename, FORMAT_MIME[format]) : memoryDestination(filename, FORMAT_MIME[format]);
|
|
5813
5813
|
let stats;
|
|
@@ -5893,7 +5893,7 @@ var exportLottie = animationCommand((args) => args.container === "lottie" ? "dot
|
|
|
5893
5893
|
});
|
|
5894
5894
|
async function exportSite(doc2, pageId2, packaging, styling = "css", siteUrl) {
|
|
5895
5895
|
const [{ completeSite, nextFilesOf, shareImageFiles, staticFilesOf, NoSiteRuntime, bytesOf }, { fileBase }, { zipFiles }, { downloadBlob }] = await Promise.all([
|
|
5896
|
-
import("./project-
|
|
5896
|
+
import("./project-NMPK4R5M.js"),
|
|
5897
5897
|
import("./web-QXDK5GSS.js"),
|
|
5898
5898
|
import("./zip-export-QEIUQPMP.js"),
|
|
5899
5899
|
import("./download-P52YK7FC.js")
|
|
@@ -5982,7 +5982,7 @@ var exportStorefront = defineCommand({
|
|
|
5982
5982
|
const [{ storefrontInputs }, { STOREFRONT_TARGETS }, { bytesOf }, { fileBase, flatten }, { zipFiles }, { downloadBlob }] = await Promise.all([
|
|
5983
5983
|
import("./storefront-prepare-N6SPU7SQ.js"),
|
|
5984
5984
|
import("./storefront-QILVHEM6.js"),
|
|
5985
|
-
import("./project-
|
|
5985
|
+
import("./project-NMPK4R5M.js"),
|
|
5986
5986
|
import("./web-QXDK5GSS.js"),
|
|
5987
5987
|
import("./zip-export-QEIUQPMP.js"),
|
|
5988
5988
|
import("./download-P52YK7FC.js")
|
|
@@ -6377,7 +6377,7 @@ var visionRegenerateImage = defineCommand({
|
|
|
6377
6377
|
const id = args.id ?? ctx.selection()[0];
|
|
6378
6378
|
if (!id) throw new ToolError("Select a generated image to regenerate.");
|
|
6379
6379
|
nodeOrThrow(ctx.doc(), id);
|
|
6380
|
-
const { regenerateImage } = await import("./client-actions-
|
|
6380
|
+
const { regenerateImage } = await import("./client-actions-3HIRRSOL.js");
|
|
6381
6381
|
regenerateImage(id, args.count);
|
|
6382
6382
|
return { summary: args.count > 1 ? `Regenerating ${args.count} variants` : "Regenerating the image", data: { id, count: args.count } };
|
|
6383
6383
|
}
|
|
@@ -9343,7 +9343,7 @@ var designWriteScript = defineCommand({
|
|
|
9343
9343
|
if (args.frame && !target) throw new ToolError(`"${args.frame}" is not part of a design built from a script. Leave out \`frame\` to make a new one.`);
|
|
9344
9344
|
const prev = target?.designScript;
|
|
9345
9345
|
if (target && prev && !args.discardEdits) {
|
|
9346
|
-
const { hashRoots } = await import("./build-
|
|
9346
|
+
const { hashRoots } = await import("./build-W5O2ZVN7.js");
|
|
9347
9347
|
if (hashRoots(doc2, prev.roots) !== prev.builtHash) {
|
|
9348
9348
|
throw new ToolError(`"${target.name}" was edited by hand since its script built it, and a rebuild would lose those edits. Either make the change with editing tools, fold the edits into the script, or pass discardEdits: true.`);
|
|
9349
9349
|
}
|
|
@@ -9351,7 +9351,7 @@ var designWriteScript = defineCommand({
|
|
|
9351
9351
|
const size2 = args.size ?? prev?.size;
|
|
9352
9352
|
if (!size2) throw new ToolError('Give the size to build at: a preset id like "ig-story" or "web-desktop", or { width, height }.');
|
|
9353
9353
|
const name2 = args.name ?? target?.name ?? "Design";
|
|
9354
|
-
const { buildDesign, placeDesign, templateOfBuild } = await import("./build-
|
|
9354
|
+
const { buildDesign, placeDesign, templateOfBuild } = await import("./build-W5O2ZVN7.js");
|
|
9355
9355
|
const built = await buildDesign(args.script, size2, name2, designRecorder());
|
|
9356
9356
|
if (built.error) throw new ToolError(scriptError(args.script, built.error));
|
|
9357
9357
|
if (!built.doc) throw new ToolError("The script built nothing.");
|
|
@@ -9423,7 +9423,7 @@ var designGetScript = defineCommand({
|
|
|
9423
9423
|
if (!start2) throw new ToolError("Select a design, or name its frame.");
|
|
9424
9424
|
const target = designFrameOf(doc2, start2);
|
|
9425
9425
|
if (!target?.designScript) throw new ToolError(`"${doc2.nodes[start2]?.name ?? start2}" was not built from a script.`);
|
|
9426
|
-
const { hashRoots } = await import("./build-
|
|
9426
|
+
const { hashRoots } = await import("./build-W5O2ZVN7.js");
|
|
9427
9427
|
const s = target.designScript;
|
|
9428
9428
|
const editedByHand = hashRoots(doc2, s.roots) !== s.builtHash;
|
|
9429
9429
|
return {
|
|
@@ -9536,7 +9536,7 @@ var scriptRun = defineCommand({
|
|
|
9536
9536
|
// A script is not the turn the user is watching: confirm-tier tools are refused inside it (dispatch, `nested`).
|
|
9537
9537
|
actor: { ...ctx.actor, nested: true, label: "Script" },
|
|
9538
9538
|
// A look_at inside the script sees the document as the script has left it so far, not as it was before.
|
|
9539
|
-
use: ((name2) => name2 === "render" && ctx.can("render") ? (async (ids, options) => (await import("./agent-
|
|
9539
|
+
use: ((name2) => name2 === "render" && ctx.can("render") ? (async (ids, options) => (await import("./agent-NTEAEZBN.js")).renderDocument(staged, ids, options)) : ctx.use(name2))
|
|
9540
9540
|
};
|
|
9541
9541
|
let calls = 0;
|
|
9542
9542
|
const images = [];
|
|
@@ -10356,7 +10356,7 @@ var docImportFile = defineCommand({
|
|
|
10356
10356
|
const file = new File([body], args.name);
|
|
10357
10357
|
if (file.size > MAX_BYTES) throw new ToolError(`"${args.name}" is larger than ${MAX_BYTES / 1024 / 1024} MB.`);
|
|
10358
10358
|
const [{ buildImportedDocument }, { mergeImportedDocument }] = await Promise.all([
|
|
10359
|
-
import("./plugin-import-
|
|
10359
|
+
import("./plugin-import-UC5BHZFE.js"),
|
|
10360
10360
|
import("./import-merge-KVTO4W42.js")
|
|
10361
10361
|
]);
|
|
10362
10362
|
const built = await buildImportedDocument(file);
|
|
@@ -0,0 +1,121 @@
|
|
|
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
|
+
archPath,
|
|
9
|
+
crescent,
|
|
10
|
+
disc,
|
|
11
|
+
draw,
|
|
12
|
+
eightStar,
|
|
13
|
+
fanous,
|
|
14
|
+
polyP,
|
|
15
|
+
printVariant,
|
|
16
|
+
starPath,
|
|
17
|
+
tilePattern
|
|
18
|
+
} from "./chunk-AISWLDDO.js";
|
|
19
|
+
import {
|
|
20
|
+
SERIF
|
|
21
|
+
} from "./chunk-X23ZWFW2.js";
|
|
22
|
+
import {
|
|
23
|
+
defineTemplate
|
|
24
|
+
} from "./chunk-A44WEVKR.js";
|
|
25
|
+
import {
|
|
26
|
+
Kit,
|
|
27
|
+
preset
|
|
28
|
+
} from "./chunk-T3SGRYUX.js";
|
|
29
|
+
import {
|
|
30
|
+
init_define_POPCRAFT_COMPONENT_IDS
|
|
31
|
+
} from "./chunk-6VMOKHMF.js";
|
|
32
|
+
|
|
33
|
+
// templates/src/print/holidays-eid-gift-tags.ts
|
|
34
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
35
|
+
var NAME = "Eid gift tags sheet";
|
|
36
|
+
var TW = 158;
|
|
37
|
+
var TH = 256;
|
|
38
|
+
var PAD = { top: 60, right: 48, bottom: 44, left: 48 };
|
|
39
|
+
var DESIGNS = ["Lantern", "Crescent", "Star", "Arch"];
|
|
40
|
+
var LOOK = {
|
|
41
|
+
Lantern: { tag: "mint", ink: "tealInk", art: "gold", art2: "tealInk" },
|
|
42
|
+
Crescent: { tag: "teal", ink: "sand", art: "gold", art2: "sand" },
|
|
43
|
+
Star: { tag: "lilac", ink: "plumInk", art: "gold", art2: "plumInk" },
|
|
44
|
+
Arch: { tag: "sand", ink: "tealInk", art: "teal", art2: "gold" }
|
|
45
|
+
};
|
|
46
|
+
var tagShape = () => polyP([{ x: 28, y: 0 }, { x: TW - 28, y: 0 }, { x: TW, y: 28 }, { x: TW, y: TH }, { x: 0, y: TH }, { x: 0, y: 28 }]);
|
|
47
|
+
function picture(d, cx, cy) {
|
|
48
|
+
const L = LOOK[d];
|
|
49
|
+
if (d === "Lantern") {
|
|
50
|
+
const f = fanous(cx, cy - 46, 92);
|
|
51
|
+
return [{ name: "Lantern glass", paths: f.glass, color: "amber" }, { name: "Lantern frame", paths: f.frame, color: L.art2, o: { strokeWidth: 1.2 } }, { name: "Lantern", paths: f.metal, color: L.art }];
|
|
52
|
+
}
|
|
53
|
+
if (d === "Crescent") return [{ name: "Crescent", paths: [crescent(cx - 4, cy, 34, 0.5, 1, -0.5)], color: L.art }, { name: "Star", paths: [starPath(cx + 22, cy - 16, 9, 3.6)], color: L.art }, { name: "Little stars", paths: [starPath(cx - 30, cy + 30, 4, 1.6), starPath(cx + 30, cy + 26, 3, 1.2)], color: L.art2 }];
|
|
54
|
+
if (d === "Star") return [{ name: "Big star", paths: [eightStar(cx, cy, 36)], color: L.art }, { name: "Star heart", paths: [eightStar(cx, cy, 20)], color: L.tag }, { name: "Star dot", paths: [disc(cx, cy, 8)], color: L.art2 }];
|
|
55
|
+
return [{ name: "Window", paths: [archPath(cx, 64, cy + 40, cy - 6, cy - 50)], color: L.art }, { name: "Window light", paths: [archPath(cx, 44, cy + 32, cy, cy - 34)], color: "amber" }, { name: "Sill", paths: [polyP([{ x: cx - 40, y: cy + 40 }, { x: cx + 40, y: cy + 40 }, { x: cx + 34, y: cy + 48 }, { x: cx - 34, y: cy + 48 }])], color: L.art2 }];
|
|
56
|
+
}
|
|
57
|
+
function border(w, h) {
|
|
58
|
+
const B = 12, band = 30;
|
|
59
|
+
const place = (x0, y0, x1, y1) => {
|
|
60
|
+
const t = tilePattern(x1 - x0, y1 - y0, 30);
|
|
61
|
+
return t.stars.map((p) => ({ ...p, points: p.points.map((q) => ({ ...q, x: q.x + x0, y: q.y + y0 })) }));
|
|
62
|
+
};
|
|
63
|
+
return [
|
|
64
|
+
{ name: "Border", paths: place(-B, -B, w + B, band), color: "border" },
|
|
65
|
+
{ name: "Border", paths: place(-B, h - band, w + B, h + B), color: "border" }
|
|
66
|
+
];
|
|
67
|
+
}
|
|
68
|
+
var holidays_eid_gift_tags_default = defineTemplate({
|
|
69
|
+
id: "print-holidays-eid-gift-tags",
|
|
70
|
+
meta: {
|
|
71
|
+
name: NAME,
|
|
72
|
+
description: "Twelve Eid gift tags for Eidi envelopes and presents on one sheet: tall tags with clipped corners and a ribbon hole in mint, lilac, sand and deep teal, each with a lantern, a crescent and star, an eight-pointed star or an arched window, a greeting and \u201CTo\u201D and \u201CFrom\u201D lines. One component set, so a colour change reaches every tag. US Letter with bleed, and an A4 copy",
|
|
73
|
+
category: "sticker",
|
|
74
|
+
tags: ["eid", "eid al-fitr", "eid al-adha", "eid mubarak", "eidi", "gift tags", "labels", "presents", "lantern", "crescent", "islamic geometric", "printable", "diy", "print"],
|
|
75
|
+
platforms: ["print"],
|
|
76
|
+
formats: ["card"],
|
|
77
|
+
useCases: ["greeting"],
|
|
78
|
+
created: "2026-10-10",
|
|
79
|
+
updated: "2026-10-10"
|
|
80
|
+
},
|
|
81
|
+
stableNumbers: true,
|
|
82
|
+
build() {
|
|
83
|
+
const k = new Kit(NAME, preset("us-letter"));
|
|
84
|
+
k.quantizeGeometry = true;
|
|
85
|
+
k.brand(
|
|
86
|
+
{ paper: "#FBF7EF", text: "#123F45", onPaper: "#5A6E6F", primary: "#1C5A63", onPrimary: "#FFFFFF" },
|
|
87
|
+
{ name: "The Siddiqui family" }
|
|
88
|
+
);
|
|
89
|
+
k.palette({ mint: "#CFEAD9", teal: "#1C5A63", lilac: "#DCCDEE", sand: "#F1E2C4", gold: "#D9A93E", amber: "#F2B54A", tealInk: "#123F45", plumInk: "#40285E", border: "#E3D4AE" });
|
|
90
|
+
k.textStyle("Head 30", { ...SERIF, size: 30, fontWeight: 600, letterSpacing: -0.4, lineHeight: 34 });
|
|
91
|
+
k.textStyle("Note 11", { size: 11, fontWeight: 500, lineHeight: 16 });
|
|
92
|
+
k.textStyle("Greeting 17", { ...SERIF, size: 17, fontWeight: 700, lineHeight: 21 });
|
|
93
|
+
k.textStyle("Tag word 8.5", { size: 8.5, fontWeight: 700, letterSpacing: 1.8, lineHeight: 15 });
|
|
94
|
+
k.variantSet("Eid tag", "Design", DESIGNS, { width: TW, height: TH, padding: { top: 150, right: 14, bottom: 16, left: 14 }, gap: 4, align: "CENTER", props: { Greeting: "Eid Mubarak", To: "TO: ____________", From: "FROM: __________" } }, (d, id) => {
|
|
95
|
+
const L = LOOK[d];
|
|
96
|
+
k.vector(id, TW, TH, [tagShape()], L.tag, { name: "Tag", absolute: { x: 0, y: 0 } });
|
|
97
|
+
k.vector(id, 14, 14, [disc(7, 7, 7)], "paper", { name: "Ribbon hole", absolute: { x: TW / 2 - 7, y: 14 } });
|
|
98
|
+
k.vector(id, 20, 20, [disc(10, 10, 10)], [], { name: "Hole ring", absolute: { x: TW / 2 - 10, y: 11 }, stroke: { color: L.art, width: 1.4 } });
|
|
99
|
+
draw(k, id, picture(d, TW / 2, 92));
|
|
100
|
+
k.propText(id, "Greeting", { style: "Greeting 17", color: L.ink, align: "CENTER", width: "FILL", name: "Greeting" });
|
|
101
|
+
k.propText(id, "To", { style: "Tag word 8.5", color: L.ink, align: "CENTER", width: "FILL", name: "To" });
|
|
102
|
+
k.propText(id, "From", { style: "Tag word 8.5", color: L.ink, align: "CENTER", width: "FILL", name: "From" });
|
|
103
|
+
});
|
|
104
|
+
const sheet = k.sheet;
|
|
105
|
+
const { width: W, height: H } = k.node(sheet);
|
|
106
|
+
k.flowSheet(sheet, 18, PAD, "paper", "MIN", "CENTER");
|
|
107
|
+
draw(k, sheet, border(W, H));
|
|
108
|
+
k.text(sheet, "Eid gift tags", { style: "Head 30", color: "text", align: "CENTER", width: "FILL", name: "Title" });
|
|
109
|
+
const grid = k.stack(sheet, { direction: "HORIZONTAL", wrap: true, gap: 18, width: "FILL", justify: "CENTER", name: "Tags" });
|
|
110
|
+
k.patch(grid, { counterAxisSpacing: 18 });
|
|
111
|
+
const greet = ["Eid Mubarak", "Eid Saeed", "Your Eidi!", "With love", "Eid Mubarak", "For you", "Happy Eid", "Eid Mubarak", "Eid Saeed", "With love", "Your Eidi!", "Happy Eid"];
|
|
112
|
+
greet.forEach((g, i) => k.instance(grid, `Eid tag/${DESIGNS[(i + Math.floor(i / 4)) % 4]}`, { Greeting: g }, { name: "Eid tag" }));
|
|
113
|
+
k.text(sheet, "Print on card, cut round each tag, punch the hole and thread a ribbon. From {{brand.name}}", { style: "Note 11", color: "text", align: "CENTER", width: "FILL", name: "Note" });
|
|
114
|
+
k.variants(sheet, [printVariant("a4", { art: border, pad: PAD, masterWidth: W })]);
|
|
115
|
+
return k.finish();
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
export {
|
|
120
|
+
holidays_eid_gift_tags_default
|
|
121
|
+
};
|
|
@@ -0,0 +1,140 @@
|
|
|
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
|
+
cloudCurl,
|
|
9
|
+
coin,
|
|
10
|
+
disc,
|
|
11
|
+
draw,
|
|
12
|
+
firecrackers,
|
|
13
|
+
plum,
|
|
14
|
+
redLantern,
|
|
15
|
+
redraw,
|
|
16
|
+
restyleAll,
|
|
17
|
+
scaleGaps,
|
|
18
|
+
starPath
|
|
19
|
+
} from "./chunk-AISWLDDO.js";
|
|
20
|
+
import {
|
|
21
|
+
SERIF
|
|
22
|
+
} from "./chunk-X23ZWFW2.js";
|
|
23
|
+
import {
|
|
24
|
+
verticalPadding
|
|
25
|
+
} from "./chunk-EK5CFFJO.js";
|
|
26
|
+
import {
|
|
27
|
+
defineTemplate
|
|
28
|
+
} from "./chunk-A44WEVKR.js";
|
|
29
|
+
import {
|
|
30
|
+
Kit,
|
|
31
|
+
preset
|
|
32
|
+
} from "./chunk-T3SGRYUX.js";
|
|
33
|
+
import {
|
|
34
|
+
init_define_POPCRAFT_COMPONENT_IDS
|
|
35
|
+
} from "./chunk-6VMOKHMF.js";
|
|
36
|
+
|
|
37
|
+
// templates/src/social/holidays-lunar-new-year-bakery-post.ts
|
|
38
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
39
|
+
var NAME = "Lunar New Year bakery post";
|
|
40
|
+
function art(w, h, safe = { top: 0, bottom: 0 }) {
|
|
41
|
+
const s = w / 1080;
|
|
42
|
+
const fl = firecrackers(40 * s, -10, 9, 60 * s);
|
|
43
|
+
const mx = w - 250 * s, my = h - 260 * s - safe.bottom * 0.4, R = 210 * s;
|
|
44
|
+
const ring = Array.from({ length: 10 }, (_, i) => {
|
|
45
|
+
const a = i * Math.PI / 5;
|
|
46
|
+
return plum(mx + Math.cos(a) * R * 0.7, my + Math.sin(a) * R * 0.7, 34 * s, a);
|
|
47
|
+
});
|
|
48
|
+
const coins = [0, 1, 2, 3].map((i) => coin(mx + Math.cos(i * Math.PI / 2 + Math.PI / 4) * R * 0.32, my + Math.sin(i * Math.PI / 2 + Math.PI / 4) * R * 0.32, 26 * s));
|
|
49
|
+
const top = safe.top * 0.6;
|
|
50
|
+
const lanterns = [[0.75, 150, 110], [0.87, 70, 150], [0.97, 200, 100]].map(([x, drop, lw]) => redLantern(w * x, -10, lw * s, top + drop * s));
|
|
51
|
+
const clouds = [...cloudCurl(70 * s, h - 96 * s - safe.bottom * 0.4, 230 * s, 1), ...cloudCurl(300 * s, h - 60 * s - safe.bottom * 0.4, 170 * s, 1)];
|
|
52
|
+
const lantern = { body: lanterns.flatMap((l) => l.body), ribs: lanterns.flatMap((l) => l.ribs), caps: lanterns.flatMap((l) => l.caps), tassel: lanterns.flatMap((l) => l.tassel), cord: lanterns.flatMap((l) => l.cord) };
|
|
53
|
+
const sparks = [[0.3, 0.06], [0.52, 0.04], [0.62, 0.09]].map(([x, y]) => starPath(w * x, safe.top * 0.6 + h * y * (1350 / h), 10 * s, 4 * s, 4));
|
|
54
|
+
return [
|
|
55
|
+
{ name: "Firecracker cords", paths: fl.cord, color: "gold", o: { strokeWidth: 3 * s } },
|
|
56
|
+
{ name: "Firecrackers", paths: fl.crackers, color: "red" },
|
|
57
|
+
{ name: "Firecracker tips", paths: fl.tips, color: "gold" },
|
|
58
|
+
{ name: "Sparks", paths: sparks, color: "gold" },
|
|
59
|
+
{ name: "Medallion", paths: [disc(mx, my, R)], color: "red" },
|
|
60
|
+
{ name: "Medallion rim", paths: [disc(mx, my, R * 0.93)], color: "gold", o: { strokeWidth: 4 * s } },
|
|
61
|
+
{ name: "Cut blossoms", paths: ring.flatMap((p) => p.petals), color: "cream" },
|
|
62
|
+
{ name: "Blossom hearts", paths: ring.flatMap((p) => p.heart), color: "gold" },
|
|
63
|
+
{ name: "Coins", paths: coins.flatMap((c) => c.coin), color: "gold" },
|
|
64
|
+
{ name: "Coin holes", paths: coins.flatMap((c) => c.hole), color: "red" },
|
|
65
|
+
{ name: "Lantern cords", paths: lantern.cord, color: "gold", o: { strokeWidth: 2.4 * s } },
|
|
66
|
+
{ name: "Lantern", paths: lantern.body, color: "red" },
|
|
67
|
+
{ name: "Lantern ribs", paths: lantern.ribs, color: "gold", o: { strokeWidth: 2 * s } },
|
|
68
|
+
{ name: "Lantern caps", paths: [...lantern.caps, ...lantern.tassel], color: "gold" },
|
|
69
|
+
{ name: "Clouds", paths: clouds, color: "red", o: { strokeWidth: 5 * s } }
|
|
70
|
+
];
|
|
71
|
+
}
|
|
72
|
+
var holidays_lunar_new_year_bakery_post_default = defineTemplate({
|
|
73
|
+
id: "social-holidays-lunar-new-year-bakery-post",
|
|
74
|
+
meta: {
|
|
75
|
+
name: NAME,
|
|
76
|
+
description: "A neighbourhood bakery\u2019s Lunar New Year post in red and gold papercut on cream: firecrackers down both edges, a papercut medallion of plum blossom and coins with a red lantern, \u201CNew Year treats are here\u201D in a heavy red serif, three treats with prices and the days the bakery closes to celebrate. 4:5 for the feed and 9:16 for stories",
|
|
77
|
+
category: "social",
|
|
78
|
+
tags: ["lunar new year", "chinese new year", "spring festival", "bakery", "pineapple tarts", "holiday hours", "small business", "papercut", "red and gold", "lantern", "instagram", "story", "post"],
|
|
79
|
+
platforms: ["instagram", "facebook"],
|
|
80
|
+
formats: ["portrait-post", "story"],
|
|
81
|
+
useCases: ["sale", "announcement"],
|
|
82
|
+
created: "2026-10-10",
|
|
83
|
+
updated: "2026-10-10"
|
|
84
|
+
},
|
|
85
|
+
stableNumbers: true,
|
|
86
|
+
build() {
|
|
87
|
+
const k = new Kit(NAME, preset("ig-portrait"));
|
|
88
|
+
k.quantizeGeometry = true;
|
|
89
|
+
k.brand(
|
|
90
|
+
{ paper: "#FFF3DC", text: "#3A1410", onPaper: "#A50F23", primary: "#C8102E", onPrimary: "#FFF3DC", line: "#EBCB9A" },
|
|
91
|
+
{ name: "Lucky Star Bakery", site: "luckystarbakery.com" }
|
|
92
|
+
);
|
|
93
|
+
k.palette({ red: "#C8102E", gold: "#E2A72E", cream: "#FFF3DC" });
|
|
94
|
+
k.textStyle("Kicker 26", { size: 26, fontWeight: 800, letterSpacing: 5, lineHeight: 34 });
|
|
95
|
+
k.textStyle("Title 100", { ...SERIF, size: 100, fontWeight: 800, letterSpacing: -2.8, lineHeight: 96 });
|
|
96
|
+
k.textStyle("Treat 31", { ...SERIF, size: 31, fontWeight: 600, lineHeight: 38 });
|
|
97
|
+
k.textStyle("Price 31", { size: 31, fontWeight: 800, lineHeight: 38, fontFeatures: { tnum: 1 } });
|
|
98
|
+
k.textStyle("Foot 26", { size: 26, fontWeight: 800, lineHeight: 34 });
|
|
99
|
+
k.textStyle("Body 26", { size: 26, fontWeight: 500, lineHeight: 35 });
|
|
100
|
+
k.component("Treat", { direction: "HORIZONTAL", gap: 20, width: 560, justify: "SPACE_BETWEEN", padding: { top: 10, right: 0, bottom: 10, left: 0 }, props: { Treat: "Treat", Price: "$0" } }, (id) => {
|
|
101
|
+
k.propText(id, "Treat", { style: "Treat 31", color: "text", autoWidth: true, name: "Treat name" });
|
|
102
|
+
k.propText(id, "Price", { style: "Price 31", color: "onPaper", autoWidth: true, name: "Treat price" });
|
|
103
|
+
});
|
|
104
|
+
const sheet = k.sheet;
|
|
105
|
+
const { width: W, height: H } = k.node(sheet);
|
|
106
|
+
k.flowSheet(sheet, 0, { top: 150, right: 436, bottom: 90, left: 84 }, "paper", "MIN", "MIN");
|
|
107
|
+
draw(k, sheet, art(W, H));
|
|
108
|
+
k.text(sheet, "GONG HEI FAT CHOY", { style: "Kicker 26", color: "onPaper", width: "FILL", name: "Kicker" });
|
|
109
|
+
k.stack(sheet, { height: 14, name: "Gap" });
|
|
110
|
+
k.text(sheet, "New Year treats are here", { style: "Title 100", color: "onPaper", width: "FILL", name: "Title" });
|
|
111
|
+
k.stack(sheet, { height: 26, name: "Gap" });
|
|
112
|
+
const list = k.stack(sheet, { width: 560, name: "Treats" });
|
|
113
|
+
for (const [i, [n, p]] of [["Pineapple tarts, box of 12", "$16"], ["Almond cookies, tin", "$12"], ["Nian gao, coconut", "$9"]].entries()) {
|
|
114
|
+
k.instance(list, "Treat", { Treat: n, Price: p }, { name: "Treat", width: "FILL" });
|
|
115
|
+
if (i < 2) k.rect(list, "FILL", 2, "line", { name: "Rule" });
|
|
116
|
+
}
|
|
117
|
+
k.stack(sheet, { height: 22, name: "Gap" });
|
|
118
|
+
k.text(sheet, "Closed Saturday 6 and Sunday 7 February to celebrate with our families. Pre-order by the 4th.", { style: "Body 26", color: "text", width: "FILL", name: "Body" });
|
|
119
|
+
k.stack(sheet, { height: 14, name: "Gap" });
|
|
120
|
+
k.text(sheet, "{{brand.name}} \xB7 {{brand.site}}", { style: "Foot 26", color: "onPaper", width: "FILL", name: "Foot" });
|
|
121
|
+
k.textStyle("Title 112", { ...SERIF, size: 112, fontWeight: 800, letterSpacing: -3, lineHeight: 106 });
|
|
122
|
+
const story = {
|
|
123
|
+
preset: "ig-story",
|
|
124
|
+
adjust: (kit, id) => {
|
|
125
|
+
const { width: w, height: h } = kit.node(id);
|
|
126
|
+
const safe = verticalPadding(84);
|
|
127
|
+
redraw(kit, id, art(w, h, { top: safe.top - 84, bottom: safe.bottom - 84 }));
|
|
128
|
+
kit.patch(id, { padding: { top: safe.top + 60, right: w - safe.left - 560, bottom: safe.bottom, left: safe.left } });
|
|
129
|
+
restyleAll(kit, id, [["Title", "Title 112"]]);
|
|
130
|
+
scaleGaps(kit, id, 1.3);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
k.variants(sheet, [story]);
|
|
134
|
+
return k.finish();
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
export {
|
|
139
|
+
holidays_lunar_new_year_bakery_post_default
|
|
140
|
+
};
|