@tscircuit/props 0.0.62 → 0.0.63

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -7537,6 +7537,7 @@ declare const fabricationNoteTextProps: z.ZodObject<z.objectUtil.extendShape<{
7537
7537
  anchorAlignment: z.ZodDefault<z.ZodEnum<["center", "top_left", "top_right", "bottom_left", "bottom_right"]>>;
7538
7538
  font: z.ZodOptional<z.ZodEnum<["tscircuit2024"]>>;
7539
7539
  fontSize: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7540
+ color: z.ZodOptional<z.ZodString>;
7540
7541
  }>, "strip", z.ZodTypeAny, {
7541
7542
  text: string;
7542
7543
  anchorAlignment: "center" | "top_left" | "top_right" | "bottom_left" | "bottom_right";
@@ -7544,6 +7545,7 @@ declare const fabricationNoteTextProps: z.ZodObject<z.objectUtil.extendShape<{
7544
7545
  pcbY?: number | undefined;
7545
7546
  pcbRotation?: number | undefined;
7546
7547
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
7548
+ color?: string | undefined;
7547
7549
  font?: "tscircuit2024" | undefined;
7548
7550
  fontSize?: number | undefined;
7549
7551
  }, {
@@ -7554,6 +7556,7 @@ declare const fabricationNoteTextProps: z.ZodObject<z.objectUtil.extendShape<{
7554
7556
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
7555
7557
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
7556
7558
  } | undefined;
7559
+ color?: string | undefined;
7557
7560
  anchorAlignment?: "center" | "top_left" | "top_right" | "bottom_left" | "bottom_right" | undefined;
7558
7561
  font?: "tscircuit2024" | undefined;
7559
7562
  fontSize?: string | number | undefined;
@@ -7603,6 +7606,7 @@ declare const fabricationNotePathProps: z.ZodObject<z.objectUtil.extendShape<Omi
7603
7606
  } | undefined;
7604
7607
  }>, "many">;
7605
7608
  strokeWidth: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
7609
+ color: z.ZodOptional<z.ZodString>;
7606
7610
  }>, "strip", z.ZodTypeAny, {
7607
7611
  route: {
7608
7612
  x: number;
@@ -7612,6 +7616,7 @@ declare const fabricationNotePathProps: z.ZodObject<z.objectUtil.extendShape<Omi
7612
7616
  to_layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
7613
7617
  }[];
7614
7618
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | undefined;
7619
+ color?: string | undefined;
7615
7620
  strokeWidth?: number | undefined;
7616
7621
  }, {
7617
7622
  route: {
@@ -7626,6 +7631,7 @@ declare const fabricationNotePathProps: z.ZodObject<z.objectUtil.extendShape<Omi
7626
7631
  layer?: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6" | {
7627
7632
  name: "top" | "bottom" | "inner1" | "inner2" | "inner3" | "inner4" | "inner5" | "inner6";
7628
7633
  } | undefined;
7634
+ color?: string | undefined;
7629
7635
  strokeWidth?: string | number | undefined;
7630
7636
  }>;
7631
7637
  type FabricationNotePathProps = z.input<typeof fabricationNotePathProps>;
package/dist/index.js CHANGED
@@ -609,11 +609,13 @@ var fabricationNoteTextProps = pcbLayoutProps.extend({
609
609
  text: import_zod22.z.string(),
610
610
  anchorAlignment: import_zod22.z.enum(["center", "top_left", "top_right", "bottom_left", "bottom_right"]).default("center"),
611
611
  font: import_zod22.z.enum(["tscircuit2024"]).optional(),
612
- fontSize: import_soup11.length.optional()
612
+ fontSize: import_soup11.length.optional(),
613
+ color: import_zod22.z.string().optional()
613
614
  });
614
615
  var fabricationNotePathProps = pcbLayoutProps.omit({ pcbX: true, pcbY: true, pcbRotation: true }).extend({
615
616
  route: import_zod22.z.array(import_soup11.route_hint_point),
616
- strokeWidth: import_soup11.length.optional()
617
+ strokeWidth: import_soup11.length.optional(),
618
+ color: import_zod22.z.string().optional()
617
619
  });
618
620
  // Annotate the CommonJS export names for ESM import in node:
619
621
  0 && (module.exports = {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/index.ts","../lib/typecheck.ts","../lib/common/direction.ts","../lib/common/portHints.ts","../lib/common/layout.ts","../lib/common/point3.ts","../lib/common/cadModel.ts","../lib/common/footprintProp.ts","../lib/common/schematicPinDefinitions.ts","../lib/common/schematicPinStyle.ts","../lib/components/board.ts","../lib/common/point.ts","../lib/components/chip.ts","../lib/components/jumper.ts","../lib/components/resistor.ts","../lib/components/capacitor.ts","../lib/components/group.ts","../lib/components/net.ts","../lib/components/constrainedlayout.ts","../lib/common/distance.ts","../lib/components/constraint.ts","../lib/components/smtpad.ts","../lib/components/hole.ts"],"sourcesContent":["/**\n * THINKING ABOUT ADDING SOMETHING TO THIS FILE?\n *\n * THINK AGAIN!\n *\n * This file is TOO BIG! Create files using the pattern in the surrounding\n * directories, then export from this file.\n */\nimport type { LayoutBuilder } from \"@tscircuit/layout\"\nimport {\n type AnySoupElementInput,\n capacitance,\n distance,\n inductance,\n layer_ref,\n length,\n type PCBPlatedHoleInput,\n type PCBSMTPadInput,\n point,\n resistance,\n rotation,\n route_hint_point,\n supplier_name,\n voltage,\n} from \"@tscircuit/soup\"\nimport type { ReactElement } from \"react\"\nimport { z } from \"zod\"\nimport { direction } from \"./common/direction\"\nimport { portHints } from \"./common/portHints\"\nimport {\n commonComponentProps,\n commonLayoutProps,\n lrPins,\n lrPolarPins,\n pcbLayoutProps,\n} from \"./common/layout\"\nimport { explicitPinSideDefinition } from \"./common/schematicPinDefinitions\"\n\nexport * from \"./common/direction\"\nexport * from \"./common/portHints\"\nexport * from \"./common/layout\"\nexport * from \"./common/point3\"\nexport * from \"./common/portHints\"\nexport * from \"./common/footprintProp\"\nexport * from \"./common/schematicPinDefinitions\"\nexport * from \"./common/schematicPinStyle\"\n\nexport * from \"./components/board\"\nexport * from \"./components/chip\"\nexport * from \"./components/jumper\"\n\nexport * from \"./components/resistor\"\nexport * from \"./components/capacitor\"\nexport * from \"./components/group\"\nexport * from \"./components/net\"\nexport * from \"./components/constrainedlayout\"\nexport * from \"./components/constraint\"\nexport * from \"./components/smtpad\"\nexport * from \"./components/hole\"\n\nexport const inductorProps = commonComponentProps.extend({\n inductance,\n})\nexport const inductorPins = lrPins\nexport type InductorProps = z.input<typeof inductorProps>\n\nexport const diodeProps = commonComponentProps.extend({})\nexport const diodePins = lrPolarPins\nexport type DiodeProps = z.input<typeof diodeProps>\n\nexport const ledProps = commonComponentProps.extend({\n color: z.string().optional(),\n})\nexport const ledPins = lrPolarPins\nexport type LedProps = z.input<typeof ledProps>\n\nexport const switchProps = commonComponentProps.extend({\n ftype: z.literal(\"switch\"),\n switchType: z.enum([\"spst\"]).default(\"spst\"),\n isNormallyClosed: z.boolean().default(false),\n})\nexport type SwitchProps = z.input<typeof switchProps>\n\nexport const distanceOrMultiplier = distance.or(z.enum([\"2x\", \"3x\", \"4x\"]))\n\nexport const viaProps = commonLayoutProps.extend({\n fromLayer: layer_ref,\n toLayer: layer_ref,\n holeDiameter: distance,\n outerDiameter: distance,\n})\nexport type ViaProps = z.input<typeof viaProps>\n\nexport const netAliasProps = commonLayoutProps.extend({\n net: z.string().optional(),\n})\nexport type NetAliasProps = z.input<typeof netAliasProps>\n\nexport const portRef = z.union([\n z.string(),\n z.custom<{ getPortSelector: () => string }>((v) =>\n Boolean(v.getPortSelector),\n ),\n])\n\nexport const traceProps = z\n .object({\n path: z.array(portRef),\n thickness: distance.optional(),\n schematicRouteHints: z.array(point).optional(),\n pcbRouteHints: z.array(route_hint_point).optional(),\n })\n .or(\n z.object({\n from: portRef,\n to: portRef,\n thickness: distance.optional(),\n schematicRouteHints: z.array(point).optional(),\n pcbRouteHints: z.array(route_hint_point).optional(),\n }),\n )\nexport type TraceProps = z.input<typeof traceProps>\n\nexport const platedHoleProps = z.union([\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"circle\"),\n holeDiameter: distance,\n outerDiameter: distance,\n portHints: portHints.optional(),\n }),\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"oval\"),\n outerWidth: distance,\n outerHeight: distance,\n innerWidth: distance,\n innerHeight: distance,\n portHints: portHints.optional(),\n }),\n])\nexport type PlatedHoleProps = z.input<typeof platedHoleProps>\n\nexport const pcbKeepoutProps = z.union([\n pcbLayoutProps.omit({ pcbRotation: true }).extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n }),\n pcbLayoutProps.extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n }),\n])\nexport type PcbKeepoutProps = z.input<typeof pcbKeepoutProps>\n\nexport const schematicBoxProps = z.object({\n schX: distance,\n schY: distance,\n width: distance,\n height: distance,\n})\nexport type SchematicBoxProps = z.input<typeof schematicBoxProps>\n\nexport const schematicTextProps = z.object({\n schX: distance,\n schY: distance,\n text: z.string(),\n})\nexport type SchematicTextProps = z.input<typeof schematicTextProps>\n\nexport const schematicLineProps = z.object({\n x1: distance,\n y1: distance,\n x2: distance,\n y2: distance,\n})\nexport type SchematicLineProps = z.input<typeof schematicLineProps>\n\nexport const schematicPathProps = z.object({\n points: z.array(point),\n isFilled: z.boolean().optional().default(false),\n fillColor: z.enum([\"red\", \"blue\"]).optional(),\n})\nexport type SchematicPathProps = z.input<typeof schematicPathProps>\n\nexport const footprintProps = z.object({})\nexport type FootprintProps = z.input<typeof footprintProps>\n\nexport const componentProps = commonComponentProps\nexport type ComponentProps = z.input<typeof componentProps>\n\nexport const powerSourceProps = commonComponentProps.extend({\n voltage,\n})\nexport type PowerSourceProps = z.input<typeof powerSourceProps>\n\nexport const portProps = commonLayoutProps.extend({\n name: z.string(),\n pinNumber: z.number().optional(),\n aliases: z.array(z.string()).optional(),\n direction: direction,\n})\nexport type PortProps = z.input<typeof portProps>\n\nexport const silkscreenTextProps = pcbLayoutProps.extend({\n text: z.string(),\n anchorAlignment: z\n .enum([\"center\", \"top_left\", \"top_right\", \"bottom_left\", \"bottom_right\"])\n .default(\"center\"),\n font: z.enum([\"tscircuit2024\"]).optional(),\n fontSize: length.optional(),\n})\nexport type SilkscreenTextProps = z.input<typeof silkscreenTextProps>\n\nexport const silkscreenPathProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n route: z.array(route_hint_point),\n strokeWidth: length.optional(),\n })\nexport type SilkscreenPathProps = z.input<typeof silkscreenPathProps>\n\nexport const silkscreenLineProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n strokeWidth: distance,\n x1: distance,\n y1: distance,\n x2: distance,\n y2: distance,\n })\nexport type SilkscreenLineProps = z.input<typeof silkscreenLineProps>\n\nexport const silkscreenRectProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n isFilled: z.boolean().optional(),\n isOutline: z.boolean().optional(),\n strokeWidth: distance.optional(),\n width: distance,\n height: distance,\n })\nexport type SilkscreenRectProps = z.input<typeof silkscreenRectProps>\n\nexport const silkscreenCircleProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n isFilled: z.boolean().optional(),\n isOutline: z.boolean().optional(),\n strokeWidth: distance.optional(),\n radius: distance,\n })\nexport type SilkscreenCircleProps = z.input<typeof silkscreenCircleProps>\n\nexport const routeHintPointProps = z.object({\n x: distance,\n y: distance,\n via: z.boolean().optional(),\n toLayer: layer_ref.optional(),\n})\n\nexport const traceHintProps = z.object({\n for: z\n .string()\n .optional()\n .describe(\n \"Selector for the port you're targeting, not required if you're inside a trace\",\n ),\n order: z.number().optional(),\n offset: route_hint_point.or(routeHintPointProps).optional(),\n offsets: z\n .array(route_hint_point)\n .or(z.array(routeHintPointProps))\n .optional(),\n traceWidth: z.number().optional(),\n})\n\nexport type TraceHintProps = z.input<typeof traceHintProps>\n\nexport const pcbTraceProps = z.object({\n layer: z.string().optional(),\n thickness: distance.optional(),\n route: z.array(route_hint_point),\n})\nexport type PcbTraceProps = z.input<typeof pcbTraceProps>\n\nexport const fabricationNoteTextProps = pcbLayoutProps.extend({\n text: z.string(),\n anchorAlignment: z\n .enum([\"center\", \"top_left\", \"top_right\", \"bottom_left\", \"bottom_right\"])\n .default(\"center\"),\n font: z.enum([\"tscircuit2024\"]).optional(),\n fontSize: length.optional(),\n})\nexport type FabricationNoteTextProps = z.input<typeof fabricationNoteTextProps>\n\nexport const fabricationNotePathProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n route: z.array(route_hint_point),\n strokeWidth: length.optional(),\n })\nexport type FabricationNotePathProps = z.input<typeof fabricationNotePathProps>\n","import type { TypeEqual } from \"ts-expect\"\n\nexport const expectTypesMatch = <const T1, const T2>(\n shouldBe: TypeEqual<T1, T2>,\n): void => {}\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nexport const direction = z.enum([\"up\", \"down\", \"left\", \"right\"])\nexport type Direction = \"up\" | \"down\" | \"left\" | \"right\"\n\nexport type DirectionAlongEdge =\n | \"top-to-bottom\"\n | \"left-to-right\"\n | \"bottom-to-top\"\n | \"right-to-left\"\n\nexport const directionAlongEdge = z.enum([\n \"top-to-bottom\",\n \"left-to-right\",\n \"bottom-to-top\",\n \"right-to-left\",\n])\n\nexpectTypesMatch<Direction, z.infer<typeof direction>>(true)\nexpectTypesMatch<DirectionAlongEdge, z.infer<typeof directionAlongEdge>>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const portHints = z.array(z.string().or(z.number()))\nexport type PortHints = (string | number)[]\n\nexpectTypesMatch<PortHints, z.infer<typeof portHints>>(true)\n","import { z } from \"zod\"\nimport {\n type AnySoupElementInput,\n distance,\n layer_ref,\n type LayerRef,\n type LayerRefInput,\n rotation,\n supplier_name,\n} from \"@tscircuit/soup\"\nimport { point3 } from \"./point3\"\nimport {\n cadModelJscad,\n cadModelObj,\n cadModelProp,\n cadModelStl,\n type CadModelJscad,\n type CadModelObj,\n type CadModelProp,\n type CadModelStl,\n} from \"./cadModel\"\nimport { footprintProp, type Footprint } from \"./footprintProp\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface PcbLayoutProps {\n pcbX?: string | number\n pcbY?: string | number\n pcbRotation?: string | number\n layer?: LayerRefInput\n}\n\nexport interface CommonLayoutProps {\n pcbX?: string | number\n pcbY?: string | number\n pcbRotation?: string | number\n\n schX?: string | number\n schY?: string | number\n schRotation?: string | number\n\n layer?: LayerRefInput\n footprint?: Footprint\n}\n\nexport const pcbLayoutProps = z.object({\n pcbX: distance.optional(),\n pcbY: distance.optional(),\n pcbRotation: rotation.optional(),\n layer: layer_ref.optional(),\n})\ntype InferredPcbLayoutProps = z.input<typeof pcbLayoutProps>\nexpectTypesMatch<PcbLayoutProps, InferredPcbLayoutProps>(true)\n\nexport const commonLayoutProps = z.object({\n pcbX: distance.optional(),\n pcbY: distance.optional(),\n pcbRotation: rotation.optional(),\n schX: distance.optional(),\n schY: distance.optional(),\n schRotation: rotation.optional(),\n layer: layer_ref.optional(),\n footprint: footprintProp.optional(),\n})\n\ntype InferredCommonLayoutProps = z.input<typeof commonLayoutProps>\nexpectTypesMatch<CommonLayoutProps, InferredCommonLayoutProps>(true)\n\nexport type SupplierName =\n | \"jlcpcb\"\n | \"macrofab\"\n | \"pcbway\"\n | \"digikey\"\n | \"mouser\"\n | \"lcsc\"\nexport interface SupplierProps {\n supplierPartNumbers?: { [k in SupplierName]?: string[] }\n}\nexport const supplierProps = z.object({\n supplierPartNumbers: z.record(supplier_name, z.array(z.string())).optional(),\n})\n\nexpectTypesMatch<SupplierProps, z.input<typeof supplierProps>>(true)\n\nexport interface CommonComponentProps extends CommonLayoutProps {\n name: string\n supplierPartNumbers?: SupplierProps[\"supplierPartNumbers\"]\n cadModel?: CadModelProp\n children?: any\n symbolName?: string\n}\n\nexport const commonComponentProps = commonLayoutProps\n .merge(supplierProps)\n .extend({\n name: z.string(),\n cadModel: cadModelProp.optional(),\n children: z.any().optional(),\n symbolName: z.string().optional(),\n })\n\ntype InferredCommonComponentProps = z.input<typeof commonComponentProps>\nexpectTypesMatch<CommonComponentProps, InferredCommonComponentProps>(true)\n\nexport const lrPins = [\"pin1\", \"left\", \"pin2\", \"right\"] as const\nexport const lrPolarPins = [\n \"pin1\",\n \"left\",\n \"anode\",\n \"pos\",\n \"pin2\",\n \"right\",\n \"cathode\",\n \"neg\",\n] as const\n\nexport const distanceOrMultiplier = distance.or(z.enum([\"2x\", \"3x\", \"4x\"]))\n","import { distance } from \"@tscircuit/soup\"\nimport { z } from \"zod\"\n\nexport const point3 = z.object({\n x: distance,\n y: distance,\n z: distance,\n})\n","import { z } from \"zod\"\nimport { point3 } from \"./point3\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const rotationPoint3 = z.object({\n x: z.union([z.number(), z.string()]),\n y: z.union([z.number(), z.string()]),\n z: z.union([z.number(), z.string()]),\n})\n\nexport interface CadModelBase {\n rotationOffset?:\n | number\n | { x: number | string; y: number | string; z: number | string }\n positionOffset?: {\n x: number | string\n y: number | string\n z: number | string\n }\n size?: { x: number | string; y: number | string; z: number | string }\n}\n\nexport const cadModelBase = z.object({\n rotationOffset: z.number().or(rotationPoint3).optional(),\n positionOffset: point3.optional(),\n size: point3.optional(),\n})\n\nexpectTypesMatch<CadModelBase, z.input<typeof cadModelBase>>(true)\n\nexport interface CadModelStl extends CadModelBase {\n stlUrl: string\n}\nexport const cadModelStl = cadModelBase.extend({\n stlUrl: z.string(),\n})\n\nexport interface CadModelObj extends CadModelBase {\n objUrl: string\n mtlUrl?: string\n}\nexport const cadModelObj = cadModelBase.extend({\n objUrl: z.string(),\n mtlUrl: z.string().optional(),\n})\n\nexport interface CadModelJscad extends CadModelBase {\n jscad: Record<string, any>\n}\nexport const cadModelJscad = cadModelBase.extend({\n jscad: z.record(z.any()),\n})\n\nexport type CadModelProp = string | CadModelStl | CadModelObj | CadModelJscad\n\nexport const cadModelProp = z.union([\n z.string(),\n cadModelStl,\n cadModelObj,\n cadModelJscad,\n])\n\ntype InferredCadModelProp = z.input<typeof cadModelProp>\nexpectTypesMatch<CadModelProp, InferredCadModelProp>(true)\n","import type { LayerRef } from \"@tscircuit/soup\"\nimport type { ReactElement } from \"react\"\nimport { z } from \"zod\"\n\n/**\n * This is an abbreviated definition of the soup elements that you can find here:\n * https://docs.tscircuit.com/api-reference/advanced/soup#pcb-smtpad\n */\nexport type FootprintSoupElements = {\n type: \"pcb_smtpad\" | \"pcb_plated_hole\"\n x: string | number\n y: string | number\n layer?: LayerRef\n holeDiameter?: string | number\n outerDiameter?: string | number\n shape?: \"circle\" | \"rect\"\n width?: string | number\n height?: string | number\n portHints?: string[]\n}\n\nexport type Footprint = string | ReactElement | FootprintSoupElements[]\nexport const footprintProp = z.custom<Footprint>((v) => true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\n/**\n * @deprecated Use SchematicPortArrangementWithPinCounts instead.\n */\nexport interface SchematicPortArrangementWithSizes {\n leftSize?: number\n topSize?: number\n rightSize?: number\n bottomSize?: number\n}\n\n/**\n * Specifies the number of pins on each side of the schematic box component.\n */\nexport interface SchematicPortArrangementWithPinCounts {\n leftPinCount?: number\n topPinCount?: number\n rightPinCount?: number\n bottomPinCount?: number\n}\n\nexport interface PinSideDefinition {\n pins: number[]\n direction:\n | \"top-to-bottom\"\n | \"left-to-right\"\n | \"bottom-to-top\"\n | \"right-to-left\"\n}\n\nexport interface SchematicPortArrangementWithSides {\n leftSide?: PinSideDefinition\n topSide?: PinSideDefinition\n rightSide?: PinSideDefinition\n bottomSide?: PinSideDefinition\n}\n\nexport type SchematicPortArrangement =\n | SchematicPortArrangementWithSizes\n | SchematicPortArrangementWithSides\n | SchematicPortArrangementWithPinCounts\n\nexport const explicitPinSideDefinition = z.object({\n pins: z.array(z.number()),\n direction: z.union([\n z.literal(\"top-to-bottom\"),\n z.literal(\"left-to-right\"),\n z.literal(\"bottom-to-top\"),\n z.literal(\"right-to-left\"),\n ]),\n})\n\nexport const schematicPortArrangement = z\n .object({\n leftSize: z.number().optional().describe(\"@deprecated, use leftPinCount\"),\n topSize: z.number().optional().describe(\"@deprecated, use topPinCount\"),\n rightSize: z.number().optional().describe(\"@deprecated, use rightPinCount\"),\n bottomSize: z\n .number()\n .optional()\n .describe(\"@deprecated, use bottomPinCount\"),\n })\n .or(\n z.object({\n leftPinCount: z.number().optional(),\n rightPinCount: z.number().optional(),\n topPinCount: z.number().optional(),\n bottomPinCount: z.number().optional(),\n }),\n )\n .or(\n z.object({\n leftSide: explicitPinSideDefinition.optional(),\n rightSide: explicitPinSideDefinition.optional(),\n topSide: explicitPinSideDefinition.optional(),\n bottomSide: explicitPinSideDefinition.optional(),\n }),\n )\n\nexpectTypesMatch<\n SchematicPortArrangement,\n z.input<typeof schematicPortArrangement>\n>(true)\n","import { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport type SchematicPinStyle = Record<\n string,\n {\n leftMargin?: number | string\n rightMargin?: number | string\n topMargin?: number | string\n bottomMargin?: number | string\n }\n>\n\nexport const schematicPinStyle = z.record(\n z.object({\n leftMargin: distance.optional(),\n rightMargin: distance.optional(),\n topMargin: distance.optional(),\n bottomMargin: distance.optional(),\n }),\n)\n\nexpectTypesMatch<SchematicPinStyle, z.input<typeof schematicPinStyle>>(true)\n","import { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport { point, type Point } from \"lib/common/point\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface BoardProps {\n width?: number | string\n height?: number | string\n outline?: Point[]\n pcbX?: number | string\n pcbY?: number | string\n layout?: any\n routingDisabled?: boolean\n children?: any\n}\n\nexport const boardProps = z.object({\n width: distance.optional(),\n height: distance.optional(),\n outline: z.array(point).optional(),\n pcbX: distance.optional().default(0),\n pcbY: distance.optional().default(0),\n layout: z.any().optional(),\n routingDisabled: z.boolean().optional(),\n children: z.any(),\n})\n\nexpectTypesMatch<BoardProps, z.input<typeof boardProps>>(true)\n","import { distance } from \"@tscircuit/soup\"\nimport { z } from \"zod\"\n\nexport const point = z.object({\n x: distance,\n y: distance,\n})\n\nexport type Point = { x: number | string; y: number | string }\n","import { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport {\n schematicPortArrangement,\n type SchematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\nimport {\n schematicPinStyle,\n type SchematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport type { Distance } from \"lib/common/distance\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface ChipProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string>\n schPortArrangement?: SchematicPortArrangement\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: Distance\n schWidth?: Distance\n schHeight?: Distance\n}\n\nexport const chipProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z.record(z.number().or(z.string()), z.string()).optional(),\n schPortArrangement: schematicPortArrangement.optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.optional(),\n})\n\n/**\n * @deprecated Use ChipProps instead.\n */\nexport const bugProps = chipProps\nexport type InferredChipProps = z.input<typeof chipProps>\n\nexpectTypesMatch<InferredChipProps, ChipProps>(true)\n","import { z } from \"zod\"\nimport {\n commonComponentProps,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport {\n schematicPinStyle,\n type SchematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport { distance } from \"@tscircuit/soup\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport {\n schematicPortArrangement,\n type SchematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\n\nexport interface JumperProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string>\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: number | string\n schWidth?: number | string\n schHeight?: number | string\n schDirection?: \"left\" | \"right\"\n schPortArrangement?: SchematicPortArrangement\n}\n\nexport const jumperProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z.record(z.number().or(z.string()), z.string()).optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.optional(),\n schDirection: z.enum([\"left\", \"right\"]).optional(),\n schPortArrangement: schematicPortArrangement.optional(),\n})\n\ntype InferredJumperProps = z.input<typeof jumperProps>\nexpectTypesMatch<JumperProps, InferredJumperProps>(true)\n","import { z } from \"zod\"\nimport { resistance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n lrPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface ResistorProps extends CommonComponentProps {\n resistance: number | string\n pullupFor?: string\n pullupTo?: string\n pulldownFor?: string\n pulldownTo?: string\n}\n\nexport const resistorProps = commonComponentProps.extend({\n resistance,\n\n pullupFor: z.string().optional(),\n pullupTo: z.string().optional(),\n\n pulldownFor: z.string().optional(),\n pulldownTo: z.string().optional(),\n})\nexport const resistorPins = lrPins\n\ntype InferredResistorProps = z.input<typeof resistorProps>\nexpectTypesMatch<ResistorProps, InferredResistorProps>(true)\n","import { z } from \"zod\"\nimport { capacitance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n lrPins,\n lrPolarPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface CapacitorProps extends CommonComponentProps {\n capacitance: number | string\n\n decouplingFor?: string\n decouplingTo?: string\n\n bypassFor?: string\n bypassTo?: string\n}\n\nexport const capacitorProps = commonComponentProps.extend({\n capacitance,\n\n decouplingFor: z.string().optional(),\n decouplingTo: z.string().optional(),\n\n bypassFor: z.string().optional(),\n bypassTo: z.string().optional(),\n})\nexport const capacitorPins = lrPolarPins\n\nexpectTypesMatch<CapacitorProps, z.input<typeof capacitorProps>>(true)\n","import { z } from \"zod\"\nimport { commonLayoutProps, type CommonLayoutProps } from \"lib/common/layout\"\nimport type { LayoutBuilder } from \"@tscircuit/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface BaseGroupProps extends CommonLayoutProps {\n name?: string\n children?: any\n}\n\nexport interface SubcircuitGroupProps extends BaseGroupProps {\n subcircuit: true\n layout?: LayoutBuilder\n routingDisabled?: boolean\n}\n\nexport type GroupProps = SubcircuitGroupProps | BaseGroupProps\n\nexport const baseGroupProps = commonLayoutProps.extend({\n name: z.string().optional(),\n children: z.any().optional(),\n})\n\nexport const subcircuitGroupProps = baseGroupProps.extend({\n subcircuit: z.literal(true),\n layout: z.custom<LayoutBuilder>((v) => true).optional(),\n routingDisabled: z.boolean().optional(),\n})\n\nexport const groupProps = z.union([baseGroupProps, subcircuitGroupProps])\n\ntype InferredBaseGroupProps = z.input<typeof baseGroupProps>\ntype InferredSubcircuitGroupProps = z.input<typeof subcircuitGroupProps>\n\nexpectTypesMatch<BaseGroupProps, InferredBaseGroupProps>(true)\nexpectTypesMatch<SubcircuitGroupProps, InferredSubcircuitGroupProps>(true)\n\ntype InferredGroupProps = z.input<typeof groupProps>\nexpectTypesMatch<GroupProps, InferredGroupProps>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface NetProps {\n name: string\n}\n\nexport const netProps = z.object({\n name: z.string(),\n})\n\ntype InferredNetProps = z.input<typeof netProps>\nexpectTypesMatch<NetProps, InferredNetProps>(true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface ConstrainedLayoutProps {\n name?: string\n pcbOnly?: boolean\n schOnly?: boolean\n}\n\nexport const constrainedLayoutProps = z.object({\n name: z.string().optional(),\n pcbOnly: z.boolean().optional(),\n schOnly: z.boolean().optional(),\n})\n\nexport type InferredConstrainedLayoutProps = z.input<\n typeof constrainedLayoutProps\n>\n\nexpectTypesMatch<InferredConstrainedLayoutProps, ConstrainedLayoutProps>(true)\n","import { z } from \"zod\"\n\nexport type Distance = number | string\n\nexport { distance } from \"@tscircuit/soup\"\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport type { Distance } from \"lib/common/distance\"\nimport { distance } from \"lib/common/distance\"\nimport { z } from \"zod\"\n\nexport type PcbXDistConstraint = {\n pcb?: true\n xDist: Distance\n\n /**\n * Selector for left component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 leftedge\", \".R1 center\"\n */\n left: string\n\n /**\n * Selector for right component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 leftedge\", \".R1 center\"\n */\n right: string\n\n /**\n * If true, the provided distance is the distance between the closest edges of\n * the left and right components\n */\n edgeToEdge?: true\n\n /**\n * If true, the provided distance is the distance between the centers of the\n * left and right components\n */\n centerToCenter?: true\n}\n\nexport type PcbYDistConstraint = {\n pcb?: true\n yDist: Distance\n\n /**\n * Selector for top component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 topedge\", \".R1 center\"\n */\n top: string\n\n /**\n * Selector for bottom component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 bottomedge\", \".R1 center\"\n */\n bottom: string\n\n edgeToEdge?: true\n centerToCenter?: true\n}\n\nexport type PcbSameYConstraint = {\n pcb?: true\n sameY?: true\n\n /**\n * Selector for components, e.g. [\".U1\", \".R1\"], you can also specify the\n * edge or center of the component e.g. [\".R1 leftedge\", \".U1 center\"]\n */\n for: string[]\n}\n\nexport type PcbSameXConstraint = {\n pcb?: true\n sameX?: true\n /**\n * Selector for components, e.g. [\".U1\", \".R1\"], you can also specify the\n * edge or center of the component e.g. [\".R1 leftedge\", \".U1 center\"]\n */\n for: string[]\n}\n\nexport type ConstraintProps =\n | PcbXDistConstraint\n | PcbYDistConstraint\n | PcbSameYConstraint\n | PcbSameXConstraint\n\n// -----------------------------------------------------------------------------\n// Zod\n// -----------------------------------------------------------------------------\n\nexport const pcbXDistConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n xDist: distance,\n left: z.string(),\n right: z.string(),\n\n edgeToEdge: z.literal(true).optional(),\n centerToCenter: z.literal(true).optional(),\n})\nexpectTypesMatch<PcbXDistConstraint, z.input<typeof pcbXDistConstraintProps>>(\n true,\n)\n\nexport const pcbYDistConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n yDist: distance,\n top: z.string(),\n bottom: z.string(),\n\n edgeToEdge: z.literal(true).optional(),\n centerToCenter: z.literal(true).optional(),\n})\nexpectTypesMatch<PcbYDistConstraint, z.input<typeof pcbYDistConstraintProps>>(\n true,\n)\n\nexport const pcbSameYConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n sameY: z.literal(true).optional(),\n for: z.array(z.string()),\n})\nexpectTypesMatch<PcbSameYConstraint, z.input<typeof pcbSameYConstraintProps>>(\n true,\n)\n\nexport const pcbSameXConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n sameX: z.literal(true).optional(),\n for: z.array(z.string()),\n})\nexpectTypesMatch<PcbSameXConstraint, z.input<typeof pcbSameXConstraintProps>>(\n true,\n)\n\nexport const constraintProps = z.union([\n pcbXDistConstraintProps,\n pcbYDistConstraintProps,\n pcbSameYConstraintProps,\n pcbSameXConstraintProps,\n])\n\nexpectTypesMatch<ConstraintProps, z.input<typeof constraintProps>>(true)\n","import {\n pcbLayoutProps,\n type CommonLayoutProps,\n type PcbLayoutProps,\n} from \"lib/common/layout\"\nimport { z } from \"zod\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { portHints, type PortHints } from \"lib/common/portHints\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface RectSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"rect\"\n width: Distance\n height: Distance\n portHints?: PortHints\n}\n\nexport interface CircleSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"circle\"\n radius: Distance\n portHints?: PortHints\n}\n\nexport type SmtPadProps = RectSmtPadProps | CircleSmtPadProps\n\n// ----------------------------------------------------------------------------\n// Zod\n// ----------------------------------------------------------------------------\n\nexport const rectSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n portHints: portHints.optional(),\n })\ntype InferredRectSmtPadProps = z.input<typeof rectSmtPadProps>\nexpectTypesMatch<InferredRectSmtPadProps, RectSmtPadProps>(true)\n\nexport const circleSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n portHints: portHints.optional(),\n })\ntype InferredCircleSmtPadProps = z.input<typeof circleSmtPadProps>\nexpectTypesMatch<InferredCircleSmtPadProps, CircleSmtPadProps>(true)\n\nexport const smtPadProps = z.union([circleSmtPadProps, rectSmtPadProps])\n\nexport type InferredSmtPadProps = z.input<typeof smtPadProps>\nexpectTypesMatch<InferredSmtPadProps, SmtPadProps>(true)\n","import { z } from \"zod\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { pcbLayoutProps, type PcbLayoutProps } from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface HoleProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n name?: string\n diameter?: Distance\n radius?: Distance\n}\n\nexport const holeProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n name: z.string().optional(),\n diameter: distance.optional(),\n radius: distance.optional(),\n })\n .transform((d) => ({\n ...d,\n diameter: d.diameter ?? 2 * d.radius!,\n radius: d.radius ?? d.diameter! / 2,\n }))\n\nexport type InferredHoleProps = z.input<typeof holeProps>\n\nexpectTypesMatch<HoleProps, InferredHoleProps>(true)\n"],"mappings":"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","names":["distanceOrMultiplier","import_soup","import_zod","import_zod","import_zod","import_soup","import_zod","import_zod","import_zod","import_zod","import_zod","import_soup","import_zod","import_soup","import_soup","import_zod","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_zod","import_zod","import_zod","import_soup","import_zod","import_zod","import_zod","distanceOrMultiplier"]}
1
+ {"version":3,"sources":["../lib/index.ts","../lib/typecheck.ts","../lib/common/direction.ts","../lib/common/portHints.ts","../lib/common/layout.ts","../lib/common/point3.ts","../lib/common/cadModel.ts","../lib/common/footprintProp.ts","../lib/common/schematicPinDefinitions.ts","../lib/common/schematicPinStyle.ts","../lib/components/board.ts","../lib/common/point.ts","../lib/components/chip.ts","../lib/components/jumper.ts","../lib/components/resistor.ts","../lib/components/capacitor.ts","../lib/components/group.ts","../lib/components/net.ts","../lib/components/constrainedlayout.ts","../lib/common/distance.ts","../lib/components/constraint.ts","../lib/components/smtpad.ts","../lib/components/hole.ts"],"sourcesContent":["/**\n * THINKING ABOUT ADDING SOMETHING TO THIS FILE?\n *\n * THINK AGAIN!\n *\n * This file is TOO BIG! Create files using the pattern in the surrounding\n * directories, then export from this file.\n */\nimport type { LayoutBuilder } from \"@tscircuit/layout\"\nimport {\n type AnySoupElementInput,\n capacitance,\n distance,\n inductance,\n layer_ref,\n length,\n type PCBPlatedHoleInput,\n type PCBSMTPadInput,\n point,\n resistance,\n rotation,\n route_hint_point,\n supplier_name,\n voltage,\n} from \"@tscircuit/soup\"\nimport type { ReactElement } from \"react\"\nimport { z } from \"zod\"\nimport { direction } from \"./common/direction\"\nimport { portHints } from \"./common/portHints\"\nimport {\n commonComponentProps,\n commonLayoutProps,\n lrPins,\n lrPolarPins,\n pcbLayoutProps,\n} from \"./common/layout\"\nimport { explicitPinSideDefinition } from \"./common/schematicPinDefinitions\"\n\nexport * from \"./common/direction\"\nexport * from \"./common/portHints\"\nexport * from \"./common/layout\"\nexport * from \"./common/point3\"\nexport * from \"./common/portHints\"\nexport * from \"./common/footprintProp\"\nexport * from \"./common/schematicPinDefinitions\"\nexport * from \"./common/schematicPinStyle\"\n\nexport * from \"./components/board\"\nexport * from \"./components/chip\"\nexport * from \"./components/jumper\"\n\nexport * from \"./components/resistor\"\nexport * from \"./components/capacitor\"\nexport * from \"./components/group\"\nexport * from \"./components/net\"\nexport * from \"./components/constrainedlayout\"\nexport * from \"./components/constraint\"\nexport * from \"./components/smtpad\"\nexport * from \"./components/hole\"\n\nexport const inductorProps = commonComponentProps.extend({\n inductance,\n})\nexport const inductorPins = lrPins\nexport type InductorProps = z.input<typeof inductorProps>\n\nexport const diodeProps = commonComponentProps.extend({})\nexport const diodePins = lrPolarPins\nexport type DiodeProps = z.input<typeof diodeProps>\n\nexport const ledProps = commonComponentProps.extend({\n color: z.string().optional(),\n})\nexport const ledPins = lrPolarPins\nexport type LedProps = z.input<typeof ledProps>\n\nexport const switchProps = commonComponentProps.extend({\n ftype: z.literal(\"switch\"),\n switchType: z.enum([\"spst\"]).default(\"spst\"),\n isNormallyClosed: z.boolean().default(false),\n})\nexport type SwitchProps = z.input<typeof switchProps>\n\nexport const distanceOrMultiplier = distance.or(z.enum([\"2x\", \"3x\", \"4x\"]))\n\nexport const viaProps = commonLayoutProps.extend({\n fromLayer: layer_ref,\n toLayer: layer_ref,\n holeDiameter: distance,\n outerDiameter: distance,\n})\nexport type ViaProps = z.input<typeof viaProps>\n\nexport const netAliasProps = commonLayoutProps.extend({\n net: z.string().optional(),\n})\nexport type NetAliasProps = z.input<typeof netAliasProps>\n\nexport const portRef = z.union([\n z.string(),\n z.custom<{ getPortSelector: () => string }>((v) =>\n Boolean(v.getPortSelector),\n ),\n])\n\nexport const traceProps = z\n .object({\n path: z.array(portRef),\n thickness: distance.optional(),\n schematicRouteHints: z.array(point).optional(),\n pcbRouteHints: z.array(route_hint_point).optional(),\n })\n .or(\n z.object({\n from: portRef,\n to: portRef,\n thickness: distance.optional(),\n schematicRouteHints: z.array(point).optional(),\n pcbRouteHints: z.array(route_hint_point).optional(),\n }),\n )\nexport type TraceProps = z.input<typeof traceProps>\n\nexport const platedHoleProps = z.union([\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"circle\"),\n holeDiameter: distance,\n outerDiameter: distance,\n portHints: portHints.optional(),\n }),\n pcbLayoutProps.omit({ pcbRotation: true, layer: true }).extend({\n name: z.string().optional(),\n shape: z.literal(\"oval\"),\n outerWidth: distance,\n outerHeight: distance,\n innerWidth: distance,\n innerHeight: distance,\n portHints: portHints.optional(),\n }),\n])\nexport type PlatedHoleProps = z.input<typeof platedHoleProps>\n\nexport const pcbKeepoutProps = z.union([\n pcbLayoutProps.omit({ pcbRotation: true }).extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n }),\n pcbLayoutProps.extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n }),\n])\nexport type PcbKeepoutProps = z.input<typeof pcbKeepoutProps>\n\nexport const schematicBoxProps = z.object({\n schX: distance,\n schY: distance,\n width: distance,\n height: distance,\n})\nexport type SchematicBoxProps = z.input<typeof schematicBoxProps>\n\nexport const schematicTextProps = z.object({\n schX: distance,\n schY: distance,\n text: z.string(),\n})\nexport type SchematicTextProps = z.input<typeof schematicTextProps>\n\nexport const schematicLineProps = z.object({\n x1: distance,\n y1: distance,\n x2: distance,\n y2: distance,\n})\nexport type SchematicLineProps = z.input<typeof schematicLineProps>\n\nexport const schematicPathProps = z.object({\n points: z.array(point),\n isFilled: z.boolean().optional().default(false),\n fillColor: z.enum([\"red\", \"blue\"]).optional(),\n})\nexport type SchematicPathProps = z.input<typeof schematicPathProps>\n\nexport const footprintProps = z.object({})\nexport type FootprintProps = z.input<typeof footprintProps>\n\nexport const componentProps = commonComponentProps\nexport type ComponentProps = z.input<typeof componentProps>\n\nexport const powerSourceProps = commonComponentProps.extend({\n voltage,\n})\nexport type PowerSourceProps = z.input<typeof powerSourceProps>\n\nexport const portProps = commonLayoutProps.extend({\n name: z.string(),\n pinNumber: z.number().optional(),\n aliases: z.array(z.string()).optional(),\n direction: direction,\n})\nexport type PortProps = z.input<typeof portProps>\n\nexport const silkscreenTextProps = pcbLayoutProps.extend({\n text: z.string(),\n anchorAlignment: z\n .enum([\"center\", \"top_left\", \"top_right\", \"bottom_left\", \"bottom_right\"])\n .default(\"center\"),\n font: z.enum([\"tscircuit2024\"]).optional(),\n fontSize: length.optional(),\n})\nexport type SilkscreenTextProps = z.input<typeof silkscreenTextProps>\n\nexport const silkscreenPathProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n route: z.array(route_hint_point),\n strokeWidth: length.optional(),\n })\nexport type SilkscreenPathProps = z.input<typeof silkscreenPathProps>\n\nexport const silkscreenLineProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n strokeWidth: distance,\n x1: distance,\n y1: distance,\n x2: distance,\n y2: distance,\n })\nexport type SilkscreenLineProps = z.input<typeof silkscreenLineProps>\n\nexport const silkscreenRectProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n isFilled: z.boolean().optional(),\n isOutline: z.boolean().optional(),\n strokeWidth: distance.optional(),\n width: distance,\n height: distance,\n })\nexport type SilkscreenRectProps = z.input<typeof silkscreenRectProps>\n\nexport const silkscreenCircleProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n isFilled: z.boolean().optional(),\n isOutline: z.boolean().optional(),\n strokeWidth: distance.optional(),\n radius: distance,\n })\nexport type SilkscreenCircleProps = z.input<typeof silkscreenCircleProps>\n\nexport const routeHintPointProps = z.object({\n x: distance,\n y: distance,\n via: z.boolean().optional(),\n toLayer: layer_ref.optional(),\n})\n\nexport const traceHintProps = z.object({\n for: z\n .string()\n .optional()\n .describe(\n \"Selector for the port you're targeting, not required if you're inside a trace\",\n ),\n order: z.number().optional(),\n offset: route_hint_point.or(routeHintPointProps).optional(),\n offsets: z\n .array(route_hint_point)\n .or(z.array(routeHintPointProps))\n .optional(),\n traceWidth: z.number().optional(),\n})\n\nexport type TraceHintProps = z.input<typeof traceHintProps>\n\nexport const pcbTraceProps = z.object({\n layer: z.string().optional(),\n thickness: distance.optional(),\n route: z.array(route_hint_point),\n})\nexport type PcbTraceProps = z.input<typeof pcbTraceProps>\n\nexport const fabricationNoteTextProps = pcbLayoutProps.extend({\n text: z.string(),\n anchorAlignment: z\n .enum([\"center\", \"top_left\", \"top_right\", \"bottom_left\", \"bottom_right\"])\n .default(\"center\"),\n font: z.enum([\"tscircuit2024\"]).optional(),\n fontSize: length.optional(),\n color: z.string().optional(),\n})\nexport type FabricationNoteTextProps = z.input<typeof fabricationNoteTextProps>\n\nexport const fabricationNotePathProps = pcbLayoutProps\n .omit({ pcbX: true, pcbY: true, pcbRotation: true })\n .extend({\n route: z.array(route_hint_point),\n strokeWidth: length.optional(),\n color: z.string().optional(),\n })\nexport type FabricationNotePathProps = z.input<typeof fabricationNotePathProps>\n","import type { TypeEqual } from \"ts-expect\"\n\nexport const expectTypesMatch = <const T1, const T2>(\n shouldBe: TypeEqual<T1, T2>,\n): void => {}\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\nexport const direction = z.enum([\"up\", \"down\", \"left\", \"right\"])\nexport type Direction = \"up\" | \"down\" | \"left\" | \"right\"\n\nexport type DirectionAlongEdge =\n | \"top-to-bottom\"\n | \"left-to-right\"\n | \"bottom-to-top\"\n | \"right-to-left\"\n\nexport const directionAlongEdge = z.enum([\n \"top-to-bottom\",\n \"left-to-right\",\n \"bottom-to-top\",\n \"right-to-left\",\n])\n\nexpectTypesMatch<Direction, z.infer<typeof direction>>(true)\nexpectTypesMatch<DirectionAlongEdge, z.infer<typeof directionAlongEdge>>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const portHints = z.array(z.string().or(z.number()))\nexport type PortHints = (string | number)[]\n\nexpectTypesMatch<PortHints, z.infer<typeof portHints>>(true)\n","import { z } from \"zod\"\nimport {\n type AnySoupElementInput,\n distance,\n layer_ref,\n type LayerRef,\n type LayerRefInput,\n rotation,\n supplier_name,\n} from \"@tscircuit/soup\"\nimport { point3 } from \"./point3\"\nimport {\n cadModelJscad,\n cadModelObj,\n cadModelProp,\n cadModelStl,\n type CadModelJscad,\n type CadModelObj,\n type CadModelProp,\n type CadModelStl,\n} from \"./cadModel\"\nimport { footprintProp, type Footprint } from \"./footprintProp\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface PcbLayoutProps {\n pcbX?: string | number\n pcbY?: string | number\n pcbRotation?: string | number\n layer?: LayerRefInput\n}\n\nexport interface CommonLayoutProps {\n pcbX?: string | number\n pcbY?: string | number\n pcbRotation?: string | number\n\n schX?: string | number\n schY?: string | number\n schRotation?: string | number\n\n layer?: LayerRefInput\n footprint?: Footprint\n}\n\nexport const pcbLayoutProps = z.object({\n pcbX: distance.optional(),\n pcbY: distance.optional(),\n pcbRotation: rotation.optional(),\n layer: layer_ref.optional(),\n})\ntype InferredPcbLayoutProps = z.input<typeof pcbLayoutProps>\nexpectTypesMatch<PcbLayoutProps, InferredPcbLayoutProps>(true)\n\nexport const commonLayoutProps = z.object({\n pcbX: distance.optional(),\n pcbY: distance.optional(),\n pcbRotation: rotation.optional(),\n schX: distance.optional(),\n schY: distance.optional(),\n schRotation: rotation.optional(),\n layer: layer_ref.optional(),\n footprint: footprintProp.optional(),\n})\n\ntype InferredCommonLayoutProps = z.input<typeof commonLayoutProps>\nexpectTypesMatch<CommonLayoutProps, InferredCommonLayoutProps>(true)\n\nexport type SupplierName =\n | \"jlcpcb\"\n | \"macrofab\"\n | \"pcbway\"\n | \"digikey\"\n | \"mouser\"\n | \"lcsc\"\nexport interface SupplierProps {\n supplierPartNumbers?: { [k in SupplierName]?: string[] }\n}\nexport const supplierProps = z.object({\n supplierPartNumbers: z.record(supplier_name, z.array(z.string())).optional(),\n})\n\nexpectTypesMatch<SupplierProps, z.input<typeof supplierProps>>(true)\n\nexport interface CommonComponentProps extends CommonLayoutProps {\n name: string\n supplierPartNumbers?: SupplierProps[\"supplierPartNumbers\"]\n cadModel?: CadModelProp\n children?: any\n symbolName?: string\n}\n\nexport const commonComponentProps = commonLayoutProps\n .merge(supplierProps)\n .extend({\n name: z.string(),\n cadModel: cadModelProp.optional(),\n children: z.any().optional(),\n symbolName: z.string().optional(),\n })\n\ntype InferredCommonComponentProps = z.input<typeof commonComponentProps>\nexpectTypesMatch<CommonComponentProps, InferredCommonComponentProps>(true)\n\nexport const lrPins = [\"pin1\", \"left\", \"pin2\", \"right\"] as const\nexport const lrPolarPins = [\n \"pin1\",\n \"left\",\n \"anode\",\n \"pos\",\n \"pin2\",\n \"right\",\n \"cathode\",\n \"neg\",\n] as const\n\nexport const distanceOrMultiplier = distance.or(z.enum([\"2x\", \"3x\", \"4x\"]))\n","import { distance } from \"@tscircuit/soup\"\nimport { z } from \"zod\"\n\nexport const point3 = z.object({\n x: distance,\n y: distance,\n z: distance,\n})\n","import { z } from \"zod\"\nimport { point3 } from \"./point3\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport const rotationPoint3 = z.object({\n x: z.union([z.number(), z.string()]),\n y: z.union([z.number(), z.string()]),\n z: z.union([z.number(), z.string()]),\n})\n\nexport interface CadModelBase {\n rotationOffset?:\n | number\n | { x: number | string; y: number | string; z: number | string }\n positionOffset?: {\n x: number | string\n y: number | string\n z: number | string\n }\n size?: { x: number | string; y: number | string; z: number | string }\n}\n\nexport const cadModelBase = z.object({\n rotationOffset: z.number().or(rotationPoint3).optional(),\n positionOffset: point3.optional(),\n size: point3.optional(),\n})\n\nexpectTypesMatch<CadModelBase, z.input<typeof cadModelBase>>(true)\n\nexport interface CadModelStl extends CadModelBase {\n stlUrl: string\n}\nexport const cadModelStl = cadModelBase.extend({\n stlUrl: z.string(),\n})\n\nexport interface CadModelObj extends CadModelBase {\n objUrl: string\n mtlUrl?: string\n}\nexport const cadModelObj = cadModelBase.extend({\n objUrl: z.string(),\n mtlUrl: z.string().optional(),\n})\n\nexport interface CadModelJscad extends CadModelBase {\n jscad: Record<string, any>\n}\nexport const cadModelJscad = cadModelBase.extend({\n jscad: z.record(z.any()),\n})\n\nexport type CadModelProp = string | CadModelStl | CadModelObj | CadModelJscad\n\nexport const cadModelProp = z.union([\n z.string(),\n cadModelStl,\n cadModelObj,\n cadModelJscad,\n])\n\ntype InferredCadModelProp = z.input<typeof cadModelProp>\nexpectTypesMatch<CadModelProp, InferredCadModelProp>(true)\n","import type { LayerRef } from \"@tscircuit/soup\"\nimport type { ReactElement } from \"react\"\nimport { z } from \"zod\"\n\n/**\n * This is an abbreviated definition of the soup elements that you can find here:\n * https://docs.tscircuit.com/api-reference/advanced/soup#pcb-smtpad\n */\nexport type FootprintSoupElements = {\n type: \"pcb_smtpad\" | \"pcb_plated_hole\"\n x: string | number\n y: string | number\n layer?: LayerRef\n holeDiameter?: string | number\n outerDiameter?: string | number\n shape?: \"circle\" | \"rect\"\n width?: string | number\n height?: string | number\n portHints?: string[]\n}\n\nexport type Footprint = string | ReactElement | FootprintSoupElements[]\nexport const footprintProp = z.custom<Footprint>((v) => true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\n/**\n * @deprecated Use SchematicPortArrangementWithPinCounts instead.\n */\nexport interface SchematicPortArrangementWithSizes {\n leftSize?: number\n topSize?: number\n rightSize?: number\n bottomSize?: number\n}\n\n/**\n * Specifies the number of pins on each side of the schematic box component.\n */\nexport interface SchematicPortArrangementWithPinCounts {\n leftPinCount?: number\n topPinCount?: number\n rightPinCount?: number\n bottomPinCount?: number\n}\n\nexport interface PinSideDefinition {\n pins: number[]\n direction:\n | \"top-to-bottom\"\n | \"left-to-right\"\n | \"bottom-to-top\"\n | \"right-to-left\"\n}\n\nexport interface SchematicPortArrangementWithSides {\n leftSide?: PinSideDefinition\n topSide?: PinSideDefinition\n rightSide?: PinSideDefinition\n bottomSide?: PinSideDefinition\n}\n\nexport type SchematicPortArrangement =\n | SchematicPortArrangementWithSizes\n | SchematicPortArrangementWithSides\n | SchematicPortArrangementWithPinCounts\n\nexport const explicitPinSideDefinition = z.object({\n pins: z.array(z.number()),\n direction: z.union([\n z.literal(\"top-to-bottom\"),\n z.literal(\"left-to-right\"),\n z.literal(\"bottom-to-top\"),\n z.literal(\"right-to-left\"),\n ]),\n})\n\nexport const schematicPortArrangement = z\n .object({\n leftSize: z.number().optional().describe(\"@deprecated, use leftPinCount\"),\n topSize: z.number().optional().describe(\"@deprecated, use topPinCount\"),\n rightSize: z.number().optional().describe(\"@deprecated, use rightPinCount\"),\n bottomSize: z\n .number()\n .optional()\n .describe(\"@deprecated, use bottomPinCount\"),\n })\n .or(\n z.object({\n leftPinCount: z.number().optional(),\n rightPinCount: z.number().optional(),\n topPinCount: z.number().optional(),\n bottomPinCount: z.number().optional(),\n }),\n )\n .or(\n z.object({\n leftSide: explicitPinSideDefinition.optional(),\n rightSide: explicitPinSideDefinition.optional(),\n topSide: explicitPinSideDefinition.optional(),\n bottomSide: explicitPinSideDefinition.optional(),\n }),\n )\n\nexpectTypesMatch<\n SchematicPortArrangement,\n z.input<typeof schematicPortArrangement>\n>(true)\n","import { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport type SchematicPinStyle = Record<\n string,\n {\n leftMargin?: number | string\n rightMargin?: number | string\n topMargin?: number | string\n bottomMargin?: number | string\n }\n>\n\nexport const schematicPinStyle = z.record(\n z.object({\n leftMargin: distance.optional(),\n rightMargin: distance.optional(),\n topMargin: distance.optional(),\n bottomMargin: distance.optional(),\n }),\n)\n\nexpectTypesMatch<SchematicPinStyle, z.input<typeof schematicPinStyle>>(true)\n","import { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport { point, type Point } from \"lib/common/point\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface BoardProps {\n width?: number | string\n height?: number | string\n outline?: Point[]\n pcbX?: number | string\n pcbY?: number | string\n layout?: any\n routingDisabled?: boolean\n children?: any\n}\n\nexport const boardProps = z.object({\n width: distance.optional(),\n height: distance.optional(),\n outline: z.array(point).optional(),\n pcbX: distance.optional().default(0),\n pcbY: distance.optional().default(0),\n layout: z.any().optional(),\n routingDisabled: z.boolean().optional(),\n children: z.any(),\n})\n\nexpectTypesMatch<BoardProps, z.input<typeof boardProps>>(true)\n","import { distance } from \"@tscircuit/soup\"\nimport { z } from \"zod\"\n\nexport const point = z.object({\n x: distance,\n y: distance,\n})\n\nexport type Point = { x: number | string; y: number | string }\n","import { z } from \"zod\"\nimport { distance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport {\n schematicPortArrangement,\n type SchematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\nimport {\n schematicPinStyle,\n type SchematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport type { Distance } from \"lib/common/distance\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface ChipProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string>\n schPortArrangement?: SchematicPortArrangement\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: Distance\n schWidth?: Distance\n schHeight?: Distance\n}\n\nexport const chipProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z.record(z.number().or(z.string()), z.string()).optional(),\n schPortArrangement: schematicPortArrangement.optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.optional(),\n})\n\n/**\n * @deprecated Use ChipProps instead.\n */\nexport const bugProps = chipProps\nexport type InferredChipProps = z.input<typeof chipProps>\n\nexpectTypesMatch<InferredChipProps, ChipProps>(true)\n","import { z } from \"zod\"\nimport {\n commonComponentProps,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport {\n schematicPinStyle,\n type SchematicPinStyle,\n} from \"lib/common/schematicPinStyle\"\nimport { distance } from \"@tscircuit/soup\"\nimport { expectTypesMatch } from \"lib/typecheck\"\nimport {\n schematicPortArrangement,\n type SchematicPortArrangement,\n} from \"lib/common/schematicPinDefinitions\"\n\nexport interface JumperProps extends CommonComponentProps {\n manufacturerPartNumber?: string\n pinLabels?: Record<number | string, string>\n schPinStyle?: SchematicPinStyle\n schPinSpacing?: number | string\n schWidth?: number | string\n schHeight?: number | string\n schDirection?: \"left\" | \"right\"\n schPortArrangement?: SchematicPortArrangement\n}\n\nexport const jumperProps = commonComponentProps.extend({\n manufacturerPartNumber: z.string().optional(),\n pinLabels: z.record(z.number().or(z.string()), z.string()).optional(),\n schPinStyle: schematicPinStyle.optional(),\n schPinSpacing: distance.optional(),\n schWidth: distance.optional(),\n schHeight: distance.optional(),\n schDirection: z.enum([\"left\", \"right\"]).optional(),\n schPortArrangement: schematicPortArrangement.optional(),\n})\n\ntype InferredJumperProps = z.input<typeof jumperProps>\nexpectTypesMatch<JumperProps, InferredJumperProps>(true)\n","import { z } from \"zod\"\nimport { resistance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n lrPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface ResistorProps extends CommonComponentProps {\n resistance: number | string\n pullupFor?: string\n pullupTo?: string\n pulldownFor?: string\n pulldownTo?: string\n}\n\nexport const resistorProps = commonComponentProps.extend({\n resistance,\n\n pullupFor: z.string().optional(),\n pullupTo: z.string().optional(),\n\n pulldownFor: z.string().optional(),\n pulldownTo: z.string().optional(),\n})\nexport const resistorPins = lrPins\n\ntype InferredResistorProps = z.input<typeof resistorProps>\nexpectTypesMatch<ResistorProps, InferredResistorProps>(true)\n","import { z } from \"zod\"\nimport { capacitance } from \"@tscircuit/soup\"\nimport {\n commonComponentProps,\n lrPins,\n lrPolarPins,\n type CommonComponentProps,\n} from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface CapacitorProps extends CommonComponentProps {\n capacitance: number | string\n\n decouplingFor?: string\n decouplingTo?: string\n\n bypassFor?: string\n bypassTo?: string\n}\n\nexport const capacitorProps = commonComponentProps.extend({\n capacitance,\n\n decouplingFor: z.string().optional(),\n decouplingTo: z.string().optional(),\n\n bypassFor: z.string().optional(),\n bypassTo: z.string().optional(),\n})\nexport const capacitorPins = lrPolarPins\n\nexpectTypesMatch<CapacitorProps, z.input<typeof capacitorProps>>(true)\n","import { z } from \"zod\"\nimport { commonLayoutProps, type CommonLayoutProps } from \"lib/common/layout\"\nimport type { LayoutBuilder } from \"@tscircuit/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface BaseGroupProps extends CommonLayoutProps {\n name?: string\n children?: any\n}\n\nexport interface SubcircuitGroupProps extends BaseGroupProps {\n subcircuit: true\n layout?: LayoutBuilder\n routingDisabled?: boolean\n}\n\nexport type GroupProps = SubcircuitGroupProps | BaseGroupProps\n\nexport const baseGroupProps = commonLayoutProps.extend({\n name: z.string().optional(),\n children: z.any().optional(),\n})\n\nexport const subcircuitGroupProps = baseGroupProps.extend({\n subcircuit: z.literal(true),\n layout: z.custom<LayoutBuilder>((v) => true).optional(),\n routingDisabled: z.boolean().optional(),\n})\n\nexport const groupProps = z.union([baseGroupProps, subcircuitGroupProps])\n\ntype InferredBaseGroupProps = z.input<typeof baseGroupProps>\ntype InferredSubcircuitGroupProps = z.input<typeof subcircuitGroupProps>\n\nexpectTypesMatch<BaseGroupProps, InferredBaseGroupProps>(true)\nexpectTypesMatch<SubcircuitGroupProps, InferredSubcircuitGroupProps>(true)\n\ntype InferredGroupProps = z.input<typeof groupProps>\nexpectTypesMatch<GroupProps, InferredGroupProps>(true)\n","import { z } from \"zod\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface NetProps {\n name: string\n}\n\nexport const netProps = z.object({\n name: z.string(),\n})\n\ntype InferredNetProps = z.input<typeof netProps>\nexpectTypesMatch<NetProps, InferredNetProps>(true)\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport { z } from \"zod\"\n\nexport interface ConstrainedLayoutProps {\n name?: string\n pcbOnly?: boolean\n schOnly?: boolean\n}\n\nexport const constrainedLayoutProps = z.object({\n name: z.string().optional(),\n pcbOnly: z.boolean().optional(),\n schOnly: z.boolean().optional(),\n})\n\nexport type InferredConstrainedLayoutProps = z.input<\n typeof constrainedLayoutProps\n>\n\nexpectTypesMatch<InferredConstrainedLayoutProps, ConstrainedLayoutProps>(true)\n","import { z } from \"zod\"\n\nexport type Distance = number | string\n\nexport { distance } from \"@tscircuit/soup\"\n","import { expectTypesMatch } from \"lib/typecheck\"\nimport type { Distance } from \"lib/common/distance\"\nimport { distance } from \"lib/common/distance\"\nimport { z } from \"zod\"\n\nexport type PcbXDistConstraint = {\n pcb?: true\n xDist: Distance\n\n /**\n * Selector for left component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 leftedge\", \".R1 center\"\n */\n left: string\n\n /**\n * Selector for right component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 leftedge\", \".R1 center\"\n */\n right: string\n\n /**\n * If true, the provided distance is the distance between the closest edges of\n * the left and right components\n */\n edgeToEdge?: true\n\n /**\n * If true, the provided distance is the distance between the centers of the\n * left and right components\n */\n centerToCenter?: true\n}\n\nexport type PcbYDistConstraint = {\n pcb?: true\n yDist: Distance\n\n /**\n * Selector for top component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 topedge\", \".R1 center\"\n */\n top: string\n\n /**\n * Selector for bottom component, e.g. \".U1\" or \".R1\", you can also specify the\n * edge or center of the component e.g. \".R1 bottomedge\", \".R1 center\"\n */\n bottom: string\n\n edgeToEdge?: true\n centerToCenter?: true\n}\n\nexport type PcbSameYConstraint = {\n pcb?: true\n sameY?: true\n\n /**\n * Selector for components, e.g. [\".U1\", \".R1\"], you can also specify the\n * edge or center of the component e.g. [\".R1 leftedge\", \".U1 center\"]\n */\n for: string[]\n}\n\nexport type PcbSameXConstraint = {\n pcb?: true\n sameX?: true\n /**\n * Selector for components, e.g. [\".U1\", \".R1\"], you can also specify the\n * edge or center of the component e.g. [\".R1 leftedge\", \".U1 center\"]\n */\n for: string[]\n}\n\nexport type ConstraintProps =\n | PcbXDistConstraint\n | PcbYDistConstraint\n | PcbSameYConstraint\n | PcbSameXConstraint\n\n// -----------------------------------------------------------------------------\n// Zod\n// -----------------------------------------------------------------------------\n\nexport const pcbXDistConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n xDist: distance,\n left: z.string(),\n right: z.string(),\n\n edgeToEdge: z.literal(true).optional(),\n centerToCenter: z.literal(true).optional(),\n})\nexpectTypesMatch<PcbXDistConstraint, z.input<typeof pcbXDistConstraintProps>>(\n true,\n)\n\nexport const pcbYDistConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n yDist: distance,\n top: z.string(),\n bottom: z.string(),\n\n edgeToEdge: z.literal(true).optional(),\n centerToCenter: z.literal(true).optional(),\n})\nexpectTypesMatch<PcbYDistConstraint, z.input<typeof pcbYDistConstraintProps>>(\n true,\n)\n\nexport const pcbSameYConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n sameY: z.literal(true).optional(),\n for: z.array(z.string()),\n})\nexpectTypesMatch<PcbSameYConstraint, z.input<typeof pcbSameYConstraintProps>>(\n true,\n)\n\nexport const pcbSameXConstraintProps = z.object({\n pcb: z.literal(true).optional(),\n sameX: z.literal(true).optional(),\n for: z.array(z.string()),\n})\nexpectTypesMatch<PcbSameXConstraint, z.input<typeof pcbSameXConstraintProps>>(\n true,\n)\n\nexport const constraintProps = z.union([\n pcbXDistConstraintProps,\n pcbYDistConstraintProps,\n pcbSameYConstraintProps,\n pcbSameXConstraintProps,\n])\n\nexpectTypesMatch<ConstraintProps, z.input<typeof constraintProps>>(true)\n","import {\n pcbLayoutProps,\n type CommonLayoutProps,\n type PcbLayoutProps,\n} from \"lib/common/layout\"\nimport { z } from \"zod\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { portHints, type PortHints } from \"lib/common/portHints\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface RectSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"rect\"\n width: Distance\n height: Distance\n portHints?: PortHints\n}\n\nexport interface CircleSmtPadProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n shape: \"circle\"\n radius: Distance\n portHints?: PortHints\n}\n\nexport type SmtPadProps = RectSmtPadProps | CircleSmtPadProps\n\n// ----------------------------------------------------------------------------\n// Zod\n// ----------------------------------------------------------------------------\n\nexport const rectSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"rect\"),\n width: distance,\n height: distance,\n portHints: portHints.optional(),\n })\ntype InferredRectSmtPadProps = z.input<typeof rectSmtPadProps>\nexpectTypesMatch<InferredRectSmtPadProps, RectSmtPadProps>(true)\n\nexport const circleSmtPadProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n shape: z.literal(\"circle\"),\n radius: distance,\n portHints: portHints.optional(),\n })\ntype InferredCircleSmtPadProps = z.input<typeof circleSmtPadProps>\nexpectTypesMatch<InferredCircleSmtPadProps, CircleSmtPadProps>(true)\n\nexport const smtPadProps = z.union([circleSmtPadProps, rectSmtPadProps])\n\nexport type InferredSmtPadProps = z.input<typeof smtPadProps>\nexpectTypesMatch<InferredSmtPadProps, SmtPadProps>(true)\n","import { z } from \"zod\"\nimport { distance, type Distance } from \"lib/common/distance\"\nimport { pcbLayoutProps, type PcbLayoutProps } from \"lib/common/layout\"\nimport { expectTypesMatch } from \"lib/typecheck\"\n\nexport interface HoleProps extends Omit<PcbLayoutProps, \"pcbRotation\"> {\n name?: string\n diameter?: Distance\n radius?: Distance\n}\n\nexport const holeProps = pcbLayoutProps\n .omit({ pcbRotation: true })\n .extend({\n name: z.string().optional(),\n diameter: distance.optional(),\n radius: distance.optional(),\n })\n .transform((d) => ({\n ...d,\n diameter: d.diameter ?? 2 * d.radius!,\n radius: d.radius ?? d.diameter! / 2,\n }))\n\nexport type InferredHoleProps = z.input<typeof holeProps>\n\nexpectTypesMatch<HoleProps, InferredHoleProps>(true)\n"],"mappings":"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","names":["distanceOrMultiplier","import_soup","import_zod","import_zod","import_zod","import_soup","import_zod","import_zod","import_zod","import_zod","import_zod","import_soup","import_zod","import_soup","import_soup","import_zod","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_soup","import_zod","import_zod","import_zod","import_zod","import_soup","import_zod","import_zod","import_zod","distanceOrMultiplier"]}
package/lib/index.ts CHANGED
@@ -292,6 +292,7 @@ export const fabricationNoteTextProps = pcbLayoutProps.extend({
292
292
  .default("center"),
293
293
  font: z.enum(["tscircuit2024"]).optional(),
294
294
  fontSize: length.optional(),
295
+ color: z.string().optional(),
295
296
  })
296
297
  export type FabricationNoteTextProps = z.input<typeof fabricationNoteTextProps>
297
298
 
@@ -300,5 +301,6 @@ export const fabricationNotePathProps = pcbLayoutProps
300
301
  .extend({
301
302
  route: z.array(route_hint_point),
302
303
  strokeWidth: length.optional(),
304
+ color: z.string().optional(),
303
305
  })
304
306
  export type FabricationNotePathProps = z.input<typeof fabricationNotePathProps>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/props",
3
- "version": "0.0.62",
3
+ "version": "0.0.63",
4
4
  "description": "Props for tscircuit builtin component types",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -19,7 +19,7 @@
19
19
  "devDependencies": {
20
20
  "@biomejs/biome": "^1.8.3",
21
21
  "@tscircuit/layout": "^0.0.11",
22
- "@tscircuit/soup": "^0.0.50",
22
+ "@tscircuit/soup": "^0.0.69",
23
23
  "@types/bun": "^1.1.8",
24
24
  "@types/node": "^20.12.11",
25
25
  "@types/react": "^18.3.2",