velxio/frontend/src/pages
David Montero Crespo bd5fd18756 feat(canvas): keyboard shortcuts + toolbar undo/redo buttons
UI-facing half of the undo/redo feature. Combined with the previous two
commits, Ctrl+Z (or the toolbar button) now reverses every canvas
mutation: add/remove component, move, rotate, set property, add/remove
wire.

EditorPage.tsx:
- New window-keydown effect for Ctrl+Z / Ctrl+Y / Ctrl+Shift+Z (and the
  Cmd equivalents). Uses the same input/textarea/contenteditable guard
  as the existing Ctrl+S handler — Monaco's per-file undo and the AI
  chat composer keep their own behaviour.

SimulatorCanvas.tsx:
- Two icon buttons (undo + redo) added to the canvas header, between
  the board selector and the Serial Monitor toggle. Tooltip surfaces
  the next command's description ("Undo: Add LED (Ctrl+Z)") so the
  user knows exactly what's about to revert. Buttons disable when the
  stack is empty in that direction.
- New `canvas-icon-btn` CSS class for square 32×32 icon-only buttons
  (matches the visual weight of the existing Serial button without
  the label).
- Subscribes to history / historyIndex via store selectors so the
  buttons re-render reactively as commands are pushed/undone.

No new tests — the store-level coverage from 99ed22b already exercises
undo/redo round trips. UI affordances are wired pass-through to those
store APIs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-08 12:11:53 -03:00
..
AboutPage.css feat(about): real avatar + Recent releases section linking to /v2 and /v2-5 2026-05-08 11:20:38 -03:00
AboutPage.tsx chore(about): refresh community stats 2026-05-08 11:28:47 -03:00
AdminPage.tsx feat: add data-velxio-slot markers for overlay portal targets 2026-05-04 23:28:02 -03:00
ArduinoEmulatorPage.tsx fix(docs): RISC-V emulation goes through QEMU, not a TypeScript browser core 2026-05-07 21:56:29 +02:00
ArduinoMegaSimulatorPage.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
ArduinoSimulatorPage.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
AtmegaSimulatorPage.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
Attiny85SimulatorPage.tsx SEO improvements 2026-04-30 00:27:39 -03:00
CircuitSimulatorPage.tsx SEO improvements 2026-04-30 00:27:39 -03:00
CustomChipSimulatorPage.tsx SEO improvements 2026-04-30 00:27:39 -03:00
DocsPage.css refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
DocsPage.tsx fix(docs): RISC-V emulation goes through QEMU, not a TypeScript browser core 2026-05-07 21:56:29 +02:00
EditorPage.tsx feat(canvas): keyboard shortcuts + toolbar undo/redo buttons 2026-05-08 12:11:53 -03:00
ElectronicsSimulatorPage.tsx fix(docs): RISC-V emulation goes through QEMU, not a TypeScript browser core 2026-05-07 21:56:29 +02:00
Esp32C3SimulatorPage.tsx fix(docs): RISC-V emulation goes through QEMU, not a TypeScript browser core 2026-05-07 21:56:29 +02:00
Esp32S3SimulatorPage.tsx fix(install): unblock self-hosting + drop forced wokwi clones 2026-05-04 00:04:11 -03:00
Esp32SimulatorPage.tsx fix(docs): RISC-V emulation goes through QEMU, not a TypeScript browser core 2026-05-07 21:56:29 +02:00
ExampleDetailPage.tsx feat(examples): real canvas screenshots as gallery thumbnails 2026-05-07 22:44:10 +02:00
ExampleLoaderPage.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
ExamplesPage.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
LandingPage.css refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
LandingPage.tsx fix(docs): RISC-V emulation goes through QEMU, not a TypeScript browser core 2026-05-07 21:56:29 +02:00
LoginPage.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
PricingPlaceholder.tsx feat(frontend): /pricing route placeholder + UserResponse subscription fields 2026-05-05 10:24:01 -03:00
ProjectByIdPage.tsx feat: persist multi-board projects + add auto-save 2026-05-01 13:43:33 -03:00
ProjectPage.tsx feat: persist multi-board projects + add auto-save 2026-05-01 13:43:33 -03:00
RaspberryPiPicoSimulatorPage.tsx fix(install): unblock self-hosting + drop forced wokwi clones 2026-05-04 00:04:11 -03:00
RaspberryPiSimulatorPage.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
RegisterPage.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
SEOPage.css refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
SpiceSimulatorPage.tsx SEO improvements 2026-04-30 00:27:39 -03:00
UserProfilePage.css refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
UserProfilePage.tsx refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
Velxio2Page.css refactor: rename components and update prefixes to 'velxio-' for consistency 2026-04-21 16:45:45 -03:00
Velxio2Page.tsx fix(docs): RISC-V emulation goes through QEMU, not a TypeScript browser core 2026-05-07 21:56:29 +02:00
Velxio25Page.tsx feat: add /v2-5 release landing page for Velxio 2.5 (SPICE) 2026-04-24 16:42:47 +02:00