@vessel-dsp/core 0.5.0
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.
- package/LICENSE.md +21 -0
- package/README.md +6 -0
- package/package.json +56 -0
- package/src/editor/commands.ts +344 -0
- package/src/editor/factory.ts +148 -0
- package/src/editor/history.ts +142 -0
- package/src/editor/index.ts +11 -0
- package/src/editor/layout.ts +207 -0
- package/src/formats/circuit-json/serializer.ts +1410 -0
- package/src/formats/document.ts +274 -0
- package/src/formats/interchange/parser.ts +1165 -0
- package/src/formats/interchange/serializer.ts +594 -0
- package/src/formats/ltspice/catalog.ts +181 -0
- package/src/formats/ltspice/encoding.ts +151 -0
- package/src/formats/ltspice/parser.ts +432 -0
- package/src/formats/ltspice/serializer.ts +169 -0
- package/src/formats/schx/catalog.ts +439 -0
- package/src/formats/schx/parser.ts +261 -0
- package/src/formats/schx/runtime-descriptors.ts +502 -0
- package/src/formats/schx/serializer.ts +211 -0
- package/src/formats/schx/transforms.ts +38 -0
- package/src/formats/spice/parser.ts +373 -0
- package/src/formats/spice/serializer.ts +43 -0
- package/src/index.ts +205 -0
- package/src/model/connectivity.ts +239 -0
- package/src/model/netlist.ts +375 -0
- package/src/model/properties.ts +101 -0
- package/src/model/quantity.ts +173 -0
- package/src/model/types.ts +309 -0
- package/src/model/validation.ts +985 -0
- package/src/model/wires.ts +86 -0
- package/src/panel/extract.ts +878 -0
- package/src/panel/index.ts +39 -0
- package/src/panel/knobs.ts +70 -0
- package/src/panel/protocol.ts +117 -0
- package/src/panel/types.ts +180 -0
- package/src/preview/bounds.ts +85 -0
- package/src/preview/box-layout.ts +24 -0
- package/src/preview/colors.ts +43 -0
- package/src/preview/hanging.ts +94 -0
- package/src/preview/junctions.ts +94 -0
- package/src/preview/label-layout.ts +90 -0
- package/src/preview/ports.ts +101 -0
- package/src/preview/renderable-wires.ts +113 -0
- package/src/preview/routing.ts +15 -0
- package/src/preview/snap.ts +104 -0
- package/src/preview/symbols/analog-switch.svg +17 -0
- package/src/preview/symbols/battery.svg +16 -0
- package/src/preview/symbols/bbd.svg +21 -0
- package/src/preview/symbols/bjt-npn.svg +16 -0
- package/src/preview/symbols/bjt-pnp.svg +17 -0
- package/src/preview/symbols/capacitor-electrolytic.svg +13 -0
- package/src/preview/symbols/capacitor.svg +12 -0
- package/src/preview/symbols/current-source.svg +14 -0
- package/src/preview/symbols/delay-ic.svg +22 -0
- package/src/preview/symbols/diode-schottky.svg +12 -0
- package/src/preview/symbols/diode-zener.svg +12 -0
- package/src/preview/symbols/diode.svg +13 -0
- package/src/preview/symbols/flipflop.svg +20 -0
- package/src/preview/symbols/ground.svg +12 -0
- package/src/preview/symbols/ic-block.svg +20 -0
- package/src/preview/symbols/ic.svg +19 -0
- package/src/preview/symbols/inductor.svg +11 -0
- package/src/preview/symbols/jack-input.svg +16 -0
- package/src/preview/symbols/jack-output.svg +16 -0
- package/src/preview/symbols/jfet-junction-n.svg +17 -0
- package/src/preview/symbols/jfet-n.svg +17 -0
- package/src/preview/symbols/jfet-p.svg +17 -0
- package/src/preview/symbols/label.svg +8 -0
- package/src/preview/symbols/led.svg +18 -0
- package/src/preview/symbols/mosfet-n.svg +21 -0
- package/src/preview/symbols/mosfet-p.svg +21 -0
- package/src/preview/symbols/named-wire.svg +11 -0
- package/src/preview/symbols/opamp.svg +21 -0
- package/src/preview/symbols/optocoupler.svg +30 -0
- package/src/preview/symbols/ota.svg +20 -0
- package/src/preview/symbols/pentode.svg +25 -0
- package/src/preview/symbols/photoresistor.svg +19 -0
- package/src/preview/symbols/port.svg +8 -0
- package/src/preview/symbols/potentiometer.svg +15 -0
- package/src/preview/symbols/power-amp.svg +20 -0
- package/src/preview/symbols/rail.svg +11 -0
- package/src/preview/symbols/regulator.svg +13 -0
- package/src/preview/symbols/relay.svg +20 -0
- package/src/preview/symbols/resistor.svg +11 -0
- package/src/preview/symbols/svg-content.ts +59 -0
- package/src/preview/symbols/switch-3pdt.svg +32 -0
- package/src/preview/symbols/switch-rotary.svg +23 -0
- package/src/preview/symbols/switch-spdt.svg +16 -0
- package/src/preview/symbols/switch-spst.svg +14 -0
- package/src/preview/symbols/switch-toggle.svg +14 -0
- package/src/preview/symbols/transformer.svg +17 -0
- package/src/preview/symbols/triode.svg +17 -0
- package/src/preview/symbols/tube-diode.svg +13 -0
- package/src/preview/symbols/unsupported.svg +8 -0
- package/src/preview/symbols/variable-resistor.svg +13 -0
- package/src/preview/symbols/voltage-source.svg +15 -0
- package/src/preview/symbols.ts +207 -0
- package/src/preview/wire-chains.ts +153 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-35 -25 70 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: delay-ic (PT2399 digital echo IC)
|
|
4
|
+
terminals: vcc (-30,-20), gnd (-30,20), vref (-30,-10), vco (-30,0), in (-30,10), out (30,-10), fb (30,0), da1 (30,5), da2 (30,10)
|
|
5
|
+
DIP-16 footprint, "PT2399" label centered.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-30" y1="-20" x2="-20" y2="-20"/>
|
|
9
|
+
<line x1="-30" y1="-10" x2="-20" y2="-10"/>
|
|
10
|
+
<line x1="-30" y1="0" x2="-20" y2="0"/>
|
|
11
|
+
<line x1="-30" y1="10" x2="-20" y2="10"/>
|
|
12
|
+
<line x1="-30" y1="20" x2="-20" y2="20"/>
|
|
13
|
+
<line x1="20" y1="-10" x2="30" y2="-10"/>
|
|
14
|
+
<line x1="20" y1="0" x2="30" y2="0"/>
|
|
15
|
+
<line x1="20" y1="5" x2="30" y2="5"/>
|
|
16
|
+
<line x1="20" y1="10" x2="30" y2="10"/>
|
|
17
|
+
</g>
|
|
18
|
+
<rect x="-20" y="-22" width="40" height="44" rx="2"/>
|
|
19
|
+
<circle cx="-17" cy="-19" r="1.2" fill="currentColor" stroke="none"/>
|
|
20
|
+
<text x="0" y="-2" font-size="6" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="middle">PT2399</text>
|
|
21
|
+
<text x="0" y="8" font-size="3.5" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="middle">echo</text>
|
|
22
|
+
</svg>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: diode (Schottky variant)
|
|
4
|
+
terminals: anode (SVG 0,-20), cathode (SVG 0,20)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="-20" x2="0" y2="-5"/>
|
|
8
|
+
<line x1="0" y1="4" x2="0" y2="20"/>
|
|
9
|
+
</g>
|
|
10
|
+
<path d="M -6 -5 L 6 -5 L 0 4 Z" fill="currentColor" stroke="none"/>
|
|
11
|
+
<polyline points="-9,1 -7,1 -7,4 7,4 7,7 9,7"/>
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: diode (Zener variant)
|
|
4
|
+
terminals: anode (SVG 0,-20), cathode (SVG 0,20)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="-20" x2="0" y2="-5"/>
|
|
8
|
+
<line x1="0" y1="4" x2="0" y2="20"/>
|
|
9
|
+
</g>
|
|
10
|
+
<path d="M -6 -5 L 6 -5 L 0 4 Z" fill="currentColor" stroke="none"/>
|
|
11
|
+
<polyline points="-9,2 -7,4 7,4 9,6"/>
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: diode
|
|
4
|
+
terminals: anode (SVG 0,-20), cathode (SVG 0,20)
|
|
5
|
+
Arrow points anode (top) -> cathode (bottom).
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="0" y1="-20" x2="0" y2="-5"/>
|
|
9
|
+
<line x1="0" y1="4" x2="0" y2="20"/>
|
|
10
|
+
</g>
|
|
11
|
+
<path d="M -6 -5 L 6 -5 L 0 4 Z" fill="currentColor" stroke="none"/>
|
|
12
|
+
<line x1="-7" y1="4" x2="7" y2="4"/>
|
|
13
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: flipflop (one half of a CD4013 dual D flip-flop)
|
|
4
|
+
terminals: d (-20,-10), clk (-20,10), s (0,-20), r (0,20), q (20,-10), qbar (20,10)
|
|
5
|
+
Rectangular gate body with D/CK on left, Q/Q̄ on right, set/reset on top/bottom.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-20" y1="-10" x2="-12" y2="-10"/>
|
|
9
|
+
<line x1="-20" y1="10" x2="-12" y2="10"/>
|
|
10
|
+
<line x1="12" y1="-10" x2="20" y2="-10"/>
|
|
11
|
+
<line x1="12" y1="10" x2="20" y2="10"/>
|
|
12
|
+
<line x1="0" y1="-20" x2="0" y2="-15"/>
|
|
13
|
+
<line x1="0" y1="15" x2="0" y2="20"/>
|
|
14
|
+
</g>
|
|
15
|
+
<rect x="-12" y="-15" width="24" height="30" rx="2"/>
|
|
16
|
+
<text x="-7" y="-7" font-size="4" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none">D</text>
|
|
17
|
+
<text x="-9" y="13" font-size="4" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none">CK</text>
|
|
18
|
+
<text x="7" y="-7" font-size="4" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="end">Q</text>
|
|
19
|
+
<text x="9" y="13" font-size="4" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="end">Q̄</text>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: ground
|
|
4
|
+
terminals: t (SVG 0,0)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="0" x2="0" y2="4"/>
|
|
8
|
+
</g>
|
|
9
|
+
<line x1="-8" y1="4" x2="8" y2="4"/>
|
|
10
|
+
<line x1="-5" y1="8" x2="5" y2="8"/>
|
|
11
|
+
<line x1="-2" y1="12" x2="2" y2="12"/>
|
|
12
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: ic (opaque block — BBD, PT2399, regulator, OTA, codec/DSP)
|
|
4
|
+
terminals: generic DIP-8 layout (4 left, 4 right)
|
|
5
|
+
NOTE: catalog has no terminal map yet for opaque ICs; this is a layout placeholder.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-20" y1="-9" x2="-13" y2="-9"/>
|
|
9
|
+
<line x1="-20" y1="-3" x2="-13" y2="-3"/>
|
|
10
|
+
<line x1="-20" y1="3" x2="-13" y2="3"/>
|
|
11
|
+
<line x1="-20" y1="9" x2="-13" y2="9"/>
|
|
12
|
+
<line x1="13" y1="-9" x2="20" y2="-9"/>
|
|
13
|
+
<line x1="13" y1="-3" x2="20" y2="-3"/>
|
|
14
|
+
<line x1="13" y1="3" x2="20" y2="3"/>
|
|
15
|
+
<line x1="13" y1="9" x2="20" y2="9"/>
|
|
16
|
+
</g>
|
|
17
|
+
<rect x="-13" y="-13" width="26" height="26" rx="2"/>
|
|
18
|
+
<!-- Pin-1 indicator -->
|
|
19
|
+
<circle cx="-9" cy="-9" r="1.2" fill="currentColor" stroke="none"/>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: ic (generic opaque IC — DIP-8 layout)
|
|
4
|
+
terminals: p1..p4 left side (top→bottom), p5..p8 right side (bottom→top)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="-20" y1="-15" x2="-13" y2="-15"/>
|
|
8
|
+
<line x1="-20" y1="-5" x2="-13" y2="-5"/>
|
|
9
|
+
<line x1="-20" y1="5" x2="-13" y2="5"/>
|
|
10
|
+
<line x1="-20" y1="15" x2="-13" y2="15"/>
|
|
11
|
+
<line x1="13" y1="-15" x2="20" y2="-15"/>
|
|
12
|
+
<line x1="13" y1="-5" x2="20" y2="-5"/>
|
|
13
|
+
<line x1="13" y1="5" x2="20" y2="5"/>
|
|
14
|
+
<line x1="13" y1="15" x2="20" y2="15"/>
|
|
15
|
+
</g>
|
|
16
|
+
<rect x="-13" y="-18" width="26" height="36" rx="2"/>
|
|
17
|
+
<circle cx="-9" cy="-15" r="1.2" fill="currentColor" stroke="none"/>
|
|
18
|
+
<text x="0" y="2" font-size="5" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="middle">IC</text>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: inductor
|
|
4
|
+
terminals: a (SVG 0,-20), b (SVG 0,20)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="-20" x2="0" y2="-10"/>
|
|
8
|
+
<line x1="0" y1="10" x2="0" y2="20"/>
|
|
9
|
+
</g>
|
|
10
|
+
<path d="M 0 -10 A 3 2.5 0 0 1 0 -5 A 3 2.5 0 0 1 0 0 A 3 2.5 0 0 1 0 5 A 3 2.5 0 0 1 0 10"/>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: jack (Input variant — TS phone jack)
|
|
4
|
+
terminals: tip (SVG 0,-20), sleeve (SVG 0,20)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="-20" x2="0" y2="-3"/>
|
|
8
|
+
<line x1="0" y1="3" x2="0" y2="20"/>
|
|
9
|
+
</g>
|
|
10
|
+
<!-- Plug barrel -->
|
|
11
|
+
<rect x="-15" y="-7" width="6" height="14" rx="1"/>
|
|
12
|
+
<!-- Tip and sleeve rods -->
|
|
13
|
+
<line x1="-9" y1="-3" x2="0" y2="-3"/>
|
|
14
|
+
<line x1="-9" y1="3" x2="0" y2="3"/>
|
|
15
|
+
<text x="-12" y="-11" font-size="5" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none">INPUT</text>
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: jack (Output variant — TS phone jack / Speaker)
|
|
4
|
+
terminals: tip (SVG 0,-20), sleeve (SVG 0,20)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="-20" x2="0" y2="-3"/>
|
|
8
|
+
<line x1="0" y1="3" x2="0" y2="20"/>
|
|
9
|
+
</g>
|
|
10
|
+
<!-- Mirrored plug barrel -->
|
|
11
|
+
<rect x="9" y="-7" width="6" height="14" rx="1"/>
|
|
12
|
+
<!-- Tip and sleeve rods -->
|
|
13
|
+
<line x1="0" y1="-3" x2="9" y2="-3"/>
|
|
14
|
+
<line x1="0" y1="3" x2="9" y2="3"/>
|
|
15
|
+
<text x="2" y="-11" font-size="5" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none">OUTPUT</text>
|
|
16
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: jfet (N-channel JunctionFieldEffectTransistor variant)
|
|
4
|
+
terminals: drain (SVG 10,-20), gate (SVG -20,0), source (SVG 10,20)
|
|
5
|
+
LiveSPICE JunctionFieldEffectTransistor uses slanted drain/source anchors.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-20" y1="0" x2="-3" y2="0"/>
|
|
9
|
+
<line x1="0" y1="-8" x2="10" y2="-20"/>
|
|
10
|
+
<line x1="0" y1="8" x2="10" y2="20"/>
|
|
11
|
+
</g>
|
|
12
|
+
<circle cx="0" cy="0" r="11"/>
|
|
13
|
+
<line x1="-3" y1="-8" x2="-3" y2="8"/>
|
|
14
|
+
<line x1="-3" y1="-8" x2="0" y2="-8"/>
|
|
15
|
+
<line x1="-3" y1="8" x2="0" y2="8"/>
|
|
16
|
+
<path d="M -3 0 L -7 -2 L -7 2 Z" fill="currentColor" stroke="none"/>
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: jfet (N-channel variant)
|
|
4
|
+
terminals: drain (SVG 0,-20), gate (SVG -20,0), source (SVG 0,20)
|
|
5
|
+
Arrow on gate lead points INTO the channel.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-20" y1="0" x2="-3" y2="0"/>
|
|
9
|
+
<line x1="0" y1="-8" x2="0" y2="-20"/>
|
|
10
|
+
<line x1="0" y1="8" x2="0" y2="20"/>
|
|
11
|
+
</g>
|
|
12
|
+
<circle cx="0" cy="0" r="11"/>
|
|
13
|
+
<line x1="-3" y1="-8" x2="-3" y2="8"/>
|
|
14
|
+
<line x1="-3" y1="-8" x2="0" y2="-8"/>
|
|
15
|
+
<line x1="-3" y1="8" x2="0" y2="8"/>
|
|
16
|
+
<path d="M -3 0 L -7 -2 L -7 2 Z" fill="currentColor" stroke="none"/>
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: jfet (P-channel variant)
|
|
4
|
+
terminals: drain (SVG 0,-20), gate (SVG -20,0), source (SVG 0,20)
|
|
5
|
+
Arrow on gate lead points OUT of the channel (away from channel).
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-20" y1="0" x2="-3" y2="0"/>
|
|
9
|
+
<line x1="0" y1="-8" x2="0" y2="-20"/>
|
|
10
|
+
<line x1="0" y1="8" x2="0" y2="20"/>
|
|
11
|
+
</g>
|
|
12
|
+
<circle cx="0" cy="0" r="11"/>
|
|
13
|
+
<line x1="-3" y1="-8" x2="-3" y2="8"/>
|
|
14
|
+
<line x1="-3" y1="-8" x2="0" y2="-8"/>
|
|
15
|
+
<line x1="-3" y1="8" x2="0" y2="8"/>
|
|
16
|
+
<path d="M -7 0 L -3 -2 L -3 2 Z" fill="currentColor" stroke="none"/>
|
|
17
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: label
|
|
4
|
+
terminals: none
|
|
5
|
+
The label text is dynamic (read from properties.Text by schematic.tsx).
|
|
6
|
+
This SVG is intentionally empty — the renderer draws the text glyph itself.
|
|
7
|
+
-->
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: led
|
|
4
|
+
terminals: anode (SVG 0,-20), cathode (SVG 0,20)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="-20" x2="0" y2="-5"/>
|
|
8
|
+
<line x1="0" y1="4" x2="0" y2="20"/>
|
|
9
|
+
</g>
|
|
10
|
+
<path d="M -6 -5 L 6 -5 L 0 4 Z" fill="currentColor" stroke="none"/>
|
|
11
|
+
<line x1="-7" y1="4" x2="7" y2="4"/>
|
|
12
|
+
<line x1="8" y1="-8" x2="14" y2="-14"/>
|
|
13
|
+
<line x1="14" y1="-14" x2="12" y2="-10"/>
|
|
14
|
+
<line x1="14" y1="-14" x2="10" y2="-12"/>
|
|
15
|
+
<line x1="11" y1="-3" x2="17" y2="-9"/>
|
|
16
|
+
<line x1="17" y1="-9" x2="15" y2="-5"/>
|
|
17
|
+
<line x1="17" y1="-9" x2="13" y2="-7"/>
|
|
18
|
+
</svg>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: mosfet (N-channel enhancement variant)
|
|
4
|
+
terminals: drain (SVG 0,-20), gate (SVG -20,0), source (SVG 0,20), body (SVG 10,0)
|
|
5
|
+
Body arrow points INTO channel (left) — distinguishes N from P.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-20" y1="0" x2="-7" y2="0"/>
|
|
9
|
+
<line x1="0" y1="-8" x2="0" y2="-20"/>
|
|
10
|
+
<line x1="0" y1="8" x2="0" y2="20"/>
|
|
11
|
+
<line x1="-3" y1="0" x2="10" y2="0"/>
|
|
12
|
+
</g>
|
|
13
|
+
<circle cx="0" cy="0" r="11"/>
|
|
14
|
+
<line x1="-7" y1="-5" x2="-7" y2="5"/>
|
|
15
|
+
<line x1="-3" y1="-8" x2="-3" y2="-3"/>
|
|
16
|
+
<line x1="-3" y1="-1" x2="-3" y2="1"/>
|
|
17
|
+
<line x1="-3" y1="3" x2="-3" y2="8"/>
|
|
18
|
+
<line x1="-3" y1="-8" x2="0" y2="-8"/>
|
|
19
|
+
<line x1="-3" y1="8" x2="0" y2="8"/>
|
|
20
|
+
<path d="M -1 0 L 3 -2 L 3 2 Z" fill="currentColor" stroke="none"/>
|
|
21
|
+
</svg>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: mosfet (P-channel enhancement variant)
|
|
4
|
+
terminals: drain (SVG 0,-20), gate (SVG -20,0), source (SVG 0,20), body (SVG 10,0)
|
|
5
|
+
Body arrow points OUT of channel (right) — distinguishes P from N.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-20" y1="0" x2="-7" y2="0"/>
|
|
9
|
+
<line x1="0" y1="-8" x2="0" y2="-20"/>
|
|
10
|
+
<line x1="0" y1="8" x2="0" y2="20"/>
|
|
11
|
+
<line x1="-3" y1="0" x2="10" y2="0"/>
|
|
12
|
+
</g>
|
|
13
|
+
<circle cx="0" cy="0" r="11"/>
|
|
14
|
+
<line x1="-7" y1="-5" x2="-7" y2="5"/>
|
|
15
|
+
<line x1="-3" y1="-8" x2="-3" y2="-3"/>
|
|
16
|
+
<line x1="-3" y1="-1" x2="-3" y2="1"/>
|
|
17
|
+
<line x1="-3" y1="3" x2="-3" y2="8"/>
|
|
18
|
+
<line x1="-3" y1="-8" x2="0" y2="-8"/>
|
|
19
|
+
<line x1="-3" y1="8" x2="0" y2="8"/>
|
|
20
|
+
<path d="M 3 0 L -1 -2 L -1 2 Z" fill="currentColor" stroke="none"/>
|
|
21
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: named-wire
|
|
4
|
+
terminals: t (SVG 0,0)
|
|
5
|
+
Small marker circle + short outbound stroke toward the wire's name label.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="3" y1="0" x2="12" y2="0"/>
|
|
9
|
+
</g>
|
|
10
|
+
<circle cx="0" cy="0" r="3"/>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-35 -25 70 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: opamp
|
|
4
|
+
terminals: vin+ (SVG -30,-10), vin- (SVG -30,10), vout (SVG 30,0), vcc (SVG 0,-20), vee (SVG 0,20)
|
|
5
|
+
NOTE: extended viewBox (-35..35 wide) because input/output leads sit at x=±30.
|
|
6
|
+
+ and − markers drawn as line strokes (more readable at small scale than <text>).
|
|
7
|
+
-->
|
|
8
|
+
<g stroke-width="0.95">
|
|
9
|
+
<line x1="-30" y1="-10" x2="-11" y2="-10"/>
|
|
10
|
+
<line x1="-30" y1="10" x2="-11" y2="10"/>
|
|
11
|
+
<line x1="10" y1="0" x2="30" y2="0"/>
|
|
12
|
+
<line x1="0" y1="-20" x2="0" y2="-5"/>
|
|
13
|
+
<line x1="0" y1="5" x2="0" y2="20"/>
|
|
14
|
+
</g>
|
|
15
|
+
<path d="M -11 -10 L 10 0 L -11 10 Z"/>
|
|
16
|
+
<!-- + marker (vin+ side) -->
|
|
17
|
+
<line x1="-9" y1="-5" x2="-5" y2="-5"/>
|
|
18
|
+
<line x1="-7" y1="-7" x2="-7" y2="-3"/>
|
|
19
|
+
<!-- − marker (vin− side) -->
|
|
20
|
+
<line x1="-9" y1="5" x2="-5" y2="5"/>
|
|
21
|
+
</svg>
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: optocoupler (vactrol — LED + LDR pair inside an opaque package)
|
|
4
|
+
terminals: led+ (SVG -20,-10), led- (SVG -20,10), r1 (SVG 20,-10), r2 (SVG 20,10)
|
|
5
|
+
NOTE: catalog has no terminal map yet; using generic 4-pin DIP-style layout.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-20" y1="-10" x2="-7" y2="-10"/>
|
|
9
|
+
<line x1="-20" y1="10" x2="-7" y2="10"/>
|
|
10
|
+
<line x1="7" y1="-10" x2="20" y2="-10"/>
|
|
11
|
+
<line x1="7" y1="10" x2="20" y2="10"/>
|
|
12
|
+
</g>
|
|
13
|
+
<rect x="-15" y="-13" width="30" height="26" rx="2"/>
|
|
14
|
+
<!-- LED triangle pointing down (anode top → cathode bottom) -->
|
|
15
|
+
<path d="M -10 -3 L -4 -3 L -7 3 Z" fill="currentColor" stroke="none"/>
|
|
16
|
+
<line x1="-11" y1="3" x2="-3" y2="3"/>
|
|
17
|
+
<line x1="-7" y1="-10" x2="-7" y2="-3"/>
|
|
18
|
+
<line x1="-7" y1="3" x2="-7" y2="10"/>
|
|
19
|
+
<!-- Emission arrows from LED → LDR -->
|
|
20
|
+
<line x1="-2" y1="-2" x2="2" y2="-2"/>
|
|
21
|
+
<line x1="2" y1="-2" x2="0" y2="-3"/>
|
|
22
|
+
<line x1="2" y1="-2" x2="0" y2="-1"/>
|
|
23
|
+
<line x1="-2" y1="2" x2="2" y2="2"/>
|
|
24
|
+
<line x1="2" y1="2" x2="0" y2="1"/>
|
|
25
|
+
<line x1="2" y1="2" x2="0" y2="3"/>
|
|
26
|
+
<!-- LDR (vertical resistor zigzag) -->
|
|
27
|
+
<polyline points="7,-7 4,-5 10,-3 4,-1 10,1 4,3 10,5 7,7"/>
|
|
28
|
+
<line x1="7" y1="-10" x2="7" y2="-7"/>
|
|
29
|
+
<line x1="7" y1="7" x2="7" y2="10"/>
|
|
30
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-35 -25 70 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: ota (operational transconductance amplifier — LM13700 / CA3080 family)
|
|
4
|
+
terminals: vin+ (SVG -30,-10), vin- (SVG -30,10), ibias (SVG -30,-20), iout (SVG 30,0), vcc (SVG 0,-20), vee (SVG 0,20)
|
|
5
|
+
Same triangle as op-amp but with a bias-current input lead labeled "Ib".
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-30" y1="-10" x2="-11" y2="-10"/>
|
|
9
|
+
<line x1="-30" y1="10" x2="-11" y2="10"/>
|
|
10
|
+
<line x1="-30" y1="-20" x2="-3" y2="-15"/>
|
|
11
|
+
<line x1="10" y1="0" x2="30" y2="0"/>
|
|
12
|
+
<line x1="0" y1="-20" x2="0" y2="-5"/>
|
|
13
|
+
<line x1="0" y1="5" x2="0" y2="20"/>
|
|
14
|
+
</g>
|
|
15
|
+
<path d="M -11 -10 L 10 0 L -11 10 Z"/>
|
|
16
|
+
<line x1="-9" y1="-12" x2="-5" y2="-12"/>
|
|
17
|
+
<line x1="-7" y1="-14" x2="-7" y2="-10"/>
|
|
18
|
+
<line x1="-9" y1="10" x2="-5" y2="10"/>
|
|
19
|
+
<text x="-1" y="-14" font-size="4" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="middle">Ib</text>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: pentode
|
|
4
|
+
terminals: plate (SVG 0,-20), screen (SVG 10,-10), grid (SVG -20,0), cathode (SVG -10,20), suppressor (SVG 10,10)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="-7" x2="0" y2="-20"/>
|
|
8
|
+
<line x1="-20" y1="0" x2="-11" y2="0"/>
|
|
9
|
+
<line x1="5" y1="-3" x2="10" y2="-10"/>
|
|
10
|
+
<line x1="5" y1="3" x2="10" y2="10"/>
|
|
11
|
+
<line x1="-4" y1="6" x2="-10" y2="20"/>
|
|
12
|
+
</g>
|
|
13
|
+
<circle cx="0" cy="0" r="11"/>
|
|
14
|
+
<line x1="-5" y1="-7" x2="5" y2="-7"/>
|
|
15
|
+
<line x1="-5" y1="-3" x2="-3" y2="-3"/>
|
|
16
|
+
<line x1="-1" y1="-3" x2="1" y2="-3"/>
|
|
17
|
+
<line x1="3" y1="-3" x2="5" y2="-3"/>
|
|
18
|
+
<line x1="-5" y1="0" x2="-3" y2="0"/>
|
|
19
|
+
<line x1="-1" y1="0" x2="1" y2="0"/>
|
|
20
|
+
<line x1="3" y1="0" x2="5" y2="0"/>
|
|
21
|
+
<line x1="-5" y1="3" x2="-3" y2="3"/>
|
|
22
|
+
<line x1="-1" y1="3" x2="1" y2="3"/>
|
|
23
|
+
<line x1="3" y1="3" x2="5" y2="3"/>
|
|
24
|
+
<line x1="-4" y1="6" x2="4" y2="6"/>
|
|
25
|
+
</svg>
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: photoresistor (LDR)
|
|
4
|
+
terminals: a (SVG 0,-20), b (SVG 0,20)
|
|
5
|
+
Light arrows point INTO the body (upper-right → resistor).
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="0" y1="-20" x2="0" y2="-10"/>
|
|
9
|
+
<line x1="0" y1="10" x2="0" y2="20"/>
|
|
10
|
+
</g>
|
|
11
|
+
<polyline points="0,-10 -5,-8 5,-4 -5,0 5,4 -5,8 0,10"/>
|
|
12
|
+
<circle cx="0" cy="0" r="14"/>
|
|
13
|
+
<line x1="20" y1="-20" x2="14" y2="-14"/>
|
|
14
|
+
<line x1="14" y1="-14" x2="17" y2="-15"/>
|
|
15
|
+
<line x1="14" y1="-14" x2="15" y2="-17"/>
|
|
16
|
+
<line x1="22" y1="-12" x2="16" y2="-6"/>
|
|
17
|
+
<line x1="16" y1="-6" x2="19" y2="-7"/>
|
|
18
|
+
<line x1="16" y1="-6" x2="17" y2="-9"/>
|
|
19
|
+
</svg>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: port (test point)
|
|
4
|
+
terminals: t (SVG 0,0)
|
|
5
|
+
-->
|
|
6
|
+
<circle cx="0" cy="0" r="7"/>
|
|
7
|
+
<text x="0" y="2.5" font-size="7" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="middle">P</text>
|
|
8
|
+
</svg>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -45 50 90" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: potentiometer
|
|
4
|
+
terminals: a (SVG -10,-40), wiper (SVG 10,0), b (SVG -10,40)
|
|
5
|
+
NOTE: catalog terminals extend to ±40, but the square card renderer draws
|
|
6
|
+
connector dots separately, so the visual lead stubs are shortened.
|
|
7
|
+
-->
|
|
8
|
+
<g stroke-width="0.95">
|
|
9
|
+
<line x1="-10" y1="-24" x2="-10" y2="-10"/>
|
|
10
|
+
<line x1="-10" y1="10" x2="-10" y2="24"/>
|
|
11
|
+
<line x1="10" y1="0" x2="-3" y2="0"/>
|
|
12
|
+
</g>
|
|
13
|
+
<polyline points="-10,-10 -15,-8 -5,-4 -15,0 -5,4 -15,8 -10,10"/>
|
|
14
|
+
<path d="M -3 0 L 1 -2.5 L 1 2.5 Z" fill="currentColor" stroke="none"/>
|
|
15
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-35 -25 70 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: power-amp (LM386 audio power amp, DIP-8)
|
|
4
|
+
terminals: gain1 (-30,-20), vin- (-30,-10), vin+ (-30,0), gnd (-30,20), vout (30,0), vs (30,-20), bypass (30,-10), gain8 (30,20)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="-30" y1="-20" x2="-20" y2="-20"/>
|
|
8
|
+
<line x1="-30" y1="-10" x2="-20" y2="-10"/>
|
|
9
|
+
<line x1="-30" y1="0" x2="-20" y2="0"/>
|
|
10
|
+
<line x1="-30" y1="20" x2="-20" y2="20"/>
|
|
11
|
+
<line x1="20" y1="-20" x2="30" y2="-20"/>
|
|
12
|
+
<line x1="20" y1="-10" x2="30" y2="-10"/>
|
|
13
|
+
<line x1="20" y1="0" x2="30" y2="0"/>
|
|
14
|
+
<line x1="20" y1="20" x2="30" y2="20"/>
|
|
15
|
+
</g>
|
|
16
|
+
<rect x="-20" y="-22" width="40" height="44" rx="2"/>
|
|
17
|
+
<circle cx="-17" cy="-19" r="1.2" fill="currentColor" stroke="none"/>
|
|
18
|
+
<text x="0" y="-3" font-size="6" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="middle">LM386</text>
|
|
19
|
+
<text x="0" y="7" font-size="3.5" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="middle">power amp</text>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: rail (voltage rail / power supply pin)
|
|
4
|
+
terminals: t (SVG 0,0)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="0" x2="0" y2="-11"/>
|
|
8
|
+
</g>
|
|
9
|
+
<path d="M 0 -16 L -3 -10 L 3 -10 Z" fill="currentColor" stroke="none"/>
|
|
10
|
+
<text x="6" y="-9" font-size="7" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none">V</text>
|
|
11
|
+
</svg>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: regulator (78xx / 79xx 3-terminal linear regulator, TO-92 / TO-220)
|
|
4
|
+
terminals: vin (SVG -20,0), gnd (SVG 0,20), vout (SVG 20,0)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="-20" y1="0" x2="-10" y2="0"/>
|
|
8
|
+
<line x1="10" y1="0" x2="20" y2="0"/>
|
|
9
|
+
<line x1="0" y1="10" x2="0" y2="20"/>
|
|
10
|
+
</g>
|
|
11
|
+
<rect x="-10" y="-10" width="20" height="20" rx="2"/>
|
|
12
|
+
<text x="0" y="3" font-size="6" font-family="ui-sans-serif, system-ui, sans-serif" fill="currentColor" stroke="none" text-anchor="middle">REG</text>
|
|
13
|
+
</svg>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: relay (electromechanical, SPDT contact)
|
|
4
|
+
terminals: coil+ (SVG -20,-10), coil- (SVG -20,10), pole (SVG 20,0), throw1 (SVG 20,-13), throw2 (SVG 20,13)
|
|
5
|
+
Coil on the left, contact group on the right, mechanical coupling shown as dashed line.
|
|
6
|
+
-->
|
|
7
|
+
<g stroke-width="0.95">
|
|
8
|
+
<line x1="-20" y1="-10" x2="-12" y2="-10"/>
|
|
9
|
+
<line x1="-20" y1="10" x2="-12" y2="10"/>
|
|
10
|
+
<line x1="6" y1="0" x2="20" y2="0"/>
|
|
11
|
+
<line x1="13" y1="-13" x2="20" y2="-13"/>
|
|
12
|
+
<line x1="13" y1="13" x2="20" y2="13"/>
|
|
13
|
+
</g>
|
|
14
|
+
<path d="M -12 -10 A 3 2.5 0 0 1 -12 -5 A 3 2.5 0 0 1 -12 0 A 3 2.5 0 0 1 -12 5 A 3 2.5 0 0 1 -12 10"/>
|
|
15
|
+
<circle cx="6" cy="0" r="1.5"/>
|
|
16
|
+
<circle cx="13" cy="-13" r="1.5"/>
|
|
17
|
+
<circle cx="13" cy="13" r="1.5"/>
|
|
18
|
+
<line x1="6" y1="0" x2="12" y2="-12"/>
|
|
19
|
+
<line x1="-9" y1="0" x2="6" y2="0" stroke-dasharray="2 2"/>
|
|
20
|
+
</svg>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="-25 -25 50 50" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round">
|
|
2
|
+
<!--
|
|
3
|
+
kind: resistor
|
|
4
|
+
terminals: a (SVG 0,-20), b (SVG 0,20)
|
|
5
|
+
-->
|
|
6
|
+
<g stroke-width="0.95">
|
|
7
|
+
<line x1="0" y1="-20" x2="0" y2="-10"/>
|
|
8
|
+
<line x1="0" y1="10" x2="0" y2="20"/>
|
|
9
|
+
</g>
|
|
10
|
+
<polyline points="0,-10 -5,-8 5,-4 -5,0 5,4 -5,8 0,10"/>
|
|
11
|
+
</svg>
|