kicadts 0.0.30 → 0.0.32

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.
Files changed (3) hide show
  1. package/dist/index.d.ts +334 -60
  2. package/dist/index.js +990 -120
  3. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2011,6 +2011,24 @@ var KicadSymbolLibGenerator = class _KicadSymbolLibGenerator extends SxPrimitive
2011
2011
  };
2012
2012
  SxClass.register(KicadSymbolLibGenerator);
2013
2013
 
2014
+ // lib/sexpr/classes/KicadSymbolLibGeneratorVersion.ts
2015
+ var KicadSymbolLibGeneratorVersion = class _KicadSymbolLibGeneratorVersion extends SxPrimitiveString {
2016
+ static token = "generator_version";
2017
+ static parentToken = "kicad_symbol_lib";
2018
+ token = "generator_version";
2019
+ static fromSexprPrimitives(primitiveSexprs) {
2020
+ const value = toStringValue(primitiveSexprs[0]);
2021
+ if (value === void 0) {
2022
+ throw new Error("generator_version expects a string argument");
2023
+ }
2024
+ return new _KicadSymbolLibGeneratorVersion(value);
2025
+ }
2026
+ getString() {
2027
+ return `(generator_version ${quoteIfNeeded(this.value)})`;
2028
+ }
2029
+ };
2030
+ SxClass.register(KicadSymbolLibGeneratorVersion);
2031
+
2014
2032
  // lib/sexpr/classes/KicadSymbolLibVersion.ts
2015
2033
  var KicadSymbolLibVersion = class _KicadSymbolLibVersion extends SxPrimitiveNumber {
2016
2034
  static token = "version";
@@ -2104,6 +2122,156 @@ var FieldsAutoplaced = class extends SxPrimitiveBoolean {
2104
2122
  };
2105
2123
  SxClass.register(FieldsAutoplaced);
2106
2124
 
2125
+ // lib/sexpr/classes/SymbolLibName.ts
2126
+ var SymbolLibName = class _SymbolLibName extends SxPrimitiveString {
2127
+ static token = "lib_name";
2128
+ static parentToken = "symbol";
2129
+ token = "lib_name";
2130
+ static fromSexprPrimitives(primitiveSexprs) {
2131
+ const value = toStringValue(primitiveSexprs[0]);
2132
+ if (value === void 0) {
2133
+ throw new Error("lib_name expects a string value");
2134
+ }
2135
+ return new _SymbolLibName(value);
2136
+ }
2137
+ getString() {
2138
+ return `(lib_name ${quoteSExprString(this.value)})`;
2139
+ }
2140
+ };
2141
+ SxClass.register(SymbolLibName);
2142
+
2143
+ // lib/sexpr/classes/TextBoxFill.ts
2144
+ var TextBoxFill = class _TextBoxFill extends SxClass {
2145
+ static token = "fill";
2146
+ static parentToken = "text_box";
2147
+ token = "fill";
2148
+ _sxType;
2149
+ _sxColor;
2150
+ static fromSexprPrimitives(primitiveSexprs) {
2151
+ const fill = new _TextBoxFill();
2152
+ const { propertyMap } = SxClass.parsePrimitivesToClassProperties(
2153
+ primitiveSexprs,
2154
+ "fill"
2155
+ );
2156
+ fill._sxType = propertyMap.type;
2157
+ fill._sxColor = propertyMap.color;
2158
+ return fill;
2159
+ }
2160
+ getChildren() {
2161
+ const children = [];
2162
+ if (this._sxType) children.push(this._sxType);
2163
+ if (this._sxColor) children.push(this._sxColor);
2164
+ return children;
2165
+ }
2166
+ };
2167
+ SxClass.register(TextBoxFill);
2168
+
2169
+ // lib/sexpr/classes/TextBoxSize.ts
2170
+ var TextBoxSize = class _TextBoxSize extends SxClass {
2171
+ constructor(width, height) {
2172
+ super();
2173
+ this.width = width;
2174
+ this.height = height;
2175
+ }
2176
+ width;
2177
+ height;
2178
+ static token = "size";
2179
+ static parentToken = "text_box";
2180
+ token = "size";
2181
+ static fromSexprPrimitives(primitiveSexprs) {
2182
+ const width = toNumberValue(primitiveSexprs[0]);
2183
+ const height = toNumberValue(primitiveSexprs[1]);
2184
+ if (width === void 0 || height === void 0) {
2185
+ throw new Error("text_box size requires numeric width and height");
2186
+ }
2187
+ return new _TextBoxSize(width, height);
2188
+ }
2189
+ getString() {
2190
+ return `(size ${this.width} ${this.height})`;
2191
+ }
2192
+ };
2193
+ SxClass.register(TextBoxSize);
2194
+
2195
+ // lib/sexpr/classes/SymbolTextBox.ts
2196
+ var SUPPORTED_TOKENS = /* @__PURE__ */ new Set([
2197
+ "exclude_from_sim",
2198
+ "at",
2199
+ "size",
2200
+ "stroke",
2201
+ "fill",
2202
+ "effects",
2203
+ "uuid"
2204
+ ]);
2205
+ var SymbolTextBox = class extends SxClass {
2206
+ static token = "text_box";
2207
+ static parentToken = "symbol";
2208
+ token = "text_box";
2209
+ _text = "";
2210
+ _sxExcludeFromSim;
2211
+ _sxAt;
2212
+ _sxSize;
2213
+ _sxStroke;
2214
+ _sxFill;
2215
+ _sxEffects;
2216
+ _sxUuid;
2217
+ static fromSexprPrimitives(primitiveSexprs) {
2218
+ const [textPrimitive, ...children] = primitiveSexprs;
2219
+ const text = toStringValue(textPrimitive);
2220
+ if (text === void 0) {
2221
+ throw new Error("text_box expects a string value");
2222
+ }
2223
+ const textBox = new this();
2224
+ textBox._text = text;
2225
+ const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(children, this.token);
2226
+ for (const [token, entries] of Object.entries(arrayPropertyMap)) {
2227
+ if (!SUPPORTED_TOKENS.has(token)) {
2228
+ throw new Error(
2229
+ `text_box encountered unsupported child token "${token}"`
2230
+ );
2231
+ }
2232
+ if (entries.length > 1) {
2233
+ throw new Error(
2234
+ `text_box does not support repeated child token "${token}"`
2235
+ );
2236
+ }
2237
+ }
2238
+ textBox._sxExcludeFromSim = propertyMap.exclude_from_sim;
2239
+ textBox._sxAt = propertyMap.at;
2240
+ textBox._sxSize = propertyMap.size;
2241
+ textBox._sxStroke = propertyMap.stroke;
2242
+ textBox._sxFill = propertyMap.fill;
2243
+ textBox._sxEffects = propertyMap.effects;
2244
+ textBox._sxUuid = propertyMap.uuid;
2245
+ return textBox;
2246
+ }
2247
+ get text() {
2248
+ return this._text;
2249
+ }
2250
+ set text(value) {
2251
+ this._text = value;
2252
+ }
2253
+ getChildren() {
2254
+ const children = [];
2255
+ if (this._sxExcludeFromSim) children.push(this._sxExcludeFromSim);
2256
+ if (this._sxAt) children.push(this._sxAt);
2257
+ if (this._sxSize) children.push(this._sxSize);
2258
+ if (this._sxStroke) children.push(this._sxStroke);
2259
+ if (this._sxFill) children.push(this._sxFill);
2260
+ if (this._sxEffects) children.push(this._sxEffects);
2261
+ if (this._sxUuid) children.push(this._sxUuid);
2262
+ return children;
2263
+ }
2264
+ getString() {
2265
+ const lines = [`(text_box ${quoteSExprString(this._text)}`];
2266
+ for (const child of this.getChildren()) {
2267
+ lines.push(child.getStringIndented());
2268
+ }
2269
+ lines.push(")");
2270
+ return lines.join("\n");
2271
+ }
2272
+ };
2273
+ SxClass.register(SymbolTextBox);
2274
+
2107
2275
  // lib/sexpr/classes/Polyline.ts
2108
2276
  var SUPPORTED_TOKENS_KICAD_SCH = /* @__PURE__ */ new Set(["pts", "stroke", "uuid"]);
2109
2277
  var SUPPORTED_TOKENS_SYMBOL = /* @__PURE__ */ new Set(["pts", "stroke", "fill"]);
@@ -2490,6 +2658,7 @@ var SymbolCircleRadius = class extends SxPrimitiveNumber {
2490
2658
  SxClass.register(SymbolCircleRadius);
2491
2659
  var SymbolFillBase = class extends SxClass {
2492
2660
  _sxType;
2661
+ _sxColor;
2493
2662
  static fromSexprPrimitives(primitiveSexprs) {
2494
2663
  const fill = new this();
2495
2664
  const { propertyMap } = SxClass.parsePrimitivesToClassProperties(
@@ -2497,6 +2666,7 @@ var SymbolFillBase = class extends SxClass {
2497
2666
  "fill"
2498
2667
  );
2499
2668
  fill._sxType = propertyMap.type;
2669
+ fill._sxColor = propertyMap.color;
2500
2670
  return fill;
2501
2671
  }
2502
2672
  get type() {
@@ -2510,7 +2680,10 @@ var SymbolFillBase = class extends SxClass {
2510
2680
  this._sxType = new SymbolFillType(value);
2511
2681
  }
2512
2682
  getChildren() {
2513
- return this._sxType ? [this._sxType] : [];
2683
+ const children = [];
2684
+ if (this._sxType) children.push(this._sxType);
2685
+ if (this._sxColor) children.push(this._sxColor);
2686
+ return children;
2514
2687
  }
2515
2688
  };
2516
2689
  var SymbolPolylineFill = class extends SymbolFillBase {
@@ -2730,6 +2903,7 @@ SxClass.register(SymbolPower);
2730
2903
  var SchematicSymbol = class _SchematicSymbol extends SxClass {
2731
2904
  static token = "symbol";
2732
2905
  token = "symbol";
2906
+ _sxLibName;
2733
2907
  _sxLibId;
2734
2908
  _sxAt;
2735
2909
  _sxMirror;
@@ -2751,6 +2925,7 @@ var SchematicSymbol = class _SchematicSymbol extends SxClass {
2751
2925
  circles = [];
2752
2926
  arcs = [];
2753
2927
  texts = [];
2928
+ textBoxes = [];
2754
2929
  _sxPower;
2755
2930
  _sxEmbeddedFonts;
2756
2931
  _sxInstances;
@@ -2758,6 +2933,7 @@ var SchematicSymbol = class _SchematicSymbol extends SxClass {
2758
2933
  constructor(params = {}) {
2759
2934
  super();
2760
2935
  if (params.libraryId !== void 0) this.libraryId = params.libraryId;
2936
+ if (params.libraryName !== void 0) this.libraryName = params.libraryName;
2761
2937
  if (params.at !== void 0) this.at = params.at;
2762
2938
  if (params.mirror !== void 0) this.mirror = params.mirror;
2763
2939
  if (params.unit !== void 0)
@@ -2782,6 +2958,7 @@ var SchematicSymbol = class _SchematicSymbol extends SxClass {
2782
2958
  if (params.circles !== void 0) this.circles = params.circles;
2783
2959
  if (params.arcs !== void 0) this.arcs = params.arcs;
2784
2960
  if (params.texts !== void 0) this.texts = params.texts;
2961
+ if (params.textBoxes !== void 0) this.textBoxes = params.textBoxes;
2785
2962
  if (params.embeddedFonts !== void 0)
2786
2963
  this._sxEmbeddedFonts = params.embeddedFonts;
2787
2964
  if (params.instances !== void 0) this.instances = params.instances;
@@ -2805,6 +2982,16 @@ var SchematicSymbol = class _SchematicSymbol extends SxClass {
2805
2982
  this._inlineLibId = value;
2806
2983
  this._sxLibId = void 0;
2807
2984
  }
2985
+ get libraryName() {
2986
+ return this._sxLibName?.value;
2987
+ }
2988
+ set libraryName(value) {
2989
+ if (value === void 0) {
2990
+ this._sxLibName = void 0;
2991
+ return;
2992
+ }
2993
+ this._sxLibName = value instanceof SymbolLibName ? value : new SymbolLibName(value);
2994
+ }
2808
2995
  get at() {
2809
2996
  return this._sxAt;
2810
2997
  }
@@ -2905,6 +3092,7 @@ var SchematicSymbol = class _SchematicSymbol extends SxClass {
2905
3092
  }
2906
3093
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(remaining, this.token);
2907
3094
  const libIdClass = propertyMap.lib_id;
3095
+ symbol._sxLibName = propertyMap.lib_name;
2908
3096
  if (libIdClass) {
2909
3097
  symbol._sxLibId = libIdClass;
2910
3098
  } else if (inlineId !== void 0) {
@@ -2932,11 +3120,13 @@ var SchematicSymbol = class _SchematicSymbol extends SxClass {
2932
3120
  symbol.circles = arrayPropertyMap.circle ?? [];
2933
3121
  symbol.arcs = arrayPropertyMap.arc ?? [];
2934
3122
  symbol.texts = arrayPropertyMap.text ?? [];
3123
+ symbol.textBoxes = arrayPropertyMap.text_box ?? [];
2935
3124
  symbol._sxInstances = propertyMap.instances;
2936
3125
  return symbol;
2937
3126
  }
2938
3127
  getChildren() {
2939
3128
  const children = [];
3129
+ if (this._sxLibName) children.push(this._sxLibName);
2940
3130
  if (this._sxLibId) children.push(this._sxLibId);
2941
3131
  if (this._sxAt) children.push(this._sxAt);
2942
3132
  if (this._sxMirror) children.push(this._sxMirror);
@@ -2960,6 +3150,7 @@ var SchematicSymbol = class _SchematicSymbol extends SxClass {
2960
3150
  children.push(...this.circles);
2961
3151
  children.push(...this.arcs);
2962
3152
  children.push(...this.texts);
3153
+ children.push(...this.textBoxes);
2963
3154
  if (this._sxPower) children.push(this._sxPower);
2964
3155
  if (this._sxEmbeddedFonts) children.push(this._sxEmbeddedFonts);
2965
3156
  if (this._sxInstances) children.push(this._sxInstances);
@@ -3473,7 +3664,11 @@ var SymbolInstanceUnit = class extends SxPrimitiveNumber {
3473
3664
  SxClass.register(SymbolInstanceUnit);
3474
3665
 
3475
3666
  // lib/sexpr/classes/KicadSymbolLib.ts
3476
- var SINGLE_CHILD_TOKENS = /* @__PURE__ */ new Set(["version", "generator"]);
3667
+ var SINGLE_CHILD_TOKENS = /* @__PURE__ */ new Set([
3668
+ "version",
3669
+ "generator",
3670
+ "generator_version"
3671
+ ]);
3477
3672
  var MULTI_CHILD_TOKENS = /* @__PURE__ */ new Set(["symbol"]);
3478
3673
  var SUPPORTED_CHILD_TOKENS = /* @__PURE__ */ new Set([
3479
3674
  ...SINGLE_CHILD_TOKENS,
@@ -3484,6 +3679,7 @@ var KicadSymbolLib = class _KicadSymbolLib extends SxClass {
3484
3679
  token = "kicad_symbol_lib";
3485
3680
  _sxVersion;
3486
3681
  _sxGenerator;
3682
+ _sxGeneratorVersion;
3487
3683
  _symbols = [];
3488
3684
  constructor(params = {}) {
3489
3685
  super();
@@ -3497,6 +3693,11 @@ var KicadSymbolLib = class _KicadSymbolLib extends SxClass {
3497
3693
  } else if (params.generator !== void 0) {
3498
3694
  this.generator = params.generator;
3499
3695
  }
3696
+ if (params.generatorVersion instanceof KicadSymbolLibGeneratorVersion) {
3697
+ this._sxGeneratorVersion = params.generatorVersion;
3698
+ } else if (params.generatorVersion !== void 0) {
3699
+ this.generatorVersion = params.generatorVersion;
3700
+ }
3500
3701
  if (params.symbols !== void 0) {
3501
3702
  this.symbols = params.symbols;
3502
3703
  }
@@ -3537,6 +3738,7 @@ var KicadSymbolLib = class _KicadSymbolLib extends SxClass {
3537
3738
  return new _KicadSymbolLib({
3538
3739
  version: propertyMap.version,
3539
3740
  generator: propertyMap.generator,
3741
+ generatorVersion: propertyMap.generator_version,
3540
3742
  symbols: arrayPropertyMap.symbol ?? []
3541
3743
  });
3542
3744
  }
@@ -3552,6 +3754,12 @@ var KicadSymbolLib = class _KicadSymbolLib extends SxClass {
3552
3754
  set generator(value) {
3553
3755
  this._sxGenerator = value === void 0 ? void 0 : new KicadSymbolLibGenerator(value);
3554
3756
  }
3757
+ get generatorVersion() {
3758
+ return this._sxGeneratorVersion?.value;
3759
+ }
3760
+ set generatorVersion(value) {
3761
+ this._sxGeneratorVersion = value === void 0 ? void 0 : new KicadSymbolLibGeneratorVersion(value);
3762
+ }
3555
3763
  get symbols() {
3556
3764
  return [...this._symbols];
3557
3765
  }
@@ -3562,6 +3770,7 @@ var KicadSymbolLib = class _KicadSymbolLib extends SxClass {
3562
3770
  const children = [];
3563
3771
  if (this._sxVersion) children.push(this._sxVersion);
3564
3772
  if (this._sxGenerator) children.push(this._sxGenerator);
3773
+ if (this._sxGeneratorVersion) children.push(this._sxGeneratorVersion);
3565
3774
  children.push(...this._symbols);
3566
3775
  return children;
3567
3776
  }
@@ -3614,7 +3823,7 @@ var LibSymbols = class _LibSymbols extends SxClass {
3614
3823
  SxClass.register(LibSymbols);
3615
3824
 
3616
3825
  // lib/sexpr/classes/Wire.ts
3617
- var SUPPORTED_TOKENS = /* @__PURE__ */ new Set(["pts", "stroke", "uuid"]);
3826
+ var SUPPORTED_TOKENS2 = /* @__PURE__ */ new Set(["pts", "stroke", "uuid"]);
3618
3827
  var Wire = class _Wire extends SxClass {
3619
3828
  static token = "wire";
3620
3829
  static parentToken = "kicad_sch";
@@ -3638,7 +3847,7 @@ var Wire = class _Wire extends SxClass {
3638
3847
  const wire = new _Wire();
3639
3848
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
3640
3849
  for (const [token, entries] of Object.entries(arrayPropertyMap)) {
3641
- if (!SUPPORTED_TOKENS.has(token)) {
3850
+ if (!SUPPORTED_TOKENS2.has(token)) {
3642
3851
  throw new Error(
3643
3852
  `Unsupported child tokens inside wire expression: ${token}`
3644
3853
  );
@@ -3648,7 +3857,7 @@ var Wire = class _Wire extends SxClass {
3648
3857
  }
3649
3858
  }
3650
3859
  const unsupportedTokens = Object.keys(propertyMap).filter(
3651
- (token) => !SUPPORTED_TOKENS.has(token)
3860
+ (token) => !SUPPORTED_TOKENS2.has(token)
3652
3861
  );
3653
3862
  if (unsupportedTokens.length > 0) {
3654
3863
  throw new Error(
@@ -3693,7 +3902,7 @@ var Wire = class _Wire extends SxClass {
3693
3902
  SxClass.register(Wire);
3694
3903
 
3695
3904
  // lib/sexpr/classes/Bus.ts
3696
- var SUPPORTED_TOKENS2 = /* @__PURE__ */ new Set(["pts", "stroke", "uuid"]);
3905
+ var SUPPORTED_TOKENS3 = /* @__PURE__ */ new Set(["pts", "stroke", "uuid"]);
3697
3906
  var Bus = class _Bus extends SxClass {
3698
3907
  static token = "bus";
3699
3908
  static parentToken = "kicad_sch";
@@ -3721,7 +3930,7 @@ var Bus = class _Bus extends SxClass {
3721
3930
  throw new Error(`bus does not support repeated child tokens: ${tokens}`);
3722
3931
  }
3723
3932
  const unsupportedTokens = Object.keys(propertyMap).filter(
3724
- (token) => !SUPPORTED_TOKENS2.has(token)
3933
+ (token) => !SUPPORTED_TOKENS3.has(token)
3725
3934
  );
3726
3935
  if (unsupportedTokens.length > 0) {
3727
3936
  throw new Error(
@@ -3889,7 +4098,7 @@ var JunctionDiameter = class extends SxPrimitiveNumber {
3889
4098
  SxClass.register(JunctionDiameter);
3890
4099
 
3891
4100
  // lib/sexpr/classes/NoConnect.ts
3892
- var SUPPORTED_TOKENS3 = /* @__PURE__ */ new Set(["at", "uuid"]);
4101
+ var SUPPORTED_TOKENS4 = /* @__PURE__ */ new Set(["at", "uuid"]);
3893
4102
  var NoConnect = class _NoConnect extends SxClass {
3894
4103
  static token = "no_connect";
3895
4104
  static parentToken = "kicad_sch";
@@ -3909,7 +4118,7 @@ var NoConnect = class _NoConnect extends SxClass {
3909
4118
  const noConnect = new _NoConnect();
3910
4119
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
3911
4120
  for (const token of Object.keys(arrayPropertyMap)) {
3912
- if (!SUPPORTED_TOKENS3.has(token)) {
4121
+ if (!SUPPORTED_TOKENS4.has(token)) {
3913
4122
  continue;
3914
4123
  }
3915
4124
  if (arrayPropertyMap[token].length > 1) {
@@ -3919,7 +4128,7 @@ var NoConnect = class _NoConnect extends SxClass {
3919
4128
  }
3920
4129
  }
3921
4130
  const unsupportedTokens = Object.keys(propertyMap).filter(
3922
- (token) => !SUPPORTED_TOKENS3.has(token)
4131
+ (token) => !SUPPORTED_TOKENS4.has(token)
3923
4132
  );
3924
4133
  if (unsupportedTokens.length > 0) {
3925
4134
  throw new Error(
@@ -3956,7 +4165,7 @@ var NoConnect = class _NoConnect extends SxClass {
3956
4165
  SxClass.register(NoConnect);
3957
4166
 
3958
4167
  // lib/sexpr/classes/BusEntry.ts
3959
- var SUPPORTED_TOKENS4 = /* @__PURE__ */ new Set(["at", "size", "stroke", "uuid"]);
4168
+ var SUPPORTED_TOKENS5 = /* @__PURE__ */ new Set(["at", "size", "stroke", "uuid"]);
3960
4169
  var BusEntry = class _BusEntry extends SxClass {
3961
4170
  static token = "bus_entry";
3962
4171
  static parentToken = "kicad_sch";
@@ -3990,7 +4199,7 @@ var BusEntry = class _BusEntry extends SxClass {
3990
4199
  );
3991
4200
  }
3992
4201
  const unsupportedTokens = Object.keys(propertyMap).filter(
3993
- (token) => !SUPPORTED_TOKENS4.has(token)
4202
+ (token) => !SUPPORTED_TOKENS5.has(token)
3994
4203
  );
3995
4204
  if (unsupportedTokens.length > 0) {
3996
4205
  throw new Error(
@@ -4080,7 +4289,7 @@ var BusEntrySize = class _BusEntrySize extends SxClass {
4080
4289
  SxClass.register(BusEntrySize);
4081
4290
 
4082
4291
  // lib/sexpr/classes/Label.ts
4083
- var SUPPORTED_TOKENS5 = /* @__PURE__ */ new Set(["at", "effects", "uuid", "fields_autoplaced"]);
4292
+ var SUPPORTED_TOKENS6 = /* @__PURE__ */ new Set(["at", "effects", "uuid", "fields_autoplaced"]);
4084
4293
  var Label = class _Label extends SxClass {
4085
4294
  static token = "label";
4086
4295
  static parentToken = "kicad_sch";
@@ -4122,7 +4331,7 @@ var Label = class _Label extends SxClass {
4122
4331
  label._value = value;
4123
4332
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(rest, this.token);
4124
4333
  const unsupportedTokens = Object.keys(propertyMap).filter(
4125
- (token) => !SUPPORTED_TOKENS5.has(token)
4334
+ (token) => !SUPPORTED_TOKENS6.has(token)
4126
4335
  );
4127
4336
  if (unsupportedTokens.length > 0) {
4128
4337
  throw new Error(
@@ -4130,7 +4339,7 @@ var Label = class _Label extends SxClass {
4130
4339
  );
4131
4340
  }
4132
4341
  for (const [token, entries] of Object.entries(arrayPropertyMap)) {
4133
- if (!SUPPORTED_TOKENS5.has(token)) {
4342
+ if (!SUPPORTED_TOKENS6.has(token)) {
4134
4343
  throw new Error(
4135
4344
  `Unsupported child tokens inside label expression: ${token}`
4136
4345
  );
@@ -4448,7 +4657,7 @@ var Property = class _Property extends SxClass {
4448
4657
  SxClass.register(Property);
4449
4658
 
4450
4659
  // lib/sexpr/classes/GlobalLabel.ts
4451
- var SUPPORTED_TOKENS6 = /* @__PURE__ */ new Set([
4660
+ var SUPPORTED_TOKENS7 = /* @__PURE__ */ new Set([
4452
4661
  "shape",
4453
4662
  "at",
4454
4663
  "effects",
@@ -4518,7 +4727,7 @@ var GlobalLabel = class _GlobalLabel extends SxClass {
4518
4727
  const restWithoutShape = shapeIndex >= 0 ? rest.filter((_, i) => i !== shapeIndex) : rest;
4519
4728
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(restWithoutShape, this.token);
4520
4729
  const unsupportedTokens = Object.keys(propertyMap).filter(
4521
- (token) => !SUPPORTED_TOKENS6.has(token)
4730
+ (token) => !SUPPORTED_TOKENS7.has(token)
4522
4731
  );
4523
4732
  if (unsupportedTokens.length > 0) {
4524
4733
  throw new Error(
@@ -4526,7 +4735,7 @@ var GlobalLabel = class _GlobalLabel extends SxClass {
4526
4735
  );
4527
4736
  }
4528
4737
  for (const [token, entries] of Object.entries(arrayPropertyMap)) {
4529
- if (!SUPPORTED_TOKENS6.has(token)) {
4738
+ if (!SUPPORTED_TOKENS7.has(token)) {
4530
4739
  throw new Error(
4531
4740
  `Unsupported child tokens inside global_label expression: ${token}`
4532
4741
  );
@@ -4612,7 +4821,7 @@ var GlobalLabel = class _GlobalLabel extends SxClass {
4612
4821
  SxClass.register(GlobalLabel);
4613
4822
 
4614
4823
  // lib/sexpr/classes/SchematicText.ts
4615
- var SUPPORTED_TOKENS7 = /* @__PURE__ */ new Set(["exclude_from_sim", "at", "effects", "uuid"]);
4824
+ var SUPPORTED_TOKENS8 = /* @__PURE__ */ new Set(["exclude_from_sim", "at", "effects", "uuid"]);
4616
4825
  var SchematicText = class _SchematicText extends SxClass {
4617
4826
  static token = "text";
4618
4827
  static parentToken = "kicad_sch";
@@ -4650,7 +4859,7 @@ var SchematicText = class _SchematicText extends SxClass {
4650
4859
  text._value = value;
4651
4860
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(rest, this.token);
4652
4861
  const unsupportedTokens = Object.keys(propertyMap).filter(
4653
- (token) => !SUPPORTED_TOKENS7.has(token)
4862
+ (token) => !SUPPORTED_TOKENS8.has(token)
4654
4863
  );
4655
4864
  if (unsupportedTokens.length > 0) {
4656
4865
  throw new Error(
@@ -4658,7 +4867,7 @@ var SchematicText = class _SchematicText extends SxClass {
4658
4867
  );
4659
4868
  }
4660
4869
  for (const [token, entries] of Object.entries(arrayPropertyMap)) {
4661
- if (!SUPPORTED_TOKENS7.has(token)) {
4870
+ if (!SUPPORTED_TOKENS8.has(token)) {
4662
4871
  throw new Error(
4663
4872
  `Unsupported child tokens inside text expression: ${token}`
4664
4873
  );
@@ -4726,6 +4935,59 @@ var SchematicText = class _SchematicText extends SxClass {
4726
4935
  };
4727
4936
  SxClass.register(SchematicText);
4728
4937
 
4938
+ // lib/sexpr/classes/SchematicTextBox.ts
4939
+ var SchematicTextBox = class extends SymbolTextBox {
4940
+ static token = "text_box";
4941
+ static parentToken = "kicad_sch";
4942
+ token = "text_box";
4943
+ };
4944
+ SxClass.register(SchematicTextBox);
4945
+
4946
+ // lib/sexpr/classes/SchematicRectangle.ts
4947
+ var SUPPORTED_TOKENS9 = /* @__PURE__ */ new Set(["start", "end", "stroke", "fill", "uuid"]);
4948
+ var SchematicRectangle = class _SchematicRectangle extends SxClass {
4949
+ static token = "rectangle";
4950
+ static parentToken = "kicad_sch";
4951
+ token = "rectangle";
4952
+ _sxStart;
4953
+ _sxEnd;
4954
+ _sxStroke;
4955
+ _sxFill;
4956
+ _sxUuid;
4957
+ static fromSexprPrimitives(primitiveSexprs) {
4958
+ const rectangle = new _SchematicRectangle();
4959
+ const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
4960
+ for (const [token, entries] of Object.entries(arrayPropertyMap)) {
4961
+ if (!SUPPORTED_TOKENS9.has(token)) {
4962
+ throw new Error(
4963
+ `rectangle encountered unsupported child token "${token}"`
4964
+ );
4965
+ }
4966
+ if (entries.length > 1) {
4967
+ throw new Error(
4968
+ `rectangle does not support repeated child token "${token}"`
4969
+ );
4970
+ }
4971
+ }
4972
+ rectangle._sxStart = propertyMap.start;
4973
+ rectangle._sxEnd = propertyMap.end;
4974
+ rectangle._sxStroke = propertyMap.stroke;
4975
+ rectangle._sxFill = propertyMap.fill;
4976
+ rectangle._sxUuid = propertyMap.uuid;
4977
+ return rectangle;
4978
+ }
4979
+ getChildren() {
4980
+ const children = [];
4981
+ if (this._sxStart) children.push(this._sxStart);
4982
+ if (this._sxEnd) children.push(this._sxEnd);
4983
+ if (this._sxStroke) children.push(this._sxStroke);
4984
+ if (this._sxFill) children.push(this._sxFill);
4985
+ if (this._sxUuid) children.push(this._sxUuid);
4986
+ return children;
4987
+ }
4988
+ };
4989
+ SxClass.register(SchematicRectangle);
4990
+
4729
4991
  // lib/sexpr/classes/SheetInstancesRoot.ts
4730
4992
  var SUPPORTED_ARRAY_TOKENS2 = /* @__PURE__ */ new Set(["page"]);
4731
4993
  var SheetInstancesRoot = class _SheetInstancesRoot extends SxClass {
@@ -5466,7 +5728,9 @@ var MULTI_CHILD_TOKENS2 = /* @__PURE__ */ new Set([
5466
5728
  "wire",
5467
5729
  "no_connect",
5468
5730
  "sheet_instances",
5469
- "polyline"
5731
+ "polyline",
5732
+ "rectangle",
5733
+ "text_box"
5470
5734
  ]);
5471
5735
  var SUPPORTED_CHILD_TOKENS3 = /* @__PURE__ */ new Set([
5472
5736
  ...SINGLE_CHILD_TOKENS2,
@@ -5495,6 +5759,8 @@ var KicadSch = class _KicadSch extends SxClass {
5495
5759
  _junctions = [];
5496
5760
  _noConnects = [];
5497
5761
  _polylines = [];
5762
+ _rectangles = [];
5763
+ _textBoxes = [];
5498
5764
  constructor(params = {}) {
5499
5765
  super();
5500
5766
  if (params.version instanceof KicadSchVersion) {
@@ -5563,6 +5829,12 @@ var KicadSch = class _KicadSch extends SxClass {
5563
5829
  if (params.polylines !== void 0) {
5564
5830
  this.polylines = params.polylines;
5565
5831
  }
5832
+ if (params.rectangles !== void 0) {
5833
+ this.rectangles = params.rectangles;
5834
+ }
5835
+ if (params.textBoxes !== void 0) {
5836
+ this.textBoxes = params.textBoxes;
5837
+ }
5566
5838
  }
5567
5839
  static fromSexprPrimitives(primitiveSexprs) {
5568
5840
  for (const primitive of primitiveSexprs) {
@@ -5617,7 +5889,9 @@ var KicadSch = class _KicadSch extends SxClass {
5617
5889
  junctions: arrayPropertyMap.junction ?? [],
5618
5890
  wires: arrayPropertyMap.wire ?? [],
5619
5891
  noConnects: arrayPropertyMap.no_connect ?? [],
5620
- polylines: arrayPropertyMap.polyline ?? []
5892
+ polylines: arrayPropertyMap.polyline ?? [],
5893
+ rectangles: arrayPropertyMap.rectangle ?? [],
5894
+ textBoxes: arrayPropertyMap.text_box ?? []
5621
5895
  });
5622
5896
  }
5623
5897
  get version() {
@@ -5748,6 +6022,18 @@ var KicadSch = class _KicadSch extends SxClass {
5748
6022
  set polylines(value) {
5749
6023
  this._polylines = [...value];
5750
6024
  }
6025
+ get rectangles() {
6026
+ return [...this._rectangles];
6027
+ }
6028
+ set rectangles(value) {
6029
+ this._rectangles = [...value];
6030
+ }
6031
+ get textBoxes() {
6032
+ return [...this._textBoxes];
6033
+ }
6034
+ set textBoxes(value) {
6035
+ this._textBoxes = [...value];
6036
+ }
5751
6037
  getChildren() {
5752
6038
  const children = [];
5753
6039
  if (this._sxVersion) children.push(this._sxVersion);
@@ -5770,6 +6056,8 @@ var KicadSch = class _KicadSch extends SxClass {
5770
6056
  children.push(...this._wires);
5771
6057
  children.push(...this._noConnects);
5772
6058
  children.push(...this._polylines);
6059
+ children.push(...this._rectangles);
6060
+ children.push(...this._textBoxes);
5773
6061
  return children;
5774
6062
  }
5775
6063
  };
@@ -6462,18 +6750,29 @@ var PadNet = class _PadNet extends SxClass {
6462
6750
  token = "net";
6463
6751
  _id;
6464
6752
  _name;
6465
- constructor(id, name) {
6753
+ constructor(idOrName, name) {
6466
6754
  super();
6467
- this._id = id;
6468
- this._name = name;
6755
+ if (typeof idOrName === "number") {
6756
+ this._id = idOrName;
6757
+ this._name = name;
6758
+ return;
6759
+ }
6760
+ this._name = idOrName;
6469
6761
  }
6470
6762
  static fromSexprPrimitives(primitiveSexprs) {
6471
6763
  const id = toNumberValue(primitiveSexprs[0]);
6472
- const name = toStringValue(primitiveSexprs[1]);
6473
- if (id === void 0 || name === void 0) {
6474
- throw new Error("pad net requires numeric id and string name");
6764
+ if (id !== void 0) {
6765
+ const name2 = toStringValue(primitiveSexprs[1]);
6766
+ if (name2 === void 0) {
6767
+ throw new Error("pad net requires a string name with numeric id");
6768
+ }
6769
+ return new _PadNet(id, name2);
6475
6770
  }
6476
- return new _PadNet(id, name);
6771
+ const name = toStringValue(primitiveSexprs[0]);
6772
+ if (name === void 0) {
6773
+ throw new Error("pad net requires numeric id or string name");
6774
+ }
6775
+ return new _PadNet(name);
6477
6776
  }
6478
6777
  get id() {
6479
6778
  return this._id;
@@ -6491,6 +6790,12 @@ var PadNet = class _PadNet extends SxClass {
6491
6790
  return [];
6492
6791
  }
6493
6792
  getString() {
6793
+ if (this._id === void 0) {
6794
+ return `(net ${quoteSExprString(this._name ?? "")})`;
6795
+ }
6796
+ if (this._name === void 0) {
6797
+ throw new Error("pad net with numeric id requires a name to serialize");
6798
+ }
6494
6799
  return `(net ${this._id} ${quoteSExprString(this._name)})`;
6495
6800
  }
6496
6801
  };
@@ -6741,7 +7046,7 @@ var GrLineStart = class _GrLineStart extends SxClass {
6741
7046
  SxClass.register(GrLineStart);
6742
7047
 
6743
7048
  // lib/sexpr/classes/PadPrimitiveGrLine.ts
6744
- var SUPPORTED_TOKENS8 = /* @__PURE__ */ new Set(["start", "end", "width"]);
7049
+ var SUPPORTED_TOKENS10 = /* @__PURE__ */ new Set(["start", "end", "width"]);
6745
7050
  var PadPrimitiveGrLine = class _PadPrimitiveGrLine extends SxClass {
6746
7051
  static token = "gr_line";
6747
7052
  static parentToken = "primitives";
@@ -6753,14 +7058,14 @@ var PadPrimitiveGrLine = class _PadPrimitiveGrLine extends SxClass {
6753
7058
  const line = new _PadPrimitiveGrLine();
6754
7059
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
6755
7060
  for (const token of Object.keys(propertyMap)) {
6756
- if (!SUPPORTED_TOKENS8.has(token)) {
7061
+ if (!SUPPORTED_TOKENS10.has(token)) {
6757
7062
  throw new Error(
6758
7063
  `pad primitive gr_line encountered unsupported child token "${token}"`
6759
7064
  );
6760
7065
  }
6761
7066
  }
6762
7067
  for (const [token, entries] of Object.entries(arrayPropertyMap)) {
6763
- if (!SUPPORTED_TOKENS8.has(token)) {
7068
+ if (!SUPPORTED_TOKENS10.has(token)) {
6764
7069
  throw new Error(
6765
7070
  `pad primitive gr_line encountered unsupported child token "${token}"`
6766
7071
  );
@@ -6842,7 +7147,7 @@ var PadPrimitiveGrLine = class _PadPrimitiveGrLine extends SxClass {
6842
7147
  SxClass.register(PadPrimitiveGrLine);
6843
7148
 
6844
7149
  // lib/sexpr/classes/PadPrimitiveGrArc.ts
6845
- var SUPPORTED_TOKENS9 = /* @__PURE__ */ new Set(["start", "mid", "end", "width"]);
7150
+ var SUPPORTED_TOKENS11 = /* @__PURE__ */ new Set(["start", "mid", "end", "width"]);
6846
7151
  var PadPrimitiveGrArc = class _PadPrimitiveGrArc extends SxClass {
6847
7152
  static token = "gr_arc";
6848
7153
  static parentToken = "primitives";
@@ -6862,14 +7167,14 @@ var PadPrimitiveGrArc = class _PadPrimitiveGrArc extends SxClass {
6862
7167
  const arc = new _PadPrimitiveGrArc();
6863
7168
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
6864
7169
  for (const token of Object.keys(propertyMap)) {
6865
- if (!SUPPORTED_TOKENS9.has(token)) {
7170
+ if (!SUPPORTED_TOKENS11.has(token)) {
6866
7171
  throw new Error(
6867
7172
  `pad primitive gr_arc encountered unsupported child token "${token}"`
6868
7173
  );
6869
7174
  }
6870
7175
  }
6871
7176
  for (const [token, entries] of Object.entries(arrayPropertyMap)) {
6872
- if (!SUPPORTED_TOKENS9.has(token)) {
7177
+ if (!SUPPORTED_TOKENS11.has(token)) {
6873
7178
  throw new Error(
6874
7179
  `pad primitive gr_arc encountered unsupported child token "${token}"`
6875
7180
  );
@@ -7039,7 +7344,7 @@ var PadPrimitiveGrArcEnd = class _PadPrimitiveGrArcEnd extends PadPrimitiveGrArc
7039
7344
  SxClass.register(PadPrimitiveGrArcEnd);
7040
7345
 
7041
7346
  // lib/sexpr/classes/PadPrimitiveGrCircle.ts
7042
- var SUPPORTED_TOKENS10 = /* @__PURE__ */ new Set(["center", "end", "width", "fill"]);
7347
+ var SUPPORTED_TOKENS12 = /* @__PURE__ */ new Set(["center", "end", "width", "fill"]);
7043
7348
  var PadPrimitiveGrCircle = class _PadPrimitiveGrCircle extends SxClass {
7044
7349
  static token = "gr_circle";
7045
7350
  static parentToken = "primitives";
@@ -7059,14 +7364,14 @@ var PadPrimitiveGrCircle = class _PadPrimitiveGrCircle extends SxClass {
7059
7364
  const circle = new _PadPrimitiveGrCircle();
7060
7365
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
7061
7366
  for (const token of Object.keys(propertyMap)) {
7062
- if (!SUPPORTED_TOKENS10.has(token)) {
7367
+ if (!SUPPORTED_TOKENS12.has(token)) {
7063
7368
  throw new Error(
7064
7369
  `pad primitive gr_circle encountered unsupported child token "${token}"`
7065
7370
  );
7066
7371
  }
7067
7372
  }
7068
7373
  for (const [token, entries] of Object.entries(arrayPropertyMap)) {
7069
- if (!SUPPORTED_TOKENS10.has(token)) {
7374
+ if (!SUPPORTED_TOKENS12.has(token)) {
7070
7375
  throw new Error(
7071
7376
  `pad primitive gr_circle encountered unsupported child token "${token}"`
7072
7377
  );
@@ -7919,7 +8224,7 @@ var SINGLE_TOKENS = /* @__PURE__ */ new Set([
7919
8224
  "teardrops"
7920
8225
  ]);
7921
8226
  var MULTI_TOKENS = /* @__PURE__ */ new Set(["property"]);
7922
- var SUPPORTED_TOKENS11 = /* @__PURE__ */ new Set([...SINGLE_TOKENS, ...MULTI_TOKENS]);
8227
+ var SUPPORTED_TOKENS13 = /* @__PURE__ */ new Set([...SINGLE_TOKENS, ...MULTI_TOKENS]);
7923
8228
  var ensureSingle = (arrayPropertyMap, token) => {
7924
8229
  const entries = arrayPropertyMap[token];
7925
8230
  if (entries && entries.length > 1) {
@@ -8063,12 +8368,12 @@ var FootprintPad = class _FootprintPad extends SxClass {
8063
8368
  }
8064
8369
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveNodes, this.token);
8065
8370
  for (const token of Object.keys(propertyMap)) {
8066
- if (!SUPPORTED_TOKENS11.has(token)) {
8371
+ if (!SUPPORTED_TOKENS13.has(token)) {
8067
8372
  throw new Error(`pad encountered unsupported child token "${token}"`);
8068
8373
  }
8069
8374
  }
8070
8375
  for (const [token, entries] of Object.entries(arrayPropertyMap)) {
8071
- if (!SUPPORTED_TOKENS11.has(token)) {
8376
+ if (!SUPPORTED_TOKENS13.has(token)) {
8072
8377
  throw new Error(`pad encountered unsupported child token "${token}"`);
8073
8378
  }
8074
8379
  if (!MULTI_TOKENS.has(token) && entries.length > 1) {
@@ -10074,7 +10379,7 @@ var FpPolyLocked = class _FpPolyLocked extends SxPrimitiveBoolean {
10074
10379
  SxClass.register(FpPolyLocked);
10075
10380
 
10076
10381
  // lib/sexpr/classes/FpPoly.ts
10077
- var SUPPORTED_TOKENS12 = /* @__PURE__ */ new Set([
10382
+ var SUPPORTED_TOKENS14 = /* @__PURE__ */ new Set([
10078
10383
  "pts",
10079
10384
  "xy",
10080
10385
  "layer",
@@ -10112,12 +10417,12 @@ var FpPoly = class _FpPoly extends SxClass {
10112
10417
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
10113
10418
  const unexpectedTokens = /* @__PURE__ */ new Set();
10114
10419
  for (const token of Object.keys(propertyMap)) {
10115
- if (!SUPPORTED_TOKENS12.has(token)) {
10420
+ if (!SUPPORTED_TOKENS14.has(token)) {
10116
10421
  unexpectedTokens.add(token);
10117
10422
  }
10118
10423
  }
10119
10424
  for (const token of Object.keys(arrayPropertyMap)) {
10120
- if (!SUPPORTED_TOKENS12.has(token)) {
10425
+ if (!SUPPORTED_TOKENS14.has(token)) {
10121
10426
  unexpectedTokens.add(token);
10122
10427
  }
10123
10428
  if (token !== "xy" && arrayPropertyMap[token].length > 1) {
@@ -10171,7 +10476,7 @@ var FpPoly = class _FpPoly extends SxClass {
10171
10476
  `fp_poly child token must be a string, received: ${JSON.stringify(token)}`
10172
10477
  );
10173
10478
  }
10174
- if (!SUPPORTED_TOKENS12.has(token)) {
10479
+ if (!SUPPORTED_TOKENS14.has(token)) {
10175
10480
  throw new Error(
10176
10481
  `Unsupported child token inside fp_poly expression: ${token}`
10177
10482
  );
@@ -11147,14 +11452,196 @@ var FootprintPlaced = class _FootprintPlaced extends SxPrimitiveBoolean {
11147
11452
  };
11148
11453
  SxClass.register(FootprintPlaced);
11149
11454
 
11150
- // lib/sexpr/classes/Footprint.ts
11151
- var SINGLE_TOKENS2 = /* @__PURE__ */ new Set([
11152
- "version",
11153
- "generator",
11154
- "generator_version",
11155
- "layer",
11156
- "locked",
11157
- "placed",
11455
+ // lib/sexpr/classes/FootprintDuplicatePadNumbersAreJumpers.ts
11456
+ var FootprintDuplicatePadNumbersAreJumpers = class extends SxPrimitiveString {
11457
+ static token = "duplicate_pad_numbers_are_jumpers";
11458
+ static parentToken = "footprint";
11459
+ token = "duplicate_pad_numbers_are_jumpers";
11460
+ };
11461
+ SxClass.register(FootprintDuplicatePadNumbersAreJumpers);
11462
+
11463
+ // lib/sexpr/classes/FootprintPointSize.ts
11464
+ var FootprintPointSize = class extends SxPrimitiveNumber {
11465
+ static token = "size";
11466
+ static parentToken = "point";
11467
+ token = "size";
11468
+ };
11469
+ SxClass.register(FootprintPointSize);
11470
+
11471
+ // lib/sexpr/classes/FootprintPoint.ts
11472
+ var FootprintPoint = class _FootprintPoint extends SxClass {
11473
+ static token = "point";
11474
+ static parentToken = "footprint";
11475
+ token = "point";
11476
+ _sxAt;
11477
+ _sxSize;
11478
+ _sxLayer;
11479
+ _sxUuid;
11480
+ static fromSexprPrimitives(primitiveSexprs) {
11481
+ const point = new _FootprintPoint();
11482
+ const { propertyMap } = SxClass.parsePrimitivesToClassProperties(
11483
+ primitiveSexprs,
11484
+ this.token
11485
+ );
11486
+ point._sxAt = propertyMap.at;
11487
+ point._sxSize = propertyMap.size;
11488
+ point._sxLayer = propertyMap.layer;
11489
+ point._sxUuid = propertyMap.uuid;
11490
+ return point;
11491
+ }
11492
+ getChildren() {
11493
+ const children = [];
11494
+ if (this._sxAt) children.push(this._sxAt);
11495
+ if (this._sxSize) children.push(this._sxSize);
11496
+ if (this._sxLayer) children.push(this._sxLayer);
11497
+ if (this._sxUuid) children.push(this._sxUuid);
11498
+ return children;
11499
+ }
11500
+ };
11501
+ SxClass.register(FootprintPoint);
11502
+
11503
+ // lib/sexpr/classes/FootprintUnitName.ts
11504
+ var FootprintUnitName = class _FootprintUnitName extends SxClass {
11505
+ static token = "name";
11506
+ static parentToken = "unit";
11507
+ token = "name";
11508
+ value;
11509
+ constructor(value) {
11510
+ super();
11511
+ this.value = value;
11512
+ }
11513
+ static fromSexprPrimitives(primitiveSexprs) {
11514
+ const value = toStringValue(primitiveSexprs[0]);
11515
+ if (value === void 0) {
11516
+ throw new Error("footprint unit name expects a string value");
11517
+ }
11518
+ return new _FootprintUnitName(value);
11519
+ }
11520
+ getChildren() {
11521
+ return [];
11522
+ }
11523
+ getString() {
11524
+ return `(name ${quoteSExprString(this.value)})`;
11525
+ }
11526
+ };
11527
+ SxClass.register(FootprintUnitName);
11528
+
11529
+ // lib/sexpr/classes/FootprintUnitPins.ts
11530
+ var FootprintUnitPins = class _FootprintUnitPins extends SxClass {
11531
+ static token = "pins";
11532
+ static parentToken = "unit";
11533
+ token = "pins";
11534
+ values;
11535
+ constructor(values = []) {
11536
+ super();
11537
+ this.values = values;
11538
+ }
11539
+ static fromSexprPrimitives(primitiveSexprs) {
11540
+ const values = primitiveSexprs.map((primitive) => {
11541
+ const value = toStringValue(primitive);
11542
+ if (value === void 0) {
11543
+ throw new Error("footprint unit pins expects string values");
11544
+ }
11545
+ return value;
11546
+ });
11547
+ return new _FootprintUnitPins(values);
11548
+ }
11549
+ getChildren() {
11550
+ return [];
11551
+ }
11552
+ getString() {
11553
+ return `(pins ${this.values.map((value) => quoteSExprString(value)).join(" ")})`;
11554
+ }
11555
+ };
11556
+ SxClass.register(FootprintUnitPins);
11557
+
11558
+ // lib/sexpr/classes/FootprintUnit.ts
11559
+ var FootprintUnit = class _FootprintUnit extends SxClass {
11560
+ static token = "unit";
11561
+ static parentToken = "units";
11562
+ token = "unit";
11563
+ _sxName;
11564
+ _sxPins;
11565
+ static fromSexprPrimitives(primitiveSexprs) {
11566
+ const unit = new _FootprintUnit();
11567
+ const { propertyMap } = SxClass.parsePrimitivesToClassProperties(
11568
+ primitiveSexprs,
11569
+ this.token
11570
+ );
11571
+ unit._sxName = propertyMap.name;
11572
+ unit._sxPins = propertyMap.pins;
11573
+ return unit;
11574
+ }
11575
+ getChildren() {
11576
+ const children = [];
11577
+ if (this._sxName) children.push(this._sxName);
11578
+ if (this._sxPins) children.push(this._sxPins);
11579
+ return children;
11580
+ }
11581
+ };
11582
+ SxClass.register(FootprintUnit);
11583
+
11584
+ // lib/sexpr/classes/FootprintUnits.ts
11585
+ var FootprintUnits = class _FootprintUnits extends SxClass {
11586
+ static token = "units";
11587
+ static parentToken = "footprint";
11588
+ token = "units";
11589
+ _units = [];
11590
+ constructor(units = []) {
11591
+ super();
11592
+ this._units = units;
11593
+ }
11594
+ static fromSexprPrimitives(primitiveSexprs) {
11595
+ const { arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(
11596
+ primitiveSexprs,
11597
+ this.token
11598
+ );
11599
+ return new _FootprintUnits(arrayPropertyMap.unit ?? []);
11600
+ }
11601
+ getChildren() {
11602
+ return [...this._units];
11603
+ }
11604
+ };
11605
+ SxClass.register(FootprintUnits);
11606
+
11607
+ // lib/sexpr/classes/Zone.ts
11608
+ var Zone = class _Zone extends SxClass {
11609
+ static token = "zone";
11610
+ token = "zone";
11611
+ _rawChildren = [];
11612
+ static fromSexprPrimitives(primitiveSexprs) {
11613
+ const zone = new _Zone();
11614
+ zone._rawChildren = [...primitiveSexprs];
11615
+ return zone;
11616
+ }
11617
+ get rawChildren() {
11618
+ return [...this._rawChildren];
11619
+ }
11620
+ set rawChildren(children) {
11621
+ this._rawChildren = [...children];
11622
+ }
11623
+ getChildren() {
11624
+ return [];
11625
+ }
11626
+ getString() {
11627
+ const lines = ["(zone"];
11628
+ for (const arg of this._rawChildren) {
11629
+ lines.push(` ${printSExpr(arg)}`);
11630
+ }
11631
+ lines.push(")");
11632
+ return lines.join("\n");
11633
+ }
11634
+ };
11635
+ SxClass.register(Zone);
11636
+
11637
+ // lib/sexpr/classes/Footprint.ts
11638
+ var SINGLE_TOKENS2 = /* @__PURE__ */ new Set([
11639
+ "version",
11640
+ "generator",
11641
+ "generator_version",
11642
+ "layer",
11643
+ "locked",
11644
+ "placed",
11158
11645
  "tedit",
11159
11646
  "tstamp",
11160
11647
  "uuid",
@@ -11177,6 +11664,8 @@ var SINGLE_TOKENS2 = /* @__PURE__ */ new Set([
11177
11664
  "net_tie_pad_groups",
11178
11665
  "sheetname",
11179
11666
  "sheetfile",
11667
+ "units",
11668
+ "duplicate_pad_numbers_are_jumpers",
11180
11669
  "embedded_fonts",
11181
11670
  "embedded_files"
11182
11671
  ]);
@@ -11189,10 +11678,12 @@ var MULTI_TOKENS2 = /* @__PURE__ */ new Set([
11189
11678
  "fp_circle",
11190
11679
  "fp_arc",
11191
11680
  "fp_poly",
11681
+ "point",
11192
11682
  "pad",
11193
- "model"
11683
+ "model",
11684
+ "zone"
11194
11685
  ]);
11195
- var SUPPORTED_TOKENS13 = /* @__PURE__ */ new Set([...SINGLE_TOKENS2, ...MULTI_TOKENS2]);
11686
+ var SUPPORTED_TOKENS15 = /* @__PURE__ */ new Set([...SINGLE_TOKENS2, ...MULTI_TOKENS2]);
11196
11687
  var Footprint = class _Footprint extends SxClass {
11197
11688
  static token = "footprint";
11198
11689
  token = "footprint";
@@ -11225,6 +11716,8 @@ var Footprint = class _Footprint extends SxClass {
11225
11716
  _sxNetTiePadGroups;
11226
11717
  _sxSheetname;
11227
11718
  _sxSheetfile;
11719
+ _sxUnits;
11720
+ _sxDuplicatePadNumbersAreJumpers;
11228
11721
  _sxEmbeddedFonts;
11229
11722
  _sxEmbeddedFiles;
11230
11723
  _properties = [];
@@ -11235,8 +11728,10 @@ var Footprint = class _Footprint extends SxClass {
11235
11728
  _fpCircles = [];
11236
11729
  _fpArcs = [];
11237
11730
  _fpPolys = [];
11731
+ _points = [];
11238
11732
  _fpPads = [];
11239
11733
  _models = [];
11734
+ _zones = [];
11240
11735
  constructor(params = {}) {
11241
11736
  super();
11242
11737
  if (params.libraryLink !== void 0) this.libraryLink = params.libraryLink;
@@ -11275,6 +11770,10 @@ var Footprint = class _Footprint extends SxClass {
11275
11770
  this.netTiePadGroups = params.netTiePadGroups;
11276
11771
  if (params.sheetname !== void 0) this.sheetname = params.sheetname;
11277
11772
  if (params.sheetfile !== void 0) this.sheetfile = params.sheetfile;
11773
+ if (params.units !== void 0) this.units = params.units;
11774
+ if (params.duplicatePadNumbersAreJumpers !== void 0) {
11775
+ this.duplicatePadNumbersAreJumpers = params.duplicatePadNumbersAreJumpers;
11776
+ }
11278
11777
  if (params.embeddedFonts !== void 0)
11279
11778
  this.embeddedFonts = params.embeddedFonts;
11280
11779
  if (params.embeddedFiles !== void 0)
@@ -11287,8 +11786,10 @@ var Footprint = class _Footprint extends SxClass {
11287
11786
  if (params.fpCircles !== void 0) this.fpCircles = params.fpCircles;
11288
11787
  if (params.fpArcs !== void 0) this.fpArcs = params.fpArcs;
11289
11788
  if (params.fpPolys !== void 0) this.fpPolys = params.fpPolys;
11789
+ if (params.points !== void 0) this.points = params.points;
11290
11790
  if (params.pads !== void 0) this.fpPads = params.pads;
11291
11791
  if (params.models !== void 0) this.models = params.models;
11792
+ if (params.zones !== void 0) this.zones = params.zones;
11292
11793
  }
11293
11794
  static fromSexprPrimitives(primitiveSexprs) {
11294
11795
  const footprint = new _Footprint();
@@ -11314,14 +11815,14 @@ var Footprint = class _Footprint extends SxClass {
11314
11815
  }
11315
11816
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(rawNodes, this.token);
11316
11817
  for (const token of Object.keys(propertyMap)) {
11317
- if (!SUPPORTED_TOKENS13.has(token)) {
11818
+ if (!SUPPORTED_TOKENS15.has(token)) {
11318
11819
  throw new Error(
11319
11820
  `footprint encountered unsupported child token "${token}"`
11320
11821
  );
11321
11822
  }
11322
11823
  }
11323
11824
  for (const [token, entries] of Object.entries(arrayPropertyMap)) {
11324
- if (!SUPPORTED_TOKENS13.has(token)) {
11825
+ if (!SUPPORTED_TOKENS15.has(token)) {
11325
11826
  throw new Error(
11326
11827
  `footprint encountered unsupported child token "${token}"`
11327
11828
  );
@@ -11369,6 +11870,8 @@ var Footprint = class _Footprint extends SxClass {
11369
11870
  footprint._sxNetTiePadGroups = propertyMap.net_tie_pad_groups;
11370
11871
  footprint._sxSheetname = propertyMap.sheetname;
11371
11872
  footprint._sxSheetfile = propertyMap.sheetfile;
11873
+ footprint._sxUnits = propertyMap.units;
11874
+ footprint._sxDuplicatePadNumbersAreJumpers = propertyMap.duplicate_pad_numbers_are_jumpers;
11372
11875
  footprint._sxEmbeddedFonts = propertyMap.embedded_fonts;
11373
11876
  footprint._sxEmbeddedFiles = propertyMap.embedded_files;
11374
11877
  footprint._properties = arrayPropertyMap.property ?? [];
@@ -11379,8 +11882,10 @@ var Footprint = class _Footprint extends SxClass {
11379
11882
  footprint._fpCircles = arrayPropertyMap["fp_circle"] ?? [];
11380
11883
  footprint._fpArcs = arrayPropertyMap["fp_arc"] ?? [];
11381
11884
  footprint._fpPolys = arrayPropertyMap["fp_poly"] ?? [];
11885
+ footprint._points = arrayPropertyMap.point ?? [];
11382
11886
  footprint._fpPads = arrayPropertyMap.pad ?? [];
11383
11887
  footprint._models = arrayPropertyMap.model ?? [];
11888
+ footprint._zones = arrayPropertyMap.zone ?? [];
11384
11889
  for (const flag of pendingFlags) {
11385
11890
  if (flag === "locked") {
11386
11891
  if (footprint._sxLocked) {
@@ -11697,6 +12202,22 @@ var Footprint = class _Footprint extends SxClass {
11697
12202
  }
11698
12203
  this._sxSheetfile = value instanceof FootprintSheetfile ? value : new FootprintSheetfile(value);
11699
12204
  }
12205
+ get units() {
12206
+ return this._sxUnits;
12207
+ }
12208
+ set units(value) {
12209
+ this._sxUnits = value;
12210
+ }
12211
+ get duplicatePadNumbersAreJumpers() {
12212
+ return this._sxDuplicatePadNumbersAreJumpers?.value;
12213
+ }
12214
+ set duplicatePadNumbersAreJumpers(value) {
12215
+ if (value === void 0) {
12216
+ this._sxDuplicatePadNumbersAreJumpers = void 0;
12217
+ return;
12218
+ }
12219
+ this._sxDuplicatePadNumbersAreJumpers = value instanceof FootprintDuplicatePadNumbersAreJumpers ? value : new FootprintDuplicatePadNumbersAreJumpers(value);
12220
+ }
11700
12221
  get embeddedFonts() {
11701
12222
  return this._sxEmbeddedFonts;
11702
12223
  }
@@ -11757,6 +12278,12 @@ var Footprint = class _Footprint extends SxClass {
11757
12278
  set fpPolys(value) {
11758
12279
  this._fpPolys = [...value];
11759
12280
  }
12281
+ get points() {
12282
+ return [...this._points];
12283
+ }
12284
+ set points(value) {
12285
+ this._points = [...value];
12286
+ }
11760
12287
  get fpPads() {
11761
12288
  return [...this._fpPads];
11762
12289
  }
@@ -11769,6 +12296,12 @@ var Footprint = class _Footprint extends SxClass {
11769
12296
  set models(value) {
11770
12297
  this._models = [...value];
11771
12298
  }
12299
+ get zones() {
12300
+ return [...this._zones];
12301
+ }
12302
+ set zones(value) {
12303
+ this._zones = [...value];
12304
+ }
11772
12305
  getChildren() {
11773
12306
  const children = [];
11774
12307
  if (this._sxVersion) children.push(this._sxVersion);
@@ -11794,11 +12327,15 @@ var Footprint = class _Footprint extends SxClass {
11794
12327
  if (this._sxZoneConnect) children.push(this._sxZoneConnect);
11795
12328
  if (this._sxThermalWidth) children.push(this._sxThermalWidth);
11796
12329
  if (this._sxThermalGap) children.push(this._sxThermalGap);
12330
+ if (this._sxSheetname) children.push(this._sxSheetname);
12331
+ if (this._sxSheetfile) children.push(this._sxSheetfile);
12332
+ if (this._sxUnits) children.push(this._sxUnits);
11797
12333
  if (this._sxAttr) children.push(this._sxAttr);
12334
+ if (this._sxDuplicatePadNumbersAreJumpers) {
12335
+ children.push(this._sxDuplicatePadNumbersAreJumpers);
12336
+ }
11798
12337
  if (this._sxPrivateLayers) children.push(this._sxPrivateLayers);
11799
12338
  if (this._sxNetTiePadGroups) children.push(this._sxNetTiePadGroups);
11800
- if (this._sxSheetname) children.push(this._sxSheetname);
11801
- if (this._sxSheetfile) children.push(this._sxSheetfile);
11802
12339
  if (this._sxEmbeddedFonts) children.push(this._sxEmbeddedFonts);
11803
12340
  if (this._sxEmbeddedFiles) children.push(this._sxEmbeddedFiles);
11804
12341
  children.push(...this._properties);
@@ -11809,8 +12346,10 @@ var Footprint = class _Footprint extends SxClass {
11809
12346
  children.push(...this._fpCircles);
11810
12347
  children.push(...this._fpArcs);
11811
12348
  children.push(...this._fpPolys);
12349
+ children.push(...this._points);
11812
12350
  children.push(...this._fpPads);
11813
12351
  children.push(...this._models);
12352
+ children.push(...this._zones);
11814
12353
  return children;
11815
12354
  }
11816
12355
  getString() {
@@ -12443,7 +12982,7 @@ var GrCircleLocked = class _GrCircleLocked extends SxClass {
12443
12982
  SxClass.register(GrCircleLocked);
12444
12983
 
12445
12984
  // lib/sexpr/classes/GrCurve.ts
12446
- var SUPPORTED_TOKENS14 = /* @__PURE__ */ new Set([
12985
+ var SUPPORTED_TOKENS16 = /* @__PURE__ */ new Set([
12447
12986
  "pts",
12448
12987
  "xy",
12449
12988
  "layer",
@@ -12475,12 +13014,12 @@ var GrCurve = class _GrCurve extends SxClass {
12475
13014
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
12476
13015
  const unexpectedTokens = /* @__PURE__ */ new Set();
12477
13016
  for (const token of Object.keys(propertyMap)) {
12478
- if (!SUPPORTED_TOKENS14.has(token)) {
13017
+ if (!SUPPORTED_TOKENS16.has(token)) {
12479
13018
  unexpectedTokens.add(token);
12480
13019
  }
12481
13020
  }
12482
13021
  for (const token of Object.keys(arrayPropertyMap)) {
12483
- if (!SUPPORTED_TOKENS14.has(token)) {
13022
+ if (!SUPPORTED_TOKENS16.has(token)) {
12484
13023
  unexpectedTokens.add(token);
12485
13024
  continue;
12486
13025
  }
@@ -13542,6 +14081,29 @@ var GrTextRenderCachePolygon = class _GrTextRenderCachePolygon extends SxClass {
13542
14081
  };
13543
14082
  SxClass.register(GrTextRenderCachePolygon);
13544
14083
 
14084
+ // lib/sexpr/classes/GrPolyNet.ts
14085
+ var GrPolyNet = class _GrPolyNet extends SxClass {
14086
+ constructor(id) {
14087
+ super();
14088
+ this.id = id;
14089
+ }
14090
+ id;
14091
+ static token = "net";
14092
+ static parentToken = "gr_poly";
14093
+ token = "net";
14094
+ static fromSexprPrimitives(primitiveSexprs) {
14095
+ const id = toNumberValue(primitiveSexprs[0]);
14096
+ if (id === void 0) {
14097
+ throw new Error("gr_poly net requires a numeric id");
14098
+ }
14099
+ return new _GrPolyNet(id);
14100
+ }
14101
+ getString() {
14102
+ return `(net ${this.id})`;
14103
+ }
14104
+ };
14105
+ SxClass.register(GrPolyNet);
14106
+
13545
14107
  // lib/sexpr/classes/GrPoly.ts
13546
14108
  var GrPolyFill = class _GrPolyFill extends SxClass {
13547
14109
  static token = "fill";
@@ -13561,13 +14123,14 @@ var GrPolyFill = class _GrPolyFill extends SxClass {
13561
14123
  }
13562
14124
  };
13563
14125
  SxClass.register(GrPolyFill);
13564
- var SUPPORTED_TOKENS15 = /* @__PURE__ */ new Set([
14126
+ var SUPPORTED_TOKENS17 = /* @__PURE__ */ new Set([
13565
14127
  "pts",
13566
14128
  "xy",
13567
14129
  "layer",
13568
14130
  "width",
13569
14131
  "stroke",
13570
14132
  "fill",
14133
+ "net",
13571
14134
  "uuid"
13572
14135
  ]);
13573
14136
  var GrPoly = class _GrPoly extends SxClass {
@@ -13578,6 +14141,7 @@ var GrPoly = class _GrPoly extends SxClass {
13578
14141
  _sxWidth;
13579
14142
  _sxStroke;
13580
14143
  _sxFill;
14144
+ _sxNet;
13581
14145
  _sxUuid;
13582
14146
  constructor(params = {}) {
13583
14147
  super();
@@ -13586,6 +14150,7 @@ var GrPoly = class _GrPoly extends SxClass {
13586
14150
  if (params.width !== void 0) this.width = params.width;
13587
14151
  if (params.stroke !== void 0) this.stroke = params.stroke;
13588
14152
  if (params.fill !== void 0) this.fill = params.fill;
14153
+ if (params.net !== void 0) this.net = params.net;
13589
14154
  if (params.uuid !== void 0) this.uuid = params.uuid;
13590
14155
  }
13591
14156
  static fromSexprPrimitives(primitiveSexprs) {
@@ -13593,12 +14158,12 @@ var GrPoly = class _GrPoly extends SxClass {
13593
14158
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
13594
14159
  const unexpectedTokens = /* @__PURE__ */ new Set();
13595
14160
  for (const token of Object.keys(propertyMap)) {
13596
- if (!SUPPORTED_TOKENS15.has(token)) {
14161
+ if (!SUPPORTED_TOKENS17.has(token)) {
13597
14162
  unexpectedTokens.add(token);
13598
14163
  }
13599
14164
  }
13600
14165
  for (const token of Object.keys(arrayPropertyMap)) {
13601
- if (!SUPPORTED_TOKENS15.has(token)) {
14166
+ if (!SUPPORTED_TOKENS17.has(token)) {
13602
14167
  unexpectedTokens.add(token);
13603
14168
  }
13604
14169
  if (token !== "xy" && arrayPropertyMap[token].length > 1) {
@@ -13630,6 +14195,7 @@ var GrPoly = class _GrPoly extends SxClass {
13630
14195
  grPoly._sxWidth = propertyMap.width;
13631
14196
  grPoly._sxStroke = propertyMap.stroke;
13632
14197
  grPoly._sxFill = propertyMap.fill;
14198
+ grPoly._sxNet = propertyMap.net;
13633
14199
  grPoly._sxUuid = propertyMap.uuid;
13634
14200
  for (const primitive of primitiveSexprs) {
13635
14201
  if (!Array.isArray(primitive) || primitive.length === 0) {
@@ -13643,7 +14209,7 @@ var GrPoly = class _GrPoly extends SxClass {
13643
14209
  `gr_poly child token must be a string, received: ${JSON.stringify(token)}`
13644
14210
  );
13645
14211
  }
13646
- if (!SUPPORTED_TOKENS15.has(token)) {
14212
+ if (!SUPPORTED_TOKENS17.has(token)) {
13647
14213
  throw new Error(
13648
14214
  `Unsupported child token inside gr_poly expression: ${token}`
13649
14215
  );
@@ -13753,6 +14319,16 @@ var GrPoly = class _GrPoly extends SxClass {
13753
14319
  get uuidClass() {
13754
14320
  return this._sxUuid;
13755
14321
  }
14322
+ get net() {
14323
+ return this._sxNet?.id;
14324
+ }
14325
+ set net(value) {
14326
+ if (value === void 0) {
14327
+ this._sxNet = void 0;
14328
+ return;
14329
+ }
14330
+ this._sxNet = value instanceof GrPolyNet ? value : new GrPolyNet(value);
14331
+ }
13756
14332
  getChildren() {
13757
14333
  const children = [];
13758
14334
  if (this._sxPts) children.push(this._sxPts);
@@ -13760,6 +14336,7 @@ var GrPoly = class _GrPoly extends SxClass {
13760
14336
  if (this._sxWidth) children.push(this._sxWidth);
13761
14337
  if (this._sxFill) children.push(this._sxFill);
13762
14338
  if (this._sxLayer) children.push(this._sxLayer);
14339
+ if (this._sxNet) children.push(this._sxNet);
13763
14340
  if (this._sxUuid) children.push(this._sxUuid);
13764
14341
  return children;
13765
14342
  }
@@ -13823,7 +14400,7 @@ var DimensionFormatUnitsFormat = class extends SxPrimitiveNumber {
13823
14400
  SxClass.register(DimensionFormatUnitsFormat);
13824
14401
 
13825
14402
  // lib/sexpr/classes/DimensionFormat.ts
13826
- var SUPPORTED_TOKENS16 = /* @__PURE__ */ new Set([
14403
+ var SUPPORTED_TOKENS18 = /* @__PURE__ */ new Set([
13827
14404
  "prefix",
13828
14405
  "suffix",
13829
14406
  "units",
@@ -13847,7 +14424,7 @@ var DimensionFormat = class _DimensionFormat extends SxClass {
13847
14424
  const format = new _DimensionFormat();
13848
14425
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
13849
14426
  for (const token of Object.keys(arrayPropertyMap)) {
13850
- if (!SUPPORTED_TOKENS16.has(token)) {
14427
+ if (!SUPPORTED_TOKENS18.has(token)) {
13851
14428
  throw new Error(`format does not support child token "${token}"`);
13852
14429
  }
13853
14430
  if (arrayPropertyMap[token].length > 1) {
@@ -14007,7 +14584,7 @@ var DimensionTextPositionMode = class extends SxPrimitiveNumber {
14007
14584
  SxClass.register(DimensionTextPositionMode);
14008
14585
 
14009
14586
  // lib/sexpr/classes/DimensionStyle.ts
14010
- var SUPPORTED_TOKENS17 = /* @__PURE__ */ new Set([
14587
+ var SUPPORTED_TOKENS19 = /* @__PURE__ */ new Set([
14011
14588
  "thickness",
14012
14589
  "arrow_length",
14013
14590
  "text_position_mode",
@@ -14033,7 +14610,7 @@ var DimensionStyle = class _DimensionStyle extends SxClass {
14033
14610
  const style = new _DimensionStyle();
14034
14611
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
14035
14612
  for (const token of Object.keys(arrayPropertyMap)) {
14036
- if (!SUPPORTED_TOKENS17.has(token)) {
14613
+ if (!SUPPORTED_TOKENS19.has(token)) {
14037
14614
  throw new Error(`style does not support child token "${token}"`);
14038
14615
  }
14039
14616
  if (arrayPropertyMap[token].length > 1) {
@@ -14092,7 +14669,7 @@ var DimensionType = class extends SxPrimitiveString {
14092
14669
  SxClass.register(DimensionType);
14093
14670
 
14094
14671
  // lib/sexpr/classes/Dimension.ts
14095
- var SUPPORTED_TOKENS18 = /* @__PURE__ */ new Set([
14672
+ var SUPPORTED_TOKENS20 = /* @__PURE__ */ new Set([
14096
14673
  "locked",
14097
14674
  "type",
14098
14675
  "layer",
@@ -14124,7 +14701,7 @@ var Dimension = class _Dimension extends SxClass {
14124
14701
  const dimension = new _Dimension();
14125
14702
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(primitiveSexprs, this.token);
14126
14703
  for (const token of Object.keys(arrayPropertyMap)) {
14127
- if (!SUPPORTED_TOKENS18.has(token)) {
14704
+ if (!SUPPORTED_TOKENS20.has(token)) {
14128
14705
  throw new Error(`dimension does not support child token "${token}"`);
14129
14706
  }
14130
14707
  if (arrayPropertyMap[token].length > 1) {
@@ -14195,7 +14772,7 @@ var TargetSize = class extends SxPrimitiveNumber {
14195
14772
  SxClass.register(TargetSize);
14196
14773
 
14197
14774
  // lib/sexpr/classes/Target.ts
14198
- var SUPPORTED_TOKENS19 = /* @__PURE__ */ new Set(["at", "size", "width", "layer", "uuid"]);
14775
+ var SUPPORTED_TOKENS21 = /* @__PURE__ */ new Set(["at", "size", "width", "layer", "uuid"]);
14199
14776
  var Target = class _Target extends SxClass {
14200
14777
  static token = "target";
14201
14778
  static parentToken = "kicad_pcb";
@@ -14218,7 +14795,7 @@ var Target = class _Target extends SxClass {
14218
14795
  const target = new _Target(rawShape);
14219
14796
  const { propertyMap, arrayPropertyMap } = SxClass.parsePrimitivesToClassProperties(rest, this.token);
14220
14797
  for (const token of Object.keys(arrayPropertyMap)) {
14221
- if (!SUPPORTED_TOKENS19.has(token)) {
14798
+ if (!SUPPORTED_TOKENS21.has(token)) {
14222
14799
  throw new Error(`target does not support child token "${token}"`);
14223
14800
  }
14224
14801
  if (arrayPropertyMap[token].length > 1) {
@@ -14729,19 +15306,27 @@ var SegmentNet = class _SegmentNet extends SxClass {
14729
15306
  token = "net";
14730
15307
  _id;
14731
15308
  _name;
14732
- constructor(id, name) {
15309
+ constructor(idOrName, name) {
14733
15310
  super();
14734
- this._id = id;
14735
- this._name = name;
15311
+ if (typeof idOrName === "number") {
15312
+ this._id = idOrName;
15313
+ this._name = name;
15314
+ return;
15315
+ }
15316
+ this._name = idOrName;
14736
15317
  }
14737
15318
  static fromSexprPrimitives(primitiveSexprs) {
14738
15319
  const [rawId, rawName] = primitiveSexprs;
14739
15320
  const id = toNumberValue(rawId);
14740
- if (id === void 0) {
14741
- throw new Error("net expects a numeric identifier");
15321
+ if (id !== void 0) {
15322
+ const name2 = rawName === void 0 ? void 0 : toStringValue(rawName);
15323
+ return new _SegmentNet(id, name2 ?? void 0);
14742
15324
  }
14743
- const name = rawName === void 0 ? void 0 : toStringValue(rawName);
14744
- return new _SegmentNet(id, name ?? void 0);
15325
+ const name = toStringValue(rawId);
15326
+ if (name === void 0) {
15327
+ throw new Error("net expects a numeric identifier or string name");
15328
+ }
15329
+ return new _SegmentNet(name);
14745
15330
  }
14746
15331
  get id() {
14747
15332
  return this._id;
@@ -14762,6 +15347,9 @@ var SegmentNet = class _SegmentNet extends SxClass {
14762
15347
  return [];
14763
15348
  }
14764
15349
  getString() {
15350
+ if (this._id === void 0) {
15351
+ return `(net ${quoteSExprString(this._name ?? "")})`;
15352
+ }
14765
15353
  const namePart = this._name ? ` ${quoteSExprString(this._name)}` : "";
14766
15354
  return `(net ${this._id}${namePart})`;
14767
15355
  }
@@ -15002,36 +15590,6 @@ var Segment = class _Segment extends SxClass {
15002
15590
  };
15003
15591
  SxClass.register(Segment);
15004
15592
 
15005
- // lib/sexpr/classes/Zone.ts
15006
- var Zone = class _Zone extends SxClass {
15007
- static token = "zone";
15008
- token = "zone";
15009
- _rawChildren = [];
15010
- static fromSexprPrimitives(primitiveSexprs) {
15011
- const zone = new _Zone();
15012
- zone._rawChildren = [...primitiveSexprs];
15013
- return zone;
15014
- }
15015
- get rawChildren() {
15016
- return [...this._rawChildren];
15017
- }
15018
- set rawChildren(children) {
15019
- this._rawChildren = [...children];
15020
- }
15021
- getChildren() {
15022
- return [];
15023
- }
15024
- getString() {
15025
- const lines = ["(zone"];
15026
- for (const arg of this._rawChildren) {
15027
- lines.push(` ${printSExpr(arg)}`);
15028
- }
15029
- lines.push(")");
15030
- return lines.join("\n");
15031
- }
15032
- };
15033
- SxClass.register(Zone);
15034
-
15035
15593
  // lib/sexpr/classes/Layers.ts
15036
15594
  var Layers = class _Layers extends SxClass {
15037
15595
  static token = "layers";
@@ -15177,6 +15735,84 @@ var CoordinateProperty = class extends SxClass {
15177
15735
  }
15178
15736
  };
15179
15737
 
15738
+ // lib/sexpr/classes/Setup/Capping.ts
15739
+ var Capping = class extends SingleValueProperty {
15740
+ static token = "capping";
15741
+ token = "capping";
15742
+ };
15743
+ SxClass.register(Capping);
15744
+
15745
+ // lib/sexpr/classes/Setup/Back.ts
15746
+ var Back = class extends SingleValueProperty {
15747
+ static token = "back";
15748
+ token = "back";
15749
+ };
15750
+ SxClass.register(Back);
15751
+
15752
+ // lib/sexpr/classes/Setup/Front.ts
15753
+ var Front = class extends SingleValueProperty {
15754
+ static token = "front";
15755
+ token = "front";
15756
+ };
15757
+ SxClass.register(Front);
15758
+
15759
+ // lib/sexpr/classes/Setup/Covering.ts
15760
+ var Covering = class _Covering extends SxClass {
15761
+ static token = "covering";
15762
+ token = "covering";
15763
+ _sxFront;
15764
+ _sxBack;
15765
+ constructor(params = {}) {
15766
+ super();
15767
+ if (params.front !== void 0) this.front = params.front;
15768
+ if (params.back !== void 0) this.back = params.back;
15769
+ }
15770
+ static fromSexprPrimitives(primitiveSexprs) {
15771
+ const { propertyMap } = SxClass.parsePrimitivesToClassProperties(
15772
+ primitiveSexprs,
15773
+ this.token
15774
+ );
15775
+ return new _Covering({
15776
+ front: propertyMap.front,
15777
+ back: propertyMap.back
15778
+ });
15779
+ }
15780
+ get front() {
15781
+ return this._sxFront?.value;
15782
+ }
15783
+ set front(value) {
15784
+ if (value === void 0) {
15785
+ this._sxFront = void 0;
15786
+ return;
15787
+ }
15788
+ this._sxFront = value instanceof Front ? value : new Front(value);
15789
+ }
15790
+ get back() {
15791
+ return this._sxBack?.value;
15792
+ }
15793
+ set back(value) {
15794
+ if (value === void 0) {
15795
+ this._sxBack = void 0;
15796
+ return;
15797
+ }
15798
+ this._sxBack = value instanceof Back ? value : new Back(value);
15799
+ }
15800
+ getChildren() {
15801
+ const children = [];
15802
+ if (this._sxFront) children.push(this._sxFront);
15803
+ if (this._sxBack) children.push(this._sxBack);
15804
+ return children;
15805
+ }
15806
+ };
15807
+ SxClass.register(Covering);
15808
+
15809
+ // lib/sexpr/classes/Setup/Filling.ts
15810
+ var Filling = class extends SingleValueProperty {
15811
+ static token = "filling";
15812
+ token = "filling";
15813
+ };
15814
+ SxClass.register(Filling);
15815
+
15180
15816
  // lib/sexpr/classes/Setup/PcbPlotParamsBase.ts
15181
15817
  var PlotParamProperty = class extends SingleValueProperty {
15182
15818
  static parentToken = "pcbplotparams";
@@ -15963,6 +16599,56 @@ var PcbPlotParams = class _PcbPlotParams extends SxClass {
15963
16599
  };
15964
16600
  SxClass.register(PcbPlotParams);
15965
16601
 
16602
+ // lib/sexpr/classes/Setup/Plugging.ts
16603
+ var Plugging = class _Plugging extends SxClass {
16604
+ static token = "plugging";
16605
+ token = "plugging";
16606
+ _sxFront;
16607
+ _sxBack;
16608
+ constructor(params = {}) {
16609
+ super();
16610
+ if (params.front !== void 0) this.front = params.front;
16611
+ if (params.back !== void 0) this.back = params.back;
16612
+ }
16613
+ static fromSexprPrimitives(primitiveSexprs) {
16614
+ const { propertyMap } = SxClass.parsePrimitivesToClassProperties(
16615
+ primitiveSexprs,
16616
+ this.token
16617
+ );
16618
+ return new _Plugging({
16619
+ front: propertyMap.front,
16620
+ back: propertyMap.back
16621
+ });
16622
+ }
16623
+ get front() {
16624
+ return this._sxFront?.value;
16625
+ }
16626
+ set front(value) {
16627
+ if (value === void 0) {
16628
+ this._sxFront = void 0;
16629
+ return;
16630
+ }
16631
+ this._sxFront = value instanceof Front ? value : new Front(value);
16632
+ }
16633
+ get back() {
16634
+ return this._sxBack?.value;
16635
+ }
16636
+ set back(value) {
16637
+ if (value === void 0) {
16638
+ this._sxBack = void 0;
16639
+ return;
16640
+ }
16641
+ this._sxBack = value instanceof Back ? value : new Back(value);
16642
+ }
16643
+ getChildren() {
16644
+ const children = [];
16645
+ if (this._sxFront) children.push(this._sxFront);
16646
+ if (this._sxBack) children.push(this._sxBack);
16647
+ return children;
16648
+ }
16649
+ };
16650
+ SxClass.register(Plugging);
16651
+
15966
16652
  // lib/sexpr/classes/Setup/setupStringProperties.ts
15967
16653
  var SetupStringProperty = class extends SingleValueProperty {
15968
16654
  static parentToken = "setup";
@@ -15992,11 +16678,23 @@ var SetupTenting = class _SetupTenting extends SxClass {
15992
16678
  static parentToken = "setup";
15993
16679
  token = "tenting";
15994
16680
  _sides = [];
16681
+ _sxFront;
16682
+ _sxBack;
15995
16683
  constructor(sides = []) {
15996
16684
  super();
15997
16685
  this.sides = sides;
15998
16686
  }
15999
16687
  static fromSexprPrimitives(primitiveSexprs) {
16688
+ if (primitiveSexprs.some((primitive) => Array.isArray(primitive))) {
16689
+ const { propertyMap } = SxClass.parsePrimitivesToClassProperties(
16690
+ primitiveSexprs,
16691
+ this.token
16692
+ );
16693
+ const tenting = new _SetupTenting();
16694
+ tenting._sxFront = propertyMap.front;
16695
+ tenting._sxBack = propertyMap.back;
16696
+ return tenting;
16697
+ }
16000
16698
  const sides = primitiveSexprs.map((primitive) => toStringValue(primitive)).filter((value) => value !== void 0);
16001
16699
  return new _SetupTenting(sides);
16002
16700
  }
@@ -16007,9 +16705,15 @@ var SetupTenting = class _SetupTenting extends SxClass {
16007
16705
  this._sides = sides.map((side) => String(side));
16008
16706
  }
16009
16707
  getChildren() {
16010
- return [];
16708
+ const children = [];
16709
+ if (this._sxFront) children.push(this._sxFront);
16710
+ if (this._sxBack) children.push(this._sxBack);
16711
+ return children;
16011
16712
  }
16012
16713
  getString() {
16714
+ if (this._sxFront || this._sxBack) {
16715
+ return super.getString();
16716
+ }
16013
16717
  if (this._sides.length === 0) {
16014
16718
  return "(tenting)";
16015
16719
  }
@@ -16562,6 +17266,10 @@ var TOKEN_TO_KEY2 = {
16562
17266
  pad_drill: "padDrill",
16563
17267
  allow_soldermask_bridges_in_footprints: "allowSoldermaskBridgesInFootprints",
16564
17268
  tenting: "tenting",
17269
+ covering: "covering",
17270
+ plugging: "plugging",
17271
+ capping: "capping",
17272
+ filling: "filling",
16565
17273
  aux_axis_origin: "auxAxisOrigin",
16566
17274
  grid_origin: "gridOrigin",
16567
17275
  visible_elements: "visibleElements",
@@ -16599,6 +17307,10 @@ var SETUP_CHILD_ORDER = [
16599
17307
  "padDrill",
16600
17308
  "allowSoldermaskBridgesInFootprints",
16601
17309
  "tenting",
17310
+ "covering",
17311
+ "plugging",
17312
+ "capping",
17313
+ "filling",
16602
17314
  "auxAxisOrigin",
16603
17315
  "gridOrigin",
16604
17316
  "visibleElements",
@@ -16893,6 +17605,36 @@ var Setup = class _Setup extends SxClass {
16893
17605
  }
16894
17606
  this.setProperty("tenting", new SetupTenting(sides));
16895
17607
  }
17608
+ get covering() {
17609
+ return this.getPropertyInstance("covering", Covering);
17610
+ }
17611
+ set covering(value) {
17612
+ this.setProperty("covering", value);
17613
+ }
17614
+ get plugging() {
17615
+ return this.getPropertyInstance("plugging", Plugging);
17616
+ }
17617
+ set plugging(value) {
17618
+ this.setProperty("plugging", value);
17619
+ }
17620
+ get capping() {
17621
+ return this.getPropertyInstance("capping", Capping)?.value;
17622
+ }
17623
+ set capping(value) {
17624
+ this.setProperty(
17625
+ "capping",
17626
+ value === void 0 ? void 0 : new Capping(value)
17627
+ );
17628
+ }
17629
+ get filling() {
17630
+ return this.getPropertyInstance("filling", Filling)?.value;
17631
+ }
17632
+ set filling(value) {
17633
+ this.setProperty(
17634
+ "filling",
17635
+ value === void 0 ? void 0 : new Filling(value)
17636
+ );
17637
+ }
16896
17638
  get auxAxisOrigin() {
16897
17639
  const origin = this.getPropertyInstance("auxAxisOrigin", SetupAuxAxisOrigin);
16898
17640
  if (!origin) return void 0;
@@ -17239,18 +17981,26 @@ var ViaNet = class _ViaNet extends SxClass {
17239
17981
  token = "net";
17240
17982
  _id;
17241
17983
  _name;
17242
- constructor(id, name) {
17984
+ constructor(idOrName, name) {
17243
17985
  super();
17244
- this._id = id;
17245
- this._name = name;
17986
+ if (typeof idOrName === "number") {
17987
+ this._id = idOrName;
17988
+ this._name = name;
17989
+ return;
17990
+ }
17991
+ this._name = idOrName;
17246
17992
  }
17247
17993
  static fromSexprPrimitives(primitiveSexprs) {
17248
17994
  const id = toNumberValue(primitiveSexprs[0]);
17249
- if (id === void 0) {
17250
- throw new Error("via net requires a numeric id");
17995
+ if (id !== void 0) {
17996
+ const name2 = primitiveSexprs.length > 1 ? toStringValue(primitiveSexprs[1]) : void 0;
17997
+ return new _ViaNet(id, name2);
17998
+ }
17999
+ const name = toStringValue(primitiveSexprs[0]);
18000
+ if (name === void 0) {
18001
+ throw new Error("via net requires a numeric id or string name");
17251
18002
  }
17252
- const name = primitiveSexprs.length > 1 ? toStringValue(primitiveSexprs[1]) : void 0;
17253
- return new _ViaNet(id, name);
18003
+ return new _ViaNet(name);
17254
18004
  }
17255
18005
  get id() {
17256
18006
  return this._id;
@@ -17268,6 +18018,9 @@ var ViaNet = class _ViaNet extends SxClass {
17268
18018
  return [];
17269
18019
  }
17270
18020
  getString() {
18021
+ if (this._id === void 0) {
18022
+ return `(net ${quoteSExprString(this._name ?? "")})`;
18023
+ }
17271
18024
  if (this._name !== void 0) {
17272
18025
  return `(net ${this._id} ${quoteSExprString(this._name)})`;
17273
18026
  }
@@ -17299,6 +18052,10 @@ var Via = class _Via extends SxClass {
17299
18052
  _sxUuid;
17300
18053
  _sxTstamp;
17301
18054
  _sxTeardrops;
18055
+ _sxCapping;
18056
+ _sxCovering;
18057
+ _sxPlugging;
18058
+ _sxFilling;
17302
18059
  constructor(params = {}) {
17303
18060
  super();
17304
18061
  if (params.type !== void 0) this.type = params.type;
@@ -17316,6 +18073,10 @@ var Via = class _Via extends SxClass {
17316
18073
  if (params.uuid !== void 0) this.uuid = params.uuid;
17317
18074
  if (params.tstamp !== void 0) this.tstamp = params.tstamp;
17318
18075
  if (params.teardrops !== void 0) this.teardrops = params.teardrops;
18076
+ if (params.capping !== void 0) this.capping = params.capping;
18077
+ if (params.covering !== void 0) this.covering = params.covering;
18078
+ if (params.plugging !== void 0) this.plugging = params.plugging;
18079
+ if (params.filling !== void 0) this.filling = params.filling;
17319
18080
  }
17320
18081
  static fromSexprPrimitives(primitiveSexprs) {
17321
18082
  const via = new _Via();
@@ -17422,6 +18183,54 @@ var Via = class _Via extends SxClass {
17422
18183
  this._sxTeardrops = PadTeardrops.fromSexprPrimitives(args);
17423
18184
  return;
17424
18185
  }
18186
+ case "capping": {
18187
+ const parsed = SxClass.parsePrimitiveSexpr(
18188
+ ["capping", ...args],
18189
+ {
18190
+ parentToken: this.token
18191
+ }
18192
+ );
18193
+ if (!(parsed instanceof Capping)) {
18194
+ throw new Error("via failed to parse capping child");
18195
+ }
18196
+ this._sxCapping = parsed;
18197
+ return;
18198
+ }
18199
+ case "covering": {
18200
+ const parsed = SxClass.parsePrimitiveSexpr(
18201
+ ["covering", ...args],
18202
+ { parentToken: this.token }
18203
+ );
18204
+ if (!(parsed instanceof Covering)) {
18205
+ throw new Error("via failed to parse covering child");
18206
+ }
18207
+ this._sxCovering = parsed;
18208
+ return;
18209
+ }
18210
+ case "plugging": {
18211
+ const parsed = SxClass.parsePrimitiveSexpr(
18212
+ ["plugging", ...args],
18213
+ { parentToken: this.token }
18214
+ );
18215
+ if (!(parsed instanceof Plugging)) {
18216
+ throw new Error("via failed to parse plugging child");
18217
+ }
18218
+ this._sxPlugging = parsed;
18219
+ return;
18220
+ }
18221
+ case "filling": {
18222
+ const parsed = SxClass.parsePrimitiveSexpr(
18223
+ ["filling", ...args],
18224
+ {
18225
+ parentToken: this.token
18226
+ }
18227
+ );
18228
+ if (!(parsed instanceof Filling)) {
18229
+ throw new Error("via failed to parse filling child");
18230
+ }
18231
+ this._sxFilling = parsed;
18232
+ return;
18233
+ }
17425
18234
  case "uuid": {
17426
18235
  const value = toStringValue(args[0]);
17427
18236
  if (value === void 0) {
@@ -17530,6 +18339,38 @@ var Via = class _Via extends SxClass {
17530
18339
  set teardrops(value) {
17531
18340
  this._sxTeardrops = value;
17532
18341
  }
18342
+ get capping() {
18343
+ return this._sxCapping?.value;
18344
+ }
18345
+ set capping(value) {
18346
+ if (value === void 0) {
18347
+ this._sxCapping = void 0;
18348
+ return;
18349
+ }
18350
+ this._sxCapping = value instanceof Capping ? value : new Capping(value);
18351
+ }
18352
+ get covering() {
18353
+ return this._sxCovering;
18354
+ }
18355
+ set covering(value) {
18356
+ this._sxCovering = value;
18357
+ }
18358
+ get plugging() {
18359
+ return this._sxPlugging;
18360
+ }
18361
+ set plugging(value) {
18362
+ this._sxPlugging = value;
18363
+ }
18364
+ get filling() {
18365
+ return this._sxFilling?.value;
18366
+ }
18367
+ set filling(value) {
18368
+ if (value === void 0) {
18369
+ this._sxFilling = void 0;
18370
+ return;
18371
+ }
18372
+ this._sxFilling = value instanceof Filling ? value : new Filling(value);
18373
+ }
17533
18374
  get tstamp() {
17534
18375
  return this._sxTstamp;
17535
18376
  }
@@ -17544,6 +18385,10 @@ var Via = class _Via extends SxClass {
17544
18385
  const children = [];
17545
18386
  if (this._sxAt) children.push(this._sxAt);
17546
18387
  if (this._sxLayers) children.push(this._sxLayers);
18388
+ if (this._sxCapping) children.push(this._sxCapping);
18389
+ if (this._sxCovering) children.push(this._sxCovering);
18390
+ if (this._sxPlugging) children.push(this._sxPlugging);
18391
+ if (this._sxFilling) children.push(this._sxFilling);
17547
18392
  if (this._sxNet) children.push(this._sxNet);
17548
18393
  if (this._sxUuid) children.push(this._sxUuid);
17549
18394
  if (this._sxTstamp) children.push(this._sxTstamp);
@@ -17563,6 +18408,10 @@ var Via = class _Via extends SxClass {
17563
18408
  if (this._size !== void 0) lines.push(` (size ${this._size})`);
17564
18409
  if (this._drill !== void 0) lines.push(` (drill ${this._drill})`);
17565
18410
  if (this._sxLayers) lines.push(this._sxLayers.getStringIndented());
18411
+ if (this._sxCapping) lines.push(this._sxCapping.getStringIndented());
18412
+ if (this._sxCovering) lines.push(this._sxCovering.getStringIndented());
18413
+ if (this._sxPlugging) lines.push(this._sxPlugging.getStringIndented());
18414
+ if (this._sxFilling) lines.push(this._sxFilling.getStringIndented());
17566
18415
  if (this._sxNet) lines.push(this._sxNet.getStringIndented());
17567
18416
  if (this._sxUuid) lines.push(this._sxUuid.getStringIndented());
17568
18417
  if (this._sxTstamp) lines.push(this._sxTstamp.getStringIndented());
@@ -17989,10 +18838,13 @@ var parseKicadMod = (sexpr) => {
17989
18838
  };
17990
18839
  export {
17991
18840
  At,
18841
+ Back,
17992
18842
  Bus,
17993
18843
  BusEntry,
17994
18844
  BusEntrySize,
18845
+ Capping,
17995
18846
  Color,
18847
+ Covering,
17996
18848
  Dimension,
17997
18849
  DimensionFormat,
17998
18850
  DimensionStyle,
@@ -18006,12 +18858,14 @@ export {
18006
18858
  EmbeddedFonts,
18007
18859
  ExcludeFromSim,
18008
18860
  FieldsAutoplaced,
18861
+ Filling,
18009
18862
  Footprint,
18010
18863
  FootprintAttr,
18011
18864
  FootprintAutoplaceCost180,
18012
18865
  FootprintAutoplaceCost90,
18013
18866
  FootprintClearance,
18014
18867
  FootprintDescr,
18868
+ FootprintDuplicatePadNumbersAreJumpers,
18015
18869
  FootprintGenerator,
18016
18870
  FootprintGeneratorVersion,
18017
18871
  FootprintLocked,
@@ -18020,6 +18874,8 @@ export {
18020
18874
  FootprintPad,
18021
18875
  FootprintPath,
18022
18876
  FootprintPlaced,
18877
+ FootprintPoint,
18878
+ FootprintPointSize,
18023
18879
  FootprintPrivateLayers,
18024
18880
  FootprintSheetfile,
18025
18881
  FootprintSheetname,
@@ -18030,6 +18886,10 @@ export {
18030
18886
  FootprintTedit,
18031
18887
  FootprintThermalGap,
18032
18888
  FootprintThermalWidth,
18889
+ FootprintUnit,
18890
+ FootprintUnitName,
18891
+ FootprintUnitPins,
18892
+ FootprintUnits,
18033
18893
  FootprintVersion,
18034
18894
  FootprintZoneConnect,
18035
18895
  FpArc,
@@ -18058,6 +18918,7 @@ export {
18058
18918
  FpTextBoxAngle,
18059
18919
  FpTextBoxEnd,
18060
18920
  FpTextBoxStart,
18921
+ Front,
18061
18922
  Generated,
18062
18923
  GlobalLabel,
18063
18924
  GrArc,
@@ -18076,6 +18937,7 @@ export {
18076
18937
  GrLineStart,
18077
18938
  GrPoly,
18078
18939
  GrPolyFill,
18940
+ GrPolyNet,
18079
18941
  GrRect,
18080
18942
  GrRectEnd,
18081
18943
  GrRectFill,
@@ -18100,6 +18962,7 @@ export {
18100
18962
  KicadSchVersion,
18101
18963
  KicadSymbolLib,
18102
18964
  KicadSymbolLibGenerator,
18965
+ KicadSymbolLibGeneratorVersion,
18103
18966
  KicadSymbolLibVersion,
18104
18967
  Label,
18105
18968
  Layer,
@@ -18200,6 +19063,7 @@ export {
18200
19063
  PlotParamUseGerberAttributes,
18201
19064
  PlotParamUseGerberExtensions,
18202
19065
  PlotParamViaOnMask,
19066
+ Plugging,
18203
19067
  Polyline,
18204
19068
  Property,
18205
19069
  PropertyHide,
@@ -18211,8 +19075,10 @@ export {
18211
19075
  PtsArcStart,
18212
19076
  RenderCache,
18213
19077
  SchematicPolyline,
19078
+ SchematicRectangle,
18214
19079
  SchematicSymbol,
18215
19080
  SchematicText,
19081
+ SchematicTextBox,
18216
19082
  Segment,
18217
19083
  SegmentEnd,
18218
19084
  SegmentLocked,
@@ -18299,6 +19165,7 @@ export {
18299
19165
  SymbolInstances,
18300
19166
  SymbolInstancesProject,
18301
19167
  SymbolLibId,
19168
+ SymbolLibName,
18302
19169
  SymbolPin,
18303
19170
  SymbolPinLength,
18304
19171
  SymbolPinName,
@@ -18318,8 +19185,11 @@ export {
18318
19185
  SymbolRectangleFill,
18319
19186
  SymbolRectangleStart,
18320
19187
  SymbolText,
19188
+ SymbolTextBox,
18321
19189
  SymbolUnit,
18322
19190
  Target,
19191
+ TextBoxFill,
19192
+ TextBoxSize,
18323
19193
  TextEffects,
18324
19194
  TextEffectsFont,
18325
19195
  TextEffectsFontBold,