@popcraft/kit 0.23.0 → 0.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{agent-BJBUTTSC.js → agent-4LLNDPKT.js} +1 -1
- package/dist/chunks/{builtin-CLB5OHKL.js → builtin-MPHCX2R5.js} +3 -3
- package/dist/chunks/{check-template-6XTDIBYY.js → check-template-SHZR37PA.js} +2 -2
- package/dist/chunks/{chunk-CTNYOI7K.js → chunk-2657F23X.js} +7 -7
- package/dist/chunks/{chunk-ELVQX6RI.js → chunk-3NGYOEXU.js} +1 -1
- package/dist/chunks/{chunk-RDAMU4OP.js → chunk-3ZAY3GT4.js} +36 -36
- package/dist/chunks/{chunk-SGMCUBDF.js → chunk-4QGD7QA4.js} +3 -1
- package/dist/chunks/{chunk-TKIMYBHW.js → chunk-6DCAGZ2E.js} +2 -2
- package/dist/chunks/{chunk-JWJCNSIJ.js → chunk-AOLURN4M.js} +4 -4
- package/dist/chunks/{chunk-DOYHR7LZ.js → chunk-B7WKCDVC.js} +2 -2
- package/dist/chunks/{chunk-45GKMBBU.js → chunk-BRFDRFQS.js} +2 -2
- package/dist/chunks/{chunk-U6FFZ5W2.js → chunk-CTLYNR44.js} +1 -1
- package/dist/chunks/{chunk-V55HSSYV.js → chunk-GCCKB3Z6.js} +14 -14
- package/dist/chunks/{chunk-M57KDGIH.js → chunk-GLPSWLOP.js} +1 -1
- package/dist/chunks/{chunk-SJHSD7GG.js → chunk-IMRJGGQP.js} +5 -5
- package/dist/chunks/{chunk-4JCGRWOD.js → chunk-IUS7V3NP.js} +1 -1
- package/dist/chunks/{chunk-VWNEKTT3.js → chunk-MRDE4OOE.js} +11 -11
- package/dist/chunks/{chunk-KHK5XLEO.js → chunk-NPRSEJCQ.js} +5 -5
- package/dist/chunks/{chunk-I323DRE7.js → chunk-OCOP2CEE.js} +5 -5
- package/dist/chunks/{chunk-NCALTIBW.js → chunk-ONACJFBL.js} +1 -1
- package/dist/chunks/{chunk-TBGBDPYT.js → chunk-OZV6WRBA.js} +1 -1
- package/dist/chunks/{chunk-PXATZ4UZ.js → chunk-QO6RCB54.js} +1 -1
- package/dist/chunks/{chunk-7XSGWFUU.js → chunk-R2OWUZAJ.js} +2 -2
- package/dist/chunks/{chunk-WI3UXGOB.js → chunk-RW7YO2KM.js} +4 -4
- package/dist/chunks/{chunk-LHCHUICU.js → chunk-SGCSBWBQ.js} +2 -2
- package/dist/chunks/{chunk-AZU5NJX4.js → chunk-SNAYCSJQ.js} +1 -1
- package/dist/chunks/{chunk-2HAVVRLV.js → chunk-SUEY4TWT.js} +1 -1
- package/dist/chunks/{chunk-KLFWJGV2.js → chunk-X4AMYXH5.js} +5 -5
- package/dist/chunks/{chunk-Y5J5V5U3.js → chunk-X5CV5NH3.js} +3 -3
- package/dist/chunks/{chunk-PPBHH7GH.js → chunk-Y2BZGNEC.js} +3 -3
- package/dist/chunks/{client-W74T4QJ2.js → client-KWUTPSTP.js} +2 -2
- package/dist/chunks/{client-7IOICWAQ.js → client-MBWEDONV.js} +1 -1
- package/dist/chunks/{client-6XBHKOQI.js → client-W6EWOEIJ.js} +2 -2
- package/dist/chunks/{client-actions-F5KAYWC6.js → client-actions-YXQGAUP6.js} +4 -4
- package/dist/chunks/{dangerous-SNCBW4IE.js → dangerous-O276OX7E.js} +3 -3
- package/dist/chunks/{editor-seams-GJIWTUEC.js → editor-seams-KWSXIJ6M.js} +9 -9
- package/dist/chunks/{editor-store-RJRX5NDT.js → editor-store-FWNCBZKH.js} +1 -1
- package/dist/chunks/{export-watermark-BWN23IRO.js → export-watermark-TNGKIW4U.js} +5 -5
- package/dist/chunks/{eyedropper-AL5LU2LC.js → eyedropper-WJ6CVJ2X.js} +1 -1
- package/dist/chunks/{generate-media-GQ2LGW2K.js → generate-media-3GLD745C.js} +2 -2
- package/dist/chunks/{host-QNEIW6XI.js → host-JR2OTWH6.js} +6 -6
- package/dist/chunks/{integrations-2MDKW4EY.js → integrations-PCEXPAMC.js} +1 -1
- package/dist/chunks/{libraries-HU55RMSB.js → libraries-ED7QA73Y.js} +5 -5
- package/dist/chunks/{live-FYSVG45I.js → live-SGMH3365.js} +1 -1
- package/dist/chunks/{media-tool-HX2AQWQN.js → media-tool-DL2Q5FVV.js} +1 -1
- package/dist/chunks/{new-file-7W7HWEBN.js → new-file-NKCOHO3I.js} +3 -3
- package/dist/chunks/{plugin-5XHYBTFQ.js → plugin-LF6PU2TS.js} +2 -2
- package/dist/chunks/{plugin-import-XVCJJZWW.js → plugin-import-JLZKU45F.js} +13 -13
- package/dist/chunks/{presence-KAKB2N46.js → presence-H2IHOP5C.js} +2 -2
- package/dist/chunks/{project-D3I2HSHS.js → project-GV6N7IZG.js} +1 -1
- package/dist/chunks/{publish-site-YN2YTC7C.js → publish-site-W4XW2UTB.js} +6 -6
- package/dist/chunks/{publish-store-GJYYCXKG.js → publish-store-CT5GERZC.js} +4 -4
- package/dist/chunks/{raster-actions-A4DJV5G2.js → raster-actions-UVOUSRCS.js} +1 -1
- package/dist/chunks/{runner-B6P6F7Y6.js → runner-YT2NM6N7.js} +16 -16
- package/dist/chunks/{store-TGA3GXXW.js → store-QMRWXCRN.js} +5 -5
- package/dist/chunks/{sync-BUK3N4AG.js → sync-6MJJNBNR.js} +5 -5
- package/dist/chunks/{tabs-K4HQLFPL.js → tabs-KCHJ6S2X.js} +8 -8
- package/dist/chunks/{team-U36WZSRZ.js → team-D7TA6MS4.js} +1 -1
- package/dist/chunks/{tools-FOMWBG4O.js → tools-ADDMIT53.js} +2 -2
- package/dist/chunks/{ui-commands-GEKGZ7LJ.js → ui-commands-GBWFC4GM.js} +11 -11
- package/dist/chunks/{versions-YD26QFKO.js → versions-V6QKHBEC.js} +5 -5
- package/dist/index.js +1 -1
- package/dist/templates/count.js +1 -1
- package/dist/templates/index.js +9 -9
- package/dist/templates/index.json +1 -1
- package/dist/templates/motion/landing-hero/index.js +4 -4
- package/dist/templates/motion/launch-trailer/document.js +9 -9
- package/dist/templates/motion/launch-trailer/index.js +4 -4
- package/dist/templates/motion/launch-trailer/scenes.js +3 -3
- package/dist/templates/motion/template-wall.js +2 -2
- package/dist/templates/print/studio-portfolio-booklet.js +1 -1
- package/dist/templates/themes/index.js +3 -3
- package/dist/templates/themes/studio.js +2 -2
- package/package.json +1 -1
- package/src/templates/print/studio-portfolio-booklet.ts +24 -19
|
@@ -7,8 +7,8 @@ const __dirname = __popcraftDirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
builtinTools,
|
|
9
9
|
registerBuiltinTools
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-SGCSBWBQ.js";
|
|
11
|
+
import "./chunk-3ZAY3GT4.js";
|
|
12
12
|
import "./chunk-TQ5TLZRA.js";
|
|
13
13
|
import "./chunk-2PHWCTSH.js";
|
|
14
14
|
import "./chunk-OREAM3Y4.js";
|
|
@@ -19,7 +19,7 @@ import "./chunk-WE65QLWL.js";
|
|
|
19
19
|
import "./chunk-XP3XW3ZI.js";
|
|
20
20
|
import "./chunk-THYPZDTA.js";
|
|
21
21
|
import "./chunk-K4L66YMB.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-Y2BZGNEC.js";
|
|
23
23
|
import "./chunk-4IWFXXW7.js";
|
|
24
24
|
import "./chunk-UMXRRE7X.js";
|
|
25
25
|
import "./chunk-HXUJ4YQP.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-
|
|
9
|
+
} from "./chunk-2657F23X.js";
|
|
10
10
|
import {
|
|
11
11
|
builtinCommands
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-3ZAY3GT4.js";
|
|
13
13
|
import "./chunk-TQ5TLZRA.js";
|
|
14
14
|
import "./chunk-2PHWCTSH.js";
|
|
15
15
|
import "./chunk-OREAM3Y4.js";
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
needsSelection,
|
|
9
9
|
pageGo,
|
|
10
10
|
selectionIsPicture
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-3ZAY3GT4.js";
|
|
12
12
|
import {
|
|
13
13
|
external_exports
|
|
14
14
|
} from "./chunk-K4L66YMB.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-
|
|
34
|
+
var store = () => import("./editor-store-FWNCBZKH.js").then((m) => m.useEditorStore.getState());
|
|
35
35
|
var MODE_IDS = MODE_LIST.map((m) => m.id);
|
|
36
36
|
var MODE_ALIASES = { JAM: "POPCORN" };
|
|
37
37
|
var modeSet = defineCommand({
|
|
@@ -209,7 +209,7 @@ var aiOpen = defineCommand({
|
|
|
209
209
|
] } },
|
|
210
210
|
run: async ({ dialog, skillId }) => {
|
|
211
211
|
if (dialog) (await import("./client-store-BNNIWZTR.js")).openAiDialog(dialog);
|
|
212
|
-
else (await import("./store-
|
|
212
|
+
else (await import("./store-QMRWXCRN.js")).openAgentPanel({ skillId: skillId ?? null });
|
|
213
213
|
return { summary: dialog ? `Opened AI ${dialog}` : "Opened the agent" };
|
|
214
214
|
}
|
|
215
215
|
});
|
|
@@ -288,11 +288,11 @@ var toolPlace = defineCommand({
|
|
|
288
288
|
run: async ({ what }) => {
|
|
289
289
|
if (what === "media") {
|
|
290
290
|
const s = await store();
|
|
291
|
-
const { placeMediaFromPicker } = await import("./media-tool-
|
|
291
|
+
const { placeMediaFromPicker } = await import("./media-tool-DL2Q5FVV.js");
|
|
292
292
|
await placeMediaFromPicker({ kind: "point", x: s.camera.x, y: s.camera.y });
|
|
293
293
|
return { summary: "Placing media" };
|
|
294
294
|
}
|
|
295
|
-
const { beginEyedrop } = await import("./eyedropper-
|
|
295
|
+
const { beginEyedrop } = await import("./eyedropper-WJ6CVJ2X.js");
|
|
296
296
|
void beginEyedrop();
|
|
297
297
|
return { summary: "Pick a color" };
|
|
298
298
|
}
|
|
@@ -310,7 +310,7 @@ var nodeRasterize = defineCommand({
|
|
|
310
310
|
keywords: ["rasterize", "raster", "flatten", "pixels", "paint layer", "erase", "bitmap"]
|
|
311
311
|
} },
|
|
312
312
|
run: async () => {
|
|
313
|
-
const { flattenSelectionToPaintLayer } = await import("./raster-actions-
|
|
313
|
+
const { flattenSelectionToPaintLayer } = await import("./raster-actions-UVOUSRCS.js");
|
|
314
314
|
await flattenSelectionToPaintLayer();
|
|
315
315
|
return { summary: "Rasterized" };
|
|
316
316
|
}
|
|
@@ -421,7 +421,7 @@ function pluginCommand(plugins) {
|
|
|
421
421
|
params: external_exports.object({ pluginId: external_exports.string(), commandId: external_exports.string() }),
|
|
422
422
|
expose: { ui: { label: "Run plugin", keywords: ["plugin", "extension", "run"], variants, palette: variants.length ? void 0 : false } },
|
|
423
423
|
run: async ({ pluginId, commandId }) => {
|
|
424
|
-
await (await import("./host-
|
|
424
|
+
await (await import("./host-JR2OTWH6.js")).runPlugin(pluginId, commandId);
|
|
425
425
|
return { summary: "Plugin started" };
|
|
426
426
|
}
|
|
427
427
|
});
|
|
@@ -864,7 +864,7 @@ init_scene_graph();
|
|
|
864
864
|
var licence = external_exports.enum(["commercial", "any"]).optional().describe("commercial (default): only licences that allow commercial use and edits (CC0, public domain, CC BY, CC BY-SA). any: every Creative Commons licence, including NC and ND.");
|
|
865
865
|
var brief2 = (p) => ({ id: p.id, title: p.title, creator: p.credit.creator, licence: licenceLabel(p.credit), width: p.width, height: p.height, source: p.credit.sourceUrl });
|
|
866
866
|
async function placeImportedPicture(ctx, imported, at, what, extra = {}) {
|
|
867
|
-
const client = await import("./client-
|
|
867
|
+
const client = await import("./client-MBWEDONV.js");
|
|
868
868
|
if (at.fillLayerId) {
|
|
869
869
|
const doc2 = ctx.doc();
|
|
870
870
|
const target = nodeOrThrow(doc2, at.fillLayerId);
|
|
@@ -910,7 +910,7 @@ var photoSearch = defineCommand({
|
|
|
910
910
|
}
|
|
911
911
|
},
|
|
912
912
|
run: async (args) => {
|
|
913
|
-
const { searchStockPhotos } = await import("./client-
|
|
913
|
+
const { searchStockPhotos } = await import("./client-MBWEDONV.js");
|
|
914
914
|
const page = await searchStockPhotos(args.query, args.page ?? 1, { licence: args.licence });
|
|
915
915
|
return {
|
|
916
916
|
summary: `${page.results.length} photo${page.results.length === 1 ? "" : "s"} for \u201C${page.query}\u201D (page ${page.page} of ${page.pageCount || 1})`,
|
|
@@ -944,7 +944,7 @@ var photoInsert = defineCommand({
|
|
|
944
944
|
run: async (args, ctx) => {
|
|
945
945
|
if (!args.id && !args.query) throw new ToolError("Pass an id from search_photos, or a query.");
|
|
946
946
|
if (args.id && !isPhotoId(args.id)) throw new ToolError(`"${args.id}" is not a photo id from search_photos.`);
|
|
947
|
-
const client = await import("./client-
|
|
947
|
+
const client = await import("./client-MBWEDONV.js");
|
|
948
948
|
let photo;
|
|
949
949
|
if (args.id) photo = await client.stockPhotoInfo(args.id);
|
|
950
950
|
else {
|
|
@@ -982,7 +982,7 @@ var mediaList = defineCommand({
|
|
|
982
982
|
}
|
|
983
983
|
},
|
|
984
984
|
run: async (args) => {
|
|
985
|
-
const { listLibraryMedia } = await import("./client-
|
|
985
|
+
const { listLibraryMedia } = await import("./client-KWUTPSTP.js");
|
|
986
986
|
const page = await listLibraryMedia(args);
|
|
987
987
|
return { summary: `${page.items.length} media item${page.items.length === 1 ? "" : "s"}${page.nextCursor ? " (more)" : ""}`, data: { workspaceId: page.workspaceId, items: page.items.map(brief3), nextCursor: page.nextCursor } };
|
|
988
988
|
}
|
|
@@ -1013,7 +1013,7 @@ var mediaInsert = defineCommand({
|
|
|
1013
1013
|
run: async (args, ctx) => {
|
|
1014
1014
|
const contentType = args.contentType ?? "image/*";
|
|
1015
1015
|
if (!contentType.startsWith("image/")) throw new ToolError("insert_media places pictures; this item is not one.");
|
|
1016
|
-
const { importLibraryPicture } = await import("./client-
|
|
1016
|
+
const { importLibraryPicture } = await import("./client-KWUTPSTP.js");
|
|
1017
1017
|
const item = { hash: args.hash, fileKey: args.fileKey, fileName: args.name ?? "Media", contentType, size: 0, createdAt: "", fileCount: 1, source: null };
|
|
1018
1018
|
const imported = await importLibraryPicture(item);
|
|
1019
1019
|
return placeImportedPicture(ctx, imported, args, `\u201C${imported.name}\u201D`, { hash: imported.hash });
|
|
@@ -1034,7 +1034,7 @@ var mediaDownload = defineCommand({
|
|
|
1034
1034
|
// The Library's right-click menu: saves the item's file to the computer.
|
|
1035
1035
|
expose: { ui: { label: "Download", palette: false } },
|
|
1036
1036
|
run: async (args) => {
|
|
1037
|
-
const { libraryBlob, libraryFileName } = await import("./client-
|
|
1037
|
+
const { libraryBlob, libraryFileName } = await import("./client-KWUTPSTP.js");
|
|
1038
1038
|
const { downloadBlob } = await import("./download-QRP4SHQC.js");
|
|
1039
1039
|
const item = { hash: args.hash, fileKey: args.fileKey, fileName: args.name ?? "media", contentType: args.contentType ?? "", size: 0, createdAt: "", fileCount: 1, source: null };
|
|
1040
1040
|
const blob = await libraryBlob(item);
|
|
@@ -1065,7 +1065,7 @@ var mediaDelete = defineCommand({
|
|
|
1065
1065
|
}
|
|
1066
1066
|
},
|
|
1067
1067
|
run: async (args) => {
|
|
1068
|
-
const { deleteLibraryMedia } = await import("./client-
|
|
1068
|
+
const { deleteLibraryMedia } = await import("./client-KWUTPSTP.js");
|
|
1069
1069
|
const out = await deleteLibraryMedia(args.workspace, args.hash);
|
|
1070
1070
|
return { summary: `Deleted it from the library (it was in ${out.files} file${out.files === 1 ? "" : "s"})`, data: out };
|
|
1071
1071
|
}
|
|
@@ -1079,13 +1079,13 @@ async function signedIn() {
|
|
|
1079
1079
|
}
|
|
1080
1080
|
async function publishedFile() {
|
|
1081
1081
|
await signedIn();
|
|
1082
|
-
const { openFileKey } = await import("./publish-site-
|
|
1082
|
+
const { openFileKey } = await import("./publish-site-W4XW2UTB.js");
|
|
1083
1083
|
const key = openFileKey();
|
|
1084
1084
|
if (!key) throw new CommandError("This file is not saved to the cloud yet, so it has no site. Publish it first.", "failed");
|
|
1085
1085
|
return key;
|
|
1086
1086
|
}
|
|
1087
1087
|
async function formsWithoutDatabase(key) {
|
|
1088
|
-
const [{ useEditorStore }, { usesForms, formsGoNowhere }, { siteBackend }] = await Promise.all([import("./editor-store-
|
|
1088
|
+
const [{ useEditorStore }, { usesForms, formsGoNowhere }, { siteBackend }] = await Promise.all([import("./editor-store-FWNCBZKH.js"), import("./backend-AFIBLYCA.js"), import("./integrations-PCEXPAMC.js")]);
|
|
1089
1089
|
const doc2 = useEditorStore.getState().document;
|
|
1090
1090
|
if (!usesForms(doc2)) return false;
|
|
1091
1091
|
return formsGoNowhere(doc2, await siteBackend(key).catch(() => void 0));
|
|
@@ -1121,7 +1121,7 @@ var publishSite = defineCommand({
|
|
|
1121
1121
|
const { cleanSlug } = await import("./rules-2DYIVA25.js");
|
|
1122
1122
|
const address = p.address === void 0 ? void 0 : cleanSlug(p.address);
|
|
1123
1123
|
if (address === null) throw new CommandError("That cannot be a site address: use 3 to 40 letters, digits and dashes.", "invalid_params");
|
|
1124
|
-
const { publishOpenFile, NoScreens } = await import("./publish-site-
|
|
1124
|
+
const { publishOpenFile, NoScreens } = await import("./publish-site-W4XW2UTB.js");
|
|
1125
1125
|
try {
|
|
1126
1126
|
const done = await publishOpenFile(address);
|
|
1127
1127
|
ctx.notice(`Published version ${done.version}: ${done.url}`);
|
|
@@ -1176,7 +1176,7 @@ var publishListSites = defineCommand({
|
|
|
1176
1176
|
},
|
|
1177
1177
|
run: async (p) => {
|
|
1178
1178
|
await signedIn();
|
|
1179
|
-
const [{ workspaceSites }, { activeTeamWorkspaceId, useHyperyTeam }] = await Promise.all([import("./sites-7MEIODBV.js"), import("./team-
|
|
1179
|
+
const [{ workspaceSites }, { activeTeamWorkspaceId, useHyperyTeam }] = await Promise.all([import("./sites-7MEIODBV.js"), import("./team-D7TA6MS4.js")]);
|
|
1180
1180
|
const workspaceId = p.workspaceId ?? activeTeamWorkspaceId() ?? useHyperyTeam.getState().personalWorkspaceId;
|
|
1181
1181
|
if (!workspaceId) throw new CommandError("Your workspaces have not loaded yet. Try again in a moment.", "failed");
|
|
1182
1182
|
const out = await workspaceSites(workspaceId);
|
|
@@ -1225,12 +1225,12 @@ var publishStatus = defineCommand({
|
|
|
1225
1225
|
},
|
|
1226
1226
|
run: async () => {
|
|
1227
1227
|
await signedIn();
|
|
1228
|
-
const [{ openFileKey }, { siteStatus }] = await Promise.all([import("./publish-site-
|
|
1228
|
+
const [{ openFileKey }, { siteStatus }] = await Promise.all([import("./publish-site-W4XW2UTB.js"), import("./sites-7MEIODBV.js")]);
|
|
1229
1229
|
const key = openFileKey();
|
|
1230
1230
|
const status = await siteStatus(key);
|
|
1231
1231
|
const site = status.site;
|
|
1232
|
-
const backend = key ? await (await import("./integrations-
|
|
1233
|
-
const destinations = key ? await (await import("./integrations-
|
|
1232
|
+
const backend = key ? await (await import("./integrations-PCEXPAMC.js")).siteBackend(key).catch(() => null) : null;
|
|
1233
|
+
const destinations = key ? await (await import("./integrations-PCEXPAMC.js")).listDestinations(key).catch(() => []) : [];
|
|
1234
1234
|
return {
|
|
1235
1235
|
summary: !status.configured ? "This server does not publish websites" : !site ? "Not published yet" : site.currentVersion === null ? `Offline (${site.versions.length} versions kept) \u2014 ${site.url}` : `Version ${site.currentVersion} is online at ${site.url}`,
|
|
1236
1236
|
data: { ...statusData(status), database: backend?.database ? { provider: backend.database.connection.provider, account: backend.database.connection.account, target: backend.database.target.map((t) => t.name), visitorsCanSignIn: backend.database.signIn } : null, destinations: destinations.map((d) => ({ destinationId: d.id, provider: d.connection.provider, account: d.connection.account, kind: d.capability, target: d.target.map((t) => t.name), lastSent: d.lastDeploy })) }
|
|
@@ -1261,7 +1261,7 @@ var publishStore = defineCommand({
|
|
|
1261
1261
|
},
|
|
1262
1262
|
run: async (p, ctx) => {
|
|
1263
1263
|
await signedIn();
|
|
1264
|
-
const { deployOpenStore } = await import("./publish-store-
|
|
1264
|
+
const { deployOpenStore } = await import("./publish-store-CT5GERZC.js");
|
|
1265
1265
|
const done = await deployOpenStore(ctx.doc(), ctx.pageId(), { destinationId: p.destinationId }).catch((e) => {
|
|
1266
1266
|
throw new CommandError(e instanceof Error ? e.message : String(e), "failed");
|
|
1267
1267
|
});
|
|
@@ -1290,7 +1290,7 @@ var integrationList = defineCommand({
|
|
|
1290
1290
|
}
|
|
1291
1291
|
},
|
|
1292
1292
|
run: async ({ capability }) => {
|
|
1293
|
-
const [{ cloudUser }, { integrationsWorkspaceId, listWorkspaceIntegrations }] = await Promise.all([import("./session-ZCCLFUMV.js"), import("./integrations-
|
|
1293
|
+
const [{ cloudUser }, { integrationsWorkspaceId, listWorkspaceIntegrations }] = await Promise.all([import("./session-ZCCLFUMV.js"), import("./integrations-PCEXPAMC.js")]);
|
|
1294
1294
|
if (!cloudUser()) throw new CommandError("You are not signed in: integrations belong to your account's workspace.", "denied");
|
|
1295
1295
|
const workspaceId = integrationsWorkspaceId();
|
|
1296
1296
|
if (!workspaceId) throw new CommandError("Your workspaces have not loaded yet. Try again in a moment.", "failed");
|
|
@@ -1331,7 +1331,7 @@ var integrationOpen = defineCommand({
|
|
|
1331
1331
|
}
|
|
1332
1332
|
});
|
|
1333
1333
|
async function openFile() {
|
|
1334
|
-
const [{ cloudUser }, { openFileKey }] = await Promise.all([import("./session-ZCCLFUMV.js"), import("./publish-site-
|
|
1334
|
+
const [{ cloudUser }, { openFileKey }] = await Promise.all([import("./session-ZCCLFUMV.js"), import("./publish-site-W4XW2UTB.js")]);
|
|
1335
1335
|
if (!cloudUser()) throw new CommandError("You are not signed in.", "denied");
|
|
1336
1336
|
const key = openFileKey();
|
|
1337
1337
|
if (!key) throw new CommandError("This file is not saved to the cloud yet. Publish it first (publish_site).", "failed");
|
|
@@ -1357,7 +1357,7 @@ var integrationListResources = defineCommand({
|
|
|
1357
1357
|
}
|
|
1358
1358
|
},
|
|
1359
1359
|
run: async ({ connectionId, capability, path }) => {
|
|
1360
|
-
const { listResources } = await import("./integrations-
|
|
1360
|
+
const { listResources } = await import("./integrations-PCEXPAMC.js");
|
|
1361
1361
|
const list = await listResources(connectionId, capability, asPath2(path));
|
|
1362
1362
|
return {
|
|
1363
1363
|
summary: list.level ? `${list.resources.length} at the ${list.level.label.toLowerCase()} level${list.canCreate ? " (a new one can be made)" : ""}` : "Nothing further to pick: the path is complete",
|
|
@@ -1392,7 +1392,7 @@ var integrationAddDestination = defineCommand({
|
|
|
1392
1392
|
},
|
|
1393
1393
|
run: async (p, ctx) => {
|
|
1394
1394
|
const key = await openFile();
|
|
1395
|
-
const { addDestination, createDestination, createResource } = await import("./integrations-
|
|
1395
|
+
const { addDestination, createDestination, createResource } = await import("./integrations-PCEXPAMC.js");
|
|
1396
1396
|
let made;
|
|
1397
1397
|
if (p.create) made = await createDestination(key, p.capability, void 0, p.connectionId);
|
|
1398
1398
|
else {
|
|
@@ -1429,7 +1429,7 @@ var integrationDeploy = defineCommand({
|
|
|
1429
1429
|
},
|
|
1430
1430
|
run: async (p, ctx) => {
|
|
1431
1431
|
const key = await openFile();
|
|
1432
|
-
const { deployDestination, listDestinations } = await import("./integrations-
|
|
1432
|
+
const { deployDestination, listDestinations } = await import("./integrations-PCEXPAMC.js");
|
|
1433
1433
|
const all = await listDestinations(key);
|
|
1434
1434
|
const dest = p.destinationId ? all.find((d) => d.id === p.destinationId) : all.length === 1 ? all[0] : void 0;
|
|
1435
1435
|
if (!dest) throw new CommandError(all.length ? `Say which destination: ${all.map((d) => `${d.id} (${d.target.map((t) => t.name).join(" / ")})`).join(", ")}.` : "This file has no destination yet. Add one first (add_site_destination).", "invalid_params");
|
|
@@ -1463,7 +1463,7 @@ var integrationAttachDatabase = defineCommand({
|
|
|
1463
1463
|
},
|
|
1464
1464
|
run: async (p, ctx) => {
|
|
1465
1465
|
const key = await openFile();
|
|
1466
|
-
const { attachDatabase, createDatabase, createResource, listResources } = await import("./integrations-
|
|
1466
|
+
const { attachDatabase, createDatabase, createResource, listResources } = await import("./integrations-PCEXPAMC.js");
|
|
1467
1467
|
if (p.create) return attached(await createDatabase(key, void 0, p.connectionId), ctx);
|
|
1468
1468
|
if (!p.connectionId || !p.target) throw new CommandError("Say connectionId and target, or create: true.", "invalid_params");
|
|
1469
1469
|
let target = asPath2(p.target);
|
|
@@ -1502,7 +1502,7 @@ var integrationSubmissions = defineCommand({
|
|
|
1502
1502
|
},
|
|
1503
1503
|
run: async ({ form, limit }) => {
|
|
1504
1504
|
const key = await openFile();
|
|
1505
|
-
const { listSubmissions } = await import("./integrations-
|
|
1505
|
+
const { listSubmissions } = await import("./integrations-PCEXPAMC.js");
|
|
1506
1506
|
const rows = await listSubmissions(key, { form, limit: limit ?? 20 });
|
|
1507
1507
|
return { summary: rows.length ? `${rows.length} ${rows.length === 1 ? "submission" : "submissions"}, the newest ${new Date(rows[0].createdAt).toISOString()}` : "Nothing has been sent yet", data: { submissions: rows } };
|
|
1508
1508
|
}
|
|
@@ -1527,7 +1527,7 @@ var integrationSetSignIn = defineCommand({
|
|
|
1527
1527
|
},
|
|
1528
1528
|
run: async ({ on }, ctx) => {
|
|
1529
1529
|
const key = await openFile();
|
|
1530
|
-
const { setSignIn } = await import("./integrations-
|
|
1530
|
+
const { setSignIn } = await import("./integrations-PCEXPAMC.js");
|
|
1531
1531
|
const done = await setSignIn(key, on);
|
|
1532
1532
|
ctx.notice(on ? "Visitors can sign in." : "Sign-in is off.");
|
|
1533
1533
|
return { summary: on ? "Visitors can now create accounts and sign in on the published site" : "Sign-in is off for the published site", data: { signIn: !!done.database?.signIn } };
|
|
@@ -1539,7 +1539,7 @@ var integrationConfirmCommands = [integrationAddDestination, integrationDeploy,
|
|
|
1539
1539
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
1540
1540
|
async function cloudFile() {
|
|
1541
1541
|
const [{ syncStatus }, { cloudUser }] = await Promise.all([
|
|
1542
|
-
import("./sync-
|
|
1542
|
+
import("./sync-6MJJNBNR.js"),
|
|
1543
1543
|
import("./session-ZCCLFUMV.js")
|
|
1544
1544
|
]);
|
|
1545
1545
|
const link2 = syncStatus().link;
|
|
@@ -1691,11 +1691,11 @@ var fileDuplicate = defineCommand({
|
|
|
1691
1691
|
},
|
|
1692
1692
|
run: async (_p, ctx) => {
|
|
1693
1693
|
const [{ syncStatus }, { cloudApi }, { isDesktopTabs }, { createFileInTab }, { openNewCloudFile }, { v4: uuid }] = await Promise.all([
|
|
1694
|
-
import("./sync-
|
|
1694
|
+
import("./sync-6MJJNBNR.js"),
|
|
1695
1695
|
import("./api-B7VRVE6R.js"),
|
|
1696
1696
|
import("./tab-mode-RVAS25KO.js"),
|
|
1697
|
-
import("./tabs-
|
|
1698
|
-
import("./sync-
|
|
1697
|
+
import("./tabs-KCHJ6S2X.js"),
|
|
1698
|
+
import("./sync-6MJJNBNR.js"),
|
|
1699
1699
|
import("./dist-node-IZDWGJGB.js")
|
|
1700
1700
|
]);
|
|
1701
1701
|
const doc2 = ctx.doc();
|
|
@@ -4311,7 +4311,7 @@ var viewCopyLink = defineCommand({
|
|
|
4311
4311
|
},
|
|
4312
4312
|
run: async (args, ctx) => {
|
|
4313
4313
|
const [{ syncStatus }, { fileUrl }, { withDeepLink }] = await Promise.all([
|
|
4314
|
-
import("./sync-
|
|
4314
|
+
import("./sync-6MJJNBNR.js"),
|
|
4315
4315
|
import("./api-B7VRVE6R.js"),
|
|
4316
4316
|
import("./deep-link-AM3G76RP.js")
|
|
4317
4317
|
]);
|
|
@@ -4636,7 +4636,7 @@ var pageGo = defineCommand({
|
|
|
4636
4636
|
] }
|
|
4637
4637
|
},
|
|
4638
4638
|
run: async ({ to }) => {
|
|
4639
|
-
const { useEditorStore } = await import("./editor-store-
|
|
4639
|
+
const { useEditorStore } = await import("./editor-store-FWNCBZKH.js");
|
|
4640
4640
|
useEditorStore.getState().goToPrintPage(to);
|
|
4641
4641
|
return { summary: typeof to === "number" ? `Page ${to + 1}` : `${to} page` };
|
|
4642
4642
|
}
|
|
@@ -4670,7 +4670,7 @@ var pageSetup = defineCommand({
|
|
|
4670
4670
|
}
|
|
4671
4671
|
},
|
|
4672
4672
|
run: async (args) => {
|
|
4673
|
-
const { useEditorStore } = await import("./editor-store-
|
|
4673
|
+
const { useEditorStore } = await import("./editor-store-FWNCBZKH.js");
|
|
4674
4674
|
useEditorStore.getState().applyPageSetup(args);
|
|
4675
4675
|
return { summary: `Page setup updated${args.kind ? ` (${args.kind.toLowerCase()})` : ""}` };
|
|
4676
4676
|
}
|
|
@@ -5778,7 +5778,7 @@ async function runAnimationExport(format, args, ctx) {
|
|
|
5778
5778
|
const filename = exportFileName(args.filename || targetName(doc2, target), format);
|
|
5779
5779
|
const [{ exportAnimation }, { memoryDestination }] = await Promise.all([import("./video-XLT4BAQD.js"), import("./destination-AKNQWMK5.js")]);
|
|
5780
5780
|
if (format === "lottie" || format === "dotlottie") return runLottieExport(renderer, doc2, spec, filename, ctx, memoryDestination, args.stateMachine);
|
|
5781
|
-
const planWatermark = format !== "png" && await (await import("./export-watermark-
|
|
5781
|
+
const planWatermark = format !== "png" && await (await import("./export-watermark-TNGKIW4U.js")).exportWatermark();
|
|
5782
5782
|
if (format !== "png") spec = { ...spec, watermark: planWatermark || args.watermark !== false };
|
|
5783
5783
|
const dest = ctx.destination ? await ctx.destination(filename, FORMAT_MIME[format]) : memoryDestination(filename, FORMAT_MIME[format]);
|
|
5784
5784
|
let stats;
|
|
@@ -5864,7 +5864,7 @@ var exportLottie = animationCommand((args) => args.container === "lottie" ? "dot
|
|
|
5864
5864
|
});
|
|
5865
5865
|
async function exportSite(doc2, pageId2, packaging, styling = "css", siteUrl) {
|
|
5866
5866
|
const [{ completeSite, nextFilesOf, shareImageFiles, staticFilesOf, NoSiteRuntime, bytesOf }, { fileBase }, { zipFiles }, { downloadBlob }] = await Promise.all([
|
|
5867
|
-
import("./project-
|
|
5867
|
+
import("./project-GV6N7IZG.js"),
|
|
5868
5868
|
import("./web-6RRCJYHG.js"),
|
|
5869
5869
|
import("./zip-export-RRIKWMJ5.js"),
|
|
5870
5870
|
import("./download-QRP4SHQC.js")
|
|
@@ -5953,7 +5953,7 @@ var exportStorefront = defineCommand({
|
|
|
5953
5953
|
const [{ storefrontInputs }, { STOREFRONT_TARGETS }, { bytesOf }, { fileBase, flatten }, { zipFiles }, { downloadBlob }] = await Promise.all([
|
|
5954
5954
|
import("./storefront-prepare-EB7XPL5S.js"),
|
|
5955
5955
|
import("./storefront-N5GDIZFK.js"),
|
|
5956
|
-
import("./project-
|
|
5956
|
+
import("./project-GV6N7IZG.js"),
|
|
5957
5957
|
import("./web-6RRCJYHG.js"),
|
|
5958
5958
|
import("./zip-export-RRIKWMJ5.js"),
|
|
5959
5959
|
import("./download-QRP4SHQC.js")
|
|
@@ -6348,7 +6348,7 @@ var visionRegenerateImage = defineCommand({
|
|
|
6348
6348
|
const id = args.id ?? ctx.selection()[0];
|
|
6349
6349
|
if (!id) throw new ToolError("Select a generated image to regenerate.");
|
|
6350
6350
|
nodeOrThrow(ctx.doc(), id);
|
|
6351
|
-
const { regenerateImage } = await import("./client-actions-
|
|
6351
|
+
const { regenerateImage } = await import("./client-actions-YXQGAUP6.js");
|
|
6352
6352
|
regenerateImage(id, args.count);
|
|
6353
6353
|
return { summary: args.count > 1 ? `Regenerating ${args.count} variants` : "Regenerating the image", data: { id, count: args.count } };
|
|
6354
6354
|
}
|
|
@@ -9507,7 +9507,7 @@ var scriptRun = defineCommand({
|
|
|
9507
9507
|
// A script is not the turn the user is watching: confirm-tier tools are refused inside it (dispatch, `nested`).
|
|
9508
9508
|
actor: { ...ctx.actor, nested: true, label: "Script" },
|
|
9509
9509
|
// A look_at inside the script sees the document as the script has left it so far, not as it was before.
|
|
9510
|
-
use: ((name2) => name2 === "render" && ctx.can("render") ? (async (ids, options) => (await import("./agent-
|
|
9510
|
+
use: ((name2) => name2 === "render" && ctx.can("render") ? (async (ids, options) => (await import("./agent-4LLNDPKT.js")).renderDocument(staged, ids, options)) : ctx.use(name2))
|
|
9511
9511
|
};
|
|
9512
9512
|
let calls = 0;
|
|
9513
9513
|
const images = [];
|
|
@@ -10327,7 +10327,7 @@ var docImportFile = defineCommand({
|
|
|
10327
10327
|
const file = new File([body], args.name);
|
|
10328
10328
|
if (file.size > MAX_BYTES) throw new ToolError(`"${args.name}" is larger than ${MAX_BYTES / 1024 / 1024} MB.`);
|
|
10329
10329
|
const [{ buildImportedDocument }, { mergeImportedDocument }] = await Promise.all([
|
|
10330
|
-
import("./plugin-import-
|
|
10330
|
+
import("./plugin-import-JLZKU45F.js"),
|
|
10331
10331
|
import("./import-merge-ZZF4IRWT.js")
|
|
10332
10332
|
]);
|
|
10333
10333
|
const built = await buildImportedDocument(file);
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from "./chunk-BER3474S.js";
|
|
14
14
|
import {
|
|
15
15
|
activeHyperyTeamId
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-ONACJFBL.js";
|
|
17
17
|
import {
|
|
18
18
|
accessToken
|
|
19
19
|
} from "./chunk-6V33QJ7X.js";
|
|
@@ -95,6 +95,8 @@ var AiClientError = class extends Error {
|
|
|
95
95
|
this.code = code;
|
|
96
96
|
this.status = status;
|
|
97
97
|
}
|
|
98
|
+
code;
|
|
99
|
+
status;
|
|
98
100
|
};
|
|
99
101
|
var needsReauth = (e) => e instanceof AiClientError && (e.code === "ai_reauth" || e.code === "ai_scope" || e.code === "unauthenticated");
|
|
100
102
|
function ensureAvailable() {
|
|
@@ -28,10 +28,10 @@ import {
|
|
|
28
28
|
requestImageAction,
|
|
29
29
|
sizeForAspect,
|
|
30
30
|
vectorSupport
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-4QGD7QA4.js";
|
|
32
32
|
import {
|
|
33
33
|
useEditorStore
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-IMRJGGQP.js";
|
|
35
35
|
import {
|
|
36
36
|
getActiveRenderer
|
|
37
37
|
} from "./chunk-3MAL75OH.js";
|
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
newFileRefusal,
|
|
15
15
|
reportNewFileBlocked,
|
|
16
16
|
setCloudLink
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-R2OWUZAJ.js";
|
|
18
18
|
import {
|
|
19
19
|
parseDeepLink,
|
|
20
20
|
withDeepLink
|
|
21
21
|
} from "./chunk-S7535LBA.js";
|
|
22
22
|
import {
|
|
23
23
|
activeTeamWorkspaceId
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-ONACJFBL.js";
|
|
25
25
|
import {
|
|
26
26
|
ApiError,
|
|
27
27
|
api,
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
} from "./chunk-IVBHDW3H.js";
|
|
30
30
|
import {
|
|
31
31
|
attachPresence
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-SUEY4TWT.js";
|
|
33
33
|
import {
|
|
34
34
|
isPersistableDocument,
|
|
35
35
|
isUnsavedPlaceholder,
|
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
setCollabHistory,
|
|
41
41
|
storedDocument,
|
|
42
42
|
useEditorStore
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-IMRJGGQP.js";
|
|
44
44
|
import {
|
|
45
45
|
accessToken,
|
|
46
46
|
cloudUser,
|
|
@@ -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-
|
|
94
|
+
import("./editor-store-FWNCBZKH.js"),
|
|
95
95
|
import("../lib/document/photo-frames.js"),
|
|
96
|
-
import("./media-tool-
|
|
96
|
+
import("./media-tool-DL2Q5FVV.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);
|
|
@@ -19,11 +19,11 @@ import {
|
|
|
19
19
|
popIn,
|
|
20
20
|
shadow,
|
|
21
21
|
travel
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-QO6RCB54.js";
|
|
23
23
|
import {
|
|
24
24
|
DURATION,
|
|
25
25
|
buildTemplateWall
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-IUS7V3NP.js";
|
|
27
27
|
import {
|
|
28
28
|
COLLABORATORS,
|
|
29
29
|
COLORS,
|
|
@@ -80,7 +80,7 @@ var studio_portfolio_booklet_default = defineTemplate({
|
|
|
80
80
|
id: "print-studio-portfolio-booklet",
|
|
81
81
|
meta: {
|
|
82
82
|
name: "Photography portfolio booklet",
|
|
83
|
-
description: "A twelve-page A5 portfolio to leave behind after a meeting: a cover,
|
|
83
|
+
description: "A twelve-page A5 portfolio to leave behind after a meeting: a cover, four projects as spreads with a full-bleed picture and the story beside it, an about page with clients facing the contact page, and a back cover. Pictures run into the 3 mm bleed, and the page count imposes as a folded and stapled booklet. For photographers, illustrators and designers",
|
|
84
84
|
category: "brochure",
|
|
85
85
|
tags: ["portfolio", "booklet", "zine", "photography", "photographer", "leave-behind", "a5", "saddle stitch", "print", "creative", "designer"],
|
|
86
86
|
platforms: ["print"],
|
|
@@ -128,10 +128,10 @@ var studio_portfolio_booklet_default = defineTemplate({
|
|
|
128
128
|
return img;
|
|
129
129
|
};
|
|
130
130
|
const column = (p, gap, name) => k.stack(p, { gap, name });
|
|
131
|
-
k.
|
|
132
|
-
k.propText(id, "Number", { style: "Label 10", color: "onPaper", width: "FILL" });
|
|
131
|
+
k.variantSet("Folio", "Side", ["Left", "Right"], { width: W - M * 2, direction: "HORIZONTAL", props: { Number: "02" } }, (side, id) => {
|
|
132
|
+
k.propText(id, "Number", { style: "Label 10", color: "onPaper", width: "FILL", align: side === "Left" ? "LEFT" : "RIGHT" });
|
|
133
133
|
});
|
|
134
|
-
const folio = (p, n2) => k.instance(p, "Folio", { Number: String(n2).padStart(2, "0") }, { width: "FILL", name: "Folio" });
|
|
134
|
+
const folio = (p, n2) => k.instance(p, n2 % 2 ? "Folio/Right" : "Folio/Left", { Number: String(n2).padStart(2, "0") }, { width: "FILL", name: "Folio" });
|
|
135
135
|
const spacer = (p) => {
|
|
136
136
|
const s = k.stack(p, { name: "Space" });
|
|
137
137
|
k.patch(s, { layoutSizingVertical: "FILL" });
|
|
@@ -143,16 +143,7 @@ var studio_portfolio_booklet_default = defineTemplate({
|
|
|
143
143
|
k.text(cw, "{{brand.name}}", { style: "Cover 54", color: "text", width: "FILL", name: "Name" });
|
|
144
144
|
picture(cover, "photo-06", 290, "Cover picture");
|
|
145
145
|
k.text(cover, "Selected work, 2023 \u2013 2026", { style: "Lead 20", color: "text", width: "FILL", name: "Subtitle" });
|
|
146
|
-
|
|
147
|
-
picture(about, "photo-04", 220, "About picture");
|
|
148
|
-
k.text(about, "ABOUT", { style: "Label 10", color: "text", width: "FILL", name: "Kicker" });
|
|
149
|
-
k.text(about, "I photograph work: the people who do it, the places it happens, and the hours nobody else sees.", { style: "Lead 20", color: "text", width: "FILL", name: "Statement" });
|
|
150
|
-
k.text(about, "I am a documentary and editorial photographer based in Lisbon, working on long projects across Europe, Africa and Asia and on commissions for magazines and brands that want pictures with a story under them. I shoot on location, by available light, and I stay long enough to be forgotten.", { style: "Body 12.5", color: "text", width: "FILL", name: "About" });
|
|
151
|
-
k.text(about, "SELECTED CLIENTS", { style: "Label 10", color: "onPaper", width: "FILL", name: "Clients title" });
|
|
152
|
-
k.text(about, "Monocle \xB7 Kinfolk \xB7 P\xFAblico \xB7 Atlas Review \xB7 The Gentlewoman \xB7 Aesop \xB7 Funda\xE7\xE3o Gulbenkian \xB7 Patagonia", { style: "Body 12.5", color: "text", width: "FILL", name: "Clients" });
|
|
153
|
-
spacer(about);
|
|
154
|
-
folio(about, 2);
|
|
155
|
-
let n = 3;
|
|
146
|
+
let n = 2;
|
|
156
147
|
for (const p of PROJECTS) {
|
|
157
148
|
const left = page(`${p.title} \u2014 picture`);
|
|
158
149
|
bleedPicture(left, p.lead, "Lead picture");
|
|
@@ -171,6 +162,15 @@ var studio_portfolio_booklet_default = defineTemplate({
|
|
|
171
162
|
folio(right, n + 1);
|
|
172
163
|
n += 2;
|
|
173
164
|
}
|
|
165
|
+
const about = page("About", { gap: 16 });
|
|
166
|
+
picture(about, "photo-04", 220, "About picture");
|
|
167
|
+
k.text(about, "ABOUT", { style: "Label 10", color: "text", width: "FILL", name: "Kicker" });
|
|
168
|
+
k.text(about, "I photograph work: the people who do it, the places it happens, and the hours nobody else sees.", { style: "Lead 20", color: "text", width: "FILL", name: "Statement" });
|
|
169
|
+
k.text(about, "I am a documentary and editorial photographer based in Lisbon, working on long projects across Europe, Africa and Asia and on commissions for magazines and brands that want pictures with a story under them. I shoot on location, by available light, and I stay long enough to be forgotten.", { style: "Body 12.5", color: "text", width: "FILL", name: "About" });
|
|
170
|
+
k.text(about, "SELECTED CLIENTS", { style: "Label 10", color: "onPaper", width: "FILL", name: "Clients title" });
|
|
171
|
+
k.text(about, "Monocle \xB7 Kinfolk \xB7 P\xFAblico \xB7 Atlas Review \xB7 The Gentlewoman \xB7 Aesop \xB7 Funda\xE7\xE3o Gulbenkian \xB7 Patagonia", { style: "Body 12.5", color: "text", width: "FILL", name: "Clients" });
|
|
172
|
+
spacer(about);
|
|
173
|
+
folio(about, 10);
|
|
174
174
|
const contact = page("Contact", { gap: 18 });
|
|
175
175
|
spacer(contact);
|
|
176
176
|
k.text(contact, "CONTACT", { style: "Label 10", color: "text", width: "FILL", name: "Kicker" });
|
|
@@ -4573,7 +4573,7 @@ function createPopcornSlice(set2, get2) {
|
|
|
4573
4573
|
privateMode: false,
|
|
4574
4574
|
setPrivateMode: (on) => {
|
|
4575
4575
|
set2({ privateMode: on });
|
|
4576
|
-
void import("./presence-
|
|
4576
|
+
void import("./presence-H2IHOP5C.js").then((m) => m.setPresencePrivate(on)).catch(() => {
|
|
4577
4577
|
});
|
|
4578
4578
|
},
|
|
4579
4579
|
/** Reveal every private item THIS user created (they sync to collaborators). Others' stay theirs. */
|
|
@@ -6626,7 +6626,7 @@ var useEditorStore = create()(
|
|
|
6626
6626
|
// A copy is a new file, so it is cloud-backed like any other (see lib/client/cloud/new-file.ts).
|
|
6627
6627
|
// Returns '' when it was refused (offline, signed out, plan full) or failed; nothing is left behind.
|
|
6628
6628
|
duplicateDocument: async (id) => {
|
|
6629
|
-
const { duplicateDocumentToCloud } = await import("./sync-
|
|
6629
|
+
const { duplicateDocumentToCloud } = await import("./sync-6MJJNBNR.js");
|
|
6630
6630
|
return duplicateDocumentToCloud(id);
|
|
6631
6631
|
},
|
|
6632
6632
|
deleteDocument: async (id) => {
|
|
@@ -10078,9 +10078,9 @@ if (typeof window !== "undefined") {
|
|
|
10078
10078
|
if (typeof window !== "undefined" && navigator.webdriver) {
|
|
10079
10079
|
window.__vpDesign = async (script, o = {}) => {
|
|
10080
10080
|
const [{ registerBuiltinTools, runTool }, { editorToolContext }, { createDesignPreview }] = await Promise.all([
|
|
10081
|
-
import("./tools-
|
|
10082
|
-
import("./editor-seams-
|
|
10083
|
-
import("./live-
|
|
10081
|
+
import("./tools-ADDMIT53.js").then(async (m) => ({ ...m, registerBuiltinTools: (await import("./builtin-MPHCX2R5.js")).registerBuiltinTools })),
|
|
10082
|
+
import("./editor-seams-KWSXIJ6M.js"),
|
|
10083
|
+
import("./live-SGMH3365.js")
|
|
10084
10084
|
]);
|
|
10085
10085
|
registerBuiltinTools();
|
|
10086
10086
|
const args = JSON.stringify({ ...o.name ? { name: o.name } : {}, ...o.size ? { size: o.size } : {}, ...o.frame ? { frame: o.frame } : {}, script });
|