@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
|
@@ -0,0 +1,131 @@
|
|
|
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
|
+
draw,
|
|
9
|
+
egg,
|
|
10
|
+
eggBands,
|
|
11
|
+
grass,
|
|
12
|
+
maze,
|
|
13
|
+
polyP,
|
|
14
|
+
printVariant,
|
|
15
|
+
rabbit,
|
|
16
|
+
sparkle,
|
|
17
|
+
tulip
|
|
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-easter-activity-sheet.ts
|
|
34
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
35
|
+
var NAME = "Easter activity sheet for kids";
|
|
36
|
+
var PAD = { top: 30, right: 48, bottom: 96, left: 48 };
|
|
37
|
+
function frame(w, h) {
|
|
38
|
+
const s = w / 816, B = 12;
|
|
39
|
+
const wave = polyP([{ x: -B, y: -B }, { x: w + B, y: -B }, ...Array.from({ length: 25 }, (_, i) => ({ x: w + B - (w + 2 * B) * i / 24, y: 128 + Math.sin(i * 0.9) * 8 }))]);
|
|
40
|
+
const tl = [0.03, 0.09, 0.91, 0.97].map((x, i) => tulip(w * x, h + 4, (70 + i % 2 * 22) * s, i % 2 ? -0.06 : 0.06));
|
|
41
|
+
return [
|
|
42
|
+
{ name: "Header", paths: [wave], color: "band" },
|
|
43
|
+
{ name: "Header sparkles", paths: [sparkle(w * 0.06, 52, 14 * s), sparkle(w * 0.12, 96, 8 * s)], color: "onBand" },
|
|
44
|
+
{ name: "Header sparkles", paths: [sparkle(w * 0.93, 46, 16 * s), sparkle(w * 0.87, 92, 9 * s)], color: "onBand" },
|
|
45
|
+
{ name: "Grass", paths: grass(-B, w + B, h + B, 52 * s, 9, 80), color: "grass" },
|
|
46
|
+
{ name: "Tulip stems", paths: tl.flatMap((t) => t.stem), color: "grassDeep", o: { strokeWidth: 3.4 * s } },
|
|
47
|
+
{ name: "Tulip leaves", paths: tl.flatMap((t) => t.leaves), color: "grassDeep" },
|
|
48
|
+
{ name: "Tulips", paths: tl.slice(0, 2).flatMap((t) => t.cup), color: "tulip" },
|
|
49
|
+
{ name: "Tulips", paths: tl.slice(2).flatMap((t) => t.cup), color: "tulipYellow" }
|
|
50
|
+
];
|
|
51
|
+
}
|
|
52
|
+
var holidays_easter_activity_sheet_default = defineTemplate({
|
|
53
|
+
id: "print-holidays-easter-activity-sheet",
|
|
54
|
+
meta: {
|
|
55
|
+
name: NAME,
|
|
56
|
+
description: "A printable Easter activity sheet for children: three eggs in outline to decorate, a maze to take the rabbit to its basket, and a word builder for SPRINGTIME with lines to write on, under a pastel header and above a border of tulips and grass. US Letter with bleed, and an A4 copy",
|
|
57
|
+
category: "document",
|
|
58
|
+
tags: ["easter", "spring", "kids", "children", "activity sheet", "coloring page", "colouring", "maze", "eggs", "bunny", "sunday school", "printable", "print"],
|
|
59
|
+
platforms: ["print"],
|
|
60
|
+
formats: ["document"],
|
|
61
|
+
useCases: ["education", "event"],
|
|
62
|
+
created: "2026-10-10",
|
|
63
|
+
updated: "2026-10-10"
|
|
64
|
+
},
|
|
65
|
+
stableNumbers: true,
|
|
66
|
+
build() {
|
|
67
|
+
const k = new Kit(NAME, preset("us-letter"));
|
|
68
|
+
k.quantizeGeometry = true;
|
|
69
|
+
k.brand(
|
|
70
|
+
{ paper: "#FFFDF7", text: "#3D3360", onPaper: "#6A5F8E", primary: "#D9577A", onPrimary: "#FFFFFF", line: "#CFC6E4", card: "#F4F0FB", onCard: "#3D3360" },
|
|
71
|
+
{ name: "St Mark\u2019s Sunday School" }
|
|
72
|
+
);
|
|
73
|
+
k.palette({ ink: "#3D3360", band: "#C9E7D9", onBand: "#FFFFFF", grass: "#9ED39B", grassDeep: "#5DA466", tulip: "#F28CA6", tulipYellow: "#F7C85C", outline: "#3D3360", soft: "#F4F0FB", basket: "#C99561", rabbit: "#BFA58C" });
|
|
74
|
+
k.textStyle("Title 48", { ...SERIF, size: 48, fontWeight: 700, letterSpacing: -1, lineHeight: 52 });
|
|
75
|
+
k.textStyle("Band sub 15", { size: 15, fontWeight: 600, letterSpacing: 2.6, lineHeight: 20 });
|
|
76
|
+
k.textStyle("Head 20", { ...SERIF, size: 21, fontWeight: 700, lineHeight: 25 });
|
|
77
|
+
k.textStyle("Hint 12.5", { size: 12.5, fontWeight: 400, lineHeight: 18 });
|
|
78
|
+
k.textStyle("Big word 40", { size: 34, fontWeight: 900, letterSpacing: 5, lineHeight: 42 });
|
|
79
|
+
k.textStyle("Name 12", { size: 12, fontWeight: 600, lineHeight: 18 });
|
|
80
|
+
k.textStyle("Foot 10", { size: 10, fontWeight: 500, lineHeight: 14 });
|
|
81
|
+
k.component("Panel head", { gap: 2, width: 320, props: { Title: "Puzzle", Hint: "What to do" } }, (id) => {
|
|
82
|
+
k.propText(id, "Title", { style: "Head 20", color: "onCard", width: "FILL", name: "Panel title" });
|
|
83
|
+
k.propText(id, "Hint", { style: "Hint 12.5", color: "onCard", width: "FILL", name: "Panel hint" });
|
|
84
|
+
});
|
|
85
|
+
const panel = (parent, title, hint, name, width = "FILL") => {
|
|
86
|
+
const p = k.stack(parent, { width, gap: 10, padding: 18, fill: "card", radius: 22, name });
|
|
87
|
+
k.instance(p, "Panel head", { Title: title, Hint: hint }, { name: "Panel head", width: "FILL" });
|
|
88
|
+
return p;
|
|
89
|
+
};
|
|
90
|
+
const sheet = k.sheet;
|
|
91
|
+
const { width: W } = k.node(sheet);
|
|
92
|
+
k.flowSheet(sheet, 14, PAD, "paper", "MIN", "MIN");
|
|
93
|
+
draw(k, sheet, frame(W, k.node(sheet).height));
|
|
94
|
+
const head = k.stack(sheet, { width: "FILL", height: 92, gap: 2, justify: "CENTER", align: "CENTER", name: "Header" });
|
|
95
|
+
k.text(head, "Spring Garden Puzzles", { style: "Title 48", color: "ink", autoWidth: true, name: "Title" });
|
|
96
|
+
k.text(head, "HAPPY EASTER!", { style: "Band sub 15", color: "ink", autoWidth: true, name: "Subtitle" });
|
|
97
|
+
k.stack(sheet, { height: 6, name: "Gap" });
|
|
98
|
+
const top = k.stack(sheet, { direction: "HORIZONTAL", width: "FILL", justify: "SPACE_BETWEEN", name: "Name row" });
|
|
99
|
+
k.text(top, "Name: ________________________", { style: "Name 12", color: "text", autoWidth: true, name: "Name" });
|
|
100
|
+
k.text(top, "Age: ______", { style: "Name 12", color: "text", autoWidth: true, name: "Age" });
|
|
101
|
+
const eggs = panel(sheet, "Decorate the eggs", "Colour them in, follow the lines or invent your own patterns: stripes, spots, zigzags, flowers.", "Egg panel");
|
|
102
|
+
const ea = k.stack(eggs, { width: "FILL", height: 230, name: "Egg art" });
|
|
103
|
+
const shapes = [[120, 120, 150, 200, -0.12, "zigzag"], [340, 116, 160, 212, 0.05, "waves"], [560, 120, 150, 200, 0.14, "dots"]];
|
|
104
|
+
draw(k, ea, [
|
|
105
|
+
{ name: "Egg outlines", paths: shapes.map(([x, y, w, h, t]) => egg(x, y, w, h, t)), color: "outline", o: { strokeWidth: 3 } },
|
|
106
|
+
{ name: "Egg guides", paths: shapes.flatMap(([x, y, w, h, t, kind]) => eggBands(x, y, w, h, t, kind).lines), color: "outline", o: { strokeWidth: 1.6, opacity: 0.6 } },
|
|
107
|
+
{ name: "Egg guide dots", paths: shapes.flatMap(([x, y, w, h, t, kind]) => eggBands(x, y, w, h, t, kind).dots), color: "outline", o: { strokeWidth: 1.6, opacity: 0.6 } }
|
|
108
|
+
]);
|
|
109
|
+
const row = k.stack(sheet, { direction: "HORIZONTAL", gap: 16, width: "FILL", name: "Puzzles" });
|
|
110
|
+
const mz = panel(row, "Hop to the basket", "Help the rabbit find the way to its basket of eggs.", "Maze panel");
|
|
111
|
+
const mart = k.stack(mz, { width: 300, height: 284, name: "Maze art" });
|
|
112
|
+
const cell = 25;
|
|
113
|
+
const rb = rabbit(16, 36, 46, 1);
|
|
114
|
+
draw(k, mart, [
|
|
115
|
+
{ name: "Maze walls", paths: maze(0, 40, 12, 9, cell, 327), color: "outline", o: { strokeWidth: 3 } },
|
|
116
|
+
{ name: "Rabbit", paths: rb.body, color: "rabbit" },
|
|
117
|
+
{ name: "Basket", paths: [polyP([{ x: 268, y: 266 }, { x: 300, y: 266 }, { x: 296, y: 284 }, { x: 272, y: 284 }]), { closed: false, points: [{ x: 270, y: 266 }, { x: 298, y: 266, handleIn: { x: 284, y: 248 } }] }], color: "basket", o: { strokeWidth: 2.4 } },
|
|
118
|
+
{ name: "Basket eggs", paths: [egg(278, 262, 10, 13), egg(290, 262, 10, 13, 0.3)], color: "tulip" }
|
|
119
|
+
]);
|
|
120
|
+
const wb = panel(row, "Word builder", "How many words can you make from the letters of this word? Rest, ring, time\u2026", "Word panel");
|
|
121
|
+
k.text(wb, "SPRINGTIME", { style: "Big word 40", color: "onCard", align: "CENTER", width: "FILL", name: "Big word" });
|
|
122
|
+
k.text(wb, "_________________ _________________\n_________________ _________________\n_________________ _________________\n_________________ _________________\n_________________ _________________", { style: "Name 12", color: "onCard", align: "CENTER", width: "FILL", name: "Lines" });
|
|
123
|
+
k.text(sheet, "Happy Easter from {{brand.name}}. Bring your sheet on Sunday for a sticker!", { style: "Foot 10", color: "onPaper", align: "CENTER", width: "FILL", name: "Foot" });
|
|
124
|
+
k.variants(sheet, [printVariant("a4", { art: frame, pad: PAD, masterWidth: W })]);
|
|
125
|
+
return k.finish();
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
export {
|
|
130
|
+
holidays_easter_activity_sheet_default
|
|
131
|
+
};
|
|
@@ -140,7 +140,7 @@ function startHyperyTeams() {
|
|
|
140
140
|
maybePromptForTeam();
|
|
141
141
|
void followFileTeam(linkedKey);
|
|
142
142
|
});
|
|
143
|
-
void import("./sync-
|
|
143
|
+
void import("./sync-OFINS45Q.js").then(({ onSyncStatus, syncStatus }) => {
|
|
144
144
|
linkedKey = syncStatus().link?.key ?? null;
|
|
145
145
|
void followFileTeam(linkedKey);
|
|
146
146
|
onSyncStatus((_s, link) => {
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-KG6CLCGF.js";
|
|
10
10
|
import {
|
|
11
11
|
vaporwave_default
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-JPMLUHZX.js";
|
|
13
13
|
import {
|
|
14
14
|
winter_cosy_default
|
|
15
15
|
} from "./chunk-B6GIKFBY.js";
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
} from "./chunk-LJSDX4WU.js";
|
|
19
19
|
import {
|
|
20
20
|
tour_tickets_default
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-NGMCQZA6.js";
|
|
22
22
|
import {
|
|
23
23
|
transit_map_default
|
|
24
24
|
} from "./chunk-VQBSXFZJ.js";
|
|
@@ -30,7 +30,7 @@ import {
|
|
|
30
30
|
} from "./chunk-XWZMO4J3.js";
|
|
31
31
|
import {
|
|
32
32
|
studio_default
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-PQBYL7AI.js";
|
|
34
34
|
import {
|
|
35
35
|
summer_heatwave_default
|
|
36
36
|
} from "./chunk-IVBJ7MTY.js";
|
|
@@ -45,22 +45,22 @@ import {
|
|
|
45
45
|
} from "./chunk-AM4QLGDM.js";
|
|
46
46
|
import {
|
|
47
47
|
space_opera_default
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-VOEAQIQT.js";
|
|
49
49
|
import {
|
|
50
50
|
new_year_default
|
|
51
51
|
} from "./chunk-CLRKVDHX.js";
|
|
52
52
|
import {
|
|
53
53
|
noir_default
|
|
54
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-S7L2D7NH.js";
|
|
55
55
|
import {
|
|
56
56
|
printshop_default
|
|
57
57
|
} from "./chunk-J57CGYSM.js";
|
|
58
58
|
import {
|
|
59
59
|
psychedelic_default
|
|
60
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-HJQU5POV.js";
|
|
61
61
|
import {
|
|
62
62
|
lunar_new_year_default
|
|
63
|
-
} from "./chunk-
|
|
63
|
+
} from "./chunk-3VHOXVMF.js";
|
|
64
64
|
import {
|
|
65
65
|
machined_default
|
|
66
66
|
} from "./chunk-G4XRS4WU.js";
|
|
@@ -81,16 +81,13 @@ import {
|
|
|
81
81
|
} from "./chunk-ONY2SIHS.js";
|
|
82
82
|
import {
|
|
83
83
|
holidays_default
|
|
84
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-TFNV2UP4.js";
|
|
85
85
|
import {
|
|
86
86
|
festival_presale_family_a_default
|
|
87
|
-
} from "./chunk-
|
|
87
|
+
} from "./chunk-TYW7EXV6.js";
|
|
88
88
|
import {
|
|
89
89
|
festival_presale_family_b_default
|
|
90
|
-
} from "./chunk-
|
|
91
|
-
import {
|
|
92
|
-
departure_board_default
|
|
93
|
-
} from "./chunk-25FM5JIR.js";
|
|
90
|
+
} from "./chunk-AFARXTNQ.js";
|
|
94
91
|
import {
|
|
95
92
|
diwali_default
|
|
96
93
|
} from "./chunk-MQSAGHE4.js";
|
|
@@ -100,15 +97,15 @@ import {
|
|
|
100
97
|
import {
|
|
101
98
|
everyday_default
|
|
102
99
|
} from "./chunk-OINGSM6H.js";
|
|
103
|
-
import {
|
|
104
|
-
claymation_default
|
|
105
|
-
} from "./chunk-UO5JRF3V.js";
|
|
106
100
|
import {
|
|
107
101
|
comic_book_default
|
|
108
102
|
} from "./chunk-RUVZAZ23.js";
|
|
109
103
|
import {
|
|
110
104
|
cyberpunk_default
|
|
111
|
-
} from "./chunk-
|
|
105
|
+
} from "./chunk-YHEMML5Q.js";
|
|
106
|
+
import {
|
|
107
|
+
departure_board_default
|
|
108
|
+
} from "./chunk-BP7CHO7K.js";
|
|
112
109
|
import {
|
|
113
110
|
black_friday_ticker_default
|
|
114
111
|
} from "./chunk-UBGQCHHL.js";
|
|
@@ -117,25 +114,22 @@ import {
|
|
|
117
114
|
} from "./chunk-WL4ZYNBA.js";
|
|
118
115
|
import {
|
|
119
116
|
blueprint_default
|
|
120
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-VVUQG4ME.js";
|
|
121
118
|
import {
|
|
122
119
|
broadsheet_default
|
|
123
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-FNUM5W3W.js";
|
|
124
121
|
import {
|
|
125
|
-
|
|
126
|
-
} from "./chunk-
|
|
122
|
+
claymation_default
|
|
123
|
+
} from "./chunk-UO5JRF3V.js";
|
|
127
124
|
import {
|
|
128
125
|
black_friday_coupons_default
|
|
129
|
-
} from "./chunk-
|
|
126
|
+
} from "./chunk-6Y46SDFE.js";
|
|
130
127
|
import {
|
|
131
128
|
black_friday_neon_default
|
|
132
|
-
} from "./chunk-
|
|
129
|
+
} from "./chunk-IJ65QZLL.js";
|
|
133
130
|
import {
|
|
134
131
|
black_friday_scratch_default
|
|
135
132
|
} from "./chunk-DTFBGVE2.js";
|
|
136
|
-
import {
|
|
137
|
-
arcade_default
|
|
138
|
-
} from "./chunk-IECJMYFV.js";
|
|
139
133
|
import {
|
|
140
134
|
art_deco_default
|
|
141
135
|
} from "./chunk-DVP23MAI.js";
|
|
@@ -145,9 +139,15 @@ import {
|
|
|
145
139
|
import {
|
|
146
140
|
back_to_school_default
|
|
147
141
|
} from "./chunk-DK4X3E45.js";
|
|
142
|
+
import {
|
|
143
|
+
bauhaus_default
|
|
144
|
+
} from "./chunk-EFDBUY67.js";
|
|
148
145
|
import {
|
|
149
146
|
april_fools_default
|
|
150
147
|
} from "./chunk-FOM33PRI.js";
|
|
148
|
+
import {
|
|
149
|
+
arcade_default
|
|
150
|
+
} from "./chunk-IECJMYFV.js";
|
|
151
151
|
import {
|
|
152
152
|
init_define_POPCRAFT_COMPONENT_IDS
|
|
153
153
|
} from "./chunk-6VMOKHMF.js";
|
|
@@ -0,0 +1,150 @@
|
|
|
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
|
+
bandsAround,
|
|
9
|
+
bauble,
|
|
10
|
+
disc,
|
|
11
|
+
doubleRule,
|
|
12
|
+
draw,
|
|
13
|
+
flourishComponent,
|
|
14
|
+
holly,
|
|
15
|
+
perBand,
|
|
16
|
+
pine,
|
|
17
|
+
printVariant,
|
|
18
|
+
snowflake,
|
|
19
|
+
specksIn,
|
|
20
|
+
sprig,
|
|
21
|
+
starPath
|
|
22
|
+
} from "./chunk-AISWLDDO.js";
|
|
23
|
+
import {
|
|
24
|
+
SERIF
|
|
25
|
+
} from "./chunk-X23ZWFW2.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/print/holidays-christmas-eve-invitation.ts
|
|
38
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
39
|
+
var NAME = "Christmas Eve open house invitation";
|
|
40
|
+
var PAD = { top: 292, right: 48, bottom: 84, left: 48 };
|
|
41
|
+
function art(w, h) {
|
|
42
|
+
const s = w / 480, B = 14 * s;
|
|
43
|
+
const garland = [
|
|
44
|
+
pine({ x: -B - 10 * s, y: 18 * s }, { x: w * 0.25, y: 58 * s }, { x: w * 0.52, y: 26 * s }, { needle: 30 * s, seed: 3, density: 1.4 }),
|
|
45
|
+
pine({ x: w + B + 10 * s, y: 14 * s }, { x: w * 0.74, y: 62 * s }, { x: w * 0.46, y: 30 * s }, { needle: 30 * s, seed: 5, density: 1.4 }),
|
|
46
|
+
pine({ x: w * 0.3, y: -B - 6 * s }, { x: w * 0.4, y: 40 * s }, { x: w * 0.6, y: 18 * s }, { needle: 22 * s, seed: 9, density: 0.9 }),
|
|
47
|
+
pine({ x: -B, y: 50 * s }, { x: w * 0.12, y: 76 * s }, { x: w * 0.3, y: 54 * s }, { needle: 24 * s, seed: 12, density: 0.8 }),
|
|
48
|
+
pine({ x: w + B, y: 52 * s }, { x: w * 0.86, y: 80 * s }, { x: w * 0.68, y: 56 * s }, { needle: 24 * s, seed: 14, density: 0.8 })
|
|
49
|
+
];
|
|
50
|
+
const beads = [0.06, 0.2, 0.35, 0.5, 0.64, 0.8, 0.94].map((x, i) => disc(w * x, (44 + (i % 2 ? 14 : 2)) * s, (i % 3 ? 4.5 : 6) * s));
|
|
51
|
+
const hang = [[0.13, 70, 34, "red"], [0.27, 128, 26, "gold"], [0.42, 64, 22, "gold"], [0.58, 150, 38, "red"], [0.74, 82, 28, "gold"], [0.88, 136, 22, "red"]];
|
|
52
|
+
const gold = hang.filter((b) => b[3] === "gold").map(([x, l, r]) => bauble(w * x, 30 * s, r * s, { string: l * s }));
|
|
53
|
+
const red = hang.filter((b) => b[3] === "red").map(([x, l, r]) => bauble(w * x, 30 * s, r * s, { string: l * s }));
|
|
54
|
+
const all = [...gold, ...red];
|
|
55
|
+
const flake = (list) => list.flatMap(([x, y, r], i) => snowflake(w * x, h * y, r * s, i * 0.3));
|
|
56
|
+
const keep = { x: 40 * s, y: 286 * s, w: w - 80 * s, h: h - 330 * s };
|
|
57
|
+
const foot = h - 30 * s;
|
|
58
|
+
const hl = [holly({ x: w / 2 - 6 * s, y: foot }, 50 * s, Math.PI + 0.12), holly({ x: w / 2 + 6 * s, y: foot }, 50 * s, -0.12), holly({ x: w / 2 - 4 * s, y: foot + 4 * s }, 36 * s, Math.PI - 0.45), holly({ x: w / 2 + 4 * s, y: foot + 4 * s }, 36 * s, 0.45)];
|
|
59
|
+
const berries = [disc(w / 2 - 7 * s, foot - 2 * s, 6 * s), disc(w / 2 + 7 * s, foot - 3 * s, 6 * s), disc(w / 2, foot + 7 * s, 6 * s)];
|
|
60
|
+
const mist = sprig({ x: -B, y: h * 0.99 }, { x: w * 0.02, y: h * 0.95 }, { x: w * 0.08, y: h * 0.955 }, { leaves: 5, size: 18 * s, seed: 2 });
|
|
61
|
+
const mist2 = sprig({ x: w + B, y: h * 0.99 }, { x: w * 0.98, y: h * 0.95 }, { x: w * 0.92, y: h * 0.955 }, { leaves: 5, size: 18 * s, seed: 4 });
|
|
62
|
+
return [
|
|
63
|
+
...perBand("Snow", "snow", bandsAround(w, h, keep, B), (b, i) => specksIn(b, 700 * s * s, 7 + i, 2.4 * s), { opacity: 0.35 }),
|
|
64
|
+
{ name: "Snowflakes", paths: flake([[0.05, 0.5, 9], [0.06, 0.74, 7]]), color: "snow", o: { strokeWidth: 1.2 * s, opacity: 0.5 } },
|
|
65
|
+
{ name: "Snowflakes", paths: flake([[0.95, 0.56, 8], [0.94, 0.8, 10]]), color: "snow", o: { strokeWidth: 1.2 * s, opacity: 0.5 } },
|
|
66
|
+
{ name: "Threads", paths: all.flatMap((b) => b.string), color: "gold", o: { strokeWidth: 1 * s, opacity: 0.9 } },
|
|
67
|
+
{ name: "Gold baubles", paths: gold.flatMap((b) => b.body), color: "gold" },
|
|
68
|
+
{ name: "Red baubles", paths: red.flatMap((b) => b.body), color: "red" },
|
|
69
|
+
{ name: "Bauble shade", paths: all.flatMap((b) => b.shade), color: "ink", o: { opacity: 0.22 } },
|
|
70
|
+
{ name: "Bauble bands", paths: all.flatMap((b) => b.band), color: "cream", o: { strokeWidth: 1.4 * s, opacity: 0.75 } },
|
|
71
|
+
{ name: "Bauble shine", paths: all.flatMap((b) => b.shine), color: "snow", o: { opacity: 0.55 } },
|
|
72
|
+
{ name: "Bauble caps", paths: all.flatMap((b) => b.cap), color: "goldDeep" },
|
|
73
|
+
{ name: "Pine stems", paths: garland.map((g) => g.stem), color: "bark", o: { strokeWidth: 2.4 * s } },
|
|
74
|
+
{ name: "Pine dark", paths: garland.flatMap((g) => g.dark), color: "pine", o: { strokeWidth: 2.2 * s } },
|
|
75
|
+
{ name: "Pine light", paths: garland.flatMap((g) => g.light), color: "pineLight", o: { strokeWidth: 2 * s } },
|
|
76
|
+
{ name: "Garland beads", paths: beads, color: "red" },
|
|
77
|
+
{ name: "Frame", paths: doubleRule(w, h, 16 * s, 5 * s), color: "gold", o: { strokeWidth: 0.8 * s, opacity: 0.7 } },
|
|
78
|
+
{ name: "Corner leaves", paths: mist.dark, color: "pineLight", o: { opacity: 0.8 } },
|
|
79
|
+
{ name: "Corner leaves", paths: mist2.dark, color: "pineLight", o: { opacity: 0.8 } },
|
|
80
|
+
{ name: "Holly", paths: hl, color: "pineLight" },
|
|
81
|
+
{ name: "Holly berries", paths: berries, color: "red" }
|
|
82
|
+
];
|
|
83
|
+
}
|
|
84
|
+
var holidays_christmas_eve_invitation_default = defineTemplate({
|
|
85
|
+
id: "print-holidays-christmas-eve-invitation",
|
|
86
|
+
meta: {
|
|
87
|
+
name: NAME,
|
|
88
|
+
description: "A printed invitation to a family Christmas Eve open house: gold and red baubles hang from a pine garland over a forest-green card dusted with snow, with the invitation set below in a cream serif, gold small capitals and a sprig of holly. 5 \xD7 7 inches with bleed, and an A6 copy",
|
|
89
|
+
category: "invitation",
|
|
90
|
+
tags: ["christmas", "christmas eve", "holiday party", "open house", "family", "baubles", "ornaments", "pine", "holly", "invitation", "print", "card", "winter"],
|
|
91
|
+
platforms: ["print"],
|
|
92
|
+
formats: ["card"],
|
|
93
|
+
useCases: ["invitation", "event"],
|
|
94
|
+
created: "2026-10-10",
|
|
95
|
+
updated: "2026-10-10"
|
|
96
|
+
},
|
|
97
|
+
stableNumbers: true,
|
|
98
|
+
build() {
|
|
99
|
+
const k = new Kit(NAME, preset("invitation-5x7"));
|
|
100
|
+
k.quantizeGeometry = true;
|
|
101
|
+
k.brand(
|
|
102
|
+
{ paper: "#163A2E", text: "#F8F0DE", onPaper: "#E2C47A", primary: "#B83A30", onPrimary: "#FFF6E8" },
|
|
103
|
+
{ name: "The Okafor family" }
|
|
104
|
+
);
|
|
105
|
+
k.palette({ gold: "#D8B356", goldDeep: "#9C7A2E", red: "#B83A30", cream: "#F8F0DE", pine: "#2D6247", pineLight: "#5E9470", bark: "#5A4632", snow: "#FFFFFF", ink: "#06140F" });
|
|
106
|
+
k.textStyle("Kicker 11", { size: 11, fontWeight: 600, letterSpacing: 3.6, lineHeight: 16 });
|
|
107
|
+
k.textStyle("Title 60", { ...SERIF, size: 60, fontWeight: 400, fontStyle: "italic", letterSpacing: -1.4, lineHeight: 60 });
|
|
108
|
+
k.textStyle("Host 22", { ...SERIF, size: 22, fontWeight: 400, lineHeight: 28 });
|
|
109
|
+
k.textStyle("When 15", { ...SERIF, size: 15, fontWeight: 700, letterSpacing: 0.2, lineHeight: 21 });
|
|
110
|
+
k.textStyle("Body 12", { ...SERIF, size: 12, fontWeight: 400, lineHeight: 17 });
|
|
111
|
+
k.textStyle("Rsvp 10", { size: 10, fontWeight: 600, letterSpacing: 1.6, lineHeight: 15 });
|
|
112
|
+
const sheet = k.sheet;
|
|
113
|
+
const { width: W, height: H } = k.node(sheet);
|
|
114
|
+
k.flowSheet(sheet, 0, PAD, "paper", "MIN", "CENTER");
|
|
115
|
+
k.rect(sheet, W + 28, 300, [k.gradient({ from: "gold", to: "gold", kind: "RADIAL", fromOpacity: 0.2, toOpacity: 0, handles: [{ x: 0.5, y: 0.45 }, { x: 1, y: 0.45 }, { x: 0.5, y: 1.1 }] })], { name: "Glow", absolute: { x: -14, y: -14 } });
|
|
116
|
+
draw(k, sheet, art(W, H));
|
|
117
|
+
const c = { align: "CENTER", width: "FILL" };
|
|
118
|
+
k.text(sheet, "YOU\u2019RE INVITED TO SPEND", { style: "Kicker 11", color: "onPaper", ...c, name: "Kicker" });
|
|
119
|
+
k.stack(sheet, { height: 8, name: "Gap" });
|
|
120
|
+
k.text(sheet, "Christmas Eve", { style: "Title 60", color: "text", ...c, name: "Title" });
|
|
121
|
+
k.text(sheet, "with {{brand.name}}", { style: "Host 22", color: "text", ...c, name: "Host" });
|
|
122
|
+
k.stack(sheet, { height: 12, name: "Gap" });
|
|
123
|
+
flourishComponent(k, "Star rule", "onPaper", starPath(0, 0, 10, 4.2), { rule: 34 });
|
|
124
|
+
k.instance(sheet, "Star rule", {}, { name: "Divider" });
|
|
125
|
+
k.stack(sheet, { height: 12, name: "Gap" });
|
|
126
|
+
k.text(sheet, "Thursday 24 December \xB7 from 6 pm", { style: "When 15", color: "onPaper", ...c, name: "When" });
|
|
127
|
+
k.text(sheet, "418 Linden Avenue, Oak Park", { style: "Body 12", color: "text", ...c, name: "Where" });
|
|
128
|
+
k.stack(sheet, { height: 12, name: "Gap" });
|
|
129
|
+
k.text(sheet, "Carols round the piano at eight, jollof, mince pies and mulled cider all evening. Bring the little ones, and a jumper you\u2019re not proud of.", { style: "Body 12", color: "text", ...c, name: "Body" });
|
|
130
|
+
k.stack(sheet, { height: 12, name: "Gap" });
|
|
131
|
+
k.text(sheet, "RSVP TO NGOZI BY 18 DECEMBER \xB7 (708) 555-0148", { style: "Rsvp 10", color: "onPaper", ...c, name: "Rsvp" });
|
|
132
|
+
k.textStyle("Title 50", { ...SERIF, size: 50, fontWeight: 400, fontStyle: "italic", letterSpacing: -1.2, lineHeight: 50 });
|
|
133
|
+
k.textStyle("Host 18", { ...SERIF, size: 18, fontWeight: 400, lineHeight: 23 });
|
|
134
|
+
k.textStyle("When 13", { ...SERIF, size: 13, fontWeight: 700, lineHeight: 18 });
|
|
135
|
+
k.textStyle("Body 10.5", { ...SERIF, size: 10.5, fontWeight: 400, lineHeight: 15 });
|
|
136
|
+
k.textStyle("Rsvp 8.5", { size: 8.5, fontWeight: 600, letterSpacing: 1.2, lineHeight: 13 });
|
|
137
|
+
k.textStyle("Kicker 9.5", { size: 9.5, fontWeight: 600, letterSpacing: 3, lineHeight: 14 });
|
|
138
|
+
k.variants(sheet, [printVariant("a6", {
|
|
139
|
+
art,
|
|
140
|
+
pad: PAD,
|
|
141
|
+
masterWidth: W,
|
|
142
|
+
styles: [["Title", "Title 50"], ["Host", "Host 18"], ["When", "When 13"], ["Where", "Body 10.5"], ["Body", "Body 10.5"], ["Rsvp", "Rsvp 8.5"], ["Kicker", "Kicker 9.5"]]
|
|
143
|
+
})]);
|
|
144
|
+
return k.finish();
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
export {
|
|
149
|
+
holidays_christmas_eve_invitation_default
|
|
150
|
+
};
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from "./chunk-474GISCF.js";
|
|
14
14
|
import {
|
|
15
15
|
notice
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-V5HI55XO.js";
|
|
17
17
|
import {
|
|
18
18
|
effectiveChatModel,
|
|
19
19
|
setModelPref,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
} from "./chunk-6XGGSKFB.js";
|
|
22
22
|
import {
|
|
23
23
|
useEditorStore
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-IM6HORNC.js";
|
|
25
25
|
import {
|
|
26
26
|
create
|
|
27
27
|
} from "./chunk-4VEVFATD.js";
|
|
@@ -1477,7 +1477,7 @@ async function sendMessage(text) {
|
|
|
1477
1477
|
if (!useAgentStore.getState().activeThreadId) newThread();
|
|
1478
1478
|
const mentions = pruneMentions(body, useAgentStore.getState().draftMentions);
|
|
1479
1479
|
useAgentStore.setState({ draft: "", draftMentions: [], error: null });
|
|
1480
|
-
const { runTurn } = await import("./runner-
|
|
1480
|
+
const { runTurn } = await import("./runner-I66TTKKZ.js");
|
|
1481
1481
|
await runTurn(body, mentions);
|
|
1482
1482
|
}
|
|
1483
1483
|
function stop() {
|
|
@@ -1580,7 +1580,7 @@ var clearTaskChildren = () => useAgentStore.setState({ taskChildren: {} });
|
|
|
1580
1580
|
function subscribeChildTools() {
|
|
1581
1581
|
let dispose;
|
|
1582
1582
|
let cancelled = false;
|
|
1583
|
-
void import("./runner-
|
|
1583
|
+
void import("./runner-I66TTKKZ.js").then(({ onChildTool }) => {
|
|
1584
1584
|
const off = onChildTool((report) => {
|
|
1585
1585
|
if (report?.status !== "running" || report.jobId) return;
|
|
1586
1586
|
recordChildTool(report.toolCallId ?? "", report.name);
|
|
@@ -0,0 +1,152 @@
|
|
|
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
|
+
bandsAround,
|
|
9
|
+
confetti,
|
|
10
|
+
disc,
|
|
11
|
+
draw,
|
|
12
|
+
perBand,
|
|
13
|
+
polyP,
|
|
14
|
+
redraw,
|
|
15
|
+
restyleAll,
|
|
16
|
+
scaleGaps,
|
|
17
|
+
sparkle,
|
|
18
|
+
streamer
|
|
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-new-years-eve-shop-hours.ts
|
|
38
|
+
init_define_POPCRAFT_COMPONENT_IDS();
|
|
39
|
+
var NAME = "New Year\u2019s Eve shop holiday hours post";
|
|
40
|
+
var HOURS = [
|
|
41
|
+
["Wed 23 Dec", "10 am \u2013 8 pm"],
|
|
42
|
+
["Thu 24 Dec", "10 am \u2013 4 pm"],
|
|
43
|
+
["Fri 25 Dec", "Closed"],
|
|
44
|
+
["Sat 26 Dec", "12 \u2013 6 pm"],
|
|
45
|
+
["Wed 30 Dec", "10 am \u2013 8 pm"],
|
|
46
|
+
["Thu 31 Dec", "10 am \u2013 6 pm"],
|
|
47
|
+
["Fri 1 Jan", "Closed"]
|
|
48
|
+
];
|
|
49
|
+
function bottle(x, y, s, tilt) {
|
|
50
|
+
const c = Math.cos(tilt), sn = Math.sin(tilt);
|
|
51
|
+
const p = (u, v) => ({ x: x + (u * c - v * sn) * s, y: y + (u * sn + v * c) * s });
|
|
52
|
+
const glass = [polyP([p(-0.16, 0), p(0.16, 0), p(0.16, -0.5), p(0.06, -0.68), p(0.05, -0.92), p(-0.05, -0.92), p(-0.06, -0.68), p(-0.16, -0.5)])];
|
|
53
|
+
const foil = [polyP([p(-0.058, -0.74), p(0.058, -0.74), p(0.05, -0.94), p(-0.05, -0.94)])];
|
|
54
|
+
const label = [polyP([p(-0.16, -0.16), p(0.16, -0.16), p(0.16, -0.38), p(-0.16, -0.38)])];
|
|
55
|
+
const tip = p(0, -1.18);
|
|
56
|
+
const cork = [polyP([{ x: tip.x - 0.035 * s, y: tip.y - 0.05 * s }, { x: tip.x + 0.035 * s, y: tip.y - 0.05 * s }, { x: tip.x + 0.045 * s, y: tip.y + 0.05 * s }, { x: tip.x - 0.045 * s, y: tip.y + 0.05 * s }])];
|
|
57
|
+
const spray = [0, 1, 2, 3, 4, 5, 6, 7].map((i) => {
|
|
58
|
+
const q = p((i % 2 ? 1 : -1) * (0.04 + i * 0.012), -0.98 - i * 0.03);
|
|
59
|
+
return disc(q.x, q.y, (0.014 + i % 3 * 6e-3) * s);
|
|
60
|
+
});
|
|
61
|
+
return { glass, foil, label, cork, spray };
|
|
62
|
+
}
|
|
63
|
+
function art(w, h, safe = { top: 0, bottom: 0 }) {
|
|
64
|
+
const s = w / 1080, B = 0;
|
|
65
|
+
const b = bottle(w - 120 * s, h - 70 * s - safe.bottom * 0.3, 470 * s, -0.36);
|
|
66
|
+
const keep = { x: 60 * s, y: 60 * s + safe.top, w: 700 * s, h: h - 120 * s - safe.top - safe.bottom };
|
|
67
|
+
const bands = bandsAround(w, h, keep, B);
|
|
68
|
+
const st = [streamer({ x: w * 0.62, y: -10 }, w * 0.5, 0.5, 18 * s, 3.5), streamer({ x: w * 0.78, y: -10 }, w * 0.4, 1.05, 16 * s, 3), streamer({ x: -10, y: h - 40 * s }, w * 0.4, -0.12, 14 * s, 2.5)];
|
|
69
|
+
return [
|
|
70
|
+
...perBand("Confetti", "yellow", bands, (r, i) => confetti(r.w, r.h, Math.round(r.w * r.h / (9e3 * s * s)), 90 + i, 22 * s).bars.map((p) => ({ ...p, points: p.points.map((q) => ({ x: q.x + r.x, y: q.y + r.y })) }))),
|
|
71
|
+
...perBand("Confetti dots", "coral", bands, (r, i) => confetti(r.w, r.h, Math.round(r.w * r.h / (14e3 * s * s)), 120 + i, 22 * s).dots.map((p) => ({ ...p, points: p.points.map((q) => ({ ...q, x: q.x + r.x, y: q.y + r.y, ...q.handleIn ? { handleIn: { x: q.handleIn.x + r.x, y: q.handleIn.y + r.y } } : {}, ...q.handleOut ? { handleOut: { x: q.handleOut.x + r.x, y: q.handleOut.y + r.y } } : {} })) }))),
|
|
72
|
+
{ name: "Streamers", paths: st.slice(0, 2), color: "coral", o: { strokeWidth: 7 * s } },
|
|
73
|
+
{ name: "Streamers", paths: st.slice(2), color: "mint", o: { strokeWidth: 7 * s } },
|
|
74
|
+
{ name: "Bottle", paths: b.glass, color: "bottle" },
|
|
75
|
+
{ name: "Bottle label", paths: b.label, color: "cream" },
|
|
76
|
+
{ name: "Bottle foil", paths: b.foil, color: "yellow" },
|
|
77
|
+
{ name: "Cork", paths: b.cork, color: "cork" },
|
|
78
|
+
{ name: "Spray", paths: b.spray, color: "cream" },
|
|
79
|
+
{ name: "Pop", paths: [sparkle(w - 140 * s, h - 700 * s - safe.bottom * 0.3, 40 * s), sparkle(w - 290 * s, h - 660 * s - safe.bottom * 0.3, 26 * s)], color: "yellow" }
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
var holidays_new_years_eve_shop_hours_default = defineTemplate({
|
|
83
|
+
id: "social-holidays-new-years-eve-shop-hours",
|
|
84
|
+
meta: {
|
|
85
|
+
name: NAME,
|
|
86
|
+
description: "A holiday-hours post for a neighbourhood wine shop, Christmas to New Year: confetti and streamers on deep teal, a bottle popping its cork, \u201CPop in before you pop the cork\u201D in big heavy type, every day\u2019s hours with the closed days marked, and the sparkling-wine offer in a yellow pill. 4:5 for the feed and 9:16 for stories",
|
|
87
|
+
category: "social",
|
|
88
|
+
tags: ["new year\u2019s eve", "new year", "holiday hours", "opening hours", "wine shop", "small business", "shop", "champagne", "sale", "confetti", "instagram", "story", "post"],
|
|
89
|
+
platforms: ["instagram", "facebook"],
|
|
90
|
+
formats: ["portrait-post", "story"],
|
|
91
|
+
useCases: ["announcement", "sale"],
|
|
92
|
+
created: "2026-10-10",
|
|
93
|
+
updated: "2026-10-10"
|
|
94
|
+
},
|
|
95
|
+
stableNumbers: true,
|
|
96
|
+
build() {
|
|
97
|
+
const k = new Kit(NAME, preset("ig-portrait"));
|
|
98
|
+
k.quantizeGeometry = true;
|
|
99
|
+
k.brand(
|
|
100
|
+
{ paper: "#0C4A47", text: "#FFF7E6", onPaper: "#F5C443", primary: "#F5C443", onPrimary: "#0C2E2C" },
|
|
101
|
+
{ name: "Cork & Crate", site: "corkandcrate.co" }
|
|
102
|
+
);
|
|
103
|
+
k.palette({ yellow: "#F5C443", coral: "#F2725E", mint: "#8FDCC2", cream: "#FFF7E6", bottle: "#14302C", cork: "#C99A5B", line: "#2E6B66" });
|
|
104
|
+
k.textStyle("Kicker 26", { ...SERIF, size: 34, fontWeight: 400, fontStyle: "italic", lineHeight: 40 });
|
|
105
|
+
k.textStyle("Title 96", { size: 96, fontWeight: 900, letterSpacing: -3.6, lineHeight: 92 });
|
|
106
|
+
k.textStyle("Day 30", { size: 30, fontWeight: 700, lineHeight: 38, fontFeatures: { tnum: 1 } });
|
|
107
|
+
k.textStyle("Hours 30", { ...SERIF, size: 30, fontWeight: 400, lineHeight: 38, fontFeatures: { tnum: 1 } });
|
|
108
|
+
k.textStyle("Pill 28", { size: 28, fontWeight: 800, lineHeight: 34 });
|
|
109
|
+
k.textStyle("Foot 24", { size: 24, fontWeight: 600, letterSpacing: 1, lineHeight: 30 });
|
|
110
|
+
k.component("Hours row", { direction: "HORIZONTAL", gap: 20, width: 620, justify: "SPACE_BETWEEN", padding: { top: 9, right: 0, bottom: 9, left: 0 }, props: { Day: "Mon 1 Jan", Hours: "9 \u2013 5" } }, (id) => {
|
|
111
|
+
k.propText(id, "Day", { style: "Day 30", color: "text", autoWidth: true, name: "Day" });
|
|
112
|
+
k.propText(id, "Hours", { style: "Hours 30", color: "text", autoWidth: true, name: "Hours" });
|
|
113
|
+
});
|
|
114
|
+
const sheet = k.sheet;
|
|
115
|
+
const { width: W, height: H } = k.node(sheet);
|
|
116
|
+
k.flowSheet(sheet, 0, { top: 84, right: 340, bottom: 70, left: 84 }, "paper", "CENTER", "MIN");
|
|
117
|
+
draw(k, sheet, art(W, H));
|
|
118
|
+
k.text(sheet, "Holiday hours at {{brand.name}}", { style: "Kicker 26", color: "onPaper", width: "FILL", name: "Kicker" });
|
|
119
|
+
k.stack(sheet, { height: 22, name: "Gap" });
|
|
120
|
+
k.text(sheet, "Pop in before you pop the cork", { style: "Title 96", color: "text", width: "FILL", name: "Title" });
|
|
121
|
+
k.stack(sheet, { height: 34, name: "Gap" });
|
|
122
|
+
const list = k.stack(sheet, { width: 620, name: "Hours" });
|
|
123
|
+
for (const [i, [d, hrs]] of HOURS.entries()) {
|
|
124
|
+
k.instance(list, "Hours row", { Day: d, Hours: hrs }, { name: "Hours row", width: "FILL" });
|
|
125
|
+
if (i < HOURS.length - 1) k.rect(list, "FILL", 2, "line", { name: "Rule" });
|
|
126
|
+
}
|
|
127
|
+
k.stack(sheet, { height: 34, name: "Gap" });
|
|
128
|
+
const pill = k.stack(sheet, { direction: "HORIZONTAL", width: "HUG", padding: { top: 16, right: 28, bottom: 16, left: 28 }, radius: 40, fill: "primary", name: "Offer" });
|
|
129
|
+
k.text(pill, "15% off any six bottles of bubbly, to 31 Dec", { style: "Pill 28", color: "onPrimary", autoWidth: true, name: "Offer text" });
|
|
130
|
+
k.stack(sheet, { height: 26, name: "Gap" });
|
|
131
|
+
k.text(sheet, "1408 Elm Street \xB7 {{brand.site}}", { style: "Foot 24", color: "onPaper", width: "FILL", name: "Foot" });
|
|
132
|
+
k.textStyle("Title 116", { size: 106, fontWeight: 900, letterSpacing: -4, lineHeight: 100 });
|
|
133
|
+
k.textStyle("Kicker 40", { ...SERIF, size: 40, fontWeight: 400, fontStyle: "italic", lineHeight: 48 });
|
|
134
|
+
const story = {
|
|
135
|
+
preset: "ig-story",
|
|
136
|
+
adjust: (kit, id) => {
|
|
137
|
+
const { width: w, height: h } = kit.node(id);
|
|
138
|
+
const safe = verticalPadding(84);
|
|
139
|
+
redraw(kit, id, art(w, h, { top: safe.top - 84, bottom: safe.bottom - 84 }));
|
|
140
|
+
kit.patch(id, { padding: { top: safe.top, right: 260, bottom: safe.bottom + 160, left: safe.left } });
|
|
141
|
+
restyleAll(kit, id, [["Title", "Title 116"], ["Kicker", "Kicker 40"]]);
|
|
142
|
+
scaleGaps(kit, id, 1.25);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
145
|
+
k.variants(sheet, [story]);
|
|
146
|
+
return k.finish();
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
export {
|
|
151
|
+
holidays_new_years_eve_shop_hours_default
|
|
152
|
+
};
|