@tscircuit/props 0.0.489 → 0.0.491

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/README.md CHANGED
@@ -1887,6 +1887,7 @@ export interface PlatformConfig {
1887
1887
  routingDisabled?: boolean;
1888
1888
  schematicDisabled?: boolean;
1889
1889
  partsEngineDisabled?: boolean;
1890
+ drcChecksDisabled?: boolean;
1890
1891
  netlistDrcChecksDisabled?: boolean;
1891
1892
  routingDrcChecksDisabled?: boolean;
1892
1893
  placementDrcChecksDisabled?: boolean;
package/dist/index.d.ts CHANGED
@@ -64284,7 +64284,7 @@ interface HoleWithPolygonPadPlatedHoleProps extends Omit<PcbLayoutProps, "pcbRot
64284
64284
  coveredWithSolderMask?: boolean;
64285
64285
  }
64286
64286
  type PlatedHoleProps = CirclePlatedHoleProps | OvalPlatedHoleProps | PillPlatedHoleProps | CircularHoleWithRectPlatedProps | PillWithRectPadPlatedHoleProps | HoleWithPolygonPadPlatedHoleProps;
64287
- declare const platedHoleProps: z.ZodEffects<z.ZodDiscriminatedUnion<"shape", [z.ZodObject<Omit<{
64287
+ declare const platedHoleProps: z.ZodEffects<z.ZodEffects<z.ZodDiscriminatedUnion<"shape", [z.ZodObject<Omit<{
64288
64288
  pcbX: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>]>>;
64289
64289
  pcbY: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>]>>;
64290
64290
  pcbLeftEdgeX: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>]>>;
@@ -65846,7 +65846,277 @@ declare const platedHoleProps: z.ZodEffects<z.ZodDiscriminatedUnion<"shape", [z.
65846
65846
  coveredWithSolderMask?: boolean | undefined;
65847
65847
  holeWidth?: string | number | undefined;
65848
65848
  holeHeight?: string | number | undefined;
65849
- }>;
65849
+ }>, {
65850
+ shape: "circle";
65851
+ holeDiameter: number;
65852
+ outerDiameter: number;
65853
+ name?: string | undefined;
65854
+ pcbX?: string | number | undefined;
65855
+ pcbY?: string | number | undefined;
65856
+ pcbLeftEdgeX?: string | number | undefined;
65857
+ pcbRightEdgeX?: string | number | undefined;
65858
+ pcbTopEdgeY?: string | number | undefined;
65859
+ pcbBottomEdgeY?: string | number | undefined;
65860
+ pcbOffsetX?: number | undefined;
65861
+ pcbOffsetY?: number | undefined;
65862
+ pcbPositionAnchor?: string | undefined;
65863
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
65864
+ shouldBeOnEdgeOfBoard?: boolean | undefined;
65865
+ pcbMarginTop?: number | undefined;
65866
+ pcbMarginRight?: number | undefined;
65867
+ pcbMarginBottom?: number | undefined;
65868
+ pcbMarginLeft?: number | undefined;
65869
+ pcbMarginX?: number | undefined;
65870
+ pcbMarginY?: number | undefined;
65871
+ pcbStyle?: {
65872
+ silkscreenFontSize?: number | undefined;
65873
+ viaPadDiameter?: number | undefined;
65874
+ viaHoleDiameter?: number | undefined;
65875
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
65876
+ offsetX: number;
65877
+ offsetY: number;
65878
+ } | undefined;
65879
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
65880
+ } | undefined;
65881
+ pcbSx?: PcbSx | undefined;
65882
+ pcbRelative?: boolean | undefined;
65883
+ relative?: boolean | undefined;
65884
+ connectsTo?: string | string[] | undefined;
65885
+ padDiameter?: number | undefined;
65886
+ portHints?: (string | number)[] | undefined;
65887
+ solderMaskMargin?: number | undefined;
65888
+ coveredWithSolderMask?: boolean | undefined;
65889
+ } | {
65890
+ shape: "oval";
65891
+ outerWidth: number;
65892
+ outerHeight: number;
65893
+ name?: string | undefined;
65894
+ pcbX?: string | number | undefined;
65895
+ pcbY?: string | number | undefined;
65896
+ pcbLeftEdgeX?: string | number | undefined;
65897
+ pcbRightEdgeX?: string | number | undefined;
65898
+ pcbTopEdgeY?: string | number | undefined;
65899
+ pcbBottomEdgeY?: string | number | undefined;
65900
+ pcbOffsetX?: number | undefined;
65901
+ pcbOffsetY?: number | undefined;
65902
+ pcbRotation?: number | undefined;
65903
+ pcbPositionAnchor?: string | undefined;
65904
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
65905
+ shouldBeOnEdgeOfBoard?: boolean | undefined;
65906
+ pcbMarginTop?: number | undefined;
65907
+ pcbMarginRight?: number | undefined;
65908
+ pcbMarginBottom?: number | undefined;
65909
+ pcbMarginLeft?: number | undefined;
65910
+ pcbMarginX?: number | undefined;
65911
+ pcbMarginY?: number | undefined;
65912
+ pcbStyle?: {
65913
+ silkscreenFontSize?: number | undefined;
65914
+ viaPadDiameter?: number | undefined;
65915
+ viaHoleDiameter?: number | undefined;
65916
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
65917
+ offsetX: number;
65918
+ offsetY: number;
65919
+ } | undefined;
65920
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
65921
+ } | undefined;
65922
+ pcbSx?: PcbSx | undefined;
65923
+ pcbRelative?: boolean | undefined;
65924
+ relative?: boolean | undefined;
65925
+ connectsTo?: string | string[] | undefined;
65926
+ portHints?: (string | number)[] | undefined;
65927
+ solderMaskMargin?: number | undefined;
65928
+ coveredWithSolderMask?: boolean | undefined;
65929
+ holeWidth?: number | undefined;
65930
+ holeHeight?: number | undefined;
65931
+ innerWidth?: number | undefined;
65932
+ innerHeight?: number | undefined;
65933
+ } | {
65934
+ shape: "pill";
65935
+ outerWidth: number;
65936
+ outerHeight: number;
65937
+ name?: string | undefined;
65938
+ pcbX?: string | number | undefined;
65939
+ pcbY?: string | number | undefined;
65940
+ pcbLeftEdgeX?: string | number | undefined;
65941
+ pcbRightEdgeX?: string | number | undefined;
65942
+ pcbTopEdgeY?: string | number | undefined;
65943
+ pcbBottomEdgeY?: string | number | undefined;
65944
+ pcbOffsetX?: number | undefined;
65945
+ pcbOffsetY?: number | undefined;
65946
+ pcbRotation?: number | undefined;
65947
+ pcbPositionAnchor?: string | undefined;
65948
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
65949
+ shouldBeOnEdgeOfBoard?: boolean | undefined;
65950
+ pcbMarginTop?: number | undefined;
65951
+ pcbMarginRight?: number | undefined;
65952
+ pcbMarginBottom?: number | undefined;
65953
+ pcbMarginLeft?: number | undefined;
65954
+ pcbMarginX?: number | undefined;
65955
+ pcbMarginY?: number | undefined;
65956
+ pcbStyle?: {
65957
+ silkscreenFontSize?: number | undefined;
65958
+ viaPadDiameter?: number | undefined;
65959
+ viaHoleDiameter?: number | undefined;
65960
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
65961
+ offsetX: number;
65962
+ offsetY: number;
65963
+ } | undefined;
65964
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
65965
+ } | undefined;
65966
+ pcbSx?: PcbSx | undefined;
65967
+ pcbRelative?: boolean | undefined;
65968
+ relative?: boolean | undefined;
65969
+ connectsTo?: string | string[] | undefined;
65970
+ portHints?: (string | number)[] | undefined;
65971
+ solderMaskMargin?: number | undefined;
65972
+ coveredWithSolderMask?: boolean | undefined;
65973
+ holeWidth?: number | undefined;
65974
+ holeHeight?: number | undefined;
65975
+ innerWidth?: number | undefined;
65976
+ innerHeight?: number | undefined;
65977
+ rectPad?: boolean | undefined;
65978
+ holeOffsetX?: number | undefined;
65979
+ holeOffsetY?: number | undefined;
65980
+ } | {
65981
+ shape: "circular_hole_with_rect_pad";
65982
+ holeDiameter: number;
65983
+ rectPadWidth: number;
65984
+ rectPadHeight: number;
65985
+ name?: string | undefined;
65986
+ pcbX?: string | number | undefined;
65987
+ pcbY?: string | number | undefined;
65988
+ pcbLeftEdgeX?: string | number | undefined;
65989
+ pcbRightEdgeX?: string | number | undefined;
65990
+ pcbTopEdgeY?: string | number | undefined;
65991
+ pcbBottomEdgeY?: string | number | undefined;
65992
+ pcbOffsetX?: number | undefined;
65993
+ pcbOffsetY?: number | undefined;
65994
+ pcbRotation?: number | undefined;
65995
+ pcbPositionAnchor?: string | undefined;
65996
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
65997
+ shouldBeOnEdgeOfBoard?: boolean | undefined;
65998
+ pcbMarginTop?: number | undefined;
65999
+ pcbMarginRight?: number | undefined;
66000
+ pcbMarginBottom?: number | undefined;
66001
+ pcbMarginLeft?: number | undefined;
66002
+ pcbMarginX?: number | undefined;
66003
+ pcbMarginY?: number | undefined;
66004
+ pcbStyle?: {
66005
+ silkscreenFontSize?: number | undefined;
66006
+ viaPadDiameter?: number | undefined;
66007
+ viaHoleDiameter?: number | undefined;
66008
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
66009
+ offsetX: number;
66010
+ offsetY: number;
66011
+ } | undefined;
66012
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
66013
+ } | undefined;
66014
+ pcbSx?: PcbSx | undefined;
66015
+ pcbRelative?: boolean | undefined;
66016
+ relative?: boolean | undefined;
66017
+ connectsTo?: string | string[] | undefined;
66018
+ portHints?: (string | number)[] | undefined;
66019
+ solderMaskMargin?: number | undefined;
66020
+ coveredWithSolderMask?: boolean | undefined;
66021
+ holeOffsetX?: number | undefined;
66022
+ holeOffsetY?: number | undefined;
66023
+ rectBorderRadius?: number | undefined;
66024
+ holeShape?: "circle" | undefined;
66025
+ padShape?: "rect" | undefined;
66026
+ } | {
66027
+ shape: "pill_hole_with_rect_pad";
66028
+ holeWidth: number;
66029
+ holeHeight: number;
66030
+ rectPadWidth: number;
66031
+ rectPadHeight: number;
66032
+ name?: string | undefined;
66033
+ pcbX?: string | number | undefined;
66034
+ pcbY?: string | number | undefined;
66035
+ pcbLeftEdgeX?: string | number | undefined;
66036
+ pcbRightEdgeX?: string | number | undefined;
66037
+ pcbTopEdgeY?: string | number | undefined;
66038
+ pcbBottomEdgeY?: string | number | undefined;
66039
+ pcbOffsetX?: number | undefined;
66040
+ pcbOffsetY?: number | undefined;
66041
+ pcbRotation?: number | undefined;
66042
+ pcbPositionAnchor?: string | undefined;
66043
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
66044
+ shouldBeOnEdgeOfBoard?: boolean | undefined;
66045
+ pcbMarginTop?: number | undefined;
66046
+ pcbMarginRight?: number | undefined;
66047
+ pcbMarginBottom?: number | undefined;
66048
+ pcbMarginLeft?: number | undefined;
66049
+ pcbMarginX?: number | undefined;
66050
+ pcbMarginY?: number | undefined;
66051
+ pcbStyle?: {
66052
+ silkscreenFontSize?: number | undefined;
66053
+ viaPadDiameter?: number | undefined;
66054
+ viaHoleDiameter?: number | undefined;
66055
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
66056
+ offsetX: number;
66057
+ offsetY: number;
66058
+ } | undefined;
66059
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
66060
+ } | undefined;
66061
+ pcbSx?: PcbSx | undefined;
66062
+ pcbRelative?: boolean | undefined;
66063
+ relative?: boolean | undefined;
66064
+ connectsTo?: string | string[] | undefined;
66065
+ portHints?: (string | number)[] | undefined;
66066
+ solderMaskMargin?: number | undefined;
66067
+ coveredWithSolderMask?: boolean | undefined;
66068
+ holeOffsetX?: number | undefined;
66069
+ holeOffsetY?: number | undefined;
66070
+ holeShape?: "pill" | undefined;
66071
+ padShape?: "rect" | undefined;
66072
+ } | {
66073
+ shape: "hole_with_polygon_pad";
66074
+ holeOffsetX: number;
66075
+ holeOffsetY: number;
66076
+ holeShape: "circle" | "oval" | "pill" | "rotated_pill";
66077
+ padOutline: {
66078
+ x: number;
66079
+ y: number;
66080
+ }[];
66081
+ name?: string | undefined;
66082
+ pcbX?: string | number | undefined;
66083
+ pcbY?: string | number | undefined;
66084
+ pcbLeftEdgeX?: string | number | undefined;
66085
+ pcbRightEdgeX?: string | number | undefined;
66086
+ pcbTopEdgeY?: string | number | undefined;
66087
+ pcbBottomEdgeY?: string | number | undefined;
66088
+ pcbOffsetX?: number | undefined;
66089
+ pcbOffsetY?: number | undefined;
66090
+ pcbPositionAnchor?: string | undefined;
66091
+ pcbPositionMode?: "relative_to_group_anchor" | "auto" | "relative_to_board_anchor" | "relative_to_component_anchor" | undefined;
66092
+ shouldBeOnEdgeOfBoard?: boolean | undefined;
66093
+ pcbMarginTop?: number | undefined;
66094
+ pcbMarginRight?: number | undefined;
66095
+ pcbMarginBottom?: number | undefined;
66096
+ pcbMarginLeft?: number | undefined;
66097
+ pcbMarginX?: number | undefined;
66098
+ pcbMarginY?: number | undefined;
66099
+ pcbStyle?: {
66100
+ silkscreenFontSize?: number | undefined;
66101
+ viaPadDiameter?: number | undefined;
66102
+ viaHoleDiameter?: number | undefined;
66103
+ silkscreenTextPosition?: "centered" | "outside" | "none" | {
66104
+ offsetX: number;
66105
+ offsetY: number;
66106
+ } | undefined;
66107
+ silkscreenTextVisibility?: "hidden" | "visible" | "inherit" | undefined;
66108
+ } | undefined;
66109
+ pcbSx?: PcbSx | undefined;
66110
+ pcbRelative?: boolean | undefined;
66111
+ relative?: boolean | undefined;
66112
+ connectsTo?: string | string[] | undefined;
66113
+ holeDiameter?: number | undefined;
66114
+ portHints?: (string | number)[] | undefined;
66115
+ solderMaskMargin?: number | undefined;
66116
+ coveredWithSolderMask?: boolean | undefined;
66117
+ holeWidth?: number | undefined;
66118
+ holeHeight?: number | undefined;
66119
+ }, unknown>;
65850
66120
 
65851
66121
  declare const resistorPinLabels: readonly ["pin1", "pin2", "pos", "neg"];
65852
66122
  type ResistorPinLabels = (typeof resistorPinLabels)[number];
@@ -172788,6 +173058,7 @@ interface PlatformConfig {
172788
173058
  routingDisabled?: boolean;
172789
173059
  schematicDisabled?: boolean;
172790
173060
  partsEngineDisabled?: boolean;
173061
+ drcChecksDisabled?: boolean;
172791
173062
  netlistDrcChecksDisabled?: boolean;
172792
173063
  routingDrcChecksDisabled?: boolean;
172793
173064
  placementDrcChecksDisabled?: boolean;
package/dist/index.js CHANGED
@@ -1198,11 +1198,42 @@ var fuseProps = commonComponentProps.extend({
1198
1198
  // lib/components/platedhole.ts
1199
1199
  import { distance as distance16 } from "circuit-json";
1200
1200
  import { z as z46 } from "zod";
1201
+ var DEFAULT_PIN_HEADER_HOLE_DIAMETER = "0.04in";
1202
+ var DEFAULT_PIN_HEADER_OUTER_DIAMETER = "0.1in";
1203
+ var inferPlatedHoleShapeAndDefaults = (rawProps) => {
1204
+ if (!rawProps || typeof rawProps !== "object") return rawProps;
1205
+ const props = { ...rawProps };
1206
+ if (props.shape !== void 0) return props;
1207
+ if (props.padOutline !== void 0) {
1208
+ props.shape = "hole_with_polygon_pad";
1209
+ return props;
1210
+ }
1211
+ if (props.rectPadWidth !== void 0 || props.rectPadHeight !== void 0) {
1212
+ if (props.holeDiameter !== void 0) {
1213
+ props.shape = "circular_hole_with_rect_pad";
1214
+ return props;
1215
+ }
1216
+ props.shape = "pill_hole_with_rect_pad";
1217
+ return props;
1218
+ }
1219
+ if (props.outerDiameter !== void 0 || props.holeDiameter !== void 0 || props.padDiameter !== void 0) {
1220
+ props.shape = "circle";
1221
+ return props;
1222
+ }
1223
+ if (props.outerWidth !== void 0 || props.outerHeight !== void 0) {
1224
+ props.shape = props.rectPad === true ? "pill" : "oval";
1225
+ return props;
1226
+ }
1227
+ props.shape = "circle";
1228
+ props.holeDiameter = DEFAULT_PIN_HEADER_HOLE_DIAMETER;
1229
+ props.outerDiameter = DEFAULT_PIN_HEADER_OUTER_DIAMETER;
1230
+ return props;
1231
+ };
1201
1232
  var distanceHiddenUndefined = z46.custom().transform((a) => {
1202
1233
  if (a === void 0) return void 0;
1203
1234
  return distance16.parse(a);
1204
1235
  });
1205
- var platedHoleProps = z46.discriminatedUnion("shape", [
1236
+ var platedHolePropsByShape = z46.discriminatedUnion("shape", [
1206
1237
  pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({
1207
1238
  name: z46.string().optional(),
1208
1239
  connectsTo: z46.string().or(z46.array(z46.string())).optional(),
@@ -1292,7 +1323,7 @@ var platedHoleProps = z46.discriminatedUnion("shape", [
1292
1323
  solderMaskMargin: distance16.optional(),
1293
1324
  coveredWithSolderMask: z46.boolean().optional()
1294
1325
  })
1295
- ]).refine((a) => {
1326
+ ]).transform((a) => {
1296
1327
  if ("innerWidth" in a && a.innerWidth !== void 0) {
1297
1328
  a.holeWidth ??= a.innerWidth;
1298
1329
  }
@@ -1301,6 +1332,10 @@ var platedHoleProps = z46.discriminatedUnion("shape", [
1301
1332
  }
1302
1333
  return a;
1303
1334
  });
1335
+ var platedHoleProps = z46.preprocess(
1336
+ inferPlatedHoleShapeAndDefaults,
1337
+ platedHolePropsByShape
1338
+ );
1304
1339
  expectTypesMatch(true);
1305
1340
 
1306
1341
  // lib/components/resistor.ts
@@ -2856,6 +2891,7 @@ var platformConfig = z122.object({
2856
2891
  routingDisabled: z122.boolean().optional(),
2857
2892
  schematicDisabled: z122.boolean().optional(),
2858
2893
  partsEngineDisabled: z122.boolean().optional(),
2894
+ drcChecksDisabled: z122.boolean().optional(),
2859
2895
  netlistDrcChecksDisabled: z122.boolean().optional(),
2860
2896
  routingDrcChecksDisabled: z122.boolean().optional(),
2861
2897
  placementDrcChecksDisabled: z122.boolean().optional(),