biscuitboard 1.0.4 → 1.0.6

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/npm.d.cts CHANGED
@@ -482,8 +482,13 @@ declare const BREADBOARD_CLAD_VIA_HOLE_DIAMETER = 0.3;
482
482
  declare const BREADBOARD_CLAD_VIA_PAD_DIAMETER = 0.6;
483
483
  declare const BREADBOARD_CLAD_VIA_PITCH = 2.54;
484
484
  declare const BREADBOARD_CLAD_VIA_ROW_YS: readonly [-16.51, number, number, 16.51];
485
- declare const BREADBOARD_OUTER_VIA_ROW_YS: readonly [-24.13, 24.13];
486
- declare const BREADBOARD_OUTER_VIA_COLUMN_XS: readonly [-27.94, 27.94];
485
+ declare const BREADBOARD_CORNER_VIA_SPACING = 1.3;
486
+ declare const BREADBOARD_CORNER_VIA_ARM_WIDTH = 1.3;
487
+ declare const BREADBOARD_CORNER_VIA_X_INNER_OFFSET = 27;
488
+ declare const BREADBOARD_CORNER_VIA_X_OUTER_OFFSET = 32.2;
489
+ declare const BREADBOARD_CORNER_VIA_Y_INNER_OFFSET = 21;
490
+ declare const BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET = 26.2;
491
+ declare const BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT = 3.9;
487
492
  declare const BREADBOARD_MOUNTING_HOLE_DIAMETER = 2.2;
488
493
  declare const BREADBOARD_TERMINAL_ROW_LABELS: readonly ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"];
489
494
  type BreadboardTerminalRowLabel = (typeof BREADBOARD_TERMINAL_ROW_LABELS)[number];
@@ -499,7 +504,6 @@ interface BreadboardCladViaPosition {
499
504
  y: number;
500
505
  }
501
506
  declare const BREADBOARD_COLUMN_XS: number[];
502
- declare const BREADBOARD_OUTER_VERTICAL_VIA_YS: number[];
503
507
  declare const BREADBOARD_TERMINAL_ROW_YS: Record<BreadboardTerminalRowLabel, number>;
504
508
  /** Individually routable A1-J21 sockets in a conventional breadboard grid. */
505
509
  declare const BREADBOARD_TERMINAL_HEADER_POSITIONS: {
@@ -509,47 +513,15 @@ declare const BREADBOARD_TERMINAL_HEADER_POSITIONS: {
509
513
  x: number;
510
514
  y: number;
511
515
  }[];
512
- declare const BREADBOARD_POWER_RAILS: readonly [{
513
- readonly id: "topPositive";
514
- readonly label: "+";
515
- readonly y: 21.59;
516
- }, {
517
- readonly id: "topNegative";
518
- readonly label: "-";
519
- readonly y: 19.05;
520
- }, {
521
- readonly id: "bottomPositive";
522
- readonly label: "+";
523
- readonly y: -19.05;
524
- }, {
525
- readonly id: "bottomNegative";
526
- readonly label: "-";
527
- readonly y: -21.59;
528
- }];
529
- type BreadboardPowerRailId = (typeof BREADBOARD_POWER_RAILS)[number]["id"];
530
- declare const BREADBOARD_POWER_HEADER_POSITIONS: {
531
- rail: "topPositive" | "topNegative" | "bottomPositive" | "bottomNegative";
532
- pin: number;
533
- label: string;
534
- column: number;
535
- x: number;
536
- y: 21.59 | -21.59 | 19.05 | -19.05;
537
- }[];
516
+ /** Four two-via-wide L-shaped fields at the board corners. */
517
+ declare const BREADBOARD_CORNER_VIA_POSITIONS: BreadboardCladViaPosition[];
538
518
  /**
539
- * Fixed layer-change rows run through each open channel. A single-via-wide
540
- * outer field also runs beyond all four sides of the pin headers while staying
541
- * clear of the tooling holes and board edge.
519
+ * Fixed layer-change rows run through each open channel and stay clear of the
520
+ * terminal headers.
542
521
  */
543
- declare const BREADBOARD_CLAD_VIA_POSITIONS: {
544
- x: number;
545
- y: number;
546
- }[];
522
+ declare const BREADBOARD_CLAD_VIA_POSITIONS: BreadboardCladViaPosition[];
547
523
  /** One connector exposing every terminal socket by its breadboard name. */
548
524
  declare const BreadboardTerminalHeaders: (props: ConnectorProps) => react.JSX.Element;
549
- /** One 1x21 female socket rail; select it with a BREADBOARD_POWER_RAILS id. */
550
- declare const BreadboardPowerHeader: ({ rail, ...props }: ConnectorProps & {
551
- rail: BreadboardPowerRailId;
552
- }) => react.JSX.Element;
553
525
  interface BreadboardCladProps {
554
526
  children?: ReactNode;
555
527
  autorouter?: AutorouterProp;
@@ -562,10 +534,6 @@ interface BreadboardCladProps {
562
534
  /** Per-header no-connect overrides for partially populated designs. */
563
535
  headerNoConnects?: {
564
536
  terminals?: string[];
565
- topPositive?: string[];
566
- topNegative?: string[];
567
- bottomPositive?: string[];
568
- bottomNegative?: string[];
569
537
  };
570
538
  }
571
539
  /**
@@ -766,4 +734,4 @@ type XiaoCladWithPerforatedPinHeadersProps = XiaoCladWithPinHeadersProps;
766
734
  /** A XIAO clad whose header pads include perforations along both side edges. */
767
735
  declare const XiaoCladWithPerforatedPinHeaders: ({ markHeadersNoConnect, ...props }: XiaoCladWithPerforatedPinHeadersProps) => react.JSX.Element;
768
736
 
769
- export { ARDUINO_SHIELD_CLAD_HEIGHT, ARDUINO_SHIELD_CLAD_VIA_CANDIDATE_ZONES, ARDUINO_SHIELD_CLAD_VIA_HOLE_DIAMETER, ARDUINO_SHIELD_CLAD_VIA_OUTER_DIAMETER, ARDUINO_SHIELD_CLAD_VIA_POSITIONS, ARDUINO_SHIELD_CLAD_VIA_SPACING, ARDUINO_SHIELD_CLAD_WIDTH, ARDUINO_SHIELD_CONNECTOR_OFFSET_X, ARDUINO_SHIELD_HEADER_PITCH, ARDUINO_SHIELD_HEADER_PLACEMENTS, ARDUINO_SHIELD_HEADER_ROW_Y, ARDUINO_SHIELD_MOUNTING_HOLE_DIAMETER, ARDUINO_SHIELD_MOUNTING_HOLE_POSITIONS, ArduinoShieldAnalogHeader, ArduinoShieldClad, type ArduinoShieldCladProps, type ArduinoShieldCladViaPosition, ArduinoShieldDigital0To7Header, ArduinoShieldDigital8To13Header, ArduinoShieldIcspSocket, ArduinoShieldPowerHeader, BISCUIT_BOARD_HEIGHT, BISCUIT_BOARD_MOUNTING_HOLE_POSITIONS, BISCUIT_BOARD_VIA_POSITIONS, BISCUIT_BOARD_VIA_ZONES, BISCUIT_BOARD_WIDTH, BOOSTERPACK_CLAD_HEIGHT, BOOSTERPACK_CLAD_MOUNTING_HOLE_VIA_CLEARANCE, BOOSTERPACK_CLAD_PLACEMENT_ZONES, BOOSTERPACK_CLAD_VIA_CANDIDATE_ZONES, BOOSTERPACK_CLAD_VIA_EXCLUSION_ZONES, BOOSTERPACK_CLAD_VIA_OUTER_DIAMETER, BOOSTERPACK_CLAD_VIA_PITCH, BOOSTERPACK_CLAD_VIA_POSITIONS, BOOSTERPACK_CLAD_WIDTH, BOOSTERPACK_CORNER_VERTICAL_ARM_INNER_Y, BOOSTERPACK_EDGE_BAND_CENTER_GAP, BOOSTERPACK_EDGE_BAND_OUTER_X, BOOSTERPACK_EDGE_HEADER_CENTER_X, BOOSTERPACK_EDGE_HEADER_PIN_COUNT, BOOSTERPACK_HEADER_CENTER_X, BOOSTERPACK_HEADER_CENTER_Y, BOOSTERPACK_HEADER_PITCH, BOOSTERPACK_MIDDLE_VIA_CLUSTER_CENTER_X, BOOSTERPACK_MIDDLE_VIA_CLUSTER_HEIGHT, BOOSTERPACK_MIDDLE_VIA_CLUSTER_WIDTH, BREADBOARD_CLAD_HEIGHT, BREADBOARD_CLAD_VIA_HOLE_DIAMETER, BREADBOARD_CLAD_VIA_PAD_DIAMETER, BREADBOARD_CLAD_VIA_PITCH, BREADBOARD_CLAD_VIA_POSITIONS, BREADBOARD_CLAD_VIA_ROW_YS, BREADBOARD_CLAD_WIDTH, BREADBOARD_COLUMN_COUNT, BREADBOARD_COLUMN_XS, BREADBOARD_HEADER_HOLE_DIAMETER, BREADBOARD_HEADER_PAD_DIAMETER, BREADBOARD_HEADER_PITCH, BREADBOARD_MOUNTING_HOLE_DIAMETER, BREADBOARD_OUTER_VERTICAL_VIA_YS, BREADBOARD_OUTER_VIA_COLUMN_XS, BREADBOARD_OUTER_VIA_ROW_YS, BREADBOARD_POWER_HEADER_POSITIONS, BREADBOARD_POWER_RAILS, BREADBOARD_TERMINAL_HEADER_POSITIONS, BREADBOARD_TERMINAL_ROW_LABELS, BREADBOARD_TERMINAL_ROW_YS, BiscuitBoard, type BiscuitBoardAutorouterOptions, type BiscuitBoardProps, type BiscuitBoardViaPosition, BoosterPackClad, type BoosterPackCladPlacementZone, type BoosterPackCladProps, type BoosterPackCladViaPosition, BoosterPackEdgePinHeader, BoosterPackLeftHeader, BoosterPackRightHeader, BreadboardClad, type BreadboardCladProps, type BreadboardCladViaPosition, type BreadboardHeaderPosition, BreadboardPowerHeader, type BreadboardPowerRailId, BreadboardTerminalHeaders, type BreadboardTerminalRowLabel, CLAD_40X40_EDGE_MOUNTING_HOLE_INSET, CLAD_40X40_HEIGHT, CLAD_40X40_MOUNTING_HOLE_DIAMETER, CLAD_40X40_MOUNTING_HOLE_POSITIONS, CLAD_40X40_VIA_HOLE_DIAMETER, CLAD_40X40_VIA_PAD_DIAMETER, CLAD_40X40_VIA_POSITIONS, CLAD_40X40_VIA_RING_HALF_SIZES, CLAD_40X40_VIA_SPACING, CLAD_40X40_WIDTH, Clad40x40, type Clad40x40Props, FEATHER_CLAD_HEIGHT, FEATHER_CLAD_VIA_HOLE_DIAMETER, FEATHER_CLAD_VIA_PAD_DIAMETER, FEATHER_CLAD_VIA_POSITIONS, FEATHER_CLAD_VIA_SPACING, FEATHER_CLAD_WIDTH, FEATHER_HEADER_HOLE_DIAMETER, FEATHER_HEADER_PAD_DIAMETER, FEATHER_HEADER_PITCH, FEATHER_HEADER_POSITIONS, FEATHER_HEADER_ROW_SPACING, FEATHER_MOUNTING_HOLE_DIAMETER, FEATHER_MOUNTING_HOLE_POSITIONS, FEATHER_PIN_LABELS, FEATHER_PIN_NAMES, FeatherCladWithPinHeaders, type FeatherCladWithPinHeadersProps, FeatherPinHeaders, type PrefabricatedViaAutorouterConfig, XIAO_CLAD_HEIGHT, XIAO_CLAD_VIA_HOLE_DIAMETER, XIAO_CLAD_VIA_PAD_DIAMETER, XIAO_CLAD_VIA_POSITIONS, XIAO_CLAD_VIA_SPACING, XIAO_CLAD_WIDTH, XIAO_HEADER_HOLE_DIAMETER, XIAO_HEADER_PAD_DIAMETER, XIAO_HEADER_PITCH, XIAO_HEADER_POSITIONS, XIAO_HEADER_ROW_SPACING, XIAO_PERFORATED_HEADER_PAD_HEIGHT, XIAO_PERFORATED_HEADER_PAD_WIDTH, XIAO_PERFORATION_HOLE_DIAMETER, XIAO_PERFORATION_POSITIONS, XIAO_PIN_LABELS, XIAO_PIN_NAMES, XiaoCladLayout, type XiaoCladLayoutProps, XiaoCladWithPerforatedPinHeaders, type XiaoCladWithPerforatedPinHeadersProps, XiaoCladWithPinHeaders, type XiaoCladWithPinHeadersProps, XiaoPerforatedPinHeaders, XiaoPinHeaders, createBiscuitBoardAutorouter, createPrefabricatedViaAutorouter };
737
+ export { ARDUINO_SHIELD_CLAD_HEIGHT, ARDUINO_SHIELD_CLAD_VIA_CANDIDATE_ZONES, ARDUINO_SHIELD_CLAD_VIA_HOLE_DIAMETER, ARDUINO_SHIELD_CLAD_VIA_OUTER_DIAMETER, ARDUINO_SHIELD_CLAD_VIA_POSITIONS, ARDUINO_SHIELD_CLAD_VIA_SPACING, ARDUINO_SHIELD_CLAD_WIDTH, ARDUINO_SHIELD_CONNECTOR_OFFSET_X, ARDUINO_SHIELD_HEADER_PITCH, ARDUINO_SHIELD_HEADER_PLACEMENTS, ARDUINO_SHIELD_HEADER_ROW_Y, ARDUINO_SHIELD_MOUNTING_HOLE_DIAMETER, ARDUINO_SHIELD_MOUNTING_HOLE_POSITIONS, ArduinoShieldAnalogHeader, ArduinoShieldClad, type ArduinoShieldCladProps, type ArduinoShieldCladViaPosition, ArduinoShieldDigital0To7Header, ArduinoShieldDigital8To13Header, ArduinoShieldIcspSocket, ArduinoShieldPowerHeader, BISCUIT_BOARD_HEIGHT, BISCUIT_BOARD_MOUNTING_HOLE_POSITIONS, BISCUIT_BOARD_VIA_POSITIONS, BISCUIT_BOARD_VIA_ZONES, BISCUIT_BOARD_WIDTH, BOOSTERPACK_CLAD_HEIGHT, BOOSTERPACK_CLAD_MOUNTING_HOLE_VIA_CLEARANCE, BOOSTERPACK_CLAD_PLACEMENT_ZONES, BOOSTERPACK_CLAD_VIA_CANDIDATE_ZONES, BOOSTERPACK_CLAD_VIA_EXCLUSION_ZONES, BOOSTERPACK_CLAD_VIA_OUTER_DIAMETER, BOOSTERPACK_CLAD_VIA_PITCH, BOOSTERPACK_CLAD_VIA_POSITIONS, BOOSTERPACK_CLAD_WIDTH, BOOSTERPACK_CORNER_VERTICAL_ARM_INNER_Y, BOOSTERPACK_EDGE_BAND_CENTER_GAP, BOOSTERPACK_EDGE_BAND_OUTER_X, BOOSTERPACK_EDGE_HEADER_CENTER_X, BOOSTERPACK_EDGE_HEADER_PIN_COUNT, BOOSTERPACK_HEADER_CENTER_X, BOOSTERPACK_HEADER_CENTER_Y, BOOSTERPACK_HEADER_PITCH, BOOSTERPACK_MIDDLE_VIA_CLUSTER_CENTER_X, BOOSTERPACK_MIDDLE_VIA_CLUSTER_HEIGHT, BOOSTERPACK_MIDDLE_VIA_CLUSTER_WIDTH, BREADBOARD_CLAD_HEIGHT, BREADBOARD_CLAD_VIA_HOLE_DIAMETER, BREADBOARD_CLAD_VIA_PAD_DIAMETER, BREADBOARD_CLAD_VIA_PITCH, BREADBOARD_CLAD_VIA_POSITIONS, BREADBOARD_CLAD_VIA_ROW_YS, BREADBOARD_CLAD_WIDTH, BREADBOARD_COLUMN_COUNT, BREADBOARD_COLUMN_XS, BREADBOARD_CORNER_VIA_ARM_WIDTH, BREADBOARD_CORNER_VIA_POSITIONS, BREADBOARD_CORNER_VIA_SPACING, BREADBOARD_CORNER_VIA_X_INNER_OFFSET, BREADBOARD_CORNER_VIA_X_OUTER_OFFSET, BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT, BREADBOARD_CORNER_VIA_Y_INNER_OFFSET, BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET, BREADBOARD_HEADER_HOLE_DIAMETER, BREADBOARD_HEADER_PAD_DIAMETER, BREADBOARD_HEADER_PITCH, BREADBOARD_MOUNTING_HOLE_DIAMETER, BREADBOARD_TERMINAL_HEADER_POSITIONS, BREADBOARD_TERMINAL_ROW_LABELS, BREADBOARD_TERMINAL_ROW_YS, BiscuitBoard, type BiscuitBoardAutorouterOptions, type BiscuitBoardProps, type BiscuitBoardViaPosition, BoosterPackClad, type BoosterPackCladPlacementZone, type BoosterPackCladProps, type BoosterPackCladViaPosition, BoosterPackEdgePinHeader, BoosterPackLeftHeader, BoosterPackRightHeader, BreadboardClad, type BreadboardCladProps, type BreadboardCladViaPosition, type BreadboardHeaderPosition, BreadboardTerminalHeaders, type BreadboardTerminalRowLabel, CLAD_40X40_EDGE_MOUNTING_HOLE_INSET, CLAD_40X40_HEIGHT, CLAD_40X40_MOUNTING_HOLE_DIAMETER, CLAD_40X40_MOUNTING_HOLE_POSITIONS, CLAD_40X40_VIA_HOLE_DIAMETER, CLAD_40X40_VIA_PAD_DIAMETER, CLAD_40X40_VIA_POSITIONS, CLAD_40X40_VIA_RING_HALF_SIZES, CLAD_40X40_VIA_SPACING, CLAD_40X40_WIDTH, Clad40x40, type Clad40x40Props, FEATHER_CLAD_HEIGHT, FEATHER_CLAD_VIA_HOLE_DIAMETER, FEATHER_CLAD_VIA_PAD_DIAMETER, FEATHER_CLAD_VIA_POSITIONS, FEATHER_CLAD_VIA_SPACING, FEATHER_CLAD_WIDTH, FEATHER_HEADER_HOLE_DIAMETER, FEATHER_HEADER_PAD_DIAMETER, FEATHER_HEADER_PITCH, FEATHER_HEADER_POSITIONS, FEATHER_HEADER_ROW_SPACING, FEATHER_MOUNTING_HOLE_DIAMETER, FEATHER_MOUNTING_HOLE_POSITIONS, FEATHER_PIN_LABELS, FEATHER_PIN_NAMES, FeatherCladWithPinHeaders, type FeatherCladWithPinHeadersProps, FeatherPinHeaders, type PrefabricatedViaAutorouterConfig, XIAO_CLAD_HEIGHT, XIAO_CLAD_VIA_HOLE_DIAMETER, XIAO_CLAD_VIA_PAD_DIAMETER, XIAO_CLAD_VIA_POSITIONS, XIAO_CLAD_VIA_SPACING, XIAO_CLAD_WIDTH, XIAO_HEADER_HOLE_DIAMETER, XIAO_HEADER_PAD_DIAMETER, XIAO_HEADER_PITCH, XIAO_HEADER_POSITIONS, XIAO_HEADER_ROW_SPACING, XIAO_PERFORATED_HEADER_PAD_HEIGHT, XIAO_PERFORATED_HEADER_PAD_WIDTH, XIAO_PERFORATION_HOLE_DIAMETER, XIAO_PERFORATION_POSITIONS, XIAO_PIN_LABELS, XIAO_PIN_NAMES, XiaoCladLayout, type XiaoCladLayoutProps, XiaoCladWithPerforatedPinHeaders, type XiaoCladWithPerforatedPinHeadersProps, XiaoCladWithPinHeaders, type XiaoCladWithPinHeadersProps, XiaoPerforatedPinHeaders, XiaoPinHeaders, createBiscuitBoardAutorouter, createPrefabricatedViaAutorouter };
package/dist/npm.d.ts CHANGED
@@ -482,8 +482,13 @@ declare const BREADBOARD_CLAD_VIA_HOLE_DIAMETER = 0.3;
482
482
  declare const BREADBOARD_CLAD_VIA_PAD_DIAMETER = 0.6;
483
483
  declare const BREADBOARD_CLAD_VIA_PITCH = 2.54;
484
484
  declare const BREADBOARD_CLAD_VIA_ROW_YS: readonly [-16.51, number, number, 16.51];
485
- declare const BREADBOARD_OUTER_VIA_ROW_YS: readonly [-24.13, 24.13];
486
- declare const BREADBOARD_OUTER_VIA_COLUMN_XS: readonly [-27.94, 27.94];
485
+ declare const BREADBOARD_CORNER_VIA_SPACING = 1.3;
486
+ declare const BREADBOARD_CORNER_VIA_ARM_WIDTH = 1.3;
487
+ declare const BREADBOARD_CORNER_VIA_X_INNER_OFFSET = 27;
488
+ declare const BREADBOARD_CORNER_VIA_X_OUTER_OFFSET = 32.2;
489
+ declare const BREADBOARD_CORNER_VIA_Y_INNER_OFFSET = 21;
490
+ declare const BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET = 26.2;
491
+ declare const BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT = 3.9;
487
492
  declare const BREADBOARD_MOUNTING_HOLE_DIAMETER = 2.2;
488
493
  declare const BREADBOARD_TERMINAL_ROW_LABELS: readonly ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"];
489
494
  type BreadboardTerminalRowLabel = (typeof BREADBOARD_TERMINAL_ROW_LABELS)[number];
@@ -499,7 +504,6 @@ interface BreadboardCladViaPosition {
499
504
  y: number;
500
505
  }
501
506
  declare const BREADBOARD_COLUMN_XS: number[];
502
- declare const BREADBOARD_OUTER_VERTICAL_VIA_YS: number[];
503
507
  declare const BREADBOARD_TERMINAL_ROW_YS: Record<BreadboardTerminalRowLabel, number>;
504
508
  /** Individually routable A1-J21 sockets in a conventional breadboard grid. */
505
509
  declare const BREADBOARD_TERMINAL_HEADER_POSITIONS: {
@@ -509,47 +513,15 @@ declare const BREADBOARD_TERMINAL_HEADER_POSITIONS: {
509
513
  x: number;
510
514
  y: number;
511
515
  }[];
512
- declare const BREADBOARD_POWER_RAILS: readonly [{
513
- readonly id: "topPositive";
514
- readonly label: "+";
515
- readonly y: 21.59;
516
- }, {
517
- readonly id: "topNegative";
518
- readonly label: "-";
519
- readonly y: 19.05;
520
- }, {
521
- readonly id: "bottomPositive";
522
- readonly label: "+";
523
- readonly y: -19.05;
524
- }, {
525
- readonly id: "bottomNegative";
526
- readonly label: "-";
527
- readonly y: -21.59;
528
- }];
529
- type BreadboardPowerRailId = (typeof BREADBOARD_POWER_RAILS)[number]["id"];
530
- declare const BREADBOARD_POWER_HEADER_POSITIONS: {
531
- rail: "topPositive" | "topNegative" | "bottomPositive" | "bottomNegative";
532
- pin: number;
533
- label: string;
534
- column: number;
535
- x: number;
536
- y: 21.59 | -21.59 | 19.05 | -19.05;
537
- }[];
516
+ /** Four two-via-wide L-shaped fields at the board corners. */
517
+ declare const BREADBOARD_CORNER_VIA_POSITIONS: BreadboardCladViaPosition[];
538
518
  /**
539
- * Fixed layer-change rows run through each open channel. A single-via-wide
540
- * outer field also runs beyond all four sides of the pin headers while staying
541
- * clear of the tooling holes and board edge.
519
+ * Fixed layer-change rows run through each open channel and stay clear of the
520
+ * terminal headers.
542
521
  */
543
- declare const BREADBOARD_CLAD_VIA_POSITIONS: {
544
- x: number;
545
- y: number;
546
- }[];
522
+ declare const BREADBOARD_CLAD_VIA_POSITIONS: BreadboardCladViaPosition[];
547
523
  /** One connector exposing every terminal socket by its breadboard name. */
548
524
  declare const BreadboardTerminalHeaders: (props: ConnectorProps) => react.JSX.Element;
549
- /** One 1x21 female socket rail; select it with a BREADBOARD_POWER_RAILS id. */
550
- declare const BreadboardPowerHeader: ({ rail, ...props }: ConnectorProps & {
551
- rail: BreadboardPowerRailId;
552
- }) => react.JSX.Element;
553
525
  interface BreadboardCladProps {
554
526
  children?: ReactNode;
555
527
  autorouter?: AutorouterProp;
@@ -562,10 +534,6 @@ interface BreadboardCladProps {
562
534
  /** Per-header no-connect overrides for partially populated designs. */
563
535
  headerNoConnects?: {
564
536
  terminals?: string[];
565
- topPositive?: string[];
566
- topNegative?: string[];
567
- bottomPositive?: string[];
568
- bottomNegative?: string[];
569
537
  };
570
538
  }
571
539
  /**
@@ -766,4 +734,4 @@ type XiaoCladWithPerforatedPinHeadersProps = XiaoCladWithPinHeadersProps;
766
734
  /** A XIAO clad whose header pads include perforations along both side edges. */
767
735
  declare const XiaoCladWithPerforatedPinHeaders: ({ markHeadersNoConnect, ...props }: XiaoCladWithPerforatedPinHeadersProps) => react.JSX.Element;
768
736
 
769
- export { ARDUINO_SHIELD_CLAD_HEIGHT, ARDUINO_SHIELD_CLAD_VIA_CANDIDATE_ZONES, ARDUINO_SHIELD_CLAD_VIA_HOLE_DIAMETER, ARDUINO_SHIELD_CLAD_VIA_OUTER_DIAMETER, ARDUINO_SHIELD_CLAD_VIA_POSITIONS, ARDUINO_SHIELD_CLAD_VIA_SPACING, ARDUINO_SHIELD_CLAD_WIDTH, ARDUINO_SHIELD_CONNECTOR_OFFSET_X, ARDUINO_SHIELD_HEADER_PITCH, ARDUINO_SHIELD_HEADER_PLACEMENTS, ARDUINO_SHIELD_HEADER_ROW_Y, ARDUINO_SHIELD_MOUNTING_HOLE_DIAMETER, ARDUINO_SHIELD_MOUNTING_HOLE_POSITIONS, ArduinoShieldAnalogHeader, ArduinoShieldClad, type ArduinoShieldCladProps, type ArduinoShieldCladViaPosition, ArduinoShieldDigital0To7Header, ArduinoShieldDigital8To13Header, ArduinoShieldIcspSocket, ArduinoShieldPowerHeader, BISCUIT_BOARD_HEIGHT, BISCUIT_BOARD_MOUNTING_HOLE_POSITIONS, BISCUIT_BOARD_VIA_POSITIONS, BISCUIT_BOARD_VIA_ZONES, BISCUIT_BOARD_WIDTH, BOOSTERPACK_CLAD_HEIGHT, BOOSTERPACK_CLAD_MOUNTING_HOLE_VIA_CLEARANCE, BOOSTERPACK_CLAD_PLACEMENT_ZONES, BOOSTERPACK_CLAD_VIA_CANDIDATE_ZONES, BOOSTERPACK_CLAD_VIA_EXCLUSION_ZONES, BOOSTERPACK_CLAD_VIA_OUTER_DIAMETER, BOOSTERPACK_CLAD_VIA_PITCH, BOOSTERPACK_CLAD_VIA_POSITIONS, BOOSTERPACK_CLAD_WIDTH, BOOSTERPACK_CORNER_VERTICAL_ARM_INNER_Y, BOOSTERPACK_EDGE_BAND_CENTER_GAP, BOOSTERPACK_EDGE_BAND_OUTER_X, BOOSTERPACK_EDGE_HEADER_CENTER_X, BOOSTERPACK_EDGE_HEADER_PIN_COUNT, BOOSTERPACK_HEADER_CENTER_X, BOOSTERPACK_HEADER_CENTER_Y, BOOSTERPACK_HEADER_PITCH, BOOSTERPACK_MIDDLE_VIA_CLUSTER_CENTER_X, BOOSTERPACK_MIDDLE_VIA_CLUSTER_HEIGHT, BOOSTERPACK_MIDDLE_VIA_CLUSTER_WIDTH, BREADBOARD_CLAD_HEIGHT, BREADBOARD_CLAD_VIA_HOLE_DIAMETER, BREADBOARD_CLAD_VIA_PAD_DIAMETER, BREADBOARD_CLAD_VIA_PITCH, BREADBOARD_CLAD_VIA_POSITIONS, BREADBOARD_CLAD_VIA_ROW_YS, BREADBOARD_CLAD_WIDTH, BREADBOARD_COLUMN_COUNT, BREADBOARD_COLUMN_XS, BREADBOARD_HEADER_HOLE_DIAMETER, BREADBOARD_HEADER_PAD_DIAMETER, BREADBOARD_HEADER_PITCH, BREADBOARD_MOUNTING_HOLE_DIAMETER, BREADBOARD_OUTER_VERTICAL_VIA_YS, BREADBOARD_OUTER_VIA_COLUMN_XS, BREADBOARD_OUTER_VIA_ROW_YS, BREADBOARD_POWER_HEADER_POSITIONS, BREADBOARD_POWER_RAILS, BREADBOARD_TERMINAL_HEADER_POSITIONS, BREADBOARD_TERMINAL_ROW_LABELS, BREADBOARD_TERMINAL_ROW_YS, BiscuitBoard, type BiscuitBoardAutorouterOptions, type BiscuitBoardProps, type BiscuitBoardViaPosition, BoosterPackClad, type BoosterPackCladPlacementZone, type BoosterPackCladProps, type BoosterPackCladViaPosition, BoosterPackEdgePinHeader, BoosterPackLeftHeader, BoosterPackRightHeader, BreadboardClad, type BreadboardCladProps, type BreadboardCladViaPosition, type BreadboardHeaderPosition, BreadboardPowerHeader, type BreadboardPowerRailId, BreadboardTerminalHeaders, type BreadboardTerminalRowLabel, CLAD_40X40_EDGE_MOUNTING_HOLE_INSET, CLAD_40X40_HEIGHT, CLAD_40X40_MOUNTING_HOLE_DIAMETER, CLAD_40X40_MOUNTING_HOLE_POSITIONS, CLAD_40X40_VIA_HOLE_DIAMETER, CLAD_40X40_VIA_PAD_DIAMETER, CLAD_40X40_VIA_POSITIONS, CLAD_40X40_VIA_RING_HALF_SIZES, CLAD_40X40_VIA_SPACING, CLAD_40X40_WIDTH, Clad40x40, type Clad40x40Props, FEATHER_CLAD_HEIGHT, FEATHER_CLAD_VIA_HOLE_DIAMETER, FEATHER_CLAD_VIA_PAD_DIAMETER, FEATHER_CLAD_VIA_POSITIONS, FEATHER_CLAD_VIA_SPACING, FEATHER_CLAD_WIDTH, FEATHER_HEADER_HOLE_DIAMETER, FEATHER_HEADER_PAD_DIAMETER, FEATHER_HEADER_PITCH, FEATHER_HEADER_POSITIONS, FEATHER_HEADER_ROW_SPACING, FEATHER_MOUNTING_HOLE_DIAMETER, FEATHER_MOUNTING_HOLE_POSITIONS, FEATHER_PIN_LABELS, FEATHER_PIN_NAMES, FeatherCladWithPinHeaders, type FeatherCladWithPinHeadersProps, FeatherPinHeaders, type PrefabricatedViaAutorouterConfig, XIAO_CLAD_HEIGHT, XIAO_CLAD_VIA_HOLE_DIAMETER, XIAO_CLAD_VIA_PAD_DIAMETER, XIAO_CLAD_VIA_POSITIONS, XIAO_CLAD_VIA_SPACING, XIAO_CLAD_WIDTH, XIAO_HEADER_HOLE_DIAMETER, XIAO_HEADER_PAD_DIAMETER, XIAO_HEADER_PITCH, XIAO_HEADER_POSITIONS, XIAO_HEADER_ROW_SPACING, XIAO_PERFORATED_HEADER_PAD_HEIGHT, XIAO_PERFORATED_HEADER_PAD_WIDTH, XIAO_PERFORATION_HOLE_DIAMETER, XIAO_PERFORATION_POSITIONS, XIAO_PIN_LABELS, XIAO_PIN_NAMES, XiaoCladLayout, type XiaoCladLayoutProps, XiaoCladWithPerforatedPinHeaders, type XiaoCladWithPerforatedPinHeadersProps, XiaoCladWithPinHeaders, type XiaoCladWithPinHeadersProps, XiaoPerforatedPinHeaders, XiaoPinHeaders, createBiscuitBoardAutorouter, createPrefabricatedViaAutorouter };
737
+ export { ARDUINO_SHIELD_CLAD_HEIGHT, ARDUINO_SHIELD_CLAD_VIA_CANDIDATE_ZONES, ARDUINO_SHIELD_CLAD_VIA_HOLE_DIAMETER, ARDUINO_SHIELD_CLAD_VIA_OUTER_DIAMETER, ARDUINO_SHIELD_CLAD_VIA_POSITIONS, ARDUINO_SHIELD_CLAD_VIA_SPACING, ARDUINO_SHIELD_CLAD_WIDTH, ARDUINO_SHIELD_CONNECTOR_OFFSET_X, ARDUINO_SHIELD_HEADER_PITCH, ARDUINO_SHIELD_HEADER_PLACEMENTS, ARDUINO_SHIELD_HEADER_ROW_Y, ARDUINO_SHIELD_MOUNTING_HOLE_DIAMETER, ARDUINO_SHIELD_MOUNTING_HOLE_POSITIONS, ArduinoShieldAnalogHeader, ArduinoShieldClad, type ArduinoShieldCladProps, type ArduinoShieldCladViaPosition, ArduinoShieldDigital0To7Header, ArduinoShieldDigital8To13Header, ArduinoShieldIcspSocket, ArduinoShieldPowerHeader, BISCUIT_BOARD_HEIGHT, BISCUIT_BOARD_MOUNTING_HOLE_POSITIONS, BISCUIT_BOARD_VIA_POSITIONS, BISCUIT_BOARD_VIA_ZONES, BISCUIT_BOARD_WIDTH, BOOSTERPACK_CLAD_HEIGHT, BOOSTERPACK_CLAD_MOUNTING_HOLE_VIA_CLEARANCE, BOOSTERPACK_CLAD_PLACEMENT_ZONES, BOOSTERPACK_CLAD_VIA_CANDIDATE_ZONES, BOOSTERPACK_CLAD_VIA_EXCLUSION_ZONES, BOOSTERPACK_CLAD_VIA_OUTER_DIAMETER, BOOSTERPACK_CLAD_VIA_PITCH, BOOSTERPACK_CLAD_VIA_POSITIONS, BOOSTERPACK_CLAD_WIDTH, BOOSTERPACK_CORNER_VERTICAL_ARM_INNER_Y, BOOSTERPACK_EDGE_BAND_CENTER_GAP, BOOSTERPACK_EDGE_BAND_OUTER_X, BOOSTERPACK_EDGE_HEADER_CENTER_X, BOOSTERPACK_EDGE_HEADER_PIN_COUNT, BOOSTERPACK_HEADER_CENTER_X, BOOSTERPACK_HEADER_CENTER_Y, BOOSTERPACK_HEADER_PITCH, BOOSTERPACK_MIDDLE_VIA_CLUSTER_CENTER_X, BOOSTERPACK_MIDDLE_VIA_CLUSTER_HEIGHT, BOOSTERPACK_MIDDLE_VIA_CLUSTER_WIDTH, BREADBOARD_CLAD_HEIGHT, BREADBOARD_CLAD_VIA_HOLE_DIAMETER, BREADBOARD_CLAD_VIA_PAD_DIAMETER, BREADBOARD_CLAD_VIA_PITCH, BREADBOARD_CLAD_VIA_POSITIONS, BREADBOARD_CLAD_VIA_ROW_YS, BREADBOARD_CLAD_WIDTH, BREADBOARD_COLUMN_COUNT, BREADBOARD_COLUMN_XS, BREADBOARD_CORNER_VIA_ARM_WIDTH, BREADBOARD_CORNER_VIA_POSITIONS, BREADBOARD_CORNER_VIA_SPACING, BREADBOARD_CORNER_VIA_X_INNER_OFFSET, BREADBOARD_CORNER_VIA_X_OUTER_OFFSET, BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT, BREADBOARD_CORNER_VIA_Y_INNER_OFFSET, BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET, BREADBOARD_HEADER_HOLE_DIAMETER, BREADBOARD_HEADER_PAD_DIAMETER, BREADBOARD_HEADER_PITCH, BREADBOARD_MOUNTING_HOLE_DIAMETER, BREADBOARD_TERMINAL_HEADER_POSITIONS, BREADBOARD_TERMINAL_ROW_LABELS, BREADBOARD_TERMINAL_ROW_YS, BiscuitBoard, type BiscuitBoardAutorouterOptions, type BiscuitBoardProps, type BiscuitBoardViaPosition, BoosterPackClad, type BoosterPackCladPlacementZone, type BoosterPackCladProps, type BoosterPackCladViaPosition, BoosterPackEdgePinHeader, BoosterPackLeftHeader, BoosterPackRightHeader, BreadboardClad, type BreadboardCladProps, type BreadboardCladViaPosition, type BreadboardHeaderPosition, BreadboardTerminalHeaders, type BreadboardTerminalRowLabel, CLAD_40X40_EDGE_MOUNTING_HOLE_INSET, CLAD_40X40_HEIGHT, CLAD_40X40_MOUNTING_HOLE_DIAMETER, CLAD_40X40_MOUNTING_HOLE_POSITIONS, CLAD_40X40_VIA_HOLE_DIAMETER, CLAD_40X40_VIA_PAD_DIAMETER, CLAD_40X40_VIA_POSITIONS, CLAD_40X40_VIA_RING_HALF_SIZES, CLAD_40X40_VIA_SPACING, CLAD_40X40_WIDTH, Clad40x40, type Clad40x40Props, FEATHER_CLAD_HEIGHT, FEATHER_CLAD_VIA_HOLE_DIAMETER, FEATHER_CLAD_VIA_PAD_DIAMETER, FEATHER_CLAD_VIA_POSITIONS, FEATHER_CLAD_VIA_SPACING, FEATHER_CLAD_WIDTH, FEATHER_HEADER_HOLE_DIAMETER, FEATHER_HEADER_PAD_DIAMETER, FEATHER_HEADER_PITCH, FEATHER_HEADER_POSITIONS, FEATHER_HEADER_ROW_SPACING, FEATHER_MOUNTING_HOLE_DIAMETER, FEATHER_MOUNTING_HOLE_POSITIONS, FEATHER_PIN_LABELS, FEATHER_PIN_NAMES, FeatherCladWithPinHeaders, type FeatherCladWithPinHeadersProps, FeatherPinHeaders, type PrefabricatedViaAutorouterConfig, XIAO_CLAD_HEIGHT, XIAO_CLAD_VIA_HOLE_DIAMETER, XIAO_CLAD_VIA_PAD_DIAMETER, XIAO_CLAD_VIA_POSITIONS, XIAO_CLAD_VIA_SPACING, XIAO_CLAD_WIDTH, XIAO_HEADER_HOLE_DIAMETER, XIAO_HEADER_PAD_DIAMETER, XIAO_HEADER_PITCH, XIAO_HEADER_POSITIONS, XIAO_HEADER_ROW_SPACING, XIAO_PERFORATED_HEADER_PAD_HEIGHT, XIAO_PERFORATED_HEADER_PAD_WIDTH, XIAO_PERFORATION_HOLE_DIAMETER, XIAO_PERFORATION_POSITIONS, XIAO_PIN_LABELS, XIAO_PIN_NAMES, XiaoCladLayout, type XiaoCladLayoutProps, XiaoCladWithPerforatedPinHeaders, type XiaoCladWithPerforatedPinHeadersProps, XiaoCladWithPinHeaders, type XiaoCladWithPinHeadersProps, XiaoPerforatedPinHeaders, XiaoPinHeaders, createBiscuitBoardAutorouter, createPrefabricatedViaAutorouter };
package/dist/npm.js CHANGED
@@ -15450,8 +15450,13 @@ var BREADBOARD_CLAD_VIA_ROW_YS = [
15450
15450
  BREADBOARD_HEADER_PITCH / 2,
15451
15451
  16.51
15452
15452
  ];
15453
- var BREADBOARD_OUTER_VIA_ROW_YS = [-24.13, 24.13];
15454
- var BREADBOARD_OUTER_VIA_COLUMN_XS = [-27.94, 27.94];
15453
+ var BREADBOARD_CORNER_VIA_SPACING = 1.3;
15454
+ var BREADBOARD_CORNER_VIA_ARM_WIDTH = 1.3;
15455
+ var BREADBOARD_CORNER_VIA_X_INNER_OFFSET = 27;
15456
+ var BREADBOARD_CORNER_VIA_X_OUTER_OFFSET = 32.2;
15457
+ var BREADBOARD_CORNER_VIA_Y_INNER_OFFSET = 21;
15458
+ var BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET = 26.2;
15459
+ var BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT = 3.9;
15455
15460
  var BREADBOARD_MOUNTING_HOLE_DIAMETER = 2.2;
15456
15461
  var BREADBOARD_CLAD_EDGE_CLEARANCE = 0.2;
15457
15462
  var BREADBOARD_CLAD_EDGE_CLEARANCE_VALIDATION_TOLERANCE = 1e-3;
@@ -15469,16 +15474,18 @@ var BREADBOARD_TERMINAL_ROW_LABELS = [
15469
15474
  "J"
15470
15475
  ];
15471
15476
  var roundCoordinate3 = (value) => Math.round(value * 1e6) / 1e6;
15477
+ var createPitchedRange = (start, end) => Array.from(
15478
+ {
15479
+ length: Math.round((end - start) / BREADBOARD_CORNER_VIA_SPACING) + 1
15480
+ },
15481
+ (_, index) => roundCoordinate3(start + index * BREADBOARD_CORNER_VIA_SPACING)
15482
+ );
15472
15483
  var BREADBOARD_COLUMN_XS = Array.from(
15473
15484
  { length: BREADBOARD_COLUMN_COUNT },
15474
15485
  (_, index) => roundCoordinate3(
15475
15486
  (index - (BREADBOARD_COLUMN_COUNT - 1) / 2) * BREADBOARD_HEADER_PITCH
15476
15487
  )
15477
15488
  );
15478
- var BREADBOARD_OUTER_VERTICAL_VIA_YS = Array.from(
15479
- { length: 18 },
15480
- (_, index) => roundCoordinate3(-21.59 + index * BREADBOARD_CLAD_VIA_PITCH)
15481
- );
15482
15489
  var BREADBOARD_TERMINAL_ROW_YS = Object.fromEntries(
15483
15490
  BREADBOARD_TERMINAL_ROW_LABELS.map((label, index) => {
15484
15491
  const bankIndex = index < 5 ? index : index - 5;
@@ -15495,32 +15502,61 @@ var BREADBOARD_TERMINAL_HEADER_POSITIONS = BREADBOARD_TERMINAL_ROW_LABELS.flatMa
15495
15502
  y: BREADBOARD_TERMINAL_ROW_YS[row]
15496
15503
  }))
15497
15504
  );
15498
- var BREADBOARD_POWER_RAILS = [
15499
- { id: "topPositive", label: "+", y: 21.59 },
15500
- { id: "topNegative", label: "-", y: 19.05 },
15501
- { id: "bottomPositive", label: "+", y: -19.05 },
15502
- { id: "bottomNegative", label: "-", y: -21.59 }
15503
- ];
15504
- var BREADBOARD_POWER_HEADER_POSITIONS = BREADBOARD_POWER_RAILS.flatMap(
15505
- (rail) => BREADBOARD_COLUMN_XS.map((x, columnIndex) => ({
15506
- rail: rail.id,
15507
- pin: columnIndex + 1,
15508
- label: `${rail.id}${columnIndex + 1}`,
15509
- column: columnIndex + 1,
15510
- x,
15511
- y: rail.y
15512
- }))
15505
+ var cornerViaAxisX = createPitchedRange(
15506
+ BREADBOARD_CORNER_VIA_X_INNER_OFFSET,
15507
+ BREADBOARD_CORNER_VIA_X_OUTER_OFFSET
15508
+ );
15509
+ var cornerViaAxisY = createPitchedRange(
15510
+ BREADBOARD_CORNER_VIA_Y_INNER_OFFSET,
15511
+ BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET
15512
+ );
15513
+ var cornerViaArmAxisX = createPitchedRange(
15514
+ BREADBOARD_CORNER_VIA_X_INNER_OFFSET,
15515
+ BREADBOARD_CORNER_VIA_X_INNER_OFFSET + BREADBOARD_CORNER_VIA_ARM_WIDTH
15516
+ );
15517
+ var cornerViaArmAxisY = createPitchedRange(
15518
+ BREADBOARD_CORNER_VIA_Y_INNER_OFFSET,
15519
+ BREADBOARD_CORNER_VIA_Y_INNER_OFFSET + BREADBOARD_CORNER_VIA_ARM_WIDTH
15520
+ );
15521
+ var createCornerViaPositions = (xSign, ySign, xOutwardShift = 0) => {
15522
+ const shiftedCornerViaAxisX = cornerViaAxisX.map(
15523
+ (x) => roundCoordinate3(x + xOutwardShift)
15524
+ );
15525
+ const shiftedCornerViaArmAxisX = cornerViaArmAxisX.map(
15526
+ (x) => roundCoordinate3(x + xOutwardShift)
15527
+ );
15528
+ const horizontalArm = shiftedCornerViaAxisX.flatMap(
15529
+ (x) => cornerViaArmAxisY.map((y) => ({ x: x * xSign, y: y * ySign }))
15530
+ );
15531
+ const verticalArm = shiftedCornerViaArmAxisX.flatMap(
15532
+ (x) => cornerViaAxisY.map((y) => ({ x: x * xSign, y: y * ySign }))
15533
+ );
15534
+ return Array.from(
15535
+ new Map(
15536
+ [...horizontalArm, ...verticalArm].map((point) => [
15537
+ `${point.x},${point.y}`,
15538
+ point
15539
+ ])
15540
+ ).values()
15541
+ );
15542
+ };
15543
+ var BREADBOARD_CORNER_VIA_POSITIONS = [
15544
+ [-1, -1],
15545
+ [-1, 1],
15546
+ [1, -1],
15547
+ [1, 1]
15548
+ ].flatMap(
15549
+ ([xSign, ySign]) => createCornerViaPositions(
15550
+ xSign,
15551
+ ySign,
15552
+ xSign === -1 || ySign === -1 ? BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT : 0
15553
+ )
15513
15554
  );
15514
15555
  var BREADBOARD_CLAD_VIA_POSITIONS = [
15515
15556
  ...BREADBOARD_CLAD_VIA_ROW_YS.flatMap(
15516
15557
  (y) => BREADBOARD_COLUMN_XS.map((x) => ({ x, y }))
15517
15558
  ),
15518
- ...BREADBOARD_OUTER_VIA_ROW_YS.flatMap(
15519
- (y) => BREADBOARD_COLUMN_XS.map((x) => ({ x, y }))
15520
- ),
15521
- ...BREADBOARD_OUTER_VIA_COLUMN_XS.flatMap(
15522
- (x) => BREADBOARD_OUTER_VERTICAL_VIA_YS.map((y) => ({ x, y }))
15523
- )
15559
+ ...BREADBOARD_CORNER_VIA_POSITIONS
15524
15560
  ];
15525
15561
  var terminalPinLabels = Object.fromEntries(
15526
15562
  BREADBOARD_TERMINAL_HEADER_POSITIONS.map((position) => [
@@ -15528,16 +15564,9 @@ var terminalPinLabels = Object.fromEntries(
15528
15564
  [position.label]
15529
15565
  ])
15530
15566
  );
15531
- var powerPinLabels = Object.fromEntries(
15532
- BREADBOARD_COLUMN_XS.map((_, index) => [
15533
- `pin${index + 1}`,
15534
- [`COL${index + 1}`]
15535
- ])
15536
- );
15537
15567
  var terminalPinNames = BREADBOARD_TERMINAL_HEADER_POSITIONS.map(
15538
15568
  (position) => `pin${position.pin}`
15539
15569
  );
15540
- var powerPinNames = BREADBOARD_COLUMN_XS.map((_, index) => `pin${index + 1}`);
15541
15570
  var BreadboardTerminalHeaderFootprint = () => /* @__PURE__ */ jsx4("footprint", { insertionDirection: "from_above", children: BREADBOARD_TERMINAL_HEADER_POSITIONS.map((position) => /* @__PURE__ */ jsx4(Fragment4, { children: position.pin === 1 ? /* @__PURE__ */ jsx4(
15542
15571
  "platedhole",
15543
15572
  {
@@ -15560,26 +15589,6 @@ var BreadboardTerminalHeaderFootprint = () => /* @__PURE__ */ jsx4("footprint",
15560
15589
  pcbY: position.y
15561
15590
  }
15562
15591
  ) }, `terminal-${position.label}`)) });
15563
- var BreadboardPowerHeaderFootprint = () => /* @__PURE__ */ jsx4("footprint", { insertionDirection: "from_above", children: BREADBOARD_COLUMN_XS.map((x, index) => /* @__PURE__ */ jsx4(Fragment4, { children: index === 0 ? /* @__PURE__ */ jsx4(
15564
- "platedhole",
15565
- {
15566
- portHints: [`pin${index + 1}`],
15567
- shape: "circular_hole_with_rect_pad",
15568
- holeDiameter: `${BREADBOARD_HEADER_HOLE_DIAMETER}mm`,
15569
- rectPadWidth: `${BREADBOARD_HEADER_PAD_DIAMETER}mm`,
15570
- rectPadHeight: `${BREADBOARD_HEADER_PAD_DIAMETER}mm`,
15571
- pcbX: x
15572
- }
15573
- ) : /* @__PURE__ */ jsx4(
15574
- "platedhole",
15575
- {
15576
- portHints: [`pin${index + 1}`],
15577
- shape: "circle",
15578
- holeDiameter: `${BREADBOARD_HEADER_HOLE_DIAMETER}mm`,
15579
- outerDiameter: `${BREADBOARD_HEADER_PAD_DIAMETER}mm`,
15580
- pcbX: x
15581
- }
15582
- ) }, `power-pin-${index + 1}`)) });
15583
15592
  var BreadboardTerminalHeaders = (props) => /* @__PURE__ */ jsx4(
15584
15593
  "connector",
15585
15594
  {
@@ -15590,20 +15599,6 @@ var BreadboardTerminalHeaders = (props) => /* @__PURE__ */ jsx4(
15590
15599
  ...props
15591
15600
  }
15592
15601
  );
15593
- var BreadboardPowerHeader = ({
15594
- rail,
15595
- ...props
15596
- }) => /* @__PURE__ */ jsx4(
15597
- "connector",
15598
- {
15599
- pinLabels: powerPinLabels,
15600
- manufacturerPartNumber: "GENERIC-BREADBOARD-1X21-FEMALE-2.54MM",
15601
- footprint: /* @__PURE__ */ jsx4(BreadboardPowerHeaderFootprint, {}),
15602
- noSchematicRepresentation: true,
15603
- pcbY: BREADBOARD_POWER_RAILS.find((candidate) => candidate.id === rail).y,
15604
- ...props
15605
- }
15606
- );
15607
15602
  var BreadboardClad = ({
15608
15603
  children,
15609
15604
  autorouter,
@@ -15652,14 +15647,6 @@ var BreadboardClad = ({
15652
15647
  noConnect: headerNoConnects?.terminals ?? (markHeadersNoConnect ? terminalPinNames : void 0)
15653
15648
  }
15654
15649
  ),
15655
- BREADBOARD_POWER_RAILS.map((rail) => /* @__PURE__ */ jsx4(Fragment4, { children: /* @__PURE__ */ jsx4(
15656
- BreadboardPowerHeader,
15657
- {
15658
- rail: rail.id,
15659
- name: `J_${rail.id.replace(/([A-Z])/g, "_$1").toUpperCase()}`,
15660
- noConnect: headerNoConnects?.[rail.id] ?? (markHeadersNoConnect ? powerPinNames : void 0)
15661
- }
15662
- ) }, rail.id)),
15663
15650
  [1, 5, 10, 15, 20, BREADBOARD_COLUMN_COUNT].map((column) => /* @__PURE__ */ jsx4(Fragment4, { children: /* @__PURE__ */ jsx4(
15664
15651
  "silkscreentext",
15665
15652
  {
@@ -16360,15 +16347,18 @@ export {
16360
16347
  BREADBOARD_CLAD_WIDTH,
16361
16348
  BREADBOARD_COLUMN_COUNT,
16362
16349
  BREADBOARD_COLUMN_XS,
16350
+ BREADBOARD_CORNER_VIA_ARM_WIDTH,
16351
+ BREADBOARD_CORNER_VIA_POSITIONS,
16352
+ BREADBOARD_CORNER_VIA_SPACING,
16353
+ BREADBOARD_CORNER_VIA_X_INNER_OFFSET,
16354
+ BREADBOARD_CORNER_VIA_X_OUTER_OFFSET,
16355
+ BREADBOARD_CORNER_VIA_X_OUTWARD_SHIFT,
16356
+ BREADBOARD_CORNER_VIA_Y_INNER_OFFSET,
16357
+ BREADBOARD_CORNER_VIA_Y_OUTER_OFFSET,
16363
16358
  BREADBOARD_HEADER_HOLE_DIAMETER,
16364
16359
  BREADBOARD_HEADER_PAD_DIAMETER,
16365
16360
  BREADBOARD_HEADER_PITCH,
16366
16361
  BREADBOARD_MOUNTING_HOLE_DIAMETER,
16367
- BREADBOARD_OUTER_VERTICAL_VIA_YS,
16368
- BREADBOARD_OUTER_VIA_COLUMN_XS,
16369
- BREADBOARD_OUTER_VIA_ROW_YS,
16370
- BREADBOARD_POWER_HEADER_POSITIONS,
16371
- BREADBOARD_POWER_RAILS,
16372
16362
  BREADBOARD_TERMINAL_HEADER_POSITIONS,
16373
16363
  BREADBOARD_TERMINAL_ROW_LABELS,
16374
16364
  BREADBOARD_TERMINAL_ROW_YS,
@@ -16378,7 +16368,6 @@ export {
16378
16368
  BoosterPackLeftHeader,
16379
16369
  BoosterPackRightHeader,
16380
16370
  BreadboardClad,
16381
- BreadboardPowerHeader,
16382
16371
  BreadboardTerminalHeaders,
16383
16372
  CLAD_40X40_EDGE_MOUNTING_HOLE_INSET,
16384
16373
  CLAD_40X40_HEIGHT,