@tscircuit/core 0.0.759 → 0.0.760

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/dist/index.d.ts CHANGED
@@ -13,7 +13,7 @@ import { CircuitJsonUtilObjects } from '@tscircuit/circuit-json-util';
13
13
  import { ConnectivityMap } from 'circuit-json-to-connectivity-map';
14
14
  import { GraphicsObject } from 'graphics-debug';
15
15
 
16
- declare const orderedRenderPhases: readonly ["ReactSubtreesRender", "SourceNameDuplicateComponentRemoval", "PcbFootprintStringRender", "InitializePortsFromChildren", "CreateNetsFromProps", "AssignFallbackProps", "CreateTracesFromProps", "CreateTracesFromNetLabels", "CreateTraceHintsFromProps", "SourceGroupRender", "AssignNameToUnnamedComponents", "SourceRender", "SourceParentAttachment", "PortMatching", "OptimizeSelectorCache", "SourceTraceRender", "SourceAddConnectivityMapKey", "SourceDesignRuleChecks", "SimulationRender", "SchematicComponentRender", "SchematicPortRender", "SchematicPrimitiveRender", "SchematicComponentSizeCalculation", "SchematicLayout", "SchematicTraceRender", "SchematicReplaceNetLabelsWithSymbols", "PcbComponentRender", "PcbPrimitiveRender", "PcbFootprintLayout", "PcbPortRender", "PcbPortAttachment", "PcbComponentSizeCalculation", "PcbComponentAnchorAlignment", "PcbLayout", "PcbBoardAutoSize", "PcbTraceHintRender", "PcbManualTraceRender", "PcbTraceRender", "PcbRouteNetIslands", "PcbCopperPourRender", "PcbDesignRuleChecks", "SilkscreenOverlapAdjustment", "CadModelRender", "PartsEngineRender"];
16
+ declare const orderedRenderPhases: readonly ["ReactSubtreesRender", "SourceNameDuplicateComponentRemoval", "PcbFootprintStringRender", "InitializePortsFromChildren", "CreateNetsFromProps", "AssignFallbackProps", "CreateTracesFromProps", "CreateTracesFromNetLabels", "CreateTraceHintsFromProps", "SourceGroupRender", "AssignNameToUnnamedComponents", "SourceRender", "SourceParentAttachment", "PortMatching", "OptimizeSelectorCache", "SourceTraceRender", "SourceAddConnectivityMapKey", "SourceDesignRuleChecks", "SimulationRender", "SchematicComponentRender", "SchematicPortRender", "SchematicPrimitiveRender", "SchematicComponentSizeCalculation", "SchematicLayout", "SchematicTraceRender", "SchematicReplaceNetLabelsWithSymbols", "PcbComponentRender", "PcbPrimitiveRender", "PcbFootprintLayout", "PcbPortRender", "PcbPortAttachment", "PcbComponentSizeCalculation", "PcbComponentAnchorAlignment", "PcbLayout", "PcbBoardAutoSize", "PcbTraceHintRender", "PcbManualTraceRender", "PcbTraceRender", "PcbRouteNetIslands", "PcbCopperPourRender", "PcbDesignRuleChecks", "SilkscreenOverlapAdjustment", "CadModelRender", "PartsEngineRender", "SimulationSpiceEngineRender"];
17
17
  type RenderPhase = (typeof orderedRenderPhases)[number];
18
18
  type RenderPhaseFn<K extends RenderPhase = RenderPhase> = `doInitial${K}` | `update${K}` | `remove${K}`;
19
19
  type RenderPhaseStates = Record<RenderPhase, {
@@ -51,7 +51,7 @@ declare abstract class Renderable implements IRenderable {
51
51
  parent: Renderable | null;
52
52
  constructor(props: any);
53
53
  _markDirty(phase: RenderPhase): void;
54
- protected _queueAsyncEffect(effectName: string, effect: () => Promise<void>): void;
54
+ _queueAsyncEffect(effectName: string, effect: () => Promise<void>): void;
55
55
  protected _emitRenderLifecycleEvent(phase: RenderPhase, startOrEnd: "start" | "end"): void;
56
56
  getString(): string;
57
57
  _hasIncompleteAsyncEffects(): boolean;
@@ -1252,6 +1252,7 @@ declare class Group<Props extends z.ZodType<any, any, any> = typeof groupProps>
1252
1252
  _shouldUseTraceByTraceRouting(): boolean;
1253
1253
  doInitialPcbDesignRuleChecks(): void;
1254
1254
  doInitialSchematicReplaceNetLabelsWithSymbols(): void;
1255
+ doInitialSimulationSpiceEngineRender(): void;
1255
1256
  /**
1256
1257
  * Get the minimum flex container size for this group on PCB
1257
1258
  */
@@ -1991,6 +1992,12 @@ declare class Board extends Group<typeof boardProps> {
1991
1992
  y: string | number;
1992
1993
  }>>;
1993
1994
  boardAnchorAlignment: zod.ZodOptional<zod.ZodEnum<["top_left", "top_center", "top_right", "center_left", "center", "center_right", "bottom_left", "bottom_center", "bottom_right"]>>;
1995
+ solderMaskColor: zod.ZodOptional<zod.ZodType<_tscircuit_props.BoardColor, zod.ZodTypeDef, _tscircuit_props.BoardColor>>;
1996
+ topSolderMaskColor: zod.ZodOptional<zod.ZodType<_tscircuit_props.BoardColor, zod.ZodTypeDef, _tscircuit_props.BoardColor>>;
1997
+ bottomSolderMaskColor: zod.ZodOptional<zod.ZodType<_tscircuit_props.BoardColor, zod.ZodTypeDef, _tscircuit_props.BoardColor>>;
1998
+ silkscreenColor: zod.ZodOptional<zod.ZodType<_tscircuit_props.BoardColor, zod.ZodTypeDef, _tscircuit_props.BoardColor>>;
1999
+ topSilkscreenColor: zod.ZodOptional<zod.ZodType<_tscircuit_props.BoardColor, zod.ZodTypeDef, _tscircuit_props.BoardColor>>;
2000
+ bottomSilkscreenColor: zod.ZodOptional<zod.ZodType<_tscircuit_props.BoardColor, zod.ZodTypeDef, _tscircuit_props.BoardColor>>;
1994
2001
  }, "strip", zod.ZodTypeAny, {
1995
2002
  material: "fr4" | "fr1";
1996
2003
  layers: 2 | 4;
@@ -2287,6 +2294,12 @@ declare class Board extends Group<typeof boardProps> {
2287
2294
  y: number;
2288
2295
  } | undefined;
2289
2296
  boardAnchorAlignment?: "top_left" | "top_center" | "top_right" | "center_left" | "center" | "center_right" | "bottom_left" | "bottom_center" | "bottom_right" | undefined;
2297
+ solderMaskColor?: _tscircuit_props.BoardColor | undefined;
2298
+ topSolderMaskColor?: _tscircuit_props.BoardColor | undefined;
2299
+ bottomSolderMaskColor?: _tscircuit_props.BoardColor | undefined;
2300
+ silkscreenColor?: _tscircuit_props.BoardColor | undefined;
2301
+ topSilkscreenColor?: _tscircuit_props.BoardColor | undefined;
2302
+ bottomSilkscreenColor?: _tscircuit_props.BoardColor | undefined;
2290
2303
  }, {
2291
2304
  symbol?: _tscircuit_props.SymbolProp | undefined;
2292
2305
  key?: any;
@@ -2587,6 +2600,12 @@ declare class Board extends Group<typeof boardProps> {
2587
2600
  y: string | number;
2588
2601
  } | undefined;
2589
2602
  boardAnchorAlignment?: "top_left" | "top_center" | "top_right" | "center_left" | "center" | "center_right" | "bottom_left" | "bottom_center" | "bottom_right" | undefined;
2603
+ solderMaskColor?: _tscircuit_props.BoardColor | undefined;
2604
+ topSolderMaskColor?: _tscircuit_props.BoardColor | undefined;
2605
+ bottomSolderMaskColor?: _tscircuit_props.BoardColor | undefined;
2606
+ silkscreenColor?: _tscircuit_props.BoardColor | undefined;
2607
+ topSilkscreenColor?: _tscircuit_props.BoardColor | undefined;
2608
+ bottomSilkscreenColor?: _tscircuit_props.BoardColor | undefined;
2590
2609
  }>;
2591
2610
  };
2592
2611
  get boardThickness(): number;
package/dist/index.js CHANGED
@@ -136,7 +136,8 @@ var orderedRenderPhases = [
136
136
  "PcbDesignRuleChecks",
137
137
  "SilkscreenOverlapAdjustment",
138
138
  "CadModelRender",
139
- "PartsEngineRender"
139
+ "PartsEngineRender",
140
+ "SimulationSpiceEngineRender"
140
141
  ];
141
142
  var asyncPhaseDependencies = {
142
143
  PcbFootprintLayout: ["PcbFootprintStringRender"],
@@ -8449,7 +8450,7 @@ var CapacityMeshAutorouter = class {
8449
8450
 
8450
8451
  // lib/components/primitive-components/Group/Group.ts
8451
8452
  import "circuit-json";
8452
- import Debug11 from "debug";
8453
+ import Debug12 from "debug";
8453
8454
  import "zod";
8454
8455
 
8455
8456
  // lib/components/primitive-components/TraceHint.ts
@@ -11862,6 +11863,60 @@ var Group_doInitialSchematicTraceRender = (group) => {
11862
11863
  });
11863
11864
  };
11864
11865
 
11866
+ // lib/components/primitive-components/Group/Group_doInitialSimulationSpiceEngineRender.ts
11867
+ import { circuitJsonToSpice } from "circuit-json-to-spice";
11868
+ import Debug11 from "debug";
11869
+ var debug10 = Debug11("tscircuit:core:Group_doInitialSimulationSpiceEngineRender");
11870
+ function Group_doInitialSimulationSpiceEngineRender(group) {
11871
+ if (!group.isSubcircuit) return;
11872
+ const { root } = group;
11873
+ if (!root) return;
11874
+ const spiceEngineMap = root.platform?.spiceEngineMap;
11875
+ if (!spiceEngineMap || Object.keys(spiceEngineMap).length === 0) {
11876
+ debug10("No spice engines configured, skipping simulation");
11877
+ return;
11878
+ }
11879
+ const circuitJson = root.db.toArray();
11880
+ let spiceString;
11881
+ try {
11882
+ const spiceNetlist = circuitJsonToSpice(circuitJson);
11883
+ spiceString = spiceNetlist.toSpiceString();
11884
+ debug10(`Generated SPICE string:
11885
+ ${spiceString}`);
11886
+ } catch (error) {
11887
+ debug10(`Failed to convert circuit JSON to SPICE: ${error}`);
11888
+ return;
11889
+ }
11890
+ for (const [engineName, spiceEngine] of Object.entries(spiceEngineMap)) {
11891
+ debug10(`Queueing simulation for spice engine: ${engineName}`);
11892
+ group._queueAsyncEffect(`spice-simulation-${engineName}`, async () => {
11893
+ try {
11894
+ debug10(`Running simulation with engine: ${engineName}`);
11895
+ const result = await spiceEngine.simulate(spiceString);
11896
+ debug10(
11897
+ `Simulation completed, received ${result.simulationResultCircuitJson.length} elements`
11898
+ );
11899
+ for (const element of result.simulationResultCircuitJson) {
11900
+ const elementType = element.type;
11901
+ if (elementType && root.db[elementType]) {
11902
+ ;
11903
+ root.db[elementType].insert(element);
11904
+ debug10(`Inserted ${elementType} into database`);
11905
+ } else {
11906
+ debug10(
11907
+ `Warning: Unknown element type ${elementType}, adding to raw db`
11908
+ );
11909
+ root.db._addElement(element);
11910
+ }
11911
+ }
11912
+ group._markDirty("SimulationSpiceEngineRender");
11913
+ } catch (error) {
11914
+ debug10(`Simulation failed for engine ${engineName}: ${error}`);
11915
+ }
11916
+ });
11917
+ }
11918
+ }
11919
+
11865
11920
  // lib/components/primitive-components/Group/Group.ts
11866
11921
  var Group6 = class extends NormalComponent3 {
11867
11922
  pcb_group_id = null;
@@ -12027,20 +12082,20 @@ var Group6 = class extends NormalComponent3 {
12027
12082
  return false;
12028
12083
  }
12029
12084
  _hasTracesToRoute() {
12030
- const debug10 = Debug11("tscircuit:core:_hasTracesToRoute");
12085
+ const debug11 = Debug12("tscircuit:core:_hasTracesToRoute");
12031
12086
  const traces = this.selectAll("trace");
12032
- debug10(`[${this.getString()}] has ${traces.length} traces to route`);
12087
+ debug11(`[${this.getString()}] has ${traces.length} traces to route`);
12033
12088
  return traces.length > 0;
12034
12089
  }
12035
12090
  async _runEffectMakeHttpAutoroutingRequest() {
12036
12091
  const { db } = this.root;
12037
- const debug10 = Debug11("tscircuit:core:_runEffectMakeHttpAutoroutingRequest");
12092
+ const debug11 = Debug12("tscircuit:core:_runEffectMakeHttpAutoroutingRequest");
12038
12093
  const props = this._parsedProps;
12039
12094
  const autorouterConfig = this._getAutorouterConfig();
12040
12095
  const serverUrl = autorouterConfig.serverUrl;
12041
12096
  const serverMode = autorouterConfig.serverMode;
12042
12097
  const fetchWithDebug = (url, options) => {
12043
- debug10("fetching", url);
12098
+ debug11("fetching", url);
12044
12099
  if (options.headers) {
12045
12100
  options.headers["Tscircuit-Core-Version"] = this.root?.getCoreVersion();
12046
12101
  }
@@ -12156,22 +12211,22 @@ var Group6 = class extends NormalComponent3 {
12156
12211
  async _runLocalAutorouting() {
12157
12212
  const { db } = this.root;
12158
12213
  const props = this._parsedProps;
12159
- const debug10 = Debug11("tscircuit:core:_runLocalAutorouting");
12160
- debug10(`[${this.getString()}] starting local autorouting`);
12214
+ const debug11 = Debug12("tscircuit:core:_runLocalAutorouting");
12215
+ debug11(`[${this.getString()}] starting local autorouting`);
12161
12216
  const autorouterConfig = this._getAutorouterConfig();
12162
12217
  const { simpleRouteJson } = getSimpleRouteJsonFromCircuitJson({
12163
12218
  db,
12164
12219
  minTraceWidth: this.props.autorouter?.minTraceWidth ?? 0.15,
12165
12220
  subcircuit_id: this.subcircuit_id
12166
12221
  });
12167
- if (debug10.enabled) {
12222
+ if (debug11.enabled) {
12168
12223
  ;
12169
12224
  global.debugOutputArray?.push({
12170
12225
  name: `simpleroutejson-${this.props.name}.json`,
12171
12226
  obj: simpleRouteJson
12172
12227
  });
12173
12228
  }
12174
- if (debug10.enabled) {
12229
+ if (debug11.enabled) {
12175
12230
  const graphicsObject = convertSrjToGraphicsObject(
12176
12231
  simpleRouteJson
12177
12232
  );
@@ -12196,11 +12251,11 @@ var Group6 = class extends NormalComponent3 {
12196
12251
  const routingPromise = new Promise(
12197
12252
  (resolve, reject) => {
12198
12253
  autorouter.on("complete", (event) => {
12199
- debug10(`[${this.getString()}] local autorouting complete`);
12254
+ debug11(`[${this.getString()}] local autorouting complete`);
12200
12255
  resolve(event.traces);
12201
12256
  });
12202
12257
  autorouter.on("error", (event) => {
12203
- debug10(
12258
+ debug11(
12204
12259
  `[${this.getString()}] local autorouting error: ${event.error.message}`
12205
12260
  );
12206
12261
  reject(event.error);
@@ -12257,18 +12312,18 @@ var Group6 = class extends NormalComponent3 {
12257
12312
  }
12258
12313
  }
12259
12314
  doInitialPcbTraceRender() {
12260
- const debug10 = Debug11("tscircuit:core:doInitialPcbTraceRender");
12315
+ const debug11 = Debug12("tscircuit:core:doInitialPcbTraceRender");
12261
12316
  if (!this.isSubcircuit) return;
12262
12317
  if (this.root?.pcbDisabled) return;
12263
12318
  if (this.getInheritedProperty("routingDisabled")) return;
12264
12319
  if (this._shouldUseTraceByTraceRouting()) return;
12265
12320
  if (!this._areChildSubcircuitsRouted()) {
12266
- debug10(
12321
+ debug11(
12267
12322
  `[${this.getString()}] child subcircuits are not routed, skipping async autorouting until subcircuits routed`
12268
12323
  );
12269
12324
  return;
12270
12325
  }
12271
- debug10(
12326
+ debug11(
12272
12327
  `[${this.getString()}] no child subcircuits to wait for, initiating async routing`
12273
12328
  );
12274
12329
  if (!this._hasTracesToRoute()) return;
@@ -12278,12 +12333,12 @@ var Group6 = class extends NormalComponent3 {
12278
12333
  Group_doInitialSchematicTraceRender(this);
12279
12334
  }
12280
12335
  updatePcbTraceRender() {
12281
- const debug10 = Debug11("tscircuit:core:updatePcbTraceRender");
12282
- debug10(`[${this.getString()}] updating...`);
12336
+ const debug11 = Debug12("tscircuit:core:updatePcbTraceRender");
12337
+ debug11(`[${this.getString()}] updating...`);
12283
12338
  if (!this.isSubcircuit) return;
12284
12339
  if (this._shouldRouteAsync() && this._hasTracesToRoute() && !this._hasStartedAsyncAutorouting) {
12285
12340
  if (this._areChildSubcircuitsRouted()) {
12286
- debug10(
12341
+ debug11(
12287
12342
  `[${this.getString()}] child subcircuits are now routed, starting async autorouting`
12288
12343
  );
12289
12344
  this._startAsyncAutorouting();
@@ -12294,14 +12349,14 @@ var Group6 = class extends NormalComponent3 {
12294
12349
  if (this._shouldUseTraceByTraceRouting()) return;
12295
12350
  const { db } = this.root;
12296
12351
  if (this._asyncAutoroutingResult.output_simple_route_json) {
12297
- debug10(
12352
+ debug11(
12298
12353
  `[${this.getString()}] updating PCB traces from simple route json (${this._asyncAutoroutingResult.output_simple_route_json.traces?.length} traces)`
12299
12354
  );
12300
12355
  this._updatePcbTraceRenderFromSimpleRouteJson();
12301
12356
  return;
12302
12357
  }
12303
12358
  if (this._asyncAutoroutingResult.output_pcb_traces) {
12304
- debug10(
12359
+ debug11(
12305
12360
  `[${this.getString()}] updating PCB traces from ${this._asyncAutoroutingResult.output_pcb_traces.length} traces`
12306
12361
  );
12307
12362
  this._updatePcbTraceRenderFromPcbTraces();
@@ -12616,6 +12671,9 @@ var Group6 = class extends NormalComponent3 {
12616
12671
  }
12617
12672
  }
12618
12673
  }
12674
+ doInitialSimulationSpiceEngineRender() {
12675
+ Group_doInitialSimulationSpiceEngineRender(this);
12676
+ }
12619
12677
  /**
12620
12678
  * Get the minimum flex container size for this group on PCB
12621
12679
  */
@@ -15816,7 +15874,7 @@ import { identity as identity6 } from "transformation-matrix";
15816
15874
  var package_default = {
15817
15875
  name: "@tscircuit/core",
15818
15876
  type: "module",
15819
- version: "0.0.758",
15877
+ version: "0.0.759",
15820
15878
  types: "dist/index.d.ts",
15821
15879
  main: "dist/index.js",
15822
15880
  module: "dist/index.js",
@@ -15855,12 +15913,10 @@ var package_default = {
15855
15913
  "@tscircuit/matchpack": "^0.0.16",
15856
15914
  "@tscircuit/math-utils": "^0.0.21",
15857
15915
  "@tscircuit/miniflex": "^0.0.4",
15858
- "@tscircuit/props": "0.0.341",
15916
+ "@tscircuit/props": "0.0.343",
15859
15917
  "@tscircuit/schematic-autolayout": "^0.0.6",
15860
15918
  "@tscircuit/schematic-match-adapt": "^0.0.16",
15861
15919
  "@tscircuit/schematic-trace-solver": "^0.0.40",
15862
- "circuit-json-to-gltf": "^0.0.7",
15863
- poppygl: "^0.0.6",
15864
15920
  "@types/bun": "^1.2.16",
15865
15921
  "@types/debug": "^4.1.12",
15866
15922
  "@types/react": "^19.1.8",
@@ -15873,8 +15929,10 @@ var package_default = {
15873
15929
  "circuit-json": "^0.0.267",
15874
15930
  "circuit-json-to-bpc": "^0.0.13",
15875
15931
  "circuit-json-to-connectivity-map": "^0.0.22",
15932
+ "circuit-json-to-gltf": "^0.0.7",
15876
15933
  "circuit-json-to-simple-3d": "^0.0.9",
15877
- "circuit-to-svg": "^0.0.202",
15934
+ "circuit-json-to-spice": "^0.0.10",
15935
+ "circuit-to-svg": "^0.0.217",
15878
15936
  concurrently: "^9.1.2",
15879
15937
  "connectivity-map": "^1.0.0",
15880
15938
  debug: "^4.3.6",
@@ -15885,9 +15943,11 @@ var package_default = {
15885
15943
  "looks-same": "^9.0.1",
15886
15944
  minicssgrid: "^0.0.9",
15887
15945
  "pkg-pr-new": "^0.0.37",
15946
+ poppygl: "^0.0.6",
15888
15947
  react: "^19.1.0",
15889
15948
  "react-dom": "^19.1.0",
15890
15949
  "schematic-symbols": "^0.0.202",
15950
+ spicey: "^0.0.3",
15891
15951
  "ts-expect": "^1.3.0",
15892
15952
  tsup: "^8.2.4"
15893
15953
  },
@@ -15924,7 +15984,7 @@ var package_default = {
15924
15984
  };
15925
15985
 
15926
15986
  // lib/RootCircuit.ts
15927
- import Debug12 from "debug";
15987
+ import Debug13 from "debug";
15928
15988
  var RootCircuit = class {
15929
15989
  firstChild = null;
15930
15990
  children;
@@ -16093,11 +16153,11 @@ var RootCircuit = class {
16093
16153
  (l) => l !== listener
16094
16154
  );
16095
16155
  }
16096
- enableDebug(debug10) {
16097
- if (typeof debug10 === "string") {
16098
- Debug12.enable(debug10);
16099
- } else if (debug10 === null || debug10 === false) {
16100
- Debug12.disable();
16156
+ enableDebug(debug11) {
16157
+ if (typeof debug11 === "string") {
16158
+ Debug13.enable(debug11);
16159
+ } else if (debug11 === null || debug11 === false) {
16160
+ Debug13.disable();
16101
16161
  }
16102
16162
  }
16103
16163
  getClientOrigin() {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@tscircuit/core",
3
3
  "type": "module",
4
- "version": "0.0.759",
4
+ "version": "0.0.760",
5
5
  "types": "dist/index.d.ts",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -40,12 +40,10 @@
40
40
  "@tscircuit/matchpack": "^0.0.16",
41
41
  "@tscircuit/math-utils": "^0.0.21",
42
42
  "@tscircuit/miniflex": "^0.0.4",
43
- "@tscircuit/props": "0.0.341",
43
+ "@tscircuit/props": "0.0.343",
44
44
  "@tscircuit/schematic-autolayout": "^0.0.6",
45
45
  "@tscircuit/schematic-match-adapt": "^0.0.16",
46
46
  "@tscircuit/schematic-trace-solver": "^0.0.40",
47
- "circuit-json-to-gltf": "^0.0.7",
48
- "poppygl": "^0.0.6",
49
47
  "@types/bun": "^1.2.16",
50
48
  "@types/debug": "^4.1.12",
51
49
  "@types/react": "^19.1.8",
@@ -58,8 +56,10 @@
58
56
  "circuit-json": "^0.0.267",
59
57
  "circuit-json-to-bpc": "^0.0.13",
60
58
  "circuit-json-to-connectivity-map": "^0.0.22",
59
+ "circuit-json-to-gltf": "^0.0.7",
61
60
  "circuit-json-to-simple-3d": "^0.0.9",
62
- "circuit-to-svg": "^0.0.202",
61
+ "circuit-json-to-spice": "^0.0.10",
62
+ "circuit-to-svg": "^0.0.217",
63
63
  "concurrently": "^9.1.2",
64
64
  "connectivity-map": "^1.0.0",
65
65
  "debug": "^4.3.6",
@@ -70,9 +70,11 @@
70
70
  "looks-same": "^9.0.1",
71
71
  "minicssgrid": "^0.0.9",
72
72
  "pkg-pr-new": "^0.0.37",
73
+ "poppygl": "^0.0.6",
73
74
  "react": "^19.1.0",
74
75
  "react-dom": "^19.1.0",
75
76
  "schematic-symbols": "^0.0.202",
77
+ "spicey": "^0.0.3",
76
78
  "ts-expect": "^1.3.0",
77
79
  "tsup": "^8.2.4"
78
80
  },