@edv4h/usketch-dom-renderer 2.0.5 → 2.1.0

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,10 +1,14 @@
1
1
  import type { LayerRenderContext, ShapeRegistry } from "@edv4h/usketch-shared";
2
- export declare function DomShapeLayer({ ctx, shapeRegistry, claimedIds, dropTargetId, }: {
2
+ export declare function DomShapeLayer({ ctx, shapeRegistry, claimedIds, dropTargetId, viewportLod, viewportLodRatio, }: {
3
3
  ctx: LayerRenderContext;
4
4
  shapeRegistry: ShapeRegistry;
5
5
  /** Shape IDs already claimed by another renderer (e.g. GPU). These are skipped. */
6
6
  claimedIds?: ReadonlySet<string>;
7
7
  /** Frame/group ID that the dragged shapes are hovering over. */
8
8
  dropTargetId?: string | null;
9
+ /** Render shapes outside the (scaled) viewport in simplified LOD form. */
10
+ viewportLod?: boolean;
11
+ /** Full-detail region as a multiple of the viewport (1.2 = 120%). See isShapeOutsideViewport. */
12
+ viewportLodRatio?: number;
9
13
  }): import("react").JSX.Element | null;
10
14
  //# sourceMappingURL=dom-shape-layer.d.ts.map
@@ -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;AA+H1F,wBAAgB,aAAa,CAAC,EAC7B,GAAG,EACH,aAAa,EACb,UAAU,EACV,YAAY,GACZ,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;CAC7B,sCAsHA"}
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;AA+H1F,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"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { safeRotation } from "@edv4h/usketch-shared";
2
+ import { isShapeOutsideViewport, safeRotation } from "@edv4h/usketch-shared";
3
3
  import { memo } from "react";
4
4
  import { LodFallback } from "./lod-fallback.js";
5
5
  /**
@@ -87,16 +87,21 @@ const ShapeWrapper = memo(function ShapeWrapper({ shape, index, selected, overDr
87
87
  transformOrigin: "center center",
88
88
  }, children: isHtml ? (def.render(shape)) : (_jsx("svg", { width: svgW, height: svgH, viewBox: `${bounds.x} ${bounds.y} ${svgW} ${svgH}`, style: { display: "block", overflow: "visible" }, children: def.render(shape) })) }));
89
89
  });
90
- export function DomShapeLayer({ ctx, shapeRegistry, claimedIds, dropTargetId, }) {
90
+ export function DomShapeLayer({ ctx, shapeRegistry, claimedIds, dropTargetId, viewportLod = true, viewportLodRatio = 1.2, }) {
91
91
  // `gpu-only` mode: hide the DOM layer entirely (reserved for future use).
92
92
  if (ctx.renderMode === "gpu-only")
93
93
  return null;
94
- // In `interactive` mode the GPU layer does not render, so any lingering
95
- // claimedIds from a previous `lod` pass must be ignored — otherwise a
96
- // stale closure in the plugin layer can keep hiding shapes until the next
97
- // store mutation. DOM owns the full shape set in interactive mode.
98
- const isLod = ctx.renderMode === "lod";
99
- const effectiveClaimedIds = isLod ? claimedIds : undefined;
94
+ // Global LOD (zoom/count/fps): every shape renders simplified.
95
+ const globalLod = ctx.renderMode === "lod";
96
+ // GPU is "active" only when it is both enabled (non-interactive mode) AND has
97
+ // actually claimed shapes (`claimedIds` is set — the plugin passes `undefined`
98
+ // when the GPU claimed nothing). This keeps DOM as the fallback in DOM-only
99
+ // setups (or before the first GPU claim): otherwise GPU-capable shapes like
100
+ // `freedraw` would be skipped here yet never drawn by GPU, i.e. vanish. In
101
+ // `interactive` mode any lingering claimedIds from a previous pass are ignored
102
+ // so DOM owns the full shape set.
103
+ const gpuActive = ctx.renderMode !== "interactive" && claimedIds !== undefined;
104
+ const effectiveClaimedIds = gpuActive ? claimedIds : undefined;
100
105
  // Use pre-sorted shapes (by zIndex ascending) from the layer render context,
101
106
  // then reorder so that each child appears immediately after its parent container.
102
107
  // This preserves user-controlled z-order within each sibling group while keeping
@@ -113,6 +118,10 @@ export function DomShapeLayer({ ctx, shapeRegistry, claimedIds, dropTargetId, })
113
118
  return null;
114
119
  }
115
120
  const def = shapeRegistry.get(shape.type);
121
+ // LOD when the global mode says so, OR (per-shape) when the shape sits
122
+ // outside the scaled viewport — off-screen shapes render simplified.
123
+ const isLod = globalLod ||
124
+ (viewportLod && isShapeOutsideViewport(shape, ctx.viewportBounds, viewportLodRatio));
116
125
  // LOD mode: render the shape's simplifiedComponent (or LodFallback)
117
126
  // instead of its full component. The simplifiedComponent is
118
127
  // responsible for its own positioning (it receives the full
@@ -120,13 +129,11 @@ export function DomShapeLayer({ ctx, shapeRegistry, claimedIds, dropTargetId, })
120
129
  // needed — a wrapper without position:absolute would break
121
130
  // zIndex stacking anyway.
122
131
  //
123
- // Additionally, skip shapes that the GPU renderer is capable of
124
- // drawing (even if it has not yet claimed them on this frame).
125
- // Without this, GPU-eligible shapes would briefly get a DOM
126
- // LodFallback rendered on top until the next GPU claim arrives,
127
- // producing a visible "double render" flash.
132
+ // Skip shapes the GPU is drawing this frame (only when GPU is active);
133
+ // otherwise render the simplified DOM form. Deferring to GPU in
134
+ // `interactive` mode would blank the shape since GPU isn't rendering.
128
135
  if (isLod) {
129
- if (def?.gpuPrimitive)
136
+ if (def?.gpuPrimitive && gpuActive)
130
137
  return null;
131
138
  const Simplified = def?.simplifiedComponent ?? LodFallback;
132
139
  return _jsx(Simplified, { shape: shape }, shape.id);
@@ -1 +1 @@
1
- {"version":3,"file":"dom-shape-layer.js","sourceRoot":"","sources":["../src/dom-shape-layer.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CACxB,MAA4B,EAC5B,eAAoC;IAEpC,8DAA8D;IAC9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;IACxD,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,QAAQ,GACb,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,IAAI,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,GAAG,EAAE,CAAC;gBACZ,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACF,CAAC;IAED,oFAAoF;IACpF,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,SAAS,IAAI,CAAC,KAAgB;QAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACd,KAAK,MAAM,KAAK,IAAI,QAAQ;gBAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ;QAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1C,6EAA6E;IAC7E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,6DAA6D;AAC7D,0EAA0E;AAC1E,MAAM,mBAAmB,GAAG,OAAO,CAAC;AACpC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,YAAY,CAAC,EAC/C,KAAK,EACL,KAAK,EACL,QAAQ,EACR,cAAc,EACd,GAAG,GAOH;IACA,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACpF,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC;IAE3C,uEAAuE;IACvE,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExC,yFAAyF;IACzF,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,QAAQ,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC;IAE3D,OAAO,CACN,cACC,KAAK,EAAE;YACN,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,MAAM,CAAC,CAAC;YACd,GAAG,EAAE,MAAM,CAAC,CAAC;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK;YACrD,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC5C,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,QAAQ,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1D,eAAe,EAAE,eAAe;SAChC,YAEA,MAAM,CAAC,CAAC,CAAC,CACT,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CACjB,CAAC,CAAC,CAAC,CACH,cACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAClD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAE/C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GACb,CACN,GACI,CACN,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,EAC7B,GAAG,EACH,aAAa,EACb,UAAU,EACV,YAAY,GAQZ;IACA,0EAA0E;IAC1E,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAE/C,wEAAwE;IACxE,sEAAsE;IACtE,0EAA0E;IAC1E,mEAAmE;IACnE,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC;IACvC,MAAM,mBAAmB,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAE3D,6EAA6E;IAC7E,kFAAkF;IAClF,iFAAiF;IACjF,6EAA6E;IAC7E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAEnE,OAAO,CACN,4BAAgB,QAAQ,YACtB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,yDAAyD;YACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9E,OAAO,IAAI,CAAC;YACb,CAAC;YACD,0DAA0D;YAC1D,IAAI,mBAAmB,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACb,CAAC;YACD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,oEAAoE;YACpE,4DAA4D;YAC5D,4DAA4D;YAC5D,+DAA+D;YAC/D,2DAA2D;YAC3D,0BAA0B;YAC1B,EAAE;YACF,gEAAgE;YAChE,+DAA+D;YAC/D,4DAA4D;YAC5D,gEAAgE;YAChE,6CAA6C;YAC7C,IAAI,KAAK,EAAE,CAAC;gBACX,IAAI,GAAG,EAAE,YAAY;oBAAE,OAAO,IAAI,CAAC;gBACnC,MAAM,UAAU,GAAG,GAAG,EAAE,mBAAmB,IAAI,WAAW,CAAC;gBAC3D,OAAO,KAAC,UAAU,IAAgB,KAAK,EAAE,KAAK,IAAtB,KAAK,CAAC,EAAE,CAAkB,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5B,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAChD,OAAO,CACN,cAEC,KAAK,EAAE;wBACN,QAAQ,EAAE,UAAU;wBACpB,IAAI,EAAE,EAAE;wBACR,GAAG,EAAE,EAAE;wBACP,KAAK,EAAE,EAAE;wBACT,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,KAAK;wBACb,aAAa,EAAE,MAAM;wBACrB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,UAAU,MAAM,CAAC,CAAC,CAAC,SAAS;wBAC9D,eAAe,EAAE,eAAe;qBAChC,YAED,eACC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EACpC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAEhD,eACC,CAAC,EAAE,EAAE,EACL,CAAC,EAAE,EAAE,EACL,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,IAAI,EAAC,uBAAuB,EAC5B,MAAM,EAAC,MAAM,EACb,WAAW,EAAE,CAAC,EACd,eAAe,EAAC,KAAK,GACpB,EACF,eACC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EACd,UAAU,EAAC,QAAQ,EACnB,gBAAgB,EAAC,SAAS,EAC1B,QAAQ,EAAE,EAAE,EACZ,IAAI,EAAC,MAAM,YAEV,KAAK,CAAC,IAAI,GACL,IACF,IAvCD,KAAK,CAAC,EAAE,CAwCR,CACN,CAAC;YACH,CAAC;YACD,sEAAsE;YACtE,uEAAuE;YACvE,qEAAqE;YACrE,kDAAkD;YAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7C,OAAO,CACN,KAAC,YAAY,IAEZ,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,QAAQ,IAAI,CAAC,CAAC,YAAY,EAC1C,GAAG,EAAE,GAAG,IALH,KAAK,CAAC,EAAE,CAMZ,CACF,CAAC;QACH,CAAC,CAAC,GACG,CACN,CAAC;AACH,CAAC"}
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;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;;;;;;;GASG;AACH,SAAS,gBAAgB,CACxB,MAA4B,EAC5B,eAAoC;IAEpC,8DAA8D;IAC9D,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAuB,CAAC;IACxD,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,MAAM,QAAQ,GACb,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;QACzF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACP,IAAI,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5C,IAAI,CAAC,MAAM,EAAE,CAAC;gBACb,MAAM,GAAG,EAAE,CAAC;gBACZ,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxC,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACF,CAAC;IAED,oFAAoF;IACpF,MAAM,MAAM,GAAgB,EAAE,CAAC;IAC/B,SAAS,IAAI,CAAC,KAAgB;QAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACd,KAAK,MAAM,KAAK,IAAI,QAAQ;gBAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACF,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,QAAQ;QAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1C,6EAA6E;IAC7E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,OAAO,MAAM,CAAC;AACf,CAAC;AAED,wEAAwE;AACxE,6DAA6D;AAC7D,0EAA0E;AAC1E,MAAM,mBAAmB,GAAG,OAAO,CAAC;AACpC,MAAM,qBAAqB,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,YAAY,CAAC,EAC/C,KAAK,EACL,KAAK,EACL,QAAQ,EACR,cAAc,EACd,GAAG,GAOH;IACA,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;IACpF,MAAM,QAAQ,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,KAAK,MAAM,CAAC;IAE3C,uEAAuE;IACvE,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAExC,yFAAyF;IACzF,MAAM,WAAW,GAAG,qBAAqB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1D,MAAM,OAAO,GAAG,QAAQ,IAAI,CAAC,WAAW,IAAI,cAAc,CAAC;IAE3D,OAAO,CACN,cACC,KAAK,EAAE;YACN,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,MAAM,CAAC,CAAC;YACd,GAAG,EAAE,MAAM,CAAC,CAAC;YACb,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,GAAG,mBAAmB,CAAC,CAAC,CAAC,KAAK;YACrD,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM;YAC5C,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,UAAU,QAAQ,MAAM,CAAC,CAAC,CAAC,SAAS;YAC1D,eAAe,EAAE,eAAe;SAChC,YAEA,MAAM,CAAC,CAAC,CAAC,CACT,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CACjB,CAAC,CAAC,CAAC,CACH,cACC,KAAK,EAAE,IAAI,EACX,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,EAClD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,YAE/C,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GACb,CACN,GACI,CACN,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,MAAM,UAAU,aAAa,CAAC,EAC7B,GAAG,EACH,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,GAAG,IAAI,EAClB,gBAAgB,GAAG,GAAG,GAYtB;IACA,0EAA0E;IAC1E,IAAI,GAAG,CAAC,UAAU,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IAE/C,+DAA+D;IAC/D,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,KAAK,KAAK,CAAC;IAC3C,8EAA8E;IAC9E,+EAA+E;IAC/E,4EAA4E;IAC5E,4EAA4E;IAC5E,2EAA2E;IAC3E,+EAA+E;IAC/E,kCAAkC;IAClC,MAAM,SAAS,GAAG,GAAG,CAAC,UAAU,KAAK,aAAa,IAAI,UAAU,KAAK,SAAS,CAAC;IAC/E,MAAM,mBAAmB,GAAG,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/D,6EAA6E;IAC7E,kFAAkF;IAClF,iFAAiF;IACjF,6EAA6E;IAC7E,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IAEnE,OAAO,CACN,4BAAgB,QAAQ,YACtB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YAC5B,yDAAyD;YACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC9E,OAAO,IAAI,CAAC;YACb,CAAC;YACD,0DAA0D;YAC1D,IAAI,mBAAmB,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxC,OAAO,IAAI,CAAC;YACb,CAAC;YACD,MAAM,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,uEAAuE;YACvE,qEAAqE;YACrE,MAAM,KAAK,GACV,SAAS;gBACT,CAAC,WAAW,IAAI,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACtF,oEAAoE;YACpE,4DAA4D;YAC5D,4DAA4D;YAC5D,+DAA+D;YAC/D,2DAA2D;YAC3D,0BAA0B;YAC1B,EAAE;YACF,uEAAuE;YACvE,gEAAgE;YAChE,sEAAsE;YACtE,IAAI,KAAK,EAAE,CAAC;gBACX,IAAI,GAAG,EAAE,YAAY,IAAI,SAAS;oBAAE,OAAO,IAAI,CAAC;gBAChD,MAAM,UAAU,GAAG,GAAG,EAAE,mBAAmB,IAAI,WAAW,CAAC;gBAC3D,OAAO,KAAC,UAAU,IAAgB,KAAK,EAAE,KAAK,IAAtB,KAAK,CAAC,EAAE,CAAkB,CAAC;YACpD,CAAC;YACD,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,EAAE,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC5B,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC5B,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBAChD,OAAO,CACN,cAEC,KAAK,EAAE;wBACN,QAAQ,EAAE,UAAU;wBACpB,IAAI,EAAE,EAAE;wBACR,GAAG,EAAE,EAAE;wBACP,KAAK,EAAE,EAAE;wBACT,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,KAAK;wBACb,aAAa,EAAE,MAAM;wBACrB,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,UAAU,UAAU,MAAM,CAAC,CAAC,CAAC,SAAS;wBAC9D,eAAe,EAAE,eAAe;qBAChC,YAED,eACC,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,GAAG,EACX,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,EAAE,EACpC,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAEhD,eACC,CAAC,EAAE,EAAE,EACL,CAAC,EAAE,EAAE,EACL,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,IAAI,EAAC,uBAAuB,EAC5B,MAAM,EAAC,MAAM,EACb,WAAW,EAAE,CAAC,EACd,eAAe,EAAC,KAAK,GACpB,EACF,eACC,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EACd,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,EACd,UAAU,EAAC,QAAQ,EACnB,gBAAgB,EAAC,SAAS,EAC1B,QAAQ,EAAE,EAAE,EACZ,IAAI,EAAC,MAAM,YAEV,KAAK,CAAC,IAAI,GACL,IACF,IAvCD,KAAK,CAAC,EAAE,CAwCR,CACN,CAAC;YACH,CAAC;YACD,sEAAsE;YACtE,uEAAuE;YACvE,qEAAqE;YACrE,kDAAkD;YAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7C,OAAO,CACN,KAAC,YAAY,IAEZ,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,QAAQ,IAAI,CAAC,CAAC,YAAY,EAC1C,GAAG,EAAE,GAAG,IALH,KAAK,CAAC,EAAE,CAMZ,CACF,CAAC;QACH,CAAC,CAAC,GACG,CACN,CAAC;AACH,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { DomShapeLayer } from "./dom-shape-layer.js";
2
- export { createDomRendererPlugin } from "./plugin.js";
2
+ export { createDomRendererPlugin, type DomRendererOptions, SET_VIEWPORT_LOD_EVENT, type SetViewportLodEvent, } from "./plugin.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACN,uBAAuB,EACvB,KAAK,kBAAkB,EACvB,sBAAsB,EACtB,KAAK,mBAAmB,GACxB,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
1
  export { DomShapeLayer } from "./dom-shape-layer.js";
2
- export { createDomRendererPlugin } from "./plugin.js";
2
+ export { createDomRendererPlugin, SET_VIEWPORT_LOD_EVENT, } from "./plugin.js";
3
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACN,uBAAuB,EAEvB,sBAAsB,GAEtB,MAAM,aAAa,CAAC"}
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,20 @@
1
1
  import type { UsketchPlugin } from "@edv4h/usketch-shared";
2
- export declare function createDomRendererPlugin(): UsketchPlugin;
2
+ export interface DomRendererOptions {
3
+ /**
4
+ * Render shapes outside the camera viewport in simplified LOD form (perf).
5
+ * `true` (default) uses a 120% region; pass `{ ratio }` to tune the
6
+ * full-detail region (1.0 = exactly the viewport, 1.2 = 20% buffer beyond it,
7
+ * 0.5 = only the central half). `false` disables it (all shapes full-detail).
8
+ */
9
+ viewportLod?: boolean | {
10
+ ratio?: number;
11
+ };
12
+ }
13
+ /** Runtime override of the viewport-LOD setting (emit to adjust from a UI control). */
14
+ export interface SetViewportLodEvent {
15
+ enabled?: boolean;
16
+ ratio?: number;
17
+ }
18
+ export declare const SET_VIEWPORT_LOD_EVENT = "renderer:set-viewport-lod";
19
+ export declare function createDomRendererPlugin(options?: DomRendererOptions): UsketchPlugin;
3
20
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG1E,wBAAgB,uBAAuB,IAAI,aAAa,CAmEvD"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG1E,MAAM,WAAW,kBAAkB;IAClC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,uFAAuF;AACvF,MAAM,WAAW,mBAAmB;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AACD,eAAO,MAAM,sBAAsB,8BAA8B,CAAC;AAYlE,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,kBAAuB,GAAG,aAAa,CAoFvF"}
package/dist/plugin.js CHANGED
@@ -1,6 +1,19 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { DomShapeLayer } from "./dom-shape-layer.js";
3
- export function createDomRendererPlugin() {
3
+ export const SET_VIEWPORT_LOD_EVENT = "renderer:set-viewport-lod";
4
+ const DEFAULT_VIEWPORT_LOD_RATIO = 1.2;
5
+ /** Clamp a user-provided ratio to a finite positive number (else the default). */
6
+ function sanitizeRatio(ratio) {
7
+ if (typeof ratio !== "number" || !Number.isFinite(ratio) || ratio <= 0) {
8
+ return DEFAULT_VIEWPORT_LOD_RATIO;
9
+ }
10
+ return ratio;
11
+ }
12
+ export function createDomRendererPlugin(options = {}) {
13
+ // `let` so a runtime control (SET_VIEWPORT_LOD_EVENT) can update them; the
14
+ // render closure below reads the latest values.
15
+ let viewportLodEnabled = options.viewportLod !== false;
16
+ let viewportLodRatio = sanitizeRatio(typeof options.viewportLod === "object" ? options.viewportLod.ratio : undefined);
4
17
  return {
5
18
  id: "usketch-dom-renderer",
6
19
  name: "DOM Renderer",
@@ -9,6 +22,14 @@ export function createDomRendererPlugin() {
9
22
  let claimedIds = new Set();
10
23
  // Track drop target frame (set by select tool during drag)
11
24
  let dropTargetId = null;
25
+ // Runtime viewport-LOD adjustment from a UI control (Control HUD).
26
+ const unsubViewportLod = ctx.events.on(SET_VIEWPORT_LOD_EVENT, (d) => {
27
+ if (typeof d.enabled === "boolean")
28
+ viewportLodEnabled = d.enabled;
29
+ if (typeof d.ratio === "number")
30
+ viewportLodRatio = sanitizeRatio(d.ratio);
31
+ ctx.events.emit("layers:changed", {});
32
+ });
12
33
  const unsubClaim = ctx.events.on("renderer:claim-shapes", (data) => {
13
34
  // Only nudge the canvas to re-render if the claim set
14
35
  // actually changed — otherwise we'd loop with GpuShapeLayer's
@@ -40,11 +61,12 @@ export function createDomRendererPlugin() {
40
61
  ctx.layers.register({
41
62
  id: "dom-shapes",
42
63
  order: 50,
43
- render: (renderCtx) => (_jsx(DomShapeLayer, { ctx: renderCtx, shapeRegistry: ctx.shapes, claimedIds: claimedIds.size > 0 ? claimedIds : undefined, dropTargetId: dropTargetId })),
64
+ render: (renderCtx) => (_jsx(DomShapeLayer, { ctx: renderCtx, shapeRegistry: ctx.shapes, claimedIds: claimedIds.size > 0 ? claimedIds : undefined, dropTargetId: dropTargetId, viewportLod: viewportLodEnabled, viewportLodRatio: viewportLodRatio })),
44
65
  });
45
66
  return () => {
46
67
  unsubClaim();
47
68
  unsubDropTarget();
69
+ unsubViewportLod();
48
70
  ctx.layers.unregister("dom-shapes");
49
71
  };
50
72
  },
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,UAAU,uBAAuB;IACtC,OAAO;QACN,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,cAAc;QAEpB,KAAK,CAAC,GAAkB;YACvB,wDAAwD;YACxD,IAAI,UAAU,GAAwB,IAAI,GAAG,EAAE,CAAC;YAChD,2DAA2D;YAC3D,IAAI,YAAY,GAAkB,IAAI,CAAC;YAEvC,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAC/B,uBAAuB,EACvB,CAAC,IAAI,EAAE,EAAE;gBACR,sDAAsD;gBACtD,8DAA8D;gBAC9D,oBAAoB;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;gBACtB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC;gBAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;wBACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;4BACzB,OAAO,GAAG,IAAI,CAAC;4BACf,MAAM;wBACP,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,OAAO,EAAE,CAAC;oBACb,sDAAsD;oBACtD,mDAAmD;oBACnD,4CAA4C;oBAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC,CACD,CAAC;YAEF,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CACpC,qBAAqB,EACrB,CAAC,IAAI,EAAE,EAAE;gBACR,IAAI,YAAY,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;oBAC9B,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;oBACvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC,CACD,CAAC;YAEF,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnB,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CACtB,KAAC,aAAa,IACb,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,GAAG,CAAC,MAAM,EACzB,UAAU,EAAE,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACxD,YAAY,EAAE,YAAY,GACzB,CACF;aACD,CAAC,CAAC;YAEH,OAAO,GAAG,EAAE;gBACX,UAAU,EAAE,CAAC;gBACb,eAAe,EAAE,CAAC;gBAClB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAiBrD,MAAM,CAAC,MAAM,sBAAsB,GAAG,2BAA2B,CAAC;AAElE,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC,kFAAkF;AAClF,SAAS,aAAa,CAAC,KAAyB;IAC/C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACxE,OAAO,0BAA0B,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAO,GAAuB,EAAE;IACvE,2EAA2E;IAC3E,gDAAgD;IAChD,IAAI,kBAAkB,GAAG,OAAO,CAAC,WAAW,KAAK,KAAK,CAAC;IACvD,IAAI,gBAAgB,GAAG,aAAa,CACnC,OAAO,OAAO,CAAC,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC/E,CAAC;IAEF,OAAO;QACN,EAAE,EAAE,sBAAsB;QAC1B,IAAI,EAAE,cAAc;QAEpB,KAAK,CAAC,GAAkB;YACvB,wDAAwD;YACxD,IAAI,UAAU,GAAwB,IAAI,GAAG,EAAE,CAAC;YAChD,2DAA2D;YAC3D,IAAI,YAAY,GAAkB,IAAI,CAAC;YAEvC,mEAAmE;YACnE,MAAM,gBAAgB,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAsB,sBAAsB,EAAE,CAAC,CAAC,EAAE,EAAE;gBACzF,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,SAAS;oBAAE,kBAAkB,GAAG,CAAC,CAAC,OAAO,CAAC;gBACnE,IAAI,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ;oBAAE,gBAAgB,GAAG,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC3E,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;YACvC,CAAC,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAC/B,uBAAuB,EACvB,CAAC,IAAI,EAAE,EAAE;gBACR,sDAAsD;gBACtD,8DAA8D;gBAC9D,oBAAoB;gBACpB,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC;gBACtB,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC;gBAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACd,KAAK,MAAM,EAAE,IAAI,IAAI,EAAE,CAAC;wBACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;4BACzB,OAAO,GAAG,IAAI,CAAC;4BACf,MAAM;wBACP,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,OAAO,EAAE,CAAC;oBACb,sDAAsD;oBACtD,mDAAmD;oBACnD,4CAA4C;oBAC5C,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC,CACD,CAAC;YAEF,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CACpC,qBAAqB,EACrB,CAAC,IAAI,EAAE,EAAE;gBACR,IAAI,YAAY,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;oBAC9B,YAAY,GAAG,IAAI,CAAC,EAAE,CAAC;oBACvB,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;gBACvC,CAAC;YACF,CAAC,CACD,CAAC;YAEF,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnB,EAAE,EAAE,YAAY;gBAChB,KAAK,EAAE,EAAE;gBACT,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,CACtB,KAAC,aAAa,IACb,GAAG,EAAE,SAAS,EACd,aAAa,EAAE,GAAG,CAAC,MAAM,EACzB,UAAU,EAAE,UAAU,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EACxD,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,kBAAkB,EAC/B,gBAAgB,EAAE,gBAAgB,GACjC,CACF;aACD,CAAC,CAAC;YAEH,OAAO,GAAG,EAAE;gBACX,UAAU,EAAE,CAAC;gBACb,eAAe,EAAE,CAAC;gBAClB,gBAAgB,EAAE,CAAC;gBACnB,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@edv4h/usketch-dom-renderer",
3
- "version": "2.0.5",
3
+ "version": "2.1.0",
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.4.0"
15
+ "@edv4h/usketch-shared": "4.6.0"
16
16
  },
17
17
  "peerDependencies": {
18
18
  "react": ">=19",
@@ -21,8 +21,8 @@
21
21
  "devDependencies": {
22
22
  "@types/react": "19.2.17",
23
23
  "@types/react-dom": "19.2.3",
24
- "typescript": "5.9.3",
25
- "vitest": "3.2.7"
24
+ "typescript": "7.0.2",
25
+ "vitest": "4.1.10"
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"