@tscircuit/schematic-trace-solver 0.0.177 → 0.0.179

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 (21) hide show
  1. package/dist/index.d.ts +10 -1
  2. package/dist/index.js +331 -122
  3. package/lib/solvers/AvailableNetOrientationSolver/AvailableNetOrientationSolver.ts +79 -2
  4. package/lib/solvers/SchematicTracePipelineSolver/SchematicTracePipelineSolver.ts +6 -1
  5. package/lib/solvers/TraceCleanupSolver/TraceCleanupSolver.ts +25 -0
  6. package/lib/solvers/TraceCleanupSolver/rerouteGeneratedNetLabelConnectorCrossings.ts +194 -0
  7. package/lib/solvers/TraceCleanupSolver/sub-solver/findIntersectionsWithObstacles.ts +19 -5
  8. package/lib/solvers/TraceCleanupSolver/sub-solver/generateLShapeRerouteCandidates.ts +35 -5
  9. package/package.json +1 -1
  10. package/site/bug-reports/bug-report-20260902T092101Z.page.tsx +4 -0
  11. package/site/bug-reports/bug-report-20260902T092425Z.page.tsx +4 -0
  12. package/tests/bug-reports/bug-report-20260902T092101Z/__snapshots__/bug-report-20260902T092101Z.snap.svg +117 -0
  13. package/tests/bug-reports/bug-report-20260902T092101Z/bug-report-20260902T092101Z.json +162 -0
  14. package/tests/bug-reports/bug-report-20260902T092101Z/bug-report-20260902T092101Z.test.ts +28 -0
  15. package/tests/bug-reports/bug-report-20260902T092425Z/__snapshots__/bug-report-20260902T092425Z.snap.svg +136 -0
  16. package/tests/bug-reports/bug-report-20260902T092425Z/bug-report-20260902T092425Z.json +238 -0
  17. package/tests/bug-reports/bug-report-20260902T092425Z/bug-report-20260902T092425Z.test.ts +12 -0
  18. package/tests/repros/__snapshots__/repro-pmp11282-isolated-dcdc.snap.svg +10 -10
  19. package/tests/repros/__snapshots__/repro-wireless-mouse-charger-section.snap.svg +2 -2
  20. package/tests/solvers/TraceCleanupSolver/alignSameNetRails-pipeline-label-connector.test.ts +4 -2
  21. package/tests/solvers/TraceCleanupSolver/reroute-generated-net-label-connector-crossings.test.ts +160 -0
package/dist/index.d.ts CHANGED
@@ -711,7 +711,7 @@ declare class LongDistancePairSolver extends BaseSolver {
711
711
  };
712
712
  }
713
713
 
714
- type TraceCleanupOperation = "untangling_traces" | "minimizing_turns" | "balancing_l_shapes" | "aligning_same_net_rails";
714
+ type TraceCleanupOperation = "untangling_traces" | "rerouting_generated_net_label_connector_crossings" | "minimizing_turns" | "balancing_l_shapes" | "aligning_same_net_rails";
715
715
  /**
716
716
  * Defines the input structure for the TraceCleanupSolver.
717
717
  */
@@ -723,6 +723,7 @@ interface TraceCleanupSolverInput {
723
723
  paddingBuffer: number;
724
724
  operations?: readonly TraceCleanupOperation[];
725
725
  eligibleTraceIds?: ReadonlySet<string>;
726
+ netLabelConnectorTraceIds?: ReadonlySet<string>;
726
727
  }
727
728
  /**
728
729
  * The TraceCleanupSolver is responsible for improving the aesthetics and readability of schematic traces.
@@ -746,6 +747,7 @@ declare class TraceCleanupSolver extends BaseSolver {
746
747
  _step(): void;
747
748
  private _advancePipeline;
748
749
  private _runUntangleTracesStep;
750
+ private _runGeneratedNetLabelConnectorCrossingRerouteStep;
749
751
  private _runMinimizeTurnsStep;
750
752
  private _runBalanceLShapesStep;
751
753
  private _processTrace;
@@ -863,6 +865,7 @@ declare class AvailableNetOrientationSolver extends BaseSolver {
863
865
  getOutput(): {
864
866
  traces: SolvedTracePath[];
865
867
  netLabelPlacements: NetLabelPlacement[];
868
+ netLabelConnectorTraceIds: Set<string>;
866
869
  };
867
870
  private getProcessableLabelIndices;
868
871
  private sortCrowdedTopBankByPin;
@@ -897,6 +900,12 @@ declare class AvailableNetOrientationSolver extends BaseSolver {
897
900
  private evaluateCandidate;
898
901
  private recordCandidateResult;
899
902
  private getCandidateConnectorTrace;
903
+ /**
904
+ * A laterally shifted label can branch directly from the interior of its
905
+ * existing host trace. Prefer that tee over running a new connector beside
906
+ * the host trace from the old label anchor.
907
+ */
908
+ private findProjectedConnectorSourceOnHostTrace;
900
909
  private isStandaloneSinglePinNetLabel;
901
910
  private labelIntersectsDifferentNetTrace;
902
911
  private getSearchStartAnchor;