@markdy/renderer-dom 0.8.15 → 0.8.16
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/dist/index.js +19 -17
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -1930,15 +1930,6 @@ function createDiagram(opts) {
|
|
|
1930
1930
|
}
|
|
1931
1931
|
ensureSceneStyles(document);
|
|
1932
1932
|
ensureNodeStyles(document);
|
|
1933
|
-
const viewportTransform = document.createElement("div");
|
|
1934
|
-
viewportTransform.className = "markdy-viewport-transform";
|
|
1935
|
-
Object.assign(viewportTransform.style, {
|
|
1936
|
-
position: "absolute",
|
|
1937
|
-
inset: "0",
|
|
1938
|
-
transformOrigin: "0 0",
|
|
1939
|
-
willChange: interactiveViewport ? "transform" : "auto"
|
|
1940
|
-
});
|
|
1941
|
-
viewport.appendChild(viewportTransform);
|
|
1942
1933
|
const scene = document.createElement("div");
|
|
1943
1934
|
scene.className = "markdy-scene-root";
|
|
1944
1935
|
Object.assign(scene.style, {
|
|
@@ -1952,11 +1943,20 @@ function createDiagram(opts) {
|
|
|
1952
1943
|
transformOrigin: "0 0"
|
|
1953
1944
|
});
|
|
1954
1945
|
applyThemeToScene(scene, plan.theme);
|
|
1955
|
-
|
|
1946
|
+
viewport.appendChild(scene);
|
|
1947
|
+
const viewportTransform = document.createElement("div");
|
|
1948
|
+
viewportTransform.className = "markdy-viewport-transform";
|
|
1949
|
+
Object.assign(viewportTransform.style, {
|
|
1950
|
+
position: "absolute",
|
|
1951
|
+
inset: "0",
|
|
1952
|
+
transformOrigin: "0 0",
|
|
1953
|
+
willChange: interactiveViewport ? "transform" : "auto"
|
|
1954
|
+
});
|
|
1955
|
+
scene.appendChild(viewportTransform);
|
|
1956
1956
|
const sceneContent = document.createElement("div");
|
|
1957
1957
|
sceneContent.className = "markdy-scene-content";
|
|
1958
1958
|
Object.assign(sceneContent.style, { position: "absolute", inset: "0" });
|
|
1959
|
-
|
|
1959
|
+
viewportTransform.appendChild(sceneContent);
|
|
1960
1960
|
const titleEl = createTitleEl(plan.title);
|
|
1961
1961
|
sceneContent.appendChild(titleEl);
|
|
1962
1962
|
const cameraLayer = document.createElement("div");
|
|
@@ -2014,9 +2014,11 @@ function createDiagram(opts) {
|
|
|
2014
2014
|
nodeLayer.appendChild(el);
|
|
2015
2015
|
nodeEls.set(node.id, el);
|
|
2016
2016
|
}
|
|
2017
|
+
let fitScale = 1;
|
|
2017
2018
|
function scaleScene() {
|
|
2018
|
-
const
|
|
2019
|
-
|
|
2019
|
+
const width = viewport.clientWidth || plan.meta.width;
|
|
2020
|
+
fitScale = width / plan.meta.width;
|
|
2021
|
+
scene.style.transform = `scale(${fitScale})`;
|
|
2020
2022
|
}
|
|
2021
2023
|
scaleScene();
|
|
2022
2024
|
const resizeObserver = new ResizeObserver(scaleScene);
|
|
@@ -2078,8 +2080,8 @@ function createDiagram(opts) {
|
|
|
2078
2080
|
function handleViewportWheel(event) {
|
|
2079
2081
|
event.preventDefault();
|
|
2080
2082
|
const rect = viewport.getBoundingClientRect();
|
|
2081
|
-
const pointerX = event.clientX - rect.left;
|
|
2082
|
-
const pointerY = event.clientY - rect.top;
|
|
2083
|
+
const pointerX = (event.clientX - rect.left) / fitScale;
|
|
2084
|
+
const pointerY = (event.clientY - rect.top) / fitScale;
|
|
2083
2085
|
const nextScale = Math.min(MAX_VIEWPORT_ZOOM, Math.max(MIN_VIEWPORT_ZOOM, viewportScale * Math.exp(-event.deltaY * VIEWPORT_ZOOM_STEP)));
|
|
2084
2086
|
if (nextScale === viewportScale) return;
|
|
2085
2087
|
const sceneX = (pointerX - viewportPanX) / viewportScale;
|
|
@@ -2102,8 +2104,8 @@ function createDiagram(opts) {
|
|
|
2102
2104
|
}
|
|
2103
2105
|
function handleViewportPointerMove(event) {
|
|
2104
2106
|
if (event.pointerId !== activePointerId) return;
|
|
2105
|
-
const deltaX = event.clientX - dragLastX;
|
|
2106
|
-
const deltaY = event.clientY - dragLastY;
|
|
2107
|
+
const deltaX = (event.clientX - dragLastX) / fitScale;
|
|
2108
|
+
const deltaY = (event.clientY - dragLastY) / fitScale;
|
|
2107
2109
|
const totalX = event.clientX - dragStartX;
|
|
2108
2110
|
const totalY = event.clientY - dragStartY;
|
|
2109
2111
|
if (!dragMoved && Math.hypot(totalX, totalY) >= DRAG_CLICK_THRESHOLD_PX) dragMoved = true;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@markdy/renderer-dom",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.16",
|
|
4
4
|
"description": "Browser renderer for diagram-native animated MarkdyScript architecture diagrams, built on the Web Animations API.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -44,14 +44,14 @@
|
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@markdy/core": "0.8.
|
|
47
|
+
"@markdy/core": "0.8.16"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"jsdom": "^29.1.1",
|
|
51
51
|
"tsup": "^8.5.1",
|
|
52
52
|
"typescript": "^5.9.3",
|
|
53
53
|
"vitest": "^4.1.7",
|
|
54
|
-
"@markdy/stdlib-systems": "0.8.
|
|
54
|
+
"@markdy/stdlib-systems": "0.8.16"
|
|
55
55
|
},
|
|
56
56
|
"scripts": {
|
|
57
57
|
"build": "tsup",
|