@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
@@ -18,7 +18,7 @@ import {
18
18
  renderDocument,
19
19
  toolView,
20
20
  underReviewKit
21
- } from "./chunk-UM6QUOOH.js";
21
+ } from "./chunk-DZIPU2Q4.js";
22
22
  import "./chunk-A3PNGDIC.js";
23
23
  import "./chunk-7EEUGQZW.js";
24
24
  import "./chunk-IU4XG2RJ.js";
@@ -11,11 +11,11 @@ import {
11
11
  placeDesign,
12
12
  sizePreset,
13
13
  templateOfBuild
14
- } from "./chunk-DUYDXAR5.js";
14
+ } from "./chunk-O3W7HYS7.js";
15
15
  import "./chunk-4THRVBSE.js";
16
16
  import "./chunk-G7PRXO6C.js";
17
17
  import "./chunk-4MICRJXM.js";
18
- import "./chunk-IUK367P7.js";
18
+ import "./chunk-5PSOLUKI.js";
19
19
  import "./chunk-OIXOTZRZ.js";
20
20
  import "./chunk-263B6ENN.js";
21
21
  import "./chunk-VFZUPGK7.js";
@@ -7,8 +7,8 @@ const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  builtinTools,
9
9
  registerBuiltinTools
10
- } from "./chunk-3DNAX4HN.js";
11
- import "./chunk-LE33OZ4V.js";
10
+ } from "./chunk-HBPURYPZ.js";
11
+ import "./chunk-N2RBQBUE.js";
12
12
  import "./chunk-KV34UK7F.js";
13
13
  import "./chunk-VFRAUFQT.js";
14
14
  import "./chunk-HNFJNRW6.js";
@@ -19,7 +19,7 @@ import "./chunk-WOJQT37H.js";
19
19
  import "./chunk-5STBM3DT.js";
20
20
  import "./chunk-CW3YS3XC.js";
21
21
  import "./chunk-BQXNFA5K.js";
22
- import "./chunk-UM6QUOOH.js";
22
+ import "./chunk-DZIPU2Q4.js";
23
23
  import "./chunk-A3PNGDIC.js";
24
24
  import "./chunk-N42YJFOC.js";
25
25
  import "./chunk-KTY54Z6Y.js";
@@ -6,10 +6,10 @@ const __filename = __popcraftPath(import.meta.url);
6
6
  const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  appCommands
9
- } from "./chunk-GT5X67P7.js";
9
+ } from "./chunk-MFPMMKHP.js";
10
10
  import {
11
11
  builtinCommands
12
- } from "./chunk-LE33OZ4V.js";
12
+ } from "./chunk-N2RBQBUE.js";
13
13
  import "./chunk-KV34UK7F.js";
14
14
  import "./chunk-VFRAUFQT.js";
15
15
  import "./chunk-HNFJNRW6.js";
@@ -5629,7 +5629,7 @@ var templates_default = [
5629
5629
  name: "Back matter (letters page)",
5630
5630
  kind: "PRINT",
5631
5631
  category: "comic",
5632
- bytes: 134116
5632
+ bytes: 39639
5633
5633
  },
5634
5634
  {
5635
5635
  id: "popcraft.comic-book",
@@ -5643,21 +5643,21 @@ var templates_default = [
5643
5643
  name: "Cascade page",
5644
5644
  kind: "PRINT",
5645
5645
  category: "comic",
5646
- bytes: 167696
5646
+ bytes: 62118
5647
5647
  },
5648
5648
  {
5649
5649
  id: "popcraft.comic-chase",
5650
5650
  name: "Chase page",
5651
5651
  kind: "PRINT",
5652
5652
  category: "comic",
5653
- bytes: 150263
5653
+ bytes: 61706
5654
5654
  },
5655
5655
  {
5656
5656
  id: "popcraft.comic-cover-modern",
5657
5657
  name: "Comic cover (modern)",
5658
5658
  kind: "PRINT",
5659
5659
  category: "comic",
5660
- bytes: 68177
5660
+ bytes: 36599
5661
5661
  },
5662
5662
  {
5663
5663
  id: "popcraft.comic-cover-pulp",
@@ -5678,63 +5678,77 @@ var templates_default = [
5678
5678
  name: "Four-panel gag",
5679
5679
  kind: "PRINT",
5680
5680
  category: "comic",
5681
- bytes: 165900
5681
+ bytes: 44589
5682
5682
  },
5683
5683
  {
5684
5684
  id: "popcraft.comic-grid-break",
5685
5685
  name: "Grid-break page",
5686
5686
  kind: "PRINT",
5687
5687
  category: "comic",
5688
- bytes: 203297
5688
+ bytes: 53322
5689
+ },
5690
+ {
5691
+ id: "popcraft.comic-hero-issue",
5692
+ name: "Whole comic issue (Nightstar)",
5693
+ kind: "PRINT",
5694
+ category: "comic",
5695
+ bytes: 373649
5689
5696
  },
5690
5697
  {
5691
5698
  id: "popcraft.comic-hourglass",
5692
5699
  name: "Symbol page (hourglass)",
5693
5700
  kind: "PRINT",
5694
5701
  category: "comic",
5695
- bytes: 167433
5702
+ bytes: 43927
5696
5703
  },
5697
5704
  {
5698
5705
  id: "popcraft.comic-icon-grid",
5699
5706
  name: "Modular page",
5700
5707
  kind: "PRINT",
5701
5708
  category: "comic",
5702
- bytes: 320353
5709
+ bytes: 54365
5710
+ },
5711
+ {
5712
+ id: "popcraft.comic-indie-issue",
5713
+ name: "Whole comic issue (Alder Street)",
5714
+ kind: "PRINT",
5715
+ category: "comic",
5716
+ bytes: 305258
5703
5717
  },
5704
5718
  {
5705
5719
  id: "popcraft.comic-interrogation",
5706
5720
  name: "Interrogation page",
5707
5721
  kind: "PRINT",
5708
5722
  category: "comic",
5709
- bytes: 89629
5723
+ bytes: 58590
5710
5724
  },
5711
5725
  {
5712
5726
  id: "popcraft.comic-manga-action",
5713
5727
  name: "Manga action page",
5714
5728
  kind: "PRINT",
5715
5729
  category: "comic",
5716
- bytes: 98949
5730
+ bytes: 51375
5717
5731
  },
5718
5732
  {
5719
5733
  id: "popcraft.comic-manga-page",
5720
5734
  name: "Manga page",
5721
5735
  kind: "PRINT",
5722
5736
  category: "comic",
5723
- bytes: 124031
5737
+ bytes: 49195
5724
5738
  },
5725
5739
  {
5726
5740
  id: "popcraft.comic-negative-space",
5727
5741
  name: "Negative space page",
5728
5742
  kind: "PRINT",
5729
5743
  category: "comic",
5730
- bytes: 101075
5744
+ bytes: 36905
5731
5745
  },
5732
5746
  {
5733
5747
  id: "popcraft.comic-nested",
5734
5748
  name: "Nested page",
5735
5749
  kind: "PRINT",
5736
5750
  category: "comic",
5737
- bytes: 202304
5751
+ bytes: 57655
5738
5752
  },
5739
5753
  {
5740
5754
  id: "popcraft.comic-nine-grid",
@@ -5748,7 +5762,7 @@ var templates_default = [
5748
5762
  name: "Overlapping page",
5749
5763
  kind: "PRINT",
5750
5764
  category: "comic",
5751
- bytes: 126235
5765
+ bytes: 60658
5752
5766
  },
5753
5767
  {
5754
5768
  id: "popcraft.comic-page-classic",
@@ -5762,14 +5776,14 @@ var templates_default = [
5762
5776
  name: "Parallel page",
5763
5777
  kind: "PRINT",
5764
5778
  category: "comic",
5765
- bytes: 188381
5779
+ bytes: 60439
5766
5780
  },
5767
5781
  {
5768
5782
  id: "popcraft.comic-pinup",
5769
5783
  name: "Pin-up page",
5770
5784
  kind: "PRINT",
5771
5785
  category: "comic",
5772
- bytes: 56039
5786
+ bytes: 30727
5773
5787
  },
5774
5788
  {
5775
5789
  id: "popcraft.comic-polyptych",
@@ -5790,14 +5804,14 @@ var templates_default = [
5790
5804
  name: "Risograph page",
5791
5805
  kind: "PRINT",
5792
5806
  category: "comic",
5793
- bytes: 169719
5807
+ bytes: 49276
5794
5808
  },
5795
5809
  {
5796
5810
  id: "popcraft.comic-silent",
5797
5811
  name: "Silent page",
5798
5812
  kind: "PRINT",
5799
5813
  category: "comic",
5800
- bytes: 304607
5814
+ bytes: 47726
5801
5815
  },
5802
5816
  {
5803
5817
  id: "popcraft.comic-splash",
@@ -5818,35 +5832,35 @@ var templates_default = [
5818
5832
  name: "Daily strip",
5819
5833
  kind: "PRINT",
5820
5834
  category: "comic",
5821
- bytes: 123798
5835
+ bytes: 39615
5822
5836
  },
5823
5837
  {
5824
5838
  id: "popcraft.comic-talking-heads",
5825
5839
  name: "Talking heads page",
5826
5840
  kind: "PRINT",
5827
5841
  category: "comic",
5828
- bytes: 129384
5842
+ bytes: 52072
5829
5843
  },
5830
5844
  {
5831
5845
  id: "popcraft.comic-webtoon",
5832
5846
  name: "Vertical scroll (webtoon)",
5833
5847
  kind: "PRINT",
5834
5848
  category: "comic",
5835
- bytes: 161985
5849
+ bytes: 43866
5836
5850
  },
5837
5851
  {
5838
5852
  id: "popcraft.comic-widescreen",
5839
5853
  name: "Widescreen page",
5840
5854
  kind: "PRINT",
5841
5855
  category: "comic",
5842
- bytes: 169998
5856
+ bytes: 49016
5843
5857
  },
5844
5858
  {
5845
5859
  id: "popcraft.comic-zine",
5846
5860
  name: "Quarter-fold zine",
5847
5861
  kind: "PRINT",
5848
5862
  category: "comic",
5849
- bytes: 193351
5863
+ bytes: 45602
5850
5864
  },
5851
5865
  {
5852
5866
  id: "popcraft.email-announcement",
@@ -7438,7 +7452,7 @@ var templates_default = [
7438
7452
  kind: "SOCIAL",
7439
7453
  category: "animation",
7440
7454
  animated: true,
7441
- bytes: 3001771
7455
+ bytes: 3515219
7442
7456
  },
7443
7457
  {
7444
7458
  id: "popcraft.motion-launch-trailer",
@@ -7446,7 +7460,7 @@ var templates_default = [
7446
7460
  kind: "SOCIAL",
7447
7461
  category: "animation",
7448
7462
  animated: true,
7449
- bytes: 3276248
7463
+ bytes: 3789696
7450
7464
  },
7451
7465
  {
7452
7466
  id: "popcraft.motion-logo-reveal",
@@ -8966,7 +8980,7 @@ var templates_default = [
8966
8980
  kind: "PRESENTATION",
8967
8981
  category: "animation",
8968
8982
  animated: true,
8969
- bytes: 2816943
8983
+ bytes: 3330391
8970
8984
  },
8971
8985
  {
8972
8986
  id: "popcraft.motion-title-card-3d",
@@ -6,7 +6,7 @@ const __filename = __popcraftPath(import.meta.url);
6
6
  const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  buildTemplateWall
9
- } from "./chunk-R3D5OMSG.js";
9
+ } from "./chunk-GF6N47NL.js";
10
10
  import {
11
11
  APPS,
12
12
  BEAT,
@@ -91,9 +91,9 @@ async function placeStockPhoto(photo, opts = {}) {
91
91
  }
92
92
  async function placePicture(imported, opts = {}) {
93
93
  const [{ useEditorStore }, { photoFrameOf }, { placeImage }] = await Promise.all([
94
- import("./editor-store-NDV4IXDK.js"),
94
+ import("./editor-store-UAEROYSB.js"),
95
95
  import("../lib/document/photo-frames.js"),
96
- import("./media-tool-OVVKBD3N.js")
96
+ import("./media-tool-YFIYMYI5.js")
97
97
  ]);
98
98
  const st = useEditorStore.getState();
99
99
  const frame = photoFrameOf(st.document.nodes, opts.targetId !== void 0 ? opts.targetId : st.selection[0] ?? null);
@@ -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-KOKO3HTP.js";
9
+ } from "./chunk-3NI5OGFT.js";
10
10
  import {
11
11
  COLORS,
12
12
  DURATION_MS,
@@ -28,10 +28,10 @@ import {
28
28
  requestImageAction,
29
29
  sizeForAspect,
30
30
  vectorSupport
31
- } from "./chunk-DVX7UAKA.js";
31
+ } from "./chunk-DQ7AF2R5.js";
32
32
  import {
33
33
  useEditorStore
34
- } from "./chunk-AXKXWL35.js";
34
+ } from "./chunk-WKKHCEXN.js";
35
35
  import {
36
36
  getActiveRenderer
37
37
  } from "./chunk-L655IQHW.js";
@@ -0,0 +1,194 @@
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
+ indieArt
9
+ } from "./chunk-LP7LPUQJ.js";
10
+ import {
11
+ init_define_POPCRAFT_COMPONENT_IDS
12
+ } from "./chunk-FFS4SO7R.js";
13
+
14
+ // templates/src/themes/comic-indie-page.ts
15
+ init_define_POPCRAFT_COMPONENT_IDS();
16
+ var COLORS = {
17
+ paper: "#FBF1E4",
18
+ text: "#2A1E1A",
19
+ onPaper: "#4A3A35",
20
+ primary: "#D9603B",
21
+ onPrimary: "#FFF8EE",
22
+ accent: "#F6C66B",
23
+ onAccent: "#2A1E1A",
24
+ card: "#FFF8EE",
25
+ onCard: "#2A1E1A"
26
+ };
27
+ var GROUNDS = { g1: "#F2A65A", g2: "#C8553D", g3: "#6E4B6B", g4: "#F7D9A8", ink: "#2A1E1A" };
28
+ var STORY = { title: "Last Summer on Alder Street", series: "Alder Street", issue: "No. 1" };
29
+ function indieSetup(k) {
30
+ k.quantizeGeometry = true;
31
+ k.brand({ ...COLORS }, { title: STORY.title, series: STORY.series, issue: STORY.issue });
32
+ k.palette({ ...GROUNDS });
33
+ k.textStyle("Lettering", { size: 12, fontWeight: 700, lineHeight: 14, letterSpacing: 0, textAlign: "CENTER" });
34
+ k.textStyle("Caption", { size: 11, fontWeight: 600, lineHeight: 14, letterSpacing: 0 });
35
+ for (const [suffix, bw] of BALLOON_WIDTHS) {
36
+ k.component(`Speech balloon${suffix}`, { width: bw, padding: { top: 10, right: 13, bottom: 12, left: 13 }, radius: 22, fill: "card", stroke: { color: "onCard", width: 2, align: "INSIDE" }, align: "CENTER", props: { Text: "Say something." } }, (id) => {
37
+ k.propText(id, "Text", { style: "Lettering", color: "onCard", align: "CENTER", width: "FILL" });
38
+ });
39
+ }
40
+ }
41
+ var DISPLAY = {
42
+ "SFX": { size: 26, fontWeight: 900, fontStyle: "italic", lineHeight: 26, letterSpacing: -1, textAlign: "CENTER" },
43
+ "Title": { size: 26, fontWeight: 900, lineHeight: 28, letterSpacing: -0.5 },
44
+ "Masthead": { size: 40, fontWeight: 900, lineHeight: 40, letterSpacing: -1.5 },
45
+ "Body": { size: 11, fontWeight: 400, lineHeight: 16, letterSpacing: 0 },
46
+ "Credit": { size: 9, fontWeight: 700, lineHeight: 12, letterSpacing: 1 }
47
+ };
48
+ var made = /* @__PURE__ */ new WeakMap();
49
+ function display(k, name) {
50
+ const set = made.get(k) ?? /* @__PURE__ */ new Set();
51
+ made.set(k, set);
52
+ if (!set.has(name)) {
53
+ k.textStyle(name, DISPLAY[name]);
54
+ set.add(name);
55
+ }
56
+ return name;
57
+ }
58
+ var BALLOON_WIDTHS = [[" (small)", 96], ["", 128], [" (wide)", 168]];
59
+ var balloonFor = (w) => BALLOON_WIDTHS.find(([, bw]) => w <= bw) ?? BALLOON_WIDTHS[BALLOON_WIDTHS.length - 1];
60
+ var rectFrame = (x, y, width, height) => ({ x, y, width, height, points: [{ x: 0, y: 0 }, { x: width, y: 0 }, { x: width, y: height }, { x: 0, y: height }] });
61
+ function frameOf(corners) {
62
+ const xs = corners.map((p) => p.x), ys = corners.map((p) => p.y);
63
+ const x = Math.min(...xs), y = Math.min(...ys);
64
+ return { x: Math.round(x), y: Math.round(y), width: Math.round(Math.max(...xs) - x), height: Math.round(Math.max(...ys) - y), points: corners.map((p) => ({ x: Math.round(p.x - x), y: Math.round(p.y - y) })) };
65
+ }
66
+ function shares(total, gutter, parts) {
67
+ const sum = parts.reduce((a, b) => a + b, 0), free = total - gutter * (parts.length - 1);
68
+ const out = parts.map((p) => Math.floor(free * p / sum));
69
+ out[out.length - 1] = free - out.slice(0, -1).reduce((a, b) => a + b, 0);
70
+ return out;
71
+ }
72
+ function tier(width, height, parts, gutter = 10) {
73
+ let x = 0;
74
+ return shares(width, gutter, parts).map((w) => {
75
+ const f = rectFrame(x, 0, w, height);
76
+ x += w + gutter;
77
+ return f;
78
+ });
79
+ }
80
+ function slantTier(width, height, parts, lean = 16, gutter = 10) {
81
+ const widths = shares(width, gutter, parts), edges = [0];
82
+ widths.forEach((w, i) => edges.push(edges[i] + w + (i < widths.length - 1 ? gutter : 0)));
83
+ return widths.map((_, i) => {
84
+ const first = i === 0, last = i === widths.length - 1;
85
+ const lTop = first ? 0 : edges[i] + lean, lBot = first ? 0 : edges[i] - lean;
86
+ const rTop = last ? width : edges[i + 1] - gutter + lean, rBot = last ? width : edges[i + 1] - gutter - lean;
87
+ return frameOf([{ x: lTop, y: 0 }, { x: rTop, y: 0 }, { x: rBot, y: height }, { x: lBot, y: height }]);
88
+ });
89
+ }
90
+ function pageGrid(k, sheet, margin, gutter) {
91
+ k.flowSheet(sheet, gutter, margin);
92
+ const n = k.node(sheet);
93
+ return { W: n.width - margin * 2, H: n.height - margin * 2 - FOLIO - gutter };
94
+ }
95
+ var FOLIO = 14;
96
+ function folio(k, sheet, label) {
97
+ const row = k.stack(sheet, { width: "FILL", height: FOLIO, direction: "HORIZONTAL", justify: "SPACE_BETWEEN", align: "CENTER", name: "Folio" });
98
+ k.text(row, STORY.title, { style: display(k, "Credit"), color: "text", name: "Folio title" });
99
+ k.text(row, label, { style: display(k, "Credit"), color: "onPaper", name: "Folio label" });
100
+ }
101
+ var tierBox = (k, sheet, W, h, name, fill) => k.stack(sheet, { width: W, height: h, name, ...fill ? { fill } : {} });
102
+ var rows = (H, gutter, parts) => shares(H, gutter, parts);
103
+ var TONE = [{ id: "e1", type: "HALFTONE", angle: 45, dotSize: 7, contrast: 0.5, colorMode: "SOURCE", shape: "CIRCLE", layout: "UNIFORM", toneSource: "LINEAR_GRADIENT", gradientAngle: 90, center: { x: 0.5, y: 0.5 }, visible: true }];
104
+ function panel(k, tierId, f, art, o) {
105
+ if (o.keyline) k.rect(tierId, f.width + 12, f.height + 12, "paper", { name: "Keyline", absolute: { x: f.x - 6, y: f.y - 6 } });
106
+ const id = k.group(tierId, { x: f.x, y: f.y, width: f.width, height: f.height }, { name: o.name, absolute: true });
107
+ k.patch(id, { isMaskGroup: true, isPhotoFrame: true });
108
+ const shape = { closed: true, points: f.points.map((p) => ({ x: p.x, y: p.y })) };
109
+ k.vector(id, f.width, f.height, [shape], "paper", { name: "Panel mask", mask: true });
110
+ k.rect(id, f.width, f.height, o.ground, { name: "Ground" });
111
+ k.image(id, indieArt(art), f.width, f.height, { name: `${o.name} art` });
112
+ if (o.tone) {
113
+ const t = k.rect(id, f.width, f.height, "g3", { name: "Ben-Day screen", effects: TONE, opacity: 0.35 });
114
+ k.patch(t, { blendMode: "MULTIPLY" });
115
+ }
116
+ k.vector(id, f.width, f.height, [shape], [], { name: "Panel edge", stroke: { color: "ink", width: 2.5, join: "ROUND" } });
117
+ return id;
118
+ }
119
+ function say(k, tierId, words, o) {
120
+ const [suffix, w] = balloonFor(o.width ?? 128);
121
+ if (o.to) {
122
+ const root = { x: o.x + w * 0.5 + (o.to.x > o.x + w / 2 ? w * 0.12 : -w * 0.12), y: o.y + 16 };
123
+ const lines = Math.ceil(words.length * 6.2 / (w - 26)), foot = o.y + 22 + lines * 14;
124
+ const dist = Math.hypot(o.to.x - root.x, o.to.y - root.y) || 1, reach = Math.min(dist, Math.max(foot - root.y + 22, 30));
125
+ const to = { x: root.x + (o.to.x - root.x) * reach / dist, y: root.y + (o.to.y - root.y) * reach / dist };
126
+ const dx = to.x - root.x, dy = to.y - root.y, len = Math.hypot(dx, dy) || 1, nx = -dy / len, ny = dx / len, half = 8;
127
+ const pts = [{ x: root.x + nx * half, y: root.y + ny * half }, to, { x: root.x - nx * half, y: root.y - ny * half }];
128
+ const x0 = Math.min(...pts.map((p) => p.x)), y0 = Math.min(...pts.map((p) => p.y));
129
+ k.vector(
130
+ tierId,
131
+ Math.max(1, Math.max(...pts.map((p) => p.x)) - x0),
132
+ Math.max(1, Math.max(...pts.map((p) => p.y)) - y0),
133
+ [{ closed: true, points: pts.map((p) => ({ x: p.x - x0, y: p.y - y0 })) }],
134
+ "card",
135
+ { name: "Balloon tail", stroke: { color: "onCard", width: 2, join: "ROUND" }, absolute: { x: x0, y: y0 } }
136
+ );
137
+ }
138
+ return k.instance(tierId, `Speech balloon${suffix}`, { Text: words }, { absolute: { x: Math.round(o.x), y: Math.round(o.y) }, name: o.name ?? "Balloon" });
139
+ }
140
+ function caption(k, tierId, words, o) {
141
+ const id = k.stack(tierId, { width: o.width ?? 200, padding: { top: 6, right: 9, bottom: 7, left: 9 }, fill: "accent", stroke: { color: "onAccent", width: 1.5, align: "INSIDE" }, name: o.name ?? "Caption box", absolute: { x: Math.round(o.x), y: Math.round(o.y) } });
142
+ k.text(id, words, { style: "Caption", color: "onAccent", width: "FILL", name: "Caption words" });
143
+ return id;
144
+ }
145
+ function sfx(k, tierId, words, o) {
146
+ const id = k.stack(tierId, { width: o.w, height: o.h, align: "CENTER", justify: "CENTER", name: o.name ?? "Sound effect", absolute: { x: Math.round(o.x), y: Math.round(o.y) } });
147
+ const n = 11, pts = [];
148
+ let s = (o.seed ?? 7) >>> 0;
149
+ const r = () => {
150
+ s = Math.imul(s, 1664525) + 1013904223 >>> 0;
151
+ return s / 2 ** 32;
152
+ };
153
+ for (let i = 0; i < n * 2; i++) {
154
+ const a = i * Math.PI / n - Math.PI / 2, rad = i % 2 ? 0.7 + r() * 0.06 : 0.92 + r() * 0.08;
155
+ pts.push({ x: o.w / 2 + o.w / 2 * rad * Math.cos(a), y: o.h / 2 + o.h / 2 * rad * Math.sin(a) });
156
+ }
157
+ k.vector(id, o.w, o.h, [{ closed: true, points: pts }], "accent", { name: "Impact star", stroke: { color: "onAccent", width: 2, join: "ROUND" }, absolute: { x: 0, y: 0 } });
158
+ k.text(id, words, { style: display(k, "SFX"), color: "onAccent", align: "CENTER", name: "Sound effect words", autoWidth: true });
159
+ if (o.deg) k.patch(id, { rotation: o.deg });
160
+ return id;
161
+ }
162
+ function indieMeta(name, description, tags) {
163
+ return {
164
+ name,
165
+ description,
166
+ category: "comic",
167
+ tags: ["comic", "print", "alder street", "slice of life", "indie", ...tags],
168
+ platforms: ["print"],
169
+ formats: ["page"],
170
+ useCases: ["comic"],
171
+ created: "2026-09-22",
172
+ updated: "2026-10-10"
173
+ };
174
+ }
175
+
176
+ export {
177
+ STORY,
178
+ indieSetup,
179
+ display,
180
+ rectFrame,
181
+ frameOf,
182
+ shares,
183
+ tier,
184
+ slantTier,
185
+ pageGrid,
186
+ folio,
187
+ tierBox,
188
+ rows,
189
+ panel,
190
+ say,
191
+ caption,
192
+ sfx,
193
+ indieMeta
194
+ };