You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000")
44
+
type: z
45
+
.number()
46
+
.int()
47
+
.min(0,"Value must be at least 0")
48
+
.max(1000,"Value must be at most 1000"),
36
49
},
37
50
reach: {
38
51
label: "Reach (mm)",
39
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000"),
52
+
type: z
53
+
.number()
54
+
.int()
55
+
.min(0,"Value must be at least 0")
56
+
.max(1000,"Value must be at most 1000"),
40
57
},
41
58
headTube: {
42
59
label: "Head tube length (mm)",
43
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000"),
44
-
warnings: ["Include the external headset bottom cup stack height in the headtube length if applicable"]
60
+
type: z
61
+
.number()
62
+
.int()
63
+
.min(0,"Value must be at least 0")
64
+
.max(1000,"Value must be at most 1000"),
65
+
warnings: [
66
+
"Include the external headset bottom cup stack height in the headtube length if applicable",
67
+
],
45
68
},
46
69
headTubeAngle: {
47
70
label: "Head tube angle (degrees)",
48
-
type: z.number().min(0,"Angle must be at least 0 degrees").max(89,"Angle must be less than 90 degrees")
49
-
.refine(n=>!(n*100).toString().includes("."),{message: "Max precision is 2 decimal places"}),
71
+
type: z
72
+
.number()
73
+
.min(0,"Angle must be at least 0 degrees")
74
+
.max(89,"Angle must be less than 90 degrees")
75
+
.refine((n)=>!(n*100).toString().includes("."),{
76
+
message: "Max precision is 2 decimal places",
77
+
}),
50
78
},
51
79
chainStay: {
52
80
label: "Chainstay length (mm)",
53
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000")
81
+
type: z
82
+
.number()
83
+
.int()
84
+
.min(0,"Value must be at least 0")
85
+
.max(1000,"Value must be at most 1000"),
54
86
},
55
87
actualSeatTubeAngle: {
56
88
label: "Actual seat tube angle (degrees)",
57
-
type: z.number().min(0,"Angle must be at least 0 degrees").max(89,"Angle must be less than 90 degrees")
58
-
.refine(n=>!(n*100).toString().includes("."),{message: "Max precision is 2 decimal places"}),
89
+
type: z
90
+
.number()
91
+
.min(0,"Angle must be at least 0 degrees")
92
+
.max(89,"Angle must be less than 90 degrees")
93
+
.refine((n)=>!(n*100).toString().includes("."),{
94
+
message: "Max precision is 2 decimal places",
95
+
}),
59
96
},
60
97
effectiveSeatTubeAngle: {
61
98
label: "Effective seat tube angle (degrees)",
62
-
type: z.number().min(0,"Angle must be at least 0 degrees").max(89,"Angle must be less than 90 degrees")
63
-
.refine(n=>!(n*100).toString().includes("."),{message: "Max precision is 2 decimal places"}),
99
+
type: z
100
+
.number()
101
+
.min(0,"Angle must be at least 0 degrees")
102
+
.max(89,"Angle must be less than 90 degrees")
103
+
.refine((n)=>!(n*100).toString().includes("."),{
104
+
message: "Max precision is 2 decimal places",
105
+
}),
64
106
},
65
107
seatTube: {
66
108
label: "Seat tube length (mm)",
67
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000")
109
+
type: z
110
+
.number()
111
+
.int()
112
+
.min(0,"Value must be at least 0")
113
+
.max(1000,"Value must be at most 1000"),
68
114
},
69
115
bottomBracketDrop: {
70
116
label: "Bottom bracket drop (mm)",
71
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000")
117
+
type: z
118
+
.number()
119
+
.int()
120
+
.min(0,"Value must be at least 0")
121
+
.max(1000,"Value must be at most 1000"),
72
122
},
73
123
frontCenter: {
74
124
label: "Front center (mm)",
75
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000")
125
+
type: z
126
+
.number()
127
+
.int()
128
+
.min(0,"Value must be at least 0")
129
+
.max(1000,"Value must be at most 1000"),
76
130
},
77
131
wheelBase: {
78
132
label: "Wheelbase (mm)",
79
-
type: z.number().int().min(0,"Value must be at least 0").max(2000,"Value must be at most 2000")
133
+
type: z
134
+
.number()
135
+
.int()
136
+
.min(0,"Value must be at least 0")
137
+
.max(2000,"Value must be at most 2000"),
80
138
},
81
139
forkAxleToCrown: {
82
140
label: "Fork axle to crown (mm)",
83
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000")
141
+
type: z
142
+
.number()
143
+
.int()
144
+
.min(0,"Value must be at least 0")
145
+
.max(1000,"Value must be at most 1000"),
84
146
},
85
147
forkOffset: {
86
148
label: "Fork offset (mm)",
87
-
type: z.number().int().min(0,"Value must be at least 0").max(100,"Value must be at most 100")
149
+
type: z
150
+
.number()
151
+
.int()
152
+
.min(0,"Value must be at least 0")
153
+
.max(100,"Value must be at most 100"),
88
154
},
89
155
forkTravel: {
90
156
label: "Fork travel (mm)",
91
-
type: z.number().int().min(0,"Value must be at least 0").max(300,"Value must be at most 300")
157
+
type: z
158
+
.number()
159
+
.int()
160
+
.min(0,"Value must be at least 0")
161
+
.max(300,"Value must be at most 300"),
92
162
},
93
163
crankLength: {
94
164
label: "Crank length (mm)",
95
-
type: z.number().int().min(0,"Value must be at least 0").max(300,"Value must be at most 300")
165
+
type: z
166
+
.number()
167
+
.int()
168
+
.min(0,"Value must be at least 0")
169
+
.max(300,"Value must be at most 300"),
96
170
},
97
171
crankQFactor: {
98
172
label: "Crank Q factor (mm)",
99
-
type: z.number().int().min(0,"Value must be at least 0").max(300,"Value must be at most 300")
173
+
type: z
174
+
.number()
175
+
.int()
176
+
.min(0,"Value must be at least 0")
177
+
.max(300,"Value must be at most 300"),
100
178
},
101
179
spacers: {
102
180
label: "Spacers height (mm)",
103
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000"),
104
-
warnings: ["Include the external headset top cup stack height in the calculated length if applicable","Include the stem steerer height in the calculated length if applicable"]
181
+
type: z
182
+
.number()
183
+
.int()
184
+
.min(0,"Value must be at least 0")
185
+
.max(1000,"Value must be at most 1000"),
186
+
warnings: [
187
+
"Include the external headset top cup stack height in the calculated length if applicable",
188
+
"Include the stem steerer height in the calculated length if applicable",
189
+
],
105
190
},
106
191
stemLength: {
107
192
label: "Stem length (mm)",
108
-
type: z.number().int().min(0,"Value must be at least 0").max(200,"Value must be at most 200")
193
+
type: z
194
+
.number()
195
+
.int()
196
+
.min(0,"Value must be at least 0")
197
+
.max(200,"Value must be at most 200"),
109
198
},
110
199
stemAngle: {
111
200
label: "Stem angle (degrees)",
112
-
type: z.number().int().min(-89,"Angle must be at least -90 degrees").max(89,"Angle must be less than 90 degrees"),
201
+
type: z
202
+
.number()
203
+
.int()
204
+
.min(-89,"Angle must be at least -90 degrees")
205
+
.max(89,"Angle must be less than 90 degrees"),
113
206
},
114
207
stemSteererHeight: {
115
208
label: "Stem steerer height (mm)",
116
-
type: z.number().int().min(0,"Value must be at least 0").max(100,"Value must be at most 100")
209
+
type: z
210
+
.number()
211
+
.int()
212
+
.min(0,"Value must be at least 0")
213
+
.max(100,"Value must be at most 100"),
117
214
},
118
215
seatOffset: {
119
216
label: "Seat offset (mm)",
120
-
type: z.number().int().min(0,"Value must be at least 0").max(100,"Value must be at most 100")
217
+
type: z
218
+
.number()
219
+
.int()
220
+
.min(0,"Value must be at least 0")
221
+
.max(100,"Value must be at most 100"),
121
222
},
122
223
handlebarWidth: {
123
224
label: "Handlebar width (mm)",
124
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000")
225
+
type: z
226
+
.number()
227
+
.int()
228
+
.min(0,"Value must be at least 0")
229
+
.max(1000,"Value must be at most 1000"),
125
230
},
126
231
handlebarReach: {
127
232
label: "Handlebar reach (mm)",
128
-
type: z.number().int().min(0,"Value must be at least 0").max(300,"Value must be at most 300")
233
+
type: z
234
+
.number()
235
+
.int()
236
+
.min(0,"Value must be at least 0")
237
+
.max(300,"Value must be at most 300"),
129
238
},
130
239
handlebarRise: {
131
240
label: "Handlebar rise (mm)",
132
-
type: z.number().int().min(-100,"Handlebar rise must be at least -100mm").max(100,"Handlebar rise must be at most 100mm")
241
+
type: z
242
+
.number()
243
+
.int()
244
+
.min(-100,"Handlebar rise must be at least -100mm")
245
+
.max(100,"Handlebar rise must be at most 100mm"),
133
246
},
134
247
tireFrontWidth: {
135
248
label: "Front tire width (mm)",
136
-
type: z.number().int().min(0,"Value must be at least 0").max(200,"Value must be at most 200")
249
+
type: z
250
+
.number()
251
+
.int()
252
+
.min(0,"Value must be at least 0")
253
+
.max(200,"Value must be at most 200"),
137
254
},
138
255
tireRearWidth: {
139
256
label: "Rear tire width (mm)",
140
-
type: z.number().int().min(0,"Value must be at least 0").max(200,"Value must be at most 200")
257
+
type: z
258
+
.number()
259
+
.int()
260
+
.min(0,"Value must be at least 0")
261
+
.max(200,"Value must be at most 200"),
141
262
},
142
263
wheelFrontDiameter: {
143
264
label: "Front wheel diameter (mm)",
144
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000")
265
+
type: z
266
+
.number()
267
+
.int()
268
+
.min(0,"Value must be at least 0")
269
+
.max(1000,"Value must be at most 1000"),
145
270
},
146
271
wheelRearDiameter: {
147
272
label: "Rear wheel diameter (mm)",
148
-
type: z.number().int().min(0,"Value must be at least 0").max(1000,"Value must be at most 1000")
0 commit comments