@tscircuit/footprinter 0.0.133 → 0.0.135

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -48,8 +48,6 @@ __export(fn_exports, {
48
48
  soic: () => soic,
49
49
  sop8: () => sop8,
50
50
  sot23: () => sot23,
51
- sot235: () => sot235,
52
- sot236: () => sot236,
53
51
  sot363: () => sot363,
54
52
  sot563: () => sot563,
55
53
  sot723: () => sot723,
@@ -1129,20 +1127,6 @@ var tssop = (raw_params) => {
1129
1127
  };
1130
1128
  };
1131
1129
 
1132
- // src/fn/sot236.ts
1133
- var sot236_def = extendSoicDef({
1134
- p: "0.95mm",
1135
- w: "1.6mm",
1136
- legsoutside: true
1137
- });
1138
- var sot236 = (raw_params) => {
1139
- const parameters = sot236_def.parse({ ...raw_params, num_pins: 6 });
1140
- return {
1141
- circuitJson: soicWithoutParsing(parameters),
1142
- parameters
1143
- };
1144
- };
1145
-
1146
1130
  // src/fn/sot363.ts
1147
1131
  var sot363_def = extendSoicDef({});
1148
1132
  var sot363 = (raw_params) => {
@@ -1165,30 +1149,61 @@ var sot363 = (raw_params) => {
1165
1149
  import { z as z9 } from "zod";
1166
1150
  var sot23_def = z9.object({
1167
1151
  fn: z9.string(),
1168
- num_pins: z9.literal(3).default(3),
1152
+ num_pins: z9.number().default(3),
1169
1153
  w: z9.string().default("1.92mm"),
1170
1154
  h: z9.string().default("2.74mm"),
1171
1155
  pl: z9.string().default("0.8mm"),
1172
- pw: z9.string().default("0.764mm")
1156
+ pw: z9.string().default("0.764mm"),
1157
+ p: z9.string().default("0.95mm"),
1158
+ string: z9.string().optional()
1159
+ });
1160
+ var sot23_6_or_8_def = extendSoicDef({
1161
+ p: "0.95mm",
1162
+ w: "1.6mm",
1163
+ legsoutside: true
1173
1164
  });
1174
1165
  var sot23 = (raw_params) => {
1175
- const parameters = sot23_def.parse(raw_params);
1176
- return {
1177
- circuitJson: sot23WithoutParsing(parameters),
1178
- parameters
1179
- };
1166
+ const match = raw_params.string?.match(/^sot23_(\d+)/);
1167
+ const numPins = match ? Number.parseInt(match[1], 10) : 3;
1168
+ if (numPins === 6 || numPins === 8) {
1169
+ const parameters2 = sot23_6_or_8_def.parse({
1170
+ ...raw_params,
1171
+ num_pins: numPins
1172
+ });
1173
+ return {
1174
+ circuitJson: soicWithoutParsing(parameters2),
1175
+ parameters: parameters2
1176
+ };
1177
+ }
1178
+ const parameters = sot23_def.parse({
1179
+ ...raw_params,
1180
+ num_pins: numPins
1181
+ });
1182
+ if (parameters.num_pins === 3) {
1183
+ return {
1184
+ circuitJson: sot23_3(parameters),
1185
+ parameters
1186
+ };
1187
+ }
1188
+ if (parameters.num_pins === 5) {
1189
+ return {
1190
+ circuitJson: sot23_5(parameters),
1191
+ parameters
1192
+ };
1193
+ }
1194
+ throw new Error("Invalid number of pins");
1180
1195
  };
1181
1196
  var getCcwSot23Coords = (parameters) => {
1182
1197
  const { pn, w, h, pl } = parameters;
1183
1198
  if (pn === 1) {
1184
1199
  return { x: -1.7, y: 0 };
1185
- } else if (pn === 2) {
1200
+ }
1201
+ if (pn === 2) {
1186
1202
  return { x: 1.7, y: -0.95 };
1187
- } else {
1188
- return { x: 1.7, y: 0.95 };
1189
1203
  }
1204
+ return { x: 1.7, y: 0.95 };
1190
1205
  };
1191
- var sot23WithoutParsing = (parameters) => {
1206
+ var sot23_3 = (parameters) => {
1192
1207
  const pads = [];
1193
1208
  for (let i = 0; i < parameters.num_pins; i++) {
1194
1209
  const { x, y } = getCcwSot23Coords({
@@ -1210,11 +1225,118 @@ var sot23WithoutParsing = (parameters) => {
1210
1225
  }
1211
1226
  const silkscreenRefText = silkscreenRef(
1212
1227
  0,
1213
- parseInt(parameters.h),
1228
+ Number.parseInt(parameters.h),
1214
1229
  0.3
1215
1230
  );
1216
1231
  return [...pads, silkscreenRefText];
1217
1232
  };
1233
+ var getCcwSot235Coords = (parameters) => {
1234
+ const { p, h, pn } = parameters;
1235
+ if (pn === 1) {
1236
+ return { x: -h / 2 - 0.5, y: p };
1237
+ }
1238
+ if (pn === 2) {
1239
+ return { x: -h / 2 - 0.5, y: 0 };
1240
+ }
1241
+ if (pn === 3) {
1242
+ return { x: -h / 2 - 0.5, y: -p };
1243
+ }
1244
+ if (pn === 4) {
1245
+ return { x: h / 2 + 0.5, y: -p };
1246
+ }
1247
+ if (pn === 5) {
1248
+ return { x: h / 2 + 0.5, y: p };
1249
+ }
1250
+ throw new Error("Invalid pin number");
1251
+ };
1252
+ var sot23_5 = (parameters) => {
1253
+ const pads = [];
1254
+ for (let i = 1; i <= parameters.num_pins; i++) {
1255
+ const { x, y } = getCcwSot235Coords({
1256
+ h: Number.parseFloat(parameters.h),
1257
+ p: Number.parseFloat(parameters.p),
1258
+ pn: i
1259
+ });
1260
+ pads.push(
1261
+ rectpad(
1262
+ i,
1263
+ x,
1264
+ y,
1265
+ Number.parseFloat(parameters.pl),
1266
+ Number.parseFloat(parameters.pw)
1267
+ )
1268
+ );
1269
+ }
1270
+ const width = (parameters.num_pins + 1) / 2 * Number.parseFloat(parameters.p);
1271
+ const height = Number.parseFloat(parameters.h);
1272
+ const silkscreenPath1 = {
1273
+ layer: "top",
1274
+ pcb_component_id: "",
1275
+ pcb_silkscreen_path_id: "silkscreen_path_1",
1276
+ route: [
1277
+ { x: -width / 3, y: height / 2 + Number.parseFloat(parameters.p) / 1.3 },
1278
+ { x: width / 3, y: height / 2 + Number.parseFloat(parameters.p) / 1.3 }
1279
+ ],
1280
+ type: "pcb_silkscreen_path",
1281
+ stroke_width: 0.05
1282
+ };
1283
+ const silkscreenPath2 = {
1284
+ layer: "top",
1285
+ pcb_component_id: "",
1286
+ pcb_silkscreen_path_id: "silkscreen_path_2",
1287
+ route: [
1288
+ { x: -width / 3, y: -height / 2 - Number.parseFloat(parameters.p) / 1.3 },
1289
+ { x: width / 3, y: -height / 2 - Number.parseFloat(parameters.p) / 1.3 }
1290
+ ],
1291
+ type: "pcb_silkscreen_path",
1292
+ stroke_width: 0.05
1293
+ };
1294
+ const silkscreenRefText = silkscreenRef(0, height + 0.3, 0.3);
1295
+ const pin1Position = getCcwSot235Coords({
1296
+ h: Number.parseFloat(parameters.h),
1297
+ p: Number.parseFloat(parameters.p),
1298
+ pn: 1
1299
+ });
1300
+ pin1Position.x = pin1Position.x - Number.parseFloat(parameters.pw) * 1.5;
1301
+ const triangleHeight = 0.7;
1302
+ const triangleWidth = 0.3;
1303
+ const pin1Indicator = {
1304
+ type: "pcb_silkscreen_path",
1305
+ layer: "top",
1306
+ pcb_component_id: "",
1307
+ pcb_silkscreen_path_id: "pin1_indicator",
1308
+ route: [
1309
+ {
1310
+ x: pin1Position.x + triangleHeight / 2,
1311
+ y: pin1Position.y
1312
+ },
1313
+ // Tip of the triangle (pointing right)
1314
+ {
1315
+ x: pin1Position.x - triangleHeight / 2,
1316
+ y: pin1Position.y + triangleWidth / 2
1317
+ },
1318
+ // Bottom corner of the base
1319
+ {
1320
+ x: pin1Position.x - triangleHeight / 2,
1321
+ y: pin1Position.y - triangleWidth / 2
1322
+ },
1323
+ // Top corner of the base
1324
+ {
1325
+ x: pin1Position.x + triangleHeight / 2,
1326
+ y: pin1Position.y
1327
+ }
1328
+ // Close the path at the tip
1329
+ ],
1330
+ stroke_width: 0.05
1331
+ };
1332
+ return [
1333
+ ...pads,
1334
+ silkscreenRefText,
1335
+ silkscreenPath1,
1336
+ silkscreenPath2,
1337
+ pin1Indicator
1338
+ ];
1339
+ };
1218
1340
 
1219
1341
  // src/fn/dfn.ts
1220
1342
  import "zod";
@@ -2214,138 +2336,13 @@ var lqfp = (parameters) => {
2214
2336
  return quad(parameters);
2215
2337
  };
2216
2338
 
2217
- // src/fn/sot235.ts
2218
- import { z as z18 } from "zod";
2219
- var sot235_def = z18.object({
2220
- fn: z18.string(),
2221
- num_pins: z18.literal(5).default(5),
2222
- h: z18.string().default("1.6mm"),
2223
- pl: z18.string().default("1mm"),
2224
- pw: z18.string().default("0.7mm"),
2225
- p: z18.string().default("0.95mm")
2226
- });
2227
- var sot235 = (raw_params) => {
2228
- const parameters = sot235_def.parse(raw_params);
2229
- return {
2230
- circuitJson: sot23_5WithoutParsing(parameters),
2231
- parameters
2232
- };
2233
- };
2234
- var getCcwSot235Coords = (parameters) => {
2235
- const { p, h, pn } = parameters;
2236
- if (pn === 1) {
2237
- return { x: -h / 2 - 0.5, y: p };
2238
- }
2239
- if (pn === 2) {
2240
- return { x: -h / 2 - 0.5, y: 0 };
2241
- }
2242
- if (pn === 3) {
2243
- return { x: -h / 2 - 0.5, y: -p };
2244
- }
2245
- if (pn === 4) {
2246
- return { x: h / 2 + 0.5, y: -p };
2247
- }
2248
- if (pn === 5) {
2249
- return { x: h / 2 + 0.5, y: p };
2250
- }
2251
- throw new Error("Invalid pin number");
2252
- };
2253
- var sot23_5WithoutParsing = (parameters) => {
2254
- const pads = [];
2255
- for (let i = 1; i <= parameters.num_pins; i++) {
2256
- const { x, y } = getCcwSot235Coords({
2257
- h: Number.parseFloat(parameters.h),
2258
- p: Number.parseFloat(parameters.p),
2259
- pn: i
2260
- });
2261
- pads.push(
2262
- rectpad(
2263
- i,
2264
- x,
2265
- y,
2266
- Number.parseFloat(parameters.pl),
2267
- Number.parseFloat(parameters.pw)
2268
- )
2269
- );
2270
- }
2271
- const width = (parameters.num_pins + 1) / 2 * Number.parseFloat(parameters.p);
2272
- const height = Number.parseFloat(parameters.h);
2273
- const silkscreenPath1 = {
2274
- layer: "top",
2275
- pcb_component_id: "",
2276
- pcb_silkscreen_path_id: "silkscreen_path_1",
2277
- route: [
2278
- { x: -width / 3, y: height / 2 + Number.parseFloat(parameters.p) / 1.3 },
2279
- { x: width / 3, y: height / 2 + Number.parseFloat(parameters.p) / 1.3 }
2280
- ],
2281
- type: "pcb_silkscreen_path",
2282
- stroke_width: 0.05
2283
- };
2284
- const silkscreenPath2 = {
2285
- layer: "top",
2286
- pcb_component_id: "",
2287
- pcb_silkscreen_path_id: "silkscreen_path_2",
2288
- route: [
2289
- { x: -width / 3, y: -height / 2 - Number.parseFloat(parameters.p) / 1.3 },
2290
- { x: width / 3, y: -height / 2 - Number.parseFloat(parameters.p) / 1.3 }
2291
- ],
2292
- type: "pcb_silkscreen_path",
2293
- stroke_width: 0.05
2294
- };
2295
- const silkscreenRefText = silkscreenRef(0, height + 0.3, 0.3);
2296
- const pin1Position = getCcwSot235Coords({
2297
- h: Number.parseFloat(parameters.h),
2298
- p: Number.parseFloat(parameters.p),
2299
- pn: 1
2300
- });
2301
- pin1Position.x = pin1Position.x - Number.parseFloat(parameters.pw) * 1.5;
2302
- const triangleHeight = 0.7;
2303
- const triangleWidth = 0.3;
2304
- const pin1Indicator = {
2305
- type: "pcb_silkscreen_path",
2306
- layer: "top",
2307
- pcb_component_id: "",
2308
- pcb_silkscreen_path_id: "pin1_indicator",
2309
- route: [
2310
- {
2311
- x: pin1Position.x + triangleHeight / 2,
2312
- y: pin1Position.y
2313
- },
2314
- // Tip of the triangle (pointing right)
2315
- {
2316
- x: pin1Position.x - triangleHeight / 2,
2317
- y: pin1Position.y + triangleWidth / 2
2318
- },
2319
- // Bottom corner of the base
2320
- {
2321
- x: pin1Position.x - triangleHeight / 2,
2322
- y: pin1Position.y - triangleWidth / 2
2323
- },
2324
- // Top corner of the base
2325
- {
2326
- x: pin1Position.x + triangleHeight / 2,
2327
- y: pin1Position.y
2328
- }
2329
- // Close the path at the tip
2330
- ],
2331
- stroke_width: 0.05
2332
- };
2333
- return [
2334
- ...pads,
2335
- silkscreenRefText,
2336
- silkscreenPath1,
2337
- silkscreenPath2,
2338
- pin1Indicator
2339
- ];
2340
- };
2341
-
2342
2339
  // src/fn/breakoutheaders.ts
2343
2340
  import {
2344
2341
  length as length12
2345
2342
  } from "circuit-json";
2346
- import { z as z19 } from "zod";
2347
- var breakoutheaders_def = z19.object({
2348
- fn: z19.string(),
2343
+ import { z as z18 } from "zod";
2344
+ var breakoutheaders_def = z18.object({
2345
+ fn: z18.string(),
2349
2346
  w: length12.default("10mm"),
2350
2347
  h: length12.optional(),
2351
2348
  left: length12.optional().default(20),
@@ -2548,7 +2545,7 @@ var breakoutheaders = (raw_params) => {
2548
2545
  import {
2549
2546
  length as length13
2550
2547
  } from "circuit-json";
2551
- import { z as z20 } from "zod";
2548
+ import { z as z19 } from "zod";
2552
2549
  var generate_u_curve = (centerX, centerY, radius, direction) => {
2553
2550
  return Array.from({ length: 25 }, (_, i) => {
2554
2551
  const theta = i / 24 * Math.PI - Math.PI / 2;
@@ -2558,8 +2555,8 @@ var generate_u_curve = (centerX, centerY, radius, direction) => {
2558
2555
  };
2559
2556
  });
2560
2557
  };
2561
- var hc49_def = z20.object({
2562
- fn: z20.string(),
2558
+ var hc49_def = z19.object({
2559
+ fn: z19.string(),
2563
2560
  p: length13.optional().default("4.88mm"),
2564
2561
  id: length13.optional().default("0.6mm"),
2565
2562
  od: length13.optional().default("1.2mm"),
@@ -2604,10 +2601,10 @@ var hc49 = (raw_params) => {
2604
2601
  };
2605
2602
 
2606
2603
  // src/fn/pad.ts
2607
- import { z as z21 } from "zod";
2604
+ import { z as z20 } from "zod";
2608
2605
  import { length as length14 } from "circuit-json";
2609
2606
  import { mm as mm3 } from "@tscircuit/mm";
2610
- var pad_def = z21.object({
2607
+ var pad_def = z20.object({
2611
2608
  w: length14,
2612
2609
  h: length14
2613
2610
  });
@@ -2627,7 +2624,7 @@ var pad = (params) => {
2627
2624
  import {
2628
2625
  length as length15
2629
2626
  } from "circuit-json";
2630
- import { z as z22 } from "zod";
2627
+ import { z as z21 } from "zod";
2631
2628
  var generate_semicircle = (centerX, centerY, radius) => {
2632
2629
  return Array.from({ length: 25 }, (_, i) => {
2633
2630
  const theta = i / 24 * Math.PI;
@@ -2637,14 +2634,14 @@ var generate_semicircle = (centerX, centerY, radius) => {
2637
2634
  };
2638
2635
  });
2639
2636
  };
2640
- var to92_def = z22.object({
2641
- fn: z22.string(),
2637
+ var to92_def = z21.object({
2638
+ fn: z21.string(),
2642
2639
  p: length15.optional().default("1.27mm"),
2643
2640
  id: length15.optional().default("0.72mm"),
2644
2641
  od: length15.optional().default(".95mm"),
2645
2642
  w: length15.optional().default("4.5mm"),
2646
2643
  h: length15.optional().default("4.5mm"),
2647
- inline: z22.boolean().optional().default(false)
2644
+ inline: z21.boolean().optional().default(false)
2648
2645
  });
2649
2646
  var to92 = (raw_params) => {
2650
2647
  const parameters = to92_def.parse(raw_params);
@@ -2686,16 +2683,16 @@ var to92 = (raw_params) => {
2686
2683
  };
2687
2684
 
2688
2685
  // src/fn/sod523.ts
2689
- import { z as z23 } from "zod";
2686
+ import { z as z22 } from "zod";
2690
2687
  import { length as length16 } from "circuit-json";
2691
- var sod_def2 = z23.object({
2692
- fn: z23.string(),
2693
- num_pins: z23.literal(2).default(2),
2694
- w: z23.string().default("2.15mm"),
2695
- h: z23.string().default("1.20mm"),
2696
- pl: z23.string().default("0.5mm"),
2697
- pw: z23.string().default("0.6mm"),
2698
- p: z23.string().default("1.4mm")
2688
+ var sod_def2 = z22.object({
2689
+ fn: z22.string(),
2690
+ num_pins: z22.literal(2).default(2),
2691
+ w: z22.string().default("2.15mm"),
2692
+ h: z22.string().default("1.20mm"),
2693
+ pl: z22.string().default("0.5mm"),
2694
+ pw: z22.string().default("0.6mm"),
2695
+ p: z22.string().default("1.4mm")
2699
2696
  });
2700
2697
  var sod523 = (raw_params) => {
2701
2698
  const parameters = sod_def2.parse(raw_params);
@@ -2811,16 +2808,16 @@ var sop8 = (raw_params) => {
2811
2808
  };
2812
2809
 
2813
2810
  // src/fn/sod123w.ts
2814
- import { z as z24 } from "zod";
2811
+ import { z as z23 } from "zod";
2815
2812
  import { length as length17 } from "circuit-json";
2816
- var sod_def3 = z24.object({
2817
- fn: z24.string(),
2818
- num_pins: z24.literal(2).default(2),
2819
- w: z24.string().default("4.4mm"),
2820
- h: z24.string().default("2.1mm"),
2821
- pl: z24.string().default("1.2mm"),
2822
- pw: z24.string().default("1.2mm"),
2823
- p: z24.string().default("2.9mm")
2813
+ var sod_def3 = z23.object({
2814
+ fn: z23.string(),
2815
+ num_pins: z23.literal(2).default(2),
2816
+ w: z23.string().default("4.4mm"),
2817
+ h: z23.string().default("2.1mm"),
2818
+ pl: z23.string().default("1.2mm"),
2819
+ pw: z23.string().default("1.2mm"),
2820
+ p: z23.string().default("2.9mm")
2824
2821
  });
2825
2822
  var sod123w = (raw_params) => {
2826
2823
  const parameters = sod_def3.parse(raw_params);
@@ -2890,16 +2887,16 @@ var sodWithoutParsing3 = (parameters) => {
2890
2887
  };
2891
2888
 
2892
2889
  // src/fn/sod323.ts
2893
- import { z as z25 } from "zod";
2890
+ import { z as z24 } from "zod";
2894
2891
  import { length as length18 } from "circuit-json";
2895
- var sod_def4 = z25.object({
2896
- fn: z25.string(),
2897
- num_pins: z25.literal(2).default(2),
2898
- w: z25.string().default("3.30mm"),
2899
- h: z25.string().default("1.80mm"),
2900
- pl: z25.string().default("0.60mm"),
2901
- pw: z25.string().default("0.45mm"),
2902
- p: z25.string().default("2.1mm")
2892
+ var sod_def4 = z24.object({
2893
+ fn: z24.string(),
2894
+ num_pins: z24.literal(2).default(2),
2895
+ w: z24.string().default("3.30mm"),
2896
+ h: z24.string().default("1.80mm"),
2897
+ pl: z24.string().default("0.60mm"),
2898
+ pw: z24.string().default("0.45mm"),
2899
+ p: z24.string().default("2.1mm")
2903
2900
  });
2904
2901
  var sod323 = (raw_params) => {
2905
2902
  const parameters = sod_def4.parse(raw_params);
@@ -2969,16 +2966,16 @@ var sodWithoutParsing4 = (parameters) => {
2969
2966
  };
2970
2967
 
2971
2968
  // src/fn/sod923.ts
2972
- import { z as z26 } from "zod";
2969
+ import { z as z25 } from "zod";
2973
2970
  import { length as length19 } from "circuit-json";
2974
- var sod_def5 = z26.object({
2975
- fn: z26.string(),
2976
- num_pins: z26.literal(2).default(2),
2977
- w: z26.string().default("1.4mm"),
2978
- h: z26.string().default("0.9mm"),
2979
- pl: z26.string().default("0.35mm"),
2980
- pw: z26.string().default("0.25mm"),
2981
- p: z26.string().default("1.2mm")
2971
+ var sod_def5 = z25.object({
2972
+ fn: z25.string(),
2973
+ num_pins: z25.literal(2).default(2),
2974
+ w: z25.string().default("1.4mm"),
2975
+ h: z25.string().default("0.9mm"),
2976
+ pl: z25.string().default("0.35mm"),
2977
+ pw: z25.string().default("0.25mm"),
2978
+ p: z25.string().default("1.2mm")
2982
2979
  });
2983
2980
  var sod923 = (raw_params) => {
2984
2981
  const parameters = sod_def5.parse(raw_params);
@@ -3049,16 +3046,16 @@ var sodWithoutParsing5 = (parameters) => {
3049
3046
  };
3050
3047
 
3051
3048
  // src/fn/sod882.ts
3052
- import { z as z27 } from "zod";
3049
+ import { z as z26 } from "zod";
3053
3050
  import { length as length20 } from "circuit-json";
3054
- var sod_def6 = z27.object({
3055
- fn: z27.string(),
3056
- num_pins: z27.literal(2).default(2),
3057
- w: z27.string().default("1.3mm"),
3058
- h: z27.string().default("0.9mm"),
3059
- pl: z27.string().default("0.4mm"),
3060
- pw: z27.string().default("0.7mm"),
3061
- p: z27.string().default("0.7mm")
3051
+ var sod_def6 = z26.object({
3052
+ fn: z26.string(),
3053
+ num_pins: z26.literal(2).default(2),
3054
+ w: z26.string().default("1.3mm"),
3055
+ h: z26.string().default("0.9mm"),
3056
+ pl: z26.string().default("0.4mm"),
3057
+ pw: z26.string().default("0.7mm"),
3058
+ p: z26.string().default("0.7mm")
3062
3059
  });
3063
3060
  var sod882 = (raw_params) => {
3064
3061
  const parameters = sod_def6.parse(raw_params);
@@ -3129,16 +3126,16 @@ var sodWithoutParsing6 = (parameters) => {
3129
3126
  };
3130
3127
 
3131
3128
  // src/fn/sod323f.ts
3132
- import { z as z28 } from "zod";
3129
+ import { z as z27 } from "zod";
3133
3130
  import { length as length21 } from "circuit-json";
3134
- var sod_def7 = z28.object({
3135
- fn: z28.string(),
3136
- num_pins: z28.literal(2).default(2),
3137
- w: z28.string().default("3,05mm"),
3138
- h: z28.string().default("1.65mm"),
3139
- pl: z28.string().default("0.6mm"),
3140
- pw: z28.string().default("0.6mm"),
3141
- pad_spacing: z28.string().default("2.2mm")
3131
+ var sod_def7 = z27.object({
3132
+ fn: z27.string(),
3133
+ num_pins: z27.literal(2).default(2),
3134
+ w: z27.string().default("3,05mm"),
3135
+ h: z27.string().default("1.65mm"),
3136
+ pl: z27.string().default("0.6mm"),
3137
+ pw: z27.string().default("0.6mm"),
3138
+ pad_spacing: z27.string().default("2.2mm")
3142
3139
  });
3143
3140
  var sod323f = (raw_params) => {
3144
3141
  const parameters = sod_def7.parse(raw_params);
@@ -3209,16 +3206,16 @@ var sodWithoutParsing7 = (parameters) => {
3209
3206
  };
3210
3207
 
3211
3208
  // src/fn/sod123f.ts
3212
- import { z as z29 } from "zod";
3209
+ import { z as z28 } from "zod";
3213
3210
  import { length as length22 } from "circuit-json";
3214
- var sod_def8 = z29.object({
3215
- fn: z29.string(),
3216
- num_pins: z29.literal(2).default(2),
3217
- w: z29.string().default("4.4mm"),
3218
- h: z29.string().default("2.1mm"),
3219
- pl: z29.string().default("1.2mm"),
3220
- pw: z29.string().default("1.2mm"),
3221
- p: z29.string().default("2.9mm")
3211
+ var sod_def8 = z28.object({
3212
+ fn: z28.string(),
3213
+ num_pins: z28.literal(2).default(2),
3214
+ w: z28.string().default("4.4mm"),
3215
+ h: z28.string().default("2.1mm"),
3216
+ pl: z28.string().default("1.2mm"),
3217
+ pw: z28.string().default("1.2mm"),
3218
+ p: z28.string().default("2.9mm")
3222
3219
  });
3223
3220
  var sod123f = (raw_params) => {
3224
3221
  const parameters = sod_def8.parse(raw_params);
@@ -3289,16 +3286,16 @@ var sodWithoutParsing8 = (parameters) => {
3289
3286
  };
3290
3287
 
3291
3288
  // src/fn/sod723.ts
3292
- import { z as z30 } from "zod";
3289
+ import { z as z29 } from "zod";
3293
3290
  import { length as length23 } from "circuit-json";
3294
- var sod_def9 = z30.object({
3295
- fn: z30.string(),
3296
- num_pins: z30.literal(2).default(2),
3297
- w: z30.string().default("1.80mm"),
3298
- h: z30.string().default("1.00mm"),
3299
- pl: z30.string().default("0.66mm"),
3300
- pw: z30.string().default("0.5mm"),
3301
- p: z30.string().default("0.8mm")
3291
+ var sod_def9 = z29.object({
3292
+ fn: z29.string(),
3293
+ num_pins: z29.literal(2).default(2),
3294
+ w: z29.string().default("1.80mm"),
3295
+ h: z29.string().default("1.00mm"),
3296
+ pl: z29.string().default("0.66mm"),
3297
+ pw: z29.string().default("0.5mm"),
3298
+ p: z29.string().default("0.8mm")
3302
3299
  });
3303
3300
  var sod723 = (raw_params) => {
3304
3301
  const parameters = sod_def9.parse(raw_params);
@@ -3369,16 +3366,16 @@ var sodWithoutParsing9 = (parameters) => {
3369
3366
  };
3370
3367
 
3371
3368
  // src/fn/sod128.ts
3372
- import { z as z31 } from "zod";
3369
+ import { z as z30 } from "zod";
3373
3370
  import { length as length24 } from "circuit-json";
3374
- var sod_def10 = z31.object({
3375
- fn: z31.string(),
3376
- num_pins: z31.literal(2).default(2),
3377
- w: z31.string().default("6.2mm"),
3378
- h: z31.string().default("3.4mm"),
3379
- pl: z31.string().default("1.4mm"),
3380
- pw: z31.string().default("2.1mm"),
3381
- p: z31.string().default("4.4mm")
3371
+ var sod_def10 = z30.object({
3372
+ fn: z30.string(),
3373
+ num_pins: z30.literal(2).default(2),
3374
+ w: z30.string().default("6.2mm"),
3375
+ h: z30.string().default("3.4mm"),
3376
+ pl: z30.string().default("1.4mm"),
3377
+ pw: z30.string().default("2.1mm"),
3378
+ p: z30.string().default("4.4mm")
3382
3379
  });
3383
3380
  var sod128 = (raw_params) => {
3384
3381
  const parameters = sod_def10.parse(raw_params);
@@ -3452,16 +3449,16 @@ var sodWithoutParsing10 = (parameters) => {
3452
3449
  import {
3453
3450
  length as length25
3454
3451
  } from "circuit-json";
3455
- import { z as z32 } from "zod";
3456
- var to220_def = z32.object({
3457
- fn: z32.string(),
3452
+ import { z as z31 } from "zod";
3453
+ var to220_def = z31.object({
3454
+ fn: z31.string(),
3458
3455
  p: length25.optional().default("5.0mm"),
3459
3456
  id: length25.optional().default("1.0mm"),
3460
3457
  od: length25.optional().default("1.9mm"),
3461
3458
  w: length25.optional().default("13mm"),
3462
3459
  h: length25.optional().default("7mm"),
3463
- num_pins: z32.number().optional(),
3464
- string: z32.string().optional()
3460
+ num_pins: z31.number().optional(),
3461
+ string: z31.string().optional()
3465
3462
  });
3466
3463
  var to220 = (raw_params) => {
3467
3464
  const parameters = to220_def.parse(raw_params);
@@ -3470,8 +3467,8 @@ var to220 = (raw_params) => {
3470
3467
  const holeY = -1;
3471
3468
  const halfWidth = w / 2;
3472
3469
  const halfHeight = h / 2;
3473
- const maxHoleWidth = w * 0.6;
3474
- const minPitch = 1.5;
3470
+ const minPitch = 2.5;
3471
+ const maxHoleWidth = w * 0.4;
3475
3472
  const computedPitch = Math.max(minPitch, maxHoleWidth / (numPins - 1));
3476
3473
  const plated_holes = Array.from({ length: numPins }, (_, i) => {
3477
3474
  const x = numPins % 2 === 0 ? (i - numPins / 2 + 0.5) * computedPitch : (i - Math.floor(numPins / 2)) * computedPitch;
@@ -3541,16 +3538,16 @@ var to220 = (raw_params) => {
3541
3538
  };
3542
3539
 
3543
3540
  // src/fn/minimelf.ts
3544
- import { z as z33 } from "zod";
3541
+ import { z as z32 } from "zod";
3545
3542
  import { length as length26 } from "circuit-json";
3546
- var minimelf_def = z33.object({
3547
- fn: z33.string(),
3548
- num_pins: z33.literal(2).default(2),
3549
- w: z33.string().default("5.40mm"),
3550
- h: z33.string().default("2.30mm"),
3551
- pl: z33.string().default("1.30mm"),
3552
- pw: z33.string().default("1.70mm"),
3553
- p: z33.string().default("3.5mm")
3543
+ var minimelf_def = z32.object({
3544
+ fn: z32.string(),
3545
+ num_pins: z32.literal(2).default(2),
3546
+ w: z32.string().default("5.40mm"),
3547
+ h: z32.string().default("2.30mm"),
3548
+ pl: z32.string().default("1.30mm"),
3549
+ pw: z32.string().default("1.70mm"),
3550
+ p: z32.string().default("3.5mm")
3554
3551
  });
3555
3552
  var minimelf = (raw_params) => {
3556
3553
  const parameters = minimelf_def.parse(raw_params);
@@ -3617,16 +3614,16 @@ var miniMelfWithoutParsing = (parameters) => {
3617
3614
  };
3618
3615
 
3619
3616
  // src/fn/sod882d.ts
3620
- import { z as z34 } from "zod";
3617
+ import { z as z33 } from "zod";
3621
3618
  import { length as length27 } from "circuit-json";
3622
- var sod_def11 = z34.object({
3623
- fn: z34.string(),
3624
- num_pins: z34.literal(2).default(2),
3625
- w: z34.string().default("1.90mm"),
3626
- h: z34.string().default("1.33mm"),
3627
- pl: z34.string().default("0.5mm"),
3628
- pw: z34.string().default("0.7mm"),
3629
- p: z34.string().default("0.8mm")
3619
+ var sod_def11 = z33.object({
3620
+ fn: z33.string(),
3621
+ num_pins: z33.literal(2).default(2),
3622
+ w: z33.string().default("1.90mm"),
3623
+ h: z33.string().default("1.33mm"),
3624
+ pl: z33.string().default("0.5mm"),
3625
+ pw: z33.string().default("0.7mm"),
3626
+ p: z33.string().default("0.8mm")
3630
3627
  });
3631
3628
  var sod882d = (raw_params) => {
3632
3629
  const parameters = sod_def11.parse(raw_params);
@@ -3697,16 +3694,16 @@ var sodWithoutParsing11 = (parameters) => {
3697
3694
  };
3698
3695
 
3699
3696
  // src/fn/melf.ts
3700
- import { z as z35 } from "zod";
3697
+ import { z as z34 } from "zod";
3701
3698
  import { length as length28 } from "circuit-json";
3702
- var melf_def = z35.object({
3703
- fn: z35.string(),
3704
- num_pins: z35.literal(2).default(2),
3705
- w: z35.string().default("7.0mm"),
3706
- h: z35.string().default("3.35mm"),
3707
- pl: z35.string().default("1.50mm"),
3708
- pw: z35.string().default("2.70mm"),
3709
- p: z35.string().default("4.8mm")
3699
+ var melf_def = z34.object({
3700
+ fn: z34.string(),
3701
+ num_pins: z34.literal(2).default(2),
3702
+ w: z34.string().default("7.0mm"),
3703
+ h: z34.string().default("3.35mm"),
3704
+ pl: z34.string().default("1.50mm"),
3705
+ pw: z34.string().default("2.70mm"),
3706
+ p: z34.string().default("4.8mm")
3710
3707
  });
3711
3708
  var melf = (raw_params) => {
3712
3709
  const parameters = melf_def.parse(raw_params);
@@ -3777,16 +3774,16 @@ var melfWithoutParsing = (parameters) => {
3777
3774
  };
3778
3775
 
3779
3776
  // src/fn/micromelf.ts
3780
- import { z as z36 } from "zod";
3777
+ import { z as z35 } from "zod";
3781
3778
  import { length as length29 } from "circuit-json";
3782
- var micromelf_def = z36.object({
3783
- fn: z36.string(),
3784
- num_pins: z36.literal(2).default(2),
3785
- w: z36.string().default("3.0mm"),
3786
- h: z36.string().default("1.80mm"),
3787
- pl: z36.string().default("0.80mm"),
3788
- pw: z36.string().default("1.20mm"),
3789
- p: z36.string().default("1.6mm")
3779
+ var micromelf_def = z35.object({
3780
+ fn: z35.string(),
3781
+ num_pins: z35.literal(2).default(2),
3782
+ w: z35.string().default("3.0mm"),
3783
+ h: z35.string().default("1.80mm"),
3784
+ pl: z35.string().default("0.80mm"),
3785
+ pw: z35.string().default("1.20mm"),
3786
+ p: z35.string().default("1.6mm")
3790
3787
  });
3791
3788
  var micromelf = (raw_params) => {
3792
3789
  const parameters = micromelf_def.parse(raw_params);
@@ -3857,16 +3854,16 @@ var microMelfWithoutParsing = (parameters) => {
3857
3854
  };
3858
3855
 
3859
3856
  // src/fn/sma.ts
3860
- import { z as z37 } from "zod";
3857
+ import { z as z36 } from "zod";
3861
3858
  import { length as length30 } from "circuit-json";
3862
- var sma_def = z37.object({
3863
- fn: z37.string(),
3864
- num_pins: z37.literal(2).default(2),
3865
- w: z37.string().default("7.10mm"),
3866
- h: z37.string().default("3.40mm"),
3867
- pl: z37.string().default("2.45mm"),
3868
- pw: z37.string().default("1.80mm"),
3869
- p: z37.string().default("4.05mm")
3859
+ var sma_def = z36.object({
3860
+ fn: z36.string(),
3861
+ num_pins: z36.literal(2).default(2),
3862
+ w: z36.string().default("7.10mm"),
3863
+ h: z36.string().default("3.40mm"),
3864
+ pl: z36.string().default("2.45mm"),
3865
+ pw: z36.string().default("1.80mm"),
3866
+ p: z36.string().default("4.05mm")
3870
3867
  });
3871
3868
  var sma = (raw_params) => {
3872
3869
  const parameters = sma_def.parse(raw_params);
@@ -3936,16 +3933,16 @@ var smaWithoutParsing = (parameters) => {
3936
3933
  };
3937
3934
 
3938
3935
  // src/fn/smf.ts
3939
- import { z as z38 } from "zod";
3936
+ import { z as z37 } from "zod";
3940
3937
  import { length as length31 } from "circuit-json";
3941
- var smf_def = z38.object({
3942
- fn: z38.string(),
3943
- num_pins: z38.literal(2).default(2),
3944
- w: z38.string().default("4.80mm"),
3945
- h: z38.string().default("2.10mm"),
3946
- pl: z38.string().default("1.30mm"),
3947
- pw: z38.string().default("1.40mm"),
3948
- p: z38.string().default("2.9mm")
3938
+ var smf_def = z37.object({
3939
+ fn: z37.string(),
3940
+ num_pins: z37.literal(2).default(2),
3941
+ w: z37.string().default("4.80mm"),
3942
+ h: z37.string().default("2.10mm"),
3943
+ pl: z37.string().default("1.30mm"),
3944
+ pw: z37.string().default("1.40mm"),
3945
+ p: z37.string().default("2.9mm")
3949
3946
  });
3950
3947
  var smf = (raw_params) => {
3951
3948
  const parameters = smf_def.parse(raw_params);
@@ -4016,16 +4013,16 @@ var smfWithoutParsing = (parameters) => {
4016
4013
  };
4017
4014
 
4018
4015
  // src/fn/smb.ts
4019
- import { z as z39 } from "zod";
4016
+ import { z as z38 } from "zod";
4020
4017
  import { length as length32 } from "circuit-json";
4021
- var smb_def = z39.object({
4022
- fn: z39.string(),
4023
- num_pins: z39.literal(2).default(2),
4024
- w: z39.string().default("7.30mm"),
4025
- h: z39.string().default("4.40mm"),
4026
- pl: z39.string().default("2.50mm"),
4027
- pw: z39.string().default("2.30mm"),
4028
- p: z39.string().default("4.30mm")
4018
+ var smb_def = z38.object({
4019
+ fn: z38.string(),
4020
+ num_pins: z38.literal(2).default(2),
4021
+ w: z38.string().default("7.30mm"),
4022
+ h: z38.string().default("4.40mm"),
4023
+ pl: z38.string().default("2.50mm"),
4024
+ pw: z38.string().default("2.30mm"),
4025
+ p: z38.string().default("4.30mm")
4029
4026
  });
4030
4027
  var smb = (raw_params) => {
4031
4028
  const parameters = smb_def.parse(raw_params);
@@ -4096,16 +4093,16 @@ var smbWithoutParsing = (parameters) => {
4096
4093
  };
4097
4094
 
4098
4095
  // src/fn/vssop8.ts
4099
- import { z as z40 } from "zod";
4096
+ import { z as z39 } from "zod";
4100
4097
  import { length as length33 } from "circuit-json";
4101
- var vssop8_def = z40.object({
4102
- fn: z40.string(),
4103
- num_pins: z40.literal(8).default(8),
4104
- w: z40.string().default("3.06mm"),
4105
- h: z40.string().default("3.14mm"),
4106
- p: z40.string().default("0.65mm"),
4107
- pl: z40.string().default("1.6mm"),
4108
- pw: z40.string().default("0.5mm")
4098
+ var vssop8_def = z39.object({
4099
+ fn: z39.string(),
4100
+ num_pins: z39.literal(8).default(8),
4101
+ w: z39.string().default("3.06mm"),
4102
+ h: z39.string().default("3.14mm"),
4103
+ p: z39.string().default("0.65mm"),
4104
+ pl: z39.string().default("1.6mm"),
4105
+ pw: z39.string().default("0.5mm")
4109
4106
  });
4110
4107
  var vssop8 = (raw_params) => {
4111
4108
  const parameters = vssop8_def.parse(raw_params);
@@ -4197,16 +4194,16 @@ var getVssop8Pads = (parameters, pad_spacing) => {
4197
4194
  };
4198
4195
 
4199
4196
  // src/fn/smc.ts
4200
- import { z as z41 } from "zod";
4197
+ import { z as z40 } from "zod";
4201
4198
  import { length as length34 } from "circuit-json";
4202
- var smc_def = z41.object({
4203
- fn: z41.string(),
4204
- num_pins: z41.literal(2).default(2),
4205
- w: z41.string().default("10.70mm"),
4206
- h: z41.string().default("6.60mm"),
4207
- pl: z41.string().default("3.30mm"),
4208
- pw: z41.string().default("2.50mm"),
4209
- p: z41.string().default("6.80mm")
4199
+ var smc_def = z40.object({
4200
+ fn: z40.string(),
4201
+ num_pins: z40.literal(2).default(2),
4202
+ w: z40.string().default("10.70mm"),
4203
+ h: z40.string().default("6.60mm"),
4204
+ pl: z40.string().default("3.30mm"),
4205
+ pw: z40.string().default("2.50mm"),
4206
+ p: z40.string().default("6.80mm")
4210
4207
  });
4211
4208
  var smc = (raw_params) => {
4212
4209
  const parameters = smc_def.parse(raw_params);