sketchmark 1.3.5 → 1.3.7
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 +20 -18
- package/dist/animation/index.d.ts +11 -1
- package/dist/animation/index.d.ts.map +1 -1
- package/dist/index.cjs +200 -29
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +200 -29
- package/dist/index.js.map +1 -1
- package/dist/renderer/svg/index.d.ts.map +1 -1
- package/dist/sketchmark.iife.js +200 -29
- package/dist/ui/canvas.d.ts +1 -0
- package/dist/ui/canvas.d.ts.map +1 -1
- package/dist/ui/embed.d.ts +1 -0
- package/dist/ui/embed.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/svg/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/renderer/svg/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,UAAU,EAKX,MAAM,aAAa,CAAC;AA0TrB,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,UAAU,EACd,SAAS,EAAE,WAAW,GAAG,aAAa,EACtC,OAAO,GAAE,kBAAuB,GAC/B,aAAa,CAolBf;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAKtD"}
|
package/dist/sketchmark.iife.js
CHANGED
|
@@ -8281,6 +8281,36 @@ var AIDiagram = (function (exports) {
|
|
|
8281
8281
|
if (groupId)
|
|
8282
8282
|
el.dataset.parentGroup = groupId;
|
|
8283
8283
|
}
|
|
8284
|
+
function resolveEdgeEndpointKind(id, nm, tm, gm, cm) {
|
|
8285
|
+
if (nm.has(id))
|
|
8286
|
+
return "node";
|
|
8287
|
+
if (gm.has(id))
|
|
8288
|
+
return "group";
|
|
8289
|
+
if (tm.has(id))
|
|
8290
|
+
return "table";
|
|
8291
|
+
if (cm.has(id))
|
|
8292
|
+
return "chart";
|
|
8293
|
+
return null;
|
|
8294
|
+
}
|
|
8295
|
+
function collectEdgeGroupLineage(endpointId, endpointKind, parentGroups) {
|
|
8296
|
+
const lineage = [];
|
|
8297
|
+
let groupId = endpointKind === "group"
|
|
8298
|
+
? endpointId
|
|
8299
|
+
: parentGroups.get(`${endpointKind}:${endpointId}`);
|
|
8300
|
+
while (groupId) {
|
|
8301
|
+
lineage.push(groupId);
|
|
8302
|
+
groupId = parentGroups.get(`group:${groupId}`);
|
|
8303
|
+
}
|
|
8304
|
+
return lineage;
|
|
8305
|
+
}
|
|
8306
|
+
function resolveEdgeParentGroupId(fromId, toId, nm, tm, gm, cm, parentGroups) {
|
|
8307
|
+
const fromKind = resolveEdgeEndpointKind(fromId, nm, tm, gm, cm);
|
|
8308
|
+
const toKind = resolveEdgeEndpointKind(toId, nm, tm, gm, cm);
|
|
8309
|
+
if (!fromKind || !toKind)
|
|
8310
|
+
return undefined;
|
|
8311
|
+
const toLineage = new Set(collectEdgeGroupLineage(toId, toKind, parentGroups));
|
|
8312
|
+
return collectEdgeGroupLineage(fromId, fromKind, parentGroups).find((groupId) => toLineage.has(groupId));
|
|
8313
|
+
}
|
|
8284
8314
|
// ── Node shapes ───────────────────────────────────────────────────────────
|
|
8285
8315
|
function renderShape$1(rc, n, palette) {
|
|
8286
8316
|
const s = n.style ?? {};
|
|
@@ -8438,6 +8468,7 @@ var AIDiagram = (function (exports) {
|
|
|
8438
8468
|
const [x1, y1] = getConnPoint(src, dstCX, dstCY, e.fromAnchor);
|
|
8439
8469
|
const [x2, y2] = getConnPoint(dst, srcCX, srcCY, e.toAnchor);
|
|
8440
8470
|
const eg = mkGroup(`edge-${e.from}-${e.to}`, "eg");
|
|
8471
|
+
setParentGroupData(eg, resolveEdgeParentGroupId(e.from, e.to, nm, tm, gmMap, cm, parentGroups));
|
|
8441
8472
|
if (e.style?.opacity != null)
|
|
8442
8473
|
eg.setAttribute("opacity", String(e.style.opacity));
|
|
8443
8474
|
const len = Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2) || 1;
|
|
@@ -9484,7 +9515,7 @@ var AIDiagram = (function (exports) {
|
|
|
9484
9515
|
const getNoteEl = (svg, id) => getEl(svg, `note-${id}`);
|
|
9485
9516
|
const getChartEl = (svg, id) => getEl(svg, `chart-${id}`);
|
|
9486
9517
|
const getMarkdownEl = (svg, id) => getEl(svg, `markdown-${id}`);
|
|
9487
|
-
const POSITIONABLE_SELECTOR = ".ng, .gg, .tg, .ntg, .cg, .mdg";
|
|
9518
|
+
const POSITIONABLE_SELECTOR = ".ng, .gg, .tg, .ntg, .cg, .eg, .mdg";
|
|
9488
9519
|
function resolveNonEdgeDrawEl(svg, target) {
|
|
9489
9520
|
return (getGroupEl(svg, target) ??
|
|
9490
9521
|
getTableEl(svg, target) ??
|
|
@@ -9992,8 +10023,12 @@ var AIDiagram = (function (exports) {
|
|
|
9992
10023
|
this._rc = _rc;
|
|
9993
10024
|
this._config = _config;
|
|
9994
10025
|
this._step = -1;
|
|
10026
|
+
this._isPlaying = false;
|
|
10027
|
+
this._playRunId = 0;
|
|
9995
10028
|
this._pendingStepTimers = new Set();
|
|
9996
10029
|
this._pendingNarrationTimers = new Set();
|
|
10030
|
+
this._playbackDelayTimerId = null;
|
|
10031
|
+
this._resolvePlaybackDelay = null;
|
|
9997
10032
|
this._transforms = new Map();
|
|
9998
10033
|
this._listeners = [];
|
|
9999
10034
|
// ── Narration caption ──
|
|
@@ -10009,6 +10044,7 @@ var AIDiagram = (function (exports) {
|
|
|
10009
10044
|
// ── TTS ──
|
|
10010
10045
|
this._tts = false;
|
|
10011
10046
|
this._speechDone = null;
|
|
10047
|
+
this._resolveSpeechDone = null;
|
|
10012
10048
|
this.drawTargetEdges = getDrawTargetEdgeIds(steps);
|
|
10013
10049
|
this.drawTargetNodes = getDrawTargetNodeIds(steps);
|
|
10014
10050
|
// Groups: non-edge draw steps whose target has a #group-{id} element in the SVG.
|
|
@@ -10073,8 +10109,16 @@ var AIDiagram = (function (exports) {
|
|
|
10073
10109
|
_buildDrawStepIndex() {
|
|
10074
10110
|
const drawStepIndexByElementId = new Map();
|
|
10075
10111
|
forEachPlaybackStep(this.steps, (step, stepIndex) => {
|
|
10076
|
-
if (step.action !== "draw"
|
|
10112
|
+
if (step.action !== "draw")
|
|
10113
|
+
return;
|
|
10114
|
+
const edge = parseEdgeTarget(step.target);
|
|
10115
|
+
if (edge) {
|
|
10116
|
+
const edgeEl = getEdgeEl(this.svg, edge.from, edge.to);
|
|
10117
|
+
if (edgeEl && !drawStepIndexByElementId.has(edgeEl.id)) {
|
|
10118
|
+
drawStepIndexByElementId.set(edgeEl.id, stepIndex);
|
|
10119
|
+
}
|
|
10077
10120
|
return;
|
|
10121
|
+
}
|
|
10078
10122
|
const el = resolveNonEdgeDrawEl(this.svg, step.target);
|
|
10079
10123
|
if (el && !drawStepIndexByElementId.has(el.id)) {
|
|
10080
10124
|
drawStepIndexByElementId.set(el.id, stepIndex);
|
|
@@ -10232,6 +10276,9 @@ var AIDiagram = (function (exports) {
|
|
|
10232
10276
|
get atEnd() {
|
|
10233
10277
|
return this._step === this.steps.length - 1;
|
|
10234
10278
|
}
|
|
10279
|
+
get isPlaying() {
|
|
10280
|
+
return this._isPlaying;
|
|
10281
|
+
}
|
|
10235
10282
|
on(listener) {
|
|
10236
10283
|
this._listeners.push(listener);
|
|
10237
10284
|
return () => {
|
|
@@ -10249,12 +10296,14 @@ var AIDiagram = (function (exports) {
|
|
|
10249
10296
|
l(e);
|
|
10250
10297
|
}
|
|
10251
10298
|
reset() {
|
|
10299
|
+
this.stop();
|
|
10252
10300
|
this._step = -1;
|
|
10253
10301
|
this._clearAll();
|
|
10254
10302
|
this.emit("animation-reset");
|
|
10255
10303
|
}
|
|
10256
10304
|
/** Remove caption and annotation layer from the DOM */
|
|
10257
10305
|
destroy() {
|
|
10306
|
+
this.stop();
|
|
10258
10307
|
this._clearAll();
|
|
10259
10308
|
this._captionEl?.remove();
|
|
10260
10309
|
this._captionEl = null;
|
|
@@ -10265,16 +10314,11 @@ var AIDiagram = (function (exports) {
|
|
|
10265
10314
|
this._pointerEl = null;
|
|
10266
10315
|
}
|
|
10267
10316
|
next() {
|
|
10268
|
-
|
|
10269
|
-
|
|
10270
|
-
this._step++;
|
|
10271
|
-
this._applyStep(this._step, false);
|
|
10272
|
-
this.emit("step-change");
|
|
10273
|
-
if (!this.canNext)
|
|
10274
|
-
this.emit("animation-end");
|
|
10275
|
-
return true;
|
|
10317
|
+
this.stop();
|
|
10318
|
+
return this._advanceNext();
|
|
10276
10319
|
}
|
|
10277
10320
|
prev() {
|
|
10321
|
+
this.stop();
|
|
10278
10322
|
if (!this.canPrev)
|
|
10279
10323
|
return false;
|
|
10280
10324
|
this._step--;
|
|
@@ -10285,18 +10329,33 @@ var AIDiagram = (function (exports) {
|
|
|
10285
10329
|
return true;
|
|
10286
10330
|
}
|
|
10287
10331
|
async play(msPerStep = 900) {
|
|
10332
|
+
if (this._isPlaying || !this.canNext)
|
|
10333
|
+
return;
|
|
10334
|
+
const runId = ++this._playRunId;
|
|
10335
|
+
this._isPlaying = true;
|
|
10288
10336
|
this.emit("animation-start");
|
|
10289
|
-
|
|
10290
|
-
|
|
10291
|
-
|
|
10292
|
-
|
|
10293
|
-
|
|
10294
|
-
|
|
10295
|
-
|
|
10296
|
-
|
|
10337
|
+
try {
|
|
10338
|
+
while (this.canNext && this._playRunId === runId) {
|
|
10339
|
+
const nextStep = this.steps[this._step + 1];
|
|
10340
|
+
if (!this._advanceNext())
|
|
10341
|
+
break;
|
|
10342
|
+
if (this._playRunId !== runId)
|
|
10343
|
+
break;
|
|
10344
|
+
await Promise.all([
|
|
10345
|
+
this._waitForPlaybackDelay(this._playbackWaitMs(nextStep, msPerStep)),
|
|
10346
|
+
this._speechDone ?? Promise.resolve(),
|
|
10347
|
+
]);
|
|
10348
|
+
}
|
|
10349
|
+
}
|
|
10350
|
+
finally {
|
|
10351
|
+
if (this._playRunId === runId) {
|
|
10352
|
+
this._isPlaying = false;
|
|
10353
|
+
this._cancelPlaybackDelay();
|
|
10354
|
+
}
|
|
10297
10355
|
}
|
|
10298
10356
|
}
|
|
10299
10357
|
goTo(index) {
|
|
10358
|
+
this.stop();
|
|
10300
10359
|
index = Math.max(-1, Math.min(this.steps.length - 1, index));
|
|
10301
10360
|
if (index === this._step)
|
|
10302
10361
|
return;
|
|
@@ -10310,6 +10369,30 @@ var AIDiagram = (function (exports) {
|
|
|
10310
10369
|
}
|
|
10311
10370
|
this.emit("step-change");
|
|
10312
10371
|
}
|
|
10372
|
+
stop() {
|
|
10373
|
+
if (!this._isPlaying && !this._resolvePlaybackDelay) {
|
|
10374
|
+
this._clearPendingStepTimers();
|
|
10375
|
+
this._cancelNarrationTyping();
|
|
10376
|
+
this._cancelSpeech();
|
|
10377
|
+
return;
|
|
10378
|
+
}
|
|
10379
|
+
this._isPlaying = false;
|
|
10380
|
+
this._playRunId += 1;
|
|
10381
|
+
this._cancelPlaybackDelay();
|
|
10382
|
+
this._clearPendingStepTimers();
|
|
10383
|
+
this._cancelNarrationTyping();
|
|
10384
|
+
this._cancelSpeech();
|
|
10385
|
+
}
|
|
10386
|
+
_advanceNext() {
|
|
10387
|
+
if (!this.canNext)
|
|
10388
|
+
return false;
|
|
10389
|
+
this._step++;
|
|
10390
|
+
this._applyStep(this._step, false);
|
|
10391
|
+
this.emit("step-change");
|
|
10392
|
+
if (!this.canNext)
|
|
10393
|
+
this.emit("animation-end");
|
|
10394
|
+
return true;
|
|
10395
|
+
}
|
|
10313
10396
|
_clearTimerBucket(bucket) {
|
|
10314
10397
|
bucket.forEach((id) => window.clearTimeout(id));
|
|
10315
10398
|
bucket.clear();
|
|
@@ -10335,6 +10418,34 @@ var AIDiagram = (function (exports) {
|
|
|
10335
10418
|
_scheduleStep(fn, delayMs) {
|
|
10336
10419
|
this._scheduleTimer(fn, delayMs, this._pendingStepTimers);
|
|
10337
10420
|
}
|
|
10421
|
+
_waitForPlaybackDelay(delayMs) {
|
|
10422
|
+
this._cancelPlaybackDelay();
|
|
10423
|
+
return new Promise((resolve) => {
|
|
10424
|
+
let settled = false;
|
|
10425
|
+
const finish = () => {
|
|
10426
|
+
if (settled)
|
|
10427
|
+
return;
|
|
10428
|
+
settled = true;
|
|
10429
|
+
if (this._playbackDelayTimerId !== null) {
|
|
10430
|
+
window.clearTimeout(this._playbackDelayTimerId);
|
|
10431
|
+
this._playbackDelayTimerId = null;
|
|
10432
|
+
}
|
|
10433
|
+
if (this._resolvePlaybackDelay === finish) {
|
|
10434
|
+
this._resolvePlaybackDelay = null;
|
|
10435
|
+
}
|
|
10436
|
+
resolve();
|
|
10437
|
+
};
|
|
10438
|
+
this._resolvePlaybackDelay = finish;
|
|
10439
|
+
if (delayMs <= 0) {
|
|
10440
|
+
finish();
|
|
10441
|
+
return;
|
|
10442
|
+
}
|
|
10443
|
+
this._playbackDelayTimerId = window.setTimeout(finish, delayMs);
|
|
10444
|
+
});
|
|
10445
|
+
}
|
|
10446
|
+
_cancelPlaybackDelay() {
|
|
10447
|
+
this._resolvePlaybackDelay?.();
|
|
10448
|
+
}
|
|
10338
10449
|
_stepWaitMs(step, fallbackMs) {
|
|
10339
10450
|
const delay = Math.max(0, step.delay ?? 0);
|
|
10340
10451
|
const duration = Math.max(0, step.duration ?? 0);
|
|
@@ -10376,6 +10487,7 @@ var AIDiagram = (function (exports) {
|
|
|
10376
10487
|
return this._stepWaitMs(step, fallbackMs);
|
|
10377
10488
|
}
|
|
10378
10489
|
_clearAll() {
|
|
10490
|
+
this._cancelPlaybackDelay();
|
|
10379
10491
|
this._clearPendingStepTimers();
|
|
10380
10492
|
this._cancelNarrationTyping();
|
|
10381
10493
|
this._cancelSpeech();
|
|
@@ -10706,6 +10818,7 @@ var AIDiagram = (function (exports) {
|
|
|
10706
10818
|
const el = getEdgeEl(this.svg, edge.from, edge.to);
|
|
10707
10819
|
if (!el)
|
|
10708
10820
|
return;
|
|
10821
|
+
showDrawEl(el);
|
|
10709
10822
|
if (silent) {
|
|
10710
10823
|
revealEdgeInstant(el);
|
|
10711
10824
|
requestAnimationFrame(() => requestAnimationFrame(() => {
|
|
@@ -10987,16 +11100,30 @@ var AIDiagram = (function (exports) {
|
|
|
10987
11100
|
utter.rate = 0.95;
|
|
10988
11101
|
utter.pitch = 1;
|
|
10989
11102
|
utter.lang = "en-US";
|
|
10990
|
-
// Track when speech actually finishes
|
|
11103
|
+
// Track when speech actually finishes so play() can block until the utterance ends.
|
|
10991
11104
|
this._speechDone = new Promise((resolve) => {
|
|
10992
|
-
|
|
10993
|
-
|
|
11105
|
+
let settled = false;
|
|
11106
|
+
const finish = () => {
|
|
11107
|
+
if (settled)
|
|
11108
|
+
return;
|
|
11109
|
+
settled = true;
|
|
11110
|
+
if (this._resolveSpeechDone === finish) {
|
|
11111
|
+
this._resolveSpeechDone = null;
|
|
11112
|
+
this._speechDone = null;
|
|
11113
|
+
}
|
|
11114
|
+
resolve();
|
|
11115
|
+
};
|
|
11116
|
+
this._resolveSpeechDone = finish;
|
|
11117
|
+
utter.onend = finish;
|
|
11118
|
+
utter.onerror = finish;
|
|
10994
11119
|
});
|
|
10995
11120
|
speechSynthesis.speak(utter);
|
|
10996
11121
|
}
|
|
10997
11122
|
_cancelSpeech() {
|
|
10998
11123
|
if (typeof speechSynthesis !== "undefined")
|
|
10999
11124
|
speechSynthesis.cancel();
|
|
11125
|
+
this._resolveSpeechDone?.();
|
|
11126
|
+
this._resolveSpeechDone = null;
|
|
11000
11127
|
this._speechDone = null;
|
|
11001
11128
|
}
|
|
11002
11129
|
/** Pre-warm the speech engine with a silent utterance to eliminate cold-start delay */
|
|
@@ -11305,11 +11432,12 @@ var AIDiagram = (function (exports) {
|
|
|
11305
11432
|
.cg.faded, .eg.faded, .mdg.faded { opacity: 0.22; }
|
|
11306
11433
|
|
|
11307
11434
|
.ng.hidden { opacity: 0; pointer-events: none; }
|
|
11308
|
-
.gg.gg-hidden { opacity: 0; }
|
|
11309
|
-
.tg.gg-hidden { opacity: 0; }
|
|
11310
|
-
.ntg.gg-hidden { opacity: 0; }
|
|
11311
|
-
.cg.gg-hidden { opacity: 0; }
|
|
11312
|
-
.
|
|
11435
|
+
.gg.gg-hidden { opacity: 0; }
|
|
11436
|
+
.tg.gg-hidden { opacity: 0; }
|
|
11437
|
+
.ntg.gg-hidden { opacity: 0; }
|
|
11438
|
+
.cg.gg-hidden { opacity: 0; }
|
|
11439
|
+
.eg.gg-hidden { opacity: 0; }
|
|
11440
|
+
.mdg.gg-hidden { opacity: 0; }
|
|
11313
11441
|
|
|
11314
11442
|
/* narration caption */
|
|
11315
11443
|
.skm-caption { pointer-events: none; user-select: none; }
|
|
@@ -11805,7 +11933,13 @@ var AIDiagram = (function (exports) {
|
|
|
11805
11933
|
this.resetButton.addEventListener("click", () => this.resetAnimation());
|
|
11806
11934
|
this.prevButton.addEventListener("click", () => this.prevStep());
|
|
11807
11935
|
this.nextButton.addEventListener("click", () => this.nextStep());
|
|
11808
|
-
this.playButton.addEventListener("click", () =>
|
|
11936
|
+
this.playButton.addEventListener("click", () => {
|
|
11937
|
+
if (this.playInFlight) {
|
|
11938
|
+
this.stopPlayback();
|
|
11939
|
+
return;
|
|
11940
|
+
}
|
|
11941
|
+
void this.play();
|
|
11942
|
+
});
|
|
11809
11943
|
this.captionButton.addEventListener("click", () => this.setCaptionVisible(!this.showCaption));
|
|
11810
11944
|
this.ttsButton.addEventListener("click", () => this.setTtsEnabled(!this.getTtsEnabled()));
|
|
11811
11945
|
this.viewport.addEventListener("pointerdown", this.onPointerDown);
|
|
@@ -11869,6 +12003,7 @@ var AIDiagram = (function (exports) {
|
|
|
11869
12003
|
this.dsl = normalizeNewlines(nextDsl);
|
|
11870
12004
|
this.clearError();
|
|
11871
12005
|
this.mirroredEditor?.clearError();
|
|
12006
|
+
this.playInFlight = false;
|
|
11872
12007
|
this.animUnsub?.();
|
|
11873
12008
|
this.animUnsub = null;
|
|
11874
12009
|
this.instance?.anim?.destroy();
|
|
@@ -11939,9 +12074,16 @@ var AIDiagram = (function (exports) {
|
|
|
11939
12074
|
this.syncAnimationUi();
|
|
11940
12075
|
}
|
|
11941
12076
|
}
|
|
12077
|
+
stopPlayback() {
|
|
12078
|
+
this.playInFlight = false;
|
|
12079
|
+
if (this.renderer === "svg")
|
|
12080
|
+
this.instance?.anim.stop();
|
|
12081
|
+
this.syncAnimationUi();
|
|
12082
|
+
}
|
|
11942
12083
|
nextStep() {
|
|
11943
12084
|
if (!this.instance || this.renderer !== "svg")
|
|
11944
12085
|
return;
|
|
12086
|
+
this.playInFlight = false;
|
|
11945
12087
|
this.instance.anim.next();
|
|
11946
12088
|
this.syncAnimationUi();
|
|
11947
12089
|
this.focusCurrentStep();
|
|
@@ -11949,6 +12091,7 @@ var AIDiagram = (function (exports) {
|
|
|
11949
12091
|
prevStep() {
|
|
11950
12092
|
if (!this.instance || this.renderer !== "svg")
|
|
11951
12093
|
return;
|
|
12094
|
+
this.playInFlight = false;
|
|
11952
12095
|
this.instance.anim.prev();
|
|
11953
12096
|
this.syncAnimationUi();
|
|
11954
12097
|
this.focusCurrentStep();
|
|
@@ -11956,6 +12099,7 @@ var AIDiagram = (function (exports) {
|
|
|
11956
12099
|
resetAnimation() {
|
|
11957
12100
|
if (!this.instance || this.renderer !== "svg")
|
|
11958
12101
|
return;
|
|
12102
|
+
this.playInFlight = false;
|
|
11959
12103
|
this.instance.anim.reset();
|
|
11960
12104
|
this.syncAnimationUi();
|
|
11961
12105
|
}
|
|
@@ -11984,6 +12128,7 @@ var AIDiagram = (function (exports) {
|
|
|
11984
12128
|
this.render();
|
|
11985
12129
|
}
|
|
11986
12130
|
destroy() {
|
|
12131
|
+
this.playInFlight = false;
|
|
11987
12132
|
this.editorCleanup?.();
|
|
11988
12133
|
this.animUnsub?.();
|
|
11989
12134
|
this.instance?.anim?.destroy();
|
|
@@ -12058,6 +12203,9 @@ var AIDiagram = (function (exports) {
|
|
|
12058
12203
|
this.prevButton.disabled = true;
|
|
12059
12204
|
this.nextButton.disabled = true;
|
|
12060
12205
|
this.resetButton.disabled = true;
|
|
12206
|
+
this.playButton.textContent = "Play";
|
|
12207
|
+
this.playButton.classList.remove("is-active");
|
|
12208
|
+
this.playButton.setAttribute("aria-pressed", "false");
|
|
12061
12209
|
this.playButton.disabled = true;
|
|
12062
12210
|
this.syncToggleUi();
|
|
12063
12211
|
return;
|
|
@@ -12067,7 +12215,10 @@ var AIDiagram = (function (exports) {
|
|
|
12067
12215
|
this.prevButton.disabled = !anim.canPrev;
|
|
12068
12216
|
this.nextButton.disabled = !anim.canNext;
|
|
12069
12217
|
this.resetButton.disabled = false;
|
|
12070
|
-
this.playButton.
|
|
12218
|
+
this.playButton.textContent = this.playInFlight ? "Stop" : "Play";
|
|
12219
|
+
this.playButton.classList.toggle("is-active", this.playInFlight);
|
|
12220
|
+
this.playButton.setAttribute("aria-pressed", this.playInFlight ? "true" : "false");
|
|
12221
|
+
this.playButton.disabled = this.playInFlight ? false : !anim.canNext;
|
|
12071
12222
|
this.syncToggleUi();
|
|
12072
12223
|
}
|
|
12073
12224
|
getStepTarget(stepItem) {
|
|
@@ -12973,6 +13124,10 @@ var AIDiagram = (function (exports) {
|
|
|
12973
13124
|
this.btnPrev.addEventListener("click", () => this.prevStep());
|
|
12974
13125
|
this.btnNext.addEventListener("click", () => this.nextStep());
|
|
12975
13126
|
this.btnPlay.addEventListener("click", () => {
|
|
13127
|
+
if (this.playInFlight) {
|
|
13128
|
+
this.stopPlayback();
|
|
13129
|
+
return;
|
|
13130
|
+
}
|
|
12976
13131
|
void this.play();
|
|
12977
13132
|
});
|
|
12978
13133
|
this.btnCaption.addEventListener("click", () => this.setCaptionVisible(!this.showCaption));
|
|
@@ -13030,6 +13185,7 @@ var AIDiagram = (function (exports) {
|
|
|
13030
13185
|
}
|
|
13031
13186
|
this.clearError();
|
|
13032
13187
|
this.stopMotion();
|
|
13188
|
+
this.playInFlight = false;
|
|
13033
13189
|
this.animUnsub?.();
|
|
13034
13190
|
this.animUnsub = null;
|
|
13035
13191
|
this.instance?.anim?.destroy();
|
|
@@ -13102,9 +13258,15 @@ var AIDiagram = (function (exports) {
|
|
|
13102
13258
|
this.syncControls();
|
|
13103
13259
|
}
|
|
13104
13260
|
}
|
|
13261
|
+
stopPlayback() {
|
|
13262
|
+
this.playInFlight = false;
|
|
13263
|
+
this.instance?.anim.stop();
|
|
13264
|
+
this.syncControls();
|
|
13265
|
+
}
|
|
13105
13266
|
nextStep() {
|
|
13106
13267
|
if (!this.instance)
|
|
13107
13268
|
return;
|
|
13269
|
+
this.playInFlight = false;
|
|
13108
13270
|
this.instance.anim.next();
|
|
13109
13271
|
this.syncControls();
|
|
13110
13272
|
if (this.options.autoFocus !== false && this.options.autoFocusOnStep !== false) {
|
|
@@ -13114,6 +13276,7 @@ var AIDiagram = (function (exports) {
|
|
|
13114
13276
|
prevStep() {
|
|
13115
13277
|
if (!this.instance)
|
|
13116
13278
|
return;
|
|
13279
|
+
this.playInFlight = false;
|
|
13117
13280
|
this.instance.anim.prev();
|
|
13118
13281
|
this.syncControls();
|
|
13119
13282
|
if (this.options.autoFocus !== false && this.options.autoFocusOnStep !== false) {
|
|
@@ -13123,6 +13286,7 @@ var AIDiagram = (function (exports) {
|
|
|
13123
13286
|
resetAnimation() {
|
|
13124
13287
|
if (!this.instance)
|
|
13125
13288
|
return;
|
|
13289
|
+
this.playInFlight = false;
|
|
13126
13290
|
this.instance.anim.reset();
|
|
13127
13291
|
this.syncControls();
|
|
13128
13292
|
}
|
|
@@ -13149,6 +13313,7 @@ var AIDiagram = (function (exports) {
|
|
|
13149
13313
|
}
|
|
13150
13314
|
destroy() {
|
|
13151
13315
|
this.stopMotion();
|
|
13316
|
+
this.playInFlight = false;
|
|
13152
13317
|
this.animUnsub?.();
|
|
13153
13318
|
this.instance?.anim?.destroy();
|
|
13154
13319
|
this.instance = null;
|
|
@@ -13181,6 +13346,9 @@ var AIDiagram = (function (exports) {
|
|
|
13181
13346
|
this.btnRestart.disabled = true;
|
|
13182
13347
|
this.btnPrev.disabled = true;
|
|
13183
13348
|
this.btnNext.disabled = true;
|
|
13349
|
+
this.btnPlay.textContent = "Play";
|
|
13350
|
+
this.btnPlay.classList.remove("is-active");
|
|
13351
|
+
this.btnPlay.setAttribute("aria-pressed", "false");
|
|
13184
13352
|
this.btnPlay.disabled = true;
|
|
13185
13353
|
return;
|
|
13186
13354
|
}
|
|
@@ -13189,7 +13357,10 @@ var AIDiagram = (function (exports) {
|
|
|
13189
13357
|
this.btnRestart.disabled = false;
|
|
13190
13358
|
this.btnPrev.disabled = !anim.canPrev;
|
|
13191
13359
|
this.btnNext.disabled = !anim.canNext;
|
|
13192
|
-
this.btnPlay.
|
|
13360
|
+
this.btnPlay.textContent = this.playInFlight ? "Stop" : "Play";
|
|
13361
|
+
this.btnPlay.classList.toggle("is-active", this.playInFlight);
|
|
13362
|
+
this.btnPlay.setAttribute("aria-pressed", this.playInFlight ? "true" : "false");
|
|
13363
|
+
this.btnPlay.disabled = this.playInFlight ? false : !anim.canNext;
|
|
13193
13364
|
}
|
|
13194
13365
|
syncViewControls() {
|
|
13195
13366
|
const hasView = !!this.instance?.svg;
|
package/dist/ui/canvas.d.ts
CHANGED
|
@@ -113,6 +113,7 @@ export declare class SketchmarkCanvas {
|
|
|
113
113
|
on<K extends keyof SketchmarkCanvasEvents>(event: K, listener: (payload: SketchmarkCanvasEvents[K]) => void): () => void;
|
|
114
114
|
render(nextDsl?: string): DiagramInstance | null;
|
|
115
115
|
play(): Promise<void>;
|
|
116
|
+
stopPlayback(): void;
|
|
116
117
|
nextStep(): void;
|
|
117
118
|
prevStep(): void;
|
|
118
119
|
resetAnimation(): void;
|
package/dist/ui/canvas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/ui/canvas.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/ui/canvas.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/embed.d.ts
CHANGED
|
@@ -96,6 +96,7 @@ export declare class SketchmarkEmbed {
|
|
|
96
96
|
on<K extends keyof SketchmarkEmbedEvents>(event: K, listener: (payload: SketchmarkEmbedEvents[K]) => void): () => void;
|
|
97
97
|
render(nextDsl?: string): DiagramInstance | null;
|
|
98
98
|
play(): Promise<void>;
|
|
99
|
+
stopPlayback(): void;
|
|
99
100
|
nextStep(): void;
|
|
100
101
|
prevStep(): void;
|
|
101
102
|
resetAnimation(): void;
|
package/dist/ui/embed.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/ui/embed.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"embed.d.ts","sourceRoot":"","sources":["../../src/ui/embed.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sketchmark",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.7",
|
|
4
4
|
"description": "A plain-text DSL for hand-drawn diagrams. Write boxes, edges, and groups as code — renders sketchy SVG/Canvas via rough.js with a built-in step-by-step animation system.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"diagram",
|