@tscircuit/props 0.0.447 → 0.0.449
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 +99991 -2533
- package/dist/index.js +1176 -1033
- package/dist/index.js.map +1 -1
- package/lib/common/kicadFootprintMetadata.ts +174 -0
- package/lib/common/kicadSymbolMetadata.ts +115 -0
- package/lib/common/layout.ts +12 -0
- package/lib/index.ts +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { distance, rotation } from "circuit-json"
|
|
2
|
+
import { expectTypesMatch } from "lib/typecheck"
|
|
3
|
+
import { z } from "zod"
|
|
4
|
+
import { point } from "./point"
|
|
5
|
+
import { point3 } from "./point3"
|
|
6
|
+
|
|
7
|
+
export interface KicadAt {
|
|
8
|
+
x: number | string
|
|
9
|
+
y: number | string
|
|
10
|
+
rotation?: number | string
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const kicadAt = point.extend({
|
|
14
|
+
rotation: rotation.optional(),
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
type InferredKicadAt = z.input<typeof kicadAt>
|
|
18
|
+
expectTypesMatch<KicadAt, InferredKicadAt>(true)
|
|
19
|
+
|
|
20
|
+
export interface KicadFont {
|
|
21
|
+
size?: { x: number | string; y: number | string }
|
|
22
|
+
thickness?: number | string
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export const kicadFont = z.object({
|
|
26
|
+
size: point.optional(),
|
|
27
|
+
thickness: distance.optional(),
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
type InferredKicadFont = z.input<typeof kicadFont>
|
|
31
|
+
expectTypesMatch<KicadFont, InferredKicadFont>(true)
|
|
32
|
+
|
|
33
|
+
export interface KicadEffects {
|
|
34
|
+
font?: KicadFont
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const kicadEffects = z.object({
|
|
38
|
+
font: kicadFont.optional(),
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
type InferredKicadEffects = z.input<typeof kicadEffects>
|
|
42
|
+
expectTypesMatch<KicadEffects, InferredKicadEffects>(true)
|
|
43
|
+
|
|
44
|
+
export interface KicadProperty {
|
|
45
|
+
value: string
|
|
46
|
+
at?: KicadAt
|
|
47
|
+
layer?: string
|
|
48
|
+
uuid?: string
|
|
49
|
+
hide?: boolean
|
|
50
|
+
effects?: KicadEffects
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export const kicadProperty = z.object({
|
|
54
|
+
value: z.string(),
|
|
55
|
+
at: kicadAt.optional(),
|
|
56
|
+
layer: z.string().optional(),
|
|
57
|
+
uuid: z.string().optional(),
|
|
58
|
+
hide: z.boolean().optional(),
|
|
59
|
+
effects: kicadEffects.optional(),
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
type InferredKicadProperty = z.input<typeof kicadProperty>
|
|
63
|
+
expectTypesMatch<KicadProperty, InferredKicadProperty>(true)
|
|
64
|
+
|
|
65
|
+
export interface KicadFootprintProperties {
|
|
66
|
+
Reference?: KicadProperty
|
|
67
|
+
Value?: KicadProperty
|
|
68
|
+
Datasheet?: KicadProperty
|
|
69
|
+
Description?: KicadProperty
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const kicadFootprintProperties = z.object({
|
|
73
|
+
Reference: kicadProperty.optional(),
|
|
74
|
+
Value: kicadProperty.optional(),
|
|
75
|
+
Datasheet: kicadProperty.optional(),
|
|
76
|
+
Description: kicadProperty.optional(),
|
|
77
|
+
})
|
|
78
|
+
|
|
79
|
+
type InferredKicadFootprintProperties = z.input<typeof kicadFootprintProperties>
|
|
80
|
+
expectTypesMatch<KicadFootprintProperties, InferredKicadFootprintProperties>(
|
|
81
|
+
true,
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
export interface KicadFootprintAttributes {
|
|
85
|
+
through_hole?: boolean
|
|
86
|
+
smd?: boolean
|
|
87
|
+
exclude_from_pos_files?: boolean
|
|
88
|
+
exclude_from_bom?: boolean
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export const kicadFootprintAttributes = z.object({
|
|
92
|
+
through_hole: z.boolean().optional(),
|
|
93
|
+
smd: z.boolean().optional(),
|
|
94
|
+
exclude_from_pos_files: z.boolean().optional(),
|
|
95
|
+
exclude_from_bom: z.boolean().optional(),
|
|
96
|
+
})
|
|
97
|
+
|
|
98
|
+
type InferredKicadFootprintAttributes = z.input<typeof kicadFootprintAttributes>
|
|
99
|
+
expectTypesMatch<KicadFootprintAttributes, InferredKicadFootprintAttributes>(
|
|
100
|
+
true,
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
export interface KicadFootprintPad {
|
|
104
|
+
name: string
|
|
105
|
+
type: string
|
|
106
|
+
shape?: string
|
|
107
|
+
at?: KicadAt
|
|
108
|
+
size?: { x: number | string; y: number | string }
|
|
109
|
+
drill?: number | string
|
|
110
|
+
layers?: string[]
|
|
111
|
+
removeUnusedLayers?: boolean
|
|
112
|
+
uuid?: string
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export const kicadFootprintPad = z.object({
|
|
116
|
+
name: z.string(),
|
|
117
|
+
type: z.string(),
|
|
118
|
+
shape: z.string().optional(),
|
|
119
|
+
at: kicadAt.optional(),
|
|
120
|
+
size: point.optional(),
|
|
121
|
+
drill: distance.optional(),
|
|
122
|
+
layers: z.array(z.string()).optional(),
|
|
123
|
+
removeUnusedLayers: z.boolean().optional(),
|
|
124
|
+
uuid: z.string().optional(),
|
|
125
|
+
})
|
|
126
|
+
|
|
127
|
+
type InferredKicadFootprintPad = z.input<typeof kicadFootprintPad>
|
|
128
|
+
expectTypesMatch<KicadFootprintPad, InferredKicadFootprintPad>(true)
|
|
129
|
+
|
|
130
|
+
export interface KicadFootprintModel {
|
|
131
|
+
path: string
|
|
132
|
+
offset?: { x: number | string; y: number | string; z: number | string }
|
|
133
|
+
scale?: { x: number | string; y: number | string; z: number | string }
|
|
134
|
+
rotate?: { x: number | string; y: number | string; z: number | string }
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export const kicadFootprintModel = z.object({
|
|
138
|
+
path: z.string(),
|
|
139
|
+
offset: point3.optional(),
|
|
140
|
+
scale: point3.optional(),
|
|
141
|
+
rotate: point3.optional(),
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
type InferredKicadFootprintModel = z.input<typeof kicadFootprintModel>
|
|
145
|
+
expectTypesMatch<KicadFootprintModel, InferredKicadFootprintModel>(true)
|
|
146
|
+
|
|
147
|
+
export interface KicadFootprintMetadata {
|
|
148
|
+
footprintName?: string
|
|
149
|
+
version?: number | string
|
|
150
|
+
generator?: string
|
|
151
|
+
generatorVersion?: number | string
|
|
152
|
+
layer?: string
|
|
153
|
+
properties?: KicadFootprintProperties
|
|
154
|
+
attributes?: KicadFootprintAttributes
|
|
155
|
+
pads?: KicadFootprintPad[]
|
|
156
|
+
embeddedFonts?: boolean
|
|
157
|
+
model?: KicadFootprintModel
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export const kicadFootprintMetadata = z.object({
|
|
161
|
+
footprintName: z.string().optional(),
|
|
162
|
+
version: z.union([z.number(), z.string()]).optional(),
|
|
163
|
+
generator: z.string().optional(),
|
|
164
|
+
generatorVersion: z.union([z.number(), z.string()]).optional(),
|
|
165
|
+
layer: z.string().optional(),
|
|
166
|
+
properties: kicadFootprintProperties.optional(),
|
|
167
|
+
attributes: kicadFootprintAttributes.optional(),
|
|
168
|
+
pads: z.array(kicadFootprintPad).optional(),
|
|
169
|
+
embeddedFonts: z.boolean().optional(),
|
|
170
|
+
model: kicadFootprintModel.optional(),
|
|
171
|
+
})
|
|
172
|
+
|
|
173
|
+
type InferredKicadFootprintMetadata = z.input<typeof kicadFootprintMetadata>
|
|
174
|
+
expectTypesMatch<KicadFootprintMetadata, InferredKicadFootprintMetadata>(true)
|
|
@@ -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)
|
package/lib/common/layout.ts
CHANGED
|
@@ -10,6 +10,14 @@ import { pcbCoordinate } from "./distance"
|
|
|
10
10
|
import { z } from "zod"
|
|
11
11
|
import { type CadModelProp, cadModelProp } from "./cadModel"
|
|
12
12
|
import { type FootprintProp, footprintProp } from "./footprintProp"
|
|
13
|
+
import {
|
|
14
|
+
type KicadFootprintMetadata,
|
|
15
|
+
kicadFootprintMetadata,
|
|
16
|
+
} from "./kicadFootprintMetadata"
|
|
17
|
+
import {
|
|
18
|
+
type KicadSymbolMetadata,
|
|
19
|
+
kicadSymbolMetadata,
|
|
20
|
+
} from "./kicadSymbolMetadata"
|
|
13
21
|
import { pcbStyle, type PcbStyle } from "./pcbStyle"
|
|
14
22
|
import { schStyle, type SchStyle } from "./schStyle"
|
|
15
23
|
import { type SymbolProp, symbolProp } from "./symbolProp"
|
|
@@ -248,6 +256,8 @@ export interface CommonComponentProps<PinLabel extends string = string>
|
|
|
248
256
|
pinAttributes?: Record<PinLabel, PinAttributeMap>
|
|
249
257
|
supplierPartNumbers?: SupplierPartNumbers
|
|
250
258
|
cadModel?: CadModelProp
|
|
259
|
+
kicadFootprintMetadata?: KicadFootprintMetadata
|
|
260
|
+
kicadSymbolMetadata?: KicadSymbolMetadata
|
|
251
261
|
children?: any
|
|
252
262
|
symbolName?: string
|
|
253
263
|
doNotPlace?: boolean
|
|
@@ -271,6 +281,8 @@ export const commonComponentProps = commonLayoutProps
|
|
|
271
281
|
displayName: z.string().optional(),
|
|
272
282
|
datasheetUrl: z.string().optional(),
|
|
273
283
|
cadModel: cadModelProp.optional(),
|
|
284
|
+
kicadFootprintMetadata: kicadFootprintMetadata.optional(),
|
|
285
|
+
kicadSymbolMetadata: kicadSymbolMetadata.optional(),
|
|
274
286
|
children: z.any().optional(),
|
|
275
287
|
symbolName: z.string().optional(),
|
|
276
288
|
doNotPlace: z.boolean().optional(),
|
package/lib/index.ts
CHANGED
|
@@ -14,6 +14,8 @@ export * from "./common/schematicPinStyle"
|
|
|
14
14
|
export * from "./common/cadModel"
|
|
15
15
|
export * from "./common/schematicPinLabel"
|
|
16
16
|
export * from "./common/schematicSize"
|
|
17
|
+
export * from "./common/kicadFootprintMetadata"
|
|
18
|
+
export * from "./common/kicadSymbolMetadata"
|
|
17
19
|
|
|
18
20
|
export * from "./components/board"
|
|
19
21
|
export * from "./components/panel"
|