- Extract parseConveyanceLabel to shared label-utils.ts (was duplicated)
- Add EXTENDO_CONFIG, LABEL_CONFIG, CONVEYANCE_STYLE to symbol-config.ts
- Replace all hardcoded fill/stroke/lineWidth with CONVEYANCE_STYLE
- Replace magic font numbers (14, 4, 0.5) with LABEL_CONFIG constants
- Extract drawSpurSymbol, drawExtendoSymbol, drawRectConveyanceSymbol
from inline code — drawSymbolBody is now a clean dispatch
- Convert getIgnitionTagPath from 18 if-statements to data-driven table
- Add THEME.marquee for selection rectangle colors
- Remove no-op assignment in parseConveyanceLabel
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Wrap each conveyance shape + its label text in a <g> element so
rotation/mirror transforms apply to both shape and text together
- Change stroke-width from 0.5 to 1 on all conveyance and PE shapes
(both canvas renderer and SVG export)
- Text is now inside the group, inheriting the transform — no more
floating unrotated labels
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Change all conveyance SVGs from black fill to white fill with black stroke
- Update programmatic rendering (curves, induction, spur) to white fill
- Replace PE 3-slice rendering with programmatic canvas paths for
consistent stroke width at any size
- Reduce PE default size from 56x20 to 30x14 to fit around conveyor devices
- Update SVG export to match new white fills
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Increase EPC line width from 0.4 to 1.5 for visibility
- Increase right box stroke from 0.3 to 1.0 to match left icon stroke
- Fix right box to extend behind last waypoint (like left icon), not forward
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add search filter to Devices tab in right dock
- Add IDs tab: flat list of unassigned device IDs, drag onto placed symbol to assign label
- Highlight drop target symbol with cyan glow during label drag
- Add labelDropTarget state and dropTarget theme entry
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>