@skillpet/circuit 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.
Files changed (332) hide show
  1. package/README.md +131 -0
  2. package/dist/circuit.bundle.js +31103 -0
  3. package/dist/circuit.bundle.js.map +7 -0
  4. package/dist/circuit.bundle.min.js +273 -0
  5. package/dist/circuit.bundle.min.js.map +7 -0
  6. package/dist/circuit.esm.js +31069 -0
  7. package/dist/circuit.esm.js.map +7 -0
  8. package/dist/config.d.ts +26 -0
  9. package/dist/config.d.ts.map +1 -0
  10. package/dist/config.js +23 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/container.d.ts +32 -0
  13. package/dist/container.d.ts.map +1 -0
  14. package/dist/container.js +101 -0
  15. package/dist/container.js.map +1 -0
  16. package/dist/drawing-gradient.d.ts +13 -0
  17. package/dist/drawing-gradient.d.ts.map +1 -0
  18. package/dist/drawing-gradient.js +39 -0
  19. package/dist/drawing-gradient.js.map +1 -0
  20. package/dist/drawing-stack.d.ts +16 -0
  21. package/dist/drawing-stack.d.ts.map +1 -0
  22. package/dist/drawing-stack.js +32 -0
  23. package/dist/drawing-stack.js.map +1 -0
  24. package/dist/drawing-transition.d.ts +34 -0
  25. package/dist/drawing-transition.d.ts.map +1 -0
  26. package/dist/drawing-transition.js +181 -0
  27. package/dist/drawing-transition.js.map +1 -0
  28. package/dist/drawing.d.ts +117 -0
  29. package/dist/drawing.d.ts.map +1 -0
  30. package/dist/drawing.js +337 -0
  31. package/dist/drawing.js.map +1 -0
  32. package/dist/element-label.d.ts +54 -0
  33. package/dist/element-label.d.ts.map +1 -0
  34. package/dist/element-label.js +377 -0
  35. package/dist/element-label.js.map +1 -0
  36. package/dist/element-style.d.ts +34 -0
  37. package/dist/element-style.d.ts.map +1 -0
  38. package/dist/element-style.js +51 -0
  39. package/dist/element-style.js.map +1 -0
  40. package/dist/element.d.ts +114 -0
  41. package/dist/element.d.ts.map +1 -0
  42. package/dist/element.js +514 -0
  43. package/dist/element.js.map +1 -0
  44. package/dist/element2term.d.ts +25 -0
  45. package/dist/element2term.d.ts.map +1 -0
  46. package/dist/element2term.js +245 -0
  47. package/dist/element2term.js.map +1 -0
  48. package/dist/elements/cables.d.ts +22 -0
  49. package/dist/elements/cables.d.ts.map +1 -0
  50. package/dist/elements/cables.js +100 -0
  51. package/dist/elements/cables.js.map +1 -0
  52. package/dist/elements/capacitor.d.ts +23 -0
  53. package/dist/elements/capacitor.d.ts.map +1 -0
  54. package/dist/elements/capacitor.js +93 -0
  55. package/dist/elements/capacitor.js.map +1 -0
  56. package/dist/elements/compound.d.ts +41 -0
  57. package/dist/elements/compound.d.ts.map +1 -0
  58. package/dist/elements/compound.js +266 -0
  59. package/dist/elements/compound.js.map +1 -0
  60. package/dist/elements/connectors.d.ts +81 -0
  61. package/dist/elements/connectors.d.ts.map +1 -0
  62. package/dist/elements/connectors.js +578 -0
  63. package/dist/elements/connectors.js.map +1 -0
  64. package/dist/elements/crystal.d.ts +8 -0
  65. package/dist/elements/crystal.d.ts.map +1 -0
  66. package/dist/elements/crystal.js +31 -0
  67. package/dist/elements/crystal.js.map +1 -0
  68. package/dist/elements/diode-more.d.ts +36 -0
  69. package/dist/elements/diode-more.d.ts.map +1 -0
  70. package/dist/elements/diode-more.js +233 -0
  71. package/dist/elements/diode-more.js.map +1 -0
  72. package/dist/elements/diode.d.ts +14 -0
  73. package/dist/elements/diode.d.ts.map +1 -0
  74. package/dist/elements/diode.js +58 -0
  75. package/dist/elements/diode.js.map +1 -0
  76. package/dist/elements/element-compound.d.ts +16 -0
  77. package/dist/elements/element-compound.d.ts.map +1 -0
  78. package/dist/elements/element-compound.js +68 -0
  79. package/dist/elements/element-compound.js.map +1 -0
  80. package/dist/elements/element-drawing.d.ts +10 -0
  81. package/dist/elements/element-drawing.d.ts.map +1 -0
  82. package/dist/elements/element-drawing.js +16 -0
  83. package/dist/elements/element-drawing.js.map +1 -0
  84. package/dist/elements/ground.d.ts +6 -0
  85. package/dist/elements/ground.d.ts.map +1 -0
  86. package/dist/elements/ground.js +30 -0
  87. package/dist/elements/ground.js.map +1 -0
  88. package/dist/elements/ic.d.ts +169 -0
  89. package/dist/elements/ic.d.ts.map +1 -0
  90. package/dist/elements/ic.js +816 -0
  91. package/dist/elements/ic.js.map +1 -0
  92. package/dist/elements/image.d.ts +9 -0
  93. package/dist/elements/image.d.ts.map +1 -0
  94. package/dist/elements/image.js +27 -0
  95. package/dist/elements/image.js.map +1 -0
  96. package/dist/elements/inductor.d.ts +15 -0
  97. package/dist/elements/inductor.d.ts.map +1 -0
  98. package/dist/elements/inductor.js +111 -0
  99. package/dist/elements/inductor.js.map +1 -0
  100. package/dist/elements/line.d.ts +8 -0
  101. package/dist/elements/line.d.ts.map +1 -0
  102. package/dist/elements/line.js +14 -0
  103. package/dist/elements/line.js.map +1 -0
  104. package/dist/elements/lines-arc-labels.d.ts +223 -0
  105. package/dist/elements/lines-arc-labels.d.ts.map +1 -0
  106. package/dist/elements/lines-arc-labels.js +822 -0
  107. package/dist/elements/lines-arc-labels.js.map +1 -0
  108. package/dist/elements/lines-elements.d.ts +89 -0
  109. package/dist/elements/lines-elements.d.ts.map +1 -0
  110. package/dist/elements/lines-elements.js +271 -0
  111. package/dist/elements/lines-elements.js.map +1 -0
  112. package/dist/elements/misc-elements.d.ts +25 -0
  113. package/dist/elements/misc-elements.d.ts.map +1 -0
  114. package/dist/elements/misc-elements.js +160 -0
  115. package/dist/elements/misc-elements.js.map +1 -0
  116. package/dist/elements/oneterm.d.ts +29 -0
  117. package/dist/elements/oneterm.d.ts.map +1 -0
  118. package/dist/elements/oneterm.js +163 -0
  119. package/dist/elements/oneterm.js.map +1 -0
  120. package/dist/elements/opamp.d.ts +11 -0
  121. package/dist/elements/opamp.d.ts.map +1 -0
  122. package/dist/elements/opamp.js +72 -0
  123. package/dist/elements/opamp.js.map +1 -0
  124. package/dist/elements/outlets.d.ts +39 -0
  125. package/dist/elements/outlets.d.ts.map +1 -0
  126. package/dist/elements/outlets.js +285 -0
  127. package/dist/elements/outlets.js.map +1 -0
  128. package/dist/elements/resistor-more.d.ts +42 -0
  129. package/dist/elements/resistor-more.d.ts.map +1 -0
  130. package/dist/elements/resistor-more.js +171 -0
  131. package/dist/elements/resistor-more.js.map +1 -0
  132. package/dist/elements/resistor.d.ts +6 -0
  133. package/dist/elements/resistor.d.ts.map +1 -0
  134. package/dist/elements/resistor.js +22 -0
  135. package/dist/elements/resistor.js.map +1 -0
  136. package/dist/elements/source-v.d.ts +3 -0
  137. package/dist/elements/source-v.d.ts.map +1 -0
  138. package/dist/elements/source-v.js +3 -0
  139. package/dist/elements/source-v.js.map +1 -0
  140. package/dist/elements/sources.d.ts +111 -0
  141. package/dist/elements/sources.d.ts.map +1 -0
  142. package/dist/elements/sources.js +519 -0
  143. package/dist/elements/sources.js.map +1 -0
  144. package/dist/elements/switches.d.ts +66 -0
  145. package/dist/elements/switches.d.ts.map +1 -0
  146. package/dist/elements/switches.js +328 -0
  147. package/dist/elements/switches.js.map +1 -0
  148. package/dist/elements/transformer.d.ts +17 -0
  149. package/dist/elements/transformer.d.ts.map +1 -0
  150. package/dist/elements/transformer.js +184 -0
  151. package/dist/elements/transformer.js.map +1 -0
  152. package/dist/elements/transistors.d.ts +197 -0
  153. package/dist/elements/transistors.d.ts.map +1 -0
  154. package/dist/elements/transistors.js +1009 -0
  155. package/dist/elements/transistors.js.map +1 -0
  156. package/dist/elements/tubes.d.ts +70 -0
  157. package/dist/elements/tubes.d.ts.map +1 -0
  158. package/dist/elements/tubes.js +386 -0
  159. package/dist/elements/tubes.js.map +1 -0
  160. package/dist/elements/twoports.d.ts +47 -0
  161. package/dist/elements/twoports.d.ts.map +1 -0
  162. package/dist/elements/twoports.js +231 -0
  163. package/dist/elements/twoports.js.map +1 -0
  164. package/dist/elements/twoterm-extras.d.ts +50 -0
  165. package/dist/elements/twoterm-extras.d.ts.map +1 -0
  166. package/dist/elements/twoterm-extras.js +243 -0
  167. package/dist/elements/twoterm-extras.js.map +1 -0
  168. package/dist/elements/twoterm.d.ts +4 -0
  169. package/dist/elements/twoterm.d.ts.map +1 -0
  170. package/dist/elements/twoterm.js +4 -0
  171. package/dist/elements/twoterm.js.map +1 -0
  172. package/dist/geometry/point.d.ts +28 -0
  173. package/dist/geometry/point.d.ts.map +1 -0
  174. package/dist/geometry/point.js +99 -0
  175. package/dist/geometry/point.js.map +1 -0
  176. package/dist/geometry/roundcorners.d.ts +7 -0
  177. package/dist/geometry/roundcorners.d.ts.map +1 -0
  178. package/dist/geometry/roundcorners.js +64 -0
  179. package/dist/geometry/roundcorners.js.map +1 -0
  180. package/dist/geometry/transform.d.ts +14 -0
  181. package/dist/geometry/transform.d.ts.map +1 -0
  182. package/dist/geometry/transform.js +33 -0
  183. package/dist/geometry/transform.js.map +1 -0
  184. package/dist/geometry/util.d.ts +12 -0
  185. package/dist/geometry/util.d.ts.map +1 -0
  186. package/dist/geometry/util.js +36 -0
  187. package/dist/geometry/util.js.map +1 -0
  188. package/dist/index.cjs +31456 -0
  189. package/dist/index.cjs.map +7 -0
  190. package/dist/index.d.ts +77 -0
  191. package/dist/index.d.ts.map +1 -0
  192. package/dist/index.js +68 -0
  193. package/dist/index.js.map +1 -0
  194. package/dist/json/anchor-ref.d.ts +5 -0
  195. package/dist/json/anchor-ref.d.ts.map +1 -0
  196. package/dist/json/anchor-ref.js +35 -0
  197. package/dist/json/anchor-ref.js.map +1 -0
  198. package/dist/json/mount.d.ts +60 -0
  199. package/dist/json/mount.d.ts.map +1 -0
  200. package/dist/json/mount.js +369 -0
  201. package/dist/json/mount.js.map +1 -0
  202. package/dist/json/registry.d.ts +7 -0
  203. package/dist/json/registry.d.ts.map +1 -0
  204. package/dist/json/registry.js +323 -0
  205. package/dist/json/registry.js.map +1 -0
  206. package/dist/json/render.d.ts +59 -0
  207. package/dist/json/render.d.ts.map +1 -0
  208. package/dist/json/render.js +113 -0
  209. package/dist/json/render.js.map +1 -0
  210. package/dist/json/theme.d.ts +18 -0
  211. package/dist/json/theme.d.ts.map +1 -0
  212. package/dist/json/theme.js +57 -0
  213. package/dist/json/theme.js.map +1 -0
  214. package/dist/json/types.d.ts +42 -0
  215. package/dist/json/types.d.ts.map +1 -0
  216. package/dist/json/types.js +2 -0
  217. package/dist/json/types.js.map +1 -0
  218. package/dist/json/validate.d.ts +11 -0
  219. package/dist/json/validate.d.ts.map +1 -0
  220. package/dist/json/validate.js +77 -0
  221. package/dist/json/validate.js.map +1 -0
  222. package/dist/label-hint.d.ts +11 -0
  223. package/dist/label-hint.d.ts.map +1 -0
  224. package/dist/label-hint.js +2 -0
  225. package/dist/label-hint.js.map +1 -0
  226. package/dist/logic/and.d.ts +13 -0
  227. package/dist/logic/and.d.ts.map +1 -0
  228. package/dist/logic/and.js +63 -0
  229. package/dist/logic/and.js.map +1 -0
  230. package/dist/logic/bitfield.d.ts +32 -0
  231. package/dist/logic/bitfield.d.ts.map +1 -0
  232. package/dist/logic/bitfield.js +271 -0
  233. package/dist/logic/bitfield.js.map +1 -0
  234. package/dist/logic/buffer.d.ts +11 -0
  235. package/dist/logic/buffer.d.ts.map +1 -0
  236. package/dist/logic/buffer.js +46 -0
  237. package/dist/logic/buffer.js.map +1 -0
  238. package/dist/logic/extras.d.ts +36 -0
  239. package/dist/logic/extras.d.ts.map +1 -0
  240. package/dist/logic/extras.js +211 -0
  241. package/dist/logic/extras.js.map +1 -0
  242. package/dist/logic/kmap.d.ts +16 -0
  243. package/dist/logic/kmap.d.ts.map +1 -0
  244. package/dist/logic/kmap.js +163 -0
  245. package/dist/logic/kmap.js.map +1 -0
  246. package/dist/logic/or.d.ts +18 -0
  247. package/dist/logic/or.d.ts.map +1 -0
  248. package/dist/logic/or.js +117 -0
  249. package/dist/logic/or.js.map +1 -0
  250. package/dist/logic/timing.d.ts +44 -0
  251. package/dist/logic/timing.d.ts.map +1 -0
  252. package/dist/logic/timing.js +791 -0
  253. package/dist/logic/timing.js.map +1 -0
  254. package/dist/logic/tristate.d.ts +11 -0
  255. package/dist/logic/tristate.d.ts.map +1 -0
  256. package/dist/logic/tristate.js +48 -0
  257. package/dist/logic/tristate.js.map +1 -0
  258. package/dist/math-render.d.ts +9 -0
  259. package/dist/math-render.d.ts.map +1 -0
  260. package/dist/math-render.js +53 -0
  261. package/dist/math-render.js.map +1 -0
  262. package/dist/package-api.d.ts +20 -0
  263. package/dist/package-api.d.ts.map +1 -0
  264. package/dist/package-api.js +75 -0
  265. package/dist/package-api.js.map +1 -0
  266. package/dist/params.d.ts +6 -0
  267. package/dist/params.d.ts.map +1 -0
  268. package/dist/params.js +35 -0
  269. package/dist/params.js.map +1 -0
  270. package/dist/react/index.d.ts +22 -0
  271. package/dist/react/index.d.ts.map +1 -0
  272. package/dist/react/index.js +52 -0
  273. package/dist/react/index.js.map +1 -0
  274. package/dist/schemdraw-ts.bundle.js +30448 -0
  275. package/dist/schemdraw-ts.bundle.js.map +7 -0
  276. package/dist/segment.d.ts +267 -0
  277. package/dist/segment.d.ts.map +1 -0
  278. package/dist/segment.js +844 -0
  279. package/dist/segment.js.map +1 -0
  280. package/dist/style.d.ts +18 -0
  281. package/dist/style.d.ts.map +1 -0
  282. package/dist/style.js +230 -0
  283. package/dist/style.js.map +1 -0
  284. package/dist/subsystems/dsp.d.ts +65 -0
  285. package/dist/subsystems/dsp.d.ts.map +1 -0
  286. package/dist/subsystems/dsp.js +267 -0
  287. package/dist/subsystems/dsp.js.map +1 -0
  288. package/dist/subsystems/flow.d.ts +92 -0
  289. package/dist/subsystems/flow.d.ts.map +1 -0
  290. package/dist/subsystems/flow.js +315 -0
  291. package/dist/subsystems/flow.js.map +1 -0
  292. package/dist/subsystems/index.d.ts +22 -0
  293. package/dist/subsystems/index.d.ts.map +1 -0
  294. package/dist/subsystems/index.js +22 -0
  295. package/dist/subsystems/index.js.map +1 -0
  296. package/dist/subsystems/parsing.d.ts +41 -0
  297. package/dist/subsystems/parsing.d.ts.map +1 -0
  298. package/dist/subsystems/parsing.js +456 -0
  299. package/dist/subsystems/parsing.js.map +1 -0
  300. package/dist/subsystems/pictorial.d.ts +73 -0
  301. package/dist/subsystems/pictorial.d.ts.map +1 -0
  302. package/dist/subsystems/pictorial.js +469 -0
  303. package/dist/subsystems/pictorial.js.map +1 -0
  304. package/dist/svg/constants.d.ts +5 -0
  305. package/dist/svg/constants.d.ts.map +1 -0
  306. package/dist/svg/constants.js +5 -0
  307. package/dist/svg/constants.js.map +1 -0
  308. package/dist/svg/figure.d.ts +157 -0
  309. package/dist/svg/figure.d.ts.map +1 -0
  310. package/dist/svg/figure.js +634 -0
  311. package/dist/svg/figure.js.map +1 -0
  312. package/dist/svg/fmt.d.ts +2 -0
  313. package/dist/svg/fmt.d.ts.map +1 -0
  314. package/dist/svg/fmt.js +7 -0
  315. package/dist/svg/fmt.js.map +1 -0
  316. package/dist/svg/svg-style.d.ts +15 -0
  317. package/dist/svg/svg-style.d.ts.map +1 -0
  318. package/dist/svg/svg-style.js +46 -0
  319. package/dist/svg/svg-style.js.map +1 -0
  320. package/dist/types.d.ts +39 -0
  321. package/dist/types.d.ts.map +1 -0
  322. package/dist/types.js +21 -0
  323. package/dist/types.js.map +1 -0
  324. package/dist/version.d.ts +3 -0
  325. package/dist/version.d.ts.map +1 -0
  326. package/dist/version.js +3 -0
  327. package/dist/version.js.map +1 -0
  328. package/dist/vue/index.d.ts +43 -0
  329. package/dist/vue/index.d.ts.map +1 -0
  330. package/dist/vue/index.js +55 -0
  331. package/dist/vue/index.js.map +1 -0
  332. package/package.json +71 -0
@@ -0,0 +1,323 @@
1
+ import { Drawing } from "../drawing.js";
2
+ import { ResistorIEEE } from "../elements/resistor.js";
3
+ import { ResistorIEC, ResistorVarIEEE, ResistorVarIEC, Thermistor, PhotoresistorIEEE, PhotoresistorIEC, Rshunt, PotentiometerIEEE, PotentiometerIEC, FuseIEEE, FuseIEC, } from "../elements/resistor-more.js";
4
+ import { Resistor, ResistorVar, Photoresistor, Potentiometer, Fuse } from "../element-style.js";
5
+ import { Memristor, Memristor2, Josephson, FuseUS, Breaker, CPE, SparkGap, Nullator, Norator, CurrentMirror, VoltageMirror, } from "../elements/twoterm-extras.js";
6
+ import { Capacitor, Capacitor2, CapacitorVar, CapacitorTrim } from "../elements/capacitor.js";
7
+ import { Diode, Schottky, Zener } from "../elements/diode.js";
8
+ import { DiodeTunnel, DiodeTVS, DiodeShockley, Varactor, LED, LED2, Photodiode, SCR, Diac, Triac, } from "../elements/diode-more.js";
9
+ import { Inductor, Inductor2 } from "../elements/inductor.js";
10
+ import { Crystal } from "../elements/crystal.js";
11
+ import { Opamp } from "../elements/opamp.js";
12
+ import { AnalogBiasedFet, AnalogNFet, AnalogPFet, Bjt, Bjt2, BjtNpn, BjtNpn2, BjtPnp, BjtPnp2, BjtPnp2c, BjtPnp2c2, Hemt, IgbtN, IgbtP, JFet, JFet2, JFetN, JFetN2, JFetP, JFetP2, NFet, NFet2, NMos, NMos2, NpnPhoto, NpnSchottky, PFet, PFet2, PMos, PMos2, PnpPhoto, PnpSchottky, } from "../elements/transistors.js";
13
+ import { DFlipFlop, Ic, Ic555, IcDIP, JKFlipFlop, Multiplexer, SevenSegment, VoltageRegulator, } from "../elements/ic.js";
14
+ import { Source, SourceV, SourceI, SourceSin, SourcePulse, SourceSquare, SourceTriangle, SourceRamp, SourceControlled, SourceControlledV, SourceControlledI, BatteryCell, Battery, BatteryDouble, Solar, MeterV, MeterI, MeterA, MeterOhm, MeterArrow, Lamp, Lamp2, Neon, MeterBox, MeterAnalog, Oscilloscope, MeterDigital, } from "../elements/sources.js";
15
+ import { GroundSignal, GroundChassis, Antenna, AntennaLoop, AntennaLoop2, Vss, Vdd, NoConnect, } from "../elements/oneterm.js";
16
+ import { Switch, SwitchSpdt, SwitchSpdt2, SwitchDpst, SwitchDpdt, Button, SwitchReed, SwitchRotary, SwitchDIP, } from "../elements/switches.js";
17
+ import { Speaker, Mic, Motor, AudioJack } from "../elements/misc-elements.js";
18
+ import { Coax, Triax } from "../elements/cables.js";
19
+ import { Transformer } from "../elements/transformer.js";
20
+ import { Line } from "../elements/line.js";
21
+ import { Ground } from "../elements/ground.js";
22
+ import { Arrow, DataBusLine, Dot, DotDotDot, Gap, Arrowhead, Label, Rect, Tag, Wire } from "../elements/lines-elements.js";
23
+ import { Annotate, Arc2, Arc3, ArcLoop, ArcN, ArcZ, CurrentLabel, CurrentLabelInline, LoopArrow, VoltageLabelArc, ZLabel, } from "../elements/lines-arc-labels.js";
24
+ import { Optocoupler, Rectifier, Relay, Wheatstone } from "../elements/compound.js";
25
+ import { TwoPort, VoltageTransactor, TransimpedanceTransactor, CurrentTransactor, TransadmittanceTransactor, Nullor, VMCMPair, } from "../elements/twoports.js";
26
+ import { OrthoLines, RightLines, Header, Jumper, BusConnect, BusLine, DB25, DE9, DB9, DA15, DC37, DD50, CoaxConnect, Plug, Jack, ConnectorTerminal, } from "../elements/connectors.js";
27
+ import { OutletA, OutletB, OutletC, OutletD, OutletE, OutletF, OutletG, OutletH, OutletI, OutletJ, OutletK, OutletL, } from "../elements/outlets.js";
28
+ import { VacuumTube, DualVacuumTube, NixieTube, TubeDiode, Triode, Tetrode, Pentode } from "../elements/tubes.js";
29
+ import { ElementImage } from "../elements/image.js";
30
+ import { And, nand } from "../logic/and.js";
31
+ import { Or, nor, xor, xnor } from "../logic/or.js";
32
+ import { Buf, Not } from "../logic/buffer.js";
33
+ import { Tristate } from "../logic/tristate.js";
34
+ import { Kmap } from "../logic/kmap.js";
35
+ import { BitField, NotNot, Schmitt, SchmittAnd, SchmittNand, SchmittNot, Table, Tgate, TimingDiagram } from "../logic/extras.js";
36
+ import { FlowBox, RoundBox, Terminal, RoundProcess, Process, Start, Subroutine, Data, Ellipse, Decision, Connect, Circle, State, StateEnd, DspBox, DspCircle, Sum, SumSigma, Mixer, DspSpeaker, Amp, OscillatorBox, Oscillator, Filter, Adc, Dac, Demod, Circulator, Isolator, VGA, } from "../subsystems/index.js";
37
+ export const ELEMENT_REGISTRY = {
38
+ ResistorIEEE: (p) => new ResistorIEEE(p ?? {}),
39
+ ResistorIEC: (p) => new ResistorIEC(p ?? {}),
40
+ ResistorVarIEEE: (p) => new ResistorVarIEEE(p ?? {}),
41
+ ResistorVarIEC: (p) => new ResistorVarIEC(p ?? {}),
42
+ Thermistor: (p) => new Thermistor(p ?? {}),
43
+ PhotoresistorIEEE: (p) => new PhotoresistorIEEE(p ?? {}),
44
+ PhotoresistorIEC: (p) => new PhotoresistorIEC(p ?? {}),
45
+ Rshunt: (p) => new Rshunt(p ?? {}),
46
+ PotentiometerIEEE: (p) => new PotentiometerIEEE(p ?? {}),
47
+ PotentiometerIEC: (p) => new PotentiometerIEC(p ?? {}),
48
+ FuseIEEE: (p) => new FuseIEEE(p ?? {}),
49
+ FuseIEC: (p) => new FuseIEC(p ?? {}),
50
+ Resistor: (p) => new Resistor(p ?? {}),
51
+ ResistorVar: (p) => new ResistorVar(p ?? {}),
52
+ Photoresistor: (p) => new Photoresistor(p ?? {}),
53
+ Potentiometer: (p) => new Potentiometer(p ?? {}),
54
+ Fuse: (p) => new Fuse(p ?? {}),
55
+ Memristor: (p) => new Memristor(p ?? {}),
56
+ Memristor2: (p) => new Memristor2(p ?? {}),
57
+ Josephson: (p) => new Josephson(p ?? {}),
58
+ FuseUS: (p) => new FuseUS(p ?? {}),
59
+ Breaker: (p) => new Breaker(p ?? {}),
60
+ CPE: (p) => new CPE(p ?? {}),
61
+ SparkGap: (p) => new SparkGap(p ?? {}),
62
+ Nullator: (p) => new Nullator(p ?? {}),
63
+ Norator: (p) => new Norator(p ?? {}),
64
+ CurrentMirror: (p) => new CurrentMirror(p ?? {}),
65
+ VoltageMirror: (p) => new VoltageMirror(p ?? {}),
66
+ Capacitor: (p) => new Capacitor(p ?? {}),
67
+ Capacitor2: (p) => new Capacitor2(p ?? {}),
68
+ CapacitorVar: (p) => new CapacitorVar(p ?? {}),
69
+ CapacitorTrim: (p) => new CapacitorTrim(p ?? {}),
70
+ Diode: (p) => new Diode(p ?? {}),
71
+ Schottky: (p) => new Schottky(p ?? {}),
72
+ Zener: (p) => new Zener(p ?? {}),
73
+ DiodeTunnel: (p) => new DiodeTunnel(p ?? {}),
74
+ DiodeTVS: (p) => new DiodeTVS(p ?? {}),
75
+ DiodeShockley: (p) => new DiodeShockley(p ?? {}),
76
+ Varactor: (p) => new Varactor(p ?? {}),
77
+ LED: (p) => new LED(p ?? {}),
78
+ LED2: (p) => new LED2(p ?? {}),
79
+ Photodiode: (p) => new Photodiode(p ?? {}),
80
+ SCR: (p) => new SCR(p ?? {}),
81
+ Diac: (p) => new Diac(p ?? {}),
82
+ Triac: (p) => new Triac(p ?? {}),
83
+ Inductor: (p) => new Inductor(p ?? {}),
84
+ Inductor2: (p) => new Inductor2(p ?? {}),
85
+ Crystal: (p) => new Crystal(p ?? {}),
86
+ Opamp: (p) => new Opamp(p ?? {}),
87
+ AnalogBiasedFet: (p) => new AnalogBiasedFet(p ?? {}),
88
+ AnalogNFet: (p) => new AnalogNFet(p ?? {}),
89
+ AnalogPFet: (p) => new AnalogPFet(p ?? {}),
90
+ Bjt: (p) => new Bjt(p ?? {}),
91
+ Bjt2: (p) => new Bjt2(p ?? {}),
92
+ BjtNpn: (p) => new BjtNpn(p ?? {}),
93
+ BjtNpn2: (p) => new BjtNpn2(p ?? {}),
94
+ BjtPnp: (p) => new BjtPnp(p ?? {}),
95
+ BjtPnp2: (p) => new BjtPnp2(p ?? {}),
96
+ BjtPnp2c: (p) => new BjtPnp2c(p ?? {}),
97
+ BjtPnp2c2: (p) => new BjtPnp2c2(p ?? {}),
98
+ Hemt: (p) => new Hemt(p ?? {}),
99
+ IgbtN: (p) => new IgbtN(p ?? {}),
100
+ IgbtP: (p) => new IgbtP(p ?? {}),
101
+ JFet: (p) => new JFet(p ?? {}),
102
+ JFet2: (p) => new JFet2(p ?? {}),
103
+ JFetN: (p) => new JFetN(p ?? {}),
104
+ JFetN2: (p) => new JFetN2(p ?? {}),
105
+ JFetP: (p) => new JFetP(p ?? {}),
106
+ JFetP2: (p) => new JFetP2(p ?? {}),
107
+ NFet: (p) => new NFet(p ?? {}),
108
+ NFet2: (p) => new NFet2(p ?? {}),
109
+ NMos: (p) => new NMos(p ?? {}),
110
+ NMos2: (p) => new NMos2(p ?? {}),
111
+ NpnPhoto: (p) => new NpnPhoto(p ?? {}),
112
+ NpnSchottky: (p) => new NpnSchottky(p ?? {}),
113
+ PFet: (p) => new PFet(p ?? {}),
114
+ PFet2: (p) => new PFet2(p ?? {}),
115
+ PMos: (p) => new PMos(p ?? {}),
116
+ PMos2: (p) => new PMos2(p ?? {}),
117
+ PnpPhoto: (p) => new PnpPhoto(p ?? {}),
118
+ PnpSchottky: (p) => new PnpSchottky(p ?? {}),
119
+ DFlipFlop: (p) => new DFlipFlop(p ?? {}),
120
+ Ic: (p) => new Ic(p ?? {}),
121
+ Ic555: (p) => new Ic555(p ?? {}),
122
+ IcDIP: (p) => new IcDIP(p ?? {}),
123
+ JKFlipFlop: (p) => new JKFlipFlop(p ?? {}),
124
+ Multiplexer: (p) => new Multiplexer(p ?? {}),
125
+ SevenSegment: (p) => new SevenSegment(p ?? {}),
126
+ VoltageRegulator: (p) => new VoltageRegulator(p ?? {}),
127
+ Source: (p) => new Source(p ?? {}),
128
+ SourceV: (p) => new SourceV(p ?? {}),
129
+ SourceI: (p) => new SourceI(p ?? {}),
130
+ SourceSin: (p) => new SourceSin(p ?? {}),
131
+ SourcePulse: (p) => new SourcePulse(p ?? {}),
132
+ SourceSquare: (p) => new SourceSquare(p ?? {}),
133
+ SourceTriangle: (p) => new SourceTriangle(p ?? {}),
134
+ SourceRamp: (p) => new SourceRamp(p ?? {}),
135
+ SourceControlled: (p) => new SourceControlled(p ?? {}),
136
+ SourceControlledV: (p) => new SourceControlledV(p ?? {}),
137
+ SourceControlledI: (p) => new SourceControlledI(p ?? {}),
138
+ BatteryCell: (p) => new BatteryCell(p ?? {}),
139
+ Battery: (p) => new Battery(p ?? {}),
140
+ BatteryDouble: (p) => new BatteryDouble(p ?? {}),
141
+ Solar: (p) => new Solar(p ?? {}),
142
+ MeterV: (p) => new MeterV(p ?? {}),
143
+ MeterI: (p) => new MeterI(p ?? {}),
144
+ MeterA: (p) => new MeterA(p ?? {}),
145
+ MeterOhm: (p) => new MeterOhm(p ?? {}),
146
+ MeterArrow: (p) => new MeterArrow(p ?? {}),
147
+ Lamp: (p) => new Lamp(p ?? {}),
148
+ Lamp2: (p) => new Lamp2(p ?? {}),
149
+ Neon: (p) => new Neon(p ?? {}),
150
+ MeterBox: (p) => new MeterBox(p ?? {}),
151
+ MeterAnalog: (p) => new MeterAnalog(p ?? {}),
152
+ Oscilloscope: (p) => new Oscilloscope(p ?? {}),
153
+ MeterDigital: (p) => new MeterDigital(p ?? {}),
154
+ GroundSignal: (p) => new GroundSignal(p ?? {}),
155
+ GroundChassis: (p) => new GroundChassis(p ?? {}),
156
+ Antenna: (p) => new Antenna(p ?? {}),
157
+ AntennaLoop: (p) => new AntennaLoop(p ?? {}),
158
+ AntennaLoop2: (p) => new AntennaLoop2(p ?? {}),
159
+ Vss: (p) => new Vss(p ?? {}),
160
+ Vdd: (p) => new Vdd(p ?? {}),
161
+ NoConnect: (p) => new NoConnect(p ?? {}),
162
+ Switch: (p) => new Switch(p ?? {}),
163
+ SwitchSpdt: (p) => new SwitchSpdt(p ?? {}),
164
+ SwitchSpdt2: (p) => new SwitchSpdt2(p ?? {}),
165
+ SwitchDpst: (p) => new SwitchDpst(p ?? {}),
166
+ SwitchDpdt: (p) => new SwitchDpdt(p ?? {}),
167
+ Button: (p) => new Button(p ?? {}),
168
+ SwitchReed: (p) => new SwitchReed(p ?? {}),
169
+ SwitchRotary: (p) => new SwitchRotary(p ?? {}),
170
+ SwitchDIP: (p) => new SwitchDIP(p ?? {}),
171
+ Speaker: (p) => new Speaker(p ?? {}),
172
+ Mic: (p) => new Mic(p ?? {}),
173
+ Motor: (p) => new Motor(p ?? {}),
174
+ AudioJack: (p) => new AudioJack(p ?? {}),
175
+ Coax: (p) => new Coax(p ?? {}),
176
+ Triax: (p) => new Triax(p ?? {}),
177
+ Transformer: (p) => new Transformer(p ?? {}),
178
+ Line: (p) => new Line(p ?? {}),
179
+ Ground: (p) => new Ground(p ?? {}),
180
+ Arrow: (p) => new Arrow(p ?? {}),
181
+ DataBusLine: (p) => new DataBusLine(p ?? {}),
182
+ Dot: (p) => new Dot(p ?? {}),
183
+ DotDotDot: (p) => new DotDotDot(p ?? {}),
184
+ Gap: (p) => new Gap(p ?? {}),
185
+ Arrowhead: (p) => new Arrowhead(p ?? {}),
186
+ Label: (p) => new Label(p ?? {}),
187
+ Rect: (p) => new Rect(p ?? {}),
188
+ Tag: (p) => new Tag(p ?? {}),
189
+ Wire: (p) => new Wire(p ?? {}),
190
+ Annotate: (p) => new Annotate(p ?? {}),
191
+ Arc2: (p) => new Arc2(p ?? {}),
192
+ Arc3: (p) => new Arc3(p ?? {}),
193
+ ArcLoop: (p) => new ArcLoop(p ?? {}),
194
+ ArcN: (p) => new ArcN(p ?? {}),
195
+ ArcZ: (p) => new ArcZ(p ?? {}),
196
+ CurrentLabel: (p) => new CurrentLabel(p ?? {}),
197
+ CurrentLabelInline: (p) => {
198
+ const { direction, ofst, start, ...rest } = p ?? {};
199
+ return new CurrentLabelInline(direction, ofst, start, rest);
200
+ },
201
+ LoopArrow: (p) => new LoopArrow(p ?? {}),
202
+ VoltageLabelArc: (p) => new VoltageLabelArc(p ?? {}),
203
+ ZLabel: (p) => new ZLabel(p ?? {}),
204
+ Optocoupler: (p) => new Optocoupler(p ?? {}),
205
+ Rectifier: (p) => new Rectifier(p ?? {}),
206
+ Relay: (p) => new Relay(p ?? {}),
207
+ Wheatstone: (p) => new Wheatstone(p ?? {}),
208
+ TwoPort: (p) => new TwoPort(p ?? {}),
209
+ VoltageTransactor: (p) => new VoltageTransactor(p ?? {}),
210
+ TransimpedanceTransactor: (p) => new TransimpedanceTransactor(p ?? {}),
211
+ CurrentTransactor: (p) => new CurrentTransactor(p ?? {}),
212
+ TransadmittanceTransactor: (p) => new TransadmittanceTransactor(p ?? {}),
213
+ Nullor: (p) => new Nullor(p ?? {}),
214
+ VMCMPair: (p) => new VMCMPair(p ?? {}),
215
+ OrthoLines: (p) => new OrthoLines(p ?? {}),
216
+ RightLines: (p) => new RightLines(p ?? {}),
217
+ Header: (p) => new Header(p ?? {}),
218
+ Jumper: (p) => new Jumper(p ?? {}),
219
+ BusConnect: (p) => new BusConnect(p ?? {}),
220
+ BusLine: (p) => new BusLine(p ?? {}),
221
+ DB25: (p) => new DB25(p ?? {}),
222
+ DE9: (p) => new DE9(p ?? {}),
223
+ DB9: (p) => new DB9(p ?? {}),
224
+ DA15: (p) => new DA15(p ?? {}),
225
+ DC37: (p) => new DC37(p ?? {}),
226
+ DD50: (p) => new DD50(p ?? {}),
227
+ CoaxConnect: (p) => new CoaxConnect(p ?? {}),
228
+ Plug: (p) => new Plug(p ?? {}),
229
+ Jack: (p) => new Jack(p ?? {}),
230
+ ConnectorTerminal: (p) => new ConnectorTerminal(p ?? {}),
231
+ OutletA: (p) => new OutletA(p ?? {}),
232
+ OutletB: (p) => new OutletB(p ?? {}),
233
+ OutletC: (p) => new OutletC(p ?? {}),
234
+ OutletD: (p) => new OutletD(p ?? {}),
235
+ OutletE: (p) => new OutletE(p ?? {}),
236
+ OutletF: (p) => new OutletF(p ?? {}),
237
+ OutletG: (p) => new OutletG(p ?? {}),
238
+ OutletH: (p) => new OutletH(p ?? {}),
239
+ OutletI: (p) => new OutletI(p ?? {}),
240
+ OutletJ: (p) => new OutletJ(p ?? {}),
241
+ OutletK: (p) => new OutletK(p ?? {}),
242
+ OutletL: (p) => new OutletL(p ?? {}),
243
+ VacuumTube: (p) => new VacuumTube(p ?? {}),
244
+ DualVacuumTube: (p) => new DualVacuumTube(p ?? {}),
245
+ NixieTube: (p) => new NixieTube(p ?? {}),
246
+ TubeDiode: (p) => new TubeDiode(p ?? {}),
247
+ Triode: (p) => new Triode(p ?? {}),
248
+ Tetrode: (p) => new Tetrode(p ?? {}),
249
+ Pentode: (p) => new Pentode(p ?? {}),
250
+ ElementImage: (p) => {
251
+ const { image, width, height, ...rest } = p ?? {};
252
+ return new ElementImage(image, width, height, rest);
253
+ },
254
+ And: (p) => new And(p ?? {}),
255
+ Or: (p) => new Or(p ?? {}),
256
+ Buf: (p) => new Buf(p ?? {}),
257
+ Not: (p) => new Not(p ?? {}),
258
+ Tristate: (p) => new Tristate(p ?? {}),
259
+ Kmap: (p) => new Kmap(p ?? {}),
260
+ BitField: (p) => new BitField(p ?? {}),
261
+ NotNot: (p) => new NotNot(p ?? {}),
262
+ Schmitt: (p) => new Schmitt(p ?? {}),
263
+ SchmittAnd: (p) => new SchmittAnd(p ?? {}),
264
+ SchmittNand: (p) => SchmittNand(p),
265
+ SchmittNot: (p) => new SchmittNot(p ?? {}),
266
+ Table: (p) => new Table(p),
267
+ Tgate: (p) => new Tgate(p ?? {}),
268
+ TimingDiagram: (p) => new TimingDiagram(p ?? {}),
269
+ FlowBox: (p) => new FlowBox(p ?? {}),
270
+ RoundBox: (p) => new RoundBox(p ?? {}),
271
+ Terminal: (p) => new Terminal(p ?? {}),
272
+ RoundProcess: (p) => new RoundProcess(p ?? {}),
273
+ Process: (p) => new Process(p ?? {}),
274
+ Start: (p) => new Start(p ?? {}),
275
+ Subroutine: (p) => new Subroutine(p ?? {}),
276
+ Data: (p) => new Data(p ?? {}),
277
+ Ellipse: (p) => new Ellipse(p ?? {}),
278
+ Decision: (p) => new Decision(p ?? {}),
279
+ Connect: (p) => new Connect(p ?? {}),
280
+ Circle: (p) => new Circle(p ?? {}),
281
+ State: (p) => new State(p ?? {}),
282
+ StateEnd: (p) => new StateEnd(p ?? {}),
283
+ DspBox: (p) => new DspBox(p ?? {}),
284
+ DspCircle: (p) => new DspCircle(p ?? {}),
285
+ Sum: (p) => new Sum(p ?? {}),
286
+ SumSigma: (p) => new SumSigma(p ?? {}),
287
+ Mixer: (p) => new Mixer(p ?? {}),
288
+ DspSpeaker: (p) => new DspSpeaker(p ?? {}),
289
+ Amp: (p) => new Amp(p ?? {}),
290
+ OscillatorBox: (p) => new OscillatorBox(p ?? {}),
291
+ Oscillator: (p) => new Oscillator(p ?? {}),
292
+ Filter: (p) => new Filter(p ?? {}),
293
+ Adc: (p) => new Adc(p ?? {}),
294
+ Dac: (p) => new Dac(p ?? {}),
295
+ Demod: (p) => new Demod(p ?? {}),
296
+ Circulator: (p) => new Circulator(p ?? {}),
297
+ Isolator: (p) => new Isolator(p ?? {}),
298
+ VGA: (p) => new VGA(p ?? {}),
299
+ // Aliases
300
+ RBox: (p) => new ResistorIEC(p ?? {}),
301
+ RBoxVar: (p) => new ResistorVarIEC(p ?? {}),
302
+ PotBox: (p) => new PotentiometerIEC(p ?? {}),
303
+ PhotoresistorBox: (p) => new PhotoresistorIEC(p ?? {}),
304
+ Nand: (p) => nand(p),
305
+ Nor: (p) => nor(p),
306
+ Xor: (p) => xor(p),
307
+ Xnor: (p) => xnor(p),
308
+ };
309
+ export function getRegisteredTypes() {
310
+ return Object.keys(ELEMENT_REGISTRY).sort();
311
+ }
312
+ export const getAvailableTypes = getRegisteredTypes;
313
+ export function getAnchors(type) {
314
+ const factory = ELEMENT_REGISTRY[type];
315
+ if (!factory) {
316
+ throw new Error(`Unknown element type "${type}". Use getAvailableTypes() to see all available types.`);
317
+ }
318
+ const el = factory();
319
+ const drawing = new Drawing();
320
+ drawing.add(el);
321
+ return Object.keys(el.absanchors).sort();
322
+ }
323
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/json/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { type Theme } from "./theme.js";
2
+ export interface DrawingConfig {
3
+ unit?: number;
4
+ font?: string;
5
+ fontsize?: number;
6
+ color?: string;
7
+ lw?: number;
8
+ bgcolor?: string;
9
+ colorTransition?: boolean;
10
+ }
11
+ export interface LabelSpec {
12
+ text: string;
13
+ loc?: string;
14
+ ofst?: number | [number, number];
15
+ halign?: "left" | "center" | "right";
16
+ valign?: "top" | "center" | "bottom" | "base";
17
+ rotate?: boolean | number;
18
+ fontsize?: number;
19
+ color?: string;
20
+ }
21
+ export interface ElementObject {
22
+ type: string;
23
+ id?: string;
24
+ d?: "up" | "down" | "left" | "right";
25
+ theta?: number;
26
+ at?: [number, number] | string;
27
+ to?: [number, number] | string;
28
+ tox?: number | string;
29
+ toy?: number | string;
30
+ l?: number;
31
+ flip?: boolean;
32
+ reverse?: boolean;
33
+ anchor?: string;
34
+ scale?: number;
35
+ label?: string | LabelSpec;
36
+ labels?: LabelSpec[];
37
+ color?: string;
38
+ fill?: string;
39
+ lw?: number;
40
+ ls?: string;
41
+ dot?: boolean | "open";
42
+ idot?: boolean | "open";
43
+ params?: Record<string, unknown>;
44
+ tooltip?: string;
45
+ meta?: Record<string, unknown>;
46
+ }
47
+ export type ElementSpec = ElementObject | "push" | "pop";
48
+ export interface RenderOptions {
49
+ theme?: string | Partial<Theme>;
50
+ interactive?: boolean;
51
+ colorTransition?: boolean;
52
+ }
53
+ export interface CircuitJson {
54
+ theme?: string | Partial<Theme>;
55
+ drawing?: DrawingConfig;
56
+ elements: ElementSpec[];
57
+ }
58
+ export declare function renderFromJson(json: CircuitJson | string, opts?: RenderOptions): string;
59
+ //# sourceMappingURL=render.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/json/render.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,KAAK,EAA2C,MAAM,YAAY,CAAC;AAEjF,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,MAAM,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC9C,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAC/B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAC/B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,MAAM,GAAG,KAAK,CAAC;AAEzD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,GAAG,MAAM,EAC1B,IAAI,CAAC,EAAE,aAAa,GACnB,MAAM,CAmGR"}
@@ -0,0 +1,113 @@
1
+ import { Drawing } from "../drawing.js";
2
+ import { Element2Term } from "../element2term.js";
3
+ import { ELEMENT_REGISTRY } from "./registry.js";
4
+ import { resolvePosition, resolvePositionX, resolvePositionY } from "./anchor-ref.js";
5
+ import { resolveTheme, applyThemeToDrawingConfig } from "./theme.js";
6
+ export function renderFromJson(json, opts) {
7
+ const circuit = typeof json === "string" ? JSON.parse(json) : json;
8
+ const themeInput = opts?.theme ?? circuit.theme;
9
+ const drawingBase = themeInput !== undefined
10
+ ? applyThemeToDrawingConfig(resolveTheme(themeInput), circuit.drawing)
11
+ : { ...(circuit.drawing ?? {}) };
12
+ const colorTransition = opts?.colorTransition ?? circuit.drawing?.colorTransition ?? false;
13
+ const drawingParams = {
14
+ ...drawingBase,
15
+ ...(opts?.interactive ? { interactive: true } : {}),
16
+ ...(colorTransition ? { colorTransition: true } : {}),
17
+ };
18
+ const drawing = new Drawing(drawingParams);
19
+ const namedElements = new Map();
20
+ for (const spec of circuit.elements) {
21
+ if (spec === "push") {
22
+ drawing.push();
23
+ continue;
24
+ }
25
+ if (spec === "pop") {
26
+ drawing.pop();
27
+ continue;
28
+ }
29
+ const factory = ELEMENT_REGISTRY[spec.type];
30
+ if (!factory) {
31
+ throw new Error(`Unknown element type "${spec.type}". Use getAvailableTypes() to see all available types.`);
32
+ }
33
+ const el = factory(spec.params);
34
+ if (spec.d) {
35
+ switch (spec.d) {
36
+ case "up":
37
+ el.up();
38
+ break;
39
+ case "down":
40
+ el.down();
41
+ break;
42
+ case "left":
43
+ el.left();
44
+ break;
45
+ case "right":
46
+ el.right();
47
+ break;
48
+ }
49
+ }
50
+ if (spec.theta !== undefined)
51
+ el.theta(spec.theta);
52
+ if (spec.at !== undefined)
53
+ el.at(resolvePosition(spec.at, namedElements));
54
+ if (spec.anchor)
55
+ el.anchor(spec.anchor);
56
+ if (spec.flip)
57
+ el.flip();
58
+ if (spec.reverse)
59
+ el.reverse();
60
+ if (spec.scale !== undefined)
61
+ el.scale(spec.scale);
62
+ if (el instanceof Element2Term) {
63
+ if (spec.to !== undefined)
64
+ el.to(resolvePosition(spec.to, namedElements));
65
+ if (spec.tox !== undefined)
66
+ el.tox(resolvePositionX(spec.tox, namedElements));
67
+ if (spec.toy !== undefined)
68
+ el.toy(resolvePositionY(spec.toy, namedElements));
69
+ if (spec.l !== undefined)
70
+ el.length(spec.l);
71
+ if (spec.dot)
72
+ el.dot(spec.dot === "open");
73
+ if (spec.idot)
74
+ el.idot(spec.idot === "open");
75
+ }
76
+ if (spec.label) {
77
+ if (typeof spec.label === "string") {
78
+ el.label(spec.label);
79
+ }
80
+ else {
81
+ const { text, ...opts } = spec.label;
82
+ el.label(text, opts);
83
+ }
84
+ }
85
+ if (spec.labels) {
86
+ for (const lbl of spec.labels) {
87
+ const { text, ...opts } = lbl;
88
+ el.label(text, opts);
89
+ }
90
+ }
91
+ if (spec.color)
92
+ el.color(spec.color);
93
+ if (spec.fill)
94
+ el.fill(spec.fill);
95
+ if (spec.lw !== undefined)
96
+ el.linewidth(spec.lw);
97
+ if (spec.ls)
98
+ el.linestyle(spec.ls);
99
+ drawing.add(el);
100
+ if (spec.id) {
101
+ namedElements.set(spec.id, el);
102
+ if (opts?.interactive) {
103
+ drawing.setElementMeta(el, {
104
+ id: spec.id,
105
+ type: spec.type,
106
+ tooltip: spec.tooltip ?? `${spec.id} — ${spec.type}`,
107
+ });
108
+ }
109
+ }
110
+ }
111
+ return drawing.toSvgString();
112
+ }
113
+ //# sourceMappingURL=render.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../../src/json/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ export interface Theme {
2
+ /** 画布背景色 */
3
+ bg: string;
4
+ /** 默认线条颜色 */
5
+ stroke: string;
6
+ /** 默认填充色 */
7
+ fill: string;
8
+ /** 默认文字颜色 */
9
+ text: string;
10
+ /** 默认字体 */
11
+ font: string;
12
+ /** 默认线宽 */
13
+ lw: number;
14
+ }
15
+ export declare const BUILTIN_THEMES: Record<string, Theme>;
16
+ export declare function resolveTheme(theme?: string | Partial<Theme>): Theme;
17
+ export declare function applyThemeToDrawingConfig(theme: Theme, drawingConfig?: Record<string, unknown>): Record<string, unknown>;
18
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../src/json/theme.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAyBhD,CAAC;AAEF,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAcnE;AAUD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,KAAK,EACZ,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB"}
@@ -0,0 +1,57 @@
1
+ export const BUILTIN_THEMES = {
2
+ light: {
3
+ bg: '#ffffff',
4
+ stroke: '#000000',
5
+ fill: 'none',
6
+ text: '#000000',
7
+ font: 'sans-serif',
8
+ lw: 2,
9
+ },
10
+ dark: {
11
+ bg: '#1a1a2e',
12
+ stroke: '#c8d6e5',
13
+ fill: 'none',
14
+ text: '#dfe6e9',
15
+ font: 'sans-serif',
16
+ lw: 2,
17
+ },
18
+ print: {
19
+ bg: '#ffffff',
20
+ stroke: '#333333',
21
+ fill: 'none',
22
+ text: '#333333',
23
+ font: 'serif',
24
+ lw: 1.5,
25
+ },
26
+ };
27
+ export function resolveTheme(theme) {
28
+ if (theme === undefined) {
29
+ return { ...BUILTIN_THEMES.light };
30
+ }
31
+ if (typeof theme === 'string') {
32
+ const found = BUILTIN_THEMES[theme];
33
+ if (!found) {
34
+ throw new Error(`Unknown theme "${theme}". Available: ${Object.keys(BUILTIN_THEMES).join(', ')}`);
35
+ }
36
+ return { ...found };
37
+ }
38
+ return { ...BUILTIN_THEMES.light, ...theme };
39
+ }
40
+ const THEME_TO_DRAWING = {
41
+ bg: 'bgcolor',
42
+ stroke: 'color',
43
+ fill: 'fill',
44
+ font: 'font',
45
+ lw: 'lw',
46
+ };
47
+ export function applyThemeToDrawingConfig(theme, drawingConfig) {
48
+ const base = {};
49
+ for (const key of Object.keys(THEME_TO_DRAWING)) {
50
+ const mapped = THEME_TO_DRAWING[key];
51
+ if (mapped) {
52
+ base[mapped] = theme[key];
53
+ }
54
+ }
55
+ return { ...base, ...drawingConfig };
56
+ }
57
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../src/json/theme.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,MAAM,cAAc,GAA0B;IACnD,KAAK,EAAE;QACL,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,CAAC;KACN;IACD,IAAI,EAAE;QACJ,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,YAAY;QAClB,EAAE,EAAE,CAAC;KACN;IACD,KAAK,EAAE;QACL,EAAE,EAAE,SAAS;QACb,MAAM,EAAE,SAAS;QACjB,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,OAAO;QACb,EAAE,EAAE,GAAG;KACR;CACF,CAAC;AAEF,MAAM,UAAU,YAAY,CAAC,KAA+B;IAC1D,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,iBAAiB,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,GAAG,KAAK,EAAE,CAAC;IACtB,CAAC;IACD,OAAO,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,gBAAgB,GAAyC;IAC7D,EAAE,EAAE,SAAS;IACb,MAAM,EAAE,OAAO;IACf,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,EAAE,EAAE,IAAI;CACT,CAAC;AAEF,MAAM,UAAU,yBAAyB,CACvC,KAAY,EACZ,aAAuC;IAEvC,MAAM,IAAI,GAA4B,EAAE,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAoB,EAAE,CAAC;QACnE,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,aAAa,EAAE,CAAC;AACvC,CAAC"}