@algorisys/yappydraw 0.8.289 → 0.8.291
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/README.md +2 -2
- package/chunks/{canva-ai-B5VguMra.js → canva-ai-BFOytREO.js} +1 -1
- package/chunks/{choice-dialog-state-lpzKdXSc.js → choice-dialog-state-BxwyrXRG.js} +1 -1
- package/chunks/{design-generator-ANOKevLP.js → design-generator-BGXMoviP.js} +1 -1
- package/chunks/{drawing-engine-CUS_6nwR.js → drawing-engine-ChTNR20M.js} +1 -1
- package/chunks/{drawings-store-Dj7imJ-Z.js → drawings-store-C2gQVOCO.js} +1 -1
- package/chunks/{ds-operations-hYwK10EV.js → ds-operations-aFfgZej1.js} +1 -1
- package/chunks/{export-game-DeGWr37N.js → export-game-vrAl7xq7.js} +1 -1
- package/chunks/{game-runtime-zMG_fA3-.js → game-runtime-CpvR1mdl.js} +5 -5
- package/chunks/{index-DQHgbK8w.js → index-BhrKqu0C.js} +47 -34
- package/chunks/{lucide-solid-i8MMOk1I.js → lucide-solid-DU0uSW4D.js} +1 -1
- package/chunks/{markdown-to-slides-DX3nvj9x.js → markdown-to-slides-CZ_4B6Pe.js} +1 -1
- package/chunks/{morph-animator-dvI2RtRg.js → morph-animator-CD-EWxCR.js} +1 -1
- package/chunks/{onboarding-tour-DbRY3OD7.js → onboarding-tour-DpXkBcSr.js} +1 -1
- package/chunks/{pdf-vector-DLACVPOM.js → pdf-vector-BBxb3gRO.js} +1 -1
- package/chunks/{search-CDrjJdf8.js → search-B09o2eIz.js} +2 -2
- package/chunks/{slide-generator-CTShNLXT.js → slide-generator-CyshVj2x.js} +1 -1
- package/chunks/{turntable-ai-CT8rTwUO.js → turntable-ai-cz89NMQ6.js} +1 -1
- package/package.json +1 -1
- package/yappy.js +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { s as o, b as m, d as b, z as W, h as z, g as a, i as U, j as B } from "./index-
|
|
1
|
+
import { s as o, b as m, d as b, z as W, h as z, g as a, i as U, j as B } from "./index-BhrKqu0C.js";
|
|
2
2
|
const h = /* @__PURE__ */ new Set(), x = [], G = {
|
|
3
3
|
ArrowLeft: "left",
|
|
4
4
|
a: "left",
|
|
@@ -240,17 +240,17 @@ function Y() {
|
|
|
240
240
|
t && B(t.id);
|
|
241
241
|
},
|
|
242
242
|
playAnim: (n, t) => {
|
|
243
|
-
n?.alive && import("./index-
|
|
243
|
+
n?.alive && import("./index-BhrKqu0C.js").then((r) => r.at).then((r) => r.sequenceAnimator.playAnimation(n.id, { id: `bhv-${Date.now()}`, type: "preset", name: t, trigger: "programmatic" }, () => {
|
|
244
244
|
}));
|
|
245
245
|
},
|
|
246
246
|
goToPage: (n) => {
|
|
247
247
|
n >= 0 && n < o.slides.length && U(n);
|
|
248
248
|
},
|
|
249
249
|
sound: (n) => {
|
|
250
|
-
import("./index-
|
|
250
|
+
import("./index-BhrKqu0C.js").then((t) => t.au).then((t) => t.playSfx(n));
|
|
251
251
|
},
|
|
252
252
|
music: (n) => {
|
|
253
|
-
import("./index-
|
|
253
|
+
import("./index-BhrKqu0C.js").then((t) => t.au).then((t) => n ? t.startMusic() : t.stopMusic());
|
|
254
254
|
},
|
|
255
255
|
end: (n) => {
|
|
256
256
|
if (P(!0), n) {
|
|
@@ -316,7 +316,7 @@ ${i}`);
|
|
|
316
316
|
return y = requestAnimationFrame(n), !0;
|
|
317
317
|
}
|
|
318
318
|
function p() {
|
|
319
|
-
if (y !== null && (cancelAnimationFrame(y), y = null), window.removeEventListener("keydown", K, !0), window.removeEventListener("keyup", O, !0), import("./index-
|
|
319
|
+
if (y !== null && (cancelAnimationFrame(y), y = null), window.removeEventListener("keydown", K, !0), window.removeEventListener("keyup", O, !0), import("./index-BhrKqu0C.js").then((e) => e.au).then((e) => e.stopMusic()), h.clear(), w = [], x.length = 0, v.length = 0, g) {
|
|
320
320
|
const e = g;
|
|
321
321
|
g = null, b(() => {
|
|
322
322
|
a("elements", JSON.parse(e.elements)), a("selection", e.selection), a("activeSlideIndex", e.activeSlideIndex), a("appMode", e.appMode), a("gameActive", !1);
|
|
@@ -1693,7 +1693,7 @@ function RS(e) {
|
|
|
1693
1693
|
if (!t || t.baked) return null;
|
|
1694
1694
|
const n = Fn(e);
|
|
1695
1695
|
if (n.length === 0) return null;
|
|
1696
|
-
const o = t.depthModel === "symmetry" ? t.axisX ?? wB(n, e.width / 2) : t.axisX ?? e.width / 2, r = t.cx ?? o, a = t.cy ?? e.height / 2, s = (t.yaw ?? 0) * Jw, i = (t.axis === "x" ? t.yaw ?? 0 : t.pitch ?? 0) * Jw, l = Math.cos(s), c = Math.sin(s), d = Math.cos(i), h = Math.sin(i), u = t.perspective ?? 0, f = xB(n, t, o), p = !!t.reveal && t.depthModel === "symmetry", g = [];
|
|
1696
|
+
const o = t.depthModel === "symmetry" ? t.axisX ?? wB(n, e.width / 2) : t.axisX ?? e.width / 2, r = t.cx ?? o, a = t.cy ?? e.height / 2, s = (t.axis === "x" ? 0 : t.yaw ?? 0) * Jw, i = (t.axis === "x" ? t.yaw ?? 0 : t.pitch ?? 0) * Jw, l = Math.cos(s), c = Math.sin(s), d = Math.cos(i), h = Math.sin(i), u = t.perspective ?? 0, f = xB(n, t, o), p = !!t.reveal && t.depthModel === "symmetry", g = [];
|
|
1697
1697
|
for (const b of n)
|
|
1698
1698
|
p && g.push({ sub: b, sign: -1 }), g.push({ sub: b, sign: 1 });
|
|
1699
1699
|
const y = g.map((b) => ({
|
|
@@ -1705,8 +1705,8 @@ function RS(e) {
|
|
|
1705
1705
|
const b = (w) => {
|
|
1706
1706
|
let v = 0;
|
|
1707
1707
|
for (const k of w.srcAnchors) {
|
|
1708
|
-
const
|
|
1709
|
-
v += -
|
|
1708
|
+
const M = -(k.x - r) * c + w.srcSign * f(k.x) * l;
|
|
1709
|
+
v += (k.y - a) * h + M * d;
|
|
1710
1710
|
}
|
|
1711
1711
|
return v / Math.max(1, w.srcAnchors.length);
|
|
1712
1712
|
};
|
|
@@ -27447,7 +27447,7 @@ const FP = () => {
|
|
|
27447
27447
|
const n = m.states.find((o) => o.id === e);
|
|
27448
27448
|
if (n)
|
|
27449
27449
|
if (S("activeStateId", e), t) {
|
|
27450
|
-
const { MorphAnimator: o } = await import("./morph-animator-
|
|
27450
|
+
const { MorphAnimator: o } = await import("./morph-animator-CD-EWxCR.js");
|
|
27451
27451
|
o.morphTo(n);
|
|
27452
27452
|
} else
|
|
27453
27453
|
Ee(() => {
|
|
@@ -28378,7 +28378,7 @@ const WE = () => pl, zE = (e) => {
|
|
|
28378
28378
|
if (o.length >= m.layers.length)
|
|
28379
28379
|
return $("Cannot delete every layer.", "error"), !1;
|
|
28380
28380
|
if (t === void 0 && (s.length > 0 || a.length > 0)) {
|
|
28381
|
-
const { askChoice: i } = await import("./choice-dialog-state-
|
|
28381
|
+
const { askChoice: i } = await import("./choice-dialog-state-BxwyrXRG.js"), { t: l } = await Promise.resolve().then(() => lQ), c = await i(
|
|
28382
28382
|
l("layerDelete.title", { name: n.name }),
|
|
28383
28383
|
a.length > 0 ? l("layerDelete.bodyGroup", { layers: a.length, objects: s.length }) : l("layerDelete.bodyLayer", { objects: s.length }),
|
|
28384
28384
|
[
|
|
@@ -36255,6 +36255,10 @@ const h6 = {
|
|
|
36255
36255
|
"action-repeat": "Repeat (Radial / Grid)…",
|
|
36256
36256
|
"insert-mandala": "Mandala Generator…",
|
|
36257
36257
|
"insert-doodle": "Doodle Generator…",
|
|
36258
|
+
"insert-stroke-text": "Stroke Text: {{ face }}…",
|
|
36259
|
+
"insert-stroke-text-prompt": "Text to write as single-line (pen-plotter) strokes:",
|
|
36260
|
+
"insert-stroke-text-default": "Hello",
|
|
36261
|
+
"insert-stroke-text-failed": "Could not load the stroke font.",
|
|
36258
36262
|
"action-symmetry-toggle": "Toggle Symmetry",
|
|
36259
36263
|
"action-symmetry-vertical": "Symmetry: Toggle Vertical Axis",
|
|
36260
36264
|
"action-symmetry-horizontal": "Symmetry: Toggle Horizontal Axis",
|
|
@@ -38502,7 +38506,7 @@ const gk = (e, t) => {
|
|
|
38502
38506
|
const w = Number(l.getAttribute("width")), v = Number(l.getAttribute("height"));
|
|
38503
38507
|
u = [{ x: c - s, y: d - s, width: w + s * 2, height: v + s * 2, background: e ? zb() : null }];
|
|
38504
38508
|
}
|
|
38505
|
-
const { renderSvgPagesToPdf: f } = await import("./pdf-vector-
|
|
38509
|
+
const { renderSvgPagesToPdf: f } = await import("./pdf-vector-BBxb3gRO.js");
|
|
38506
38510
|
let p;
|
|
38507
38511
|
if (o.colorMode === "cmyk" || a) {
|
|
38508
38512
|
const [{ loadColorEngine: w }, { exactCmykFromSwatches: v, spotsFromSwatches: k }] = await Promise.all([import("./__vite-browser-external-BsdCVVos.js").then((x) => x.c), import("./pdf-cmyk-CqVZV2FF.js").then((x) => x.e)]);
|
|
@@ -57051,6 +57055,14 @@ const Xce = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty(
|
|
|
57051
57055
|
isSupportOpen: zce,
|
|
57052
57056
|
openSupport: Hce
|
|
57053
57057
|
}, Symbol.toStringTag, { value: "Module" })), jce = [
|
|
57058
|
+
{ version: "0.8.291", date: "2026-10-29", items: [
|
|
57059
|
+
"After using the Pan tool, the Pen, Rectangle and other tools show their own cursor again instead of the hand.",
|
|
57060
|
+
"Connectors that route round other shapes no longer disappear while you pan the diagram.",
|
|
57061
|
+
"Drawing a new arrow no longer moves an existing one. Dragging an arrow’s end onto empty canvas now cleanly detaches it from the shape it was on."
|
|
57062
|
+
] },
|
|
57063
|
+
{ version: "0.8.290", date: "2026-10-11", items: [
|
|
57064
|
+
'Single-line (pen-plotter) text from the Command Palette: press Ctrl/Cmd+K, type "Hershey", pick a face (Simplex, Duplex, Sans, Script or Gothic) and enter the words. They land centred and selected, one editable path per letter, ready for Draw In handwriting or an SVG export a plotter can follow.'
|
|
57065
|
+
] },
|
|
57054
57066
|
{ version: "0.8.289", date: "2026-10-11", items: [
|
|
57055
57067
|
"Connector labels sit on a straight run of an elbow, never on a bend, and labels of neighbouring connectors no longer pile up: the later one slides clear. Label Position (start / middle / end) now works.",
|
|
57056
57068
|
"Dragging an elbow’s segment or bend snaps it to other connectors’ runs, to shape edges and centre lines, and to the grid, with a guide line. Hold Shift to drag freely."
|
|
@@ -58075,7 +58087,7 @@ async function Vce() {
|
|
|
58075
58087
|
window.location.reload();
|
|
58076
58088
|
}
|
|
58077
58089
|
}
|
|
58078
|
-
const EO = "0.8.
|
|
58090
|
+
const EO = "0.8.291", IO = {
|
|
58079
58091
|
version: EO
|
|
58080
58092
|
};
|
|
58081
58093
|
var qce = /* @__PURE__ */ ze(`<div class=whatsnew-overlay><div class=whatsnew-modal role=dialog aria-modal=true aria-label="What's new"><div class=whatsnew-head><div class=whatsnew-title><span>What's new</span><span class=whatsnew-ver>v</span></div><button class=whatsnew-close aria-label=Close></button></div><div class=whatsnew-body></div><div class=whatsnew-foot><span class=whatsnew-foot-note>On the latest build? Reload to be sure.</span><button class=whatsnew-refresh title="Clear cache and reload the latest version"> Reload latest`), Kce = /* @__PURE__ */ ze("<div class=whatsnew-entry><div class=whatsnew-entry-head><span class=whatsnew-badge>v</span><span class=whatsnew-date></span></div><ul class=whatsnew-list>"), Qce = /* @__PURE__ */ ze("<li>");
|
|
@@ -65314,7 +65326,7 @@ const ue = {
|
|
|
65314
65326
|
},
|
|
65315
65327
|
/** Execute a CRUD operation on a DS element with animation */
|
|
65316
65328
|
async dsOperation(e, t, n) {
|
|
65317
|
-
const { executeDsOperation: o } = await import("./ds-operations-
|
|
65329
|
+
const { executeDsOperation: o } = await import("./ds-operations-aFfgZej1.js");
|
|
65318
65330
|
return o(e, t, n || {});
|
|
65319
65331
|
},
|
|
65320
65332
|
// --- Actions & Helpers ---
|
|
@@ -65716,7 +65728,8 @@ const ue = {
|
|
|
65716
65728
|
* Live Turntable effect (Adobe Project Turntable) — rotate a vector path in pseudo-3D and
|
|
65717
65729
|
* keep it fully editable. Non-path shapes are converted to a path first. Non-destructive.
|
|
65718
65730
|
* Pass 2+ ids to spin them together as one shared rig (group turntable).
|
|
65719
|
-
* @param tt `{
|
|
65731
|
+
* @param tt `{ axis ('y' default|'x'|'free'), yaw (deg; horizontal only for axis:'x'),
|
|
65732
|
+
* pitch (deg tilt; ignored for axis:'x'), depthModel ('flat'|'symmetry'),
|
|
65720
65733
|
* depthScale (0..1.5 bulge), reveal (symmetry back-face), perspective (0=ortho..1) }`
|
|
65721
65734
|
*/
|
|
65722
65735
|
turntable(e, t) {
|
|
@@ -65744,7 +65757,7 @@ const ue = {
|
|
|
65744
65757
|
async reconstructTurntableAI(e, t) {
|
|
65745
65758
|
const n = t ?? m.selection[0];
|
|
65746
65759
|
if (!n) return { success: !1, error: "No element selected" };
|
|
65747
|
-
const o = await import("./turntable-ai-
|
|
65760
|
+
const o = await import("./turntable-ai-cz89NMQ6.js"), r = { yaw: e?.yaw, pitch: e?.pitch };
|
|
65748
65761
|
return e?.mode === "image" ? o.reconstructTurntableAIImage(n, r) : o.reconstructTurntableAI(n, r);
|
|
65749
65762
|
},
|
|
65750
65763
|
/** Appearance stack: add an extra fill/stroke over the base shape (both render styles). */
|
|
@@ -67199,7 +67212,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
67199
67212
|
},
|
|
67200
67213
|
/** Start (or replay) the first-visit onboarding tour. */
|
|
67201
67214
|
startTour() {
|
|
67202
|
-
import("./onboarding-tour-
|
|
67215
|
+
import("./onboarding-tour-DpXkBcSr.js").then((e) => e.startTour());
|
|
67203
67216
|
},
|
|
67204
67217
|
/** Open the "What's new" popup (recent user-facing changes). */
|
|
67205
67218
|
showWhatsNew() {
|
|
@@ -67375,11 +67388,11 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
67375
67388
|
/** Start the game (uses the stored script unless one is passed). The document
|
|
67376
67389
|
* is snapshotted and fully restored on stop. Returns false on script errors. */
|
|
67377
67390
|
async startGame(e) {
|
|
67378
|
-
return (await import("./game-runtime-
|
|
67391
|
+
return (await import("./game-runtime-CpvR1mdl.js")).startGame(e);
|
|
67379
67392
|
},
|
|
67380
67393
|
/** Stop a running game and restore the document. */
|
|
67381
67394
|
async stopGame() {
|
|
67382
|
-
(await import("./game-runtime-
|
|
67395
|
+
(await import("./game-runtime-CpvR1mdl.js")).stopGame();
|
|
67383
67396
|
},
|
|
67384
67397
|
/** True while a game is running. */
|
|
67385
67398
|
isGameRunning() {
|
|
@@ -67449,7 +67462,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
67449
67462
|
},
|
|
67450
67463
|
/** Compile the blocks and play the resulting game (Play button). */
|
|
67451
67464
|
async playBehaviorGame() {
|
|
67452
|
-
const [e, t] = await Promise.all([Promise.resolve().then(() => Uk), import("./game-runtime-
|
|
67465
|
+
const [e, t] = await Promise.all([Promise.resolve().then(() => Uk), import("./game-runtime-CpvR1mdl.js")]), n = e.effectiveGameScript(m.elements, m.sceneBehaviors ?? [], m.gameScript, m.gameVars ?? [], m.blueprints, m.gameAuthoringMode);
|
|
67453
67466
|
return n ? t.startGame(n) : !1;
|
|
67454
67467
|
},
|
|
67455
67468
|
// Version history (local IndexedDB snapshots)
|
|
@@ -67478,31 +67491,31 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
67478
67491
|
// "My drawings" gallery — local multi-document library (IndexedDB, offline-first).
|
|
67479
67492
|
/** Save the LIVE editor into the gallery (updates the open entry, or creates one). */
|
|
67480
67493
|
async saveToGallery(e) {
|
|
67481
|
-
return (await import("./drawings-store-
|
|
67494
|
+
return (await import("./drawings-store-C2gQVOCO.js")).saveCurrentToGallery(e ? { name: e } : {});
|
|
67482
67495
|
},
|
|
67483
67496
|
/** Save the live editor as a NEW gallery drawing (never overwrites the open one). */
|
|
67484
67497
|
async saveToGalleryAsNew(e) {
|
|
67485
|
-
return (await import("./drawings-store-
|
|
67498
|
+
return (await import("./drawings-store-C2gQVOCO.js")).saveCurrentToGallery({ name: e, forceNew: !0 });
|
|
67486
67499
|
},
|
|
67487
67500
|
/** List saved-drawing metadata (newest first, no bodies loaded). */
|
|
67488
67501
|
async listDrawings() {
|
|
67489
|
-
return (await import("./drawings-store-
|
|
67502
|
+
return (await import("./drawings-store-C2gQVOCO.js")).listDrawings();
|
|
67490
67503
|
},
|
|
67491
67504
|
/** Open a saved drawing into the editor by id. */
|
|
67492
67505
|
async openDrawing(e) {
|
|
67493
|
-
return (await import("./drawings-store-
|
|
67506
|
+
return (await import("./drawings-store-C2gQVOCO.js")).openDrawing(e);
|
|
67494
67507
|
},
|
|
67495
67508
|
/** Rename a saved drawing. */
|
|
67496
67509
|
async renameDrawing(e, t) {
|
|
67497
|
-
return (await import("./drawings-store-
|
|
67510
|
+
return (await import("./drawings-store-C2gQVOCO.js")).renameDrawing(e, t);
|
|
67498
67511
|
},
|
|
67499
67512
|
/** Duplicate a saved drawing; returns the new entry's metadata. */
|
|
67500
67513
|
async duplicateDrawing(e) {
|
|
67501
|
-
return (await import("./drawings-store-
|
|
67514
|
+
return (await import("./drawings-store-C2gQVOCO.js")).duplicateDrawing(e);
|
|
67502
67515
|
},
|
|
67503
67516
|
/** Delete a saved drawing by id. */
|
|
67504
67517
|
async deleteDrawing(e) {
|
|
67505
|
-
return (await import("./drawings-store-
|
|
67518
|
+
return (await import("./drawings-store-C2gQVOCO.js")).deleteDrawing(e);
|
|
67506
67519
|
},
|
|
67507
67520
|
/** Ask the browser to make local storage durable (dodges best-effort/ITP eviction). */
|
|
67508
67521
|
async requestPersistentStorage() {
|
|
@@ -67587,7 +67600,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
67587
67600
|
* skipped when 'photo' is out of scope or `includePhotos:false`.
|
|
67588
67601
|
*/
|
|
67589
67602
|
searchElements(e, t) {
|
|
67590
|
-
return import("./search-
|
|
67603
|
+
return import("./search-B09o2eIz.js").then((n) => n.searchElements(e, t));
|
|
67591
67604
|
},
|
|
67592
67605
|
/**
|
|
67593
67606
|
* Insert a hit returned by `searchElements` onto the canvas. Omit `at` to drop it
|
|
@@ -68734,45 +68747,45 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
68734
68747
|
},
|
|
68735
68748
|
/** Export the current scene as a self-contained HTML file (animated figures play in it). */
|
|
68736
68749
|
async exportHtml(e = "animation") {
|
|
68737
|
-
return (await import("./export-game-
|
|
68750
|
+
return (await import("./export-game-vrAl7xq7.js")).exportSceneAsHtml(e);
|
|
68738
68751
|
},
|
|
68739
68752
|
// AI assists (Canva-style; keys from AI Settings)
|
|
68740
68753
|
/** Magic Write: transform text of the given (or selected) text elements. Modes: rewrite|shorten|expand|fix|custom. */
|
|
68741
68754
|
async magicWrite(e = "rewrite", t, n) {
|
|
68742
|
-
return (await import("./canva-ai-
|
|
68755
|
+
return (await import("./canva-ai-BFOytREO.js")).magicWrite(n ?? [...m.selection], e, t);
|
|
68743
68756
|
},
|
|
68744
68757
|
/** Generate an image from a prompt (OpenAI) and insert it on the active page. Returns the element id. */
|
|
68745
68758
|
async generateImage(e, t) {
|
|
68746
|
-
return (await import("./canva-ai-
|
|
68759
|
+
return (await import("./canva-ai-BFOytREO.js")).generateImage(e, t);
|
|
68747
68760
|
},
|
|
68748
68761
|
/** Remove the background of the selected (or given) image element via OpenAI image editing.
|
|
68749
68762
|
* Original pixels are preserved by default (AI output used only as an alpha mask);
|
|
68750
68763
|
* pass {preserveOriginal: false} to take the AI's regenerated image as-is. */
|
|
68751
68764
|
async removeBackground(e, t) {
|
|
68752
|
-
return (await import("./canva-ai-
|
|
68765
|
+
return (await import("./canva-ai-BFOytREO.js")).removeBackground(e, t);
|
|
68753
68766
|
},
|
|
68754
68767
|
/** Generate a full design document from a text brief (any LLM provider):
|
|
68755
68768
|
* headline, subhead, bullets, CTA and palette laid out proportionally.
|
|
68756
68769
|
* Pass a preset id or {width, height} (default 1080×1080). */
|
|
68757
68770
|
async generateDesign(e, t) {
|
|
68758
|
-
const n = await import("./design-generator-
|
|
68771
|
+
const n = await import("./design-generator-BGXMoviP.js"), o = typeof t == "string" ? $p(t) : t;
|
|
68759
68772
|
return n.generateDesign(e, o ? { width: o.width, height: o.height } : void 0);
|
|
68760
68773
|
},
|
|
68761
68774
|
/** Magic Edit: repaint the selected (or given) image per an instruction, e.g.
|
|
68762
68775
|
* "remove the person on the left" (OpenAI image edits). */
|
|
68763
68776
|
async magicEditImage(e, t) {
|
|
68764
|
-
return (await import("./canva-ai-
|
|
68777
|
+
return (await import("./canva-ai-BFOytREO.js")).magicEditImage(t, e);
|
|
68765
68778
|
},
|
|
68766
68779
|
/** Replace Background: swap the background behind the subject of the selected
|
|
68767
68780
|
* (or given) image for a described scene, keeping the foreground untouched
|
|
68768
68781
|
* (OpenAI image edits). */
|
|
68769
68782
|
async replaceBackground(e, t) {
|
|
68770
|
-
return (await import("./canva-ai-
|
|
68783
|
+
return (await import("./canva-ai-BFOytREO.js")).replaceBackground(t, e);
|
|
68771
68784
|
},
|
|
68772
68785
|
/** Magic Expand: outpaint the selected (or given) image — margins are fractions
|
|
68773
68786
|
* of the source size (default 0.25 each side). The element grows to match. */
|
|
68774
68787
|
async expandImage(e, t) {
|
|
68775
|
-
return (await import("./canva-ai-
|
|
68788
|
+
return (await import("./canva-ai-BFOytREO.js")).expandImage(t, e);
|
|
68776
68789
|
},
|
|
68777
68790
|
// Font pairings
|
|
68778
68791
|
/** List curated heading/body font pairings. */
|
|
@@ -69745,7 +69758,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
69745
69758
|
* @param options.style3D - Render in the 3D concept-diagram style (pastel palette, solidBlock/perspectiveBlock containers, isometric cubes). Ignored when rocketMode is true.
|
|
69746
69759
|
*/
|
|
69747
69760
|
async generateDiagram(e, t) {
|
|
69748
|
-
const { generateDiagram: n } = await import("./drawing-engine-
|
|
69761
|
+
const { generateDiagram: n } = await import("./drawing-engine-ChTNR20M.js");
|
|
69749
69762
|
return n(e, t);
|
|
69750
69763
|
},
|
|
69751
69764
|
/**
|
|
@@ -69757,7 +69770,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
69757
69770
|
* @param options.style3D - Render in the 3D concept-diagram style.
|
|
69758
69771
|
*/
|
|
69759
69772
|
async generateDiagramFromSketch(e, t) {
|
|
69760
|
-
const { generateDiagramFromSketch: n } = await import("./drawing-engine-
|
|
69773
|
+
const { generateDiagramFromSketch: n } = await import("./drawing-engine-ChTNR20M.js");
|
|
69761
69774
|
return n(e, t);
|
|
69762
69775
|
},
|
|
69763
69776
|
/**
|
|
@@ -69774,7 +69787,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
69774
69787
|
* @param options.mode - 'quick' (single LLM call, fast) or 'deep' (2-stage agentic, richer content)
|
|
69775
69788
|
*/
|
|
69776
69789
|
async generatePresentation(e, t) {
|
|
69777
|
-
const { generatePresentation: n } = await import("./slide-generator-
|
|
69790
|
+
const { generatePresentation: n } = await import("./slide-generator-CyshVj2x.js");
|
|
69778
69791
|
return n(e, { ...t, clearCanvas: !0 });
|
|
69779
69792
|
},
|
|
69780
69793
|
/**
|
|
@@ -69785,7 +69798,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
|
|
|
69785
69798
|
* @param palette - Optional color palette name
|
|
69786
69799
|
*/
|
|
69787
69800
|
async importMarkdownSlides(e, t) {
|
|
69788
|
-
const { parseMarkdownToSlides: n } = await import("./markdown-to-slides-
|
|
69801
|
+
const { parseMarkdownToSlides: n } = await import("./markdown-to-slides-CZ_4B6Pe.js"), { loadDocument: o } = await Promise.resolve().then(() => xj), r = n(e, t);
|
|
69789
69802
|
return o(r), { success: !0, slideCount: r.slides?.length || 0 };
|
|
69790
69803
|
},
|
|
69791
69804
|
// ─── Deploy to Rocket ──────────────────────────────────
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { U as e, af as o, ag as r, ah as d, ai as t, aj as i, ak as c, al as n, am as h } from "./index-
|
|
1
|
+
import { U as e, af as o, ag as r, ah as d, ai as t, aj as i, ak as c, al as n, am as h } from "./index-BhrKqu0C.js";
|
|
2
2
|
var s = [["path", {
|
|
3
3
|
d: "m14 12 4 4 4-4",
|
|
4
4
|
key: "buelq4"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as _, G as w, H as C, P as M, I, J as L, K as x } from "./index-
|
|
1
|
+
import { F as _, G as w, H as C, P as M, I, J as L, K as x } from "./index-BhrKqu0C.js";
|
|
2
2
|
function P(r, T) {
|
|
3
3
|
const o = M[T || "minimalist"] || M.minimalist, c = r.split(`
|
|
4
4
|
`), a = [];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Q as T, R as it, S as nt, T as st, U as x, s as V, V as h, W as A, X as S, Y as g, Z as v, _ as at, $ as lt, a0 as C } from "./index-
|
|
1
|
+
import { Q as T, R as it, S as nt, T as st, U as x, s as V, V as h, W as A, X as S, Y as g, Z as v, _ as at, $ as lt, a0 as C } from "./index-BhrKqu0C.js";
|
|
2
2
|
var ct = /* @__PURE__ */ C("<svg><rect rx=10 fill=black></svg>", !1, !0, !1), ut = /* @__PURE__ */ C("<div class=tour-spotlight-ring>"), dt = /* @__PURE__ */ C('<div class=tour-overlay role=dialog aria-modal=true aria-label="Product tour"><svg class=tour-mask width=100% height=100%><defs><mask id=tour-spotlight><rect width=100% height=100% fill=white></rect></mask></defs><rect width=100% height=100% fill=rgba(0,0,0,0.6) mask=url(#tour-spotlight)></rect></svg><div class=tour-tooltip><div class=tour-tooltip-head><span class=tour-step-count> of </span><button class=tour-skip>Skip tour</button></div><h3 class=tour-title></h3><p class=tour-content></p><div class=tour-nav><button class="tour-btn tour-btn-secondary">Back</button><button class="tour-btn tour-btn-primary"></button></div><div class=tour-dots>'), ht = /* @__PURE__ */ C("<button class=tour-dot>");
|
|
3
3
|
const Z = "yappy:tour:seen", L = [{
|
|
4
4
|
id: "welcome",
|