# WireDraw Feature Roadmap ## Backlog (work top-to-bottom) ### Routing & Canvas - [x] 11. **Curved / arc routing** — third route mode (∿ Curved) that draws smooth bezier curves instead of right-angle or straight; toggle alongside Ortho/Direct - [x] 12. **Grid snap** — optional snap-to-grid (10px); toggle button in toolbar + G shortcut - [x] 13. **Straighten wire** — right-click a wire → "Straighten" clears all saved waypoints and re-routes from scratch - [x] 14. **Zoom to selection** — right-click multi-select → "Zoom to selection"; Shift+F shortcut - [x] 15. **Wire labels on canvas** — wire label + length rendered mid-wire as a small tag ### Right-Click Menu Additions - [x] 16. **Align & distribute** — right-click multi-select → Align Left / Align Right / Align Top / Align Bottom / Distribute Horizontally / Distribute Vertically - [x] 17. **Send to back / Bring to front** — right-click any device → layer order shortcuts (especially useful for Section Boxes) - [x] 18. **Copy wire properties** — right-click a wire → "Copy style"; then right-click another wire → "Paste style" to apply color/gauge/stripe - [x] 19. **Select all wires on net** — right-click a wire → "Select all on net" highlights every wire sharing the same wire label/net name - [x] 20. **Lock device** — right-click → "Lock position" prevents accidental moves; locked devices show a padlock badge ### Productivity - [ ] 21. **Find / search** — toolbar search box filters devices by reference/label and highlights matches on canvas; Ctrl+F shortcut - [x] 22. **Import JSON** — drag-and-drop or File→Import a previously exported JSON to restore a diagram - [x] 23. **Duplicate diagram** — diagram list context menu → "Duplicate" clones all devices and wires under a new name - [x] 24. **DRC / design-rule check** — one-click check that flags: unconnected pins, duplicate references, wires with no length set, missing part numbers; results shown in a panel - [ ] 25. **Pin part numbers** — each pin row in the properties panel has a "Contact P/N" field; shows up correctly in BOM export as a separate line item - [x] 1. **Right-click context menu** — quick actions on devices (duplicate, delete, add pin, save to library) and wires (delete, clear waypoints) - [x] 2. **Multiple sheets per project** — each diagram can have named pages/sheets; off-page connector stubs link nets across sheets - [x] 3. **Grouping / section box** — draw a labeled rectangle around any area of the canvas for visual organization - [ ] 4. **Pin part numbers** — each pin on a device has its own contact/terminal part number; shows up correctly in BOM export - [ ] 5. **Signal names** — net-level labels independent of wire labels; a signal name can span multiple wires; clicking a signal highlights all wires on that net - [x] 6. **Shielded cable marker** — flag on a wire/cable indicating shielding; renders as a dashed outer outline; shows in BOM and cutlist - [x] 7. **Twisted pair marker** — flag + twist pitch field for CAN-bus and differential signal pairs; renders as a helical decoration; shows in cutlist - [x] 8. **Multi-conductor cables** — a cable object that groups N wires under one jacket; single cable part number in BOM; conductors shown as child wires - [x] 9. **1:1 formboard view** — a separate view/export where wire routing lengths are true scale so the diagram can be printed and used as a build board - [x] 10. **Octopart API integration** — part number lookup & validation against live catalog; auto-fill manufacturer, description, and datasheet link ## Completed - [x] Octopart/Nexar integration (🔍 button on Part Number; auto-fills manufacturer, description, datasheet; BOM export includes description+datasheet columns) - [x] Multi-conductor cables (cable device type; jacket + conductor row rendering; conductor color/name editor; cable section in BOM & assembly) - [x] Twisted pair marker (checkbox + pitch field; white helix overlay on wire; stored in DB) - [x] Multiple sheets per project (tab bar, add/rename/delete, per-sheet devices & wires) - [x] Connector / device library with drag-to-canvas - [x] Custom connector CRUD (modal + backend) - [x] Wire drawing with ortho/direct routing and waypoints - [x] Wire jump arcs at crossings - [x] Multi-select + rubber-band selection - [x] Multi-device drag (wires follow) - [x] Resize handles on devices - [x] Text wrapping + font size per device - [x] Copy / paste / duplicate - [x] Undo (Ctrl+Z / button) - [x] BOM CSV export - [x] Assembly TXT export - [x] JSON export - [x] PNG export - [x] Wire properties: color, stripe, gauge, length, notes - [x] Pin side switching + add/remove pins