@mathscan/math-exercise-engine 1.0.11 → 1.0.13
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 +2343 -25
- package/dist/index.js +981 -280
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +982 -281
- package/dist/index.mjs.map +1 -1
- package/dist/style.css +396 -32
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export declare const AST_TYPES: {
|
|
|
25
25
|
readonly BOLD_TEXT: "BoldText";
|
|
26
26
|
/** Inline input widget (string or numeric) */
|
|
27
27
|
readonly INLINE_INPUT: "InlineInput";
|
|
28
|
+
/** Inline fraction widget (numerator/denominator with optional inputs) */
|
|
29
|
+
readonly FRACTION: "Fraction";
|
|
28
30
|
/** Question/instruction text block */
|
|
29
31
|
readonly TEXT_BLOCK: "TextBlock";
|
|
30
32
|
/** Line containing inline elements */
|
|
@@ -39,6 +41,10 @@ export declare const AST_TYPES: {
|
|
|
39
41
|
readonly NUMBER_LINE_BLOCK: "NumberLineBlock";
|
|
40
42
|
/** A position marker on the number line */
|
|
41
43
|
readonly NUMBER_LINE_POSITION: "NumberLinePosition";
|
|
44
|
+
/** A dynamic subdivision counter embedded in a number line */
|
|
45
|
+
readonly NUMBER_LINE_COUNTER: "NumberLineCounter";
|
|
46
|
+
/** A highlighted range on the number line axis */
|
|
47
|
+
readonly NUMBER_LINE_HIGHLIGHT: "NumberLineHighlight";
|
|
42
48
|
/** Drag-and-drop options tool */
|
|
43
49
|
readonly DRAG_OPTIONS: "DragOptions";
|
|
44
50
|
/** Radio button options tool */
|
|
@@ -224,6 +230,13 @@ export declare function compileWithAST(dsl: string): {
|
|
|
224
230
|
name: string;
|
|
225
231
|
digits: number;
|
|
226
232
|
answer?: string | number | undefined;
|
|
233
|
+
} | {
|
|
234
|
+
type: "Fraction";
|
|
235
|
+
name: string;
|
|
236
|
+
simplified: boolean;
|
|
237
|
+
answer?: string | undefined;
|
|
238
|
+
numerator?: number | undefined;
|
|
239
|
+
denominator?: number | undefined;
|
|
227
240
|
})[];
|
|
228
241
|
} | {
|
|
229
242
|
type: "NumberLineBlock";
|
|
@@ -263,10 +276,32 @@ export declare function compileWithAST(dsl: string): {
|
|
|
263
276
|
name: string;
|
|
264
277
|
digits: number;
|
|
265
278
|
answer?: string | number | undefined;
|
|
279
|
+
} | {
|
|
280
|
+
type: "Fraction";
|
|
281
|
+
name: string;
|
|
282
|
+
simplified: boolean;
|
|
283
|
+
answer?: string | undefined;
|
|
284
|
+
numerator?: number | undefined;
|
|
285
|
+
denominator?: number | undefined;
|
|
266
286
|
})[];
|
|
267
287
|
}[];
|
|
288
|
+
counter?: {
|
|
289
|
+
type: "NumberLineCounter";
|
|
290
|
+
min: number;
|
|
291
|
+
max: number;
|
|
292
|
+
name?: string | undefined;
|
|
293
|
+
default?: number | undefined;
|
|
294
|
+
} | undefined;
|
|
268
295
|
minorTicks?: number | undefined;
|
|
269
296
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
297
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
298
|
+
highlights?: {
|
|
299
|
+
type: "NumberLineHighlight";
|
|
300
|
+
from: number;
|
|
301
|
+
to: number;
|
|
302
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
303
|
+
label?: string | undefined;
|
|
304
|
+
}[] | undefined;
|
|
270
305
|
} | {
|
|
271
306
|
type: "TableBlock";
|
|
272
307
|
cols: number;
|
|
@@ -304,6 +339,13 @@ export declare function compileWithAST(dsl: string): {
|
|
|
304
339
|
name: string;
|
|
305
340
|
digits: number;
|
|
306
341
|
answer?: string | number | undefined;
|
|
342
|
+
} | {
|
|
343
|
+
type: "Fraction";
|
|
344
|
+
name: string;
|
|
345
|
+
simplified: boolean;
|
|
346
|
+
answer?: string | undefined;
|
|
347
|
+
numerator?: number | undefined;
|
|
348
|
+
denominator?: number | undefined;
|
|
307
349
|
})[];
|
|
308
350
|
colspan?: number | undefined;
|
|
309
351
|
}[];
|
|
@@ -354,6 +396,11 @@ export declare function compileWithAST(dsl: string): {
|
|
|
354
396
|
type: "numeric-keypad";
|
|
355
397
|
includeOperators?: boolean | undefined;
|
|
356
398
|
includeDecimal?: boolean | undefined;
|
|
399
|
+
} | {
|
|
400
|
+
type: "fraction";
|
|
401
|
+
numerator: number | null;
|
|
402
|
+
denominator: number | null;
|
|
403
|
+
simplified: boolean;
|
|
357
404
|
}>;
|
|
358
405
|
validation?: {
|
|
359
406
|
mode: "simple" | "expression";
|
|
@@ -465,7 +512,28 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
465
512
|
name: string;
|
|
466
513
|
digits: number;
|
|
467
514
|
answer?: string | number | undefined;
|
|
468
|
-
}>]
|
|
515
|
+
}>]>, z.ZodObject<{
|
|
516
|
+
type: z.ZodLiteral<"Fraction">;
|
|
517
|
+
name: z.ZodString;
|
|
518
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
519
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
520
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
521
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
522
|
+
}, "strip", z.ZodTypeAny, {
|
|
523
|
+
type: "Fraction";
|
|
524
|
+
name: string;
|
|
525
|
+
simplified: boolean;
|
|
526
|
+
answer?: string | undefined;
|
|
527
|
+
numerator?: number | undefined;
|
|
528
|
+
denominator?: number | undefined;
|
|
529
|
+
}, {
|
|
530
|
+
type: "Fraction";
|
|
531
|
+
name: string;
|
|
532
|
+
answer?: string | undefined;
|
|
533
|
+
numerator?: number | undefined;
|
|
534
|
+
denominator?: number | undefined;
|
|
535
|
+
simplified?: boolean | undefined;
|
|
536
|
+
}>]>, "many">;
|
|
469
537
|
}, "strip", z.ZodTypeAny, {
|
|
470
538
|
type: "LineBlock";
|
|
471
539
|
inlines: ({
|
|
@@ -498,6 +566,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
498
566
|
name: string;
|
|
499
567
|
digits: number;
|
|
500
568
|
answer?: string | number | undefined;
|
|
569
|
+
} | {
|
|
570
|
+
type: "Fraction";
|
|
571
|
+
name: string;
|
|
572
|
+
simplified: boolean;
|
|
573
|
+
answer?: string | undefined;
|
|
574
|
+
numerator?: number | undefined;
|
|
575
|
+
denominator?: number | undefined;
|
|
501
576
|
})[];
|
|
502
577
|
}, {
|
|
503
578
|
type: "LineBlock";
|
|
@@ -531,6 +606,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
531
606
|
name: string;
|
|
532
607
|
digits: number;
|
|
533
608
|
answer?: string | number | undefined;
|
|
609
|
+
} | {
|
|
610
|
+
type: "Fraction";
|
|
611
|
+
name: string;
|
|
612
|
+
answer?: string | undefined;
|
|
613
|
+
numerator?: number | undefined;
|
|
614
|
+
denominator?: number | undefined;
|
|
615
|
+
simplified?: boolean | undefined;
|
|
534
616
|
})[];
|
|
535
617
|
}>, z.ZodObject<{
|
|
536
618
|
type: z.ZodLiteral<"TableBlock">;
|
|
@@ -630,7 +712,28 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
630
712
|
name: string;
|
|
631
713
|
digits: number;
|
|
632
714
|
answer?: string | number | undefined;
|
|
633
|
-
}>]
|
|
715
|
+
}>]>, z.ZodObject<{
|
|
716
|
+
type: z.ZodLiteral<"Fraction">;
|
|
717
|
+
name: z.ZodString;
|
|
718
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
719
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
720
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
721
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
722
|
+
}, "strip", z.ZodTypeAny, {
|
|
723
|
+
type: "Fraction";
|
|
724
|
+
name: string;
|
|
725
|
+
simplified: boolean;
|
|
726
|
+
answer?: string | undefined;
|
|
727
|
+
numerator?: number | undefined;
|
|
728
|
+
denominator?: number | undefined;
|
|
729
|
+
}, {
|
|
730
|
+
type: "Fraction";
|
|
731
|
+
name: string;
|
|
732
|
+
answer?: string | undefined;
|
|
733
|
+
numerator?: number | undefined;
|
|
734
|
+
denominator?: number | undefined;
|
|
735
|
+
simplified?: boolean | undefined;
|
|
736
|
+
}>]>, "many">;
|
|
634
737
|
}, "strip", z.ZodTypeAny, {
|
|
635
738
|
type: "TableCell";
|
|
636
739
|
inlines: ({
|
|
@@ -663,6 +766,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
663
766
|
name: string;
|
|
664
767
|
digits: number;
|
|
665
768
|
answer?: string | number | undefined;
|
|
769
|
+
} | {
|
|
770
|
+
type: "Fraction";
|
|
771
|
+
name: string;
|
|
772
|
+
simplified: boolean;
|
|
773
|
+
answer?: string | undefined;
|
|
774
|
+
numerator?: number | undefined;
|
|
775
|
+
denominator?: number | undefined;
|
|
666
776
|
})[];
|
|
667
777
|
colspan?: number | undefined;
|
|
668
778
|
}, {
|
|
@@ -697,6 +807,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
697
807
|
name: string;
|
|
698
808
|
digits: number;
|
|
699
809
|
answer?: string | number | undefined;
|
|
810
|
+
} | {
|
|
811
|
+
type: "Fraction";
|
|
812
|
+
name: string;
|
|
813
|
+
answer?: string | undefined;
|
|
814
|
+
numerator?: number | undefined;
|
|
815
|
+
denominator?: number | undefined;
|
|
816
|
+
simplified?: boolean | undefined;
|
|
700
817
|
})[];
|
|
701
818
|
colspan?: number | undefined;
|
|
702
819
|
}>, "many">;
|
|
@@ -734,6 +851,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
734
851
|
name: string;
|
|
735
852
|
digits: number;
|
|
736
853
|
answer?: string | number | undefined;
|
|
854
|
+
} | {
|
|
855
|
+
type: "Fraction";
|
|
856
|
+
name: string;
|
|
857
|
+
simplified: boolean;
|
|
858
|
+
answer?: string | undefined;
|
|
859
|
+
numerator?: number | undefined;
|
|
860
|
+
denominator?: number | undefined;
|
|
737
861
|
})[];
|
|
738
862
|
colspan?: number | undefined;
|
|
739
863
|
}[];
|
|
@@ -771,6 +895,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
771
895
|
name: string;
|
|
772
896
|
digits: number;
|
|
773
897
|
answer?: string | number | undefined;
|
|
898
|
+
} | {
|
|
899
|
+
type: "Fraction";
|
|
900
|
+
name: string;
|
|
901
|
+
answer?: string | undefined;
|
|
902
|
+
numerator?: number | undefined;
|
|
903
|
+
denominator?: number | undefined;
|
|
904
|
+
simplified?: boolean | undefined;
|
|
774
905
|
})[];
|
|
775
906
|
colspan?: number | undefined;
|
|
776
907
|
}[];
|
|
@@ -812,6 +943,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
812
943
|
name: string;
|
|
813
944
|
digits: number;
|
|
814
945
|
answer?: string | number | undefined;
|
|
946
|
+
} | {
|
|
947
|
+
type: "Fraction";
|
|
948
|
+
name: string;
|
|
949
|
+
simplified: boolean;
|
|
950
|
+
answer?: string | undefined;
|
|
951
|
+
numerator?: number | undefined;
|
|
952
|
+
denominator?: number | undefined;
|
|
815
953
|
})[];
|
|
816
954
|
colspan?: number | undefined;
|
|
817
955
|
}[];
|
|
@@ -853,6 +991,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
853
991
|
name: string;
|
|
854
992
|
digits: number;
|
|
855
993
|
answer?: string | number | undefined;
|
|
994
|
+
} | {
|
|
995
|
+
type: "Fraction";
|
|
996
|
+
name: string;
|
|
997
|
+
answer?: string | undefined;
|
|
998
|
+
numerator?: number | undefined;
|
|
999
|
+
denominator?: number | undefined;
|
|
1000
|
+
simplified?: boolean | undefined;
|
|
856
1001
|
})[];
|
|
857
1002
|
colspan?: number | undefined;
|
|
858
1003
|
}[];
|
|
@@ -879,6 +1024,69 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
879
1024
|
step: z.ZodDefault<z.ZodNumber>;
|
|
880
1025
|
minorTicks: z.ZodOptional<z.ZodNumber>;
|
|
881
1026
|
style: z.ZodOptional<z.ZodEnum<["arrow-right", "arrow-left", "arrow-both", "line"]>>;
|
|
1027
|
+
labelVisibility: z.ZodOptional<z.ZodEnum<["all", "extremes", "min-only", "max-only", "none"]>>;
|
|
1028
|
+
counter: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
1029
|
+
type: z.ZodLiteral<"NumberLineCounter">;
|
|
1030
|
+
min: z.ZodNumber;
|
|
1031
|
+
max: z.ZodNumber;
|
|
1032
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
1033
|
+
name: z.ZodOptional<z.ZodString>;
|
|
1034
|
+
}, "strip", z.ZodTypeAny, {
|
|
1035
|
+
type: "NumberLineCounter";
|
|
1036
|
+
min: number;
|
|
1037
|
+
max: number;
|
|
1038
|
+
name?: string | undefined;
|
|
1039
|
+
default?: number | undefined;
|
|
1040
|
+
}, {
|
|
1041
|
+
type: "NumberLineCounter";
|
|
1042
|
+
min: number;
|
|
1043
|
+
max: number;
|
|
1044
|
+
name?: string | undefined;
|
|
1045
|
+
default?: number | undefined;
|
|
1046
|
+
}>, {
|
|
1047
|
+
type: "NumberLineCounter";
|
|
1048
|
+
min: number;
|
|
1049
|
+
max: number;
|
|
1050
|
+
name?: string | undefined;
|
|
1051
|
+
default?: number | undefined;
|
|
1052
|
+
}, {
|
|
1053
|
+
type: "NumberLineCounter";
|
|
1054
|
+
min: number;
|
|
1055
|
+
max: number;
|
|
1056
|
+
name?: string | undefined;
|
|
1057
|
+
default?: number | undefined;
|
|
1058
|
+
}>>;
|
|
1059
|
+
highlights: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
1060
|
+
type: z.ZodLiteral<"NumberLineHighlight">;
|
|
1061
|
+
from: z.ZodNumber;
|
|
1062
|
+
to: z.ZodNumber;
|
|
1063
|
+
color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
|
|
1064
|
+
label: z.ZodOptional<z.ZodString>;
|
|
1065
|
+
}, "strip", z.ZodTypeAny, {
|
|
1066
|
+
type: "NumberLineHighlight";
|
|
1067
|
+
from: number;
|
|
1068
|
+
to: number;
|
|
1069
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1070
|
+
label?: string | undefined;
|
|
1071
|
+
}, {
|
|
1072
|
+
type: "NumberLineHighlight";
|
|
1073
|
+
from: number;
|
|
1074
|
+
to: number;
|
|
1075
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1076
|
+
label?: string | undefined;
|
|
1077
|
+
}>, {
|
|
1078
|
+
type: "NumberLineHighlight";
|
|
1079
|
+
from: number;
|
|
1080
|
+
to: number;
|
|
1081
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1082
|
+
label?: string | undefined;
|
|
1083
|
+
}, {
|
|
1084
|
+
type: "NumberLineHighlight";
|
|
1085
|
+
from: number;
|
|
1086
|
+
to: number;
|
|
1087
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1088
|
+
label?: string | undefined;
|
|
1089
|
+
}>, "many">>;
|
|
882
1090
|
positions: z.ZodArray<z.ZodObject<{
|
|
883
1091
|
type: z.ZodLiteral<"NumberLinePosition">;
|
|
884
1092
|
value: z.ZodNumber;
|
|
@@ -972,7 +1180,28 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
972
1180
|
name: string;
|
|
973
1181
|
digits: number;
|
|
974
1182
|
answer?: string | number | undefined;
|
|
975
|
-
}>]
|
|
1183
|
+
}>]>, z.ZodObject<{
|
|
1184
|
+
type: z.ZodLiteral<"Fraction">;
|
|
1185
|
+
name: z.ZodString;
|
|
1186
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
1187
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
1188
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
1189
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
1190
|
+
}, "strip", z.ZodTypeAny, {
|
|
1191
|
+
type: "Fraction";
|
|
1192
|
+
name: string;
|
|
1193
|
+
simplified: boolean;
|
|
1194
|
+
answer?: string | undefined;
|
|
1195
|
+
numerator?: number | undefined;
|
|
1196
|
+
denominator?: number | undefined;
|
|
1197
|
+
}, {
|
|
1198
|
+
type: "Fraction";
|
|
1199
|
+
name: string;
|
|
1200
|
+
answer?: string | undefined;
|
|
1201
|
+
numerator?: number | undefined;
|
|
1202
|
+
denominator?: number | undefined;
|
|
1203
|
+
simplified?: boolean | undefined;
|
|
1204
|
+
}>]>, "many">;
|
|
976
1205
|
}, "strip", z.ZodTypeAny, {
|
|
977
1206
|
value: number;
|
|
978
1207
|
type: "NumberLinePosition";
|
|
@@ -1006,6 +1235,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
1006
1235
|
name: string;
|
|
1007
1236
|
digits: number;
|
|
1008
1237
|
answer?: string | number | undefined;
|
|
1238
|
+
} | {
|
|
1239
|
+
type: "Fraction";
|
|
1240
|
+
name: string;
|
|
1241
|
+
simplified: boolean;
|
|
1242
|
+
answer?: string | undefined;
|
|
1243
|
+
numerator?: number | undefined;
|
|
1244
|
+
denominator?: number | undefined;
|
|
1009
1245
|
})[];
|
|
1010
1246
|
}, {
|
|
1011
1247
|
value: number;
|
|
@@ -1040,6 +1276,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
1040
1276
|
name: string;
|
|
1041
1277
|
digits: number;
|
|
1042
1278
|
answer?: string | number | undefined;
|
|
1279
|
+
} | {
|
|
1280
|
+
type: "Fraction";
|
|
1281
|
+
name: string;
|
|
1282
|
+
answer?: string | undefined;
|
|
1283
|
+
numerator?: number | undefined;
|
|
1284
|
+
denominator?: number | undefined;
|
|
1285
|
+
simplified?: boolean | undefined;
|
|
1043
1286
|
})[];
|
|
1044
1287
|
}>, "many">;
|
|
1045
1288
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -1080,10 +1323,32 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
1080
1323
|
name: string;
|
|
1081
1324
|
digits: number;
|
|
1082
1325
|
answer?: string | number | undefined;
|
|
1326
|
+
} | {
|
|
1327
|
+
type: "Fraction";
|
|
1328
|
+
name: string;
|
|
1329
|
+
simplified: boolean;
|
|
1330
|
+
answer?: string | undefined;
|
|
1331
|
+
numerator?: number | undefined;
|
|
1332
|
+
denominator?: number | undefined;
|
|
1083
1333
|
})[];
|
|
1084
1334
|
}[];
|
|
1335
|
+
counter?: {
|
|
1336
|
+
type: "NumberLineCounter";
|
|
1337
|
+
min: number;
|
|
1338
|
+
max: number;
|
|
1339
|
+
name?: string | undefined;
|
|
1340
|
+
default?: number | undefined;
|
|
1341
|
+
} | undefined;
|
|
1085
1342
|
minorTicks?: number | undefined;
|
|
1086
1343
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
1344
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
1345
|
+
highlights?: {
|
|
1346
|
+
type: "NumberLineHighlight";
|
|
1347
|
+
from: number;
|
|
1348
|
+
to: number;
|
|
1349
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1350
|
+
label?: string | undefined;
|
|
1351
|
+
}[] | undefined;
|
|
1087
1352
|
}, {
|
|
1088
1353
|
type: "NumberLineBlock";
|
|
1089
1354
|
min: number;
|
|
@@ -1121,11 +1386,33 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
1121
1386
|
name: string;
|
|
1122
1387
|
digits: number;
|
|
1123
1388
|
answer?: string | number | undefined;
|
|
1389
|
+
} | {
|
|
1390
|
+
type: "Fraction";
|
|
1391
|
+
name: string;
|
|
1392
|
+
answer?: string | undefined;
|
|
1393
|
+
numerator?: number | undefined;
|
|
1394
|
+
denominator?: number | undefined;
|
|
1395
|
+
simplified?: boolean | undefined;
|
|
1124
1396
|
})[];
|
|
1125
1397
|
}[];
|
|
1398
|
+
counter?: {
|
|
1399
|
+
type: "NumberLineCounter";
|
|
1400
|
+
min: number;
|
|
1401
|
+
max: number;
|
|
1402
|
+
name?: string | undefined;
|
|
1403
|
+
default?: number | undefined;
|
|
1404
|
+
} | undefined;
|
|
1126
1405
|
step?: number | undefined;
|
|
1127
1406
|
minorTicks?: number | undefined;
|
|
1128
1407
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
1408
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
1409
|
+
highlights?: {
|
|
1410
|
+
type: "NumberLineHighlight";
|
|
1411
|
+
from: number;
|
|
1412
|
+
to: number;
|
|
1413
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1414
|
+
label?: string | undefined;
|
|
1415
|
+
}[] | undefined;
|
|
1129
1416
|
}>, {
|
|
1130
1417
|
type: "NumberLineBlock";
|
|
1131
1418
|
min: number;
|
|
@@ -1164,10 +1451,32 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
1164
1451
|
name: string;
|
|
1165
1452
|
digits: number;
|
|
1166
1453
|
answer?: string | number | undefined;
|
|
1454
|
+
} | {
|
|
1455
|
+
type: "Fraction";
|
|
1456
|
+
name: string;
|
|
1457
|
+
simplified: boolean;
|
|
1458
|
+
answer?: string | undefined;
|
|
1459
|
+
numerator?: number | undefined;
|
|
1460
|
+
denominator?: number | undefined;
|
|
1167
1461
|
})[];
|
|
1168
1462
|
}[];
|
|
1463
|
+
counter?: {
|
|
1464
|
+
type: "NumberLineCounter";
|
|
1465
|
+
min: number;
|
|
1466
|
+
max: number;
|
|
1467
|
+
name?: string | undefined;
|
|
1468
|
+
default?: number | undefined;
|
|
1469
|
+
} | undefined;
|
|
1169
1470
|
minorTicks?: number | undefined;
|
|
1170
1471
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
1472
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
1473
|
+
highlights?: {
|
|
1474
|
+
type: "NumberLineHighlight";
|
|
1475
|
+
from: number;
|
|
1476
|
+
to: number;
|
|
1477
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1478
|
+
label?: string | undefined;
|
|
1479
|
+
}[] | undefined;
|
|
1171
1480
|
}, {
|
|
1172
1481
|
type: "NumberLineBlock";
|
|
1173
1482
|
min: number;
|
|
@@ -1205,11 +1514,33 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
1205
1514
|
name: string;
|
|
1206
1515
|
digits: number;
|
|
1207
1516
|
answer?: string | number | undefined;
|
|
1517
|
+
} | {
|
|
1518
|
+
type: "Fraction";
|
|
1519
|
+
name: string;
|
|
1520
|
+
answer?: string | undefined;
|
|
1521
|
+
numerator?: number | undefined;
|
|
1522
|
+
denominator?: number | undefined;
|
|
1523
|
+
simplified?: boolean | undefined;
|
|
1208
1524
|
})[];
|
|
1209
1525
|
}[];
|
|
1526
|
+
counter?: {
|
|
1527
|
+
type: "NumberLineCounter";
|
|
1528
|
+
min: number;
|
|
1529
|
+
max: number;
|
|
1530
|
+
name?: string | undefined;
|
|
1531
|
+
default?: number | undefined;
|
|
1532
|
+
} | undefined;
|
|
1210
1533
|
step?: number | undefined;
|
|
1211
1534
|
minorTicks?: number | undefined;
|
|
1212
1535
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
1536
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
1537
|
+
highlights?: {
|
|
1538
|
+
type: "NumberLineHighlight";
|
|
1539
|
+
from: number;
|
|
1540
|
+
to: number;
|
|
1541
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1542
|
+
label?: string | undefined;
|
|
1543
|
+
}[] | undefined;
|
|
1213
1544
|
}>, {
|
|
1214
1545
|
type: "NumberLineBlock";
|
|
1215
1546
|
min: number;
|
|
@@ -1248,10 +1579,32 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
1248
1579
|
name: string;
|
|
1249
1580
|
digits: number;
|
|
1250
1581
|
answer?: string | number | undefined;
|
|
1582
|
+
} | {
|
|
1583
|
+
type: "Fraction";
|
|
1584
|
+
name: string;
|
|
1585
|
+
simplified: boolean;
|
|
1586
|
+
answer?: string | undefined;
|
|
1587
|
+
numerator?: number | undefined;
|
|
1588
|
+
denominator?: number | undefined;
|
|
1251
1589
|
})[];
|
|
1252
1590
|
}[];
|
|
1591
|
+
counter?: {
|
|
1592
|
+
type: "NumberLineCounter";
|
|
1593
|
+
min: number;
|
|
1594
|
+
max: number;
|
|
1595
|
+
name?: string | undefined;
|
|
1596
|
+
default?: number | undefined;
|
|
1597
|
+
} | undefined;
|
|
1253
1598
|
minorTicks?: number | undefined;
|
|
1254
1599
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
1600
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
1601
|
+
highlights?: {
|
|
1602
|
+
type: "NumberLineHighlight";
|
|
1603
|
+
from: number;
|
|
1604
|
+
to: number;
|
|
1605
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1606
|
+
label?: string | undefined;
|
|
1607
|
+
}[] | undefined;
|
|
1255
1608
|
}, {
|
|
1256
1609
|
type: "NumberLineBlock";
|
|
1257
1610
|
min: number;
|
|
@@ -1289,11 +1642,33 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
1289
1642
|
name: string;
|
|
1290
1643
|
digits: number;
|
|
1291
1644
|
answer?: string | number | undefined;
|
|
1645
|
+
} | {
|
|
1646
|
+
type: "Fraction";
|
|
1647
|
+
name: string;
|
|
1648
|
+
answer?: string | undefined;
|
|
1649
|
+
numerator?: number | undefined;
|
|
1650
|
+
denominator?: number | undefined;
|
|
1651
|
+
simplified?: boolean | undefined;
|
|
1292
1652
|
})[];
|
|
1293
1653
|
}[];
|
|
1654
|
+
counter?: {
|
|
1655
|
+
type: "NumberLineCounter";
|
|
1656
|
+
min: number;
|
|
1657
|
+
max: number;
|
|
1658
|
+
name?: string | undefined;
|
|
1659
|
+
default?: number | undefined;
|
|
1660
|
+
} | undefined;
|
|
1294
1661
|
step?: number | undefined;
|
|
1295
1662
|
minorTicks?: number | undefined;
|
|
1296
1663
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
1664
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
1665
|
+
highlights?: {
|
|
1666
|
+
type: "NumberLineHighlight";
|
|
1667
|
+
from: number;
|
|
1668
|
+
to: number;
|
|
1669
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
1670
|
+
label?: string | undefined;
|
|
1671
|
+
}[] | undefined;
|
|
1297
1672
|
}>]>;
|
|
1298
1673
|
|
|
1299
1674
|
/**
|
|
@@ -1321,6 +1696,16 @@ export declare function createExerciseDocument(question: z.infer<typeof TextBloc
|
|
|
1321
1696
|
*/
|
|
1322
1697
|
export declare function createExpressionValidation(expression: string): ExpressionValidation;
|
|
1323
1698
|
|
|
1699
|
+
/**
|
|
1700
|
+
* Create a fraction inline widget
|
|
1701
|
+
*/
|
|
1702
|
+
export declare function createFraction(name: string, options?: {
|
|
1703
|
+
numerator?: number;
|
|
1704
|
+
denominator?: number;
|
|
1705
|
+
answer?: string;
|
|
1706
|
+
simplified?: boolean;
|
|
1707
|
+
}): FractionInline;
|
|
1708
|
+
|
|
1324
1709
|
/**
|
|
1325
1710
|
* Create a free text inline element
|
|
1326
1711
|
*/
|
|
@@ -1563,7 +1948,28 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1563
1948
|
name: string;
|
|
1564
1949
|
digits: number;
|
|
1565
1950
|
answer?: string | number | undefined;
|
|
1566
|
-
}>]
|
|
1951
|
+
}>]>, z.ZodObject<{
|
|
1952
|
+
type: z.ZodLiteral<"Fraction">;
|
|
1953
|
+
name: z.ZodString;
|
|
1954
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
1955
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
1956
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
1957
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
1958
|
+
}, "strip", z.ZodTypeAny, {
|
|
1959
|
+
type: "Fraction";
|
|
1960
|
+
name: string;
|
|
1961
|
+
simplified: boolean;
|
|
1962
|
+
answer?: string | undefined;
|
|
1963
|
+
numerator?: number | undefined;
|
|
1964
|
+
denominator?: number | undefined;
|
|
1965
|
+
}, {
|
|
1966
|
+
type: "Fraction";
|
|
1967
|
+
name: string;
|
|
1968
|
+
answer?: string | undefined;
|
|
1969
|
+
numerator?: number | undefined;
|
|
1970
|
+
denominator?: number | undefined;
|
|
1971
|
+
simplified?: boolean | undefined;
|
|
1972
|
+
}>]>, "many">;
|
|
1567
1973
|
}, "strip", z.ZodTypeAny, {
|
|
1568
1974
|
type: "LineBlock";
|
|
1569
1975
|
inlines: ({
|
|
@@ -1596,6 +2002,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1596
2002
|
name: string;
|
|
1597
2003
|
digits: number;
|
|
1598
2004
|
answer?: string | number | undefined;
|
|
2005
|
+
} | {
|
|
2006
|
+
type: "Fraction";
|
|
2007
|
+
name: string;
|
|
2008
|
+
simplified: boolean;
|
|
2009
|
+
answer?: string | undefined;
|
|
2010
|
+
numerator?: number | undefined;
|
|
2011
|
+
denominator?: number | undefined;
|
|
1599
2012
|
})[];
|
|
1600
2013
|
}, {
|
|
1601
2014
|
type: "LineBlock";
|
|
@@ -1629,6 +2042,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1629
2042
|
name: string;
|
|
1630
2043
|
digits: number;
|
|
1631
2044
|
answer?: string | number | undefined;
|
|
2045
|
+
} | {
|
|
2046
|
+
type: "Fraction";
|
|
2047
|
+
name: string;
|
|
2048
|
+
answer?: string | undefined;
|
|
2049
|
+
numerator?: number | undefined;
|
|
2050
|
+
denominator?: number | undefined;
|
|
2051
|
+
simplified?: boolean | undefined;
|
|
1632
2052
|
})[];
|
|
1633
2053
|
}>, z.ZodObject<{
|
|
1634
2054
|
type: z.ZodLiteral<"TableBlock">;
|
|
@@ -1728,7 +2148,28 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1728
2148
|
name: string;
|
|
1729
2149
|
digits: number;
|
|
1730
2150
|
answer?: string | number | undefined;
|
|
1731
|
-
}>]
|
|
2151
|
+
}>]>, z.ZodObject<{
|
|
2152
|
+
type: z.ZodLiteral<"Fraction">;
|
|
2153
|
+
name: z.ZodString;
|
|
2154
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
2155
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
2156
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
2157
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
2158
|
+
}, "strip", z.ZodTypeAny, {
|
|
2159
|
+
type: "Fraction";
|
|
2160
|
+
name: string;
|
|
2161
|
+
simplified: boolean;
|
|
2162
|
+
answer?: string | undefined;
|
|
2163
|
+
numerator?: number | undefined;
|
|
2164
|
+
denominator?: number | undefined;
|
|
2165
|
+
}, {
|
|
2166
|
+
type: "Fraction";
|
|
2167
|
+
name: string;
|
|
2168
|
+
answer?: string | undefined;
|
|
2169
|
+
numerator?: number | undefined;
|
|
2170
|
+
denominator?: number | undefined;
|
|
2171
|
+
simplified?: boolean | undefined;
|
|
2172
|
+
}>]>, "many">;
|
|
1732
2173
|
}, "strip", z.ZodTypeAny, {
|
|
1733
2174
|
type: "TableCell";
|
|
1734
2175
|
inlines: ({
|
|
@@ -1761,6 +2202,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1761
2202
|
name: string;
|
|
1762
2203
|
digits: number;
|
|
1763
2204
|
answer?: string | number | undefined;
|
|
2205
|
+
} | {
|
|
2206
|
+
type: "Fraction";
|
|
2207
|
+
name: string;
|
|
2208
|
+
simplified: boolean;
|
|
2209
|
+
answer?: string | undefined;
|
|
2210
|
+
numerator?: number | undefined;
|
|
2211
|
+
denominator?: number | undefined;
|
|
1764
2212
|
})[];
|
|
1765
2213
|
colspan?: number | undefined;
|
|
1766
2214
|
}, {
|
|
@@ -1795,6 +2243,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1795
2243
|
name: string;
|
|
1796
2244
|
digits: number;
|
|
1797
2245
|
answer?: string | number | undefined;
|
|
2246
|
+
} | {
|
|
2247
|
+
type: "Fraction";
|
|
2248
|
+
name: string;
|
|
2249
|
+
answer?: string | undefined;
|
|
2250
|
+
numerator?: number | undefined;
|
|
2251
|
+
denominator?: number | undefined;
|
|
2252
|
+
simplified?: boolean | undefined;
|
|
1798
2253
|
})[];
|
|
1799
2254
|
colspan?: number | undefined;
|
|
1800
2255
|
}>, "many">;
|
|
@@ -1832,6 +2287,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1832
2287
|
name: string;
|
|
1833
2288
|
digits: number;
|
|
1834
2289
|
answer?: string | number | undefined;
|
|
2290
|
+
} | {
|
|
2291
|
+
type: "Fraction";
|
|
2292
|
+
name: string;
|
|
2293
|
+
simplified: boolean;
|
|
2294
|
+
answer?: string | undefined;
|
|
2295
|
+
numerator?: number | undefined;
|
|
2296
|
+
denominator?: number | undefined;
|
|
1835
2297
|
})[];
|
|
1836
2298
|
colspan?: number | undefined;
|
|
1837
2299
|
}[];
|
|
@@ -1869,6 +2331,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1869
2331
|
name: string;
|
|
1870
2332
|
digits: number;
|
|
1871
2333
|
answer?: string | number | undefined;
|
|
2334
|
+
} | {
|
|
2335
|
+
type: "Fraction";
|
|
2336
|
+
name: string;
|
|
2337
|
+
answer?: string | undefined;
|
|
2338
|
+
numerator?: number | undefined;
|
|
2339
|
+
denominator?: number | undefined;
|
|
2340
|
+
simplified?: boolean | undefined;
|
|
1872
2341
|
})[];
|
|
1873
2342
|
colspan?: number | undefined;
|
|
1874
2343
|
}[];
|
|
@@ -1910,6 +2379,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1910
2379
|
name: string;
|
|
1911
2380
|
digits: number;
|
|
1912
2381
|
answer?: string | number | undefined;
|
|
2382
|
+
} | {
|
|
2383
|
+
type: "Fraction";
|
|
2384
|
+
name: string;
|
|
2385
|
+
simplified: boolean;
|
|
2386
|
+
answer?: string | undefined;
|
|
2387
|
+
numerator?: number | undefined;
|
|
2388
|
+
denominator?: number | undefined;
|
|
1913
2389
|
})[];
|
|
1914
2390
|
colspan?: number | undefined;
|
|
1915
2391
|
}[];
|
|
@@ -1951,6 +2427,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1951
2427
|
name: string;
|
|
1952
2428
|
digits: number;
|
|
1953
2429
|
answer?: string | number | undefined;
|
|
2430
|
+
} | {
|
|
2431
|
+
type: "Fraction";
|
|
2432
|
+
name: string;
|
|
2433
|
+
answer?: string | undefined;
|
|
2434
|
+
numerator?: number | undefined;
|
|
2435
|
+
denominator?: number | undefined;
|
|
2436
|
+
simplified?: boolean | undefined;
|
|
1954
2437
|
})[];
|
|
1955
2438
|
colspan?: number | undefined;
|
|
1956
2439
|
}[];
|
|
@@ -1977,6 +2460,69 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
1977
2460
|
step: z.ZodDefault<z.ZodNumber>;
|
|
1978
2461
|
minorTicks: z.ZodOptional<z.ZodNumber>;
|
|
1979
2462
|
style: z.ZodOptional<z.ZodEnum<["arrow-right", "arrow-left", "arrow-both", "line"]>>;
|
|
2463
|
+
labelVisibility: z.ZodOptional<z.ZodEnum<["all", "extremes", "min-only", "max-only", "none"]>>;
|
|
2464
|
+
counter: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
2465
|
+
type: z.ZodLiteral<"NumberLineCounter">;
|
|
2466
|
+
min: z.ZodNumber;
|
|
2467
|
+
max: z.ZodNumber;
|
|
2468
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
2469
|
+
name: z.ZodOptional<z.ZodString>;
|
|
2470
|
+
}, "strip", z.ZodTypeAny, {
|
|
2471
|
+
type: "NumberLineCounter";
|
|
2472
|
+
min: number;
|
|
2473
|
+
max: number;
|
|
2474
|
+
name?: string | undefined;
|
|
2475
|
+
default?: number | undefined;
|
|
2476
|
+
}, {
|
|
2477
|
+
type: "NumberLineCounter";
|
|
2478
|
+
min: number;
|
|
2479
|
+
max: number;
|
|
2480
|
+
name?: string | undefined;
|
|
2481
|
+
default?: number | undefined;
|
|
2482
|
+
}>, {
|
|
2483
|
+
type: "NumberLineCounter";
|
|
2484
|
+
min: number;
|
|
2485
|
+
max: number;
|
|
2486
|
+
name?: string | undefined;
|
|
2487
|
+
default?: number | undefined;
|
|
2488
|
+
}, {
|
|
2489
|
+
type: "NumberLineCounter";
|
|
2490
|
+
min: number;
|
|
2491
|
+
max: number;
|
|
2492
|
+
name?: string | undefined;
|
|
2493
|
+
default?: number | undefined;
|
|
2494
|
+
}>>;
|
|
2495
|
+
highlights: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
2496
|
+
type: z.ZodLiteral<"NumberLineHighlight">;
|
|
2497
|
+
from: z.ZodNumber;
|
|
2498
|
+
to: z.ZodNumber;
|
|
2499
|
+
color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
|
|
2500
|
+
label: z.ZodOptional<z.ZodString>;
|
|
2501
|
+
}, "strip", z.ZodTypeAny, {
|
|
2502
|
+
type: "NumberLineHighlight";
|
|
2503
|
+
from: number;
|
|
2504
|
+
to: number;
|
|
2505
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
2506
|
+
label?: string | undefined;
|
|
2507
|
+
}, {
|
|
2508
|
+
type: "NumberLineHighlight";
|
|
2509
|
+
from: number;
|
|
2510
|
+
to: number;
|
|
2511
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
2512
|
+
label?: string | undefined;
|
|
2513
|
+
}>, {
|
|
2514
|
+
type: "NumberLineHighlight";
|
|
2515
|
+
from: number;
|
|
2516
|
+
to: number;
|
|
2517
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
2518
|
+
label?: string | undefined;
|
|
2519
|
+
}, {
|
|
2520
|
+
type: "NumberLineHighlight";
|
|
2521
|
+
from: number;
|
|
2522
|
+
to: number;
|
|
2523
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
2524
|
+
label?: string | undefined;
|
|
2525
|
+
}>, "many">>;
|
|
1980
2526
|
positions: z.ZodArray<z.ZodObject<{
|
|
1981
2527
|
type: z.ZodLiteral<"NumberLinePosition">;
|
|
1982
2528
|
value: z.ZodNumber;
|
|
@@ -2070,7 +2616,28 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2070
2616
|
name: string;
|
|
2071
2617
|
digits: number;
|
|
2072
2618
|
answer?: string | number | undefined;
|
|
2073
|
-
}>]
|
|
2619
|
+
}>]>, z.ZodObject<{
|
|
2620
|
+
type: z.ZodLiteral<"Fraction">;
|
|
2621
|
+
name: z.ZodString;
|
|
2622
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
2623
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
2624
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
2625
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
2626
|
+
}, "strip", z.ZodTypeAny, {
|
|
2627
|
+
type: "Fraction";
|
|
2628
|
+
name: string;
|
|
2629
|
+
simplified: boolean;
|
|
2630
|
+
answer?: string | undefined;
|
|
2631
|
+
numerator?: number | undefined;
|
|
2632
|
+
denominator?: number | undefined;
|
|
2633
|
+
}, {
|
|
2634
|
+
type: "Fraction";
|
|
2635
|
+
name: string;
|
|
2636
|
+
answer?: string | undefined;
|
|
2637
|
+
numerator?: number | undefined;
|
|
2638
|
+
denominator?: number | undefined;
|
|
2639
|
+
simplified?: boolean | undefined;
|
|
2640
|
+
}>]>, "many">;
|
|
2074
2641
|
}, "strip", z.ZodTypeAny, {
|
|
2075
2642
|
value: number;
|
|
2076
2643
|
type: "NumberLinePosition";
|
|
@@ -2104,6 +2671,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2104
2671
|
name: string;
|
|
2105
2672
|
digits: number;
|
|
2106
2673
|
answer?: string | number | undefined;
|
|
2674
|
+
} | {
|
|
2675
|
+
type: "Fraction";
|
|
2676
|
+
name: string;
|
|
2677
|
+
simplified: boolean;
|
|
2678
|
+
answer?: string | undefined;
|
|
2679
|
+
numerator?: number | undefined;
|
|
2680
|
+
denominator?: number | undefined;
|
|
2107
2681
|
})[];
|
|
2108
2682
|
}, {
|
|
2109
2683
|
value: number;
|
|
@@ -2138,6 +2712,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2138
2712
|
name: string;
|
|
2139
2713
|
digits: number;
|
|
2140
2714
|
answer?: string | number | undefined;
|
|
2715
|
+
} | {
|
|
2716
|
+
type: "Fraction";
|
|
2717
|
+
name: string;
|
|
2718
|
+
answer?: string | undefined;
|
|
2719
|
+
numerator?: number | undefined;
|
|
2720
|
+
denominator?: number | undefined;
|
|
2721
|
+
simplified?: boolean | undefined;
|
|
2141
2722
|
})[];
|
|
2142
2723
|
}>, "many">;
|
|
2143
2724
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -2178,10 +2759,32 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2178
2759
|
name: string;
|
|
2179
2760
|
digits: number;
|
|
2180
2761
|
answer?: string | number | undefined;
|
|
2762
|
+
} | {
|
|
2763
|
+
type: "Fraction";
|
|
2764
|
+
name: string;
|
|
2765
|
+
simplified: boolean;
|
|
2766
|
+
answer?: string | undefined;
|
|
2767
|
+
numerator?: number | undefined;
|
|
2768
|
+
denominator?: number | undefined;
|
|
2181
2769
|
})[];
|
|
2182
2770
|
}[];
|
|
2771
|
+
counter?: {
|
|
2772
|
+
type: "NumberLineCounter";
|
|
2773
|
+
min: number;
|
|
2774
|
+
max: number;
|
|
2775
|
+
name?: string | undefined;
|
|
2776
|
+
default?: number | undefined;
|
|
2777
|
+
} | undefined;
|
|
2183
2778
|
minorTicks?: number | undefined;
|
|
2184
2779
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
2780
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
2781
|
+
highlights?: {
|
|
2782
|
+
type: "NumberLineHighlight";
|
|
2783
|
+
from: number;
|
|
2784
|
+
to: number;
|
|
2785
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
2786
|
+
label?: string | undefined;
|
|
2787
|
+
}[] | undefined;
|
|
2185
2788
|
}, {
|
|
2186
2789
|
type: "NumberLineBlock";
|
|
2187
2790
|
min: number;
|
|
@@ -2219,11 +2822,33 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2219
2822
|
name: string;
|
|
2220
2823
|
digits: number;
|
|
2221
2824
|
answer?: string | number | undefined;
|
|
2825
|
+
} | {
|
|
2826
|
+
type: "Fraction";
|
|
2827
|
+
name: string;
|
|
2828
|
+
answer?: string | undefined;
|
|
2829
|
+
numerator?: number | undefined;
|
|
2830
|
+
denominator?: number | undefined;
|
|
2831
|
+
simplified?: boolean | undefined;
|
|
2222
2832
|
})[];
|
|
2223
2833
|
}[];
|
|
2834
|
+
counter?: {
|
|
2835
|
+
type: "NumberLineCounter";
|
|
2836
|
+
min: number;
|
|
2837
|
+
max: number;
|
|
2838
|
+
name?: string | undefined;
|
|
2839
|
+
default?: number | undefined;
|
|
2840
|
+
} | undefined;
|
|
2224
2841
|
step?: number | undefined;
|
|
2225
2842
|
minorTicks?: number | undefined;
|
|
2226
2843
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
2844
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
2845
|
+
highlights?: {
|
|
2846
|
+
type: "NumberLineHighlight";
|
|
2847
|
+
from: number;
|
|
2848
|
+
to: number;
|
|
2849
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
2850
|
+
label?: string | undefined;
|
|
2851
|
+
}[] | undefined;
|
|
2227
2852
|
}>, {
|
|
2228
2853
|
type: "NumberLineBlock";
|
|
2229
2854
|
min: number;
|
|
@@ -2262,10 +2887,32 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2262
2887
|
name: string;
|
|
2263
2888
|
digits: number;
|
|
2264
2889
|
answer?: string | number | undefined;
|
|
2890
|
+
} | {
|
|
2891
|
+
type: "Fraction";
|
|
2892
|
+
name: string;
|
|
2893
|
+
simplified: boolean;
|
|
2894
|
+
answer?: string | undefined;
|
|
2895
|
+
numerator?: number | undefined;
|
|
2896
|
+
denominator?: number | undefined;
|
|
2265
2897
|
})[];
|
|
2266
2898
|
}[];
|
|
2899
|
+
counter?: {
|
|
2900
|
+
type: "NumberLineCounter";
|
|
2901
|
+
min: number;
|
|
2902
|
+
max: number;
|
|
2903
|
+
name?: string | undefined;
|
|
2904
|
+
default?: number | undefined;
|
|
2905
|
+
} | undefined;
|
|
2267
2906
|
minorTicks?: number | undefined;
|
|
2268
2907
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
2908
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
2909
|
+
highlights?: {
|
|
2910
|
+
type: "NumberLineHighlight";
|
|
2911
|
+
from: number;
|
|
2912
|
+
to: number;
|
|
2913
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
2914
|
+
label?: string | undefined;
|
|
2915
|
+
}[] | undefined;
|
|
2269
2916
|
}, {
|
|
2270
2917
|
type: "NumberLineBlock";
|
|
2271
2918
|
min: number;
|
|
@@ -2303,11 +2950,33 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2303
2950
|
name: string;
|
|
2304
2951
|
digits: number;
|
|
2305
2952
|
answer?: string | number | undefined;
|
|
2953
|
+
} | {
|
|
2954
|
+
type: "Fraction";
|
|
2955
|
+
name: string;
|
|
2956
|
+
answer?: string | undefined;
|
|
2957
|
+
numerator?: number | undefined;
|
|
2958
|
+
denominator?: number | undefined;
|
|
2959
|
+
simplified?: boolean | undefined;
|
|
2306
2960
|
})[];
|
|
2307
2961
|
}[];
|
|
2962
|
+
counter?: {
|
|
2963
|
+
type: "NumberLineCounter";
|
|
2964
|
+
min: number;
|
|
2965
|
+
max: number;
|
|
2966
|
+
name?: string | undefined;
|
|
2967
|
+
default?: number | undefined;
|
|
2968
|
+
} | undefined;
|
|
2308
2969
|
step?: number | undefined;
|
|
2309
2970
|
minorTicks?: number | undefined;
|
|
2310
2971
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
2972
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
2973
|
+
highlights?: {
|
|
2974
|
+
type: "NumberLineHighlight";
|
|
2975
|
+
from: number;
|
|
2976
|
+
to: number;
|
|
2977
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
2978
|
+
label?: string | undefined;
|
|
2979
|
+
}[] | undefined;
|
|
2311
2980
|
}>, {
|
|
2312
2981
|
type: "NumberLineBlock";
|
|
2313
2982
|
min: number;
|
|
@@ -2346,10 +3015,32 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2346
3015
|
name: string;
|
|
2347
3016
|
digits: number;
|
|
2348
3017
|
answer?: string | number | undefined;
|
|
3018
|
+
} | {
|
|
3019
|
+
type: "Fraction";
|
|
3020
|
+
name: string;
|
|
3021
|
+
simplified: boolean;
|
|
3022
|
+
answer?: string | undefined;
|
|
3023
|
+
numerator?: number | undefined;
|
|
3024
|
+
denominator?: number | undefined;
|
|
2349
3025
|
})[];
|
|
2350
3026
|
}[];
|
|
3027
|
+
counter?: {
|
|
3028
|
+
type: "NumberLineCounter";
|
|
3029
|
+
min: number;
|
|
3030
|
+
max: number;
|
|
3031
|
+
name?: string | undefined;
|
|
3032
|
+
default?: number | undefined;
|
|
3033
|
+
} | undefined;
|
|
2351
3034
|
minorTicks?: number | undefined;
|
|
2352
3035
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
3036
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
3037
|
+
highlights?: {
|
|
3038
|
+
type: "NumberLineHighlight";
|
|
3039
|
+
from: number;
|
|
3040
|
+
to: number;
|
|
3041
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
3042
|
+
label?: string | undefined;
|
|
3043
|
+
}[] | undefined;
|
|
2353
3044
|
}, {
|
|
2354
3045
|
type: "NumberLineBlock";
|
|
2355
3046
|
min: number;
|
|
@@ -2387,11 +3078,33 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2387
3078
|
name: string;
|
|
2388
3079
|
digits: number;
|
|
2389
3080
|
answer?: string | number | undefined;
|
|
3081
|
+
} | {
|
|
3082
|
+
type: "Fraction";
|
|
3083
|
+
name: string;
|
|
3084
|
+
answer?: string | undefined;
|
|
3085
|
+
numerator?: number | undefined;
|
|
3086
|
+
denominator?: number | undefined;
|
|
3087
|
+
simplified?: boolean | undefined;
|
|
2390
3088
|
})[];
|
|
2391
3089
|
}[];
|
|
3090
|
+
counter?: {
|
|
3091
|
+
type: "NumberLineCounter";
|
|
3092
|
+
min: number;
|
|
3093
|
+
max: number;
|
|
3094
|
+
name?: string | undefined;
|
|
3095
|
+
default?: number | undefined;
|
|
3096
|
+
} | undefined;
|
|
2392
3097
|
step?: number | undefined;
|
|
2393
3098
|
minorTicks?: number | undefined;
|
|
2394
3099
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
3100
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
3101
|
+
highlights?: {
|
|
3102
|
+
type: "NumberLineHighlight";
|
|
3103
|
+
from: number;
|
|
3104
|
+
to: number;
|
|
3105
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
3106
|
+
label?: string | undefined;
|
|
3107
|
+
}[] | undefined;
|
|
2395
3108
|
}>]>, "many">;
|
|
2396
3109
|
tools: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
2397
3110
|
type: z.ZodLiteral<"DragOptions">;
|
|
@@ -2465,6 +3178,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2465
3178
|
name: string;
|
|
2466
3179
|
digits: number;
|
|
2467
3180
|
answer?: string | number | undefined;
|
|
3181
|
+
} | {
|
|
3182
|
+
type: "Fraction";
|
|
3183
|
+
name: string;
|
|
3184
|
+
simplified: boolean;
|
|
3185
|
+
answer?: string | undefined;
|
|
3186
|
+
numerator?: number | undefined;
|
|
3187
|
+
denominator?: number | undefined;
|
|
2468
3188
|
})[];
|
|
2469
3189
|
} | {
|
|
2470
3190
|
type: "NumberLineBlock";
|
|
@@ -2504,10 +3224,32 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2504
3224
|
name: string;
|
|
2505
3225
|
digits: number;
|
|
2506
3226
|
answer?: string | number | undefined;
|
|
3227
|
+
} | {
|
|
3228
|
+
type: "Fraction";
|
|
3229
|
+
name: string;
|
|
3230
|
+
simplified: boolean;
|
|
3231
|
+
answer?: string | undefined;
|
|
3232
|
+
numerator?: number | undefined;
|
|
3233
|
+
denominator?: number | undefined;
|
|
2507
3234
|
})[];
|
|
2508
3235
|
}[];
|
|
3236
|
+
counter?: {
|
|
3237
|
+
type: "NumberLineCounter";
|
|
3238
|
+
min: number;
|
|
3239
|
+
max: number;
|
|
3240
|
+
name?: string | undefined;
|
|
3241
|
+
default?: number | undefined;
|
|
3242
|
+
} | undefined;
|
|
2509
3243
|
minorTicks?: number | undefined;
|
|
2510
3244
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
3245
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
3246
|
+
highlights?: {
|
|
3247
|
+
type: "NumberLineHighlight";
|
|
3248
|
+
from: number;
|
|
3249
|
+
to: number;
|
|
3250
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
3251
|
+
label?: string | undefined;
|
|
3252
|
+
}[] | undefined;
|
|
2511
3253
|
} | {
|
|
2512
3254
|
type: "TableBlock";
|
|
2513
3255
|
cols: number;
|
|
@@ -2545,6 +3287,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2545
3287
|
name: string;
|
|
2546
3288
|
digits: number;
|
|
2547
3289
|
answer?: string | number | undefined;
|
|
3290
|
+
} | {
|
|
3291
|
+
type: "Fraction";
|
|
3292
|
+
name: string;
|
|
3293
|
+
simplified: boolean;
|
|
3294
|
+
answer?: string | undefined;
|
|
3295
|
+
numerator?: number | undefined;
|
|
3296
|
+
denominator?: number | undefined;
|
|
2548
3297
|
})[];
|
|
2549
3298
|
colspan?: number | undefined;
|
|
2550
3299
|
}[];
|
|
@@ -2607,6 +3356,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2607
3356
|
name: string;
|
|
2608
3357
|
digits: number;
|
|
2609
3358
|
answer?: string | number | undefined;
|
|
3359
|
+
} | {
|
|
3360
|
+
type: "Fraction";
|
|
3361
|
+
name: string;
|
|
3362
|
+
answer?: string | undefined;
|
|
3363
|
+
numerator?: number | undefined;
|
|
3364
|
+
denominator?: number | undefined;
|
|
3365
|
+
simplified?: boolean | undefined;
|
|
2610
3366
|
})[];
|
|
2611
3367
|
} | {
|
|
2612
3368
|
type: "NumberLineBlock";
|
|
@@ -2645,11 +3401,33 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2645
3401
|
name: string;
|
|
2646
3402
|
digits: number;
|
|
2647
3403
|
answer?: string | number | undefined;
|
|
3404
|
+
} | {
|
|
3405
|
+
type: "Fraction";
|
|
3406
|
+
name: string;
|
|
3407
|
+
answer?: string | undefined;
|
|
3408
|
+
numerator?: number | undefined;
|
|
3409
|
+
denominator?: number | undefined;
|
|
3410
|
+
simplified?: boolean | undefined;
|
|
2648
3411
|
})[];
|
|
2649
3412
|
}[];
|
|
3413
|
+
counter?: {
|
|
3414
|
+
type: "NumberLineCounter";
|
|
3415
|
+
min: number;
|
|
3416
|
+
max: number;
|
|
3417
|
+
name?: string | undefined;
|
|
3418
|
+
default?: number | undefined;
|
|
3419
|
+
} | undefined;
|
|
2650
3420
|
step?: number | undefined;
|
|
2651
3421
|
minorTicks?: number | undefined;
|
|
2652
3422
|
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
3423
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
3424
|
+
highlights?: {
|
|
3425
|
+
type: "NumberLineHighlight";
|
|
3426
|
+
from: number;
|
|
3427
|
+
to: number;
|
|
3428
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
3429
|
+
label?: string | undefined;
|
|
3430
|
+
}[] | undefined;
|
|
2653
3431
|
} | {
|
|
2654
3432
|
type: "TableBlock";
|
|
2655
3433
|
cols: number;
|
|
@@ -2687,6 +3465,13 @@ export declare const ExerciseDocumentSchema: z.ZodObject<{
|
|
|
2687
3465
|
name: string;
|
|
2688
3466
|
digits: number;
|
|
2689
3467
|
answer?: string | number | undefined;
|
|
3468
|
+
} | {
|
|
3469
|
+
type: "Fraction";
|
|
3470
|
+
name: string;
|
|
3471
|
+
answer?: string | undefined;
|
|
3472
|
+
numerator?: number | undefined;
|
|
3473
|
+
denominator?: number | undefined;
|
|
3474
|
+
simplified?: boolean | undefined;
|
|
2690
3475
|
})[];
|
|
2691
3476
|
colspan?: number | undefined;
|
|
2692
3477
|
}[];
|
|
@@ -2777,6 +3562,21 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
|
|
|
2777
3562
|
type: "numeric-keypad";
|
|
2778
3563
|
includeOperators?: boolean | undefined;
|
|
2779
3564
|
includeDecimal?: boolean | undefined;
|
|
3565
|
+
}>, z.ZodObject<{
|
|
3566
|
+
type: z.ZodLiteral<"fraction">;
|
|
3567
|
+
numerator: z.ZodNullable<z.ZodNumber>;
|
|
3568
|
+
denominator: z.ZodNullable<z.ZodNumber>;
|
|
3569
|
+
simplified: z.ZodBoolean;
|
|
3570
|
+
}, "strip", z.ZodTypeAny, {
|
|
3571
|
+
type: "fraction";
|
|
3572
|
+
numerator: number | null;
|
|
3573
|
+
denominator: number | null;
|
|
3574
|
+
simplified: boolean;
|
|
3575
|
+
}, {
|
|
3576
|
+
type: "fraction";
|
|
3577
|
+
numerator: number | null;
|
|
3578
|
+
denominator: number | null;
|
|
3579
|
+
simplified: boolean;
|
|
2780
3580
|
}>]>>;
|
|
2781
3581
|
validation: z.ZodOptional<z.ZodObject<{
|
|
2782
3582
|
mode: z.ZodEnum<["simple", "expression"]>;
|
|
@@ -2831,6 +3631,11 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
|
|
|
2831
3631
|
type: "numeric-keypad";
|
|
2832
3632
|
includeOperators?: boolean | undefined;
|
|
2833
3633
|
includeDecimal?: boolean | undefined;
|
|
3634
|
+
} | {
|
|
3635
|
+
type: "fraction";
|
|
3636
|
+
numerator: number | null;
|
|
3637
|
+
denominator: number | null;
|
|
3638
|
+
simplified: boolean;
|
|
2834
3639
|
}>;
|
|
2835
3640
|
validation?: {
|
|
2836
3641
|
mode: "simple" | "expression";
|
|
@@ -2866,6 +3671,11 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
|
|
|
2866
3671
|
type: "numeric-keypad";
|
|
2867
3672
|
includeOperators?: boolean | undefined;
|
|
2868
3673
|
includeDecimal?: boolean | undefined;
|
|
3674
|
+
} | {
|
|
3675
|
+
type: "fraction";
|
|
3676
|
+
numerator: number | null;
|
|
3677
|
+
denominator: number | null;
|
|
3678
|
+
simplified: boolean;
|
|
2869
3679
|
}>;
|
|
2870
3680
|
validation?: {
|
|
2871
3681
|
mode: "simple" | "expression";
|
|
@@ -2972,6 +3782,72 @@ export declare function findValidCombination(expression: string, ranges: Record<
|
|
|
2972
3782
|
step?: number;
|
|
2973
3783
|
}>): Record<string, number> | null;
|
|
2974
3784
|
|
|
3785
|
+
export declare type FractionInline = z.infer<typeof FractionInlineSchema>;
|
|
3786
|
+
|
|
3787
|
+
/**
|
|
3788
|
+
* Fraction inline widget schema
|
|
3789
|
+
*
|
|
3790
|
+
* Modes determined by presence of numerator/denominator:
|
|
3791
|
+
* - both provided → readonly display
|
|
3792
|
+
* - only numerator → denominator input
|
|
3793
|
+
* - only denominator → numerator input
|
|
3794
|
+
* - neither → both are inputs
|
|
3795
|
+
*
|
|
3796
|
+
* @example Readonly: { type: "Fraction", name: "x", numerator: 5, denominator: 3 }
|
|
3797
|
+
* @example Denominator input: { type: "Fraction", name: "y", numerator: 5, answer: "5/3" }
|
|
3798
|
+
* @example Both inputs: { type: "Fraction", name: "z", answer: "5/3" }
|
|
3799
|
+
*/
|
|
3800
|
+
export declare const FractionInlineSchema: z.ZodObject<{
|
|
3801
|
+
type: z.ZodLiteral<"Fraction">;
|
|
3802
|
+
name: z.ZodString;
|
|
3803
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
3804
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
3805
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
3806
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
3807
|
+
}, "strip", z.ZodTypeAny, {
|
|
3808
|
+
type: "Fraction";
|
|
3809
|
+
name: string;
|
|
3810
|
+
simplified: boolean;
|
|
3811
|
+
answer?: string | undefined;
|
|
3812
|
+
numerator?: number | undefined;
|
|
3813
|
+
denominator?: number | undefined;
|
|
3814
|
+
}, {
|
|
3815
|
+
type: "Fraction";
|
|
3816
|
+
name: string;
|
|
3817
|
+
answer?: string | undefined;
|
|
3818
|
+
numerator?: number | undefined;
|
|
3819
|
+
denominator?: number | undefined;
|
|
3820
|
+
simplified?: boolean | undefined;
|
|
3821
|
+
}>;
|
|
3822
|
+
|
|
3823
|
+
export declare type FractionJSON = z.infer<typeof FractionJSONSchema>;
|
|
3824
|
+
|
|
3825
|
+
export declare const FractionJSONSchema: z.ZodObject<{
|
|
3826
|
+
type: z.ZodLiteral<"fraction">;
|
|
3827
|
+
numerator: z.ZodNullable<z.ZodNumber>;
|
|
3828
|
+
denominator: z.ZodNullable<z.ZodNumber>;
|
|
3829
|
+
simplified: z.ZodBoolean;
|
|
3830
|
+
}, "strip", z.ZodTypeAny, {
|
|
3831
|
+
type: "fraction";
|
|
3832
|
+
numerator: number | null;
|
|
3833
|
+
denominator: number | null;
|
|
3834
|
+
simplified: boolean;
|
|
3835
|
+
}, {
|
|
3836
|
+
type: "fraction";
|
|
3837
|
+
numerator: number | null;
|
|
3838
|
+
denominator: number | null;
|
|
3839
|
+
simplified: boolean;
|
|
3840
|
+
}>;
|
|
3841
|
+
|
|
3842
|
+
/**
|
|
3843
|
+
* Centralized fraction compound key utilities.
|
|
3844
|
+
*
|
|
3845
|
+
* Fraction widgets use compound keys (e.g., "x__num", "x__den") in the
|
|
3846
|
+
* UI values map for sub-inputs. These keys are UI-only — they never appear
|
|
3847
|
+
* in the widgets map or validation answers.
|
|
3848
|
+
*/
|
|
3849
|
+
export declare type FractionPart = 'num' | 'den';
|
|
3850
|
+
|
|
2975
3851
|
export declare type FreeTextInline = z.infer<typeof FreeTextInlineSchema>;
|
|
2976
3852
|
|
|
2977
3853
|
/**
|
|
@@ -2994,6 +3870,8 @@ export declare const FreeTextInlineSchema: z.ZodObject<{
|
|
|
2994
3870
|
type: "FreeText";
|
|
2995
3871
|
}>;
|
|
2996
3872
|
|
|
3873
|
+
export declare function getFractionKey(widgetId: string, part: FractionPart): string;
|
|
3874
|
+
|
|
2997
3875
|
/**
|
|
2998
3876
|
* Check if all required inputs are provided
|
|
2999
3877
|
*
|
|
@@ -3253,7 +4131,28 @@ export declare const InlineNodeSchema: z.ZodUnion<[z.ZodObject<{
|
|
|
3253
4131
|
name: string;
|
|
3254
4132
|
digits: number;
|
|
3255
4133
|
answer?: string | number | undefined;
|
|
3256
|
-
}>]
|
|
4134
|
+
}>]>, z.ZodObject<{
|
|
4135
|
+
type: z.ZodLiteral<"Fraction">;
|
|
4136
|
+
name: z.ZodString;
|
|
4137
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
4138
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
4139
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
4140
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
4141
|
+
}, "strip", z.ZodTypeAny, {
|
|
4142
|
+
type: "Fraction";
|
|
4143
|
+
name: string;
|
|
4144
|
+
simplified: boolean;
|
|
4145
|
+
answer?: string | undefined;
|
|
4146
|
+
numerator?: number | undefined;
|
|
4147
|
+
denominator?: number | undefined;
|
|
4148
|
+
}, {
|
|
4149
|
+
type: "Fraction";
|
|
4150
|
+
name: string;
|
|
4151
|
+
answer?: string | undefined;
|
|
4152
|
+
numerator?: number | undefined;
|
|
4153
|
+
denominator?: number | undefined;
|
|
4154
|
+
simplified?: boolean | undefined;
|
|
4155
|
+
}>]>;
|
|
3257
4156
|
|
|
3258
4157
|
/**
|
|
3259
4158
|
* Type guard for BoldText
|
|
@@ -3282,14 +4181,23 @@ export declare function isExerciseDocument(value: unknown): value is ExerciseDoc
|
|
|
3282
4181
|
|
|
3283
4182
|
export declare function isExpressionValidation(value: unknown): value is ExpressionValidation;
|
|
3284
4183
|
|
|
4184
|
+
export declare function isFraction(value: unknown): value is FractionInline;
|
|
4185
|
+
|
|
4186
|
+
/**
|
|
4187
|
+
* Type guard for FractionJSON
|
|
4188
|
+
*/
|
|
4189
|
+
export declare function isFractionJSON(widget: WidgetJSON): widget is Extract<WidgetJSON, {
|
|
4190
|
+
type: 'fraction';
|
|
4191
|
+
}>;
|
|
4192
|
+
|
|
4193
|
+
export declare function isFractionKey(key: string): boolean;
|
|
4194
|
+
|
|
3285
4195
|
export declare function isFreeText(value: unknown): value is FreeTextInline;
|
|
3286
4196
|
|
|
3287
4197
|
/**
|
|
3288
4198
|
* Type guard for GroupItem
|
|
3289
4199
|
*/
|
|
3290
|
-
export declare function isGroupItem(item: LayoutItem): item is
|
|
3291
|
-
type: 'group';
|
|
3292
|
-
}>;
|
|
4200
|
+
export declare function isGroupItem(item: LayoutItem): item is GroupItem;
|
|
3293
4201
|
|
|
3294
4202
|
/**
|
|
3295
4203
|
* Type guard for HighlightedText
|
|
@@ -3444,6 +4352,10 @@ export declare const JSON_TYPES: {
|
|
|
3444
4352
|
readonly NUMBER_LINE: "number-line";
|
|
3445
4353
|
/** Position marker within a number line */
|
|
3446
4354
|
readonly NUMBER_LINE_POSITION: "number-line-position";
|
|
4355
|
+
/** Dynamic subdivision counter embedded in a number line */
|
|
4356
|
+
readonly NUMBER_LINE_COUNTER: "number-line-counter";
|
|
4357
|
+
/** Highlighted range within a number line */
|
|
4358
|
+
readonly NUMBER_LINE_HIGHLIGHT: "number-line-highlight";
|
|
3447
4359
|
/** Inline input widget (string or numeric) */
|
|
3448
4360
|
readonly INLINE_INPUT: "inline-input";
|
|
3449
4361
|
/** Drag-and-drop options widget */
|
|
@@ -3452,6 +4364,8 @@ export declare const JSON_TYPES: {
|
|
|
3452
4364
|
readonly RADIO_OPTIONS: "radio-options";
|
|
3453
4365
|
/** Numeric keypad widget */
|
|
3454
4366
|
readonly NUMERIC_KEYPAD: "numeric-keypad";
|
|
4367
|
+
/** Inline fraction widget */
|
|
4368
|
+
readonly FRACTION: "fraction";
|
|
3455
4369
|
};
|
|
3456
4370
|
|
|
3457
4371
|
/**
|
|
@@ -3473,6 +4387,7 @@ export declare interface LayoutRendererProps {
|
|
|
3473
4387
|
widgets: Record<string, WidgetJSON>;
|
|
3474
4388
|
values: Record<string, string>;
|
|
3475
4389
|
droppedInputs: Set<string>;
|
|
4390
|
+
validationDetails?: Record<string, boolean> | null;
|
|
3476
4391
|
onChange: (widgetId: string, value: string, fromDrop?: boolean, sourceOptionId?: string) => void;
|
|
3477
4392
|
onInputFocus?: (widgetId: string) => void;
|
|
3478
4393
|
}
|
|
@@ -3596,7 +4511,28 @@ export declare const LineBlockSchema: z.ZodObject<{
|
|
|
3596
4511
|
name: string;
|
|
3597
4512
|
digits: number;
|
|
3598
4513
|
answer?: string | number | undefined;
|
|
3599
|
-
}>]
|
|
4514
|
+
}>]>, z.ZodObject<{
|
|
4515
|
+
type: z.ZodLiteral<"Fraction">;
|
|
4516
|
+
name: z.ZodString;
|
|
4517
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
4518
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
4519
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
4520
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
4521
|
+
}, "strip", z.ZodTypeAny, {
|
|
4522
|
+
type: "Fraction";
|
|
4523
|
+
name: string;
|
|
4524
|
+
simplified: boolean;
|
|
4525
|
+
answer?: string | undefined;
|
|
4526
|
+
numerator?: number | undefined;
|
|
4527
|
+
denominator?: number | undefined;
|
|
4528
|
+
}, {
|
|
4529
|
+
type: "Fraction";
|
|
4530
|
+
name: string;
|
|
4531
|
+
answer?: string | undefined;
|
|
4532
|
+
numerator?: number | undefined;
|
|
4533
|
+
denominator?: number | undefined;
|
|
4534
|
+
simplified?: boolean | undefined;
|
|
4535
|
+
}>]>, "many">;
|
|
3600
4536
|
}, "strip", z.ZodTypeAny, {
|
|
3601
4537
|
type: "LineBlock";
|
|
3602
4538
|
inlines: ({
|
|
@@ -3629,6 +4565,13 @@ export declare const LineBlockSchema: z.ZodObject<{
|
|
|
3629
4565
|
name: string;
|
|
3630
4566
|
digits: number;
|
|
3631
4567
|
answer?: string | number | undefined;
|
|
4568
|
+
} | {
|
|
4569
|
+
type: "Fraction";
|
|
4570
|
+
name: string;
|
|
4571
|
+
simplified: boolean;
|
|
4572
|
+
answer?: string | undefined;
|
|
4573
|
+
numerator?: number | undefined;
|
|
4574
|
+
denominator?: number | undefined;
|
|
3632
4575
|
})[];
|
|
3633
4576
|
}, {
|
|
3634
4577
|
type: "LineBlock";
|
|
@@ -3662,6 +4605,13 @@ export declare const LineBlockSchema: z.ZodObject<{
|
|
|
3662
4605
|
name: string;
|
|
3663
4606
|
digits: number;
|
|
3664
4607
|
answer?: string | number | undefined;
|
|
4608
|
+
} | {
|
|
4609
|
+
type: "Fraction";
|
|
4610
|
+
name: string;
|
|
4611
|
+
answer?: string | undefined;
|
|
4612
|
+
numerator?: number | undefined;
|
|
4613
|
+
denominator?: number | undefined;
|
|
4614
|
+
simplified?: boolean | undefined;
|
|
3665
4615
|
})[];
|
|
3666
4616
|
}>;
|
|
3667
4617
|
|
|
@@ -3678,18 +4628,1184 @@ export declare const LinebreakSchema: z.ZodObject<{
|
|
|
3678
4628
|
id: string;
|
|
3679
4629
|
}>;
|
|
3680
4630
|
|
|
3681
|
-
export declare type
|
|
4631
|
+
export declare type NumberLineBlock = z.infer<typeof NumberLineBlockSchema>;
|
|
3682
4632
|
|
|
3683
|
-
|
|
3684
|
-
|
|
3685
|
-
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3692
|
-
|
|
4633
|
+
/**
|
|
4634
|
+
* Number line block schema — the root node for a number line exercise element.
|
|
4635
|
+
*
|
|
4636
|
+
* @example
|
|
4637
|
+
* {
|
|
4638
|
+
* type: "NumberLineBlock",
|
|
4639
|
+
* min: 0, max: 100, step: 10, minorTicks: 0, style: "arrow-right",
|
|
4640
|
+
* positions: [
|
|
4641
|
+
* { type: "NumberLinePosition", value: 20, inlines: [...] }
|
|
4642
|
+
* ]
|
|
4643
|
+
* }
|
|
4644
|
+
*/
|
|
4645
|
+
declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
|
|
4646
|
+
type: z.ZodLiteral<"NumberLineBlock">;
|
|
4647
|
+
min: z.ZodNumber;
|
|
4648
|
+
max: z.ZodNumber;
|
|
4649
|
+
step: z.ZodDefault<z.ZodNumber>;
|
|
4650
|
+
minorTicks: z.ZodOptional<z.ZodNumber>;
|
|
4651
|
+
style: z.ZodOptional<z.ZodEnum<["arrow-right", "arrow-left", "arrow-both", "line"]>>;
|
|
4652
|
+
labelVisibility: z.ZodOptional<z.ZodEnum<["all", "extremes", "min-only", "max-only", "none"]>>;
|
|
4653
|
+
counter: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
4654
|
+
type: z.ZodLiteral<"NumberLineCounter">;
|
|
4655
|
+
min: z.ZodNumber;
|
|
4656
|
+
max: z.ZodNumber;
|
|
4657
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
4658
|
+
name: z.ZodOptional<z.ZodString>;
|
|
4659
|
+
}, "strip", z.ZodTypeAny, {
|
|
4660
|
+
type: "NumberLineCounter";
|
|
4661
|
+
min: number;
|
|
4662
|
+
max: number;
|
|
4663
|
+
name?: string | undefined;
|
|
4664
|
+
default?: number | undefined;
|
|
4665
|
+
}, {
|
|
4666
|
+
type: "NumberLineCounter";
|
|
4667
|
+
min: number;
|
|
4668
|
+
max: number;
|
|
4669
|
+
name?: string | undefined;
|
|
4670
|
+
default?: number | undefined;
|
|
4671
|
+
}>, {
|
|
4672
|
+
type: "NumberLineCounter";
|
|
4673
|
+
min: number;
|
|
4674
|
+
max: number;
|
|
4675
|
+
name?: string | undefined;
|
|
4676
|
+
default?: number | undefined;
|
|
4677
|
+
}, {
|
|
4678
|
+
type: "NumberLineCounter";
|
|
4679
|
+
min: number;
|
|
4680
|
+
max: number;
|
|
4681
|
+
name?: string | undefined;
|
|
4682
|
+
default?: number | undefined;
|
|
4683
|
+
}>>;
|
|
4684
|
+
highlights: z.ZodOptional<z.ZodArray<z.ZodEffects<z.ZodObject<{
|
|
4685
|
+
type: z.ZodLiteral<"NumberLineHighlight">;
|
|
4686
|
+
from: z.ZodNumber;
|
|
4687
|
+
to: z.ZodNumber;
|
|
4688
|
+
color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
|
|
4689
|
+
label: z.ZodOptional<z.ZodString>;
|
|
4690
|
+
}, "strip", z.ZodTypeAny, {
|
|
4691
|
+
type: "NumberLineHighlight";
|
|
4692
|
+
from: number;
|
|
4693
|
+
to: number;
|
|
4694
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
4695
|
+
label?: string | undefined;
|
|
4696
|
+
}, {
|
|
4697
|
+
type: "NumberLineHighlight";
|
|
4698
|
+
from: number;
|
|
4699
|
+
to: number;
|
|
4700
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
4701
|
+
label?: string | undefined;
|
|
4702
|
+
}>, {
|
|
4703
|
+
type: "NumberLineHighlight";
|
|
4704
|
+
from: number;
|
|
4705
|
+
to: number;
|
|
4706
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
4707
|
+
label?: string | undefined;
|
|
4708
|
+
}, {
|
|
4709
|
+
type: "NumberLineHighlight";
|
|
4710
|
+
from: number;
|
|
4711
|
+
to: number;
|
|
4712
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
4713
|
+
label?: string | undefined;
|
|
4714
|
+
}>, "many">>;
|
|
4715
|
+
positions: z.ZodArray<z.ZodObject<{
|
|
4716
|
+
type: z.ZodLiteral<"NumberLinePosition">;
|
|
4717
|
+
value: z.ZodNumber;
|
|
4718
|
+
inlines: z.ZodArray<z.ZodUnion<[z.ZodObject<{
|
|
4719
|
+
type: z.ZodLiteral<"FreeText">;
|
|
4720
|
+
value: z.ZodString;
|
|
4721
|
+
}, "strip", z.ZodTypeAny, {
|
|
4722
|
+
value: string;
|
|
4723
|
+
type: "FreeText";
|
|
4724
|
+
}, {
|
|
4725
|
+
value: string;
|
|
4726
|
+
type: "FreeText";
|
|
4727
|
+
}>, z.ZodObject<{
|
|
4728
|
+
type: z.ZodLiteral<"Space">;
|
|
4729
|
+
}, "strip", z.ZodTypeAny, {
|
|
4730
|
+
type: "Space";
|
|
4731
|
+
}, {
|
|
4732
|
+
type: "Space";
|
|
4733
|
+
}>, z.ZodObject<{
|
|
4734
|
+
type: z.ZodLiteral<"HighlightedText">;
|
|
4735
|
+
value: z.ZodString;
|
|
4736
|
+
highlight: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
4737
|
+
}, "strip", z.ZodTypeAny, {
|
|
4738
|
+
value: string;
|
|
4739
|
+
type: "HighlightedText";
|
|
4740
|
+
highlight?: [number, number] | undefined;
|
|
4741
|
+
}, {
|
|
4742
|
+
value: string;
|
|
4743
|
+
type: "HighlightedText";
|
|
4744
|
+
highlight?: [number, number] | undefined;
|
|
4745
|
+
}>, z.ZodObject<{
|
|
4746
|
+
type: z.ZodLiteral<"ColorText">;
|
|
4747
|
+
value: z.ZodString;
|
|
4748
|
+
color: z.ZodString;
|
|
4749
|
+
highlight: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
4750
|
+
}, "strip", z.ZodTypeAny, {
|
|
4751
|
+
value: string;
|
|
4752
|
+
type: "ColorText";
|
|
4753
|
+
color: string;
|
|
4754
|
+
highlight?: [number, number] | undefined;
|
|
4755
|
+
}, {
|
|
4756
|
+
value: string;
|
|
4757
|
+
type: "ColorText";
|
|
4758
|
+
color: string;
|
|
4759
|
+
highlight?: [number, number] | undefined;
|
|
4760
|
+
}>, z.ZodObject<{
|
|
4761
|
+
type: z.ZodLiteral<"BoldText">;
|
|
4762
|
+
value: z.ZodString;
|
|
4763
|
+
highlight: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
4764
|
+
}, "strip", z.ZodTypeAny, {
|
|
4765
|
+
value: string;
|
|
4766
|
+
type: "BoldText";
|
|
4767
|
+
highlight?: [number, number] | undefined;
|
|
4768
|
+
}, {
|
|
4769
|
+
value: string;
|
|
4770
|
+
type: "BoldText";
|
|
4771
|
+
highlight?: [number, number] | undefined;
|
|
4772
|
+
}>, z.ZodDiscriminatedUnion<"inputType", [z.ZodObject<{
|
|
4773
|
+
type: z.ZodLiteral<"InlineInput">;
|
|
4774
|
+
name: z.ZodString;
|
|
4775
|
+
inputType: z.ZodLiteral<"string">;
|
|
4776
|
+
length: z.ZodNumber;
|
|
4777
|
+
answer: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
4778
|
+
}, "strip", z.ZodTypeAny, {
|
|
4779
|
+
length: number;
|
|
4780
|
+
type: "InlineInput";
|
|
4781
|
+
inputType: "string";
|
|
4782
|
+
name: string;
|
|
4783
|
+
answer?: string | number | undefined;
|
|
4784
|
+
}, {
|
|
4785
|
+
length: number;
|
|
4786
|
+
type: "InlineInput";
|
|
4787
|
+
inputType: "string";
|
|
4788
|
+
name: string;
|
|
4789
|
+
answer?: string | number | undefined;
|
|
4790
|
+
}>, z.ZodObject<{
|
|
4791
|
+
type: z.ZodLiteral<"InlineInput">;
|
|
4792
|
+
name: z.ZodString;
|
|
4793
|
+
inputType: z.ZodLiteral<"numeric">;
|
|
4794
|
+
digits: z.ZodNumber;
|
|
4795
|
+
answer: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
4796
|
+
}, "strip", z.ZodTypeAny, {
|
|
4797
|
+
type: "InlineInput";
|
|
4798
|
+
inputType: "numeric";
|
|
4799
|
+
name: string;
|
|
4800
|
+
digits: number;
|
|
4801
|
+
answer?: string | number | undefined;
|
|
4802
|
+
}, {
|
|
4803
|
+
type: "InlineInput";
|
|
4804
|
+
inputType: "numeric";
|
|
4805
|
+
name: string;
|
|
4806
|
+
digits: number;
|
|
4807
|
+
answer?: string | number | undefined;
|
|
4808
|
+
}>]>, z.ZodObject<{
|
|
4809
|
+
type: z.ZodLiteral<"Fraction">;
|
|
4810
|
+
name: z.ZodString;
|
|
4811
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
4812
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
4813
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
4814
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
4815
|
+
}, "strip", z.ZodTypeAny, {
|
|
4816
|
+
type: "Fraction";
|
|
4817
|
+
name: string;
|
|
4818
|
+
simplified: boolean;
|
|
4819
|
+
answer?: string | undefined;
|
|
4820
|
+
numerator?: number | undefined;
|
|
4821
|
+
denominator?: number | undefined;
|
|
4822
|
+
}, {
|
|
4823
|
+
type: "Fraction";
|
|
4824
|
+
name: string;
|
|
4825
|
+
answer?: string | undefined;
|
|
4826
|
+
numerator?: number | undefined;
|
|
4827
|
+
denominator?: number | undefined;
|
|
4828
|
+
simplified?: boolean | undefined;
|
|
4829
|
+
}>]>, "many">;
|
|
4830
|
+
}, "strip", z.ZodTypeAny, {
|
|
4831
|
+
value: number;
|
|
4832
|
+
type: "NumberLinePosition";
|
|
4833
|
+
inlines: ({
|
|
4834
|
+
value: string;
|
|
4835
|
+
type: "FreeText";
|
|
4836
|
+
} | {
|
|
4837
|
+
type: "Space";
|
|
4838
|
+
} | {
|
|
4839
|
+
value: string;
|
|
4840
|
+
type: "HighlightedText";
|
|
4841
|
+
highlight?: [number, number] | undefined;
|
|
4842
|
+
} | {
|
|
4843
|
+
value: string;
|
|
4844
|
+
type: "ColorText";
|
|
4845
|
+
color: string;
|
|
4846
|
+
highlight?: [number, number] | undefined;
|
|
4847
|
+
} | {
|
|
4848
|
+
value: string;
|
|
4849
|
+
type: "BoldText";
|
|
4850
|
+
highlight?: [number, number] | undefined;
|
|
4851
|
+
} | {
|
|
4852
|
+
length: number;
|
|
4853
|
+
type: "InlineInput";
|
|
4854
|
+
inputType: "string";
|
|
4855
|
+
name: string;
|
|
4856
|
+
answer?: string | number | undefined;
|
|
4857
|
+
} | {
|
|
4858
|
+
type: "InlineInput";
|
|
4859
|
+
inputType: "numeric";
|
|
4860
|
+
name: string;
|
|
4861
|
+
digits: number;
|
|
4862
|
+
answer?: string | number | undefined;
|
|
4863
|
+
} | {
|
|
4864
|
+
type: "Fraction";
|
|
4865
|
+
name: string;
|
|
4866
|
+
simplified: boolean;
|
|
4867
|
+
answer?: string | undefined;
|
|
4868
|
+
numerator?: number | undefined;
|
|
4869
|
+
denominator?: number | undefined;
|
|
4870
|
+
})[];
|
|
4871
|
+
}, {
|
|
4872
|
+
value: number;
|
|
4873
|
+
type: "NumberLinePosition";
|
|
4874
|
+
inlines: ({
|
|
4875
|
+
value: string;
|
|
4876
|
+
type: "FreeText";
|
|
4877
|
+
} | {
|
|
4878
|
+
type: "Space";
|
|
4879
|
+
} | {
|
|
4880
|
+
value: string;
|
|
4881
|
+
type: "HighlightedText";
|
|
4882
|
+
highlight?: [number, number] | undefined;
|
|
4883
|
+
} | {
|
|
4884
|
+
value: string;
|
|
4885
|
+
type: "ColorText";
|
|
4886
|
+
color: string;
|
|
4887
|
+
highlight?: [number, number] | undefined;
|
|
4888
|
+
} | {
|
|
4889
|
+
value: string;
|
|
4890
|
+
type: "BoldText";
|
|
4891
|
+
highlight?: [number, number] | undefined;
|
|
4892
|
+
} | {
|
|
4893
|
+
length: number;
|
|
4894
|
+
type: "InlineInput";
|
|
4895
|
+
inputType: "string";
|
|
4896
|
+
name: string;
|
|
4897
|
+
answer?: string | number | undefined;
|
|
4898
|
+
} | {
|
|
4899
|
+
type: "InlineInput";
|
|
4900
|
+
inputType: "numeric";
|
|
4901
|
+
name: string;
|
|
4902
|
+
digits: number;
|
|
4903
|
+
answer?: string | number | undefined;
|
|
4904
|
+
} | {
|
|
4905
|
+
type: "Fraction";
|
|
4906
|
+
name: string;
|
|
4907
|
+
answer?: string | undefined;
|
|
4908
|
+
numerator?: number | undefined;
|
|
4909
|
+
denominator?: number | undefined;
|
|
4910
|
+
simplified?: boolean | undefined;
|
|
4911
|
+
})[];
|
|
4912
|
+
}>, "many">;
|
|
4913
|
+
}, "strip", z.ZodTypeAny, {
|
|
4914
|
+
type: "NumberLineBlock";
|
|
4915
|
+
min: number;
|
|
4916
|
+
max: number;
|
|
4917
|
+
step: number;
|
|
4918
|
+
positions: {
|
|
4919
|
+
value: number;
|
|
4920
|
+
type: "NumberLinePosition";
|
|
4921
|
+
inlines: ({
|
|
4922
|
+
value: string;
|
|
4923
|
+
type: "FreeText";
|
|
4924
|
+
} | {
|
|
4925
|
+
type: "Space";
|
|
4926
|
+
} | {
|
|
4927
|
+
value: string;
|
|
4928
|
+
type: "HighlightedText";
|
|
4929
|
+
highlight?: [number, number] | undefined;
|
|
4930
|
+
} | {
|
|
4931
|
+
value: string;
|
|
4932
|
+
type: "ColorText";
|
|
4933
|
+
color: string;
|
|
4934
|
+
highlight?: [number, number] | undefined;
|
|
4935
|
+
} | {
|
|
4936
|
+
value: string;
|
|
4937
|
+
type: "BoldText";
|
|
4938
|
+
highlight?: [number, number] | undefined;
|
|
4939
|
+
} | {
|
|
4940
|
+
length: number;
|
|
4941
|
+
type: "InlineInput";
|
|
4942
|
+
inputType: "string";
|
|
4943
|
+
name: string;
|
|
4944
|
+
answer?: string | number | undefined;
|
|
4945
|
+
} | {
|
|
4946
|
+
type: "InlineInput";
|
|
4947
|
+
inputType: "numeric";
|
|
4948
|
+
name: string;
|
|
4949
|
+
digits: number;
|
|
4950
|
+
answer?: string | number | undefined;
|
|
4951
|
+
} | {
|
|
4952
|
+
type: "Fraction";
|
|
4953
|
+
name: string;
|
|
4954
|
+
simplified: boolean;
|
|
4955
|
+
answer?: string | undefined;
|
|
4956
|
+
numerator?: number | undefined;
|
|
4957
|
+
denominator?: number | undefined;
|
|
4958
|
+
})[];
|
|
4959
|
+
}[];
|
|
4960
|
+
counter?: {
|
|
4961
|
+
type: "NumberLineCounter";
|
|
4962
|
+
min: number;
|
|
4963
|
+
max: number;
|
|
4964
|
+
name?: string | undefined;
|
|
4965
|
+
default?: number | undefined;
|
|
4966
|
+
} | undefined;
|
|
4967
|
+
minorTicks?: number | undefined;
|
|
4968
|
+
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
4969
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
4970
|
+
highlights?: {
|
|
4971
|
+
type: "NumberLineHighlight";
|
|
4972
|
+
from: number;
|
|
4973
|
+
to: number;
|
|
4974
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
4975
|
+
label?: string | undefined;
|
|
4976
|
+
}[] | undefined;
|
|
4977
|
+
}, {
|
|
4978
|
+
type: "NumberLineBlock";
|
|
4979
|
+
min: number;
|
|
4980
|
+
max: number;
|
|
4981
|
+
positions: {
|
|
4982
|
+
value: number;
|
|
4983
|
+
type: "NumberLinePosition";
|
|
4984
|
+
inlines: ({
|
|
4985
|
+
value: string;
|
|
4986
|
+
type: "FreeText";
|
|
4987
|
+
} | {
|
|
4988
|
+
type: "Space";
|
|
4989
|
+
} | {
|
|
4990
|
+
value: string;
|
|
4991
|
+
type: "HighlightedText";
|
|
4992
|
+
highlight?: [number, number] | undefined;
|
|
4993
|
+
} | {
|
|
4994
|
+
value: string;
|
|
4995
|
+
type: "ColorText";
|
|
4996
|
+
color: string;
|
|
4997
|
+
highlight?: [number, number] | undefined;
|
|
4998
|
+
} | {
|
|
4999
|
+
value: string;
|
|
5000
|
+
type: "BoldText";
|
|
5001
|
+
highlight?: [number, number] | undefined;
|
|
5002
|
+
} | {
|
|
5003
|
+
length: number;
|
|
5004
|
+
type: "InlineInput";
|
|
5005
|
+
inputType: "string";
|
|
5006
|
+
name: string;
|
|
5007
|
+
answer?: string | number | undefined;
|
|
5008
|
+
} | {
|
|
5009
|
+
type: "InlineInput";
|
|
5010
|
+
inputType: "numeric";
|
|
5011
|
+
name: string;
|
|
5012
|
+
digits: number;
|
|
5013
|
+
answer?: string | number | undefined;
|
|
5014
|
+
} | {
|
|
5015
|
+
type: "Fraction";
|
|
5016
|
+
name: string;
|
|
5017
|
+
answer?: string | undefined;
|
|
5018
|
+
numerator?: number | undefined;
|
|
5019
|
+
denominator?: number | undefined;
|
|
5020
|
+
simplified?: boolean | undefined;
|
|
5021
|
+
})[];
|
|
5022
|
+
}[];
|
|
5023
|
+
counter?: {
|
|
5024
|
+
type: "NumberLineCounter";
|
|
5025
|
+
min: number;
|
|
5026
|
+
max: number;
|
|
5027
|
+
name?: string | undefined;
|
|
5028
|
+
default?: number | undefined;
|
|
5029
|
+
} | undefined;
|
|
5030
|
+
step?: number | undefined;
|
|
5031
|
+
minorTicks?: number | undefined;
|
|
5032
|
+
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
5033
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
5034
|
+
highlights?: {
|
|
5035
|
+
type: "NumberLineHighlight";
|
|
5036
|
+
from: number;
|
|
5037
|
+
to: number;
|
|
5038
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5039
|
+
label?: string | undefined;
|
|
5040
|
+
}[] | undefined;
|
|
5041
|
+
}>, {
|
|
5042
|
+
type: "NumberLineBlock";
|
|
5043
|
+
min: number;
|
|
5044
|
+
max: number;
|
|
5045
|
+
step: number;
|
|
5046
|
+
positions: {
|
|
5047
|
+
value: number;
|
|
5048
|
+
type: "NumberLinePosition";
|
|
5049
|
+
inlines: ({
|
|
5050
|
+
value: string;
|
|
5051
|
+
type: "FreeText";
|
|
5052
|
+
} | {
|
|
5053
|
+
type: "Space";
|
|
5054
|
+
} | {
|
|
5055
|
+
value: string;
|
|
5056
|
+
type: "HighlightedText";
|
|
5057
|
+
highlight?: [number, number] | undefined;
|
|
5058
|
+
} | {
|
|
5059
|
+
value: string;
|
|
5060
|
+
type: "ColorText";
|
|
5061
|
+
color: string;
|
|
5062
|
+
highlight?: [number, number] | undefined;
|
|
5063
|
+
} | {
|
|
5064
|
+
value: string;
|
|
5065
|
+
type: "BoldText";
|
|
5066
|
+
highlight?: [number, number] | undefined;
|
|
5067
|
+
} | {
|
|
5068
|
+
length: number;
|
|
5069
|
+
type: "InlineInput";
|
|
5070
|
+
inputType: "string";
|
|
5071
|
+
name: string;
|
|
5072
|
+
answer?: string | number | undefined;
|
|
5073
|
+
} | {
|
|
5074
|
+
type: "InlineInput";
|
|
5075
|
+
inputType: "numeric";
|
|
5076
|
+
name: string;
|
|
5077
|
+
digits: number;
|
|
5078
|
+
answer?: string | number | undefined;
|
|
5079
|
+
} | {
|
|
5080
|
+
type: "Fraction";
|
|
5081
|
+
name: string;
|
|
5082
|
+
simplified: boolean;
|
|
5083
|
+
answer?: string | undefined;
|
|
5084
|
+
numerator?: number | undefined;
|
|
5085
|
+
denominator?: number | undefined;
|
|
5086
|
+
})[];
|
|
5087
|
+
}[];
|
|
5088
|
+
counter?: {
|
|
5089
|
+
type: "NumberLineCounter";
|
|
5090
|
+
min: number;
|
|
5091
|
+
max: number;
|
|
5092
|
+
name?: string | undefined;
|
|
5093
|
+
default?: number | undefined;
|
|
5094
|
+
} | undefined;
|
|
5095
|
+
minorTicks?: number | undefined;
|
|
5096
|
+
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
5097
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
5098
|
+
highlights?: {
|
|
5099
|
+
type: "NumberLineHighlight";
|
|
5100
|
+
from: number;
|
|
5101
|
+
to: number;
|
|
5102
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5103
|
+
label?: string | undefined;
|
|
5104
|
+
}[] | undefined;
|
|
5105
|
+
}, {
|
|
5106
|
+
type: "NumberLineBlock";
|
|
5107
|
+
min: number;
|
|
5108
|
+
max: number;
|
|
5109
|
+
positions: {
|
|
5110
|
+
value: number;
|
|
5111
|
+
type: "NumberLinePosition";
|
|
5112
|
+
inlines: ({
|
|
5113
|
+
value: string;
|
|
5114
|
+
type: "FreeText";
|
|
5115
|
+
} | {
|
|
5116
|
+
type: "Space";
|
|
5117
|
+
} | {
|
|
5118
|
+
value: string;
|
|
5119
|
+
type: "HighlightedText";
|
|
5120
|
+
highlight?: [number, number] | undefined;
|
|
5121
|
+
} | {
|
|
5122
|
+
value: string;
|
|
5123
|
+
type: "ColorText";
|
|
5124
|
+
color: string;
|
|
5125
|
+
highlight?: [number, number] | undefined;
|
|
5126
|
+
} | {
|
|
5127
|
+
value: string;
|
|
5128
|
+
type: "BoldText";
|
|
5129
|
+
highlight?: [number, number] | undefined;
|
|
5130
|
+
} | {
|
|
5131
|
+
length: number;
|
|
5132
|
+
type: "InlineInput";
|
|
5133
|
+
inputType: "string";
|
|
5134
|
+
name: string;
|
|
5135
|
+
answer?: string | number | undefined;
|
|
5136
|
+
} | {
|
|
5137
|
+
type: "InlineInput";
|
|
5138
|
+
inputType: "numeric";
|
|
5139
|
+
name: string;
|
|
5140
|
+
digits: number;
|
|
5141
|
+
answer?: string | number | undefined;
|
|
5142
|
+
} | {
|
|
5143
|
+
type: "Fraction";
|
|
5144
|
+
name: string;
|
|
5145
|
+
answer?: string | undefined;
|
|
5146
|
+
numerator?: number | undefined;
|
|
5147
|
+
denominator?: number | undefined;
|
|
5148
|
+
simplified?: boolean | undefined;
|
|
5149
|
+
})[];
|
|
5150
|
+
}[];
|
|
5151
|
+
counter?: {
|
|
5152
|
+
type: "NumberLineCounter";
|
|
5153
|
+
min: number;
|
|
5154
|
+
max: number;
|
|
5155
|
+
name?: string | undefined;
|
|
5156
|
+
default?: number | undefined;
|
|
5157
|
+
} | undefined;
|
|
5158
|
+
step?: number | undefined;
|
|
5159
|
+
minorTicks?: number | undefined;
|
|
5160
|
+
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
5161
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
5162
|
+
highlights?: {
|
|
5163
|
+
type: "NumberLineHighlight";
|
|
5164
|
+
from: number;
|
|
5165
|
+
to: number;
|
|
5166
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5167
|
+
label?: string | undefined;
|
|
5168
|
+
}[] | undefined;
|
|
5169
|
+
}>, {
|
|
5170
|
+
type: "NumberLineBlock";
|
|
5171
|
+
min: number;
|
|
5172
|
+
max: number;
|
|
5173
|
+
step: number;
|
|
5174
|
+
positions: {
|
|
5175
|
+
value: number;
|
|
5176
|
+
type: "NumberLinePosition";
|
|
5177
|
+
inlines: ({
|
|
5178
|
+
value: string;
|
|
5179
|
+
type: "FreeText";
|
|
5180
|
+
} | {
|
|
5181
|
+
type: "Space";
|
|
5182
|
+
} | {
|
|
5183
|
+
value: string;
|
|
5184
|
+
type: "HighlightedText";
|
|
5185
|
+
highlight?: [number, number] | undefined;
|
|
5186
|
+
} | {
|
|
5187
|
+
value: string;
|
|
5188
|
+
type: "ColorText";
|
|
5189
|
+
color: string;
|
|
5190
|
+
highlight?: [number, number] | undefined;
|
|
5191
|
+
} | {
|
|
5192
|
+
value: string;
|
|
5193
|
+
type: "BoldText";
|
|
5194
|
+
highlight?: [number, number] | undefined;
|
|
5195
|
+
} | {
|
|
5196
|
+
length: number;
|
|
5197
|
+
type: "InlineInput";
|
|
5198
|
+
inputType: "string";
|
|
5199
|
+
name: string;
|
|
5200
|
+
answer?: string | number | undefined;
|
|
5201
|
+
} | {
|
|
5202
|
+
type: "InlineInput";
|
|
5203
|
+
inputType: "numeric";
|
|
5204
|
+
name: string;
|
|
5205
|
+
digits: number;
|
|
5206
|
+
answer?: string | number | undefined;
|
|
5207
|
+
} | {
|
|
5208
|
+
type: "Fraction";
|
|
5209
|
+
name: string;
|
|
5210
|
+
simplified: boolean;
|
|
5211
|
+
answer?: string | undefined;
|
|
5212
|
+
numerator?: number | undefined;
|
|
5213
|
+
denominator?: number | undefined;
|
|
5214
|
+
})[];
|
|
5215
|
+
}[];
|
|
5216
|
+
counter?: {
|
|
5217
|
+
type: "NumberLineCounter";
|
|
5218
|
+
min: number;
|
|
5219
|
+
max: number;
|
|
5220
|
+
name?: string | undefined;
|
|
5221
|
+
default?: number | undefined;
|
|
5222
|
+
} | undefined;
|
|
5223
|
+
minorTicks?: number | undefined;
|
|
5224
|
+
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
5225
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
5226
|
+
highlights?: {
|
|
5227
|
+
type: "NumberLineHighlight";
|
|
5228
|
+
from: number;
|
|
5229
|
+
to: number;
|
|
5230
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5231
|
+
label?: string | undefined;
|
|
5232
|
+
}[] | undefined;
|
|
5233
|
+
}, {
|
|
5234
|
+
type: "NumberLineBlock";
|
|
5235
|
+
min: number;
|
|
5236
|
+
max: number;
|
|
5237
|
+
positions: {
|
|
5238
|
+
value: number;
|
|
5239
|
+
type: "NumberLinePosition";
|
|
5240
|
+
inlines: ({
|
|
5241
|
+
value: string;
|
|
5242
|
+
type: "FreeText";
|
|
5243
|
+
} | {
|
|
5244
|
+
type: "Space";
|
|
5245
|
+
} | {
|
|
5246
|
+
value: string;
|
|
5247
|
+
type: "HighlightedText";
|
|
5248
|
+
highlight?: [number, number] | undefined;
|
|
5249
|
+
} | {
|
|
5250
|
+
value: string;
|
|
5251
|
+
type: "ColorText";
|
|
5252
|
+
color: string;
|
|
5253
|
+
highlight?: [number, number] | undefined;
|
|
5254
|
+
} | {
|
|
5255
|
+
value: string;
|
|
5256
|
+
type: "BoldText";
|
|
5257
|
+
highlight?: [number, number] | undefined;
|
|
5258
|
+
} | {
|
|
5259
|
+
length: number;
|
|
5260
|
+
type: "InlineInput";
|
|
5261
|
+
inputType: "string";
|
|
5262
|
+
name: string;
|
|
5263
|
+
answer?: string | number | undefined;
|
|
5264
|
+
} | {
|
|
5265
|
+
type: "InlineInput";
|
|
5266
|
+
inputType: "numeric";
|
|
5267
|
+
name: string;
|
|
5268
|
+
digits: number;
|
|
5269
|
+
answer?: string | number | undefined;
|
|
5270
|
+
} | {
|
|
5271
|
+
type: "Fraction";
|
|
5272
|
+
name: string;
|
|
5273
|
+
answer?: string | undefined;
|
|
5274
|
+
numerator?: number | undefined;
|
|
5275
|
+
denominator?: number | undefined;
|
|
5276
|
+
simplified?: boolean | undefined;
|
|
5277
|
+
})[];
|
|
5278
|
+
}[];
|
|
5279
|
+
counter?: {
|
|
5280
|
+
type: "NumberLineCounter";
|
|
5281
|
+
min: number;
|
|
5282
|
+
max: number;
|
|
5283
|
+
name?: string | undefined;
|
|
5284
|
+
default?: number | undefined;
|
|
5285
|
+
} | undefined;
|
|
5286
|
+
step?: number | undefined;
|
|
5287
|
+
minorTicks?: number | undefined;
|
|
5288
|
+
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
5289
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
5290
|
+
highlights?: {
|
|
5291
|
+
type: "NumberLineHighlight";
|
|
5292
|
+
from: number;
|
|
5293
|
+
to: number;
|
|
5294
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5295
|
+
label?: string | undefined;
|
|
5296
|
+
}[] | undefined;
|
|
5297
|
+
}>;
|
|
5298
|
+
|
|
5299
|
+
export declare type NumberLineCounter = z.infer<typeof NumberLineCounterSchema>;
|
|
5300
|
+
|
|
5301
|
+
export declare type NumberLineCounterItem = z.infer<typeof NumberLineCounterItemSchema>;
|
|
5302
|
+
|
|
5303
|
+
export declare const NumberLineCounterItemSchema: z.ZodObject<{
|
|
5304
|
+
id: z.ZodString;
|
|
5305
|
+
type: z.ZodLiteral<"number-line-counter">;
|
|
5306
|
+
min: z.ZodNumber;
|
|
5307
|
+
max: z.ZodNumber;
|
|
5308
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
5309
|
+
name: z.ZodOptional<z.ZodString>;
|
|
5310
|
+
}, "strip", z.ZodTypeAny, {
|
|
5311
|
+
type: "number-line-counter";
|
|
5312
|
+
min: number;
|
|
5313
|
+
max: number;
|
|
5314
|
+
id: string;
|
|
5315
|
+
name?: string | undefined;
|
|
5316
|
+
default?: number | undefined;
|
|
5317
|
+
}, {
|
|
5318
|
+
type: "number-line-counter";
|
|
5319
|
+
min: number;
|
|
5320
|
+
max: number;
|
|
5321
|
+
id: string;
|
|
5322
|
+
name?: string | undefined;
|
|
5323
|
+
default?: number | undefined;
|
|
5324
|
+
}>;
|
|
5325
|
+
|
|
5326
|
+
/**
|
|
5327
|
+
* Counter node — dynamic subdivision control embedded in a number line.
|
|
5328
|
+
* The number line step is recomputed as: (max - min) / counter_value.
|
|
5329
|
+
*
|
|
5330
|
+
* Invariant: min >= 1 (a subdivision of 0 is meaningless).
|
|
5331
|
+
* The `default` fallback lives only in createNumberLineCounter, not here,
|
|
5332
|
+
* to avoid Zod transform side-effects on the parsed shape.
|
|
5333
|
+
*/
|
|
5334
|
+
declare const NumberLineCounterSchema: z.ZodEffects<z.ZodObject<{
|
|
5335
|
+
type: z.ZodLiteral<"NumberLineCounter">;
|
|
5336
|
+
min: z.ZodNumber;
|
|
5337
|
+
max: z.ZodNumber;
|
|
5338
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
5339
|
+
name: z.ZodOptional<z.ZodString>;
|
|
5340
|
+
}, "strip", z.ZodTypeAny, {
|
|
5341
|
+
type: "NumberLineCounter";
|
|
5342
|
+
min: number;
|
|
5343
|
+
max: number;
|
|
5344
|
+
name?: string | undefined;
|
|
5345
|
+
default?: number | undefined;
|
|
5346
|
+
}, {
|
|
5347
|
+
type: "NumberLineCounter";
|
|
5348
|
+
min: number;
|
|
5349
|
+
max: number;
|
|
5350
|
+
name?: string | undefined;
|
|
5351
|
+
default?: number | undefined;
|
|
5352
|
+
}>, {
|
|
5353
|
+
type: "NumberLineCounter";
|
|
5354
|
+
min: number;
|
|
5355
|
+
max: number;
|
|
5356
|
+
name?: string | undefined;
|
|
5357
|
+
default?: number | undefined;
|
|
5358
|
+
}, {
|
|
5359
|
+
type: "NumberLineCounter";
|
|
5360
|
+
min: number;
|
|
5361
|
+
max: number;
|
|
5362
|
+
name?: string | undefined;
|
|
5363
|
+
default?: number | undefined;
|
|
5364
|
+
}>;
|
|
5365
|
+
|
|
5366
|
+
export declare type NumberLineHighlight = z.infer<typeof NumberLineHighlightSchema>;
|
|
5367
|
+
|
|
5368
|
+
export declare type NumberLineHighlightItem = z.infer<typeof NumberLineHighlightItemSchema>;
|
|
5369
|
+
|
|
5370
|
+
export declare const NumberLineHighlightItemSchema: z.ZodObject<{
|
|
5371
|
+
id: z.ZodString;
|
|
5372
|
+
type: z.ZodLiteral<"number-line-highlight">;
|
|
5373
|
+
from: z.ZodNumber;
|
|
5374
|
+
to: z.ZodNumber;
|
|
5375
|
+
color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
|
|
5376
|
+
label: z.ZodOptional<z.ZodString>;
|
|
5377
|
+
}, "strip", z.ZodTypeAny, {
|
|
5378
|
+
type: "number-line-highlight";
|
|
5379
|
+
from: number;
|
|
5380
|
+
to: number;
|
|
5381
|
+
id: string;
|
|
5382
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5383
|
+
label?: string | undefined;
|
|
5384
|
+
}, {
|
|
5385
|
+
type: "number-line-highlight";
|
|
5386
|
+
from: number;
|
|
5387
|
+
to: number;
|
|
5388
|
+
id: string;
|
|
5389
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5390
|
+
label?: string | undefined;
|
|
5391
|
+
}>;
|
|
5392
|
+
|
|
5393
|
+
/**
|
|
5394
|
+
* A highlighted range on the number line axis.
|
|
5395
|
+
*
|
|
5396
|
+
* `color` is constrained to the semantic set in NUMBER_LINE_HIGHLIGHT_COLORS
|
|
5397
|
+
* so renderers can safely map values to design tokens.
|
|
5398
|
+
*/
|
|
5399
|
+
declare const NumberLineHighlightSchema: z.ZodEffects<z.ZodObject<{
|
|
5400
|
+
type: z.ZodLiteral<"NumberLineHighlight">;
|
|
5401
|
+
from: z.ZodNumber;
|
|
5402
|
+
to: z.ZodNumber;
|
|
5403
|
+
color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
|
|
5404
|
+
label: z.ZodOptional<z.ZodString>;
|
|
5405
|
+
}, "strip", z.ZodTypeAny, {
|
|
5406
|
+
type: "NumberLineHighlight";
|
|
5407
|
+
from: number;
|
|
5408
|
+
to: number;
|
|
5409
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5410
|
+
label?: string | undefined;
|
|
5411
|
+
}, {
|
|
5412
|
+
type: "NumberLineHighlight";
|
|
5413
|
+
from: number;
|
|
5414
|
+
to: number;
|
|
5415
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5416
|
+
label?: string | undefined;
|
|
5417
|
+
}>, {
|
|
5418
|
+
type: "NumberLineHighlight";
|
|
5419
|
+
from: number;
|
|
5420
|
+
to: number;
|
|
5421
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5422
|
+
label?: string | undefined;
|
|
5423
|
+
}, {
|
|
5424
|
+
type: "NumberLineHighlight";
|
|
5425
|
+
from: number;
|
|
5426
|
+
to: number;
|
|
5427
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5428
|
+
label?: string | undefined;
|
|
5429
|
+
}>;
|
|
5430
|
+
|
|
5431
|
+
export declare type NumberLineItem = z.infer<typeof NumberLineItemSchema>;
|
|
5432
|
+
|
|
5433
|
+
export declare const NumberLineItemSchema: z.ZodObject<{
|
|
5434
|
+
id: z.ZodString;
|
|
5435
|
+
type: z.ZodLiteral<"number-line">;
|
|
5436
|
+
min: z.ZodNumber;
|
|
5437
|
+
max: z.ZodNumber;
|
|
5438
|
+
step: z.ZodNumber;
|
|
5439
|
+
minorTicks: z.ZodOptional<z.ZodNumber>;
|
|
5440
|
+
style: z.ZodOptional<z.ZodEnum<["arrow-right", "arrow-left", "arrow-both", "line"]>>;
|
|
5441
|
+
labelVisibility: z.ZodOptional<z.ZodEnum<["all", "extremes", "min-only", "max-only", "none"]>>;
|
|
5442
|
+
counter: z.ZodOptional<z.ZodObject<{
|
|
5443
|
+
id: z.ZodString;
|
|
5444
|
+
type: z.ZodLiteral<"number-line-counter">;
|
|
5445
|
+
min: z.ZodNumber;
|
|
5446
|
+
max: z.ZodNumber;
|
|
5447
|
+
default: z.ZodOptional<z.ZodNumber>;
|
|
5448
|
+
name: z.ZodOptional<z.ZodString>;
|
|
5449
|
+
}, "strip", z.ZodTypeAny, {
|
|
5450
|
+
type: "number-line-counter";
|
|
5451
|
+
min: number;
|
|
5452
|
+
max: number;
|
|
5453
|
+
id: string;
|
|
5454
|
+
name?: string | undefined;
|
|
5455
|
+
default?: number | undefined;
|
|
5456
|
+
}, {
|
|
5457
|
+
type: "number-line-counter";
|
|
5458
|
+
min: number;
|
|
5459
|
+
max: number;
|
|
5460
|
+
id: string;
|
|
5461
|
+
name?: string | undefined;
|
|
5462
|
+
default?: number | undefined;
|
|
5463
|
+
}>>;
|
|
5464
|
+
highlights: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
5465
|
+
id: z.ZodString;
|
|
5466
|
+
type: z.ZodLiteral<"number-line-highlight">;
|
|
5467
|
+
from: z.ZodNumber;
|
|
5468
|
+
to: z.ZodNumber;
|
|
5469
|
+
color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
|
|
5470
|
+
label: z.ZodOptional<z.ZodString>;
|
|
5471
|
+
}, "strip", z.ZodTypeAny, {
|
|
5472
|
+
type: "number-line-highlight";
|
|
5473
|
+
from: number;
|
|
5474
|
+
to: number;
|
|
5475
|
+
id: string;
|
|
5476
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5477
|
+
label?: string | undefined;
|
|
5478
|
+
}, {
|
|
5479
|
+
type: "number-line-highlight";
|
|
5480
|
+
from: number;
|
|
5481
|
+
to: number;
|
|
5482
|
+
id: string;
|
|
5483
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5484
|
+
label?: string | undefined;
|
|
5485
|
+
}>, "many">>;
|
|
5486
|
+
positions: z.ZodArray<z.ZodObject<{
|
|
5487
|
+
id: z.ZodString;
|
|
5488
|
+
type: z.ZodLiteral<"number-line-position">;
|
|
5489
|
+
value: z.ZodNumber;
|
|
5490
|
+
content: z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">;
|
|
5491
|
+
}, "strip", z.ZodTypeAny, {
|
|
5492
|
+
value: number;
|
|
5493
|
+
type: "number-line-position";
|
|
5494
|
+
id: string;
|
|
5495
|
+
content: any[];
|
|
5496
|
+
}, {
|
|
5497
|
+
value: number;
|
|
5498
|
+
type: "number-line-position";
|
|
5499
|
+
id: string;
|
|
5500
|
+
content: any[];
|
|
5501
|
+
}>, "many">;
|
|
5502
|
+
}, "strip", z.ZodTypeAny, {
|
|
5503
|
+
type: "number-line";
|
|
5504
|
+
min: number;
|
|
5505
|
+
max: number;
|
|
5506
|
+
step: number;
|
|
5507
|
+
positions: {
|
|
5508
|
+
value: number;
|
|
5509
|
+
type: "number-line-position";
|
|
5510
|
+
id: string;
|
|
5511
|
+
content: any[];
|
|
5512
|
+
}[];
|
|
5513
|
+
id: string;
|
|
5514
|
+
counter?: {
|
|
5515
|
+
type: "number-line-counter";
|
|
5516
|
+
min: number;
|
|
5517
|
+
max: number;
|
|
5518
|
+
id: string;
|
|
5519
|
+
name?: string | undefined;
|
|
5520
|
+
default?: number | undefined;
|
|
5521
|
+
} | undefined;
|
|
5522
|
+
minorTicks?: number | undefined;
|
|
5523
|
+
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
5524
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
5525
|
+
highlights?: {
|
|
5526
|
+
type: "number-line-highlight";
|
|
5527
|
+
from: number;
|
|
5528
|
+
to: number;
|
|
5529
|
+
id: string;
|
|
5530
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5531
|
+
label?: string | undefined;
|
|
5532
|
+
}[] | undefined;
|
|
5533
|
+
}, {
|
|
5534
|
+
type: "number-line";
|
|
5535
|
+
min: number;
|
|
5536
|
+
max: number;
|
|
5537
|
+
step: number;
|
|
5538
|
+
positions: {
|
|
5539
|
+
value: number;
|
|
5540
|
+
type: "number-line-position";
|
|
5541
|
+
id: string;
|
|
5542
|
+
content: any[];
|
|
5543
|
+
}[];
|
|
5544
|
+
id: string;
|
|
5545
|
+
counter?: {
|
|
5546
|
+
type: "number-line-counter";
|
|
5547
|
+
min: number;
|
|
5548
|
+
max: number;
|
|
5549
|
+
id: string;
|
|
5550
|
+
name?: string | undefined;
|
|
5551
|
+
default?: number | undefined;
|
|
5552
|
+
} | undefined;
|
|
5553
|
+
minorTicks?: number | undefined;
|
|
5554
|
+
style?: "arrow-right" | "arrow-left" | "arrow-both" | "line" | undefined;
|
|
5555
|
+
labelVisibility?: "all" | "extremes" | "min-only" | "max-only" | "none" | undefined;
|
|
5556
|
+
highlights?: {
|
|
5557
|
+
type: "number-line-highlight";
|
|
5558
|
+
from: number;
|
|
5559
|
+
to: number;
|
|
5560
|
+
id: string;
|
|
5561
|
+
color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
|
|
5562
|
+
label?: string | undefined;
|
|
5563
|
+
}[] | undefined;
|
|
5564
|
+
}>;
|
|
5565
|
+
|
|
5566
|
+
export declare type NumberLinePosition = z.infer<typeof NumberLinePositionSchema>;
|
|
5567
|
+
|
|
5568
|
+
export declare type NumberLinePositionItem = z.infer<typeof NumberLinePositionItemSchema>;
|
|
5569
|
+
|
|
5570
|
+
export declare const NumberLinePositionItemSchema: z.ZodObject<{
|
|
5571
|
+
id: z.ZodString;
|
|
5572
|
+
type: z.ZodLiteral<"number-line-position">;
|
|
5573
|
+
value: z.ZodNumber;
|
|
5574
|
+
content: z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">;
|
|
5575
|
+
}, "strip", z.ZodTypeAny, {
|
|
5576
|
+
value: number;
|
|
5577
|
+
type: "number-line-position";
|
|
5578
|
+
id: string;
|
|
5579
|
+
content: any[];
|
|
5580
|
+
}, {
|
|
5581
|
+
value: number;
|
|
5582
|
+
type: "number-line-position";
|
|
5583
|
+
id: string;
|
|
5584
|
+
content: any[];
|
|
5585
|
+
}>;
|
|
5586
|
+
|
|
5587
|
+
/**
|
|
5588
|
+
* A single position marker on the number line.
|
|
5589
|
+
* Contains at least one inline element (text, input, etc.).
|
|
5590
|
+
*
|
|
5591
|
+
* @example
|
|
5592
|
+
* {
|
|
5593
|
+
* type: "NumberLinePosition",
|
|
5594
|
+
* value: 20,
|
|
5595
|
+
* inlines: [{ type: "InlineInput", name: "a", digits: 3 }]
|
|
5596
|
+
* }
|
|
5597
|
+
*/
|
|
5598
|
+
declare const NumberLinePositionSchema: z.ZodObject<{
|
|
5599
|
+
type: z.ZodLiteral<"NumberLinePosition">;
|
|
5600
|
+
value: z.ZodNumber;
|
|
5601
|
+
inlines: z.ZodArray<z.ZodUnion<[z.ZodObject<{
|
|
5602
|
+
type: z.ZodLiteral<"FreeText">;
|
|
5603
|
+
value: z.ZodString;
|
|
5604
|
+
}, "strip", z.ZodTypeAny, {
|
|
5605
|
+
value: string;
|
|
5606
|
+
type: "FreeText";
|
|
5607
|
+
}, {
|
|
5608
|
+
value: string;
|
|
5609
|
+
type: "FreeText";
|
|
5610
|
+
}>, z.ZodObject<{
|
|
5611
|
+
type: z.ZodLiteral<"Space">;
|
|
5612
|
+
}, "strip", z.ZodTypeAny, {
|
|
5613
|
+
type: "Space";
|
|
5614
|
+
}, {
|
|
5615
|
+
type: "Space";
|
|
5616
|
+
}>, z.ZodObject<{
|
|
5617
|
+
type: z.ZodLiteral<"HighlightedText">;
|
|
5618
|
+
value: z.ZodString;
|
|
5619
|
+
highlight: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
5620
|
+
}, "strip", z.ZodTypeAny, {
|
|
5621
|
+
value: string;
|
|
5622
|
+
type: "HighlightedText";
|
|
5623
|
+
highlight?: [number, number] | undefined;
|
|
5624
|
+
}, {
|
|
5625
|
+
value: string;
|
|
5626
|
+
type: "HighlightedText";
|
|
5627
|
+
highlight?: [number, number] | undefined;
|
|
5628
|
+
}>, z.ZodObject<{
|
|
5629
|
+
type: z.ZodLiteral<"ColorText">;
|
|
5630
|
+
value: z.ZodString;
|
|
5631
|
+
color: z.ZodString;
|
|
5632
|
+
highlight: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
5633
|
+
}, "strip", z.ZodTypeAny, {
|
|
5634
|
+
value: string;
|
|
5635
|
+
type: "ColorText";
|
|
5636
|
+
color: string;
|
|
5637
|
+
highlight?: [number, number] | undefined;
|
|
5638
|
+
}, {
|
|
5639
|
+
value: string;
|
|
5640
|
+
type: "ColorText";
|
|
5641
|
+
color: string;
|
|
5642
|
+
highlight?: [number, number] | undefined;
|
|
5643
|
+
}>, z.ZodObject<{
|
|
5644
|
+
type: z.ZodLiteral<"BoldText">;
|
|
5645
|
+
value: z.ZodString;
|
|
5646
|
+
highlight: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
5647
|
+
}, "strip", z.ZodTypeAny, {
|
|
5648
|
+
value: string;
|
|
5649
|
+
type: "BoldText";
|
|
5650
|
+
highlight?: [number, number] | undefined;
|
|
5651
|
+
}, {
|
|
5652
|
+
value: string;
|
|
5653
|
+
type: "BoldText";
|
|
5654
|
+
highlight?: [number, number] | undefined;
|
|
5655
|
+
}>, z.ZodDiscriminatedUnion<"inputType", [z.ZodObject<{
|
|
5656
|
+
type: z.ZodLiteral<"InlineInput">;
|
|
5657
|
+
name: z.ZodString;
|
|
5658
|
+
inputType: z.ZodLiteral<"string">;
|
|
5659
|
+
length: z.ZodNumber;
|
|
5660
|
+
answer: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
5661
|
+
}, "strip", z.ZodTypeAny, {
|
|
5662
|
+
length: number;
|
|
5663
|
+
type: "InlineInput";
|
|
5664
|
+
inputType: "string";
|
|
5665
|
+
name: string;
|
|
5666
|
+
answer?: string | number | undefined;
|
|
5667
|
+
}, {
|
|
5668
|
+
length: number;
|
|
5669
|
+
type: "InlineInput";
|
|
5670
|
+
inputType: "string";
|
|
5671
|
+
name: string;
|
|
5672
|
+
answer?: string | number | undefined;
|
|
5673
|
+
}>, z.ZodObject<{
|
|
5674
|
+
type: z.ZodLiteral<"InlineInput">;
|
|
5675
|
+
name: z.ZodString;
|
|
5676
|
+
inputType: z.ZodLiteral<"numeric">;
|
|
5677
|
+
digits: z.ZodNumber;
|
|
5678
|
+
answer: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber]>>;
|
|
5679
|
+
}, "strip", z.ZodTypeAny, {
|
|
5680
|
+
type: "InlineInput";
|
|
5681
|
+
inputType: "numeric";
|
|
5682
|
+
name: string;
|
|
5683
|
+
digits: number;
|
|
5684
|
+
answer?: string | number | undefined;
|
|
5685
|
+
}, {
|
|
5686
|
+
type: "InlineInput";
|
|
5687
|
+
inputType: "numeric";
|
|
5688
|
+
name: string;
|
|
5689
|
+
digits: number;
|
|
5690
|
+
answer?: string | number | undefined;
|
|
5691
|
+
}>]>, z.ZodObject<{
|
|
5692
|
+
type: z.ZodLiteral<"Fraction">;
|
|
5693
|
+
name: z.ZodString;
|
|
5694
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
5695
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
5696
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
5697
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
5698
|
+
}, "strip", z.ZodTypeAny, {
|
|
5699
|
+
type: "Fraction";
|
|
5700
|
+
name: string;
|
|
5701
|
+
simplified: boolean;
|
|
5702
|
+
answer?: string | undefined;
|
|
5703
|
+
numerator?: number | undefined;
|
|
5704
|
+
denominator?: number | undefined;
|
|
5705
|
+
}, {
|
|
5706
|
+
type: "Fraction";
|
|
5707
|
+
name: string;
|
|
5708
|
+
answer?: string | undefined;
|
|
5709
|
+
numerator?: number | undefined;
|
|
5710
|
+
denominator?: number | undefined;
|
|
5711
|
+
simplified?: boolean | undefined;
|
|
5712
|
+
}>]>, "many">;
|
|
5713
|
+
}, "strip", z.ZodTypeAny, {
|
|
5714
|
+
value: number;
|
|
5715
|
+
type: "NumberLinePosition";
|
|
5716
|
+
inlines: ({
|
|
5717
|
+
value: string;
|
|
5718
|
+
type: "FreeText";
|
|
5719
|
+
} | {
|
|
5720
|
+
type: "Space";
|
|
5721
|
+
} | {
|
|
5722
|
+
value: string;
|
|
5723
|
+
type: "HighlightedText";
|
|
5724
|
+
highlight?: [number, number] | undefined;
|
|
5725
|
+
} | {
|
|
5726
|
+
value: string;
|
|
5727
|
+
type: "ColorText";
|
|
5728
|
+
color: string;
|
|
5729
|
+
highlight?: [number, number] | undefined;
|
|
5730
|
+
} | {
|
|
5731
|
+
value: string;
|
|
5732
|
+
type: "BoldText";
|
|
5733
|
+
highlight?: [number, number] | undefined;
|
|
5734
|
+
} | {
|
|
5735
|
+
length: number;
|
|
5736
|
+
type: "InlineInput";
|
|
5737
|
+
inputType: "string";
|
|
5738
|
+
name: string;
|
|
5739
|
+
answer?: string | number | undefined;
|
|
5740
|
+
} | {
|
|
5741
|
+
type: "InlineInput";
|
|
5742
|
+
inputType: "numeric";
|
|
5743
|
+
name: string;
|
|
5744
|
+
digits: number;
|
|
5745
|
+
answer?: string | number | undefined;
|
|
5746
|
+
} | {
|
|
5747
|
+
type: "Fraction";
|
|
5748
|
+
name: string;
|
|
5749
|
+
simplified: boolean;
|
|
5750
|
+
answer?: string | undefined;
|
|
5751
|
+
numerator?: number | undefined;
|
|
5752
|
+
denominator?: number | undefined;
|
|
5753
|
+
})[];
|
|
5754
|
+
}, {
|
|
5755
|
+
value: number;
|
|
5756
|
+
type: "NumberLinePosition";
|
|
5757
|
+
inlines: ({
|
|
5758
|
+
value: string;
|
|
5759
|
+
type: "FreeText";
|
|
5760
|
+
} | {
|
|
5761
|
+
type: "Space";
|
|
5762
|
+
} | {
|
|
5763
|
+
value: string;
|
|
5764
|
+
type: "HighlightedText";
|
|
5765
|
+
highlight?: [number, number] | undefined;
|
|
5766
|
+
} | {
|
|
5767
|
+
value: string;
|
|
5768
|
+
type: "ColorText";
|
|
5769
|
+
color: string;
|
|
5770
|
+
highlight?: [number, number] | undefined;
|
|
5771
|
+
} | {
|
|
5772
|
+
value: string;
|
|
5773
|
+
type: "BoldText";
|
|
5774
|
+
highlight?: [number, number] | undefined;
|
|
5775
|
+
} | {
|
|
5776
|
+
length: number;
|
|
5777
|
+
type: "InlineInput";
|
|
5778
|
+
inputType: "string";
|
|
5779
|
+
name: string;
|
|
5780
|
+
answer?: string | number | undefined;
|
|
5781
|
+
} | {
|
|
5782
|
+
type: "InlineInput";
|
|
5783
|
+
inputType: "numeric";
|
|
5784
|
+
name: string;
|
|
5785
|
+
digits: number;
|
|
5786
|
+
answer?: string | number | undefined;
|
|
5787
|
+
} | {
|
|
5788
|
+
type: "Fraction";
|
|
5789
|
+
name: string;
|
|
5790
|
+
answer?: string | undefined;
|
|
5791
|
+
numerator?: number | undefined;
|
|
5792
|
+
denominator?: number | undefined;
|
|
5793
|
+
simplified?: boolean | undefined;
|
|
5794
|
+
})[];
|
|
5795
|
+
}>;
|
|
5796
|
+
|
|
5797
|
+
export declare type NumericKeypadJSON = z.infer<typeof NumericKeypadJSONSchema>;
|
|
5798
|
+
|
|
5799
|
+
export declare const NumericKeypadJSONSchema: z.ZodObject<{
|
|
5800
|
+
type: z.ZodLiteral<"numeric-keypad">;
|
|
5801
|
+
includeOperators: z.ZodOptional<z.ZodBoolean>;
|
|
5802
|
+
includeDecimal: z.ZodOptional<z.ZodBoolean>;
|
|
5803
|
+
}, "strip", z.ZodTypeAny, {
|
|
5804
|
+
type: "numeric-keypad";
|
|
5805
|
+
includeOperators?: boolean | undefined;
|
|
5806
|
+
includeDecimal?: boolean | undefined;
|
|
5807
|
+
}, {
|
|
5808
|
+
type: "numeric-keypad";
|
|
3693
5809
|
includeOperators?: boolean | undefined;
|
|
3694
5810
|
includeDecimal?: boolean | undefined;
|
|
3695
5811
|
}>;
|
|
@@ -3756,6 +5872,11 @@ export declare class ParseError extends EngineError {
|
|
|
3756
5872
|
constructor(errors: IRecognitionException[]);
|
|
3757
5873
|
}
|
|
3758
5874
|
|
|
5875
|
+
export declare function parseFractionKey(key: string): {
|
|
5876
|
+
widgetId: string;
|
|
5877
|
+
part: FractionPart;
|
|
5878
|
+
} | null;
|
|
5879
|
+
|
|
3759
5880
|
/**
|
|
3760
5881
|
* Parse DSL tokens into CST (safe version - returns errors instead of throwing)
|
|
3761
5882
|
*/
|
|
@@ -4028,7 +6149,28 @@ declare const TableBlockSchema: z.ZodObject<{
|
|
|
4028
6149
|
name: string;
|
|
4029
6150
|
digits: number;
|
|
4030
6151
|
answer?: string | number | undefined;
|
|
4031
|
-
}>]
|
|
6152
|
+
}>]>, z.ZodObject<{
|
|
6153
|
+
type: z.ZodLiteral<"Fraction">;
|
|
6154
|
+
name: z.ZodString;
|
|
6155
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
6156
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
6157
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
6158
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
6159
|
+
}, "strip", z.ZodTypeAny, {
|
|
6160
|
+
type: "Fraction";
|
|
6161
|
+
name: string;
|
|
6162
|
+
simplified: boolean;
|
|
6163
|
+
answer?: string | undefined;
|
|
6164
|
+
numerator?: number | undefined;
|
|
6165
|
+
denominator?: number | undefined;
|
|
6166
|
+
}, {
|
|
6167
|
+
type: "Fraction";
|
|
6168
|
+
name: string;
|
|
6169
|
+
answer?: string | undefined;
|
|
6170
|
+
numerator?: number | undefined;
|
|
6171
|
+
denominator?: number | undefined;
|
|
6172
|
+
simplified?: boolean | undefined;
|
|
6173
|
+
}>]>, "many">;
|
|
4032
6174
|
}, "strip", z.ZodTypeAny, {
|
|
4033
6175
|
type: "TableCell";
|
|
4034
6176
|
inlines: ({
|
|
@@ -4061,6 +6203,13 @@ declare const TableBlockSchema: z.ZodObject<{
|
|
|
4061
6203
|
name: string;
|
|
4062
6204
|
digits: number;
|
|
4063
6205
|
answer?: string | number | undefined;
|
|
6206
|
+
} | {
|
|
6207
|
+
type: "Fraction";
|
|
6208
|
+
name: string;
|
|
6209
|
+
simplified: boolean;
|
|
6210
|
+
answer?: string | undefined;
|
|
6211
|
+
numerator?: number | undefined;
|
|
6212
|
+
denominator?: number | undefined;
|
|
4064
6213
|
})[];
|
|
4065
6214
|
colspan?: number | undefined;
|
|
4066
6215
|
}, {
|
|
@@ -4095,6 +6244,13 @@ declare const TableBlockSchema: z.ZodObject<{
|
|
|
4095
6244
|
name: string;
|
|
4096
6245
|
digits: number;
|
|
4097
6246
|
answer?: string | number | undefined;
|
|
6247
|
+
} | {
|
|
6248
|
+
type: "Fraction";
|
|
6249
|
+
name: string;
|
|
6250
|
+
answer?: string | undefined;
|
|
6251
|
+
numerator?: number | undefined;
|
|
6252
|
+
denominator?: number | undefined;
|
|
6253
|
+
simplified?: boolean | undefined;
|
|
4098
6254
|
})[];
|
|
4099
6255
|
colspan?: number | undefined;
|
|
4100
6256
|
}>, "many">;
|
|
@@ -4132,6 +6288,13 @@ declare const TableBlockSchema: z.ZodObject<{
|
|
|
4132
6288
|
name: string;
|
|
4133
6289
|
digits: number;
|
|
4134
6290
|
answer?: string | number | undefined;
|
|
6291
|
+
} | {
|
|
6292
|
+
type: "Fraction";
|
|
6293
|
+
name: string;
|
|
6294
|
+
simplified: boolean;
|
|
6295
|
+
answer?: string | undefined;
|
|
6296
|
+
numerator?: number | undefined;
|
|
6297
|
+
denominator?: number | undefined;
|
|
4135
6298
|
})[];
|
|
4136
6299
|
colspan?: number | undefined;
|
|
4137
6300
|
}[];
|
|
@@ -4169,6 +6332,13 @@ declare const TableBlockSchema: z.ZodObject<{
|
|
|
4169
6332
|
name: string;
|
|
4170
6333
|
digits: number;
|
|
4171
6334
|
answer?: string | number | undefined;
|
|
6335
|
+
} | {
|
|
6336
|
+
type: "Fraction";
|
|
6337
|
+
name: string;
|
|
6338
|
+
answer?: string | undefined;
|
|
6339
|
+
numerator?: number | undefined;
|
|
6340
|
+
denominator?: number | undefined;
|
|
6341
|
+
simplified?: boolean | undefined;
|
|
4172
6342
|
})[];
|
|
4173
6343
|
colspan?: number | undefined;
|
|
4174
6344
|
}[];
|
|
@@ -4210,6 +6380,13 @@ declare const TableBlockSchema: z.ZodObject<{
|
|
|
4210
6380
|
name: string;
|
|
4211
6381
|
digits: number;
|
|
4212
6382
|
answer?: string | number | undefined;
|
|
6383
|
+
} | {
|
|
6384
|
+
type: "Fraction";
|
|
6385
|
+
name: string;
|
|
6386
|
+
simplified: boolean;
|
|
6387
|
+
answer?: string | undefined;
|
|
6388
|
+
numerator?: number | undefined;
|
|
6389
|
+
denominator?: number | undefined;
|
|
4213
6390
|
})[];
|
|
4214
6391
|
colspan?: number | undefined;
|
|
4215
6392
|
}[];
|
|
@@ -4251,6 +6428,13 @@ declare const TableBlockSchema: z.ZodObject<{
|
|
|
4251
6428
|
name: string;
|
|
4252
6429
|
digits: number;
|
|
4253
6430
|
answer?: string | number | undefined;
|
|
6431
|
+
} | {
|
|
6432
|
+
type: "Fraction";
|
|
6433
|
+
name: string;
|
|
6434
|
+
answer?: string | undefined;
|
|
6435
|
+
numerator?: number | undefined;
|
|
6436
|
+
denominator?: number | undefined;
|
|
6437
|
+
simplified?: boolean | undefined;
|
|
4254
6438
|
})[];
|
|
4255
6439
|
colspan?: number | undefined;
|
|
4256
6440
|
}[];
|
|
@@ -4371,7 +6555,28 @@ declare const TableCellSchema: z.ZodObject<{
|
|
|
4371
6555
|
name: string;
|
|
4372
6556
|
digits: number;
|
|
4373
6557
|
answer?: string | number | undefined;
|
|
4374
|
-
}>]
|
|
6558
|
+
}>]>, z.ZodObject<{
|
|
6559
|
+
type: z.ZodLiteral<"Fraction">;
|
|
6560
|
+
name: z.ZodString;
|
|
6561
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
6562
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
6563
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
6564
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
6565
|
+
}, "strip", z.ZodTypeAny, {
|
|
6566
|
+
type: "Fraction";
|
|
6567
|
+
name: string;
|
|
6568
|
+
simplified: boolean;
|
|
6569
|
+
answer?: string | undefined;
|
|
6570
|
+
numerator?: number | undefined;
|
|
6571
|
+
denominator?: number | undefined;
|
|
6572
|
+
}, {
|
|
6573
|
+
type: "Fraction";
|
|
6574
|
+
name: string;
|
|
6575
|
+
answer?: string | undefined;
|
|
6576
|
+
numerator?: number | undefined;
|
|
6577
|
+
denominator?: number | undefined;
|
|
6578
|
+
simplified?: boolean | undefined;
|
|
6579
|
+
}>]>, "many">;
|
|
4375
6580
|
}, "strip", z.ZodTypeAny, {
|
|
4376
6581
|
type: "TableCell";
|
|
4377
6582
|
inlines: ({
|
|
@@ -4404,6 +6609,13 @@ declare const TableCellSchema: z.ZodObject<{
|
|
|
4404
6609
|
name: string;
|
|
4405
6610
|
digits: number;
|
|
4406
6611
|
answer?: string | number | undefined;
|
|
6612
|
+
} | {
|
|
6613
|
+
type: "Fraction";
|
|
6614
|
+
name: string;
|
|
6615
|
+
simplified: boolean;
|
|
6616
|
+
answer?: string | undefined;
|
|
6617
|
+
numerator?: number | undefined;
|
|
6618
|
+
denominator?: number | undefined;
|
|
4407
6619
|
})[];
|
|
4408
6620
|
colspan?: number | undefined;
|
|
4409
6621
|
}, {
|
|
@@ -4438,6 +6650,13 @@ declare const TableCellSchema: z.ZodObject<{
|
|
|
4438
6650
|
name: string;
|
|
4439
6651
|
digits: number;
|
|
4440
6652
|
answer?: string | number | undefined;
|
|
6653
|
+
} | {
|
|
6654
|
+
type: "Fraction";
|
|
6655
|
+
name: string;
|
|
6656
|
+
answer?: string | undefined;
|
|
6657
|
+
numerator?: number | undefined;
|
|
6658
|
+
denominator?: number | undefined;
|
|
6659
|
+
simplified?: boolean | undefined;
|
|
4441
6660
|
})[];
|
|
4442
6661
|
colspan?: number | undefined;
|
|
4443
6662
|
}>;
|
|
@@ -4654,7 +6873,28 @@ declare const TableRowSchema: z.ZodObject<{
|
|
|
4654
6873
|
name: string;
|
|
4655
6874
|
digits: number;
|
|
4656
6875
|
answer?: string | number | undefined;
|
|
4657
|
-
}>]
|
|
6876
|
+
}>]>, z.ZodObject<{
|
|
6877
|
+
type: z.ZodLiteral<"Fraction">;
|
|
6878
|
+
name: z.ZodString;
|
|
6879
|
+
numerator: z.ZodOptional<z.ZodNumber>;
|
|
6880
|
+
denominator: z.ZodOptional<z.ZodNumber>;
|
|
6881
|
+
answer: z.ZodOptional<z.ZodString>;
|
|
6882
|
+
simplified: z.ZodDefault<z.ZodBoolean>;
|
|
6883
|
+
}, "strip", z.ZodTypeAny, {
|
|
6884
|
+
type: "Fraction";
|
|
6885
|
+
name: string;
|
|
6886
|
+
simplified: boolean;
|
|
6887
|
+
answer?: string | undefined;
|
|
6888
|
+
numerator?: number | undefined;
|
|
6889
|
+
denominator?: number | undefined;
|
|
6890
|
+
}, {
|
|
6891
|
+
type: "Fraction";
|
|
6892
|
+
name: string;
|
|
6893
|
+
answer?: string | undefined;
|
|
6894
|
+
numerator?: number | undefined;
|
|
6895
|
+
denominator?: number | undefined;
|
|
6896
|
+
simplified?: boolean | undefined;
|
|
6897
|
+
}>]>, "many">;
|
|
4658
6898
|
}, "strip", z.ZodTypeAny, {
|
|
4659
6899
|
type: "TableCell";
|
|
4660
6900
|
inlines: ({
|
|
@@ -4687,6 +6927,13 @@ declare const TableRowSchema: z.ZodObject<{
|
|
|
4687
6927
|
name: string;
|
|
4688
6928
|
digits: number;
|
|
4689
6929
|
answer?: string | number | undefined;
|
|
6930
|
+
} | {
|
|
6931
|
+
type: "Fraction";
|
|
6932
|
+
name: string;
|
|
6933
|
+
simplified: boolean;
|
|
6934
|
+
answer?: string | undefined;
|
|
6935
|
+
numerator?: number | undefined;
|
|
6936
|
+
denominator?: number | undefined;
|
|
4690
6937
|
})[];
|
|
4691
6938
|
colspan?: number | undefined;
|
|
4692
6939
|
}, {
|
|
@@ -4721,6 +6968,13 @@ declare const TableRowSchema: z.ZodObject<{
|
|
|
4721
6968
|
name: string;
|
|
4722
6969
|
digits: number;
|
|
4723
6970
|
answer?: string | number | undefined;
|
|
6971
|
+
} | {
|
|
6972
|
+
type: "Fraction";
|
|
6973
|
+
name: string;
|
|
6974
|
+
answer?: string | undefined;
|
|
6975
|
+
numerator?: number | undefined;
|
|
6976
|
+
denominator?: number | undefined;
|
|
6977
|
+
simplified?: boolean | undefined;
|
|
4724
6978
|
})[];
|
|
4725
6979
|
colspan?: number | undefined;
|
|
4726
6980
|
}>, "many">;
|
|
@@ -4758,6 +7012,13 @@ declare const TableRowSchema: z.ZodObject<{
|
|
|
4758
7012
|
name: string;
|
|
4759
7013
|
digits: number;
|
|
4760
7014
|
answer?: string | number | undefined;
|
|
7015
|
+
} | {
|
|
7016
|
+
type: "Fraction";
|
|
7017
|
+
name: string;
|
|
7018
|
+
simplified: boolean;
|
|
7019
|
+
answer?: string | undefined;
|
|
7020
|
+
numerator?: number | undefined;
|
|
7021
|
+
denominator?: number | undefined;
|
|
4761
7022
|
})[];
|
|
4762
7023
|
colspan?: number | undefined;
|
|
4763
7024
|
}[];
|
|
@@ -4795,6 +7056,13 @@ declare const TableRowSchema: z.ZodObject<{
|
|
|
4795
7056
|
name: string;
|
|
4796
7057
|
digits: number;
|
|
4797
7058
|
answer?: string | number | undefined;
|
|
7059
|
+
} | {
|
|
7060
|
+
type: "Fraction";
|
|
7061
|
+
name: string;
|
|
7062
|
+
answer?: string | undefined;
|
|
7063
|
+
numerator?: number | undefined;
|
|
7064
|
+
denominator?: number | undefined;
|
|
7065
|
+
simplified?: boolean | undefined;
|
|
4798
7066
|
})[];
|
|
4799
7067
|
colspan?: number | undefined;
|
|
4800
7068
|
}[];
|
|
@@ -4986,6 +7254,11 @@ export declare function validateExerciseJSON(data: unknown): {
|
|
|
4986
7254
|
type: "numeric-keypad";
|
|
4987
7255
|
includeOperators?: boolean | undefined;
|
|
4988
7256
|
includeDecimal?: boolean | undefined;
|
|
7257
|
+
} | {
|
|
7258
|
+
type: "fraction";
|
|
7259
|
+
numerator: number | null;
|
|
7260
|
+
denominator: number | null;
|
|
7261
|
+
simplified: boolean;
|
|
4989
7262
|
}>;
|
|
4990
7263
|
validation?: {
|
|
4991
7264
|
mode: "simple" | "expression";
|
|
@@ -5039,6 +7312,11 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
|
|
|
5039
7312
|
type: "numeric-keypad";
|
|
5040
7313
|
includeOperators?: boolean | undefined;
|
|
5041
7314
|
includeDecimal?: boolean | undefined;
|
|
7315
|
+
} | {
|
|
7316
|
+
type: "fraction";
|
|
7317
|
+
numerator: number | null;
|
|
7318
|
+
denominator: number | null;
|
|
7319
|
+
simplified: boolean;
|
|
5042
7320
|
}>;
|
|
5043
7321
|
validation?: {
|
|
5044
7322
|
mode: "simple" | "expression";
|
|
@@ -5074,6 +7352,11 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
|
|
|
5074
7352
|
type: "numeric-keypad";
|
|
5075
7353
|
includeOperators?: boolean | undefined;
|
|
5076
7354
|
includeDecimal?: boolean | undefined;
|
|
7355
|
+
} | {
|
|
7356
|
+
type: "fraction";
|
|
7357
|
+
numerator: number | null;
|
|
7358
|
+
denominator: number | null;
|
|
7359
|
+
simplified: boolean;
|
|
5077
7360
|
}>;
|
|
5078
7361
|
validation?: {
|
|
5079
7362
|
mode: "simple" | "expression";
|
|
@@ -5143,6 +7426,11 @@ export declare function validateWidgetJSON(data: unknown): {
|
|
|
5143
7426
|
type: "numeric-keypad";
|
|
5144
7427
|
includeOperators?: boolean | undefined;
|
|
5145
7428
|
includeDecimal?: boolean | undefined;
|
|
7429
|
+
} | {
|
|
7430
|
+
type: "fraction";
|
|
7431
|
+
numerator: number | null;
|
|
7432
|
+
denominator: number | null;
|
|
7433
|
+
simplified: boolean;
|
|
5146
7434
|
};
|
|
5147
7435
|
|
|
5148
7436
|
/**
|
|
@@ -5169,6 +7457,11 @@ export declare function validateWidgetJSONSafe(data: unknown): z.SafeParseReturn
|
|
|
5169
7457
|
type: "numeric-keypad";
|
|
5170
7458
|
includeOperators?: boolean | undefined;
|
|
5171
7459
|
includeDecimal?: boolean | undefined;
|
|
7460
|
+
} | {
|
|
7461
|
+
type: "fraction";
|
|
7462
|
+
numerator: number | null;
|
|
7463
|
+
denominator: number | null;
|
|
7464
|
+
simplified: boolean;
|
|
5172
7465
|
}, {
|
|
5173
7466
|
length: number;
|
|
5174
7467
|
type: "inline-input";
|
|
@@ -5187,6 +7480,11 @@ export declare function validateWidgetJSONSafe(data: unknown): z.SafeParseReturn
|
|
|
5187
7480
|
type: "numeric-keypad";
|
|
5188
7481
|
includeOperators?: boolean | undefined;
|
|
5189
7482
|
includeDecimal?: boolean | undefined;
|
|
7483
|
+
} | {
|
|
7484
|
+
type: "fraction";
|
|
7485
|
+
numerator: number | null;
|
|
7486
|
+
denominator: number | null;
|
|
7487
|
+
simplified: boolean;
|
|
5190
7488
|
}>;
|
|
5191
7489
|
|
|
5192
7490
|
/**
|
|
@@ -5256,6 +7554,8 @@ export declare interface ValidationResult {
|
|
|
5256
7554
|
error?: string;
|
|
5257
7555
|
}
|
|
5258
7556
|
|
|
7557
|
+
declare type ValidationStatus = 'correct' | 'incorrect' | null;
|
|
7558
|
+
|
|
5259
7559
|
export declare type WidgetJSON = z.infer<typeof WidgetJSONSchema>;
|
|
5260
7560
|
|
|
5261
7561
|
export declare const WidgetJSONSchema: z.ZodUnion<[z.ZodDiscriminatedUnion<"inputType", [z.ZodObject<{
|
|
@@ -5312,6 +7612,21 @@ export declare const WidgetJSONSchema: z.ZodUnion<[z.ZodDiscriminatedUnion<"inpu
|
|
|
5312
7612
|
type: "numeric-keypad";
|
|
5313
7613
|
includeOperators?: boolean | undefined;
|
|
5314
7614
|
includeDecimal?: boolean | undefined;
|
|
7615
|
+
}>, z.ZodObject<{
|
|
7616
|
+
type: z.ZodLiteral<"fraction">;
|
|
7617
|
+
numerator: z.ZodNullable<z.ZodNumber>;
|
|
7618
|
+
denominator: z.ZodNullable<z.ZodNumber>;
|
|
7619
|
+
simplified: z.ZodBoolean;
|
|
7620
|
+
}, "strip", z.ZodTypeAny, {
|
|
7621
|
+
type: "fraction";
|
|
7622
|
+
numerator: number | null;
|
|
7623
|
+
denominator: number | null;
|
|
7624
|
+
simplified: boolean;
|
|
7625
|
+
}, {
|
|
7626
|
+
type: "fraction";
|
|
7627
|
+
numerator: number | null;
|
|
7628
|
+
denominator: number | null;
|
|
7629
|
+
simplified: boolean;
|
|
5315
7630
|
}>]>;
|
|
5316
7631
|
|
|
5317
7632
|
export declare type WidgetRef = z.infer<typeof WidgetRefSchema>;
|
|
@@ -5341,7 +7656,10 @@ export declare interface WidgetRendererProps {
|
|
|
5341
7656
|
widget: WidgetJSON;
|
|
5342
7657
|
widgetId: string;
|
|
5343
7658
|
value: string;
|
|
7659
|
+
values?: Record<string, string>;
|
|
5344
7660
|
isDropped?: boolean;
|
|
7661
|
+
validationStatus?: ValidationStatus;
|
|
7662
|
+
droppedInputs?: Set<string>;
|
|
5345
7663
|
onChange: (widgetId: string, value: string, fromDrop?: boolean, sourceOptionId?: string) => void;
|
|
5346
7664
|
onInputFocus?: (widgetId: string) => void;
|
|
5347
7665
|
onKeypadChange?: (value: string) => void;
|