@tscircuit/props 0.0.134 → 0.0.135
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 +436 -17
- package/dist/index.js +10 -4
- package/dist/index.js.map +1 -1
- package/lib/common/schematicPinDefinitions.ts +11 -0
- package/lib/components/chip.ts +9 -6
- package/lib/components/push-button.ts +15 -3
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1549,6 +1549,10 @@ interface SchematicPortArrangementWithSides {
|
|
|
1549
1549
|
}
|
|
1550
1550
|
interface SchematicPortArrangement extends SchematicPortArrangementWithSizes, SchematicPortArrangementWithSides, SchematicPortArrangementWithPinCounts {
|
|
1551
1551
|
}
|
|
1552
|
+
type SchematicPinArrangement = SchematicPortArrangement;
|
|
1553
|
+
type SchematicPinArrangementWithSizes = SchematicPortArrangementWithSizes;
|
|
1554
|
+
type SchematicPinArrangementWithSides = SchematicPortArrangementWithSides;
|
|
1555
|
+
type SchematicPinArrangementWithPinCounts = SchematicPortArrangementWithPinCounts;
|
|
1552
1556
|
declare const explicitPinSideDefinition: z.ZodObject<{
|
|
1553
1557
|
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
1554
1558
|
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
@@ -1559,6 +1563,9 @@ declare const explicitPinSideDefinition: z.ZodObject<{
|
|
|
1559
1563
|
pins: (string | number)[];
|
|
1560
1564
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1561
1565
|
}>;
|
|
1566
|
+
/**
|
|
1567
|
+
* @deprecated Use schematicPinArrangement instead.
|
|
1568
|
+
*/
|
|
1562
1569
|
declare const schematicPortArrangement: z.ZodObject<{
|
|
1563
1570
|
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
1564
1571
|
topSize: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1659,6 +1666,106 @@ declare const schematicPortArrangement: z.ZodObject<{
|
|
|
1659
1666
|
topPinCount?: number | undefined;
|
|
1660
1667
|
bottomPinCount?: number | undefined;
|
|
1661
1668
|
}>;
|
|
1669
|
+
declare const schematicPinArrangement: z.ZodObject<{
|
|
1670
|
+
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
1671
|
+
topSize: z.ZodOptional<z.ZodNumber>;
|
|
1672
|
+
rightSize: z.ZodOptional<z.ZodNumber>;
|
|
1673
|
+
bottomSize: z.ZodOptional<z.ZodNumber>;
|
|
1674
|
+
leftPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1675
|
+
rightPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1676
|
+
topPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1677
|
+
bottomPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1678
|
+
leftSide: z.ZodOptional<z.ZodObject<{
|
|
1679
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
1680
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
1681
|
+
}, "strip", z.ZodTypeAny, {
|
|
1682
|
+
pins: (string | number)[];
|
|
1683
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1684
|
+
}, {
|
|
1685
|
+
pins: (string | number)[];
|
|
1686
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1687
|
+
}>>;
|
|
1688
|
+
rightSide: z.ZodOptional<z.ZodObject<{
|
|
1689
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
1690
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
1691
|
+
}, "strip", z.ZodTypeAny, {
|
|
1692
|
+
pins: (string | number)[];
|
|
1693
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1694
|
+
}, {
|
|
1695
|
+
pins: (string | number)[];
|
|
1696
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1697
|
+
}>>;
|
|
1698
|
+
topSide: z.ZodOptional<z.ZodObject<{
|
|
1699
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
1700
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
1701
|
+
}, "strip", z.ZodTypeAny, {
|
|
1702
|
+
pins: (string | number)[];
|
|
1703
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1704
|
+
}, {
|
|
1705
|
+
pins: (string | number)[];
|
|
1706
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1707
|
+
}>>;
|
|
1708
|
+
bottomSide: z.ZodOptional<z.ZodObject<{
|
|
1709
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
1710
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
1711
|
+
}, "strip", z.ZodTypeAny, {
|
|
1712
|
+
pins: (string | number)[];
|
|
1713
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1714
|
+
}, {
|
|
1715
|
+
pins: (string | number)[];
|
|
1716
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1717
|
+
}>>;
|
|
1718
|
+
}, "strip", z.ZodTypeAny, {
|
|
1719
|
+
leftSize?: number | undefined;
|
|
1720
|
+
topSize?: number | undefined;
|
|
1721
|
+
rightSize?: number | undefined;
|
|
1722
|
+
bottomSize?: number | undefined;
|
|
1723
|
+
leftSide?: {
|
|
1724
|
+
pins: (string | number)[];
|
|
1725
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1726
|
+
} | undefined;
|
|
1727
|
+
topSide?: {
|
|
1728
|
+
pins: (string | number)[];
|
|
1729
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1730
|
+
} | undefined;
|
|
1731
|
+
rightSide?: {
|
|
1732
|
+
pins: (string | number)[];
|
|
1733
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1734
|
+
} | undefined;
|
|
1735
|
+
bottomSide?: {
|
|
1736
|
+
pins: (string | number)[];
|
|
1737
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1738
|
+
} | undefined;
|
|
1739
|
+
leftPinCount?: number | undefined;
|
|
1740
|
+
rightPinCount?: number | undefined;
|
|
1741
|
+
topPinCount?: number | undefined;
|
|
1742
|
+
bottomPinCount?: number | undefined;
|
|
1743
|
+
}, {
|
|
1744
|
+
leftSize?: number | undefined;
|
|
1745
|
+
topSize?: number | undefined;
|
|
1746
|
+
rightSize?: number | undefined;
|
|
1747
|
+
bottomSize?: number | undefined;
|
|
1748
|
+
leftSide?: {
|
|
1749
|
+
pins: (string | number)[];
|
|
1750
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1751
|
+
} | undefined;
|
|
1752
|
+
topSide?: {
|
|
1753
|
+
pins: (string | number)[];
|
|
1754
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1755
|
+
} | undefined;
|
|
1756
|
+
rightSide?: {
|
|
1757
|
+
pins: (string | number)[];
|
|
1758
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1759
|
+
} | undefined;
|
|
1760
|
+
bottomSide?: {
|
|
1761
|
+
pins: (string | number)[];
|
|
1762
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1763
|
+
} | undefined;
|
|
1764
|
+
leftPinCount?: number | undefined;
|
|
1765
|
+
rightPinCount?: number | undefined;
|
|
1766
|
+
topPinCount?: number | undefined;
|
|
1767
|
+
bottomPinCount?: number | undefined;
|
|
1768
|
+
}>;
|
|
1662
1769
|
|
|
1663
1770
|
type SchematicPinStyle = Record<string, {
|
|
1664
1771
|
leftMargin?: number | string;
|
|
@@ -3975,14 +4082,16 @@ declare const boardProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exte
|
|
|
3975
4082
|
interface ChipProps extends CommonComponentProps {
|
|
3976
4083
|
manufacturerPartNumber?: string;
|
|
3977
4084
|
pinLabels?: Record<number | string, string | readonly string[]>;
|
|
4085
|
+
schPinArrangement?: SchematicPortArrangement;
|
|
4086
|
+
/** @deprecated Use schPinArrangement instead. */
|
|
3978
4087
|
schPortArrangement?: SchematicPortArrangement;
|
|
3979
4088
|
schPinStyle?: SchematicPinStyle;
|
|
3980
4089
|
schPinSpacing?: Distance;
|
|
3981
4090
|
schWidth?: Distance;
|
|
3982
4091
|
schHeight?: Distance;
|
|
3983
4092
|
noSchematicRepresentation?: boolean;
|
|
3984
|
-
|
|
3985
|
-
|
|
4093
|
+
internallyConnectedPins?: string[][];
|
|
4094
|
+
externallyConnectedPins?: string[][];
|
|
3986
4095
|
}
|
|
3987
4096
|
type PinLabels = Record<number | string, string | readonly string[] | string[]>;
|
|
3988
4097
|
declare const pinLabelsProp: z.ZodRecord<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodUnion<[z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "many">>]>, z.ZodArray<z.ZodString, "many">]>>;
|
|
@@ -4245,8 +4354,108 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
4245
4354
|
}>, {
|
|
4246
4355
|
manufacturerPartNumber: z.ZodOptional<z.ZodString>;
|
|
4247
4356
|
pinLabels: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "many">>]>>>;
|
|
4248
|
-
|
|
4249
|
-
|
|
4357
|
+
internallyConnectedPins: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
4358
|
+
externallyConnectedPins: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
4359
|
+
schPinArrangement: z.ZodOptional<z.ZodObject<{
|
|
4360
|
+
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
4361
|
+
topSize: z.ZodOptional<z.ZodNumber>;
|
|
4362
|
+
rightSize: z.ZodOptional<z.ZodNumber>;
|
|
4363
|
+
bottomSize: z.ZodOptional<z.ZodNumber>;
|
|
4364
|
+
leftPinCount: z.ZodOptional<z.ZodNumber>;
|
|
4365
|
+
rightPinCount: z.ZodOptional<z.ZodNumber>;
|
|
4366
|
+
topPinCount: z.ZodOptional<z.ZodNumber>;
|
|
4367
|
+
bottomPinCount: z.ZodOptional<z.ZodNumber>;
|
|
4368
|
+
leftSide: z.ZodOptional<z.ZodObject<{
|
|
4369
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
4370
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
4371
|
+
}, "strip", z.ZodTypeAny, {
|
|
4372
|
+
pins: (string | number)[];
|
|
4373
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4374
|
+
}, {
|
|
4375
|
+
pins: (string | number)[];
|
|
4376
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4377
|
+
}>>;
|
|
4378
|
+
rightSide: z.ZodOptional<z.ZodObject<{
|
|
4379
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
4380
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
4381
|
+
}, "strip", z.ZodTypeAny, {
|
|
4382
|
+
pins: (string | number)[];
|
|
4383
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4384
|
+
}, {
|
|
4385
|
+
pins: (string | number)[];
|
|
4386
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4387
|
+
}>>;
|
|
4388
|
+
topSide: z.ZodOptional<z.ZodObject<{
|
|
4389
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
4390
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
4391
|
+
}, "strip", z.ZodTypeAny, {
|
|
4392
|
+
pins: (string | number)[];
|
|
4393
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4394
|
+
}, {
|
|
4395
|
+
pins: (string | number)[];
|
|
4396
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4397
|
+
}>>;
|
|
4398
|
+
bottomSide: z.ZodOptional<z.ZodObject<{
|
|
4399
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
4400
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
4401
|
+
}, "strip", z.ZodTypeAny, {
|
|
4402
|
+
pins: (string | number)[];
|
|
4403
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4404
|
+
}, {
|
|
4405
|
+
pins: (string | number)[];
|
|
4406
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4407
|
+
}>>;
|
|
4408
|
+
}, "strip", z.ZodTypeAny, {
|
|
4409
|
+
leftSize?: number | undefined;
|
|
4410
|
+
topSize?: number | undefined;
|
|
4411
|
+
rightSize?: number | undefined;
|
|
4412
|
+
bottomSize?: number | undefined;
|
|
4413
|
+
leftSide?: {
|
|
4414
|
+
pins: (string | number)[];
|
|
4415
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4416
|
+
} | undefined;
|
|
4417
|
+
topSide?: {
|
|
4418
|
+
pins: (string | number)[];
|
|
4419
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4420
|
+
} | undefined;
|
|
4421
|
+
rightSide?: {
|
|
4422
|
+
pins: (string | number)[];
|
|
4423
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4424
|
+
} | undefined;
|
|
4425
|
+
bottomSide?: {
|
|
4426
|
+
pins: (string | number)[];
|
|
4427
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4428
|
+
} | undefined;
|
|
4429
|
+
leftPinCount?: number | undefined;
|
|
4430
|
+
rightPinCount?: number | undefined;
|
|
4431
|
+
topPinCount?: number | undefined;
|
|
4432
|
+
bottomPinCount?: number | undefined;
|
|
4433
|
+
}, {
|
|
4434
|
+
leftSize?: number | undefined;
|
|
4435
|
+
topSize?: number | undefined;
|
|
4436
|
+
rightSize?: number | undefined;
|
|
4437
|
+
bottomSize?: number | undefined;
|
|
4438
|
+
leftSide?: {
|
|
4439
|
+
pins: (string | number)[];
|
|
4440
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4441
|
+
} | undefined;
|
|
4442
|
+
topSide?: {
|
|
4443
|
+
pins: (string | number)[];
|
|
4444
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4445
|
+
} | undefined;
|
|
4446
|
+
rightSide?: {
|
|
4447
|
+
pins: (string | number)[];
|
|
4448
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4449
|
+
} | undefined;
|
|
4450
|
+
bottomSide?: {
|
|
4451
|
+
pins: (string | number)[];
|
|
4452
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4453
|
+
} | undefined;
|
|
4454
|
+
leftPinCount?: number | undefined;
|
|
4455
|
+
rightPinCount?: number | undefined;
|
|
4456
|
+
topPinCount?: number | undefined;
|
|
4457
|
+
bottomPinCount?: number | undefined;
|
|
4458
|
+
}>>;
|
|
4250
4459
|
schPortArrangement: z.ZodOptional<z.ZodObject<{
|
|
4251
4460
|
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
4252
4461
|
topSize: z.ZodOptional<z.ZodNumber>;
|
|
@@ -4436,8 +4645,34 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
4436
4645
|
symbolName?: string | undefined;
|
|
4437
4646
|
manufacturerPartNumber?: string | undefined;
|
|
4438
4647
|
pinLabels?: Record<string | number, string | readonly string[]> | undefined;
|
|
4439
|
-
|
|
4440
|
-
|
|
4648
|
+
internallyConnectedPins?: string[][] | undefined;
|
|
4649
|
+
externallyConnectedPins?: string[][] | undefined;
|
|
4650
|
+
schPinArrangement?: {
|
|
4651
|
+
leftSize?: number | undefined;
|
|
4652
|
+
topSize?: number | undefined;
|
|
4653
|
+
rightSize?: number | undefined;
|
|
4654
|
+
bottomSize?: number | undefined;
|
|
4655
|
+
leftSide?: {
|
|
4656
|
+
pins: (string | number)[];
|
|
4657
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4658
|
+
} | undefined;
|
|
4659
|
+
topSide?: {
|
|
4660
|
+
pins: (string | number)[];
|
|
4661
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4662
|
+
} | undefined;
|
|
4663
|
+
rightSide?: {
|
|
4664
|
+
pins: (string | number)[];
|
|
4665
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4666
|
+
} | undefined;
|
|
4667
|
+
bottomSide?: {
|
|
4668
|
+
pins: (string | number)[];
|
|
4669
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4670
|
+
} | undefined;
|
|
4671
|
+
leftPinCount?: number | undefined;
|
|
4672
|
+
rightPinCount?: number | undefined;
|
|
4673
|
+
topPinCount?: number | undefined;
|
|
4674
|
+
bottomPinCount?: number | undefined;
|
|
4675
|
+
} | undefined;
|
|
4441
4676
|
schPortArrangement?: {
|
|
4442
4677
|
leftSize?: number | undefined;
|
|
4443
4678
|
topSize?: number | undefined;
|
|
@@ -4545,8 +4780,34 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
4545
4780
|
symbolName?: string | undefined;
|
|
4546
4781
|
manufacturerPartNumber?: string | undefined;
|
|
4547
4782
|
pinLabels?: Record<string | number, string | readonly string[]> | undefined;
|
|
4548
|
-
|
|
4549
|
-
|
|
4783
|
+
internallyConnectedPins?: string[][] | undefined;
|
|
4784
|
+
externallyConnectedPins?: string[][] | undefined;
|
|
4785
|
+
schPinArrangement?: {
|
|
4786
|
+
leftSize?: number | undefined;
|
|
4787
|
+
topSize?: number | undefined;
|
|
4788
|
+
rightSize?: number | undefined;
|
|
4789
|
+
bottomSize?: number | undefined;
|
|
4790
|
+
leftSide?: {
|
|
4791
|
+
pins: (string | number)[];
|
|
4792
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4793
|
+
} | undefined;
|
|
4794
|
+
topSide?: {
|
|
4795
|
+
pins: (string | number)[];
|
|
4796
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4797
|
+
} | undefined;
|
|
4798
|
+
rightSide?: {
|
|
4799
|
+
pins: (string | number)[];
|
|
4800
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4801
|
+
} | undefined;
|
|
4802
|
+
bottomSide?: {
|
|
4803
|
+
pins: (string | number)[];
|
|
4804
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
4805
|
+
} | undefined;
|
|
4806
|
+
leftPinCount?: number | undefined;
|
|
4807
|
+
rightPinCount?: number | undefined;
|
|
4808
|
+
topPinCount?: number | undefined;
|
|
4809
|
+
bottomPinCount?: number | undefined;
|
|
4810
|
+
} | undefined;
|
|
4550
4811
|
schPortArrangement?: {
|
|
4551
4812
|
leftSize?: number | undefined;
|
|
4552
4813
|
topSize?: number | undefined;
|
|
@@ -4846,8 +5107,108 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
4846
5107
|
}>, {
|
|
4847
5108
|
manufacturerPartNumber: z.ZodOptional<z.ZodString>;
|
|
4848
5109
|
pinLabels: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodUnion<[z.ZodString, z.ZodReadonly<z.ZodArray<z.ZodString, "many">>]>>>;
|
|
4849
|
-
|
|
4850
|
-
|
|
5110
|
+
internallyConnectedPins: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
5111
|
+
externallyConnectedPins: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
5112
|
+
schPinArrangement: z.ZodOptional<z.ZodObject<{
|
|
5113
|
+
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
5114
|
+
topSize: z.ZodOptional<z.ZodNumber>;
|
|
5115
|
+
rightSize: z.ZodOptional<z.ZodNumber>;
|
|
5116
|
+
bottomSize: z.ZodOptional<z.ZodNumber>;
|
|
5117
|
+
leftPinCount: z.ZodOptional<z.ZodNumber>;
|
|
5118
|
+
rightPinCount: z.ZodOptional<z.ZodNumber>;
|
|
5119
|
+
topPinCount: z.ZodOptional<z.ZodNumber>;
|
|
5120
|
+
bottomPinCount: z.ZodOptional<z.ZodNumber>;
|
|
5121
|
+
leftSide: z.ZodOptional<z.ZodObject<{
|
|
5122
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
5123
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
5124
|
+
}, "strip", z.ZodTypeAny, {
|
|
5125
|
+
pins: (string | number)[];
|
|
5126
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5127
|
+
}, {
|
|
5128
|
+
pins: (string | number)[];
|
|
5129
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5130
|
+
}>>;
|
|
5131
|
+
rightSide: z.ZodOptional<z.ZodObject<{
|
|
5132
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
5133
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
5134
|
+
}, "strip", z.ZodTypeAny, {
|
|
5135
|
+
pins: (string | number)[];
|
|
5136
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5137
|
+
}, {
|
|
5138
|
+
pins: (string | number)[];
|
|
5139
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5140
|
+
}>>;
|
|
5141
|
+
topSide: z.ZodOptional<z.ZodObject<{
|
|
5142
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
5143
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
5144
|
+
}, "strip", z.ZodTypeAny, {
|
|
5145
|
+
pins: (string | number)[];
|
|
5146
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5147
|
+
}, {
|
|
5148
|
+
pins: (string | number)[];
|
|
5149
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5150
|
+
}>>;
|
|
5151
|
+
bottomSide: z.ZodOptional<z.ZodObject<{
|
|
5152
|
+
pins: z.ZodArray<z.ZodUnion<[z.ZodNumber, z.ZodString]>, "many">;
|
|
5153
|
+
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
5154
|
+
}, "strip", z.ZodTypeAny, {
|
|
5155
|
+
pins: (string | number)[];
|
|
5156
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5157
|
+
}, {
|
|
5158
|
+
pins: (string | number)[];
|
|
5159
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5160
|
+
}>>;
|
|
5161
|
+
}, "strip", z.ZodTypeAny, {
|
|
5162
|
+
leftSize?: number | undefined;
|
|
5163
|
+
topSize?: number | undefined;
|
|
5164
|
+
rightSize?: number | undefined;
|
|
5165
|
+
bottomSize?: number | undefined;
|
|
5166
|
+
leftSide?: {
|
|
5167
|
+
pins: (string | number)[];
|
|
5168
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5169
|
+
} | undefined;
|
|
5170
|
+
topSide?: {
|
|
5171
|
+
pins: (string | number)[];
|
|
5172
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5173
|
+
} | undefined;
|
|
5174
|
+
rightSide?: {
|
|
5175
|
+
pins: (string | number)[];
|
|
5176
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5177
|
+
} | undefined;
|
|
5178
|
+
bottomSide?: {
|
|
5179
|
+
pins: (string | number)[];
|
|
5180
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5181
|
+
} | undefined;
|
|
5182
|
+
leftPinCount?: number | undefined;
|
|
5183
|
+
rightPinCount?: number | undefined;
|
|
5184
|
+
topPinCount?: number | undefined;
|
|
5185
|
+
bottomPinCount?: number | undefined;
|
|
5186
|
+
}, {
|
|
5187
|
+
leftSize?: number | undefined;
|
|
5188
|
+
topSize?: number | undefined;
|
|
5189
|
+
rightSize?: number | undefined;
|
|
5190
|
+
bottomSize?: number | undefined;
|
|
5191
|
+
leftSide?: {
|
|
5192
|
+
pins: (string | number)[];
|
|
5193
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5194
|
+
} | undefined;
|
|
5195
|
+
topSide?: {
|
|
5196
|
+
pins: (string | number)[];
|
|
5197
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5198
|
+
} | undefined;
|
|
5199
|
+
rightSide?: {
|
|
5200
|
+
pins: (string | number)[];
|
|
5201
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5202
|
+
} | undefined;
|
|
5203
|
+
bottomSide?: {
|
|
5204
|
+
pins: (string | number)[];
|
|
5205
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5206
|
+
} | undefined;
|
|
5207
|
+
leftPinCount?: number | undefined;
|
|
5208
|
+
rightPinCount?: number | undefined;
|
|
5209
|
+
topPinCount?: number | undefined;
|
|
5210
|
+
bottomPinCount?: number | undefined;
|
|
5211
|
+
}>>;
|
|
4851
5212
|
schPortArrangement: z.ZodOptional<z.ZodObject<{
|
|
4852
5213
|
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
4853
5214
|
topSize: z.ZodOptional<z.ZodNumber>;
|
|
@@ -5037,8 +5398,34 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
5037
5398
|
symbolName?: string | undefined;
|
|
5038
5399
|
manufacturerPartNumber?: string | undefined;
|
|
5039
5400
|
pinLabels?: Record<string | number, string | readonly string[]> | undefined;
|
|
5040
|
-
|
|
5041
|
-
|
|
5401
|
+
internallyConnectedPins?: string[][] | undefined;
|
|
5402
|
+
externallyConnectedPins?: string[][] | undefined;
|
|
5403
|
+
schPinArrangement?: {
|
|
5404
|
+
leftSize?: number | undefined;
|
|
5405
|
+
topSize?: number | undefined;
|
|
5406
|
+
rightSize?: number | undefined;
|
|
5407
|
+
bottomSize?: number | undefined;
|
|
5408
|
+
leftSide?: {
|
|
5409
|
+
pins: (string | number)[];
|
|
5410
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5411
|
+
} | undefined;
|
|
5412
|
+
topSide?: {
|
|
5413
|
+
pins: (string | number)[];
|
|
5414
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5415
|
+
} | undefined;
|
|
5416
|
+
rightSide?: {
|
|
5417
|
+
pins: (string | number)[];
|
|
5418
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5419
|
+
} | undefined;
|
|
5420
|
+
bottomSide?: {
|
|
5421
|
+
pins: (string | number)[];
|
|
5422
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5423
|
+
} | undefined;
|
|
5424
|
+
leftPinCount?: number | undefined;
|
|
5425
|
+
rightPinCount?: number | undefined;
|
|
5426
|
+
topPinCount?: number | undefined;
|
|
5427
|
+
bottomPinCount?: number | undefined;
|
|
5428
|
+
} | undefined;
|
|
5042
5429
|
schPortArrangement?: {
|
|
5043
5430
|
leftSize?: number | undefined;
|
|
5044
5431
|
topSize?: number | undefined;
|
|
@@ -5146,8 +5533,34 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
5146
5533
|
symbolName?: string | undefined;
|
|
5147
5534
|
manufacturerPartNumber?: string | undefined;
|
|
5148
5535
|
pinLabels?: Record<string | number, string | readonly string[]> | undefined;
|
|
5149
|
-
|
|
5150
|
-
|
|
5536
|
+
internallyConnectedPins?: string[][] | undefined;
|
|
5537
|
+
externallyConnectedPins?: string[][] | undefined;
|
|
5538
|
+
schPinArrangement?: {
|
|
5539
|
+
leftSize?: number | undefined;
|
|
5540
|
+
topSize?: number | undefined;
|
|
5541
|
+
rightSize?: number | undefined;
|
|
5542
|
+
bottomSize?: number | undefined;
|
|
5543
|
+
leftSide?: {
|
|
5544
|
+
pins: (string | number)[];
|
|
5545
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5546
|
+
} | undefined;
|
|
5547
|
+
topSide?: {
|
|
5548
|
+
pins: (string | number)[];
|
|
5549
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5550
|
+
} | undefined;
|
|
5551
|
+
rightSide?: {
|
|
5552
|
+
pins: (string | number)[];
|
|
5553
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5554
|
+
} | undefined;
|
|
5555
|
+
bottomSide?: {
|
|
5556
|
+
pins: (string | number)[];
|
|
5557
|
+
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
5558
|
+
} | undefined;
|
|
5559
|
+
leftPinCount?: number | undefined;
|
|
5560
|
+
rightPinCount?: number | undefined;
|
|
5561
|
+
topPinCount?: number | undefined;
|
|
5562
|
+
bottomPinCount?: number | undefined;
|
|
5563
|
+
} | undefined;
|
|
5151
5564
|
schPortArrangement?: {
|
|
5152
5565
|
leftSize?: number | undefined;
|
|
5153
5566
|
topSize?: number | undefined;
|
|
@@ -9789,6 +10202,9 @@ declare const netAliasProps: z.ZodObject<{
|
|
|
9789
10202
|
anchorSide?: "up" | "down" | "left" | "right" | undefined;
|
|
9790
10203
|
}>;
|
|
9791
10204
|
|
|
10205
|
+
interface PushButtonProps extends CommonComponentProps {
|
|
10206
|
+
internallyConnectedPins?: string[][];
|
|
10207
|
+
}
|
|
9792
10208
|
declare const pushButtonProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<z.objectUtil.extendShape<{
|
|
9793
10209
|
pcbX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
9794
10210
|
pcbY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
@@ -10045,7 +10461,9 @@ declare const pushButtonProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil
|
|
|
10045
10461
|
}>]>>;
|
|
10046
10462
|
children: z.ZodOptional<z.ZodAny>;
|
|
10047
10463
|
symbolName: z.ZodOptional<z.ZodString>;
|
|
10048
|
-
}>, {
|
|
10464
|
+
}>, {
|
|
10465
|
+
internallyConnectedPins: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">>;
|
|
10466
|
+
}>, "strip", z.ZodTypeAny, {
|
|
10049
10467
|
name: string;
|
|
10050
10468
|
pcbX?: number | undefined;
|
|
10051
10469
|
pcbY?: number | undefined;
|
|
@@ -10112,6 +10530,7 @@ declare const pushButtonProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil
|
|
|
10112
10530
|
} | undefined;
|
|
10113
10531
|
children?: any;
|
|
10114
10532
|
symbolName?: string | undefined;
|
|
10533
|
+
internallyConnectedPins?: string[][] | undefined;
|
|
10115
10534
|
}, {
|
|
10116
10535
|
name: string;
|
|
10117
10536
|
pcbX?: string | number | undefined;
|
|
@@ -10181,8 +10600,8 @@ declare const pushButtonProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil
|
|
|
10181
10600
|
} | undefined;
|
|
10182
10601
|
children?: any;
|
|
10183
10602
|
symbolName?: string | undefined;
|
|
10603
|
+
internallyConnectedPins?: string[][] | undefined;
|
|
10184
10604
|
}>;
|
|
10185
|
-
type PushButtonProps = z.input<typeof pushButtonProps>;
|
|
10186
10605
|
|
|
10187
10606
|
type SubcircuitProps = SubcircuitGroupProps;
|
|
10188
10607
|
declare const subcircuitProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
|
|
@@ -14205,4 +14624,4 @@ declare const portProps: z.ZodObject<z.objectUtil.extendShape<{
|
|
|
14205
14624
|
}>;
|
|
14206
14625
|
type PortProps = z.input<typeof portProps>;
|
|
14207
14626
|
|
|
14208
|
-
export { type AutorouterConfig, type AutorouterProp, type BaseGroupProps, type BaseManualEditEvent, type BaseManualEditEventInput, type BatteryProps, type BoardProps, type CadModelBase, type CadModelJscad, type CadModelObj, type CadModelProp, type CadModelStl, type CapacitorProps, type ChipProps, type CirclePlatedHoleProps, type CircleSmtPadProps, type CircleSolderPasteProps, type CommonComponentProps, type CommonLayoutProps, type ComponentProps, type ConstrainedLayoutProps, type ConstraintProps, type CrystalProps, type DiodeProps, type Direction, type DirectionAlongEdge, type EditPcbComponentLocationEvent, type EditPcbComponentLocationEventInput, type EditSchematicComponentLocationEvent, type EditSchematicComponentLocationEventInput, type EditTraceHintEvent, type EditTraceHintEventInput, type FabricationNotePathProps, type FabricationNoteTextProps, type Footprint, type FootprintProps, type FootprintPropsInput, type FootprintSoupElements, type GroupProps, type HoleProps, type InductorProps, type InferredChipProps, type InferredConstrainedLayoutProps, type InferredHoleProps, type InferredSmtPadProps, type InferredSolderPasteProps, type JumperProps, type LedProps, type ManualEditEvent, type ManualEditEventInput, type ManualEditsFile, type ManualEditsFileInput, type ManualPcbPlacement, type ManualPcbPlacementInput, type ManualSchematicPlacement, type ManualSchematicPlacementInput, type ManualTraceHint, type ManualTraceHintInput, type MosfetProps, type NetAliasProps, type NetProps, type NonSubcircuitGroupProps, type OvalPlatedHoleProps, type PartsEngine, type PcbKeepoutProps, type PcbLayoutProps, type PcbRouteCache, type PcbSameXConstraint, type PcbSameYConstraint, type PcbTraceProps, type PcbXDistConstraint, type PcbYDistConstraint, type PillPlatedHoleProps, type PinHeaderProps, type PinLabels, type PinSideDefinition, type PinVariant, type PlatedHoleProps, type PortHints, type PortProps, type PotentiometerProps, type PowerSourceProps, type PushButtonProps, type RectSmtPadProps, type RectSolderPasteProps, type ResistorProps, type ResonatorPinVariant, type ResonatorProps, type RotatedRectSmtPadProps, type SchematicBoxProps, type SchematicLineProps, type SchematicPathProps, type SchematicPinStyle, type SchematicPortArrangement, type SchematicPortArrangementWithPinCounts, type SchematicPortArrangementWithSides, type SchematicPortArrangementWithSizes, type SchematicTextProps, type SilkscreenCircleProps, type SilkscreenLineProps, type SilkscreenPathProps, type SilkscreenRectProps, type SilkscreenTextProps, type SmtPadProps, type SolderPasteProps, type SubcircuitGroupProps, type SubcircuitGroupPropsWithBool, type SubcircuitProps, type SupplierName, type SupplierPartNumbers, type SupplierProps, type SwitchProps, type TraceHintProps, type TraceProps, type TransistorProps, type ViaProps, autorouterConfig, autorouterProp, baseGroupProps, base_manual_edit_event, batteryPins, batteryProps, boardProps, bugProps, cadModelBase, cadModelJscad, cadModelObj, cadModelProp, cadModelStl, capacitorPins, capacitorProps, chipProps, circleSmtPadProps, circleSolderPasteProps, commonComponentProps, commonLayoutProps, componentProps, constrainedLayoutProps, constraintProps, crystalPins, crystalProps, diodePins, diodeProps, direction, directionAlongEdge, distanceOrMultiplier, edit_component_location_event, edit_pcb_component_location_event, edit_schematic_component_location_event, edit_trace_hint_event, explicitPinSideDefinition, fabricationNotePathProps, fabricationNoteTextProps, footprintProp, footprintProps, groupProps, holeProps, inductorPins, inductorProps, jumperProps, ledPins, ledProps, lrPins, lrPolarPins, manual_edit_event, manual_edits_file, manual_pcb_placement, manual_schematic_placement, manual_trace_hint, mosfetPins, mosfetProps, netAliasProps, netProps, pcbKeepoutProps, pcbLayoutProps, pcbSameXConstraintProps, pcbSameYConstraintProps, pcbTraceProps, pcbXDistConstraintProps, pcbYDistConstraintProps, pinHeaderProps, pinLabelsProp, platedHoleProps, point3, portHints, portProps, portRef, potentiometerPins, potentiometerProps, powerSourceProps, pushButtonProps, rectSmtPadProps, rectSolderPasteProps, resistorPins, resistorProps, resonatorProps, rotatedRectSmtPadProps, rotationPoint3, routeHintPointProps, schematicBoxProps, schematicLineProps, schematicPathProps, schematicPinStyle, schematicPortArrangement, schematicTextProps, silkscreenCircleProps, silkscreenLineProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, smtPadProps, solderPasteProps, subcircuitGroupProps, subcircuitGroupPropsWithBool, subcircuitProps, supplierProps, switchProps, traceHintProps, traceProps, transistorPins, transistorProps, viaProps };
|
|
14627
|
+
export { type AutorouterConfig, type AutorouterProp, type BaseGroupProps, type BaseManualEditEvent, type BaseManualEditEventInput, type BatteryProps, type BoardProps, type CadModelBase, type CadModelJscad, type CadModelObj, type CadModelProp, type CadModelStl, type CapacitorProps, type ChipProps, type CirclePlatedHoleProps, type CircleSmtPadProps, type CircleSolderPasteProps, type CommonComponentProps, type CommonLayoutProps, type ComponentProps, type ConstrainedLayoutProps, type ConstraintProps, type CrystalProps, type DiodeProps, type Direction, type DirectionAlongEdge, type EditPcbComponentLocationEvent, type EditPcbComponentLocationEventInput, type EditSchematicComponentLocationEvent, type EditSchematicComponentLocationEventInput, type EditTraceHintEvent, type EditTraceHintEventInput, type FabricationNotePathProps, type FabricationNoteTextProps, type Footprint, type FootprintProps, type FootprintPropsInput, type FootprintSoupElements, type GroupProps, type HoleProps, type InductorProps, type InferredChipProps, type InferredConstrainedLayoutProps, type InferredHoleProps, type InferredSmtPadProps, type InferredSolderPasteProps, type JumperProps, type LedProps, type ManualEditEvent, type ManualEditEventInput, type ManualEditsFile, type ManualEditsFileInput, type ManualPcbPlacement, type ManualPcbPlacementInput, type ManualSchematicPlacement, type ManualSchematicPlacementInput, type ManualTraceHint, type ManualTraceHintInput, type MosfetProps, type NetAliasProps, type NetProps, type NonSubcircuitGroupProps, type OvalPlatedHoleProps, type PartsEngine, type PcbKeepoutProps, type PcbLayoutProps, type PcbRouteCache, type PcbSameXConstraint, type PcbSameYConstraint, type PcbTraceProps, type PcbXDistConstraint, type PcbYDistConstraint, type PillPlatedHoleProps, type PinHeaderProps, type PinLabels, type PinSideDefinition, type PinVariant, type PlatedHoleProps, type PortHints, type PortProps, type PotentiometerProps, type PowerSourceProps, type PushButtonProps, type RectSmtPadProps, type RectSolderPasteProps, type ResistorProps, type ResonatorPinVariant, type ResonatorProps, type RotatedRectSmtPadProps, type SchematicBoxProps, type SchematicLineProps, type SchematicPathProps, type SchematicPinArrangement, type SchematicPinArrangementWithPinCounts, type SchematicPinArrangementWithSides, type SchematicPinArrangementWithSizes, type SchematicPinStyle, type SchematicPortArrangement, type SchematicPortArrangementWithPinCounts, type SchematicPortArrangementWithSides, type SchematicPortArrangementWithSizes, type SchematicTextProps, type SilkscreenCircleProps, type SilkscreenLineProps, type SilkscreenPathProps, type SilkscreenRectProps, type SilkscreenTextProps, type SmtPadProps, type SolderPasteProps, type SubcircuitGroupProps, type SubcircuitGroupPropsWithBool, type SubcircuitProps, type SupplierName, type SupplierPartNumbers, type SupplierProps, type SwitchProps, type TraceHintProps, type TraceProps, type TransistorProps, type ViaProps, autorouterConfig, autorouterProp, baseGroupProps, base_manual_edit_event, batteryPins, batteryProps, boardProps, bugProps, cadModelBase, cadModelJscad, cadModelObj, cadModelProp, cadModelStl, capacitorPins, capacitorProps, chipProps, circleSmtPadProps, circleSolderPasteProps, commonComponentProps, commonLayoutProps, componentProps, constrainedLayoutProps, constraintProps, crystalPins, crystalProps, diodePins, diodeProps, direction, directionAlongEdge, distanceOrMultiplier, edit_component_location_event, edit_pcb_component_location_event, edit_schematic_component_location_event, edit_trace_hint_event, explicitPinSideDefinition, fabricationNotePathProps, fabricationNoteTextProps, footprintProp, footprintProps, groupProps, holeProps, inductorPins, inductorProps, jumperProps, ledPins, ledProps, lrPins, lrPolarPins, manual_edit_event, manual_edits_file, manual_pcb_placement, manual_schematic_placement, manual_trace_hint, mosfetPins, mosfetProps, netAliasProps, netProps, pcbKeepoutProps, pcbLayoutProps, pcbSameXConstraintProps, pcbSameYConstraintProps, pcbTraceProps, pcbXDistConstraintProps, pcbYDistConstraintProps, pinHeaderProps, pinLabelsProp, platedHoleProps, point3, portHints, portProps, portRef, potentiometerPins, potentiometerProps, powerSourceProps, pushButtonProps, rectSmtPadProps, rectSolderPasteProps, resistorPins, resistorProps, resonatorProps, rotatedRectSmtPadProps, rotationPoint3, routeHintPointProps, schematicBoxProps, schematicLineProps, schematicPathProps, schematicPinArrangement, schematicPinStyle, schematicPortArrangement, schematicTextProps, silkscreenCircleProps, silkscreenLineProps, silkscreenPathProps, silkscreenRectProps, silkscreenTextProps, smtPadProps, solderPasteProps, subcircuitGroupProps, subcircuitGroupPropsWithBool, subcircuitProps, supplierProps, switchProps, traceHintProps, traceProps, transistorPins, transistorProps, viaProps };
|
package/dist/index.js
CHANGED
|
@@ -148,6 +148,7 @@ var schematicPortArrangement = z7.object({
|
|
|
148
148
|
topSide: explicitPinSideDefinition.optional(),
|
|
149
149
|
bottomSide: explicitPinSideDefinition.optional()
|
|
150
150
|
});
|
|
151
|
+
var schematicPinArrangement = schematicPortArrangement;
|
|
151
152
|
expectTypesMatch(true);
|
|
152
153
|
|
|
153
154
|
// lib/common/schematicPinStyle.ts
|
|
@@ -348,8 +349,9 @@ var chipProps = commonComponentProps.extend({
|
|
|
348
349
|
z21.number().or(z21.string()),
|
|
349
350
|
z21.string().or(z21.array(z21.string()).readonly())
|
|
350
351
|
).optional(),
|
|
351
|
-
|
|
352
|
-
|
|
352
|
+
internallyConnectedPins: z21.array(z21.array(z21.string())).optional(),
|
|
353
|
+
externallyConnectedPins: z21.array(z21.array(z21.string())).optional(),
|
|
354
|
+
schPinArrangement: schematicPortArrangement.optional(),
|
|
353
355
|
schPortArrangement: schematicPortArrangement.optional(),
|
|
354
356
|
schPinStyle: schematicPinStyle.optional(),
|
|
355
357
|
schPinSpacing: distance6.optional(),
|
|
@@ -677,8 +679,11 @@ var netAliasProps = z39.object({
|
|
|
677
679
|
expectTypesMatch(true);
|
|
678
680
|
|
|
679
681
|
// lib/components/push-button.ts
|
|
680
|
-
import "zod";
|
|
681
|
-
var pushButtonProps = commonComponentProps.extend({
|
|
682
|
+
import { z as z40 } from "zod";
|
|
683
|
+
var pushButtonProps = commonComponentProps.extend({
|
|
684
|
+
internallyConnectedPins: z40.array(z40.array(z40.string())).optional()
|
|
685
|
+
});
|
|
686
|
+
expectTypesMatch(true);
|
|
682
687
|
|
|
683
688
|
// lib/components/subcircuit.ts
|
|
684
689
|
var subcircuitProps = subcircuitGroupProps;
|
|
@@ -1001,6 +1006,7 @@ export {
|
|
|
1001
1006
|
schematicBoxProps,
|
|
1002
1007
|
schematicLineProps,
|
|
1003
1008
|
schematicPathProps,
|
|
1009
|
+
schematicPinArrangement,
|
|
1004
1010
|
schematicPinStyle,
|
|
1005
1011
|
schematicPortArrangement,
|
|
1006
1012
|
schematicTextProps,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/typecheck.ts","../lib/common/direction.ts","../lib/common/portHints.ts","../lib/common/layout.ts","../lib/common/cadModel.ts","../lib/common/point3.ts","../lib/common/footprintProp.ts","../lib/common/schematicPinDefinitions.ts","../lib/common/schematicPinStyle.ts","../lib/components/board.ts","../lib/common/point.ts","../lib/components/group.ts","../lib/manual-edits/manual-edit-events/base_manual_edit_event.ts","../lib/manual-edits/manual-edit-events/edit_pcb_component_location_event.ts","../lib/manual-edits/manual-edit-events/edit_trace_hint_event.ts","../lib/manual-edits/manual-edit-events/edit_schematic_component_location_event.ts","../lib/manual-edits/manual_edit_event.ts","../lib/manual-edits/manual_edits_file.ts","../lib/manual-edits/manual_pcb_placement.ts","../lib/manual-edits/manual_trace_hint.ts","../lib/manual-edits/manual_schematic_placement.ts","../lib/components/chip.ts","../lib/components/jumper.ts","../lib/components/platedhole.ts","../lib/components/resistor.ts","../lib/components/potentiometer.ts","../lib/components/crystal.ts","../lib/components/resonator.ts","../lib/components/capacitor.ts","../lib/components/net.ts","../lib/components/constrainedlayout.ts","../lib/common/distance.ts","../lib/components/constraint.ts","../lib/components/smtpad.ts","../lib/components/solderpaste.ts","../lib/components/hole.ts","../lib/components/trace.ts","../lib/components/footprint.ts","../lib/components/battery.ts","../lib/components/pin-header.ts","../lib/components/netalias.ts","../lib/components/push-button.ts","../lib/components/subcircuit.ts","../lib/components/transistor.ts","../lib/components/mosfet.ts","../lib/components/inductor.ts","../lib/components/diode.ts","../lib/components/led.ts","../lib/components/switch.ts","../lib/components/fabrication-note-text.ts","../lib/components/fabrication-note-path.ts","../lib/components/pcb-trace.ts","../lib/components/via.ts","../lib/components/pcb-keepout.ts","../lib/components/power-source.ts","../lib/components/schematic-box.ts","../lib/components/schematic-line.ts","../lib/components/schematic-text.ts","../lib/components/schematic-path.ts","../lib/components/silkscreen-text.ts","../lib/components/silkscreen-path.ts","../lib/components/silkscreen-line.ts","../lib/components/silkscreen-rect.ts","../lib/components/silkscreen-circle.ts","../lib/components/trace-hint.ts","../lib/components/port.ts"],"sourcesContent":["import type { TypeEqual } from \"ts-expect\"\n\ntype IsNever<T> = [T] extends [never] ? true : false\n\ntype GetMismatchedProps<T1, T2> = {\n [K in keyof T1 & keyof T2]: T1[K] extends T2[K]\n ? T2[K] extends T1[K]\n ? never\n : K\n : K\n}[keyof T1 & keyof T2]\n\nexport const expectTypesMatch = <\n const T1,\n const T2,\n T3 = Exclude<keyof T1, keyof T2>,\n T4 = Exclude<keyof T2, keyof T1>,\n T5 = GetMismatchedProps<T1, T2>,\n>(\n shouldBe: IsNever<T3> extends true\n ? IsNever<T4> extends true\n ? IsNever<T5> extends true\n ? TypeEqual<T1, T2>\n : `property ${T5 extends string ? T5 : \"\"} has mismatched types`\n : `extra props ${T4 extends string ? T4 : \"\"}`\n : `missing props ${T3 extends string ? T3 : \"\"}`,\n): void => {}\n\n// ------ TESTS -------\n\nexpectTypesMatch<\n {\n a: number\n },\n {\n a: number\n b: number\n }\n>(\"extra props b\")\n\nexpectTypesMatch<\n {\n a: number\n b: number\n },\n {\n a: number\n }\n>(\"missing props b\")\n\nexpectTypesMatch<\n {\n a: number\n },\n {\n a: number\n }\n>(true)\n\nexpectTypesMatch<\n {\n a: number\n },\n {\n a: string\n }\n>(\"property a has mismatched types\")\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nexport const direction = z.enum([\"up\", \"down\", \"left\", \"right\"])\nexport type Direction = \"up\" | \"down\" | \"left\" | \"right\"\n\nexport type DirectionAlongEdge =\n | \"top-to-bottom\"\n | \"left-to-right\"\n | \"bottom-to-top\"\n | \"right-to-left\"\n\nexport const directionAlongEdge = z.enum([\n \"top-to-bottom\",\n \"left-to-right\",\n \"bottom-to-top\",\n \"right-to-left\",\n])\n\nexpectTypesMatch<Direction, z.infer<typeof direction>>(true)\nexpectTypesMatch<DirectionAlongEdge, z.infer<typeof directionAlongEdge>>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const portHints = z.array(z.string().or(z.number()))\nexport type PortHints = (string | number)[]\n\nexpectTypesMatch<PortHints, z.infer<typeof portHints>>(true)\n","import {\n type LayerRefInput,\n distance,\n layer_ref,\n rotation,\n supplier_name,\n} from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nimport { type CadModelProp, cadModelProp } from \"./cadModel\"\nimport { type Footprint, footprintProp } from \"./footprintProp\"\n\nexport interface PcbLayoutProps {\n pcbX?: string | number\n pcbY?: string | number\n pcbRotation?: string | number\n layer?: LayerRefInput\n}\n\nexport interface CommonLayoutProps {\n pcbX?: string | number\n pcbY?: string | number\n pcbRotation?: string | number\n\n schX?: string | number\n schY?: string | number\n schRotation?: string | number\n\n layer?: LayerRefInput\n footprint?: Footprint\n}\n\nexport const pcbLayoutProps = z.object({\n pcbX: distance.optional(),\n pcbY: distance.optional(),\n pcbRotation: rotation.optional(),\n layer: layer_ref.optional(),\n})\ntype InferredPcbLayoutProps = z.input<typeof pcbLayoutProps>\nexpectTypesMatch<PcbLayoutProps, InferredPcbLayoutProps>(true)\n\nexport const commonLayoutProps = z.object({\n pcbX: distance.optional(),\n pcbY: distance.optional(),\n pcbRotation: rotation.optional(),\n schX: distance.optional(),\n schY: distance.optional(),\n schRotation: rotation.optional(),\n layer: layer_ref.optional(),\n footprint: footprintProp.optional(),\n})\n\ntype InferredCommonLayoutProps = z.input<typeof commonLayoutProps>\nexpectTypesMatch<CommonLayoutProps, InferredCommonLayoutProps>(true)\n\nexport type SupplierName =\n | \"jlcpcb\"\n | \"macrofab\"\n | \"pcbway\"\n | \"digikey\"\n | \"mouser\"\n | \"lcsc\"\nexport type SupplierPartNumbers = { [k in SupplierName]?: string[] }\nexport interface SupplierProps {\n supplierPartNumbers?: SupplierPartNumbers\n}\nexport const supplierProps = z.object({\n supplierPartNumbers: z.record(supplier_name, z.array(z.string())).optional(),\n})\n\nexpectTypesMatch<SupplierProps, z.input<typeof supplierProps>>(true)\n\nexport interface CommonComponentProps extends CommonLayoutProps {\n key?: any\n name: string\n supplierPartNumbers?: SupplierPartNumbers\n cadModel?: CadModelProp\n children?: any\n symbolName?: string\n}\n\nexport const commonComponentProps = commonLayoutProps\n .merge(supplierProps)\n .extend({\n key: z.any().optional(),\n name: z.string(),\n cadModel: cadModelProp.optional(),\n children: z.any().optional(),\n symbolName: z.string().optional(),\n })\n\ntype InferredCommonComponentProps = z.input<typeof commonComponentProps>\nexpectTypesMatch<CommonComponentProps, InferredCommonComponentProps>(true)\n\nexport const componentProps = commonComponentProps\nexport type ComponentProps = z.input<typeof componentProps>\n\nexport const lrPins = [\"pin1\", \"left\", \"pin2\", \"right\"] as const\nexport const lrPolarPins = [\n \"pin1\",\n \"left\",\n \"anode\",\n \"pos\",\n \"pin2\",\n \"right\",\n \"cathode\",\n \"neg\",\n] as const\n\nexport const distanceOrMultiplier = distance.or(z.enum([\"2x\", \"3x\", \"4x\"]))\n","import { z } from \"zod\"\nimport { point3 } from \"./point3\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const rotationPoint3 = z.object({\n x: z.union([z.number(), z.string()]),\n y: z.union([z.number(), z.string()]),\n z: z.union([z.number(), z.string()]),\n})\n\nexport interface CadModelBase {\n rotationOffset?:\n | number\n | { x: number | string; y: number | string; z: number | string }\n positionOffset?: {\n x: number | string\n y: number | string\n z: number | string\n }\n size?: { x: number | string; y: number | string; z: number | string }\n}\n\nexport const cadModelBase = z.object({\n rotationOffset: z.number().or(rotationPoint3).optional(),\n positionOffset: point3.optional(),\n size: point3.optional(),\n})\n\nexpectTypesMatch<CadModelBase, z.input<typeof cadModelBase>>(true)\n\nexport interface CadModelStl extends CadModelBase {\n stlUrl: string\n}\nexport const cadModelStl = cadModelBase.extend({\n stlUrl: z.string(),\n})\n\nexport interface CadModelObj extends CadModelBase {\n objUrl: string\n mtlUrl?: string\n}\nexport const cadModelObj = cadModelBase.extend({\n objUrl: z.string(),\n mtlUrl: z.string().optional(),\n})\n\nexport interface CadModelJscad extends CadModelBase {\n jscad: Record<string, any>\n}\nexport const cadModelJscad = cadModelBase.extend({\n jscad: z.record(z.any()),\n})\n\nexport type CadModelProp = string | CadModelStl | CadModelObj | CadModelJscad\n\nexport const cadModelProp = z.union([\n z.string(),\n cadModelStl,\n cadModelObj,\n cadModelJscad,\n])\n\ntype InferredCadModelProp = z.input<typeof cadModelProp>\nexpectTypesMatch<CadModelProp, InferredCadModelProp>(true)\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const point3 = z.object({\n x: distance,\n y: distance,\n z: distance,\n})\n","import type { LayerRef } from \"circuit-json\"\nimport type { ReactElement } from \"react\"\nimport { z } from \"zod\"\n\n/**\n * This is an abbreviated definition of the soup elements that you can find here:\n * https://docs.tscircuit.com/api-reference/advanced/soup#pcb-smtpad\n */\nexport type FootprintSoupElements = {\n type: \"pcb_smtpad\" | \"pcb_plated_hole\"\n x: string | number\n y: string | number\n layer?: LayerRef\n holeDiameter?: string | number\n outerDiameter?: string | number\n shape?: \"circle\" | \"rect\"\n width?: string | number\n height?: string | number\n portHints?: string[]\n}\n\nexport type Footprint = string | ReactElement | FootprintSoupElements[]\nexport const footprintProp = z.custom<Footprint>((v) => true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\n/**\n * @deprecated Use SchematicPortArrangementWithPinCounts instead.\n */\nexport interface SchematicPortArrangementWithSizes {\n leftSize?: number\n topSize?: number\n rightSize?: number\n bottomSize?: number\n}\n\n/**\n * Specifies the number of pins on each side of the schematic box component.\n */\nexport interface SchematicPortArrangementWithPinCounts {\n leftPinCount?: number\n topPinCount?: number\n rightPinCount?: number\n bottomPinCount?: number\n}\n\nexport interface PinSideDefinition {\n pins: Array<number | string>\n direction:\n | \"top-to-bottom\"\n | \"left-to-right\"\n | \"bottom-to-top\"\n | \"right-to-left\"\n}\n\nexport interface SchematicPortArrangementWithSides {\n leftSide?: PinSideDefinition\n topSide?: PinSideDefinition\n rightSide?: PinSideDefinition\n bottomSide?: PinSideDefinition\n}\n\nexport interface SchematicPortArrangement\n extends SchematicPortArrangementWithSizes,\n SchematicPortArrangementWithSides,\n SchematicPortArrangementWithPinCounts {}\n\nexport const explicitPinSideDefinition = z.object({\n pins: z.array(z.union([z.number(), z.string()])),\n direction: z.union([\n z.literal(\"top-to-bottom\"),\n z.literal(\"left-to-right\"),\n z.literal(\"bottom-to-top\"),\n z.literal(\"right-to-left\"),\n ]),\n})\n\nexport const schematicPortArrangement = z.object({\n leftSize: z.number().optional().describe(\"@deprecated, use leftPinCount\"),\n topSize: z.number().optional().describe(\"@deprecated, use topPinCount\"),\n rightSize: z.number().optional().describe(\"@deprecated, use rightPinCount\"),\n bottomSize: z.number().optional().describe(\"@deprecated, use bottomPinCount\"),\n leftPinCount: z.number().optional(),\n rightPinCount: z.number().optional(),\n topPinCount: z.number().optional(),\n bottomPinCount: z.number().optional(),\n leftSide: explicitPinSideDefinition.optional(),\n rightSide: explicitPinSideDefinition.optional(),\n topSide: explicitPinSideDefinition.optional(),\n bottomSide: explicitPinSideDefinition.optional(),\n})\n\nexpectTypesMatch<\n SchematicPortArrangement,\n z.input<typeof schematicPortArrangement>\n>(true)\n","import { distance } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport type SchematicPinStyle = Record<\n string,\n {\n leftMargin?: number | string\n rightMargin?: number | string\n topMargin?: number | string\n bottomMargin?: number | string\n }\n>\n\nexport const schematicPinStyle = z.record(\n z.object({\n leftMargin: distance.optional(),\n rightMargin: distance.optional(),\n topMargin: distance.optional(),\n bottomMargin: distance.optional(),\n }),\n)\n\nexpectTypesMatch<SchematicPinStyle, z.input<typeof schematicPinStyle>>(true)\n","import type { LayoutBuilder, ManualEditFile } from \"@tscircuit/layout\"\nimport { distance } from \"circuit-json\"\nimport type { Distance } from \"lib/common/distance\"\nimport { type Point, point } from \"lib/common/point\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nimport { subcircuitGroupProps, type SubcircuitGroupProps } from \"./group\"\n\nexport interface BoardProps extends Omit<SubcircuitGroupProps, \"subcircuit\"> {\n width?: number | string\n height?: number | string\n outline?: Point[]\n outlineOffsetX?: number | string\n outlineOffsetY?: number | string\n}\n\nexport const boardProps = subcircuitGroupProps.extend({\n width: distance.optional(),\n height: distance.optional(),\n outline: z.array(point).optional(),\n outlineOffsetX: distance.optional(),\n outlineOffsetY: distance.optional(),\n})\n\ntype InferredBoardProps = z.input<typeof boardProps>\nexpectTypesMatch<BoardProps, InferredBoardProps>(true)\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const point = z.object({\n x: distance,\n y: distance,\n})\n\nexport type Point = { x: number | string; y: number | string }\n","import type { LayoutBuilder } from \"@tscircuit/layout\"\nimport { length } from \"circuit-json\"\nimport type { Distance } from \"lib/common/distance\"\nimport {\n type CommonLayoutProps,\n commonLayoutProps,\n type SupplierPartNumbers,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nimport type { AnySourceComponent, PcbTrace } from \"circuit-json\"\nimport {\n manual_edits_file,\n type ManualEditsFile,\n type ManualEditsFileInput,\n} from \"lib/manual-edits\"\n\nexport interface BaseGroupProps extends CommonLayoutProps {\n name?: string\n key?: any\n children?: any\n}\n\nexport type PartsEngine = {\n findPart: (params: {\n sourceComponent: AnySourceComponent\n footprinterString?: string\n }) => Promise<SupplierPartNumbers> | SupplierPartNumbers\n}\n\nexport interface PcbRouteCache {\n pcbTraces: PcbTrace[]\n cacheKey: string\n}\n\nexport interface AutorouterConfig {\n serverUrl?: string\n inputFormat?: \"simplified\" | \"circuit-json\"\n serverMode?: \"job\" | \"solve-endpoint\"\n cache?: PcbRouteCache\n}\n\nexport type AutorouterProp =\n | AutorouterConfig\n | \"sequential-trace\"\n | \"subcircuit\"\n | \"auto\"\n | \"auto-local\"\n | \"auto-cloud\"\n\nexport const autorouterConfig = z.object({\n serverUrl: z.string().optional(),\n inputFormat: z.enum([\"simplified\", \"circuit-json\"]).optional(),\n serverMode: z.enum([\"job\", \"solve-endpoint\"]).optional(),\n cache: z.custom<PcbRouteCache>((v) => true).optional(),\n})\n\nexport const autorouterProp = z.union([\n autorouterConfig,\n z.literal(\"sequential-trace\"),\n z.literal(\"subcircuit\"),\n z.literal(\"auto\"),\n z.literal(\"auto-local\"),\n z.literal(\"auto-cloud\"),\n])\n\nexport interface SubcircuitGroupProps extends BaseGroupProps {\n layout?: LayoutBuilder\n manualEdits?: ManualEditsFileInput\n routingDisabled?: boolean\n defaultTraceWidth?: Distance\n minTraceWidth?: Distance\n pcbRouteCache?: PcbRouteCache\n\n autorouter?: AutorouterProp\n\n /**\n * If true, we'll automatically layout the schematic for this group. Must be\n * a subcircuit (currently). This is eventually going to be replaced with more\n * sophisticated layout options/modes and will be enabled by default.\n */\n schAutoLayoutEnabled?: boolean\n\n /**\n * If true, net labels will automatically be created for complex traces\n */\n schTraceAutoLabelEnabled?: boolean\n\n partsEngine?: PartsEngine\n}\n\nexport interface SubcircuitGroupPropsWithBool extends SubcircuitGroupProps {\n subcircuit: true\n}\n\nexport interface NonSubcircuitGroupProps extends BaseGroupProps {\n subcircuit?: false | undefined\n}\n\nexport type GroupProps = SubcircuitGroupPropsWithBool | NonSubcircuitGroupProps\n\nexport const baseGroupProps = commonLayoutProps.extend({\n name: z.string().optional(),\n children: z.any().optional(),\n key: z.any().optional(),\n})\n\nexport const subcircuitGroupProps = baseGroupProps.extend({\n layout: z.custom<LayoutBuilder>((v) => true).optional(),\n manualEdits: manual_edits_file.optional(),\n schAutoLayoutEnabled: z.boolean().optional(),\n schTraceAutoLabelEnabled: z.boolean().optional(),\n routingDisabled: z.boolean().optional(),\n defaultTraceWidth: length.optional(),\n minTraceWidth: length.optional(),\n partsEngine: z.custom<PartsEngine>((v) => \"findPart\" in v).optional(),\n pcbRouteCache: z.custom<PcbRouteCache>((v) => true).optional(),\n autorouter: autorouterProp.optional(),\n})\n\nexport const subcircuitGroupPropsWithBool = subcircuitGroupProps.extend({\n subcircuit: z.literal(true),\n})\n\nexport const groupProps = z.discriminatedUnion(\"subcircuit\", [\n baseGroupProps.extend({ subcircuit: z.literal(false).optional() }),\n subcircuitGroupPropsWithBool,\n])\n\ntype InferredBaseGroupProps = z.input<typeof baseGroupProps>\ntype InferredSubcircuitGroupPropsWithBool = z.input<\n typeof subcircuitGroupPropsWithBool\n>\n\nexpectTypesMatch<BaseGroupProps, InferredBaseGroupProps>(true)\nexpectTypesMatch<\n SubcircuitGroupPropsWithBool,\n InferredSubcircuitGroupPropsWithBool\n>(true)\n\ntype InferredGroupProps = z.input<typeof groupProps>\nexpectTypesMatch<GroupProps, InferredGroupProps>(true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport const base_manual_edit_event = z.object({\n edit_event_id: z.string(),\n in_progress: z.boolean().optional(),\n created_at: z.number(),\n})\n\nexport interface BaseManualEditEvent {\n edit_event_id: string\n in_progress?: boolean\n created_at: number\n}\n\nexport type BaseManualEditEventInput = z.input<typeof base_manual_edit_event>\n\nexpectTypesMatch<BaseManualEditEvent, z.infer<typeof base_manual_edit_event>>(\n true,\n)\n","import { z } from \"zod\"\nimport {\n base_manual_edit_event,\n type BaseManualEditEvent,\n} from \"./base_manual_edit_event\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const edit_pcb_component_location_event = base_manual_edit_event.extend({\n pcb_edit_event_type: z\n .literal(\"edit_component_location\")\n .describe(\"deprecated\"),\n edit_event_type: z.literal(\"edit_pcb_component_location\"),\n pcb_component_id: z.string(),\n original_center: z.object({ x: z.number(), y: z.number() }),\n new_center: z.object({ x: z.number(), y: z.number() }),\n})\n\n/** @deprecated use edit_pcb_component_location_event instead */\nexport const edit_component_location_event = edit_pcb_component_location_event\n\nexport interface EditPcbComponentLocationEvent extends BaseManualEditEvent {\n edit_event_type: \"edit_pcb_component_location\"\n /** @deprecated */\n pcb_edit_event_type: \"edit_component_location\"\n pcb_component_id: string\n original_center: { x: number; y: number }\n new_center: { x: number; y: number }\n}\n\nexport type EditPcbComponentLocationEventInput = z.input<\n typeof edit_pcb_component_location_event\n>\n\nexpectTypesMatch<\n EditPcbComponentLocationEvent,\n z.infer<typeof edit_pcb_component_location_event>\n>(true)\n","import { z } from \"zod\"\nimport {\n base_manual_edit_event,\n type BaseManualEditEvent,\n} from \"./base_manual_edit_event\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { route_hint_point } from \"circuit-json\"\n\nexport const edit_trace_hint_event = base_manual_edit_event.extend({\n pcb_edit_event_type: z.literal(\"edit_trace_hint\").describe(\"deprecated\"),\n edit_event_type: z.literal(\"edit_pcb_trace_hint\").optional(),\n pcb_port_id: z.string(),\n pcb_trace_hint_id: z.string().optional(),\n route: z.array(\n z.object({ x: z.number(), y: z.number(), via: z.boolean().optional() }),\n ),\n})\n\nexport interface EditTraceHintEvent extends BaseManualEditEvent {\n /** @deprecated */\n pcb_edit_event_type: \"edit_trace_hint\"\n edit_event_type?: \"edit_pcb_trace_hint\"\n pcb_port_id: string\n pcb_trace_hint_id?: string\n route: Array<{ x: number; y: number; via?: boolean }>\n}\n\nexport type EditTraceHintEventInput = z.input<typeof edit_trace_hint_event>\n\nexpectTypesMatch<EditTraceHintEvent, z.infer<typeof edit_trace_hint_event>>(\n true,\n)\n","import { z } from \"zod\"\nimport {\n base_manual_edit_event,\n type BaseManualEditEvent,\n} from \"./base_manual_edit_event\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const edit_schematic_component_location_event =\n base_manual_edit_event.extend({\n edit_event_type: z.literal(\"edit_schematic_component_location\"),\n schematic_component_id: z.string(),\n original_center: z.object({ x: z.number(), y: z.number() }),\n new_center: z.object({ x: z.number(), y: z.number() }),\n })\n\nexport interface EditSchematicComponentLocationEvent\n extends BaseManualEditEvent {\n edit_event_type: \"edit_schematic_component_location\"\n schematic_component_id: string\n original_center: { x: number; y: number }\n new_center: { x: number; y: number }\n}\n\nexport type EditSchematicComponentLocationEventInput = z.input<\n typeof edit_schematic_component_location_event\n>\n\nexpectTypesMatch<\n EditSchematicComponentLocationEvent,\n z.infer<typeof edit_schematic_component_location_event>\n>(true)\n","import { z } from \"zod\"\nimport {\n edit_pcb_component_location_event,\n type EditPcbComponentLocationEvent,\n} from \"./manual-edit-events/edit_pcb_component_location_event\"\nimport {\n edit_schematic_component_location_event,\n type EditSchematicComponentLocationEvent,\n} from \"./manual-edit-events/edit_schematic_component_location_event\"\nimport {\n edit_trace_hint_event,\n type EditTraceHintEvent,\n} from \"./manual-edit-events/edit_trace_hint_event\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport type ManualEditEvent =\n | EditPcbComponentLocationEvent\n | EditTraceHintEvent\n | EditSchematicComponentLocationEvent\n\nexport const manual_edit_event = z.union([\n edit_pcb_component_location_event,\n edit_trace_hint_event,\n edit_schematic_component_location_event,\n])\n\nexport type ManualEditEventInput = z.input<typeof manual_edit_event>\ntype InferredManualEditEvent = z.infer<typeof manual_edit_event>\n\nexpectTypesMatch<ManualEditEvent, InferredManualEditEvent>(true)\n","import { z } from \"zod\"\nimport {\n manual_pcb_placement,\n type ManualPcbPlacement,\n} from \"./manual_pcb_placement\"\nimport { manual_edit_event } from \"./manual_edit_event\"\nimport { manual_trace_hint, type ManualTraceHint } from \"./manual_trace_hint\"\nimport {\n manual_schematic_placement,\n type ManualSchematicPlacement,\n} from \"./manual_schematic_placement\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const manual_edits_file = z.object({\n pcb_placements: z.array(manual_pcb_placement).optional(),\n manual_trace_hints: z.array(manual_trace_hint).optional(),\n schematic_placements: z.array(manual_schematic_placement).optional(),\n})\n\nexport interface ManualEditsFile {\n pcb_placements?: ManualPcbPlacement[]\n manual_trace_hints?: ManualTraceHint[]\n schematic_placements?: ManualSchematicPlacement[]\n}\n\nexport type ManualEditsFileInput = z.input<typeof manual_edits_file>\n\nexpectTypesMatch<ManualEditsFile, z.infer<typeof manual_edits_file>>(true)\n","import { z } from \"zod\"\nimport { point, type Point } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const manual_pcb_placement = z.object({\n selector: z.string(),\n relative_to: z\n .string()\n .optional()\n .default(\"group_center\")\n .describe(\"Can be a selector or 'group_center'\"),\n center: point,\n})\n\nexport interface ManualPcbPlacement {\n selector: string\n relative_to: string\n center: Point\n}\n\nexport type ManualPcbPlacementInput = z.input<typeof manual_pcb_placement>\ntype InferredManualPcbPlacement = z.infer<typeof manual_pcb_placement>\n\nexpectTypesMatch<ManualPcbPlacement, InferredManualPcbPlacement>(true)\n","import { z } from \"zod\"\nimport { layer_ref, route_hint_point, type RouteHintPoint } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const manual_trace_hint = z.object({\n pcb_port_selector: z.string(),\n offsets: z.array(route_hint_point),\n})\n\nexport interface ManualTraceHint {\n pcb_port_selector: string\n offsets: Array<RouteHintPoint>\n}\n\nexport type ManualTraceHintInput = z.input<typeof manual_trace_hint>\n\nexpectTypesMatch<ManualTraceHint, z.infer<typeof manual_trace_hint>>(true)\n","import { z } from \"zod\"\nimport { point, type Point } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const manual_schematic_placement = z.object({\n selector: z.string(),\n relative_to: z\n .string()\n .optional()\n .default(\"group_center\")\n .describe(\"Can be a selector or 'group_center'\"),\n center: point,\n})\n\nexport interface ManualSchematicPlacement {\n selector: string\n relative_to: string\n center: Point\n}\n\nexport type ManualSchematicPlacementInput = z.input<\n typeof manual_schematic_placement\n>\ntype InferredManualSchematicPlacement = z.infer<\n typeof manual_schematic_placement\n>\n\nexpectTypesMatch<ManualSchematicPlacement, InferredManualSchematicPlacement>(\n true,\n)\n","import { distance } from \"circuit-json\"\nimport type { Distance } from \"lib/common/distance\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport {\n type SchematicPortArrangement,\n schematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\nimport {\n type SchematicPinStyle,\n schematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface ChipProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string | readonly string[]>\n schPortArrangement?: SchematicPortArrangement\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: Distance\n schWidth?: Distance\n schHeight?: Distance\n noSchematicRepresentation?: boolean\n internallyConnectedPorts?: string[][]\n externallyConnectedPorts?: string[][]\n}\n\nexport type PinLabels = Record<\n number | string,\n string | readonly string[] | string[]\n>\n\nexport const pinLabelsProp = z.record(\n z.number().or(z.string()),\n z.string().or(z.array(z.string()).readonly()).or(z.array(z.string())),\n)\n\nexpectTypesMatch<PinLabels, z.input<typeof pinLabelsProp>>(true)\n\nexport const chipProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z\n .record(\n z.number().or(z.string()),\n z.string().or(z.array(z.string()).readonly()),\n )\n .optional(),\n internallyConnectedPorts: z.array(z.array(z.string())).optional(),\n externallyConnectedPorts: z.array(z.array(z.string())).optional(),\n schPortArrangement: schematicPortArrangement.optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.optional(),\n noSchematicRepresentation: z.boolean().optional(),\n})\n\n/**\n * @deprecated Use ChipProps instead.\n */\nexport const bugProps = chipProps\nexport type InferredChipProps = z.input<typeof chipProps>\n\nexpectTypesMatch<InferredChipProps, ChipProps>(true)\n","import { distance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport {\n type SchematicPortArrangement,\n schematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\nimport {\n type SchematicPinStyle,\n schematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface JumperProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string | string[]>\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: number | string\n schWidth?: number | string\n schHeight?: number | string\n schDirection?: \"left\" | \"right\"\n schPortArrangement?: SchematicPortArrangement\n}\n\nexport const jumperProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z\n .record(z.number().or(z.string()), z.string().or(z.array(z.string())))\n .optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.optional(),\n schDirection: z.enum([\"left\", \"right\"]).optional(),\n schPortArrangement: schematicPortArrangement.optional(),\n})\n\ntype InferredJumperProps = z.input<typeof jumperProps>\nexpectTypesMatch<JumperProps, InferredJumperProps>(true)\n","import { distance } from \"circuit-json\"\nimport type { PcbLayoutProps } from \"lib/common/layout\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { type PortHints, portHints } from \"lib/common/portHints\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface CirclePlatedHoleProps\n extends Omit<PcbLayoutProps, \"pcbRotation\" | \"layer\"> {\n name?: string\n shape: \"circle\"\n holeDiameter: number | string\n outerDiameter: number | string\n portHints?: PortHints\n}\n\nexport interface OvalPlatedHoleProps\n extends Omit<PcbLayoutProps, \"pcbRotation\" | \"layer\"> {\n name?: string\n shape: \"oval\"\n outerWidth: number | string\n outerHeight: number | string\n innerWidth: number | string\n innerHeight: number | string\n portHints?: PortHints\n}\n\nexport interface PillPlatedHoleProps\n extends Omit<PcbLayoutProps, \"pcbRotation\" | \"layer\"> {\n name?: string\n shape: \"pill\"\n outerWidth: number | string\n outerHeight: number | string\n innerWidth: number | string\n innerHeight: number | string\n portHints?: PortHints\n}\n\nexport type PlatedHoleProps =\n | CirclePlatedHoleProps\n | OvalPlatedHoleProps\n | PillPlatedHoleProps\n\nexport const platedHoleProps = z.discriminatedUnion(\"shape\", [\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"circle\"),\n holeDiameter: distance,\n outerDiameter: distance,\n portHints: portHints.optional(),\n }),\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"oval\"),\n outerWidth: distance,\n outerHeight: distance,\n innerWidth: distance,\n innerHeight: distance,\n portHints: portHints.optional(),\n }),\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"pill\"),\n outerWidth: distance,\n outerHeight: distance,\n innerWidth: distance,\n innerHeight: distance,\n portHints: portHints.optional(),\n }),\n])\n\ntype InferredPlatedHoleProps = z.input<typeof platedHoleProps>\nexpectTypesMatch<PlatedHoleProps, InferredPlatedHoleProps>(true)\n","import { resistance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n lrPins,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface ResistorProps extends CommonComponentProps {\n resistance: number | string\n pullupFor?: string\n pullupTo?: string\n pulldownFor?: string\n pulldownTo?: string\n}\n\nexport const resistorProps = commonComponentProps.extend({\n resistance,\n\n pullupFor: z.string().optional(),\n pullupTo: z.string().optional(),\n\n pulldownFor: z.string().optional(),\n pulldownTo: z.string().optional(),\n})\nexport const resistorPins = lrPins\n\ntype InferredResistorProps = z.input<typeof resistorProps>\nexpectTypesMatch<ResistorProps, InferredResistorProps>(true)\n","import { resistance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n lrPins,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport type { z } from \"zod\"\n\nexport interface PotentiometerProps extends CommonComponentProps {\n maxResistance: number | string\n}\n\nexport const potentiometerProps = commonComponentProps.extend({\n maxResistance: resistance,\n})\nexport const potentiometerPins = lrPins\n\ntype InferredPotentiometerProps = z.input<typeof potentiometerProps>\nexpectTypesMatch<PotentiometerProps, InferredPotentiometerProps>(true)\n","import { frequency, capacitance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n lrPins,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport type PinVariant = \"2pin\" | \"4pin\"\n\nexport interface CrystalProps extends CommonComponentProps {\n frequency: number | string\n loadCapacitance: number | string\n pinVariant?: PinVariant\n}\n\nexport const crystalProps = commonComponentProps.extend({\n frequency: frequency,\n loadCapacitance: capacitance,\n pinVariant: z.enum([\"2pin\", \"4pin\"]).optional(),\n})\nexport const crystalPins = lrPins\n\ntype InferredCrystalProps = z.input<typeof crystalProps>\nexpectTypesMatch<CrystalProps, InferredCrystalProps>(true)\n","import { frequency, capacitance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport type ResonatorPinVariant = \"no_ground\" | \"ground_pin\" | \"two_ground_pins\"\n\nexport interface ResonatorProps extends CommonComponentProps {\n frequency: number | string\n loadCapacitance: number | string\n pinVariant?: ResonatorPinVariant\n}\n\nexport const resonatorProps = commonComponentProps.extend({\n frequency: frequency,\n loadCapacitance: capacitance,\n pinVariant: z.enum([\"no_ground\", \"ground_pin\", \"two_ground_pins\"]).optional(),\n})\n\ntype InferredResonatorProps = z.input<typeof resonatorProps>\nexpectTypesMatch<ResonatorProps, InferredResonatorProps>(true)\n","import { capacitance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n lrPolarPins,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface CapacitorProps extends CommonComponentProps {\n capacitance: number | string\n polarized?: boolean\n decouplingFor?: string\n decouplingTo?: string\n bypassFor?: string\n bypassTo?: string\n maxDecouplingTraceLength?: number\n}\n\nexport const capacitorProps = commonComponentProps.extend({\n capacitance,\n polarized: z.boolean().optional().default(false),\n decouplingFor: z.string().optional(),\n decouplingTo: z.string().optional(),\n bypassFor: z.string().optional(),\n bypassTo: z.string().optional(),\n maxDecouplingTraceLength: z.number().optional(),\n})\nexport const capacitorPins = lrPolarPins\n\nexpectTypesMatch<CapacitorProps, z.input<typeof capacitorProps>>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface NetProps {\n name: string\n}\n\nexport const netProps = z.object({\n name: z.string(),\n})\n\ntype InferredNetProps = z.input<typeof netProps>\nexpectTypesMatch<NetProps, InferredNetProps>(true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface ConstrainedLayoutProps {\n name?: string\n pcbOnly?: boolean\n schOnly?: boolean\n}\n\nexport const constrainedLayoutProps = z.object({\n name: z.string().optional(),\n pcbOnly: z.boolean().optional(),\n schOnly: z.boolean().optional(),\n})\n\nexport type InferredConstrainedLayoutProps = z.input<\n typeof constrainedLayoutProps\n>\n\nexpectTypesMatch<InferredConstrainedLayoutProps, ConstrainedLayoutProps>(true)\n","import { z } from \"zod\"\n\nexport type Distance = number | string\n\nexport { distance, length } from \"circuit-json\"\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport type { Distance } from \"lib/common/distance\"\nimport { distance } from \"lib/common/distance\"\nimport { z } from \"zod\"\n\nexport type PcbXDistConstraint = {\n pcb?: true\n xDist: Distance\n\n /**\n * Selector for left component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 leftedge\", \".R1 center\"\n */\n left: string\n\n /**\n * Selector for right component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 leftedge\", \".R1 center\"\n */\n right: string\n\n /**\n * If true, the provided distance is the distance between the closest edges of\n * the left and right components\n */\n edgeToEdge?: true\n\n /**\n * If true, the provided distance is the distance between the centers of the\n * left and right components\n */\n centerToCenter?: true\n}\n\nexport type PcbYDistConstraint = {\n pcb?: true\n yDist: Distance\n\n /**\n * Selector for top component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 topedge\", \".R1 center\"\n */\n top: string\n\n /**\n * Selector for bottom component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 bottomedge\", \".R1 center\"\n */\n bottom: string\n\n edgeToEdge?: true\n centerToCenter?: true\n}\n\nexport type PcbSameYConstraint = {\n pcb?: true\n sameY?: true\n\n /**\n * Selector for components, e.g. [\".U1\", \".R1\"], you can also specify the\n * edge or center of the component e.g. [\".R1 leftedge\", \".U1 center\"]\n */\n for: string[]\n}\n\nexport type PcbSameXConstraint = {\n pcb?: true\n sameX?: true\n /**\n * Selector for components, e.g. [\".U1\", \".R1\"], you can also specify the\n * edge or center of the component e.g. [\".R1 leftedge\", \".U1 center\"]\n */\n for: string[]\n}\n\nexport type ConstraintProps =\n | PcbXDistConstraint\n | PcbYDistConstraint\n | PcbSameYConstraint\n | PcbSameXConstraint\n\n// -----------------------------------------------------------------------------\n// Zod\n// -----------------------------------------------------------------------------\n\nexport const pcbXDistConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n xDist: distance,\n left: z.string(),\n right: z.string(),\n\n edgeToEdge: z.literal(true).optional(),\n centerToCenter: z.literal(true).optional(),\n})\nexpectTypesMatch<PcbXDistConstraint, z.input<typeof pcbXDistConstraintProps>>(\n true,\n)\n\nexport const pcbYDistConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n yDist: distance,\n top: z.string(),\n bottom: z.string(),\n\n edgeToEdge: z.literal(true).optional(),\n centerToCenter: z.literal(true).optional(),\n})\nexpectTypesMatch<PcbYDistConstraint, z.input<typeof pcbYDistConstraintProps>>(\n true,\n)\n\nexport const pcbSameYConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n sameY: z.literal(true).optional(),\n for: z.array(z.string()),\n})\nexpectTypesMatch<PcbSameYConstraint, z.input<typeof pcbSameYConstraintProps>>(\n true,\n)\n\nexport const pcbSameXConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n sameX: z.literal(true).optional(),\n for: z.array(z.string()),\n})\nexpectTypesMatch<PcbSameXConstraint, z.input<typeof pcbSameXConstraintProps>>(\n true,\n)\n\nexport const constraintProps = z.union([\n pcbXDistConstraintProps,\n pcbYDistConstraintProps,\n pcbSameYConstraintProps,\n pcbSameXConstraintProps,\n])\n\nexpectTypesMatch<ConstraintProps, z.input<typeof constraintProps>>(true)\n","import {\n pcbLayoutProps,\n type CommonLayoutProps,\n type PcbLayoutProps,\n} from \"lib/common/layout\"\nimport { z } from \"zod\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { portHints, type PortHints } from \"lib/common/portHints\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface RectSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"rect\"\n width: Distance\n height: Distance\n portHints?: PortHints\n}\n\nexport interface RotatedRectSmtPadProps\n extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"rotated_rect\"\n width: Distance\n height: Distance\n ccwRotation: number\n portHints?: PortHints\n}\n\nexport interface CircleSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"circle\"\n radius: Distance\n portHints?: PortHints\n}\n\nexport type SmtPadProps =\n | RectSmtPadProps\n | CircleSmtPadProps\n | RotatedRectSmtPadProps\n\n// ----------------------------------------------------------------------------\n// Zod\n// ----------------------------------------------------------------------------\n\nexport const rectSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n portHints: portHints.optional(),\n })\ntype InferredRectSmtPadProps = z.input<typeof rectSmtPadProps>\nexpectTypesMatch<InferredRectSmtPadProps, RectSmtPadProps>(true)\n\nexport const rotatedRectSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"rotated_rect\"),\n width: distance,\n height: distance,\n ccwRotation: z.number(),\n portHints: portHints.optional(),\n })\ntype InferredRotatedRectSmtPadProps = z.input<typeof rotatedRectSmtPadProps>\nexpectTypesMatch<InferredRotatedRectSmtPadProps, RotatedRectSmtPadProps>(true)\n\nexport const circleSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n portHints: portHints.optional(),\n })\ntype InferredCircleSmtPadProps = z.input<typeof circleSmtPadProps>\nexpectTypesMatch<InferredCircleSmtPadProps, CircleSmtPadProps>(true)\n\nexport const smtPadProps = z.union([\n circleSmtPadProps,\n rectSmtPadProps,\n rotatedRectSmtPadProps,\n])\n\nexport type InferredSmtPadProps = z.input<typeof smtPadProps>\nexpectTypesMatch<InferredSmtPadProps, SmtPadProps>(true)\n","import { pcbLayoutProps, type PcbLayoutProps } from \"lib/common/layout\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { boolean, string, z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface RectSolderPasteProps\n extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"rect\"\n width: Distance\n height: Distance\n}\n\nexport interface CircleSolderPasteProps\n extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"circle\"\n radius: Distance\n}\n\nexport type SolderPasteProps = RectSolderPasteProps | CircleSolderPasteProps\n\n// zod\n\nexport const rectSolderPasteProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n })\ntype InferredRectSolderPasteProps = z.input<typeof rectSolderPasteProps>\nexpectTypesMatch<InferredRectSolderPasteProps, RectSolderPasteProps>(true)\n\nexport const circleSolderPasteProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n })\ntype InferredCircleSolderPasteProps = z.input<typeof circleSolderPasteProps>\nexpectTypesMatch<InferredCircleSolderPasteProps, CircleSolderPasteProps>(true)\n\nexport const solderPasteProps = z.union([\n circleSolderPasteProps,\n rectSolderPasteProps,\n])\n\nexport type InferredSolderPasteProps = z.input<typeof solderPasteProps>\nexpectTypesMatch<InferredSolderPasteProps, SolderPasteProps>(true)\n","import { z } from \"zod\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { pcbLayoutProps, type PcbLayoutProps } from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface HoleProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n name?: string\n diameter?: Distance\n radius?: Distance\n}\n\nexport const holeProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n name: z.string().optional(),\n diameter: distance.optional(),\n radius: distance.optional(),\n })\n .transform((d) => ({\n ...d,\n diameter: d.diameter ?? 2 * d.radius!,\n radius: d.radius ?? d.diameter! / 2,\n }))\n\nexport type InferredHoleProps = z.input<typeof holeProps>\n\nexpectTypesMatch<HoleProps, InferredHoleProps>(true)\n","import { distance, route_hint_point } from \"circuit-json\"\nimport { z } from \"zod\"\nimport { point } from \"../common/point\"\n\nexport const portRef = z.union([\n z.string(),\n z.custom<{ getPortSelector: () => string }>((v) =>\n Boolean(v.getPortSelector),\n ),\n])\n\nconst baseTraceProps = z.object({\n key: z.string().optional(),\n thickness: distance.optional(),\n schematicRouteHints: z.array(point).optional(),\n pcbRouteHints: z.array(route_hint_point).optional(),\n schDisplayLabel: z.string().optional(),\n maxLength: z.number().optional(),\n})\n\nexport const traceProps = z.union([\n baseTraceProps.extend({\n path: z.array(portRef),\n }),\n baseTraceProps.extend({\n from: portRef,\n to: portRef,\n }),\n])\n\nexport type TraceProps = z.input<typeof traceProps>\n","import { type LayerRef, layer_ref } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface FootprintProps {\n /**\n * The layer that the footprint is designed for. If you set this to \"top\"\n * then it means the children were intended to represent the top layer. If\n * the <chip /> with this footprint is moved to the bottom layer, then the\n * components will be mirrored.\n *\n * Generally, you shouldn't set this except where it can help prevent\n * confusion because you have a complex multi-layer footprint. Default is\n * \"top\" and this is most intuitive.\n */\n originalLayer?: LayerRef\n}\n\nexport const footprintProps = z.object({\n originalLayer: layer_ref.default(\"top\").optional(),\n})\n\nexport type FootprintPropsInput = z.input<typeof footprintProps>\ntype InferredFootprintProps = z.infer<typeof footprintProps>\nexpectTypesMatch<InferredFootprintProps, FootprintProps>(true)\n","import { z } from \"zod\"\nimport {\n commonComponentProps,\n lrPins,\n lrPolarPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\n/** @deprecated use battery_capacity from circuit-json when circuit-json is updated */\nconst capacity = z\n .number()\n .or(z.string().endsWith(\"mAh\"))\n .transform((v) => {\n if (typeof v === \"string\") {\n const valString = v.replace(\"mAh\", \"\")\n const num = Number.parseFloat(valString)\n if (Number.isNaN(num)) {\n throw new Error(\"Invalid capacity\")\n }\n return num\n }\n return v\n })\n .describe(\"Battery capacity in mAh\")\n\nexport interface BatteryProps extends CommonComponentProps {\n capacity?: number | string\n}\n\nexport const batteryProps = commonComponentProps.extend({\n capacity: capacity.optional(),\n})\nexport const batteryPins = lrPolarPins\n\nexpectTypesMatch<BatteryProps, z.input<typeof batteryProps>>(true)\n","import { distance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface PinHeaderProps extends CommonComponentProps {\n /**\n * Number of pins in the header\n */\n pinCount: number\n\n /**\n * Distance between pins\n */\n pitch?: number | string\n\n /**\n * Whether the header is male or female\n */\n gender?: \"male\" | \"female\"\n\n /**\n * Whether to show pin labels in silkscreen\n */\n showSilkscreenPinLabels?: boolean\n\n /**\n * Whether the header has two rows of pins\n */\n doubleRow?: boolean\n\n /**\n * Diameter of the through-hole for each pin\n */\n holeDiameter?: number | string\n\n /**\n * Diameter of the plated area around each hole\n */\n platedDiameter?: number | string\n\n /**\n * Labels for each pin\n */\n pinLabels?: string[]\n\n /**\n * Direction the header is facing\n */\n facingDirection?: \"left\" | \"right\"\n}\n\nexport const pinHeaderProps = commonComponentProps.extend({\n pinCount: z.number(),\n pitch: distance.optional(),\n gender: z.enum([\"male\", \"female\"]).optional().default(\"male\"),\n showSilkscreenPinLabels: z.boolean().optional(),\n doubleRow: z.boolean().optional(),\n holeDiameter: distance.optional(),\n platedDiameter: distance.optional(),\n pinLabels: z.array(z.string()).optional(),\n facingDirection: z.enum([\"left\", \"right\"]).optional(),\n})\n\ntype InferredPinHeaderProps = z.input<typeof pinHeaderProps>\nexpectTypesMatch<PinHeaderProps, InferredPinHeaderProps>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { distance } from \"lib/common/distance\"\nimport { rotation } from \"circuit-json\"\n\nexport interface NetAliasProps {\n net?: string\n schX?: number | string\n schY?: number | string\n schRotation?: number | string\n anchorSide?: \"left\" | \"up\" | \"right\" | \"down\"\n}\n\nexport const netAliasProps = z.object({\n net: z.string().optional(),\n schX: distance.optional(),\n schY: distance.optional(),\n schRotation: rotation.optional(),\n anchorSide: z.enum([\"left\", \"up\", \"right\", \"down\"]).optional(),\n})\n\ntype InferredNetAliasProps = z.input<typeof netAliasProps>\nexpectTypesMatch<NetAliasProps, InferredNetAliasProps>(true)\n","import { commonComponentProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const pushButtonProps = commonComponentProps.extend({})\nexport type PushButtonProps = z.input<typeof pushButtonProps>\n","import type { SubcircuitGroupProps } from \"./group\"\nimport { subcircuitGroupProps } from \"./group\"\nimport type { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport type SubcircuitProps = SubcircuitGroupProps\n\nexport const subcircuitProps = subcircuitGroupProps\n\ntype InferredSubcircuitProps = z.input<typeof subcircuitProps>\nexpectTypesMatch<SubcircuitProps, InferredSubcircuitProps>(true)\n","import {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface TransistorProps extends CommonComponentProps {\n transistorType: \"npn\" | \"pnp\"\n}\n\nexport const transistorProps = commonComponentProps.extend({\n transistorType: z.enum([\"npn\", \"pnp\"]),\n})\n\nexport const transistorPins = [\n \"pin1\",\n \"emitter\",\n \"pin2\",\n \"collector\",\n \"pin3\",\n \"base\",\n] as const\n\ntype InferredTransistorProps = z.input<typeof transistorProps>\nexpectTypesMatch<TransistorProps, InferredTransistorProps>(true)\n","import {\n type CommonComponentProps,\n commonComponentProps,\n} from \"../common/layout\"\nimport { expectTypesMatch } from \"../typecheck\"\nimport { z } from \"zod\"\n\nexport interface MosfetProps extends CommonComponentProps {\n channelType: \"n\" | \"p\"\n mosfetMode: \"enhancement\" | \"depletion\"\n}\n\nexport const mosfetProps = commonComponentProps.extend({\n channelType: z.enum([\"n\", \"p\"]),\n mosfetMode: z.enum([\"enhancement\", \"depletion\"]),\n})\n\nexport const mosfetPins = [\n \"pin1\",\n \"drain\",\n \"pin2\",\n \"source\",\n \"pin3\",\n \"gate\",\n] as const\n\ntype InferredMosfetProps = z.input<typeof mosfetProps>\nexpectTypesMatch<MosfetProps, InferredMosfetProps>(true)\n","import { inductance } from \"circuit-json\"\nimport { commonComponentProps, lrPins } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const inductorProps = commonComponentProps.extend({\n inductance,\n})\nexport const inductorPins = lrPins\nexport type InductorProps = z.input<typeof inductorProps>\n","import { commonComponentProps, lrPolarPins } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const diodeProps = commonComponentProps.extend({})\nexport const diodePins = lrPolarPins\nexport type DiodeProps = z.input<typeof diodeProps>\n","import { commonComponentProps, lrPolarPins } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const ledProps = commonComponentProps.extend({\n color: z.string().optional(),\n})\nexport const ledPins = lrPolarPins\nexport type LedProps = z.input<typeof ledProps>\n","import { commonComponentProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const switchProps = commonComponentProps.extend({\n ftype: z.literal(\"switch\"),\n switchType: z.enum([\"spst\"]).default(\"spst\"),\n isNormallyClosed: z.boolean().default(false),\n})\nexport type SwitchProps = z.input<typeof switchProps>\n","import { length } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const fabricationNoteTextProps = pcbLayoutProps.extend({\n text: z.string(),\n anchorAlignment: z\n .enum([\"center\", \"top_left\", \"top_right\", \"bottom_left\", \"bottom_right\"])\n .default(\"center\"),\n font: z.enum([\"tscircuit2024\"]).optional(),\n fontSize: length.optional(),\n color: z.string().optional(),\n})\nexport type FabricationNoteTextProps = z.input<typeof fabricationNoteTextProps>\n","import { length, route_hint_point } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const fabricationNotePathProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n route: z.array(route_hint_point),\n strokeWidth: length.optional(),\n color: z.string().optional(),\n })\nexport type FabricationNotePathProps = z.input<typeof fabricationNotePathProps>\n","import { distance, route_hint_point } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const pcbTraceProps = z.object({\n layer: z.string().optional(),\n thickness: distance.optional(),\n route: z.array(route_hint_point),\n})\nexport type PcbTraceProps = z.input<typeof pcbTraceProps>\n","import { distance, layer_ref } from \"circuit-json\"\nimport { commonLayoutProps } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const viaProps = commonLayoutProps.extend({\n fromLayer: layer_ref,\n toLayer: layer_ref,\n holeDiameter: distance,\n outerDiameter: distance,\n})\nexport type ViaProps = z.input<typeof viaProps>\n","import { distance } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const pcbKeepoutProps = z.union([\n pcbLayoutProps.omit({ pcbRotation: true }).extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n }),\n pcbLayoutProps.extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n }),\n])\nexport type PcbKeepoutProps = z.input<typeof pcbKeepoutProps>\n","import { voltage } from \"circuit-json\"\nimport { commonComponentProps } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const powerSourceProps = commonComponentProps.extend({\n voltage,\n})\nexport type PowerSourceProps = z.input<typeof powerSourceProps>\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const schematicBoxProps = z.object({\n schX: distance,\n schY: distance,\n width: distance,\n height: distance,\n})\nexport type SchematicBoxProps = z.input<typeof schematicBoxProps>\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const schematicLineProps = z.object({\n x1: distance,\n y1: distance,\n x2: distance,\n y2: distance,\n})\nexport type SchematicLineProps = z.input<typeof schematicLineProps>\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const schematicTextProps = z.object({\n schX: distance,\n schY: distance,\n text: z.string(),\n})\nexport type SchematicTextProps = z.input<typeof schematicTextProps>\n","import { point } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const schematicPathProps = z.object({\n points: z.array(point),\n isFilled: z.boolean().optional().default(false),\n fillColor: z.enum([\"red\", \"blue\"]).optional(),\n})\nexport type SchematicPathProps = z.input<typeof schematicPathProps>\n","import { length } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const silkscreenTextProps = pcbLayoutProps.extend({\n text: z.string(),\n anchorAlignment: z\n .enum([\"center\", \"top_left\", \"top_right\", \"bottom_left\", \"bottom_right\"])\n .default(\"center\"),\n font: z.enum([\"tscircuit2024\"]).optional(),\n fontSize: length.optional(),\n})\nexport type SilkscreenTextProps = z.input<typeof silkscreenTextProps>\n","import { length, route_hint_point } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const silkscreenPathProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n route: z.array(route_hint_point),\n strokeWidth: length.optional(),\n })\nexport type SilkscreenPathProps = z.input<typeof silkscreenPathProps>\n","import { distance } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const silkscreenLineProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n strokeWidth: distance,\n x1: distance,\n y1: distance,\n x2: distance,\n y2: distance,\n })\nexport type SilkscreenLineProps = z.input<typeof silkscreenLineProps>\n","import { distance } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const silkscreenRectProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n isFilled: z.boolean().optional(),\n isOutline: z.boolean().optional(),\n strokeWidth: distance.optional(),\n width: distance,\n height: distance,\n })\nexport type SilkscreenRectProps = z.input<typeof silkscreenRectProps>\n","import { distance } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const silkscreenCircleProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n isFilled: z.boolean().optional(),\n isOutline: z.boolean().optional(),\n strokeWidth: distance.optional(),\n radius: distance,\n })\nexport type SilkscreenCircleProps = z.input<typeof silkscreenCircleProps>\n","import { distance, layer_ref, route_hint_point } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const routeHintPointProps = z.object({\n x: distance,\n y: distance,\n via: z.boolean().optional(),\n toLayer: layer_ref.optional(),\n})\n\nexport const traceHintProps = z.object({\n for: z\n .string()\n .optional()\n .describe(\n \"Selector for the port you're targeting, not required if you're inside a trace\",\n ),\n order: z.number().optional(),\n offset: route_hint_point.or(routeHintPointProps).optional(),\n offsets: z\n .array(route_hint_point)\n .or(z.array(routeHintPointProps))\n .optional(),\n traceWidth: z.number().optional(),\n})\n\nexport type TraceHintProps = z.input<typeof traceHintProps>\n","import { direction } from \"lib/common/direction\"\nimport { commonLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const portProps = commonLayoutProps.extend({\n name: z.string(),\n pinNumber: z.number().optional(),\n aliases: z.array(z.string()).optional(),\n direction: direction,\n})\nexport type PortProps = z.input<typeof portProps>\n"],"mappings":"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","names":["z","z","distance","z","z","z","z","z","z","distance","z","distance","z","distance","distance","distance","z","z","z","z","z","z","z","z","z","z","z","z","z","z","point","z","point","z","route_hint_point","z","route_hint_point","z","point","z","point","z","z","distance","z","distance","z","distance","distance","z","distance","distance","z","distance","z","resistance","resistance","z","frequency","capacitance","z","frequency","capacitance","capacitance","z","capacitance","z","z","z","distance","length","z","distance","z","z","distance","z","z","distance","z","z","distance","distance","route_hint_point","z","z","distance","route_hint_point","layer_ref","z","layer_ref","z","z","distance","z","distance","z","rotation","z","distance","z","z","z","z","length","z","length","length","route_hint_point","z","route_hint_point","length","distance","route_hint_point","z","distance","layer_ref","layer_ref","distance","distance","z","distance","distance","z","distance","z","distance","z","point","z","length","z","length","length","route_hint_point","z","route_hint_point","length","distance","distance","distance","z","distance","distance","z","distance","distance","layer_ref","route_hint_point","z","z"]}
|
|
1
|
+
{"version":3,"sources":["../lib/typecheck.ts","../lib/common/direction.ts","../lib/common/portHints.ts","../lib/common/layout.ts","../lib/common/cadModel.ts","../lib/common/point3.ts","../lib/common/footprintProp.ts","../lib/common/schematicPinDefinitions.ts","../lib/common/schematicPinStyle.ts","../lib/components/board.ts","../lib/common/point.ts","../lib/components/group.ts","../lib/manual-edits/manual-edit-events/base_manual_edit_event.ts","../lib/manual-edits/manual-edit-events/edit_pcb_component_location_event.ts","../lib/manual-edits/manual-edit-events/edit_trace_hint_event.ts","../lib/manual-edits/manual-edit-events/edit_schematic_component_location_event.ts","../lib/manual-edits/manual_edit_event.ts","../lib/manual-edits/manual_edits_file.ts","../lib/manual-edits/manual_pcb_placement.ts","../lib/manual-edits/manual_trace_hint.ts","../lib/manual-edits/manual_schematic_placement.ts","../lib/components/chip.ts","../lib/components/jumper.ts","../lib/components/platedhole.ts","../lib/components/resistor.ts","../lib/components/potentiometer.ts","../lib/components/crystal.ts","../lib/components/resonator.ts","../lib/components/capacitor.ts","../lib/components/net.ts","../lib/components/constrainedlayout.ts","../lib/common/distance.ts","../lib/components/constraint.ts","../lib/components/smtpad.ts","../lib/components/solderpaste.ts","../lib/components/hole.ts","../lib/components/trace.ts","../lib/components/footprint.ts","../lib/components/battery.ts","../lib/components/pin-header.ts","../lib/components/netalias.ts","../lib/components/push-button.ts","../lib/components/subcircuit.ts","../lib/components/transistor.ts","../lib/components/mosfet.ts","../lib/components/inductor.ts","../lib/components/diode.ts","../lib/components/led.ts","../lib/components/switch.ts","../lib/components/fabrication-note-text.ts","../lib/components/fabrication-note-path.ts","../lib/components/pcb-trace.ts","../lib/components/via.ts","../lib/components/pcb-keepout.ts","../lib/components/power-source.ts","../lib/components/schematic-box.ts","../lib/components/schematic-line.ts","../lib/components/schematic-text.ts","../lib/components/schematic-path.ts","../lib/components/silkscreen-text.ts","../lib/components/silkscreen-path.ts","../lib/components/silkscreen-line.ts","../lib/components/silkscreen-rect.ts","../lib/components/silkscreen-circle.ts","../lib/components/trace-hint.ts","../lib/components/port.ts"],"sourcesContent":["import type { TypeEqual } from \"ts-expect\"\n\ntype IsNever<T> = [T] extends [never] ? true : false\n\ntype GetMismatchedProps<T1, T2> = {\n [K in keyof T1 & keyof T2]: T1[K] extends T2[K]\n ? T2[K] extends T1[K]\n ? never\n : K\n : K\n}[keyof T1 & keyof T2]\n\nexport const expectTypesMatch = <\n const T1,\n const T2,\n T3 = Exclude<keyof T1, keyof T2>,\n T4 = Exclude<keyof T2, keyof T1>,\n T5 = GetMismatchedProps<T1, T2>,\n>(\n shouldBe: IsNever<T3> extends true\n ? IsNever<T4> extends true\n ? IsNever<T5> extends true\n ? TypeEqual<T1, T2>\n : `property ${T5 extends string ? T5 : \"\"} has mismatched types`\n : `extra props ${T4 extends string ? T4 : \"\"}`\n : `missing props ${T3 extends string ? T3 : \"\"}`,\n): void => {}\n\n// ------ TESTS -------\n\nexpectTypesMatch<\n {\n a: number\n },\n {\n a: number\n b: number\n }\n>(\"extra props b\")\n\nexpectTypesMatch<\n {\n a: number\n b: number\n },\n {\n a: number\n }\n>(\"missing props b\")\n\nexpectTypesMatch<\n {\n a: number\n },\n {\n a: number\n }\n>(true)\n\nexpectTypesMatch<\n {\n a: number\n },\n {\n a: string\n }\n>(\"property a has mismatched types\")\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nexport const direction = z.enum([\"up\", \"down\", \"left\", \"right\"])\nexport type Direction = \"up\" | \"down\" | \"left\" | \"right\"\n\nexport type DirectionAlongEdge =\n | \"top-to-bottom\"\n | \"left-to-right\"\n | \"bottom-to-top\"\n | \"right-to-left\"\n\nexport const directionAlongEdge = z.enum([\n \"top-to-bottom\",\n \"left-to-right\",\n \"bottom-to-top\",\n \"right-to-left\",\n])\n\nexpectTypesMatch<Direction, z.infer<typeof direction>>(true)\nexpectTypesMatch<DirectionAlongEdge, z.infer<typeof directionAlongEdge>>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const portHints = z.array(z.string().or(z.number()))\nexport type PortHints = (string | number)[]\n\nexpectTypesMatch<PortHints, z.infer<typeof portHints>>(true)\n","import {\n type LayerRefInput,\n distance,\n layer_ref,\n rotation,\n supplier_name,\n} from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nimport { type CadModelProp, cadModelProp } from \"./cadModel\"\nimport { type Footprint, footprintProp } from \"./footprintProp\"\n\nexport interface PcbLayoutProps {\n pcbX?: string | number\n pcbY?: string | number\n pcbRotation?: string | number\n layer?: LayerRefInput\n}\n\nexport interface CommonLayoutProps {\n pcbX?: string | number\n pcbY?: string | number\n pcbRotation?: string | number\n\n schX?: string | number\n schY?: string | number\n schRotation?: string | number\n\n layer?: LayerRefInput\n footprint?: Footprint\n}\n\nexport const pcbLayoutProps = z.object({\n pcbX: distance.optional(),\n pcbY: distance.optional(),\n pcbRotation: rotation.optional(),\n layer: layer_ref.optional(),\n})\ntype InferredPcbLayoutProps = z.input<typeof pcbLayoutProps>\nexpectTypesMatch<PcbLayoutProps, InferredPcbLayoutProps>(true)\n\nexport const commonLayoutProps = z.object({\n pcbX: distance.optional(),\n pcbY: distance.optional(),\n pcbRotation: rotation.optional(),\n schX: distance.optional(),\n schY: distance.optional(),\n schRotation: rotation.optional(),\n layer: layer_ref.optional(),\n footprint: footprintProp.optional(),\n})\n\ntype InferredCommonLayoutProps = z.input<typeof commonLayoutProps>\nexpectTypesMatch<CommonLayoutProps, InferredCommonLayoutProps>(true)\n\nexport type SupplierName =\n | \"jlcpcb\"\n | \"macrofab\"\n | \"pcbway\"\n | \"digikey\"\n | \"mouser\"\n | \"lcsc\"\nexport type SupplierPartNumbers = { [k in SupplierName]?: string[] }\nexport interface SupplierProps {\n supplierPartNumbers?: SupplierPartNumbers\n}\nexport const supplierProps = z.object({\n supplierPartNumbers: z.record(supplier_name, z.array(z.string())).optional(),\n})\n\nexpectTypesMatch<SupplierProps, z.input<typeof supplierProps>>(true)\n\nexport interface CommonComponentProps extends CommonLayoutProps {\n key?: any\n name: string\n supplierPartNumbers?: SupplierPartNumbers\n cadModel?: CadModelProp\n children?: any\n symbolName?: string\n}\n\nexport const commonComponentProps = commonLayoutProps\n .merge(supplierProps)\n .extend({\n key: z.any().optional(),\n name: z.string(),\n cadModel: cadModelProp.optional(),\n children: z.any().optional(),\n symbolName: z.string().optional(),\n })\n\ntype InferredCommonComponentProps = z.input<typeof commonComponentProps>\nexpectTypesMatch<CommonComponentProps, InferredCommonComponentProps>(true)\n\nexport const componentProps = commonComponentProps\nexport type ComponentProps = z.input<typeof componentProps>\n\nexport const lrPins = [\"pin1\", \"left\", \"pin2\", \"right\"] as const\nexport const lrPolarPins = [\n \"pin1\",\n \"left\",\n \"anode\",\n \"pos\",\n \"pin2\",\n \"right\",\n \"cathode\",\n \"neg\",\n] as const\n\nexport const distanceOrMultiplier = distance.or(z.enum([\"2x\", \"3x\", \"4x\"]))\n","import { z } from \"zod\"\nimport { point3 } from \"./point3\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const rotationPoint3 = z.object({\n x: z.union([z.number(), z.string()]),\n y: z.union([z.number(), z.string()]),\n z: z.union([z.number(), z.string()]),\n})\n\nexport interface CadModelBase {\n rotationOffset?:\n | number\n | { x: number | string; y: number | string; z: number | string }\n positionOffset?: {\n x: number | string\n y: number | string\n z: number | string\n }\n size?: { x: number | string; y: number | string; z: number | string }\n}\n\nexport const cadModelBase = z.object({\n rotationOffset: z.number().or(rotationPoint3).optional(),\n positionOffset: point3.optional(),\n size: point3.optional(),\n})\n\nexpectTypesMatch<CadModelBase, z.input<typeof cadModelBase>>(true)\n\nexport interface CadModelStl extends CadModelBase {\n stlUrl: string\n}\nexport const cadModelStl = cadModelBase.extend({\n stlUrl: z.string(),\n})\n\nexport interface CadModelObj extends CadModelBase {\n objUrl: string\n mtlUrl?: string\n}\nexport const cadModelObj = cadModelBase.extend({\n objUrl: z.string(),\n mtlUrl: z.string().optional(),\n})\n\nexport interface CadModelJscad extends CadModelBase {\n jscad: Record<string, any>\n}\nexport const cadModelJscad = cadModelBase.extend({\n jscad: z.record(z.any()),\n})\n\nexport type CadModelProp = string | CadModelStl | CadModelObj | CadModelJscad\n\nexport const cadModelProp = z.union([\n z.string(),\n cadModelStl,\n cadModelObj,\n cadModelJscad,\n])\n\ntype InferredCadModelProp = z.input<typeof cadModelProp>\nexpectTypesMatch<CadModelProp, InferredCadModelProp>(true)\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const point3 = z.object({\n x: distance,\n y: distance,\n z: distance,\n})\n","import type { LayerRef } from \"circuit-json\"\nimport type { ReactElement } from \"react\"\nimport { z } from \"zod\"\n\n/**\n * This is an abbreviated definition of the soup elements that you can find here:\n * https://docs.tscircuit.com/api-reference/advanced/soup#pcb-smtpad\n */\nexport type FootprintSoupElements = {\n type: \"pcb_smtpad\" | \"pcb_plated_hole\"\n x: string | number\n y: string | number\n layer?: LayerRef\n holeDiameter?: string | number\n outerDiameter?: string | number\n shape?: \"circle\" | \"rect\"\n width?: string | number\n height?: string | number\n portHints?: string[]\n}\n\nexport type Footprint = string | ReactElement | FootprintSoupElements[]\nexport const footprintProp = z.custom<Footprint>((v) => true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\n/**\n * @deprecated Use SchematicPortArrangementWithPinCounts instead.\n */\nexport interface SchematicPortArrangementWithSizes {\n leftSize?: number\n topSize?: number\n rightSize?: number\n bottomSize?: number\n}\n\n/**\n * Specifies the number of pins on each side of the schematic box component.\n */\nexport interface SchematicPortArrangementWithPinCounts {\n leftPinCount?: number\n topPinCount?: number\n rightPinCount?: number\n bottomPinCount?: number\n}\n\nexport interface PinSideDefinition {\n pins: Array<number | string>\n direction:\n | \"top-to-bottom\"\n | \"left-to-right\"\n | \"bottom-to-top\"\n | \"right-to-left\"\n}\n\nexport interface SchematicPortArrangementWithSides {\n leftSide?: PinSideDefinition\n topSide?: PinSideDefinition\n rightSide?: PinSideDefinition\n bottomSide?: PinSideDefinition\n}\n\nexport interface SchematicPortArrangement\n extends SchematicPortArrangementWithSizes,\n SchematicPortArrangementWithSides,\n SchematicPortArrangementWithPinCounts {}\n\nexport type SchematicPinArrangement = SchematicPortArrangement\nexport type SchematicPinArrangementWithSizes = SchematicPortArrangementWithSizes\nexport type SchematicPinArrangementWithSides = SchematicPortArrangementWithSides\nexport type SchematicPinArrangementWithPinCounts =\n SchematicPortArrangementWithPinCounts\n\nexport const explicitPinSideDefinition = z.object({\n pins: z.array(z.union([z.number(), z.string()])),\n direction: z.union([\n z.literal(\"top-to-bottom\"),\n z.literal(\"left-to-right\"),\n z.literal(\"bottom-to-top\"),\n z.literal(\"right-to-left\"),\n ]),\n})\n\n/**\n * @deprecated Use schematicPinArrangement instead.\n */\nexport const schematicPortArrangement = z.object({\n leftSize: z.number().optional().describe(\"@deprecated, use leftPinCount\"),\n topSize: z.number().optional().describe(\"@deprecated, use topPinCount\"),\n rightSize: z.number().optional().describe(\"@deprecated, use rightPinCount\"),\n bottomSize: z.number().optional().describe(\"@deprecated, use bottomPinCount\"),\n leftPinCount: z.number().optional(),\n rightPinCount: z.number().optional(),\n topPinCount: z.number().optional(),\n bottomPinCount: z.number().optional(),\n leftSide: explicitPinSideDefinition.optional(),\n rightSide: explicitPinSideDefinition.optional(),\n topSide: explicitPinSideDefinition.optional(),\n bottomSide: explicitPinSideDefinition.optional(),\n})\n\nexport const schematicPinArrangement = schematicPortArrangement\n\nexpectTypesMatch<\n SchematicPortArrangement,\n z.input<typeof schematicPortArrangement>\n>(true)\n","import { distance } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport type SchematicPinStyle = Record<\n string,\n {\n leftMargin?: number | string\n rightMargin?: number | string\n topMargin?: number | string\n bottomMargin?: number | string\n }\n>\n\nexport const schematicPinStyle = z.record(\n z.object({\n leftMargin: distance.optional(),\n rightMargin: distance.optional(),\n topMargin: distance.optional(),\n bottomMargin: distance.optional(),\n }),\n)\n\nexpectTypesMatch<SchematicPinStyle, z.input<typeof schematicPinStyle>>(true)\n","import type { LayoutBuilder, ManualEditFile } from \"@tscircuit/layout\"\nimport { distance } from \"circuit-json\"\nimport type { Distance } from \"lib/common/distance\"\nimport { type Point, point } from \"lib/common/point\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nimport { subcircuitGroupProps, type SubcircuitGroupProps } from \"./group\"\n\nexport interface BoardProps extends Omit<SubcircuitGroupProps, \"subcircuit\"> {\n width?: number | string\n height?: number | string\n outline?: Point[]\n outlineOffsetX?: number | string\n outlineOffsetY?: number | string\n}\n\nexport const boardProps = subcircuitGroupProps.extend({\n width: distance.optional(),\n height: distance.optional(),\n outline: z.array(point).optional(),\n outlineOffsetX: distance.optional(),\n outlineOffsetY: distance.optional(),\n})\n\ntype InferredBoardProps = z.input<typeof boardProps>\nexpectTypesMatch<BoardProps, InferredBoardProps>(true)\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const point = z.object({\n x: distance,\n y: distance,\n})\n\nexport type Point = { x: number | string; y: number | string }\n","import type { LayoutBuilder } from \"@tscircuit/layout\"\nimport { length } from \"circuit-json\"\nimport type { Distance } from \"lib/common/distance\"\nimport {\n type CommonLayoutProps,\n commonLayoutProps,\n type SupplierPartNumbers,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nimport type { AnySourceComponent, PcbTrace } from \"circuit-json\"\nimport {\n manual_edits_file,\n type ManualEditsFile,\n type ManualEditsFileInput,\n} from \"lib/manual-edits\"\n\nexport interface BaseGroupProps extends CommonLayoutProps {\n name?: string\n key?: any\n children?: any\n}\n\nexport type PartsEngine = {\n findPart: (params: {\n sourceComponent: AnySourceComponent\n footprinterString?: string\n }) => Promise<SupplierPartNumbers> | SupplierPartNumbers\n}\n\nexport interface PcbRouteCache {\n pcbTraces: PcbTrace[]\n cacheKey: string\n}\n\nexport interface AutorouterConfig {\n serverUrl?: string\n inputFormat?: \"simplified\" | \"circuit-json\"\n serverMode?: \"job\" | \"solve-endpoint\"\n cache?: PcbRouteCache\n}\n\nexport type AutorouterProp =\n | AutorouterConfig\n | \"sequential-trace\"\n | \"subcircuit\"\n | \"auto\"\n | \"auto-local\"\n | \"auto-cloud\"\n\nexport const autorouterConfig = z.object({\n serverUrl: z.string().optional(),\n inputFormat: z.enum([\"simplified\", \"circuit-json\"]).optional(),\n serverMode: z.enum([\"job\", \"solve-endpoint\"]).optional(),\n cache: z.custom<PcbRouteCache>((v) => true).optional(),\n})\n\nexport const autorouterProp = z.union([\n autorouterConfig,\n z.literal(\"sequential-trace\"),\n z.literal(\"subcircuit\"),\n z.literal(\"auto\"),\n z.literal(\"auto-local\"),\n z.literal(\"auto-cloud\"),\n])\n\nexport interface SubcircuitGroupProps extends BaseGroupProps {\n layout?: LayoutBuilder\n manualEdits?: ManualEditsFileInput\n routingDisabled?: boolean\n defaultTraceWidth?: Distance\n minTraceWidth?: Distance\n pcbRouteCache?: PcbRouteCache\n\n autorouter?: AutorouterProp\n\n /**\n * If true, we'll automatically layout the schematic for this group. Must be\n * a subcircuit (currently). This is eventually going to be replaced with more\n * sophisticated layout options/modes and will be enabled by default.\n */\n schAutoLayoutEnabled?: boolean\n\n /**\n * If true, net labels will automatically be created for complex traces\n */\n schTraceAutoLabelEnabled?: boolean\n\n partsEngine?: PartsEngine\n}\n\nexport interface SubcircuitGroupPropsWithBool extends SubcircuitGroupProps {\n subcircuit: true\n}\n\nexport interface NonSubcircuitGroupProps extends BaseGroupProps {\n subcircuit?: false | undefined\n}\n\nexport type GroupProps = SubcircuitGroupPropsWithBool | NonSubcircuitGroupProps\n\nexport const baseGroupProps = commonLayoutProps.extend({\n name: z.string().optional(),\n children: z.any().optional(),\n key: z.any().optional(),\n})\n\nexport const subcircuitGroupProps = baseGroupProps.extend({\n layout: z.custom<LayoutBuilder>((v) => true).optional(),\n manualEdits: manual_edits_file.optional(),\n schAutoLayoutEnabled: z.boolean().optional(),\n schTraceAutoLabelEnabled: z.boolean().optional(),\n routingDisabled: z.boolean().optional(),\n defaultTraceWidth: length.optional(),\n minTraceWidth: length.optional(),\n partsEngine: z.custom<PartsEngine>((v) => \"findPart\" in v).optional(),\n pcbRouteCache: z.custom<PcbRouteCache>((v) => true).optional(),\n autorouter: autorouterProp.optional(),\n})\n\nexport const subcircuitGroupPropsWithBool = subcircuitGroupProps.extend({\n subcircuit: z.literal(true),\n})\n\nexport const groupProps = z.discriminatedUnion(\"subcircuit\", [\n baseGroupProps.extend({ subcircuit: z.literal(false).optional() }),\n subcircuitGroupPropsWithBool,\n])\n\ntype InferredBaseGroupProps = z.input<typeof baseGroupProps>\ntype InferredSubcircuitGroupPropsWithBool = z.input<\n typeof subcircuitGroupPropsWithBool\n>\n\nexpectTypesMatch<BaseGroupProps, InferredBaseGroupProps>(true)\nexpectTypesMatch<\n SubcircuitGroupPropsWithBool,\n InferredSubcircuitGroupPropsWithBool\n>(true)\n\ntype InferredGroupProps = z.input<typeof groupProps>\nexpectTypesMatch<GroupProps, InferredGroupProps>(true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport const base_manual_edit_event = z.object({\n edit_event_id: z.string(),\n in_progress: z.boolean().optional(),\n created_at: z.number(),\n})\n\nexport interface BaseManualEditEvent {\n edit_event_id: string\n in_progress?: boolean\n created_at: number\n}\n\nexport type BaseManualEditEventInput = z.input<typeof base_manual_edit_event>\n\nexpectTypesMatch<BaseManualEditEvent, z.infer<typeof base_manual_edit_event>>(\n true,\n)\n","import { z } from \"zod\"\nimport {\n base_manual_edit_event,\n type BaseManualEditEvent,\n} from \"./base_manual_edit_event\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const edit_pcb_component_location_event = base_manual_edit_event.extend({\n pcb_edit_event_type: z\n .literal(\"edit_component_location\")\n .describe(\"deprecated\"),\n edit_event_type: z.literal(\"edit_pcb_component_location\"),\n pcb_component_id: z.string(),\n original_center: z.object({ x: z.number(), y: z.number() }),\n new_center: z.object({ x: z.number(), y: z.number() }),\n})\n\n/** @deprecated use edit_pcb_component_location_event instead */\nexport const edit_component_location_event = edit_pcb_component_location_event\n\nexport interface EditPcbComponentLocationEvent extends BaseManualEditEvent {\n edit_event_type: \"edit_pcb_component_location\"\n /** @deprecated */\n pcb_edit_event_type: \"edit_component_location\"\n pcb_component_id: string\n original_center: { x: number; y: number }\n new_center: { x: number; y: number }\n}\n\nexport type EditPcbComponentLocationEventInput = z.input<\n typeof edit_pcb_component_location_event\n>\n\nexpectTypesMatch<\n EditPcbComponentLocationEvent,\n z.infer<typeof edit_pcb_component_location_event>\n>(true)\n","import { z } from \"zod\"\nimport {\n base_manual_edit_event,\n type BaseManualEditEvent,\n} from \"./base_manual_edit_event\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { route_hint_point } from \"circuit-json\"\n\nexport const edit_trace_hint_event = base_manual_edit_event.extend({\n pcb_edit_event_type: z.literal(\"edit_trace_hint\").describe(\"deprecated\"),\n edit_event_type: z.literal(\"edit_pcb_trace_hint\").optional(),\n pcb_port_id: z.string(),\n pcb_trace_hint_id: z.string().optional(),\n route: z.array(\n z.object({ x: z.number(), y: z.number(), via: z.boolean().optional() }),\n ),\n})\n\nexport interface EditTraceHintEvent extends BaseManualEditEvent {\n /** @deprecated */\n pcb_edit_event_type: \"edit_trace_hint\"\n edit_event_type?: \"edit_pcb_trace_hint\"\n pcb_port_id: string\n pcb_trace_hint_id?: string\n route: Array<{ x: number; y: number; via?: boolean }>\n}\n\nexport type EditTraceHintEventInput = z.input<typeof edit_trace_hint_event>\n\nexpectTypesMatch<EditTraceHintEvent, z.infer<typeof edit_trace_hint_event>>(\n true,\n)\n","import { z } from \"zod\"\nimport {\n base_manual_edit_event,\n type BaseManualEditEvent,\n} from \"./base_manual_edit_event\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const edit_schematic_component_location_event =\n base_manual_edit_event.extend({\n edit_event_type: z.literal(\"edit_schematic_component_location\"),\n schematic_component_id: z.string(),\n original_center: z.object({ x: z.number(), y: z.number() }),\n new_center: z.object({ x: z.number(), y: z.number() }),\n })\n\nexport interface EditSchematicComponentLocationEvent\n extends BaseManualEditEvent {\n edit_event_type: \"edit_schematic_component_location\"\n schematic_component_id: string\n original_center: { x: number; y: number }\n new_center: { x: number; y: number }\n}\n\nexport type EditSchematicComponentLocationEventInput = z.input<\n typeof edit_schematic_component_location_event\n>\n\nexpectTypesMatch<\n EditSchematicComponentLocationEvent,\n z.infer<typeof edit_schematic_component_location_event>\n>(true)\n","import { z } from \"zod\"\nimport {\n edit_pcb_component_location_event,\n type EditPcbComponentLocationEvent,\n} from \"./manual-edit-events/edit_pcb_component_location_event\"\nimport {\n edit_schematic_component_location_event,\n type EditSchematicComponentLocationEvent,\n} from \"./manual-edit-events/edit_schematic_component_location_event\"\nimport {\n edit_trace_hint_event,\n type EditTraceHintEvent,\n} from \"./manual-edit-events/edit_trace_hint_event\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport type ManualEditEvent =\n | EditPcbComponentLocationEvent\n | EditTraceHintEvent\n | EditSchematicComponentLocationEvent\n\nexport const manual_edit_event = z.union([\n edit_pcb_component_location_event,\n edit_trace_hint_event,\n edit_schematic_component_location_event,\n])\n\nexport type ManualEditEventInput = z.input<typeof manual_edit_event>\ntype InferredManualEditEvent = z.infer<typeof manual_edit_event>\n\nexpectTypesMatch<ManualEditEvent, InferredManualEditEvent>(true)\n","import { z } from \"zod\"\nimport {\n manual_pcb_placement,\n type ManualPcbPlacement,\n} from \"./manual_pcb_placement\"\nimport { manual_edit_event } from \"./manual_edit_event\"\nimport { manual_trace_hint, type ManualTraceHint } from \"./manual_trace_hint\"\nimport {\n manual_schematic_placement,\n type ManualSchematicPlacement,\n} from \"./manual_schematic_placement\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const manual_edits_file = z.object({\n pcb_placements: z.array(manual_pcb_placement).optional(),\n manual_trace_hints: z.array(manual_trace_hint).optional(),\n schematic_placements: z.array(manual_schematic_placement).optional(),\n})\n\nexport interface ManualEditsFile {\n pcb_placements?: ManualPcbPlacement[]\n manual_trace_hints?: ManualTraceHint[]\n schematic_placements?: ManualSchematicPlacement[]\n}\n\nexport type ManualEditsFileInput = z.input<typeof manual_edits_file>\n\nexpectTypesMatch<ManualEditsFile, z.infer<typeof manual_edits_file>>(true)\n","import { z } from \"zod\"\nimport { point, type Point } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const manual_pcb_placement = z.object({\n selector: z.string(),\n relative_to: z\n .string()\n .optional()\n .default(\"group_center\")\n .describe(\"Can be a selector or 'group_center'\"),\n center: point,\n})\n\nexport interface ManualPcbPlacement {\n selector: string\n relative_to: string\n center: Point\n}\n\nexport type ManualPcbPlacementInput = z.input<typeof manual_pcb_placement>\ntype InferredManualPcbPlacement = z.infer<typeof manual_pcb_placement>\n\nexpectTypesMatch<ManualPcbPlacement, InferredManualPcbPlacement>(true)\n","import { z } from \"zod\"\nimport { layer_ref, route_hint_point, type RouteHintPoint } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const manual_trace_hint = z.object({\n pcb_port_selector: z.string(),\n offsets: z.array(route_hint_point),\n})\n\nexport interface ManualTraceHint {\n pcb_port_selector: string\n offsets: Array<RouteHintPoint>\n}\n\nexport type ManualTraceHintInput = z.input<typeof manual_trace_hint>\n\nexpectTypesMatch<ManualTraceHint, z.infer<typeof manual_trace_hint>>(true)\n","import { z } from \"zod\"\nimport { point, type Point } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const manual_schematic_placement = z.object({\n selector: z.string(),\n relative_to: z\n .string()\n .optional()\n .default(\"group_center\")\n .describe(\"Can be a selector or 'group_center'\"),\n center: point,\n})\n\nexport interface ManualSchematicPlacement {\n selector: string\n relative_to: string\n center: Point\n}\n\nexport type ManualSchematicPlacementInput = z.input<\n typeof manual_schematic_placement\n>\ntype InferredManualSchematicPlacement = z.infer<\n typeof manual_schematic_placement\n>\n\nexpectTypesMatch<ManualSchematicPlacement, InferredManualSchematicPlacement>(\n true,\n)\n","import { distance } from \"circuit-json\"\nimport type { Distance } from \"lib/common/distance\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport {\n type SchematicPortArrangement,\n schematicPortArrangement as schematicPinArrangement,\n} from \"lib/common/schematicPinDefinitions\"\nimport {\n type SchematicPinStyle,\n schematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface ChipProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string | readonly string[]>\n schPinArrangement?: SchematicPortArrangement\n /** @deprecated Use schPinArrangement instead. */\n schPortArrangement?: SchematicPortArrangement\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: Distance\n schWidth?: Distance\n schHeight?: Distance\n noSchematicRepresentation?: boolean\n internallyConnectedPins?: string[][]\n externallyConnectedPins?: string[][]\n}\n\nexport type PinLabels = Record<\n number | string,\n string | readonly string[] | string[]\n>\n\nexport const pinLabelsProp = z.record(\n z.number().or(z.string()),\n z.string().or(z.array(z.string()).readonly()).or(z.array(z.string())),\n)\n\nexpectTypesMatch<PinLabels, z.input<typeof pinLabelsProp>>(true)\n\nexport const chipProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z\n .record(\n z.number().or(z.string()),\n z.string().or(z.array(z.string()).readonly()),\n )\n .optional(),\n internallyConnectedPins: z.array(z.array(z.string())).optional(),\n externallyConnectedPins: z.array(z.array(z.string())).optional(),\n schPinArrangement: schematicPinArrangement.optional(),\n schPortArrangement: schematicPinArrangement.optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.optional(),\n noSchematicRepresentation: z.boolean().optional(),\n})\n\n/**\n * @deprecated Use ChipProps instead.\n */\nexport const bugProps = chipProps\nexport type InferredChipProps = z.input<typeof chipProps>\n\nexpectTypesMatch<InferredChipProps, ChipProps>(true)\n","import { distance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport {\n type SchematicPortArrangement,\n schematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\nimport {\n type SchematicPinStyle,\n schematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface JumperProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string | string[]>\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: number | string\n schWidth?: number | string\n schHeight?: number | string\n schDirection?: \"left\" | \"right\"\n schPortArrangement?: SchematicPortArrangement\n}\n\nexport const jumperProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z\n .record(z.number().or(z.string()), z.string().or(z.array(z.string())))\n .optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.optional(),\n schDirection: z.enum([\"left\", \"right\"]).optional(),\n schPortArrangement: schematicPortArrangement.optional(),\n})\n\ntype InferredJumperProps = z.input<typeof jumperProps>\nexpectTypesMatch<JumperProps, InferredJumperProps>(true)\n","import { distance } from \"circuit-json\"\nimport type { PcbLayoutProps } from \"lib/common/layout\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { type PortHints, portHints } from \"lib/common/portHints\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface CirclePlatedHoleProps\n extends Omit<PcbLayoutProps, \"pcbRotation\" | \"layer\"> {\n name?: string\n shape: \"circle\"\n holeDiameter: number | string\n outerDiameter: number | string\n portHints?: PortHints\n}\n\nexport interface OvalPlatedHoleProps\n extends Omit<PcbLayoutProps, \"pcbRotation\" | \"layer\"> {\n name?: string\n shape: \"oval\"\n outerWidth: number | string\n outerHeight: number | string\n innerWidth: number | string\n innerHeight: number | string\n portHints?: PortHints\n}\n\nexport interface PillPlatedHoleProps\n extends Omit<PcbLayoutProps, \"pcbRotation\" | \"layer\"> {\n name?: string\n shape: \"pill\"\n outerWidth: number | string\n outerHeight: number | string\n innerWidth: number | string\n innerHeight: number | string\n portHints?: PortHints\n}\n\nexport type PlatedHoleProps =\n | CirclePlatedHoleProps\n | OvalPlatedHoleProps\n | PillPlatedHoleProps\n\nexport const platedHoleProps = z.discriminatedUnion(\"shape\", [\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"circle\"),\n holeDiameter: distance,\n outerDiameter: distance,\n portHints: portHints.optional(),\n }),\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"oval\"),\n outerWidth: distance,\n outerHeight: distance,\n innerWidth: distance,\n innerHeight: distance,\n portHints: portHints.optional(),\n }),\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"pill\"),\n outerWidth: distance,\n outerHeight: distance,\n innerWidth: distance,\n innerHeight: distance,\n portHints: portHints.optional(),\n }),\n])\n\ntype InferredPlatedHoleProps = z.input<typeof platedHoleProps>\nexpectTypesMatch<PlatedHoleProps, InferredPlatedHoleProps>(true)\n","import { resistance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n lrPins,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface ResistorProps extends CommonComponentProps {\n resistance: number | string\n pullupFor?: string\n pullupTo?: string\n pulldownFor?: string\n pulldownTo?: string\n}\n\nexport const resistorProps = commonComponentProps.extend({\n resistance,\n\n pullupFor: z.string().optional(),\n pullupTo: z.string().optional(),\n\n pulldownFor: z.string().optional(),\n pulldownTo: z.string().optional(),\n})\nexport const resistorPins = lrPins\n\ntype InferredResistorProps = z.input<typeof resistorProps>\nexpectTypesMatch<ResistorProps, InferredResistorProps>(true)\n","import { resistance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n lrPins,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport type { z } from \"zod\"\n\nexport interface PotentiometerProps extends CommonComponentProps {\n maxResistance: number | string\n}\n\nexport const potentiometerProps = commonComponentProps.extend({\n maxResistance: resistance,\n})\nexport const potentiometerPins = lrPins\n\ntype InferredPotentiometerProps = z.input<typeof potentiometerProps>\nexpectTypesMatch<PotentiometerProps, InferredPotentiometerProps>(true)\n","import { frequency, capacitance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n lrPins,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport type PinVariant = \"2pin\" | \"4pin\"\n\nexport interface CrystalProps extends CommonComponentProps {\n frequency: number | string\n loadCapacitance: number | string\n pinVariant?: PinVariant\n}\n\nexport const crystalProps = commonComponentProps.extend({\n frequency: frequency,\n loadCapacitance: capacitance,\n pinVariant: z.enum([\"2pin\", \"4pin\"]).optional(),\n})\nexport const crystalPins = lrPins\n\ntype InferredCrystalProps = z.input<typeof crystalProps>\nexpectTypesMatch<CrystalProps, InferredCrystalProps>(true)\n","import { frequency, capacitance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport type ResonatorPinVariant = \"no_ground\" | \"ground_pin\" | \"two_ground_pins\"\n\nexport interface ResonatorProps extends CommonComponentProps {\n frequency: number | string\n loadCapacitance: number | string\n pinVariant?: ResonatorPinVariant\n}\n\nexport const resonatorProps = commonComponentProps.extend({\n frequency: frequency,\n loadCapacitance: capacitance,\n pinVariant: z.enum([\"no_ground\", \"ground_pin\", \"two_ground_pins\"]).optional(),\n})\n\ntype InferredResonatorProps = z.input<typeof resonatorProps>\nexpectTypesMatch<ResonatorProps, InferredResonatorProps>(true)\n","import { capacitance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n lrPolarPins,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface CapacitorProps extends CommonComponentProps {\n capacitance: number | string\n polarized?: boolean\n decouplingFor?: string\n decouplingTo?: string\n bypassFor?: string\n bypassTo?: string\n maxDecouplingTraceLength?: number\n}\n\nexport const capacitorProps = commonComponentProps.extend({\n capacitance,\n polarized: z.boolean().optional().default(false),\n decouplingFor: z.string().optional(),\n decouplingTo: z.string().optional(),\n bypassFor: z.string().optional(),\n bypassTo: z.string().optional(),\n maxDecouplingTraceLength: z.number().optional(),\n})\nexport const capacitorPins = lrPolarPins\n\nexpectTypesMatch<CapacitorProps, z.input<typeof capacitorProps>>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface NetProps {\n name: string\n}\n\nexport const netProps = z.object({\n name: z.string(),\n})\n\ntype InferredNetProps = z.input<typeof netProps>\nexpectTypesMatch<NetProps, InferredNetProps>(true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface ConstrainedLayoutProps {\n name?: string\n pcbOnly?: boolean\n schOnly?: boolean\n}\n\nexport const constrainedLayoutProps = z.object({\n name: z.string().optional(),\n pcbOnly: z.boolean().optional(),\n schOnly: z.boolean().optional(),\n})\n\nexport type InferredConstrainedLayoutProps = z.input<\n typeof constrainedLayoutProps\n>\n\nexpectTypesMatch<InferredConstrainedLayoutProps, ConstrainedLayoutProps>(true)\n","import { z } from \"zod\"\n\nexport type Distance = number | string\n\nexport { distance, length } from \"circuit-json\"\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport type { Distance } from \"lib/common/distance\"\nimport { distance } from \"lib/common/distance\"\nimport { z } from \"zod\"\n\nexport type PcbXDistConstraint = {\n pcb?: true\n xDist: Distance\n\n /**\n * Selector for left component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 leftedge\", \".R1 center\"\n */\n left: string\n\n /**\n * Selector for right component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 leftedge\", \".R1 center\"\n */\n right: string\n\n /**\n * If true, the provided distance is the distance between the closest edges of\n * the left and right components\n */\n edgeToEdge?: true\n\n /**\n * If true, the provided distance is the distance between the centers of the\n * left and right components\n */\n centerToCenter?: true\n}\n\nexport type PcbYDistConstraint = {\n pcb?: true\n yDist: Distance\n\n /**\n * Selector for top component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 topedge\", \".R1 center\"\n */\n top: string\n\n /**\n * Selector for bottom component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 bottomedge\", \".R1 center\"\n */\n bottom: string\n\n edgeToEdge?: true\n centerToCenter?: true\n}\n\nexport type PcbSameYConstraint = {\n pcb?: true\n sameY?: true\n\n /**\n * Selector for components, e.g. [\".U1\", \".R1\"], you can also specify the\n * edge or center of the component e.g. [\".R1 leftedge\", \".U1 center\"]\n */\n for: string[]\n}\n\nexport type PcbSameXConstraint = {\n pcb?: true\n sameX?: true\n /**\n * Selector for components, e.g. [\".U1\", \".R1\"], you can also specify the\n * edge or center of the component e.g. [\".R1 leftedge\", \".U1 center\"]\n */\n for: string[]\n}\n\nexport type ConstraintProps =\n | PcbXDistConstraint\n | PcbYDistConstraint\n | PcbSameYConstraint\n | PcbSameXConstraint\n\n// -----------------------------------------------------------------------------\n// Zod\n// -----------------------------------------------------------------------------\n\nexport const pcbXDistConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n xDist: distance,\n left: z.string(),\n right: z.string(),\n\n edgeToEdge: z.literal(true).optional(),\n centerToCenter: z.literal(true).optional(),\n})\nexpectTypesMatch<PcbXDistConstraint, z.input<typeof pcbXDistConstraintProps>>(\n true,\n)\n\nexport const pcbYDistConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n yDist: distance,\n top: z.string(),\n bottom: z.string(),\n\n edgeToEdge: z.literal(true).optional(),\n centerToCenter: z.literal(true).optional(),\n})\nexpectTypesMatch<PcbYDistConstraint, z.input<typeof pcbYDistConstraintProps>>(\n true,\n)\n\nexport const pcbSameYConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n sameY: z.literal(true).optional(),\n for: z.array(z.string()),\n})\nexpectTypesMatch<PcbSameYConstraint, z.input<typeof pcbSameYConstraintProps>>(\n true,\n)\n\nexport const pcbSameXConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n sameX: z.literal(true).optional(),\n for: z.array(z.string()),\n})\nexpectTypesMatch<PcbSameXConstraint, z.input<typeof pcbSameXConstraintProps>>(\n true,\n)\n\nexport const constraintProps = z.union([\n pcbXDistConstraintProps,\n pcbYDistConstraintProps,\n pcbSameYConstraintProps,\n pcbSameXConstraintProps,\n])\n\nexpectTypesMatch<ConstraintProps, z.input<typeof constraintProps>>(true)\n","import {\n pcbLayoutProps,\n type CommonLayoutProps,\n type PcbLayoutProps,\n} from \"lib/common/layout\"\nimport { z } from \"zod\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { portHints, type PortHints } from \"lib/common/portHints\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface RectSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"rect\"\n width: Distance\n height: Distance\n portHints?: PortHints\n}\n\nexport interface RotatedRectSmtPadProps\n extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"rotated_rect\"\n width: Distance\n height: Distance\n ccwRotation: number\n portHints?: PortHints\n}\n\nexport interface CircleSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"circle\"\n radius: Distance\n portHints?: PortHints\n}\n\nexport type SmtPadProps =\n | RectSmtPadProps\n | CircleSmtPadProps\n | RotatedRectSmtPadProps\n\n// ----------------------------------------------------------------------------\n// Zod\n// ----------------------------------------------------------------------------\n\nexport const rectSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n portHints: portHints.optional(),\n })\ntype InferredRectSmtPadProps = z.input<typeof rectSmtPadProps>\nexpectTypesMatch<InferredRectSmtPadProps, RectSmtPadProps>(true)\n\nexport const rotatedRectSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"rotated_rect\"),\n width: distance,\n height: distance,\n ccwRotation: z.number(),\n portHints: portHints.optional(),\n })\ntype InferredRotatedRectSmtPadProps = z.input<typeof rotatedRectSmtPadProps>\nexpectTypesMatch<InferredRotatedRectSmtPadProps, RotatedRectSmtPadProps>(true)\n\nexport const circleSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n portHints: portHints.optional(),\n })\ntype InferredCircleSmtPadProps = z.input<typeof circleSmtPadProps>\nexpectTypesMatch<InferredCircleSmtPadProps, CircleSmtPadProps>(true)\n\nexport const smtPadProps = z.union([\n circleSmtPadProps,\n rectSmtPadProps,\n rotatedRectSmtPadProps,\n])\n\nexport type InferredSmtPadProps = z.input<typeof smtPadProps>\nexpectTypesMatch<InferredSmtPadProps, SmtPadProps>(true)\n","import { pcbLayoutProps, type PcbLayoutProps } from \"lib/common/layout\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { boolean, string, z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface RectSolderPasteProps\n extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"rect\"\n width: Distance\n height: Distance\n}\n\nexport interface CircleSolderPasteProps\n extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"circle\"\n radius: Distance\n}\n\nexport type SolderPasteProps = RectSolderPasteProps | CircleSolderPasteProps\n\n// zod\n\nexport const rectSolderPasteProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n })\ntype InferredRectSolderPasteProps = z.input<typeof rectSolderPasteProps>\nexpectTypesMatch<InferredRectSolderPasteProps, RectSolderPasteProps>(true)\n\nexport const circleSolderPasteProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n })\ntype InferredCircleSolderPasteProps = z.input<typeof circleSolderPasteProps>\nexpectTypesMatch<InferredCircleSolderPasteProps, CircleSolderPasteProps>(true)\n\nexport const solderPasteProps = z.union([\n circleSolderPasteProps,\n rectSolderPasteProps,\n])\n\nexport type InferredSolderPasteProps = z.input<typeof solderPasteProps>\nexpectTypesMatch<InferredSolderPasteProps, SolderPasteProps>(true)\n","import { z } from \"zod\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { pcbLayoutProps, type PcbLayoutProps } from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface HoleProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n name?: string\n diameter?: Distance\n radius?: Distance\n}\n\nexport const holeProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n name: z.string().optional(),\n diameter: distance.optional(),\n radius: distance.optional(),\n })\n .transform((d) => ({\n ...d,\n diameter: d.diameter ?? 2 * d.radius!,\n radius: d.radius ?? d.diameter! / 2,\n }))\n\nexport type InferredHoleProps = z.input<typeof holeProps>\n\nexpectTypesMatch<HoleProps, InferredHoleProps>(true)\n","import { distance, route_hint_point } from \"circuit-json\"\nimport { z } from \"zod\"\nimport { point } from \"../common/point\"\n\nexport const portRef = z.union([\n z.string(),\n z.custom<{ getPortSelector: () => string }>((v) =>\n Boolean(v.getPortSelector),\n ),\n])\n\nconst baseTraceProps = z.object({\n key: z.string().optional(),\n thickness: distance.optional(),\n schematicRouteHints: z.array(point).optional(),\n pcbRouteHints: z.array(route_hint_point).optional(),\n schDisplayLabel: z.string().optional(),\n maxLength: z.number().optional(),\n})\n\nexport const traceProps = z.union([\n baseTraceProps.extend({\n path: z.array(portRef),\n }),\n baseTraceProps.extend({\n from: portRef,\n to: portRef,\n }),\n])\n\nexport type TraceProps = z.input<typeof traceProps>\n","import { type LayerRef, layer_ref } from \"circuit-json\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface FootprintProps {\n /**\n * The layer that the footprint is designed for. If you set this to \"top\"\n * then it means the children were intended to represent the top layer. If\n * the <chip /> with this footprint is moved to the bottom layer, then the\n * components will be mirrored.\n *\n * Generally, you shouldn't set this except where it can help prevent\n * confusion because you have a complex multi-layer footprint. Default is\n * \"top\" and this is most intuitive.\n */\n originalLayer?: LayerRef\n}\n\nexport const footprintProps = z.object({\n originalLayer: layer_ref.default(\"top\").optional(),\n})\n\nexport type FootprintPropsInput = z.input<typeof footprintProps>\ntype InferredFootprintProps = z.infer<typeof footprintProps>\nexpectTypesMatch<InferredFootprintProps, FootprintProps>(true)\n","import { z } from \"zod\"\nimport {\n commonComponentProps,\n lrPins,\n lrPolarPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\n/** @deprecated use battery_capacity from circuit-json when circuit-json is updated */\nconst capacity = z\n .number()\n .or(z.string().endsWith(\"mAh\"))\n .transform((v) => {\n if (typeof v === \"string\") {\n const valString = v.replace(\"mAh\", \"\")\n const num = Number.parseFloat(valString)\n if (Number.isNaN(num)) {\n throw new Error(\"Invalid capacity\")\n }\n return num\n }\n return v\n })\n .describe(\"Battery capacity in mAh\")\n\nexport interface BatteryProps extends CommonComponentProps {\n capacity?: number | string\n}\n\nexport const batteryProps = commonComponentProps.extend({\n capacity: capacity.optional(),\n})\nexport const batteryPins = lrPolarPins\n\nexpectTypesMatch<BatteryProps, z.input<typeof batteryProps>>(true)\n","import { distance } from \"circuit-json\"\nimport {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface PinHeaderProps extends CommonComponentProps {\n /**\n * Number of pins in the header\n */\n pinCount: number\n\n /**\n * Distance between pins\n */\n pitch?: number | string\n\n /**\n * Whether the header is male or female\n */\n gender?: \"male\" | \"female\"\n\n /**\n * Whether to show pin labels in silkscreen\n */\n showSilkscreenPinLabels?: boolean\n\n /**\n * Whether the header has two rows of pins\n */\n doubleRow?: boolean\n\n /**\n * Diameter of the through-hole for each pin\n */\n holeDiameter?: number | string\n\n /**\n * Diameter of the plated area around each hole\n */\n platedDiameter?: number | string\n\n /**\n * Labels for each pin\n */\n pinLabels?: string[]\n\n /**\n * Direction the header is facing\n */\n facingDirection?: \"left\" | \"right\"\n}\n\nexport const pinHeaderProps = commonComponentProps.extend({\n pinCount: z.number(),\n pitch: distance.optional(),\n gender: z.enum([\"male\", \"female\"]).optional().default(\"male\"),\n showSilkscreenPinLabels: z.boolean().optional(),\n doubleRow: z.boolean().optional(),\n holeDiameter: distance.optional(),\n platedDiameter: distance.optional(),\n pinLabels: z.array(z.string()).optional(),\n facingDirection: z.enum([\"left\", \"right\"]).optional(),\n})\n\ntype InferredPinHeaderProps = z.input<typeof pinHeaderProps>\nexpectTypesMatch<PinHeaderProps, InferredPinHeaderProps>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { distance } from \"lib/common/distance\"\nimport { rotation } from \"circuit-json\"\n\nexport interface NetAliasProps {\n net?: string\n schX?: number | string\n schY?: number | string\n schRotation?: number | string\n anchorSide?: \"left\" | \"up\" | \"right\" | \"down\"\n}\n\nexport const netAliasProps = z.object({\n net: z.string().optional(),\n schX: distance.optional(),\n schY: distance.optional(),\n schRotation: rotation.optional(),\n anchorSide: z.enum([\"left\", \"up\", \"right\", \"down\"]).optional(),\n})\n\ntype InferredNetAliasProps = z.input<typeof netAliasProps>\nexpectTypesMatch<NetAliasProps, InferredNetAliasProps>(true)\n","import {\n commonComponentProps,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface PushButtonProps extends CommonComponentProps {\n internallyConnectedPins?: string[][]\n}\n\nexport const pushButtonProps = commonComponentProps.extend({\n internallyConnectedPins: z.array(z.array(z.string())).optional(),\n})\ntype InferredPushButtonProps = z.input<typeof pushButtonProps>\n\nexpectTypesMatch<PushButtonProps, InferredPushButtonProps>(true)\n","import type { SubcircuitGroupProps } from \"./group\"\nimport { subcircuitGroupProps } from \"./group\"\nimport type { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport type SubcircuitProps = SubcircuitGroupProps\n\nexport const subcircuitProps = subcircuitGroupProps\n\ntype InferredSubcircuitProps = z.input<typeof subcircuitProps>\nexpectTypesMatch<SubcircuitProps, InferredSubcircuitProps>(true)\n","import {\n type CommonComponentProps,\n commonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface TransistorProps extends CommonComponentProps {\n transistorType: \"npn\" | \"pnp\"\n}\n\nexport const transistorProps = commonComponentProps.extend({\n transistorType: z.enum([\"npn\", \"pnp\"]),\n})\n\nexport const transistorPins = [\n \"pin1\",\n \"emitter\",\n \"pin2\",\n \"collector\",\n \"pin3\",\n \"base\",\n] as const\n\ntype InferredTransistorProps = z.input<typeof transistorProps>\nexpectTypesMatch<TransistorProps, InferredTransistorProps>(true)\n","import {\n type CommonComponentProps,\n commonComponentProps,\n} from \"../common/layout\"\nimport { expectTypesMatch } from \"../typecheck\"\nimport { z } from \"zod\"\n\nexport interface MosfetProps extends CommonComponentProps {\n channelType: \"n\" | \"p\"\n mosfetMode: \"enhancement\" | \"depletion\"\n}\n\nexport const mosfetProps = commonComponentProps.extend({\n channelType: z.enum([\"n\", \"p\"]),\n mosfetMode: z.enum([\"enhancement\", \"depletion\"]),\n})\n\nexport const mosfetPins = [\n \"pin1\",\n \"drain\",\n \"pin2\",\n \"source\",\n \"pin3\",\n \"gate\",\n] as const\n\ntype InferredMosfetProps = z.input<typeof mosfetProps>\nexpectTypesMatch<MosfetProps, InferredMosfetProps>(true)\n","import { inductance } from \"circuit-json\"\nimport { commonComponentProps, lrPins } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const inductorProps = commonComponentProps.extend({\n inductance,\n})\nexport const inductorPins = lrPins\nexport type InductorProps = z.input<typeof inductorProps>\n","import { commonComponentProps, lrPolarPins } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const diodeProps = commonComponentProps.extend({})\nexport const diodePins = lrPolarPins\nexport type DiodeProps = z.input<typeof diodeProps>\n","import { commonComponentProps, lrPolarPins } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const ledProps = commonComponentProps.extend({\n color: z.string().optional(),\n})\nexport const ledPins = lrPolarPins\nexport type LedProps = z.input<typeof ledProps>\n","import { commonComponentProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const switchProps = commonComponentProps.extend({\n ftype: z.literal(\"switch\"),\n switchType: z.enum([\"spst\"]).default(\"spst\"),\n isNormallyClosed: z.boolean().default(false),\n})\nexport type SwitchProps = z.input<typeof switchProps>\n","import { length } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const fabricationNoteTextProps = pcbLayoutProps.extend({\n text: z.string(),\n anchorAlignment: z\n .enum([\"center\", \"top_left\", \"top_right\", \"bottom_left\", \"bottom_right\"])\n .default(\"center\"),\n font: z.enum([\"tscircuit2024\"]).optional(),\n fontSize: length.optional(),\n color: z.string().optional(),\n})\nexport type FabricationNoteTextProps = z.input<typeof fabricationNoteTextProps>\n","import { length, route_hint_point } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const fabricationNotePathProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n route: z.array(route_hint_point),\n strokeWidth: length.optional(),\n color: z.string().optional(),\n })\nexport type FabricationNotePathProps = z.input<typeof fabricationNotePathProps>\n","import { distance, route_hint_point } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const pcbTraceProps = z.object({\n layer: z.string().optional(),\n thickness: distance.optional(),\n route: z.array(route_hint_point),\n})\nexport type PcbTraceProps = z.input<typeof pcbTraceProps>\n","import { distance, layer_ref } from \"circuit-json\"\nimport { commonLayoutProps } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const viaProps = commonLayoutProps.extend({\n fromLayer: layer_ref,\n toLayer: layer_ref,\n holeDiameter: distance,\n outerDiameter: distance,\n})\nexport type ViaProps = z.input<typeof viaProps>\n","import { distance } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const pcbKeepoutProps = z.union([\n pcbLayoutProps.omit({ pcbRotation: true }).extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n }),\n pcbLayoutProps.extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n }),\n])\nexport type PcbKeepoutProps = z.input<typeof pcbKeepoutProps>\n","import { voltage } from \"circuit-json\"\nimport { commonComponentProps } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const powerSourceProps = commonComponentProps.extend({\n voltage,\n})\nexport type PowerSourceProps = z.input<typeof powerSourceProps>\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const schematicBoxProps = z.object({\n schX: distance,\n schY: distance,\n width: distance,\n height: distance,\n})\nexport type SchematicBoxProps = z.input<typeof schematicBoxProps>\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const schematicLineProps = z.object({\n x1: distance,\n y1: distance,\n x2: distance,\n y2: distance,\n})\nexport type SchematicLineProps = z.input<typeof schematicLineProps>\n","import { distance } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const schematicTextProps = z.object({\n schX: distance,\n schY: distance,\n text: z.string(),\n})\nexport type SchematicTextProps = z.input<typeof schematicTextProps>\n","import { point } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const schematicPathProps = z.object({\n points: z.array(point),\n isFilled: z.boolean().optional().default(false),\n fillColor: z.enum([\"red\", \"blue\"]).optional(),\n})\nexport type SchematicPathProps = z.input<typeof schematicPathProps>\n","import { length } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const silkscreenTextProps = pcbLayoutProps.extend({\n text: z.string(),\n anchorAlignment: z\n .enum([\"center\", \"top_left\", \"top_right\", \"bottom_left\", \"bottom_right\"])\n .default(\"center\"),\n font: z.enum([\"tscircuit2024\"]).optional(),\n fontSize: length.optional(),\n})\nexport type SilkscreenTextProps = z.input<typeof silkscreenTextProps>\n","import { length, route_hint_point } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const silkscreenPathProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n route: z.array(route_hint_point),\n strokeWidth: length.optional(),\n })\nexport type SilkscreenPathProps = z.input<typeof silkscreenPathProps>\n","import { distance } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport type { z } from \"zod\"\n\nexport const silkscreenLineProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n strokeWidth: distance,\n x1: distance,\n y1: distance,\n x2: distance,\n y2: distance,\n })\nexport type SilkscreenLineProps = z.input<typeof silkscreenLineProps>\n","import { distance } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const silkscreenRectProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n isFilled: z.boolean().optional(),\n isOutline: z.boolean().optional(),\n strokeWidth: distance.optional(),\n width: distance,\n height: distance,\n })\nexport type SilkscreenRectProps = z.input<typeof silkscreenRectProps>\n","import { distance } from \"circuit-json\"\nimport { pcbLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const silkscreenCircleProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n isFilled: z.boolean().optional(),\n isOutline: z.boolean().optional(),\n strokeWidth: distance.optional(),\n radius: distance,\n })\nexport type SilkscreenCircleProps = z.input<typeof silkscreenCircleProps>\n","import { distance, layer_ref, route_hint_point } from \"circuit-json\"\nimport { z } from \"zod\"\n\nexport const routeHintPointProps = z.object({\n x: distance,\n y: distance,\n via: z.boolean().optional(),\n toLayer: layer_ref.optional(),\n})\n\nexport const traceHintProps = z.object({\n for: z\n .string()\n .optional()\n .describe(\n \"Selector for the port you're targeting, not required if you're inside a trace\",\n ),\n order: z.number().optional(),\n offset: route_hint_point.or(routeHintPointProps).optional(),\n offsets: z\n .array(route_hint_point)\n .or(z.array(routeHintPointProps))\n .optional(),\n traceWidth: z.number().optional(),\n})\n\nexport type TraceHintProps = z.input<typeof traceHintProps>\n","import { direction } from \"lib/common/direction\"\nimport { commonLayoutProps } from \"lib/common/layout\"\nimport { z } from \"zod\"\n\nexport const portProps = commonLayoutProps.extend({\n name: z.string(),\n pinNumber: z.number().optional(),\n aliases: z.array(z.string()).optional(),\n direction: direction,\n})\nexport type PortProps = z.input<typeof portProps>\n"],"mappings":"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","names":["z","z","distance","z","z","z","z","z","z","distance","z","distance","z","distance","distance","distance","z","z","z","z","z","z","z","z","z","z","z","z","z","z","point","z","point","z","route_hint_point","z","route_hint_point","z","point","z","point","z","z","distance","z","distance","z","distance","distance","z","distance","distance","z","distance","z","resistance","resistance","z","frequency","capacitance","z","frequency","capacitance","capacitance","z","capacitance","z","z","z","distance","length","z","distance","z","z","distance","z","z","distance","z","z","distance","distance","route_hint_point","z","z","distance","route_hint_point","layer_ref","z","layer_ref","z","z","distance","z","distance","z","rotation","z","distance","z","z","z","z","z","length","z","length","length","route_hint_point","z","route_hint_point","length","distance","route_hint_point","z","distance","layer_ref","layer_ref","distance","distance","z","distance","distance","z","distance","z","distance","z","point","z","length","z","length","length","route_hint_point","z","route_hint_point","length","distance","distance","distance","z","distance","distance","z","distance","distance","layer_ref","route_hint_point","z","z"]}
|
|
@@ -42,6 +42,12 @@ export interface SchematicPortArrangement
|
|
|
42
42
|
SchematicPortArrangementWithSides,
|
|
43
43
|
SchematicPortArrangementWithPinCounts {}
|
|
44
44
|
|
|
45
|
+
export type SchematicPinArrangement = SchematicPortArrangement
|
|
46
|
+
export type SchematicPinArrangementWithSizes = SchematicPortArrangementWithSizes
|
|
47
|
+
export type SchematicPinArrangementWithSides = SchematicPortArrangementWithSides
|
|
48
|
+
export type SchematicPinArrangementWithPinCounts =
|
|
49
|
+
SchematicPortArrangementWithPinCounts
|
|
50
|
+
|
|
45
51
|
export const explicitPinSideDefinition = z.object({
|
|
46
52
|
pins: z.array(z.union([z.number(), z.string()])),
|
|
47
53
|
direction: z.union([
|
|
@@ -52,6 +58,9 @@ export const explicitPinSideDefinition = z.object({
|
|
|
52
58
|
]),
|
|
53
59
|
})
|
|
54
60
|
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated Use schematicPinArrangement instead.
|
|
63
|
+
*/
|
|
55
64
|
export const schematicPortArrangement = z.object({
|
|
56
65
|
leftSize: z.number().optional().describe("@deprecated, use leftPinCount"),
|
|
57
66
|
topSize: z.number().optional().describe("@deprecated, use topPinCount"),
|
|
@@ -67,6 +76,8 @@ export const schematicPortArrangement = z.object({
|
|
|
67
76
|
bottomSide: explicitPinSideDefinition.optional(),
|
|
68
77
|
})
|
|
69
78
|
|
|
79
|
+
export const schematicPinArrangement = schematicPortArrangement
|
|
80
|
+
|
|
70
81
|
expectTypesMatch<
|
|
71
82
|
SchematicPortArrangement,
|
|
72
83
|
z.input<typeof schematicPortArrangement>
|
package/lib/components/chip.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "lib/common/layout"
|
|
7
7
|
import {
|
|
8
8
|
type SchematicPortArrangement,
|
|
9
|
-
schematicPortArrangement,
|
|
9
|
+
schematicPortArrangement as schematicPinArrangement,
|
|
10
10
|
} from "lib/common/schematicPinDefinitions"
|
|
11
11
|
import {
|
|
12
12
|
type SchematicPinStyle,
|
|
@@ -18,14 +18,16 @@ import { z } from "zod"
|
|
|
18
18
|
export interface ChipProps extends CommonComponentProps {
|
|
19
19
|
manufacturerPartNumber?: string
|
|
20
20
|
pinLabels?: Record<number | string, string | readonly string[]>
|
|
21
|
+
schPinArrangement?: SchematicPortArrangement
|
|
22
|
+
/** @deprecated Use schPinArrangement instead. */
|
|
21
23
|
schPortArrangement?: SchematicPortArrangement
|
|
22
24
|
schPinStyle?: SchematicPinStyle
|
|
23
25
|
schPinSpacing?: Distance
|
|
24
26
|
schWidth?: Distance
|
|
25
27
|
schHeight?: Distance
|
|
26
28
|
noSchematicRepresentation?: boolean
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
internallyConnectedPins?: string[][]
|
|
30
|
+
externallyConnectedPins?: string[][]
|
|
29
31
|
}
|
|
30
32
|
|
|
31
33
|
export type PinLabels = Record<
|
|
@@ -48,9 +50,10 @@ export const chipProps = commonComponentProps.extend({
|
|
|
48
50
|
z.string().or(z.array(z.string()).readonly()),
|
|
49
51
|
)
|
|
50
52
|
.optional(),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
internallyConnectedPins: z.array(z.array(z.string())).optional(),
|
|
54
|
+
externallyConnectedPins: z.array(z.array(z.string())).optional(),
|
|
55
|
+
schPinArrangement: schematicPinArrangement.optional(),
|
|
56
|
+
schPortArrangement: schematicPinArrangement.optional(),
|
|
54
57
|
schPinStyle: schematicPinStyle.optional(),
|
|
55
58
|
schPinSpacing: distance.optional(),
|
|
56
59
|
schWidth: distance.optional(),
|
|
@@ -1,5 +1,17 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import {
|
|
2
|
+
commonComponentProps,
|
|
3
|
+
type CommonComponentProps,
|
|
4
|
+
} from "lib/common/layout"
|
|
5
|
+
import { expectTypesMatch } from "lib/typecheck"
|
|
2
6
|
import { z } from "zod"
|
|
3
7
|
|
|
4
|
-
export
|
|
5
|
-
|
|
8
|
+
export interface PushButtonProps extends CommonComponentProps {
|
|
9
|
+
internallyConnectedPins?: string[][]
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const pushButtonProps = commonComponentProps.extend({
|
|
13
|
+
internallyConnectedPins: z.array(z.array(z.string())).optional(),
|
|
14
|
+
})
|
|
15
|
+
type InferredPushButtonProps = z.input<typeof pushButtonProps>
|
|
16
|
+
|
|
17
|
+
expectTypesMatch<PushButtonProps, InferredPushButtonProps>(true)
|