@popcraft/kit 0.53.5 → 0.53.7

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 (106) hide show
  1. package/dist/chunks/{agent-BU2V7K5W.js → agent-CQW3J66O.js} +1 -1
  2. package/dist/chunks/{builtin-WRS6ZSPK.js → builtin-4F3NL76H.js} +3 -3
  3. package/dist/chunks/{buy-credits-JBM7ETTL.js → buy-credits-45VTGP6U.js} +2 -2
  4. package/dist/chunks/{check-template-H2DYU3XJ.js → check-template-FCMS7KRV.js} +2 -2
  5. package/dist/chunks/{chunk-5F5AEM7E.js → chunk-23Q7YSUQ.js} +4 -4
  6. package/dist/chunks/{chunk-7NJF3TH3.js → chunk-2VZJ2J6D.js} +1 -1
  7. package/dist/chunks/{chunk-GQXBYTFD.js → chunk-4OX7JWIO.js} +1 -1
  8. package/dist/chunks/{chunk-RJQ4GXRB.js → chunk-5YCU2INR.js} +1 -1
  9. package/dist/chunks/{chunk-LOQZBYNB.js → chunk-A2O57RPG.js} +10 -10
  10. package/dist/chunks/{chunk-65NK5Z3O.js → chunk-A6OHD677.js} +1 -1
  11. package/dist/chunks/{chunk-ESUEH4WJ.js → chunk-DRFKCHOC.js} +11 -11
  12. package/dist/chunks/{chunk-WYJKWPAT.js → chunk-DSBF7YHG.js} +12 -12
  13. package/dist/chunks/{chunk-3R6G4PHX.js → chunk-E7EN2OMC.js} +1 -1
  14. package/dist/chunks/{chunk-LGPRILVA.js → chunk-EJIBALJ7.js} +1 -1
  15. package/dist/chunks/{chunk-G53FIV7D.js → chunk-F5MAAKFV.js} +1 -1
  16. package/dist/chunks/{chunk-S6IW3WWA.js → chunk-GGYTSQQM.js} +9 -9
  17. package/dist/chunks/{chunk-ENO5QFID.js → chunk-HD57QW4H.js} +1 -1
  18. package/dist/chunks/{chunk-OE2LGHLL.js → chunk-I4NA5IKC.js} +3 -3
  19. package/dist/chunks/{chunk-5CG26ML2.js → chunk-IEAB5JUV.js} +2 -2
  20. package/dist/chunks/{chunk-X2TDZ6AE.js → chunk-IYULKPAX.js} +2 -2
  21. package/dist/chunks/{chunk-5VQ4L2PX.js → chunk-J7HGSM35.js} +5 -3
  22. package/dist/chunks/{chunk-4DLUQAQU.js → chunk-KISTDUX4.js} +12 -12
  23. package/dist/chunks/{chunk-NGYWHBRO.js → chunk-LV4OGPWD.js} +5 -5
  24. package/dist/chunks/{chunk-K65QFCH4.js → chunk-LZNMC4YI.js} +2 -2
  25. package/dist/chunks/{chunk-7CSTSDHU.js → chunk-MM3JWXJU.js} +51 -51
  26. package/dist/chunks/{chunk-YMGUPGGX.js → chunk-OBKABE5C.js} +4 -4
  27. package/dist/chunks/{chunk-QMHR62B6.js → chunk-PH3FIQCV.js} +4 -4
  28. package/dist/chunks/{chunk-G27HUNKQ.js → chunk-PP37OBDY.js} +1 -1
  29. package/dist/chunks/{chunk-6ZYY4ORM.js → chunk-PRI46TS3.js} +1 -1
  30. package/dist/chunks/{chunk-57ZPSFB4.js → chunk-PSGIZO5H.js} +4 -4
  31. package/dist/chunks/{chunk-SYBLNKMV.js → chunk-PYT33SCW.js} +1 -1
  32. package/dist/chunks/{chunk-N6ROVGBO.js → chunk-QG36GBFI.js} +1 -1
  33. package/dist/chunks/{chunk-OWWBFGCR.js → chunk-QJIJR335.js} +1 -1
  34. package/dist/chunks/{chunk-KTKPPFAZ.js → chunk-QZE6H6XL.js} +1 -1
  35. package/dist/chunks/{chunk-4JTHODXO.js → chunk-RNWOY5EE.js} +4 -4
  36. package/dist/chunks/{chunk-LHZXBPGT.js → chunk-SLKPUM6Y.js} +1 -1
  37. package/dist/chunks/{chunk-AGL7MNPF.js → chunk-TM4IIEIZ.js} +3 -1
  38. package/dist/chunks/{chunk-C743GDSN.js → chunk-UFNWCS34.js} +1 -1
  39. package/dist/chunks/{chunk-HF3GQO2C.js → chunk-UP6DQBKO.js} +1 -1
  40. package/dist/chunks/{chunk-UTDF3XDV.js → chunk-WJKHQ2KQ.js} +9 -6
  41. package/dist/chunks/{chunk-4VCLQ3Z3.js → chunk-Y3CY7AQU.js} +1 -1
  42. package/dist/chunks/{chunk-3OXHJA4W.js → chunk-YSQ3SEV7.js} +1 -1
  43. package/dist/chunks/{chunk-LY7RXVY3.js → chunk-ZJKXEPHM.js} +2 -2
  44. package/dist/chunks/{client-7MO2SGFG.js → client-4NVRUHM7.js} +3 -3
  45. package/dist/chunks/{client-TM3O6JDA.js → client-53GNO3YK.js} +1 -1
  46. package/dist/chunks/{client-P3YFS7W7.js → client-MZOSJYFD.js} +2 -2
  47. package/dist/chunks/{client-actions-MRVKPWRX.js → client-actions-XZRSGP5F.js} +8 -8
  48. package/dist/chunks/{dangerous-CIKKSAGL.js → dangerous-BP3MUFVL.js} +3 -3
  49. package/dist/chunks/{delete-current-file-KHH7YB3K.js → delete-current-file-GJJKP4U6.js} +5 -5
  50. package/dist/chunks/{editor-seams-PLS3CZ74.js → editor-seams-6VYP5FRC.js} +13 -13
  51. package/dist/chunks/{editor-store-5WVLZBLO.js → editor-store-VPCVKYQF.js} +1 -1
  52. package/dist/chunks/{export-ILWWIDBI.js → export-QHUIGZCD.js} +1 -1
  53. package/dist/chunks/{export-watermark-THVSCEIC.js → export-watermark-DSKAKDZT.js} +5 -5
  54. package/dist/chunks/{eyedropper-NM7NT6QT.js → eyedropper-I54PQUWY.js} +1 -1
  55. package/dist/chunks/{generate-media-KISZDA4U.js → generate-media-XVZB4MCL.js} +4 -4
  56. package/dist/chunks/{host-KAU6H7H3.js → host-YZLIFGJ4.js} +8 -8
  57. package/dist/chunks/{integrations-IMLMOW27.js → integrations-F2HLEGRC.js} +1 -1
  58. package/dist/chunks/{libraries-VKNKFX2X.js → libraries-YUV77BOK.js} +5 -5
  59. package/dist/chunks/{live-SJGND5BC.js → live-RIB3F3LJ.js} +1 -1
  60. package/dist/chunks/{media-tool-4VTG3IOX.js → media-tool-XYJ3V3AW.js} +1 -1
  61. package/dist/chunks/{new-file-FJC7XVL2.js → new-file-RMSVGGLD.js} +3 -3
  62. package/dist/chunks/{pdf-HK3GJ6QP.js → pdf-VINHKJUC.js} +9 -9
  63. package/dist/chunks/{plugin-YD7BJLEU.js → plugin-XSH4FKHG.js} +2 -2
  64. package/dist/chunks/{plugin-import-QT4JGS2G.js → plugin-import-UMIO7YDI.js} +17 -17
  65. package/dist/chunks/{presence-E5RZ754Y.js → presence-Y3Y4S2RC.js} +2 -2
  66. package/dist/chunks/{project-C6HMCR35.js → project-WTVK3AKM.js} +3 -3
  67. package/dist/chunks/{publish-site-6D56UAKF.js → publish-site-NRC57RNH.js} +6 -6
  68. package/dist/chunks/{publish-store-ZIKPVRJM.js → publish-store-6ZO55S5C.js} +5 -5
  69. package/dist/chunks/{raster-actions-YLYA524F.js → raster-actions-SNYOUOF2.js} +1 -1
  70. package/dist/chunks/{reference-images-TAWHPRYN.js → reference-images-KQMGU4ZP.js} +2 -2
  71. package/dist/chunks/{resolvers-UTQHZ6ET.js → resolvers-XSREF2Z3.js} +2 -2
  72. package/dist/chunks/{runner-5YTIWTPP.js → runner-TZY5KZG5.js} +20 -20
  73. package/dist/chunks/{store-TUT4RJNP.js → store-QTCQ7KVY.js} +9 -9
  74. package/dist/chunks/{storefront-prepare-6IUMZTCQ.js → storefront-prepare-2KBSFJO6.js} +1 -1
  75. package/dist/chunks/{svg-export-LMGINUQK.js → svg-export-ZKX72Q67.js} +2 -2
  76. package/dist/chunks/{sync-KNGK6CKY.js → sync-XCFS2ECS.js} +5 -5
  77. package/dist/chunks/{tabs-CIVUYFNK.js → tabs-PJOJO3MJ.js} +8 -8
  78. package/dist/chunks/{team-S6MMDNH6.js → team-HSWSNZXW.js} +1 -1
  79. package/dist/chunks/{team-client-3D3DLCUN.js → team-client-J4O35NBO.js} +1 -1
  80. package/dist/chunks/{tools-QCMLA2KV.js → tools-W555MUBF.js} +2 -2
  81. package/dist/chunks/{ui-commands-SORZLF7L.js → ui-commands-5CGKTZAA.js} +15 -15
  82. package/dist/chunks/{versions-FU75DQNZ.js → versions-T7C7E3YR.js} +5 -5
  83. package/dist/index.js +1 -1
  84. package/dist/seed/popcraft.comic-pinup.json.gz +0 -0
  85. package/dist/templates/index.js +17 -17
  86. package/dist/templates/motion/launch-trailer/document.js +17 -17
  87. package/dist/templates/print/comic-hero-cascade.js +2 -2
  88. package/dist/templates/print/comic-hero-chase.js +2 -2
  89. package/dist/templates/print/comic-hero-cover-modern.js +2 -2
  90. package/dist/templates/print/comic-hero-grid-break.js +2 -2
  91. package/dist/templates/print/comic-hero-interrogation.js +2 -2
  92. package/dist/templates/print/comic-hero-issue.js +13 -13
  93. package/dist/templates/print/comic-hero-manga-action.js +2 -2
  94. package/dist/templates/print/comic-hero-nested.js +2 -2
  95. package/dist/templates/print/comic-hero-overlap.js +2 -2
  96. package/dist/templates/print/comic-hero-parallel.js +2 -2
  97. package/dist/templates/print/comic-hero-pinup.js +2 -2
  98. package/dist/templates/print/comic-hero-widescreen.js +2 -2
  99. package/dist/templates/themes/comic-hero-page.js +1 -1
  100. package/dist/templates/themes/comic-hero.js +14 -14
  101. package/dist/templates/themes/comic-indie.js +1 -1
  102. package/dist/templates/themes/index.js +16 -16
  103. package/package.json +1 -1
  104. package/src/templates/themes/comic-hero-page.ts +8 -2
  105. package/src/templates/themes/comic-indie.ts +6 -3
  106. package/types/templates/src/themes/comic-hero-page.d.ts +5 -1
@@ -18,7 +18,7 @@ import {
18
18
  renderDocument,
19
19
  toolView,
20
20
  underReviewKit
21
- } from "./chunk-57ZPSFB4.js";
21
+ } from "./chunk-PSGIZO5H.js";
22
22
  import "./chunk-ZYK65XJJ.js";
23
23
  import "./chunk-CEVTHE4E.js";
24
24
  import "./chunk-OQZFD4BD.js";
@@ -7,8 +7,8 @@ const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  builtinTools,
9
9
  registerBuiltinTools
10
- } from "./chunk-5CG26ML2.js";
11
- import "./chunk-7CSTSDHU.js";
10
+ } from "./chunk-IEAB5JUV.js";
11
+ import "./chunk-MM3JWXJU.js";
12
12
  import "./chunk-ZLWN6LBH.js";
13
13
  import "./chunk-Q7EITIAT.js";
14
14
  import "./chunk-X36CCQ76.js";
@@ -19,7 +19,7 @@ import "./chunk-A6XXXQQO.js";
19
19
  import "./chunk-ATSLWELA.js";
20
20
  import "./chunk-6B6ULEDJ.js";
21
21
  import "./chunk-VOOUF5TT.js";
22
- import "./chunk-57ZPSFB4.js";
22
+ import "./chunk-PSGIZO5H.js";
23
23
  import "./chunk-ZYK65XJJ.js";
24
24
  import "./chunk-4LOAHKDJ.js";
25
25
  import "./chunk-UCNBKWJQ.js";
@@ -7,11 +7,11 @@ const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  HYPERY_TEAM_HEADER,
9
9
  hyperyRequestHeaders
10
- } from "./chunk-G53FIV7D.js";
10
+ } from "./chunk-F5MAAKFV.js";
11
11
  import "./chunk-PTWMYRV4.js";
12
12
  import {
13
13
  useHyperyTeam
14
- } from "./chunk-C743GDSN.js";
14
+ } from "./chunk-UFNWCS34.js";
15
15
  import {
16
16
  ApiError,
17
17
  inAppPurchases,
@@ -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-S6IW3WWA.js";
9
+ } from "./chunk-GGYTSQQM.js";
10
10
  import {
11
11
  builtinCommands
12
- } from "./chunk-7CSTSDHU.js";
12
+ } from "./chunk-MM3JWXJU.js";
13
13
  import "./chunk-ZLWN6LBH.js";
14
14
  import "./chunk-Q7EITIAT.js";
15
15
  import "./chunk-X36CCQ76.js";
@@ -20,14 +20,14 @@ import {
20
20
  } from "./chunk-U7FLEMSS.js";
21
21
  import {
22
22
  notice
23
- } from "./chunk-YMGUPGGX.js";
23
+ } from "./chunk-OBKABE5C.js";
24
24
  import {
25
25
  agentContext
26
- } from "./chunk-57ZPSFB4.js";
26
+ } from "./chunk-PSGIZO5H.js";
27
27
  import {
28
28
  collabSession,
29
29
  syncStatus
30
- } from "./chunk-4JTHODXO.js";
30
+ } from "./chunk-RNWOY5EE.js";
31
31
  import {
32
32
  loadEntitlements
33
33
  } from "./chunk-PTWMYRV4.js";
@@ -36,7 +36,7 @@ import {
36
36
  } from "./chunk-SY3KZGGN.js";
37
37
  import {
38
38
  useEditorStore
39
- } from "./chunk-NGYWHBRO.js";
39
+ } from "./chunk-LV4OGPWD.js";
40
40
  import {
41
41
  getActiveRenderer
42
42
  } from "./chunk-CEVTHE4E.js";
@@ -18,7 +18,7 @@ import {
18
18
  tier,
19
19
  tierBox,
20
20
  tilted
21
- } from "./chunk-AGL7MNPF.js";
21
+ } from "./chunk-TM4IIEIZ.js";
22
22
  import {
23
23
  defineTemplate
24
24
  } from "./chunk-YDW25Z3P.js";
@@ -17,7 +17,7 @@ import {
17
17
  sfx,
18
18
  tier,
19
19
  tierBox
20
- } from "./chunk-AGL7MNPF.js";
20
+ } from "./chunk-TM4IIEIZ.js";
21
21
  import {
22
22
  defineTemplate
23
23
  } from "./chunk-YDW25Z3P.js";
@@ -19,7 +19,7 @@ import {
19
19
  tier,
20
20
  tierBox,
21
21
  tilted
22
- } from "./chunk-AGL7MNPF.js";
22
+ } from "./chunk-TM4IIEIZ.js";
23
23
  import {
24
24
  defineTemplate
25
25
  } from "./chunk-YDW25Z3P.js";
@@ -15,20 +15,20 @@ import {
15
15
  } from "./chunk-ZYK65XJJ.js";
16
16
  import {
17
17
  syncStatus
18
- } from "./chunk-4JTHODXO.js";
18
+ } from "./chunk-RNWOY5EE.js";
19
19
  import {
20
20
  exportNodeToSVG
21
- } from "./chunk-OWWBFGCR.js";
21
+ } from "./chunk-QJIJR335.js";
22
22
  import {
23
23
  exportNodeToBlob
24
- } from "./chunk-OE2LGHLL.js";
24
+ } from "./chunk-I4NA5IKC.js";
25
25
  import {
26
26
  usePluginStore
27
27
  } from "./chunk-RJHJSADV.js";
28
28
  import {
29
29
  setPluginTabs,
30
30
  useEditorStore
31
- } from "./chunk-NGYWHBRO.js";
31
+ } from "./chunk-LV4OGPWD.js";
32
32
  import {
33
33
  openBeside
34
34
  } from "./chunk-PMLSPVLR.js";
@@ -69,7 +69,7 @@ init_define_POPCRAFT_COMPONENT_IDS();
69
69
  // lib/plugins/api.ts
70
70
  init_define_POPCRAFT_COMPONENT_IDS();
71
71
  async function handlePluginCall(env, method, params = {}) {
72
- const { dispatchPluginCall } = await import("./plugin-YD7BJLEU.js");
72
+ const { dispatchPluginCall } = await import("./plugin-XSH4FKHG.js");
73
73
  return dispatchPluginCall(env, method, params);
74
74
  }
75
75
 
@@ -579,7 +579,7 @@ async function runPlugin(pluginId, commandId, opts = {}) {
579
579
  if (!openBeside(url)) throw new Error("The browser blocked the new tab");
580
580
  },
581
581
  createDocument: async (opts2) => {
582
- const { createFreshFileOrExplain } = await import("./new-file-FJC7XVL2.js");
582
+ const { createFreshFileOrExplain } = await import("./new-file-RMSVGGLD.js");
583
583
  const created = await createFreshFileOrExplain({}, { name: opts2?.name });
584
584
  if (!created.ok) throw new Error(created.reason === "plan" ? "Plan limit reached" : created.reason === "guest-limit" ? "Sign in to create another file" : `Could not create file (${created.reason})`);
585
585
  await useEditorStore.getState().openDocument(created.docId);
@@ -594,16 +594,16 @@ async function runPlugin(pluginId, commandId, opts = {}) {
594
594
  downloadBlob(new Blob([file.bytes], { type: file.mimeType || "application/octet-stream" }), name);
595
595
  return { name, byteLength: file.bytes.byteLength };
596
596
  },
597
- exportNode: async (nodes, format, scale) => {
597
+ exportNode: async (nodes, format, scale, bleed) => {
598
598
  const renderer = getActiveRenderer();
599
599
  if (!renderer) throw new Error("Renderer is not ready");
600
600
  const st = useEditorStore.getState();
601
601
  const node = nodes[0];
602
602
  if (format === "PDF") {
603
- const { exportNodesToPDF } = await import("./pdf-HK3GJ6QP.js");
603
+ const { exportNodesToPDF } = await import("./pdf-VINHKJUC.js");
604
604
  const { jobPageSize } = await import("../lib/document/print-pages.js");
605
605
  const { loadFullBleed } = await import("./print-prefs-XQJ4IJYZ.js");
606
- const blob2 = await exportNodesToPDF(renderer, nodes, { dpi: 300, bleed: !loadFullBleed(), marks: false, splitSpreads: true, pageSize: jobPageSize(st.document) }, st.document, st.document.styles);
606
+ const blob2 = await exportNodesToPDF(renderer, nodes, { dpi: 300, bleed: bleed ?? !loadFullBleed(), marks: false, splitSpreads: true, pageSize: jobPageSize(st.document) }, st.document, st.document.styles);
607
607
  if (!blob2) throw new Error("PDF export failed");
608
608
  return new Uint8Array(await blob2.arrayBuffer());
609
609
  }
@@ -769,7 +769,7 @@ if (typeof window !== "undefined") {
769
769
  const name = d.name || "Imported";
770
770
  void (async () => {
771
771
  try {
772
- const { importViaPlugin, applyPluginLayoutIr } = await import("./plugin-import-QT4JGS2G.js");
772
+ const { importViaPlugin, applyPluginLayoutIr } = await import("./plugin-import-UMIO7YDI.js");
773
773
  if (d.ir && typeof d.ir === "object") {
774
774
  await applyPluginLayoutIr(d.ir, { mode, name });
775
775
  return;
@@ -15,7 +15,7 @@ import {
15
15
  rectFrame,
16
16
  say,
17
17
  tierBox
18
- } from "./chunk-AGL7MNPF.js";
18
+ } from "./chunk-TM4IIEIZ.js";
19
19
  import {
20
20
  defineTemplate
21
21
  } from "./chunk-YDW25Z3P.js";
@@ -6,14 +6,14 @@ const __filename = __popcraftPath(import.meta.url);
6
6
  const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  pluginRun
9
- } from "./chunk-UTDF3XDV.js";
9
+ } from "./chunk-WJKHQ2KQ.js";
10
10
  import {
11
11
  fileCommands,
12
12
  fontTeamRemove,
13
13
  integrationConfirmCommands,
14
14
  mediaDelete,
15
15
  publishCommands
16
- } from "./chunk-7CSTSDHU.js";
16
+ } from "./chunk-MM3JWXJU.js";
17
17
  import {
18
18
  external_exports
19
19
  } from "./chunk-VOOUF5TT.js";
@@ -53,7 +53,7 @@ var collabSetSpotlight = defineCommand({
53
53
  }
54
54
  },
55
55
  run: async ({ on }, ctx) => {
56
- const { setSpotlight } = await import("./presence-E5RZ754Y.js");
56
+ const { setSpotlight } = await import("./presence-Y3Y4S2RC.js");
57
57
  setSpotlight(on);
58
58
  ctx.notice(on ? "Spotlight on \u2014 everyone is following this view." : "Spotlight off.");
59
59
  return { summary: on ? "Spotlight on" : "Spotlight off", data: { spotlight: on } };
@@ -80,7 +80,7 @@ var collabRevealPrivate = defineCommand({
80
80
  }
81
81
  },
82
82
  run: async (_p, ctx) => {
83
- const { useEditorStore } = await import("./editor-store-5WVLZBLO.js");
83
+ const { useEditorStore } = await import("./editor-store-VPCVKYQF.js");
84
84
  const before = Object.values(useEditorStore.getState().document.nodes).filter((n) => n.privateTo).length;
85
85
  useEditorStore.getState().revealPrivate();
86
86
  ctx.notice(before ? `Revealed ${before} private item${before === 1 ? "" : "s"}.` : "Nothing was private.");
@@ -144,7 +144,7 @@ var documentDelete = defineCommand({
144
144
  }
145
145
  },
146
146
  run: async ({ id }, ctx) => {
147
- const { useEditorStore } = await import("./editor-store-5WVLZBLO.js");
147
+ const { useEditorStore } = await import("./editor-store-VPCVKYQF.js");
148
148
  const wasOpen = useEditorStore.getState().document.id === id;
149
149
  await useEditorStore.getState().deleteDocument(id);
150
150
  ctx.notice("Deleted the document.");
@@ -188,7 +188,7 @@ var libraryPublish = defineCommand({
188
188
  }
189
189
  },
190
190
  run: async (p, ctx) => {
191
- const { publishLibrary } = await import("./libraries-VKNKFX2X.js");
191
+ const { publishLibrary } = await import("./libraries-YUV77BOK.js");
192
192
  const doc = ctx.doc();
193
193
  const pick = {
194
194
  componentIds: p.componentIds ?? Object.keys(doc.components ?? {}),
@@ -220,7 +220,7 @@ var libraryUnpublish = defineCommand({
220
220
  },
221
221
  run: async ({ libraryId }, ctx) => {
222
222
  if (!libraryId.trim()) throw new CommandError("Which library? Pass its `libraryId`.", "invalid_params");
223
- const { unpublishLibrary } = await import("./libraries-VKNKFX2X.js");
223
+ const { unpublishLibrary } = await import("./libraries-YUV77BOK.js");
224
224
  await unpublishLibrary(libraryId);
225
225
  ctx.notice(`Unpublished library ${libraryId}.`);
226
226
  return { summary: `Unpublished library ${libraryId}`, data: { libraryId, unpublished: true } };
@@ -232,8 +232,8 @@ var libraryCommands = [libraryPublish, libraryUnpublish];
232
232
  init_define_POPCRAFT_COMPONENT_IDS();
233
233
  async function findVersion(id) {
234
234
  const [{ useEditorStore }, { versionLabel }] = await Promise.all([
235
- import("./editor-store-5WVLZBLO.js"),
236
- import("./versions-FU75DQNZ.js")
235
+ import("./editor-store-VPCVKYQF.js"),
236
+ import("./versions-T7C7E3YR.js")
237
237
  ]);
238
238
  const meta = useEditorStore.getState().versions.find((v) => v.id === id);
239
239
  if (!meta) {
@@ -266,7 +266,7 @@ var versionRestore = defineCommand({
266
266
  },
267
267
  run: async ({ id }) => {
268
268
  const found = await findVersion(id);
269
- const { restoreVersion } = await import("./versions-FU75DQNZ.js");
269
+ const { restoreVersion } = await import("./versions-T7C7E3YR.js");
270
270
  await restoreVersion(found.meta);
271
271
  return { summary: `Restored \u201C${found.label}\u201D`, data: { id, label: found.label, restored: true } };
272
272
  }
@@ -291,7 +291,7 @@ var versionDelete = defineCommand({
291
291
  },
292
292
  run: async ({ id }, ctx) => {
293
293
  const found = await findVersion(id);
294
- const { deleteVersion } = await import("./versions-FU75DQNZ.js");
294
+ const { deleteVersion } = await import("./versions-T7C7E3YR.js");
295
295
  await deleteVersion(found.meta);
296
296
  ctx.notice(`Deleted the version \u201C${found.label}\u201D.`);
297
297
  return { summary: `Deleted the version \u201C${found.label}\u201D`, data: { id, label: found.label, deleted: true } };
@@ -6,41 +6,41 @@ const __filename = __popcraftPath(import.meta.url);
6
6
  const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  drawPage as drawPage9
9
- } from "./chunk-LHZXBPGT.js";
9
+ } from "./chunk-SLKPUM6Y.js";
10
10
  import {
11
11
  drawPage as drawPage7
12
- } from "./chunk-HF3GQO2C.js";
12
+ } from "./chunk-UP6DQBKO.js";
13
13
  import {
14
14
  drawPage as drawPage6
15
- } from "./chunk-6ZYY4ORM.js";
15
+ } from "./chunk-PRI46TS3.js";
16
16
  import {
17
17
  drawPage as drawPage8
18
- } from "./chunk-4VCLQ3Z3.js";
18
+ } from "./chunk-Y3CY7AQU.js";
19
19
  import {
20
20
  drawPage as drawPage11
21
- } from "./chunk-65NK5Z3O.js";
21
+ } from "./chunk-A6OHD677.js";
22
22
  import {
23
23
  drawPage as drawPage3
24
- } from "./chunk-3R6G4PHX.js";
24
+ } from "./chunk-E7EN2OMC.js";
25
25
  import {
26
26
  drawPage as drawPage5
27
- } from "./chunk-RJQ4GXRB.js";
27
+ } from "./chunk-5YCU2INR.js";
28
28
  import {
29
29
  drawPage as drawPage2
30
- } from "./chunk-N6ROVGBO.js";
30
+ } from "./chunk-QG36GBFI.js";
31
31
  import {
32
32
  drawPage
33
- } from "./chunk-KTKPPFAZ.js";
33
+ } from "./chunk-QZE6H6XL.js";
34
34
  import {
35
35
  drawPage as drawPage4
36
- } from "./chunk-7NJF3TH3.js";
36
+ } from "./chunk-2VZJ2J6D.js";
37
37
  import {
38
38
  drawPage as drawPage10
39
- } from "./chunk-GQXBYTFD.js";
39
+ } from "./chunk-4OX7JWIO.js";
40
40
  import {
41
41
  comicMeta,
42
42
  comicSetup
43
- } from "./chunk-AGL7MNPF.js";
43
+ } from "./chunk-TM4IIEIZ.js";
44
44
  import {
45
45
  defineTemplate
46
46
  } from "./chunk-YDW25Z3P.js";
@@ -17,7 +17,7 @@ import {
17
17
  sfx,
18
18
  tier,
19
19
  tierBox
20
- } from "./chunk-AGL7MNPF.js";
20
+ } from "./chunk-TM4IIEIZ.js";
21
21
  import {
22
22
  defineTemplate
23
23
  } from "./chunk-YDW25Z3P.js";
@@ -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-NGYWHBRO.js";
9
+ } from "./chunk-LV4OGPWD.js";
10
10
  import {
11
11
  announce
12
12
  } from "./chunk-DV7XWPVL.js";
@@ -11,7 +11,7 @@ import {
11
11
  activeHyperyTeamId,
12
12
  activeTeamWorkspaceId,
13
13
  useHyperyTeam
14
- } from "./chunk-C743GDSN.js";
14
+ } from "./chunk-UFNWCS34.js";
15
15
  import {
16
16
  inAppPurchases
17
17
  } from "./chunk-SY3KZGGN.js";
@@ -8,7 +8,7 @@ import {
8
8
  needsSelection,
9
9
  pageGo,
10
10
  selectionIsPicture
11
- } from "./chunk-7CSTSDHU.js";
11
+ } from "./chunk-MM3JWXJU.js";
12
12
  import {
13
13
  external_exports
14
14
  } from "./chunk-VOOUF5TT.js";
@@ -31,7 +31,7 @@ var none = external_exports.object({});
31
31
  var emit = (name, detail) => {
32
32
  if (typeof window !== "undefined") window.dispatchEvent(new CustomEvent(name, { detail }));
33
33
  };
34
- var store = () => import("./editor-store-5WVLZBLO.js").then((m) => m.useEditorStore.getState());
34
+ var store = () => import("./editor-store-VPCVKYQF.js").then((m) => m.useEditorStore.getState());
35
35
  var MODE_IDS = MODE_LIST.map((m) => m.id);
36
36
  var MODE_ALIASES = { JAM: "POPCORN", DEV: "VIEW" };
37
37
  var modeSet = defineCommand({
@@ -167,7 +167,7 @@ var dialogOpen = defineCommand({
167
167
  (await import("./plan-limit-YTIOM3WO.js")).openPlanDialog();
168
168
  break;
169
169
  case "credits":
170
- await (await import("./buy-credits-JBM7ETTL.js")).buyAiCredits();
170
+ await (await import("./buy-credits-45VTGP6U.js")).buyAiCredits();
171
171
  break;
172
172
  case "tokens":
173
173
  emit("popcraft-open-tokens");
@@ -213,7 +213,7 @@ var aiOpen = defineCommand({
213
213
  ] } },
214
214
  run: async ({ dialog, skillId }) => {
215
215
  if (dialog) (await import("./client-store-3YCO6KV5.js")).openAiDialog(dialog);
216
- else (await import("./store-TUT4RJNP.js")).openAgentPanel({ skillId: skillId ?? null });
216
+ else (await import("./store-QTCQ7KVY.js")).openAgentPanel({ skillId: skillId ?? null });
217
217
  return { summary: dialog ? `Opened AI ${dialog}` : "Opened the agent" };
218
218
  }
219
219
  });
@@ -226,7 +226,7 @@ var agentContinue = defineCommand({
226
226
  params: external_exports.object({}),
227
227
  expose: { ui: { label: "AI: Continue the agent\u2019s last turn", keywords: ["ai", "agent", "continue", "resume", "retry", "keep going"] } },
228
228
  run: async () => {
229
- const resumed = await (await import("./runner-5YTIWTPP.js")).continueTurn();
229
+ const resumed = await (await import("./runner-TZY5KZG5.js")).continueTurn();
230
230
  return { summary: resumed ? "Continued the agent" : "Nothing to continue" };
231
231
  }
232
232
  });
@@ -305,11 +305,11 @@ var toolPlace = defineCommand({
305
305
  run: async ({ what }) => {
306
306
  if (what === "media") {
307
307
  const s = await store();
308
- const { placeMediaFromPicker } = await import("./media-tool-4VTG3IOX.js");
308
+ const { placeMediaFromPicker } = await import("./media-tool-XYJ3V3AW.js");
309
309
  await placeMediaFromPicker({ kind: "point", x: s.camera.x, y: s.camera.y });
310
310
  return { summary: "Placing media" };
311
311
  }
312
- const { beginEyedrop } = await import("./eyedropper-NM7NT6QT.js");
312
+ const { beginEyedrop } = await import("./eyedropper-I54PQUWY.js");
313
313
  void beginEyedrop();
314
314
  return { summary: "Pick a color" };
315
315
  }
@@ -327,7 +327,7 @@ var nodeRasterize = defineCommand({
327
327
  keywords: ["rasterize", "raster", "flatten", "pixels", "paint layer", "erase", "bitmap"]
328
328
  } },
329
329
  run: async () => {
330
- const { flattenSelectionToPaintLayer } = await import("./raster-actions-YLYA524F.js");
330
+ const { flattenSelectionToPaintLayer } = await import("./raster-actions-SNYOUOF2.js");
331
331
  await flattenSelectionToPaintLayer();
332
332
  return { summary: "Rasterized" };
333
333
  }
@@ -438,7 +438,7 @@ function pluginCommand(plugins) {
438
438
  params: external_exports.object({ pluginId: external_exports.string(), commandId: external_exports.string() }),
439
439
  expose: { ui: { label: "Run plugin", keywords: ["plugin", "extension", "run"], variants, palette: variants.length ? void 0 : false } },
440
440
  run: async ({ pluginId, commandId }) => {
441
- await (await import("./host-KAU6H7H3.js")).runPlugin(pluginId, commandId);
441
+ await (await import("./host-YZLIFGJ4.js")).runPlugin(pluginId, commandId);
442
442
  return { summary: "Plugin started" };
443
443
  }
444
444
  });
@@ -13,7 +13,7 @@ import {
13
13
  agentTool,
14
14
  agentToolList,
15
15
  registerCommands
16
- } from "./chunk-57ZPSFB4.js";
16
+ } from "./chunk-PSGIZO5H.js";
17
17
  import {
18
18
  dispatch
19
19
  } from "./chunk-OQZFD4BD.js";
@@ -127,7 +127,7 @@ async function copyNodeAsPNG(renderer, node, doc, styles, scale = 2) {
127
127
  }
128
128
  async function copyNodeAsSVG(renderer, node, doc, styles) {
129
129
  try {
130
- const { exportNodeToSVG } = await import("./svg-export-LMGINUQK.js");
130
+ const { exportNodeToSVG } = await import("./svg-export-ZKX72Q67.js");
131
131
  const svg = await exportNodeToSVG(renderer, node, doc, styles);
132
132
  if (!svg) return false;
133
133
  await navigator.clipboard.writeText(svg);
@@ -149,12 +149,12 @@ async function exportSettingFile(renderer, node, setting, doc, styles) {
149
149
  return blob ? { name, blob } : null;
150
150
  }
151
151
  if (setting.format === "SVG") {
152
- const { exportNodeToSVG } = await import("./svg-export-LMGINUQK.js");
152
+ const { exportNodeToSVG } = await import("./svg-export-ZKX72Q67.js");
153
153
  const svg = await exportNodeToSVG(renderer, node, doc, styles);
154
154
  return svg ? { name, blob: new Blob([svg], { type: "image/svg+xml" }) } : null;
155
155
  }
156
156
  if (setting.format === "PDF") {
157
- const { exportNodeToPDF, pdfOptionsFor } = await import("./pdf-HK3GJ6QP.js");
157
+ const { exportNodeToPDF, pdfOptionsFor } = await import("./pdf-VINHKJUC.js");
158
158
  const blob = await exportNodeToPDF(renderer, node, pdfOptionsFor(setting), doc, styles);
159
159
  return blob ? { name, blob } : null;
160
160
  }
@@ -7,10 +7,10 @@ const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  builtinCommands,
9
9
  registerBuiltinCommands
10
- } from "./chunk-7CSTSDHU.js";
10
+ } from "./chunk-MM3JWXJU.js";
11
11
  import {
12
12
  toolView
13
- } from "./chunk-57ZPSFB4.js";
13
+ } from "./chunk-PSGIZO5H.js";
14
14
  import {
15
15
  init_define_POPCRAFT_COMPONENT_IDS
16
16
  } from "./chunk-WKDVCZ45.js";
@@ -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-5WVLZBLO.js"),
94
+ import("./editor-store-VPCVKYQF.js"),
95
95
  import("../lib/document/photo-frames.js"),
96
- import("./media-tool-4VTG3IOX.js")
96
+ import("./media-tool-XYJ3V3AW.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);
@@ -258,10 +258,12 @@ var backmatter = page("comic-backmatter", "Back matter (letters page)", "The let
258
258
  k.text(ind, "LAST SUMMER ON ALDER STREET No. 1. Story, art and letters by the Alder Street team. Printed on recycled stock.", { style: display(k, "Credit"), color: "onPaper", width: "FILL", name: "Indicia text" });
259
259
  });
260
260
  function issueCover(k, sheet) {
261
- const { W, H } = pageGrid(k, sheet, 0, 0);
261
+ const { W } = pageGrid(k, sheet, 0, 0);
262
+ const H = k.node(sheet).height;
262
263
  const t = tierBox(k, sheet, W, H, "Cover");
263
- const b = k.doc.settings?.bleed?.left ?? 0;
264
- panel(k, t, rectFrame(-b, -b, W + 2 * b, H + 2 * b), "hour-1", { ground: "g1", name: "Cover art" });
264
+ const b = k.doc.settings?.bleed;
265
+ const [l, top, r, bo] = [b?.left ?? 0, b?.top ?? 0, b?.right ?? 0, b?.bottom ?? 0];
266
+ panel(k, t, rectFrame(-l, -top, W + l + r, H + top + bo), "hour-1", { ground: "g1", name: "Cover art" });
265
267
  caption(k, t, `${STORY.series} \xB7 ${STORY.issue}`, { x: 36, y: 36, width: 200, name: "Issue" });
266
268
  caption(k, t, STORY.title, { x: 36, y: H - 110, width: 300, name: "Cover title" });
267
269
  }
@@ -6,40 +6,40 @@ const __filename = __popcraftPath(import.meta.url);
6
6
  const __dirname = __popcraftDirname(__filename);
7
7
  import {
8
8
  comic_hero_issue_default
9
- } from "./chunk-WYJKWPAT.js";
9
+ } from "./chunk-DSBF7YHG.js";
10
10
  import {
11
11
  comic_hero_manga_action_default
12
- } from "./chunk-LHZXBPGT.js";
12
+ } from "./chunk-SLKPUM6Y.js";
13
13
  import {
14
14
  comic_hero_nested_default
15
- } from "./chunk-HF3GQO2C.js";
15
+ } from "./chunk-UP6DQBKO.js";
16
16
  import {
17
17
  comic_hero_overlap_default
18
- } from "./chunk-6ZYY4ORM.js";
18
+ } from "./chunk-PRI46TS3.js";
19
19
  import {
20
20
  comic_hero_parallel_default
21
- } from "./chunk-4VCLQ3Z3.js";
21
+ } from "./chunk-Y3CY7AQU.js";
22
22
  import {
23
23
  comic_hero_pinup_default
24
- } from "./chunk-65NK5Z3O.js";
24
+ } from "./chunk-A6OHD677.js";
25
25
  import {
26
26
  comic_hero_widescreen_default
27
- } from "./chunk-3R6G4PHX.js";
27
+ } from "./chunk-E7EN2OMC.js";
28
28
  import {
29
29
  comic_hero_cascade_default
30
- } from "./chunk-RJQ4GXRB.js";
30
+ } from "./chunk-5YCU2INR.js";
31
31
  import {
32
32
  comic_hero_chase_default
33
- } from "./chunk-N6ROVGBO.js";
33
+ } from "./chunk-QG36GBFI.js";
34
34
  import {
35
35
  comic_hero_cover_modern_default
36
- } from "./chunk-KTKPPFAZ.js";
36
+ } from "./chunk-QZE6H6XL.js";
37
37
  import {
38
38
  comic_hero_grid_break_default
39
- } from "./chunk-7NJF3TH3.js";
39
+ } from "./chunk-2VZJ2J6D.js";
40
40
  import {
41
41
  comic_hero_interrogation_default
42
- } from "./chunk-GQXBYTFD.js";
42
+ } from "./chunk-4OX7JWIO.js";
43
43
  import {
44
44
  init_define_POPCRAFT_COMPONENT_IDS
45
45
  } from "./chunk-WKDVCZ45.js";
@@ -4611,7 +4611,7 @@ function createPopcornSlice(set2, get2) {
4611
4611
  privateMode: false,
4612
4612
  setPrivateMode: (on) => {
4613
4613
  set2({ privateMode: on });
4614
- void import("./presence-E5RZ754Y.js").then((m) => m.setPresencePrivate(on)).catch(() => {
4614
+ void import("./presence-Y3Y4S2RC.js").then((m) => m.setPresencePrivate(on)).catch(() => {
4615
4615
  });
4616
4616
  },
4617
4617
  /** Reveal every private item THIS user created (they sync to collaborators). Others' stay theirs. */
@@ -6656,7 +6656,7 @@ var useEditorStore = create()(
6656
6656
  // A copy is a new file, so it is cloud-backed like any other (see lib/client/cloud/new-file.ts).
6657
6657
  // Returns '' when it was refused (offline, signed out, plan full) or failed; nothing is left behind.
6658
6658
  duplicateDocument: async (id) => {
6659
- const { duplicateDocumentToCloud } = await import("./sync-KNGK6CKY.js");
6659
+ const { duplicateDocumentToCloud } = await import("./sync-XCFS2ECS.js");
6660
6660
  return duplicateDocumentToCloud(id);
6661
6661
  },
6662
6662
  deleteDocument: async (id) => {
@@ -10131,9 +10131,9 @@ if (typeof window !== "undefined") {
10131
10131
  if (typeof window !== "undefined" && navigator.webdriver) {
10132
10132
  window.__vpDesign = async (script, o = {}) => {
10133
10133
  const [{ registerBuiltinTools, runTool }, { editorToolContext }, { createDesignPreview }] = await Promise.all([
10134
- import("./tools-QCMLA2KV.js").then(async (m) => ({ ...m, registerBuiltinTools: (await import("./builtin-WRS6ZSPK.js")).registerBuiltinTools })),
10135
- import("./editor-seams-PLS3CZ74.js"),
10136
- import("./live-SJGND5BC.js")
10134
+ import("./tools-W555MUBF.js").then(async (m) => ({ ...m, registerBuiltinTools: (await import("./builtin-4F3NL76H.js")).registerBuiltinTools })),
10135
+ import("./editor-seams-6VYP5FRC.js"),
10136
+ import("./live-RIB3F3LJ.js")
10137
10137
  ]);
10138
10138
  registerBuiltinTools();
10139
10139
  const args = JSON.stringify({ ...o.name ? { name: o.name } : {}, ...o.size ? { size: o.size } : {}, ...o.frame ? { frame: o.frame } : {}, script });
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-PTWMYRV4.js";
10
10
  import {
11
11
  activeTeamWorkspaceId
12
- } from "./chunk-C743GDSN.js";
12
+ } from "./chunk-UFNWCS34.js";
13
13
  import {
14
14
  ApiError,
15
15
  GUEST_FILE_LIMIT,
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-SSIJMUZP.js";
24
24
  import {
25
25
  markLibraryDocument
26
- } from "./chunk-NGYWHBRO.js";
26
+ } from "./chunk-LV4OGPWD.js";
27
27
  import {
28
28
  create
29
29
  } from "./chunk-QLJLPV5R.js";