@algorisys/yappydraw 0.8.290 → 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.
@@ -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-X2GEe1KV.js";
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-X2GEe1KV.js").then((r) => r.at).then((r) => r.sequenceAnimator.playAnimation(n.id, { id: `bhv-${Date.now()}`, type: "preset", name: t, trigger: "programmatic" }, () => {
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-X2GEe1KV.js").then((t) => t.au).then((t) => t.playSfx(n));
250
+ import("./index-BhrKqu0C.js").then((t) => t.au).then((t) => t.playSfx(n));
251
251
  },
252
252
  music: (n) => {
253
- import("./index-X2GEe1KV.js").then((t) => t.au).then((t) => n ? t.startMusic() : t.stopMusic());
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-X2GEe1KV.js").then((e) => e.au).then((e) => e.stopMusic()), h.clear(), w = [], x.length = 0, v.length = 0, g) {
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 x = k.x - r;
1709
- v += -x * c + w.srcSign * f(k.x) * l;
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-BiNflF1I.js");
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-Di-0WRPy.js"), { t: l } = await Promise.resolve().then(() => lQ), c = await i(
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
  [
@@ -38506,7 +38506,7 @@ const gk = (e, t) => {
38506
38506
  const w = Number(l.getAttribute("width")), v = Number(l.getAttribute("height"));
38507
38507
  u = [{ x: c - s, y: d - s, width: w + s * 2, height: v + s * 2, background: e ? zb() : null }];
38508
38508
  }
38509
- const { renderSvgPagesToPdf: f } = await import("./pdf-vector-CpQZPge5.js");
38509
+ const { renderSvgPagesToPdf: f } = await import("./pdf-vector-BBxb3gRO.js");
38510
38510
  let p;
38511
38511
  if (o.colorMode === "cmyk" || a) {
38512
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)]);
@@ -57055,6 +57055,11 @@ const Xce = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty(
57055
57055
  isSupportOpen: zce,
57056
57056
  openSupport: Hce
57057
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
+ ] },
57058
57063
  { version: "0.8.290", date: "2026-10-11", items: [
57059
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.'
57060
57065
  ] },
@@ -58082,7 +58087,7 @@ async function Vce() {
58082
58087
  window.location.reload();
58083
58088
  }
58084
58089
  }
58085
- const EO = "0.8.290", IO = {
58090
+ const EO = "0.8.291", IO = {
58086
58091
  version: EO
58087
58092
  };
58088
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>");
@@ -65321,7 +65326,7 @@ const ue = {
65321
65326
  },
65322
65327
  /** Execute a CRUD operation on a DS element with animation */
65323
65328
  async dsOperation(e, t, n) {
65324
- const { executeDsOperation: o } = await import("./ds-operations-Igf-Ezy1.js");
65329
+ const { executeDsOperation: o } = await import("./ds-operations-aFfgZej1.js");
65325
65330
  return o(e, t, n || {});
65326
65331
  },
65327
65332
  // --- Actions & Helpers ---
@@ -65723,7 +65728,8 @@ const ue = {
65723
65728
  * Live Turntable effect (Adobe Project Turntable) — rotate a vector path in pseudo-3D and
65724
65729
  * keep it fully editable. Non-path shapes are converted to a path first. Non-destructive.
65725
65730
  * Pass 2+ ids to spin them together as one shared rig (group turntable).
65726
- * @param tt `{ yaw (deg about vertical), pitch (deg tilt), depthModel ('flat'|'symmetry'),
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'),
65727
65733
  * depthScale (0..1.5 bulge), reveal (symmetry back-face), perspective (0=ortho..1) }`
65728
65734
  */
65729
65735
  turntable(e, t) {
@@ -65751,7 +65757,7 @@ const ue = {
65751
65757
  async reconstructTurntableAI(e, t) {
65752
65758
  const n = t ?? m.selection[0];
65753
65759
  if (!n) return { success: !1, error: "No element selected" };
65754
- const o = await import("./turntable-ai-Bt947DwF.js"), r = { yaw: e?.yaw, pitch: e?.pitch };
65760
+ const o = await import("./turntable-ai-cz89NMQ6.js"), r = { yaw: e?.yaw, pitch: e?.pitch };
65755
65761
  return e?.mode === "image" ? o.reconstructTurntableAIImage(n, r) : o.reconstructTurntableAI(n, r);
65756
65762
  },
65757
65763
  /** Appearance stack: add an extra fill/stroke over the base shape (both render styles). */
@@ -67206,7 +67212,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67206
67212
  },
67207
67213
  /** Start (or replay) the first-visit onboarding tour. */
67208
67214
  startTour() {
67209
- import("./onboarding-tour-BcnCkhEN.js").then((e) => e.startTour());
67215
+ import("./onboarding-tour-DpXkBcSr.js").then((e) => e.startTour());
67210
67216
  },
67211
67217
  /** Open the "What's new" popup (recent user-facing changes). */
67212
67218
  showWhatsNew() {
@@ -67382,11 +67388,11 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67382
67388
  /** Start the game (uses the stored script unless one is passed). The document
67383
67389
  * is snapshotted and fully restored on stop. Returns false on script errors. */
67384
67390
  async startGame(e) {
67385
- return (await import("./game-runtime-7MQ8T2uP.js")).startGame(e);
67391
+ return (await import("./game-runtime-CpvR1mdl.js")).startGame(e);
67386
67392
  },
67387
67393
  /** Stop a running game and restore the document. */
67388
67394
  async stopGame() {
67389
- (await import("./game-runtime-7MQ8T2uP.js")).stopGame();
67395
+ (await import("./game-runtime-CpvR1mdl.js")).stopGame();
67390
67396
  },
67391
67397
  /** True while a game is running. */
67392
67398
  isGameRunning() {
@@ -67456,7 +67462,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67456
67462
  },
67457
67463
  /** Compile the blocks and play the resulting game (Play button). */
67458
67464
  async playBehaviorGame() {
67459
- const [e, t] = await Promise.all([Promise.resolve().then(() => Uk), import("./game-runtime-7MQ8T2uP.js")]), n = e.effectiveGameScript(m.elements, m.sceneBehaviors ?? [], m.gameScript, m.gameVars ?? [], m.blueprints, m.gameAuthoringMode);
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);
67460
67466
  return n ? t.startGame(n) : !1;
67461
67467
  },
67462
67468
  // Version history (local IndexedDB snapshots)
@@ -67485,31 +67491,31 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67485
67491
  // "My drawings" gallery — local multi-document library (IndexedDB, offline-first).
67486
67492
  /** Save the LIVE editor into the gallery (updates the open entry, or creates one). */
67487
67493
  async saveToGallery(e) {
67488
- return (await import("./drawings-store-CqCMmZgs.js")).saveCurrentToGallery(e ? { name: e } : {});
67494
+ return (await import("./drawings-store-C2gQVOCO.js")).saveCurrentToGallery(e ? { name: e } : {});
67489
67495
  },
67490
67496
  /** Save the live editor as a NEW gallery drawing (never overwrites the open one). */
67491
67497
  async saveToGalleryAsNew(e) {
67492
- return (await import("./drawings-store-CqCMmZgs.js")).saveCurrentToGallery({ name: e, forceNew: !0 });
67498
+ return (await import("./drawings-store-C2gQVOCO.js")).saveCurrentToGallery({ name: e, forceNew: !0 });
67493
67499
  },
67494
67500
  /** List saved-drawing metadata (newest first, no bodies loaded). */
67495
67501
  async listDrawings() {
67496
- return (await import("./drawings-store-CqCMmZgs.js")).listDrawings();
67502
+ return (await import("./drawings-store-C2gQVOCO.js")).listDrawings();
67497
67503
  },
67498
67504
  /** Open a saved drawing into the editor by id. */
67499
67505
  async openDrawing(e) {
67500
- return (await import("./drawings-store-CqCMmZgs.js")).openDrawing(e);
67506
+ return (await import("./drawings-store-C2gQVOCO.js")).openDrawing(e);
67501
67507
  },
67502
67508
  /** Rename a saved drawing. */
67503
67509
  async renameDrawing(e, t) {
67504
- return (await import("./drawings-store-CqCMmZgs.js")).renameDrawing(e, t);
67510
+ return (await import("./drawings-store-C2gQVOCO.js")).renameDrawing(e, t);
67505
67511
  },
67506
67512
  /** Duplicate a saved drawing; returns the new entry's metadata. */
67507
67513
  async duplicateDrawing(e) {
67508
- return (await import("./drawings-store-CqCMmZgs.js")).duplicateDrawing(e);
67514
+ return (await import("./drawings-store-C2gQVOCO.js")).duplicateDrawing(e);
67509
67515
  },
67510
67516
  /** Delete a saved drawing by id. */
67511
67517
  async deleteDrawing(e) {
67512
- return (await import("./drawings-store-CqCMmZgs.js")).deleteDrawing(e);
67518
+ return (await import("./drawings-store-C2gQVOCO.js")).deleteDrawing(e);
67513
67519
  },
67514
67520
  /** Ask the browser to make local storage durable (dodges best-effort/ITP eviction). */
67515
67521
  async requestPersistentStorage() {
@@ -67594,7 +67600,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67594
67600
  * skipped when 'photo' is out of scope or `includePhotos:false`.
67595
67601
  */
67596
67602
  searchElements(e, t) {
67597
- return import("./search-p8BrLf2Z.js").then((n) => n.searchElements(e, t));
67603
+ return import("./search-B09o2eIz.js").then((n) => n.searchElements(e, t));
67598
67604
  },
67599
67605
  /**
67600
67606
  * Insert a hit returned by `searchElements` onto the canvas. Omit `at` to drop it
@@ -68741,45 +68747,45 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
68741
68747
  },
68742
68748
  /** Export the current scene as a self-contained HTML file (animated figures play in it). */
68743
68749
  async exportHtml(e = "animation") {
68744
- return (await import("./export-game-B2Af1Hbb.js")).exportSceneAsHtml(e);
68750
+ return (await import("./export-game-vrAl7xq7.js")).exportSceneAsHtml(e);
68745
68751
  },
68746
68752
  // AI assists (Canva-style; keys from AI Settings)
68747
68753
  /** Magic Write: transform text of the given (or selected) text elements. Modes: rewrite|shorten|expand|fix|custom. */
68748
68754
  async magicWrite(e = "rewrite", t, n) {
68749
- return (await import("./canva-ai-us059viy.js")).magicWrite(n ?? [...m.selection], e, t);
68755
+ return (await import("./canva-ai-BFOytREO.js")).magicWrite(n ?? [...m.selection], e, t);
68750
68756
  },
68751
68757
  /** Generate an image from a prompt (OpenAI) and insert it on the active page. Returns the element id. */
68752
68758
  async generateImage(e, t) {
68753
- return (await import("./canva-ai-us059viy.js")).generateImage(e, t);
68759
+ return (await import("./canva-ai-BFOytREO.js")).generateImage(e, t);
68754
68760
  },
68755
68761
  /** Remove the background of the selected (or given) image element via OpenAI image editing.
68756
68762
  * Original pixels are preserved by default (AI output used only as an alpha mask);
68757
68763
  * pass {preserveOriginal: false} to take the AI's regenerated image as-is. */
68758
68764
  async removeBackground(e, t) {
68759
- return (await import("./canva-ai-us059viy.js")).removeBackground(e, t);
68765
+ return (await import("./canva-ai-BFOytREO.js")).removeBackground(e, t);
68760
68766
  },
68761
68767
  /** Generate a full design document from a text brief (any LLM provider):
68762
68768
  * headline, subhead, bullets, CTA and palette laid out proportionally.
68763
68769
  * Pass a preset id or {width, height} (default 1080×1080). */
68764
68770
  async generateDesign(e, t) {
68765
- const n = await import("./design-generator-CbwK0vZf.js"), o = typeof t == "string" ? $p(t) : t;
68771
+ const n = await import("./design-generator-BGXMoviP.js"), o = typeof t == "string" ? $p(t) : t;
68766
68772
  return n.generateDesign(e, o ? { width: o.width, height: o.height } : void 0);
68767
68773
  },
68768
68774
  /** Magic Edit: repaint the selected (or given) image per an instruction, e.g.
68769
68775
  * "remove the person on the left" (OpenAI image edits). */
68770
68776
  async magicEditImage(e, t) {
68771
- return (await import("./canva-ai-us059viy.js")).magicEditImage(t, e);
68777
+ return (await import("./canva-ai-BFOytREO.js")).magicEditImage(t, e);
68772
68778
  },
68773
68779
  /** Replace Background: swap the background behind the subject of the selected
68774
68780
  * (or given) image for a described scene, keeping the foreground untouched
68775
68781
  * (OpenAI image edits). */
68776
68782
  async replaceBackground(e, t) {
68777
- return (await import("./canva-ai-us059viy.js")).replaceBackground(t, e);
68783
+ return (await import("./canva-ai-BFOytREO.js")).replaceBackground(t, e);
68778
68784
  },
68779
68785
  /** Magic Expand: outpaint the selected (or given) image — margins are fractions
68780
68786
  * of the source size (default 0.25 each side). The element grows to match. */
68781
68787
  async expandImage(e, t) {
68782
- return (await import("./canva-ai-us059viy.js")).expandImage(t, e);
68788
+ return (await import("./canva-ai-BFOytREO.js")).expandImage(t, e);
68783
68789
  },
68784
68790
  // Font pairings
68785
68791
  /** List curated heading/body font pairings. */
@@ -69752,7 +69758,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
69752
69758
  * @param options.style3D - Render in the 3D concept-diagram style (pastel palette, solidBlock/perspectiveBlock containers, isometric cubes). Ignored when rocketMode is true.
69753
69759
  */
69754
69760
  async generateDiagram(e, t) {
69755
- const { generateDiagram: n } = await import("./drawing-engine-DMreXXcv.js");
69761
+ const { generateDiagram: n } = await import("./drawing-engine-ChTNR20M.js");
69756
69762
  return n(e, t);
69757
69763
  },
69758
69764
  /**
@@ -69764,7 +69770,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
69764
69770
  * @param options.style3D - Render in the 3D concept-diagram style.
69765
69771
  */
69766
69772
  async generateDiagramFromSketch(e, t) {
69767
- const { generateDiagramFromSketch: n } = await import("./drawing-engine-DMreXXcv.js");
69773
+ const { generateDiagramFromSketch: n } = await import("./drawing-engine-ChTNR20M.js");
69768
69774
  return n(e, t);
69769
69775
  },
69770
69776
  /**
@@ -69781,7 +69787,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
69781
69787
  * @param options.mode - 'quick' (single LLM call, fast) or 'deep' (2-stage agentic, richer content)
69782
69788
  */
69783
69789
  async generatePresentation(e, t) {
69784
- const { generatePresentation: n } = await import("./slide-generator-BRfDfwHh.js");
69790
+ const { generatePresentation: n } = await import("./slide-generator-CyshVj2x.js");
69785
69791
  return n(e, { ...t, clearCanvas: !0 });
69786
69792
  },
69787
69793
  /**
@@ -69792,7 +69798,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
69792
69798
  * @param palette - Optional color palette name
69793
69799
  */
69794
69800
  async importMarkdownSlides(e, t) {
69795
- const { parseMarkdownToSlides: n } = await import("./markdown-to-slides-CxamCeQR.js"), { loadDocument: o } = await Promise.resolve().then(() => xj), r = n(e, t);
69801
+ const { parseMarkdownToSlides: n } = await import("./markdown-to-slides-CZ_4B6Pe.js"), { loadDocument: o } = await Promise.resolve().then(() => xj), r = n(e, t);
69796
69802
  return o(r), { success: !0, slideCount: r.slides?.length || 0 };
69797
69803
  },
69798
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-X2GEe1KV.js";
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-X2GEe1KV.js";
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 { s as d, a as o, O as f } from "./index-X2GEe1KV.js";
1
+ import { s as d, a as o, O as f } from "./index-BhrKqu0C.js";
2
2
  class p {
3
3
  /**
4
4
  * Morph the current canvas to match the target DisplayState
@@ -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-X2GEe1KV.js";
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",
@@ -1,4 +1,4 @@
1
- import { L as S, M as C, N as $ } from "./index-X2GEe1KV.js";
1
+ import { L as S, M as C, N as $ } from "./index-BhrKqu0C.js";
2
2
  import { p as E, i as P, a as D, c as T } from "./pdf-cmyk-CqVZV2FF.js";
3
3
  const b = (t, i) => {
4
4
  for (let n = t; n; n = n.parentElement) {