@tscircuit/props 0.0.448 → 0.0.450

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.
@@ -0,0 +1,115 @@
1
+ import { distance } from "circuit-json"
2
+ import { expectTypesMatch } from "lib/typecheck"
3
+ import { z } from "zod"
4
+ import {
5
+ kicadAt,
6
+ kicadFont,
7
+ type KicadAt,
8
+ type KicadFont,
9
+ } from "./kicadFootprintMetadata"
10
+
11
+ export interface KicadSymbolPinNumbers {
12
+ hide?: boolean
13
+ }
14
+
15
+ export const kicadSymbolPinNumbers = z.object({
16
+ hide: z.boolean().optional(),
17
+ })
18
+
19
+ type InferredKicadSymbolPinNumbers = z.input<typeof kicadSymbolPinNumbers>
20
+ expectTypesMatch<KicadSymbolPinNumbers, InferredKicadSymbolPinNumbers>(true)
21
+
22
+ export interface KicadSymbolPinNames {
23
+ offset?: number | string
24
+ hide?: boolean
25
+ }
26
+
27
+ export const kicadSymbolPinNames = z.object({
28
+ offset: distance.optional(),
29
+ hide: z.boolean().optional(),
30
+ })
31
+
32
+ type InferredKicadSymbolPinNames = z.input<typeof kicadSymbolPinNames>
33
+ expectTypesMatch<KicadSymbolPinNames, InferredKicadSymbolPinNames>(true)
34
+
35
+ export interface KicadSymbolEffects {
36
+ font?: KicadFont
37
+ justify?: string | string[]
38
+ hide?: boolean
39
+ }
40
+
41
+ export const kicadSymbolEffects = z.object({
42
+ font: kicadFont.optional(),
43
+ justify: z.union([z.string(), z.array(z.string())]).optional(),
44
+ hide: z.boolean().optional(),
45
+ })
46
+
47
+ type InferredKicadSymbolEffects = z.input<typeof kicadSymbolEffects>
48
+ expectTypesMatch<KicadSymbolEffects, InferredKicadSymbolEffects>(true)
49
+
50
+ export interface KicadSymbolProperty {
51
+ value: string
52
+ id?: number | string
53
+ at?: KicadAt
54
+ effects?: KicadSymbolEffects
55
+ }
56
+
57
+ export const kicadSymbolProperty = z.object({
58
+ value: z.string(),
59
+ id: z.union([z.number(), z.string()]).optional(),
60
+ at: kicadAt.optional(),
61
+ effects: kicadSymbolEffects.optional(),
62
+ })
63
+
64
+ type InferredKicadSymbolProperty = z.input<typeof kicadSymbolProperty>
65
+ expectTypesMatch<KicadSymbolProperty, InferredKicadSymbolProperty>(true)
66
+
67
+ export interface KicadSymbolProperties {
68
+ Reference?: KicadSymbolProperty
69
+ Value?: KicadSymbolProperty
70
+ Footprint?: KicadSymbolProperty
71
+ Datasheet?: KicadSymbolProperty
72
+ Description?: KicadSymbolProperty
73
+ ki_keywords?: KicadSymbolProperty
74
+ ki_fp_filters?: KicadSymbolProperty
75
+ }
76
+
77
+ export const kicadSymbolProperties = z.object({
78
+ Reference: kicadSymbolProperty.optional(),
79
+ Value: kicadSymbolProperty.optional(),
80
+ Footprint: kicadSymbolProperty.optional(),
81
+ Datasheet: kicadSymbolProperty.optional(),
82
+ Description: kicadSymbolProperty.optional(),
83
+ ki_keywords: kicadSymbolProperty.optional(),
84
+ ki_fp_filters: kicadSymbolProperty.optional(),
85
+ })
86
+
87
+ type InferredKicadSymbolProperties = z.input<typeof kicadSymbolProperties>
88
+ expectTypesMatch<KicadSymbolProperties, InferredKicadSymbolProperties>(true)
89
+
90
+ export interface KicadSymbolMetadata {
91
+ symbolName?: string
92
+ extends?: string
93
+ pinNumbers?: KicadSymbolPinNumbers
94
+ pinNames?: KicadSymbolPinNames
95
+ excludeFromSim?: boolean
96
+ inBom?: boolean
97
+ onBoard?: boolean
98
+ properties?: KicadSymbolProperties
99
+ embeddedFonts?: boolean
100
+ }
101
+
102
+ export const kicadSymbolMetadata = z.object({
103
+ symbolName: z.string().optional(),
104
+ extends: z.string().optional(),
105
+ pinNumbers: kicadSymbolPinNumbers.optional(),
106
+ pinNames: kicadSymbolPinNames.optional(),
107
+ excludeFromSim: z.boolean().optional(),
108
+ inBom: z.boolean().optional(),
109
+ onBoard: z.boolean().optional(),
110
+ properties: kicadSymbolProperties.optional(),
111
+ embeddedFonts: z.boolean().optional(),
112
+ })
113
+
114
+ type InferredKicadSymbolMetadata = z.input<typeof kicadSymbolMetadata>
115
+ expectTypesMatch<KicadSymbolMetadata, InferredKicadSymbolMetadata>(true)
@@ -14,6 +14,10 @@ import {
14
14
  type KicadFootprintMetadata,
15
15
  kicadFootprintMetadata,
16
16
  } from "./kicadFootprintMetadata"
17
+ import {
18
+ type KicadSymbolMetadata,
19
+ kicadSymbolMetadata,
20
+ } from "./kicadSymbolMetadata"
17
21
  import { pcbStyle, type PcbStyle } from "./pcbStyle"
18
22
  import { schStyle, type SchStyle } from "./schStyle"
19
23
  import { type SymbolProp, symbolProp } from "./symbolProp"
@@ -253,6 +257,7 @@ export interface CommonComponentProps<PinLabel extends string = string>
253
257
  supplierPartNumbers?: SupplierPartNumbers
254
258
  cadModel?: CadModelProp
255
259
  kicadFootprintMetadata?: KicadFootprintMetadata
260
+ kicadSymbolMetadata?: KicadSymbolMetadata
256
261
  children?: any
257
262
  symbolName?: string
258
263
  doNotPlace?: boolean
@@ -266,6 +271,7 @@ export interface CommonComponentProps<PinLabel extends string = string>
266
271
  * Whether to show this component's CAD model as translucent in the 3D viewer.
267
272
  */
268
273
  showAsTranslucentModel?: boolean
274
+ mfn?: string
269
275
  }
270
276
 
271
277
  export const commonComponentProps = commonLayoutProps
@@ -277,6 +283,7 @@ export const commonComponentProps = commonLayoutProps
277
283
  datasheetUrl: z.string().optional(),
278
284
  cadModel: cadModelProp.optional(),
279
285
  kicadFootprintMetadata: kicadFootprintMetadata.optional(),
286
+ kicadSymbolMetadata: kicadSymbolMetadata.optional(),
280
287
  children: z.any().optional(),
281
288
  symbolName: z.string().optional(),
282
289
  doNotPlace: z.boolean().optional(),
@@ -293,6 +300,7 @@ export const commonComponentProps = commonLayoutProps
293
300
  "Whether to show this component's CAD model as translucent in the 3D viewer.",
294
301
  ),
295
302
  pinAttributes: z.record(z.string(), pinAttributeMap).optional(),
303
+ mfn: z.string().describe("Manufacturer Part Number").optional(),
296
304
  })
297
305
 
298
306
  type InferredCommonComponentProps = z.input<typeof commonComponentProps>
package/lib/index.ts CHANGED
@@ -15,6 +15,7 @@ export * from "./common/cadModel"
15
15
  export * from "./common/schematicPinLabel"
16
16
  export * from "./common/schematicSize"
17
17
  export * from "./common/kicadFootprintMetadata"
18
+ export * from "./common/kicadSymbolMetadata"
18
19
 
19
20
  export * from "./components/board"
20
21
  export * from "./components/panel"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tscircuit/props",
3
- "version": "0.0.448",
3
+ "version": "0.0.450",
4
4
  "description": "Props for tscircuit builtin component types",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",