@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.
Files changed (229) hide show
  1. package/dist/chunks/{agent-45ZGYKTC.js → agent-NTEAEZBN.js} +1 -1
  2. package/dist/chunks/{build-K6QBTLT7.js → build-W5O2ZVN7.js} +2 -2
  3. package/dist/chunks/{builtin-ZS3HJHZL.js → builtin-KX2SGDND.js} +3 -3
  4. package/dist/chunks/{check-template-RZ7IO333.js → check-template-B2KKE6BW.js} +2 -2
  5. package/dist/chunks/{chunk-ZKHYC3QO.js → chunk-37WES5PM.js} +2 -2
  6. package/dist/chunks/chunk-45JABNLR.js +161 -0
  7. package/dist/chunks/chunk-4OGILN7Y.js +141 -0
  8. package/dist/chunks/{chunk-63X37RCC.js → chunk-5NWVUAWR.js} +4 -4
  9. package/dist/chunks/{chunk-QREG6HEK.js → chunk-67SLLJJB.js} +40 -40
  10. package/dist/chunks/chunk-6DV5JZ5M.js +121 -0
  11. package/dist/chunks/chunk-7Q67MXXL.js +140 -0
  12. package/dist/chunks/{chunk-R5CW4CNP.js → chunk-A6GPFR5O.js} +11 -11
  13. package/dist/chunks/chunk-AISWLDDO.js +895 -0
  14. package/dist/chunks/{chunk-ADZXK6SM.js → chunk-AQGECTRJ.js} +1 -1
  15. package/dist/chunks/chunk-ASWWZNTY.js +130 -0
  16. package/dist/chunks/chunk-BNEFANT2.js +134 -0
  17. package/dist/chunks/{chunk-REJO7GXO.js → chunk-CFEKYNGQ.js} +2 -2
  18. package/dist/chunks/{chunk-5HG4LWF5.js → chunk-D4HEDPVN.js} +161 -0
  19. package/dist/chunks/chunk-DRESZDOP.js +130 -0
  20. package/dist/chunks/{chunk-3W2MSVJA.js → chunk-EBLHS2EG.js} +5 -5
  21. package/dist/chunks/chunk-EHTLT6XJ.js +131 -0
  22. package/dist/chunks/{chunk-2AQK4IIV.js → chunk-EVFG2K4L.js} +1 -1
  23. package/dist/chunks/{chunk-6TJIEERG.js → chunk-F4NTIOTT.js} +26 -26
  24. package/dist/chunks/chunk-FC7B22QS.js +150 -0
  25. package/dist/chunks/{chunk-V6COW3DB.js → chunk-G6MIC23V.js} +1 -1
  26. package/dist/chunks/{chunk-4QBQ4RAA.js → chunk-GODXMHO3.js} +4 -4
  27. package/dist/chunks/chunk-GT22XGDH.js +152 -0
  28. package/dist/chunks/chunk-HL4M53ZR.js +143 -0
  29. package/dist/chunks/{chunk-MPI6SCA7.js → chunk-IDL5KKIC.js} +5 -5
  30. package/dist/chunks/{chunk-HR7HCFPX.js → chunk-IM6HORNC.js} +5 -5
  31. package/dist/chunks/{chunk-UVMU6CXR.js → chunk-IWCZDFXL.js} +17 -17
  32. package/dist/chunks/{chunk-OCSLBM6W.js → chunk-JXAJ6OST.js} +1 -1
  33. package/dist/chunks/{chunk-5WGMPGKY.js → chunk-KS7DVWDB.js} +1 -1
  34. package/dist/chunks/chunk-NHDBQ4G7.js +137 -0
  35. package/dist/chunks/chunk-NKPU5TF2.js +103 -0
  36. package/dist/chunks/chunk-NO734F3F.js +146 -0
  37. package/dist/chunks/{chunk-ASWAIYNC.js → chunk-NR2SFSJU.js} +3 -3
  38. package/dist/chunks/{chunk-CJY4TNOS.js → chunk-O3BEBIDN.js} +3 -1
  39. package/dist/chunks/{chunk-UDO3ZU5T.js → chunk-OR6HMJRM.js} +1 -1
  40. package/dist/chunks/chunk-OTICJQ4T.js +267 -0
  41. package/dist/chunks/chunk-PWZZRGWI.js +141 -0
  42. package/dist/chunks/{chunk-AE6S2M2B.js → chunk-QX4U3VTU.js} +25 -25
  43. package/dist/chunks/{chunk-TRUFIU5W.js → chunk-R3YD6VL6.js} +3 -3
  44. package/dist/chunks/{chunk-YSYZW4VZ.js → chunk-SFPM3UJA.js} +7 -7
  45. package/dist/chunks/chunk-SNXQM4UO.js +115 -0
  46. package/dist/chunks/chunk-T3LV66CQ.js +139 -0
  47. package/dist/chunks/chunk-TDGIO2S7.js +145 -0
  48. package/dist/chunks/chunk-TFNV2UP4.js +87 -0
  49. package/dist/chunks/chunk-UJZXKOTP.js +136 -0
  50. package/dist/chunks/{chunk-QAVWMRRM.js → chunk-V5HI55XO.js} +2 -2
  51. package/dist/chunks/chunk-VVNPBBPL.js +174 -0
  52. package/dist/chunks/{chunk-22RNC42G.js → chunk-YHA45NK5.js} +1 -1
  53. package/dist/chunks/{chunk-27EVM272.js → chunk-YPMT4Y4N.js} +2 -2
  54. package/dist/chunks/chunk-YRSDFRCX.js +122 -0
  55. package/dist/chunks/chunk-ZNARVSMD.js +140 -0
  56. package/dist/chunks/{chunk-3DWOQ4LW.js → chunk-ZTBKAGBN.js} +2 -2
  57. package/dist/chunks/{client-6DUSRTZG.js → client-25NJXQWL.js} +1 -1
  58. package/dist/chunks/{client-XYPBNSQ7.js → client-7AQTKZHV.js} +2 -2
  59. package/dist/chunks/{client-TRFNJJHQ.js → client-LWBTUXQK.js} +2 -2
  60. package/dist/chunks/{client-actions-SSUZUEG7.js → client-actions-3HIRRSOL.js} +4 -4
  61. package/dist/chunks/{dangerous-UX4DHJ7U.js → dangerous-XJOHEWL6.js} +3 -3
  62. package/dist/chunks/{editor-seams-V7ZP7XH3.js → editor-seams-4DREZRTT.js} +9 -9
  63. package/dist/chunks/{editor-store-OIHZT244.js → editor-store-C4VWC23J.js} +1 -1
  64. package/dist/chunks/{export-watermark-4NAP5RVM.js → export-watermark-OKGRZNOU.js} +5 -5
  65. package/dist/chunks/{eyedropper-QXEY7LVL.js → eyedropper-WZYSTUTM.js} +1 -1
  66. package/dist/chunks/{generate-media-JAEHWNF6.js → generate-media-DFSHOPOI.js} +2 -2
  67. package/dist/chunks/{host-IKFYVZS7.js → host-4ZE7SIWR.js} +6 -6
  68. package/dist/chunks/{integrations-U5X2BHVK.js → integrations-LPC35FKX.js} +1 -1
  69. package/dist/chunks/{kit-modules-BAUMECYQ.js → kit-modules-BAKTDLOZ.js} +1 -1
  70. package/dist/chunks/{libraries-Q5TCHWGI.js → libraries-ACERXG2O.js} +5 -5
  71. package/dist/chunks/{live-4XQEGNLA.js → live-ZIVBFX3G.js} +3 -3
  72. package/dist/chunks/{media-tool-OSQR45HY.js → media-tool-2ZPIQKJD.js} +1 -1
  73. package/dist/chunks/{new-file-VVLWHEJ4.js → new-file-XS3KCMGM.js} +3 -3
  74. package/dist/chunks/{plugin-44ZW5UEP.js → plugin-6RNMUP5I.js} +2 -2
  75. package/dist/chunks/{plugin-import-3ISLDX7T.js → plugin-import-UC5BHZFE.js} +13 -13
  76. package/dist/chunks/{presence-WVU4OIUA.js → presence-TLDOMBPD.js} +2 -2
  77. package/dist/chunks/{project-EG7XFEJU.js → project-NMPK4R5M.js} +1 -1
  78. package/dist/chunks/{publish-site-WFIX42D3.js → publish-site-R46ZILSS.js} +6 -6
  79. package/dist/chunks/{publish-store-6BS7OIP4.js → publish-store-MIPHEDLV.js} +4 -4
  80. package/dist/chunks/{raster-actions-37XUQSVZ.js → raster-actions-7EI5THLB.js} +1 -1
  81. package/dist/chunks/{runner-HZ7MU6ER.js → runner-I66TTKKZ.js} +16 -16
  82. package/dist/chunks/{store-PHWBXKNY.js → store-7WMR3JKP.js} +5 -5
  83. package/dist/chunks/{sync-IJNKHQRF.js → sync-OFINS45Q.js} +5 -5
  84. package/dist/chunks/{tabs-G6OTEGA5.js → tabs-PEH6VX3X.js} +8 -8
  85. package/dist/chunks/{team-M2EN4JT5.js → team-GGW3O32G.js} +1 -1
  86. package/dist/chunks/{tools-WDFCY4BH.js → tools-TKCA46ZS.js} +2 -2
  87. package/dist/chunks/{ui-commands-QHFGR33P.js → ui-commands-6K4PYKU5.js} +11 -11
  88. package/dist/chunks/{versions-S7COCZSQ.js → versions-KHRNQFGF.js} +5 -5
  89. package/dist/index.js +4 -4
  90. package/dist/seed/files.json +1 -1
  91. package/dist/templates/count.js +1 -1
  92. package/dist/templates/index.js +125 -101
  93. package/dist/templates/index.json +756 -0
  94. package/dist/templates/motion/landing-hero/index.js +4 -4
  95. package/dist/templates/motion/launch-trailer/document.js +125 -101
  96. package/dist/templates/motion/launch-trailer/index.js +4 -4
  97. package/dist/templates/motion/launch-trailer/scenes.js +3 -3
  98. package/dist/templates/motion/template-wall.js +2 -2
  99. package/dist/templates/print/holidays-christmas-church-newsletter.js +94 -0
  100. package/dist/templates/print/holidays-christmas-eve-invitation.js +94 -0
  101. package/dist/templates/print/holidays-christmas-gift-tags.js +94 -0
  102. package/dist/templates/print/holidays-diwali-party-invitation.js +95 -0
  103. package/dist/templates/print/holidays-easter-activity-sheet.js +94 -0
  104. package/dist/templates/print/holidays-easter-egg-hunt-flyer.js +94 -0
  105. package/dist/templates/print/holidays-eid-dinner-invitation.js +95 -0
  106. package/dist/templates/print/holidays-eid-gift-tags.js +94 -0
  107. package/dist/templates/print/holidays-halloween-party-invitation.js +95 -0
  108. package/dist/templates/print/holidays-halloween-treat-labels.js +94 -0
  109. package/dist/templates/print/holidays-halloween-trunk-or-treat-poster.js +94 -0
  110. package/dist/templates/print/holidays-hanukkah-activity-sheet.js +94 -0
  111. package/dist/templates/print/holidays-hanukkah-party-invitation.js +94 -0
  112. package/dist/templates/print/holidays-lunar-new-year-banquet-menu.js +95 -0
  113. package/dist/templates/print/holidays-new-years-eve-poster.js +94 -0
  114. package/dist/templates/print/holidays-thanksgiving-dinner-menu.js +94 -0
  115. package/dist/templates/print/holidays-thanksgiving-place-cards.js +94 -0
  116. package/dist/templates/print/holidays-valentines-dinner-menu.js +94 -0
  117. package/dist/templates/saas/email-decks.js +2 -2
  118. package/dist/templates/saas/index.js +37 -37
  119. package/dist/templates/saas/launch-kit.js +2 -2
  120. package/dist/templates/saas/launch-video.js +2 -2
  121. package/dist/templates/saas/stores.js +2 -2
  122. package/dist/templates/saas/style-bento.js +2 -2
  123. package/dist/templates/saas/style-dark.js +2 -2
  124. package/dist/templates/saas/style-editorial.js +2 -2
  125. package/dist/templates/saas/style-gradient.js +2 -2
  126. package/dist/templates/saas/style-pastel.js +2 -2
  127. package/dist/templates/saas/style-swiss.js +2 -2
  128. package/dist/templates/slideshow/index.js +3 -3
  129. package/dist/templates/social/holidays-diwali-sweet-shop-post.js +96 -0
  130. package/dist/templates/social/holidays-lunar-new-year-bakery-post.js +96 -0
  131. package/dist/templates/social/holidays-new-years-eve-shop-hours.js +96 -0
  132. package/dist/templates/social/holidays-thanksgiving-pie-orders-post.js +96 -0
  133. package/dist/templates/social/holidays-valentines-florist-post.js +96 -0
  134. package/dist/templates/themes/black-friday-coupons.js +2 -2
  135. package/dist/templates/themes/black-friday-neon.js +2 -2
  136. package/dist/templates/themes/blueprint.js +2 -2
  137. package/dist/templates/themes/broadsheet.js +2 -2
  138. package/dist/templates/themes/cyberpunk.js +2 -2
  139. package/dist/templates/themes/departure-board.js +2 -2
  140. package/dist/templates/themes/festival-presale-family-a.js +2 -2
  141. package/dist/templates/themes/festival-presale-family-b.js +2 -2
  142. package/dist/templates/themes/holidays-shared.js +172 -0
  143. package/dist/templates/themes/holidays.js +107 -1
  144. package/dist/templates/themes/index.js +72 -48
  145. package/dist/templates/themes/lunar-new-year.js +2 -2
  146. package/dist/templates/themes/noir.js +2 -2
  147. package/dist/templates/themes/psychedelic.js +2 -2
  148. package/dist/templates/themes/space-opera.js +2 -2
  149. package/dist/templates/themes/studio.js +3 -3
  150. package/dist/templates/themes/tour-tickets.js +2 -2
  151. package/dist/templates/themes/vaporwave.js +2 -2
  152. package/package.json +1 -1
  153. package/src/templates/print/holidays-christmas-church-newsletter.ts +246 -0
  154. package/src/templates/print/holidays-christmas-eve-invitation.ts +121 -0
  155. package/src/templates/print/holidays-christmas-gift-tags.ts +117 -0
  156. package/src/templates/print/holidays-diwali-party-invitation.ts +98 -0
  157. package/src/templates/print/holidays-easter-activity-sheet.ts +108 -0
  158. package/src/templates/print/holidays-easter-egg-hunt-flyer.ts +118 -0
  159. package/src/templates/print/holidays-eid-dinner-invitation.ts +104 -0
  160. package/src/templates/print/holidays-eid-gift-tags.ts +94 -0
  161. package/src/templates/print/holidays-halloween-party-invitation.ts +101 -0
  162. package/src/templates/print/holidays-halloween-treat-labels.ts +86 -0
  163. package/src/templates/print/holidays-halloween-trunk-or-treat-poster.ts +148 -0
  164. package/src/templates/print/holidays-hanukkah-activity-sheet.ts +112 -0
  165. package/src/templates/print/holidays-hanukkah-party-invitation.ts +112 -0
  166. package/src/templates/print/holidays-lunar-new-year-banquet-menu.ts +110 -0
  167. package/src/templates/print/holidays-new-years-eve-poster.ts +117 -0
  168. package/src/templates/print/holidays-thanksgiving-dinner-menu.ts +110 -0
  169. package/src/templates/print/holidays-thanksgiving-place-cards.ts +80 -0
  170. package/src/templates/print/holidays-valentines-dinner-menu.ts +95 -0
  171. package/src/templates/social/holidays-diwali-sweet-shop-post.ts +121 -0
  172. package/src/templates/social/holidays-lunar-new-year-bakery-post.ts +110 -0
  173. package/src/templates/social/holidays-new-years-eve-shop-hours.ts +118 -0
  174. package/src/templates/social/holidays-thanksgiving-pie-orders-post.ts +115 -0
  175. package/src/templates/social/holidays-valentines-florist-post.ts +102 -0
  176. package/src/templates/themes/holidays-shared.ts +903 -0
  177. package/src/templates/themes/holidays.ts +24 -1
  178. package/types/templates/src/print/holidays-christmas-church-newsletter.d.ts +2 -0
  179. package/types/templates/src/print/holidays-christmas-eve-invitation.d.ts +2 -0
  180. package/types/templates/src/print/holidays-christmas-gift-tags.d.ts +2 -0
  181. package/types/templates/src/print/holidays-diwali-party-invitation.d.ts +2 -0
  182. package/types/templates/src/print/holidays-easter-activity-sheet.d.ts +2 -0
  183. package/types/templates/src/print/holidays-easter-egg-hunt-flyer.d.ts +2 -0
  184. package/types/templates/src/print/holidays-eid-dinner-invitation.d.ts +2 -0
  185. package/types/templates/src/print/holidays-eid-gift-tags.d.ts +2 -0
  186. package/types/templates/src/print/holidays-halloween-party-invitation.d.ts +2 -0
  187. package/types/templates/src/print/holidays-halloween-treat-labels.d.ts +2 -0
  188. package/types/templates/src/print/holidays-halloween-trunk-or-treat-poster.d.ts +2 -0
  189. package/types/templates/src/print/holidays-hanukkah-activity-sheet.d.ts +2 -0
  190. package/types/templates/src/print/holidays-hanukkah-party-invitation.d.ts +2 -0
  191. package/types/templates/src/print/holidays-lunar-new-year-banquet-menu.d.ts +2 -0
  192. package/types/templates/src/print/holidays-new-years-eve-poster.d.ts +2 -0
  193. package/types/templates/src/print/holidays-thanksgiving-dinner-menu.d.ts +2 -0
  194. package/types/templates/src/print/holidays-thanksgiving-place-cards.d.ts +2 -0
  195. package/types/templates/src/print/holidays-valentines-dinner-menu.d.ts +2 -0
  196. package/types/templates/src/social/holidays-diwali-sweet-shop-post.d.ts +2 -0
  197. package/types/templates/src/social/holidays-lunar-new-year-bakery-post.d.ts +2 -0
  198. package/types/templates/src/social/holidays-new-years-eve-shop-hours.d.ts +2 -0
  199. package/types/templates/src/social/holidays-thanksgiving-pie-orders-post.d.ts +2 -0
  200. package/types/templates/src/social/holidays-valentines-florist-post.d.ts +2 -0
  201. package/types/templates/src/themes/holidays-shared.d.ts +374 -0
  202. package/dist/chunks/chunk-OWZLREWX.js +0 -18
  203. package/dist/chunks/{chunk-IFJTWD4O.js → chunk-2R3MZKA2.js} +3 -3
  204. package/dist/chunks/{chunk-P67L32AF.js → chunk-3DBNMCGN.js} +3 -3
  205. package/dist/chunks/{chunk-DZDTVMUO.js → chunk-3VHOXVMF.js} +3 -3
  206. package/dist/chunks/{chunk-2PQI2R5L.js → chunk-64RMGOTG.js} +0 -0
  207. package/dist/chunks/{chunk-7BDCMMSD.js → chunk-6Y46SDFE.js} +3 -3
  208. package/dist/chunks/{chunk-6VCQ4ZEG.js → chunk-AFARXTNQ.js} +3 -3
  209. package/dist/chunks/{chunk-ITSYENCT.js → chunk-BI3M4RUH.js} +3 -3
  210. package/dist/chunks/{chunk-25FM5JIR.js → chunk-BP7CHO7K.js} +3 -3
  211. package/dist/chunks/{chunk-D22534DX.js → chunk-DPTFZDOS.js} +3 -3
  212. package/dist/chunks/{chunk-JWLR6K62.js → chunk-FNUM5W3W.js} +3 -3
  213. package/dist/chunks/{chunk-JPH6HOYU.js → chunk-HJQU5POV.js} +3 -3
  214. package/dist/chunks/{chunk-HQYZ4URA.js → chunk-IJ65QZLL.js} +3 -3
  215. package/dist/chunks/{chunk-47VVF5TM.js → chunk-INT2OPPY.js} +8 -8
  216. package/dist/chunks/{chunk-AYVAHMWQ.js → chunk-JPMLUHZX.js} +3 -3
  217. package/dist/chunks/{chunk-LFYNAAAQ.js → chunk-LMRTRVPC.js} +3 -3
  218. package/dist/chunks/{chunk-HJIMF4NA.js → chunk-NGMCQZA6.js} +3 -3
  219. package/dist/chunks/{chunk-B3ASV6KS.js → chunk-PQBYL7AI.js} +3 -3
  220. package/dist/chunks/{chunk-NHXNUDC5.js → chunk-QD4QORNR.js} +3 -3
  221. package/dist/chunks/{chunk-P6TPDLAF.js → chunk-S3C6L5KF.js} +3 -3
  222. package/dist/chunks/{chunk-TIRPXUK2.js → chunk-S7L2D7NH.js} +3 -3
  223. package/dist/chunks/{chunk-QFGFR5FQ.js → chunk-TYOOL27R.js} +3 -3
  224. package/dist/chunks/{chunk-32V4D45K.js → chunk-TYW7EXV6.js} +3 -3
  225. package/dist/chunks/{chunk-3QIDCP4M.js → chunk-VOEAQIQT.js} +3 -3
  226. package/dist/chunks/{chunk-ASVDOX62.js → chunk-VVUQG4ME.js} +3 -3
  227. package/dist/chunks/{chunk-ZXZ22FKF.js → chunk-XTWKSMJC.js} +3 -3
  228. package/dist/chunks/{chunk-6NG5K7WN.js → chunk-YHEMML5Q.js} +3 -3
  229. package/dist/chunks/{chunk-MVFPEBMY.js → chunk-ZKRSVNY4.js} +3 -3
@@ -0,0 +1,87 @@
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
+ holidays_diwali_sweet_shop_post_default
9
+ } from "./chunk-45JABNLR.js";
10
+ import {
11
+ holidays_lunar_new_year_bakery_post_default
12
+ } from "./chunk-7Q67MXXL.js";
13
+ import {
14
+ holidays_new_years_eve_shop_hours_default
15
+ } from "./chunk-GT22XGDH.js";
16
+ import {
17
+ holidays_thanksgiving_pie_orders_post_default
18
+ } from "./chunk-HL4M53ZR.js";
19
+ import {
20
+ holidays_valentines_florist_post_default
21
+ } from "./chunk-ASWWZNTY.js";
22
+ import {
23
+ holidays_hanukkah_activity_sheet_default
24
+ } from "./chunk-NHDBQ4G7.js";
25
+ import {
26
+ holidays_hanukkah_party_invitation_default
27
+ } from "./chunk-4OGILN7Y.js";
28
+ import {
29
+ holidays_lunar_new_year_banquet_menu_default
30
+ } from "./chunk-UJZXKOTP.js";
31
+ import {
32
+ holidays_new_years_eve_poster_default
33
+ } from "./chunk-PWZZRGWI.js";
34
+ import {
35
+ holidays_thanksgiving_dinner_menu_default
36
+ } from "./chunk-TDGIO2S7.js";
37
+ import {
38
+ holidays_thanksgiving_place_cards_default
39
+ } from "./chunk-NKPU5TF2.js";
40
+ import {
41
+ holidays_valentines_dinner_menu_default
42
+ } from "./chunk-YRSDFRCX.js";
43
+ import {
44
+ holidays_diwali_party_invitation_default
45
+ } from "./chunk-DRESZDOP.js";
46
+ import {
47
+ holidays_easter_activity_sheet_default
48
+ } from "./chunk-EHTLT6XJ.js";
49
+ import {
50
+ holidays_easter_egg_hunt_flyer_default
51
+ } from "./chunk-NO734F3F.js";
52
+ import {
53
+ holidays_eid_dinner_invitation_default
54
+ } from "./chunk-ZNARVSMD.js";
55
+ import {
56
+ holidays_eid_gift_tags_default
57
+ } from "./chunk-6DV5JZ5M.js";
58
+ import {
59
+ holidays_halloween_party_invitation_default
60
+ } from "./chunk-T3LV66CQ.js";
61
+ import {
62
+ holidays_halloween_treat_labels_default
63
+ } from "./chunk-SNXQM4UO.js";
64
+ import {
65
+ holidays_halloween_trunk_or_treat_poster_default
66
+ } from "./chunk-VVNPBBPL.js";
67
+ import {
68
+ holidays_christmas_church_newsletter_default
69
+ } from "./chunk-OTICJQ4T.js";
70
+ import {
71
+ holidays_christmas_eve_invitation_default
72
+ } from "./chunk-FC7B22QS.js";
73
+ import {
74
+ holidays_christmas_gift_tags_default
75
+ } from "./chunk-BNEFANT2.js";
76
+ import {
77
+ init_define_POPCRAFT_COMPONENT_IDS
78
+ } from "./chunk-6VMOKHMF.js";
79
+
80
+ // templates/src/themes/holidays.ts
81
+ init_define_POPCRAFT_COMPONENT_IDS();
82
+ var pack = [holidays_christmas_eve_invitation_default, holidays_christmas_gift_tags_default, holidays_christmas_church_newsletter_default, holidays_hanukkah_party_invitation_default, holidays_hanukkah_activity_sheet_default, holidays_new_years_eve_poster_default, holidays_new_years_eve_shop_hours_default, holidays_valentines_dinner_menu_default, holidays_valentines_florist_post_default, holidays_easter_egg_hunt_flyer_default, holidays_easter_activity_sheet_default, holidays_halloween_party_invitation_default, holidays_halloween_treat_labels_default, holidays_halloween_trunk_or_treat_poster_default, holidays_thanksgiving_dinner_menu_default, holidays_thanksgiving_place_cards_default, holidays_thanksgiving_pie_orders_post_default, holidays_diwali_party_invitation_default, holidays_diwali_sweet_shop_post_default, holidays_eid_dinner_invitation_default, holidays_eid_gift_tags_default, holidays_lunar_new_year_banquet_menu_default, holidays_lunar_new_year_bakery_post_default];
83
+ var holidays_default = pack;
84
+
85
+ export {
86
+ holidays_default
87
+ };
@@ -0,0 +1,136 @@
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
+ branch,
9
+ cloudCurl,
10
+ coin,
11
+ disc,
12
+ doubleRule,
13
+ draw,
14
+ flourishComponent,
15
+ plum,
16
+ redLantern
17
+ } from "./chunk-AISWLDDO.js";
18
+ import {
19
+ SERIF
20
+ } from "./chunk-X23ZWFW2.js";
21
+ import {
22
+ blurred
23
+ } from "./chunk-HVK5T4I5.js";
24
+ import {
25
+ defineTemplate
26
+ } from "./chunk-A44WEVKR.js";
27
+ import {
28
+ Kit,
29
+ preset
30
+ } from "./chunk-T3SGRYUX.js";
31
+ import {
32
+ init_define_POPCRAFT_COMPONENT_IDS
33
+ } from "./chunk-6VMOKHMF.js";
34
+
35
+ // templates/src/print/holidays-lunar-new-year-banquet-menu.ts
36
+ init_define_POPCRAFT_COMPONENT_IDS();
37
+ var NAME = "Lunar New Year banquet menu";
38
+ var PAD = { top: 212, right: 60, bottom: 92, left: 60 };
39
+ var DISHES = [
40
+ ["Prosperity salad, tossed at the table", "Lo hei: toss it high for a good year"],
41
+ ["Crystal prawn and chive dumplings", "Shaped like silver ingots, for wealth"],
42
+ ["Golden spring rolls", "Bars of gold"],
43
+ ["Whole steamed sea bass, ginger and scallion", "Plenty, with some to spare"],
44
+ ["Braised e-fu longevity noodles", "Long noodles for long life: no cutting"],
45
+ ["Soy-glazed duck with lotus leaf rice", "A table that stays together"],
46
+ ["Stir-fried greens with garlic", "A fresh start"],
47
+ ["Sesame tangyuan in ginger syrup, and nian gao", "Reunion, and rising higher every year"]
48
+ ];
49
+ function art(w, h) {
50
+ const s = w / 559, B = 12 * s;
51
+ const l1 = redLantern(92 * s, -B, 118 * s, 48 * s), l2 = redLantern(w - 92 * s, -B, 96 * s, 28 * s);
52
+ const br = branch([{ x: w + B, y: 168 * s }, { x: w - 120 * s, y: 150 * s }, { x: w - 230 * s, y: 172 * s }, { x: w - 330 * s, y: 154 * s }], 6, 5, 50 * s);
53
+ const blossoms = br.ends.slice(0, 9).map((p, i) => plum(p.x, p.y, (i % 3 ? 10 : 14) * s, i));
54
+ const cloudL = cloudCurl(24 * s, h - 44 * s, 130 * s, 1), cloudR = cloudCurl(w - 24 * s, h - 40 * s, 116 * s, -1);
55
+ const coins = [coin(w / 2 - 36 * s, h - 40 * s, 12 * s), coin(w / 2, h - 44 * s, 14 * s), coin(w / 2 + 36 * s, h - 40 * s, 12 * s)];
56
+ const lanterns = [l1, l2];
57
+ return [
58
+ { name: "Frame", paths: doubleRule(w, h, 18 * s, 6 * s), color: "gold", o: { strokeWidth: 1 * s } },
59
+ { name: "Branch", paths: br.limb, color: "bark", o: { strokeWidth: 5 * s } },
60
+ { name: "Twigs", paths: br.twigs, color: "bark", o: { strokeWidth: 2.4 * s } },
61
+ { name: "Blossoms", paths: blossoms.flatMap((b) => b.petals), color: "blossom" },
62
+ { name: "Blossom hearts", paths: blossoms.flatMap((b) => b.heart), color: "gold" },
63
+ { name: "Lantern glow", paths: lanterns.flatMap((l) => l.body), color: "glow", o: { opacity: 0.45, effects: [blurred(16 * s)] } },
64
+ { name: "Lantern cords", paths: lanterns.flatMap((l) => l.cord), color: "gold", o: { strokeWidth: 1.4 * s } },
65
+ { name: "Lanterns", paths: lanterns.flatMap((l) => l.body), color: "lantern" },
66
+ { name: "Lantern ribs", paths: lanterns.flatMap((l) => l.ribs), color: "gold", o: { strokeWidth: 1.4 * s } },
67
+ { name: "Lantern caps", paths: lanterns.flatMap((l) => l.caps), color: "gold" },
68
+ { name: "Tassels", paths: lanterns.flatMap((l) => l.tassel), color: "gold" },
69
+ { name: "Clouds", paths: cloudL, color: "gold", o: { strokeWidth: 2.4 * s } },
70
+ { name: "Clouds", paths: cloudR, color: "gold", o: { strokeWidth: 2.4 * s } },
71
+ { name: "Coins", paths: coins.flatMap((c) => c.coin), color: "gold" },
72
+ { name: "Coin holes", paths: coins.flatMap((c) => c.hole), color: "paperRed" },
73
+ { name: "Coin rims", paths: coins.flatMap((c) => c.rim), color: "goldDeep", o: { strokeWidth: 1 * s } },
74
+ { name: "Dots", paths: [disc(w / 2 - 62 * s, h - 42 * s, 2.4 * s), disc(w / 2 + 62 * s, h - 42 * s, 2.4 * s)], color: "gold" }
75
+ ];
76
+ }
77
+ var holidays_lunar_new_year_banquet_menu_default = defineTemplate({
78
+ id: "print-holidays-lunar-new-year-banquet-menu",
79
+ meta: {
80
+ name: NAME,
81
+ description: "A restaurant menu for the Lunar New Year\u2019s Eve reunion dinner: a deep red card in a fine gold double frame, round red lanterns with gold ribs, a branch of plum blossom, auspicious clouds and coins at the foot, and eight banquet dishes each with the wish it brings the table. A5 with bleed",
82
+ category: "menu",
83
+ tags: ["lunar new year", "chinese new year", "spring festival", "reunion dinner", "banquet", "restaurant", "menu", "lanterns", "plum blossom", "red and gold", "year of the goat", "small business", "print"],
84
+ platforms: ["print"],
85
+ formats: ["card"],
86
+ useCases: ["menu", "event"],
87
+ created: "2026-10-10",
88
+ updated: "2026-10-10"
89
+ },
90
+ stableNumbers: true,
91
+ build() {
92
+ const k = new Kit(NAME, preset("a5"));
93
+ k.quantizeGeometry = true;
94
+ k.brand(
95
+ { paper: "#A3141E", text: "#FFF1D8", onPaper: "#F4C95D", primary: "#F4C95D", onPrimary: "#A3141E" },
96
+ { name: "Golden Lotus" }
97
+ );
98
+ k.palette({ gold: "#E9BC52", goldDeep: "#B0852A", lantern: "#D8242F", glow: "#FF7A45", blossom: "#F7C6CF", bark: "#4A1A12", paperRed: "#A3141E" });
99
+ k.textStyle("Kicker 11", { size: 11, fontWeight: 700, letterSpacing: 3.4, lineHeight: 16 });
100
+ k.textStyle("Title 40", { ...SERIF, size: 40, fontWeight: 700, letterSpacing: -0.6, lineHeight: 44 });
101
+ k.textStyle("Greeting 15", { ...SERIF, size: 15, fontWeight: 400, fontStyle: "italic", lineHeight: 20 });
102
+ k.textStyle("Dish 14", { ...SERIF, size: 14, fontWeight: 600, lineHeight: 18 });
103
+ k.textStyle("Wish 10.5", { ...SERIF, size: 10.5, fontWeight: 400, fontStyle: "italic", lineHeight: 14 });
104
+ k.textStyle("Price 11", { size: 11, fontWeight: 700, letterSpacing: 1.2, lineHeight: 16 });
105
+ const DW = Math.round(k.node(k.sheet).width - PAD.left - PAD.right);
106
+ k.component("Dish", { gap: 1, width: DW, align: "CENTER", props: { Dish: "Dish", Wish: "What it wishes you" } }, (id) => {
107
+ k.propText(id, "Dish", { style: "Dish 14", color: "text", align: "CENTER", width: "FILL", name: "Dish name" });
108
+ k.propText(id, "Wish", { style: "Wish 10.5", color: "onPaper", align: "CENTER", width: "FILL", name: "Wish" });
109
+ });
110
+ flourishComponent(k, "Coin rule", "onPaper", disc(0, 0, 6), { rule: 40, size: 8 });
111
+ const sheet = k.sheet;
112
+ const { width: W, height: H } = k.node(sheet);
113
+ k.flowSheet(sheet, 0, PAD, "paper", "MIN", "CENTER");
114
+ draw(k, sheet, art(W, H));
115
+ const c = { align: "CENTER", width: "FILL" };
116
+ k.text(sheet, "FRIDAY 5 FEBRUARY \xB7 NEW YEAR\u2019S EVE", { style: "Kicker 11", color: "onPaper", ...c, name: "Kicker" });
117
+ k.stack(sheet, { height: 6, name: "Gap" });
118
+ k.text(sheet, "Reunion Dinner", { style: "Title 40", color: "text", ...c, name: "Title" });
119
+ k.text(sheet, "Gong hei fat choy, and welcome to the Year of the Goat", { style: "Greeting 15", color: "onPaper", ...c, name: "Greeting" });
120
+ k.stack(sheet, { height: 14, name: "Gap" });
121
+ k.instance(sheet, "Coin rule", {}, { name: "Divider" });
122
+ k.stack(sheet, { height: 14, name: "Gap" });
123
+ for (const [i, [dish, wish]] of DISHES.entries()) {
124
+ k.instance(sheet, "Dish", { Dish: dish, Wish: wish }, { name: "Dish", width: "FILL" });
125
+ if (i < DISHES.length - 1) k.stack(sheet, { height: 6, name: "Gap" });
126
+ }
127
+ k.stack(sheet, { height: 16, name: "Gap" });
128
+ k.text(sheet, "$388 PER TABLE OF TEN \xB7 SEATINGS AT 5:30 AND 8", { style: "Price 11", color: "onPaper", ...c, name: "Price" });
129
+ k.text(sheet, "{{brand.name}}, 136-20 41st Avenue, Flushing", { style: "Wish 10.5", color: "text", ...c, name: "Address" });
130
+ return k.finish();
131
+ }
132
+ });
133
+
134
+ export {
135
+ holidays_lunar_new_year_banquet_menu_default
136
+ };
@@ -28,10 +28,10 @@ import {
28
28
  requestImageAction,
29
29
  sizeForAspect,
30
30
  vectorSupport
31
- } from "./chunk-CJY4TNOS.js";
31
+ } from "./chunk-O3BEBIDN.js";
32
32
  import {
33
33
  useEditorStore
34
- } from "./chunk-HR7HCFPX.js";
34
+ } from "./chunk-IM6HORNC.js";
35
35
  import {
36
36
  getActiveRenderer
37
37
  } from "./chunk-ILG7UWXL.js";
@@ -0,0 +1,174 @@
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
+ along,
9
+ bat,
10
+ candyCorn,
11
+ disc,
12
+ draw,
13
+ egg,
14
+ jackFace,
15
+ polyP,
16
+ printVariant,
17
+ pumpkin,
18
+ quad,
19
+ rectPath,
20
+ roundRect
21
+ } from "./chunk-AISWLDDO.js";
22
+ import {
23
+ SERIF
24
+ } from "./chunk-X23ZWFW2.js";
25
+ import {
26
+ defineTemplate
27
+ } from "./chunk-A44WEVKR.js";
28
+ import {
29
+ Kit,
30
+ preset
31
+ } from "./chunk-T3SGRYUX.js";
32
+ import {
33
+ init_define_POPCRAFT_COMPONENT_IDS
34
+ } from "./chunk-6VMOKHMF.js";
35
+
36
+ // templates/src/print/holidays-halloween-trunk-or-treat-poster.ts
37
+ init_define_POPCRAFT_COMPONENT_IDS();
38
+ var NAME = "Trunk-or-treat poster";
39
+ var PAD = { top: 80, right: 72, bottom: 64, left: 72 };
40
+ function car(x, ground, s) {
41
+ const u = (v) => v * s;
42
+ const body = [roundRect(x, ground - u(150), u(520), u(110), u(30)), polyP([{ x: x + u(150), y: ground - u(146) }, { x: x + u(210), y: ground - u(250) }, { x: x + u(420), y: ground - u(250) }, { x: x + u(500), y: ground - u(146) }])];
43
+ const windows = [polyP([{ x: x + u(232), y: ground - u(232) }, { x: x + u(318), y: ground - u(232) }, { x: x + u(318), y: ground - u(160) }, { x: x + u(196), y: ground - u(160) }]), polyP([{ x: x + u(332), y: ground - u(232) }, { x: x + u(412), y: ground - u(232) }, { x: x + u(472), y: ground - u(160) }, { x: x + u(332), y: ground - u(160) }])];
44
+ const wheels = [disc(x + u(110), ground - u(36), u(46)), disc(x + u(420), ground - u(36), u(46))];
45
+ const hubs = [disc(x + u(110), ground - u(36), u(18)), disc(x + u(420), ground - u(36), u(18))];
46
+ const gate = [polyP([{ x: x + u(170), y: ground - u(252) }, { x: x + u(40), y: ground - u(330) }, { x: x - u(10), y: ground - u(316) }, { x: x + u(150), y: ground - u(240) }])];
47
+ const boot = [polyP([{ x: x + u(16), y: ground - u(146) }, { x: x + u(160), y: ground - u(146) }, { x: x + u(200), y: ground - u(236) }, { x: x + u(150), y: ground - u(240) }])];
48
+ return { body, windows, wheels, hubs, gate, boot };
49
+ }
50
+ function art(w, h) {
51
+ const s = w / 1056, B = 12;
52
+ const dots = [];
53
+ for (let row = 0; row < 16; row++) for (let col = 0; col < 40; col++) {
54
+ const x = -B + col * 28 * s + row % 2 * 14 * s, y = -B + row * 26 * s, r = Math.max(0, (1 - row / 16) * 10 * s);
55
+ if (r > 0.6) dots.push(disc(x, y, r));
56
+ }
57
+ const g = h - 420 * s, U = 1.5 * s, X = (w - 520 * U) / 2 + 40 * s;
58
+ const c = car(X, g, U);
59
+ const floor = g - 150 * U;
60
+ const pumps = [[60, 70, 54], [118, 50, 40], [24, 44, 34]].map(([dx, pw, ph]) => ({ x: X + dx * U, y: floor, pw: pw * U, ph: ph * U, p: pumpkin(X + dx * U, floor, pw * U, ph * U) }));
61
+ const corn = [candyCorn(X + 96 * U, floor - 50 * U, 26 * U, -0.4), candyCorn(X + 140 * U, floor - 46 * U, 24 * U, 0.3), candyCorn(X + 8 * U, floor - 40 * U, 22 * U, 0.7)];
62
+ const ga = { x: X + 150 * U, y: g - 240 * U }, gb = { x: X - 10 * U, y: g - 316 * U };
63
+ const bunting = [0, 1, 2, 3, 4, 5].map((i) => {
64
+ const t0 = 0.04 + i * 0.16, t1 = t0 + 0.12;
65
+ const p0 = { x: ga.x + (gb.x - ga.x) * t0, y: ga.y + (gb.y - ga.y) * t0 }, p1 = { x: ga.x + (gb.x - ga.x) * t1, y: ga.y + (gb.y - ga.y) * t1 };
66
+ return polyP([p0, p1, { x: (p0.x + p1.x) / 2, y: (p0.y + p1.y) / 2 + 30 * U }]);
67
+ });
68
+ const wire = [], bulbs = [[], [], []];
69
+ for (let span = 0; span < 3; span++) {
70
+ const a = { x: -B + span * (w + 2 * B) / 3, y: 600 * s }, z = { x: -B + (span + 1) * (w + 2 * B) / 3, y: 600 * s }, m = { x: (a.x + z.x) / 2, y: 680 * s };
71
+ wire.push(quad(a, m, z, 16));
72
+ for (let i = 1; i < 6; i++) {
73
+ const q = along(a, m, z, i / 6).p;
74
+ bulbs[(i + span) % 3].push(egg(q.x, q.y + 16 * s, 16 * s, 24 * s, Math.PI));
75
+ }
76
+ }
77
+ const bats = [[0.16, 0.3, 70, 0.3], [0.82, 0.26, 90, -0.2], [0.9, 0.42, 50, 0.4], [0.08, 0.44, 46, -0.3]].map(([x, y, sz, f]) => bat(w * x, h * y, sz * s, f));
78
+ return [
79
+ { name: "Halftone", paths: dots, color: "orangeDeep", o: { opacity: 0.55 } },
80
+ ...bats.map((b) => ({ name: "Bat", paths: [b], color: "purple" })),
81
+ { name: "Light wire", paths: wire, color: "purple", o: { strokeWidth: 2.4 * s } },
82
+ { name: "Bulbs", paths: bulbs[0], color: "teal" },
83
+ { name: "Bulbs", paths: bulbs[1], color: "cream" },
84
+ { name: "Bulbs", paths: bulbs[2], color: "purpleDeep" },
85
+ { name: "Asphalt", paths: [rectPath(-B, g - 6 * s, w + 2 * B, h - g + 6 * s + B)], color: "purple" },
86
+ { name: "Kerb", paths: [rectPath(-B, g - 6 * s, w + 2 * B, 6 * s)], color: "orangeDeep" },
87
+ { name: "Car", paths: c.body, color: "teal" },
88
+ { name: "Tailgate", paths: c.gate, color: "teal" },
89
+ { name: "Boot", paths: c.boot, color: "purpleDeep" },
90
+ { name: "Car windows", paths: c.windows, color: "purpleDeep" },
91
+ { name: "Wheels", paths: c.wheels, color: "purpleDeep" },
92
+ { name: "Hubs", paths: c.hubs, color: "orange" },
93
+ { name: "Bunting", paths: bunting.filter((_, i) => i % 2 === 0), color: "orange" },
94
+ { name: "Bunting", paths: bunting.filter((_, i) => i % 2 === 1), color: "cream" },
95
+ { name: "Boot pumpkins", paths: pumps.flatMap((p) => p.p.lobes), color: "orange" },
96
+ { name: "Boot pumpkin creases", paths: pumps.flatMap((p) => p.p.creases), color: "orangeDeep", o: { strokeWidth: 2 * s } },
97
+ { name: "Boot pumpkin stems", paths: pumps.flatMap((p) => p.p.stem), color: "purpleDeep" },
98
+ { name: "Boot pumpkin faces", paths: jackFace(pumps[0].x, pumps[0].y - pumps[0].ph * 0.5, pumps[0].pw * 0.8), color: "purpleDeep" },
99
+ { name: "Candy corn", paths: corn.flatMap((k) => [...k.base, ...k.mid, ...k.tip]), color: "cream" }
100
+ ];
101
+ }
102
+ var holidays_halloween_trunk_or_treat_poster_default = defineTemplate({
103
+ id: "print-holidays-halloween-trunk-or-treat-poster",
104
+ meta: {
105
+ name: NAME,
106
+ description: "A two-colour screenprint-style poster for a church car-park trunk-or-treat: a halftone sky behind \u201CTrunk or Treat\u201D in huge capitals, a hatchback with its boot open and spilling pumpkins, candy and bunting, and the details in two columns: when and where, the costume parade, the best-trunk prize and the teal-pumpkin table of allergy-friendly treats. Tabloid with bleed, and a US Letter flyer",
107
+ category: "poster",
108
+ tags: ["halloween", "trunk or treat", "church", "community", "kids", "family", "costume parade", "teal pumpkin", "screenprint", "retro", "poster", "flyer", "print", "event"],
109
+ platforms: ["print"],
110
+ formats: ["poster", "flyer"],
111
+ useCases: ["event", "announcement"],
112
+ created: "2026-10-10",
113
+ updated: "2026-10-10"
114
+ },
115
+ stableNumbers: true,
116
+ build() {
117
+ const k = new Kit(NAME, preset("tabloid"));
118
+ k.quantizeGeometry = true;
119
+ k.brand(
120
+ { paper: "#F28A2E", text: "#2A1840", onPaper: "#3E2559", primary: "#2A1840", onPrimary: "#FFE9CC" },
121
+ { name: "Grace Community Church", site: "gracecommunity.org/trunk" }
122
+ );
123
+ k.palette({ orange: "#F28A2E", orangeDeep: "#D9661A", purple: "#2A1840", purpleDeep: "#1A0E29", teal: "#3FB3A6", cream: "#FFE9CC" });
124
+ k.textStyle("Kicker 30", { size: 30, fontWeight: 800, letterSpacing: 8, lineHeight: 38 });
125
+ k.textStyle("Title 176", { size: 176, fontWeight: 900, letterSpacing: -7, lineHeight: 150 });
126
+ k.textStyle("Sub 34", { ...SERIF, size: 34, fontWeight: 700, fontStyle: "italic", lineHeight: 42 });
127
+ k.textStyle("Col head 22", { size: 22, fontWeight: 800, letterSpacing: 3, lineHeight: 28 });
128
+ k.textStyle("Col 22", { ...SERIF, size: 22, fontWeight: 400, lineHeight: 31 });
129
+ k.textStyle("Foot 22", { size: 22, fontWeight: 700, letterSpacing: 1, lineHeight: 28 });
130
+ k.component("Detail", { gap: 6, width: 420, props: { Head: "WHEN", Text: "What happens" } }, (id) => {
131
+ k.propText(id, "Head", { style: "Col head 22", color: "cream", width: "FILL", name: "Detail head" });
132
+ k.propText(id, "Text", { style: "Col 22", color: "cream", width: "FILL", name: "Detail text" });
133
+ });
134
+ const sheet = k.sheet;
135
+ const { width: W, height: H } = k.node(sheet);
136
+ k.flowSheet(sheet, 0, PAD, "paper", "MIN", "CENTER");
137
+ draw(k, sheet, art(W, H));
138
+ const c = { align: "CENTER", width: "FILL" };
139
+ k.text(sheet, "FRIDAY 30 OCTOBER \xB7 5:30\u20137:30 PM", { style: "Kicker 30", color: "text", ...c, name: "Kicker" });
140
+ k.stack(sheet, { height: 14, name: "Gap" });
141
+ k.text(sheet, "TRUNK\nOR TREAT", { style: "Title 176", color: "text", ...c, name: "Title" });
142
+ k.stack(sheet, { height: 14, name: "Gap" });
143
+ k.text(sheet, "Safe, bright, and the candy comes to you", { style: "Sub 34", color: "text", ...c, name: "Sub" });
144
+ k.stack(sheet, { width: "FILL", height: "FILL", name: "Car space" });
145
+ const cols = k.stack(sheet, { direction: "HORIZONTAL", gap: 48, width: "HUG", name: "Details" });
146
+ const left = k.stack(cols, { gap: 22, width: 420, name: "Left" });
147
+ const right = k.stack(cols, { gap: 22, width: 420, name: "Right" });
148
+ k.instance(left, "Detail", { Head: "WHERE", Text: "The {{brand.name}} car park, 1100 Elm Avenue. Come in costume; grown-ups too." }, { name: "Detail", width: "FILL" });
149
+ k.instance(left, "Detail", { Head: "COSTUME PARADE", Text: "Round the car park at 6:30, with a prize for every age group." }, { name: "Detail", width: "FILL" });
150
+ k.instance(right, "Detail", { Head: "DECORATE A TRUNK", Text: "Sign up by 23 October. Best-dressed trunk wins a $50 pumpkin-patch voucher." }, { name: "Detail", width: "FILL" });
151
+ k.instance(right, "Detail", { Head: "TEAL PUMPKIN TABLE", Text: "Allergy-friendly treats and small toys, no nuts anywhere near it." }, { name: "Detail", width: "FILL" });
152
+ k.stack(sheet, { height: 34, name: "Gap" });
153
+ k.text(sheet, "Free \xB7 hot cider and doughnuts \xB7 {{brand.site}}", { style: "Foot 22", color: "cream", ...c, name: "Foot" });
154
+ k.textStyle("Kicker 15", { size: 15, fontWeight: 800, letterSpacing: 4, lineHeight: 19 });
155
+ k.textStyle("Title 88", { size: 86, fontWeight: 900, letterSpacing: -3.4, lineHeight: 74 });
156
+ k.textStyle("Sub 17", { ...SERIF, size: 17, fontWeight: 700, fontStyle: "italic", lineHeight: 21 });
157
+ k.textStyle("Foot 11", { size: 11, fontWeight: 700, letterSpacing: 0.6, lineHeight: 14 });
158
+ k.variants(sheet, [printVariant("us-letter", {
159
+ art,
160
+ pad: PAD,
161
+ masterWidth: W,
162
+ styles: [["Kicker", "Kicker 15"], ["Title", "Title 88"], ["Sub", "Sub 17"], ["Foot", "Foot 11"]],
163
+ more: (kit, id) => {
164
+ for (const n of kit.named(id, "Details")) kit.patch(n, { itemSpacing: 22 });
165
+ for (const n of [...kit.named(id, "Left"), ...kit.named(id, "Right")]) kit.patch(n, { width: 320, itemSpacing: 10 });
166
+ }
167
+ })]);
168
+ return k.finish();
169
+ }
170
+ });
171
+
172
+ export {
173
+ holidays_halloween_trunk_or_treat_poster_default
174
+ };
@@ -6,7 +6,7 @@ const __filename = __popcraftPath(import.meta.url);
6
6
  const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  SCENE_BUILDERS
9
- } from "./chunk-5WGMPGKY.js";
9
+ } from "./chunk-KS7DVWDB.js";
10
10
  import {
11
11
  COLORS,
12
12
  DURATION_MS,
@@ -6,13 +6,13 @@ const __filename = __popcraftPath(import.meta.url);
6
6
  const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  activeTeamWorkspaceId
9
- } from "./chunk-2AQK4IIV.js";
9
+ } from "./chunk-EVFG2K4L.js";
10
10
  import {
11
11
  prepareTemplate
12
12
  } from "./chunk-XFB6EZVY.js";
13
13
  import {
14
14
  markLibraryDocument
15
- } from "./chunk-HR7HCFPX.js";
15
+ } from "./chunk-IM6HORNC.js";
16
16
  import {
17
17
  listDocMetas,
18
18
  saveDocSnapshot
@@ -0,0 +1,122 @@
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
+ disc,
9
+ draw,
10
+ flourishComponent,
11
+ heart,
12
+ leaf,
13
+ quad,
14
+ rose
15
+ } from "./chunk-AISWLDDO.js";
16
+ import {
17
+ SERIF
18
+ } from "./chunk-X23ZWFW2.js";
19
+ import {
20
+ defineTemplate
21
+ } from "./chunk-A44WEVKR.js";
22
+ import {
23
+ Kit,
24
+ preset
25
+ } from "./chunk-T3SGRYUX.js";
26
+ import {
27
+ init_define_POPCRAFT_COMPONENT_IDS
28
+ } from "./chunk-6VMOKHMF.js";
29
+
30
+ // templates/src/print/holidays-valentines-dinner-menu.ts
31
+ init_define_POPCRAFT_COMPONENT_IDS();
32
+ var NAME = "Valentine\u2019s dinner menu";
33
+ var PAD = { top: 214, right: 40, bottom: 40, left: 40 };
34
+ var COURSES = [
35
+ ["APERITIVO", "Blood-orange spritz", "or a glass of Franciacorta ros\xE9"],
36
+ ["ANTIPASTO", "Burrata, roasted beets, pistachio", "with warm focaccia from our oven"],
37
+ ["PRIMO", "Heart-shaped ravioli of ricotta and lemon", "brown butter, sage, a little black pepper"],
38
+ ["SECONDO", "Slow-cooked short rib, soft polenta", "or wild mushroom and chestnut risotto"],
39
+ ["DOLCE", "Dark chocolate torta for two", "raspberries, vanilla mascarpone"]
40
+ ];
41
+ function art(w, h) {
42
+ const s = w / 374, B = 12 * s;
43
+ const r1 = rose(w - 70 * s, 64 * s, 44 * s, 3), r2 = rose(w - 158 * s, 22 * s, 32 * s, 7), bud = rose(56 * s, 40 * s, 18 * s, 9);
44
+ const stem = [quad({ x: w + B, y: 150 * s }, { x: w - 130 * s, y: 128 * s }, { x: 40 * s, y: 50 * s }, 24)];
45
+ const leaves = [leaf({ x: w - 40 * s, y: 132 * s }, 40 * s, 16 * s, 2.7), leaf({ x: w - 110 * s, y: 118 * s }, 36 * s, 15 * s, 3.5), leaf({ x: w - 200 * s, y: 104 * s }, 34 * s, 14 * s, 2.6), leaf({ x: w - 250 * s, y: 92 * s }, 30 * s, 12 * s, 3.6), leaf({ x: 110 * s, y: 66 * s }, 28 * s, 11 * s, 2.7)];
46
+ const petal = (x, y, r, t) => heart(x, y, r * 2 * s, t);
47
+ return [
48
+ { name: "Stem", paths: stem, color: "leaf", o: { strokeWidth: 2.2 * s } },
49
+ { name: "Leaves", paths: leaves, color: "leaf" },
50
+ { name: "Rose petals outer", paths: [...r1.outer, ...r2.outer, ...bud.outer], color: "rose" },
51
+ { name: "Rose petals inner", paths: [...r1.inner, ...r2.inner, ...bud.inner], color: "roseDeep" },
52
+ { name: "Rose edges", paths: [...r1.outer, ...r2.outer], color: "roseDeep", o: { strokeWidth: 0.8 * s, opacity: 0.5 } },
53
+ { name: "Petals", paths: [petal(16 * s, h - 40 * s, 7, 0.4), petal(30 * s, h - 18 * s, 5, 1.2)], color: "rose", o: { opacity: 0.7 } },
54
+ { name: "Petals", paths: [petal(w - 18 * s, h - 30 * s, 6, -0.6), petal(w - 34 * s, h - 12 * s, 4, 0.2)], color: "rose", o: { opacity: 0.55 } },
55
+ { name: "Dots", paths: [disc(26 * s, 150 * s, 2 * s), disc(40 * s, 166 * s, 1.4 * s)], color: "primary" }
56
+ ];
57
+ }
58
+ var holidays_valentines_dinner_menu_default = defineTemplate({
59
+ id: "print-holidays-valentines-dinner-menu",
60
+ meta: {
61
+ name: NAME,
62
+ description: "A table menu for a small restaurant\u2019s Valentine\u2019s supper: roses seen from above climb in from the corner of a blush card, the five courses are set in a light serif with small-capital course names between hairlines, and the price and wine pairing sit at the foot. DL to stand on each table, with bleed",
63
+ category: "menu",
64
+ tags: ["valentine\u2019s day", "valentines", "menu", "restaurant", "dinner", "prix fixe", "tasting menu", "roses", "romantic", "italian", "small business", "print"],
65
+ platforms: ["print"],
66
+ formats: ["card"],
67
+ useCases: ["menu", "event"],
68
+ created: "2026-10-10",
69
+ updated: "2026-10-10"
70
+ },
71
+ stableNumbers: true,
72
+ build() {
73
+ const k = new Kit(NAME, preset("dl-flyer"));
74
+ k.quantizeGeometry = true;
75
+ k.brand(
76
+ { paper: "#F8E9E4", text: "#4A1722", onPaper: "#7B3A44", primary: "#9E2B3E", onPrimary: "#FFF4F1", line: "#E3BFC0" },
77
+ { name: "Osteria Lina" }
78
+ );
79
+ k.palette({ rose: "#D9566E", roseDeep: "#A12E46", leaf: "#5F7A5A" });
80
+ k.textStyle("Kicker 9", { size: 9, fontWeight: 700, letterSpacing: 2.6, lineHeight: 13 });
81
+ k.textStyle("Title 34", { ...SERIF, size: 34, fontWeight: 300, fontStyle: "italic", letterSpacing: -0.6, lineHeight: 36 });
82
+ k.textStyle("Date 11", { ...SERIF, size: 11, fontWeight: 400, lineHeight: 15 });
83
+ k.textStyle("Course 8", { size: 8, fontWeight: 700, letterSpacing: 2.4, lineHeight: 11 });
84
+ k.textStyle("Dish 14", { ...SERIF, size: 14, fontWeight: 500, lineHeight: 18 });
85
+ k.textStyle("Note 10", { ...SERIF, size: 10, fontWeight: 400, fontStyle: "italic", lineHeight: 14 });
86
+ k.textStyle("Price 11", { size: 11, fontWeight: 600, letterSpacing: 0.4, lineHeight: 16 });
87
+ k.component("Course", { gap: 3, width: 294, align: "CENTER", props: { Course: "COURSE", Dish: "Dish", Note: "How it comes" } }, (id) => {
88
+ k.propText(id, "Course", { style: "Course 8", color: "onPaper", align: "CENTER", width: "FILL", name: "Course name" });
89
+ k.propText(id, "Dish", { style: "Dish 14", color: "text", align: "CENTER", width: "FILL", name: "Dish" });
90
+ k.propText(id, "Note", { style: "Note 10", color: "onPaper", align: "CENTER", width: "FILL", name: "Note" });
91
+ });
92
+ flourishComponent(k, "Heart rule", "primary", heart(0, 0, 10), { rule: 30, size: 8 });
93
+ const sheet = k.sheet;
94
+ const { width: W, height: H } = k.node(sheet);
95
+ k.flowSheet(sheet, 0, PAD, "paper", "MIN", "CENTER");
96
+ draw(k, sheet, art(W, H));
97
+ const c = { align: "CENTER", width: "FILL" };
98
+ k.text(sheet, "SATURDAY 13 & SUNDAY 14 FEBRUARY", { style: "Kicker 9", color: "onPaper", ...c, name: "Kicker" });
99
+ k.stack(sheet, { height: 8, name: "Gap" });
100
+ k.text(sheet, "A supper for two", { style: "Title 34", color: "text", ...c, name: "Title" });
101
+ k.text(sheet, "Valentine\u2019s at {{brand.name}}", { style: "Date 11", color: "onPaper", ...c, name: "Sub" });
102
+ k.stack(sheet, { height: 18, name: "Gap" });
103
+ for (const [i, [course, dish, note]] of COURSES.entries()) {
104
+ k.instance(sheet, "Course", { Course: course, Dish: dish, Note: note }, { name: "Course", width: "FILL" });
105
+ if (i < COURSES.length - 1) {
106
+ k.stack(sheet, { height: 10, name: "Gap" });
107
+ k.rect(sheet, 40, 1, "line", { name: "Hairline" });
108
+ k.stack(sheet, { height: 10, name: "Gap" });
109
+ }
110
+ }
111
+ k.stack(sheet, { height: 20, name: "Gap" });
112
+ k.instance(sheet, "Heart rule", {}, { name: "Divider" });
113
+ k.stack(sheet, { height: 10, name: "Gap" });
114
+ k.text(sheet, "$85 per person \xB7 wine pairing $40", { style: "Price 11", color: "text", ...c, name: "Price" });
115
+ k.text(sheet, "Please tell us about any allergies. Sittings at 6 and 8:30.", { style: "Note 10", color: "onPaper", ...c, name: "Allergies" });
116
+ return k.finish();
117
+ }
118
+ });
119
+
120
+ export {
121
+ holidays_valentines_dinner_menu_default
122
+ };