diff --git a/lib/folk-shape.ts b/lib/folk-shape.ts index d84f43b..99ed6cc 100644 --- a/lib/folk-shape.ts +++ b/lib/folk-shape.ts @@ -112,6 +112,25 @@ const styles = css` transition: opacity 0.3s ease, filter 0.3s ease; } + [part="forgotten-tooltip"] { + display: none; + position: absolute; + top: -32px; + left: 50%; + transform: translateX(-50%); + background: rgba(0,0,0,0.85); + color: #fff; + font-size: 11px; + padding: 4px 10px; + border-radius: 6px; + white-space: nowrap; + pointer-events: none; + z-index: 9999; + } + :host(:state(forgotten)):hover [part="forgotten-tooltip"] { + display: block; + } + :host(:state(move)), :host(:state(rotate)), :host(:state(resize-top-left)), @@ -351,7 +370,8 @@ export class FolkShape extends FolkElement { -
`, +
+
Forgotten — right-click to remember or delete
`, ); this.#handles = Object.fromEntries( diff --git a/website/canvas.html b/website/canvas.html index 1abe39f..de29f44 100644 --- a/website/canvas.html +++ b/website/canvas.html @@ -663,6 +663,10 @@ overflow: visible; } + #canvas-content.hide-forgotten :state(forgotten) { + display: none !important; + } + #select-rect { position: fixed; border: 1.5px solid #3b82f6; @@ -1128,6 +1132,7 @@ + @@ -2907,6 +2912,18 @@ if (isOpen) renderMemoryPanel(); }); + // Hide Faded toggle — hides all forgotten shapes from the canvas + const hideForgottenBtn = document.getElementById("toggle-hide-forgotten"); + if (localStorage.getItem("rspace_hide_forgotten") === "1") { + canvasContent.classList.add("hide-forgotten"); + hideForgottenBtn.classList.add("active"); + } + hideForgottenBtn.addEventListener("click", () => { + const hidden = canvasContent.classList.toggle("hide-forgotten"); + hideForgottenBtn.classList.toggle("active", hidden); + localStorage.setItem("rspace_hide_forgotten", hidden ? "1" : "0"); + }); + // Refresh panel when shapes change state via remote sync sync.addEventListener("shape-forgotten", () => { if (memoryPanel.classList.contains("open")) renderMemoryPanel(); @@ -2977,7 +2994,7 @@ const btn = e.target.closest("button"); if (!btn) return; // Keep open for connect, memory, group toggles, collapse, whiteboard tools - const keepOpen = ["new-arrow", "toggle-memory", "toggle-theme", "zoom-in", "zoom-out", "reset-view", "toolbar-collapse", + const keepOpen = ["new-arrow", "toggle-memory", "toggle-hide-forgotten", "toggle-theme", "zoom-in", "zoom-out", "reset-view", "toolbar-collapse", "wb-pencil", "wb-rect", "wb-circle", "wb-line", "wb-eraser"]; if (btn.classList.contains("toolbar-group-toggle")) return; if (!keepOpen.includes(btn.id)) {