@vectoriox/iox-builder 1.6.5 → 1.6.6

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.
@@ -2819,7 +2819,11 @@ class RenderDirective {
2819
2819
  if (nativeEl) {
2820
2820
  nativeEl.style.display = 'block';
2821
2821
  }
2822
- if (nativeEl) {
2822
+ // Preview clones (repeater/slider-generated rows) are display-only — only the
2823
+ // template node is selectable/editable. Skip overlay registration + interaction
2824
+ // wiring for them so they can't be hovered, selected, or edited on the canvas.
2825
+ const isPreviewClone = !!node.__previewClone;
2826
+ if (nativeEl && !isPreviewClone) {
2823
2827
  // Register node → element mapping for parent lookups
2824
2828
  this.overlayService.registerNode(node, nativeEl, componentRef);
2825
2829
  // Notify BindingsComponent so it re-applies bindings on the new
@@ -2865,7 +2869,10 @@ class RenderDirective {
2865
2869
  });
2866
2870
  }
2867
2871
  // Wire up interactions (animations) after the element is in the DOM.
2868
- this.interactionEngine.attach(node);
2872
+ // Preview clones are static rows — no per-clone interaction wiring.
2873
+ if (!isPreviewClone) {
2874
+ this.interactionEngine.attach(node);
2875
+ }
2869
2876
  }
2870
2877
  /** Try setInput(); fall back to direct assignment for non-@Input properties. */
2871
2878
  safeSetInput(ref, name, value) {
@@ -5076,6 +5083,10 @@ function cloneNodesForItem(nodes, item) {
5076
5083
  clone.id = Math.random().toString(36).substr(2, 9);
5077
5084
  // Point this clone and all its descendants at the original CSS rule.
5078
5085
  clone.styleId = cssId;
5086
+ // Mark as a preview clone: display-only, not selectable/editable on the canvas.
5087
+ // (Distinct from styleId, which duplication/paste also uses.) The render directive
5088
+ // skips overlay registration for nodes carrying this flag.
5089
+ clone.__previewClone = true;
5079
5090
  if (clone.bindings?.length && item) {
5080
5091
  for (const binding of clone.bindings) {
5081
5092
  const value = resolvePath(item, binding.path);