@popcraft/kit 0.53.13 → 0.53.15
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-VFKKCXNW.js → agent-5U4U6C43.js} +1 -1
- package/dist/chunks/{builtin-SXC3ESRR.js → builtin-G67V4RJF.js} +3 -3
- package/dist/chunks/{buy-credits-4QMY23I7.js → buy-credits-5UKOLBHA.js} +2 -2
- package/dist/chunks/{check-template-XIZE7EOS.js → check-template-RTWNUF7Q.js} +2 -2
- package/dist/chunks/{chunk-7NA4JYVX.js → chunk-3W53KLNF.js} +3 -1
- package/dist/chunks/{chunk-TRTU2FSO.js → chunk-5ANWZ37I.js} +58 -48
- package/dist/chunks/{chunk-4BSC6DYN.js → chunk-C2GTJPT5.js} +3 -3
- package/dist/chunks/{chunk-K5SBJZE3.js → chunk-F3PBS2Z5.js} +12 -8
- package/dist/chunks/{chunk-J7CR7BAO.js → chunk-FT64PUMZ.js} +4 -4
- package/dist/chunks/{chunk-CPOOC3HY.js → chunk-G33U3C3W.js} +1 -1
- package/dist/chunks/{chunk-ANGQQ5SL.js → chunk-GLSJFVGH.js} +1 -1
- package/dist/chunks/{chunk-GOVWVKHX.js → chunk-IQDKL6R5.js} +4 -4
- package/dist/chunks/{chunk-TV5FI5GP.js → chunk-J6IPNDUM.js} +2 -2
- package/dist/chunks/{chunk-T2B3BBAY.js → chunk-JH3F3JX7.js} +5 -5
- package/dist/chunks/{chunk-KIIXFEQ5.js → chunk-RET3ZYRN.js} +1 -1
- package/dist/chunks/{chunk-GOEVKA7R.js → chunk-SCGTY227.js} +1 -1
- package/dist/chunks/{chunk-IIFTN3G3.js → chunk-TUPHMLPV.js} +1 -1
- package/dist/chunks/{chunk-HS7FSPEG.js → chunk-V5OPDI56.js} +9 -9
- package/dist/chunks/{chunk-LAMNIV7V.js → chunk-VCD6WEEH.js} +3 -3
- package/dist/chunks/{chunk-ZHM5OO26.js → chunk-VIYUKTOT.js} +3 -3
- package/dist/chunks/{chunk-7RIKE7TX.js → chunk-VW2Q7ERH.js} +11 -11
- package/dist/chunks/{chunk-3NSGRM6J.js → chunk-VXOQFVPW.js} +2 -2
- package/dist/chunks/{chunk-LHPVTMCD.js → chunk-YHG7UWFJ.js} +2 -2
- package/dist/chunks/{chunk-6WFRZJQQ.js → chunk-YHVBH4GK.js} +4 -4
- package/dist/chunks/{client-TMV3JAVU.js → client-EWVMZ6CF.js} +2 -2
- package/dist/chunks/{client-LKUCTAQJ.js → client-MLI53ZNN.js} +3 -3
- package/dist/chunks/{client-6PTKLMP4.js → client-WGYLRZ5W.js} +1 -1
- package/dist/chunks/{client-actions-G5AEYLK6.js → client-actions-AF3YLM73.js} +6 -6
- package/dist/chunks/{dangerous-CXYENUHS.js → dangerous-OBN3GMPU.js} +3 -3
- package/dist/chunks/{delete-current-file-P2C4XJ3L.js → delete-current-file-R2CGPD6P.js} +5 -5
- package/dist/chunks/{editor-seams-OJOIPMSR.js → editor-seams-KMPTES3K.js} +11 -11
- package/dist/chunks/{editor-store-Y4QJUZRN.js → editor-store-2SPG6CDB.js} +1 -1
- package/dist/chunks/{export-watermark-KA4DFQ5F.js → export-watermark-KBMDOVSF.js} +5 -5
- package/dist/chunks/{eyedropper-MQXDCCQQ.js → eyedropper-OYWRSZUA.js} +1 -1
- package/dist/chunks/{generate-media-WILB2F7S.js → generate-media-GOWIQCUK.js} +3 -3
- package/dist/chunks/{host-3J3QI73A.js → host-SSDIETZS.js} +6 -6
- package/dist/chunks/{integrations-QRCBIFAL.js → integrations-ZWSNTNFK.js} +1 -1
- package/dist/chunks/{libraries-5B666Y26.js → libraries-3RB4C5H3.js} +5 -5
- package/dist/chunks/{live-RMPMOVYA.js → live-LQWDISXX.js} +1 -1
- package/dist/chunks/{media-tool-DJZK4QD6.js → media-tool-HLCFTLIH.js} +6 -1
- package/dist/chunks/{new-file-KM7WGHYH.js → new-file-BL7UV3JO.js} +3 -3
- package/dist/chunks/{plugin-F6TFWUMK.js → plugin-XPWKYRQM.js} +2 -2
- package/dist/chunks/{plugin-import-SJN6BBFR.js → plugin-import-4ROQ6UYM.js} +16 -16
- package/dist/chunks/{presence-XSD4ZVR4.js → presence-VJE6WHKF.js} +2 -2
- package/dist/chunks/{project-YAHBLLJH.js → project-LO5CZDIT.js} +1 -1
- package/dist/chunks/{publish-site-TROND4HZ.js → publish-site-NIEC2X7V.js} +6 -6
- package/dist/chunks/{publish-store-LCNNW2TV.js → publish-store-JSJJPBZN.js} +4 -4
- package/dist/chunks/{raster-actions-67JHXSXD.js → raster-actions-F5RKSV2V.js} +1 -1
- package/dist/chunks/{runner-NU6KTPDY.js → runner-MJ3Q3NW3.js} +18 -18
- package/dist/chunks/{store-JIAL5L67.js → store-2WWSL2DR.js} +7 -7
- package/dist/chunks/{svg-place-TISTLAQB.js → svg-place-BWACOZJR.js} +1 -1
- package/dist/chunks/{sync-E6XGN5DN.js → sync-YRC4CAYD.js} +5 -5
- package/dist/chunks/{tabs-RBP42L32.js → tabs-LNKNT7FE.js} +8 -8
- package/dist/chunks/{team-CSWHSRE4.js → team-YVXVKPS3.js} +1 -1
- package/dist/chunks/{team-client-HSQHUIL5.js → team-client-BPI2FI3K.js} +1 -1
- package/dist/chunks/{tools-U5KNAVCI.js → tools-2HVINJ4B.js} +2 -2
- package/dist/chunks/{ui-commands-7MDF266T.js → ui-commands-5RZ3OLFU.js} +13 -13
- package/dist/chunks/{versions-6PA52YJZ.js → versions-WT6SPAR2.js} +5 -5
- package/dist/index.js +1 -1
- package/package.json +1 -1
|
@@ -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-J6IPNDUM.js";
|
|
11
|
+
import "./chunk-5ANWZ37I.js";
|
|
12
12
|
import "./chunk-LJZR7CU3.js";
|
|
13
13
|
import "./chunk-JNBUJE2Z.js";
|
|
14
14
|
import "./chunk-EGUH2RFR.js";
|
|
@@ -19,7 +19,7 @@ import "./chunk-SH6T47YM.js";
|
|
|
19
19
|
import "./chunk-O6H6N3RA.js";
|
|
20
20
|
import "./chunk-WA5G5BAY.js";
|
|
21
21
|
import "./chunk-UDDWBCFE.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-C2GTJPT5.js";
|
|
23
23
|
import "./chunk-T2U7UWFL.js";
|
|
24
24
|
import "./chunk-MD3CNNTN.js";
|
|
25
25
|
import "./chunk-AKNWNB6A.js";
|
|
@@ -7,11 +7,11 @@ const __dirname = __popcraftDirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
HYPERY_TEAM_HEADER,
|
|
9
9
|
hyperyRequestHeaders
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-TUPHMLPV.js";
|
|
11
11
|
import "./chunk-6TMH7HCQ.js";
|
|
12
12
|
import {
|
|
13
13
|
useHyperyTeam
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-SCGTY227.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-
|
|
9
|
+
} from "./chunk-V5OPDI56.js";
|
|
10
10
|
import {
|
|
11
11
|
builtinCommands
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-5ANWZ37I.js";
|
|
13
13
|
import "./chunk-LJZR7CU3.js";
|
|
14
14
|
import "./chunk-JNBUJE2Z.js";
|
|
15
15
|
import "./chunk-EGUH2RFR.js";
|
|
@@ -6,7 +6,7 @@ const __filename = __popcraftPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __popcraftDirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
hyperyRequestHeaders
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-TUPHMLPV.js";
|
|
10
10
|
import {
|
|
11
11
|
aiAvailability,
|
|
12
12
|
effectiveChatModel,
|
|
@@ -75,6 +75,8 @@ var AiClientError = class extends Error {
|
|
|
75
75
|
this.code = code;
|
|
76
76
|
this.status = status;
|
|
77
77
|
}
|
|
78
|
+
code;
|
|
79
|
+
status;
|
|
78
80
|
};
|
|
79
81
|
var needsReauth = (e) => e instanceof AiClientError && (e.code === "ai_reauth" || e.code === "ai_scope" || e.code === "unauthenticated");
|
|
80
82
|
function ensureAvailable() {
|
|
@@ -876,7 +876,7 @@ init_scene_graph();
|
|
|
876
876
|
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.");
|
|
877
877
|
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 });
|
|
878
878
|
async function placeImportedPicture(ctx, imported, at, what, extra = {}) {
|
|
879
|
-
const client = await import("./client-
|
|
879
|
+
const client = await import("./client-WGYLRZ5W.js");
|
|
880
880
|
if (at.fillLayerId) {
|
|
881
881
|
const doc2 = ctx.doc();
|
|
882
882
|
const target = nodeOrThrow(doc2, at.fillLayerId);
|
|
@@ -922,7 +922,7 @@ var photoSearch = defineCommand({
|
|
|
922
922
|
}
|
|
923
923
|
},
|
|
924
924
|
run: async (args) => {
|
|
925
|
-
const { searchStockPhotos } = await import("./client-
|
|
925
|
+
const { searchStockPhotos } = await import("./client-WGYLRZ5W.js");
|
|
926
926
|
const page = await searchStockPhotos(args.query, args.page ?? 1, { licence: args.licence });
|
|
927
927
|
return {
|
|
928
928
|
summary: `${page.results.length} photo${page.results.length === 1 ? "" : "s"} for \u201C${page.query}\u201D (page ${page.page} of ${page.pageCount || 1})`,
|
|
@@ -956,7 +956,7 @@ var photoInsert = defineCommand({
|
|
|
956
956
|
run: async (args, ctx) => {
|
|
957
957
|
if (!args.id && !args.query) throw new ToolError("Pass an id from search_photos, or a query.");
|
|
958
958
|
if (args.id && !isPhotoId(args.id)) throw new ToolError(`"${args.id}" is not a photo id from search_photos.`);
|
|
959
|
-
const client = await import("./client-
|
|
959
|
+
const client = await import("./client-WGYLRZ5W.js");
|
|
960
960
|
let photo;
|
|
961
961
|
if (args.id) photo = await client.stockPhotoInfo(args.id);
|
|
962
962
|
else {
|
|
@@ -994,10 +994,10 @@ var mediaList = defineCommand({
|
|
|
994
994
|
}
|
|
995
995
|
},
|
|
996
996
|
run: async (args) => {
|
|
997
|
-
const { listLibraryMedia } = await import("./client-
|
|
997
|
+
const { listLibraryMedia } = await import("./client-EWVMZ6CF.js");
|
|
998
998
|
const q = { ...args };
|
|
999
999
|
if (!q.workspace) {
|
|
1000
|
-
const { syncStatus } = await import("./sync-
|
|
1000
|
+
const { syncStatus } = await import("./sync-YRC4CAYD.js");
|
|
1001
1001
|
const link2 = syncStatus().link;
|
|
1002
1002
|
if (!link2) throw new ToolError("This document is not saved to the cloud, so it has no team media library. Pass workspace.");
|
|
1003
1003
|
q.workspace = (await listLibraryMedia({ file: link2.key, limit: 1 })).workspaceId;
|
|
@@ -1032,7 +1032,7 @@ var mediaInsert = defineCommand({
|
|
|
1032
1032
|
run: async (args, ctx) => {
|
|
1033
1033
|
const contentType = args.contentType ?? "image/*";
|
|
1034
1034
|
if (!contentType.startsWith("image/")) throw new ToolError("insert_media places pictures; this item is not one.");
|
|
1035
|
-
const { importLibraryPicture } = await import("./client-
|
|
1035
|
+
const { importLibraryPicture } = await import("./client-EWVMZ6CF.js");
|
|
1036
1036
|
const item = { hash: args.hash, fileKey: args.fileKey, fileName: args.name ?? "Media", contentType, size: 0, createdAt: "", fileCount: 1, source: null };
|
|
1037
1037
|
const imported = await importLibraryPicture(item);
|
|
1038
1038
|
return placeImportedPicture(ctx, imported, args, `\u201C${imported.name}\u201D`, { hash: imported.hash });
|
|
@@ -1053,7 +1053,7 @@ var mediaDownload = defineCommand({
|
|
|
1053
1053
|
// The Library's right-click menu: saves the item's file to the computer.
|
|
1054
1054
|
expose: { ui: { label: "Download", palette: false } },
|
|
1055
1055
|
run: async (args) => {
|
|
1056
|
-
const { libraryBlob, libraryFileName } = await import("./client-
|
|
1056
|
+
const { libraryBlob, libraryFileName } = await import("./client-EWVMZ6CF.js");
|
|
1057
1057
|
const { downloadBlob } = await import("./download-Y3ITVA3U.js");
|
|
1058
1058
|
const item = { hash: args.hash, fileKey: args.fileKey, fileName: args.name ?? "media", contentType: args.contentType ?? "", size: 0, createdAt: "", fileCount: 1, source: null };
|
|
1059
1059
|
const blob = await libraryBlob(item);
|
|
@@ -1084,7 +1084,7 @@ var mediaDelete = defineCommand({
|
|
|
1084
1084
|
}
|
|
1085
1085
|
},
|
|
1086
1086
|
run: async (args) => {
|
|
1087
|
-
const { deleteLibraryMedia } = await import("./client-
|
|
1087
|
+
const { deleteLibraryMedia } = await import("./client-EWVMZ6CF.js");
|
|
1088
1088
|
const out = await deleteLibraryMedia(args.workspace, args.hash);
|
|
1089
1089
|
return { summary: `Deleted it from the library (it was in ${out.files} file${out.files === 1 ? "" : "s"})`, data: out };
|
|
1090
1090
|
}
|
|
@@ -1098,13 +1098,13 @@ async function signedIn() {
|
|
|
1098
1098
|
}
|
|
1099
1099
|
async function publishedFile() {
|
|
1100
1100
|
await signedIn();
|
|
1101
|
-
const { openFileKey } = await import("./publish-site-
|
|
1101
|
+
const { openFileKey } = await import("./publish-site-NIEC2X7V.js");
|
|
1102
1102
|
const key = openFileKey();
|
|
1103
1103
|
if (!key) throw new CommandError("This file is not saved to the cloud yet, so it has no site. Publish it first.", "failed");
|
|
1104
1104
|
return key;
|
|
1105
1105
|
}
|
|
1106
1106
|
async function formsWithoutDatabase(key) {
|
|
1107
|
-
const [{ useEditorStore }, { usesForms, formsGoNowhere }, { siteBackend }] = await Promise.all([import("./editor-store-
|
|
1107
|
+
const [{ useEditorStore }, { usesForms, formsGoNowhere }, { siteBackend }] = await Promise.all([import("./editor-store-2SPG6CDB.js"), import("./backend-7KRMCLSO.js"), import("./integrations-ZWSNTNFK.js")]);
|
|
1108
1108
|
const doc2 = useEditorStore.getState().document;
|
|
1109
1109
|
if (!usesForms(doc2)) return false;
|
|
1110
1110
|
return formsGoNowhere(doc2, await siteBackend(key).catch(() => void 0));
|
|
@@ -1140,7 +1140,7 @@ var publishSite = defineCommand({
|
|
|
1140
1140
|
const { cleanSlug } = await import("./rules-5NYUWZVM.js");
|
|
1141
1141
|
const address = p.address === void 0 ? void 0 : cleanSlug(p.address);
|
|
1142
1142
|
if (address === null) throw new CommandError("That cannot be a site address: use 3 to 40 letters, digits and dashes.", "invalid_params");
|
|
1143
|
-
const { publishOpenFile, NoScreens } = await import("./publish-site-
|
|
1143
|
+
const { publishOpenFile, NoScreens } = await import("./publish-site-NIEC2X7V.js");
|
|
1144
1144
|
try {
|
|
1145
1145
|
const done = await publishOpenFile(address);
|
|
1146
1146
|
ctx.notice(`Published version ${done.version}: ${done.url}`);
|
|
@@ -1195,7 +1195,7 @@ var publishListSites = defineCommand({
|
|
|
1195
1195
|
},
|
|
1196
1196
|
run: async (p) => {
|
|
1197
1197
|
await signedIn();
|
|
1198
|
-
const [{ workspaceSites }, { activeTeamWorkspaceId, useHyperyTeam }] = await Promise.all([import("./sites-QMNZBRQV.js"), import("./team-
|
|
1198
|
+
const [{ workspaceSites }, { activeTeamWorkspaceId, useHyperyTeam }] = await Promise.all([import("./sites-QMNZBRQV.js"), import("./team-YVXVKPS3.js")]);
|
|
1199
1199
|
const workspaceId = p.workspaceId ?? activeTeamWorkspaceId() ?? useHyperyTeam.getState().personalWorkspaceId;
|
|
1200
1200
|
if (!workspaceId) throw new CommandError("Your workspaces have not loaded yet. Try again in a moment.", "failed");
|
|
1201
1201
|
const out = await workspaceSites(workspaceId);
|
|
@@ -1244,12 +1244,12 @@ var publishStatus = defineCommand({
|
|
|
1244
1244
|
},
|
|
1245
1245
|
run: async () => {
|
|
1246
1246
|
await signedIn();
|
|
1247
|
-
const [{ openFileKey }, { siteStatus }] = await Promise.all([import("./publish-site-
|
|
1247
|
+
const [{ openFileKey }, { siteStatus }] = await Promise.all([import("./publish-site-NIEC2X7V.js"), import("./sites-QMNZBRQV.js")]);
|
|
1248
1248
|
const key = openFileKey();
|
|
1249
1249
|
const status = await siteStatus(key);
|
|
1250
1250
|
const site = status.site;
|
|
1251
|
-
const backend = key ? await (await import("./integrations-
|
|
1252
|
-
const destinations = key ? await (await import("./integrations-
|
|
1251
|
+
const backend = key ? await (await import("./integrations-ZWSNTNFK.js")).siteBackend(key).catch(() => null) : null;
|
|
1252
|
+
const destinations = key ? await (await import("./integrations-ZWSNTNFK.js")).listDestinations(key).catch(() => []) : [];
|
|
1253
1253
|
return {
|
|
1254
1254
|
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}`,
|
|
1255
1255
|
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 })) }
|
|
@@ -1280,7 +1280,7 @@ var publishStore = defineCommand({
|
|
|
1280
1280
|
},
|
|
1281
1281
|
run: async (p, ctx) => {
|
|
1282
1282
|
await signedIn();
|
|
1283
|
-
const { deployOpenStore } = await import("./publish-store-
|
|
1283
|
+
const { deployOpenStore } = await import("./publish-store-JSJJPBZN.js");
|
|
1284
1284
|
const done = await deployOpenStore(ctx.doc(), ctx.pageId(), { destinationId: p.destinationId }).catch((e) => {
|
|
1285
1285
|
throw new CommandError(e instanceof Error ? e.message : String(e), "failed");
|
|
1286
1286
|
});
|
|
@@ -1309,7 +1309,7 @@ var integrationList = defineCommand({
|
|
|
1309
1309
|
}
|
|
1310
1310
|
},
|
|
1311
1311
|
run: async ({ capability }) => {
|
|
1312
|
-
const [{ cloudUser }, { integrationsWorkspaceId, listWorkspaceIntegrations }] = await Promise.all([import("./session-Q7CTWZ3F.js"), import("./integrations-
|
|
1312
|
+
const [{ cloudUser }, { integrationsWorkspaceId, listWorkspaceIntegrations }] = await Promise.all([import("./session-Q7CTWZ3F.js"), import("./integrations-ZWSNTNFK.js")]);
|
|
1313
1313
|
if (!cloudUser()) throw new CommandError("You are not signed in: integrations belong to your account's workspace.", "denied");
|
|
1314
1314
|
const workspaceId = integrationsWorkspaceId();
|
|
1315
1315
|
if (!workspaceId) throw new CommandError("Your workspaces have not loaded yet. Try again in a moment.", "failed");
|
|
@@ -1350,7 +1350,7 @@ var integrationOpen = defineCommand({
|
|
|
1350
1350
|
}
|
|
1351
1351
|
});
|
|
1352
1352
|
async function openFile() {
|
|
1353
|
-
const [{ cloudUser }, { openFileKey }] = await Promise.all([import("./session-Q7CTWZ3F.js"), import("./publish-site-
|
|
1353
|
+
const [{ cloudUser }, { openFileKey }] = await Promise.all([import("./session-Q7CTWZ3F.js"), import("./publish-site-NIEC2X7V.js")]);
|
|
1354
1354
|
if (!cloudUser()) throw new CommandError("You are not signed in.", "denied");
|
|
1355
1355
|
const key = openFileKey();
|
|
1356
1356
|
if (!key) throw new CommandError("This file is not saved to the cloud yet. Publish it first (publish_site).", "failed");
|
|
@@ -1376,7 +1376,7 @@ var integrationListResources = defineCommand({
|
|
|
1376
1376
|
}
|
|
1377
1377
|
},
|
|
1378
1378
|
run: async ({ connectionId, capability, path }) => {
|
|
1379
|
-
const { listResources } = await import("./integrations-
|
|
1379
|
+
const { listResources } = await import("./integrations-ZWSNTNFK.js");
|
|
1380
1380
|
const list = await listResources(connectionId, capability, asPath2(path));
|
|
1381
1381
|
return {
|
|
1382
1382
|
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",
|
|
@@ -1411,7 +1411,7 @@ var integrationAddDestination = defineCommand({
|
|
|
1411
1411
|
},
|
|
1412
1412
|
run: async (p, ctx) => {
|
|
1413
1413
|
const key = await openFile();
|
|
1414
|
-
const { addDestination, createDestination, createResource } = await import("./integrations-
|
|
1414
|
+
const { addDestination, createDestination, createResource } = await import("./integrations-ZWSNTNFK.js");
|
|
1415
1415
|
let made;
|
|
1416
1416
|
if (p.create) made = await createDestination(key, p.capability, void 0, p.connectionId);
|
|
1417
1417
|
else {
|
|
@@ -1448,7 +1448,7 @@ var integrationDeploy = defineCommand({
|
|
|
1448
1448
|
},
|
|
1449
1449
|
run: async (p, ctx) => {
|
|
1450
1450
|
const key = await openFile();
|
|
1451
|
-
const { deployDestination, listDestinations } = await import("./integrations-
|
|
1451
|
+
const { deployDestination, listDestinations } = await import("./integrations-ZWSNTNFK.js");
|
|
1452
1452
|
const all = await listDestinations(key);
|
|
1453
1453
|
const dest = p.destinationId ? all.find((d) => d.id === p.destinationId) : all.length === 1 ? all[0] : void 0;
|
|
1454
1454
|
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");
|
|
@@ -1482,7 +1482,7 @@ var integrationAttachDatabase = defineCommand({
|
|
|
1482
1482
|
},
|
|
1483
1483
|
run: async (p, ctx) => {
|
|
1484
1484
|
const key = await openFile();
|
|
1485
|
-
const { attachDatabase, createDatabase, createResource, listResources } = await import("./integrations-
|
|
1485
|
+
const { attachDatabase, createDatabase, createResource, listResources } = await import("./integrations-ZWSNTNFK.js");
|
|
1486
1486
|
if (p.create) return attached(await createDatabase(key, void 0, p.connectionId), ctx);
|
|
1487
1487
|
if (!p.connectionId || !p.target) throw new CommandError("Say connectionId and target, or create: true.", "invalid_params");
|
|
1488
1488
|
let target = asPath2(p.target);
|
|
@@ -1521,7 +1521,7 @@ var integrationSubmissions = defineCommand({
|
|
|
1521
1521
|
},
|
|
1522
1522
|
run: async ({ form, limit }) => {
|
|
1523
1523
|
const key = await openFile();
|
|
1524
|
-
const { listSubmissions } = await import("./integrations-
|
|
1524
|
+
const { listSubmissions } = await import("./integrations-ZWSNTNFK.js");
|
|
1525
1525
|
const rows = await listSubmissions(key, { form, limit: limit ?? 20 });
|
|
1526
1526
|
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 } };
|
|
1527
1527
|
}
|
|
@@ -1546,7 +1546,7 @@ var integrationSetSignIn = defineCommand({
|
|
|
1546
1546
|
},
|
|
1547
1547
|
run: async ({ on }, ctx) => {
|
|
1548
1548
|
const key = await openFile();
|
|
1549
|
-
const { setSignIn } = await import("./integrations-
|
|
1549
|
+
const { setSignIn } = await import("./integrations-ZWSNTNFK.js");
|
|
1550
1550
|
const done = await setSignIn(key, on);
|
|
1551
1551
|
ctx.notice(on ? "Visitors can sign in." : "Sign-in is off.");
|
|
1552
1552
|
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 } };
|
|
@@ -1764,7 +1764,7 @@ var fontTeamList = defineCommand({
|
|
|
1764
1764
|
agent: { name: "list_team_fonts", readOnly: true, description: "The team's fonts: faces uploaded once that every file of the team can use (family, weight, style)." }
|
|
1765
1765
|
},
|
|
1766
1766
|
run: async (args) => {
|
|
1767
|
-
const { refreshTeamFonts } = await import("./team-client-
|
|
1767
|
+
const { refreshTeamFonts } = await import("./team-client-BPI2FI3K.js");
|
|
1768
1768
|
const fonts = await refreshTeamFonts(args.workspace);
|
|
1769
1769
|
return { summary: plural(fonts.length, "team font"), data: { fonts: fonts.map((f) => ({ id: f.id, family: f.family, weight: f.weight, style: f.style, face: f.face, fileName: f.fileName })) } };
|
|
1770
1770
|
}
|
|
@@ -1791,7 +1791,7 @@ var fontTeamAdd = defineCommand({
|
|
|
1791
1791
|
run: async (args, ctx) => {
|
|
1792
1792
|
const { bytes, fileName: fileName2 } = await fontBytes(args, ctx);
|
|
1793
1793
|
const { face, family, weight, style } = await resolveFace(bytes, args);
|
|
1794
|
-
const { uploadTeamFont } = await import("./team-client-
|
|
1794
|
+
const { uploadTeamFont } = await import("./team-client-BPI2FI3K.js");
|
|
1795
1795
|
const font = await uploadTeamFont(bytes, { family, weight, style, face: face.index, fileName: fileName2 }, args.workspace);
|
|
1796
1796
|
return { summary: `Added ${family} ${weight}${style === "italic" ? " italic" : ""} to the team`, data: { font } };
|
|
1797
1797
|
}
|
|
@@ -1813,7 +1813,7 @@ var fontTeamRemove = defineCommand({
|
|
|
1813
1813
|
agent: { name: "remove_team_font", description: "Remove a font from the team (list_team_fonts). Files that use it fall back to another font unless they carry it themselves. The user approves every call." }
|
|
1814
1814
|
},
|
|
1815
1815
|
run: async (args) => {
|
|
1816
|
-
const { removeTeamFont } = await import("./team-client-
|
|
1816
|
+
const { removeTeamFont } = await import("./team-client-BPI2FI3K.js");
|
|
1817
1817
|
const out = await removeTeamFont(args.id, args.workspace);
|
|
1818
1818
|
return { summary: `Removed the team font${out.freed ? " and freed its storage" : ""}`, data: out };
|
|
1819
1819
|
}
|
|
@@ -1824,7 +1824,7 @@ var fontTeamCommands = [fontTeamList, fontTeamAdd];
|
|
|
1824
1824
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
1825
1825
|
async function cloudFile() {
|
|
1826
1826
|
const [{ syncStatus }, { cloudUser }] = await Promise.all([
|
|
1827
|
-
import("./sync-
|
|
1827
|
+
import("./sync-YRC4CAYD.js"),
|
|
1828
1828
|
import("./session-Q7CTWZ3F.js")
|
|
1829
1829
|
]);
|
|
1830
1830
|
const link2 = syncStatus().link;
|
|
@@ -1886,7 +1886,7 @@ var fileTrash = defineCommand({
|
|
|
1886
1886
|
agent: { name: "trash_file", description: "Delete the open file: a cloud file goes to the Trash (restorable), a signed-out local file is deleted for good. Then the editor goes back to Home. The user approves every call." }
|
|
1887
1887
|
},
|
|
1888
1888
|
run: async () => {
|
|
1889
|
-
const { deleteCurrentFile, leaveDeletedFile } = await import("./delete-current-file-
|
|
1889
|
+
const { deleteCurrentFile, leaveDeletedFile } = await import("./delete-current-file-R2CGPD6P.js");
|
|
1890
1890
|
const { name: name2, kind } = await deleteCurrentFile();
|
|
1891
1891
|
leaveDeletedFile();
|
|
1892
1892
|
return { summary: kind === "cloud" ? `Moved \u201C${name2}\u201D to the Trash` : `Deleted \u201C${name2}\u201D` };
|
|
@@ -1999,11 +1999,11 @@ var fileDuplicate = defineCommand({
|
|
|
1999
1999
|
},
|
|
2000
2000
|
run: async (_p, ctx) => {
|
|
2001
2001
|
const [{ syncStatus }, { cloudApi }, { isDesktopTabs }, { createFileInTab }, { openNewCloudFile }, { v4: uuid }] = await Promise.all([
|
|
2002
|
-
import("./sync-
|
|
2002
|
+
import("./sync-YRC4CAYD.js"),
|
|
2003
2003
|
import("./api-EJGMIFIU.js"),
|
|
2004
2004
|
import("./tab-mode-YHCYF7R2.js"),
|
|
2005
|
-
import("./tabs-
|
|
2006
|
-
import("./sync-
|
|
2005
|
+
import("./tabs-LNKNT7FE.js"),
|
|
2006
|
+
import("./sync-YRC4CAYD.js"),
|
|
2007
2007
|
import("./dist-node-KMLAA4ON.js")
|
|
2008
2008
|
]);
|
|
2009
2009
|
const doc2 = ctx.doc();
|
|
@@ -2824,12 +2824,20 @@ var nodeReparent = defineCommand({
|
|
|
2824
2824
|
capped(args.ids, "reparent");
|
|
2825
2825
|
const parent = nodeOrThrow(doc2, args.parentId);
|
|
2826
2826
|
let next = doc2;
|
|
2827
|
-
|
|
2827
|
+
const stackIndex = (id) => {
|
|
2828
|
+
const n = doc2.nodes[id];
|
|
2829
|
+
const p = n?.parentId ? doc2.nodes[n.parentId] : void 0;
|
|
2830
|
+
return p ? p.childIds.indexOf(id) : 0;
|
|
2831
|
+
};
|
|
2832
|
+
const ordered = [...args.ids].sort((a, b) => doc2.nodes[a]?.parentId === doc2.nodes[b]?.parentId ? stackIndex(a) - stackIndex(b) : 0);
|
|
2833
|
+
let insertAt = args.index;
|
|
2834
|
+
for (const id of ordered) {
|
|
2828
2835
|
nodeOrThrow(doc2, id);
|
|
2829
2836
|
if (id === args.parentId) throw new ToolError("A layer cannot be its own parent.");
|
|
2830
2837
|
const placed = placementUnder(next, id, args.parentId);
|
|
2831
2838
|
if (placed) next = updateNode(next, id, placed);
|
|
2832
|
-
next = reparentNode(next, id, args.parentId,
|
|
2839
|
+
next = reparentNode(next, id, args.parentId, insertAt);
|
|
2840
|
+
if (insertAt !== void 0) insertAt = next.nodes[args.parentId].childIds.indexOf(id) + 1;
|
|
2833
2841
|
}
|
|
2834
2842
|
ctx.commit(applyInvariants(next, [...args.ids, args.parentId]));
|
|
2835
2843
|
return { summary: `Moved ${plural(args.ids.length, "layer")} into "${parent.name}"`, data: { ids: args.ids, parentId: args.parentId } };
|
|
@@ -2858,10 +2866,12 @@ var nodeGroup = defineCommand({
|
|
|
2858
2866
|
const box = localBox(doc2, ids);
|
|
2859
2867
|
const g = createGroup();
|
|
2860
2868
|
const node = { ...g, name: args.name ?? g.name, x: box.minX, y: box.minY, width: box.maxX - box.minX, height: box.maxY - box.minY };
|
|
2861
|
-
const
|
|
2869
|
+
const siblings = doc2.nodes[parentId].childIds;
|
|
2870
|
+
const ordered = [...ids].sort((a, b) => siblings.indexOf(a) - siblings.indexOf(b));
|
|
2871
|
+
const top = Math.max(...ordered.map((id) => siblings.indexOf(id)));
|
|
2862
2872
|
let next = addNode(doc2, node, parentId);
|
|
2863
|
-
next = reparentNode(next, node.id, parentId,
|
|
2864
|
-
for (const id of
|
|
2873
|
+
next = reparentNode(next, node.id, parentId, top + 1);
|
|
2874
|
+
for (const id of ordered) {
|
|
2865
2875
|
const n = next.nodes[id];
|
|
2866
2876
|
next = reparentNode(next, id, node.id);
|
|
2867
2877
|
next = updateNode(next, id, { x: n.x - box.minX, y: n.y - box.minY });
|
|
@@ -3156,7 +3166,7 @@ var nodeImportSvg = defineCommand({
|
|
|
3156
3166
|
const parentId = args.parentId ?? ctx.pageId();
|
|
3157
3167
|
const parent = nodeOrThrow(doc2, parentId);
|
|
3158
3168
|
if (args.at) {
|
|
3159
|
-
const [{ placeSvgLayers }, { internDataUrl: internDataUrl2 }] = await Promise.all([import("./svg-place-
|
|
3169
|
+
const [{ placeSvgLayers }, { internDataUrl: internDataUrl2 }] = await Promise.all([import("./svg-place-BWACOZJR.js"), import("./media-store-MRUY25FE.js")]);
|
|
3160
3170
|
const items = [...args.svg ? [{ svg: args.svg, name: args.name }] : [], ...args.more ?? []];
|
|
3161
3171
|
if (!items.length) throw new ToolError("Pass the SVG markup.");
|
|
3162
3172
|
let next2 = doc2;
|
|
@@ -4811,7 +4821,7 @@ var viewCopyLink = defineCommand({
|
|
|
4811
4821
|
},
|
|
4812
4822
|
run: async (args, ctx) => {
|
|
4813
4823
|
const [{ syncStatus }, { fileUrl }, { withDeepLink }] = await Promise.all([
|
|
4814
|
-
import("./sync-
|
|
4824
|
+
import("./sync-YRC4CAYD.js"),
|
|
4815
4825
|
import("./api-EJGMIFIU.js"),
|
|
4816
4826
|
import("./deep-link-KQENGQMI.js")
|
|
4817
4827
|
]);
|
|
@@ -5136,7 +5146,7 @@ var pageGo = defineCommand({
|
|
|
5136
5146
|
] }
|
|
5137
5147
|
},
|
|
5138
5148
|
run: async ({ to }) => {
|
|
5139
|
-
const { useEditorStore } = await import("./editor-store-
|
|
5149
|
+
const { useEditorStore } = await import("./editor-store-2SPG6CDB.js");
|
|
5140
5150
|
useEditorStore.getState().goToPrintPage(to);
|
|
5141
5151
|
return { summary: typeof to === "number" ? `Page ${to + 1}` : `${to} page` };
|
|
5142
5152
|
}
|
|
@@ -5170,7 +5180,7 @@ var pageSetup = defineCommand({
|
|
|
5170
5180
|
}
|
|
5171
5181
|
},
|
|
5172
5182
|
run: async (args) => {
|
|
5173
|
-
const { useEditorStore } = await import("./editor-store-
|
|
5183
|
+
const { useEditorStore } = await import("./editor-store-2SPG6CDB.js");
|
|
5174
5184
|
useEditorStore.getState().applyPageSetup(args);
|
|
5175
5185
|
return { summary: `Page setup updated${args.kind ? ` (${args.kind.toLowerCase()})` : ""}` };
|
|
5176
5186
|
}
|
|
@@ -5929,7 +5939,7 @@ async function docAtTime(doc2, ids, time2) {
|
|
|
5929
5939
|
let frameId;
|
|
5930
5940
|
if (time2 === void 0) {
|
|
5931
5941
|
try {
|
|
5932
|
-
const { useEditorStore } = await import("./editor-store-
|
|
5942
|
+
const { useEditorStore } = await import("./editor-store-2SPG6CDB.js");
|
|
5933
5943
|
const st = useEditorStore.getState();
|
|
5934
5944
|
const target = st.transport?.target;
|
|
5935
5945
|
if (st.mode !== "ANIMATE" || target?.kind !== "frame") return doc2;
|
|
@@ -6323,7 +6333,7 @@ async function runAnimationExport(format, args, ctx) {
|
|
|
6323
6333
|
const filename = exportFileName(args.filename || targetName(doc2, target), format);
|
|
6324
6334
|
const [{ exportAnimation }, { memoryDestination }] = await Promise.all([import("./video-GIBYVDJP.js"), import("./destination-JJAVZ5ER.js")]);
|
|
6325
6335
|
if (format === "lottie" || format === "dotlottie") return runLottieExport(renderer, doc2, spec, filename, ctx, memoryDestination, args.stateMachine);
|
|
6326
|
-
const planWatermark = format !== "png" && await (await import("./export-watermark-
|
|
6336
|
+
const planWatermark = format !== "png" && await (await import("./export-watermark-KBMDOVSF.js")).exportWatermark();
|
|
6327
6337
|
if (format !== "png") spec = { ...spec, watermark: planWatermark || args.watermark !== false };
|
|
6328
6338
|
const dest = ctx.destination ? await ctx.destination(filename, FORMAT_MIME[format]) : memoryDestination(filename, FORMAT_MIME[format]);
|
|
6329
6339
|
let stats;
|
|
@@ -6409,7 +6419,7 @@ var exportLottie = animationCommand((args) => args.container === "lottie" ? "dot
|
|
|
6409
6419
|
});
|
|
6410
6420
|
async function exportSite(doc2, pageId2, packaging, styling = "css", siteUrl) {
|
|
6411
6421
|
const [{ completeSite, nextFilesOf, shareImageFiles, staticFilesOf, NoSiteRuntime, bytesOf }, { fileBase }, { zipFiles }, { downloadBlob }] = await Promise.all([
|
|
6412
|
-
import("./project-
|
|
6422
|
+
import("./project-LO5CZDIT.js"),
|
|
6413
6423
|
import("./web-RO6ZM7J3.js"),
|
|
6414
6424
|
import("./zip-export-ITATIAQ3.js"),
|
|
6415
6425
|
import("./download-Y3ITVA3U.js")
|
|
@@ -6503,7 +6513,7 @@ var exportStorefront = defineCommand({
|
|
|
6503
6513
|
const [{ storefrontInputs }, { STOREFRONT_TARGETS }, { bytesOf }, { fileBase, flatten }, { zipFiles }, { downloadBlob }] = await Promise.all([
|
|
6504
6514
|
import("./storefront-prepare-KXYUIYOX.js"),
|
|
6505
6515
|
import("./storefront-UUS57X6E.js"),
|
|
6506
|
-
import("./project-
|
|
6516
|
+
import("./project-LO5CZDIT.js"),
|
|
6507
6517
|
import("./web-RO6ZM7J3.js"),
|
|
6508
6518
|
import("./zip-export-ITATIAQ3.js"),
|
|
6509
6519
|
import("./download-Y3ITVA3U.js")
|
|
@@ -6898,7 +6908,7 @@ var visionRegenerateImage = defineCommand({
|
|
|
6898
6908
|
const id = args.id ?? ctx.selection()[0];
|
|
6899
6909
|
if (!id) throw new ToolError("Select a generated image to regenerate.");
|
|
6900
6910
|
nodeOrThrow(ctx.doc(), id);
|
|
6901
|
-
const { regenerateImage } = await import("./client-actions-
|
|
6911
|
+
const { regenerateImage } = await import("./client-actions-AF3YLM73.js");
|
|
6902
6912
|
regenerateImage(id, args.count);
|
|
6903
6913
|
return { summary: args.count > 1 ? `Regenerating ${args.count} variants` : "Regenerating the image", data: { id, count: args.count } };
|
|
6904
6914
|
}
|
|
@@ -10057,7 +10067,7 @@ var scriptRun = defineCommand({
|
|
|
10057
10067
|
// A script is not the turn the user is watching: confirm-tier tools are refused inside it (dispatch, `nested`).
|
|
10058
10068
|
actor: { ...ctx.actor, nested: true, label: "Script" },
|
|
10059
10069
|
// A look_at inside the script sees the document as the script has left it so far, not as it was before.
|
|
10060
|
-
use: ((name2) => name2 === "render" && ctx.can("render") ? (async (ids, options) => (await import("./agent-
|
|
10070
|
+
use: ((name2) => name2 === "render" && ctx.can("render") ? (async (ids, options) => (await import("./agent-5U4U6C43.js")).renderDocument(staged, ids, options)) : ctx.use(name2))
|
|
10061
10071
|
};
|
|
10062
10072
|
let calls = 0;
|
|
10063
10073
|
const images = [];
|
|
@@ -10877,7 +10887,7 @@ var docImportFile = defineCommand({
|
|
|
10877
10887
|
const file = new File([body], args.name);
|
|
10878
10888
|
if (file.size > MAX_BYTES) throw new ToolError(`"${args.name}" is larger than ${MAX_BYTES / 1024 / 1024} MB.`);
|
|
10879
10889
|
const [{ buildImportedDocument }, { mergeImportedDocument }] = await Promise.all([
|
|
10880
|
-
import("./plugin-import-
|
|
10890
|
+
import("./plugin-import-4ROQ6UYM.js"),
|
|
10881
10891
|
import("./import-merge-ZSN3D2QW.js")
|
|
10882
10892
|
]);
|
|
10883
10893
|
const built = await buildImportedDocument(file);
|
|
@@ -57,19 +57,19 @@ async function renderDocument(doc, nodeIds, options) {
|
|
|
57
57
|
function generateCapability(ctx) {
|
|
58
58
|
return async (prompt, options = {}) => {
|
|
59
59
|
if (options.format === "audio") {
|
|
60
|
-
const { requestAudio } = await import("./client-
|
|
60
|
+
const { requestAudio } = await import("./client-MLI53ZNN.js");
|
|
61
61
|
const { signal: signal2, format: _f, ...rest2 } = options;
|
|
62
62
|
void _f;
|
|
63
63
|
return requestAudio({ prompt, ...rest2 }, signal2 ?? ctx.signal);
|
|
64
64
|
}
|
|
65
65
|
if (options.format === "video") {
|
|
66
|
-
const { generateVideoFile } = await import("./generate-media-
|
|
66
|
+
const { generateVideoFile } = await import("./generate-media-GOWIQCUK.js");
|
|
67
67
|
const { format: _f, signal: signal2, ...rest2 } = options;
|
|
68
68
|
void _f;
|
|
69
69
|
return generateVideoFile({ ...rest2, prompt, doc: ctx.doc() }, { signal: signal2 ?? ctx.signal });
|
|
70
70
|
}
|
|
71
71
|
const [{ requestImage }, { effectiveImageModel, useAiStore }] = await Promise.all([
|
|
72
|
-
import("./client-
|
|
72
|
+
import("./client-MLI53ZNN.js"),
|
|
73
73
|
import("./client-store-4J5MJDAW.js")
|
|
74
74
|
]);
|
|
75
75
|
const modelId = effectiveImageModel(useAiStore.getState());
|
|
@@ -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-
|
|
4614
|
+
void import("./presence-VJE6WHKF.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-
|
|
6659
|
+
const { duplicateDocumentToCloud } = await import("./sync-YRC4CAYD.js");
|
|
6660
6660
|
return duplicateDocumentToCloud(id);
|
|
6661
6661
|
},
|
|
6662
6662
|
deleteDocument: async (id) => {
|
|
@@ -7327,8 +7327,8 @@ var useEditorStore = create()(
|
|
|
7327
7327
|
let cosmetic = true;
|
|
7328
7328
|
const touched = [];
|
|
7329
7329
|
for (const u of updates) {
|
|
7330
|
-
const
|
|
7331
|
-
if (!
|
|
7330
|
+
const housekeeping = Object.keys(u.props).every((k) => k === "locked" || k === "visible" || k === "name");
|
|
7331
|
+
if (!housekeeping && isLocked(document2, u.id)) continue;
|
|
7332
7332
|
let props = u.props;
|
|
7333
7333
|
if ("rotation" in props && !canRotate(document2, u.id)) {
|
|
7334
7334
|
const { rotation: _dropped, ...rest } = props;
|
|
@@ -8493,8 +8493,12 @@ var useEditorStore = create()(
|
|
|
8493
8493
|
group.width = maxX - minX;
|
|
8494
8494
|
group.height = maxY - minY;
|
|
8495
8495
|
group.name = "Group";
|
|
8496
|
+
const siblings = state.document.nodes[parentId]?.childIds ?? [];
|
|
8497
|
+
const ordered = [...state.selection].sort((a, b) => siblings.indexOf(a) - siblings.indexOf(b));
|
|
8498
|
+
const top = Math.max(...ordered.map((id) => siblings.indexOf(id)));
|
|
8496
8499
|
let doc = addNode(state.document, group, parentId);
|
|
8497
|
-
|
|
8500
|
+
if (top >= 0) doc = reparentNode(doc, group.id, parentId, top + 1);
|
|
8501
|
+
ordered.forEach((id) => {
|
|
8498
8502
|
doc = reparentNode(doc, id, group.id);
|
|
8499
8503
|
const child = doc.nodes[id];
|
|
8500
8504
|
if (child) {
|
|
@@ -10131,9 +10135,9 @@ if (typeof window !== "undefined") {
|
|
|
10131
10135
|
if (typeof window !== "undefined" && navigator.webdriver) {
|
|
10132
10136
|
window.__vpDesign = async (script, o = {}) => {
|
|
10133
10137
|
const [{ registerBuiltinTools, runTool }, { editorToolContext }, { createDesignPreview }] = await Promise.all([
|
|
10134
|
-
import("./tools-
|
|
10135
|
-
import("./editor-seams-
|
|
10136
|
-
import("./live-
|
|
10138
|
+
import("./tools-2HVINJ4B.js").then(async (m) => ({ ...m, registerBuiltinTools: (await import("./builtin-G67V4RJF.js")).registerBuiltinTools })),
|
|
10139
|
+
import("./editor-seams-KMPTES3K.js"),
|
|
10140
|
+
import("./live-LQWDISXX.js")
|
|
10137
10141
|
]);
|
|
10138
10142
|
registerBuiltinTools();
|
|
10139
10143
|
const args = JSON.stringify({ ...o.name ? { name: o.name } : {}, ...o.size ? { size: o.size } : {}, ...o.frame ? { frame: o.frame } : {}, script });
|
|
@@ -16,14 +16,14 @@ import {
|
|
|
16
16
|
reportOpenStage,
|
|
17
17
|
setCloudLink,
|
|
18
18
|
trackOpen
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-YHG7UWFJ.js";
|
|
20
20
|
import {
|
|
21
21
|
parseDeepLink,
|
|
22
22
|
withDeepLink
|
|
23
23
|
} from "./chunk-HFCMTDPQ.js";
|
|
24
24
|
import {
|
|
25
25
|
activeTeamWorkspaceId
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-SCGTY227.js";
|
|
27
27
|
import {
|
|
28
28
|
ApiError,
|
|
29
29
|
api,
|
|
@@ -31,7 +31,7 @@ import {
|
|
|
31
31
|
} from "./chunk-7OJZZPU4.js";
|
|
32
32
|
import {
|
|
33
33
|
attachPresence
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-GLSJFVGH.js";
|
|
35
35
|
import {
|
|
36
36
|
isPersistableDocument,
|
|
37
37
|
isUnsavedPlaceholder,
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
setCollabHistory,
|
|
43
43
|
storedDocument,
|
|
44
44
|
useEditorStore
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-F3PBS2Z5.js";
|
|
46
46
|
import {
|
|
47
47
|
currentHistoryGroup
|
|
48
48
|
} from "./chunk-DUH4J3CB.js";
|
|
@@ -20,14 +20,14 @@ import {
|
|
|
20
20
|
} from "./chunk-D6YVHRBL.js";
|
|
21
21
|
import {
|
|
22
22
|
notice
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-VIYUKTOT.js";
|
|
24
24
|
import {
|
|
25
25
|
agentContext
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-C2GTJPT5.js";
|
|
27
27
|
import {
|
|
28
28
|
collabSession,
|
|
29
29
|
syncStatus
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-FT64PUMZ.js";
|
|
31
31
|
import {
|
|
32
32
|
loadEntitlements
|
|
33
33
|
} from "./chunk-6TMH7HCQ.js";
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
} from "./chunk-7OJZZPU4.js";
|
|
37
37
|
import {
|
|
38
38
|
useEditorStore
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-F3PBS2Z5.js";
|
|
40
40
|
import {
|
|
41
41
|
getActiveRenderer
|
|
42
42
|
} from "./chunk-A2DCJZGE.js";
|
|
@@ -7,10 +7,10 @@ const __dirname = __popcraftDirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
builtinCommands,
|
|
9
9
|
registerBuiltinCommands
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-5ANWZ37I.js";
|
|
11
11
|
import {
|
|
12
12
|
toolView
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-C2GTJPT5.js";
|
|
14
14
|
import {
|
|
15
15
|
init_define_POPCRAFT_COMPONENT_IDS
|
|
16
16
|
} from "./chunk-63KP74KB.js";
|