- Duplicate: derive the shift delta from the copy's actual bounding box (not the group frame, since a
member can protrude after individual editing) and apply one uniform delta with no per-clone clamp, so
the copy's internal layout is preserved exactly. Falls back to a negative shift when the group is
pinned to an edge (no more copy-on-top-of-original).
- Mirror: skip whole LOCKED sub-branches as a unit (collect members without crossing a locked box) so a
nested sub-group frame and its children always mirror together; clamp the whole reflected interval
(keeps box size, stays on-canvas) instead of one edge; validate the axis.
JS parses clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>