Skip to content

Restore painting group sets and tile swap interactions - #48

Merged
annie2013 merged 2 commits into
mainfrom
restore/group-selection-and-swap
Oct 26, 2026
Merged

annie2013 merged 2 commits into
mainfrom
restore/group-selection-and-swap

Conversation

@annie2013

@annie2013 annie2013 commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Restore the feature-pane group selector as destination ← {sources}. Left-click chooses a destination; right-click chooses a source; Shift-right-click toggles sources. E/F/Shift-F use the group under the pointer, including tiles and feature points. The brush/lasso tools stay on the first row with the set notation and extra top padding. Short source lists hug their braces; long lists wrap inside braces spanning all rows. Remaining groups wrap on the row below, with + at the end for the first unused destination. Remove the numeric destination field and standalone merge/swap buttons.

S works while hovering a tile, making it the swap source. A centred prompt focuses a target input: type a group number and press Enter, click a target tile, or use −1/+1 when the adjacent number is empty. Escape/navigation cancels. The source retains the original hover glow; completed swaps and drag merges jiggle their updated result tiles with the existing settling animation. Edits retain full-population undo/redo.

Tile clicks bring that group’s feature points forward independently of the painting source set. GPU depth ordering reuses existing buffers; a browser regression checks coincident-point colours and confirms no feature-buffer uploads. Completion animations use small cached plot composites after the new plots are ready.

Simplify Edit history to undo/redo and the action list: remove storage-location wording, completion checkmarks and export/duplicate buttons. Cut downloads remain available through Ctrl/Cmd-S and organiser drag data.

Validation: production Rust/Wasm + TypeScript/Vite build and all 12 unit tests pass. All 35 browser scenarios pass, including the two optional private-recording/9M-spike fixtures. Coverage checks exact multi-source labels, source hover shortcuts, compact and wrapped brace geometry, focused click/type swap controls, persistent glow, completion jiggles, cut histories, exports and the generated 9M-spike stress workload. GitHub Actions passes the final commit: production build, 14 Rust tests, 12 unit tests and 33 browser scenarios (the two private-fixture scenarios run separately on the development machine).

@annie2013
annie2013 merged commit 8f4c42e into main Oct 26, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant