@tscircuit/schematic-trace-solver 0.0.42 → 0.0.43

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 (37) hide show
  1. package/dist/index.d.ts +28 -29
  2. package/dist/index.js +917 -926
  3. package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +20 -1
  4. package/lib/solvers/TraceCleanupSolver/TraceCleanupSolver.ts +133 -0
  5. package/lib/solvers/TraceCleanupSolver/balanceZShapes.ts +200 -0
  6. package/lib/solvers/TraceCleanupSolver/minimizeTurnsWithFilteredLabels.ts +76 -0
  7. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/TraceLabelOverlapAvoidanceSolver.ts +1 -21
  8. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/rerouteCollidingTrace.ts +1 -1
  9. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/SingleOverlapSolver/SingleOverlapSolver.ts +1 -1
  10. package/package.json +1 -1
  11. package/site/examples/example26.page.tsx +4 -0
  12. package/tests/assets/example26.json +1206 -0
  13. package/tests/examples/__snapshots__/example02.snap.svg +1 -1
  14. package/tests/examples/__snapshots__/example09.snap.svg +34 -34
  15. package/tests/examples/__snapshots__/example11.snap.svg +13 -13
  16. package/tests/examples/__snapshots__/example12.snap.svg +3 -3
  17. package/tests/examples/__snapshots__/example13.snap.svg +12 -12
  18. package/tests/examples/__snapshots__/example16.snap.svg +4 -4
  19. package/tests/examples/__snapshots__/example19.snap.svg +9 -9
  20. package/tests/examples/__snapshots__/example25.snap.svg +3 -3
  21. package/tests/examples/__snapshots__/example26.snap.svg +3 -3
  22. package/tests/examples/__snapshots__/example28.snap.svg +3 -3
  23. package/tests/examples/__snapshots__/example29.snap.svg +1208 -0
  24. package/tests/examples/example29.test.ts +13 -0
  25. package/tests/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solver → TraceCleanupSolver}/TraceCleanupSolver.test.ts +2 -2
  26. package/tests/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solver → TraceCleanupSolver}/__snapshots__/TraceCleanupSolver.snap.svg +1 -1
  27. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/__snapshots__/renderComparisonView03.snap.svg +1 -1
  28. package/tests/solvers/TraceLabelOverlapAvoidanceSolver/renderComparisonView/renderComparisonView03.test.ts +1 -1
  29. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver/TraceCleanupSolver.ts +0 -132
  30. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver/balanceLShapes.ts +0 -209
  31. package/lib/solvers/TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver/minimizeTurnsWithFilteredLabels.ts +0 -66
  32. /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/countTurns.ts +0 -0
  33. /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/hasCollisions.ts +0 -0
  34. /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/hasCollisionsWithLabels.ts +0 -0
  35. /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/simplifyPath.ts +0 -0
  36. /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/tryConnectPoints.ts +0 -0
  37. /package/lib/solvers/{TraceLabelOverlapAvoidanceSolver/sub-solvers/TraceCleanupSolver → TraceCleanupSolver}/turnMinimization.ts +0 -0
package/dist/index.d.ts CHANGED
@@ -406,33 +406,6 @@ declare class MergedNetLabelObstacleSolver extends BaseSolver {
406
406
  visualize(): GraphicsObject;
407
407
  }
408
408
 
409
- interface TraceCleanupSolverInput {
410
- inputProblem: InputProblem;
411
- allTraces: SolvedTracePath[];
412
- targetTraceIds: Set<string>;
413
- allLabelPlacements: NetLabelPlacement[];
414
- mergedLabelNetIdMap: Record<string, Set<string>>;
415
- paddingBuffer: number;
416
- }
417
- /**
418
- * Cleans up traces by minimizing turns and balancing L-shapes to improve
419
- * the overall aesthetics and readability of the schematic.
420
- */
421
- declare class TraceCleanupSolver extends BaseSolver {
422
- private input;
423
- private outputTraces;
424
- private pipelineStepIndex;
425
- private tracesToProcess;
426
- private minimizedTraces;
427
- private balancedTraces;
428
- constructor(solverInput: TraceCleanupSolverInput);
429
- _step(): void;
430
- getOutput(): {
431
- traces: SolvedTracePath[];
432
- };
433
- visualize(): GraphicsObject;
434
- }
435
-
436
409
  interface SingleOverlapSolverInput {
437
410
  trace: SolvedTracePath;
438
411
  label: NetLabelPlacement;
@@ -502,7 +475,6 @@ declare class TraceLabelOverlapAvoidanceSolver extends BaseSolver {
502
475
  netLabelPlacements: NetLabelPlacement[];
503
476
  labelMergingSolver?: MergedNetLabelObstacleSolver;
504
477
  overlapAvoidanceSolver?: OverlapAvoidanceStepSolver;
505
- traceCleanupSolver?: TraceCleanupSolver;
506
478
  pipelineStepIndex: number;
507
479
  constructor(solverInput: TraceLabelOverlapAvoidanceSolverInput);
508
480
  _step(): void;
@@ -542,6 +514,33 @@ declare class LongDistancePairSolver extends BaseSolver {
542
514
  };
543
515
  }
544
516
 
517
+ interface TraceCleanupSolverInput {
518
+ inputProblem: InputProblem;
519
+ allTraces: SolvedTracePath[];
520
+ targetTraceIds: Set<string>;
521
+ allLabelPlacements: NetLabelPlacement[];
522
+ mergedLabelNetIdMap: Record<string, Set<string>>;
523
+ paddingBuffer: number;
524
+ }
525
+ /**
526
+ * Cleans up traces by minimizing turns and balancing L-shapes to improve
527
+ * the overall aesthetics and readability of the schematic.
528
+ */
529
+ declare class TraceCleanupSolver extends BaseSolver {
530
+ private input;
531
+ private outputTraces;
532
+ private traceIdQueue;
533
+ private tracesMap;
534
+ private pipelineStep;
535
+ private activeTraceId;
536
+ constructor(solverInput: TraceCleanupSolverInput);
537
+ _step(): void;
538
+ getOutput(): {
539
+ traces: SolvedTracePath[];
540
+ };
541
+ visualize(): GraphicsObject;
542
+ }
543
+
545
544
  /**
546
545
  * Pipeline solver that runs a series of solvers to find the best schematic layout.
547
546
  * Coordinates the entire layout process from chip partitioning through final packing.
@@ -572,7 +571,7 @@ declare class SchematicTracePipelineSolver extends BaseSolver {
572
571
  timeSpentOnPhase: Record<string, number>;
573
572
  firstIterationOfPhase: Record<string, number>;
574
573
  inputProblem: InputProblem;
575
- pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof LongDistancePairSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver>)[];
574
+ pipelineDef: (PipelineStep<typeof MspConnectionPairSolver> | PipelineStep<typeof SchematicTraceLinesSolver> | PipelineStep<typeof LongDistancePairSolver> | PipelineStep<typeof TraceOverlapShiftSolver> | PipelineStep<typeof NetLabelPlacementSolver> | PipelineStep<typeof TraceLabelOverlapAvoidanceSolver> | PipelineStep<typeof TraceCleanupSolver>)[];
576
575
  constructor(inputProblem: InputProblem);
577
576
  getConstructorParams(): ConstructorParameters<typeof SchematicTracePipelineSolver>[0];
578
577
  currentPipelineStepIndex: number;