@tscircuit/props 0.0.688 → 0.0.689

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -632,6 +632,7 @@ export interface CadAssemblyProps {
632
632
 
633
633
  ```ts
634
634
  export interface CadModelProps extends CadModelBase {
635
+ /** Canonical model URL after parsing; authored model strings resolve to this field. */
635
636
  modelUrl: string;
636
637
  stepUrl?: string;
637
638
  pcbX?: Distance;
package/dist/index.d.ts CHANGED
@@ -217975,7 +217975,9 @@ declare const cadassemblyProps: z.ZodObject<{
217975
217975
  }>;
217976
217976
  type CadAssemblyPropsInput = z.input<typeof cadassemblyProps>;
217977
217977
 
217978
+ /** Parsed CAD model props. Author model strings with CadModelPropsInput. */
217978
217979
  interface CadModelProps extends CadModelBase {
217980
+ /** Canonical model URL after parsing; authored model strings resolve to this field. */
217979
217981
  modelUrl: string;
217980
217982
  stepUrl?: string;
217981
217983
  pcbX?: Distance;
@@ -217988,7 +217990,435 @@ interface CadModelProps extends CadModelBase {
217988
217990
  pcbOffsetY?: Distance;
217989
217991
  pcbZ?: Distance;
217990
217992
  }
217991
- declare const cadmodelProps: z.ZodUnion<[z.ZodNull, z.ZodType<string, z.ZodTypeDef, string>, z.ZodObject<{
217993
+ /**
217994
+ * Object inputs require exactly one of model or modelUrl. Modelprinter strings
217995
+ * are trimmed and resolved to modelUrl; HTTP(S) model URLs are preserved.
217996
+ * Parsed objects retain the existing CadModelProps shape, without a model field.
217997
+ * Existing modelUrl objects, bare URL strings, and null remain supported.
217998
+ */
217999
+ declare const cadmodelProps: z.ZodUnion<[z.ZodNull, z.ZodType<string, z.ZodTypeDef, string>, z.ZodPipeline<z.ZodEffects<z.ZodEffects<z.ZodObject<{
218000
+ rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
218001
+ x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
218002
+ y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
218003
+ z: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
218004
+ }, "strip", z.ZodTypeAny, {
218005
+ x: string | number;
218006
+ y: string | number;
218007
+ z: string | number;
218008
+ }, {
218009
+ x: string | number;
218010
+ y: string | number;
218011
+ z: string | number;
218012
+ }>]>>;
218013
+ positionOffset: z.ZodOptional<z.ZodObject<{
218014
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218015
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218016
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218017
+ }, "strip", z.ZodTypeAny, {
218018
+ x: number;
218019
+ y: number;
218020
+ z: number;
218021
+ }, {
218022
+ x: string | number;
218023
+ y: string | number;
218024
+ z: string | number;
218025
+ }>>;
218026
+ modelOriginPosition: z.ZodOptional<z.ZodObject<{
218027
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218028
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218029
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218030
+ }, "strip", z.ZodTypeAny, {
218031
+ x: number;
218032
+ y: number;
218033
+ z: number;
218034
+ }, {
218035
+ x: string | number;
218036
+ y: string | number;
218037
+ z: string | number;
218038
+ }>>;
218039
+ modelBounds: z.ZodOptional<z.ZodObject<{
218040
+ min: z.ZodObject<{
218041
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218042
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218043
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218044
+ }, "strip", z.ZodTypeAny, {
218045
+ x: number;
218046
+ y: number;
218047
+ z: number;
218048
+ }, {
218049
+ x: string | number;
218050
+ y: string | number;
218051
+ z: string | number;
218052
+ }>;
218053
+ max: z.ZodObject<{
218054
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218055
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218056
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218057
+ }, "strip", z.ZodTypeAny, {
218058
+ x: number;
218059
+ y: number;
218060
+ z: number;
218061
+ }, {
218062
+ x: string | number;
218063
+ y: string | number;
218064
+ z: string | number;
218065
+ }>;
218066
+ }, "strip", z.ZodTypeAny, {
218067
+ min: {
218068
+ x: number;
218069
+ y: number;
218070
+ z: number;
218071
+ };
218072
+ max: {
218073
+ x: number;
218074
+ y: number;
218075
+ z: number;
218076
+ };
218077
+ }, {
218078
+ min: {
218079
+ x: string | number;
218080
+ y: string | number;
218081
+ z: string | number;
218082
+ };
218083
+ max: {
218084
+ x: string | number;
218085
+ y: string | number;
218086
+ z: string | number;
218087
+ };
218088
+ }>>;
218089
+ size: z.ZodOptional<z.ZodObject<{
218090
+ x: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218091
+ y: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218092
+ z: z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>;
218093
+ }, "strip", z.ZodTypeAny, {
218094
+ x: number;
218095
+ y: number;
218096
+ z: number;
218097
+ }, {
218098
+ x: string | number;
218099
+ y: string | number;
218100
+ z: string | number;
218101
+ }>>;
218102
+ modelUnitToMmScale: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
218103
+ modelBoardNormalDirection: z.ZodOptional<z.ZodEnum<["x+", "x-", "y+", "y-", "z+", "z-"]>>;
218104
+ pcbRotationOffset: z.ZodOptional<z.ZodNumber>;
218105
+ zOffsetFromSurface: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
218106
+ showAsTranslucentModel: z.ZodOptional<z.ZodBoolean>;
218107
+ stepUrl: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
218108
+ } & {
218109
+ /** Modelprinter specification or HTTP(S) URL; mutually exclusive with modelUrl. */
218110
+ model: z.ZodOptional<z.ZodString>;
218111
+ modelUrl: z.ZodOptional<z.ZodType<string, z.ZodTypeDef, string>>;
218112
+ } & {
218113
+ pcbX: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>]>>;
218114
+ pcbY: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>]>>;
218115
+ pcbLeftEdgeX: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>]>>;
218116
+ pcbRightEdgeX: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>]>>;
218117
+ pcbTopEdgeY: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>]>>;
218118
+ pcbBottomEdgeY: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>]>>;
218119
+ pcbOffsetX: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
218120
+ pcbOffsetY: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
218121
+ pcbZ: z.ZodOptional<z.ZodEffects<z.ZodUnion<[z.ZodString, z.ZodNumber]>, number, string | number>>;
218122
+ }, "strip", z.ZodTypeAny, {
218123
+ rotationOffset?: number | {
218124
+ x: string | number;
218125
+ y: string | number;
218126
+ z: string | number;
218127
+ } | undefined;
218128
+ positionOffset?: {
218129
+ x: number;
218130
+ y: number;
218131
+ z: number;
218132
+ } | undefined;
218133
+ modelOriginPosition?: {
218134
+ x: number;
218135
+ y: number;
218136
+ z: number;
218137
+ } | undefined;
218138
+ modelBounds?: {
218139
+ min: {
218140
+ x: number;
218141
+ y: number;
218142
+ z: number;
218143
+ };
218144
+ max: {
218145
+ x: number;
218146
+ y: number;
218147
+ z: number;
218148
+ };
218149
+ } | undefined;
218150
+ size?: {
218151
+ x: number;
218152
+ y: number;
218153
+ z: number;
218154
+ } | undefined;
218155
+ modelUnitToMmScale?: number | undefined;
218156
+ modelBoardNormalDirection?: "x+" | "x-" | "y+" | "y-" | "z+" | "z-" | undefined;
218157
+ pcbRotationOffset?: number | undefined;
218158
+ zOffsetFromSurface?: number | undefined;
218159
+ showAsTranslucentModel?: boolean | undefined;
218160
+ stepUrl?: string | undefined;
218161
+ model?: string | undefined;
218162
+ modelUrl?: string | undefined;
218163
+ pcbX?: string | number | undefined;
218164
+ pcbY?: string | number | undefined;
218165
+ pcbLeftEdgeX?: string | number | undefined;
218166
+ pcbRightEdgeX?: string | number | undefined;
218167
+ pcbTopEdgeY?: string | number | undefined;
218168
+ pcbBottomEdgeY?: string | number | undefined;
218169
+ pcbOffsetX?: number | undefined;
218170
+ pcbOffsetY?: number | undefined;
218171
+ pcbZ?: number | undefined;
218172
+ }, {
218173
+ rotationOffset?: number | {
218174
+ x: string | number;
218175
+ y: string | number;
218176
+ z: string | number;
218177
+ } | undefined;
218178
+ positionOffset?: {
218179
+ x: string | number;
218180
+ y: string | number;
218181
+ z: string | number;
218182
+ } | undefined;
218183
+ modelOriginPosition?: {
218184
+ x: string | number;
218185
+ y: string | number;
218186
+ z: string | number;
218187
+ } | undefined;
218188
+ modelBounds?: {
218189
+ min: {
218190
+ x: string | number;
218191
+ y: string | number;
218192
+ z: string | number;
218193
+ };
218194
+ max: {
218195
+ x: string | number;
218196
+ y: string | number;
218197
+ z: string | number;
218198
+ };
218199
+ } | undefined;
218200
+ size?: {
218201
+ x: string | number;
218202
+ y: string | number;
218203
+ z: string | number;
218204
+ } | undefined;
218205
+ modelUnitToMmScale?: string | number | undefined;
218206
+ modelBoardNormalDirection?: "x+" | "x-" | "y+" | "y-" | "z+" | "z-" | undefined;
218207
+ pcbRotationOffset?: number | undefined;
218208
+ zOffsetFromSurface?: string | number | undefined;
218209
+ showAsTranslucentModel?: boolean | undefined;
218210
+ stepUrl?: string | undefined;
218211
+ model?: string | undefined;
218212
+ modelUrl?: string | undefined;
218213
+ pcbX?: string | number | undefined;
218214
+ pcbY?: string | number | undefined;
218215
+ pcbLeftEdgeX?: string | number | undefined;
218216
+ pcbRightEdgeX?: string | number | undefined;
218217
+ pcbTopEdgeY?: string | number | undefined;
218218
+ pcbBottomEdgeY?: string | number | undefined;
218219
+ pcbOffsetX?: string | number | undefined;
218220
+ pcbOffsetY?: string | number | undefined;
218221
+ pcbZ?: string | number | undefined;
218222
+ }>, {
218223
+ rotationOffset?: number | {
218224
+ x: string | number;
218225
+ y: string | number;
218226
+ z: string | number;
218227
+ } | undefined;
218228
+ positionOffset?: {
218229
+ x: number;
218230
+ y: number;
218231
+ z: number;
218232
+ } | undefined;
218233
+ modelOriginPosition?: {
218234
+ x: number;
218235
+ y: number;
218236
+ z: number;
218237
+ } | undefined;
218238
+ modelBounds?: {
218239
+ min: {
218240
+ x: number;
218241
+ y: number;
218242
+ z: number;
218243
+ };
218244
+ max: {
218245
+ x: number;
218246
+ y: number;
218247
+ z: number;
218248
+ };
218249
+ } | undefined;
218250
+ size?: {
218251
+ x: number;
218252
+ y: number;
218253
+ z: number;
218254
+ } | undefined;
218255
+ modelUnitToMmScale?: number | undefined;
218256
+ modelBoardNormalDirection?: "x+" | "x-" | "y+" | "y-" | "z+" | "z-" | undefined;
218257
+ pcbRotationOffset?: number | undefined;
218258
+ zOffsetFromSurface?: number | undefined;
218259
+ showAsTranslucentModel?: boolean | undefined;
218260
+ stepUrl?: string | undefined;
218261
+ model?: string | undefined;
218262
+ modelUrl?: string | undefined;
218263
+ pcbX?: string | number | undefined;
218264
+ pcbY?: string | number | undefined;
218265
+ pcbLeftEdgeX?: string | number | undefined;
218266
+ pcbRightEdgeX?: string | number | undefined;
218267
+ pcbTopEdgeY?: string | number | undefined;
218268
+ pcbBottomEdgeY?: string | number | undefined;
218269
+ pcbOffsetX?: number | undefined;
218270
+ pcbOffsetY?: number | undefined;
218271
+ pcbZ?: number | undefined;
218272
+ }, {
218273
+ rotationOffset?: number | {
218274
+ x: string | number;
218275
+ y: string | number;
218276
+ z: string | number;
218277
+ } | undefined;
218278
+ positionOffset?: {
218279
+ x: string | number;
218280
+ y: string | number;
218281
+ z: string | number;
218282
+ } | undefined;
218283
+ modelOriginPosition?: {
218284
+ x: string | number;
218285
+ y: string | number;
218286
+ z: string | number;
218287
+ } | undefined;
218288
+ modelBounds?: {
218289
+ min: {
218290
+ x: string | number;
218291
+ y: string | number;
218292
+ z: string | number;
218293
+ };
218294
+ max: {
218295
+ x: string | number;
218296
+ y: string | number;
218297
+ z: string | number;
218298
+ };
218299
+ } | undefined;
218300
+ size?: {
218301
+ x: string | number;
218302
+ y: string | number;
218303
+ z: string | number;
218304
+ } | undefined;
218305
+ modelUnitToMmScale?: string | number | undefined;
218306
+ modelBoardNormalDirection?: "x+" | "x-" | "y+" | "y-" | "z+" | "z-" | undefined;
218307
+ pcbRotationOffset?: number | undefined;
218308
+ zOffsetFromSurface?: string | number | undefined;
218309
+ showAsTranslucentModel?: boolean | undefined;
218310
+ stepUrl?: string | undefined;
218311
+ model?: string | undefined;
218312
+ modelUrl?: string | undefined;
218313
+ pcbX?: string | number | undefined;
218314
+ pcbY?: string | number | undefined;
218315
+ pcbLeftEdgeX?: string | number | undefined;
218316
+ pcbRightEdgeX?: string | number | undefined;
218317
+ pcbTopEdgeY?: string | number | undefined;
218318
+ pcbBottomEdgeY?: string | number | undefined;
218319
+ pcbOffsetX?: string | number | undefined;
218320
+ pcbOffsetY?: string | number | undefined;
218321
+ pcbZ?: string | number | undefined;
218322
+ }>, {
218323
+ modelUrl: string;
218324
+ rotationOffset?: number | {
218325
+ x: string | number;
218326
+ y: string | number;
218327
+ z: string | number;
218328
+ } | undefined;
218329
+ positionOffset?: {
218330
+ x: number;
218331
+ y: number;
218332
+ z: number;
218333
+ } | undefined;
218334
+ modelOriginPosition?: {
218335
+ x: number;
218336
+ y: number;
218337
+ z: number;
218338
+ } | undefined;
218339
+ modelBounds?: {
218340
+ min: {
218341
+ x: number;
218342
+ y: number;
218343
+ z: number;
218344
+ };
218345
+ max: {
218346
+ x: number;
218347
+ y: number;
218348
+ z: number;
218349
+ };
218350
+ } | undefined;
218351
+ size?: {
218352
+ x: number;
218353
+ y: number;
218354
+ z: number;
218355
+ } | undefined;
218356
+ modelUnitToMmScale?: number | undefined;
218357
+ modelBoardNormalDirection?: "x+" | "x-" | "y+" | "y-" | "z+" | "z-" | undefined;
218358
+ pcbRotationOffset?: number | undefined;
218359
+ zOffsetFromSurface?: number | undefined;
218360
+ showAsTranslucentModel?: boolean | undefined;
218361
+ stepUrl?: string | undefined;
218362
+ pcbX?: string | number | undefined;
218363
+ pcbY?: string | number | undefined;
218364
+ pcbLeftEdgeX?: string | number | undefined;
218365
+ pcbRightEdgeX?: string | number | undefined;
218366
+ pcbTopEdgeY?: string | number | undefined;
218367
+ pcbBottomEdgeY?: string | number | undefined;
218368
+ pcbOffsetX?: number | undefined;
218369
+ pcbOffsetY?: number | undefined;
218370
+ pcbZ?: number | undefined;
218371
+ }, {
218372
+ rotationOffset?: number | {
218373
+ x: string | number;
218374
+ y: string | number;
218375
+ z: string | number;
218376
+ } | undefined;
218377
+ positionOffset?: {
218378
+ x: string | number;
218379
+ y: string | number;
218380
+ z: string | number;
218381
+ } | undefined;
218382
+ modelOriginPosition?: {
218383
+ x: string | number;
218384
+ y: string | number;
218385
+ z: string | number;
218386
+ } | undefined;
218387
+ modelBounds?: {
218388
+ min: {
218389
+ x: string | number;
218390
+ y: string | number;
218391
+ z: string | number;
218392
+ };
218393
+ max: {
218394
+ x: string | number;
218395
+ y: string | number;
218396
+ z: string | number;
218397
+ };
218398
+ } | undefined;
218399
+ size?: {
218400
+ x: string | number;
218401
+ y: string | number;
218402
+ z: string | number;
218403
+ } | undefined;
218404
+ modelUnitToMmScale?: string | number | undefined;
218405
+ modelBoardNormalDirection?: "x+" | "x-" | "y+" | "y-" | "z+" | "z-" | undefined;
218406
+ pcbRotationOffset?: number | undefined;
218407
+ zOffsetFromSurface?: string | number | undefined;
218408
+ showAsTranslucentModel?: boolean | undefined;
218409
+ stepUrl?: string | undefined;
218410
+ model?: string | undefined;
218411
+ modelUrl?: string | undefined;
218412
+ pcbX?: string | number | undefined;
218413
+ pcbY?: string | number | undefined;
218414
+ pcbLeftEdgeX?: string | number | undefined;
218415
+ pcbRightEdgeX?: string | number | undefined;
218416
+ pcbTopEdgeY?: string | number | undefined;
218417
+ pcbBottomEdgeY?: string | number | undefined;
218418
+ pcbOffsetX?: string | number | undefined;
218419
+ pcbOffsetY?: string | number | undefined;
218420
+ pcbZ?: string | number | undefined;
218421
+ }>, z.ZodObject<{
217992
218422
  rotationOffset: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodObject<{
217993
218423
  x: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
217994
218424
  y: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
@@ -218207,7 +218637,7 @@ declare const cadmodelProps: z.ZodUnion<[z.ZodNull, z.ZodType<string, z.ZodTypeD
218207
218637
  pcbOffsetX?: string | number | undefined;
218208
218638
  pcbOffsetY?: string | number | undefined;
218209
218639
  pcbZ?: string | number | undefined;
218210
- }>]>;
218640
+ }>>]>;
218211
218641
  type CadModelPropsInput = z.input<typeof cadmodelProps>;
218212
218642
 
218213
218643
  declare const powerSourceProps: z.ZodObject<{
package/dist/index.js CHANGED
@@ -19293,7 +19293,22 @@ var cadModelBaseWithUrl = cadModelBase.extend({
19293
19293
  });
19294
19294
  var cadModelObject = cadModelBaseWithUrl.merge(pcbPosition);
19295
19295
  expectTypesMatch(true);
19296
- var cadmodelProps = z128.union([z128.null(), url, cadModelObject]);
19296
+ var cadModelInputObject = cadModelBase.extend({
19297
+ /** Modelprinter specification or HTTP(S) URL; mutually exclusive with modelUrl. */
19298
+ model: z128.string().trim().min(1).optional(),
19299
+ modelUrl: url.optional()
19300
+ }).merge(pcbPosition).refine(
19301
+ (props) => props.model === void 0 !== (props.modelUrl === void 0),
19302
+ {
19303
+ message: "Provide exactly one of model or modelUrl",
19304
+ path: ["model"]
19305
+ }
19306
+ ).transform(({ model, ...props }) => ({
19307
+ ...props,
19308
+ modelUrl: model === void 0 ? props.modelUrl : /^https?:\/\//i.test(model) ? model : `https://modelcdn.tscircuit.com/jscad_models/${encodeURIComponent(model)}.glb`
19309
+ })).pipe(cadModelObject);
19310
+ expectTypesMatch(true);
19311
+ var cadmodelProps = z128.union([z128.null(), url, cadModelInputObject]);
19297
19312
 
19298
19313
  // lib/components/power-source.ts
19299
19314
  import { voltage as voltage5 } from "circuit-json";