@tscircuit/schematic-trace-solver 0.0.88 → 0.0.90

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 (23) hide show
  1. package/dist/index.d.ts +4 -0
  2. package/dist/index.js +112 -29
  3. package/lib/solvers/Example28Solver/reroute.ts +10 -0
  4. package/lib/solvers/SchematicTraceLinesSolver/SchematicTraceSingleLineSolver2/SchematicTraceSingleLineSolver2.ts +116 -5
  5. package/lib/testing/PipelineStageDebugRunner.ts +21 -4
  6. package/package.json +1 -1
  7. package/tests/bug-reports/bug-report-20260706T213649Z/__snapshots__/bug-report-20260706T213649Z.snap.svg +386 -0
  8. package/tests/bug-reports/bug-report-20260706T213649Z/bug-report-20260706T213649Z.json +1471 -0
  9. package/tests/bug-reports/bug-report-20260706T213649Z/bug-report-20260706T213649Z.test.ts +12 -0
  10. package/tests/bug-reports/bug-report-20260706T220324Z/__snapshots__/bug-report-20260706T220324Z.snap.svg +22 -22
  11. package/tests/bug-reports/bug-report-20260707T020342Z/__snapshots__/bug-report-20260707T020342Z.snap.svg +20 -22
  12. package/tests/bug-reports/bug-report-20260707T092615Z/__snapshots__/bug-report-20260707T092615Z.snap.svg +251 -2097
  13. package/tests/bug-reports/bug-report-20260707T134549Z/__snapshots__/bug-report-20260707T134549Z.snap.svg +123 -856
  14. package/tests/bug-reports/bug-report-20260707T134722Z/__snapshots__/bug-report-20260707T134722Z.snap.svg +72 -274
  15. package/tests/bug-reports/bug-report-20260707T140410Z/__snapshots__/bug-report-20260707T140410Z.snap.svg +153 -949
  16. package/tests/bug-reports/bug-report-20260707T141025Z/__snapshots__/bug-report-20260707T141025Z.snap.svg +66 -217
  17. package/tests/bug-reports/bug-report-20260707T141421Z/__snapshots__/bug-report-20260707T141421Z.snap.svg +111 -612
  18. package/tests/bug-reports/bug-report-20260707T141421Z/bug-report-20260707T141421Z.test.ts +11 -0
  19. package/tests/examples/__snapshots__/example03.snap.svg +44 -44
  20. package/tests/examples/__snapshots__/example32.snap.svg +3 -3
  21. package/tests/examples/__snapshots__/example42.snap.svg +1 -1
  22. package/tests/repros/__snapshots__/repro-atmega328p-fault-pullup.snap.svg +87 -283
  23. package/tests/repros/__snapshots__/repro-atmega328p-missing-gnd-netlabel.snap.svg +117 -469
@@ -1,218 +1,67 @@
1
- <svg width="640" height="640" viewBox="0 0 640 640" xmlns="http://www.w3.org/2000/svg">
2
- <rect width="100%" height="100%" fill="white" />
3
- <g>
4
- <circle data-type="point" data-label="U1.1
5
- x-" data-x="-1.6" data-y="1" cx="310.03656267490334" cy="290.82119656754486" r="3" fill="hsl(319, 100%, 50%, 0.8)" />
6
- </g>
7
- <g>
8
- <circle data-type="point" data-label="U1.2
9
- x-" data-x="-1.6" data-y="-1" cx="310.03656267490334" cy="408.715351850192" r="3" fill="hsl(320, 100%, 50%, 0.8)" />
10
- </g>
11
- <g>
12
- <circle data-type="point" data-label="U1.3
13
- x-" data-x="-1.6" data-y="0" cx="310.03656267490334" cy="349.76827420886843" r="3" fill="hsl(321, 100%, 50%, 0.8)" />
14
- </g>
15
- <g>
16
- <circle data-type="point" data-label="U1.5
17
- x+" data-x="1.6" data-y="-0.7" cx="498.66721112713884" cy="391.0312285577949" r="3" fill="hsl(323, 100%, 50%, 0.8)" />
18
- </g>
19
- <g>
20
- <circle data-type="point" data-label="U1.6
21
- x+" data-x="1.6" data-y="0.7" cx="498.66721112713884" cy="308.50531985994195" r="3" fill="hsl(324, 100%, 50%, 0.8)" />
22
- </g>
23
- <g>
24
- <circle data-type="point" data-label="V_IN.1
25
- y+" data-x="-2.5747276749999997" data-y="2.7300000000000004" cx="252.57921473753154" cy="188.842752248055" r="3" fill="hsl(97, 100%, 50%, 0.8)" />
26
- </g>
27
- <g>
28
- <circle data-type="point" data-label="V_IN.2
29
- y-" data-x="-2.564727675" data-y="1.6500000000000004" cx="253.16868551394478" cy="252.5055961006845" r="3" fill="hsl(98, 100%, 50%, 0.8)" />
30
- </g>
31
- <g>
32
- <circle data-type="point" data-label="V_ON.1
33
- x-" data-x="-4.5" data-y="0" cx="139.09003751506492" cy="349.76827420886843" r="3" fill="hsl(283, 100%, 50%, 0.8)" />
34
- </g>
35
- <g>
36
- <circle data-type="point" data-label="V_ON.2
37
- x+" data-x="-2.3000000000000003" data-y="0" cx="268.77360832597685" cy="349.76827420886843" r="3" fill="hsl(284, 100%, 50%, 0.8)" />
38
- </g>
39
- <g>
40
- <circle data-type="point" data-label="R_L.1
41
- y+" data-x="2.6595915124999996" data-y="0.7000000000000004" cx="561.1270342825638" cy="308.5053198599419" r="3" fill="hsl(18, 100%, 50%, 0.8)" />
42
- </g>
43
- <g>
44
- <circle data-type="point" data-label="R_L.2
45
- y-" data-x="2.6595915124999996" data-y="-0.3999999999999997" cx="561.1270342825638" cy="373.34710526539783" r="3" fill="hsl(19, 100%, 50%, 0.8)" />
46
- </g>
47
- <g>
48
- <circle data-type="point" data-label="anchorPoint
49
- orientation: x-" data-x="-2.5747276749999997" data-y="2.9300000000000006" cx="252.57921473753154" cy="177.05333671979028" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
50
- </g>
51
- <g>
52
- <circle data-type="point" data-label="anchorPoint
53
- orientation: y-" data-x="-2.3000000000000003" data-y="-1" cx="268.77360832597685" cy="408.715351850192" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
54
- </g>
55
- <g>
56
- <circle data-type="point" data-label="anchorPoint
57
- orientation: y-" data-x="2.6595915124999996" data-y="-0.3999999999999997" cx="561.1270342825638" cy="373.34710526539783" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
58
- </g>
59
- <g>
60
- <circle data-type="point" data-label="anchorPoint
61
- orientation: x-" data-x="-4.5" data-y="0" cx="139.09003751506492" cy="349.76827420886843" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
62
- </g>
63
- <g>
64
- <circle data-type="point" data-label="anchorPoint
65
- orientation: x-" data-x="-1.6" data-y="0" cx="310.03656267490334" cy="349.76827420886843" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
66
- </g>
67
- <g>
68
- <circle data-type="point" data-label="anchorPoint
69
- orientation: y-" data-x="1.8" data-y="-0.7" cx="510.45662665540357" cy="391.0312285577949" r="3" fill="hsl(40, 100%, 50%, 0.9)" />
70
- </g>
71
- <g>
72
- <polyline data-points="-2.5747276749999997,2.7300000000000004 -1.6,1" data-type="line" data-label="" points="252.57921473753154,188.842752248055 310.03656267490334,290.82119656754486" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1" />
73
- </g>
74
- <g>
75
- <polyline data-points="-4.5,0 -1.6,0" data-type="line" data-label="" points="139.09003751506492,349.76827420886843 310.03656267490334,349.76827420886843" fill="none" stroke="hsl(184, 100%, 50%, 0.8)" stroke-width="1" />
76
- </g>
77
- <g>
78
- <polyline data-points="1.6,0.7 2.6595915124999996,0.7000000000000004" data-type="line" data-label="" points="498.66721112713884,308.50531985994195 561.1270342825638,308.5053198599419" fill="none" stroke="hsl(80, 100%, 50%, 0.8)" stroke-width="1" />
79
- </g>
80
- <g>
81
- <polyline data-points="1.6,-0.7 1.6,0.7" data-type="line" data-label="" points="498.66721112713884,391.0312285577949 498.66721112713884,308.50531985994195" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1" />
82
- </g>
83
- <g>
84
- <polyline data-points="-1.6,-1 -2.564727675,1.6500000000000004" data-type="line" data-label="" points="310.03656267490334,408.715351850192 253.16868551394478,252.5055961006845" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
85
- </g>
86
- <g>
87
- <polyline data-points="-1.6,-1 -2.3000000000000003,0" data-type="line" data-label="" points="310.03656267490334,408.715351850192 268.77360832597685,349.76827420886843" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
88
- </g>
89
- <g>
90
- <polyline data-points="-1.6,-1 2.6595915124999996,-0.3999999999999997" data-type="line" data-label="" points="310.03656267490334,408.715351850192 561.1270342825638,373.34710526539783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
91
- </g>
92
- <g>
93
- <polyline data-points="-2.564727675,1.6500000000000004 -2.3000000000000003,0" data-type="line" data-label="" points="253.16868551394478,252.5055961006845 268.77360832597685,349.76827420886843" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
94
- </g>
95
- <g>
96
- <polyline data-points="-2.564727675,1.6500000000000004 2.6595915124999996,-0.3999999999999997" data-type="line" data-label="" points="253.16868551394478,252.5055961006845 561.1270342825638,373.34710526539783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
97
- </g>
98
- <g>
99
- <polyline data-points="-2.3000000000000003,0 2.6595915124999996,-0.3999999999999997" data-type="line" data-label="" points="268.77360832597685,349.76827420886843 561.1270342825638,373.34710526539783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1" stroke-dasharray="4 2" />
100
- </g>
101
- <g>
102
- <polyline data-points="1.6,0.7 2.12979575625,0.7 2.12979575625,0.9000000000000004 2.6595915124999996,0.9000000000000004 2.6595915124999996,0.7000000000000004" data-type="line" data-label="" points="498.66721112713884,308.50531985994195 529.8971227048513,308.50531985994195 529.8971227048513,296.71590433167717 561.1270342825638,296.71590433167717 561.1270342825638,308.5053198599419" fill="none" stroke="purple" stroke-width="1" />
103
- </g>
104
- <g>
105
- <polyline data-points="1.6,-0.7 1.8,-0.7 1.8,0.7 1.6,0.7" data-type="line" data-label="" points="498.66721112713884,391.0312285577949 510.45662665540357,391.0312285577949 510.45662665540357,308.50531985994195 498.66721112713884,308.50531985994195" fill="none" stroke="purple" stroke-width="1" />
106
- </g>
107
- <g>
108
- <polyline data-points="-2.5747276749999997,2.7300000000000004 -2.5747276749999997,2.9300000000000006 -2.0873638375,2.9300000000000006 -2.0873638375,0.9999999999999996 -1.6,0.9999999999999996" data-type="line" data-label="" points="252.57921473753154,188.842752248055 252.57921473753154,177.05333671979028 281.30788870621745,177.05333671979028 281.30788870621745,290.82119656754486 310.03656267490334,290.82119656754486" fill="none" stroke="purple" stroke-width="1" />
109
- </g>
110
- <g>
111
- <polyline data-points="-2.3000000000000003,0 -2.3000000000000003,-1 -1.6,-1" data-type="line" data-label="" points="268.77360832597685,349.76827420886843 268.77360832597685,408.715351850192 310.03656267490334,408.715351850192" fill="none" stroke="purple" stroke-width="1" />
112
- </g>
113
- <g>
114
- <polyline data-points="-2.564727675,1.6500000000000004 -2.564727675,0.8250000000000002 -2.3000000000000003,0.8250000000000002 -2.3000000000000003,0" data-type="line" data-label="" points="253.16868551394478,252.5055961006845 253.16868551394478,301.13693515477644 268.77360832597685,301.13693515477644 268.77360832597685,349.76827420886843" fill="none" stroke="purple" stroke-width="1" />
115
- </g>
116
- <g>
117
- <rect data-type="rect" data-label="schematic_component_0" data-x="0" data-y="0" x="310.03656267490334" y="243.66353445448595" width="188.6306484522355" height="212.20947950876496" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.016964369397321426" />
118
- </g>
119
- <g>
120
- <rect data-type="rect" data-label="schematic_component_1" data-x="-2.5697276749999998" data-y="2.1900000000000004" x="234.0269380434333" y="188.842752248055" width="37.69402416460974" height="63.66284385262949" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.016964369397321426" />
121
- </g>
122
- <g>
123
- <rect data-type="rect" data-label="schematic_component_2" data-x="-3.4000000000000004" data-y="0" x="139.09003751506492" y="314.40002762407426" width="129.68357081091193" height="70.73649316958836" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.016964369397321426" />
124
- </g>
125
- <g>
126
- <rect data-type="rect" data-label="schematic_component_3" data-x="2.9094553499999996" data-y="0.15000000000000036" x="551.7115546228707" y="308.5053198599419" width="48.28844537712928" height="64.84178540545594" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.016964369397321426" />
127
- </g>
128
- <g>
129
- <rect data-type="rect" data-label="TPS22919DCKR" data-x="-0.48" data-y="-1.9300000000000002" x="333.6153937314328" y="458.23089706890386" width="84.88379180350597" height="10.610473975438197" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.016964369397321426" />
130
- </g>
131
- <g>
132
- <rect data-type="rect" data-label="U1" data-x="-1.08" data-y="1.9300000000000002" x="333.6153937314328" y="230.69517737339478" width="14.147298633917671" height="10.610473975438225" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.016964369397321426" />
133
- </g>
134
- <g>
135
- <rect data-type="rect" data-label="V_ON" data-x="-3.8600000000000003" data-y="0.73" x="162.66886857159434" y="301.4316705429831" width="28.294597267835343" height="10.610473975438197" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.016964369397321426" />
136
- </g>
137
- <g>
138
- <rect data-type="rect" data-label="netId: V_IN.pin1 to U1.IN
139
- globalConnNetId: connectivity_net0" data-x="-2.7997276749999997" data-y="2.9300000000000006" x="226.0530297989359" y="171.15862895565792" width="26.526184938595634" height="11.789415528264726" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.016964369397321426" />
140
- </g>
141
- <g>
142
- <rect data-type="rect" data-label="netId: GND
143
- globalConnNetId: connectivity_net3" data-x="-2.3000000000000003" data-y="-1.24" x="256.3947220212989" y="408.715351850192" width="24.757772609355868" height="28.294597267835343" fill="#00000066" stroke="#000000" stroke-width="0.016964369397321426" />
144
- </g>
145
- <g>
146
- <rect data-type="rect" data-label="netId: GND
147
- globalConnNetId: connectivity_net3" data-x="2.6595915124999996" data-y="-0.6409999999999997" x="548.7481479778859" y="373.40605234303916" width="24.75777260935581" height="28.294597267835343" fill="#00000066" stroke="#000000" stroke-width="0.016964369397321426" />
148
- </g>
149
- <g>
150
- <rect data-type="rect" data-label="netId: V_ON.OUT to U1.ON
151
- globalConnNetId: connectivity_net1" data-x="-5.341" data-y="0" x="40" y="343.87356644473607" width="99.03109043742359" height="11.789415528264726" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.016964369397321426" />
152
- </g>
153
- <g>
154
- <rect data-type="rect" data-label="netId: V_ON.OUT to U1.ON
155
- globalConnNetId: connectivity_net1" data-x="-2.441" data-y="0" x="210.94652515983842" y="343.87356644473607" width="99.03109043742359" height="11.789415528264726" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.016964369397321426" />
156
- </g>
157
- <g>
158
- <rect data-type="rect" data-label="netId: U1.QOD to U1.OUT
159
- globalConnNetId: connectivity_net2" data-x="1.8" data-y="-0.9249999999999999" x="504.5619188912712" y="391.0312285577949" width="11.78941552826467" height="26.526184938595634" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.016964369397321426" />
160
- </g>
161
- <g id="crosshair" style="display: none">
162
- <line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5" />
163
- <line id="crosshair-v" x1="0" x2="640" stroke="#666" stroke-width="0.5" /><text id="coordinates" font-family="monospace" font-size="12" fill="#666"></text>
164
- </g>
165
- <script>
166
- <![CDATA[
167
- document.currentScript.parentElement.addEventListener('mousemove', (e) => {
168
- const svg = e.currentTarget;
169
- const rect = svg.getBoundingClientRect();
170
- const x = e.clientX - rect.left;
171
- const y = e.clientY - rect.top;
172
- const crosshair = svg.getElementById('crosshair');
173
- const h = svg.getElementById('crosshair-h');
174
- const v = svg.getElementById('crosshair-v');
175
- const coords = svg.getElementById('coordinates');
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="-2.5747276749999997,2.7300000000000004 -1.6,1" data-type="line" data-label="" points="252.57921473753154,188.842752248055 310.03656267490334,290.82119656754486" fill="none" stroke="hsl(16, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-4.5,0 -1.6,0" data-type="line" data-label="" points="139.09003751506492,349.76827420886843 310.03656267490334,349.76827420886843" fill="none" stroke="hsl(184, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.6,0.7 2.6595915124999996,0.7000000000000004" data-type="line" data-label="" points="498.66721112713884,308.50531985994195 561.1270342825638,308.5053198599419" fill="none" stroke="hsl(80, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="1.6,-0.7 1.6,0.7" data-type="line" data-label="" points="498.66721112713884,391.0312285577949 498.66721112713884,308.50531985994195" fill="none" stroke="hsl(144, 100%, 50%, 0.8)" stroke-width="1px"/></g><g><polyline data-points="-1.6,-1 -2.564727675,1.6500000000000004" data-type="line" data-label="" points="310.03656267490334,408.715351850192 253.16868551394478,252.5055961006845" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.6,-1 -2.3000000000000003,0" data-type="line" data-label="" points="310.03656267490334,408.715351850192 268.77360832597685,349.76827420886843" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-1.6,-1 2.6595915124999996,-0.3999999999999997" data-type="line" data-label="" points="310.03656267490334,408.715351850192 561.1270342825638,373.34710526539783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.564727675,1.6500000000000004 -2.3000000000000003,0" data-type="line" data-label="" points="253.16868551394478,252.5055961006845 268.77360832597685,349.76827420886843" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.564727675,1.6500000000000004 2.6595915124999996,-0.3999999999999997" data-type="line" data-label="" points="253.16868551394478,252.5055961006845 561.1270342825638,373.34710526539783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="-2.3000000000000003,0 2.6595915124999996,-0.3999999999999997" data-type="line" data-label="" points="268.77360832597685,349.76827420886843 561.1270342825638,373.34710526539783" fill="none" stroke="hsl(157, 100%, 50%, 0.8)" stroke-width="1px" stroke-dasharray="4 2"/></g><g><polyline data-points="1.6,0.7 2.12979575625,0.7 2.12979575625,0.9000000000000004 2.6595915124999996,0.9000000000000004 2.6595915124999996,0.7000000000000004" data-type="line" data-label="" points="498.66721112713884,308.50531985994195 529.8971227048513,308.50531985994195 529.8971227048513,296.71590433167717 561.1270342825638,296.71590433167717 561.1270342825638,308.5053198599419" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="1.6,-0.7 1.8,-0.7 1.8,0.7 1.6,0.7" data-type="line" data-label="" points="498.66721112713884,391.0312285577949 510.45662665540357,391.0312285577949 510.45662665540357,308.50531985994195 498.66721112713884,308.50531985994195" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.5747276749999997,2.7300000000000004 -2.5747276749999997,2.9300000000000006 -2.0873638375,2.9300000000000006 -2.0873638375,0.9999999999999996 -1.6,0.9999999999999996" data-type="line" data-label="" points="252.57921473753154,188.842752248055 252.57921473753154,177.05333671979028 281.30788870621745,177.05333671979028 281.30788870621745,290.82119656754486 310.03656267490334,290.82119656754486" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.3000000000000003,0 -1.9500000000000002,0 -1.9500000000000002,-1 -1.6,-1" data-type="line" data-label="" points="268.77360832597685,349.76827420886843 289.40508550044007,349.76827420886843 289.40508550044007,408.715351850192 310.03656267490334,408.715351850192" fill="none" stroke="purple" stroke-width="1px"/></g><g><polyline data-points="-2.564727675,1.6500000000000004 -2.564727675,0.8250000000000002 -2.1000000000000005,0.8250000000000002 -2.1000000000000005,0 -2.3000000000000003,0" data-type="line" data-label="" points="253.16868551394478,252.5055961006845 253.16868551394478,301.13693515477644 280.5630238542415,301.13693515477644 280.5630238542415,349.76827420886843 268.77360832597685,349.76827420886843" 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="310.03656267490334" y="243.66353445448595" width="188.6306484522355" height="212.20947950876496" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="schematic_component_1" data-x="-2.5697276749999998" data-y="2.1900000000000004" x="234.0269380434333" y="188.84275224805498" width="37.69402416460974" height="63.66284385262949" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="schematic_component_2" data-x="-3.4000000000000004" data-y="0" x="139.0900375150649" y="314.40002762407426" width="129.68357081091193" height="70.73649316958836" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="schematic_component_3" data-x="2.9094553499999996" data-y="0.15000000000000036" x="551.7115546228706" y="308.5053198599419" width="48.28844537712928" height="64.84178540545594" fill="hsl(24, 100%, 50%, 0.8)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="TPS22919DCKR" data-x="-0.48" data-y="-1.9300000000000002" x="333.61539373143273" y="458.2308970689039" width="84.88379180350597" height="10.610473975438197" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="U1" data-x="-1.08" data-y="1.9300000000000002" x="333.6153937314328" y="230.69517737339476" width="14.147298633917671" height="10.610473975438225" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="V_ON" data-x="-3.8600000000000003" data-y="0.73" x="162.66886857159434" y="301.43167054298317" width="28.294597267835343" height="10.610473975438197" fill="rgba(160, 0, 220, 0.14)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="netId: V_IN.pin1 to U1.IN
2
+ globalConnNetId: connectivity_net0" data-x="-2.7997276749999997" data-y="2.9300000000000006" x="226.0530297989359" y="171.15862895565792" width="26.526184938595634" height="11.789415528264726" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="netId: GND
3
+ globalConnNetId: connectivity_net3" data-x="-1.9500000000000002" data-y="-1.24" x="277.02619919576216" y="408.715351850192" width="24.757772609355868" height="28.294597267835343" fill="#00000066" stroke="#000000" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="netId: GND
4
+ globalConnNetId: connectivity_net3" data-x="2.6595915124999996" data-y="-0.6409999999999997" x="548.748147977886" y="373.40605234303916" width="24.75777260935581" height="28.294597267835343" fill="#00000066" stroke="#000000" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="netId: V_ON.OUT to U1.ON
5
+ globalConnNetId: connectivity_net1" data-x="-5.341" data-y="0" x="40" y="343.87356644473607" width="99.03109043742359" height="11.789415528264726" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="netId: V_ON.OUT to U1.ON
6
+ globalConnNetId: connectivity_net1" data-x="-2.441" data-y="0" x="210.94652515983842" y="343.87356644473607" width="99.03109043742359" height="11.789415528264726" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.016964369397321426"/></g><g><rect data-type="rect" data-label="netId: U1.QOD to U1.OUT
7
+ globalConnNetId: connectivity_net2" data-x="1.8" data-y="-0.9249999999999999" x="504.56191889127126" y="391.0312285577949" width="11.78941552826467" height="26.526184938595634" fill="hsl(40, 100%, 50%, 0.35)" stroke="black" stroke-width="0.016964369397321426"/></g><g><circle data-type="point" data-label="U1.1
8
+ x-" data-x="-1.6" data-y="1" cx="310.03656267490334" cy="290.82119656754486" r="3" fill="hsl(319, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.2
9
+ x-" data-x="-1.6" data-y="-1" cx="310.03656267490334" cy="408.715351850192" r="3" fill="hsl(320, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.3
10
+ x-" data-x="-1.6" data-y="0" cx="310.03656267490334" cy="349.76827420886843" r="3" fill="hsl(321, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.5
11
+ x+" data-x="1.6" data-y="-0.7" cx="498.66721112713884" cy="391.0312285577949" r="3" fill="hsl(323, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="U1.6
12
+ x+" data-x="1.6" data-y="0.7" cx="498.66721112713884" cy="308.50531985994195" r="3" fill="hsl(324, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="V_IN.1
13
+ y+" data-x="-2.5747276749999997" data-y="2.7300000000000004" cx="252.57921473753154" cy="188.842752248055" r="3" fill="hsl(97, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="V_IN.2
14
+ y-" data-x="-2.564727675" data-y="1.6500000000000004" cx="253.16868551394478" cy="252.5055961006845" r="3" fill="hsl(98, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="V_ON.1
15
+ x-" data-x="-4.5" data-y="0" cx="139.09003751506492" cy="349.76827420886843" r="3" fill="hsl(283, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="V_ON.2
16
+ x+" data-x="-2.3000000000000003" data-y="0" cx="268.77360832597685" cy="349.76827420886843" r="3" fill="hsl(284, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R_L.1
17
+ y+" data-x="2.6595915124999996" data-y="0.7000000000000004" cx="561.1270342825638" cy="308.5053198599419" r="3" fill="hsl(18, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="R_L.2
18
+ y-" data-x="2.6595915124999996" data-y="-0.3999999999999997" cx="561.1270342825638" cy="373.34710526539783" r="3" fill="hsl(19, 100%, 50%, 0.8)"/></g><g><circle data-type="point" data-label="anchorPoint
19
+ orientation: x-" data-x="-2.5747276749999997" data-y="2.9300000000000006" cx="252.57921473753154" cy="177.05333671979028" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
20
+ orientation: y-" data-x="-1.9500000000000002" data-y="-1" cx="289.40508550044007" cy="408.715351850192" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
21
+ orientation: y-" data-x="2.6595915124999996" data-y="-0.3999999999999997" cx="561.1270342825638" cy="373.34710526539783" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
22
+ orientation: x-" data-x="-4.5" data-y="0" cx="139.09003751506492" cy="349.76827420886843" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
23
+ orientation: x-" data-x="-1.6" data-y="0" cx="310.03656267490334" cy="349.76827420886843" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g><circle data-type="point" data-label="anchorPoint
24
+ orientation: y-" data-x="1.8" data-y="-0.7" cx="510.45662665540357" cy="391.0312285577949" r="3" fill="hsl(40, 100%, 50%, 0.9)"/></g><g id="crosshair" style="display: none"><line id="crosshair-h" y1="0" y2="640" stroke="#666" stroke-width="0.5"/><line id="crosshair-v" x1="0" x2="640" stroke="#666" stroke-width="0.5"/><text id="coordinates" font-family="monospace" font-size="12" fill="#666"></text></g><script><![CDATA[
25
+ document.currentScript.parentElement.addEventListener('mousemove', (e) => {
26
+ const svg = e.currentTarget;
27
+ const rect = svg.getBoundingClientRect();
28
+ const x = e.clientX - rect.left;
29
+ const y = e.clientY - rect.top;
30
+ const crosshair = svg.getElementById('crosshair');
31
+ const h = svg.getElementById('crosshair-h');
32
+ const v = svg.getElementById('crosshair-v');
33
+ const coords = svg.getElementById('coordinates');
34
+
35
+ crosshair.style.display = 'block';
36
+ h.setAttribute('x1', '0');
37
+ h.setAttribute('x2', '640');
38
+ h.setAttribute('y1', y);
39
+ h.setAttribute('y2', y);
40
+ v.setAttribute('x1', x);
41
+ v.setAttribute('x2', x);
42
+ v.setAttribute('y1', '0');
43
+ v.setAttribute('y2', '640');
176
44
 
177
- crosshair.style.display = 'block';
178
- h.setAttribute('x1', '0');
179
- h.setAttribute('x2', '640');
180
- h.setAttribute('y1', y);
181
- h.setAttribute('y2', y);
182
- v.setAttribute('x1', x);
183
- v.setAttribute('x2', x);
184
- v.setAttribute('y1', '0');
185
- v.setAttribute('y2', '640');
186
-
187
- // Calculate real coordinates using inverse transformation
188
- const matrix = {
189
- "a": 58.94707764132359,
190
- "c": 0,
191
- "e": 404.3518869010211,
192
- "b": 0,
193
- "d": -58.94707764132359,
194
- "f": 349.76827420886843
195
- };
196
- // Manually invert and apply the affine transform
197
- // Since we only use translate and scale, we can directly compute:
198
- // x' = (x - tx) / sx
199
- // y' = (y - ty) / sy
200
- const sx = matrix.a;
201
- const sy = matrix.d;
202
- const tx = matrix.e;
203
- const ty = matrix.f;
204
- const realPoint = {
205
- x: (x - tx) / sx,
206
- y: (y - ty) / sy // Flip y back since we used negative scale
207
- }
208
-
209
- coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
210
- coords.setAttribute('x', (x + 5).toString());
211
- coords.setAttribute('y', (y - 5).toString());
212
- });
213
- document.currentScript.parentElement.addEventListener('mouseleave', () => {
214
- document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
215
- });
216
- ]]>
217
- </script>
218
- </svg>
45
+ // Calculate real coordinates using inverse transformation
46
+ const matrix = {"a":58.94707764132359,"c":0,"e":404.3518869010211,"b":0,"d":-58.94707764132359,"f":349.76827420886843};
47
+ // Manually invert and apply the affine transform
48
+ // Since we only use translate and scale, we can directly compute:
49
+ // x' = (x - tx) / sx
50
+ // y' = (y - ty) / sy
51
+ const sx = matrix.a;
52
+ const sy = matrix.d;
53
+ const tx = matrix.e;
54
+ const ty = matrix.f;
55
+ const realPoint = {
56
+ x: (x - tx) / sx,
57
+ y: (y - ty) / sy // Flip y back since we used negative scale
58
+ }
59
+
60
+ coords.textContent = `(${realPoint.x.toFixed(2)}, ${realPoint.y.toFixed(2)})`;
61
+ coords.setAttribute('x', (x + 5).toString());
62
+ coords.setAttribute('y', (y - 5).toString());
63
+ });
64
+ document.currentScript.parentElement.addEventListener('mouseleave', () => {
65
+ document.currentScript.parentElement.getElementById('crosshair').style.display = 'none';
66
+ });
67
+ ]]></script></svg>