@mathscan/math-exercise-engine 1.1.15 → 1.1.17

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 CHANGED
@@ -55,6 +55,8 @@ export declare const AST_TYPES: {
55
55
  readonly VOP_CARRY_ROW: "VopCarryRow";
56
56
  /** Number line layout block */
57
57
  readonly NUMBER_LINE_BLOCK: "NumberLineBlock";
58
+ /** Symmetry exercise on a square grid */
59
+ readonly GRID_SYMMETRY_BLOCK: "GridSymmetryBlock";
58
60
  /** A position marker on the number line */
59
61
  readonly NUMBER_LINE_POSITION: "NumberLinePosition";
60
62
  /** A draggable cursor on the number line */
@@ -406,6 +408,7 @@ export declare function compileWithAST(dsl: string): {
406
408
  alt: string;
407
409
  width?: number | undefined;
408
410
  height?: number | undefined;
411
+ fullscreen?: boolean | undefined;
409
412
  } | {
410
413
  type: "VisualFraction";
411
414
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -491,6 +494,7 @@ export declare function compileWithAST(dsl: string): {
491
494
  alt: string;
492
495
  width?: number | undefined;
493
496
  height?: number | undefined;
497
+ fullscreen?: boolean | undefined;
494
498
  } | {
495
499
  type: "VisualFraction";
496
500
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -537,7 +541,7 @@ export declare function compileWithAST(dsl: string): {
537
541
  type: "NumberLineHighlight";
538
542
  from: number;
539
543
  to: number;
540
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
544
+ color?: string | undefined;
541
545
  label?: string | undefined;
542
546
  }[] | undefined;
543
547
  cursors?: {
@@ -597,6 +601,7 @@ export declare function compileWithAST(dsl: string): {
597
601
  alt: string;
598
602
  width?: number | undefined;
599
603
  height?: number | undefined;
604
+ fullscreen?: boolean | undefined;
600
605
  } | {
601
606
  type: "VisualFraction";
602
607
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -633,8 +638,15 @@ export declare function compileWithAST(dsl: string): {
633
638
  }[] | undefined;
634
639
  dragMode?: "axis" | "inputs" | undefined;
635
640
  } | {
636
- type: "TableBlock";
641
+ axis: "horizontal" | "vertical";
642
+ type: "GridSymmetryBlock";
643
+ rows: number;
637
644
  cols: number;
645
+ interactiveArea: "left" | "right" | "top" | "bottom";
646
+ cellSize: number;
647
+ cells: [number, number][];
648
+ } | {
649
+ type: "TableBlock";
638
650
  rows: {
639
651
  type: "TableRow";
640
652
  cells: {
@@ -686,6 +698,7 @@ export declare function compileWithAST(dsl: string): {
686
698
  alt: string;
687
699
  width?: number | undefined;
688
700
  height?: number | undefined;
701
+ fullscreen?: boolean | undefined;
689
702
  } | {
690
703
  type: "VisualFraction";
691
704
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -722,7 +735,9 @@ export declare function compileWithAST(dsl: string): {
722
735
  }[];
723
736
  backgroundColor?: string | undefined;
724
737
  }[];
738
+ cols: number;
725
739
  } | {
740
+ type: "VerticalOperationBlock";
726
741
  items: ({
727
742
  type: "VopRow";
728
743
  cells: ({
@@ -793,17 +808,17 @@ export declare function compileWithAST(dsl: string): {
793
808
  } | {
794
809
  type: "VopSeparator";
795
810
  })[];
796
- type: "VerticalOperationBlock";
797
811
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
798
812
  } | {
799
- type: "RadioOptions";
800
813
  options: string[];
814
+ type: "RadioOptions";
801
815
  name: string;
802
816
  answer: string;
803
817
  } | {
804
818
  type: "MatcherBlock";
805
819
  name: string;
806
820
  rows: {
821
+ type: "MatcherRow";
807
822
  items: {
808
823
  type: "MatcherItem";
809
824
  inlines: ({
@@ -839,6 +854,7 @@ export declare function compileWithAST(dsl: string): {
839
854
  alt: string;
840
855
  width?: number | undefined;
841
856
  height?: number | undefined;
857
+ fullscreen?: boolean | undefined;
842
858
  } | {
843
859
  type: "VisualFraction";
844
860
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -852,7 +868,6 @@ export declare function compileWithAST(dsl: string): {
852
868
  })[];
853
869
  itemId: string;
854
870
  }[];
855
- type: "MatcherRow";
856
871
  }[];
857
872
  answers: string[][];
858
873
  colors?: string[] | undefined;
@@ -895,6 +910,7 @@ export declare function compileWithAST(dsl: string): {
895
910
  alt: string;
896
911
  width?: number | undefined;
897
912
  height?: number | undefined;
913
+ fullscreen?: boolean | undefined;
898
914
  } | {
899
915
  type: "VisualFraction";
900
916
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -943,6 +959,7 @@ export declare function compileWithAST(dsl: string): {
943
959
  alt: string;
944
960
  width?: number | undefined;
945
961
  height?: number | undefined;
962
+ fullscreen?: boolean | undefined;
946
963
  } | {
947
964
  type: "VisualFraction";
948
965
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -957,10 +974,6 @@ export declare function compileWithAST(dsl: string): {
957
974
  itemId: string;
958
975
  }[];
959
976
  })[];
960
- question?: {
961
- value: string;
962
- type: "TextBlock";
963
- } | undefined;
964
977
  validation?: {
965
978
  type: "SimpleValidation";
966
979
  } | {
@@ -970,9 +983,13 @@ export declare function compileWithAST(dsl: string): {
970
983
  expression: string;
971
984
  type: "MixedValidation";
972
985
  } | undefined;
986
+ question?: {
987
+ value: string;
988
+ type: "TextBlock";
989
+ } | undefined;
973
990
  tools?: ({
974
- type: "DragOptions";
975
991
  options: string[];
992
+ type: "DragOptions";
976
993
  } | {
977
994
  type: "NumericKeypad";
978
995
  style?: "diamond" | "classic" | undefined;
@@ -1003,14 +1020,14 @@ export declare function compileWithAST(dsl: string): {
1003
1020
  digits: number;
1004
1021
  placeholder?: string | undefined;
1005
1022
  } | {
1006
- type: "drag-options";
1007
1023
  options: string[];
1024
+ type: "drag-options";
1008
1025
  } | {
1009
1026
  value: string;
1010
1027
  type: "inline-drag-option";
1011
1028
  } | {
1012
- type: "radio-options";
1013
1029
  options: string[];
1030
+ type: "radio-options";
1014
1031
  } | {
1015
1032
  type: "numeric-keypad";
1016
1033
  style?: "diamond" | "classic" | undefined;
@@ -1025,13 +1042,13 @@ export declare function compileWithAST(dsl: string): {
1025
1042
  } | {
1026
1043
  type: "matcher";
1027
1044
  rows: {
1045
+ type: "matcher-row";
1028
1046
  items: {
1029
1047
  type: "matcher-item";
1030
1048
  itemId: string;
1031
1049
  id: string;
1032
1050
  content: any[];
1033
1051
  }[];
1034
- type: "matcher-row";
1035
1052
  id: string;
1036
1053
  }[];
1037
1054
  groupCount: number;
@@ -1059,6 +1076,14 @@ export declare function compileWithAST(dsl: string): {
1059
1076
  orientation?: "horizontal" | "vertical" | undefined;
1060
1077
  label?: string | undefined;
1061
1078
  size?: number | undefined;
1079
+ } | {
1080
+ axis: "horizontal" | "vertical";
1081
+ type: "grid-symmetry";
1082
+ rows: number;
1083
+ cols: number;
1084
+ interactiveArea: "left" | "right" | "top" | "bottom";
1085
+ cellSize: number;
1086
+ cells: [number, number][];
1062
1087
  } | {
1063
1088
  type: "ruler";
1064
1089
  size?: number | undefined;
@@ -1072,7 +1097,7 @@ export declare function compileWithAST(dsl: string): {
1072
1097
  validation?: {
1073
1098
  mode: "simple" | "expression" | "mixed";
1074
1099
  expression?: string | undefined;
1075
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
1100
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
1076
1101
  variables?: string[] | undefined;
1077
1102
  } | undefined;
1078
1103
  id?: string | undefined;
@@ -1085,6 +1110,22 @@ export declare function compileWithAST(dsl: string): {
1085
1110
  };
1086
1111
  };
1087
1112
 
1113
+ export declare function computeGridSymmetryCellsToFill(data: {
1114
+ rows: number;
1115
+ cols: number;
1116
+ axis: GridSymmetryAxis;
1117
+ interactiveArea: GridSymmetryInteractiveArea;
1118
+ cells: GridCell[];
1119
+ }): GridCell[];
1120
+
1121
+ export declare function computeGridSymmetryExpectedCells(data: {
1122
+ rows: number;
1123
+ cols: number;
1124
+ axis: GridSymmetryAxis;
1125
+ interactiveArea: GridSymmetryInteractiveArea;
1126
+ cells: GridCell[];
1127
+ }): GridCell[];
1128
+
1088
1129
  export declare type ContentBlock = z.infer<typeof ContentBlockSchema>;
1089
1130
 
1090
1131
  export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
@@ -1216,6 +1257,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1216
1257
  alt: z.ZodString;
1217
1258
  width: z.ZodOptional<z.ZodNumber>;
1218
1259
  height: z.ZodOptional<z.ZodNumber>;
1260
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
1219
1261
  }, "strip", z.ZodTypeAny, {
1220
1262
  type: "Image";
1221
1263
  name: string;
@@ -1223,6 +1265,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1223
1265
  alt: string;
1224
1266
  width?: number | undefined;
1225
1267
  height?: number | undefined;
1268
+ fullscreen?: boolean | undefined;
1226
1269
  }, {
1227
1270
  type: "Image";
1228
1271
  name: string;
@@ -1230,6 +1273,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1230
1273
  alt: string;
1231
1274
  width?: number | undefined;
1232
1275
  height?: number | undefined;
1276
+ fullscreen?: boolean | undefined;
1233
1277
  }>, z.ZodEffects<z.ZodObject<{
1234
1278
  type: z.ZodLiteral<"VisualFraction">;
1235
1279
  name: z.ZodString;
@@ -1387,6 +1431,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1387
1431
  alt: string;
1388
1432
  width?: number | undefined;
1389
1433
  height?: number | undefined;
1434
+ fullscreen?: boolean | undefined;
1390
1435
  } | {
1391
1436
  type: "VisualFraction";
1392
1437
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -1466,6 +1511,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1466
1511
  alt: string;
1467
1512
  width?: number | undefined;
1468
1513
  height?: number | undefined;
1514
+ fullscreen?: boolean | undefined;
1469
1515
  } | {
1470
1516
  type: "VisualFraction";
1471
1517
  name: string;
@@ -1634,6 +1680,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1634
1680
  alt: z.ZodString;
1635
1681
  width: z.ZodOptional<z.ZodNumber>;
1636
1682
  height: z.ZodOptional<z.ZodNumber>;
1683
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
1637
1684
  }, "strip", z.ZodTypeAny, {
1638
1685
  type: "Image";
1639
1686
  name: string;
@@ -1641,6 +1688,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1641
1688
  alt: string;
1642
1689
  width?: number | undefined;
1643
1690
  height?: number | undefined;
1691
+ fullscreen?: boolean | undefined;
1644
1692
  }, {
1645
1693
  type: "Image";
1646
1694
  name: string;
@@ -1648,6 +1696,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1648
1696
  alt: string;
1649
1697
  width?: number | undefined;
1650
1698
  height?: number | undefined;
1699
+ fullscreen?: boolean | undefined;
1651
1700
  }>, z.ZodEffects<z.ZodObject<{
1652
1701
  type: z.ZodLiteral<"VisualFraction">;
1653
1702
  name: z.ZodString;
@@ -1805,6 +1854,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1805
1854
  alt: string;
1806
1855
  width?: number | undefined;
1807
1856
  height?: number | undefined;
1857
+ fullscreen?: boolean | undefined;
1808
1858
  } | {
1809
1859
  type: "VisualFraction";
1810
1860
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -1887,6 +1937,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1887
1937
  alt: string;
1888
1938
  width?: number | undefined;
1889
1939
  height?: number | undefined;
1940
+ fullscreen?: boolean | undefined;
1890
1941
  } | {
1891
1942
  type: "VisualFraction";
1892
1943
  name: string;
@@ -1972,6 +2023,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
1972
2023
  alt: string;
1973
2024
  width?: number | undefined;
1974
2025
  height?: number | undefined;
2026
+ fullscreen?: boolean | undefined;
1975
2027
  } | {
1976
2028
  type: "VisualFraction";
1977
2029
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -2058,6 +2110,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2058
2110
  alt: string;
2059
2111
  width?: number | undefined;
2060
2112
  height?: number | undefined;
2113
+ fullscreen?: boolean | undefined;
2061
2114
  } | {
2062
2115
  type: "VisualFraction";
2063
2116
  name: string;
@@ -2096,7 +2149,6 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2096
2149
  }>, "many">;
2097
2150
  }, "strip", z.ZodTypeAny, {
2098
2151
  type: "TableBlock";
2099
- cols: number;
2100
2152
  rows: {
2101
2153
  type: "TableRow";
2102
2154
  cells: {
@@ -2148,6 +2200,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2148
2200
  alt: string;
2149
2201
  width?: number | undefined;
2150
2202
  height?: number | undefined;
2203
+ fullscreen?: boolean | undefined;
2151
2204
  } | {
2152
2205
  type: "VisualFraction";
2153
2206
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -2184,9 +2237,9 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2184
2237
  }[];
2185
2238
  backgroundColor?: string | undefined;
2186
2239
  }[];
2240
+ cols: number;
2187
2241
  }, {
2188
2242
  type: "TableBlock";
2189
- cols: number;
2190
2243
  rows: {
2191
2244
  type: "TableRow";
2192
2245
  cells: {
@@ -2238,6 +2291,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2238
2291
  alt: string;
2239
2292
  width?: number | undefined;
2240
2293
  height?: number | undefined;
2294
+ fullscreen?: boolean | undefined;
2241
2295
  } | {
2242
2296
  type: "VisualFraction";
2243
2297
  name: string;
@@ -2274,19 +2328,20 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2274
2328
  }[];
2275
2329
  backgroundColor?: string | undefined;
2276
2330
  }[];
2331
+ cols: number;
2277
2332
  }>, z.ZodObject<{
2278
2333
  type: z.ZodLiteral<"RadioOptions">;
2279
2334
  name: z.ZodString;
2280
2335
  options: z.ZodArray<z.ZodString, "many">;
2281
2336
  answer: z.ZodString;
2282
2337
  }, "strip", z.ZodTypeAny, {
2283
- type: "RadioOptions";
2284
2338
  options: string[];
2339
+ type: "RadioOptions";
2285
2340
  name: string;
2286
2341
  answer: string;
2287
2342
  }, {
2288
- type: "RadioOptions";
2289
2343
  options: string[];
2344
+ type: "RadioOptions";
2290
2345
  name: string;
2291
2346
  answer: string;
2292
2347
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
@@ -2337,31 +2392,31 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2337
2392
  type: z.ZodLiteral<"NumberLineHighlight">;
2338
2393
  from: z.ZodNumber;
2339
2394
  to: z.ZodNumber;
2340
- color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
2395
+ color: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
2341
2396
  label: z.ZodOptional<z.ZodString>;
2342
2397
  }, "strip", z.ZodTypeAny, {
2343
2398
  type: "NumberLineHighlight";
2344
2399
  from: number;
2345
2400
  to: number;
2346
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
2401
+ color?: string | undefined;
2347
2402
  label?: string | undefined;
2348
2403
  }, {
2349
2404
  type: "NumberLineHighlight";
2350
2405
  from: number;
2351
2406
  to: number;
2352
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
2407
+ color?: string | undefined;
2353
2408
  label?: string | undefined;
2354
2409
  }>, {
2355
2410
  type: "NumberLineHighlight";
2356
2411
  from: number;
2357
2412
  to: number;
2358
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
2413
+ color?: string | undefined;
2359
2414
  label?: string | undefined;
2360
2415
  }, {
2361
2416
  type: "NumberLineHighlight";
2362
2417
  from: number;
2363
2418
  to: number;
2364
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
2419
+ color?: string | undefined;
2365
2420
  label?: string | undefined;
2366
2421
  }>, "many">>;
2367
2422
  cursors: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -2518,6 +2573,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2518
2573
  alt: z.ZodString;
2519
2574
  width: z.ZodOptional<z.ZodNumber>;
2520
2575
  height: z.ZodOptional<z.ZodNumber>;
2576
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
2521
2577
  }, "strip", z.ZodTypeAny, {
2522
2578
  type: "Image";
2523
2579
  name: string;
@@ -2525,6 +2581,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2525
2581
  alt: string;
2526
2582
  width?: number | undefined;
2527
2583
  height?: number | undefined;
2584
+ fullscreen?: boolean | undefined;
2528
2585
  }, {
2529
2586
  type: "Image";
2530
2587
  name: string;
@@ -2532,6 +2589,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2532
2589
  alt: string;
2533
2590
  width?: number | undefined;
2534
2591
  height?: number | undefined;
2592
+ fullscreen?: boolean | undefined;
2535
2593
  }>, z.ZodEffects<z.ZodObject<{
2536
2594
  type: z.ZodLiteral<"VisualFraction">;
2537
2595
  name: z.ZodString;
@@ -2689,6 +2747,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2689
2747
  alt: string;
2690
2748
  width?: number | undefined;
2691
2749
  height?: number | undefined;
2750
+ fullscreen?: boolean | undefined;
2692
2751
  } | {
2693
2752
  type: "VisualFraction";
2694
2753
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -2771,6 +2830,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2771
2830
  alt: string;
2772
2831
  width?: number | undefined;
2773
2832
  height?: number | undefined;
2833
+ fullscreen?: boolean | undefined;
2774
2834
  } | {
2775
2835
  type: "VisualFraction";
2776
2836
  name: string;
@@ -2853,6 +2913,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2853
2913
  alt: string;
2854
2914
  width?: number | undefined;
2855
2915
  height?: number | undefined;
2916
+ fullscreen?: boolean | undefined;
2856
2917
  } | {
2857
2918
  type: "VisualFraction";
2858
2919
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -2935,6 +2996,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
2935
2996
  alt: string;
2936
2997
  width?: number | undefined;
2937
2998
  height?: number | undefined;
2999
+ fullscreen?: boolean | undefined;
2938
3000
  } | {
2939
3001
  type: "VisualFraction";
2940
3002
  name: string;
@@ -3100,6 +3162,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3100
3162
  alt: z.ZodString;
3101
3163
  width: z.ZodOptional<z.ZodNumber>;
3102
3164
  height: z.ZodOptional<z.ZodNumber>;
3165
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
3103
3166
  }, "strip", z.ZodTypeAny, {
3104
3167
  type: "Image";
3105
3168
  name: string;
@@ -3107,6 +3170,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3107
3170
  alt: string;
3108
3171
  width?: number | undefined;
3109
3172
  height?: number | undefined;
3173
+ fullscreen?: boolean | undefined;
3110
3174
  }, {
3111
3175
  type: "Image";
3112
3176
  name: string;
@@ -3114,6 +3178,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3114
3178
  alt: string;
3115
3179
  width?: number | undefined;
3116
3180
  height?: number | undefined;
3181
+ fullscreen?: boolean | undefined;
3117
3182
  }>, z.ZodEffects<z.ZodObject<{
3118
3183
  type: z.ZodLiteral<"VisualFraction">;
3119
3184
  name: z.ZodString;
@@ -3272,6 +3337,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3272
3337
  alt: string;
3273
3338
  width?: number | undefined;
3274
3339
  height?: number | undefined;
3340
+ fullscreen?: boolean | undefined;
3275
3341
  } | {
3276
3342
  type: "VisualFraction";
3277
3343
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -3352,6 +3418,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3352
3418
  alt: string;
3353
3419
  width?: number | undefined;
3354
3420
  height?: number | undefined;
3421
+ fullscreen?: boolean | undefined;
3355
3422
  } | {
3356
3423
  type: "VisualFraction";
3357
3424
  name: string;
@@ -3438,6 +3505,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3438
3505
  alt: string;
3439
3506
  width?: number | undefined;
3440
3507
  height?: number | undefined;
3508
+ fullscreen?: boolean | undefined;
3441
3509
  } | {
3442
3510
  type: "VisualFraction";
3443
3511
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -3484,7 +3552,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3484
3552
  type: "NumberLineHighlight";
3485
3553
  from: number;
3486
3554
  to: number;
3487
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
3555
+ color?: string | undefined;
3488
3556
  label?: string | undefined;
3489
3557
  }[] | undefined;
3490
3558
  cursors?: {
@@ -3544,6 +3612,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3544
3612
  alt: string;
3545
3613
  width?: number | undefined;
3546
3614
  height?: number | undefined;
3615
+ fullscreen?: boolean | undefined;
3547
3616
  } | {
3548
3617
  type: "VisualFraction";
3549
3618
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -3633,6 +3702,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3633
3702
  alt: string;
3634
3703
  width?: number | undefined;
3635
3704
  height?: number | undefined;
3705
+ fullscreen?: boolean | undefined;
3636
3706
  } | {
3637
3707
  type: "VisualFraction";
3638
3708
  name: string;
@@ -3680,7 +3750,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3680
3750
  type: "NumberLineHighlight";
3681
3751
  from: number;
3682
3752
  to: number;
3683
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
3753
+ color?: string | undefined;
3684
3754
  label?: string | undefined;
3685
3755
  }[] | undefined;
3686
3756
  cursors?: {
@@ -3740,6 +3810,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3740
3810
  alt: string;
3741
3811
  width?: number | undefined;
3742
3812
  height?: number | undefined;
3813
+ fullscreen?: boolean | undefined;
3743
3814
  } | {
3744
3815
  type: "VisualFraction";
3745
3816
  name: string;
@@ -3830,6 +3901,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3830
3901
  alt: string;
3831
3902
  width?: number | undefined;
3832
3903
  height?: number | undefined;
3904
+ fullscreen?: boolean | undefined;
3833
3905
  } | {
3834
3906
  type: "VisualFraction";
3835
3907
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -3876,7 +3948,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3876
3948
  type: "NumberLineHighlight";
3877
3949
  from: number;
3878
3950
  to: number;
3879
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
3951
+ color?: string | undefined;
3880
3952
  label?: string | undefined;
3881
3953
  }[] | undefined;
3882
3954
  cursors?: {
@@ -3936,6 +4008,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
3936
4008
  alt: string;
3937
4009
  width?: number | undefined;
3938
4010
  height?: number | undefined;
4011
+ fullscreen?: boolean | undefined;
3939
4012
  } | {
3940
4013
  type: "VisualFraction";
3941
4014
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -4025,6 +4098,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4025
4098
  alt: string;
4026
4099
  width?: number | undefined;
4027
4100
  height?: number | undefined;
4101
+ fullscreen?: boolean | undefined;
4028
4102
  } | {
4029
4103
  type: "VisualFraction";
4030
4104
  name: string;
@@ -4072,7 +4146,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4072
4146
  type: "NumberLineHighlight";
4073
4147
  from: number;
4074
4148
  to: number;
4075
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
4149
+ color?: string | undefined;
4076
4150
  label?: string | undefined;
4077
4151
  }[] | undefined;
4078
4152
  cursors?: {
@@ -4132,6 +4206,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4132
4206
  alt: string;
4133
4207
  width?: number | undefined;
4134
4208
  height?: number | undefined;
4209
+ fullscreen?: boolean | undefined;
4135
4210
  } | {
4136
4211
  type: "VisualFraction";
4137
4212
  name: string;
@@ -4222,6 +4297,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4222
4297
  alt: string;
4223
4298
  width?: number | undefined;
4224
4299
  height?: number | undefined;
4300
+ fullscreen?: boolean | undefined;
4225
4301
  } | {
4226
4302
  type: "VisualFraction";
4227
4303
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -4268,7 +4344,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4268
4344
  type: "NumberLineHighlight";
4269
4345
  from: number;
4270
4346
  to: number;
4271
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
4347
+ color?: string | undefined;
4272
4348
  label?: string | undefined;
4273
4349
  }[] | undefined;
4274
4350
  cursors?: {
@@ -4328,6 +4404,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4328
4404
  alt: string;
4329
4405
  width?: number | undefined;
4330
4406
  height?: number | undefined;
4407
+ fullscreen?: boolean | undefined;
4331
4408
  } | {
4332
4409
  type: "VisualFraction";
4333
4410
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -4417,6 +4494,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4417
4494
  alt: string;
4418
4495
  width?: number | undefined;
4419
4496
  height?: number | undefined;
4497
+ fullscreen?: boolean | undefined;
4420
4498
  } | {
4421
4499
  type: "VisualFraction";
4422
4500
  name: string;
@@ -4464,7 +4542,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4464
4542
  type: "NumberLineHighlight";
4465
4543
  from: number;
4466
4544
  to: number;
4467
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
4545
+ color?: string | undefined;
4468
4546
  label?: string | undefined;
4469
4547
  }[] | undefined;
4470
4548
  cursors?: {
@@ -4524,6 +4602,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4524
4602
  alt: string;
4525
4603
  width?: number | undefined;
4526
4604
  height?: number | undefined;
4605
+ fullscreen?: boolean | undefined;
4527
4606
  } | {
4528
4607
  type: "VisualFraction";
4529
4608
  name: string;
@@ -4669,6 +4748,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4669
4748
  alt: z.ZodString;
4670
4749
  width: z.ZodOptional<z.ZodNumber>;
4671
4750
  height: z.ZodOptional<z.ZodNumber>;
4751
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
4672
4752
  }, "strip", z.ZodTypeAny, {
4673
4753
  type: "Image";
4674
4754
  name: string;
@@ -4676,6 +4756,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4676
4756
  alt: string;
4677
4757
  width?: number | undefined;
4678
4758
  height?: number | undefined;
4759
+ fullscreen?: boolean | undefined;
4679
4760
  }, {
4680
4761
  type: "Image";
4681
4762
  name: string;
@@ -4683,6 +4764,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4683
4764
  alt: string;
4684
4765
  width?: number | undefined;
4685
4766
  height?: number | undefined;
4767
+ fullscreen?: boolean | undefined;
4686
4768
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
4687
4769
  type: z.ZodLiteral<"VisualFraction">;
4688
4770
  name: z.ZodString;
@@ -4789,6 +4871,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4789
4871
  alt: string;
4790
4872
  width?: number | undefined;
4791
4873
  height?: number | undefined;
4874
+ fullscreen?: boolean | undefined;
4792
4875
  } | {
4793
4876
  type: "VisualFraction";
4794
4877
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -4836,6 +4919,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4836
4919
  alt: string;
4837
4920
  width?: number | undefined;
4838
4921
  height?: number | undefined;
4922
+ fullscreen?: boolean | undefined;
4839
4923
  } | {
4840
4924
  type: "VisualFraction";
4841
4925
  name: string;
@@ -4850,6 +4934,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4850
4934
  itemId: string;
4851
4935
  }>, "many">;
4852
4936
  }, "strip", z.ZodTypeAny, {
4937
+ type: "MatcherRow";
4853
4938
  items: {
4854
4939
  type: "MatcherItem";
4855
4940
  inlines: ({
@@ -4885,6 +4970,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4885
4970
  alt: string;
4886
4971
  width?: number | undefined;
4887
4972
  height?: number | undefined;
4973
+ fullscreen?: boolean | undefined;
4888
4974
  } | {
4889
4975
  type: "VisualFraction";
4890
4976
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -4898,8 +4984,8 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4898
4984
  })[];
4899
4985
  itemId: string;
4900
4986
  }[];
4901
- type: "MatcherRow";
4902
4987
  }, {
4988
+ type: "MatcherRow";
4903
4989
  items: {
4904
4990
  type: "MatcherItem";
4905
4991
  inlines: ({
@@ -4935,6 +5021,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4935
5021
  alt: string;
4936
5022
  width?: number | undefined;
4937
5023
  height?: number | undefined;
5024
+ fullscreen?: boolean | undefined;
4938
5025
  } | {
4939
5026
  type: "VisualFraction";
4940
5027
  name: string;
@@ -4948,13 +5035,13 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4948
5035
  })[];
4949
5036
  itemId: string;
4950
5037
  }[];
4951
- type: "MatcherRow";
4952
5038
  }>, "many">;
4953
5039
  answers: z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">;
4954
5040
  }, "strip", z.ZodTypeAny, {
4955
5041
  type: "MatcherBlock";
4956
5042
  name: string;
4957
5043
  rows: {
5044
+ type: "MatcherRow";
4958
5045
  items: {
4959
5046
  type: "MatcherItem";
4960
5047
  inlines: ({
@@ -4990,6 +5077,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
4990
5077
  alt: string;
4991
5078
  width?: number | undefined;
4992
5079
  height?: number | undefined;
5080
+ fullscreen?: boolean | undefined;
4993
5081
  } | {
4994
5082
  type: "VisualFraction";
4995
5083
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -5003,7 +5091,6 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5003
5091
  })[];
5004
5092
  itemId: string;
5005
5093
  }[];
5006
- type: "MatcherRow";
5007
5094
  }[];
5008
5095
  answers: string[][];
5009
5096
  colors?: string[] | undefined;
@@ -5011,6 +5098,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5011
5098
  type: "MatcherBlock";
5012
5099
  name: string;
5013
5100
  rows: {
5101
+ type: "MatcherRow";
5014
5102
  items: {
5015
5103
  type: "MatcherItem";
5016
5104
  inlines: ({
@@ -5046,6 +5134,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5046
5134
  alt: string;
5047
5135
  width?: number | undefined;
5048
5136
  height?: number | undefined;
5137
+ fullscreen?: boolean | undefined;
5049
5138
  } | {
5050
5139
  type: "VisualFraction";
5051
5140
  name: string;
@@ -5059,7 +5148,6 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5059
5148
  })[];
5060
5149
  itemId: string;
5061
5150
  }[];
5062
- type: "MatcherRow";
5063
5151
  }[];
5064
5152
  answers: string[][];
5065
5153
  colors?: string[] | undefined;
@@ -5067,6 +5155,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5067
5155
  type: "MatcherBlock";
5068
5156
  name: string;
5069
5157
  rows: {
5158
+ type: "MatcherRow";
5070
5159
  items: {
5071
5160
  type: "MatcherItem";
5072
5161
  inlines: ({
@@ -5102,6 +5191,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5102
5191
  alt: string;
5103
5192
  width?: number | undefined;
5104
5193
  height?: number | undefined;
5194
+ fullscreen?: boolean | undefined;
5105
5195
  } | {
5106
5196
  type: "VisualFraction";
5107
5197
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -5115,7 +5205,6 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5115
5205
  })[];
5116
5206
  itemId: string;
5117
5207
  }[];
5118
- type: "MatcherRow";
5119
5208
  }[];
5120
5209
  answers: string[][];
5121
5210
  colors?: string[] | undefined;
@@ -5123,6 +5212,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5123
5212
  type: "MatcherBlock";
5124
5213
  name: string;
5125
5214
  rows: {
5215
+ type: "MatcherRow";
5126
5216
  items: {
5127
5217
  type: "MatcherItem";
5128
5218
  inlines: ({
@@ -5158,6 +5248,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5158
5248
  alt: string;
5159
5249
  width?: number | undefined;
5160
5250
  height?: number | undefined;
5251
+ fullscreen?: boolean | undefined;
5161
5252
  } | {
5162
5253
  type: "VisualFraction";
5163
5254
  name: string;
@@ -5171,7 +5262,6 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5171
5262
  })[];
5172
5263
  itemId: string;
5173
5264
  }[];
5174
- type: "MatcherRow";
5175
5265
  }[];
5176
5266
  answers: string[][];
5177
5267
  colors?: string[] | undefined;
@@ -5282,6 +5372,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5282
5372
  alt: z.ZodString;
5283
5373
  width: z.ZodOptional<z.ZodNumber>;
5284
5374
  height: z.ZodOptional<z.ZodNumber>;
5375
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
5285
5376
  }, "strip", z.ZodTypeAny, {
5286
5377
  type: "Image";
5287
5378
  name: string;
@@ -5289,6 +5380,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5289
5380
  alt: string;
5290
5381
  width?: number | undefined;
5291
5382
  height?: number | undefined;
5383
+ fullscreen?: boolean | undefined;
5292
5384
  }, {
5293
5385
  type: "Image";
5294
5386
  name: string;
@@ -5296,6 +5388,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5296
5388
  alt: string;
5297
5389
  width?: number | undefined;
5298
5390
  height?: number | undefined;
5391
+ fullscreen?: boolean | undefined;
5299
5392
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
5300
5393
  type: z.ZodLiteral<"VisualFraction">;
5301
5394
  name: z.ZodString;
@@ -5402,6 +5495,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5402
5495
  alt: string;
5403
5496
  width?: number | undefined;
5404
5497
  height?: number | undefined;
5498
+ fullscreen?: boolean | undefined;
5405
5499
  } | {
5406
5500
  type: "VisualFraction";
5407
5501
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -5449,6 +5543,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5449
5543
  alt: string;
5450
5544
  width?: number | undefined;
5451
5545
  height?: number | undefined;
5546
+ fullscreen?: boolean | undefined;
5452
5547
  } | {
5453
5548
  type: "VisualFraction";
5454
5549
  name: string;
@@ -5566,6 +5661,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5566
5661
  alt: z.ZodString;
5567
5662
  width: z.ZodOptional<z.ZodNumber>;
5568
5663
  height: z.ZodOptional<z.ZodNumber>;
5664
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
5569
5665
  }, "strip", z.ZodTypeAny, {
5570
5666
  type: "Image";
5571
5667
  name: string;
@@ -5573,6 +5669,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5573
5669
  alt: string;
5574
5670
  width?: number | undefined;
5575
5671
  height?: number | undefined;
5672
+ fullscreen?: boolean | undefined;
5576
5673
  }, {
5577
5674
  type: "Image";
5578
5675
  name: string;
@@ -5580,6 +5677,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5580
5677
  alt: string;
5581
5678
  width?: number | undefined;
5582
5679
  height?: number | undefined;
5680
+ fullscreen?: boolean | undefined;
5583
5681
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
5584
5682
  type: z.ZodLiteral<"VisualFraction">;
5585
5683
  name: z.ZodString;
@@ -5686,6 +5784,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5686
5784
  alt: string;
5687
5785
  width?: number | undefined;
5688
5786
  height?: number | undefined;
5787
+ fullscreen?: boolean | undefined;
5689
5788
  } | {
5690
5789
  type: "VisualFraction";
5691
5790
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -5733,6 +5832,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5733
5832
  alt: string;
5734
5833
  width?: number | undefined;
5735
5834
  height?: number | undefined;
5835
+ fullscreen?: boolean | undefined;
5736
5836
  } | {
5737
5837
  type: "VisualFraction";
5738
5838
  name: string;
@@ -5786,6 +5886,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5786
5886
  alt: string;
5787
5887
  width?: number | undefined;
5788
5888
  height?: number | undefined;
5889
+ fullscreen?: boolean | undefined;
5789
5890
  } | {
5790
5891
  type: "VisualFraction";
5791
5892
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -5834,6 +5935,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5834
5935
  alt: string;
5835
5936
  width?: number | undefined;
5836
5937
  height?: number | undefined;
5938
+ fullscreen?: boolean | undefined;
5837
5939
  } | {
5838
5940
  type: "VisualFraction";
5839
5941
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -5886,6 +5988,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5886
5988
  alt: string;
5887
5989
  width?: number | undefined;
5888
5990
  height?: number | undefined;
5991
+ fullscreen?: boolean | undefined;
5889
5992
  } | {
5890
5993
  type: "VisualFraction";
5891
5994
  name: string;
@@ -5934,6 +6037,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5934
6037
  alt: string;
5935
6038
  width?: number | undefined;
5936
6039
  height?: number | undefined;
6040
+ fullscreen?: boolean | undefined;
5937
6041
  } | {
5938
6042
  type: "VisualFraction";
5939
6043
  name: string;
@@ -5986,6 +6090,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
5986
6090
  alt: string;
5987
6091
  width?: number | undefined;
5988
6092
  height?: number | undefined;
6093
+ fullscreen?: boolean | undefined;
5989
6094
  } | {
5990
6095
  type: "VisualFraction";
5991
6096
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -6034,6 +6139,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
6034
6139
  alt: string;
6035
6140
  width?: number | undefined;
6036
6141
  height?: number | undefined;
6142
+ fullscreen?: boolean | undefined;
6037
6143
  } | {
6038
6144
  type: "VisualFraction";
6039
6145
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -6086,6 +6192,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
6086
6192
  alt: string;
6087
6193
  width?: number | undefined;
6088
6194
  height?: number | undefined;
6195
+ fullscreen?: boolean | undefined;
6089
6196
  } | {
6090
6197
  type: "VisualFraction";
6091
6198
  name: string;
@@ -6134,6 +6241,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
6134
6241
  alt: string;
6135
6242
  width?: number | undefined;
6136
6243
  height?: number | undefined;
6244
+ fullscreen?: boolean | undefined;
6137
6245
  } | {
6138
6246
  type: "VisualFraction";
6139
6247
  name: string;
@@ -6479,6 +6587,7 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
6479
6587
  type: "VopSeparator";
6480
6588
  }>]>, "many">;
6481
6589
  }, "strip", z.ZodTypeAny, {
6590
+ type: "VerticalOperationBlock";
6482
6591
  items: ({
6483
6592
  type: "VopRow";
6484
6593
  cells: ({
@@ -6549,9 +6658,9 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
6549
6658
  } | {
6550
6659
  type: "VopSeparator";
6551
6660
  })[];
6552
- type: "VerticalOperationBlock";
6553
6661
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
6554
6662
  }, {
6663
+ type: "VerticalOperationBlock";
6555
6664
  items: ({
6556
6665
  type: "VopRow";
6557
6666
  cells: ({
@@ -6622,8 +6731,47 @@ export declare const ContentBlockSchema: z.ZodUnion<[z.ZodObject<{
6622
6731
  } | {
6623
6732
  type: "VopSeparator";
6624
6733
  })[];
6625
- type: "VerticalOperationBlock";
6626
6734
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
6735
+ }>, z.ZodEffects<z.ZodObject<{
6736
+ type: z.ZodLiteral<"GridSymmetryBlock">;
6737
+ rows: z.ZodNumber;
6738
+ cols: z.ZodNumber;
6739
+ axis: z.ZodEnum<["vertical", "horizontal"]>;
6740
+ interactiveArea: z.ZodEnum<["left", "right", "top", "bottom"]>;
6741
+ cellSize: z.ZodDefault<z.ZodNumber>;
6742
+ cells: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
6743
+ }, "strip", z.ZodTypeAny, {
6744
+ axis: "horizontal" | "vertical";
6745
+ type: "GridSymmetryBlock";
6746
+ rows: number;
6747
+ cols: number;
6748
+ interactiveArea: "left" | "right" | "top" | "bottom";
6749
+ cellSize: number;
6750
+ cells: [number, number][];
6751
+ }, {
6752
+ axis: "horizontal" | "vertical";
6753
+ type: "GridSymmetryBlock";
6754
+ rows: number;
6755
+ cols: number;
6756
+ interactiveArea: "left" | "right" | "top" | "bottom";
6757
+ cells: [number, number][];
6758
+ cellSize?: number | undefined;
6759
+ }>, {
6760
+ axis: "horizontal" | "vertical";
6761
+ type: "GridSymmetryBlock";
6762
+ rows: number;
6763
+ cols: number;
6764
+ interactiveArea: "left" | "right" | "top" | "bottom";
6765
+ cellSize: number;
6766
+ cells: [number, number][];
6767
+ }, {
6768
+ axis: "horizontal" | "vertical";
6769
+ type: "GridSymmetryBlock";
6770
+ rows: number;
6771
+ cols: number;
6772
+ interactiveArea: "left" | "right" | "top" | "bottom";
6773
+ cells: [number, number][];
6774
+ cellSize?: number | undefined;
6627
6775
  }>]>;
6628
6776
 
6629
6777
  /**
@@ -6677,6 +6825,8 @@ export declare function createFraction(name: string, options?: {
6677
6825
  */
6678
6826
  export declare function createFreeText(value: string): FreeTextInline;
6679
6827
 
6828
+ export declare function createGridSymmetryBlock(rows: number, cols: number, axis: GridSymmetryAxis, interactiveArea: GridSymmetryInteractiveArea, cells: GridCell[], cellSize?: number): GridSymmetryBlock;
6829
+
6680
6830
  /**
6681
6831
  * Create a highlighted text inline element
6682
6832
  */
@@ -6688,6 +6838,7 @@ export declare function createHighlightedText(value: string, highlight?: [number
6688
6838
  export declare function createImage(name: string, src: string, alt: string, options?: {
6689
6839
  width?: number;
6690
6840
  height?: number;
6841
+ fullscreen?: boolean;
6691
6842
  }): ImageInline;
6692
6843
 
6693
6844
  /**
@@ -6898,6 +7049,7 @@ export declare const DisplayInlineNodeSchema: z.ZodUnion<[z.ZodObject<{
6898
7049
  alt: z.ZodString;
6899
7050
  width: z.ZodOptional<z.ZodNumber>;
6900
7051
  height: z.ZodOptional<z.ZodNumber>;
7052
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
6901
7053
  }, "strip", z.ZodTypeAny, {
6902
7054
  type: "Image";
6903
7055
  name: string;
@@ -6905,6 +7057,7 @@ export declare const DisplayInlineNodeSchema: z.ZodUnion<[z.ZodObject<{
6905
7057
  alt: string;
6906
7058
  width?: number | undefined;
6907
7059
  height?: number | undefined;
7060
+ fullscreen?: boolean | undefined;
6908
7061
  }, {
6909
7062
  type: "Image";
6910
7063
  name: string;
@@ -6912,6 +7065,7 @@ export declare const DisplayInlineNodeSchema: z.ZodUnion<[z.ZodObject<{
6912
7065
  alt: string;
6913
7066
  width?: number | undefined;
6914
7067
  height?: number | undefined;
7068
+ fullscreen?: boolean | undefined;
6915
7069
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
6916
7070
  type: z.ZodLiteral<"VisualFraction">;
6917
7071
  name: z.ZodString;
@@ -6990,11 +7144,11 @@ export declare const DragOptionsJSONSchema: z.ZodObject<{
6990
7144
  type: z.ZodLiteral<"drag-options">;
6991
7145
  options: z.ZodArray<z.ZodString, "many">;
6992
7146
  }, "strip", z.ZodTypeAny, {
6993
- type: "drag-options";
6994
7147
  options: string[];
6995
- }, {
6996
7148
  type: "drag-options";
7149
+ }, {
6997
7150
  options: string[];
7151
+ type: "drag-options";
6998
7152
  }>;
6999
7153
 
7000
7154
  export declare type DragOptionsTool = z.infer<typeof DragOptionsToolSchema>;
@@ -7017,11 +7171,11 @@ export declare const DragOptionsToolSchema: z.ZodObject<{
7017
7171
  type: z.ZodLiteral<"DragOptions">;
7018
7172
  options: z.ZodArray<z.ZodString, "many">;
7019
7173
  }, "strip", z.ZodTypeAny, {
7020
- type: "DragOptions";
7021
7174
  options: string[];
7022
- }, {
7023
7175
  type: "DragOptions";
7176
+ }, {
7024
7177
  options: string[];
7178
+ type: "DragOptions";
7025
7179
  }>;
7026
7180
 
7027
7181
  /**
@@ -7218,6 +7372,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7218
7372
  alt: z.ZodString;
7219
7373
  width: z.ZodOptional<z.ZodNumber>;
7220
7374
  height: z.ZodOptional<z.ZodNumber>;
7375
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
7221
7376
  }, "strip", z.ZodTypeAny, {
7222
7377
  type: "Image";
7223
7378
  name: string;
@@ -7225,6 +7380,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7225
7380
  alt: string;
7226
7381
  width?: number | undefined;
7227
7382
  height?: number | undefined;
7383
+ fullscreen?: boolean | undefined;
7228
7384
  }, {
7229
7385
  type: "Image";
7230
7386
  name: string;
@@ -7232,6 +7388,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7232
7388
  alt: string;
7233
7389
  width?: number | undefined;
7234
7390
  height?: number | undefined;
7391
+ fullscreen?: boolean | undefined;
7235
7392
  }>, z.ZodEffects<z.ZodObject<{
7236
7393
  type: z.ZodLiteral<"VisualFraction">;
7237
7394
  name: z.ZodString;
@@ -7389,6 +7546,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7389
7546
  alt: string;
7390
7547
  width?: number | undefined;
7391
7548
  height?: number | undefined;
7549
+ fullscreen?: boolean | undefined;
7392
7550
  } | {
7393
7551
  type: "VisualFraction";
7394
7552
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -7468,6 +7626,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7468
7626
  alt: string;
7469
7627
  width?: number | undefined;
7470
7628
  height?: number | undefined;
7629
+ fullscreen?: boolean | undefined;
7471
7630
  } | {
7472
7631
  type: "VisualFraction";
7473
7632
  name: string;
@@ -7636,6 +7795,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7636
7795
  alt: z.ZodString;
7637
7796
  width: z.ZodOptional<z.ZodNumber>;
7638
7797
  height: z.ZodOptional<z.ZodNumber>;
7798
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
7639
7799
  }, "strip", z.ZodTypeAny, {
7640
7800
  type: "Image";
7641
7801
  name: string;
@@ -7643,6 +7803,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7643
7803
  alt: string;
7644
7804
  width?: number | undefined;
7645
7805
  height?: number | undefined;
7806
+ fullscreen?: boolean | undefined;
7646
7807
  }, {
7647
7808
  type: "Image";
7648
7809
  name: string;
@@ -7650,6 +7811,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7650
7811
  alt: string;
7651
7812
  width?: number | undefined;
7652
7813
  height?: number | undefined;
7814
+ fullscreen?: boolean | undefined;
7653
7815
  }>, z.ZodEffects<z.ZodObject<{
7654
7816
  type: z.ZodLiteral<"VisualFraction">;
7655
7817
  name: z.ZodString;
@@ -7807,6 +7969,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7807
7969
  alt: string;
7808
7970
  width?: number | undefined;
7809
7971
  height?: number | undefined;
7972
+ fullscreen?: boolean | undefined;
7810
7973
  } | {
7811
7974
  type: "VisualFraction";
7812
7975
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -7889,6 +8052,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7889
8052
  alt: string;
7890
8053
  width?: number | undefined;
7891
8054
  height?: number | undefined;
8055
+ fullscreen?: boolean | undefined;
7892
8056
  } | {
7893
8057
  type: "VisualFraction";
7894
8058
  name: string;
@@ -7974,6 +8138,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
7974
8138
  alt: string;
7975
8139
  width?: number | undefined;
7976
8140
  height?: number | undefined;
8141
+ fullscreen?: boolean | undefined;
7977
8142
  } | {
7978
8143
  type: "VisualFraction";
7979
8144
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -8060,6 +8225,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8060
8225
  alt: string;
8061
8226
  width?: number | undefined;
8062
8227
  height?: number | undefined;
8228
+ fullscreen?: boolean | undefined;
8063
8229
  } | {
8064
8230
  type: "VisualFraction";
8065
8231
  name: string;
@@ -8098,7 +8264,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8098
8264
  }>, "many">;
8099
8265
  }, "strip", z.ZodTypeAny, {
8100
8266
  type: "TableBlock";
8101
- cols: number;
8102
8267
  rows: {
8103
8268
  type: "TableRow";
8104
8269
  cells: {
@@ -8150,6 +8315,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8150
8315
  alt: string;
8151
8316
  width?: number | undefined;
8152
8317
  height?: number | undefined;
8318
+ fullscreen?: boolean | undefined;
8153
8319
  } | {
8154
8320
  type: "VisualFraction";
8155
8321
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -8186,9 +8352,9 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8186
8352
  }[];
8187
8353
  backgroundColor?: string | undefined;
8188
8354
  }[];
8355
+ cols: number;
8189
8356
  }, {
8190
8357
  type: "TableBlock";
8191
- cols: number;
8192
8358
  rows: {
8193
8359
  type: "TableRow";
8194
8360
  cells: {
@@ -8240,6 +8406,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8240
8406
  alt: string;
8241
8407
  width?: number | undefined;
8242
8408
  height?: number | undefined;
8409
+ fullscreen?: boolean | undefined;
8243
8410
  } | {
8244
8411
  type: "VisualFraction";
8245
8412
  name: string;
@@ -8276,19 +8443,20 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8276
8443
  }[];
8277
8444
  backgroundColor?: string | undefined;
8278
8445
  }[];
8446
+ cols: number;
8279
8447
  }>, z.ZodObject<{
8280
8448
  type: z.ZodLiteral<"RadioOptions">;
8281
8449
  name: z.ZodString;
8282
8450
  options: z.ZodArray<z.ZodString, "many">;
8283
8451
  answer: z.ZodString;
8284
8452
  }, "strip", z.ZodTypeAny, {
8285
- type: "RadioOptions";
8286
8453
  options: string[];
8454
+ type: "RadioOptions";
8287
8455
  name: string;
8288
8456
  answer: string;
8289
8457
  }, {
8290
- type: "RadioOptions";
8291
8458
  options: string[];
8459
+ type: "RadioOptions";
8292
8460
  name: string;
8293
8461
  answer: string;
8294
8462
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
@@ -8339,31 +8507,31 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8339
8507
  type: z.ZodLiteral<"NumberLineHighlight">;
8340
8508
  from: z.ZodNumber;
8341
8509
  to: z.ZodNumber;
8342
- color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
8510
+ color: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
8343
8511
  label: z.ZodOptional<z.ZodString>;
8344
8512
  }, "strip", z.ZodTypeAny, {
8345
8513
  type: "NumberLineHighlight";
8346
8514
  from: number;
8347
8515
  to: number;
8348
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
8516
+ color?: string | undefined;
8349
8517
  label?: string | undefined;
8350
8518
  }, {
8351
8519
  type: "NumberLineHighlight";
8352
8520
  from: number;
8353
8521
  to: number;
8354
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
8522
+ color?: string | undefined;
8355
8523
  label?: string | undefined;
8356
8524
  }>, {
8357
8525
  type: "NumberLineHighlight";
8358
8526
  from: number;
8359
8527
  to: number;
8360
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
8528
+ color?: string | undefined;
8361
8529
  label?: string | undefined;
8362
8530
  }, {
8363
8531
  type: "NumberLineHighlight";
8364
8532
  from: number;
8365
8533
  to: number;
8366
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
8534
+ color?: string | undefined;
8367
8535
  label?: string | undefined;
8368
8536
  }>, "many">>;
8369
8537
  cursors: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -8520,6 +8688,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8520
8688
  alt: z.ZodString;
8521
8689
  width: z.ZodOptional<z.ZodNumber>;
8522
8690
  height: z.ZodOptional<z.ZodNumber>;
8691
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
8523
8692
  }, "strip", z.ZodTypeAny, {
8524
8693
  type: "Image";
8525
8694
  name: string;
@@ -8527,6 +8696,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8527
8696
  alt: string;
8528
8697
  width?: number | undefined;
8529
8698
  height?: number | undefined;
8699
+ fullscreen?: boolean | undefined;
8530
8700
  }, {
8531
8701
  type: "Image";
8532
8702
  name: string;
@@ -8534,6 +8704,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8534
8704
  alt: string;
8535
8705
  width?: number | undefined;
8536
8706
  height?: number | undefined;
8707
+ fullscreen?: boolean | undefined;
8537
8708
  }>, z.ZodEffects<z.ZodObject<{
8538
8709
  type: z.ZodLiteral<"VisualFraction">;
8539
8710
  name: z.ZodString;
@@ -8691,6 +8862,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8691
8862
  alt: string;
8692
8863
  width?: number | undefined;
8693
8864
  height?: number | undefined;
8865
+ fullscreen?: boolean | undefined;
8694
8866
  } | {
8695
8867
  type: "VisualFraction";
8696
8868
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -8773,6 +8945,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8773
8945
  alt: string;
8774
8946
  width?: number | undefined;
8775
8947
  height?: number | undefined;
8948
+ fullscreen?: boolean | undefined;
8776
8949
  } | {
8777
8950
  type: "VisualFraction";
8778
8951
  name: string;
@@ -8855,6 +9028,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8855
9028
  alt: string;
8856
9029
  width?: number | undefined;
8857
9030
  height?: number | undefined;
9031
+ fullscreen?: boolean | undefined;
8858
9032
  } | {
8859
9033
  type: "VisualFraction";
8860
9034
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -8937,6 +9111,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
8937
9111
  alt: string;
8938
9112
  width?: number | undefined;
8939
9113
  height?: number | undefined;
9114
+ fullscreen?: boolean | undefined;
8940
9115
  } | {
8941
9116
  type: "VisualFraction";
8942
9117
  name: string;
@@ -9102,6 +9277,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9102
9277
  alt: z.ZodString;
9103
9278
  width: z.ZodOptional<z.ZodNumber>;
9104
9279
  height: z.ZodOptional<z.ZodNumber>;
9280
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
9105
9281
  }, "strip", z.ZodTypeAny, {
9106
9282
  type: "Image";
9107
9283
  name: string;
@@ -9109,6 +9285,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9109
9285
  alt: string;
9110
9286
  width?: number | undefined;
9111
9287
  height?: number | undefined;
9288
+ fullscreen?: boolean | undefined;
9112
9289
  }, {
9113
9290
  type: "Image";
9114
9291
  name: string;
@@ -9116,6 +9293,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9116
9293
  alt: string;
9117
9294
  width?: number | undefined;
9118
9295
  height?: number | undefined;
9296
+ fullscreen?: boolean | undefined;
9119
9297
  }>, z.ZodEffects<z.ZodObject<{
9120
9298
  type: z.ZodLiteral<"VisualFraction">;
9121
9299
  name: z.ZodString;
@@ -9274,6 +9452,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9274
9452
  alt: string;
9275
9453
  width?: number | undefined;
9276
9454
  height?: number | undefined;
9455
+ fullscreen?: boolean | undefined;
9277
9456
  } | {
9278
9457
  type: "VisualFraction";
9279
9458
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -9354,6 +9533,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9354
9533
  alt: string;
9355
9534
  width?: number | undefined;
9356
9535
  height?: number | undefined;
9536
+ fullscreen?: boolean | undefined;
9357
9537
  } | {
9358
9538
  type: "VisualFraction";
9359
9539
  name: string;
@@ -9440,6 +9620,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9440
9620
  alt: string;
9441
9621
  width?: number | undefined;
9442
9622
  height?: number | undefined;
9623
+ fullscreen?: boolean | undefined;
9443
9624
  } | {
9444
9625
  type: "VisualFraction";
9445
9626
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -9486,7 +9667,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9486
9667
  type: "NumberLineHighlight";
9487
9668
  from: number;
9488
9669
  to: number;
9489
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
9670
+ color?: string | undefined;
9490
9671
  label?: string | undefined;
9491
9672
  }[] | undefined;
9492
9673
  cursors?: {
@@ -9546,6 +9727,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9546
9727
  alt: string;
9547
9728
  width?: number | undefined;
9548
9729
  height?: number | undefined;
9730
+ fullscreen?: boolean | undefined;
9549
9731
  } | {
9550
9732
  type: "VisualFraction";
9551
9733
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -9635,6 +9817,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9635
9817
  alt: string;
9636
9818
  width?: number | undefined;
9637
9819
  height?: number | undefined;
9820
+ fullscreen?: boolean | undefined;
9638
9821
  } | {
9639
9822
  type: "VisualFraction";
9640
9823
  name: string;
@@ -9682,7 +9865,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9682
9865
  type: "NumberLineHighlight";
9683
9866
  from: number;
9684
9867
  to: number;
9685
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
9868
+ color?: string | undefined;
9686
9869
  label?: string | undefined;
9687
9870
  }[] | undefined;
9688
9871
  cursors?: {
@@ -9742,6 +9925,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9742
9925
  alt: string;
9743
9926
  width?: number | undefined;
9744
9927
  height?: number | undefined;
9928
+ fullscreen?: boolean | undefined;
9745
9929
  } | {
9746
9930
  type: "VisualFraction";
9747
9931
  name: string;
@@ -9832,6 +10016,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9832
10016
  alt: string;
9833
10017
  width?: number | undefined;
9834
10018
  height?: number | undefined;
10019
+ fullscreen?: boolean | undefined;
9835
10020
  } | {
9836
10021
  type: "VisualFraction";
9837
10022
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -9878,7 +10063,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9878
10063
  type: "NumberLineHighlight";
9879
10064
  from: number;
9880
10065
  to: number;
9881
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
10066
+ color?: string | undefined;
9882
10067
  label?: string | undefined;
9883
10068
  }[] | undefined;
9884
10069
  cursors?: {
@@ -9938,6 +10123,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
9938
10123
  alt: string;
9939
10124
  width?: number | undefined;
9940
10125
  height?: number | undefined;
10126
+ fullscreen?: boolean | undefined;
9941
10127
  } | {
9942
10128
  type: "VisualFraction";
9943
10129
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -10027,6 +10213,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10027
10213
  alt: string;
10028
10214
  width?: number | undefined;
10029
10215
  height?: number | undefined;
10216
+ fullscreen?: boolean | undefined;
10030
10217
  } | {
10031
10218
  type: "VisualFraction";
10032
10219
  name: string;
@@ -10074,7 +10261,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10074
10261
  type: "NumberLineHighlight";
10075
10262
  from: number;
10076
10263
  to: number;
10077
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
10264
+ color?: string | undefined;
10078
10265
  label?: string | undefined;
10079
10266
  }[] | undefined;
10080
10267
  cursors?: {
@@ -10134,6 +10321,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10134
10321
  alt: string;
10135
10322
  width?: number | undefined;
10136
10323
  height?: number | undefined;
10324
+ fullscreen?: boolean | undefined;
10137
10325
  } | {
10138
10326
  type: "VisualFraction";
10139
10327
  name: string;
@@ -10224,6 +10412,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10224
10412
  alt: string;
10225
10413
  width?: number | undefined;
10226
10414
  height?: number | undefined;
10415
+ fullscreen?: boolean | undefined;
10227
10416
  } | {
10228
10417
  type: "VisualFraction";
10229
10418
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -10270,7 +10459,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10270
10459
  type: "NumberLineHighlight";
10271
10460
  from: number;
10272
10461
  to: number;
10273
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
10462
+ color?: string | undefined;
10274
10463
  label?: string | undefined;
10275
10464
  }[] | undefined;
10276
10465
  cursors?: {
@@ -10330,6 +10519,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10330
10519
  alt: string;
10331
10520
  width?: number | undefined;
10332
10521
  height?: number | undefined;
10522
+ fullscreen?: boolean | undefined;
10333
10523
  } | {
10334
10524
  type: "VisualFraction";
10335
10525
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -10419,6 +10609,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10419
10609
  alt: string;
10420
10610
  width?: number | undefined;
10421
10611
  height?: number | undefined;
10612
+ fullscreen?: boolean | undefined;
10422
10613
  } | {
10423
10614
  type: "VisualFraction";
10424
10615
  name: string;
@@ -10466,7 +10657,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10466
10657
  type: "NumberLineHighlight";
10467
10658
  from: number;
10468
10659
  to: number;
10469
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
10660
+ color?: string | undefined;
10470
10661
  label?: string | undefined;
10471
10662
  }[] | undefined;
10472
10663
  cursors?: {
@@ -10526,6 +10717,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10526
10717
  alt: string;
10527
10718
  width?: number | undefined;
10528
10719
  height?: number | undefined;
10720
+ fullscreen?: boolean | undefined;
10529
10721
  } | {
10530
10722
  type: "VisualFraction";
10531
10723
  name: string;
@@ -10671,6 +10863,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10671
10863
  alt: z.ZodString;
10672
10864
  width: z.ZodOptional<z.ZodNumber>;
10673
10865
  height: z.ZodOptional<z.ZodNumber>;
10866
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
10674
10867
  }, "strip", z.ZodTypeAny, {
10675
10868
  type: "Image";
10676
10869
  name: string;
@@ -10678,6 +10871,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10678
10871
  alt: string;
10679
10872
  width?: number | undefined;
10680
10873
  height?: number | undefined;
10874
+ fullscreen?: boolean | undefined;
10681
10875
  }, {
10682
10876
  type: "Image";
10683
10877
  name: string;
@@ -10685,6 +10879,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10685
10879
  alt: string;
10686
10880
  width?: number | undefined;
10687
10881
  height?: number | undefined;
10882
+ fullscreen?: boolean | undefined;
10688
10883
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
10689
10884
  type: z.ZodLiteral<"VisualFraction">;
10690
10885
  name: z.ZodString;
@@ -10791,6 +10986,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10791
10986
  alt: string;
10792
10987
  width?: number | undefined;
10793
10988
  height?: number | undefined;
10989
+ fullscreen?: boolean | undefined;
10794
10990
  } | {
10795
10991
  type: "VisualFraction";
10796
10992
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -10838,6 +11034,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10838
11034
  alt: string;
10839
11035
  width?: number | undefined;
10840
11036
  height?: number | undefined;
11037
+ fullscreen?: boolean | undefined;
10841
11038
  } | {
10842
11039
  type: "VisualFraction";
10843
11040
  name: string;
@@ -10852,6 +11049,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10852
11049
  itemId: string;
10853
11050
  }>, "many">;
10854
11051
  }, "strip", z.ZodTypeAny, {
11052
+ type: "MatcherRow";
10855
11053
  items: {
10856
11054
  type: "MatcherItem";
10857
11055
  inlines: ({
@@ -10887,6 +11085,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10887
11085
  alt: string;
10888
11086
  width?: number | undefined;
10889
11087
  height?: number | undefined;
11088
+ fullscreen?: boolean | undefined;
10890
11089
  } | {
10891
11090
  type: "VisualFraction";
10892
11091
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -10900,8 +11099,8 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10900
11099
  })[];
10901
11100
  itemId: string;
10902
11101
  }[];
10903
- type: "MatcherRow";
10904
11102
  }, {
11103
+ type: "MatcherRow";
10905
11104
  items: {
10906
11105
  type: "MatcherItem";
10907
11106
  inlines: ({
@@ -10937,6 +11136,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10937
11136
  alt: string;
10938
11137
  width?: number | undefined;
10939
11138
  height?: number | undefined;
11139
+ fullscreen?: boolean | undefined;
10940
11140
  } | {
10941
11141
  type: "VisualFraction";
10942
11142
  name: string;
@@ -10950,13 +11150,13 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10950
11150
  })[];
10951
11151
  itemId: string;
10952
11152
  }[];
10953
- type: "MatcherRow";
10954
11153
  }>, "many">;
10955
11154
  answers: z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">;
10956
11155
  }, "strip", z.ZodTypeAny, {
10957
11156
  type: "MatcherBlock";
10958
11157
  name: string;
10959
11158
  rows: {
11159
+ type: "MatcherRow";
10960
11160
  items: {
10961
11161
  type: "MatcherItem";
10962
11162
  inlines: ({
@@ -10992,6 +11192,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
10992
11192
  alt: string;
10993
11193
  width?: number | undefined;
10994
11194
  height?: number | undefined;
11195
+ fullscreen?: boolean | undefined;
10995
11196
  } | {
10996
11197
  type: "VisualFraction";
10997
11198
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -11005,7 +11206,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11005
11206
  })[];
11006
11207
  itemId: string;
11007
11208
  }[];
11008
- type: "MatcherRow";
11009
11209
  }[];
11010
11210
  answers: string[][];
11011
11211
  colors?: string[] | undefined;
@@ -11013,6 +11213,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11013
11213
  type: "MatcherBlock";
11014
11214
  name: string;
11015
11215
  rows: {
11216
+ type: "MatcherRow";
11016
11217
  items: {
11017
11218
  type: "MatcherItem";
11018
11219
  inlines: ({
@@ -11048,6 +11249,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11048
11249
  alt: string;
11049
11250
  width?: number | undefined;
11050
11251
  height?: number | undefined;
11252
+ fullscreen?: boolean | undefined;
11051
11253
  } | {
11052
11254
  type: "VisualFraction";
11053
11255
  name: string;
@@ -11061,7 +11263,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11061
11263
  })[];
11062
11264
  itemId: string;
11063
11265
  }[];
11064
- type: "MatcherRow";
11065
11266
  }[];
11066
11267
  answers: string[][];
11067
11268
  colors?: string[] | undefined;
@@ -11069,6 +11270,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11069
11270
  type: "MatcherBlock";
11070
11271
  name: string;
11071
11272
  rows: {
11273
+ type: "MatcherRow";
11072
11274
  items: {
11073
11275
  type: "MatcherItem";
11074
11276
  inlines: ({
@@ -11104,6 +11306,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11104
11306
  alt: string;
11105
11307
  width?: number | undefined;
11106
11308
  height?: number | undefined;
11309
+ fullscreen?: boolean | undefined;
11107
11310
  } | {
11108
11311
  type: "VisualFraction";
11109
11312
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -11117,7 +11320,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11117
11320
  })[];
11118
11321
  itemId: string;
11119
11322
  }[];
11120
- type: "MatcherRow";
11121
11323
  }[];
11122
11324
  answers: string[][];
11123
11325
  colors?: string[] | undefined;
@@ -11125,6 +11327,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11125
11327
  type: "MatcherBlock";
11126
11328
  name: string;
11127
11329
  rows: {
11330
+ type: "MatcherRow";
11128
11331
  items: {
11129
11332
  type: "MatcherItem";
11130
11333
  inlines: ({
@@ -11160,6 +11363,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11160
11363
  alt: string;
11161
11364
  width?: number | undefined;
11162
11365
  height?: number | undefined;
11366
+ fullscreen?: boolean | undefined;
11163
11367
  } | {
11164
11368
  type: "VisualFraction";
11165
11369
  name: string;
@@ -11173,7 +11377,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11173
11377
  })[];
11174
11378
  itemId: string;
11175
11379
  }[];
11176
- type: "MatcherRow";
11177
11380
  }[];
11178
11381
  answers: string[][];
11179
11382
  colors?: string[] | undefined;
@@ -11284,6 +11487,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11284
11487
  alt: z.ZodString;
11285
11488
  width: z.ZodOptional<z.ZodNumber>;
11286
11489
  height: z.ZodOptional<z.ZodNumber>;
11490
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
11287
11491
  }, "strip", z.ZodTypeAny, {
11288
11492
  type: "Image";
11289
11493
  name: string;
@@ -11291,6 +11495,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11291
11495
  alt: string;
11292
11496
  width?: number | undefined;
11293
11497
  height?: number | undefined;
11498
+ fullscreen?: boolean | undefined;
11294
11499
  }, {
11295
11500
  type: "Image";
11296
11501
  name: string;
@@ -11298,6 +11503,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11298
11503
  alt: string;
11299
11504
  width?: number | undefined;
11300
11505
  height?: number | undefined;
11506
+ fullscreen?: boolean | undefined;
11301
11507
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
11302
11508
  type: z.ZodLiteral<"VisualFraction">;
11303
11509
  name: z.ZodString;
@@ -11404,6 +11610,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11404
11610
  alt: string;
11405
11611
  width?: number | undefined;
11406
11612
  height?: number | undefined;
11613
+ fullscreen?: boolean | undefined;
11407
11614
  } | {
11408
11615
  type: "VisualFraction";
11409
11616
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -11451,6 +11658,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11451
11658
  alt: string;
11452
11659
  width?: number | undefined;
11453
11660
  height?: number | undefined;
11661
+ fullscreen?: boolean | undefined;
11454
11662
  } | {
11455
11663
  type: "VisualFraction";
11456
11664
  name: string;
@@ -11568,6 +11776,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11568
11776
  alt: z.ZodString;
11569
11777
  width: z.ZodOptional<z.ZodNumber>;
11570
11778
  height: z.ZodOptional<z.ZodNumber>;
11779
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
11571
11780
  }, "strip", z.ZodTypeAny, {
11572
11781
  type: "Image";
11573
11782
  name: string;
@@ -11575,6 +11784,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11575
11784
  alt: string;
11576
11785
  width?: number | undefined;
11577
11786
  height?: number | undefined;
11787
+ fullscreen?: boolean | undefined;
11578
11788
  }, {
11579
11789
  type: "Image";
11580
11790
  name: string;
@@ -11582,6 +11792,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11582
11792
  alt: string;
11583
11793
  width?: number | undefined;
11584
11794
  height?: number | undefined;
11795
+ fullscreen?: boolean | undefined;
11585
11796
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
11586
11797
  type: z.ZodLiteral<"VisualFraction">;
11587
11798
  name: z.ZodString;
@@ -11688,6 +11899,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11688
11899
  alt: string;
11689
11900
  width?: number | undefined;
11690
11901
  height?: number | undefined;
11902
+ fullscreen?: boolean | undefined;
11691
11903
  } | {
11692
11904
  type: "VisualFraction";
11693
11905
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -11735,6 +11947,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11735
11947
  alt: string;
11736
11948
  width?: number | undefined;
11737
11949
  height?: number | undefined;
11950
+ fullscreen?: boolean | undefined;
11738
11951
  } | {
11739
11952
  type: "VisualFraction";
11740
11953
  name: string;
@@ -11788,6 +12001,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11788
12001
  alt: string;
11789
12002
  width?: number | undefined;
11790
12003
  height?: number | undefined;
12004
+ fullscreen?: boolean | undefined;
11791
12005
  } | {
11792
12006
  type: "VisualFraction";
11793
12007
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -11836,6 +12050,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11836
12050
  alt: string;
11837
12051
  width?: number | undefined;
11838
12052
  height?: number | undefined;
12053
+ fullscreen?: boolean | undefined;
11839
12054
  } | {
11840
12055
  type: "VisualFraction";
11841
12056
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -11888,6 +12103,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11888
12103
  alt: string;
11889
12104
  width?: number | undefined;
11890
12105
  height?: number | undefined;
12106
+ fullscreen?: boolean | undefined;
11891
12107
  } | {
11892
12108
  type: "VisualFraction";
11893
12109
  name: string;
@@ -11936,6 +12152,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11936
12152
  alt: string;
11937
12153
  width?: number | undefined;
11938
12154
  height?: number | undefined;
12155
+ fullscreen?: boolean | undefined;
11939
12156
  } | {
11940
12157
  type: "VisualFraction";
11941
12158
  name: string;
@@ -11988,6 +12205,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
11988
12205
  alt: string;
11989
12206
  width?: number | undefined;
11990
12207
  height?: number | undefined;
12208
+ fullscreen?: boolean | undefined;
11991
12209
  } | {
11992
12210
  type: "VisualFraction";
11993
12211
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -12036,6 +12254,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12036
12254
  alt: string;
12037
12255
  width?: number | undefined;
12038
12256
  height?: number | undefined;
12257
+ fullscreen?: boolean | undefined;
12039
12258
  } | {
12040
12259
  type: "VisualFraction";
12041
12260
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -12088,6 +12307,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12088
12307
  alt: string;
12089
12308
  width?: number | undefined;
12090
12309
  height?: number | undefined;
12310
+ fullscreen?: boolean | undefined;
12091
12311
  } | {
12092
12312
  type: "VisualFraction";
12093
12313
  name: string;
@@ -12136,6 +12356,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12136
12356
  alt: string;
12137
12357
  width?: number | undefined;
12138
12358
  height?: number | undefined;
12359
+ fullscreen?: boolean | undefined;
12139
12360
  } | {
12140
12361
  type: "VisualFraction";
12141
12362
  name: string;
@@ -12481,6 +12702,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12481
12702
  type: "VopSeparator";
12482
12703
  }>]>, "many">;
12483
12704
  }, "strip", z.ZodTypeAny, {
12705
+ type: "VerticalOperationBlock";
12484
12706
  items: ({
12485
12707
  type: "VopRow";
12486
12708
  cells: ({
@@ -12551,9 +12773,9 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12551
12773
  } | {
12552
12774
  type: "VopSeparator";
12553
12775
  })[];
12554
- type: "VerticalOperationBlock";
12555
12776
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
12556
12777
  }, {
12778
+ type: "VerticalOperationBlock";
12557
12779
  items: ({
12558
12780
  type: "VopRow";
12559
12781
  cells: ({
@@ -12624,18 +12846,57 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12624
12846
  } | {
12625
12847
  type: "VopSeparator";
12626
12848
  })[];
12627
- type: "VerticalOperationBlock";
12628
12849
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
12850
+ }>, z.ZodEffects<z.ZodObject<{
12851
+ type: z.ZodLiteral<"GridSymmetryBlock">;
12852
+ rows: z.ZodNumber;
12853
+ cols: z.ZodNumber;
12854
+ axis: z.ZodEnum<["vertical", "horizontal"]>;
12855
+ interactiveArea: z.ZodEnum<["left", "right", "top", "bottom"]>;
12856
+ cellSize: z.ZodDefault<z.ZodNumber>;
12857
+ cells: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
12858
+ }, "strip", z.ZodTypeAny, {
12859
+ axis: "horizontal" | "vertical";
12860
+ type: "GridSymmetryBlock";
12861
+ rows: number;
12862
+ cols: number;
12863
+ interactiveArea: "left" | "right" | "top" | "bottom";
12864
+ cellSize: number;
12865
+ cells: [number, number][];
12866
+ }, {
12867
+ axis: "horizontal" | "vertical";
12868
+ type: "GridSymmetryBlock";
12869
+ rows: number;
12870
+ cols: number;
12871
+ interactiveArea: "left" | "right" | "top" | "bottom";
12872
+ cells: [number, number][];
12873
+ cellSize?: number | undefined;
12874
+ }>, {
12875
+ axis: "horizontal" | "vertical";
12876
+ type: "GridSymmetryBlock";
12877
+ rows: number;
12878
+ cols: number;
12879
+ interactiveArea: "left" | "right" | "top" | "bottom";
12880
+ cellSize: number;
12881
+ cells: [number, number][];
12882
+ }, {
12883
+ axis: "horizontal" | "vertical";
12884
+ type: "GridSymmetryBlock";
12885
+ rows: number;
12886
+ cols: number;
12887
+ interactiveArea: "left" | "right" | "top" | "bottom";
12888
+ cells: [number, number][];
12889
+ cellSize?: number | undefined;
12629
12890
  }>]>, "many">;
12630
12891
  tools: z.ZodOptional<z.ZodArray<z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
12631
12892
  type: z.ZodLiteral<"DragOptions">;
12632
12893
  options: z.ZodArray<z.ZodString, "many">;
12633
12894
  }, "strip", z.ZodTypeAny, {
12634
- type: "DragOptions";
12635
12895
  options: string[];
12636
- }, {
12637
12896
  type: "DragOptions";
12897
+ }, {
12638
12898
  options: string[];
12899
+ type: "DragOptions";
12639
12900
  }>, z.ZodObject<{
12640
12901
  type: z.ZodLiteral<"NumericKeypad">;
12641
12902
  includeOperators: z.ZodOptional<z.ZodBoolean>;
@@ -12755,6 +13016,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12755
13016
  alt: string;
12756
13017
  width?: number | undefined;
12757
13018
  height?: number | undefined;
13019
+ fullscreen?: boolean | undefined;
12758
13020
  } | {
12759
13021
  type: "VisualFraction";
12760
13022
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -12840,6 +13102,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12840
13102
  alt: string;
12841
13103
  width?: number | undefined;
12842
13104
  height?: number | undefined;
13105
+ fullscreen?: boolean | undefined;
12843
13106
  } | {
12844
13107
  type: "VisualFraction";
12845
13108
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -12886,7 +13149,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12886
13149
  type: "NumberLineHighlight";
12887
13150
  from: number;
12888
13151
  to: number;
12889
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
13152
+ color?: string | undefined;
12890
13153
  label?: string | undefined;
12891
13154
  }[] | undefined;
12892
13155
  cursors?: {
@@ -12946,6 +13209,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12946
13209
  alt: string;
12947
13210
  width?: number | undefined;
12948
13211
  height?: number | undefined;
13212
+ fullscreen?: boolean | undefined;
12949
13213
  } | {
12950
13214
  type: "VisualFraction";
12951
13215
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -12982,8 +13246,15 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
12982
13246
  }[] | undefined;
12983
13247
  dragMode?: "axis" | "inputs" | undefined;
12984
13248
  } | {
12985
- type: "TableBlock";
13249
+ axis: "horizontal" | "vertical";
13250
+ type: "GridSymmetryBlock";
13251
+ rows: number;
12986
13252
  cols: number;
13253
+ interactiveArea: "left" | "right" | "top" | "bottom";
13254
+ cellSize: number;
13255
+ cells: [number, number][];
13256
+ } | {
13257
+ type: "TableBlock";
12987
13258
  rows: {
12988
13259
  type: "TableRow";
12989
13260
  cells: {
@@ -13035,6 +13306,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13035
13306
  alt: string;
13036
13307
  width?: number | undefined;
13037
13308
  height?: number | undefined;
13309
+ fullscreen?: boolean | undefined;
13038
13310
  } | {
13039
13311
  type: "VisualFraction";
13040
13312
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -13071,7 +13343,9 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13071
13343
  }[];
13072
13344
  backgroundColor?: string | undefined;
13073
13345
  }[];
13346
+ cols: number;
13074
13347
  } | {
13348
+ type: "VerticalOperationBlock";
13075
13349
  items: ({
13076
13350
  type: "VopRow";
13077
13351
  cells: ({
@@ -13142,17 +13416,17 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13142
13416
  } | {
13143
13417
  type: "VopSeparator";
13144
13418
  })[];
13145
- type: "VerticalOperationBlock";
13146
13419
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
13147
13420
  } | {
13148
- type: "RadioOptions";
13149
13421
  options: string[];
13422
+ type: "RadioOptions";
13150
13423
  name: string;
13151
13424
  answer: string;
13152
13425
  } | {
13153
13426
  type: "MatcherBlock";
13154
13427
  name: string;
13155
13428
  rows: {
13429
+ type: "MatcherRow";
13156
13430
  items: {
13157
13431
  type: "MatcherItem";
13158
13432
  inlines: ({
@@ -13188,6 +13462,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13188
13462
  alt: string;
13189
13463
  width?: number | undefined;
13190
13464
  height?: number | undefined;
13465
+ fullscreen?: boolean | undefined;
13191
13466
  } | {
13192
13467
  type: "VisualFraction";
13193
13468
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -13201,7 +13476,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13201
13476
  })[];
13202
13477
  itemId: string;
13203
13478
  }[];
13204
- type: "MatcherRow";
13205
13479
  }[];
13206
13480
  answers: string[][];
13207
13481
  colors?: string[] | undefined;
@@ -13244,6 +13518,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13244
13518
  alt: string;
13245
13519
  width?: number | undefined;
13246
13520
  height?: number | undefined;
13521
+ fullscreen?: boolean | undefined;
13247
13522
  } | {
13248
13523
  type: "VisualFraction";
13249
13524
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -13292,6 +13567,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13292
13567
  alt: string;
13293
13568
  width?: number | undefined;
13294
13569
  height?: number | undefined;
13570
+ fullscreen?: boolean | undefined;
13295
13571
  } | {
13296
13572
  type: "VisualFraction";
13297
13573
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -13306,10 +13582,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13306
13582
  itemId: string;
13307
13583
  }[];
13308
13584
  })[];
13309
- question?: {
13310
- value: string;
13311
- type: "TextBlock";
13312
- } | undefined;
13313
13585
  validation?: {
13314
13586
  type: "SimpleValidation";
13315
13587
  } | {
@@ -13319,9 +13591,13 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13319
13591
  expression: string;
13320
13592
  type: "MixedValidation";
13321
13593
  } | undefined;
13594
+ question?: {
13595
+ value: string;
13596
+ type: "TextBlock";
13597
+ } | undefined;
13322
13598
  tools?: ({
13323
- type: "DragOptions";
13324
13599
  options: string[];
13600
+ type: "DragOptions";
13325
13601
  } | {
13326
13602
  type: "NumericKeypad";
13327
13603
  style?: "diamond" | "classic" | undefined;
@@ -13388,6 +13664,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13388
13664
  alt: string;
13389
13665
  width?: number | undefined;
13390
13666
  height?: number | undefined;
13667
+ fullscreen?: boolean | undefined;
13391
13668
  } | {
13392
13669
  type: "VisualFraction";
13393
13670
  name: string;
@@ -13472,6 +13749,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13472
13749
  alt: string;
13473
13750
  width?: number | undefined;
13474
13751
  height?: number | undefined;
13752
+ fullscreen?: boolean | undefined;
13475
13753
  } | {
13476
13754
  type: "VisualFraction";
13477
13755
  name: string;
@@ -13519,7 +13797,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13519
13797
  type: "NumberLineHighlight";
13520
13798
  from: number;
13521
13799
  to: number;
13522
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
13800
+ color?: string | undefined;
13523
13801
  label?: string | undefined;
13524
13802
  }[] | undefined;
13525
13803
  cursors?: {
@@ -13579,6 +13857,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13579
13857
  alt: string;
13580
13858
  width?: number | undefined;
13581
13859
  height?: number | undefined;
13860
+ fullscreen?: boolean | undefined;
13582
13861
  } | {
13583
13862
  type: "VisualFraction";
13584
13863
  name: string;
@@ -13615,8 +13894,15 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13615
13894
  }[] | undefined;
13616
13895
  dragMode?: "axis" | "inputs" | undefined;
13617
13896
  } | {
13618
- type: "TableBlock";
13897
+ axis: "horizontal" | "vertical";
13898
+ type: "GridSymmetryBlock";
13899
+ rows: number;
13619
13900
  cols: number;
13901
+ interactiveArea: "left" | "right" | "top" | "bottom";
13902
+ cells: [number, number][];
13903
+ cellSize?: number | undefined;
13904
+ } | {
13905
+ type: "TableBlock";
13620
13906
  rows: {
13621
13907
  type: "TableRow";
13622
13908
  cells: {
@@ -13668,6 +13954,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13668
13954
  alt: string;
13669
13955
  width?: number | undefined;
13670
13956
  height?: number | undefined;
13957
+ fullscreen?: boolean | undefined;
13671
13958
  } | {
13672
13959
  type: "VisualFraction";
13673
13960
  name: string;
@@ -13704,7 +13991,9 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13704
13991
  }[];
13705
13992
  backgroundColor?: string | undefined;
13706
13993
  }[];
13994
+ cols: number;
13707
13995
  } | {
13996
+ type: "VerticalOperationBlock";
13708
13997
  items: ({
13709
13998
  type: "VopRow";
13710
13999
  cells: ({
@@ -13775,17 +14064,17 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13775
14064
  } | {
13776
14065
  type: "VopSeparator";
13777
14066
  })[];
13778
- type: "VerticalOperationBlock";
13779
14067
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
13780
14068
  } | {
13781
- type: "RadioOptions";
13782
14069
  options: string[];
14070
+ type: "RadioOptions";
13783
14071
  name: string;
13784
14072
  answer: string;
13785
14073
  } | {
13786
14074
  type: "MatcherBlock";
13787
14075
  name: string;
13788
14076
  rows: {
14077
+ type: "MatcherRow";
13789
14078
  items: {
13790
14079
  type: "MatcherItem";
13791
14080
  inlines: ({
@@ -13821,6 +14110,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13821
14110
  alt: string;
13822
14111
  width?: number | undefined;
13823
14112
  height?: number | undefined;
14113
+ fullscreen?: boolean | undefined;
13824
14114
  } | {
13825
14115
  type: "VisualFraction";
13826
14116
  name: string;
@@ -13834,7 +14124,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13834
14124
  })[];
13835
14125
  itemId: string;
13836
14126
  }[];
13837
- type: "MatcherRow";
13838
14127
  }[];
13839
14128
  answers: string[][];
13840
14129
  colors?: string[] | undefined;
@@ -13877,6 +14166,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13877
14166
  alt: string;
13878
14167
  width?: number | undefined;
13879
14168
  height?: number | undefined;
14169
+ fullscreen?: boolean | undefined;
13880
14170
  } | {
13881
14171
  type: "VisualFraction";
13882
14172
  name: string;
@@ -13925,6 +14215,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13925
14215
  alt: string;
13926
14216
  width?: number | undefined;
13927
14217
  height?: number | undefined;
14218
+ fullscreen?: boolean | undefined;
13928
14219
  } | {
13929
14220
  type: "VisualFraction";
13930
14221
  name: string;
@@ -13939,10 +14230,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13939
14230
  itemId: string;
13940
14231
  }[];
13941
14232
  })[];
13942
- question?: {
13943
- value: string;
13944
- type: "TextBlock";
13945
- } | undefined;
13946
14233
  validation?: {
13947
14234
  type: "SimpleValidation";
13948
14235
  } | {
@@ -13952,9 +14239,13 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
13952
14239
  expression: string;
13953
14240
  type: "MixedValidation";
13954
14241
  } | undefined;
14242
+ question?: {
14243
+ value: string;
14244
+ type: "TextBlock";
14245
+ } | undefined;
13955
14246
  tools?: ({
13956
- type: "DragOptions";
13957
14247
  options: string[];
14248
+ type: "DragOptions";
13958
14249
  } | {
13959
14250
  type: "NumericKeypad";
13960
14251
  style?: "diamond" | "classic" | undefined;
@@ -14021,6 +14312,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14021
14312
  alt: string;
14022
14313
  width?: number | undefined;
14023
14314
  height?: number | undefined;
14315
+ fullscreen?: boolean | undefined;
14024
14316
  } | {
14025
14317
  type: "VisualFraction";
14026
14318
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -14106,6 +14398,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14106
14398
  alt: string;
14107
14399
  width?: number | undefined;
14108
14400
  height?: number | undefined;
14401
+ fullscreen?: boolean | undefined;
14109
14402
  } | {
14110
14403
  type: "VisualFraction";
14111
14404
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -14152,7 +14445,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14152
14445
  type: "NumberLineHighlight";
14153
14446
  from: number;
14154
14447
  to: number;
14155
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
14448
+ color?: string | undefined;
14156
14449
  label?: string | undefined;
14157
14450
  }[] | undefined;
14158
14451
  cursors?: {
@@ -14212,6 +14505,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14212
14505
  alt: string;
14213
14506
  width?: number | undefined;
14214
14507
  height?: number | undefined;
14508
+ fullscreen?: boolean | undefined;
14215
14509
  } | {
14216
14510
  type: "VisualFraction";
14217
14511
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -14248,8 +14542,15 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14248
14542
  }[] | undefined;
14249
14543
  dragMode?: "axis" | "inputs" | undefined;
14250
14544
  } | {
14251
- type: "TableBlock";
14545
+ axis: "horizontal" | "vertical";
14546
+ type: "GridSymmetryBlock";
14547
+ rows: number;
14252
14548
  cols: number;
14549
+ interactiveArea: "left" | "right" | "top" | "bottom";
14550
+ cellSize: number;
14551
+ cells: [number, number][];
14552
+ } | {
14553
+ type: "TableBlock";
14253
14554
  rows: {
14254
14555
  type: "TableRow";
14255
14556
  cells: {
@@ -14301,6 +14602,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14301
14602
  alt: string;
14302
14603
  width?: number | undefined;
14303
14604
  height?: number | undefined;
14605
+ fullscreen?: boolean | undefined;
14304
14606
  } | {
14305
14607
  type: "VisualFraction";
14306
14608
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -14337,7 +14639,9 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14337
14639
  }[];
14338
14640
  backgroundColor?: string | undefined;
14339
14641
  }[];
14642
+ cols: number;
14340
14643
  } | {
14644
+ type: "VerticalOperationBlock";
14341
14645
  items: ({
14342
14646
  type: "VopRow";
14343
14647
  cells: ({
@@ -14408,17 +14712,17 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14408
14712
  } | {
14409
14713
  type: "VopSeparator";
14410
14714
  })[];
14411
- type: "VerticalOperationBlock";
14412
14715
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
14413
14716
  } | {
14414
- type: "RadioOptions";
14415
14717
  options: string[];
14718
+ type: "RadioOptions";
14416
14719
  name: string;
14417
14720
  answer: string;
14418
14721
  } | {
14419
14722
  type: "MatcherBlock";
14420
14723
  name: string;
14421
14724
  rows: {
14725
+ type: "MatcherRow";
14422
14726
  items: {
14423
14727
  type: "MatcherItem";
14424
14728
  inlines: ({
@@ -14454,6 +14758,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14454
14758
  alt: string;
14455
14759
  width?: number | undefined;
14456
14760
  height?: number | undefined;
14761
+ fullscreen?: boolean | undefined;
14457
14762
  } | {
14458
14763
  type: "VisualFraction";
14459
14764
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -14467,7 +14772,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14467
14772
  })[];
14468
14773
  itemId: string;
14469
14774
  }[];
14470
- type: "MatcherRow";
14471
14775
  }[];
14472
14776
  answers: string[][];
14473
14777
  colors?: string[] | undefined;
@@ -14510,6 +14814,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14510
14814
  alt: string;
14511
14815
  width?: number | undefined;
14512
14816
  height?: number | undefined;
14817
+ fullscreen?: boolean | undefined;
14513
14818
  } | {
14514
14819
  type: "VisualFraction";
14515
14820
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -14558,6 +14863,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14558
14863
  alt: string;
14559
14864
  width?: number | undefined;
14560
14865
  height?: number | undefined;
14866
+ fullscreen?: boolean | undefined;
14561
14867
  } | {
14562
14868
  type: "VisualFraction";
14563
14869
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -14572,10 +14878,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14572
14878
  itemId: string;
14573
14879
  }[];
14574
14880
  })[];
14575
- question?: {
14576
- value: string;
14577
- type: "TextBlock";
14578
- } | undefined;
14579
14881
  validation?: {
14580
14882
  type: "SimpleValidation";
14581
14883
  } | {
@@ -14585,9 +14887,13 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14585
14887
  expression: string;
14586
14888
  type: "MixedValidation";
14587
14889
  } | undefined;
14890
+ question?: {
14891
+ value: string;
14892
+ type: "TextBlock";
14893
+ } | undefined;
14588
14894
  tools?: ({
14589
- type: "DragOptions";
14590
14895
  options: string[];
14896
+ type: "DragOptions";
14591
14897
  } | {
14592
14898
  type: "NumericKeypad";
14593
14899
  style?: "diamond" | "classic" | undefined;
@@ -14654,6 +14960,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14654
14960
  alt: string;
14655
14961
  width?: number | undefined;
14656
14962
  height?: number | undefined;
14963
+ fullscreen?: boolean | undefined;
14657
14964
  } | {
14658
14965
  type: "VisualFraction";
14659
14966
  name: string;
@@ -14738,6 +15045,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14738
15045
  alt: string;
14739
15046
  width?: number | undefined;
14740
15047
  height?: number | undefined;
15048
+ fullscreen?: boolean | undefined;
14741
15049
  } | {
14742
15050
  type: "VisualFraction";
14743
15051
  name: string;
@@ -14785,7 +15093,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14785
15093
  type: "NumberLineHighlight";
14786
15094
  from: number;
14787
15095
  to: number;
14788
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
15096
+ color?: string | undefined;
14789
15097
  label?: string | undefined;
14790
15098
  }[] | undefined;
14791
15099
  cursors?: {
@@ -14845,6 +15153,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14845
15153
  alt: string;
14846
15154
  width?: number | undefined;
14847
15155
  height?: number | undefined;
15156
+ fullscreen?: boolean | undefined;
14848
15157
  } | {
14849
15158
  type: "VisualFraction";
14850
15159
  name: string;
@@ -14881,8 +15190,15 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14881
15190
  }[] | undefined;
14882
15191
  dragMode?: "axis" | "inputs" | undefined;
14883
15192
  } | {
14884
- type: "TableBlock";
15193
+ axis: "horizontal" | "vertical";
15194
+ type: "GridSymmetryBlock";
15195
+ rows: number;
14885
15196
  cols: number;
15197
+ interactiveArea: "left" | "right" | "top" | "bottom";
15198
+ cells: [number, number][];
15199
+ cellSize?: number | undefined;
15200
+ } | {
15201
+ type: "TableBlock";
14886
15202
  rows: {
14887
15203
  type: "TableRow";
14888
15204
  cells: {
@@ -14934,6 +15250,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14934
15250
  alt: string;
14935
15251
  width?: number | undefined;
14936
15252
  height?: number | undefined;
15253
+ fullscreen?: boolean | undefined;
14937
15254
  } | {
14938
15255
  type: "VisualFraction";
14939
15256
  name: string;
@@ -14970,7 +15287,9 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
14970
15287
  }[];
14971
15288
  backgroundColor?: string | undefined;
14972
15289
  }[];
15290
+ cols: number;
14973
15291
  } | {
15292
+ type: "VerticalOperationBlock";
14974
15293
  items: ({
14975
15294
  type: "VopRow";
14976
15295
  cells: ({
@@ -15041,17 +15360,17 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
15041
15360
  } | {
15042
15361
  type: "VopSeparator";
15043
15362
  })[];
15044
- type: "VerticalOperationBlock";
15045
15363
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
15046
15364
  } | {
15047
- type: "RadioOptions";
15048
15365
  options: string[];
15366
+ type: "RadioOptions";
15049
15367
  name: string;
15050
15368
  answer: string;
15051
15369
  } | {
15052
15370
  type: "MatcherBlock";
15053
15371
  name: string;
15054
15372
  rows: {
15373
+ type: "MatcherRow";
15055
15374
  items: {
15056
15375
  type: "MatcherItem";
15057
15376
  inlines: ({
@@ -15087,6 +15406,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
15087
15406
  alt: string;
15088
15407
  width?: number | undefined;
15089
15408
  height?: number | undefined;
15409
+ fullscreen?: boolean | undefined;
15090
15410
  } | {
15091
15411
  type: "VisualFraction";
15092
15412
  name: string;
@@ -15100,7 +15420,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
15100
15420
  })[];
15101
15421
  itemId: string;
15102
15422
  }[];
15103
- type: "MatcherRow";
15104
15423
  }[];
15105
15424
  answers: string[][];
15106
15425
  colors?: string[] | undefined;
@@ -15143,6 +15462,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
15143
15462
  alt: string;
15144
15463
  width?: number | undefined;
15145
15464
  height?: number | undefined;
15465
+ fullscreen?: boolean | undefined;
15146
15466
  } | {
15147
15467
  type: "VisualFraction";
15148
15468
  name: string;
@@ -15191,6 +15511,7 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
15191
15511
  alt: string;
15192
15512
  width?: number | undefined;
15193
15513
  height?: number | undefined;
15514
+ fullscreen?: boolean | undefined;
15194
15515
  } | {
15195
15516
  type: "VisualFraction";
15196
15517
  name: string;
@@ -15205,10 +15526,6 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
15205
15526
  itemId: string;
15206
15527
  }[];
15207
15528
  })[];
15208
- question?: {
15209
- value: string;
15210
- type: "TextBlock";
15211
- } | undefined;
15212
15529
  validation?: {
15213
15530
  type: "SimpleValidation";
15214
15531
  } | {
@@ -15218,9 +15535,13 @@ export declare const ExerciseDocumentSchema: z.ZodEffects<z.ZodObject<{
15218
15535
  expression: string;
15219
15536
  type: "MixedValidation";
15220
15537
  } | undefined;
15538
+ question?: {
15539
+ value: string;
15540
+ type: "TextBlock";
15541
+ } | undefined;
15221
15542
  tools?: ({
15222
- type: "DragOptions";
15223
15543
  options: string[];
15544
+ type: "DragOptions";
15224
15545
  } | {
15225
15546
  type: "NumericKeypad";
15226
15547
  style?: "diamond" | "classic" | undefined;
@@ -15278,11 +15599,11 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15278
15599
  type: z.ZodLiteral<"drag-options">;
15279
15600
  options: z.ZodArray<z.ZodString, "many">;
15280
15601
  }, "strip", z.ZodTypeAny, {
15281
- type: "drag-options";
15282
15602
  options: string[];
15283
- }, {
15284
15603
  type: "drag-options";
15604
+ }, {
15285
15605
  options: string[];
15606
+ type: "drag-options";
15286
15607
  }>, z.ZodObject<{
15287
15608
  type: z.ZodLiteral<"inline-drag-option">;
15288
15609
  value: z.ZodString;
@@ -15296,11 +15617,11 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15296
15617
  type: z.ZodLiteral<"radio-options">;
15297
15618
  options: z.ZodArray<z.ZodString, "many">;
15298
15619
  }, "strip", z.ZodTypeAny, {
15299
- type: "radio-options";
15300
15620
  options: string[];
15301
- }, {
15302
15621
  type: "radio-options";
15622
+ }, {
15303
15623
  options: string[];
15624
+ type: "radio-options";
15304
15625
  }>, z.ZodObject<{
15305
15626
  type: z.ZodLiteral<"numeric-keypad">;
15306
15627
  includeOperators: z.ZodOptional<z.ZodBoolean>;
@@ -15358,22 +15679,22 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15358
15679
  content: any[];
15359
15680
  }>, "many">;
15360
15681
  }, "strip", z.ZodTypeAny, {
15682
+ type: "matcher-row";
15361
15683
  items: {
15362
15684
  type: "matcher-item";
15363
15685
  itemId: string;
15364
15686
  id: string;
15365
15687
  content: any[];
15366
15688
  }[];
15367
- type: "matcher-row";
15368
15689
  id: string;
15369
15690
  }, {
15691
+ type: "matcher-row";
15370
15692
  items: {
15371
15693
  type: "matcher-item";
15372
15694
  itemId: string;
15373
15695
  id: string;
15374
15696
  content: any[];
15375
15697
  }[];
15376
- type: "matcher-row";
15377
15698
  id: string;
15378
15699
  }>, "many">;
15379
15700
  /** Optional color palette for the renderer (one color per answer group) */
@@ -15383,13 +15704,13 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15383
15704
  }, "strip", z.ZodTypeAny, {
15384
15705
  type: "matcher";
15385
15706
  rows: {
15707
+ type: "matcher-row";
15386
15708
  items: {
15387
15709
  type: "matcher-item";
15388
15710
  itemId: string;
15389
15711
  id: string;
15390
15712
  content: any[];
15391
15713
  }[];
15392
- type: "matcher-row";
15393
15714
  id: string;
15394
15715
  }[];
15395
15716
  groupCount: number;
@@ -15397,13 +15718,13 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15397
15718
  }, {
15398
15719
  type: "matcher";
15399
15720
  rows: {
15721
+ type: "matcher-row";
15400
15722
  items: {
15401
15723
  type: "matcher-item";
15402
15724
  itemId: string;
15403
15725
  id: string;
15404
15726
  content: any[];
15405
15727
  }[];
15406
- type: "matcher-row";
15407
15728
  id: string;
15408
15729
  }[];
15409
15730
  groupCount: number;
@@ -15524,6 +15845,46 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15524
15845
  orientation?: "horizontal" | "vertical" | undefined;
15525
15846
  label?: string | undefined;
15526
15847
  size?: number | undefined;
15848
+ }>, z.ZodEffects<z.ZodObject<{
15849
+ type: z.ZodLiteral<"grid-symmetry">;
15850
+ rows: z.ZodNumber;
15851
+ cols: z.ZodNumber;
15852
+ axis: z.ZodEnum<["vertical", "horizontal"]>;
15853
+ interactiveArea: z.ZodEnum<["left", "right", "top", "bottom"]>;
15854
+ cellSize: z.ZodDefault<z.ZodNumber>;
15855
+ cells: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
15856
+ }, "strip", z.ZodTypeAny, {
15857
+ axis: "horizontal" | "vertical";
15858
+ type: "grid-symmetry";
15859
+ rows: number;
15860
+ cols: number;
15861
+ interactiveArea: "left" | "right" | "top" | "bottom";
15862
+ cellSize: number;
15863
+ cells: [number, number][];
15864
+ }, {
15865
+ axis: "horizontal" | "vertical";
15866
+ type: "grid-symmetry";
15867
+ rows: number;
15868
+ cols: number;
15869
+ interactiveArea: "left" | "right" | "top" | "bottom";
15870
+ cells: [number, number][];
15871
+ cellSize?: number | undefined;
15872
+ }>, {
15873
+ axis: "horizontal" | "vertical";
15874
+ type: "grid-symmetry";
15875
+ rows: number;
15876
+ cols: number;
15877
+ interactiveArea: "left" | "right" | "top" | "bottom";
15878
+ cellSize: number;
15879
+ cells: [number, number][];
15880
+ }, {
15881
+ axis: "horizontal" | "vertical";
15882
+ type: "grid-symmetry";
15883
+ rows: number;
15884
+ cols: number;
15885
+ interactiveArea: "left" | "right" | "top" | "bottom";
15886
+ cells: [number, number][];
15887
+ cellSize?: number | undefined;
15527
15888
  }>, z.ZodObject<{
15528
15889
  type: z.ZodLiteral<"ruler">;
15529
15890
  size: z.ZodOptional<z.ZodNumber>;
@@ -15554,18 +15915,18 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15554
15915
  }>]>>;
15555
15916
  validation: z.ZodOptional<z.ZodObject<{
15556
15917
  mode: z.ZodEnum<["simple", "expression", "mixed"]>;
15557
- answers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">, z.ZodArray<z.ZodNumber, "many">]>>>;
15918
+ answers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">, z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">]>>>;
15558
15919
  expression: z.ZodOptional<z.ZodString>;
15559
15920
  variables: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
15560
15921
  }, "strip", z.ZodTypeAny, {
15561
15922
  mode: "simple" | "expression" | "mixed";
15562
15923
  expression?: string | undefined;
15563
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
15924
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
15564
15925
  variables?: string[] | undefined;
15565
15926
  }, {
15566
15927
  mode: "simple" | "expression" | "mixed";
15567
15928
  expression?: string | undefined;
15568
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
15929
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
15569
15930
  variables?: string[] | undefined;
15570
15931
  }>>;
15571
15932
  meta: z.ZodOptional<z.ZodObject<{
@@ -15598,14 +15959,14 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15598
15959
  digits: number;
15599
15960
  placeholder?: string | undefined;
15600
15961
  } | {
15601
- type: "drag-options";
15602
15962
  options: string[];
15963
+ type: "drag-options";
15603
15964
  } | {
15604
15965
  value: string;
15605
15966
  type: "inline-drag-option";
15606
15967
  } | {
15607
- type: "radio-options";
15608
15968
  options: string[];
15969
+ type: "radio-options";
15609
15970
  } | {
15610
15971
  type: "numeric-keypad";
15611
15972
  style?: "diamond" | "classic" | undefined;
@@ -15620,13 +15981,13 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15620
15981
  } | {
15621
15982
  type: "matcher";
15622
15983
  rows: {
15984
+ type: "matcher-row";
15623
15985
  items: {
15624
15986
  type: "matcher-item";
15625
15987
  itemId: string;
15626
15988
  id: string;
15627
15989
  content: any[];
15628
15990
  }[];
15629
- type: "matcher-row";
15630
15991
  id: string;
15631
15992
  }[];
15632
15993
  groupCount: number;
@@ -15654,6 +16015,14 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15654
16015
  orientation?: "horizontal" | "vertical" | undefined;
15655
16016
  label?: string | undefined;
15656
16017
  size?: number | undefined;
16018
+ } | {
16019
+ axis: "horizontal" | "vertical";
16020
+ type: "grid-symmetry";
16021
+ rows: number;
16022
+ cols: number;
16023
+ interactiveArea: "left" | "right" | "top" | "bottom";
16024
+ cellSize: number;
16025
+ cells: [number, number][];
15657
16026
  } | {
15658
16027
  type: "ruler";
15659
16028
  size?: number | undefined;
@@ -15667,7 +16036,7 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15667
16036
  validation?: {
15668
16037
  mode: "simple" | "expression" | "mixed";
15669
16038
  expression?: string | undefined;
15670
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
16039
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
15671
16040
  variables?: string[] | undefined;
15672
16041
  } | undefined;
15673
16042
  id?: string | undefined;
@@ -15691,14 +16060,14 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15691
16060
  digits: number;
15692
16061
  placeholder?: string | undefined;
15693
16062
  } | {
15694
- type: "drag-options";
15695
16063
  options: string[];
16064
+ type: "drag-options";
15696
16065
  } | {
15697
16066
  value: string;
15698
16067
  type: "inline-drag-option";
15699
16068
  } | {
15700
- type: "radio-options";
15701
16069
  options: string[];
16070
+ type: "radio-options";
15702
16071
  } | {
15703
16072
  type: "numeric-keypad";
15704
16073
  style?: "diamond" | "classic" | undefined;
@@ -15713,13 +16082,13 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15713
16082
  } | {
15714
16083
  type: "matcher";
15715
16084
  rows: {
16085
+ type: "matcher-row";
15716
16086
  items: {
15717
16087
  type: "matcher-item";
15718
16088
  itemId: string;
15719
16089
  id: string;
15720
16090
  content: any[];
15721
16091
  }[];
15722
- type: "matcher-row";
15723
16092
  id: string;
15724
16093
  }[];
15725
16094
  groupCount: number;
@@ -15747,6 +16116,14 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15747
16116
  orientation?: "horizontal" | "vertical" | undefined;
15748
16117
  label?: string | undefined;
15749
16118
  size?: number | undefined;
16119
+ } | {
16120
+ axis: "horizontal" | "vertical";
16121
+ type: "grid-symmetry";
16122
+ rows: number;
16123
+ cols: number;
16124
+ interactiveArea: "left" | "right" | "top" | "bottom";
16125
+ cells: [number, number][];
16126
+ cellSize?: number | undefined;
15750
16127
  } | {
15751
16128
  type: "ruler";
15752
16129
  size?: number | undefined;
@@ -15760,7 +16137,7 @@ export declare const ExerciseJSONSchema: z.ZodObject<{
15760
16137
  validation?: {
15761
16138
  mode: "simple" | "expression" | "mixed";
15762
16139
  expression?: string | undefined;
15763
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
16140
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
15764
16141
  variables?: string[] | undefined;
15765
16142
  } | undefined;
15766
16143
  id?: string | undefined;
@@ -15983,7 +16360,117 @@ export declare function getFractionKey(widgetId: string, part: FractionPart): st
15983
16360
  * @param userInputs - User's answers
15984
16361
  * @returns Array of missing widget IDs
15985
16362
  */
15986
- export declare function getMissingInputs(exercise: ExerciseJSON, userInputs: Record<string, string | number | string[][] | number[]>): string[];
16363
+ export declare function getMissingInputs(exercise: ExerciseJSON, userInputs: Record<string, string | number | string[][] | number[] | GridCell[]>): string[];
16364
+
16365
+ export declare const GRID_SYMMETRY_AXES: readonly ["vertical", "horizontal"];
16366
+
16367
+ export declare const GRID_SYMMETRY_INTERACTIVE_AREAS: readonly ["left", "right", "top", "bottom"];
16368
+
16369
+ export declare const GRID_SYMMETRY_MAX_CELL_SIZE = 2;
16370
+
16371
+ export declare const GRID_SYMMETRY_MAX_COLS = 20;
16372
+
16373
+ export declare const GRID_SYMMETRY_MAX_ROWS = 20;
16374
+
16375
+ export declare const GRID_SYMMETRY_MIN_CELL_SIZE = 0.25;
16376
+
16377
+ /** One-based row/column coordinate shared by grid-based widgets. */
16378
+ export declare type GridCell = [row: number, col: number];
16379
+
16380
+ /** Structural validation shared by grid-based widgets. Grid bounds remain widget-specific. */
16381
+ export declare const GridCellSchema: z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>;
16382
+
16383
+ export declare type GridSymmetryAxis = (typeof GRID_SYMMETRY_AXES)[number];
16384
+
16385
+ export declare type GridSymmetryBlock = z.infer<typeof GridSymmetryBlockSchema>;
16386
+
16387
+ export declare const GridSymmetryBlockSchema: z.ZodEffects<z.ZodObject<{
16388
+ type: z.ZodLiteral<"GridSymmetryBlock">;
16389
+ rows: z.ZodNumber;
16390
+ cols: z.ZodNumber;
16391
+ axis: z.ZodEnum<["vertical", "horizontal"]>;
16392
+ interactiveArea: z.ZodEnum<["left", "right", "top", "bottom"]>;
16393
+ cellSize: z.ZodDefault<z.ZodNumber>;
16394
+ cells: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
16395
+ }, "strip", z.ZodTypeAny, {
16396
+ axis: "horizontal" | "vertical";
16397
+ type: "GridSymmetryBlock";
16398
+ rows: number;
16399
+ cols: number;
16400
+ interactiveArea: "left" | "right" | "top" | "bottom";
16401
+ cellSize: number;
16402
+ cells: [number, number][];
16403
+ }, {
16404
+ axis: "horizontal" | "vertical";
16405
+ type: "GridSymmetryBlock";
16406
+ rows: number;
16407
+ cols: number;
16408
+ interactiveArea: "left" | "right" | "top" | "bottom";
16409
+ cells: [number, number][];
16410
+ cellSize?: number | undefined;
16411
+ }>, {
16412
+ axis: "horizontal" | "vertical";
16413
+ type: "GridSymmetryBlock";
16414
+ rows: number;
16415
+ cols: number;
16416
+ interactiveArea: "left" | "right" | "top" | "bottom";
16417
+ cellSize: number;
16418
+ cells: [number, number][];
16419
+ }, {
16420
+ axis: "horizontal" | "vertical";
16421
+ type: "GridSymmetryBlock";
16422
+ rows: number;
16423
+ cols: number;
16424
+ interactiveArea: "left" | "right" | "top" | "bottom";
16425
+ cells: [number, number][];
16426
+ cellSize?: number | undefined;
16427
+ }>;
16428
+
16429
+ export declare type GridSymmetryInteractiveArea = (typeof GRID_SYMMETRY_INTERACTIVE_AREAS)[number];
16430
+
16431
+ export declare type GridSymmetryJSON = z.infer<typeof GridSymmetryJSONSchema>;
16432
+
16433
+ export declare const GridSymmetryJSONSchema: z.ZodEffects<z.ZodObject<{
16434
+ type: z.ZodLiteral<"grid-symmetry">;
16435
+ rows: z.ZodNumber;
16436
+ cols: z.ZodNumber;
16437
+ axis: z.ZodEnum<["vertical", "horizontal"]>;
16438
+ interactiveArea: z.ZodEnum<["left", "right", "top", "bottom"]>;
16439
+ cellSize: z.ZodDefault<z.ZodNumber>;
16440
+ cells: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
16441
+ }, "strip", z.ZodTypeAny, {
16442
+ axis: "horizontal" | "vertical";
16443
+ type: "grid-symmetry";
16444
+ rows: number;
16445
+ cols: number;
16446
+ interactiveArea: "left" | "right" | "top" | "bottom";
16447
+ cellSize: number;
16448
+ cells: [number, number][];
16449
+ }, {
16450
+ axis: "horizontal" | "vertical";
16451
+ type: "grid-symmetry";
16452
+ rows: number;
16453
+ cols: number;
16454
+ interactiveArea: "left" | "right" | "top" | "bottom";
16455
+ cells: [number, number][];
16456
+ cellSize?: number | undefined;
16457
+ }>, {
16458
+ axis: "horizontal" | "vertical";
16459
+ type: "grid-symmetry";
16460
+ rows: number;
16461
+ cols: number;
16462
+ interactiveArea: "left" | "right" | "top" | "bottom";
16463
+ cellSize: number;
16464
+ cells: [number, number][];
16465
+ }, {
16466
+ axis: "horizontal" | "vertical";
16467
+ type: "grid-symmetry";
16468
+ rows: number;
16469
+ cols: number;
16470
+ interactiveArea: "left" | "right" | "top" | "bottom";
16471
+ cells: [number, number][];
16472
+ cellSize?: number | undefined;
16473
+ }>;
15987
16474
 
15988
16475
  export declare type GroupItem = z.infer<typeof GroupItemSchema>;
15989
16476
 
@@ -15992,20 +16479,15 @@ export declare const GroupItemSchema: z.ZodObject<{
15992
16479
  type: z.ZodLiteral<"group">;
15993
16480
  items: z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">;
15994
16481
  }, "strip", z.ZodTypeAny, {
15995
- items: any[];
15996
16482
  type: "group";
16483
+ items: any[];
15997
16484
  id: string;
15998
16485
  }, {
15999
- items: any[];
16000
16486
  type: "group";
16487
+ items: any[];
16001
16488
  id: string;
16002
16489
  }>;
16003
16490
 
16004
- /**
16005
- * Validation Result Types
16006
- *
16007
- * These define the output of validation operations.
16008
- */
16009
16491
  /**
16010
16492
  * Validation result for a single matched group (works for any matcher-type widget:
16011
16493
  * Matcher groups of N items, PairMatcher pairs of 2 items, etc.)
@@ -16072,6 +16554,8 @@ export declare const ImageInlineSchema: z.ZodObject<{
16072
16554
  alt: z.ZodString;
16073
16555
  width: z.ZodOptional<z.ZodNumber>;
16074
16556
  height: z.ZodOptional<z.ZodNumber>;
16557
+ /** Opt-in: show an expand control that opens the image fullscreen. */
16558
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
16075
16559
  }, "strip", z.ZodTypeAny, {
16076
16560
  type: "Image";
16077
16561
  name: string;
@@ -16079,6 +16563,7 @@ export declare const ImageInlineSchema: z.ZodObject<{
16079
16563
  alt: string;
16080
16564
  width?: number | undefined;
16081
16565
  height?: number | undefined;
16566
+ fullscreen?: boolean | undefined;
16082
16567
  }, {
16083
16568
  type: "Image";
16084
16569
  name: string;
@@ -16086,6 +16571,7 @@ export declare const ImageInlineSchema: z.ZodObject<{
16086
16571
  alt: string;
16087
16572
  width?: number | undefined;
16088
16573
  height?: number | undefined;
16574
+ fullscreen?: boolean | undefined;
16089
16575
  }>;
16090
16576
 
16091
16577
  export declare type ImageItem = z.infer<typeof ImageItemSchema>;
@@ -16098,6 +16584,8 @@ export declare const ImageItemSchema: z.ZodObject<{
16098
16584
  alt: z.ZodString;
16099
16585
  width: z.ZodOptional<z.ZodNumber>;
16100
16586
  height: z.ZodOptional<z.ZodNumber>;
16587
+ /** Opt-in: show an expand control that opens the image fullscreen. */
16588
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
16101
16589
  }, "strip", z.ZodTypeAny, {
16102
16590
  type: "image";
16103
16591
  name: string;
@@ -16106,6 +16594,7 @@ export declare const ImageItemSchema: z.ZodObject<{
16106
16594
  id: string;
16107
16595
  width?: number | undefined;
16108
16596
  height?: number | undefined;
16597
+ fullscreen?: boolean | undefined;
16109
16598
  }, {
16110
16599
  type: "image";
16111
16600
  name: string;
@@ -16114,6 +16603,7 @@ export declare const ImageItemSchema: z.ZodObject<{
16114
16603
  id: string;
16115
16604
  width?: number | undefined;
16116
16605
  height?: number | undefined;
16606
+ fullscreen?: boolean | undefined;
16117
16607
  }>;
16118
16608
 
16119
16609
  export declare type InlineDragOption = z.infer<typeof InlineDragOptionSchema>;
@@ -16374,6 +16864,8 @@ export declare const InlineNodeSchema: z.ZodUnion<[z.ZodObject<{
16374
16864
  alt: z.ZodString;
16375
16865
  width: z.ZodOptional<z.ZodNumber>;
16376
16866
  height: z.ZodOptional<z.ZodNumber>;
16867
+ /** Opt-in: show an expand control that opens the image fullscreen. */
16868
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
16377
16869
  }, "strip", z.ZodTypeAny, {
16378
16870
  type: "Image";
16379
16871
  name: string;
@@ -16381,6 +16873,7 @@ export declare const InlineNodeSchema: z.ZodUnion<[z.ZodObject<{
16381
16873
  alt: string;
16382
16874
  width?: number | undefined;
16383
16875
  height?: number | undefined;
16876
+ fullscreen?: boolean | undefined;
16384
16877
  }, {
16385
16878
  type: "Image";
16386
16879
  name: string;
@@ -16388,6 +16881,7 @@ export declare const InlineNodeSchema: z.ZodUnion<[z.ZodObject<{
16388
16881
  alt: string;
16389
16882
  width?: number | undefined;
16390
16883
  height?: number | undefined;
16884
+ fullscreen?: boolean | undefined;
16391
16885
  }>, z.ZodEffects<z.ZodObject<{
16392
16886
  type: z.ZodLiteral<"VisualFraction">;
16393
16887
  name: z.ZodString;
@@ -16524,6 +17018,8 @@ export declare function isBoldText(item: LayoutItem): item is Extract<LayoutItem
16524
17018
  type: 'bold-text';
16525
17019
  }>;
16526
17020
 
17021
+ export declare function isCellInInteractiveArea(cell: GridCell, rows: number, cols: number, area: GridSymmetryInteractiveArea): boolean;
17022
+
16527
17023
  export declare function isClock(value: unknown): value is ClockInline;
16528
17024
 
16529
17025
  /**
@@ -16566,6 +17062,12 @@ export declare function isFractionKey(key: string): boolean;
16566
17062
 
16567
17063
  export declare function isFreeText(value: unknown): value is FreeTextInline;
16568
17064
 
17065
+ export declare function isGridSymmetryBlock(value: unknown): value is GridSymmetryBlock;
17066
+
17067
+ export declare function isGridSymmetryJSON(widget: WidgetJSON): widget is Extract<WidgetJSON, {
17068
+ type: 'grid-symmetry';
17069
+ }>;
17070
+
16569
17071
  /**
16570
17072
  * Type guard for GroupItem
16571
17073
  */
@@ -16846,6 +17348,8 @@ export declare const JSON_TYPES: {
16846
17348
  readonly FRACTION: "fraction";
16847
17349
  /** Visual fraction widget */
16848
17350
  readonly VISUAL_FRACTION: "visual-fraction";
17351
+ /** Interactive symmetry exercise on a grid */
17352
+ readonly GRID_SYMMETRY: "grid-symmetry";
16849
17353
  /** Ruler geometry tool widget */
16850
17354
  readonly RULER: "ruler";
16851
17355
  /** Protractor geometry tool widget */
@@ -17036,6 +17540,7 @@ export declare const LineBlockSchema: z.ZodObject<{
17036
17540
  alt: z.ZodString;
17037
17541
  width: z.ZodOptional<z.ZodNumber>;
17038
17542
  height: z.ZodOptional<z.ZodNumber>;
17543
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
17039
17544
  }, "strip", z.ZodTypeAny, {
17040
17545
  type: "Image";
17041
17546
  name: string;
@@ -17043,6 +17548,7 @@ export declare const LineBlockSchema: z.ZodObject<{
17043
17548
  alt: string;
17044
17549
  width?: number | undefined;
17045
17550
  height?: number | undefined;
17551
+ fullscreen?: boolean | undefined;
17046
17552
  }, {
17047
17553
  type: "Image";
17048
17554
  name: string;
@@ -17050,6 +17556,7 @@ export declare const LineBlockSchema: z.ZodObject<{
17050
17556
  alt: string;
17051
17557
  width?: number | undefined;
17052
17558
  height?: number | undefined;
17559
+ fullscreen?: boolean | undefined;
17053
17560
  }>, z.ZodEffects<z.ZodObject<{
17054
17561
  type: z.ZodLiteral<"VisualFraction">;
17055
17562
  name: z.ZodString;
@@ -17207,6 +17714,7 @@ export declare const LineBlockSchema: z.ZodObject<{
17207
17714
  alt: string;
17208
17715
  width?: number | undefined;
17209
17716
  height?: number | undefined;
17717
+ fullscreen?: boolean | undefined;
17210
17718
  } | {
17211
17719
  type: "VisualFraction";
17212
17720
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -17286,6 +17794,7 @@ export declare const LineBlockSchema: z.ZodObject<{
17286
17794
  alt: string;
17287
17795
  width?: number | undefined;
17288
17796
  height?: number | undefined;
17797
+ fullscreen?: boolean | undefined;
17289
17798
  } | {
17290
17799
  type: "VisualFraction";
17291
17800
  name: string;
@@ -17446,6 +17955,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17446
17955
  alt: z.ZodString;
17447
17956
  width: z.ZodOptional<z.ZodNumber>;
17448
17957
  height: z.ZodOptional<z.ZodNumber>;
17958
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
17449
17959
  }, "strip", z.ZodTypeAny, {
17450
17960
  type: "Image";
17451
17961
  name: string;
@@ -17453,6 +17963,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17453
17963
  alt: string;
17454
17964
  width?: number | undefined;
17455
17965
  height?: number | undefined;
17966
+ fullscreen?: boolean | undefined;
17456
17967
  }, {
17457
17968
  type: "Image";
17458
17969
  name: string;
@@ -17460,6 +17971,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17460
17971
  alt: string;
17461
17972
  width?: number | undefined;
17462
17973
  height?: number | undefined;
17974
+ fullscreen?: boolean | undefined;
17463
17975
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
17464
17976
  type: z.ZodLiteral<"VisualFraction">;
17465
17977
  name: z.ZodString;
@@ -17566,6 +18078,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17566
18078
  alt: string;
17567
18079
  width?: number | undefined;
17568
18080
  height?: number | undefined;
18081
+ fullscreen?: boolean | undefined;
17569
18082
  } | {
17570
18083
  type: "VisualFraction";
17571
18084
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -17613,6 +18126,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17613
18126
  alt: string;
17614
18127
  width?: number | undefined;
17615
18128
  height?: number | undefined;
18129
+ fullscreen?: boolean | undefined;
17616
18130
  } | {
17617
18131
  type: "VisualFraction";
17618
18132
  name: string;
@@ -17627,6 +18141,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17627
18141
  itemId: string;
17628
18142
  }>, "many">;
17629
18143
  }, "strip", z.ZodTypeAny, {
18144
+ type: "MatcherRow";
17630
18145
  items: {
17631
18146
  type: "MatcherItem";
17632
18147
  inlines: ({
@@ -17662,6 +18177,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17662
18177
  alt: string;
17663
18178
  width?: number | undefined;
17664
18179
  height?: number | undefined;
18180
+ fullscreen?: boolean | undefined;
17665
18181
  } | {
17666
18182
  type: "VisualFraction";
17667
18183
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -17675,8 +18191,8 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17675
18191
  })[];
17676
18192
  itemId: string;
17677
18193
  }[];
17678
- type: "MatcherRow";
17679
18194
  }, {
18195
+ type: "MatcherRow";
17680
18196
  items: {
17681
18197
  type: "MatcherItem";
17682
18198
  inlines: ({
@@ -17712,6 +18228,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17712
18228
  alt: string;
17713
18229
  width?: number | undefined;
17714
18230
  height?: number | undefined;
18231
+ fullscreen?: boolean | undefined;
17715
18232
  } | {
17716
18233
  type: "VisualFraction";
17717
18234
  name: string;
@@ -17725,13 +18242,13 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17725
18242
  })[];
17726
18243
  itemId: string;
17727
18244
  }[];
17728
- type: "MatcherRow";
17729
18245
  }>, "many">;
17730
18246
  answers: z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">;
17731
18247
  }, "strip", z.ZodTypeAny, {
17732
18248
  type: "MatcherBlock";
17733
18249
  name: string;
17734
18250
  rows: {
18251
+ type: "MatcherRow";
17735
18252
  items: {
17736
18253
  type: "MatcherItem";
17737
18254
  inlines: ({
@@ -17767,6 +18284,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17767
18284
  alt: string;
17768
18285
  width?: number | undefined;
17769
18286
  height?: number | undefined;
18287
+ fullscreen?: boolean | undefined;
17770
18288
  } | {
17771
18289
  type: "VisualFraction";
17772
18290
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -17780,7 +18298,6 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17780
18298
  })[];
17781
18299
  itemId: string;
17782
18300
  }[];
17783
- type: "MatcherRow";
17784
18301
  }[];
17785
18302
  answers: string[][];
17786
18303
  colors?: string[] | undefined;
@@ -17788,6 +18305,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17788
18305
  type: "MatcherBlock";
17789
18306
  name: string;
17790
18307
  rows: {
18308
+ type: "MatcherRow";
17791
18309
  items: {
17792
18310
  type: "MatcherItem";
17793
18311
  inlines: ({
@@ -17823,6 +18341,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17823
18341
  alt: string;
17824
18342
  width?: number | undefined;
17825
18343
  height?: number | undefined;
18344
+ fullscreen?: boolean | undefined;
17826
18345
  } | {
17827
18346
  type: "VisualFraction";
17828
18347
  name: string;
@@ -17836,7 +18355,6 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17836
18355
  })[];
17837
18356
  itemId: string;
17838
18357
  }[];
17839
- type: "MatcherRow";
17840
18358
  }[];
17841
18359
  answers: string[][];
17842
18360
  colors?: string[] | undefined;
@@ -17844,6 +18362,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17844
18362
  type: "MatcherBlock";
17845
18363
  name: string;
17846
18364
  rows: {
18365
+ type: "MatcherRow";
17847
18366
  items: {
17848
18367
  type: "MatcherItem";
17849
18368
  inlines: ({
@@ -17879,6 +18398,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17879
18398
  alt: string;
17880
18399
  width?: number | undefined;
17881
18400
  height?: number | undefined;
18401
+ fullscreen?: boolean | undefined;
17882
18402
  } | {
17883
18403
  type: "VisualFraction";
17884
18404
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -17892,7 +18412,6 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17892
18412
  })[];
17893
18413
  itemId: string;
17894
18414
  }[];
17895
- type: "MatcherRow";
17896
18415
  }[];
17897
18416
  answers: string[][];
17898
18417
  colors?: string[] | undefined;
@@ -17900,6 +18419,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17900
18419
  type: "MatcherBlock";
17901
18420
  name: string;
17902
18421
  rows: {
18422
+ type: "MatcherRow";
17903
18423
  items: {
17904
18424
  type: "MatcherItem";
17905
18425
  inlines: ({
@@ -17935,6 +18455,7 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17935
18455
  alt: string;
17936
18456
  width?: number | undefined;
17937
18457
  height?: number | undefined;
18458
+ fullscreen?: boolean | undefined;
17938
18459
  } | {
17939
18460
  type: "VisualFraction";
17940
18461
  name: string;
@@ -17948,7 +18469,6 @@ export declare const MatcherBlockSchema: z.ZodEffects<z.ZodObject<{
17948
18469
  })[];
17949
18470
  itemId: string;
17950
18471
  }[];
17951
- type: "MatcherRow";
17952
18472
  }[];
17953
18473
  answers: string[][];
17954
18474
  colors?: string[] | undefined;
@@ -18081,6 +18601,7 @@ export declare const MatcherItemSchema: z.ZodObject<{
18081
18601
  alt: z.ZodString;
18082
18602
  width: z.ZodOptional<z.ZodNumber>;
18083
18603
  height: z.ZodOptional<z.ZodNumber>;
18604
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
18084
18605
  }, "strip", z.ZodTypeAny, {
18085
18606
  type: "Image";
18086
18607
  name: string;
@@ -18088,6 +18609,7 @@ export declare const MatcherItemSchema: z.ZodObject<{
18088
18609
  alt: string;
18089
18610
  width?: number | undefined;
18090
18611
  height?: number | undefined;
18612
+ fullscreen?: boolean | undefined;
18091
18613
  }, {
18092
18614
  type: "Image";
18093
18615
  name: string;
@@ -18095,6 +18617,7 @@ export declare const MatcherItemSchema: z.ZodObject<{
18095
18617
  alt: string;
18096
18618
  width?: number | undefined;
18097
18619
  height?: number | undefined;
18620
+ fullscreen?: boolean | undefined;
18098
18621
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
18099
18622
  type: z.ZodLiteral<"VisualFraction">;
18100
18623
  name: z.ZodString;
@@ -18201,6 +18724,7 @@ export declare const MatcherItemSchema: z.ZodObject<{
18201
18724
  alt: string;
18202
18725
  width?: number | undefined;
18203
18726
  height?: number | undefined;
18727
+ fullscreen?: boolean | undefined;
18204
18728
  } | {
18205
18729
  type: "VisualFraction";
18206
18730
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -18248,6 +18772,7 @@ export declare const MatcherItemSchema: z.ZodObject<{
18248
18772
  alt: string;
18249
18773
  width?: number | undefined;
18250
18774
  height?: number | undefined;
18775
+ fullscreen?: boolean | undefined;
18251
18776
  } | {
18252
18777
  type: "VisualFraction";
18253
18778
  name: string;
@@ -18288,22 +18813,22 @@ declare const MatcherRowItemSchema: z.ZodObject<{
18288
18813
  content: any[];
18289
18814
  }>, "many">;
18290
18815
  }, "strip", z.ZodTypeAny, {
18816
+ type: "matcher-row";
18291
18817
  items: {
18292
18818
  type: "matcher-item";
18293
18819
  itemId: string;
18294
18820
  id: string;
18295
18821
  content: any[];
18296
18822
  }[];
18297
- type: "matcher-row";
18298
18823
  id: string;
18299
18824
  }, {
18825
+ type: "matcher-row";
18300
18826
  items: {
18301
18827
  type: "matcher-item";
18302
18828
  itemId: string;
18303
18829
  id: string;
18304
18830
  content: any[];
18305
18831
  }[];
18306
- type: "matcher-row";
18307
18832
  id: string;
18308
18833
  }>;
18309
18834
 
@@ -18414,6 +18939,7 @@ export declare const MatcherRowSchema: z.ZodObject<{
18414
18939
  alt: z.ZodString;
18415
18940
  width: z.ZodOptional<z.ZodNumber>;
18416
18941
  height: z.ZodOptional<z.ZodNumber>;
18942
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
18417
18943
  }, "strip", z.ZodTypeAny, {
18418
18944
  type: "Image";
18419
18945
  name: string;
@@ -18421,6 +18947,7 @@ export declare const MatcherRowSchema: z.ZodObject<{
18421
18947
  alt: string;
18422
18948
  width?: number | undefined;
18423
18949
  height?: number | undefined;
18950
+ fullscreen?: boolean | undefined;
18424
18951
  }, {
18425
18952
  type: "Image";
18426
18953
  name: string;
@@ -18428,6 +18955,7 @@ export declare const MatcherRowSchema: z.ZodObject<{
18428
18955
  alt: string;
18429
18956
  width?: number | undefined;
18430
18957
  height?: number | undefined;
18958
+ fullscreen?: boolean | undefined;
18431
18959
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
18432
18960
  type: z.ZodLiteral<"VisualFraction">;
18433
18961
  name: z.ZodString;
@@ -18534,6 +19062,7 @@ export declare const MatcherRowSchema: z.ZodObject<{
18534
19062
  alt: string;
18535
19063
  width?: number | undefined;
18536
19064
  height?: number | undefined;
19065
+ fullscreen?: boolean | undefined;
18537
19066
  } | {
18538
19067
  type: "VisualFraction";
18539
19068
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -18581,6 +19110,7 @@ export declare const MatcherRowSchema: z.ZodObject<{
18581
19110
  alt: string;
18582
19111
  width?: number | undefined;
18583
19112
  height?: number | undefined;
19113
+ fullscreen?: boolean | undefined;
18584
19114
  } | {
18585
19115
  type: "VisualFraction";
18586
19116
  name: string;
@@ -18595,6 +19125,7 @@ export declare const MatcherRowSchema: z.ZodObject<{
18595
19125
  itemId: string;
18596
19126
  }>, "many">;
18597
19127
  }, "strip", z.ZodTypeAny, {
19128
+ type: "MatcherRow";
18598
19129
  items: {
18599
19130
  type: "MatcherItem";
18600
19131
  inlines: ({
@@ -18630,6 +19161,7 @@ export declare const MatcherRowSchema: z.ZodObject<{
18630
19161
  alt: string;
18631
19162
  width?: number | undefined;
18632
19163
  height?: number | undefined;
19164
+ fullscreen?: boolean | undefined;
18633
19165
  } | {
18634
19166
  type: "VisualFraction";
18635
19167
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -18643,8 +19175,8 @@ export declare const MatcherRowSchema: z.ZodObject<{
18643
19175
  })[];
18644
19176
  itemId: string;
18645
19177
  }[];
18646
- type: "MatcherRow";
18647
19178
  }, {
19179
+ type: "MatcherRow";
18648
19180
  items: {
18649
19181
  type: "MatcherItem";
18650
19182
  inlines: ({
@@ -18680,6 +19212,7 @@ export declare const MatcherRowSchema: z.ZodObject<{
18680
19212
  alt: string;
18681
19213
  width?: number | undefined;
18682
19214
  height?: number | undefined;
19215
+ fullscreen?: boolean | undefined;
18683
19216
  } | {
18684
19217
  type: "VisualFraction";
18685
19218
  name: string;
@@ -18693,7 +19226,6 @@ export declare const MatcherRowSchema: z.ZodObject<{
18693
19226
  })[];
18694
19227
  itemId: string;
18695
19228
  }[];
18696
- type: "MatcherRow";
18697
19229
  }>;
18698
19230
 
18699
19231
  export declare type MatcherWidgetJSON = z.infer<typeof MatcherWidgetJSONSchema>;
@@ -18727,22 +19259,22 @@ export declare const MatcherWidgetJSONSchema: z.ZodObject<{
18727
19259
  content: any[];
18728
19260
  }>, "many">;
18729
19261
  }, "strip", z.ZodTypeAny, {
19262
+ type: "matcher-row";
18730
19263
  items: {
18731
19264
  type: "matcher-item";
18732
19265
  itemId: string;
18733
19266
  id: string;
18734
19267
  content: any[];
18735
19268
  }[];
18736
- type: "matcher-row";
18737
19269
  id: string;
18738
19270
  }, {
19271
+ type: "matcher-row";
18739
19272
  items: {
18740
19273
  type: "matcher-item";
18741
19274
  itemId: string;
18742
19275
  id: string;
18743
19276
  content: any[];
18744
19277
  }[];
18745
- type: "matcher-row";
18746
19278
  id: string;
18747
19279
  }>, "many">;
18748
19280
  /** Optional color palette for the renderer (one color per answer group) */
@@ -18752,13 +19284,13 @@ export declare const MatcherWidgetJSONSchema: z.ZodObject<{
18752
19284
  }, "strip", z.ZodTypeAny, {
18753
19285
  type: "matcher";
18754
19286
  rows: {
19287
+ type: "matcher-row";
18755
19288
  items: {
18756
19289
  type: "matcher-item";
18757
19290
  itemId: string;
18758
19291
  id: string;
18759
19292
  content: any[];
18760
19293
  }[];
18761
- type: "matcher-row";
18762
19294
  id: string;
18763
19295
  }[];
18764
19296
  groupCount: number;
@@ -18766,13 +19298,13 @@ export declare const MatcherWidgetJSONSchema: z.ZodObject<{
18766
19298
  }, {
18767
19299
  type: "matcher";
18768
19300
  rows: {
19301
+ type: "matcher-row";
18769
19302
  items: {
18770
19303
  type: "matcher-item";
18771
19304
  itemId: string;
18772
19305
  id: string;
18773
19306
  content: any[];
18774
19307
  }[];
18775
- type: "matcher-row";
18776
19308
  id: string;
18777
19309
  }[];
18778
19310
  groupCount: number;
@@ -18840,7 +19372,9 @@ export declare const NumberLineArrowItemSchema: z.ZodObject<{
18840
19372
  }>;
18841
19373
 
18842
19374
  /**
18843
- * A left-to-right arrow annotation above a number line interval.
19375
+ * An arrow annotation above a number line interval, pointing from `from`
19376
+ * toward `to`. When `from > to` the arrow is visually reversed (arrowhead
19377
+ * on the smaller/left side) — useful for counting down.
18844
19378
  *
18845
19379
  * Optional content is inline so authors can write labels such as `+1`, `+ 10`, or richer
18846
19380
  * inline elements that already exist in the DSL.
@@ -18977,6 +19511,7 @@ declare const NumberLineArrowSchema: z.ZodEffects<z.ZodObject<{
18977
19511
  alt: z.ZodString;
18978
19512
  width: z.ZodOptional<z.ZodNumber>;
18979
19513
  height: z.ZodOptional<z.ZodNumber>;
19514
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
18980
19515
  }, "strip", z.ZodTypeAny, {
18981
19516
  type: "Image";
18982
19517
  name: string;
@@ -18984,6 +19519,7 @@ declare const NumberLineArrowSchema: z.ZodEffects<z.ZodObject<{
18984
19519
  alt: string;
18985
19520
  width?: number | undefined;
18986
19521
  height?: number | undefined;
19522
+ fullscreen?: boolean | undefined;
18987
19523
  }, {
18988
19524
  type: "Image";
18989
19525
  name: string;
@@ -18991,6 +19527,7 @@ declare const NumberLineArrowSchema: z.ZodEffects<z.ZodObject<{
18991
19527
  alt: string;
18992
19528
  width?: number | undefined;
18993
19529
  height?: number | undefined;
19530
+ fullscreen?: boolean | undefined;
18994
19531
  }>, z.ZodEffects<z.ZodObject<{
18995
19532
  type: z.ZodLiteral<"VisualFraction">;
18996
19533
  name: z.ZodString;
@@ -19148,6 +19685,7 @@ declare const NumberLineArrowSchema: z.ZodEffects<z.ZodObject<{
19148
19685
  alt: string;
19149
19686
  width?: number | undefined;
19150
19687
  height?: number | undefined;
19688
+ fullscreen?: boolean | undefined;
19151
19689
  } | {
19152
19690
  type: "VisualFraction";
19153
19691
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -19230,6 +19768,7 @@ declare const NumberLineArrowSchema: z.ZodEffects<z.ZodObject<{
19230
19768
  alt: string;
19231
19769
  width?: number | undefined;
19232
19770
  height?: number | undefined;
19771
+ fullscreen?: boolean | undefined;
19233
19772
  } | {
19234
19773
  type: "VisualFraction";
19235
19774
  name: string;
@@ -19312,6 +19851,7 @@ declare const NumberLineArrowSchema: z.ZodEffects<z.ZodObject<{
19312
19851
  alt: string;
19313
19852
  width?: number | undefined;
19314
19853
  height?: number | undefined;
19854
+ fullscreen?: boolean | undefined;
19315
19855
  } | {
19316
19856
  type: "VisualFraction";
19317
19857
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -19394,6 +19934,7 @@ declare const NumberLineArrowSchema: z.ZodEffects<z.ZodObject<{
19394
19934
  alt: string;
19395
19935
  width?: number | undefined;
19396
19936
  height?: number | undefined;
19937
+ fullscreen?: boolean | undefined;
19397
19938
  } | {
19398
19939
  type: "VisualFraction";
19399
19940
  name: string;
@@ -19491,31 +20032,31 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
19491
20032
  type: z.ZodLiteral<"NumberLineHighlight">;
19492
20033
  from: z.ZodNumber;
19493
20034
  to: z.ZodNumber;
19494
- color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
20035
+ color: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
19495
20036
  label: z.ZodOptional<z.ZodString>;
19496
20037
  }, "strip", z.ZodTypeAny, {
19497
20038
  type: "NumberLineHighlight";
19498
20039
  from: number;
19499
20040
  to: number;
19500
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
20041
+ color?: string | undefined;
19501
20042
  label?: string | undefined;
19502
20043
  }, {
19503
20044
  type: "NumberLineHighlight";
19504
20045
  from: number;
19505
20046
  to: number;
19506
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
20047
+ color?: string | undefined;
19507
20048
  label?: string | undefined;
19508
20049
  }>, {
19509
20050
  type: "NumberLineHighlight";
19510
20051
  from: number;
19511
20052
  to: number;
19512
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
20053
+ color?: string | undefined;
19513
20054
  label?: string | undefined;
19514
20055
  }, {
19515
20056
  type: "NumberLineHighlight";
19516
20057
  from: number;
19517
20058
  to: number;
19518
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
20059
+ color?: string | undefined;
19519
20060
  label?: string | undefined;
19520
20061
  }>, "many">>;
19521
20062
  cursors: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -19672,6 +20213,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
19672
20213
  alt: z.ZodString;
19673
20214
  width: z.ZodOptional<z.ZodNumber>;
19674
20215
  height: z.ZodOptional<z.ZodNumber>;
20216
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
19675
20217
  }, "strip", z.ZodTypeAny, {
19676
20218
  type: "Image";
19677
20219
  name: string;
@@ -19679,6 +20221,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
19679
20221
  alt: string;
19680
20222
  width?: number | undefined;
19681
20223
  height?: number | undefined;
20224
+ fullscreen?: boolean | undefined;
19682
20225
  }, {
19683
20226
  type: "Image";
19684
20227
  name: string;
@@ -19686,6 +20229,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
19686
20229
  alt: string;
19687
20230
  width?: number | undefined;
19688
20231
  height?: number | undefined;
20232
+ fullscreen?: boolean | undefined;
19689
20233
  }>, z.ZodEffects<z.ZodObject<{
19690
20234
  type: z.ZodLiteral<"VisualFraction">;
19691
20235
  name: z.ZodString;
@@ -19843,6 +20387,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
19843
20387
  alt: string;
19844
20388
  width?: number | undefined;
19845
20389
  height?: number | undefined;
20390
+ fullscreen?: boolean | undefined;
19846
20391
  } | {
19847
20392
  type: "VisualFraction";
19848
20393
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -19925,6 +20470,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
19925
20470
  alt: string;
19926
20471
  width?: number | undefined;
19927
20472
  height?: number | undefined;
20473
+ fullscreen?: boolean | undefined;
19928
20474
  } | {
19929
20475
  type: "VisualFraction";
19930
20476
  name: string;
@@ -20007,6 +20553,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20007
20553
  alt: string;
20008
20554
  width?: number | undefined;
20009
20555
  height?: number | undefined;
20556
+ fullscreen?: boolean | undefined;
20010
20557
  } | {
20011
20558
  type: "VisualFraction";
20012
20559
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -20089,6 +20636,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20089
20636
  alt: string;
20090
20637
  width?: number | undefined;
20091
20638
  height?: number | undefined;
20639
+ fullscreen?: boolean | undefined;
20092
20640
  } | {
20093
20641
  type: "VisualFraction";
20094
20642
  name: string;
@@ -20254,6 +20802,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20254
20802
  alt: z.ZodString;
20255
20803
  width: z.ZodOptional<z.ZodNumber>;
20256
20804
  height: z.ZodOptional<z.ZodNumber>;
20805
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
20257
20806
  }, "strip", z.ZodTypeAny, {
20258
20807
  type: "Image";
20259
20808
  name: string;
@@ -20261,6 +20810,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20261
20810
  alt: string;
20262
20811
  width?: number | undefined;
20263
20812
  height?: number | undefined;
20813
+ fullscreen?: boolean | undefined;
20264
20814
  }, {
20265
20815
  type: "Image";
20266
20816
  name: string;
@@ -20268,6 +20818,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20268
20818
  alt: string;
20269
20819
  width?: number | undefined;
20270
20820
  height?: number | undefined;
20821
+ fullscreen?: boolean | undefined;
20271
20822
  }>, z.ZodEffects<z.ZodObject<{
20272
20823
  type: z.ZodLiteral<"VisualFraction">;
20273
20824
  name: z.ZodString;
@@ -20426,6 +20977,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20426
20977
  alt: string;
20427
20978
  width?: number | undefined;
20428
20979
  height?: number | undefined;
20980
+ fullscreen?: boolean | undefined;
20429
20981
  } | {
20430
20982
  type: "VisualFraction";
20431
20983
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -20506,6 +21058,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20506
21058
  alt: string;
20507
21059
  width?: number | undefined;
20508
21060
  height?: number | undefined;
21061
+ fullscreen?: boolean | undefined;
20509
21062
  } | {
20510
21063
  type: "VisualFraction";
20511
21064
  name: string;
@@ -20592,6 +21145,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20592
21145
  alt: string;
20593
21146
  width?: number | undefined;
20594
21147
  height?: number | undefined;
21148
+ fullscreen?: boolean | undefined;
20595
21149
  } | {
20596
21150
  type: "VisualFraction";
20597
21151
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -20638,7 +21192,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20638
21192
  type: "NumberLineHighlight";
20639
21193
  from: number;
20640
21194
  to: number;
20641
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
21195
+ color?: string | undefined;
20642
21196
  label?: string | undefined;
20643
21197
  }[] | undefined;
20644
21198
  cursors?: {
@@ -20698,6 +21252,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20698
21252
  alt: string;
20699
21253
  width?: number | undefined;
20700
21254
  height?: number | undefined;
21255
+ fullscreen?: boolean | undefined;
20701
21256
  } | {
20702
21257
  type: "VisualFraction";
20703
21258
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -20787,6 +21342,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20787
21342
  alt: string;
20788
21343
  width?: number | undefined;
20789
21344
  height?: number | undefined;
21345
+ fullscreen?: boolean | undefined;
20790
21346
  } | {
20791
21347
  type: "VisualFraction";
20792
21348
  name: string;
@@ -20834,7 +21390,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20834
21390
  type: "NumberLineHighlight";
20835
21391
  from: number;
20836
21392
  to: number;
20837
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
21393
+ color?: string | undefined;
20838
21394
  label?: string | undefined;
20839
21395
  }[] | undefined;
20840
21396
  cursors?: {
@@ -20894,6 +21450,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20894
21450
  alt: string;
20895
21451
  width?: number | undefined;
20896
21452
  height?: number | undefined;
21453
+ fullscreen?: boolean | undefined;
20897
21454
  } | {
20898
21455
  type: "VisualFraction";
20899
21456
  name: string;
@@ -20984,6 +21541,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
20984
21541
  alt: string;
20985
21542
  width?: number | undefined;
20986
21543
  height?: number | undefined;
21544
+ fullscreen?: boolean | undefined;
20987
21545
  } | {
20988
21546
  type: "VisualFraction";
20989
21547
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -21030,7 +21588,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21030
21588
  type: "NumberLineHighlight";
21031
21589
  from: number;
21032
21590
  to: number;
21033
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
21591
+ color?: string | undefined;
21034
21592
  label?: string | undefined;
21035
21593
  }[] | undefined;
21036
21594
  cursors?: {
@@ -21090,6 +21648,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21090
21648
  alt: string;
21091
21649
  width?: number | undefined;
21092
21650
  height?: number | undefined;
21651
+ fullscreen?: boolean | undefined;
21093
21652
  } | {
21094
21653
  type: "VisualFraction";
21095
21654
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -21179,6 +21738,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21179
21738
  alt: string;
21180
21739
  width?: number | undefined;
21181
21740
  height?: number | undefined;
21741
+ fullscreen?: boolean | undefined;
21182
21742
  } | {
21183
21743
  type: "VisualFraction";
21184
21744
  name: string;
@@ -21226,7 +21786,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21226
21786
  type: "NumberLineHighlight";
21227
21787
  from: number;
21228
21788
  to: number;
21229
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
21789
+ color?: string | undefined;
21230
21790
  label?: string | undefined;
21231
21791
  }[] | undefined;
21232
21792
  cursors?: {
@@ -21286,6 +21846,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21286
21846
  alt: string;
21287
21847
  width?: number | undefined;
21288
21848
  height?: number | undefined;
21849
+ fullscreen?: boolean | undefined;
21289
21850
  } | {
21290
21851
  type: "VisualFraction";
21291
21852
  name: string;
@@ -21376,6 +21937,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21376
21937
  alt: string;
21377
21938
  width?: number | undefined;
21378
21939
  height?: number | undefined;
21940
+ fullscreen?: boolean | undefined;
21379
21941
  } | {
21380
21942
  type: "VisualFraction";
21381
21943
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -21422,7 +21984,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21422
21984
  type: "NumberLineHighlight";
21423
21985
  from: number;
21424
21986
  to: number;
21425
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
21987
+ color?: string | undefined;
21426
21988
  label?: string | undefined;
21427
21989
  }[] | undefined;
21428
21990
  cursors?: {
@@ -21482,6 +22044,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21482
22044
  alt: string;
21483
22045
  width?: number | undefined;
21484
22046
  height?: number | undefined;
22047
+ fullscreen?: boolean | undefined;
21485
22048
  } | {
21486
22049
  type: "VisualFraction";
21487
22050
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -21571,6 +22134,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21571
22134
  alt: string;
21572
22135
  width?: number | undefined;
21573
22136
  height?: number | undefined;
22137
+ fullscreen?: boolean | undefined;
21574
22138
  } | {
21575
22139
  type: "VisualFraction";
21576
22140
  name: string;
@@ -21618,7 +22182,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21618
22182
  type: "NumberLineHighlight";
21619
22183
  from: number;
21620
22184
  to: number;
21621
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22185
+ color?: string | undefined;
21622
22186
  label?: string | undefined;
21623
22187
  }[] | undefined;
21624
22188
  cursors?: {
@@ -21678,6 +22242,7 @@ declare const NumberLineBlockSchema: z.ZodEffects<z.ZodEffects<z.ZodObject<{
21678
22242
  alt: string;
21679
22243
  width?: number | undefined;
21680
22244
  height?: number | undefined;
22245
+ fullscreen?: boolean | undefined;
21681
22246
  } | {
21682
22247
  type: "VisualFraction";
21683
22248
  name: string;
@@ -21852,59 +22417,59 @@ export declare const NumberLineHighlightItemSchema: z.ZodObject<{
21852
22417
  type: z.ZodLiteral<"number-line-highlight">;
21853
22418
  from: z.ZodNumber;
21854
22419
  to: z.ZodNumber;
21855
- color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
22420
+ color: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
21856
22421
  label: z.ZodOptional<z.ZodString>;
21857
22422
  }, "strip", z.ZodTypeAny, {
21858
22423
  type: "number-line-highlight";
21859
22424
  from: number;
21860
22425
  to: number;
21861
22426
  id: string;
21862
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22427
+ color?: string | undefined;
21863
22428
  label?: string | undefined;
21864
22429
  }, {
21865
22430
  type: "number-line-highlight";
21866
22431
  from: number;
21867
22432
  to: number;
21868
22433
  id: string;
21869
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22434
+ color?: string | undefined;
21870
22435
  label?: string | undefined;
21871
22436
  }>;
21872
22437
 
21873
22438
  /**
21874
22439
  * A highlighted range on the number line axis.
21875
22440
  *
21876
- * `color` is constrained to the semantic set in NUMBER_LINE_HIGHLIGHT_COLORS
21877
- * so renderers can safely map values to design tokens.
22441
+ * `color` accepts either one of the semantic tokens in NUMBER_LINE_HIGHLIGHT_COLORS
22442
+ * (mapped to design tokens by renderers) or a raw hex color string.
21878
22443
  */
21879
22444
  declare const NumberLineHighlightSchema: z.ZodEffects<z.ZodObject<{
21880
22445
  type: z.ZodLiteral<"NumberLineHighlight">;
21881
22446
  from: z.ZodNumber;
21882
22447
  to: z.ZodNumber;
21883
- color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
22448
+ color: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
21884
22449
  label: z.ZodOptional<z.ZodString>;
21885
22450
  }, "strip", z.ZodTypeAny, {
21886
22451
  type: "NumberLineHighlight";
21887
22452
  from: number;
21888
22453
  to: number;
21889
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22454
+ color?: string | undefined;
21890
22455
  label?: string | undefined;
21891
22456
  }, {
21892
22457
  type: "NumberLineHighlight";
21893
22458
  from: number;
21894
22459
  to: number;
21895
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22460
+ color?: string | undefined;
21896
22461
  label?: string | undefined;
21897
22462
  }>, {
21898
22463
  type: "NumberLineHighlight";
21899
22464
  from: number;
21900
22465
  to: number;
21901
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22466
+ color?: string | undefined;
21902
22467
  label?: string | undefined;
21903
22468
  }, {
21904
22469
  type: "NumberLineHighlight";
21905
22470
  from: number;
21906
22471
  to: number;
21907
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22472
+ color?: string | undefined;
21908
22473
  label?: string | undefined;
21909
22474
  }>;
21910
22475
 
@@ -21949,21 +22514,21 @@ export declare const NumberLineItemSchema: z.ZodObject<{
21949
22514
  type: z.ZodLiteral<"number-line-highlight">;
21950
22515
  from: z.ZodNumber;
21951
22516
  to: z.ZodNumber;
21952
- color: z.ZodOptional<z.ZodEnum<["blue", "red", "green", "orange", "purple", "yellow"]>>;
22517
+ color: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
21953
22518
  label: z.ZodOptional<z.ZodString>;
21954
22519
  }, "strip", z.ZodTypeAny, {
21955
22520
  type: "number-line-highlight";
21956
22521
  from: number;
21957
22522
  to: number;
21958
22523
  id: string;
21959
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22524
+ color?: string | undefined;
21960
22525
  label?: string | undefined;
21961
22526
  }, {
21962
22527
  type: "number-line-highlight";
21963
22528
  from: number;
21964
22529
  to: number;
21965
22530
  id: string;
21966
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22531
+ color?: string | undefined;
21967
22532
  label?: string | undefined;
21968
22533
  }>, "many">>;
21969
22534
  cursors: z.ZodOptional<z.ZodArray<z.ZodObject<{
@@ -22059,7 +22624,7 @@ export declare const NumberLineItemSchema: z.ZodObject<{
22059
22624
  from: number;
22060
22625
  to: number;
22061
22626
  id: string;
22062
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22627
+ color?: string | undefined;
22063
22628
  label?: string | undefined;
22064
22629
  }[] | undefined;
22065
22630
  cursors?: {
@@ -22109,7 +22674,7 @@ export declare const NumberLineItemSchema: z.ZodObject<{
22109
22674
  from: number;
22110
22675
  to: number;
22111
22676
  id: string;
22112
- color?: "blue" | "red" | "green" | "orange" | "purple" | "yellow" | undefined;
22677
+ color?: string | undefined;
22113
22678
  label?: string | undefined;
22114
22679
  }[] | undefined;
22115
22680
  cursors?: {
@@ -22294,6 +22859,7 @@ declare const NumberLinePositionSchema: z.ZodObject<{
22294
22859
  alt: z.ZodString;
22295
22860
  width: z.ZodOptional<z.ZodNumber>;
22296
22861
  height: z.ZodOptional<z.ZodNumber>;
22862
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
22297
22863
  }, "strip", z.ZodTypeAny, {
22298
22864
  type: "Image";
22299
22865
  name: string;
@@ -22301,6 +22867,7 @@ declare const NumberLinePositionSchema: z.ZodObject<{
22301
22867
  alt: string;
22302
22868
  width?: number | undefined;
22303
22869
  height?: number | undefined;
22870
+ fullscreen?: boolean | undefined;
22304
22871
  }, {
22305
22872
  type: "Image";
22306
22873
  name: string;
@@ -22308,6 +22875,7 @@ declare const NumberLinePositionSchema: z.ZodObject<{
22308
22875
  alt: string;
22309
22876
  width?: number | undefined;
22310
22877
  height?: number | undefined;
22878
+ fullscreen?: boolean | undefined;
22311
22879
  }>, z.ZodEffects<z.ZodObject<{
22312
22880
  type: z.ZodLiteral<"VisualFraction">;
22313
22881
  name: z.ZodString;
@@ -22466,6 +23034,7 @@ declare const NumberLinePositionSchema: z.ZodObject<{
22466
23034
  alt: string;
22467
23035
  width?: number | undefined;
22468
23036
  height?: number | undefined;
23037
+ fullscreen?: boolean | undefined;
22469
23038
  } | {
22470
23039
  type: "VisualFraction";
22471
23040
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -22546,6 +23115,7 @@ declare const NumberLinePositionSchema: z.ZodObject<{
22546
23115
  alt: string;
22547
23116
  width?: number | undefined;
22548
23117
  height?: number | undefined;
23118
+ fullscreen?: boolean | undefined;
22549
23119
  } | {
22550
23120
  type: "VisualFraction";
22551
23121
  name: string;
@@ -22758,6 +23328,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
22758
23328
  alt: z.ZodString;
22759
23329
  width: z.ZodOptional<z.ZodNumber>;
22760
23330
  height: z.ZodOptional<z.ZodNumber>;
23331
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
22761
23332
  }, "strip", z.ZodTypeAny, {
22762
23333
  type: "Image";
22763
23334
  name: string;
@@ -22765,6 +23336,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
22765
23336
  alt: string;
22766
23337
  width?: number | undefined;
22767
23338
  height?: number | undefined;
23339
+ fullscreen?: boolean | undefined;
22768
23340
  }, {
22769
23341
  type: "Image";
22770
23342
  name: string;
@@ -22772,6 +23344,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
22772
23344
  alt: string;
22773
23345
  width?: number | undefined;
22774
23346
  height?: number | undefined;
23347
+ fullscreen?: boolean | undefined;
22775
23348
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
22776
23349
  type: z.ZodLiteral<"VisualFraction">;
22777
23350
  name: z.ZodString;
@@ -22878,6 +23451,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
22878
23451
  alt: string;
22879
23452
  width?: number | undefined;
22880
23453
  height?: number | undefined;
23454
+ fullscreen?: boolean | undefined;
22881
23455
  } | {
22882
23456
  type: "VisualFraction";
22883
23457
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -22925,6 +23499,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
22925
23499
  alt: string;
22926
23500
  width?: number | undefined;
22927
23501
  height?: number | undefined;
23502
+ fullscreen?: boolean | undefined;
22928
23503
  } | {
22929
23504
  type: "VisualFraction";
22930
23505
  name: string;
@@ -23043,6 +23618,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23043
23618
  alt: z.ZodString;
23044
23619
  width: z.ZodOptional<z.ZodNumber>;
23045
23620
  height: z.ZodOptional<z.ZodNumber>;
23621
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
23046
23622
  }, "strip", z.ZodTypeAny, {
23047
23623
  type: "Image";
23048
23624
  name: string;
@@ -23050,6 +23626,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23050
23626
  alt: string;
23051
23627
  width?: number | undefined;
23052
23628
  height?: number | undefined;
23629
+ fullscreen?: boolean | undefined;
23053
23630
  }, {
23054
23631
  type: "Image";
23055
23632
  name: string;
@@ -23057,6 +23634,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23057
23634
  alt: string;
23058
23635
  width?: number | undefined;
23059
23636
  height?: number | undefined;
23637
+ fullscreen?: boolean | undefined;
23060
23638
  }>, z.ZodEffects<z.ZodEffects<z.ZodObject<{
23061
23639
  type: z.ZodLiteral<"VisualFraction">;
23062
23640
  name: z.ZodString;
@@ -23163,6 +23741,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23163
23741
  alt: string;
23164
23742
  width?: number | undefined;
23165
23743
  height?: number | undefined;
23744
+ fullscreen?: boolean | undefined;
23166
23745
  } | {
23167
23746
  type: "VisualFraction";
23168
23747
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -23210,6 +23789,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23210
23789
  alt: string;
23211
23790
  width?: number | undefined;
23212
23791
  height?: number | undefined;
23792
+ fullscreen?: boolean | undefined;
23213
23793
  } | {
23214
23794
  type: "VisualFraction";
23215
23795
  name: string;
@@ -23267,6 +23847,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23267
23847
  alt: string;
23268
23848
  width?: number | undefined;
23269
23849
  height?: number | undefined;
23850
+ fullscreen?: boolean | undefined;
23270
23851
  } | {
23271
23852
  type: "VisualFraction";
23272
23853
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -23315,6 +23896,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23315
23896
  alt: string;
23316
23897
  width?: number | undefined;
23317
23898
  height?: number | undefined;
23899
+ fullscreen?: boolean | undefined;
23318
23900
  } | {
23319
23901
  type: "VisualFraction";
23320
23902
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -23367,6 +23949,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23367
23949
  alt: string;
23368
23950
  width?: number | undefined;
23369
23951
  height?: number | undefined;
23952
+ fullscreen?: boolean | undefined;
23370
23953
  } | {
23371
23954
  type: "VisualFraction";
23372
23955
  name: string;
@@ -23415,6 +23998,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23415
23998
  alt: string;
23416
23999
  width?: number | undefined;
23417
24000
  height?: number | undefined;
24001
+ fullscreen?: boolean | undefined;
23418
24002
  } | {
23419
24003
  type: "VisualFraction";
23420
24004
  name: string;
@@ -23467,6 +24051,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23467
24051
  alt: string;
23468
24052
  width?: number | undefined;
23469
24053
  height?: number | undefined;
24054
+ fullscreen?: boolean | undefined;
23470
24055
  } | {
23471
24056
  type: "VisualFraction";
23472
24057
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -23515,6 +24100,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23515
24100
  alt: string;
23516
24101
  width?: number | undefined;
23517
24102
  height?: number | undefined;
24103
+ fullscreen?: boolean | undefined;
23518
24104
  } | {
23519
24105
  type: "VisualFraction";
23520
24106
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -23567,6 +24153,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23567
24153
  alt: string;
23568
24154
  width?: number | undefined;
23569
24155
  height?: number | undefined;
24156
+ fullscreen?: boolean | undefined;
23570
24157
  } | {
23571
24158
  type: "VisualFraction";
23572
24159
  name: string;
@@ -23615,6 +24202,7 @@ export declare const PairMatcherBlockSchema: z.ZodEffects<z.ZodObject<{
23615
24202
  alt: string;
23616
24203
  width?: number | undefined;
23617
24204
  height?: number | undefined;
24205
+ fullscreen?: boolean | undefined;
23618
24206
  } | {
23619
24207
  type: "VisualFraction";
23620
24208
  name: string;
@@ -23797,13 +24385,13 @@ declare const RadioOptionsBlockSchema: z.ZodObject<{
23797
24385
  options: z.ZodArray<z.ZodString, "many">;
23798
24386
  answer: z.ZodString;
23799
24387
  }, "strip", z.ZodTypeAny, {
23800
- type: "RadioOptions";
23801
24388
  options: string[];
24389
+ type: "RadioOptions";
23802
24390
  name: string;
23803
24391
  answer: string;
23804
24392
  }, {
23805
- type: "RadioOptions";
23806
24393
  options: string[];
24394
+ type: "RadioOptions";
23807
24395
  name: string;
23808
24396
  answer: string;
23809
24397
  }>;
@@ -23814,13 +24402,15 @@ export declare const RadioOptionsJSONSchema: z.ZodObject<{
23814
24402
  type: z.ZodLiteral<"radio-options">;
23815
24403
  options: z.ZodArray<z.ZodString, "many">;
23816
24404
  }, "strip", z.ZodTypeAny, {
23817
- type: "radio-options";
23818
24405
  options: string[];
23819
- }, {
23820
24406
  type: "radio-options";
24407
+ }, {
23821
24408
  options: string[];
24409
+ type: "radio-options";
23822
24410
  }>;
23823
24411
 
24412
+ export declare function reflectGridSymmetryCell(cell: GridCell, rows: number, cols: number, axis: GridSymmetryAxis): GridCell;
24413
+
23824
24414
  /**
23825
24415
  * DOM helper for quick usage / demos.
23826
24416
  *
@@ -24138,6 +24728,7 @@ declare const TableBlockSchema: z.ZodObject<{
24138
24728
  alt: z.ZodString;
24139
24729
  width: z.ZodOptional<z.ZodNumber>;
24140
24730
  height: z.ZodOptional<z.ZodNumber>;
24731
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
24141
24732
  }, "strip", z.ZodTypeAny, {
24142
24733
  type: "Image";
24143
24734
  name: string;
@@ -24145,6 +24736,7 @@ declare const TableBlockSchema: z.ZodObject<{
24145
24736
  alt: string;
24146
24737
  width?: number | undefined;
24147
24738
  height?: number | undefined;
24739
+ fullscreen?: boolean | undefined;
24148
24740
  }, {
24149
24741
  type: "Image";
24150
24742
  name: string;
@@ -24152,6 +24744,7 @@ declare const TableBlockSchema: z.ZodObject<{
24152
24744
  alt: string;
24153
24745
  width?: number | undefined;
24154
24746
  height?: number | undefined;
24747
+ fullscreen?: boolean | undefined;
24155
24748
  }>, z.ZodEffects<z.ZodObject<{
24156
24749
  type: z.ZodLiteral<"VisualFraction">;
24157
24750
  name: z.ZodString;
@@ -24309,6 +24902,7 @@ declare const TableBlockSchema: z.ZodObject<{
24309
24902
  alt: string;
24310
24903
  width?: number | undefined;
24311
24904
  height?: number | undefined;
24905
+ fullscreen?: boolean | undefined;
24312
24906
  } | {
24313
24907
  type: "VisualFraction";
24314
24908
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -24391,6 +24985,7 @@ declare const TableBlockSchema: z.ZodObject<{
24391
24985
  alt: string;
24392
24986
  width?: number | undefined;
24393
24987
  height?: number | undefined;
24988
+ fullscreen?: boolean | undefined;
24394
24989
  } | {
24395
24990
  type: "VisualFraction";
24396
24991
  name: string;
@@ -24476,6 +25071,7 @@ declare const TableBlockSchema: z.ZodObject<{
24476
25071
  alt: string;
24477
25072
  width?: number | undefined;
24478
25073
  height?: number | undefined;
25074
+ fullscreen?: boolean | undefined;
24479
25075
  } | {
24480
25076
  type: "VisualFraction";
24481
25077
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -24562,6 +25158,7 @@ declare const TableBlockSchema: z.ZodObject<{
24562
25158
  alt: string;
24563
25159
  width?: number | undefined;
24564
25160
  height?: number | undefined;
25161
+ fullscreen?: boolean | undefined;
24565
25162
  } | {
24566
25163
  type: "VisualFraction";
24567
25164
  name: string;
@@ -24600,7 +25197,6 @@ declare const TableBlockSchema: z.ZodObject<{
24600
25197
  }>, "many">;
24601
25198
  }, "strip", z.ZodTypeAny, {
24602
25199
  type: "TableBlock";
24603
- cols: number;
24604
25200
  rows: {
24605
25201
  type: "TableRow";
24606
25202
  cells: {
@@ -24652,6 +25248,7 @@ declare const TableBlockSchema: z.ZodObject<{
24652
25248
  alt: string;
24653
25249
  width?: number | undefined;
24654
25250
  height?: number | undefined;
25251
+ fullscreen?: boolean | undefined;
24655
25252
  } | {
24656
25253
  type: "VisualFraction";
24657
25254
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -24688,9 +25285,9 @@ declare const TableBlockSchema: z.ZodObject<{
24688
25285
  }[];
24689
25286
  backgroundColor?: string | undefined;
24690
25287
  }[];
25288
+ cols: number;
24691
25289
  }, {
24692
25290
  type: "TableBlock";
24693
- cols: number;
24694
25291
  rows: {
24695
25292
  type: "TableRow";
24696
25293
  cells: {
@@ -24742,6 +25339,7 @@ declare const TableBlockSchema: z.ZodObject<{
24742
25339
  alt: string;
24743
25340
  width?: number | undefined;
24744
25341
  height?: number | undefined;
25342
+ fullscreen?: boolean | undefined;
24745
25343
  } | {
24746
25344
  type: "VisualFraction";
24747
25345
  name: string;
@@ -24778,6 +25376,7 @@ declare const TableBlockSchema: z.ZodObject<{
24778
25376
  }[];
24779
25377
  backgroundColor?: string | undefined;
24780
25378
  }[];
25379
+ cols: number;
24781
25380
  }>;
24782
25381
 
24783
25382
  export declare type TableCell = z.infer<typeof TableCellSchema>;
@@ -24792,15 +25391,15 @@ export declare const TableCellItemSchema: z.ZodObject<{
24792
25391
  backgroundColor: z.ZodOptional<z.ZodString>;
24793
25392
  items: z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">;
24794
25393
  }, "strip", z.ZodTypeAny, {
24795
- items: any[];
24796
25394
  type: "table-cell";
25395
+ items: any[];
24797
25396
  id: string;
24798
25397
  colspan?: number | undefined;
24799
25398
  rowspan?: number | undefined;
24800
25399
  backgroundColor?: string | undefined;
24801
25400
  }, {
24802
- items: any[];
24803
25401
  type: "table-cell";
25402
+ items: any[];
24804
25403
  id: string;
24805
25404
  colspan?: number | undefined;
24806
25405
  rowspan?: number | undefined;
@@ -24939,6 +25538,7 @@ declare const TableCellSchema: z.ZodObject<{
24939
25538
  alt: z.ZodString;
24940
25539
  width: z.ZodOptional<z.ZodNumber>;
24941
25540
  height: z.ZodOptional<z.ZodNumber>;
25541
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
24942
25542
  }, "strip", z.ZodTypeAny, {
24943
25543
  type: "Image";
24944
25544
  name: string;
@@ -24946,6 +25546,7 @@ declare const TableCellSchema: z.ZodObject<{
24946
25546
  alt: string;
24947
25547
  width?: number | undefined;
24948
25548
  height?: number | undefined;
25549
+ fullscreen?: boolean | undefined;
24949
25550
  }, {
24950
25551
  type: "Image";
24951
25552
  name: string;
@@ -24953,6 +25554,7 @@ declare const TableCellSchema: z.ZodObject<{
24953
25554
  alt: string;
24954
25555
  width?: number | undefined;
24955
25556
  height?: number | undefined;
25557
+ fullscreen?: boolean | undefined;
24956
25558
  }>, z.ZodEffects<z.ZodObject<{
24957
25559
  type: z.ZodLiteral<"VisualFraction">;
24958
25560
  name: z.ZodString;
@@ -25110,6 +25712,7 @@ declare const TableCellSchema: z.ZodObject<{
25110
25712
  alt: string;
25111
25713
  width?: number | undefined;
25112
25714
  height?: number | undefined;
25715
+ fullscreen?: boolean | undefined;
25113
25716
  } | {
25114
25717
  type: "VisualFraction";
25115
25718
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -25192,6 +25795,7 @@ declare const TableCellSchema: z.ZodObject<{
25192
25795
  alt: string;
25193
25796
  width?: number | undefined;
25194
25797
  height?: number | undefined;
25798
+ fullscreen?: boolean | undefined;
25195
25799
  } | {
25196
25800
  type: "VisualFraction";
25197
25801
  name: string;
@@ -25245,15 +25849,15 @@ export declare const TableItemSchema: z.ZodObject<{
25245
25849
  backgroundColor: z.ZodOptional<z.ZodString>;
25246
25850
  items: z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">;
25247
25851
  }, "strip", z.ZodTypeAny, {
25248
- items: any[];
25249
25852
  type: "table-cell";
25853
+ items: any[];
25250
25854
  id: string;
25251
25855
  colspan?: number | undefined;
25252
25856
  rowspan?: number | undefined;
25253
25857
  backgroundColor?: string | undefined;
25254
25858
  }, {
25255
- items: any[];
25256
25859
  type: "table-cell";
25860
+ items: any[];
25257
25861
  id: string;
25258
25862
  colspan?: number | undefined;
25259
25863
  rowspan?: number | undefined;
@@ -25262,8 +25866,8 @@ export declare const TableItemSchema: z.ZodObject<{
25262
25866
  }, "strip", z.ZodTypeAny, {
25263
25867
  type: "table-row";
25264
25868
  cells: {
25265
- items: any[];
25266
25869
  type: "table-cell";
25870
+ items: any[];
25267
25871
  id: string;
25268
25872
  colspan?: number | undefined;
25269
25873
  rowspan?: number | undefined;
@@ -25274,8 +25878,8 @@ export declare const TableItemSchema: z.ZodObject<{
25274
25878
  }, {
25275
25879
  type: "table-row";
25276
25880
  cells: {
25277
- items: any[];
25278
25881
  type: "table-cell";
25882
+ items: any[];
25279
25883
  id: string;
25280
25884
  colspan?: number | undefined;
25281
25885
  rowspan?: number | undefined;
@@ -25286,12 +25890,11 @@ export declare const TableItemSchema: z.ZodObject<{
25286
25890
  }>, "many">;
25287
25891
  }, "strip", z.ZodTypeAny, {
25288
25892
  type: "table";
25289
- cols: number;
25290
25893
  rows: {
25291
25894
  type: "table-row";
25292
25895
  cells: {
25293
- items: any[];
25294
25896
  type: "table-cell";
25897
+ items: any[];
25295
25898
  id: string;
25296
25899
  colspan?: number | undefined;
25297
25900
  rowspan?: number | undefined;
@@ -25300,15 +25903,15 @@ export declare const TableItemSchema: z.ZodObject<{
25300
25903
  id: string;
25301
25904
  backgroundColor?: string | undefined;
25302
25905
  }[];
25906
+ cols: number;
25303
25907
  id: string;
25304
25908
  }, {
25305
25909
  type: "table";
25306
- cols: number;
25307
25910
  rows: {
25308
25911
  type: "table-row";
25309
25912
  cells: {
25310
- items: any[];
25311
25913
  type: "table-cell";
25914
+ items: any[];
25312
25915
  id: string;
25313
25916
  colspan?: number | undefined;
25314
25917
  rowspan?: number | undefined;
@@ -25317,6 +25920,7 @@ export declare const TableItemSchema: z.ZodObject<{
25317
25920
  id: string;
25318
25921
  backgroundColor?: string | undefined;
25319
25922
  }[];
25923
+ cols: number;
25320
25924
  id: string;
25321
25925
  }>;
25322
25926
 
@@ -25336,15 +25940,15 @@ export declare const TableRowItemSchema: z.ZodObject<{
25336
25940
  backgroundColor: z.ZodOptional<z.ZodString>;
25337
25941
  items: z.ZodArray<z.ZodType<any, z.ZodTypeDef, any>, "many">;
25338
25942
  }, "strip", z.ZodTypeAny, {
25339
- items: any[];
25340
25943
  type: "table-cell";
25944
+ items: any[];
25341
25945
  id: string;
25342
25946
  colspan?: number | undefined;
25343
25947
  rowspan?: number | undefined;
25344
25948
  backgroundColor?: string | undefined;
25345
25949
  }, {
25346
- items: any[];
25347
25950
  type: "table-cell";
25951
+ items: any[];
25348
25952
  id: string;
25349
25953
  colspan?: number | undefined;
25350
25954
  rowspan?: number | undefined;
@@ -25353,8 +25957,8 @@ export declare const TableRowItemSchema: z.ZodObject<{
25353
25957
  }, "strip", z.ZodTypeAny, {
25354
25958
  type: "table-row";
25355
25959
  cells: {
25356
- items: any[];
25357
25960
  type: "table-cell";
25961
+ items: any[];
25358
25962
  id: string;
25359
25963
  colspan?: number | undefined;
25360
25964
  rowspan?: number | undefined;
@@ -25365,8 +25969,8 @@ export declare const TableRowItemSchema: z.ZodObject<{
25365
25969
  }, {
25366
25970
  type: "table-row";
25367
25971
  cells: {
25368
- items: any[];
25369
25972
  type: "table-cell";
25973
+ items: any[];
25370
25974
  id: string;
25371
25975
  colspan?: number | undefined;
25372
25976
  rowspan?: number | undefined;
@@ -25511,6 +26115,7 @@ declare const TableRowSchema: z.ZodObject<{
25511
26115
  alt: z.ZodString;
25512
26116
  width: z.ZodOptional<z.ZodNumber>;
25513
26117
  height: z.ZodOptional<z.ZodNumber>;
26118
+ fullscreen: z.ZodOptional<z.ZodBoolean>;
25514
26119
  }, "strip", z.ZodTypeAny, {
25515
26120
  type: "Image";
25516
26121
  name: string;
@@ -25518,6 +26123,7 @@ declare const TableRowSchema: z.ZodObject<{
25518
26123
  alt: string;
25519
26124
  width?: number | undefined;
25520
26125
  height?: number | undefined;
26126
+ fullscreen?: boolean | undefined;
25521
26127
  }, {
25522
26128
  type: "Image";
25523
26129
  name: string;
@@ -25525,6 +26131,7 @@ declare const TableRowSchema: z.ZodObject<{
25525
26131
  alt: string;
25526
26132
  width?: number | undefined;
25527
26133
  height?: number | undefined;
26134
+ fullscreen?: boolean | undefined;
25528
26135
  }>, z.ZodEffects<z.ZodObject<{
25529
26136
  type: z.ZodLiteral<"VisualFraction">;
25530
26137
  name: z.ZodString;
@@ -25682,6 +26289,7 @@ declare const TableRowSchema: z.ZodObject<{
25682
26289
  alt: string;
25683
26290
  width?: number | undefined;
25684
26291
  height?: number | undefined;
26292
+ fullscreen?: boolean | undefined;
25685
26293
  } | {
25686
26294
  type: "VisualFraction";
25687
26295
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -25764,6 +26372,7 @@ declare const TableRowSchema: z.ZodObject<{
25764
26372
  alt: string;
25765
26373
  width?: number | undefined;
25766
26374
  height?: number | undefined;
26375
+ fullscreen?: boolean | undefined;
25767
26376
  } | {
25768
26377
  type: "VisualFraction";
25769
26378
  name: string;
@@ -25849,6 +26458,7 @@ declare const TableRowSchema: z.ZodObject<{
25849
26458
  alt: string;
25850
26459
  width?: number | undefined;
25851
26460
  height?: number | undefined;
26461
+ fullscreen?: boolean | undefined;
25852
26462
  } | {
25853
26463
  type: "VisualFraction";
25854
26464
  shape: "bar" | "circle" | "triangle" | "grid";
@@ -25935,6 +26545,7 @@ declare const TableRowSchema: z.ZodObject<{
25935
26545
  alt: string;
25936
26546
  width?: number | undefined;
25937
26547
  height?: number | undefined;
26548
+ fullscreen?: boolean | undefined;
25938
26549
  } | {
25939
26550
  type: "VisualFraction";
25940
26551
  name: string;
@@ -26059,11 +26670,11 @@ export declare const ToolNodeSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObjec
26059
26670
  type: z.ZodLiteral<"DragOptions">;
26060
26671
  options: z.ZodArray<z.ZodString, "many">;
26061
26672
  }, "strip", z.ZodTypeAny, {
26062
- type: "DragOptions";
26063
26673
  options: string[];
26064
- }, {
26065
26674
  type: "DragOptions";
26675
+ }, {
26066
26676
  options: string[];
26677
+ type: "DragOptions";
26067
26678
  }>, z.ZodObject<{
26068
26679
  type: z.ZodLiteral<"NumericKeypad">;
26069
26680
  includeOperators: z.ZodOptional<z.ZodBoolean>;
@@ -26116,18 +26727,11 @@ export declare class TransformError extends EngineError {
26116
26727
  constructor(message: string, position?: SourcePosition);
26117
26728
  }
26118
26729
 
26119
- /**
26120
- * Shared value types for the renderer layer.
26121
- *
26122
- * `UserAnswerValue` is the runtime type of any answer collected by the renderer:
26123
- * - `string` — all scalar widgets (inline-input, radio-options, drag-options, number-line inputs…)
26124
- * - `string[][]` — matcher widget (groups of item IDs, no JSON serialisation needed)
26125
- * - `number[]` — visual-fraction widget (counts per shaded group)
26126
- *
26127
- * This union matches the type accepted by `validate()` and avoids any
26128
- * JSON.stringify / JSON.parse round-trips for structured widget values.
26129
- */
26130
- declare type UserAnswerValue = string | string[][] | number[];
26730
+ /** User answers keyed by widget ID. */
26731
+ export declare type UserAnswers = Record<string, UserAnswerValue>;
26732
+
26733
+ /** Runtime value produced by any answer-bearing widget. */
26734
+ export declare type UserAnswerValue = string | number | string[][] | number[] | [number, number][];
26131
26735
 
26132
26736
  /**
26133
26737
  * Returns `play(event)`. Safe to call outside a SoundProvider — it returns a
@@ -26155,7 +26759,7 @@ export declare function useSound(): (event: SoundEvent) => void;
26155
26759
  * }
26156
26760
  * ```
26157
26761
  */
26158
- export declare function validate(exercise: ExerciseJSON, userInputs: Record<string, string | number | string[][] | number[]>): ValidationResult;
26762
+ export declare function validate(exercise: ExerciseJSON, userInputs: Record<string, string | number | string[][] | number[] | GridCell[]>): ValidationResult;
26159
26763
 
26160
26764
  /**
26161
26765
  * Validate that an expression will return a boolean
@@ -26200,14 +26804,14 @@ export declare function validateExerciseJSON(data: unknown): {
26200
26804
  digits: number;
26201
26805
  placeholder?: string | undefined;
26202
26806
  } | {
26203
- type: "drag-options";
26204
26807
  options: string[];
26808
+ type: "drag-options";
26205
26809
  } | {
26206
26810
  value: string;
26207
26811
  type: "inline-drag-option";
26208
26812
  } | {
26209
- type: "radio-options";
26210
26813
  options: string[];
26814
+ type: "radio-options";
26211
26815
  } | {
26212
26816
  type: "numeric-keypad";
26213
26817
  style?: "diamond" | "classic" | undefined;
@@ -26222,13 +26826,13 @@ export declare function validateExerciseJSON(data: unknown): {
26222
26826
  } | {
26223
26827
  type: "matcher";
26224
26828
  rows: {
26829
+ type: "matcher-row";
26225
26830
  items: {
26226
26831
  type: "matcher-item";
26227
26832
  itemId: string;
26228
26833
  id: string;
26229
26834
  content: any[];
26230
26835
  }[];
26231
- type: "matcher-row";
26232
26836
  id: string;
26233
26837
  }[];
26234
26838
  groupCount: number;
@@ -26256,6 +26860,14 @@ export declare function validateExerciseJSON(data: unknown): {
26256
26860
  orientation?: "horizontal" | "vertical" | undefined;
26257
26861
  label?: string | undefined;
26258
26862
  size?: number | undefined;
26863
+ } | {
26864
+ axis: "horizontal" | "vertical";
26865
+ type: "grid-symmetry";
26866
+ rows: number;
26867
+ cols: number;
26868
+ interactiveArea: "left" | "right" | "top" | "bottom";
26869
+ cellSize: number;
26870
+ cells: [number, number][];
26259
26871
  } | {
26260
26872
  type: "ruler";
26261
26873
  size?: number | undefined;
@@ -26269,7 +26881,7 @@ export declare function validateExerciseJSON(data: unknown): {
26269
26881
  validation?: {
26270
26882
  mode: "simple" | "expression" | "mixed";
26271
26883
  expression?: string | undefined;
26272
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
26884
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
26273
26885
  variables?: string[] | undefined;
26274
26886
  } | undefined;
26275
26887
  id?: string | undefined;
@@ -26311,14 +26923,14 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
26311
26923
  digits: number;
26312
26924
  placeholder?: string | undefined;
26313
26925
  } | {
26314
- type: "drag-options";
26315
26926
  options: string[];
26927
+ type: "drag-options";
26316
26928
  } | {
26317
26929
  value: string;
26318
26930
  type: "inline-drag-option";
26319
26931
  } | {
26320
- type: "radio-options";
26321
26932
  options: string[];
26933
+ type: "radio-options";
26322
26934
  } | {
26323
26935
  type: "numeric-keypad";
26324
26936
  style?: "diamond" | "classic" | undefined;
@@ -26333,13 +26945,13 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
26333
26945
  } | {
26334
26946
  type: "matcher";
26335
26947
  rows: {
26948
+ type: "matcher-row";
26336
26949
  items: {
26337
26950
  type: "matcher-item";
26338
26951
  itemId: string;
26339
26952
  id: string;
26340
26953
  content: any[];
26341
26954
  }[];
26342
- type: "matcher-row";
26343
26955
  id: string;
26344
26956
  }[];
26345
26957
  groupCount: number;
@@ -26367,6 +26979,14 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
26367
26979
  orientation?: "horizontal" | "vertical" | undefined;
26368
26980
  label?: string | undefined;
26369
26981
  size?: number | undefined;
26982
+ } | {
26983
+ axis: "horizontal" | "vertical";
26984
+ type: "grid-symmetry";
26985
+ rows: number;
26986
+ cols: number;
26987
+ interactiveArea: "left" | "right" | "top" | "bottom";
26988
+ cells: [number, number][];
26989
+ cellSize?: number | undefined;
26370
26990
  } | {
26371
26991
  type: "ruler";
26372
26992
  size?: number | undefined;
@@ -26380,7 +27000,7 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
26380
27000
  validation?: {
26381
27001
  mode: "simple" | "expression" | "mixed";
26382
27002
  expression?: string | undefined;
26383
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
27003
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
26384
27004
  variables?: string[] | undefined;
26385
27005
  } | undefined;
26386
27006
  id?: string | undefined;
@@ -26404,14 +27024,14 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
26404
27024
  digits: number;
26405
27025
  placeholder?: string | undefined;
26406
27026
  } | {
26407
- type: "drag-options";
26408
27027
  options: string[];
27028
+ type: "drag-options";
26409
27029
  } | {
26410
27030
  value: string;
26411
27031
  type: "inline-drag-option";
26412
27032
  } | {
26413
- type: "radio-options";
26414
27033
  options: string[];
27034
+ type: "radio-options";
26415
27035
  } | {
26416
27036
  type: "numeric-keypad";
26417
27037
  style?: "diamond" | "classic" | undefined;
@@ -26426,13 +27046,13 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
26426
27046
  } | {
26427
27047
  type: "matcher";
26428
27048
  rows: {
27049
+ type: "matcher-row";
26429
27050
  items: {
26430
27051
  type: "matcher-item";
26431
27052
  itemId: string;
26432
27053
  id: string;
26433
27054
  content: any[];
26434
27055
  }[];
26435
- type: "matcher-row";
26436
27056
  id: string;
26437
27057
  }[];
26438
27058
  groupCount: number;
@@ -26460,6 +27080,14 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
26460
27080
  orientation?: "horizontal" | "vertical" | undefined;
26461
27081
  label?: string | undefined;
26462
27082
  size?: number | undefined;
27083
+ } | {
27084
+ axis: "horizontal" | "vertical";
27085
+ type: "grid-symmetry";
27086
+ rows: number;
27087
+ cols: number;
27088
+ interactiveArea: "left" | "right" | "top" | "bottom";
27089
+ cellSize: number;
27090
+ cells: [number, number][];
26463
27091
  } | {
26464
27092
  type: "ruler";
26465
27093
  size?: number | undefined;
@@ -26473,7 +27101,7 @@ export declare function validateExerciseJSONSafe(data: unknown): z.SafeParseRetu
26473
27101
  validation?: {
26474
27102
  mode: "simple" | "expression" | "mixed";
26475
27103
  expression?: string | undefined;
26476
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
27104
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
26477
27105
  variables?: string[] | undefined;
26478
27106
  } | undefined;
26479
27107
  id?: string | undefined;
@@ -26511,7 +27139,7 @@ export declare function validateInputFormats(exercise: ExerciseJSON, userInputs:
26511
27139
  * @param userInputs - User's answers keyed by widget ID
26512
27140
  * @returns Validation result
26513
27141
  */
26514
- export declare function validateMixed(exercise: ValidatedExerciseJSON, userInputs: Record<string, string | number | string[][] | number[]>): ValidationResult;
27142
+ export declare function validateMixed(exercise: ValidatedExerciseJSON, userInputs: Record<string, string | number | string[][] | number[] | GridCell[]>): ValidationResult;
26515
27143
 
26516
27144
  /**
26517
27145
  * Validate using simple mode (predetermined answers)
@@ -26520,7 +27148,7 @@ export declare function validateMixed(exercise: ValidatedExerciseJSON, userInput
26520
27148
  * @param userInputs - User's answers keyed by widget ID
26521
27149
  * @returns Validation result
26522
27150
  */
26523
- export declare function validateSimple(exercise: ValidatedExerciseJSON, userInputs: Record<string, string | number | string[][] | number[]>): ValidationResult;
27151
+ export declare function validateSimple(exercise: ValidatedExerciseJSON, userInputs: Record<string, string | number | string[][] | number[] | GridCell[]>): ValidationResult;
26524
27152
 
26525
27153
  export declare function validateVisualFractionCapacity(data: {
26526
27154
  divisions: number;
@@ -26547,14 +27175,14 @@ export declare function validateWidgetJSON(data: unknown): {
26547
27175
  digits: number;
26548
27176
  placeholder?: string | undefined;
26549
27177
  } | {
26550
- type: "drag-options";
26551
27178
  options: string[];
27179
+ type: "drag-options";
26552
27180
  } | {
26553
27181
  value: string;
26554
27182
  type: "inline-drag-option";
26555
27183
  } | {
26556
- type: "radio-options";
26557
27184
  options: string[];
27185
+ type: "radio-options";
26558
27186
  } | {
26559
27187
  type: "numeric-keypad";
26560
27188
  style?: "diamond" | "classic" | undefined;
@@ -26569,13 +27197,13 @@ export declare function validateWidgetJSON(data: unknown): {
26569
27197
  } | {
26570
27198
  type: "matcher";
26571
27199
  rows: {
27200
+ type: "matcher-row";
26572
27201
  items: {
26573
27202
  type: "matcher-item";
26574
27203
  itemId: string;
26575
27204
  id: string;
26576
27205
  content: any[];
26577
27206
  }[];
26578
- type: "matcher-row";
26579
27207
  id: string;
26580
27208
  }[];
26581
27209
  groupCount: number;
@@ -26603,6 +27231,14 @@ export declare function validateWidgetJSON(data: unknown): {
26603
27231
  orientation?: "horizontal" | "vertical" | undefined;
26604
27232
  label?: string | undefined;
26605
27233
  size?: number | undefined;
27234
+ } | {
27235
+ axis: "horizontal" | "vertical";
27236
+ type: "grid-symmetry";
27237
+ rows: number;
27238
+ cols: number;
27239
+ interactiveArea: "left" | "right" | "top" | "bottom";
27240
+ cellSize: number;
27241
+ cells: [number, number][];
26606
27242
  } | {
26607
27243
  type: "ruler";
26608
27244
  size?: number | undefined;
@@ -26631,14 +27267,14 @@ export declare function validateWidgetJSONSafe(data: unknown): z.SafeParseReturn
26631
27267
  digits: number;
26632
27268
  placeholder?: string | undefined;
26633
27269
  } | {
26634
- type: "drag-options";
26635
27270
  options: string[];
27271
+ type: "drag-options";
26636
27272
  } | {
26637
27273
  value: string;
26638
27274
  type: "inline-drag-option";
26639
27275
  } | {
26640
- type: "radio-options";
26641
27276
  options: string[];
27277
+ type: "radio-options";
26642
27278
  } | {
26643
27279
  type: "numeric-keypad";
26644
27280
  style?: "diamond" | "classic" | undefined;
@@ -26653,13 +27289,13 @@ export declare function validateWidgetJSONSafe(data: unknown): z.SafeParseReturn
26653
27289
  } | {
26654
27290
  type: "matcher";
26655
27291
  rows: {
27292
+ type: "matcher-row";
26656
27293
  items: {
26657
27294
  type: "matcher-item";
26658
27295
  itemId: string;
26659
27296
  id: string;
26660
27297
  content: any[];
26661
27298
  }[];
26662
- type: "matcher-row";
26663
27299
  id: string;
26664
27300
  }[];
26665
27301
  groupCount: number;
@@ -26687,6 +27323,14 @@ export declare function validateWidgetJSONSafe(data: unknown): z.SafeParseReturn
26687
27323
  orientation?: "horizontal" | "vertical" | undefined;
26688
27324
  label?: string | undefined;
26689
27325
  size?: number | undefined;
27326
+ } | {
27327
+ axis: "horizontal" | "vertical";
27328
+ type: "grid-symmetry";
27329
+ rows: number;
27330
+ cols: number;
27331
+ interactiveArea: "left" | "right" | "top" | "bottom";
27332
+ cells: [number, number][];
27333
+ cellSize?: number | undefined;
26690
27334
  } | {
26691
27335
  type: "ruler";
26692
27336
  size?: number | undefined;
@@ -26707,14 +27351,14 @@ export declare function validateWidgetJSONSafe(data: unknown): z.SafeParseReturn
26707
27351
  digits: number;
26708
27352
  placeholder?: string | undefined;
26709
27353
  } | {
26710
- type: "drag-options";
26711
27354
  options: string[];
27355
+ type: "drag-options";
26712
27356
  } | {
26713
27357
  value: string;
26714
27358
  type: "inline-drag-option";
26715
27359
  } | {
26716
- type: "radio-options";
26717
27360
  options: string[];
27361
+ type: "radio-options";
26718
27362
  } | {
26719
27363
  type: "numeric-keypad";
26720
27364
  style?: "diamond" | "classic" | undefined;
@@ -26729,13 +27373,13 @@ export declare function validateWidgetJSONSafe(data: unknown): z.SafeParseReturn
26729
27373
  } | {
26730
27374
  type: "matcher";
26731
27375
  rows: {
27376
+ type: "matcher-row";
26732
27377
  items: {
26733
27378
  type: "matcher-item";
26734
27379
  itemId: string;
26735
27380
  id: string;
26736
27381
  content: any[];
26737
27382
  }[];
26738
- type: "matcher-row";
26739
27383
  id: string;
26740
27384
  }[];
26741
27385
  groupCount: number;
@@ -26763,6 +27407,14 @@ export declare function validateWidgetJSONSafe(data: unknown): z.SafeParseReturn
26763
27407
  orientation?: "horizontal" | "vertical" | undefined;
26764
27408
  label?: string | undefined;
26765
27409
  size?: number | undefined;
27410
+ } | {
27411
+ axis: "horizontal" | "vertical";
27412
+ type: "grid-symmetry";
27413
+ rows: number;
27414
+ cols: number;
27415
+ interactiveArea: "left" | "right" | "top" | "bottom";
27416
+ cellSize: number;
27417
+ cells: [number, number][];
26766
27418
  } | {
26767
27419
  type: "ruler";
26768
27420
  size?: number | undefined;
@@ -26786,18 +27438,18 @@ export declare type ValidationJSON = z.infer<typeof ValidationJSONSchema>;
26786
27438
 
26787
27439
  export declare const ValidationJSONSchema: z.ZodObject<{
26788
27440
  mode: z.ZodEnum<["simple", "expression", "mixed"]>;
26789
- answers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">, z.ZodArray<z.ZodNumber, "many">]>>>;
27441
+ answers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodArray<z.ZodArray<z.ZodString, "many">, "many">, z.ZodArray<z.ZodNumber, "many">, z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">]>>>;
26790
27442
  expression: z.ZodOptional<z.ZodString>;
26791
27443
  variables: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
26792
27444
  }, "strip", z.ZodTypeAny, {
26793
27445
  mode: "simple" | "expression" | "mixed";
26794
27446
  expression?: string | undefined;
26795
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
27447
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
26796
27448
  variables?: string[] | undefined;
26797
27449
  }, {
26798
27450
  mode: "simple" | "expression" | "mixed";
26799
27451
  expression?: string | undefined;
26800
- answers?: Record<string, string | number | number[] | string[][]> | undefined;
27452
+ answers?: Record<string, string | number | number[] | string[][] | [number, number][]> | undefined;
26801
27453
  variables?: string[] | undefined;
26802
27454
  }>;
26803
27455
 
@@ -27186,6 +27838,7 @@ export declare const VerticalOperationBlockSchema: z.ZodObject<{
27186
27838
  type: "VopSeparator";
27187
27839
  }>]>, "many">;
27188
27840
  }, "strip", z.ZodTypeAny, {
27841
+ type: "VerticalOperationBlock";
27189
27842
  items: ({
27190
27843
  type: "VopRow";
27191
27844
  cells: ({
@@ -27256,9 +27909,9 @@ export declare const VerticalOperationBlockSchema: z.ZodObject<{
27256
27909
  } | {
27257
27910
  type: "VopSeparator";
27258
27911
  })[];
27259
- type: "VerticalOperationBlock";
27260
27912
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
27261
27913
  }, {
27914
+ type: "VerticalOperationBlock";
27262
27915
  items: ({
27263
27916
  type: "VopRow";
27264
27917
  cells: ({
@@ -27329,7 +27982,6 @@ export declare const VerticalOperationBlockSchema: z.ZodObject<{
27329
27982
  } | {
27330
27983
  type: "VopSeparator";
27331
27984
  })[];
27332
- type: "VerticalOperationBlock";
27333
27985
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
27334
27986
  }>;
27335
27987
 
@@ -27728,6 +28380,7 @@ export declare const VerticalOperationItemSchema: z.ZodObject<{
27728
28380
  id: string;
27729
28381
  }>]>, "many">;
27730
28382
  }, "strip", z.ZodTypeAny, {
28383
+ type: "vertical-operation";
27731
28384
  items: ({
27732
28385
  type: "vop-row";
27733
28386
  cells: ({
@@ -27811,11 +28464,11 @@ export declare const VerticalOperationItemSchema: z.ZodObject<{
27811
28464
  type: "vop-separator";
27812
28465
  id: string;
27813
28466
  })[];
27814
- type: "vertical-operation";
27815
28467
  cols: number;
27816
28468
  id: string;
27817
28469
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
27818
28470
  }, {
28471
+ type: "vertical-operation";
27819
28472
  items: ({
27820
28473
  type: "vop-row";
27821
28474
  cells: ({
@@ -27899,7 +28552,6 @@ export declare const VerticalOperationItemSchema: z.ZodObject<{
27899
28552
  type: "vop-separator";
27900
28553
  id: string;
27901
28554
  })[];
27902
- type: "vertical-operation";
27903
28555
  cols: number;
27904
28556
  id: string;
27905
28557
  op?: "+" | "-" | "×" | "÷" | "=" | undefined;
@@ -29553,11 +30205,11 @@ export declare const WidgetJSONSchema: z.ZodUnion<[z.ZodDiscriminatedUnion<"inpu
29553
30205
  type: z.ZodLiteral<"drag-options">;
29554
30206
  options: z.ZodArray<z.ZodString, "many">;
29555
30207
  }, "strip", z.ZodTypeAny, {
29556
- type: "drag-options";
29557
30208
  options: string[];
29558
- }, {
29559
30209
  type: "drag-options";
30210
+ }, {
29560
30211
  options: string[];
30212
+ type: "drag-options";
29561
30213
  }>, z.ZodObject<{
29562
30214
  type: z.ZodLiteral<"inline-drag-option">;
29563
30215
  value: z.ZodString;
@@ -29571,11 +30223,11 @@ export declare const WidgetJSONSchema: z.ZodUnion<[z.ZodDiscriminatedUnion<"inpu
29571
30223
  type: z.ZodLiteral<"radio-options">;
29572
30224
  options: z.ZodArray<z.ZodString, "many">;
29573
30225
  }, "strip", z.ZodTypeAny, {
29574
- type: "radio-options";
29575
30226
  options: string[];
29576
- }, {
29577
30227
  type: "radio-options";
30228
+ }, {
29578
30229
  options: string[];
30230
+ type: "radio-options";
29579
30231
  }>, z.ZodObject<{
29580
30232
  type: z.ZodLiteral<"numeric-keypad">;
29581
30233
  includeOperators: z.ZodOptional<z.ZodBoolean>;
@@ -29633,22 +30285,22 @@ export declare const WidgetJSONSchema: z.ZodUnion<[z.ZodDiscriminatedUnion<"inpu
29633
30285
  content: any[];
29634
30286
  }>, "many">;
29635
30287
  }, "strip", z.ZodTypeAny, {
30288
+ type: "matcher-row";
29636
30289
  items: {
29637
30290
  type: "matcher-item";
29638
30291
  itemId: string;
29639
30292
  id: string;
29640
30293
  content: any[];
29641
30294
  }[];
29642
- type: "matcher-row";
29643
30295
  id: string;
29644
30296
  }, {
30297
+ type: "matcher-row";
29645
30298
  items: {
29646
30299
  type: "matcher-item";
29647
30300
  itemId: string;
29648
30301
  id: string;
29649
30302
  content: any[];
29650
30303
  }[];
29651
- type: "matcher-row";
29652
30304
  id: string;
29653
30305
  }>, "many">;
29654
30306
  /** Optional color palette for the renderer (one color per answer group) */
@@ -29658,13 +30310,13 @@ export declare const WidgetJSONSchema: z.ZodUnion<[z.ZodDiscriminatedUnion<"inpu
29658
30310
  }, "strip", z.ZodTypeAny, {
29659
30311
  type: "matcher";
29660
30312
  rows: {
30313
+ type: "matcher-row";
29661
30314
  items: {
29662
30315
  type: "matcher-item";
29663
30316
  itemId: string;
29664
30317
  id: string;
29665
30318
  content: any[];
29666
30319
  }[];
29667
- type: "matcher-row";
29668
30320
  id: string;
29669
30321
  }[];
29670
30322
  groupCount: number;
@@ -29672,13 +30324,13 @@ export declare const WidgetJSONSchema: z.ZodUnion<[z.ZodDiscriminatedUnion<"inpu
29672
30324
  }, {
29673
30325
  type: "matcher";
29674
30326
  rows: {
30327
+ type: "matcher-row";
29675
30328
  items: {
29676
30329
  type: "matcher-item";
29677
30330
  itemId: string;
29678
30331
  id: string;
29679
30332
  content: any[];
29680
30333
  }[];
29681
- type: "matcher-row";
29682
30334
  id: string;
29683
30335
  }[];
29684
30336
  groupCount: number;
@@ -29799,6 +30451,46 @@ export declare const WidgetJSONSchema: z.ZodUnion<[z.ZodDiscriminatedUnion<"inpu
29799
30451
  orientation?: "horizontal" | "vertical" | undefined;
29800
30452
  label?: string | undefined;
29801
30453
  size?: number | undefined;
30454
+ }>, z.ZodEffects<z.ZodObject<{
30455
+ type: z.ZodLiteral<"grid-symmetry">;
30456
+ rows: z.ZodNumber;
30457
+ cols: z.ZodNumber;
30458
+ axis: z.ZodEnum<["vertical", "horizontal"]>;
30459
+ interactiveArea: z.ZodEnum<["left", "right", "top", "bottom"]>;
30460
+ cellSize: z.ZodDefault<z.ZodNumber>;
30461
+ cells: z.ZodArray<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, "many">;
30462
+ }, "strip", z.ZodTypeAny, {
30463
+ axis: "horizontal" | "vertical";
30464
+ type: "grid-symmetry";
30465
+ rows: number;
30466
+ cols: number;
30467
+ interactiveArea: "left" | "right" | "top" | "bottom";
30468
+ cellSize: number;
30469
+ cells: [number, number][];
30470
+ }, {
30471
+ axis: "horizontal" | "vertical";
30472
+ type: "grid-symmetry";
30473
+ rows: number;
30474
+ cols: number;
30475
+ interactiveArea: "left" | "right" | "top" | "bottom";
30476
+ cells: [number, number][];
30477
+ cellSize?: number | undefined;
30478
+ }>, {
30479
+ axis: "horizontal" | "vertical";
30480
+ type: "grid-symmetry";
30481
+ rows: number;
30482
+ cols: number;
30483
+ interactiveArea: "left" | "right" | "top" | "bottom";
30484
+ cellSize: number;
30485
+ cells: [number, number][];
30486
+ }, {
30487
+ axis: "horizontal" | "vertical";
30488
+ type: "grid-symmetry";
30489
+ rows: number;
30490
+ cols: number;
30491
+ interactiveArea: "left" | "right" | "top" | "bottom";
30492
+ cells: [number, number][];
30493
+ cellSize?: number | undefined;
29802
30494
  }>, z.ZodObject<{
29803
30495
  type: z.ZodLiteral<"ruler">;
29804
30496
  size: z.ZodOptional<z.ZodNumber>;
@@ -29876,7 +30568,7 @@ export declare interface WidgetValidation {
29876
30568
  /** The widget ID */
29877
30569
  widgetId: string;
29878
30570
  /** The user's input value */
29879
- userValue: string | number | string[][] | number[] | undefined;
30571
+ userValue: UserAnswerValue | undefined;
29880
30572
  /** Whether the input is correct (aggregate verdict; for mixed mode this is simple AND expression) */
29881
30573
  isCorrect: boolean;
29882
30574
  /**