@tscircuit/schematic-trace-solver 0.0.148 → 0.0.150

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/.agents/skills/schematic-trace-visualization/SKILL.md +7 -2
  2. package/dist/index.d.ts +31 -2
  3. package/dist/index.js +127 -46
  4. package/lib/solvers/InlineNetLabelSolver/InlineNetLabelSolver.ts +115 -6
  5. package/lib/solvers/NetLabelPlacementSolver/NetLabelPlacementSolver.ts +17 -1
  6. package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/SingleNetLabelPlacementSolver.ts +2 -0
  7. package/lib/solvers/NetLabelPlacementSolver/SingleNetLabelPlacementSolver/solvePortOnlyPin.ts +2 -0
  8. package/lib/types/InputProblem.ts +27 -1
  9. package/package.json +8 -1
  10. package/site/examples/example51.page.tsx +4 -0
  11. package/tests/assets/example51.json +5102 -0
  12. package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +751 -5
  13. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +660 -5
  14. package/tests/bug-reports/bug-report-20260707T020342Z/__snapshots__/bug-report-20260707T020342Z.snap.svg +44 -5
  15. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +394 -5
  16. package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +170 -5
  17. package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +79 -5
  18. package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +219 -5
  19. package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +65 -5
  20. package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +142 -5
  21. package/tests/bug-reports/bug-report-20260707T230831Z/__snapshots__/bug-report-20260707T230831Z.snap.svg +100 -5
  22. package/tests/bug-reports/bug-report-20260708T053736Z/__snapshots__/bug-report-20260708T053736Z.snap.svg +23 -5
  23. package/tests/bug-reports/bug-report-20260708T055430Z/__snapshots__/bug-report-20260708T055430Z.snap.svg +58 -5
  24. package/tests/bug-reports/bug-report-20260708T095725Z/__snapshots__/bug-report-20260708T095725Z.snap.svg +86 -5
  25. package/tests/bug-reports/bug-report-20260716T144856Z/__snapshots__/bug-report-20260716T144856Z.snap.svg +226 -5
  26. package/tests/bug-reports/bug-report-20260717T022934Z/__snapshots__/bug-report-20260717T022934Z.snap.svg +191 -5
  27. package/tests/bug-reports/bug-report-20260717T031704Z/__snapshots__/bug-report-20260717T031704Z.snap.svg +30 -5
  28. package/tests/bug-reports/bug-report-20260717T042845Z/__snapshots__/bug-report-20260717T042845Z.snap.svg +37 -5
  29. package/tests/bug-reports/bug-report-20260721T221026Z/__snapshots__/bug-report-20260721T221026Z.snap.svg +580 -2
  30. package/tests/bug-reports/bug-report-20260724T175257Z/__snapshots__/bug-report-20260724T175257Z.snap.svg +44 -5
  31. package/tests/bug-reports/bug-report-20260728T144234Z/__snapshots__/bug-report-20260728T144234Z.snap.svg +107 -5
  32. package/tests/bug-reports/bug-report-20260728T225606Z/__snapshots__/bug-report-20260728T225606Z.snap.svg +114 -5
  33. package/tests/bug-reports/bug-report-20260730T061837Z/__snapshots__/bug-report-20260730T061837Z.snap.svg +121 -5
  34. package/tests/bug-reports/bug-report-20260731T052229Z/__snapshots__/bug-report-20260731T052229Z.snap.svg +51 -5
  35. package/tests/bug-reports/bug-report-20260804T095800Z/__snapshots__/bug-report-20260804T095800Z.snap.svg +212 -5
  36. package/tests/bug-reports/bug-report-20260804T171919Z/__snapshots__/bug-report-20260804T171919Z.snap.svg +569 -5
  37. package/tests/bug-reports/bug-report-20260804T225912Z/__snapshots__/bug-report-20260804T225912Z.snap.svg +37 -5
  38. package/tests/bug-reports/bug-report-20260805T061316Z/__snapshots__/bug-report-20260805T061316Z.snap.svg +289 -5
  39. package/tests/bug-reports/bug-report-20260806T061548Z/__snapshots__/bug-report-20260806T061548Z.snap.svg +289 -5
  40. package/tests/bug-reports/bug-report-20260806T093501Z/__snapshots__/bug-report-20260806T093501Z.snap.svg +149 -5
  41. package/tests/bug-reports/bug-report-20260811T075142Z/__snapshots__/bug-report-20260811T075142Z.snap.svg +93 -5
  42. package/tests/bug-reports/bug-report-20260815T073240Z/__snapshots__/bug-report-20260815T073240Z.snap.svg +79 -5
  43. package/tests/bug-reports/bug-report-20260819T091818Z/__snapshots__/bug-report-20260819T091818Z.snap.svg +244 -2
  44. package/tests/examples/__snapshots__/example01.snap.svg +44 -5
  45. package/tests/examples/__snapshots__/example02.snap.svg +51 -5
  46. package/tests/examples/__snapshots__/example03.snap.svg +86 -5
  47. package/tests/examples/__snapshots__/example04.snap.svg +30 -5
  48. package/tests/examples/__snapshots__/example05.snap.svg +30 -5
  49. package/tests/examples/__snapshots__/example06.snap.svg +30 -5
  50. package/tests/examples/__snapshots__/example07.snap.svg +58 -5
  51. package/tests/examples/__snapshots__/example08.snap.svg +37 -5
  52. package/tests/examples/__snapshots__/example09.snap.svg +149 -5
  53. package/tests/examples/__snapshots__/example10.snap.svg +65 -5
  54. package/tests/examples/__snapshots__/example11.snap.svg +51 -5
  55. package/tests/examples/__snapshots__/example12.snap.svg +51 -5
  56. package/tests/examples/__snapshots__/example13.snap.svg +72 -5
  57. package/tests/examples/__snapshots__/example14.snap.svg +79 -5
  58. package/tests/examples/__snapshots__/example15.snap.svg +86 -5
  59. package/tests/examples/__snapshots__/example16.snap.svg +51 -5
  60. package/tests/examples/__snapshots__/example17.snap.svg +51 -5
  61. package/tests/examples/__snapshots__/example18.snap.svg +58 -5
  62. package/tests/examples/__snapshots__/example19.snap.svg +44 -5
  63. package/tests/examples/__snapshots__/example20.snap.svg +44 -5
  64. package/tests/examples/__snapshots__/example21.snap.svg +72 -5
  65. package/tests/examples/__snapshots__/example22.snap.svg +51 -5
  66. package/tests/examples/__snapshots__/example23.snap.svg +51 -5
  67. package/tests/examples/__snapshots__/example24.snap.svg +51 -5
  68. package/tests/examples/__snapshots__/example25.snap.svg +86 -5
  69. package/tests/examples/__snapshots__/example26.snap.svg +51 -5
  70. package/tests/examples/__snapshots__/example27.snap.svg +72 -5
  71. package/tests/examples/__snapshots__/example28.snap.svg +44 -5
  72. package/tests/examples/__snapshots__/example29.snap.svg +324 -5
  73. package/tests/examples/__snapshots__/example30.snap.svg +107 -5
  74. package/tests/examples/__snapshots__/example31.snap.svg +37 -5
  75. package/tests/examples/__snapshots__/example32.snap.svg +149 -5
  76. package/tests/examples/__snapshots__/example33.snap.svg +93 -5
  77. package/tests/examples/__snapshots__/example34.snap.svg +51 -5
  78. package/tests/examples/__snapshots__/example35.snap.svg +58 -5
  79. package/tests/examples/__snapshots__/example36.snap.svg +44 -5
  80. package/tests/examples/__snapshots__/example37.snap.svg +72 -5
  81. package/tests/examples/__snapshots__/example38.snap.svg +30 -5
  82. package/tests/examples/__snapshots__/example39.snap.svg +37 -5
  83. package/tests/examples/__snapshots__/example40.snap.svg +100 -5
  84. package/tests/examples/__snapshots__/example41.snap.svg +44 -5
  85. package/tests/examples/__snapshots__/example42.snap.svg +65 -5
  86. package/tests/examples/__snapshots__/example43.snap.svg +58 -5
  87. package/tests/examples/__snapshots__/example44.snap.svg +107 -5
  88. package/tests/examples/__snapshots__/example45.snap.svg +51 -5
  89. package/tests/examples/__snapshots__/example46.snap.svg +93 -5
  90. package/tests/examples/__snapshots__/example47.snap.svg +93 -5
  91. package/tests/examples/__snapshots__/example48.snap.svg +65 -5
  92. package/tests/examples/__snapshots__/example49.snap.svg +177 -5
  93. package/tests/examples/__snapshots__/example50.snap.svg +93 -5
  94. package/tests/examples/__snapshots__/example51.snap.svg +952 -0
  95. package/tests/examples/example51.test.ts +12 -0
  96. package/tests/fixtures/convertSolverOutputToCircuitJson.test.ts +219 -0
  97. package/tests/fixtures/convertSolverOutputToCircuitJson.ts +1058 -0
  98. package/tests/fixtures/matcher.ts +45 -8
  99. package/tests/repros/__snapshots__/board-1273-trace-overlap-cycle.snap.svg +762 -2
  100. package/tests/repros/__snapshots__/board-15984-same-net-junction.snap.svg +111 -2
  101. package/tests/repros/__snapshots__/board1096-usb-label-overlap-iteration.snap.svg +167 -2
  102. package/tests/repros/__snapshots__/bugreport-001-gnd-overlap.snap.svg +65 -5
  103. package/tests/repros/__snapshots__/manufacturePartNumber-text-box.snap.svg +30 -5
  104. package/tests/repros/__snapshots__/netlabel-connector-through-rail-label.snap.svg +79 -5
  105. package/tests/repros/__snapshots__/repro-atmega328p-fault-pullup.snap.svg +65 -5
  106. package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +149 -5
  107. package/tests/repros/__snapshots__/repro-board-589-regulator-section.snap.svg +55 -2
  108. package/tests/repros/__snapshots__/repro-board-648-esp12f-section.snap.svg +160 -2
  109. package/tests/repros/__snapshots__/repro-bq24074-battery-charger.snap.svg +135 -5
  110. package/tests/repros/__snapshots__/repro-bq25895-cross-net-trace-overlap.snap.svg +69 -2
  111. package/tests/repros/__snapshots__/repro-cc2340r5.snap.svg +86 -5
  112. package/tests/repros/__snapshots__/repro-core-555-power-cross-net-overlap.snap.svg +44 -5
  113. package/tests/repros/__snapshots__/repro-core-subcircuit-missing-ground.snap.svg +44 -5
  114. package/tests/repros/__snapshots__/repro-core-tb67s579ftg-inline-label-routing.snap.svg +260 -0
  115. package/tests/repros/__snapshots__/repro-example35-minimize-trace-crossing.snap.svg +335 -2
  116. package/tests/repros/__snapshots__/repro-ground-label-on-lower-rail-end.snap.svg +48 -2
  117. package/tests/repros/__snapshots__/repro-ina237-current-monitor.snap.svg +149 -5
  118. package/tests/repros/__snapshots__/repro-missing-trace-netlabel.snap.svg +72 -5
  119. package/tests/repros/__snapshots__/repro-netlabel-collision-687.snap.svg +100 -5
  120. package/tests/repros/__snapshots__/repro-netlabel-overlap-trace.snap.svg +51 -5
  121. package/tests/repros/__snapshots__/repro-nrf52810-clock-routing.snap.svg +90 -2
  122. package/tests/repros/__snapshots__/repro-power-group-rail-labels.snap.svg +37 -5
  123. package/tests/repros/__snapshots__/repro-rectifier-trace-overlap.snap.svg +44 -5
  124. package/tests/repros/__snapshots__/repro-rp2040-gamepad-trace-alignment.snap.svg +237 -2
  125. package/tests/repros/__snapshots__/repro-rp2040-usb-cc2-ground-overlap.snap.svg +72 -5
  126. package/tests/repros/__snapshots__/repro-rp2040-v3v3-label-placement.snap.svg +51 -5
  127. package/tests/repros/__snapshots__/repro-rp2040-zero-crystal-fallback-netlabels.snap.svg +30 -5
  128. package/tests/repros/__snapshots__/repro-ti-power-output-section.snap.svg +79 -5
  129. package/tests/repros/__snapshots__/repro-tida010076-j4-ground-bus.snap.svg +27 -2
  130. package/tests/repros/__snapshots__/repro-tida010076-page02.snap.svg +1150 -5
  131. package/tests/repros/__snapshots__/repro-tps61222-trace-intersection.snap.svg +51 -5
  132. package/tests/repros/__snapshots__/repro-type-c-16pin-self-connection.snap.svg +30 -5
  133. package/tests/repros/__snapshots__/repro-type-c-16pin-to-resistor.snap.svg +30 -5
  134. package/tests/repros/__snapshots__/repro-type-c-vbus-led-ground-label.snap.svg +44 -5
  135. package/tests/repros/__snapshots__/repro-usb-power-vbus-label-detour.snap.svg +685 -2
  136. package/tests/repros/__snapshots__/repro-vcc-pin1-detour.snap.svg +27 -2
  137. package/tests/repros/__snapshots__/repro129-host-custom-symbol-passives.snap.svg +51 -5
  138. package/tests/repros/__snapshots__/repro130-bq27441-fuel-gauge-trace-through-c1.snap.svg +100 -5
  139. package/tests/repros/__snapshots__/repro161-power-section-autolayout.snap.svg +107 -5
  140. package/tests/repros/__snapshots__/repro47-endpoint-obstacle-detour.snap.svg +51 -5
  141. package/tests/repros/__snapshots__/repro48-555-timer-vcc-rail-label.snap.svg +104 -2
  142. package/tests/repros/__snapshots__/repro5-escape-padded-text-obstacles.snap.svg +30 -5
  143. package/tests/repros/__snapshots__/repro51-overlap-junction-crossing.snap.svg +65 -5
  144. package/tests/repros/__snapshots__/repro84-stacked-gnd-label-orientation.snap.svg +27 -2
  145. package/tests/repros/__snapshots__/small-variant-resistor-facing-direction.snap.svg +58 -5
  146. package/tests/repros/__snapshots__/trace-overlap-box-resistor.snap.svg +37 -5
  147. package/tests/repros/assets/repro-core-tb67s579ftg-inline-label-routing.input.json +900 -0
  148. package/tests/repros/repro-core-tb67s579ftg-inline-label-routing.test.ts +40 -0
  149. package/tests/solvers/InlineNetLabelSolver/__snapshots__/fallback-net-label-width.snap.svg +25 -7
  150. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-anchored-label-clearance.snap.svg +34 -2
  151. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-port-stub.snap.svg +23 -5
  152. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label-two-pin-net.snap.svg +23 -5
  153. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label01.snap.svg +23 -5
  154. package/tests/solvers/InlineNetLabelSolver/__snapshots__/inline-net-label02.snap.svg +23 -5
  155. package/tests/solvers/InlineNetLabelSolver/__snapshots__/terminal-stub-trace-clearance.snap.svg +71 -0
  156. package/tests/solvers/InlineNetLabelSolver/fallback-net-label-width.test.ts +10 -1
  157. package/tests/solvers/InlineNetLabelSolver/terminal-stub-trace-clearance.test.ts +102 -0
  158. package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_01-example17-d1_1-u1_1.snap.svg +23 -5
  159. package/tests/solvers/SchematicTraceSingleLineSolver2/__snapshots__/SchematicTraceSingleLineSolver2_repro47-short-opposing-pins.snap.svg +20 -2
  160. package/tests/solvers/TraceCleanupSolver/__snapshots__/TraceCleanupSolver.snap.svg +44 -5
  161. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/__snapshots__/TraceLabelOverlapAvoidanceSolver.snap.svg +79 -5
  162. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/MergedNetLabelObstacles.snap.svg +44 -5
  163. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/OverlapAvoidanceStepSolver.snap.svg +23 -5
  164. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/sub-solver/__snapshots__/SingleOverlapSolver.snap.svg +30 -5
@@ -1,4 +1,6 @@
1
- <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="-0.6000000000000001,1.0999999999999999 0.6000000000000001,-0.09999999999999987" data-type="line" data-label="" points="222,158.99999999999997 390,326.99999999999994" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.8999999999999999 0.6000000000000001,-0.2999999999999998" data-type="line" data-label="" points="222,186.99999999999994 390,354.9999999999999" fill="none" stroke="hsl(128, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.6999999999999998 0.6000000000000001,-0.4999999999999998" data-type="line" data-label="" points="222,214.99999999999997 390,382.9999999999999" fill="none" stroke="hsl(32, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.4999999999999998 0.6000000000000001,-0.6999999999999998" data-type="line" data-label="" points="222,242.99999999999997 390,410.9999999999999" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.2999999999999998 0.6000000000000001,-0.8999999999999999" data-type="line" data-label="" points="222,271 390,438.99999999999994" fill="none" stroke="hsl(104, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.09999999999999987 0.6000000000000001,-1.0999999999999999" data-type="line" data-label="" points="222,298.99999999999994 390,466.9999999999999" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,-0.10000000000000009 0.6000000000000001,0.10000000000000009" data-type="line" data-label="" points="222,326.99999999999994 390,298.99999999999994" fill="none" stroke="hsl(120, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,1.0999999999999999 -0.8,1.0999999999999999 -0.8,1.4999999999999998 1.1510000000000002,1.4999999999999998 1.1510000000000002,-0.09999999999999992 0.6000000000000001,-0.09999999999999987" data-type="line" data-label="" points="222,158.99999999999997 194,158.99999999999997 194,102.99999999999997 467.14000000000004,102.99999999999997 467.14000000000004,326.99999999999994 390,326.99999999999994" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.4999999999999998 -1.1510000000000002,0.4999999999999998 -1.1510000000000002,-1.6 1.451,-1.6 1.451,-0.6999999999999998 0.6000000000000001,-0.6999999999999998" data-type="line" data-label="" points="222,242.99999999999997 144.85999999999996,242.99999999999997 144.85999999999996,537 509.14,537 509.14,410.9999999999999 390,410.9999999999999" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="222" y="131" width="168" height="363.9999999999999" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.007142857142857143"/></g><g><rect data-type="rect" data-label="netId: P.pin1 to P.pin18
1
+ <svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
2
+ <g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
3
+ <rect width="100%" height="100%" fill="white"/><g><polyline data-points="-0.6000000000000001,1.0999999999999999 0.6000000000000001,-0.09999999999999987" data-type="line" data-label="" points="222,158.99999999999997 390,326.99999999999994" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.8999999999999999 0.6000000000000001,-0.2999999999999998" data-type="line" data-label="" points="222,186.99999999999994 390,354.9999999999999" fill="none" stroke="hsl(128, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.6999999999999998 0.6000000000000001,-0.4999999999999998" data-type="line" data-label="" points="222,214.99999999999997 390,382.9999999999999" fill="none" stroke="hsl(32, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.4999999999999998 0.6000000000000001,-0.6999999999999998" data-type="line" data-label="" points="222,242.99999999999997 390,410.9999999999999" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.2999999999999998 0.6000000000000001,-0.8999999999999999" data-type="line" data-label="" points="222,271 390,438.99999999999994" fill="none" stroke="hsl(104, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.09999999999999987 0.6000000000000001,-1.0999999999999999" data-type="line" data-label="" points="222,298.99999999999994 390,466.9999999999999" fill="none" stroke="hsl(160, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,-0.10000000000000009 0.6000000000000001,0.10000000000000009" data-type="line" data-label="" points="222,326.99999999999994 390,298.99999999999994" fill="none" stroke="hsl(120, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,1.0999999999999999 -0.8,1.0999999999999999 -0.8,1.4999999999999998 1.1510000000000002,1.4999999999999998 1.1510000000000002,-0.09999999999999992 0.6000000000000001,-0.09999999999999987" data-type="line" data-label="" points="222,158.99999999999997 194,158.99999999999997 194,102.99999999999997 467.14000000000004,102.99999999999997 467.14000000000004,326.99999999999994 390,326.99999999999994" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-0.6000000000000001,0.4999999999999998 -1.1510000000000002,0.4999999999999998 -1.1510000000000002,-1.6 1.451,-1.6 1.451,-0.6999999999999998 0.6000000000000001,-0.6999999999999998" data-type="line" data-label="" points="222,242.99999999999997 144.85999999999996,242.99999999999997 144.85999999999996,537 509.14,537 509.14,410.9999999999999 390,410.9999999999999" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="222" y="131" width="168" height="363.9999999999999" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.007142857142857143"/></g><g><rect data-type="rect" data-label="netId: P.pin1 to P.pin18
2
4
  globalConnNetId: connectivity_net0" data-x="-0.8" data-y="1.7249999999999999" x="180" y="39.99999999999996" width="28" height="63.00000000000003" fill="#ef444466" stroke="#ef4444" stroke-width="0.007142857142857143"/></g><g><rect data-type="rect" data-label="netId: P.pin2 to P.pin17
3
5
  globalConnNetId: connectivity_net1" data-x="-0.8260000000000001" data-y="0.8999999999999999" x="158.85999999999999" y="172.99999999999994" width="63" height="27.99999999999997" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143"/></g><g><rect data-type="rect" data-label="netId: P.pin2 to P.pin17
4
6
  globalConnNetId: connectivity_net1" data-x="0.8260000000000001" data-y="-0.2999999999999998" x="390.14" y="340.9999999999999" width="63" height="27.999999999999943" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.007142857142857143"/></g><g><rect data-type="rect" data-label="netId: P.pin3 to P.pin16
@@ -56,7 +58,7 @@ orientation: x+" data-x="0.6000000000000001" data-y="0.10000000000000009" cx="39
56
58
  const h = svg.getElementById('crosshair-h');
57
59
  const v = svg.getElementById('crosshair-v');
58
60
  const coords = svg.getElementById('coordinates');
59
-
61
+
60
62
  crosshair.style.display = 'block';
61
63
  h.setAttribute('x1', '0');
62
64
  h.setAttribute('x2', '640');
@@ -75,13 +77,13 @@ orientation: x+" data-x="0.6000000000000001" data-y="0.10000000000000009" cx="39
75
77
  // y' = (y - ty) / sy
76
78
  const sx = matrix.a;
77
79
  const sy = matrix.d;
78
- const tx = matrix.e;
80
+ const tx = matrix.e;
79
81
  const ty = matrix.f;
80
82
  const realPoint = {
81
83
  x: (x - tx) / sx,
82
84
  y: (y - ty) / sy // Flip y back since we used negative scale
83
85
  }
84
-
86
+
85
87
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
86
88
  coords.setAttribute('x', (x + 5).toString());
87
89
  coords.setAttribute('y', (y - 5).toString());
@@ -89,4 +91,104 @@ orientation: x+" data-x="0.6000000000000001" data-y="0.10000000000000009" cx="39
89
91
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
90
92
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
91
93
  });
92
- ]]></script></svg>
94
+ ]]></script>
95
+ </g>
96
+ <g transform="translate(1216, 200)">
97
+ <style>
98
+ .boundary { fill: rgb(245, 241, 237); }
99
+ .schematic-boundary { fill: none; stroke: #fff; }
100
+ .component { fill: none; stroke: rgb(132, 0, 0); }
101
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
102
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
103
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
104
+ .pin-number { fill: rgb(169, 0, 0); }
105
+ .port-label { fill: rgb(0, 100, 100); }
106
+ .component-name { fill: rgb(0, 100, 100); }
107
+
108
+ </style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 481.48430688756 212.00959023546002 L 448.79032258068 212.00959023546002 L 448.79032258068 146.62162162170003 L 767.7201394942945 146.62162162170003 L 767.7201394942945 408.17349607674 L 677.64821272884 408.17349607674" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.155187445503998px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 481.48430688756 212.00959023546002 L 448.79032258068 212.00959023546002 L 448.79032258068 146.62162162170003 L 767.7201394942945 146.62162162170003 L 767.7201394942945 408.17349607674 L 677.64821272884 408.17349607674" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.2693984306879997px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 481.48430688756 310.09154315610004 L 391.41238012210556 310.09154315610004 L 391.41238012210556 653.3783783783399 L 816.7611159546144 653.3783783783399 L 816.7611159546144 506.25544899738 L 677.64821272884 506.25544899738" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="26.155187445503998px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 481.48430688756 310.09154315610004 L 391.41238012210556 310.09154315610004 L 391.41238012210556 653.3783783783399 L 816.7611159546144 653.3783783783399 L 816.7611159546144 506.25544899738 L 677.64821272884 506.25544899738" stroke="rgb(0, 150, 0)" fill="none" stroke-width="3.2693984306879997px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="546.87227550132" y="179.31560592858003" width="65.38796861376" height="425.02179598943997" stroke-width="3.2693984306879997px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="546.87227550132" y="179.31560592858003" width="65.38796861376" height="425.02179598943997" fill="transparent"/><text class="sch-text" x="579.5662598082" y="391.8265039233" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="29.424585876191998px" transform="rotate(0, 579.5662598082, 391.8265039233)">P</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="212.00959023546002" x2="481.48430688756" y2="212.00959023546002" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="478.214908456872" y="208.74019180477202" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="208.74019180477202" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">1</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="244.70357454234002" x2="484.753705318248" y2="244.70357454234002" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_1__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="244.70357454234002" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="241.43417611165202" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="241.434176111652" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">2</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="277.39755884922" x2="484.753705318248" y2="277.39755884922" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_2__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="277.39755884922" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="274.128160418532" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="274.12816041853205" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">3</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="310.09154315610004" x2="481.48430688756" y2="310.09154315610004" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_3__stack1"><rect x="478.214908456872" y="306.82214472541204" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="306.82214472541204" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">4</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="342.78552746298" x2="484.753705318248" y2="342.78552746298" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_4__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="342.78552746298" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="339.516129032292" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="339.51612903229204" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">5</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="375.47951176986" x2="484.753705318248" y2="375.47951176986" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_5__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="375.47951176986" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="372.210113339172" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="372.210113339172" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">6</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="408.17349607674" x2="484.753705318248" y2="408.17349607674" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_6__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="408.17349607674" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="404.904097646052" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="404.904097646052" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">7</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="440.86748038362" x2="484.753705318248" y2="440.86748038362" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_7__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="440.86748038362" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="437.598081952932" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="437.598081952932" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">8</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="473.5614646905" x2="484.753705318248" y2="473.5614646905" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_8__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="473.5614646905" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="470.292066259812" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="470.292066259812" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">9</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="506.25544899738" x2="484.753705318248" y2="506.25544899738" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_9__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="506.25544899738" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="502.986050566692" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="502.986050566692" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">10</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="538.94943330426" x2="484.753705318248" y2="538.94943330426" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_10__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="538.94943330426" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="535.6800348735719" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="535.6800348735719" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">11</text><line class="component-pin sch-component-pin sch-port-line" x1="546.87227550132" y1="571.64341761114" x2="484.753705318248" y2="571.64341761114" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_11__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="481.48430688756" cy="571.64341761114" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="478.214908456872" y="568.374019180452" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="514.17829119444" y="568.3740191804519" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">12</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="571.64341761114" x2="674.3788142981521" y2="571.64341761114" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_12__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="571.64341761114" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="568.374019180452" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="568.3740191804519" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">13</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="538.94943330426" x2="674.3788142981521" y2="538.94943330426" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_13__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="538.94943330426" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="535.6800348735719" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="535.6800348735719" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">14</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="506.25544899738" x2="677.64821272884" y2="506.25544899738" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_14__stack1"><rect x="674.3788142981521" y="502.986050566692" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="502.9860505666919" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">15</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="473.5614646904999" x2="674.3788142981521" y2="473.5614646904999" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_15__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="473.5614646904999" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="470.2920662598119" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="470.2920662598119" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">16</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="440.86748038362" x2="674.3788142981521" y2="440.86748038362" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_16__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="440.86748038362" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="437.598081952932" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="437.5980819529319" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">17</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="408.17349607674" x2="677.64821272884" y2="408.17349607674" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_17__stack1"><rect x="674.3788142981521" y="404.904097646052" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="404.904097646052" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">18</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="375.47951176986" x2="674.3788142981521" y2="375.47951176986" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_18__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="375.47951176986" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="372.210113339172" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="372.210113339172" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">19</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="342.78552746298" x2="674.3788142981521" y2="342.78552746298" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_19__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="342.78552746298" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="339.516129032292" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="339.516129032292" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">20</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="310.0915431561" x2="674.3788142981521" y2="310.0915431561" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_20__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="310.0915431561" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="306.822144725412" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="306.822144725412" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">21</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="277.39755884922" x2="674.3788142981521" y2="277.39755884922" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_21__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="277.39755884922" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="274.128160418532" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="274.128160418532" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">22</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="244.70357454234002" x2="674.3788142981521" y2="244.70357454234002" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_22__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="244.70357454234002" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="241.43417611165202" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="241.434176111652" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">23</text><line class="component-pin sch-component-pin sch-port-line" x1="612.26024411508" y1="212.00959023546002" x2="674.3788142981521" y2="212.00959023546002" stroke-width="3.2693984306879997px"/><g class="sch-port" data-schematic-port-id="source_port_0_23__stack1"><circle class="component-pin sch-component-pin sch-port-terminal" cx="677.64821272884" cy="212.00959023546002" r="3.2693984306879997" stroke-width="3.2693984306879997px"/><rect x="674.3788142981521" y="208.74019180477202" width="6.5387968613759995" height="6.5387968613759995" opacity="0"/></g><text class="pin-number sch-pin-number" x="644.95422842196" y="208.74019180477202" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="24.520488230159998px" transform="">24</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="481.48430688756" cy="212.00959023546002" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_1__stack1"><circle cx="481.48430688756" cy="244.70357454234002" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_2__stack1"><circle cx="481.48430688756" cy="277.39755884922" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_3__stack1"><circle cx="481.48430688756" cy="310.09154315610004" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_4__stack1"><circle cx="481.48430688756" cy="342.78552746298" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_5__stack1"><circle cx="481.48430688756" cy="375.47951176986" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_6__stack1"><circle cx="481.48430688756" cy="408.17349607674" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_7__stack1"><circle cx="481.48430688756" cy="440.86748038362" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_8__stack1"><circle cx="481.48430688756" cy="473.5614646905" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_9__stack1"><circle cx="481.48430688756" cy="506.25544899738" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_10__stack1"><circle cx="481.48430688756" cy="538.94943330426" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_11__stack1"><circle cx="481.48430688756" cy="571.64341761114" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_12__stack1"><circle cx="677.64821272884" cy="571.64341761114" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_13__stack1"><circle cx="677.64821272884" cy="538.94943330426" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_14__stack1"><circle cx="677.64821272884" cy="506.25544899738" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_15__stack1"><circle cx="677.64821272884" cy="473.5614646904999" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_16__stack1"><circle cx="677.64821272884" cy="440.86748038362" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_17__stack1"><circle cx="677.64821272884" cy="408.17349607674" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_18__stack1"><circle cx="677.64821272884" cy="375.47951176986" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_19__stack1"><circle cx="677.64821272884" cy="342.78552746298" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_20__stack1"><circle cx="677.64821272884" cy="310.0915431561" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_21__stack1"><circle cx="677.64821272884" cy="277.39755884922" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_22__stack1"><circle cx="677.64821272884" cy="244.70357454234002" r="6.5387968613759995" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_23__stack1"><circle cx="677.64821272884" cy="212.00959023546002" r="6.5387968613759995" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
109
+ M 448.79032258068,146.62162162170003
110
+ L 432.44333042724,137.79424585884243
111
+ L 432.44333042724,81.7349607673122
112
+ L 465.13731473412,81.7349607673122
113
+ L 465.13731473412,137.79424585884243
114
+ Z
115
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="448.79032258068" y="131.90932868360403" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="rotate(-90 448.79032258068 131.90932868360403)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
116
+ M 481.48430688756,244.70357454234002
117
+ L 472.6569311247024,261.05056669578005
118
+ L 416.59764603317217,261.05056669578
119
+ L 416.59764603317217,228.35658238890002
120
+ L 472.65693112470245,228.35658238890002
121
+ Z
122
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="466.77201394946405" y="244.70357454234002" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" d="
123
+ M 677.64821272884,440.86748038362
124
+ L 686.4755884916976,424.52048823018
125
+ L 742.5348735832279,424.52048823018
126
+ L 742.5348735832279,457.21447253706
127
+ L 686.4755884916976,457.21447253706
128
+ Z
129
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_2__stack1" x="692.360505666936" y="440.86748038362" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" d="
130
+ M 481.48430688756,277.39755884922
131
+ L 472.6569311247024,293.74455100266
132
+ L 416.59764603317217,293.74455100266
133
+ L 416.59764603317217,261.05056669578
134
+ L 472.65693112470245,261.05056669578
135
+ Z
136
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_3__stack1" x="466.77201394946405" y="277.39755884922" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" d="
137
+ M 677.64821272884,473.5614646904999
138
+ L 686.4755884916976,457.2144725370599
139
+ L 742.5348735832279,457.2144725370599
140
+ L 742.5348735832279,489.9084568439399
141
+ L 686.4755884916976,489.9084568439399
142
+ Z
143
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_4__stack1" x="692.360505666936" y="473.5614646904999" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" d="
144
+ M 391.41238012210556,653.3783783783399
145
+ L 407.75937227554556,662.2057541411975
146
+ L 407.75937227554556,718.2650392327278
147
+ L 375.06538796866556,718.2650392327278
148
+ L 375.06538796866556,662.2057541411975
149
+ Z
150
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_5__stack1" x="391.41238012210556" y="668.0906713164359" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="rotate(90 391.41238012210556 668.0906713164359)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" d="
151
+ M 481.48430688756,342.78552746298
152
+ L 472.6569311247024,359.13251961642
153
+ L 416.59764603317217,359.13251961642
154
+ L 416.59764603317217,326.43853530954
155
+ L 472.65693112470245,326.43853530954
156
+ Z
157
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_6__stack1" x="466.77201394946405" y="342.78552746298" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" d="
158
+ M 677.64821272884,538.94943330426
159
+ L 686.4755884916976,522.6024411508199
160
+ L 742.5348735832279,522.6024411508199
161
+ L 742.5348735832279,555.2964254577
162
+ L 686.4755884916976,555.2964254577
163
+ Z
164
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_7__stack1" x="692.360505666936" y="538.94943330426" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" d="
165
+ M 481.48430688756,375.47951176986
166
+ L 472.6569311247024,391.8265039233
167
+ L 416.59764603317217,391.8265039233
168
+ L 416.59764603317217,359.13251961642
169
+ L 472.65693112470245,359.13251961642
170
+ Z
171
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_8__stack1" x="466.77201394946405" y="375.47951176986" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" d="
172
+ M 677.64821272884,571.64341761114
173
+ L 686.4755884916976,555.2964254577
174
+ L 742.5348735832279,555.2964254577
175
+ L 742.5348735832279,587.9904097645799
176
+ L 686.4755884916976,587.9904097645799
177
+ Z
178
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_9__stack1" x="692.360505666936" y="571.64341761114" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_10__stack1" d="
179
+ M 481.48430688756,408.17349607674
180
+ L 472.6569311247024,424.52048823018
181
+ L 416.59764603317217,424.52048823018
182
+ L 416.59764603317217,391.8265039233
183
+ L 472.65693112470245,391.8265039233
184
+ Z
185
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_10__stack1" x="466.77201394946405" y="408.17349607674" fill="rgb(132, 0, 0)" text-anchor="end" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_11__stack1" d="
186
+ M 677.64821272884,375.47951176986
187
+ L 686.4755884916976,359.13251961642
188
+ L 742.5348735832279,359.13251961642
189
+ L 742.5348735832279,391.8265039233
190
+ L 686.4755884916976,391.8265039233
191
+ Z
192
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="3.2693984306879997px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_11__stack1" x="692.360505666936" y="375.47951176986" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="29.424585876191998px" transform="">XX</text>
193
+ </g>
194
+ </svg>
@@ -1,4 +1,6 @@
1
- <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="white"/><g><polyline data-points="1.2000000000000002,0.30000000000000004 3,-0.10000000000000016" data-type="line" data-label="" points="345.38513974096804,310.52033628720744 574.4239945466941,361.4178595773688" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.3010000000000002,0.30000000000000004 1.3010000000000002,0.5010000000000001" data-type="line" data-label="" points="345.38513974096804,310.52033628720744 358.2367643717338,310.52033628720744 358.2367643717338,284.94433083390135" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3,-0.10000000000000016 3.101,-0.10000000000000016 3.101,0.10099999999999985" data-type="line" data-label="" points="574.4239945466941,361.4178595773688 587.2756191774597,361.4178595773688 587.2756191774597,335.8418541240627" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="40" y="285.0715746421268" width="305.38513974096804" height="127.24380822540331" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00785892857142857"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2.45" data-y="-0.10000000000000009" x="434.45580549875035" y="336.6746203135652" width="139.96818904794372" height="49.48647852760723" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00785892857142857"/></g><g><rect data-type="rect" data-label="netId: VCC
1
+ <svg width="2416" height="1200" viewBox="0 0 2416 1200" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="Solver debug visualization on the left and Circuit JSON schematic on the right">
2
+ <g transform="translate(0, 0) scale(1.875, 1.875) translate(0, 0)">
3
+ <rect width="100%" height="100%" fill="white"/><g><polyline data-points="1.2000000000000002,0.30000000000000004 3,-0.10000000000000016" data-type="line" data-label="" points="345.38513974096804,310.52033628720744 574.4239945466941,361.4178595773688" fill="none" stroke="hsl(190, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.2000000000000002,0.30000000000000004 1.3010000000000002,0.30000000000000004 1.3010000000000002,0.5010000000000001" data-type="line" data-label="" points="345.38513974096804,310.52033628720744 358.2367643717338,310.52033628720744 358.2367643717338,284.94433083390135" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="3,-0.10000000000000016 3.101,-0.10000000000000016 3.101,0.10099999999999985" data-type="line" data-label="" points="574.4239945466941,361.4178595773688 587.2756191774597,361.4178595773688 587.2756191774597,335.8418541240627" fill="none" stroke="purple" stroke-width="1px"/></g><g><rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="40" y="285.0715746421268" width="305.38513974096804" height="127.24380822540331" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00785892857142857"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="2.45" data-y="-0.10000000000000009" x="434.45580549875035" y="336.6746203135652" width="139.96818904794372" height="49.48647852760723" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.00785892857142857"/></g><g><rect data-type="rect" data-label="netId: VCC
2
4
  globalConnNetId: connectivity_net0" data-x="1.3010000000000002" data-y="0.7260000000000001" x="345.5123835491935" y="227.6846171324699" width="25.44876164508065" height="57.25971370143145" fill="#ef444466" stroke="#ef4444" stroke-width="0.00785892857142857"/></g><g><rect data-type="rect" data-label="netId: VCC
3
5
  globalConnNetId: connectivity_net0" data-x="3.101" data-y="0.32599999999999985" x="574.5512383549194" y="278.58214042263126" width="25.448761645080594" height="57.25971370143145" fill="#ef444466" stroke="#ef4444" stroke-width="0.00785892857142857"/></g><g><circle data-type="point" data-label="U1.1
4
6
  x+" data-x="1.2000000000000002" data-y="0.30000000000000004" cx="345.38513974096804" cy="310.52033628720744" r="3" fill="hsl(319, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R1.1
@@ -14,7 +16,7 @@ orientation: y+" data-x="3.101" data-y="0.10099999999999985" cx="587.27561917745
14
16
  const h = svg.getElementById('crosshair-h');
15
17
  const v = svg.getElementById('crosshair-v');
16
18
  const coords = svg.getElementById('coordinates');
17
-
19
+
18
20
  crosshair.style.display = 'block';
19
21
  h.setAttribute('x1', '0');
20
22
  h.setAttribute('x2', '640');
@@ -33,13 +35,13 @@ orientation: y+" data-x="3.101" data-y="0.10099999999999985" cx="587.27561917745
33
35
  // y' = (y - ty) / sy
34
36
  const sx = matrix.a;
35
37
  const sy = matrix.d;
36
- const tx = matrix.e;
38
+ const tx = matrix.e;
37
39
  const ty = matrix.f;
38
40
  const realPoint = {
39
41
  x: (x - tx) / sx,
40
42
  y: (y - ty) / sy // Flip y back since we used negative scale
41
43
  }
42
-
44
+
43
45
  coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
44
46
  coords.setAttribute('x', (x + 5).toString());
45
47
  coords.setAttribute('y', (y - 5).toString());
@@ -47,4 +49,34 @@ orientation: y+" data-x="3.101" data-y="0.10099999999999985" cx="587.27561917745
47
49
  document.currentScript.parentElement.addEventListener('mouseleave', () => {
48
50
  document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
49
51
  });
50
- ]]></script></svg>
52
+ ]]></script>
53
+ </g>
54
+ <g transform="translate(1216, 200)">
55
+ <style>
56
+ .boundary { fill: rgb(245, 241, 237); }
57
+ .schematic-boundary { fill: none; stroke: #fff; }
58
+ .component { fill: none; stroke: rgb(132, 0, 0); }
59
+ .chip { fill: rgb(255, 255, 194); stroke: rgb(132, 0, 0); }
60
+ .component-pin { fill: none; stroke: rgb(132, 0, 0); }
61
+ .text { font-family: sans-serif; fill: rgb(0, 150, 0); }
62
+ .pin-number { fill: rgb(169, 0, 0); }
63
+ .port-label { fill: rgb(0, 100, 100); }
64
+ .component-name { fill: rgb(0, 100, 100); }
65
+
66
+ </style><rect class="boundary" x="0" y="0" width="1200" height="800"/><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"><path d="M 599.8800239952201 375.75684863027 L 624.1151769646282 375.75684863027 L 624.1151769646282 327.5264947010519" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.392321535696px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 599.8800239952201 375.75684863027 L 624.1151769646282 375.75684863027 L 624.1151769646282 327.5264947010519" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.799040191962px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace sch-trace" data-layer="base" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"><path d="M 1031.7936412718 471.73765246951007 L 1056.0287942412083 471.73765246951007 L 1056.0287942412083 423.5072985402919" class="trace-invisible-hover-outline sch-trace-hitbox" stroke="rgb(0, 150, 0)" fill="none" stroke-width="38.392321535696px" stroke-linecap="round" opacity="0" stroke-linejoin="round"/><path class="sch-trace-path" d="M 1031.7936412718 471.73765246951007 L 1056.0287942412083 471.73765246951007 L 1056.0287942412083 423.5072985402919" stroke="rgb(0, 150, 0)" fill="none" stroke-width="4.799040191962px" stroke-linecap="round" stroke-linejoin="round"/></g><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_0__stack1"/><g class="trace-overlays sch-trace-overlays" data-layer="overlay" data-circuit-json-type="schematic_trace" data-schematic-trace-id="schematic_trace_1__stack1"/><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_0__stack1"><rect class="component chip sch-component-body" x="119.97600479901996" y="327.76644671065003" width="383.9232153569601" height="239.95200959809995" stroke-width="4.799040191962px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="119.97600479901996" y="327.76644671065003" width="383.9232153569601" height="239.95200959809995" fill="transparent"/><text class="sch-text" x="311.9376124775" y="447.7424515097" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="43.191361727658px" transform="rotate(0, 311.9376124775, 447.7424515097)">U1</text><line class="component-pin sch-component-pin sch-port-line" x1="503.89922015598006" y1="375.75684863027" x2="599.8800239952201" y2="375.75684863027" stroke-width="4.799040191962px"/><g class="sch-port" data-schematic-port-id="source_port_0_0__stack1"><rect x="595.080983803258" y="370.957808438308" width="9.598080383924" height="9.598080383924" opacity="0"/></g><text class="pin-number sch-pin-number" x="551.8896220756001" y="370.957808438308" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="35.992801439715px" transform="">1</text></g><g class="sch-component" data-circuit-json-type="schematic_component" data-schematic-component-id="schematic_component_1__stack1"><rect class="component chip sch-component-body" x="863.8272345531301" y="425.07770045990827" width="71.98560287942996" height="93.31990401920353" stroke-width="4.799040191962px" fill="rgb(255, 255, 194)" stroke="rgb(132, 0, 0)"/><rect class="component-overlay sch-component-overlay" x="863.8272345531301" y="425.07770045990827" width="71.98560287942996" height="93.31990401920353" fill="transparent"/><text class="sch-text" x="899.8200359928451" y="471.73765246951" fill="#0f172a" text-anchor="middle" dominant-baseline="middle" font-family="sans-serif" font-size="31.106634673067852px" transform="rotate(0, 899.8200359928451, 471.73765246951)">R1</text><line class="component-pin sch-component-pin sch-port-line" x1="935.8128374325601" y1="471.73765246951007" x2="1031.7936412718" y2="471.73765246951007" stroke-width="4.799040191962px"/><g class="sch-port" data-schematic-port-id="source_port_1_0__stack1"><rect x="1026.994601079838" y="466.9386122775481" width="9.598080383924" height="9.598080383924" opacity="0"/></g><text class="pin-number sch-pin-number" x="983.80323935218" y="466.93861227754803" style="font-family: sans-serif;" fill="rgb(169, 0, 0)" text-anchor="middle" dominant-baseline="auto" font-size="35.992801439715px" transform="">1</text></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_0_0__stack1"><circle cx="599.8800239952201" cy="375.75684863027" r="9.598080383924" fill="red" opacity="0"/></g><g class="schematic-port-hover sch-port-hover" data-schematic-port-id="source_port_1_0__stack1"><circle cx="1031.7936412718" cy="471.73765246951007" r="9.598080383924" fill="red" opacity="0"/></g><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" d="
67
+ M 624.1151769646282,327.5264947010519
68
+ L 600.1199760048182,314.56908618275446
69
+ L 600.1199760048182,232.28154369124607
70
+ L 648.1103779244381,232.28154369124607
71
+ L 648.1103779244381,314.5690861827545
72
+ Z
73
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.799040191962px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_0__stack1" x="624.1151769646282" y="305.9308138372229" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="43.191361727658px" transform="rotate(-90 624.1151769646282 305.9308138372229)">XX</text><path class="net-label sch-net-label" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" d="
74
+ M 1056.0287942412083,423.5072985402919
75
+ L 1032.0335932813982,410.5498900219945
76
+ L 1032.0335932813982,328.26234753048607
77
+ L 1080.0239952010184,328.26234753048607
78
+ L 1080.0239952010184,410.54989002199454
79
+ Z
80
+ " fill="rgba(255, 255, 255, 0.6)" stroke="rgb(132, 0, 0)" stroke-width="4.799040191962px"/><text class="net-label-text sch-net-label-text" data-circuit-json-type="schematic_net_label" data-schematic-net-label-id="schematic_net_label_1__stack1" x="1056.0287942412083" y="401.9116176764629" fill="rgb(132, 0, 0)" text-anchor="start" dominant-baseline="central" font-family="sans-serif" font-variant-numeric="tabular-nums" font-size="43.191361727658px" transform="rotate(-90 1056.0287942412083 401.9116176764629)">XX</text>
81
+ </g>
82
+ </svg>