biscuitboard 1.0.1

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 ADDED
@@ -0,0 +1,769 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+ import { AutorouterConfig, ConnectorProps, AutorouterProp } from '@tscircuit/props';
4
+ import { SimpleRouteJson } from '@tscircuit/core';
5
+
6
+ interface BiscuitBoardAutorouterOptions {
7
+ routeOrder?: "adaptive" | "longest_first" | "shortest_first" | "signal_longest_first" | "input";
8
+ gridPitch?: number;
9
+ gridClearance?: number;
10
+ respectObstacleRotationInGraph?: boolean;
11
+ viaTransitionCost?: number;
12
+ ripCost?: number;
13
+ crossingCost?: number;
14
+ historyIncrement?: number;
15
+ maxBlockersPerSearch?: number;
16
+ maxRipsPerRoute?: number;
17
+ maxTotalRips?: number;
18
+ maxSearchStates?: number;
19
+ expansionsPerStep?: number;
20
+ expandTraces?: boolean;
21
+ }
22
+ declare const createBiscuitBoardAutorouter: (options?: BiscuitBoardAutorouterOptions) => AutorouterConfig;
23
+
24
+ declare const ARDUINO_SHIELD_CLAD_WIDTH = 75;
25
+ declare const ARDUINO_SHIELD_CLAD_HEIGHT = 55;
26
+ declare const ARDUINO_SHIELD_HEADER_PITCH = 2.54;
27
+ declare const ARDUINO_SHIELD_HEADER_ROW_Y = 24.13;
28
+ declare const ARDUINO_SHIELD_CONNECTOR_OFFSET_X: number;
29
+ declare const ARDUINO_SHIELD_HEADER_PLACEMENTS: {
30
+ readonly power: {
31
+ readonly x: number;
32
+ readonly y: -24.13;
33
+ readonly rotation: 0;
34
+ };
35
+ readonly analog: {
36
+ readonly x: number;
37
+ readonly y: -24.13;
38
+ readonly rotation: 0;
39
+ };
40
+ readonly digital0To7: {
41
+ readonly x: number;
42
+ readonly y: 24.13;
43
+ readonly rotation: 180;
44
+ };
45
+ readonly digital8To13: {
46
+ readonly x: number;
47
+ readonly y: 24.13;
48
+ readonly rotation: 180;
49
+ };
50
+ readonly icsp: {
51
+ readonly x: number;
52
+ readonly y: 1.27;
53
+ readonly rotation: 270;
54
+ };
55
+ };
56
+ /** The original five BiscuitBoard mounting-hole centers. */
57
+ declare const ARDUINO_SHIELD_MOUNTING_HOLE_POSITIONS: readonly [{
58
+ readonly x: number;
59
+ readonly y: number;
60
+ }, {
61
+ readonly x: number;
62
+ readonly y: number;
63
+ }, {
64
+ readonly x: number;
65
+ readonly y: number;
66
+ }, {
67
+ readonly x: number;
68
+ readonly y: number;
69
+ }, {
70
+ readonly x: number;
71
+ readonly y: number;
72
+ }];
73
+ declare const ARDUINO_SHIELD_MOUNTING_HOLE_DIAMETER = 2.2;
74
+ declare const ARDUINO_SHIELD_CLAD_VIA_HOLE_DIAMETER = 0.3;
75
+ declare const ARDUINO_SHIELD_CLAD_VIA_OUTER_DIAMETER = 0.6;
76
+ declare const ARDUINO_SHIELD_CLAD_VIA_SPACING = 1.3;
77
+ interface ArduinoShieldCladViaPosition {
78
+ x: number;
79
+ y: number;
80
+ }
81
+ /**
82
+ * Clustered fixed-via field arranged around the UNO shield connectors. The
83
+ * main header rows remain clear and the right side is split around the two UNO
84
+ * mounting/ICSP regions.
85
+ */
86
+ declare const ARDUINO_SHIELD_CLAD_VIA_CANDIDATE_ZONES: readonly [{
87
+ readonly minX: -33.5;
88
+ readonly maxX: -25.5;
89
+ readonly minY: 17.5;
90
+ readonly maxY: 21.5;
91
+ readonly spacing: 1.3;
92
+ }, {
93
+ readonly minX: -33.5;
94
+ readonly maxX: -25.5;
95
+ readonly minY: -21.5;
96
+ readonly maxY: -17.5;
97
+ readonly spacing: 1.3;
98
+ }, {
99
+ readonly minX: -21.5;
100
+ readonly maxX: -13.5;
101
+ readonly minY: 13.5;
102
+ readonly maxY: 17.5;
103
+ readonly spacing: 1.3;
104
+ }, {
105
+ readonly minX: -21.5;
106
+ readonly maxX: -13.5;
107
+ readonly minY: -17.5;
108
+ readonly maxY: -13.5;
109
+ readonly spacing: 1.3;
110
+ }, {
111
+ readonly minX: -19;
112
+ readonly maxX: -3;
113
+ readonly minY: -6;
114
+ readonly maxY: 6;
115
+ readonly spacing: 1.3;
116
+ }, {
117
+ readonly minX: 34.5;
118
+ readonly maxX: 34.5;
119
+ readonly minY: -19.5;
120
+ readonly maxY: -7.5;
121
+ readonly spacing: 1.3;
122
+ }, {
123
+ readonly minX: 34.5;
124
+ readonly maxX: 34.5;
125
+ readonly minY: 7.5;
126
+ readonly maxY: 19.5;
127
+ readonly spacing: 1.3;
128
+ }];
129
+ declare const ARDUINO_SHIELD_CLAD_VIA_POSITIONS: ArduinoShieldCladViaPosition[];
130
+ declare const ArduinoShieldPowerHeader: (props: ConnectorProps) => react.JSX.Element;
131
+ declare const ArduinoShieldAnalogHeader: (props: ConnectorProps) => react.JSX.Element;
132
+ declare const ArduinoShieldDigital0To7Header: (props: ConnectorProps) => react.JSX.Element;
133
+ declare const ArduinoShieldDigital8To13Header: (props: ConnectorProps) => react.JSX.Element;
134
+ declare const ArduinoShieldIcspSocket: (props: ConnectorProps) => react.JSX.Element;
135
+ interface ArduinoShieldCladProps {
136
+ children?: ReactNode;
137
+ autorouter?: AutorouterProp;
138
+ autorouterOptions?: BiscuitBoardAutorouterOptions;
139
+ minTraceWidth?: number;
140
+ nominalTraceWidth?: number;
141
+ routingDisabled?: boolean;
142
+ /** Marks every shield header pin NC for bare-template previews only. */
143
+ markHeadersNoConnect?: boolean;
144
+ /** Overrides the no-connect pins for routed shield applications. */
145
+ headerNoConnects?: {
146
+ power?: string[];
147
+ analog?: string[];
148
+ digital0To7?: string[];
149
+ digital8To13?: string[];
150
+ icsp?: string[];
151
+ };
152
+ }
153
+ /** A BiscuitBoard-sized clad with the official Arduino UNO R3 connector grid. */
154
+ declare const ArduinoShieldClad: ({ children, autorouter, autorouterOptions, minTraceWidth, nominalTraceWidth, routingDisabled, markHeadersNoConnect, headerNoConnects, }: ArduinoShieldCladProps) => react.JSX.Element;
155
+
156
+ declare const BISCUIT_BOARD_WIDTH = 75;
157
+ declare const BISCUIT_BOARD_HEIGHT = 55;
158
+ interface BiscuitBoardViaPosition {
159
+ x: number;
160
+ y: number;
161
+ }
162
+ declare const BISCUIT_BOARD_VIA_ZONES: readonly [{
163
+ readonly minX: -33.5;
164
+ readonly maxX: -21.5;
165
+ readonly minY: -23.5;
166
+ readonly maxY: -15.5;
167
+ readonly spacing: 4;
168
+ }, {
169
+ readonly minX: -33.5;
170
+ readonly maxX: -21.5;
171
+ readonly minY: 15.5;
172
+ readonly maxY: 23.5;
173
+ readonly spacing: 4;
174
+ }, {
175
+ readonly minX: 10;
176
+ readonly maxX: 27.5;
177
+ readonly minY: 17.5;
178
+ readonly maxY: 25.5;
179
+ readonly spacing: 4;
180
+ }, {
181
+ readonly minX: 30.5;
182
+ readonly maxX: 34.5;
183
+ readonly minY: -22.5;
184
+ readonly maxY: 22.5;
185
+ readonly spacing: 4;
186
+ }, {
187
+ readonly minX: -20;
188
+ readonly maxX: 0;
189
+ readonly minY: -8;
190
+ readonly maxY: 8;
191
+ readonly spacing: 4;
192
+ }];
193
+ declare const BISCUIT_BOARD_VIA_POSITIONS: BiscuitBoardViaPosition[];
194
+ declare const BISCUIT_BOARD_MOUNTING_HOLE_POSITIONS: readonly [{
195
+ readonly x: number;
196
+ readonly y: number;
197
+ }, {
198
+ readonly x: number;
199
+ readonly y: number;
200
+ }, {
201
+ readonly x: number;
202
+ readonly y: number;
203
+ }, {
204
+ readonly x: number;
205
+ readonly y: number;
206
+ }, {
207
+ readonly x: number;
208
+ readonly y: number;
209
+ }];
210
+ interface BiscuitBoardProps {
211
+ children?: ReactNode;
212
+ autorouter?: AutorouterProp;
213
+ autorouterOptions?: BiscuitBoardAutorouterOptions;
214
+ /** Enforced minimum trace width in millimeters. */
215
+ minTraceWidth?: number;
216
+ /** Preferred post-route trace width in millimeters. Defaults to 0.3 mm. */
217
+ nominalTraceWidth?: number;
218
+ routingDisabled?: boolean;
219
+ }
220
+ /**
221
+ * A prefabricated 75 mm x 55 mm copper-clad board with fixed through vias.
222
+ * Child components use ordinary tscircuit TSX; the default local autorouter
223
+ * can change layers only at the checked-in prefabricated via positions.
224
+ */
225
+ declare const BiscuitBoard: ({ children, autorouter, autorouterOptions, minTraceWidth, nominalTraceWidth, routingDisabled, }: BiscuitBoardProps) => react.JSX.Element;
226
+
227
+ declare const BOOSTERPACK_CLAD_WIDTH = 75;
228
+ declare const BOOSTERPACK_CLAD_HEIGHT = 55;
229
+ declare const BOOSTERPACK_HEADER_PITCH = 2.54;
230
+ declare const BOOSTERPACK_HEADER_CENTER_X = 21.59;
231
+ declare const BOOSTERPACK_HEADER_CENTER_Y = 1.27;
232
+ declare const BOOSTERPACK_CLAD_VIA_OUTER_DIAMETER = 0.6;
233
+ declare const BOOSTERPACK_CLAD_VIA_PITCH = 1.3;
234
+ declare const BOOSTERPACK_CLAD_MOUNTING_HOLE_VIA_CLEARANCE = 1;
235
+ declare const BOOSTERPACK_CORNER_VERTICAL_ARM_INNER_Y = 11.5;
236
+ declare const BOOSTERPACK_EDGE_HEADER_CENTER_X: number;
237
+ declare const BOOSTERPACK_EDGE_HEADER_PIN_COUNT: number;
238
+ declare const BOOSTERPACK_MIDDLE_VIA_CLUSTER_CENTER_X: number;
239
+ declare const BOOSTERPACK_MIDDLE_VIA_CLUSTER_WIDTH = 6.3;
240
+ declare const BOOSTERPACK_MIDDLE_VIA_CLUSTER_HEIGHT = 5.6;
241
+ declare const BOOSTERPACK_EDGE_BAND_OUTER_X: number;
242
+ declare const BOOSTERPACK_EDGE_BAND_CENTER_GAP: number;
243
+ interface BoosterPackCladViaPosition {
244
+ x: number;
245
+ y: number;
246
+ }
247
+ interface BoosterPackCladPlacementZone {
248
+ name: string;
249
+ purpose: "connector" | "chips-and-sensors" | "interface";
250
+ minX: number;
251
+ maxX: number;
252
+ minY: number;
253
+ maxY: number;
254
+ }
255
+ /**
256
+ * Four L-shaped corner fields keep the center and the middle of every board
257
+ * edge open for chips, sensors, controls, and connectors.
258
+ */
259
+ declare const BOOSTERPACK_CLAD_VIA_CANDIDATE_ZONES: readonly [{
260
+ readonly minX: number;
261
+ readonly maxX: number;
262
+ readonly minY: number;
263
+ readonly maxY: number;
264
+ readonly spacing: 1.3;
265
+ }, {
266
+ readonly minX: number;
267
+ readonly maxX: number;
268
+ readonly minY: 21.5;
269
+ readonly maxY: 25.5;
270
+ readonly spacing: 1.3;
271
+ readonly originX: number;
272
+ readonly originY: 21.5;
273
+ }, {
274
+ readonly minX: number;
275
+ readonly maxX: -31.5;
276
+ readonly minY: 11.5;
277
+ readonly maxY: 25.5;
278
+ readonly spacing: 1.3;
279
+ readonly originX: number;
280
+ readonly originY: 21.5;
281
+ }, {
282
+ readonly minX: number;
283
+ readonly maxX: number;
284
+ readonly minY: 21.5;
285
+ readonly maxY: 25.5;
286
+ readonly spacing: 1.3;
287
+ readonly originX: number;
288
+ readonly originY: 21.5;
289
+ }, {
290
+ readonly minX: 31.5;
291
+ readonly maxX: number;
292
+ readonly minY: 11.5;
293
+ readonly maxY: 25.5;
294
+ readonly spacing: 1.3;
295
+ readonly originX: number;
296
+ readonly originY: 21.5;
297
+ }, {
298
+ readonly minX: number;
299
+ readonly maxX: number;
300
+ readonly minY: -25.5;
301
+ readonly maxY: -21.5;
302
+ readonly spacing: 1.3;
303
+ readonly originX: number;
304
+ readonly originY: -21.5;
305
+ }, {
306
+ readonly minX: number;
307
+ readonly maxX: -31.5;
308
+ readonly minY: -25.5;
309
+ readonly maxY: number;
310
+ readonly spacing: 1.3;
311
+ readonly originX: number;
312
+ readonly originY: -21.5;
313
+ }, {
314
+ readonly minX: number;
315
+ readonly maxX: number;
316
+ readonly minY: -25.5;
317
+ readonly maxY: -21.5;
318
+ readonly spacing: 1.3;
319
+ readonly originX: number;
320
+ readonly originY: -21.5;
321
+ }, {
322
+ readonly minX: 31.5;
323
+ readonly maxX: number;
324
+ readonly minY: -25.5;
325
+ readonly maxY: number;
326
+ readonly spacing: 1.3;
327
+ readonly originX: number;
328
+ readonly originY: -21.5;
329
+ }];
330
+ /**
331
+ * Reusable placement bays kept clear of prefabricated via pads. The central
332
+ * bays cover controls, chips, sensors, debug, and power circuitry. Centered
333
+ * openings along every edge leave room for connectors whose bodies or cables
334
+ * must reach beyond the board outline.
335
+ */
336
+ declare const BOOSTERPACK_CLAD_PLACEMENT_ZONES: readonly [{
337
+ readonly name: "left-edge-pin-header";
338
+ readonly purpose: "connector";
339
+ readonly minX: number;
340
+ readonly maxX: number;
341
+ readonly minY: number;
342
+ readonly maxY: number;
343
+ }, {
344
+ readonly name: "left-launchpad-header";
345
+ readonly purpose: "connector";
346
+ readonly minX: -24.5;
347
+ readonly maxX: -18.5;
348
+ readonly minY: -12;
349
+ readonly maxY: 14.5;
350
+ }, {
351
+ readonly name: "right-launchpad-header";
352
+ readonly purpose: "connector";
353
+ readonly minX: 18.5;
354
+ readonly maxX: 24.5;
355
+ readonly minY: -12;
356
+ readonly maxY: 14.5;
357
+ }, {
358
+ readonly name: "upper-interface";
359
+ readonly purpose: "interface";
360
+ readonly minX: -17.5;
361
+ readonly maxX: 17.5;
362
+ readonly minY: 11.5;
363
+ readonly maxY: 19.5;
364
+ }, {
365
+ readonly name: "central-chips-and-sensors";
366
+ readonly purpose: "chips-and-sensors";
367
+ readonly minX: -7.5;
368
+ readonly maxX: 7.5;
369
+ readonly minY: -11.5;
370
+ readonly maxY: 11.5;
371
+ }, {
372
+ readonly name: "left-upper-interface";
373
+ readonly purpose: "interface";
374
+ readonly minX: -17.5;
375
+ readonly maxX: -7.5;
376
+ readonly minY: 4.75;
377
+ readonly maxY: 11.5;
378
+ }, {
379
+ readonly name: "left-lower-interface";
380
+ readonly purpose: "interface";
381
+ readonly minX: -17.5;
382
+ readonly maxX: -7.5;
383
+ readonly minY: -11.5;
384
+ readonly maxY: -4.75;
385
+ }, {
386
+ readonly name: "right-upper-interface";
387
+ readonly purpose: "interface";
388
+ readonly minX: 7.5;
389
+ readonly maxX: 17.5;
390
+ readonly minY: 4.75;
391
+ readonly maxY: 11.5;
392
+ }, {
393
+ readonly name: "right-lower-interface";
394
+ readonly purpose: "interface";
395
+ readonly minX: 7.5;
396
+ readonly maxX: 17.5;
397
+ readonly minY: -11.5;
398
+ readonly maxY: -4.75;
399
+ }, {
400
+ readonly name: "lower-interface";
401
+ readonly purpose: "interface";
402
+ readonly minX: -17.5;
403
+ readonly maxX: 17.5;
404
+ readonly minY: -19.5;
405
+ readonly maxY: -11.5;
406
+ }, {
407
+ readonly name: "upper-edge-connector";
408
+ readonly purpose: "connector";
409
+ readonly minX: -10.5;
410
+ readonly maxX: 10.5;
411
+ readonly minY: 20.5;
412
+ readonly maxY: 26.5;
413
+ }, {
414
+ readonly name: "lower-edge-connector";
415
+ readonly purpose: "connector";
416
+ readonly minX: -10.5;
417
+ readonly maxX: 10.5;
418
+ readonly minY: -26.5;
419
+ readonly maxY: -20.5;
420
+ }];
421
+ /** Keep vias clear of mounting-hole pads and the left-edge header body. */
422
+ declare const BOOSTERPACK_CLAD_VIA_EXCLUSION_ZONES: readonly [{
423
+ readonly minX: -36.7;
424
+ readonly maxX: -33.3;
425
+ readonly minY: 23.3;
426
+ readonly maxY: 26.7;
427
+ readonly spacing: 1.3;
428
+ }, {
429
+ readonly minX: -36.7;
430
+ readonly maxX: -33.3;
431
+ readonly minY: -26.7;
432
+ readonly maxY: -23.3;
433
+ readonly spacing: 1.3;
434
+ }, {
435
+ readonly minX: 33.3;
436
+ readonly maxX: 36.7;
437
+ readonly minY: 23.3;
438
+ readonly maxY: 26.7;
439
+ readonly spacing: 1.3;
440
+ }, {
441
+ readonly minX: 29.6;
442
+ readonly maxX: 32.4;
443
+ readonly minY: 23.6;
444
+ readonly maxY: 26.4;
445
+ readonly spacing: 1.3;
446
+ }, {
447
+ readonly minX: 33.3;
448
+ readonly maxX: 36.7;
449
+ readonly minY: -26.7;
450
+ readonly maxY: -23.3;
451
+ readonly spacing: 1.3;
452
+ }, {
453
+ readonly minX: number;
454
+ readonly maxX: number;
455
+ readonly minY: number;
456
+ readonly maxY: number;
457
+ readonly spacing: 1.3;
458
+ }];
459
+ declare const BOOSTERPACK_CLAD_VIA_POSITIONS: BoosterPackCladViaPosition[];
460
+ declare const BoosterPackLeftHeader: (props: ConnectorProps) => react.JSX.Element;
461
+ declare const BoosterPackRightHeader: (props: ConnectorProps) => react.JSX.Element;
462
+ declare const BoosterPackEdgePinHeader: (props: ConnectorProps) => react.JSX.Element;
463
+ interface BoosterPackCladProps {
464
+ children?: ReactNode;
465
+ autorouter?: AutorouterProp;
466
+ autorouterOptions?: BiscuitBoardAutorouterOptions;
467
+ minTraceWidth?: number;
468
+ nominalTraceWidth?: number;
469
+ routingDisabled?: boolean;
470
+ reservedAutorouterObstacles?: SimpleRouteJson["obstacles"];
471
+ }
472
+ /** A BiscuitBoard-sized clad with a TI 40-pin BoosterPack header pattern. */
473
+ declare const BoosterPackClad: ({ children, autorouter, autorouterOptions, minTraceWidth, nominalTraceWidth, routingDisabled, reservedAutorouterObstacles, }: BoosterPackCladProps) => react.JSX.Element;
474
+
475
+ declare const BREADBOARD_CLAD_WIDTH = 75;
476
+ declare const BREADBOARD_CLAD_HEIGHT = 55;
477
+ declare const BREADBOARD_HEADER_PITCH = 2.54;
478
+ declare const BREADBOARD_COLUMN_COUNT = 21;
479
+ declare const BREADBOARD_HEADER_HOLE_DIAMETER = 1;
480
+ declare const BREADBOARD_HEADER_PAD_DIAMETER = 1.7;
481
+ declare const BREADBOARD_CLAD_VIA_HOLE_DIAMETER = 0.3;
482
+ declare const BREADBOARD_CLAD_VIA_PAD_DIAMETER = 0.6;
483
+ declare const BREADBOARD_CLAD_VIA_PITCH = 2.54;
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];
487
+ declare const BREADBOARD_MOUNTING_HOLE_DIAMETER = 2.2;
488
+ declare const BREADBOARD_TERMINAL_ROW_LABELS: readonly ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J"];
489
+ type BreadboardTerminalRowLabel = (typeof BREADBOARD_TERMINAL_ROW_LABELS)[number];
490
+ interface BreadboardHeaderPosition {
491
+ pin: number;
492
+ label: string;
493
+ column: number;
494
+ x: number;
495
+ y: number;
496
+ }
497
+ interface BreadboardCladViaPosition {
498
+ x: number;
499
+ y: number;
500
+ }
501
+ declare const BREADBOARD_COLUMN_XS: number[];
502
+ declare const BREADBOARD_OUTER_VERTICAL_VIA_YS: number[];
503
+ declare const BREADBOARD_TERMINAL_ROW_YS: Record<BreadboardTerminalRowLabel, number>;
504
+ /** Individually routable A1-J21 sockets in a conventional breadboard grid. */
505
+ declare const BREADBOARD_TERMINAL_HEADER_POSITIONS: {
506
+ pin: number;
507
+ label: string;
508
+ column: number;
509
+ x: number;
510
+ y: number;
511
+ }[];
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
+ }[];
538
+ /**
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.
542
+ */
543
+ declare const BREADBOARD_CLAD_VIA_POSITIONS: {
544
+ x: number;
545
+ y: number;
546
+ }[];
547
+ /** One connector exposing every terminal socket by its breadboard name. */
548
+ 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
+ interface BreadboardCladProps {
554
+ children?: ReactNode;
555
+ autorouter?: AutorouterProp;
556
+ autorouterOptions?: BiscuitBoardAutorouterOptions;
557
+ minTraceWidth?: number;
558
+ nominalTraceWidth?: number;
559
+ routingDisabled?: boolean;
560
+ /** Marks all sockets NC for a bare template preview. */
561
+ markHeadersNoConnect?: boolean;
562
+ /** Per-header no-connect overrides for partially populated designs. */
563
+ headerNoConnects?: {
564
+ terminals?: string[];
565
+ topPositive?: string[];
566
+ topNegative?: string[];
567
+ bottomPositive?: string[];
568
+ bottomNegative?: string[];
569
+ };
570
+ }
571
+ /**
572
+ * A laser-routable breadboard clad with individual 2.54 mm socket pads and
573
+ * fixed vias. Nothing is pre-connected, so every breadboard net is defined by
574
+ * the traces in the consuming circuit.
575
+ */
576
+ declare const BreadboardClad: ({ children, autorouter, autorouterOptions, minTraceWidth, nominalTraceWidth, routingDisabled, markHeadersNoConnect, headerNoConnects, }: BreadboardCladProps) => react.JSX.Element;
577
+
578
+ declare const CLAD_40X40_WIDTH = 40;
579
+ declare const CLAD_40X40_HEIGHT = 40;
580
+ declare const CLAD_40X40_MOUNTING_HOLE_DIAMETER = 2;
581
+ declare const CLAD_40X40_EDGE_MOUNTING_HOLE_INSET = 3;
582
+ declare const CLAD_40X40_VIA_HOLE_DIAMETER = 0.3;
583
+ declare const CLAD_40X40_VIA_PAD_DIAMETER = 0.6;
584
+ declare const CLAD_40X40_VIA_SPACING = 1.3;
585
+ declare const CLAD_40X40_VIA_RING_HALF_SIZES: readonly [2.6, 3.9, 5.2];
586
+ declare const CLAD_40X40_MOUNTING_HOLE_POSITIONS: {
587
+ x: number;
588
+ y: number;
589
+ }[];
590
+ /** Three concentric square via rings centered on the central mounting hole. */
591
+ declare const CLAD_40X40_VIA_POSITIONS: {
592
+ x: number;
593
+ y: number;
594
+ }[];
595
+ interface Clad40x40Props {
596
+ children?: ReactNode;
597
+ autorouter?: AutorouterProp;
598
+ autorouterOptions?: BiscuitBoardAutorouterOptions;
599
+ /** Enforced minimum trace width in millimeters. */
600
+ minTraceWidth?: number;
601
+ nominalTraceWidth?: number;
602
+ routingDisabled?: boolean;
603
+ }
604
+ /** A two-layer 40 mm square clad with two mounting holes and three via rings. */
605
+ declare const Clad40x40: ({ children, autorouter, autorouterOptions, minTraceWidth, nominalTraceWidth, routingDisabled, }: Clad40x40Props) => react.JSX.Element;
606
+
607
+ interface PrefabricatedViaAutorouterConfig {
608
+ width: number;
609
+ height: number;
610
+ edgeClearance: number;
611
+ options?: BiscuitBoardAutorouterOptions;
612
+ minimumTraceWidth?: number;
613
+ nominalTraceWidth: number;
614
+ reservedObstacles?: SimpleRouteJson["obstacles"];
615
+ }
616
+ /**
617
+ * Builds the board-bounded autorouter configuration shared by prefabricated
618
+ * clads. Layer changes are still restricted to net-assignable vias by the
619
+ * BiscuitBoard autorouter; this helper only supplies the board-specific bounds
620
+ * and trace-width policy.
621
+ */
622
+ declare const createPrefabricatedViaAutorouter: ({ width, height, edgeClearance, options, minimumTraceWidth, nominalTraceWidth, reservedObstacles, }: PrefabricatedViaAutorouterConfig) => AutorouterConfig;
623
+
624
+ /** The classic Adafruit Feather outline, with USB at the positive Y edge. */
625
+ declare const FEATHER_CLAD_WIDTH = 22.86;
626
+ declare const FEATHER_CLAD_HEIGHT = 50.8;
627
+ declare const FEATHER_HEADER_PITCH = 2.54;
628
+ declare const FEATHER_HEADER_ROW_SPACING = 20.32;
629
+ declare const FEATHER_HEADER_HOLE_DIAMETER = 1;
630
+ declare const FEATHER_HEADER_PAD_DIAMETER = 1.7;
631
+ declare const FEATHER_MOUNTING_HOLE_DIAMETER = 2.54;
632
+ declare const FEATHER_CLAD_VIA_HOLE_DIAMETER = 0.3;
633
+ declare const FEATHER_CLAD_VIA_PAD_DIAMETER = 0.6;
634
+ declare const FEATHER_CLAD_VIA_SPACING = 1.3;
635
+ /** Four 0.1 inch mounting holes inset 0.1 inch from each corner. */
636
+ declare const FEATHER_MOUNTING_HOLE_POSITIONS: {
637
+ x: number;
638
+ y: number;
639
+ }[];
640
+ /** Via columns flank the component field while preserving the header-free top right. */
641
+ declare const FEATHER_CLAD_VIA_POSITIONS: {
642
+ x: number;
643
+ y: number;
644
+ }[];
645
+ /** Header positions follow the standard Feather pinout with USB at positive Y. */
646
+ declare const FEATHER_HEADER_POSITIONS: {
647
+ x: number;
648
+ y: number;
649
+ }[];
650
+ declare const FEATHER_PIN_LABELS: {
651
+ readonly pin1: readonly ["RST", "RESET"];
652
+ readonly pin2: readonly ["V3V3", "3V3"];
653
+ readonly pin3: readonly ["AREF"];
654
+ readonly pin4: readonly ["GND"];
655
+ readonly pin5: readonly ["A0"];
656
+ readonly pin6: readonly ["A1"];
657
+ readonly pin7: readonly ["A2"];
658
+ readonly pin8: readonly ["A3"];
659
+ readonly pin9: readonly ["A4", "D24"];
660
+ readonly pin10: readonly ["A5", "D25"];
661
+ readonly pin11: readonly ["SCK"];
662
+ readonly pin12: readonly ["MOSI", "MO"];
663
+ readonly pin13: readonly ["MISO", "MI"];
664
+ readonly pin14: readonly ["RX", "D0"];
665
+ readonly pin15: readonly ["TX", "D1"];
666
+ readonly pin16: readonly ["FREE"];
667
+ readonly pin17: readonly ["BAT", "VBAT"];
668
+ readonly pin18: readonly ["EN"];
669
+ readonly pin19: readonly ["USB", "VBUS"];
670
+ readonly pin20: readonly ["D13"];
671
+ readonly pin21: readonly ["D12"];
672
+ readonly pin22: readonly ["D11"];
673
+ readonly pin23: readonly ["D10"];
674
+ readonly pin24: readonly ["D9"];
675
+ readonly pin25: readonly ["D6"];
676
+ readonly pin26: readonly ["D5"];
677
+ readonly pin27: readonly ["SCL"];
678
+ readonly pin28: readonly ["SDA"];
679
+ };
680
+ declare const FEATHER_PIN_NAMES: string[];
681
+ declare const FeatherPinHeaders: (props: ConnectorProps) => react.JSX.Element;
682
+ interface FeatherCladWithPinHeadersProps {
683
+ children?: ReactNode;
684
+ autorouter?: AutorouterProp;
685
+ autorouterOptions?: BiscuitBoardAutorouterOptions;
686
+ minTraceWidth?: number;
687
+ nominalTraceWidth?: number;
688
+ routingDisabled?: boolean;
689
+ /** Marks every header pin NC for template previews and routing examples. */
690
+ markHeadersNoConnect?: boolean;
691
+ /** Shows the USB-edge orientation mark. Defaults to true. */
692
+ showUsbLabel?: boolean;
693
+ }
694
+ /** A two-layer copper clad matching the classic Adafruit Feather outline. */
695
+ declare const FeatherCladWithPinHeaders: ({ children, autorouter, autorouterOptions, minTraceWidth, nominalTraceWidth, routingDisabled, markHeadersNoConnect, showUsbLabel, }: FeatherCladWithPinHeadersProps) => react.JSX.Element;
696
+
697
+ /** The classic Seeed Studio XIAO outline, with USB at the positive Y edge. */
698
+ declare const XIAO_CLAD_WIDTH = 17.8;
699
+ declare const XIAO_CLAD_HEIGHT = 21;
700
+ declare const XIAO_HEADER_PITCH = 2.54;
701
+ declare const XIAO_HEADER_ROW_SPACING = 15.24;
702
+ declare const XIAO_HEADER_HOLE_DIAMETER = 1;
703
+ declare const XIAO_HEADER_PAD_DIAMETER = 1.7;
704
+ declare const XIAO_CLAD_VIA_HOLE_DIAMETER = 0.3;
705
+ declare const XIAO_CLAD_VIA_PAD_DIAMETER = 0.6;
706
+ declare const XIAO_CLAD_VIA_SPACING = 1.3;
707
+ /** Two 1 x 13 via columns flanking the central component field. */
708
+ declare const XIAO_CLAD_VIA_POSITIONS: {
709
+ x: number;
710
+ y: number;
711
+ }[];
712
+ declare const XIAO_HEADER_POSITIONS: {
713
+ x: number;
714
+ y: number;
715
+ }[];
716
+ declare const XIAO_PIN_LABELS: {
717
+ readonly pin1: readonly ["D0", "A0"];
718
+ readonly pin2: readonly ["D1", "A1"];
719
+ readonly pin3: readonly ["D2", "A2"];
720
+ readonly pin4: readonly ["D3", "A3"];
721
+ readonly pin5: readonly ["D4", "SDA"];
722
+ readonly pin6: readonly ["D5", "SCL"];
723
+ readonly pin7: readonly ["D6", "TX"];
724
+ readonly pin8: readonly ["V5", "5V"];
725
+ readonly pin9: readonly ["GND"];
726
+ readonly pin10: readonly ["V3V3", "3V3"];
727
+ readonly pin11: readonly ["D10", "MOSI"];
728
+ readonly pin12: readonly ["D9", "MISO"];
729
+ readonly pin13: readonly ["D8", "SCK"];
730
+ readonly pin14: readonly ["D7", "RX"];
731
+ };
732
+ declare const XIAO_PIN_NAMES: string[];
733
+ declare const XiaoPinHeaders: (props: ConnectorProps) => react.JSX.Element;
734
+ interface XiaoCladWithPinHeadersProps {
735
+ children?: ReactNode;
736
+ autorouter?: AutorouterProp;
737
+ autorouterOptions?: BiscuitBoardAutorouterOptions;
738
+ minTraceWidth?: number;
739
+ nominalTraceWidth?: number;
740
+ routingDisabled?: boolean;
741
+ /** Marks every header pin NC for template previews and routing examples. */
742
+ markHeadersNoConnect?: boolean;
743
+ /** Shows the USB-edge orientation mark. Defaults to true. */
744
+ showUsbLabel?: boolean;
745
+ }
746
+ interface XiaoCladLayoutProps extends Omit<XiaoCladWithPinHeadersProps, "markHeadersNoConnect"> {
747
+ boardName: string;
748
+ boardTitle: string;
749
+ pinHeaders: ReactNode;
750
+ edgeFeatures?: ReactNode;
751
+ }
752
+ declare const XiaoCladLayout: ({ boardName, boardTitle, pinHeaders, edgeFeatures, children, autorouter, autorouterOptions, minTraceWidth, nominalTraceWidth, routingDisabled, showUsbLabel, }: XiaoCladLayoutProps) => react.JSX.Element;
753
+ /** A two-layer copper clad matching the classic Seeed Studio XIAO outline. */
754
+ declare const XiaoCladWithPinHeaders: ({ markHeadersNoConnect, ...props }: XiaoCladWithPinHeadersProps) => react.JSX.Element;
755
+
756
+ declare const XIAO_PERFORATED_HEADER_PAD_WIDTH = 2.13;
757
+ declare const XIAO_PERFORATED_HEADER_PAD_HEIGHT = 2;
758
+ declare const XIAO_PERFORATION_HOLE_DIAMETER = 0.7;
759
+ declare const XIAO_PERFORATION_POSITIONS: {
760
+ x: number;
761
+ y: number;
762
+ }[];
763
+ /** XIAO headers with an additional 0.7 mm perforation at each board edge. */
764
+ declare const XiaoPerforatedPinHeaders: (props: ConnectorProps) => react.JSX.Element;
765
+ type XiaoCladWithPerforatedPinHeadersProps = XiaoCladWithPinHeadersProps;
766
+ /** A XIAO clad whose header pads include perforations along both side edges. */
767
+ declare const XiaoCladWithPerforatedPinHeaders: ({ markHeadersNoConnect, ...props }: XiaoCladWithPerforatedPinHeadersProps) => react.JSX.Element;
768
+
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 };