@tscircuit/footprinter 0.0.41 → 0.0.43

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.cjs CHANGED
@@ -2705,16 +2705,16 @@ var require_dist = __commonJS({
2705
2705
  };
2706
2706
  }
2707
2707
  };
2708
- var import_zod8 = require("zod");
2709
- var resistance = import_zod8.z.string().or(import_zod8.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2710
- var capacitance = import_zod8.z.string().or(import_zod8.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2711
- var inductance = import_zod8.z.string().or(import_zod8.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2712
- var voltage = import_zod8.z.string().or(import_zod8.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2713
- var length5 = import_zod8.z.string().or(import_zod8.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2708
+ var import_zod9 = require("zod");
2709
+ var resistance = import_zod9.z.string().or(import_zod9.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2710
+ var capacitance = import_zod9.z.string().or(import_zod9.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2711
+ var inductance = import_zod9.z.string().or(import_zod9.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2712
+ var voltage = import_zod9.z.string().or(import_zod9.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2713
+ var length5 = import_zod9.z.string().or(import_zod9.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2714
2714
  var distance2 = length5;
2715
- var current = import_zod8.z.string().or(import_zod8.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2716
- var time = import_zod8.z.string().or(import_zod8.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2717
- var rotation = import_zod8.z.string().or(import_zod8.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2715
+ var current = import_zod9.z.string().or(import_zod9.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2716
+ var time = import_zod9.z.string().or(import_zod9.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2717
+ var rotation = import_zod9.z.string().or(import_zod9.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
2718
2718
  var import_zod22 = require("zod");
2719
2719
  var point = import_zod22.z.object({
2720
2720
  x: distance2,
@@ -2758,9 +2758,9 @@ var require_dist = __commonJS({
2758
2758
  var source_simple_diode = source_component_base.extend({
2759
2759
  ftype: import_zod82.z.literal("simple_diode")
2760
2760
  });
2761
- var import_zod9 = require("zod");
2761
+ var import_zod92 = require("zod");
2762
2762
  var source_simple_ground = source_component_base.extend({
2763
- ftype: import_zod9.z.literal("simple_ground")
2763
+ ftype: import_zod92.z.literal("simple_ground")
2764
2764
  });
2765
2765
  var import_zod10 = require("zod");
2766
2766
  var source_simple_bug = source_component_base.extend({
@@ -3225,6 +3225,7 @@ var fn_exports = {};
3225
3225
  __export(fn_exports, {
3226
3226
  bga: () => bga,
3227
3227
  cap: () => cap,
3228
+ dfn: () => dfn,
3228
3229
  diode: () => diode,
3229
3230
  dip: () => dip,
3230
3231
  led: () => led,
@@ -3692,6 +3693,9 @@ var extendSoicDef = (newDefaults) => import_zod5.z.object({
3692
3693
  });
3693
3694
  var soic_def = extendSoicDef({});
3694
3695
  var getCcwSoicCoords = (params) => {
3696
+ if (params.widthincludeslegs !== void 0) {
3697
+ params.legsoutside = !params.widthincludeslegs;
3698
+ }
3695
3699
  const { num_pins, pn, w, p, pl, legsoutside } = params;
3696
3700
  const ph = num_pins / 2;
3697
3701
  const isLeft = pn <= ph;
@@ -4109,6 +4113,81 @@ var sot236 = (params) => {
4109
4113
  return soicWithoutParsing(sot236_def.parse({ ...params, num_pins: 6 }));
4110
4114
  };
4111
4115
 
4116
+ // src/fn/dfn.ts
4117
+ var import_zod8 = require("zod");
4118
+
4119
+ // src/helpers/corner.ts
4120
+ var CORNERS = [
4121
+ { name: "top-left", dx: -1, dy: 1 },
4122
+ { name: "top-right", dx: 1, dy: 1 },
4123
+ { name: "bottom-left", dx: -1, dy: -1 },
4124
+ { name: "bottom-right", dx: 1, dy: -1 }
4125
+ ];
4126
+
4127
+ // src/fn/dfn.ts
4128
+ var dfn_def = extendSoicDef({});
4129
+ var dfn = (raw_params) => {
4130
+ const params = dfn_def.parse(raw_params);
4131
+ const pads = [];
4132
+ for (let i = 0; i < params.num_pins; i++) {
4133
+ const { x, y } = getCcwSoicCoords({
4134
+ num_pins: params.num_pins,
4135
+ pn: i + 1,
4136
+ w: params.w,
4137
+ p: params.p ?? 1.27,
4138
+ pl: params.pl,
4139
+ widthincludeslegs: true
4140
+ });
4141
+ pads.push(rectpad(i + 1, x, y, params.pl ?? "1mm", params.pw ?? "0.6mm"));
4142
+ }
4143
+ const m = Math.min(1, params.p / 2);
4144
+ const sw = params.w + m;
4145
+ const sh = (params.num_pins / 2 - 1) * params.p + params.pw + m;
4146
+ const silkscreenPaths = [];
4147
+ for (const corner of CORNERS) {
4148
+ const { dx, dy } = corner;
4149
+ silkscreenPaths.push({
4150
+ layer: "top",
4151
+ pcb_component_id: "",
4152
+ pcb_silkscreen_path_id: "",
4153
+ route: [
4154
+ { x: dx * sw / 2 - dx * params.p, y: dy * sh / 2 },
4155
+ { x: dx * sw / 2, y: dy * sh / 2 },
4156
+ { x: dx * sw / 2, y: dy * sh / 2 - dy * params.p }
4157
+ ],
4158
+ type: "pcb_silkscreen_path"
4159
+ });
4160
+ }
4161
+ const as = params.p / 4;
4162
+ const atx = -sw / 2 - as / 2;
4163
+ const aty = sh / 2 - params.p / 2;
4164
+ silkscreenPaths.push({
4165
+ layer: "top",
4166
+ pcb_component_id: "",
4167
+ pcb_silkscreen_path_id: "",
4168
+ type: "pcb_silkscreen_path",
4169
+ route: [
4170
+ {
4171
+ x: atx,
4172
+ y: aty
4173
+ },
4174
+ {
4175
+ x: atx - as,
4176
+ y: aty + as
4177
+ },
4178
+ {
4179
+ x: atx - as,
4180
+ y: aty - as
4181
+ },
4182
+ {
4183
+ x: atx,
4184
+ y: aty
4185
+ }
4186
+ ]
4187
+ });
4188
+ return [...pads, ...silkscreenPaths];
4189
+ };
4190
+
4112
4191
  // src/helpers/is-not-null.ts
4113
4192
  function isNotNull(value) {
4114
4193
  return value !== null;