feat(canvas): replace repulsion with snap guides + drop suggestion

Remove ambient repulsion loop (shapes drifting apart at 60fps). Add
Figma-style snap alignment guides during drag with magnetic stickiness,
and ghost drop suggestion when shapes overlap after drop.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-03-22 14:28:32 -07:00
parent 4b08a02851
commit ac402c29e9
2 changed files with 3 additions and 3 deletions

View File

@ -296,7 +296,6 @@ export class FolkShape extends FolkElement {
this.requestUpdate("rotation");
}
static GAP = 8; // minimum gap between shapes
static pushExemptTags = new Set(["folk-arrow", "folk-slide", "folk-shape"]);
#highlighted = false;

View File

@ -3971,8 +3971,9 @@
// Keyboard shortcuts for canvas tools
document.addEventListener("keydown", (e) => {
// Skip when typing in inputs
if (e.target.tagName === "INPUT" || e.target.tagName === "TEXTAREA" || e.target.isContentEditable) return;
// Skip when typing in inputs (composedPath pierces shadow DOM)
const t = e.composedPath()[0];
if (t?.tagName === "INPUT" || t?.tagName === "TEXTAREA" || t?.isContentEditable) return;
if (e.key === "Escape") {
// Dismiss reminder widget if open