@tscircuit/props 0.0.66 → 0.0.67
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 +126 -161
- package/dist/index.js +10 -16
- package/dist/index.js.map +1 -1
- package/lib/common/schematicPinDefinitions.ts +18 -30
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1150,7 +1150,8 @@ interface SchematicPortArrangementWithSides {
|
|
|
1150
1150
|
rightSide?: PinSideDefinition;
|
|
1151
1151
|
bottomSide?: PinSideDefinition;
|
|
1152
1152
|
}
|
|
1153
|
-
|
|
1153
|
+
interface SchematicPortArrangement extends SchematicPortArrangementWithSizes, SchematicPortArrangementWithSides, SchematicPortArrangementWithPinCounts {
|
|
1154
|
+
}
|
|
1154
1155
|
declare const explicitPinSideDefinition: z.ZodObject<{
|
|
1155
1156
|
pins: z.ZodArray<z.ZodNumber, "many">;
|
|
1156
1157
|
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
@@ -1161,37 +1162,15 @@ declare const explicitPinSideDefinition: z.ZodObject<{
|
|
|
1161
1162
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1162
1163
|
pins: number[];
|
|
1163
1164
|
}>;
|
|
1164
|
-
declare const schematicPortArrangement: z.
|
|
1165
|
+
declare const schematicPortArrangement: z.ZodObject<{
|
|
1165
1166
|
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
1166
1167
|
topSize: z.ZodOptional<z.ZodNumber>;
|
|
1167
1168
|
rightSize: z.ZodOptional<z.ZodNumber>;
|
|
1168
1169
|
bottomSize: z.ZodOptional<z.ZodNumber>;
|
|
1169
|
-
}, "strip", z.ZodTypeAny, {
|
|
1170
|
-
leftSize?: number | undefined;
|
|
1171
|
-
topSize?: number | undefined;
|
|
1172
|
-
rightSize?: number | undefined;
|
|
1173
|
-
bottomSize?: number | undefined;
|
|
1174
|
-
}, {
|
|
1175
|
-
leftSize?: number | undefined;
|
|
1176
|
-
topSize?: number | undefined;
|
|
1177
|
-
rightSize?: number | undefined;
|
|
1178
|
-
bottomSize?: number | undefined;
|
|
1179
|
-
}>, z.ZodObject<{
|
|
1180
1170
|
leftPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1181
1171
|
rightPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1182
1172
|
topPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1183
1173
|
bottomPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1184
|
-
}, "strip", z.ZodTypeAny, {
|
|
1185
|
-
leftPinCount?: number | undefined;
|
|
1186
|
-
rightPinCount?: number | undefined;
|
|
1187
|
-
topPinCount?: number | undefined;
|
|
1188
|
-
bottomPinCount?: number | undefined;
|
|
1189
|
-
}, {
|
|
1190
|
-
leftPinCount?: number | undefined;
|
|
1191
|
-
rightPinCount?: number | undefined;
|
|
1192
|
-
topPinCount?: number | undefined;
|
|
1193
|
-
bottomPinCount?: number | undefined;
|
|
1194
|
-
}>]>, z.ZodObject<{
|
|
1195
1174
|
leftSide: z.ZodOptional<z.ZodObject<{
|
|
1196
1175
|
pins: z.ZodArray<z.ZodNumber, "many">;
|
|
1197
1176
|
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
@@ -1233,15 +1212,19 @@ declare const schematicPortArrangement: z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
|
|
1233
1212
|
pins: number[];
|
|
1234
1213
|
}>>;
|
|
1235
1214
|
}, "strip", z.ZodTypeAny, {
|
|
1215
|
+
leftSize?: number | undefined;
|
|
1216
|
+
topSize?: number | undefined;
|
|
1217
|
+
rightSize?: number | undefined;
|
|
1218
|
+
bottomSize?: number | undefined;
|
|
1236
1219
|
leftSide?: {
|
|
1237
1220
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1238
1221
|
pins: number[];
|
|
1239
1222
|
} | undefined;
|
|
1240
|
-
|
|
1223
|
+
topSide?: {
|
|
1241
1224
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1242
1225
|
pins: number[];
|
|
1243
1226
|
} | undefined;
|
|
1244
|
-
|
|
1227
|
+
rightSide?: {
|
|
1245
1228
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1246
1229
|
pins: number[];
|
|
1247
1230
|
} | undefined;
|
|
@@ -1249,16 +1232,24 @@ declare const schematicPortArrangement: z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
|
|
1249
1232
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1250
1233
|
pins: number[];
|
|
1251
1234
|
} | undefined;
|
|
1235
|
+
leftPinCount?: number | undefined;
|
|
1236
|
+
rightPinCount?: number | undefined;
|
|
1237
|
+
topPinCount?: number | undefined;
|
|
1238
|
+
bottomPinCount?: number | undefined;
|
|
1252
1239
|
}, {
|
|
1240
|
+
leftSize?: number | undefined;
|
|
1241
|
+
topSize?: number | undefined;
|
|
1242
|
+
rightSize?: number | undefined;
|
|
1243
|
+
bottomSize?: number | undefined;
|
|
1253
1244
|
leftSide?: {
|
|
1254
1245
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1255
1246
|
pins: number[];
|
|
1256
1247
|
} | undefined;
|
|
1257
|
-
|
|
1248
|
+
topSide?: {
|
|
1258
1249
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1259
1250
|
pins: number[];
|
|
1260
1251
|
} | undefined;
|
|
1261
|
-
|
|
1252
|
+
rightSide?: {
|
|
1262
1253
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1263
1254
|
pins: number[];
|
|
1264
1255
|
} | undefined;
|
|
@@ -1266,7 +1257,11 @@ declare const schematicPortArrangement: z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
|
|
|
1266
1257
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1267
1258
|
pins: number[];
|
|
1268
1259
|
} | undefined;
|
|
1269
|
-
|
|
1260
|
+
leftPinCount?: number | undefined;
|
|
1261
|
+
rightPinCount?: number | undefined;
|
|
1262
|
+
topPinCount?: number | undefined;
|
|
1263
|
+
bottomPinCount?: number | undefined;
|
|
1264
|
+
}>;
|
|
1270
1265
|
|
|
1271
1266
|
type SchematicPinStyle = Record<string, {
|
|
1272
1267
|
leftMargin?: number | string;
|
|
@@ -1624,37 +1619,15 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
1624
1619
|
}>, {
|
|
1625
1620
|
manufacturerPartNumber: z.ZodOptional<z.ZodString>;
|
|
1626
1621
|
pinLabels: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodString>>;
|
|
1627
|
-
schPortArrangement: z.ZodOptional<z.
|
|
1622
|
+
schPortArrangement: z.ZodOptional<z.ZodObject<{
|
|
1628
1623
|
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
1629
1624
|
topSize: z.ZodOptional<z.ZodNumber>;
|
|
1630
1625
|
rightSize: z.ZodOptional<z.ZodNumber>;
|
|
1631
1626
|
bottomSize: z.ZodOptional<z.ZodNumber>;
|
|
1632
|
-
}, "strip", z.ZodTypeAny, {
|
|
1633
|
-
leftSize?: number | undefined;
|
|
1634
|
-
topSize?: number | undefined;
|
|
1635
|
-
rightSize?: number | undefined;
|
|
1636
|
-
bottomSize?: number | undefined;
|
|
1637
|
-
}, {
|
|
1638
|
-
leftSize?: number | undefined;
|
|
1639
|
-
topSize?: number | undefined;
|
|
1640
|
-
rightSize?: number | undefined;
|
|
1641
|
-
bottomSize?: number | undefined;
|
|
1642
|
-
}>, z.ZodObject<{
|
|
1643
1627
|
leftPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1644
1628
|
rightPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1645
1629
|
topPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1646
1630
|
bottomPinCount: z.ZodOptional<z.ZodNumber>;
|
|
1647
|
-
}, "strip", z.ZodTypeAny, {
|
|
1648
|
-
leftPinCount?: number | undefined;
|
|
1649
|
-
rightPinCount?: number | undefined;
|
|
1650
|
-
topPinCount?: number | undefined;
|
|
1651
|
-
bottomPinCount?: number | undefined;
|
|
1652
|
-
}, {
|
|
1653
|
-
leftPinCount?: number | undefined;
|
|
1654
|
-
rightPinCount?: number | undefined;
|
|
1655
|
-
topPinCount?: number | undefined;
|
|
1656
|
-
bottomPinCount?: number | undefined;
|
|
1657
|
-
}>]>, z.ZodObject<{
|
|
1658
1631
|
leftSide: z.ZodOptional<z.ZodObject<{
|
|
1659
1632
|
pins: z.ZodArray<z.ZodNumber, "many">;
|
|
1660
1633
|
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
@@ -1696,15 +1669,19 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
1696
1669
|
pins: number[];
|
|
1697
1670
|
}>>;
|
|
1698
1671
|
}, "strip", z.ZodTypeAny, {
|
|
1672
|
+
leftSize?: number | undefined;
|
|
1673
|
+
topSize?: number | undefined;
|
|
1674
|
+
rightSize?: number | undefined;
|
|
1675
|
+
bottomSize?: number | undefined;
|
|
1699
1676
|
leftSide?: {
|
|
1700
1677
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1701
1678
|
pins: number[];
|
|
1702
1679
|
} | undefined;
|
|
1703
|
-
|
|
1680
|
+
topSide?: {
|
|
1704
1681
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1705
1682
|
pins: number[];
|
|
1706
1683
|
} | undefined;
|
|
1707
|
-
|
|
1684
|
+
rightSide?: {
|
|
1708
1685
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1709
1686
|
pins: number[];
|
|
1710
1687
|
} | undefined;
|
|
@@ -1712,16 +1689,24 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
1712
1689
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1713
1690
|
pins: number[];
|
|
1714
1691
|
} | undefined;
|
|
1692
|
+
leftPinCount?: number | undefined;
|
|
1693
|
+
rightPinCount?: number | undefined;
|
|
1694
|
+
topPinCount?: number | undefined;
|
|
1695
|
+
bottomPinCount?: number | undefined;
|
|
1715
1696
|
}, {
|
|
1697
|
+
leftSize?: number | undefined;
|
|
1698
|
+
topSize?: number | undefined;
|
|
1699
|
+
rightSize?: number | undefined;
|
|
1700
|
+
bottomSize?: number | undefined;
|
|
1716
1701
|
leftSide?: {
|
|
1717
1702
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1718
1703
|
pins: number[];
|
|
1719
1704
|
} | undefined;
|
|
1720
|
-
|
|
1705
|
+
topSide?: {
|
|
1721
1706
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1722
1707
|
pins: number[];
|
|
1723
1708
|
} | undefined;
|
|
1724
|
-
|
|
1709
|
+
rightSide?: {
|
|
1725
1710
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1726
1711
|
pins: number[];
|
|
1727
1712
|
} | undefined;
|
|
@@ -1729,7 +1714,11 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
1729
1714
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1730
1715
|
pins: number[];
|
|
1731
1716
|
} | undefined;
|
|
1732
|
-
|
|
1717
|
+
leftPinCount?: number | undefined;
|
|
1718
|
+
rightPinCount?: number | undefined;
|
|
1719
|
+
topPinCount?: number | undefined;
|
|
1720
|
+
bottomPinCount?: number | undefined;
|
|
1721
|
+
}>>;
|
|
1733
1722
|
schPinStyle: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
1734
1723
|
leftMargin: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
1735
1724
|
rightMargin: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
@@ -1823,21 +1812,15 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
1823
1812
|
topSize?: number | undefined;
|
|
1824
1813
|
rightSize?: number | undefined;
|
|
1825
1814
|
bottomSize?: number | undefined;
|
|
1826
|
-
} | {
|
|
1827
|
-
leftPinCount?: number | undefined;
|
|
1828
|
-
rightPinCount?: number | undefined;
|
|
1829
|
-
topPinCount?: number | undefined;
|
|
1830
|
-
bottomPinCount?: number | undefined;
|
|
1831
|
-
} | {
|
|
1832
1815
|
leftSide?: {
|
|
1833
1816
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1834
1817
|
pins: number[];
|
|
1835
1818
|
} | undefined;
|
|
1836
|
-
|
|
1819
|
+
topSide?: {
|
|
1837
1820
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1838
1821
|
pins: number[];
|
|
1839
1822
|
} | undefined;
|
|
1840
|
-
|
|
1823
|
+
rightSide?: {
|
|
1841
1824
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1842
1825
|
pins: number[];
|
|
1843
1826
|
} | undefined;
|
|
@@ -1845,6 +1828,10 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
1845
1828
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1846
1829
|
pins: number[];
|
|
1847
1830
|
} | undefined;
|
|
1831
|
+
leftPinCount?: number | undefined;
|
|
1832
|
+
rightPinCount?: number | undefined;
|
|
1833
|
+
topPinCount?: number | undefined;
|
|
1834
|
+
bottomPinCount?: number | undefined;
|
|
1848
1835
|
} | undefined;
|
|
1849
1836
|
schPinStyle?: Record<string, {
|
|
1850
1837
|
leftMargin?: number | undefined;
|
|
@@ -1931,21 +1918,15 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
1931
1918
|
topSize?: number | undefined;
|
|
1932
1919
|
rightSize?: number | undefined;
|
|
1933
1920
|
bottomSize?: number | undefined;
|
|
1934
|
-
} | {
|
|
1935
|
-
leftPinCount?: number | undefined;
|
|
1936
|
-
rightPinCount?: number | undefined;
|
|
1937
|
-
topPinCount?: number | undefined;
|
|
1938
|
-
bottomPinCount?: number | undefined;
|
|
1939
|
-
} | {
|
|
1940
1921
|
leftSide?: {
|
|
1941
1922
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1942
1923
|
pins: number[];
|
|
1943
1924
|
} | undefined;
|
|
1944
|
-
|
|
1925
|
+
topSide?: {
|
|
1945
1926
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1946
1927
|
pins: number[];
|
|
1947
1928
|
} | undefined;
|
|
1948
|
-
|
|
1929
|
+
rightSide?: {
|
|
1949
1930
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1950
1931
|
pins: number[];
|
|
1951
1932
|
} | undefined;
|
|
@@ -1953,6 +1934,10 @@ declare const chipProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.exten
|
|
|
1953
1934
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
1954
1935
|
pins: number[];
|
|
1955
1936
|
} | undefined;
|
|
1937
|
+
leftPinCount?: number | undefined;
|
|
1938
|
+
rightPinCount?: number | undefined;
|
|
1939
|
+
topPinCount?: number | undefined;
|
|
1940
|
+
bottomPinCount?: number | undefined;
|
|
1956
1941
|
} | undefined;
|
|
1957
1942
|
schPinStyle?: Record<string, {
|
|
1958
1943
|
leftMargin?: string | number | undefined;
|
|
@@ -2226,37 +2211,15 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
2226
2211
|
}>, {
|
|
2227
2212
|
manufacturerPartNumber: z.ZodOptional<z.ZodString>;
|
|
2228
2213
|
pinLabels: z.ZodOptional<z.ZodRecord<z.ZodUnion<[z.ZodNumber, z.ZodString]>, z.ZodString>>;
|
|
2229
|
-
schPortArrangement: z.ZodOptional<z.
|
|
2214
|
+
schPortArrangement: z.ZodOptional<z.ZodObject<{
|
|
2230
2215
|
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
2231
2216
|
topSize: z.ZodOptional<z.ZodNumber>;
|
|
2232
2217
|
rightSize: z.ZodOptional<z.ZodNumber>;
|
|
2233
2218
|
bottomSize: z.ZodOptional<z.ZodNumber>;
|
|
2234
|
-
}, "strip", z.ZodTypeAny, {
|
|
2235
|
-
leftSize?: number | undefined;
|
|
2236
|
-
topSize?: number | undefined;
|
|
2237
|
-
rightSize?: number | undefined;
|
|
2238
|
-
bottomSize?: number | undefined;
|
|
2239
|
-
}, {
|
|
2240
|
-
leftSize?: number | undefined;
|
|
2241
|
-
topSize?: number | undefined;
|
|
2242
|
-
rightSize?: number | undefined;
|
|
2243
|
-
bottomSize?: number | undefined;
|
|
2244
|
-
}>, z.ZodObject<{
|
|
2245
2219
|
leftPinCount: z.ZodOptional<z.ZodNumber>;
|
|
2246
2220
|
rightPinCount: z.ZodOptional<z.ZodNumber>;
|
|
2247
2221
|
topPinCount: z.ZodOptional<z.ZodNumber>;
|
|
2248
2222
|
bottomPinCount: z.ZodOptional<z.ZodNumber>;
|
|
2249
|
-
}, "strip", z.ZodTypeAny, {
|
|
2250
|
-
leftPinCount?: number | undefined;
|
|
2251
|
-
rightPinCount?: number | undefined;
|
|
2252
|
-
topPinCount?: number | undefined;
|
|
2253
|
-
bottomPinCount?: number | undefined;
|
|
2254
|
-
}, {
|
|
2255
|
-
leftPinCount?: number | undefined;
|
|
2256
|
-
rightPinCount?: number | undefined;
|
|
2257
|
-
topPinCount?: number | undefined;
|
|
2258
|
-
bottomPinCount?: number | undefined;
|
|
2259
|
-
}>]>, z.ZodObject<{
|
|
2260
2223
|
leftSide: z.ZodOptional<z.ZodObject<{
|
|
2261
2224
|
pins: z.ZodArray<z.ZodNumber, "many">;
|
|
2262
2225
|
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
@@ -2298,15 +2261,19 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
2298
2261
|
pins: number[];
|
|
2299
2262
|
}>>;
|
|
2300
2263
|
}, "strip", z.ZodTypeAny, {
|
|
2264
|
+
leftSize?: number | undefined;
|
|
2265
|
+
topSize?: number | undefined;
|
|
2266
|
+
rightSize?: number | undefined;
|
|
2267
|
+
bottomSize?: number | undefined;
|
|
2301
2268
|
leftSide?: {
|
|
2302
2269
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2303
2270
|
pins: number[];
|
|
2304
2271
|
} | undefined;
|
|
2305
|
-
|
|
2272
|
+
topSide?: {
|
|
2306
2273
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2307
2274
|
pins: number[];
|
|
2308
2275
|
} | undefined;
|
|
2309
|
-
|
|
2276
|
+
rightSide?: {
|
|
2310
2277
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2311
2278
|
pins: number[];
|
|
2312
2279
|
} | undefined;
|
|
@@ -2314,16 +2281,24 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
2314
2281
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2315
2282
|
pins: number[];
|
|
2316
2283
|
} | undefined;
|
|
2284
|
+
leftPinCount?: number | undefined;
|
|
2285
|
+
rightPinCount?: number | undefined;
|
|
2286
|
+
topPinCount?: number | undefined;
|
|
2287
|
+
bottomPinCount?: number | undefined;
|
|
2317
2288
|
}, {
|
|
2289
|
+
leftSize?: number | undefined;
|
|
2290
|
+
topSize?: number | undefined;
|
|
2291
|
+
rightSize?: number | undefined;
|
|
2292
|
+
bottomSize?: number | undefined;
|
|
2318
2293
|
leftSide?: {
|
|
2319
2294
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2320
2295
|
pins: number[];
|
|
2321
2296
|
} | undefined;
|
|
2322
|
-
|
|
2297
|
+
topSide?: {
|
|
2323
2298
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2324
2299
|
pins: number[];
|
|
2325
2300
|
} | undefined;
|
|
2326
|
-
|
|
2301
|
+
rightSide?: {
|
|
2327
2302
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2328
2303
|
pins: number[];
|
|
2329
2304
|
} | undefined;
|
|
@@ -2331,7 +2306,11 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
2331
2306
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2332
2307
|
pins: number[];
|
|
2333
2308
|
} | undefined;
|
|
2334
|
-
|
|
2309
|
+
leftPinCount?: number | undefined;
|
|
2310
|
+
rightPinCount?: number | undefined;
|
|
2311
|
+
topPinCount?: number | undefined;
|
|
2312
|
+
bottomPinCount?: number | undefined;
|
|
2313
|
+
}>>;
|
|
2335
2314
|
schPinStyle: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodObject<{
|
|
2336
2315
|
leftMargin: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
2337
2316
|
rightMargin: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
@@ -2425,21 +2404,15 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
2425
2404
|
topSize?: number | undefined;
|
|
2426
2405
|
rightSize?: number | undefined;
|
|
2427
2406
|
bottomSize?: number | undefined;
|
|
2428
|
-
} | {
|
|
2429
|
-
leftPinCount?: number | undefined;
|
|
2430
|
-
rightPinCount?: number | undefined;
|
|
2431
|
-
topPinCount?: number | undefined;
|
|
2432
|
-
bottomPinCount?: number | undefined;
|
|
2433
|
-
} | {
|
|
2434
2407
|
leftSide?: {
|
|
2435
2408
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2436
2409
|
pins: number[];
|
|
2437
2410
|
} | undefined;
|
|
2438
|
-
|
|
2411
|
+
topSide?: {
|
|
2439
2412
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2440
2413
|
pins: number[];
|
|
2441
2414
|
} | undefined;
|
|
2442
|
-
|
|
2415
|
+
rightSide?: {
|
|
2443
2416
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2444
2417
|
pins: number[];
|
|
2445
2418
|
} | undefined;
|
|
@@ -2447,6 +2420,10 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
2447
2420
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2448
2421
|
pins: number[];
|
|
2449
2422
|
} | undefined;
|
|
2423
|
+
leftPinCount?: number | undefined;
|
|
2424
|
+
rightPinCount?: number | undefined;
|
|
2425
|
+
topPinCount?: number | undefined;
|
|
2426
|
+
bottomPinCount?: number | undefined;
|
|
2450
2427
|
} | undefined;
|
|
2451
2428
|
schPinStyle?: Record<string, {
|
|
2452
2429
|
leftMargin?: number | undefined;
|
|
@@ -2533,21 +2510,15 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
2533
2510
|
topSize?: number | undefined;
|
|
2534
2511
|
rightSize?: number | undefined;
|
|
2535
2512
|
bottomSize?: number | undefined;
|
|
2536
|
-
} | {
|
|
2537
|
-
leftPinCount?: number | undefined;
|
|
2538
|
-
rightPinCount?: number | undefined;
|
|
2539
|
-
topPinCount?: number | undefined;
|
|
2540
|
-
bottomPinCount?: number | undefined;
|
|
2541
|
-
} | {
|
|
2542
2513
|
leftSide?: {
|
|
2543
2514
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2544
2515
|
pins: number[];
|
|
2545
2516
|
} | undefined;
|
|
2546
|
-
|
|
2517
|
+
topSide?: {
|
|
2547
2518
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2548
2519
|
pins: number[];
|
|
2549
2520
|
} | undefined;
|
|
2550
|
-
|
|
2521
|
+
rightSide?: {
|
|
2551
2522
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2552
2523
|
pins: number[];
|
|
2553
2524
|
} | undefined;
|
|
@@ -2555,6 +2526,10 @@ declare const bugProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extend
|
|
|
2555
2526
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2556
2527
|
pins: number[];
|
|
2557
2528
|
} | undefined;
|
|
2529
|
+
leftPinCount?: number | undefined;
|
|
2530
|
+
rightPinCount?: number | undefined;
|
|
2531
|
+
topPinCount?: number | undefined;
|
|
2532
|
+
bottomPinCount?: number | undefined;
|
|
2558
2533
|
} | undefined;
|
|
2559
2534
|
schPinStyle?: Record<string, {
|
|
2560
2535
|
leftMargin?: string | number | undefined;
|
|
@@ -2857,37 +2832,15 @@ declare const jumperProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.ext
|
|
|
2857
2832
|
schWidth: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
2858
2833
|
schHeight: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
|
|
2859
2834
|
schDirection: z.ZodOptional<z.ZodEnum<["left", "right"]>>;
|
|
2860
|
-
schPortArrangement: z.ZodOptional<z.
|
|
2835
|
+
schPortArrangement: z.ZodOptional<z.ZodObject<{
|
|
2861
2836
|
leftSize: z.ZodOptional<z.ZodNumber>;
|
|
2862
2837
|
topSize: z.ZodOptional<z.ZodNumber>;
|
|
2863
2838
|
rightSize: z.ZodOptional<z.ZodNumber>;
|
|
2864
2839
|
bottomSize: z.ZodOptional<z.ZodNumber>;
|
|
2865
|
-
}, "strip", z.ZodTypeAny, {
|
|
2866
|
-
leftSize?: number | undefined;
|
|
2867
|
-
topSize?: number | undefined;
|
|
2868
|
-
rightSize?: number | undefined;
|
|
2869
|
-
bottomSize?: number | undefined;
|
|
2870
|
-
}, {
|
|
2871
|
-
leftSize?: number | undefined;
|
|
2872
|
-
topSize?: number | undefined;
|
|
2873
|
-
rightSize?: number | undefined;
|
|
2874
|
-
bottomSize?: number | undefined;
|
|
2875
|
-
}>, z.ZodObject<{
|
|
2876
2840
|
leftPinCount: z.ZodOptional<z.ZodNumber>;
|
|
2877
2841
|
rightPinCount: z.ZodOptional<z.ZodNumber>;
|
|
2878
2842
|
topPinCount: z.ZodOptional<z.ZodNumber>;
|
|
2879
2843
|
bottomPinCount: z.ZodOptional<z.ZodNumber>;
|
|
2880
|
-
}, "strip", z.ZodTypeAny, {
|
|
2881
|
-
leftPinCount?: number | undefined;
|
|
2882
|
-
rightPinCount?: number | undefined;
|
|
2883
|
-
topPinCount?: number | undefined;
|
|
2884
|
-
bottomPinCount?: number | undefined;
|
|
2885
|
-
}, {
|
|
2886
|
-
leftPinCount?: number | undefined;
|
|
2887
|
-
rightPinCount?: number | undefined;
|
|
2888
|
-
topPinCount?: number | undefined;
|
|
2889
|
-
bottomPinCount?: number | undefined;
|
|
2890
|
-
}>]>, z.ZodObject<{
|
|
2891
2844
|
leftSide: z.ZodOptional<z.ZodObject<{
|
|
2892
2845
|
pins: z.ZodArray<z.ZodNumber, "many">;
|
|
2893
2846
|
direction: z.ZodUnion<[z.ZodLiteral<"top-to-bottom">, z.ZodLiteral<"left-to-right">, z.ZodLiteral<"bottom-to-top">, z.ZodLiteral<"right-to-left">]>;
|
|
@@ -2929,15 +2882,19 @@ declare const jumperProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.ext
|
|
|
2929
2882
|
pins: number[];
|
|
2930
2883
|
}>>;
|
|
2931
2884
|
}, "strip", z.ZodTypeAny, {
|
|
2885
|
+
leftSize?: number | undefined;
|
|
2886
|
+
topSize?: number | undefined;
|
|
2887
|
+
rightSize?: number | undefined;
|
|
2888
|
+
bottomSize?: number | undefined;
|
|
2932
2889
|
leftSide?: {
|
|
2933
2890
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2934
2891
|
pins: number[];
|
|
2935
2892
|
} | undefined;
|
|
2936
|
-
|
|
2893
|
+
topSide?: {
|
|
2937
2894
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2938
2895
|
pins: number[];
|
|
2939
2896
|
} | undefined;
|
|
2940
|
-
|
|
2897
|
+
rightSide?: {
|
|
2941
2898
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2942
2899
|
pins: number[];
|
|
2943
2900
|
} | undefined;
|
|
@@ -2945,16 +2902,24 @@ declare const jumperProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.ext
|
|
|
2945
2902
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2946
2903
|
pins: number[];
|
|
2947
2904
|
} | undefined;
|
|
2905
|
+
leftPinCount?: number | undefined;
|
|
2906
|
+
rightPinCount?: number | undefined;
|
|
2907
|
+
topPinCount?: number | undefined;
|
|
2908
|
+
bottomPinCount?: number | undefined;
|
|
2948
2909
|
}, {
|
|
2910
|
+
leftSize?: number | undefined;
|
|
2911
|
+
topSize?: number | undefined;
|
|
2912
|
+
rightSize?: number | undefined;
|
|
2913
|
+
bottomSize?: number | undefined;
|
|
2949
2914
|
leftSide?: {
|
|
2950
2915
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2951
2916
|
pins: number[];
|
|
2952
2917
|
} | undefined;
|
|
2953
|
-
|
|
2918
|
+
topSide?: {
|
|
2954
2919
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2955
2920
|
pins: number[];
|
|
2956
2921
|
} | undefined;
|
|
2957
|
-
|
|
2922
|
+
rightSide?: {
|
|
2958
2923
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2959
2924
|
pins: number[];
|
|
2960
2925
|
} | undefined;
|
|
@@ -2962,7 +2927,11 @@ declare const jumperProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.ext
|
|
|
2962
2927
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
2963
2928
|
pins: number[];
|
|
2964
2929
|
} | undefined;
|
|
2965
|
-
|
|
2930
|
+
leftPinCount?: number | undefined;
|
|
2931
|
+
rightPinCount?: number | undefined;
|
|
2932
|
+
topPinCount?: number | undefined;
|
|
2933
|
+
bottomPinCount?: number | undefined;
|
|
2934
|
+
}>>;
|
|
2966
2935
|
}>, "strip", z.ZodTypeAny, {
|
|
2967
2936
|
name: string;
|
|
2968
2937
|
pcbX?: number | undefined;
|
|
@@ -3037,21 +3006,15 @@ declare const jumperProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.ext
|
|
|
3037
3006
|
topSize?: number | undefined;
|
|
3038
3007
|
rightSize?: number | undefined;
|
|
3039
3008
|
bottomSize?: number | undefined;
|
|
3040
|
-
} | {
|
|
3041
|
-
leftPinCount?: number | undefined;
|
|
3042
|
-
rightPinCount?: number | undefined;
|
|
3043
|
-
topPinCount?: number | undefined;
|
|
3044
|
-
bottomPinCount?: number | undefined;
|
|
3045
|
-
} | {
|
|
3046
3009
|
leftSide?: {
|
|
3047
3010
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
3048
3011
|
pins: number[];
|
|
3049
3012
|
} | undefined;
|
|
3050
|
-
|
|
3013
|
+
topSide?: {
|
|
3051
3014
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
3052
3015
|
pins: number[];
|
|
3053
3016
|
} | undefined;
|
|
3054
|
-
|
|
3017
|
+
rightSide?: {
|
|
3055
3018
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
3056
3019
|
pins: number[];
|
|
3057
3020
|
} | undefined;
|
|
@@ -3059,6 +3022,10 @@ declare const jumperProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.ext
|
|
|
3059
3022
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
3060
3023
|
pins: number[];
|
|
3061
3024
|
} | undefined;
|
|
3025
|
+
leftPinCount?: number | undefined;
|
|
3026
|
+
rightPinCount?: number | undefined;
|
|
3027
|
+
topPinCount?: number | undefined;
|
|
3028
|
+
bottomPinCount?: number | undefined;
|
|
3062
3029
|
} | undefined;
|
|
3063
3030
|
schPinStyle?: Record<string, {
|
|
3064
3031
|
leftMargin?: number | undefined;
|
|
@@ -3146,21 +3113,15 @@ declare const jumperProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.ext
|
|
|
3146
3113
|
topSize?: number | undefined;
|
|
3147
3114
|
rightSize?: number | undefined;
|
|
3148
3115
|
bottomSize?: number | undefined;
|
|
3149
|
-
} | {
|
|
3150
|
-
leftPinCount?: number | undefined;
|
|
3151
|
-
rightPinCount?: number | undefined;
|
|
3152
|
-
topPinCount?: number | undefined;
|
|
3153
|
-
bottomPinCount?: number | undefined;
|
|
3154
|
-
} | {
|
|
3155
3116
|
leftSide?: {
|
|
3156
3117
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
3157
3118
|
pins: number[];
|
|
3158
3119
|
} | undefined;
|
|
3159
|
-
|
|
3120
|
+
topSide?: {
|
|
3160
3121
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
3161
3122
|
pins: number[];
|
|
3162
3123
|
} | undefined;
|
|
3163
|
-
|
|
3124
|
+
rightSide?: {
|
|
3164
3125
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
3165
3126
|
pins: number[];
|
|
3166
3127
|
} | undefined;
|
|
@@ -3168,6 +3129,10 @@ declare const jumperProps: z.ZodObject<z.objectUtil.extendShape<z.objectUtil.ext
|
|
|
3168
3129
|
direction: "top-to-bottom" | "left-to-right" | "bottom-to-top" | "right-to-left";
|
|
3169
3130
|
pins: number[];
|
|
3170
3131
|
} | undefined;
|
|
3132
|
+
leftPinCount?: number | undefined;
|
|
3133
|
+
rightPinCount?: number | undefined;
|
|
3134
|
+
topPinCount?: number | undefined;
|
|
3135
|
+
bottomPinCount?: number | undefined;
|
|
3171
3136
|
} | undefined;
|
|
3172
3137
|
schPinStyle?: Record<string, {
|
|
3173
3138
|
leftMargin?: string | number | undefined;
|
package/dist/index.js
CHANGED
|
@@ -227,22 +227,16 @@ var schematicPortArrangement = import_zod7.z.object({
|
|
|
227
227
|
leftSize: import_zod7.z.number().optional().describe("@deprecated, use leftPinCount"),
|
|
228
228
|
topSize: import_zod7.z.number().optional().describe("@deprecated, use topPinCount"),
|
|
229
229
|
rightSize: import_zod7.z.number().optional().describe("@deprecated, use rightPinCount"),
|
|
230
|
-
bottomSize: import_zod7.z.number().optional().describe("@deprecated, use bottomPinCount")
|
|
231
|
-
|
|
232
|
-
import_zod7.z.
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
leftSide: explicitPinSideDefinition.optional(),
|
|
241
|
-
rightSide: explicitPinSideDefinition.optional(),
|
|
242
|
-
topSide: explicitPinSideDefinition.optional(),
|
|
243
|
-
bottomSide: explicitPinSideDefinition.optional()
|
|
244
|
-
})
|
|
245
|
-
);
|
|
230
|
+
bottomSize: import_zod7.z.number().optional().describe("@deprecated, use bottomPinCount"),
|
|
231
|
+
leftPinCount: import_zod7.z.number().optional(),
|
|
232
|
+
rightPinCount: import_zod7.z.number().optional(),
|
|
233
|
+
topPinCount: import_zod7.z.number().optional(),
|
|
234
|
+
bottomPinCount: import_zod7.z.number().optional(),
|
|
235
|
+
leftSide: explicitPinSideDefinition.optional(),
|
|
236
|
+
rightSide: explicitPinSideDefinition.optional(),
|
|
237
|
+
topSide: explicitPinSideDefinition.optional(),
|
|
238
|
+
bottomSide: explicitPinSideDefinition.optional()
|
|
239
|
+
});
|
|
246
240
|
expectTypesMatch(true);
|
|
247
241
|
|
|
248
242
|
// lib/common/schematicPinStyle.ts
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../lib/index.ts","../lib/typecheck.ts","../lib/common/direction.ts","../lib/common/portHints.ts","../lib/common/layout.ts","../lib/common/point3.ts","../lib/common/cadModel.ts","../lib/common/footprintProp.ts","../lib/common/schematicPinDefinitions.ts","../lib/common/schematicPinStyle.ts","../lib/components/board.ts","../lib/common/point.ts","../lib/components/chip.ts","../lib/components/jumper.ts","../lib/components/resistor.ts","../lib/components/capacitor.ts","../lib/components/group.ts","../lib/components/net.ts","../lib/components/constrainedlayout.ts","../lib/common/distance.ts","../lib/components/constraint.ts","../lib/components/smtpad.ts","../lib/components/hole.ts","../lib/components/trace.ts","../lib/components/footprint.ts"],"sourcesContent":["/**\n * THINKING ABOUT ADDING SOMETHING TO THIS FILE?\n *\n * THINK AGAIN!\n *\n * This file is TOO BIG! Create files using the pattern in the surrounding\n * directories, then export from this file.\n */\nimport type { LayoutBuilder } from \"@tscircuit/layout\"\nimport {\n type AnySoupElementInput,\n capacitance,\n distance,\n inductance,\n layer_ref,\n length,\n type PCBPlatedHoleInput,\n type PCBSMTPadInput,\n point,\n resistance,\n rotation,\n route_hint_point,\n supplier_name,\n voltage,\n} from \"@tscircuit/soup\"\nimport type { ReactElement } from \"react\"\nimport { z } from \"zod\"\nimport { direction } from \"./common/direction\"\nimport { portHints } from \"./common/portHints\"\nimport {\n commonComponentProps,\n commonLayoutProps,\n lrPins,\n lrPolarPins,\n pcbLayoutProps,\n} from \"./common/layout\"\nimport { explicitPinSideDefinition } from \"./common/schematicPinDefinitions\"\n\nexport * from \"./common/direction\"\nexport * from \"./common/portHints\"\nexport * from \"./common/layout\"\nexport * from \"./common/point3\"\nexport * from \"./common/portHints\"\nexport * from \"./common/footprintProp\"\nexport * from \"./common/schematicPinDefinitions\"\nexport * from \"./common/schematicPinStyle\"\nexport * from \"./common/cadModel\"\n\nexport * from \"./components/board\"\nexport * from \"./components/chip\"\nexport * from \"./components/jumper\"\n\nexport * from \"./components/resistor\"\nexport * from \"./components/capacitor\"\nexport * from \"./components/group\"\nexport * from \"./components/net\"\nexport * from \"./components/constrainedlayout\"\nexport * from \"./components/constraint\"\nexport * from \"./components/smtpad\"\nexport * from \"./components/hole\"\nexport * from \"./components/trace\"\nexport * from \"./components/footprint\"\n\nexport const inductorProps = commonComponentProps.extend({\n inductance,\n})\nexport const inductorPins = lrPins\nexport type InductorProps = z.input<typeof inductorProps>\n\nexport const diodeProps = commonComponentProps.extend({})\nexport const diodePins = lrPolarPins\nexport type DiodeProps = z.input<typeof diodeProps>\n\nexport const ledProps = commonComponentProps.extend({\n color: z.string().optional(),\n})\nexport const ledPins = lrPolarPins\nexport type LedProps = z.input<typeof ledProps>\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\nexport const distanceOrMultiplier = distance.or(z.enum([\"2x\", \"3x\", \"4x\"]))\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\nexport const netAliasProps = commonLayoutProps.extend({\n net: z.string().optional(),\n})\nexport type NetAliasProps = z.input<typeof netAliasProps>\n\nexport const platedHoleProps = z.union([\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])\nexport type PlatedHoleProps = z.input<typeof platedHoleProps>\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\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\nexport const schematicTextProps = z.object({\n schX: distance,\n schY: distance,\n text: z.string(),\n})\nexport type SchematicTextProps = z.input<typeof schematicTextProps>\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\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\nexport const componentProps = commonComponentProps\nexport type ComponentProps = z.input<typeof componentProps>\n\nexport const powerSourceProps = commonComponentProps.extend({\n voltage,\n})\nexport type PowerSourceProps = z.input<typeof powerSourceProps>\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\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\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\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\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\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\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\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\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\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 type { TypeEqual } from \"ts-expect\"\n\nexport const expectTypesMatch = <const T1, const T2>(\n shouldBe: TypeEqual<T1, T2>,\n): void => {}\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 { z } from \"zod\"\nimport {\n type AnySoupElementInput,\n distance,\n layer_ref,\n type LayerRef,\n type LayerRefInput,\n rotation,\n supplier_name,\n} from \"@tscircuit/soup\"\nimport { point3 } from \"./point3\"\nimport {\n cadModelJscad,\n cadModelObj,\n cadModelProp,\n cadModelStl,\n type CadModelJscad,\n type CadModelObj,\n type CadModelProp,\n type CadModelStl,\n} from \"./cadModel\"\nimport { footprintProp, type Footprint } from \"./footprintProp\"\nimport { expectTypesMatch } from \"lib/typecheck\"\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 interface SupplierProps {\n supplierPartNumbers?: { [k in SupplierName]?: string[] }\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?: SupplierProps[\"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 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 { distance } from \"@tscircuit/soup\"\nimport { z } from \"zod\"\n\nexport const point3 = z.object({\n x: distance,\n y: distance,\n z: distance,\n})\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 type { LayerRef } from \"@tscircuit/soup\"\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: number[]\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 type SchematicPortArrangement =\n | SchematicPortArrangementWithSizes\n | SchematicPortArrangementWithSides\n | SchematicPortArrangementWithPinCounts\n\nexport const explicitPinSideDefinition = z.object({\n pins: z.array(z.number()),\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\n .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\n .number()\n .optional()\n .describe(\"@deprecated, use bottomPinCount\"),\n })\n .or(\n z.object({\n leftPinCount: z.number().optional(),\n rightPinCount: z.number().optional(),\n topPinCount: z.number().optional(),\n bottomPinCount: z.number().optional(),\n }),\n )\n .or(\n z.object({\n leftSide: explicitPinSideDefinition.optional(),\n rightSide: explicitPinSideDefinition.optional(),\n topSide: explicitPinSideDefinition.optional(),\n bottomSide: explicitPinSideDefinition.optional(),\n }),\n )\n\nexpectTypesMatch<\n SchematicPortArrangement,\n z.input<typeof schematicPortArrangement>\n>(true)\n","import { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport { expectTypesMatch } from \"lib/typecheck\"\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 { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport { point, type Point } from \"lib/common/point\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport type { SubcircuitGroupProps } from \"./group\"\nimport type { Distance } from \"lib/common/distance\"\n\nexport interface BoardProps {\n width?: number | string\n height?: number | string\n outline?: Point[]\n pcbX?: number | string\n pcbY?: number | string\n layout?: any\n routingDisabled?: boolean\n children?: any\n defaultTraceWidth?: Distance\n}\n\nexport const boardProps = z.object({\n width: distance.optional(),\n height: distance.optional(),\n outline: z.array(point).optional(),\n pcbX: distance.optional().default(0),\n pcbY: distance.optional().default(0),\n layout: z.any().optional(),\n routingDisabled: z.boolean().optional(),\n children: z.any(),\n defaultTraceWidth: distance.optional(),\n})\n\nexpectTypesMatch<BoardProps, z.input<typeof boardProps>>(true)\n","import { distance } from \"@tscircuit/soup\"\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 { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport {\n schematicPortArrangement,\n type SchematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\nimport {\n schematicPinStyle,\n type SchematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport type { Distance } from \"lib/common/distance\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface ChipProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string>\n schPortArrangement?: SchematicPortArrangement\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: Distance\n schWidth?: Distance\n schHeight?: Distance\n}\n\nexport const chipProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z.record(z.number().or(z.string()), z.string()).optional(),\n schPortArrangement: schematicPortArrangement.optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.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 { z } from \"zod\"\nimport {\n commonComponentProps,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport {\n schematicPinStyle,\n type SchematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport { distance } from \"@tscircuit/soup\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport {\n schematicPortArrangement,\n type SchematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\n\nexport interface JumperProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | 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.record(z.number().or(z.string()), z.string()).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 { z } from \"zod\"\nimport { resistance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n lrPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\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 { z } from \"zod\"\nimport { capacitance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n lrPins,\n lrPolarPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface CapacitorProps extends CommonComponentProps {\n capacitance: number | string\n\n decouplingFor?: string\n decouplingTo?: string\n\n bypassFor?: string\n bypassTo?: string\n}\n\nexport const capacitorProps = commonComponentProps.extend({\n capacitance,\n\n decouplingFor: z.string().optional(),\n decouplingTo: z.string().optional(),\n\n bypassFor: z.string().optional(),\n bypassTo: z.string().optional(),\n})\nexport const capacitorPins = lrPolarPins\n\nexpectTypesMatch<CapacitorProps, z.input<typeof capacitorProps>>(true)\n","import { z } from \"zod\"\nimport { commonLayoutProps, type CommonLayoutProps } from \"lib/common/layout\"\nimport { length } from \"@tscircuit/soup\"\nimport type { LayoutBuilder } from \"@tscircuit/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport type { Distance } from \"lib/common/distance\"\n\nexport interface BaseGroupProps extends CommonLayoutProps {\n name?: string\n children?: any\n}\n\nexport interface SubcircuitGroupProps extends BaseGroupProps {\n subcircuit: true\n layout?: LayoutBuilder\n routingDisabled?: boolean\n defaultTraceWidth?: Distance\n}\n\nexport type GroupProps = SubcircuitGroupProps | BaseGroupProps\n\nexport const baseGroupProps = commonLayoutProps.extend({\n name: z.string().optional(),\n children: z.any().optional(),\n})\n\nexport const subcircuitGroupProps = baseGroupProps.extend({\n subcircuit: z.literal(true),\n layout: z.custom<LayoutBuilder>((v) => true).optional(),\n routingDisabled: z.boolean().optional(),\n defaultTraceWidth: length.optional(),\n})\n\nexport const groupProps = z.union([baseGroupProps, subcircuitGroupProps])\n\ntype InferredBaseGroupProps = z.input<typeof baseGroupProps>\ntype InferredSubcircuitGroupProps = z.input<typeof subcircuitGroupProps>\n\nexpectTypesMatch<BaseGroupProps, InferredBaseGroupProps>(true)\nexpectTypesMatch<SubcircuitGroupProps, InferredSubcircuitGroupProps>(true)\n\ntype InferredGroupProps = z.input<typeof groupProps>\nexpectTypesMatch<GroupProps, InferredGroupProps>(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 \"@tscircuit/soup\"\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 CircleSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"circle\"\n radius: Distance\n portHints?: PortHints\n}\n\nexport type SmtPadProps = RectSmtPadProps | CircleSmtPadProps\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 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([circleSmtPadProps, rectSmtPadProps])\n\nexport type InferredSmtPadProps = z.input<typeof smtPadProps>\nexpectTypesMatch<InferredSmtPadProps, SmtPadProps>(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 { z } from \"zod\"\nimport { distance, route_hint_point } from \"@tscircuit/soup\"\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})\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 { layer_ref, type LayerRef } from \"@tscircuit/soup\"\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"],"mappings":"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","names":["distanceOrMultiplier","import_soup","import_zod","import_zod","import_zod","import_soup","import_zod","import_zod","import_zod","import_zod","import_zod","import_soup","import_zod","import_soup","import_soup","import_zod","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_zod","import_zod","import_soup","import_zod","import_zod","import_zod","import_zod","import_soup","import_soup","import_zod","distanceOrMultiplier"]}
|
|
1
|
+
{"version":3,"sources":["../lib/index.ts","../lib/typecheck.ts","../lib/common/direction.ts","../lib/common/portHints.ts","../lib/common/layout.ts","../lib/common/point3.ts","../lib/common/cadModel.ts","../lib/common/footprintProp.ts","../lib/common/schematicPinDefinitions.ts","../lib/common/schematicPinStyle.ts","../lib/components/board.ts","../lib/common/point.ts","../lib/components/chip.ts","../lib/components/jumper.ts","../lib/components/resistor.ts","../lib/components/capacitor.ts","../lib/components/group.ts","../lib/components/net.ts","../lib/components/constrainedlayout.ts","../lib/common/distance.ts","../lib/components/constraint.ts","../lib/components/smtpad.ts","../lib/components/hole.ts","../lib/components/trace.ts","../lib/components/footprint.ts"],"sourcesContent":["/**\n * THINKING ABOUT ADDING SOMETHING TO THIS FILE?\n *\n * THINK AGAIN!\n *\n * This file is TOO BIG! Create files using the pattern in the surrounding\n * directories, then export from this file.\n */\nimport type { LayoutBuilder } from \"@tscircuit/layout\"\nimport {\n type AnySoupElementInput,\n capacitance,\n distance,\n inductance,\n layer_ref,\n length,\n type PCBPlatedHoleInput,\n type PCBSMTPadInput,\n point,\n resistance,\n rotation,\n route_hint_point,\n supplier_name,\n voltage,\n} from \"@tscircuit/soup\"\nimport type { ReactElement } from \"react\"\nimport { z } from \"zod\"\nimport { direction } from \"./common/direction\"\nimport { portHints } from \"./common/portHints\"\nimport {\n commonComponentProps,\n commonLayoutProps,\n lrPins,\n lrPolarPins,\n pcbLayoutProps,\n} from \"./common/layout\"\nimport { explicitPinSideDefinition } from \"./common/schematicPinDefinitions\"\n\nexport * from \"./common/direction\"\nexport * from \"./common/portHints\"\nexport * from \"./common/layout\"\nexport * from \"./common/point3\"\nexport * from \"./common/portHints\"\nexport * from \"./common/footprintProp\"\nexport * from \"./common/schematicPinDefinitions\"\nexport * from \"./common/schematicPinStyle\"\nexport * from \"./common/cadModel\"\n\nexport * from \"./components/board\"\nexport * from \"./components/chip\"\nexport * from \"./components/jumper\"\n\nexport * from \"./components/resistor\"\nexport * from \"./components/capacitor\"\nexport * from \"./components/group\"\nexport * from \"./components/net\"\nexport * from \"./components/constrainedlayout\"\nexport * from \"./components/constraint\"\nexport * from \"./components/smtpad\"\nexport * from \"./components/hole\"\nexport * from \"./components/trace\"\nexport * from \"./components/footprint\"\n\nexport const inductorProps = commonComponentProps.extend({\n inductance,\n})\nexport const inductorPins = lrPins\nexport type InductorProps = z.input<typeof inductorProps>\n\nexport const diodeProps = commonComponentProps.extend({})\nexport const diodePins = lrPolarPins\nexport type DiodeProps = z.input<typeof diodeProps>\n\nexport const ledProps = commonComponentProps.extend({\n color: z.string().optional(),\n})\nexport const ledPins = lrPolarPins\nexport type LedProps = z.input<typeof ledProps>\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\nexport const distanceOrMultiplier = distance.or(z.enum([\"2x\", \"3x\", \"4x\"]))\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\nexport const netAliasProps = commonLayoutProps.extend({\n net: z.string().optional(),\n})\nexport type NetAliasProps = z.input<typeof netAliasProps>\n\nexport const platedHoleProps = z.union([\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])\nexport type PlatedHoleProps = z.input<typeof platedHoleProps>\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\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\nexport const schematicTextProps = z.object({\n schX: distance,\n schY: distance,\n text: z.string(),\n})\nexport type SchematicTextProps = z.input<typeof schematicTextProps>\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\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\nexport const componentProps = commonComponentProps\nexport type ComponentProps = z.input<typeof componentProps>\n\nexport const powerSourceProps = commonComponentProps.extend({\n voltage,\n})\nexport type PowerSourceProps = z.input<typeof powerSourceProps>\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\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\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\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\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\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\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\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\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\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 type { TypeEqual } from \"ts-expect\"\n\nexport const expectTypesMatch = <const T1, const T2>(\n shouldBe: TypeEqual<T1, T2>,\n): void => {}\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 { z } from \"zod\"\nimport {\n type AnySoupElementInput,\n distance,\n layer_ref,\n type LayerRef,\n type LayerRefInput,\n rotation,\n supplier_name,\n} from \"@tscircuit/soup\"\nimport { point3 } from \"./point3\"\nimport {\n cadModelJscad,\n cadModelObj,\n cadModelProp,\n cadModelStl,\n type CadModelJscad,\n type CadModelObj,\n type CadModelProp,\n type CadModelStl,\n} from \"./cadModel\"\nimport { footprintProp, type Footprint } from \"./footprintProp\"\nimport { expectTypesMatch } from \"lib/typecheck\"\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 interface SupplierProps {\n supplierPartNumbers?: { [k in SupplierName]?: string[] }\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?: SupplierProps[\"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 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 { distance } from \"@tscircuit/soup\"\nimport { z } from \"zod\"\n\nexport const point3 = z.object({\n x: distance,\n y: distance,\n z: distance,\n})\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 type { LayerRef } from \"@tscircuit/soup\"\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: number[]\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.number()),\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 { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport { expectTypesMatch } from \"lib/typecheck\"\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 { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport { point, type Point } from \"lib/common/point\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport type { SubcircuitGroupProps } from \"./group\"\nimport type { Distance } from \"lib/common/distance\"\n\nexport interface BoardProps {\n width?: number | string\n height?: number | string\n outline?: Point[]\n pcbX?: number | string\n pcbY?: number | string\n layout?: any\n routingDisabled?: boolean\n children?: any\n defaultTraceWidth?: Distance\n}\n\nexport const boardProps = z.object({\n width: distance.optional(),\n height: distance.optional(),\n outline: z.array(point).optional(),\n pcbX: distance.optional().default(0),\n pcbY: distance.optional().default(0),\n layout: z.any().optional(),\n routingDisabled: z.boolean().optional(),\n children: z.any(),\n defaultTraceWidth: distance.optional(),\n})\n\nexpectTypesMatch<BoardProps, z.input<typeof boardProps>>(true)\n","import { distance } from \"@tscircuit/soup\"\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 { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport {\n schematicPortArrangement,\n type SchematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\nimport {\n schematicPinStyle,\n type SchematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport type { Distance } from \"lib/common/distance\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface ChipProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string>\n schPortArrangement?: SchematicPortArrangement\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: Distance\n schWidth?: Distance\n schHeight?: Distance\n}\n\nexport const chipProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z.record(z.number().or(z.string()), z.string()).optional(),\n schPortArrangement: schematicPortArrangement.optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.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 { z } from \"zod\"\nimport {\n commonComponentProps,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport {\n schematicPinStyle,\n type SchematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport { distance } from \"@tscircuit/soup\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport {\n schematicPortArrangement,\n type SchematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\n\nexport interface JumperProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | 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.record(z.number().or(z.string()), z.string()).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 { z } from \"zod\"\nimport { resistance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n lrPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\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 { z } from \"zod\"\nimport { capacitance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n lrPins,\n lrPolarPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface CapacitorProps extends CommonComponentProps {\n capacitance: number | string\n\n decouplingFor?: string\n decouplingTo?: string\n\n bypassFor?: string\n bypassTo?: string\n}\n\nexport const capacitorProps = commonComponentProps.extend({\n capacitance,\n\n decouplingFor: z.string().optional(),\n decouplingTo: z.string().optional(),\n\n bypassFor: z.string().optional(),\n bypassTo: z.string().optional(),\n})\nexport const capacitorPins = lrPolarPins\n\nexpectTypesMatch<CapacitorProps, z.input<typeof capacitorProps>>(true)\n","import { z } from \"zod\"\nimport { commonLayoutProps, type CommonLayoutProps } from \"lib/common/layout\"\nimport { length } from \"@tscircuit/soup\"\nimport type { LayoutBuilder } from \"@tscircuit/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport type { Distance } from \"lib/common/distance\"\n\nexport interface BaseGroupProps extends CommonLayoutProps {\n name?: string\n children?: any\n}\n\nexport interface SubcircuitGroupProps extends BaseGroupProps {\n subcircuit: true\n layout?: LayoutBuilder\n routingDisabled?: boolean\n defaultTraceWidth?: Distance\n}\n\nexport type GroupProps = SubcircuitGroupProps | BaseGroupProps\n\nexport const baseGroupProps = commonLayoutProps.extend({\n name: z.string().optional(),\n children: z.any().optional(),\n})\n\nexport const subcircuitGroupProps = baseGroupProps.extend({\n subcircuit: z.literal(true),\n layout: z.custom<LayoutBuilder>((v) => true).optional(),\n routingDisabled: z.boolean().optional(),\n defaultTraceWidth: length.optional(),\n})\n\nexport const groupProps = z.union([baseGroupProps, subcircuitGroupProps])\n\ntype InferredBaseGroupProps = z.input<typeof baseGroupProps>\ntype InferredSubcircuitGroupProps = z.input<typeof subcircuitGroupProps>\n\nexpectTypesMatch<BaseGroupProps, InferredBaseGroupProps>(true)\nexpectTypesMatch<SubcircuitGroupProps, InferredSubcircuitGroupProps>(true)\n\ntype InferredGroupProps = z.input<typeof groupProps>\nexpectTypesMatch<GroupProps, InferredGroupProps>(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 \"@tscircuit/soup\"\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 CircleSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"circle\"\n radius: Distance\n portHints?: PortHints\n}\n\nexport type SmtPadProps = RectSmtPadProps | CircleSmtPadProps\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 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([circleSmtPadProps, rectSmtPadProps])\n\nexport type InferredSmtPadProps = z.input<typeof smtPadProps>\nexpectTypesMatch<InferredSmtPadProps, SmtPadProps>(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 { z } from \"zod\"\nimport { distance, route_hint_point } from \"@tscircuit/soup\"\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})\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 { layer_ref, type LayerRef } from \"@tscircuit/soup\"\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"],"mappings":"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","names":["distanceOrMultiplier","import_soup","import_zod","import_zod","import_zod","import_soup","import_zod","import_zod","import_zod","import_zod","import_zod","import_soup","import_zod","import_soup","import_soup","import_zod","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_zod","import_zod","import_soup","import_zod","import_zod","import_zod","import_zod","import_soup","import_soup","import_zod","distanceOrMultiplier"]}
|
|
@@ -37,10 +37,10 @@ export interface SchematicPortArrangementWithSides {
|
|
|
37
37
|
bottomSide?: PinSideDefinition
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
export
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
40
|
+
export interface SchematicPortArrangement
|
|
41
|
+
extends SchematicPortArrangementWithSizes,
|
|
42
|
+
SchematicPortArrangementWithSides,
|
|
43
|
+
SchematicPortArrangementWithPinCounts {}
|
|
44
44
|
|
|
45
45
|
export const explicitPinSideDefinition = z.object({
|
|
46
46
|
pins: z.array(z.number()),
|
|
@@ -52,32 +52,20 @@ export const explicitPinSideDefinition = z.object({
|
|
|
52
52
|
]),
|
|
53
53
|
})
|
|
54
54
|
|
|
55
|
-
export const schematicPortArrangement = z
|
|
56
|
-
.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
.
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
topPinCount: z.number().optional(),
|
|
70
|
-
bottomPinCount: z.number().optional(),
|
|
71
|
-
}),
|
|
72
|
-
)
|
|
73
|
-
.or(
|
|
74
|
-
z.object({
|
|
75
|
-
leftSide: explicitPinSideDefinition.optional(),
|
|
76
|
-
rightSide: explicitPinSideDefinition.optional(),
|
|
77
|
-
topSide: explicitPinSideDefinition.optional(),
|
|
78
|
-
bottomSide: explicitPinSideDefinition.optional(),
|
|
79
|
-
}),
|
|
80
|
-
)
|
|
55
|
+
export const schematicPortArrangement = z.object({
|
|
56
|
+
leftSize: z.number().optional().describe("@deprecated, use leftPinCount"),
|
|
57
|
+
topSize: z.number().optional().describe("@deprecated, use topPinCount"),
|
|
58
|
+
rightSize: z.number().optional().describe("@deprecated, use rightPinCount"),
|
|
59
|
+
bottomSize: z.number().optional().describe("@deprecated, use bottomPinCount"),
|
|
60
|
+
leftPinCount: z.number().optional(),
|
|
61
|
+
rightPinCount: z.number().optional(),
|
|
62
|
+
topPinCount: z.number().optional(),
|
|
63
|
+
bottomPinCount: z.number().optional(),
|
|
64
|
+
leftSide: explicitPinSideDefinition.optional(),
|
|
65
|
+
rightSide: explicitPinSideDefinition.optional(),
|
|
66
|
+
topSide: explicitPinSideDefinition.optional(),
|
|
67
|
+
bottomSide: explicitPinSideDefinition.optional(),
|
|
68
|
+
})
|
|
81
69
|
|
|
82
70
|
expectTypesMatch<
|
|
83
71
|
SchematicPortArrangement,
|