@tscircuit/footprinter 0.0.3 → 0.0.4

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
@@ -217,8 +217,8 @@ var require_lodash10 = __commonJS({
217
217
  if (typeof end == "undefined") {
218
218
  end = array ? array.length : 0;
219
219
  }
220
- var index = -1, length2 = end - start || 0, result = Array(length2 < 0 ? 0 : length2);
221
- while (++index < length2) {
220
+ var index = -1, length3 = end - start || 0, result = Array(length3 < 0 ? 0 : length3);
221
+ while (++index < length3) {
222
222
  result[index] = array[start + index];
223
223
  }
224
224
  return result;
@@ -451,8 +451,8 @@ var require_lodash18 = __commonJS({
451
451
  if (!objectTypes[typeof iterable])
452
452
  return result;
453
453
  callback = callback && typeof thisArg == "undefined" ? callback : baseCreateCallback(callback, thisArg, 3);
454
- var ownIndex = -1, ownProps = objectTypes[typeof iterable] && keys(iterable), length2 = ownProps ? ownProps.length : 0;
455
- while (++ownIndex < length2) {
454
+ var ownIndex = -1, ownProps = objectTypes[typeof iterable] && keys(iterable), length3 = ownProps ? ownProps.length : 0;
455
+ while (++ownIndex < length3) {
456
456
  index = ownProps[ownIndex];
457
457
  if (callback(iterable[index], index, collection) === false)
458
458
  return result;
@@ -470,10 +470,10 @@ var require_lodash19 = __commonJS({
470
470
  var baseCreateCallback = require_lodash17();
471
471
  var forOwn = require_lodash18();
472
472
  function forEach(collection, callback, thisArg) {
473
- var index = -1, length2 = collection ? collection.length : 0;
473
+ var index = -1, length3 = collection ? collection.length : 0;
474
474
  callback = callback && typeof thisArg == "undefined" ? callback : baseCreateCallback(callback, thisArg, 3);
475
- if (typeof length2 == "number") {
476
- while (++index < length2) {
475
+ if (typeof length3 == "number") {
476
+ while (++index < length3) {
477
477
  if (callback(collection[index], index, collection) === false) {
478
478
  break;
479
479
  }
@@ -6630,7 +6630,7 @@ var require_dist = __commonJS({
6630
6630
  inductance: () => inductance,
6631
6631
  layer_ref: () => layer_ref,
6632
6632
  layer_string: () => layer_string,
6633
- length: () => length2,
6633
+ length: () => length3,
6634
6634
  pcb_board: () => pcb_board,
6635
6635
  pcb_component: () => pcb_component,
6636
6636
  pcb_hole: () => pcb_hole,
@@ -6767,16 +6767,16 @@ var require_dist = __commonJS({
6767
6767
  };
6768
6768
  }
6769
6769
  };
6770
- var import_zod4 = require_lib2();
6771
- var resistance = import_zod4.z.string().or(import_zod4.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6772
- var capacitance = import_zod4.z.string().or(import_zod4.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6773
- var inductance = import_zod4.z.string().or(import_zod4.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6774
- var voltage = import_zod4.z.string().or(import_zod4.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6775
- var length2 = import_zod4.z.string().or(import_zod4.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6776
- var distance2 = length2;
6777
- var current = import_zod4.z.string().or(import_zod4.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6778
- var time = import_zod4.z.string().or(import_zod4.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6779
- var rotation = import_zod4.z.string().or(import_zod4.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6770
+ var import_zod5 = require_lib2();
6771
+ var resistance = import_zod5.z.string().or(import_zod5.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6772
+ var capacitance = import_zod5.z.string().or(import_zod5.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6773
+ var inductance = import_zod5.z.string().or(import_zod5.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6774
+ var voltage = import_zod5.z.string().or(import_zod5.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6775
+ var length3 = import_zod5.z.string().or(import_zod5.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6776
+ var distance2 = length3;
6777
+ var current = import_zod5.z.string().or(import_zod5.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6778
+ var time = import_zod5.z.string().or(import_zod5.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6779
+ var rotation = import_zod5.z.string().or(import_zod5.z.number()).transform((v) => parseAndConvertSiUnit(v).value);
6780
6780
  var import_zod22 = require_lib2();
6781
6781
  var point = import_zod22.z.object({
6782
6782
  x: distance2,
@@ -6798,14 +6798,14 @@ var require_dist = __commonJS({
6798
6798
  "mouser",
6799
6799
  "lcsc"
6800
6800
  ]);
6801
- var import_zod5 = require_lib2();
6802
- var source_component_base = import_zod5.z.object({
6803
- type: import_zod5.z.literal("source_component"),
6804
- ftype: import_zod5.z.string().optional(),
6805
- source_component_id: import_zod5.z.string(),
6806
- name: import_zod5.z.string(),
6801
+ var import_zod52 = require_lib2();
6802
+ var source_component_base = import_zod52.z.object({
6803
+ type: import_zod52.z.literal("source_component"),
6804
+ ftype: import_zod52.z.string().optional(),
6805
+ source_component_id: import_zod52.z.string(),
6806
+ name: import_zod52.z.string(),
6807
6807
  // part_numbers: z.array(z.string()).optional(),
6808
- supplier_part_numbers: import_zod5.z.record(supplier_name, import_zod5.z.array(import_zod5.z.string())).optional()
6808
+ supplier_part_numbers: import_zod52.z.record(supplier_name, import_zod52.z.array(import_zod52.z.string())).optional()
6809
6809
  });
6810
6810
  var source_simple_capacitor = source_component_base.extend({
6811
6811
  ftype: import_zod6.z.literal("simple_capacitor"),
@@ -7051,8 +7051,8 @@ var require_dist = __commonJS({
7051
7051
  center: point,
7052
7052
  layer: layer_ref,
7053
7053
  rotation,
7054
- width: length2,
7055
- height: length2
7054
+ width: length3,
7055
+ height: length3
7056
7056
  }).describe("Defines a component on the PCB");
7057
7057
  var import_zod322 = require_lib2();
7058
7058
  var pcb_hole = import_zod322.z.object({
@@ -7183,8 +7183,8 @@ var require_dist = __commonJS({
7183
7183
  var import_zod41 = require_lib2();
7184
7184
  var pcb_board = import_zod41.z.object({
7185
7185
  type: import_zod41.z.literal("pcb_board"),
7186
- width: length2,
7187
- height: length2,
7186
+ width: length3,
7187
+ height: length3,
7188
7188
  center: point
7189
7189
  }).describe("Defines the board outline of the PCB");
7190
7190
  var import_zod422 = require_lib2();
@@ -7297,216 +7297,6 @@ var platedhole = (pn, x, y, id, od) => {
7297
7297
  };
7298
7298
  };
7299
7299
 
7300
- // src/fn/dip.ts
7301
- var getCcwDipCoords = (pinCount, pn, w, p) => {
7302
- const ph = pinCount / 2;
7303
- const isLeft = pn <= ph;
7304
- const leftPinGaps = ph - 1;
7305
- const gs = p;
7306
- const h = gs * leftPinGaps;
7307
- if (isLeft) {
7308
- return { x: -w / 2, y: h / 2 - (pn - 1) * gs };
7309
- } else {
7310
- return { x: w / 2, y: -h / 2 + (pn - ph - 1) * gs };
7311
- }
7312
- };
7313
- var dip = (params) => {
7314
- const platedHoles = [];
7315
- for (let i = 0; i < params.num_pins; i++) {
7316
- const { x, y } = getCcwDipCoords(
7317
- params.num_pins,
7318
- i + 1,
7319
- params.w,
7320
- params.p ?? 2.54
7321
- );
7322
- platedHoles.push(
7323
- platedhole(i + 1, x, y, params.id ?? "0.8mm", params.od ?? "1mm")
7324
- );
7325
- }
7326
- return platedHoles;
7327
- };
7328
-
7329
- // src/fn/diode.ts
7330
- var diode = (params) => {
7331
- return [];
7332
- };
7333
-
7334
- // src/helpers/rectpad.ts
7335
- var rectpad = (pn, x, y, w, h) => {
7336
- return {
7337
- type: "pcb_smtpad",
7338
- x,
7339
- y,
7340
- width: w,
7341
- height: h,
7342
- layer: "top",
7343
- shape: "rect",
7344
- pcb_smtpad_id: "",
7345
- port_hints: [pn.toString()]
7346
- };
7347
- };
7348
-
7349
- // src/helpers/passive-fn.ts
7350
- var import_mm2 = __toESM(require("@tscircuit/mm"), 1);
7351
- var sizes = [
7352
- {
7353
- imperial: "01005",
7354
- metric: "0402",
7355
- Z_mm_min: 0.58,
7356
- G_mm_min: 0.18,
7357
- X_mm_min: 0.21,
7358
- C_mm_ref: 0.038
7359
- },
7360
- {
7361
- imperial: "0201",
7362
- metric: "0603",
7363
- Z_mm_min: 0.9,
7364
- G_mm_min: 0.3,
7365
- X_mm_min: 0.3,
7366
- C_mm_ref: 0.6
7367
- },
7368
- {
7369
- imperial: "0402",
7370
- metric: "1005",
7371
- Z_mm_min: 1.6,
7372
- G_mm_min: 0.4,
7373
- X_mm_min: 0.7,
7374
- C_mm_ref: 1
7375
- },
7376
- {
7377
- imperial: "0603",
7378
- metric: "1608",
7379
- Z_mm_min: 2.6,
7380
- G_mm_min: 0.6,
7381
- X_mm_min: 1,
7382
- C_mm_ref: 1.7
7383
- },
7384
- {
7385
- imperial: "0805",
7386
- metric: "2012",
7387
- Z_mm_min: 3,
7388
- G_mm_min: 0.6,
7389
- X_mm_min: 1.2,
7390
- C_mm_ref: 1.9
7391
- },
7392
- {
7393
- imperial: "1206",
7394
- metric: "3216",
7395
- Z_mm_min: 4.2,
7396
- G_mm_min: 1.2,
7397
- X_mm_min: 1.4,
7398
- C_mm_ref: 2.8
7399
- },
7400
- {
7401
- imperial: "1210",
7402
- metric: "3225",
7403
- Z_mm_min: 4.2,
7404
- G_mm_min: 1.2,
7405
- X_mm_min: 2.4,
7406
- C_mm_ref: 2.8
7407
- },
7408
- {
7409
- imperial: "2010",
7410
- metric: "5025",
7411
- Z_mm_min: 6,
7412
- G_mm_min: 2.6,
7413
- X_mm_min: 2.4,
7414
- C_mm_ref: 4.4
7415
- },
7416
- {
7417
- imperial: "2512",
7418
- metric: "6332",
7419
- Z_mm_min: 7.2,
7420
- G_mm_min: 3.8,
7421
- X_mm_min: 3,
7422
- C_mm_ref: 5.6
7423
- }
7424
- ];
7425
- var metricMap = sizes.reduce((acc, s) => {
7426
- acc[s.metric] = s;
7427
- return acc;
7428
- }, {});
7429
- var imperialMap = sizes.reduce(
7430
- (acc, s) => {
7431
- acc[s.imperial] = s;
7432
- return acc;
7433
- },
7434
- {}
7435
- );
7436
- var deriveXFromH = (h) => 0.079 * h ** 2 + 0.94 * h - 9e-3;
7437
- var deriveZFromW = (w) => 1.09 * w + 0.6;
7438
- var deriveGFromW = (w) => 0.59 * w - 0.31;
7439
- var deriveCFromW = (w) => -0.01 * w ** 2 + 0.94 * w + 0.03;
7440
- var passive = (params) => {
7441
- let { tht, p, pw, ph, metric, imperial, w, h } = params;
7442
- if (typeof w === "string")
7443
- w = (0, import_mm2.default)(w);
7444
- if (typeof h === "string")
7445
- h = (0, import_mm2.default)(h);
7446
- if (typeof p === "string")
7447
- p = (0, import_mm2.default)(p);
7448
- if (typeof pw === "string")
7449
- pw = (0, import_mm2.default)(pw);
7450
- if (typeof ph === "string")
7451
- ph = (0, import_mm2.default)(ph);
7452
- if (h > w) {
7453
- throw new Error(
7454
- "height cannot be greater than width (rotated footprint not yet implemented)"
7455
- );
7456
- }
7457
- let sz;
7458
- if (metric) {
7459
- sz = metricMap[metric];
7460
- }
7461
- if (imperial) {
7462
- sz = imperialMap[imperial];
7463
- }
7464
- if (!sz && w && h && !pw && !ph) {
7465
- sz = {
7466
- imperial: "custom",
7467
- metric: "custom",
7468
- Z_mm_min: deriveZFromW(w),
7469
- G_mm_min: deriveGFromW(w),
7470
- X_mm_min: deriveXFromH(h),
7471
- C_mm_ref: deriveCFromW(w)
7472
- };
7473
- }
7474
- if (sz) {
7475
- w = sz.Z_mm_min;
7476
- h = sz.X_mm_min;
7477
- p = sz.C_mm_ref;
7478
- pw = (sz.Z_mm_min - sz.G_mm_min) / 2;
7479
- ph = (sz.Z_mm_min - sz.G_mm_min) / 2;
7480
- }
7481
- if (pw === void 0)
7482
- throw new Error(`could not infer pad width`);
7483
- if (ph === void 0)
7484
- throw new Error(`could not infer pad width`);
7485
- if (tht) {
7486
- return [
7487
- platedhole(1, -p / 2, 0, pw, pw * 1 / 0.8),
7488
- platedhole(2, -p / 2, 0, pw, pw * 1 / 0.8)
7489
- ];
7490
- } else {
7491
- return [rectpad(1, -p / 2, 0, pw, ph), rectpad(2, p / 2, 0, pw, ph)];
7492
- }
7493
- };
7494
-
7495
- // src/fn/cap.ts
7496
- var cap = (params) => {
7497
- return passive(params);
7498
- };
7499
-
7500
- // src/fn/led.ts
7501
- var led = (params) => {
7502
- return passive(params);
7503
- };
7504
-
7505
- // src/fn/res.ts
7506
- var res = (params) => {
7507
- return passive(params);
7508
- };
7509
-
7510
7300
  // node_modules/zod/lib/index.mjs
7511
7301
  var util;
7512
7302
  (function(util2) {
@@ -11427,8 +11217,228 @@ var z = /* @__PURE__ */ Object.freeze({
11427
11217
  ZodError
11428
11218
  });
11429
11219
 
11430
- // src/helpers/zod/bga-def.ts
11220
+ // src/fn/dip.ts
11431
11221
  var import_soup = __toESM(require_dist(), 1);
11222
+ var dip_def = z.object({
11223
+ dip: z.literal(true),
11224
+ num_pins: z.number(),
11225
+ w: import_soup.length,
11226
+ p: import_soup.length.optional(),
11227
+ id: import_soup.length.optional(),
11228
+ od: import_soup.length.optional()
11229
+ });
11230
+ var getCcwDipCoords = (pinCount, pn, w, p) => {
11231
+ const ph = pinCount / 2;
11232
+ const isLeft = pn <= ph;
11233
+ const leftPinGaps = ph - 1;
11234
+ const gs = p;
11235
+ const h = gs * leftPinGaps;
11236
+ if (isLeft) {
11237
+ return { x: -w / 2, y: h / 2 - (pn - 1) * gs };
11238
+ } else {
11239
+ return { x: w / 2, y: -h / 2 + (pn - ph - 1) * gs };
11240
+ }
11241
+ };
11242
+ var dip = (params) => {
11243
+ params = dip_def.parse(params);
11244
+ const platedHoles = [];
11245
+ for (let i = 0; i < params.num_pins; i++) {
11246
+ const { x, y } = getCcwDipCoords(
11247
+ params.num_pins,
11248
+ i + 1,
11249
+ params.w,
11250
+ params.p ?? 2.54
11251
+ );
11252
+ platedHoles.push(
11253
+ platedhole(i + 1, x, y, params.id ?? "0.8mm", params.od ?? "1mm")
11254
+ );
11255
+ }
11256
+ return platedHoles;
11257
+ };
11258
+
11259
+ // src/fn/diode.ts
11260
+ var diode = (params) => {
11261
+ return [];
11262
+ };
11263
+
11264
+ // src/helpers/rectpad.ts
11265
+ var rectpad = (pn, x, y, w, h) => {
11266
+ return {
11267
+ type: "pcb_smtpad",
11268
+ x,
11269
+ y,
11270
+ width: w,
11271
+ height: h,
11272
+ layer: "top",
11273
+ shape: "rect",
11274
+ pcb_smtpad_id: "",
11275
+ port_hints: [pn.toString()]
11276
+ };
11277
+ };
11278
+
11279
+ // src/helpers/passive-fn.ts
11280
+ var import_mm2 = __toESM(require("@tscircuit/mm"), 1);
11281
+ var sizes = [
11282
+ {
11283
+ imperial: "01005",
11284
+ metric: "0402",
11285
+ Z_mm_min: 0.58,
11286
+ G_mm_min: 0.18,
11287
+ X_mm_min: 0.21,
11288
+ C_mm_ref: 0.038
11289
+ },
11290
+ {
11291
+ imperial: "0201",
11292
+ metric: "0603",
11293
+ Z_mm_min: 0.9,
11294
+ G_mm_min: 0.3,
11295
+ X_mm_min: 0.3,
11296
+ C_mm_ref: 0.6
11297
+ },
11298
+ {
11299
+ imperial: "0402",
11300
+ metric: "1005",
11301
+ Z_mm_min: 1.6,
11302
+ G_mm_min: 0.4,
11303
+ X_mm_min: 0.7,
11304
+ C_mm_ref: 1
11305
+ },
11306
+ {
11307
+ imperial: "0603",
11308
+ metric: "1608",
11309
+ Z_mm_min: 2.6,
11310
+ G_mm_min: 0.6,
11311
+ X_mm_min: 1,
11312
+ C_mm_ref: 1.7
11313
+ },
11314
+ {
11315
+ imperial: "0805",
11316
+ metric: "2012",
11317
+ Z_mm_min: 3,
11318
+ G_mm_min: 0.6,
11319
+ X_mm_min: 1.2,
11320
+ C_mm_ref: 1.9
11321
+ },
11322
+ {
11323
+ imperial: "1206",
11324
+ metric: "3216",
11325
+ Z_mm_min: 4.2,
11326
+ G_mm_min: 1.2,
11327
+ X_mm_min: 1.4,
11328
+ C_mm_ref: 2.8
11329
+ },
11330
+ {
11331
+ imperial: "1210",
11332
+ metric: "3225",
11333
+ Z_mm_min: 4.2,
11334
+ G_mm_min: 1.2,
11335
+ X_mm_min: 2.4,
11336
+ C_mm_ref: 2.8
11337
+ },
11338
+ {
11339
+ imperial: "2010",
11340
+ metric: "5025",
11341
+ Z_mm_min: 6,
11342
+ G_mm_min: 2.6,
11343
+ X_mm_min: 2.4,
11344
+ C_mm_ref: 4.4
11345
+ },
11346
+ {
11347
+ imperial: "2512",
11348
+ metric: "6332",
11349
+ Z_mm_min: 7.2,
11350
+ G_mm_min: 3.8,
11351
+ X_mm_min: 3,
11352
+ C_mm_ref: 5.6
11353
+ }
11354
+ ];
11355
+ var metricMap = sizes.reduce((acc, s) => {
11356
+ acc[s.metric] = s;
11357
+ return acc;
11358
+ }, {});
11359
+ var imperialMap = sizes.reduce(
11360
+ (acc, s) => {
11361
+ acc[s.imperial] = s;
11362
+ return acc;
11363
+ },
11364
+ {}
11365
+ );
11366
+ var deriveXFromH = (h) => 0.079 * h ** 2 + 0.94 * h - 9e-3;
11367
+ var deriveZFromW = (w) => 1.09 * w + 0.6;
11368
+ var deriveGFromW = (w) => 0.59 * w - 0.31;
11369
+ var deriveCFromW = (w) => -0.01 * w ** 2 + 0.94 * w + 0.03;
11370
+ var passive = (params) => {
11371
+ let { tht, p, pw, ph, metric, imperial, w, h } = params;
11372
+ if (typeof w === "string")
11373
+ w = (0, import_mm2.default)(w);
11374
+ if (typeof h === "string")
11375
+ h = (0, import_mm2.default)(h);
11376
+ if (typeof p === "string")
11377
+ p = (0, import_mm2.default)(p);
11378
+ if (typeof pw === "string")
11379
+ pw = (0, import_mm2.default)(pw);
11380
+ if (typeof ph === "string")
11381
+ ph = (0, import_mm2.default)(ph);
11382
+ if (h > w) {
11383
+ throw new Error(
11384
+ "height cannot be greater than width (rotated footprint not yet implemented)"
11385
+ );
11386
+ }
11387
+ let sz;
11388
+ if (metric) {
11389
+ sz = metricMap[metric];
11390
+ }
11391
+ if (imperial) {
11392
+ sz = imperialMap[imperial];
11393
+ }
11394
+ if (!sz && w && h && !pw && !ph) {
11395
+ sz = {
11396
+ imperial: "custom",
11397
+ metric: "custom",
11398
+ Z_mm_min: deriveZFromW(w),
11399
+ G_mm_min: deriveGFromW(w),
11400
+ X_mm_min: deriveXFromH(h),
11401
+ C_mm_ref: deriveCFromW(w)
11402
+ };
11403
+ }
11404
+ if (sz) {
11405
+ w = sz.Z_mm_min;
11406
+ h = sz.X_mm_min;
11407
+ p = sz.C_mm_ref;
11408
+ pw = (sz.Z_mm_min - sz.G_mm_min) / 2;
11409
+ ph = (sz.Z_mm_min - sz.G_mm_min) / 2;
11410
+ }
11411
+ if (pw === void 0)
11412
+ throw new Error(`could not infer pad width`);
11413
+ if (ph === void 0)
11414
+ throw new Error(`could not infer pad width`);
11415
+ if (tht) {
11416
+ return [
11417
+ platedhole(1, -p / 2, 0, pw, pw * 1 / 0.8),
11418
+ platedhole(2, -p / 2, 0, pw, pw * 1 / 0.8)
11419
+ ];
11420
+ } else {
11421
+ return [rectpad(1, -p / 2, 0, pw, ph), rectpad(2, p / 2, 0, pw, ph)];
11422
+ }
11423
+ };
11424
+
11425
+ // src/fn/cap.ts
11426
+ var cap = (params) => {
11427
+ return passive(params);
11428
+ };
11429
+
11430
+ // src/fn/led.ts
11431
+ var led = (params) => {
11432
+ return passive(params);
11433
+ };
11434
+
11435
+ // src/fn/res.ts
11436
+ var res = (params) => {
11437
+ return passive(params);
11438
+ };
11439
+
11440
+ // src/helpers/zod/bga-def.ts
11441
+ var import_soup2 = __toESM(require_dist(), 1);
11432
11442
 
11433
11443
  // src/helpers/zod/dim-2d.ts
11434
11444
  var dim2d = z.string().transform((a) => {
@@ -11462,11 +11472,11 @@ var ALPHABET = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
11462
11472
  var bga_def = z.object({
11463
11473
  num_pins: z.number(),
11464
11474
  grid: dim2d,
11465
- p: import_soup.distance,
11466
- w: import_soup.length,
11467
- h: import_soup.length,
11468
- ball: import_soup.length.optional().describe("ball diameter"),
11469
- pad: import_soup.length.optional().describe("pad width/height"),
11475
+ p: import_soup2.distance,
11476
+ w: import_soup2.length,
11477
+ h: import_soup2.length,
11478
+ ball: import_soup2.length.optional().describe("ball diameter"),
11479
+ pad: import_soup2.length.optional().describe("pad width/height"),
11470
11480
  tlorigin: z.boolean().optional(),
11471
11481
  blorigin: z.boolean().optional(),
11472
11482
  trorigin: z.boolean().optional(),
@@ -11554,7 +11564,7 @@ ${JSON.stringify(
11554
11564
  var string = (def) => {
11555
11565
  let fp2 = footprinter();
11556
11566
  const def_parts = def.split("_").map((s) => {
11557
- const m = s.match(/([a-z]+)([\(\d\+].*)?/);
11567
+ const m = s.match(/([a-z]+)([\(\d\.\+].*)?/);
11558
11568
  const [_, fn, v] = m ?? [];
11559
11569
  return { fn: m?.[1], v: m?.[2] };
11560
11570
  });