@algorisys/yappydraw 0.8.289 → 0.8.290

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-DQHgbK8w.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-X2GEe1KV.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-DQHgbK8w.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-X2GEe1KV.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-DQHgbK8w.js").then((t) => t.au).then((t) => t.playSfx(n));
250
+ import("./index-X2GEe1KV.js").then((t) => t.au).then((t) => t.playSfx(n));
251
251
  },
252
252
  music: (n) => {
253
- import("./index-DQHgbK8w.js").then((t) => t.au).then((t) => n ? t.startMusic() : t.stopMusic());
253
+ import("./index-X2GEe1KV.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-DQHgbK8w.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-X2GEe1KV.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);
@@ -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-dvI2RtRg.js");
27450
+ const { MorphAnimator: o } = await import("./morph-animator-BiNflF1I.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-lpzKdXSc.js"), { t: l } = await Promise.resolve().then(() => lQ), c = await i(
28381
+ const { askChoice: i } = await import("./choice-dialog-state-Di-0WRPy.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-DLACVPOM.js");
38509
+ const { renderSvgPagesToPdf: f } = await import("./pdf-vector-CpQZPge5.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,9 @@ 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.290", date: "2026-10-11", items: [
57059
+ '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
+ ] },
57054
57061
  { version: "0.8.289", date: "2026-10-11", items: [
57055
57062
  "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
57063
  "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 +58082,7 @@ async function Vce() {
58075
58082
  window.location.reload();
58076
58083
  }
58077
58084
  }
58078
- const EO = "0.8.289", IO = {
58085
+ const EO = "0.8.290", IO = {
58079
58086
  version: EO
58080
58087
  };
58081
58088
  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 +65321,7 @@ const ue = {
65314
65321
  },
65315
65322
  /** Execute a CRUD operation on a DS element with animation */
65316
65323
  async dsOperation(e, t, n) {
65317
- const { executeDsOperation: o } = await import("./ds-operations-hYwK10EV.js");
65324
+ const { executeDsOperation: o } = await import("./ds-operations-Igf-Ezy1.js");
65318
65325
  return o(e, t, n || {});
65319
65326
  },
65320
65327
  // --- Actions & Helpers ---
@@ -65744,7 +65751,7 @@ const ue = {
65744
65751
  async reconstructTurntableAI(e, t) {
65745
65752
  const n = t ?? m.selection[0];
65746
65753
  if (!n) return { success: !1, error: "No element selected" };
65747
- const o = await import("./turntable-ai-CT8rTwUO.js"), r = { yaw: e?.yaw, pitch: e?.pitch };
65754
+ const o = await import("./turntable-ai-Bt947DwF.js"), r = { yaw: e?.yaw, pitch: e?.pitch };
65748
65755
  return e?.mode === "image" ? o.reconstructTurntableAIImage(n, r) : o.reconstructTurntableAI(n, r);
65749
65756
  },
65750
65757
  /** Appearance stack: add an extra fill/stroke over the base shape (both render styles). */
@@ -67199,7 +67206,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67199
67206
  },
67200
67207
  /** Start (or replay) the first-visit onboarding tour. */
67201
67208
  startTour() {
67202
- import("./onboarding-tour-DbRY3OD7.js").then((e) => e.startTour());
67209
+ import("./onboarding-tour-BcnCkhEN.js").then((e) => e.startTour());
67203
67210
  },
67204
67211
  /** Open the "What's new" popup (recent user-facing changes). */
67205
67212
  showWhatsNew() {
@@ -67375,11 +67382,11 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67375
67382
  /** Start the game (uses the stored script unless one is passed). The document
67376
67383
  * is snapshotted and fully restored on stop. Returns false on script errors. */
67377
67384
  async startGame(e) {
67378
- return (await import("./game-runtime-zMG_fA3-.js")).startGame(e);
67385
+ return (await import("./game-runtime-7MQ8T2uP.js")).startGame(e);
67379
67386
  },
67380
67387
  /** Stop a running game and restore the document. */
67381
67388
  async stopGame() {
67382
- (await import("./game-runtime-zMG_fA3-.js")).stopGame();
67389
+ (await import("./game-runtime-7MQ8T2uP.js")).stopGame();
67383
67390
  },
67384
67391
  /** True while a game is running. */
67385
67392
  isGameRunning() {
@@ -67449,7 +67456,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67449
67456
  },
67450
67457
  /** Compile the blocks and play the resulting game (Play button). */
67451
67458
  async playBehaviorGame() {
67452
- const [e, t] = await Promise.all([Promise.resolve().then(() => Uk), import("./game-runtime-zMG_fA3-.js")]), n = e.effectiveGameScript(m.elements, m.sceneBehaviors ?? [], m.gameScript, m.gameVars ?? [], m.blueprints, m.gameAuthoringMode);
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);
67453
67460
  return n ? t.startGame(n) : !1;
67454
67461
  },
67455
67462
  // Version history (local IndexedDB snapshots)
@@ -67478,31 +67485,31 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67478
67485
  // "My drawings" gallery — local multi-document library (IndexedDB, offline-first).
67479
67486
  /** Save the LIVE editor into the gallery (updates the open entry, or creates one). */
67480
67487
  async saveToGallery(e) {
67481
- return (await import("./drawings-store-Dj7imJ-Z.js")).saveCurrentToGallery(e ? { name: e } : {});
67488
+ return (await import("./drawings-store-CqCMmZgs.js")).saveCurrentToGallery(e ? { name: e } : {});
67482
67489
  },
67483
67490
  /** Save the live editor as a NEW gallery drawing (never overwrites the open one). */
67484
67491
  async saveToGalleryAsNew(e) {
67485
- return (await import("./drawings-store-Dj7imJ-Z.js")).saveCurrentToGallery({ name: e, forceNew: !0 });
67492
+ return (await import("./drawings-store-CqCMmZgs.js")).saveCurrentToGallery({ name: e, forceNew: !0 });
67486
67493
  },
67487
67494
  /** List saved-drawing metadata (newest first, no bodies loaded). */
67488
67495
  async listDrawings() {
67489
- return (await import("./drawings-store-Dj7imJ-Z.js")).listDrawings();
67496
+ return (await import("./drawings-store-CqCMmZgs.js")).listDrawings();
67490
67497
  },
67491
67498
  /** Open a saved drawing into the editor by id. */
67492
67499
  async openDrawing(e) {
67493
- return (await import("./drawings-store-Dj7imJ-Z.js")).openDrawing(e);
67500
+ return (await import("./drawings-store-CqCMmZgs.js")).openDrawing(e);
67494
67501
  },
67495
67502
  /** Rename a saved drawing. */
67496
67503
  async renameDrawing(e, t) {
67497
- return (await import("./drawings-store-Dj7imJ-Z.js")).renameDrawing(e, t);
67504
+ return (await import("./drawings-store-CqCMmZgs.js")).renameDrawing(e, t);
67498
67505
  },
67499
67506
  /** Duplicate a saved drawing; returns the new entry's metadata. */
67500
67507
  async duplicateDrawing(e) {
67501
- return (await import("./drawings-store-Dj7imJ-Z.js")).duplicateDrawing(e);
67508
+ return (await import("./drawings-store-CqCMmZgs.js")).duplicateDrawing(e);
67502
67509
  },
67503
67510
  /** Delete a saved drawing by id. */
67504
67511
  async deleteDrawing(e) {
67505
- return (await import("./drawings-store-Dj7imJ-Z.js")).deleteDrawing(e);
67512
+ return (await import("./drawings-store-CqCMmZgs.js")).deleteDrawing(e);
67506
67513
  },
67507
67514
  /** Ask the browser to make local storage durable (dodges best-effort/ITP eviction). */
67508
67515
  async requestPersistentStorage() {
@@ -67587,7 +67594,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
67587
67594
  * skipped when 'photo' is out of scope or `includePhotos:false`.
67588
67595
  */
67589
67596
  searchElements(e, t) {
67590
- return import("./search-CDrjJdf8.js").then((n) => n.searchElements(e, t));
67597
+ return import("./search-p8BrLf2Z.js").then((n) => n.searchElements(e, t));
67591
67598
  },
67592
67599
  /**
67593
67600
  * Insert a hit returned by `searchElements` onto the canvas. Omit `at` to drop it
@@ -68734,45 +68741,45 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
68734
68741
  },
68735
68742
  /** Export the current scene as a self-contained HTML file (animated figures play in it). */
68736
68743
  async exportHtml(e = "animation") {
68737
- return (await import("./export-game-DeGWr37N.js")).exportSceneAsHtml(e);
68744
+ return (await import("./export-game-B2Af1Hbb.js")).exportSceneAsHtml(e);
68738
68745
  },
68739
68746
  // AI assists (Canva-style; keys from AI Settings)
68740
68747
  /** Magic Write: transform text of the given (or selected) text elements. Modes: rewrite|shorten|expand|fix|custom. */
68741
68748
  async magicWrite(e = "rewrite", t, n) {
68742
- return (await import("./canva-ai-B5VguMra.js")).magicWrite(n ?? [...m.selection], e, t);
68749
+ return (await import("./canva-ai-us059viy.js")).magicWrite(n ?? [...m.selection], e, t);
68743
68750
  },
68744
68751
  /** Generate an image from a prompt (OpenAI) and insert it on the active page. Returns the element id. */
68745
68752
  async generateImage(e, t) {
68746
- return (await import("./canva-ai-B5VguMra.js")).generateImage(e, t);
68753
+ return (await import("./canva-ai-us059viy.js")).generateImage(e, t);
68747
68754
  },
68748
68755
  /** Remove the background of the selected (or given) image element via OpenAI image editing.
68749
68756
  * Original pixels are preserved by default (AI output used only as an alpha mask);
68750
68757
  * pass {preserveOriginal: false} to take the AI's regenerated image as-is. */
68751
68758
  async removeBackground(e, t) {
68752
- return (await import("./canva-ai-B5VguMra.js")).removeBackground(e, t);
68759
+ return (await import("./canva-ai-us059viy.js")).removeBackground(e, t);
68753
68760
  },
68754
68761
  /** Generate a full design document from a text brief (any LLM provider):
68755
68762
  * headline, subhead, bullets, CTA and palette laid out proportionally.
68756
68763
  * Pass a preset id or {width, height} (default 1080×1080). */
68757
68764
  async generateDesign(e, t) {
68758
- const n = await import("./design-generator-ANOKevLP.js"), o = typeof t == "string" ? $p(t) : t;
68765
+ const n = await import("./design-generator-CbwK0vZf.js"), o = typeof t == "string" ? $p(t) : t;
68759
68766
  return n.generateDesign(e, o ? { width: o.width, height: o.height } : void 0);
68760
68767
  },
68761
68768
  /** Magic Edit: repaint the selected (or given) image per an instruction, e.g.
68762
68769
  * "remove the person on the left" (OpenAI image edits). */
68763
68770
  async magicEditImage(e, t) {
68764
- return (await import("./canva-ai-B5VguMra.js")).magicEditImage(t, e);
68771
+ return (await import("./canva-ai-us059viy.js")).magicEditImage(t, e);
68765
68772
  },
68766
68773
  /** Replace Background: swap the background behind the subject of the selected
68767
68774
  * (or given) image for a described scene, keeping the foreground untouched
68768
68775
  * (OpenAI image edits). */
68769
68776
  async replaceBackground(e, t) {
68770
- return (await import("./canva-ai-B5VguMra.js")).replaceBackground(t, e);
68777
+ return (await import("./canva-ai-us059viy.js")).replaceBackground(t, e);
68771
68778
  },
68772
68779
  /** Magic Expand: outpaint the selected (or given) image — margins are fractions
68773
68780
  * of the source size (default 0.25 each side). The element grows to match. */
68774
68781
  async expandImage(e, t) {
68775
- return (await import("./canva-ai-B5VguMra.js")).expandImage(t, e);
68782
+ return (await import("./canva-ai-us059viy.js")).expandImage(t, e);
68776
68783
  },
68777
68784
  // Font pairings
68778
68785
  /** List curated heading/body font pairings. */
@@ -69745,7 +69752,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
69745
69752
  * @param options.style3D - Render in the 3D concept-diagram style (pastel palette, solidBlock/perspectiveBlock containers, isometric cubes). Ignored when rocketMode is true.
69746
69753
  */
69747
69754
  async generateDiagram(e, t) {
69748
- const { generateDiagram: n } = await import("./drawing-engine-CUS_6nwR.js");
69755
+ const { generateDiagram: n } = await import("./drawing-engine-DMreXXcv.js");
69749
69756
  return n(e, t);
69750
69757
  },
69751
69758
  /**
@@ -69757,7 +69764,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
69757
69764
  * @param options.style3D - Render in the 3D concept-diagram style.
69758
69765
  */
69759
69766
  async generateDiagramFromSketch(e, t) {
69760
- const { generateDiagramFromSketch: n } = await import("./drawing-engine-CUS_6nwR.js");
69767
+ const { generateDiagramFromSketch: n } = await import("./drawing-engine-DMreXXcv.js");
69761
69768
  return n(e, t);
69762
69769
  },
69763
69770
  /**
@@ -69774,7 +69781,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
69774
69781
  * @param options.mode - 'quick' (single LLM call, fast) or 'deep' (2-stage agentic, richer content)
69775
69782
  */
69776
69783
  async generatePresentation(e, t) {
69777
- const { generatePresentation: n } = await import("./slide-generator-CTShNLXT.js");
69784
+ const { generatePresentation: n } = await import("./slide-generator-BRfDfwHh.js");
69778
69785
  return n(e, { ...t, clearCanvas: !0 });
69779
69786
  },
69780
69787
  /**
@@ -69785,7 +69792,7 @@ ${d.color.toUpperCase()} · R${g} G${y} B${b}`, v = this.createText(u, f + s +
69785
69792
  * @param palette - Optional color palette name
69786
69793
  */
69787
69794
  async importMarkdownSlides(e, t) {
69788
- const { parseMarkdownToSlides: n } = await import("./markdown-to-slides-DX3nvj9x.js"), { loadDocument: o } = await Promise.resolve().then(() => xj), r = n(e, t);
69795
+ const { parseMarkdownToSlides: n } = await import("./markdown-to-slides-CxamCeQR.js"), { loadDocument: o } = await Promise.resolve().then(() => xj), r = n(e, t);
69789
69796
  return o(r), { success: !0, slideCount: r.slides?.length || 0 };
69790
69797
  },
69791
69798
  // ─── 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-DQHgbK8w.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-X2GEe1KV.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-DQHgbK8w.js";
1
+ import { F as _, G as w, H as C, P as M, I, J as L, K as x } from "./index-X2GEe1KV.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-DQHgbK8w.js";
1
+ import { s as d, a as o, O as f } from "./index-X2GEe1KV.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-DQHgbK8w.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-X2GEe1KV.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-DQHgbK8w.js";
1
+ import { L as S, M as C, N as $ } from "./index-X2GEe1KV.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) {