postext 1.58.2 → 1.59.0

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.
Files changed (195) hide show
  1. package/dist/__tests__/exercises/config.test.d.ts +2 -0
  2. package/dist/__tests__/exercises/config.test.d.ts.map +1 -0
  3. package/dist/__tests__/exercises/config.test.js +63 -0
  4. package/dist/__tests__/exercises/config.test.js.map +1 -0
  5. package/dist/__tests__/exercises/digital.test.d.ts +2 -0
  6. package/dist/__tests__/exercises/digital.test.d.ts.map +1 -0
  7. package/dist/__tests__/exercises/digital.test.js +163 -0
  8. package/dist/__tests__/exercises/digital.test.js.map +1 -0
  9. package/dist/__tests__/exercises/languages.test.d.ts +2 -0
  10. package/dist/__tests__/exercises/languages.test.d.ts.map +1 -0
  11. package/dist/__tests__/exercises/languages.test.js +109 -0
  12. package/dist/__tests__/exercises/languages.test.js.map +1 -0
  13. package/dist/__tests__/exercises/layout.test.d.ts +2 -0
  14. package/dist/__tests__/exercises/layout.test.d.ts.map +1 -0
  15. package/dist/__tests__/exercises/layout.test.js +77 -0
  16. package/dist/__tests__/exercises/layout.test.js.map +1 -0
  17. package/dist/__tests__/exercises/model.test.d.ts +2 -0
  18. package/dist/__tests__/exercises/model.test.d.ts.map +1 -0
  19. package/dist/__tests__/exercises/model.test.js +90 -0
  20. package/dist/__tests__/exercises/model.test.js.map +1 -0
  21. package/dist/__tests__/exercises/parse.test.d.ts +2 -0
  22. package/dist/__tests__/exercises/parse.test.d.ts.map +1 -0
  23. package/dist/__tests__/exercises/parse.test.js +37 -0
  24. package/dist/__tests__/exercises/parse.test.js.map +1 -0
  25. package/dist/__tests__/exercises/refs.test.d.ts +2 -0
  26. package/dist/__tests__/exercises/refs.test.d.ts.map +1 -0
  27. package/dist/__tests__/exercises/refs.test.js +46 -0
  28. package/dist/__tests__/exercises/refs.test.js.map +1 -0
  29. package/dist/__tests__/exercises/solutions.test.d.ts +2 -0
  30. package/dist/__tests__/exercises/solutions.test.d.ts.map +1 -0
  31. package/dist/__tests__/exercises/solutions.test.js +53 -0
  32. package/dist/__tests__/exercises/solutions.test.js.map +1 -0
  33. package/dist/__tests__/exports.test.js +14 -0
  34. package/dist/__tests__/exports.test.js.map +1 -1
  35. package/dist/__tests__/parse/containers.test.js +2 -2
  36. package/dist/__tests__/parse/containers.test.js.map +1 -1
  37. package/dist/__tests__/pipeline/pageShorterThanLine.test.d.ts +2 -0
  38. package/dist/__tests__/pipeline/pageShorterThanLine.test.d.ts.map +1 -0
  39. package/dist/__tests__/pipeline/pageShorterThanLine.test.js +29 -0
  40. package/dist/__tests__/pipeline/pageShorterThanLine.test.js.map +1 -0
  41. package/dist/__tests__/pipeline/spanHeadingMidPage.test.js +11 -0
  42. package/dist/__tests__/pipeline/spanHeadingMidPage.test.js.map +1 -1
  43. package/dist/canvas-backend/blockRender.d.ts.map +1 -1
  44. package/dist/canvas-backend/blockRender.js +18 -0
  45. package/dist/canvas-backend/blockRender.js.map +1 -1
  46. package/dist/canvas-backend/chip.d.ts +3 -0
  47. package/dist/canvas-backend/chip.d.ts.map +1 -1
  48. package/dist/canvas-backend/chip.js +31 -1
  49. package/dist/canvas-backend/chip.js.map +1 -1
  50. package/dist/configWarnings.d.ts +3 -1
  51. package/dist/configWarnings.d.ts.map +1 -1
  52. package/dist/configWarnings.js +5 -1
  53. package/dist/configWarnings.js.map +1 -1
  54. package/dist/defaults/chipStyles.d.ts.map +1 -1
  55. package/dist/defaults/chipStyles.js +7 -0
  56. package/dist/defaults/chipStyles.js.map +1 -1
  57. package/dist/defaults/exercises.d.ts +111 -0
  58. package/dist/defaults/exercises.d.ts.map +1 -0
  59. package/dist/defaults/exercises.js +255 -0
  60. package/dist/defaults/exercises.js.map +1 -0
  61. package/dist/defaults/index.d.ts +2 -0
  62. package/dist/defaults/index.d.ts.map +1 -1
  63. package/dist/defaults/index.js +16 -0
  64. package/dist/defaults/index.js.map +1 -1
  65. package/dist/defaults/shared.d.ts +4 -0
  66. package/dist/defaults/shared.d.ts.map +1 -1
  67. package/dist/defaults/shared.js +6 -0
  68. package/dist/defaults/shared.js.map +1 -1
  69. package/dist/design/elementKeys.d.ts +2 -0
  70. package/dist/design/elementKeys.d.ts.map +1 -1
  71. package/dist/design/elementKeys.js +1 -1
  72. package/dist/design/elementKeys.js.map +1 -1
  73. package/dist/exercises/build.d.ts +60 -0
  74. package/dist/exercises/build.d.ts.map +1 -0
  75. package/dist/exercises/build.js +177 -0
  76. package/dist/exercises/build.js.map +1 -0
  77. package/dist/exercises/configWarnings.d.ts +11 -0
  78. package/dist/exercises/configWarnings.d.ts.map +1 -0
  79. package/dist/exercises/configWarnings.js +175 -0
  80. package/dist/exercises/configWarnings.js.map +1 -0
  81. package/dist/exercises/designs.d.ts +38 -0
  82. package/dist/exercises/designs.d.ts.map +1 -0
  83. package/dist/exercises/designs.js +143 -0
  84. package/dist/exercises/designs.js.map +1 -0
  85. package/dist/exercises/digital.d.ts +69 -0
  86. package/dist/exercises/digital.d.ts.map +1 -0
  87. package/dist/exercises/digital.js +58 -0
  88. package/dist/exercises/digital.js.map +1 -0
  89. package/dist/exercises/expand.d.ts +74 -0
  90. package/dist/exercises/expand.d.ts.map +1 -0
  91. package/dist/exercises/expand.js +1089 -0
  92. package/dist/exercises/expand.js.map +1 -0
  93. package/dist/exercises/grids.d.ts +62 -0
  94. package/dist/exercises/grids.d.ts.map +1 -0
  95. package/dist/exercises/grids.js +535 -0
  96. package/dist/exercises/grids.js.map +1 -0
  97. package/dist/exercises/model.d.ts +24 -0
  98. package/dist/exercises/model.d.ts.map +1 -0
  99. package/dist/exercises/model.js +360 -0
  100. package/dist/exercises/model.js.map +1 -0
  101. package/dist/exercises/record.d.ts +94 -0
  102. package/dist/exercises/record.d.ts.map +1 -0
  103. package/dist/exercises/record.js +9 -0
  104. package/dist/exercises/record.js.map +1 -0
  105. package/dist/exercises/runtime.d.ts +65 -0
  106. package/dist/exercises/runtime.d.ts.map +1 -0
  107. package/dist/exercises/runtime.js +1261 -0
  108. package/dist/exercises/runtime.js.map +1 -0
  109. package/dist/exercises/shuffle.d.ts +13 -0
  110. package/dist/exercises/shuffle.d.ts.map +1 -0
  111. package/dist/exercises/shuffle.js +56 -0
  112. package/dist/exercises/shuffle.js.map +1 -0
  113. package/dist/exercises/styles.d.ts +51 -0
  114. package/dist/exercises/styles.d.ts.map +1 -0
  115. package/dist/exercises/styles.js +221 -0
  116. package/dist/exercises/styles.js.map +1 -0
  117. package/dist/exercises/text.d.ts +31 -0
  118. package/dist/exercises/text.d.ts.map +1 -0
  119. package/dist/exercises/text.js +82 -0
  120. package/dist/exercises/text.js.map +1 -0
  121. package/dist/exercises/types.d.ts +125 -0
  122. package/dist/exercises/types.d.ts.map +1 -0
  123. package/dist/exercises/types.js +9 -0
  124. package/dist/exercises/types.js.map +1 -0
  125. package/dist/exercises/warnings.d.ts +16 -0
  126. package/dist/exercises/warnings.d.ts.map +1 -0
  127. package/dist/exercises/warnings.js +55 -0
  128. package/dist/exercises/warnings.js.map +1 -0
  129. package/dist/html-backend.d.ts +6 -0
  130. package/dist/html-backend.d.ts.map +1 -1
  131. package/dist/html-backend.js +67 -6
  132. package/dist/html-backend.js.map +1 -1
  133. package/dist/index.d.ts +6 -0
  134. package/dist/index.d.ts.map +1 -1
  135. package/dist/index.js +4 -0
  136. package/dist/index.js.map +1 -1
  137. package/dist/measure/cache.d.ts.map +1 -1
  138. package/dist/measure/cache.js +6 -1
  139. package/dist/measure/cache.js.map +1 -1
  140. package/dist/measure/rich.d.ts.map +1 -1
  141. package/dist/measure/rich.js +11 -1
  142. package/dist/measure/rich.js.map +1 -1
  143. package/dist/migrate/markdownRuns.js +1 -1
  144. package/dist/migrate/markdownRuns.js.map +1 -1
  145. package/dist/numbering.d.ts +3 -0
  146. package/dist/numbering.d.ts.map +1 -1
  147. package/dist/numbering.js +6 -0
  148. package/dist/numbering.js.map +1 -1
  149. package/dist/parse/blockParser.d.ts.map +1 -1
  150. package/dist/parse/blockParser.js +47 -4
  151. package/dist/parse/blockParser.js.map +1 -1
  152. package/dist/parse/exerciseGaps.d.ts +50 -0
  153. package/dist/parse/exerciseGaps.d.ts.map +1 -0
  154. package/dist/parse/exerciseGaps.js +151 -0
  155. package/dist/parse/exerciseGaps.js.map +1 -0
  156. package/dist/parse/index.d.ts +1 -1
  157. package/dist/parse/index.d.ts.map +1 -1
  158. package/dist/parse/index.js.map +1 -1
  159. package/dist/parse/sourceMapping.d.ts.map +1 -1
  160. package/dist/parse/sourceMapping.js +21 -0
  161. package/dist/parse/sourceMapping.js.map +1 -1
  162. package/dist/parse/types.d.ts +49 -1
  163. package/dist/parse/types.d.ts.map +1 -1
  164. package/dist/pipeline/build.d.ts.map +1 -1
  165. package/dist/pipeline/build.js +51 -9
  166. package/dist/pipeline/build.js.map +1 -1
  167. package/dist/pipeline/calloutLayout.d.ts.map +1 -1
  168. package/dist/pipeline/calloutLayout.js +1 -0
  169. package/dist/pipeline/calloutLayout.js.map +1 -1
  170. package/dist/pipeline/chips.d.ts.map +1 -1
  171. package/dist/pipeline/chips.js +2 -0
  172. package/dist/pipeline/chips.js.map +1 -1
  173. package/dist/pipeline/config.d.ts.map +1 -1
  174. package/dist/pipeline/config.js +6 -0
  175. package/dist/pipeline/config.js.map +1 -1
  176. package/dist/pipeline/contentWarnings.d.ts.map +1 -1
  177. package/dist/pipeline/contentWarnings.js +29 -1
  178. package/dist/pipeline/contentWarnings.js.map +1 -1
  179. package/dist/pipeline/continuation.d.ts.map +1 -1
  180. package/dist/pipeline/continuation.js +21 -6
  181. package/dist/pipeline/continuation.js.map +1 -1
  182. package/dist/pipeline/measureContentBlock.d.ts.map +1 -1
  183. package/dist/pipeline/measureContentBlock.js +3 -2
  184. package/dist/pipeline/measureContentBlock.js.map +1 -1
  185. package/dist/pipeline/outline.d.ts.map +1 -1
  186. package/dist/pipeline/outline.js +1 -0
  187. package/dist/pipeline/outline.js.map +1 -1
  188. package/dist/pipeline/textWrap.js +1 -1
  189. package/dist/pipeline/textWrap.js.map +1 -1
  190. package/dist/types.d.ts +303 -2
  191. package/dist/types.d.ts.map +1 -1
  192. package/dist/vdt.d.ts +67 -0
  193. package/dist/vdt.d.ts.map +1 -1
  194. package/dist/vdt.js.map +1 -1
  195. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/exercises/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Seeded shuffles (#1225): the order an exercise prints its options, pairs
3
+ * or items in is drawn from the book's `exercises.seed`, the exercise's
4
+ * ordinal and what is shuffled, so print, HTML, EPUB and the key agree, and
5
+ * a rebuild lays the same page.
6
+ */
7
+ /** A generator of numbers in [0, 1) (mulberry32). */
8
+ export declare function seededRandom(...parts: ReadonlyArray<string | number>): () => number;
9
+ /** The indices `0 … n − 1` shuffled. With `moveAll`, no index stays where it
10
+ * was when there are three or more (and two swap), so the printed order
11
+ * never gives the written one away. */
12
+ export declare function shuffledOrder(n: number, random: () => number, moveAll?: boolean): number[];
13
+ //# sourceMappingURL=shuffle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shuffle.d.ts","sourceRoot":"","sources":["../../src/exercises/shuffle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,qDAAqD;AACrD,wBAAgB,YAAY,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,MAAM,CASnF;AAED;;wCAEwC;AACxC,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,MAAM,EAAE,OAAO,UAAO,GAAG,MAAM,EAAE,CAmBvF"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Seeded shuffles (#1225): the order an exercise prints its options, pairs
3
+ * or items in is drawn from the book's `exercises.seed`, the exercise's
4
+ * ordinal and what is shuffled, so print, HTML, EPUB and the key agree, and
5
+ * a rebuild lays the same page.
6
+ */
7
+ /** A 32-bit hash of the strings. */
8
+ function hash(parts) {
9
+ let h = 2166136261;
10
+ for (const p of parts) {
11
+ const s = String(p);
12
+ for (let i = 0; i < s.length; i++) {
13
+ h ^= s.charCodeAt(i);
14
+ h = Math.imul(h, 16777619);
15
+ }
16
+ h ^= 0x1f;
17
+ h = Math.imul(h, 16777619);
18
+ }
19
+ return h >>> 0;
20
+ }
21
+ /** A generator of numbers in [0, 1) (mulberry32). */
22
+ export function seededRandom(...parts) {
23
+ let a = hash(parts);
24
+ return () => {
25
+ a = (a + 0x6d2b79f5) | 0;
26
+ let t = a;
27
+ t = Math.imul(t ^ (t >>> 15), t | 1);
28
+ t ^= t + Math.imul(t ^ (t >>> 7), t | 61);
29
+ return ((t ^ (t >>> 14)) >>> 0) / 4294967296;
30
+ };
31
+ }
32
+ /** The indices `0 … n − 1` shuffled. With `moveAll`, no index stays where it
33
+ * was when there are three or more (and two swap), so the printed order
34
+ * never gives the written one away. */
35
+ export function shuffledOrder(n, random, moveAll = true) {
36
+ const order = Array.from({ length: n }, (_, i) => i);
37
+ for (let i = n - 1; i > 0; i--) {
38
+ const j = Math.floor(random() * (i + 1));
39
+ [order[i], order[j]] = [order[j], order[i]];
40
+ }
41
+ if (moveAll && n > 1 && order.some((v, i) => v === i)) {
42
+ // Rotate the fixed points among themselves, else the whole order.
43
+ const fixed = order.map((v, i) => (v === i ? i : -1)).filter((i) => i >= 0);
44
+ if (fixed.length > 1) {
45
+ const vals = fixed.map((i) => order[i]);
46
+ fixed.forEach((i, k) => { order[i] = vals[(k + 1) % vals.length]; });
47
+ }
48
+ else {
49
+ const i = fixed[0];
50
+ const j = (i + 1) % n;
51
+ [order[i], order[j]] = [order[j], order[i]];
52
+ }
53
+ }
54
+ return order;
55
+ }
56
+ //# sourceMappingURL=shuffle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shuffle.js","sourceRoot":"","sources":["../../src/exercises/shuffle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * The synthetic styles an exercise is set with (#1227): chip styles for its
3
+ * number, blanks, boxes and rings; paragraph styles for its instruction,
4
+ * options and items; frameless boxes. All ids start `__postext-ex`, so no
5
+ * fence picks them by accident and the fallbacks skip them.
6
+ */
7
+ import type { CalloutStyleConfig, ChipStyleConfig, ParagraphStyleConfig } from '../types.js';
8
+ import type { ResolvedExerciseStyle } from '../defaults/exercises.js';
9
+ export declare const EX_PREFIX = "__postext-ex";
10
+ /** The ids of an exercise style's synthetic styles. */
11
+ export declare function exerciseStyleIds(style: Pick<ResolvedExerciseStyle, 'id'>): {
12
+ frame: string;
13
+ solutionBox: string;
14
+ bankBox: string;
15
+ instruction: string;
16
+ option: string;
17
+ optionUnder: string;
18
+ solutionList: string;
19
+ row: string;
20
+ item: string;
21
+ statement: string;
22
+ pairs: string;
23
+ key: string;
24
+ text: string;
25
+ number: string;
26
+ level: string;
27
+ icon: string;
28
+ blank: string;
29
+ blankAnswer: string;
30
+ choice: string;
31
+ choiceRing: string;
32
+ tick: string;
33
+ tickOn: string;
34
+ rank: string;
35
+ rankAnswer: string;
36
+ word: string;
37
+ answer: string;
38
+ mark: string;
39
+ markOn: string;
40
+ };
41
+ export type ExerciseStyleIds = ReturnType<typeof exerciseStyleIds>;
42
+ /** Room a label (`a)`, `ア`, `(أ)`) takes before an option's text. */
43
+ export declare function labelRoomEm(style: ResolvedExerciseStyle): number;
44
+ /** The chip styles of an exercise style. */
45
+ export declare function exerciseChipStyles(style: ResolvedExerciseStyle): ChipStyleConfig[];
46
+ /** The paragraph styles of an exercise style. */
47
+ export declare function exerciseParagraphStyles(style: ResolvedExerciseStyle): ParagraphStyleConfig[];
48
+ /** The frameless box an exercise is set in when its style names none, and
49
+ * the boxes of its solutions and word bank. */
50
+ export declare function exerciseBoxStyles(style: ResolvedExerciseStyle, solutionBox: string | undefined, bodySizePt: number): CalloutStyleConfig[];
51
+ //# sourceMappingURL=styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/exercises/styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,eAAe,EAAa,oBAAoB,EAAW,MAAM,aAAa,CAAC;AACjH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAKxC,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCxE;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEnE,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAIhE;AAED,4CAA4C;AAC5C,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,GAAG,eAAe,EAAE,CAsFlF;AAED,iDAAiD;AACjD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,qBAAqB,GAAG,oBAAoB,EAAE,CAyC5F;AAED;gDACgD;AAChD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAkCzI"}
@@ -0,0 +1,221 @@
1
+ /**
2
+ * The synthetic styles an exercise is set with (#1227): chip styles for its
3
+ * number, blanks, boxes and rings; paragraph styles for its instruction,
4
+ * options and items; frameless boxes. All ids start `__postext-ex`, so no
5
+ * fence picks them by accident and the fallbacks skip them.
6
+ */
7
+ export const EX_PREFIX = '__postext-ex';
8
+ const EM = (value) => ({ value, unit: 'em' });
9
+ const PT = (value) => ({ value, unit: 'pt' });
10
+ /** The ids of an exercise style's synthetic styles. */
11
+ export function exerciseStyleIds(style) {
12
+ const p = `${EX_PREFIX}-${style.id}`;
13
+ return {
14
+ frame: `${p}-frame`,
15
+ solutionBox: `${p}-solution`,
16
+ bankBox: `${p}-bank`,
17
+ instruction: `${p}-instruction`,
18
+ option: `${p}-option`,
19
+ optionUnder: `${p}-option-under`,
20
+ solutionList: `${p}-solution-list`,
21
+ row: `${p}-row`,
22
+ item: `${p}-item`,
23
+ statement: `${p}-statement`,
24
+ pairs: `${p}-pairs`,
25
+ key: `${p}-key`,
26
+ text: `${p}-text`,
27
+ number: `${p}-number`,
28
+ level: `${p}-level`,
29
+ icon: `${p}-icon`,
30
+ blank: `${p}-blank`,
31
+ blankAnswer: `${p}-blank-answer`,
32
+ choice: `${p}-choice`,
33
+ choiceRing: `${p}-choice-ring`,
34
+ tick: `${p}-tick`,
35
+ tickOn: `${p}-tick-on`,
36
+ rank: `${p}-rank`,
37
+ rankAnswer: `${p}-rank-answer`,
38
+ word: `${p}-word`,
39
+ answer: `${p}-answer`,
40
+ mark: `${p}-mark`,
41
+ markOn: `${p}-mark-on`,
42
+ };
43
+ }
44
+ /** Room a label (`a)`, `ア`, `(أ)`) takes before an option's text. */
45
+ export function labelRoomEm(style) {
46
+ if (style.options.labels === 'none')
47
+ return style.options.marker === 'none' ? 0 : 1.6;
48
+ const affix = (style.options.prefix + style.options.suffix).length * 0.4;
49
+ return Math.max(1.5, 1.1 + affix) + (style.options.marker === 'none' ? 0 : 1.6);
50
+ }
51
+ /** The chip styles of an exercise style. */
52
+ export function exerciseChipStyles(style) {
53
+ const ids = exerciseStyleIds(style);
54
+ const n = style.number;
55
+ const shaped = n.shape !== 'none';
56
+ const numberColor = n.color ?? (shaped ? { hex: '#ffffff', model: 'hex' } : n.background);
57
+ const answer = style.answers.color;
58
+ const ink = style.blank.color;
59
+ const blankLook = style.blank.look;
60
+ // A box (or ring) to tick: set at 0.8 of the text, as wide as it is
61
+ // tall (the chip's band is 1.05 em tall).
62
+ const tick = {
63
+ id: ids.tick, backgroundEnabled: false, borderWidth: EM(0.07), borderRadius: EM(style.options.marker === 'circle' ? 1 : 0.12),
64
+ ...(ink ? { borderColor: ink } : {}), fontSize: EM(0.8), paddingX: EM(0), paddingY: EM(0), minWidth: EM(1.05), gap: EM(0.4),
65
+ };
66
+ return [
67
+ {
68
+ id: ids.number,
69
+ backgroundEnabled: shaped,
70
+ background: n.background,
71
+ borderWidth: PT(0),
72
+ borderRadius: EM(n.shape === 'disc' ? 1 : n.shape === 'rounded' ? 0.25 : 0),
73
+ paddingX: EM(shaped ? 0.3 : 0),
74
+ paddingTop: EM(shaped ? 0.16 : 0),
75
+ paddingBottom: EM(shaped ? 0.08 : 0),
76
+ ...(shaped ? { minWidth: EM(1.25) } : {}),
77
+ ...(n.fontFamily ? { fontFamily: n.fontFamily } : {}),
78
+ fontSize: n.fontSize,
79
+ color: numberColor,
80
+ bold: n.fontWeight >= 600,
81
+ gap: EM(0.45),
82
+ },
83
+ { id: ids.level, backgroundEnabled: false, borderWidth: PT(0), paddingX: EM(0), paddingY: EM(0), color: style.level.color, fontSize: EM(0.7), gap: EM(0.35) },
84
+ { id: ids.icon, backgroundEnabled: false, borderWidth: PT(0), paddingX: EM(0), paddingY: EM(0), gap: EM(0.35) },
85
+ // A blank: as wide as its answer (or the longest), the answer itself
86
+ // not painted in the pupil's edition.
87
+ {
88
+ id: ids.blank,
89
+ backgroundEnabled: false,
90
+ ...(ink ? { borderColor: ink } : { borderColor: { hex: '#000000', model: 'hex' } }),
91
+ borderWidth: blankLook === 'none' ? PT(0) : style.blank.weight,
92
+ borderRadius: EM(blankLook === 'box' ? 0.12 : 0),
93
+ ...(blankLook === 'line' ? { underline: 'solid' } : blankLook === 'dots' ? { underline: 'dotted' } : {}),
94
+ paddingX: EM(0.2),
95
+ paddingTop: EM(blankLook === 'box' ? 0.12 : 0),
96
+ paddingBottom: EM(blankLook === 'box' ? 0.08 : 0.05),
97
+ minWidth: typeof style.blank.width === 'object' ? style.blank.width : style.blank.minWidth,
98
+ gap: EM(0.2),
99
+ },
100
+ {
101
+ id: ids.blankAnswer,
102
+ backgroundEnabled: false,
103
+ ...(ink ? { borderColor: ink } : { borderColor: { hex: '#000000', model: 'hex' } }),
104
+ borderWidth: blankLook === 'none' ? PT(0) : style.blank.weight,
105
+ borderRadius: EM(blankLook === 'box' ? 0.12 : 0),
106
+ ...(blankLook === 'line' ? { underline: 'solid' } : blankLook === 'dots' ? { underline: 'dotted' } : {}),
107
+ paddingX: EM(0.2),
108
+ paddingTop: EM(blankLook === 'box' ? 0.12 : 0),
109
+ paddingBottom: EM(blankLook === 'box' ? 0.08 : 0.05),
110
+ minWidth: typeof style.blank.width === 'object' ? style.blank.width : style.blank.minWidth,
111
+ gap: EM(0.2),
112
+ color: answer,
113
+ ...(style.answers.fontFamily ? { fontFamily: style.answers.fontFamily } : {}),
114
+ italic: style.answers.italic ?? false,
115
+ },
116
+ // The options of an inline choice: the right one ringed where answers
117
+ // show; both keep one geometry so the line does not move, and take
118
+ // little room beside the words around them (a ring hugs its word).
119
+ { id: ids.choice, backgroundEnabled: false, borderWidth: EM(0), borderRadius: EM(0.6), paddingX: EM(0.08), paddingY: EM(0.1), gap: EM(0) },
120
+ { id: ids.choiceRing, backgroundEnabled: false, borderColor: answer, borderWidth: EM(0.06), borderRadius: EM(0.6), paddingX: EM(0.02), paddingY: EM(0.04), gap: EM(0) },
121
+ tick,
122
+ // The box an item's number is written in (order).
123
+ { ...tick, id: ids.rank, fontSize: EM(1), borderWidth: PT(0.8), borderRadius: EM(0.12), minWidth: EM(1.3), paddingTop: EM(0.1), paddingBottom: EM(0.04) },
124
+ { ...tick, id: ids.rankAnswer, fontSize: EM(1), borderWidth: PT(0.8), borderRadius: EM(0.12), minWidth: EM(1.3), paddingTop: EM(0.1), paddingBottom: EM(0.04), color: answer },
125
+ { ...tick, id: ids.tickOn, backgroundEnabled: true, background: answer, borderColor: answer, color: { hex: '#ffffff', model: 'hex' } },
126
+ // A word of a bank or a scrambled sentence.
127
+ { id: ids.word, backgroundEnabled: false, borderWidth: PT(0.6), ...(ink ? { borderColor: ink } : {}), borderRadius: EM(0.3), paddingX: EM(0.35), paddingY: EM(0.06), gap: EM(0.5) },
128
+ // An answer written in a teacher's edition (an order's rank…).
129
+ { id: ids.answer, backgroundEnabled: false, borderWidth: PT(0), paddingX: EM(0), paddingY: EM(0), color: answer, ...(style.answers.fontFamily ? { fontFamily: style.answers.fontFamily } : {}), gap: EM(0.25) },
130
+ // A word to mark: plain in the pupil's edition, ringed in the answers.
131
+ { id: ids.mark, backgroundEnabled: false, borderWidth: EM(0), borderRadius: EM(0.6), paddingX: EM(0.08), paddingY: EM(0.08), gap: EM(0) },
132
+ { id: ids.markOn, backgroundEnabled: false, borderColor: answer, borderWidth: EM(0.06), borderRadius: EM(0.6), paddingX: EM(0.02), paddingY: EM(0.02), gap: EM(0) },
133
+ // The other ways a marked word shows (`mark=box|underline|highlight`).
134
+ { id: `${ids.markOn}-box`, backgroundEnabled: false, borderColor: answer, borderWidth: EM(0.06), borderRadius: EM(0.08), paddingX: EM(0.02), paddingY: EM(0.02), gap: EM(0) },
135
+ { id: `${ids.markOn}-underline`, backgroundEnabled: false, borderColor: answer, borderWidth: EM(0.08), underline: 'solid', paddingX: EM(0), paddingY: EM(0), gap: EM(0) },
136
+ { id: `${ids.markOn}-highlight`, backgroundEnabled: true, background: { hex: '#ffe58a', model: 'hex' }, borderWidth: EM(0), borderRadius: EM(0.15), paddingX: EM(0.08), paddingY: EM(0.08), gap: EM(0) },
137
+ ];
138
+ }
139
+ /** The paragraph styles of an exercise style. */
140
+ export function exerciseParagraphStyles(style) {
141
+ const ids = exerciseStyleIds(style);
142
+ const ins = style.instruction;
143
+ const room = labelRoomEm(style);
144
+ const indent = style.options.indent;
145
+ const columns = style.options.columns;
146
+ const rowStops = [];
147
+ if (columns && columns > 1)
148
+ for (let k = 1; k < columns; k++)
149
+ rowStops.push({ position: `${Math.round((k * 1000) / columns) / 10}%` });
150
+ const item = style.itemSpacing;
151
+ return [
152
+ {
153
+ id: ids.instruction,
154
+ ...(ins.fontFamily ? { fontFamily: ins.fontFamily } : {}),
155
+ ...(ins.fontSize ? { fontSize: ins.fontSize } : {}),
156
+ ...(ins.color ? { color: ins.color, boldColor: ins.color } : {}),
157
+ ...(ins.italic ? { italic: true } : {}),
158
+ firstLineIndent: EM(0),
159
+ spaceBetween: item,
160
+ marginBottom: EM(0.4),
161
+ },
162
+ { id: ids.option, indent, firstLineIndent: EM(0), hangingIndent: EM(room), tabStops: room > 0 ? [{ position: EM(room) }] : [], spaceBetween: item, marginTop: item, marginBottom: item },
163
+ // The options of a question with a stem, under the stem's text.
164
+ { id: ids.optionUnder, indent: EM(1.8), firstLineIndent: EM(0), hangingIndent: EM(room), tabStops: room > 0 ? [{ position: EM(room) }] : [], spaceBetween: item, marginTop: item, marginBottom: EM(0.5) },
165
+ { id: ids.row, indent, firstLineIndent: EM(0), tabStops: rowStops, tabInterval: EM(8), spaceBetween: item, marginTop: item, marginBottom: item },
166
+ // Options side by side, n to a row (`columns=n`): a stop at each n-th.
167
+ ...[1, 2, 3, 4, 5, 6].map((n) => ({
168
+ id: `${ids.row}-${n}`, indent, firstLineIndent: EM(0),
169
+ tabStops: Array.from({ length: n - 1 }, (_, k) => ({ position: `${Math.round(((k + 1) * 1000) / n) / 10}%` })),
170
+ spaceBetween: item, marginTop: item, marginBottom: item,
171
+ })),
172
+ { id: ids.item, firstLineIndent: EM(0), hangingIndent: EM(1.8), tabStops: [{ position: EM(1.8) }], spaceBetween: item, marginTop: item, marginBottom: item },
173
+ // A true/false statement: its boxes flush with the end of the line.
174
+ { id: ids.statement, firstLineIndent: EM(0), hangingIndent: EM(1.8), tabStops: [{ position: EM(1.8) }, { position: 'end', align: 'end' }], spaceBetween: item, marginTop: item, marginBottom: item },
175
+ // A pair of a match exercise lettered: its letter bracket at the end.
176
+ { id: ids.pairs, firstLineIndent: EM(0), tabStops: [{ position: '50%' }], spaceBetween: item, marginTop: item, marginBottom: item },
177
+ // A key's number, then its answers at the first stop past it (`一、`
178
+ // and `12.` are wider than 1.8 em).
179
+ { id: ids.key, firstLineIndent: EM(0), hangingIndent: EM(1.8), tabStops: [{ position: EM(1.8) }, { position: EM(2.6) }, { position: EM(3.4) }], spaceBetween: EM(0.15) },
180
+ // The exercise's own paragraphs (its text, its bank), never indented.
181
+ { id: ids.text, firstLineIndent: EM(0), spaceBetween: item, marginTop: item, marginBottom: item },
182
+ ];
183
+ }
184
+ /** The frameless box an exercise is set in when its style names none, and
185
+ * the boxes of its solutions and word bank. */
186
+ export function exerciseBoxStyles(style, solutionBox, bodySizePt) {
187
+ const ids = exerciseStyleIds(style);
188
+ const out = [];
189
+ if (!style.box) {
190
+ out.push({
191
+ id: ids.frame, name: 'Exercise', title: '', backgroundEnabled: false, border: { enabled: false }, padding: { top: PT(0), right: PT(0), bottom: PT(0), left: PT(0) },
192
+ stripe: { enabled: false }, icon: { kind: 'none' }, marker: { kind: 'none' }, marginTop: style.marginTop, marginBottom: style.marginBottom,
193
+ snapToGrid: false, keepTogether: true,
194
+ });
195
+ }
196
+ if (!solutionBox) {
197
+ out.push({
198
+ id: ids.solutionBox, name: 'Solution', title: '', backgroundEnabled: false, border: { enabled: false }, padding: { top: PT(0), right: PT(0), bottom: PT(0), left: PT(0) },
199
+ stripe: { enabled: false }, icon: { kind: 'none' }, marker: { kind: 'none' }, marginTop: EM(0.5), marginBottom: EM(0.8), snapToGrid: false, keepTogether: true,
200
+ body: { fontSize: PT(Math.round(bodySizePt * 0.85 * 100) / 100) },
201
+ });
202
+ }
203
+ if (!solutionBox) {
204
+ // The solutions of a chapter, listed at its end: split across pages.
205
+ out.push({
206
+ id: ids.solutionList, name: 'Solutions', title: '', backgroundEnabled: false, border: { enabled: false }, padding: { top: PT(0), right: PT(0), bottom: PT(0), left: PT(0) },
207
+ stripe: { enabled: false }, icon: { kind: 'none' }, marker: { kind: 'none' }, marginTop: EM(1), marginBottom: EM(0.8), snapToGrid: false, keepTogether: false,
208
+ titleStyle: { fontSize: PT(Math.round(bodySizePt * 1.15 * 100) / 100), fontWeight: 700 },
209
+ body: { fontSize: PT(Math.round(bodySizePt * 0.9 * 100) / 100) },
210
+ });
211
+ }
212
+ if (!style.bank.box) {
213
+ out.push({
214
+ id: ids.bankBox, name: 'Word bank', title: '', backgroundEnabled: false, border: { enabled: true, color: style.match.color, width: PT(0.8) }, borderRadius: EM(0.4),
215
+ padding: { top: EM(0.35), right: EM(0.6), bottom: EM(0.35), left: EM(0.6) }, stripe: { enabled: false }, icon: { kind: 'none' }, marker: { kind: 'none' },
216
+ marginTop: EM(0.4), marginBottom: EM(0.6), snapToGrid: false, keepTogether: true,
217
+ });
218
+ }
219
+ return out;
220
+ }
221
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/exercises/styles.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Runs of inline text for the exercise expansion (#1225): a block's plain
3
+ * text, its spans and its source map kept together, so a piece cut from a
4
+ * block (an option, the right side of a pair) or a word the engine adds (a
5
+ * label, a number) stays mapped to the source the Sandbox points at.
6
+ */
7
+ import type { ContentBlock, InlineSpan } from '../parse/index.js';
8
+ /** A block's inline content: `text` is the spans joined, `sourceMap` one
9
+ * offset per character of it. */
10
+ export interface Run {
11
+ text: string;
12
+ spans: InlineSpan[];
13
+ sourceMap: number[];
14
+ }
15
+ export declare const EMPTY_RUN: Run;
16
+ export declare function runOf(block: Pick<ContentBlock, 'text' | 'spans' | 'sourceMap'>): Run;
17
+ /** `[start, end)` of a run. */
18
+ export declare function sliceRun(run: Run, start: number, end?: number): Run;
19
+ /** The runs one after another. */
20
+ export declare function joinRuns(...runs: Run[]): Run;
21
+ /** Words the engine sets (a label, a number), mapped to `at`. */
22
+ export declare function textRun(text: string, at: number, style?: Partial<InlineSpan>): Run;
23
+ /** A run whose spans are all set bold (or `italic`). */
24
+ export declare function styledRun(run: Run, style: Partial<Pick<InlineSpan, 'bold' | 'italic'>>): Run;
25
+ /** The run with the white space at its ends taken off. */
26
+ export declare function trimRun(run: Run): Run;
27
+ /** The run cut at every match of `sep` (a plain-text pattern), trimmed. */
28
+ export declare function splitRun(run: Run, sep: RegExp): Run[];
29
+ /** A content block of `type` holding `run`. */
30
+ export declare function blockOfRun(type: ContentBlock['type'], run: Run, fields?: Partial<ContentBlock>): ContentBlock;
31
+ //# sourceMappingURL=text.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../src/exercises/text.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGlE;kCACkC;AAClC,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,eAAO,MAAM,SAAS,EAAE,GAA4C,CAAC;AAErE,wBAAgB,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC,GAAG,GAAG,CAEpF;AAED,+BAA+B;AAC/B,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,MAAwB,GAAG,GAAG,CAepF;AAED,kCAAkC;AAClC,wBAAgB,QAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,GAAG,CAQ5C;AAED,iEAAiE;AACjE,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,OAAO,CAAC,UAAU,CAAM,GAAG,GAAG,CAGtF;AAED,wDAAwD;AACxD,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,GAAG,GAAG,CAE5F;AAED,0DAA0D;AAC1D,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAMrC;AAED,2EAA2E;AAC3E,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,GAAG,EAAE,CAWrD;AAED,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GAAG,YAAY,CAIjH"}