46 lines
2.0 KiB
Markdown
46 lines
2.0 KiB
Markdown
---
|
|
id: TASK-70
|
|
title: Default selector tool with marquee multi-select
|
|
status: Done
|
|
assignee: []
|
|
created_date: '2026-02-28 00:36'
|
|
updated_date: '2026-02-28 00:36'
|
|
labels:
|
|
- canvas
|
|
- UX
|
|
- selection
|
|
dependencies: []
|
|
references:
|
|
- lib/folk-shape.ts
|
|
- website/canvas.html
|
|
priority: high
|
|
---
|
|
|
|
## Description
|
|
|
|
<!-- SECTION:DESCRIPTION:BEGIN -->
|
|
Replace single-click-to-pan with selector as the default canvas tool. Left-click-drag on background draws a blue marquee rectangle to select multiple shapes. Shift/Ctrl+click toggles additive selection. Panning moves to Space+drag, middle-click, or wheel/trackpad. Delete/Backspace removes all selected shapes. folk-shape highlighted state shows blue selection outline.
|
|
<!-- SECTION:DESCRIPTION:END -->
|
|
|
|
## Acceptance Criteria
|
|
<!-- AC:BEGIN -->
|
|
- [x] #1 Click canvas background → nothing selected, no pan
|
|
- [x] #2 Click-drag on background → blue marquee rectangle appears
|
|
- [x] #3 Release marquee → all overlapping shapes highlighted with blue outline
|
|
- [x] #4 Shift+click a shape → adds/removes from selection
|
|
- [x] #5 Click a single shape → only that shape selected
|
|
- [x] #6 Hold Space + drag → pans the canvas (cursor shows grab)
|
|
- [x] #7 Middle-click + drag → pans the canvas
|
|
- [x] #8 Two-finger scroll → still pans (unchanged)
|
|
- [x] #9 Ctrl+scroll → still zooms (unchanged)
|
|
- [x] #10 Delete/Backspace → removes all selected shapes
|
|
- [x] #11 Click toolbar tool → crosshair cursor → click to place (unchanged)
|
|
- [x] #12 bunx tsc --noEmit passes
|
|
<!-- AC:END -->
|
|
|
|
## Final Summary
|
|
|
|
<!-- SECTION:FINAL_SUMMARY:BEGIN -->
|
|
Implemented default selector tool with marquee multi-select. Changed folk-shape.ts highlighted CSS to show blue outline. Rewrote canvas.html pointer handlers: left-click-drag draws marquee selection rectangle, Space+drag and middle-click for panning, Shift/Ctrl+click for additive selection, Delete/Backspace to remove selected shapes. Commit 1d8fc2b on dev, merged to main.
|
|
<!-- SECTION:FINAL_SUMMARY:END -->
|