@edv4h/usketch-dom-renderer 2.1.10 → 2.1.12
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-shape-layer.d.ts","sourceRoot":"","sources":["../src/dom-shape-layer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAa,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"dom-shape-layer.d.ts","sourceRoot":"","sources":["../src/dom-shape-layer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAa,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA6H1F,wBAAgB,aAAa,CAAC,EAC7B,GAAG,EACH,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAkB,EAClB,gBAAsB,GACtB,EAAE;IACF,GAAG,EAAE,kBAAkB,CAAC;IACxB,aAAa,EAAE,aAAa,CAAC;IAC7B,mFAAmF;IACnF,UAAU,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,gEAAgE;IAChE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,0EAA0E;IAC1E,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,iGAAiG;IACjG,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC1B,sCA8HA"}
|
package/dist/dom-shape-layer.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { isShapeOutsideViewport, safeRotation } from "@edv4h/usketch-shared";
|
|
2
|
+
import { isShapeContainer, isShapeOutsideViewport, safeRotation } from "@edv4h/usketch-shared";
|
|
3
3
|
import { memo } from "react";
|
|
4
4
|
import { LodFallback } from "./lod-fallback.js";
|
|
5
5
|
/**
|
|
@@ -7,12 +7,11 @@ import { LodFallback } from "./lod-fallback.js";
|
|
|
7
7
|
* while preserving the relative order within each sibling group. The input must
|
|
8
8
|
* already be sorted by z-order (e.g. zIndex ascending).
|
|
9
9
|
*
|
|
10
|
-
* Rationale: DOM z-ordering is controlled by source order + zIndex;
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* order within siblings intact.
|
|
10
|
+
* Rationale: DOM z-ordering is controlled by source order + zIndex; parents
|
|
11
|
+
* must render before their children so the child elements appear on top. Using
|
|
12
|
+
* a stable group-by-parent pass keeps the zIndex-based order within siblings intact.
|
|
14
13
|
*/
|
|
15
|
-
function stableParentSort(sorted
|
|
14
|
+
function stableParentSort(sorted) {
|
|
16
15
|
// Group children by parentId (preserving order from `sorted`)
|
|
17
16
|
const childrenByParent = new Map();
|
|
18
17
|
const topLevel = [];
|
|
@@ -54,7 +53,6 @@ function stableParentSort(sorted, _containerTypes) {
|
|
|
54
53
|
// zIndex so they render above the frame's opaque background.
|
|
55
54
|
// Only applied when a drop target is active, not during normal selection.
|
|
56
55
|
const DROP_TARGET_Z_BOOST = 100_000;
|
|
57
|
-
const CONTAINER_SHAPE_TYPES = new Set(["frame", "island", "group"]);
|
|
58
56
|
/**
|
|
59
57
|
* 1 シェイプ分のラッパ。`React.memo` で囲み、props が参照的に等しいフレームでは
|
|
60
58
|
* `def.render` の再実行と再 reconcile をスキップする。
|
|
@@ -63,7 +61,7 @@ const CONTAINER_SHAPE_TYPES = new Set(["frame", "island", "group"]);
|
|
|
63
61
|
* 新オブジェクトに差し替える)ため、ドラッグ中の 1 件以外は `shape` 参照が変わらず、
|
|
64
62
|
* デフォルトの shallow 比較でそのまま再描画を回避できる(プラグイン側の memo 実装は不要)。
|
|
65
63
|
*/
|
|
66
|
-
const ShapeWrapper = memo(function ShapeWrapper({ shape, index, selected, overDropTarget, def, }) {
|
|
64
|
+
const ShapeWrapper = memo(function ShapeWrapper({ shape, index, selected, overDropTarget, isContainer, def, }) {
|
|
67
65
|
const bounds = { x: shape.x, y: shape.y, width: shape.width, height: shape.height };
|
|
68
66
|
const rotation = safeRotation(shape.rotation);
|
|
69
67
|
const isHtml = def.renderTarget === "html";
|
|
@@ -72,8 +70,7 @@ const ShapeWrapper = memo(function ShapeWrapper({ shape, index, selected, overDr
|
|
|
72
70
|
// groups with no children, connectors between aligned shapes).
|
|
73
71
|
const svgW = Math.max(bounds.width, 1);
|
|
74
72
|
const svgH = Math.max(bounds.height, 1);
|
|
75
|
-
// Containers
|
|
76
|
-
const isContainer = CONTAINER_SHAPE_TYPES.has(shape.type);
|
|
73
|
+
// Containers use pointerEvents: none to let children receive clicks
|
|
77
74
|
const boosted = selected && !isContainer && overDropTarget;
|
|
78
75
|
return (_jsx("div", { "data-shape-id": shape.id, style: {
|
|
79
76
|
position: "absolute",
|
|
@@ -106,8 +103,7 @@ export function DomShapeLayer({ ctx, shapeRegistry, claimedIds, dropTargetId, vi
|
|
|
106
103
|
// then reorder so that each child appears immediately after its parent container.
|
|
107
104
|
// This preserves user-controlled z-order within each sibling group while keeping
|
|
108
105
|
// the container-before-child invariant required by the DOM stacking context.
|
|
109
|
-
const
|
|
110
|
-
const shapes = stableParentSort(ctx.shapesSorted, CONTAINER_TYPES);
|
|
106
|
+
const shapes = stableParentSort(ctx.shapesSorted);
|
|
111
107
|
return (_jsx("div", { "data-layer": "shapes", children: shapes.map((shape, index) => {
|
|
112
108
|
// Skip invalid shapes (e.g. leaked Yjs internal objects)
|
|
113
109
|
if (!shape || typeof shape.id !== "string" || typeof shape.type !== "string") {
|
|
@@ -163,7 +159,7 @@ export function DomShapeLayer({ ctx, shapeRegistry, claimedIds, dropTargetId, vi
|
|
|
163
159
|
// non-selected shapes, preserving the memo skip when the drop target
|
|
164
160
|
// toggles — only the selected shape(s) re-render.
|
|
165
161
|
const selected = ctx.selection.has(shape.id);
|
|
166
|
-
return (_jsx(ShapeWrapper, { shape: shape, index: index, selected: selected, overDropTarget: selected && !!dropTargetId, def: def }, shape.id));
|
|
162
|
+
return (_jsx(ShapeWrapper, { shape: shape, index: index, selected: selected, overDropTarget: selected && !!dropTargetId, isContainer: isShapeContainer(def, shape), def: def }, shape.id));
|
|
167
163
|
}) }));
|
|
168
164
|
}
|
|
169
165
|
//# sourceMappingURL=dom-shape-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dom-shape-layer.js","sourceRoot":"","sources":["../src/dom-shape-layer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"dom-shape-layer.js","sourceRoot":"","sources":["../src/dom-shape-layer.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@edv4h/usketch-dom-renderer",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
}
|
|
13
13
|
},
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@edv4h/usketch-shared": "4.
|
|
15
|
+
"@edv4h/usketch-shared": "4.17.0"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
18
|
"react": ">=19",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
"@types/react": "19.3.0",
|
|
23
23
|
"@types/react-dom": "19.3.0",
|
|
24
24
|
"typescript": "7.0.2",
|
|
25
|
-
"vitest": "5.0.
|
|
25
|
+
"vitest": "5.0.5"
|
|
26
26
|
},
|
|
27
27
|
"publishConfig": {
|
|
28
28
|
"access": "public"
|