velxio/frontend/src/utils
David Montero Crespo c9fe6f199d feat(editor): folders - create/delete folder trees in the file explorer
File names may now carry '/' paths; the explorer renders each board group
as a collapsible folder tree (folders first, files in group order, CSS-var
indentation because .fe-file-item pins padding with !important). New-folder
buttons on the board header and per-folder hover actions (new file here,
new subfolder, delete with confirm when files are inside; a folder holding
every file of the group cannot be deleted - groups keep >= 1 file).

Model: names are the source of truth; only EMPTY folders are tracked
(folderGroups per group) so they survive until a file lands in them, then
materialise into the name prefix. Round-trips through .vlx (optional
folderGroups field, laxly validated), the auth stash draft, and
loadProjectState. Examples gain boards[].files so a single board can ship
a full multi-file tree (first entry = main sketch).

Backend: the arduino-cli sketch writer now creates subdirectories for
'/'-pathed names and REJECTS names that resolve outside the sketch dir
('..' traversal) - previously it crashed on the former and wrote outside
the tmp dir on the latter.
2026-08-05 06:48:38 +02:00
..
analytics.ts
…
boardPinMapping.ts fix(pi): perifericos completos en la familia Pi — entradas, buses y pines 2026-07-29 17:05:39 +02:00
boardProtocols.ts fix(uart): la Pi puede hablar por serie con la placa de al lado 2026-07-29 07:40:13 +02:00
breadboardNets.ts
…
breadboardOccupancy.ts feat(breadboard): one-hole-one-wire selection rules + jumper colors 2026-07-21 05:49:23 +02:00
breadboardSnap.ts fix(breadboard): land agent-seated parts exactly under rotation 2026-07-19 22:01:41 +02:00
captureCanvasPreview.ts
…
compilationLogger.ts
…
countryFlag.ts
…
dropSlot.ts feat(canvas): ver donde cae lo que anades, y clicks con sentido 2026-07-30 15:40:52 +02:00
esp32ImageParser.ts
…
exampleToBuildNetlistInput.ts
…
fatImage.ts feat(sd): live Card contents in the SD panel - list and download what the sketch wrote 2026-08-04 16:29:54 +02:00
firmwareLoader.ts
…
generateExamplePreview.tsx
…
hexParser.ts
…
importProject.ts
…
keyButtonBindings.ts feat(simulator): map pushbuttons to keyboard keys 2026-07-18 04:02:01 +02:00
loadExample.ts feat(editor): folders - create/delete folder trees in the file explorer 2026-08-05 06:48:38 +02:00
piUpload.ts feat(pi-family): one-click run UX — autoRun + guestHome + clean serial mirror 2026-07-28 16:28:02 +02:00
pinInspectorLayout.ts fix(ui): a column is a RUN of pads, not two opposite ends of the board 2026-08-04 03:01:21 +02:00
pinPositionCalculator.ts feat(breadboard): green dots on pins plugged into a breadboard 2026-07-20 04:48:16 +02:00
projectPayload.ts
…
reservedUsernames.ts
…
sdCardFiles.ts feat(sd): source files stay off the card - only project DATA files auto-copy 2026-08-04 19:58:31 +02:00
socketSnap.ts fix(sockets): a board a hair off the seat is still plugged in 2026-08-01 06:14:43 +02:00
useSEO.ts
…
useTouchDevice.ts
…
uuid.ts
…
vlxFile.ts feat(editor): folders - create/delete folder trees in the file explorer 2026-08-05 06:48:38 +02:00
wireAutoRoute.ts fix(router): escape corridors for endpoint-in-obstacle + checked-elbow parity 2026-07-20 21:35:58 +02:00
wireColors.ts
…
wireHitDetection.ts feat(breadboard): Wokwi-style parts-on-breadboard — hole snapping + invisible seating wires 2026-07-18 08:47:25 +02:00
wireUtils.ts feat(breadboard): one-hole-one-wire selection rules + jumper colors 2026-07-21 05:49:23 +02:00
wokwiZip.ts feat(breadboard): Wokwi-style parts-on-breadboard — hole snapping + invisible seating wires 2026-07-18 08:47:25 +02:00
workspaceDraft.ts feat(editor): folders - create/delete folder trees in the file explorer 2026-08-05 06:48:38 +02:00