@popcraft/kit 0.30.0 → 0.32.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/chunks/{agent-CGSIEC2R.js → agent-LNZDZLDR.js} +1 -1
  2. package/dist/chunks/{build-AUXXY3JX.js → build-AKMRSWRB.js} +2 -2
  3. package/dist/chunks/{builtin-Q5UN4DWS.js → builtin-KY56DU2Y.js} +3 -3
  4. package/dist/chunks/{check-template-2EKU4JL7.js → check-template-OYCBJNDF.js} +2 -2
  5. package/dist/chunks/{chunk-YT6TGRM4.js → chunk-2PEG56PC.js} +40 -26
  6. package/dist/chunks/{chunk-KOKO3HTP.js → chunk-3NI5OGFT.js} +1 -1
  7. package/dist/chunks/{chunk-TQPKOPCW.js → chunk-3ZO43HDI.js} +2 -2
  8. package/dist/chunks/{chunk-MJ6VIF3D.js → chunk-4X5G4QPZ.js} +1 -1
  9. package/dist/chunks/{chunk-3MAEAHID.js → chunk-6CRT7IDI.js} +2 -2
  10. package/dist/chunks/chunk-6S72I27Z.js +194 -0
  11. package/dist/chunks/chunk-7DKGI65Y.js +305 -0
  12. package/dist/chunks/chunk-APBRV4W6.js +71 -0
  13. package/dist/chunks/{chunk-AN3H4JWT.js → chunk-APVJKUJP.js} +4 -4
  14. package/dist/chunks/chunk-CGNNKKW7.js +70 -0
  15. package/dist/chunks/{chunk-IPEOO7PN.js → chunk-CKBPEGTH.js} +2 -2
  16. package/dist/chunks/chunk-COJM27N2.js +73 -0
  17. package/dist/chunks/chunk-CVB5F7FJ.js +92 -0
  18. package/dist/chunks/{chunk-DVX7UAKA.js → chunk-DQ7AF2R5.js} +1 -1
  19. package/dist/chunks/{chunk-UHQTNURS.js → chunk-DVD56API.js} +5 -5
  20. package/dist/chunks/{chunk-UM6QUOOH.js → chunk-DZIPU2Q4.js} +3 -3
  21. package/dist/chunks/{chunk-7QYQVENQ.js → chunk-FC2FGSU2.js} +5 -5
  22. package/dist/chunks/{chunk-T2GF6JE3.js → chunk-GAZ57RX2.js} +1 -1
  23. package/dist/chunks/{chunk-R3D5OMSG.js → chunk-GF6N47NL.js} +1 -1
  24. package/dist/chunks/{chunk-3DNAX4HN.js → chunk-HBPURYPZ.js} +2 -2
  25. package/dist/chunks/{chunk-7J4MGACN.js → chunk-HN2A65AT.js} +10 -10
  26. package/dist/chunks/{chunk-HST5H23G.js → chunk-JRQ4ZPRK.js} +1 -1
  27. package/dist/chunks/chunk-LP7LPUQJ.js +81 -0
  28. package/dist/chunks/chunk-M2LWLS56.js +65 -0
  29. package/dist/chunks/{chunk-GT5X67P7.js → chunk-MFPMMKHP.js} +7 -7
  30. package/dist/chunks/{chunk-LE33OZ4V.js → chunk-N2RBQBUE.js} +43 -43
  31. package/dist/chunks/{chunk-DUYDXAR5.js → chunk-O3W7HYS7.js} +1 -1
  32. package/dist/chunks/chunk-OXI222BA.js +54 -0
  33. package/dist/chunks/chunk-P23KECK3.js +57 -0
  34. package/dist/chunks/{chunk-LNQN4PGS.js → chunk-P5M5QCAJ.js} +24 -24
  35. package/dist/chunks/{chunk-X3HT5IHG.js → chunk-POZOGQG7.js} +11 -11
  36. package/dist/chunks/{chunk-K7OOOI7B.js → chunk-QGE2XW66.js} +4 -4
  37. package/dist/chunks/{chunk-STG7FEIQ.js → chunk-S4Y3VMQH.js} +3 -3
  38. package/dist/chunks/chunk-UBT4DZYW.js +304 -0
  39. package/dist/chunks/chunk-UJTTWR5P.js +71 -0
  40. package/dist/chunks/{chunk-652VC4P7.js → chunk-UNAAYJKD.js} +39 -39
  41. package/dist/chunks/{chunk-AXKXWL35.js → chunk-WKKHCEXN.js} +5 -5
  42. package/dist/chunks/chunk-X22CGIKE.js +75 -0
  43. package/dist/chunks/chunk-X4UI5JKC.js +74 -0
  44. package/dist/chunks/chunk-XQJ2VVC6.js +69 -0
  45. package/dist/chunks/{chunk-CQ6QGYKJ.js → chunk-YI7HCLNY.js} +1 -1
  46. package/dist/chunks/{chunk-CVWIMZTL.js → chunk-YOYWFBRJ.js} +53 -53
  47. package/dist/chunks/chunk-ZBFR7DBR.js +70 -0
  48. package/dist/chunks/{chunk-KO24NRJ5.js → chunk-ZW7KTUDU.js} +2 -2
  49. package/dist/chunks/chunk-ZY3DR3P6.js +63 -0
  50. package/dist/chunks/chunk-ZYNF7B6N.js +70 -0
  51. package/dist/chunks/{client-NBSGVJPN.js → client-ORABD53R.js} +2 -2
  52. package/dist/chunks/{client-5YPZUV5L.js → client-YF3PYAFZ.js} +2 -2
  53. package/dist/chunks/{client-3FYDPRVC.js → client-YOSPARZX.js} +1 -1
  54. package/dist/chunks/{client-actions-J2SQWW4O.js → client-actions-LYJHQ4IE.js} +4 -4
  55. package/dist/chunks/{dangerous-3EDPWONV.js → dangerous-VCZB63L6.js} +3 -3
  56. package/dist/chunks/{editor-seams-NG3BESM6.js → editor-seams-4PF6BD4R.js} +9 -9
  57. package/dist/chunks/{editor-store-NDV4IXDK.js → editor-store-UAEROYSB.js} +1 -1
  58. package/dist/chunks/{export-watermark-SNBNUS3L.js → export-watermark-2N7ALJXN.js} +5 -5
  59. package/dist/chunks/{eyedropper-L5DVFZV5.js → eyedropper-3P75IZGM.js} +1 -1
  60. package/dist/chunks/{generate-media-ASNNFDML.js → generate-media-DYXU4BZL.js} +2 -2
  61. package/dist/chunks/{host-5DYGKFJ7.js → host-J4QG5WB7.js} +6 -6
  62. package/dist/chunks/{integrations-2BG5XVX3.js → integrations-KGJ2HE6V.js} +1 -1
  63. package/dist/chunks/{kit-modules-NMONCEP4.js → kit-modules-4HQU5EI2.js} +1 -1
  64. package/dist/chunks/{libraries-QV4QPEYK.js → libraries-NIRTR2IA.js} +5 -5
  65. package/dist/chunks/{live-EI26E2RB.js → live-XZKNAJ2I.js} +3 -3
  66. package/dist/chunks/{media-tool-OVVKBD3N.js → media-tool-YFIYMYI5.js} +1 -1
  67. package/dist/chunks/{new-file-DX5L4NF6.js → new-file-RNWHN4S6.js} +3 -3
  68. package/dist/chunks/{plugin-P6FYIVKR.js → plugin-AN5GLVH5.js} +2 -2
  69. package/dist/chunks/{plugin-import-V2ORN2OW.js → plugin-import-J5ZNYSIY.js} +13 -13
  70. package/dist/chunks/{presence-YNIJGI73.js → presence-YNSLRFAM.js} +2 -2
  71. package/dist/chunks/{project-UK457FEX.js → project-HSN7DOPK.js} +1 -1
  72. package/dist/chunks/{publish-site-E4A557HC.js → publish-site-T2C4IDD2.js} +6 -6
  73. package/dist/chunks/{publish-store-U5SDQCU4.js → publish-store-I2FOGDDF.js} +4 -4
  74. package/dist/chunks/{raster-actions-4E7H3G62.js → raster-actions-IVIGDYQU.js} +1 -1
  75. package/dist/chunks/{runner-DHWGPGPD.js → runner-IOXTGHBT.js} +16 -16
  76. package/dist/chunks/{store-CUL3XS5L.js → store-ZVOK3773.js} +5 -5
  77. package/dist/chunks/{sync-U23VGFOY.js → sync-XT2ZCTVE.js} +5 -5
  78. package/dist/chunks/{tabs-K6MESOUX.js → tabs-RIIW7KNI.js} +8 -8
  79. package/dist/chunks/{team-7APVVP43.js → team-KM3FZ6AU.js} +1 -1
  80. package/dist/chunks/{team-client-XTH5DXVW.js → team-client-2EXJKRDB.js} +1 -1
  81. package/dist/chunks/{tools-PE6DEYSG.js → tools-5ISIPPXP.js} +2 -2
  82. package/dist/chunks/{ui-commands-WQJFLB5K.js → ui-commands-GYCIF7UQ.js} +11 -11
  83. package/dist/chunks/{versions-Y4F3IO37.js → versions-JCQTXXUB.js} +5 -5
  84. package/dist/fonts/chars.txt +1 -1
  85. package/dist/index.js +4 -4
  86. package/dist/seed/files.json +1 -1
  87. package/dist/seed/popcraft.comic-nested.json.gz +0 -0
  88. package/dist/seed/popcraft.comic-pinup.json.gz +0 -0
  89. package/dist/templates/count.js +1 -1
  90. package/dist/templates/index.js +226 -210
  91. package/dist/templates/index.json +663 -0
  92. package/dist/templates/motion/landing-hero/index.js +4 -4
  93. package/dist/templates/motion/launch-trailer/document.js +226 -210
  94. package/dist/templates/motion/launch-trailer/index.js +4 -4
  95. package/dist/templates/motion/launch-trailer/scenes.js +3 -3
  96. package/dist/templates/motion/template-wall.js +2 -2
  97. package/dist/templates/print/comic-hero-cascade.js +100 -0
  98. package/dist/templates/print/comic-hero-chase.js +100 -0
  99. package/dist/templates/print/comic-hero-cover-modern.js +100 -0
  100. package/dist/templates/print/comic-hero-grid-break.js +100 -0
  101. package/dist/templates/print/comic-hero-interrogation.js +100 -0
  102. package/dist/templates/print/comic-hero-issue.js +109 -0
  103. package/dist/templates/print/comic-hero-manga-action.js +100 -0
  104. package/dist/templates/print/comic-hero-nested.js +100 -0
  105. package/dist/templates/print/comic-hero-overlap.js +100 -0
  106. package/dist/templates/print/comic-hero-parallel.js +100 -0
  107. package/dist/templates/print/comic-hero-pinup.js +100 -0
  108. package/dist/templates/print/comic-hero-widescreen.js +100 -0
  109. package/dist/templates/print/comic-modern-issue.js +4 -4
  110. package/dist/templates/saas/email-decks.js +2 -2
  111. package/dist/templates/saas/index.js +62 -62
  112. package/dist/templates/saas/launch-kit.js +5 -5
  113. package/dist/templates/saas/launch-video.js +2 -2
  114. package/dist/templates/saas/stores.js +4 -4
  115. package/dist/templates/slideshow/index.js +3 -3
  116. package/dist/templates/themes/bauhaus.js +2 -2
  117. package/dist/templates/themes/black-friday-coupons.js +2 -2
  118. package/dist/templates/themes/blueprint.js +2 -2
  119. package/dist/templates/themes/claymation.js +2 -2
  120. package/dist/templates/themes/comic-book.js +5 -5
  121. package/dist/{chunks/chunk-ATEECJLR.js → templates/themes/comic-hero-art.js} +11 -9
  122. package/dist/templates/themes/comic-hero-page.js +67 -0
  123. package/dist/templates/themes/comic-hero.js +97 -1
  124. package/dist/{chunks/chunk-ODXZPZKI.js → templates/themes/comic-indie-art.js} +7 -9
  125. package/dist/templates/themes/comic-indie-page.js +47 -0
  126. package/dist/templates/themes/comic-indie.js +85 -1
  127. package/dist/templates/themes/cyberpunk.js +2 -2
  128. package/dist/templates/themes/everyday.js +2 -2
  129. package/dist/templates/themes/festival-presale-family-a.js +2 -2
  130. package/dist/templates/themes/festival-presale-family-b.js +2 -2
  131. package/dist/templates/themes/holidays.js +11 -11
  132. package/dist/templates/themes/index.js +127 -111
  133. package/dist/templates/themes/lunar-new-year.js +2 -2
  134. package/dist/templates/themes/manuscript.js +2 -2
  135. package/dist/templates/themes/memories.js +5 -5
  136. package/dist/templates/themes/noir.js +2 -2
  137. package/dist/templates/themes/printshop.js +14 -14
  138. package/dist/templates/themes/psychedelic.js +2 -2
  139. package/dist/templates/themes/space-opera.js +2 -2
  140. package/dist/templates/themes/studio.js +2 -2
  141. package/dist/templates/themes/tour-tickets.js +2 -2
  142. package/package.json +1 -1
  143. package/src/templates/print/comic-hero-cascade.ts +42 -0
  144. package/src/templates/print/comic-hero-chase.ts +42 -0
  145. package/src/templates/print/comic-hero-cover-modern.ts +34 -0
  146. package/src/templates/print/comic-hero-grid-break.ts +39 -0
  147. package/src/templates/print/comic-hero-interrogation.ts +41 -0
  148. package/src/templates/print/comic-hero-issue.ts +44 -0
  149. package/src/templates/print/comic-hero-manga-action.ts +38 -0
  150. package/src/templates/print/comic-hero-nested.ts +39 -0
  151. package/src/templates/print/comic-hero-overlap.ts +40 -0
  152. package/src/templates/print/comic-hero-parallel.ts +40 -0
  153. package/src/templates/print/comic-hero-pinup.ts +29 -0
  154. package/src/templates/print/comic-hero-widescreen.ts +35 -0
  155. package/src/templates/themes/comic-hero-art.ts +66 -0
  156. package/src/templates/themes/comic-hero-page.ts +326 -0
  157. package/src/templates/themes/comic-hero.ts +15 -2
  158. package/src/templates/themes/comic-indie-art.ts +73 -0
  159. package/src/templates/themes/comic-indie-page.ts +182 -0
  160. package/src/templates/themes/comic-indie.ts +280 -2
  161. package/types/templates/src/print/comic-hero-cascade.d.ts +5 -0
  162. package/types/templates/src/print/comic-hero-chase.d.ts +5 -0
  163. package/types/templates/src/print/comic-hero-cover-modern.d.ts +5 -0
  164. package/types/templates/src/print/comic-hero-grid-break.d.ts +5 -0
  165. package/types/templates/src/print/comic-hero-interrogation.d.ts +5 -0
  166. package/types/templates/src/print/comic-hero-issue.d.ts +2 -0
  167. package/types/templates/src/print/comic-hero-manga-action.d.ts +5 -0
  168. package/types/templates/src/print/comic-hero-nested.d.ts +5 -0
  169. package/types/templates/src/print/comic-hero-overlap.d.ts +5 -0
  170. package/types/templates/src/print/comic-hero-parallel.d.ts +5 -0
  171. package/types/templates/src/print/comic-hero-pinup.d.ts +5 -0
  172. package/types/templates/src/print/comic-hero-widescreen.d.ts +5 -0
  173. package/types/templates/src/themes/comic-hero-art.d.ts +318 -0
  174. package/types/templates/src/themes/comic-hero-page.d.ts +177 -0
  175. package/types/templates/src/themes/comic-indie-art.d.ts +371 -0
  176. package/types/templates/src/themes/comic-indie-page.d.ts +125 -0
  177. package/dist/chunks/{chunk-BAZUZXS6.js → chunk-2BVGM5PJ.js} +3 -3
  178. package/dist/chunks/{chunk-WXY6LWRB.js → chunk-2J3PCCBE.js} +3 -3
  179. package/dist/chunks/{chunk-RH6WJNB4.js → chunk-2ZOSBENB.js} +3 -3
  180. package/dist/chunks/{chunk-FLXSWF6O.js → chunk-5GSRWIV2.js} +3 -3
  181. package/dist/chunks/{chunk-2WCMIJSA.js → chunk-5NGWNEKU.js} +3 -3
  182. package/dist/chunks/{chunk-IUK367P7.js → chunk-5PSOLUKI.js} +0 -0
  183. package/dist/chunks/{chunk-RUBJMQMF.js → chunk-7A3MIEOO.js} +3 -3
  184. package/dist/chunks/{chunk-R66IPFG4.js → chunk-7D46BJKY.js} +32 -32
  185. package/dist/chunks/{chunk-6H5ULKBL.js → chunk-7KFQX6N5.js} +3 -3
  186. package/dist/chunks/{chunk-EWGXFNXM.js → chunk-DF5IDTZB.js} +3 -3
  187. package/dist/chunks/{chunk-VT7UU3UP.js → chunk-ESV3AAQ4.js} +3 -3
  188. package/dist/chunks/{chunk-UJORPKRW.js → chunk-GN5W7TJD.js} +3 -3
  189. package/dist/chunks/{chunk-HQAHQJHQ.js → chunk-IPRJUV2O.js} +9 -9
  190. package/dist/chunks/{chunk-JVKC6UFV.js → chunk-KWXWK2LA.js} +3 -3
  191. package/dist/chunks/{chunk-PN6KHUSF.js → chunk-LOQNCZFE.js} +3 -3
  192. package/dist/chunks/{chunk-AKCMEBIQ.js → chunk-MNN76UQS.js} +12 -12
  193. package/dist/chunks/{chunk-ZRK4E77C.js → chunk-OGZJE5X2.js} +3 -3
  194. package/dist/chunks/{chunk-OTJJNSLB.js → chunk-PEDQKANG.js} +3 -3
  195. package/dist/chunks/{chunk-LDIYJJ24.js → chunk-PTRN7H4N.js} +11 -11
  196. package/dist/chunks/{chunk-J3XCBROI.js → chunk-QQMSM7EK.js} +3 -3
  197. package/dist/chunks/{chunk-FRFW37G6.js → chunk-TBIZI5NH.js} +3 -3
  198. package/dist/chunks/{chunk-BSX52WVT.js → chunk-UTFC2DI3.js} +8 -8
  199. package/dist/chunks/{chunk-GTR25NJ5.js → chunk-XIIFQUWN.js} +3 -3
  200. package/dist/chunks/{chunk-PGUAHUFE.js → chunk-XTFV46GB.js} +9 -9
  201. package/dist/chunks/{chunk-4ENF3NH3.js → chunk-ZLVYZPUR.js} +28 -28
@@ -0,0 +1,75 @@
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
+ init_define_POPCRAFT_COMPONENT_IDS
9
+ } from "./chunk-FFS4SO7R.js";
10
+
11
+ // templates/src/themes/comic-hero-art.ts
12
+ init_define_POPCRAFT_COMPONENT_IDS();
13
+ var STYLE = "Gritty energetic modern indie action comic art, rough expressive brush inks, scratchy hatching, explosive motion, raw kinetic linework.";
14
+ var CAST = { nightstar: "Nightstar is an original masked hero: a lean athletic man in a sleek midnight-blue bodysuit with a large gold five-pointed star emblem on the chest, a midnight-blue cowl mask covering the upper face, gold gloves and gold boots.", voltrix: "Voltrix is an original villain: a hulking bald man in scorched charcoal-grey armour plating with crackling green electric coils on his shoulders and round glowing green goggles.", rosa: "Rosa is an original young woman bike courier with a curly black ponytail, a bright yellow rain jacket, a red messenger bag and a white cycling helmet." };
15
+ var ART = {
16
+ "cover": { hash: "0520923bafe128b0edbdcc30fd65a023", width: 768, height: 1152, subject: "Low-angle cover shot: Nightstar bursts upward through a shattering neon-lit night sky over a rain-soaked city, fist forward, while the giant shadowy figure of Voltrix looms behind him wreathed in green lightning." },
17
+ "chase-1": { hash: "5ef8494cf4126515d8fca8060f411195", width: 1152, height: 651, subject: "Establishing wide shot: a city power substation at midnight in the rain, Voltrix tearing a transformer open with his bare hands, green electricity arcing everywhere." },
18
+ "chase-2": { hash: "1365a184ce73877fc228f8990656c17d", width: 1024, height: 1024, subject: "Medium shot: Nightstar crouched on a gargoyle ledge high above the rainy city, looking down, cape-less, alert." },
19
+ "chase-3": { hash: "f1b38bcc56e2f6aa164528c7940fe9a8", width: 1152, height: 651, subject: "Action: Voltrix smashes through a brick wall onto a rooftop and runs, Nightstar sprinting after him across the rooftops, rain and debris flying." },
20
+ "chase-4": { hash: "40ef203c1fad0b155377653cc3ad6717", width: 1152, height: 651, subject: "Nightstar leaps across a wide gap between two skyscrapers, seen from below, the street far beneath, body stretched, explosive motion." },
21
+ "chase-5": { hash: "9e5b62ed93b6cf6a76edfbb87e74c09e", width: 1024, height: 1024, subject: "Close-up: Voltrix glancing back over his shoulder with a snarl, green goggles blazing, sparks in the rain." },
22
+ "chase-6": { hash: "c4fe9f3ce9be13c97f930513fca1e3bc", width: 1152, height: 651, subject: "Voltrix hurls a crackling bolt of green lightning backward at Nightstar, who twists mid-air to dodge it, a water tower exploding behind them." },
23
+ "wide-1": { hash: "02e36cd0fde4da676db1d5cbcd97e702", width: 1152, height: 651, subject: "Wide cinematic street shot at night: Rosa riding her bicycle down a wet neon avenue, headlights and reflections, unaware of danger." },
24
+ "wide-2": { hash: "d142ece06355008414409995bcc8efbe", width: 1152, height: 651, subject: "Wide shot: Voltrix crashes down from above into the middle of the avenue, the asphalt cracking in a crater, cars flipping, green lightning." },
25
+ "wide-3": { hash: "b5819cb6b068143e82a0130c5acfdf96", width: 1152, height: 651, subject: "Rosa flung from her bicycle, tumbling across the wet street, her bike spinning away, shards of glass in the air." },
26
+ "wide-4": { hash: "fd743798c2c8ac767c882c54aadfe879", width: 856, height: 1152, subject: "Voltrix towers over Rosa who scrambles backward on the wet street, terrified, the villain reaching for her with crackling hand." },
27
+ "break-1": { hash: "24864c9ff00eaad797ee689c1edceb68", width: 1024, height: 1024, subject: "Medium shot: Voltrix grabs Rosa, in her bright yellow rain jacket, by the red messenger bag strap, lifting her off the ground, green sparks crackling." },
28
+ "break-2": { hash: "db24fc4cb6ad05abf82015ab3808caec", width: 1024, height: 1024, subject: "Extreme close-up of Rosa's frightened eyes reflecting green lightning, rain on her face." },
29
+ "break-3": { hash: "788a368f7c91115beffba384edd6a8cb", width: 1152, height: 651, subject: "Explosive splash: Nightstar crashes feet-first down onto Voltrix from above, a huge shockwave of rain and debris, the gold star blazing, raw kinetic impact." },
30
+ "break-4": { hash: "a58e82a3827c6e8c1be23ad3e815955d", width: 1024, height: 1024, subject: "Rosa dropped free, landing hard on the pavement and rolling clear, debris raining around her." },
31
+ "break-5": { hash: "2da6d96fbb481845e780cf6240ece2d1", width: 1152, height: 651, subject: "Nightstar and Voltrix grappling in the crater, sparks and rain, faces close, straining." },
32
+ "cascade-1": { hash: "ba3f66a4535367034168b1f7c257f23a", width: 1152, height: 651, subject: "Voltrix slams both fists into a street lamp, sending a surge of green electricity up into a neon billboard on a building above." },
33
+ "cascade-2": { hash: "9c7d695c57cca051f10c4b4d1877c911", width: 856, height: 1152, subject: "Looking up from street level: a huge burning neon billboard and steel scaffolding breaking loose and falling toward Rosa below." },
34
+ "cascade-3": { hash: "60514687976f160868b3e94a4a57f890", width: 1024, height: 1024, subject: "Close-up: Rosa looking up in horror, arm raised, sparks falling around her." },
35
+ "cascade-4": { hash: "504c48cf772656d01816a0a0e3288b87", width: 1152, height: 651, subject: "Nightstar dives in and sweeps Rosa out of the way just as the falling billboard smashes into the street behind them, explosion of sparks and glass." },
36
+ "cascade-5": { hash: "5e76b5ac2000cee5fe5b2c0b5affc1a9", width: 1024, height: 1024, subject: "Nightstar kneels shielding Rosa with his body as burning debris settles, both covered in dust, rain hissing on embers." },
37
+ "cascade-6": { hash: "fa7831e2704e9b69b06136766d710406", width: 1152, height: 651, subject: "Wide: Voltrix standing in the flames on the street, laughing, green coils glowing brighter, the city lights flickering out behind him." },
38
+ "over-1": { hash: "c92e06d52a7587127ac2396136bfa0ef", width: 1152, height: 651, subject: "Nightstar charges at Voltrix through fire and rain, fist cocked back, heavy motion streaks." },
39
+ "over-2": { hash: "6569e01fd26e0ec21599d18239beeecb", width: 1024, height: 1024, subject: "Close impact: Nightstar's gold-gloved fist connects with Voltrix's jaw, shockwave, teeth and sparks flying." },
40
+ "over-3": { hash: "f18dc474dbb6f05a0ec0a1dd5f035373", width: 1024, height: 1024, subject: "Voltrix backhands Nightstar, sending him spinning backward through the air in a spray of rain." },
41
+ "over-4": { hash: "efccaca49150c0ffc3ff4d19751acf4b", width: 1152, height: 651, subject: "Nightstar crashes through the front window of a parked city bus, glass exploding outward, dynamic angle." },
42
+ "over-5": { hash: "8b715da4ff00f7d65667f4723ce20ed2", width: 1152, height: 651, subject: "Nightstar rising from the wrecked bus, bruised, gold star cracked and glinting, facing Voltrix across the burning street." },
43
+ "over-6": { hash: "20b922922d145451550a308ef18f058e", width: 1024, height: 1024, subject: "Close-up of Voltrix's grinning face, green goggles glowing, lightning crackling across his armour." },
44
+ "nest-1": { hash: "49804db37766dd3fbf8815741311bcdb", width: 1152, height: 651, subject: "Wide: Voltrix grabs a high-voltage power line with both hands, absorbing the whole city's electricity, a column of green lightning shooting into the clouds." },
45
+ "nest-2": { hash: "d04f29f9b8a27e12512e270abd239548", width: 1024, height: 1024, subject: "Close-up: Voltrix's armour coils overloading, glowing white-green, steam and sparks pouring off them." },
46
+ "nest-3": { hash: "0ae711478fafb2a9e7445ec561073121", width: 1024, height: 1024, subject: "Close-up: Nightstar shielding his masked eyes against the blinding green glare, wind whipping." },
47
+ "nest-4": { hash: "3c9ff7ef455e356c4b09fe598b2ca5e9", width: 1152, height: 651, subject: "Wide: the whole city skyline going dark block by block as the lights are drained, one green glow in the middle." },
48
+ "nest-5": { hash: "bb84d4f02a8f45c8904d06bb164f92b5", width: 1152, height: 651, subject: "Rosa crouched alone behind a wrecked car, clutching her red messenger bag, eyes fixed on a thick black power cable snaking across the empty wet street, green glow on the horizon. No creatures, no other people." },
49
+ "para-1": { hash: "58b0040a4025bda6c8fc77f2cf9b7d95", width: 1024, height: 1024, subject: "Nightstar battered and staggering forward into the glare toward Voltrix, who stands in the background wreathed in green lightning, one arm up against the energy storm." },
50
+ "para-2": { hash: "8252a932560a2e6eb96ce5e178e39063", width: 1024, height: 1024, subject: "Rosa sprinting low along the wet street toward a junction box where the thick power cable connects, yellow jacket bright." },
51
+ "para-3": { hash: "e03aca5703774849c89a6223d4bd3691", width: 1024, height: 1024, subject: "Voltrix blasts Nightstar with a beam of green lightning, Nightstar bracing behind crossed arms, being pushed back, feet dragging sparks." },
52
+ "para-4": { hash: "5e515e2b6f1e7715c17057f908858e09", width: 1024, height: 1024, subject: "Rosa yanking a big red emergency lever on the open junction box, sparks flying in her face, teeth gritted." },
53
+ "para-5": { hash: "70fdd68ee6f96ea603dede17f979cebf", width: 1024, height: 1024, subject: "Voltrix's lightning suddenly sputtering out, his coils dimming, shock on his face." },
54
+ "para-6": { hash: "7a7f8d301383756e74caeb6ae8c8ae1f", width: 1024, height: 1024, subject: "Nightstar glances back at Rosa by the junction box, she gives him a thumbs up, rain and smoke between them." },
55
+ "manga-1": { hash: "533e5dacbce7966d8b537ccb767d1460", width: 856, height: 1152, subject: "Extreme dynamic foreshortening: Nightstar launches himself straight at the viewer, fist leading, speed lines radiating, rain frozen around him." },
56
+ "manga-2": { hash: "89bf37366fabc1a9ce15b22e70eca072", width: 1024, height: 1024, subject: "Voltrix raising both armoured arms to block, terror in his face, coils dead." },
57
+ "manga-3": { hash: "e45832e1da6f3927ab09d0fe31a3aa8b", width: 1152, height: 651, subject: "The final punch: Nightstar's fist smashes through Voltrix's guard into his chest armour, the armour shattering into pieces, enormous radiating impact burst." },
58
+ "manga-4": { hash: "e781ad2b37fd73e79755868622eccd21", width: 1024, height: 1024, subject: "Close-up of Nightstar's masked eyes, intense, a trickle of blood, rain." },
59
+ "manga-5": { hash: "c6a44369f7251227f7161c5de7d001a1", width: 1152, height: 651, subject: "Voltrix flying backward and crashing through a parked delivery truck, armour pieces scattering, smoke." },
60
+ "interro-1": { hash: "67578b7d4a3caae86cc4501a7d8f5672", width: 1152, height: 651, subject: "Wide: an abandoned warehouse at dawn lit by one hanging bulb, Voltrix in broken armour chained to a steel chair, Nightstar standing over him." },
61
+ "interro-2": { hash: "835dd9bf563b21c08f02439d97ab2356", width: 1024, height: 1024, subject: "Close-up: Nightstar leaning in, masked face half in shadow under the bulb, stern." },
62
+ "interro-3": { hash: "56a8c320e8a651b852abb492a0e35029", width: 1024, height: 1024, subject: "Close-up: Voltrix in his chair, goggles cracked, smirking, a bruise on his cheek." },
63
+ "interro-4": { hash: "9cf91fa3b2d4853704f7d699b60d49eb", width: 1024, height: 1024, subject: "Nightstar slamming a gold-gloved fist on a metal table, the bulb swinging, shadows lurching." },
64
+ "interro-5": { hash: "21dd22e30cccfb6bb82925dd46ee7b1c", width: 1024, height: 1024, subject: "Extreme close-up of Voltrix's mouth as he grins, a single green spark on a broken tooth." },
65
+ "interro-6": { hash: "01d85a8b550d80743fbc01002c800ced", width: 1152, height: 651, subject: "Nightstar walking out of the warehouse doorway into morning light where Rosa waits with her bicycle, backlit silhouettes." },
66
+ "pinup": { hash: "7f2004bc780c91f788d95e68009147b1", width: 856, height: 1152, subject: "Pin-up: Nightstar standing heroically on the edge of a skyscraper rooftop at sunrise, wind in the scene, the city below washed in orange light, gold star gleaming." }
67
+ };
68
+ var art = (id) => `media://${ART[id].hash}`;
69
+
70
+ export {
71
+ STYLE,
72
+ CAST,
73
+ ART,
74
+ art
75
+ };
@@ -0,0 +1,74 @@
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
+ FOLIO,
9
+ caption,
10
+ comicMeta,
11
+ comicSetup,
12
+ folio,
13
+ pageGrid,
14
+ panel,
15
+ rows,
16
+ say,
17
+ sfx,
18
+ slantTier,
19
+ tier,
20
+ tierBox,
21
+ tilted
22
+ } from "./chunk-UBT4DZYW.js";
23
+ import {
24
+ defineTemplate
25
+ } from "./chunk-HLBQLOTA.js";
26
+ import {
27
+ Kit,
28
+ preset
29
+ } from "./chunk-2P7ISWIA.js";
30
+ import {
31
+ init_define_POPCRAFT_COMPONENT_IDS
32
+ } from "./chunk-FFS4SO7R.js";
33
+
34
+ // templates/src/print/comic-hero-cascade.ts
35
+ init_define_POPCRAFT_COMPONENT_IDS();
36
+ var comic_hero_cascade_default = defineTemplate({
37
+ id: "comic-cascade",
38
+ meta: comicMeta("Cascade page", 'Page five of "Nightstar: Blackout": a surge sets a neon billboard falling down the page toward Rosa, Nightstar dives in to sweep her clear on a canted frame, and Voltrix laughs in the flames', ["cascade", "rescue", "falling", "sound effects"]),
39
+ stableNumbers: true,
40
+ build() {
41
+ const k = new Kit("Cascade page", preset("comic-page"));
42
+ comicSetup(k);
43
+ drawPage(k);
44
+ return k.finish();
45
+ }
46
+ });
47
+ function drawPage(k) {
48
+ const g = 12, { W, H } = pageGrid(k, k.sheet, 36, g);
49
+ const [h1, h2, h3, h4] = rows(H - FOLIO, g, [24, 30, 24, 22]);
50
+ const t1 = tierBox(k, k.sheet, W, h1, "Tier 1");
51
+ panel(k, t1, tier(W, h1, [1], g)[0], "cascade-1", { ground: "heroG1", name: "The surge" });
52
+ sfx(k, t1, "Vzzzt!", { x: W - 220, y: h1 - 100, w: 190, h: 90, deg: -6, seed: 2 });
53
+ const t2 = tierBox(k, k.sheet, W, h2, "Tier 2");
54
+ const [a, b] = slantTier(W, h2, [2, 3], 26, g);
55
+ panel(k, t2, a, "cascade-2", { ground: "heroG2", name: "The billboard falls" });
56
+ panel(k, t2, b, "cascade-3", { ground: "heroG3", name: "Rosa looks up" });
57
+ caption(k, t2, "Twelve storeys of steel and neon.", { x: 10, y: 10, width: 170 });
58
+ say(k, t2, "Oh no\u2014", { x: W - 110, y: 12, width: 96, to: { x: b.x + b.width * 0.55, y: h2 * 0.4 } });
59
+ const t3 = tierBox(k, k.sheet, W, h3, "Tier 3");
60
+ panel(k, t3, tilted(0, 0, W, h3, -24, 24), "cascade-4", { ground: "heroG1", name: "The save" });
61
+ sfx(k, t3, "Kranng!", { x: W - 360, y: 18, w: 330, h: 120, deg: 8, big: true, fill: "primary", seed: 17 });
62
+ const t4 = tierBox(k, k.sheet, W, h4, "Tier 4");
63
+ const [c, d] = tier(W, h4, [2, 3], g);
64
+ panel(k, t4, c, "cascade-5", { ground: "heroG2", name: "Shielded" });
65
+ panel(k, t4, d, "cascade-6", { ground: "heroG3", name: "Voltrix laughs" });
66
+ say(k, t4, "Stay down. Stay behind me.", { x: 10, y: 10, width: 128, to: { x: c.width * 0.4, y: h4 * 0.35 } });
67
+ say(k, t4, "Ha! Saved the girl. Lost the city.", { x: W - 170, y: 10, width: 160, to: { x: d.x + d.width * 0.5, y: h4 * 0.3 } });
68
+ folio(k, k.sheet, "Nightstar: Blackout \u2014 page 5");
69
+ }
70
+
71
+ export {
72
+ comic_hero_cascade_default,
73
+ drawPage
74
+ };
@@ -0,0 +1,69 @@
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
+ FOLIO,
9
+ caption,
10
+ comicMeta,
11
+ comicSetup,
12
+ folio,
13
+ pageGrid,
14
+ panel,
15
+ rows,
16
+ say,
17
+ sfx,
18
+ slantTier,
19
+ tierBox,
20
+ tilted
21
+ } from "./chunk-UBT4DZYW.js";
22
+ import {
23
+ defineTemplate
24
+ } from "./chunk-HLBQLOTA.js";
25
+ import {
26
+ Kit,
27
+ preset
28
+ } from "./chunk-2P7ISWIA.js";
29
+ import {
30
+ init_define_POPCRAFT_COMPONENT_IDS
31
+ } from "./chunk-FFS4SO7R.js";
32
+
33
+ // templates/src/print/comic-hero-manga-action.ts
34
+ init_define_POPCRAFT_COMPONENT_IDS();
35
+ var comic_hero_manga_action_default = defineTemplate({
36
+ id: "comic-manga-action",
37
+ meta: comicMeta("Manga action page", 'Page nine of "Nightstar: Blackout": the finishing blow on steep diagonal frames, Nightstar coming straight at the reader, Voltrix out of power, the punch through his armour with "KRAKKOOM!" and him flying through a truck', ["manga", "action", "diagonal", "speed", "sound effects"]),
38
+ stableNumbers: true,
39
+ build() {
40
+ const k = new Kit("Manga action page", preset("comic-page"));
41
+ comicSetup(k);
42
+ drawPage(k);
43
+ return k.finish();
44
+ }
45
+ });
46
+ function drawPage(k) {
47
+ const g = 12, { W, H } = pageGrid(k, k.sheet, 36, g);
48
+ const [h1, h2, h3] = rows(H - FOLIO, g, [38, 34, 28]);
49
+ const t1 = tierBox(k, k.sheet, W, h1, "Tier 1");
50
+ const [a, b] = slantTier(W, h1, [3, 2], 44, g);
51
+ panel(k, t1, a, "manga-1", { ground: "heroG1", name: "Straight at him" });
52
+ panel(k, t1, b, "manga-2", { ground: "heroG2", name: "No power left" });
53
+ say(k, t1, "This one\u2019s for the city.", { x: 10, y: 10, width: 128, to: { x: a.width * 0.4, y: h1 * 0.3 } });
54
+ say(k, t1, "W-wait\u2014", { x: W - 108, y: h1 - 80, width: 96, to: { x: b.x + b.width * 0.6, y: h1 * 0.4 } });
55
+ const t2 = tierBox(k, k.sheet, W, h2, "Tier 2");
56
+ panel(k, t2, tilted(0, 0, W, h2, -30, 30), "manga-3", { ground: "heroG3", name: "The hit" });
57
+ sfx(k, t2, "Krakkoom!", { x: 20, y: h2 - 150, w: 480, h: 140, deg: -7, big: true, fill: "primary", seed: 23 });
58
+ const t3 = tierBox(k, k.sheet, W, h3, "Tier 3");
59
+ const [c, d] = slantTier(W, h3, [2, 3], -30, g);
60
+ panel(k, t3, c, "manga-4", { ground: "heroG1", name: "His eyes" });
61
+ panel(k, t3, d, "manga-5", { ground: "heroG2", name: "Through the truck" });
62
+ caption(k, t3, "Lights out, Voltrix.", { x: W - 170, y: h3 - 44, width: 160 });
63
+ folio(k, k.sheet, "Nightstar: Blackout \u2014 page 9");
64
+ }
65
+
66
+ export {
67
+ comic_hero_manga_action_default,
68
+ drawPage
69
+ };
@@ -6,7 +6,7 @@ const __filename = __popcraftPath(import.meta.url);
6
6
  const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  useEditorStore
9
- } from "./chunk-AXKXWL35.js";
9
+ } from "./chunk-WKKHCEXN.js";
10
10
  import {
11
11
  announce
12
12
  } from "./chunk-IM4M2REB.js";
@@ -78,7 +78,16 @@ import {
78
78
  } from "./chunk-GPBPXMHK.js";
79
79
  import {
80
80
  THEME_PACKS
81
- } from "./chunk-652VC4P7.js";
81
+ } from "./chunk-UNAAYJKD.js";
82
+ import {
83
+ sting_blur_default
84
+ } from "./chunk-IEWXITI5.js";
85
+ import {
86
+ sting_pop_default
87
+ } from "./chunk-2CNLFCXM.js";
88
+ import {
89
+ sting_rise_default
90
+ } from "./chunk-KKVSPEJA.js";
82
91
  import {
83
92
  sting_shimmer_default
84
93
  } from "./chunk-YDNHZZGU.js";
@@ -95,14 +104,26 @@ import {
95
104
  line_reveal_default
96
105
  } from "./chunk-4ZBHIQI3.js";
97
106
  import {
98
- sting_blur_default
99
- } from "./chunk-IEWXITI5.js";
107
+ promo_quote_reveal_default
108
+ } from "./chunk-ERIQ7JIJ.js";
100
109
  import {
101
- sting_pop_default
102
- } from "./chunk-2CNLFCXM.js";
110
+ promo_sale_drop_default
111
+ } from "./chunk-ZW5QQB3F.js";
103
112
  import {
104
- sting_rise_default
105
- } from "./chunk-KKVSPEJA.js";
113
+ promo_tip_list_default
114
+ } from "./chunk-4ZWSOGLF.js";
115
+ import {
116
+ post_quote_default
117
+ } from "./chunk-V4LR6DUQ.js";
118
+ import {
119
+ post_sale_default
120
+ } from "./chunk-CPRCZAB3.js";
121
+ import {
122
+ post_stat_default
123
+ } from "./chunk-KRIM23HE.js";
124
+ import {
125
+ post_testimonial_default
126
+ } from "./chunk-T7OCDXH3.js";
106
127
  import {
107
128
  promo_announcement_default
108
129
  } from "./chunk-C7X4DDSU.js";
@@ -115,15 +136,6 @@ import {
115
136
  import {
116
137
  promo_new_product_default
117
138
  } from "./chunk-Y6DHN37V.js";
118
- import {
119
- promo_quote_reveal_default
120
- } from "./chunk-ERIQ7JIJ.js";
121
- import {
122
- promo_sale_drop_default
123
- } from "./chunk-ZW5QQB3F.js";
124
- import {
125
- promo_tip_list_default
126
- } from "./chunk-4ZWSOGLF.js";
127
139
  import {
128
140
  post_announcement_default
129
141
  } from "./chunk-E5IDXYQD.js";
@@ -134,20 +146,23 @@ import {
134
146
  post_podcast_default
135
147
  } from "./chunk-3N3DDMPA.js";
136
148
  import {
137
- post_quote_default
138
- } from "./chunk-V4LR6DUQ.js";
149
+ SLIDESHOWS
150
+ } from "./chunk-UTFC2DI3.js";
139
151
  import {
140
- post_sale_default
141
- } from "./chunk-CPRCZAB3.js";
152
+ training_default
153
+ } from "./chunk-QY5U725A.js";
142
154
  import {
143
- post_stat_default
144
- } from "./chunk-KRIM23HE.js";
155
+ webinar_default
156
+ } from "./chunk-Q2ASEGWN.js";
145
157
  import {
146
- post_testimonial_default
147
- } from "./chunk-T7OCDXH3.js";
158
+ layouts_default
159
+ } from "./chunk-BCH6FNXB.js";
148
160
  import {
149
- SLIDESHOWS
150
- } from "./chunk-BSX52WVT.js";
161
+ pitch_default
162
+ } from "./chunk-IRTOBVAO.js";
163
+ import {
164
+ report_default
165
+ } from "./chunk-TBVBI4EN.js";
151
166
  import {
152
167
  sales_default
153
168
  } from "./chunk-SX3BZRNE.js";
@@ -157,12 +172,6 @@ import {
157
172
  import {
158
173
  title_card_default
159
174
  } from "./chunk-DYADJS4Y.js";
160
- import {
161
- training_default
162
- } from "./chunk-QY5U725A.js";
163
- import {
164
- webinar_default
165
- } from "./chunk-Q2ASEGWN.js";
166
175
  import {
167
176
  agenda_default
168
177
  } from "./chunk-LOUPBPQV.js";
@@ -173,14 +182,11 @@ import {
173
182
  launch_default
174
183
  } from "./chunk-ESBLUILZ.js";
175
184
  import {
176
- layouts_default
177
- } from "./chunk-BCH6FNXB.js";
178
- import {
179
- pitch_default
180
- } from "./chunk-IRTOBVAO.js";
185
+ story_ad_default
186
+ } from "./chunk-S57NBFBJ.js";
181
187
  import {
182
- report_default
183
- } from "./chunk-TBVBI4EN.js";
188
+ story_bakery_default
189
+ } from "./chunk-RNCZVDXJ.js";
184
190
  import {
185
191
  story_fitness_default
186
192
  } from "./chunk-WUSKZV2W.js";
@@ -193,21 +199,15 @@ import {
193
199
  import {
194
200
  web_scroll_default
195
201
  } from "./chunk-OT5B7QDA.js";
196
- import {
197
- carousel_video_default
198
- } from "./chunk-CITKZJUF.js";
199
- import {
200
- story_ad_default
201
- } from "./chunk-S57NBFBJ.js";
202
- import {
203
- story_bakery_default
204
- } from "./chunk-RNCZVDXJ.js";
205
202
  import {
206
203
  before_after_default
207
204
  } from "./chunk-UALZ77YU.js";
205
+ import {
206
+ carousel_video_default
207
+ } from "./chunk-CITKZJUF.js";
208
208
  import {
209
209
  SAAS_CORE
210
- } from "./chunk-LNQN4PGS.js";
210
+ } from "./chunk-P5M5QCAJ.js";
211
211
  import {
212
212
  synthwave_tunnel_default
213
213
  } from "./chunk-B4KCU67P.js";
@@ -294,13 +294,13 @@ import {
294
294
  } from "./chunk-VM244NG3.js";
295
295
  import {
296
296
  landing_hero_default
297
- } from "./chunk-KO24NRJ5.js";
297
+ } from "./chunk-ZW7KTUDU.js";
298
298
  import {
299
299
  launch_trailer_default
300
- } from "./chunk-MJ6VIF3D.js";
300
+ } from "./chunk-4X5G4QPZ.js";
301
301
  import {
302
302
  template_wall_default
303
- } from "./chunk-R3D5OMSG.js";
303
+ } from "./chunk-GF6N47NL.js";
304
304
  import {
305
305
  instagram_promo_default
306
306
  } from "./chunk-5FPICOLV.js";
@@ -405,7 +405,7 @@ import {
405
405
  } from "./chunk-CCGTARBV.js";
406
406
  import {
407
407
  registerTemplateSources
408
- } from "./chunk-YT6TGRM4.js";
408
+ } from "./chunk-2PEG56PC.js";
409
409
  import {
410
410
  bars_default
411
411
  } from "./chunk-X2BAGHES.js";
@@ -0,0 +1,70 @@
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
+ FOLIO,
9
+ caption,
10
+ comicMeta,
11
+ comicSetup,
12
+ folio,
13
+ pageGrid,
14
+ panel,
15
+ rows,
16
+ say,
17
+ sfx,
18
+ tier,
19
+ tierBox,
20
+ tilted
21
+ } from "./chunk-UBT4DZYW.js";
22
+ import {
23
+ defineTemplate
24
+ } from "./chunk-HLBQLOTA.js";
25
+ import {
26
+ Kit,
27
+ preset
28
+ } from "./chunk-2P7ISWIA.js";
29
+ import {
30
+ init_define_POPCRAFT_COMPONENT_IDS
31
+ } from "./chunk-FFS4SO7R.js";
32
+
33
+ // templates/src/print/comic-hero-grid-break.ts
34
+ init_define_POPCRAFT_COMPONENT_IDS();
35
+ var comic_hero_grid_break_default = defineTemplate({
36
+ id: "comic-grid-break",
37
+ meta: comicMeta("Grid-break page", 'Page four of "Nightstar: Blackout": Voltrix lifts Rosa off the street, her eyes go wide, and Nightstar breaks the grid feet first on a tilted splash with "KRASH!" before the two of them lock up in the crater', ["grid break", "splash", "impact", "sound effects"]),
38
+ stableNumbers: true,
39
+ build() {
40
+ const k = new Kit("Grid-break page", preset("comic-page"));
41
+ comicSetup(k);
42
+ drawPage(k);
43
+ return k.finish();
44
+ }
45
+ });
46
+ function drawPage(k) {
47
+ const g = 12, { W, H } = pageGrid(k, k.sheet, 36, g);
48
+ const [h1, h2, h3] = rows(H - FOLIO, g, [28, 42, 30]);
49
+ const t1 = tierBox(k, k.sheet, W, h1, "Tier 1");
50
+ const [a, b] = tier(W, h1, [3, 2], g);
51
+ panel(k, t1, a, "break-1", { ground: "heroG1", name: "Grabbed" });
52
+ panel(k, t1, b, "break-2", { ground: "heroG2", name: "Her eyes" });
53
+ say(k, t1, "You\u2019re coming with me, courier.", { x: 12, y: 12, width: 128, to: { x: a.width * 0.3, y: h1 * 0.3 } });
54
+ const t2 = tierBox(k, k.sheet, W, h2, "Tier 2");
55
+ panel(k, t2, tilted(0, 0, W, h2, 28, -28), "break-3", { ground: "heroG3", name: "Feet first" });
56
+ sfx(k, t2, "Krash!", { x: W - 330, y: h2 - 150, w: 300, h: 130, deg: -10, big: true, seed: 21 });
57
+ say(k, t2, "Put. Her. Down.", { x: 16, y: 34, width: 96, to: { x: W * 0.32, y: h2 * 0.3 } });
58
+ const t3 = tierBox(k, k.sheet, W, h3, "Tier 3");
59
+ const [c, d] = tier(W, h3, [2, 3], g);
60
+ panel(k, t3, c, "break-4", { ground: "heroG1", name: "Rosa rolls clear" });
61
+ panel(k, t3, d, "break-5", { ground: "heroG2", name: "Locked up" });
62
+ say(k, t3, "Who\u2014?", { x: 12, y: 12, width: 96, to: { x: c.width * 0.5, y: h3 * 0.4 } });
63
+ caption(k, t3, "Nightstar. The one light this city has left.", { x: d.x + 10, y: h3 - 52, width: 220 });
64
+ folio(k, k.sheet, "Nightstar: Blackout \u2014 page 4");
65
+ }
66
+
67
+ export {
68
+ comic_hero_grid_break_default,
69
+ drawPage
70
+ };
@@ -19,11 +19,11 @@ import {
19
19
  popIn,
20
20
  shadow,
21
21
  travel
22
- } from "./chunk-KOKO3HTP.js";
22
+ } from "./chunk-3NI5OGFT.js";
23
23
  import {
24
24
  DURATION,
25
25
  buildTemplateWall
26
- } from "./chunk-R3D5OMSG.js";
26
+ } from "./chunk-GF6N47NL.js";
27
27
  import {
28
28
  COLLABORATORS,
29
29
  COLORS,
@@ -0,0 +1,63 @@
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
+ SIZE,
9
+ bleedFrame,
10
+ caption,
11
+ comicMeta,
12
+ comicSetup,
13
+ display,
14
+ foot,
15
+ panel,
16
+ rectFrame,
17
+ say,
18
+ tierBox
19
+ } from "./chunk-UBT4DZYW.js";
20
+ import {
21
+ defineTemplate
22
+ } from "./chunk-HLBQLOTA.js";
23
+ import {
24
+ Kit,
25
+ preset
26
+ } from "./chunk-2P7ISWIA.js";
27
+ import {
28
+ init_define_POPCRAFT_COMPONENT_IDS
29
+ } from "./chunk-FFS4SO7R.js";
30
+
31
+ // templates/src/print/comic-hero-cover-modern.ts
32
+ init_define_POPCRAFT_COMPONENT_IDS();
33
+ var comic_hero_cover_modern_default = defineTemplate({
34
+ id: "comic-cover-modern",
35
+ meta: comicMeta("Comic cover (modern)", 'The front cover of "Nightstar: Blackout" no. 1: full-bleed art of Nightstar bursting up through the rain with Voltrix looming in green lightning behind him, a red masthead band with the issue box, and the cover line at the foot', ["cover", "masthead", "full bleed"]),
36
+ stableNumbers: true,
37
+ build() {
38
+ const k = new Kit("Comic cover (modern)", preset("comic-cover"));
39
+ comicSetup(k);
40
+ drawPage(k);
41
+ return k.finish();
42
+ }
43
+ });
44
+ function drawPage(k) {
45
+ const { w: W, h: H } = SIZE.cover;
46
+ k.flowSheet(k.sheet, 0, 0);
47
+ const t = tierBox(k, k.sheet, W, H, "Cover");
48
+ const b = bleedFrame(k, W, H);
49
+ panel(k, t, rectFrame(b.x, b.y, b.width, H - 96 - b.y), "cover", { ground: "heroG1", name: "Cover art", edge: false });
50
+ const band = k.stack(t, { direction: "HORIZONTAL", align: "CENTER", gap: 14, width: W - 64, padding: { top: 12, right: 16, bottom: 12, left: 16 }, fill: "primary", stroke: { color: "onPrimary", width: 3, align: "INSIDE", join: "MITER" }, name: "Masthead band", absolute: { x: 32, y: 34 } });
51
+ const box = k.stack(band, { width: 74, align: "CENTER", fill: "card", padding: { top: 6, right: 6, bottom: 6, left: 6 }, stroke: { color: "onCard", width: 2, align: "INSIDE", join: "MITER" }, name: "Issue box" });
52
+ k.text(box, "{{brand.issue}}", { style: display(k, "Title"), color: "onCard", align: "CENTER", width: "FILL", name: "Issue number" });
53
+ k.text(box, "OCT", { style: display(k, "Credit"), color: "onCard", align: "CENTER", width: "FILL", name: "Month" });
54
+ k.text(band, "{{brand.title}}", { style: display(k, "Masthead"), color: "onPrimary", width: "FILL", name: "Masthead" });
55
+ caption(k, t, "Harbour City's last light is a star.", { x: 20, y: Math.round(H * 0.6), width: 190, name: "Cover line" });
56
+ say(k, t, "Lights out, star boy!", { x: W - 180, y: H * 0.24, width: 128, to: { x: W * 0.62, y: H * 0.3 } });
57
+ foot(k, t, W, 96, "The night the city went dark, one star stayed lit.", "Cover line");
58
+ }
59
+
60
+ export {
61
+ comic_hero_cover_modern_default,
62
+ drawPage
63
+ };
@@ -0,0 +1,70 @@
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
+ FOLIO,
9
+ caption,
10
+ comicMeta,
11
+ comicSetup,
12
+ folio,
13
+ pageGrid,
14
+ panel,
15
+ rows,
16
+ say,
17
+ sfx,
18
+ slantTier,
19
+ tierBox
20
+ } from "./chunk-UBT4DZYW.js";
21
+ import {
22
+ defineTemplate
23
+ } from "./chunk-HLBQLOTA.js";
24
+ import {
25
+ Kit,
26
+ preset
27
+ } from "./chunk-2P7ISWIA.js";
28
+ import {
29
+ init_define_POPCRAFT_COMPONENT_IDS
30
+ } from "./chunk-FFS4SO7R.js";
31
+
32
+ // templates/src/print/comic-hero-parallel.ts
33
+ init_define_POPCRAFT_COMPONENT_IDS();
34
+ var comic_hero_parallel_default = defineTemplate({
35
+ id: "comic-parallel",
36
+ meta: comicMeta("Parallel page", 'Page eight of "Nightstar: Blackout": two columns side by side, Nightstar holding off the lightning on the left while Rosa runs for the junction box on the right, until she pulls the lever and the storm dies', ["parallel", "two columns", "cross-cutting", "sound effects"]),
37
+ stableNumbers: true,
38
+ build() {
39
+ const k = new Kit("Parallel page", preset("comic-page"));
40
+ comicSetup(k);
41
+ drawPage(k);
42
+ return k.finish();
43
+ }
44
+ });
45
+ function drawPage(k) {
46
+ const g = 12, { W, H } = pageGrid(k, k.sheet, 36, g);
47
+ const hs = rows(H - FOLIO, g, [1, 1, 1]);
48
+ const pairs = [["para-1", "para-2", "Into the glare", "Rosa runs"], ["para-3", "para-4", "Holding on", "The lever"], ["para-5", "para-6", "The storm dies", "Thumbs up"]];
49
+ const ts = hs.map((h, i) => {
50
+ const t = tierBox(k, k.sheet, W, h, `Tier ${i + 1}`);
51
+ const [a, b] = slantTier(W, h, [1, 1], i % 2 ? -14 : 14, g);
52
+ panel(k, t, a, pairs[i][0], { ground: i % 2 ? "heroG2" : "heroG1", name: pairs[i][2] });
53
+ panel(k, t, b, pairs[i][1], { ground: "heroG3", name: pairs[i][3] });
54
+ return t;
55
+ });
56
+ const half = W / 2;
57
+ caption(k, ts[0], "Him.", { x: 10, y: 10, width: 70 });
58
+ caption(k, ts[0], "Her.", { x: half + 20, y: 10, width: 70 });
59
+ say(k, ts[1], "Hold... on...", { x: 10, y: 10, width: 96, to: { x: half * 0.6, y: hs[1] * 0.4 } });
60
+ sfx(k, ts[1], "Ka-chunk!", { x: W - 280, y: hs[1] - 100, w: 260, h: 90, deg: -8, seed: 6 });
61
+ say(k, ts[1], "Lights out, big guy!", { x: half + 24, y: 10, width: 128, to: { x: half + half * 0.3, y: hs[1] * 0.35 } });
62
+ say(k, ts[2], "What?! No\u2014", { x: 10, y: 10, width: 96, to: { x: half * 0.5, y: hs[2] * 0.3 } });
63
+ say(k, ts[2], "Nice work, courier.", { x: W - 140, y: 10, width: 128, to: { x: half + half * 0.4, y: hs[2] * 0.25 } });
64
+ folio(k, k.sheet, "Nightstar: Blackout \u2014 page 8");
65
+ }
66
+
67
+ export {
68
+ comic_hero_parallel_default,
69
+ drawPage
70
+ };
@@ -7,7 +7,7 @@ const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  defaultMeasure,
9
9
  placePicture
10
- } from "./chunk-TQPKOPCW.js";
10
+ } from "./chunk-3ZO43HDI.js";
11
11
  import "./chunk-KTY54Z6Y.js";
12
12
  import {
13
13
  api
@@ -121,7 +121,7 @@ async function placeLibraryItem(item, opts = {}) {
121
121
  }
122
122
  if (item.contentType.startsWith("video/")) {
123
123
  const file = await libraryFile(item, opts);
124
- const [{ useEditorStore }, { placeMediaFile }] = await Promise.all([import("./editor-store-NDV4IXDK.js"), import("./media-tool-OVVKBD3N.js")]);
124
+ const [{ useEditorStore }, { placeMediaFile }] = await Promise.all([import("./editor-store-UAEROYSB.js"), import("./media-tool-YFIYMYI5.js")]);
125
125
  const cam = useEditorStore.getState().camera;
126
126
  await placeMediaFile(file, { kind: "point", ...opts.at ?? { x: cam.x, y: cam.y } });
127
127
  return useEditorStore.getState().selection[0] ?? null;