sketchmark 1.3.0 → 1.3.1
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 +1 -1
- package/dist/index.cjs +103 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +103 -0
- package/dist/index.js.map +1 -1
- package/dist/sketchmark.iife.js +103 -0
- package/dist/ui/embed.d.ts +12 -0
- package/dist/ui/embed.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/sketchmark.iife.js
CHANGED
|
@@ -12657,6 +12657,12 @@ var AIDiagram = (function (exports) {
|
|
|
12657
12657
|
overflow: hidden;
|
|
12658
12658
|
min-height: 0;
|
|
12659
12659
|
background: inherit;
|
|
12660
|
+
cursor: grab;
|
|
12661
|
+
touch-action: none;
|
|
12662
|
+
}
|
|
12663
|
+
|
|
12664
|
+
.skm-embed__viewport.is-panning {
|
|
12665
|
+
cursor: grabbing;
|
|
12660
12666
|
}
|
|
12661
12667
|
|
|
12662
12668
|
.skm-embed__world {
|
|
@@ -12785,8 +12791,87 @@ var AIDiagram = (function (exports) {
|
|
|
12785
12791
|
this.offsetX = 0;
|
|
12786
12792
|
this.offsetY = 0;
|
|
12787
12793
|
this.autoFitEnabled = true;
|
|
12794
|
+
this.autoFocusEnabled = true;
|
|
12788
12795
|
this.motionFrame = null;
|
|
12789
12796
|
this.resizeObserver = null;
|
|
12797
|
+
this.isPanning = false;
|
|
12798
|
+
this.panMoved = false;
|
|
12799
|
+
this.activePointerId = null;
|
|
12800
|
+
this.lastPointerX = 0;
|
|
12801
|
+
this.lastPointerY = 0;
|
|
12802
|
+
this.suppressClickUntil = 0;
|
|
12803
|
+
this.onPointerDown = (event) => {
|
|
12804
|
+
if (event.button !== 0 && event.button !== 1)
|
|
12805
|
+
return;
|
|
12806
|
+
this.isPanning = true;
|
|
12807
|
+
this.panMoved = false;
|
|
12808
|
+
this.activePointerId = event.pointerId;
|
|
12809
|
+
this.lastPointerX = event.clientX;
|
|
12810
|
+
this.lastPointerY = event.clientY;
|
|
12811
|
+
try {
|
|
12812
|
+
this.viewport.setPointerCapture(event.pointerId);
|
|
12813
|
+
}
|
|
12814
|
+
catch {
|
|
12815
|
+
// Ignore pointer capture failures.
|
|
12816
|
+
}
|
|
12817
|
+
};
|
|
12818
|
+
this.onPointerMove = (event) => {
|
|
12819
|
+
if (!this.isPanning)
|
|
12820
|
+
return;
|
|
12821
|
+
if (this.activePointerId !== null && event.pointerId !== this.activePointerId)
|
|
12822
|
+
return;
|
|
12823
|
+
const dx = event.clientX - this.lastPointerX;
|
|
12824
|
+
const dy = event.clientY - this.lastPointerY;
|
|
12825
|
+
if (!this.panMoved && Math.abs(dx) + Math.abs(dy) > 4) {
|
|
12826
|
+
this.panMoved = true;
|
|
12827
|
+
this.viewport.classList.add("is-panning");
|
|
12828
|
+
}
|
|
12829
|
+
if (this.panMoved) {
|
|
12830
|
+
this.stopMotion();
|
|
12831
|
+
this.autoFitEnabled = false;
|
|
12832
|
+
this.autoFocusEnabled = false;
|
|
12833
|
+
this.offsetX += dx;
|
|
12834
|
+
this.offsetY += dy;
|
|
12835
|
+
this.applyTransform();
|
|
12836
|
+
this.syncViewControls();
|
|
12837
|
+
}
|
|
12838
|
+
this.lastPointerX = event.clientX;
|
|
12839
|
+
this.lastPointerY = event.clientY;
|
|
12840
|
+
};
|
|
12841
|
+
this.onStopPanning = (event) => {
|
|
12842
|
+
if (this.activePointerId !== null && event?.pointerId != null && event.pointerId !== this.activePointerId)
|
|
12843
|
+
return;
|
|
12844
|
+
if (this.panMoved)
|
|
12845
|
+
this.suppressClickUntil = performance.now() + 180;
|
|
12846
|
+
if (this.activePointerId !== null && this.viewport.hasPointerCapture?.(this.activePointerId)) {
|
|
12847
|
+
try {
|
|
12848
|
+
this.viewport.releasePointerCapture(this.activePointerId);
|
|
12849
|
+
}
|
|
12850
|
+
catch {
|
|
12851
|
+
// Ignore pointer capture release failures.
|
|
12852
|
+
}
|
|
12853
|
+
}
|
|
12854
|
+
this.activePointerId = null;
|
|
12855
|
+
this.isPanning = false;
|
|
12856
|
+
this.panMoved = false;
|
|
12857
|
+
this.viewport.classList.remove("is-panning");
|
|
12858
|
+
};
|
|
12859
|
+
this.onViewportClick = (event) => {
|
|
12860
|
+
if (performance.now() <= this.suppressClickUntil) {
|
|
12861
|
+
event.preventDefault();
|
|
12862
|
+
event.stopPropagation();
|
|
12863
|
+
}
|
|
12864
|
+
};
|
|
12865
|
+
this.onWheel = (event) => {
|
|
12866
|
+
if (!this.instance?.svg)
|
|
12867
|
+
return;
|
|
12868
|
+
event.preventDefault();
|
|
12869
|
+
const rect = this.viewport.getBoundingClientRect();
|
|
12870
|
+
const pivotX = event.clientX - rect.left;
|
|
12871
|
+
const pivotY = event.clientY - rect.top;
|
|
12872
|
+
const factor = Math.exp(-event.deltaY * 0.0015);
|
|
12873
|
+
this.zoomTo(this.zoom * factor, pivotX, pivotY);
|
|
12874
|
+
};
|
|
12790
12875
|
this.options = options;
|
|
12791
12876
|
this.dsl = normalizeNewlines(options.dsl);
|
|
12792
12877
|
this.theme = options.theme ?? "light";
|
|
@@ -12854,6 +12939,13 @@ var AIDiagram = (function (exports) {
|
|
|
12854
12939
|
});
|
|
12855
12940
|
this.btnCaption.addEventListener("click", () => this.setCaptionVisible(!this.showCaption));
|
|
12856
12941
|
this.btnTts.addEventListener("click", () => this.setTtsEnabled(!this.getTtsEnabled()));
|
|
12942
|
+
this.viewport.addEventListener("pointerdown", this.onPointerDown);
|
|
12943
|
+
this.viewport.addEventListener("pointermove", this.onPointerMove);
|
|
12944
|
+
this.viewport.addEventListener("pointerup", this.onStopPanning);
|
|
12945
|
+
this.viewport.addEventListener("pointercancel", this.onStopPanning);
|
|
12946
|
+
this.viewport.addEventListener("lostpointercapture", this.onStopPanning);
|
|
12947
|
+
this.viewport.addEventListener("click", this.onViewportClick);
|
|
12948
|
+
this.viewport.addEventListener("wheel", this.onWheel, { passive: false });
|
|
12857
12949
|
if (typeof ResizeObserver !== "undefined") {
|
|
12858
12950
|
this.resizeObserver = new ResizeObserver(() => {
|
|
12859
12951
|
this.positionViewport(false);
|
|
@@ -12905,6 +12997,7 @@ var AIDiagram = (function (exports) {
|
|
|
12905
12997
|
this.instance?.anim?.destroy();
|
|
12906
12998
|
this.instance = null;
|
|
12907
12999
|
this.autoFitEnabled = true;
|
|
13000
|
+
this.autoFocusEnabled = true;
|
|
12908
13001
|
this.zoom = 1;
|
|
12909
13002
|
this.offsetX = 0;
|
|
12910
13003
|
this.offsetY = 0;
|
|
@@ -12997,6 +13090,7 @@ var AIDiagram = (function (exports) {
|
|
|
12997
13090
|
if (!this.instance?.svg)
|
|
12998
13091
|
return;
|
|
12999
13092
|
this.autoFitEnabled = true;
|
|
13093
|
+
this.autoFocusEnabled = true;
|
|
13000
13094
|
this.positionViewport(animated);
|
|
13001
13095
|
}
|
|
13002
13096
|
resetView(animated = false) {
|
|
@@ -13020,6 +13114,13 @@ var AIDiagram = (function (exports) {
|
|
|
13020
13114
|
this.instance?.anim?.destroy();
|
|
13021
13115
|
this.instance = null;
|
|
13022
13116
|
this.resizeObserver?.disconnect();
|
|
13117
|
+
this.viewport.removeEventListener("pointerdown", this.onPointerDown);
|
|
13118
|
+
this.viewport.removeEventListener("pointermove", this.onPointerMove);
|
|
13119
|
+
this.viewport.removeEventListener("pointerup", this.onStopPanning);
|
|
13120
|
+
this.viewport.removeEventListener("pointercancel", this.onStopPanning);
|
|
13121
|
+
this.viewport.removeEventListener("lostpointercapture", this.onStopPanning);
|
|
13122
|
+
this.viewport.removeEventListener("click", this.onViewportClick);
|
|
13123
|
+
this.viewport.removeEventListener("wheel", this.onWheel);
|
|
13023
13124
|
this.root.remove();
|
|
13024
13125
|
}
|
|
13025
13126
|
applySize(width, height) {
|
|
@@ -13079,6 +13180,7 @@ var AIDiagram = (function (exports) {
|
|
|
13079
13180
|
const focusTarget = this.getFocusTarget();
|
|
13080
13181
|
const sceneIsLarge = scaledWidth > viewWidth || scaledHeight > viewHeight;
|
|
13081
13182
|
const shouldFocus = sceneIsLarge &&
|
|
13183
|
+
this.autoFocusEnabled &&
|
|
13082
13184
|
this.options.autoFocus !== false &&
|
|
13083
13185
|
!!focusTarget;
|
|
13084
13186
|
if (!shouldFocus) {
|
|
@@ -13188,6 +13290,7 @@ var AIDiagram = (function (exports) {
|
|
|
13188
13290
|
}
|
|
13189
13291
|
this.stopMotion();
|
|
13190
13292
|
this.autoFitEnabled = false;
|
|
13293
|
+
this.autoFocusEnabled = false;
|
|
13191
13294
|
this.offsetX = pivotX - (pivotX - this.offsetX) * ratio;
|
|
13192
13295
|
this.offsetY = pivotY - (pivotY - this.offsetY) * ratio;
|
|
13193
13296
|
this.zoom = clampedZoom;
|
package/dist/ui/embed.d.ts
CHANGED
|
@@ -73,8 +73,20 @@ export declare class SketchmarkEmbed {
|
|
|
73
73
|
private offsetX;
|
|
74
74
|
private offsetY;
|
|
75
75
|
private autoFitEnabled;
|
|
76
|
+
private autoFocusEnabled;
|
|
76
77
|
private motionFrame;
|
|
77
78
|
private resizeObserver;
|
|
79
|
+
private isPanning;
|
|
80
|
+
private panMoved;
|
|
81
|
+
private activePointerId;
|
|
82
|
+
private lastPointerX;
|
|
83
|
+
private lastPointerY;
|
|
84
|
+
private suppressClickUntil;
|
|
85
|
+
private readonly onPointerDown;
|
|
86
|
+
private readonly onPointerMove;
|
|
87
|
+
private readonly onStopPanning;
|
|
88
|
+
private readonly onViewportClick;
|
|
89
|
+
private readonly onWheel;
|
|
78
90
|
constructor(options: SketchmarkEmbedOptions);
|
|
79
91
|
getDsl(): string;
|
|
80
92
|
setDsl(dsl: string, renderNow?: boolean): 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":"AAEA,OAAO,EAKL,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
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.1",
|
|
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",
|