@vue-skuilder/courseware 0.1.8-1

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 (186) hide show
  1. package/dist/CourseWare.d.ts +18 -0
  2. package/dist/CourseWare.d.ts.map +1 -0
  3. package/dist/assets/index.css +1 -0
  4. package/dist/chess/chessUtils.d.ts +17 -0
  5. package/dist/chess/chessUtils.d.ts.map +1 -0
  6. package/dist/chess/chessground/anim.d.ts +18 -0
  7. package/dist/chess/chessground/anim.d.ts.map +1 -0
  8. package/dist/chess/chessground/api.d.ts +29 -0
  9. package/dist/chess/chessground/api.d.ts.map +1 -0
  10. package/dist/chess/chessground/autoPieces.d.ts +4 -0
  11. package/dist/chess/chessground/autoPieces.d.ts.map +1 -0
  12. package/dist/chess/chessground/board.d.ts +26 -0
  13. package/dist/chess/chessground/board.d.ts.map +1 -0
  14. package/dist/chess/chessground/chessground.d.ts +8 -0
  15. package/dist/chess/chessground/chessground.d.ts.map +1 -0
  16. package/dist/chess/chessground/config.d.ts +88 -0
  17. package/dist/chess/chessground/config.d.ts.map +1 -0
  18. package/dist/chess/chessground/drag.d.ts +21 -0
  19. package/dist/chess/chessground/drag.d.ts.map +1 -0
  20. package/dist/chess/chessground/draw.d.ts +66 -0
  21. package/dist/chess/chessground/draw.d.ts.map +1 -0
  22. package/dist/chess/chessground/drop.d.ts +6 -0
  23. package/dist/chess/chessground/drop.d.ts.map +1 -0
  24. package/dist/chess/chessground/events.d.ts +5 -0
  25. package/dist/chess/chessground/events.d.ts.map +1 -0
  26. package/dist/chess/chessground/explosion.d.ts +4 -0
  27. package/dist/chess/chessground/explosion.d.ts.map +1 -0
  28. package/dist/chess/chessground/fen.d.ts +5 -0
  29. package/dist/chess/chessground/fen.d.ts.map +1 -0
  30. package/dist/chess/chessground/premove.d.ts +7 -0
  31. package/dist/chess/chessground/premove.d.ts.map +1 -0
  32. package/dist/chess/chessground/render.d.ts +5 -0
  33. package/dist/chess/chessground/render.d.ts.map +1 -0
  34. package/dist/chess/chessground/state.d.ts +101 -0
  35. package/dist/chess/chessground/state.d.ts.map +1 -0
  36. package/dist/chess/chessground/svg.d.ts +9 -0
  37. package/dist/chess/chessground/svg.d.ts.map +1 -0
  38. package/dist/chess/chessground/sync.d.ts +9 -0
  39. package/dist/chess/chessground/sync.d.ts.map +1 -0
  40. package/dist/chess/chessground/types.d.ts +94 -0
  41. package/dist/chess/chessground/types.d.ts.map +1 -0
  42. package/dist/chess/chessground/util.d.ts +21 -0
  43. package/dist/chess/chessground/util.d.ts.map +1 -0
  44. package/dist/chess/chessground/wrap.d.ts +4 -0
  45. package/dist/chess/chessground/wrap.d.ts.map +1 -0
  46. package/dist/chess/components/ChessBoard.vue.d.ts +48 -0
  47. package/dist/chess/components/ChessBoard.vue.d.ts.map +1 -0
  48. package/dist/chess/components/types.d.ts +11 -0
  49. package/dist/chess/components/types.d.ts.map +1 -0
  50. package/dist/chess/composables/useChessEngine.d.ts +303 -0
  51. package/dist/chess/composables/useChessEngine.d.ts.map +1 -0
  52. package/dist/chess/composables/usePromotionDialog.d.ts +38 -0
  53. package/dist/chess/composables/usePromotionDialog.d.ts.map +1 -0
  54. package/dist/chess/index.d.ts +4 -0
  55. package/dist/chess/index.d.ts.map +1 -0
  56. package/dist/chess/questions/forks/forksView.vue.d.ts +52 -0
  57. package/dist/chess/questions/forks/forksView.vue.d.ts.map +1 -0
  58. package/dist/chess/questions/forks/index.d.ts +86 -0
  59. package/dist/chess/questions/forks/index.d.ts.map +1 -0
  60. package/dist/chess/questions/puzzle/index.d.ts +25 -0
  61. package/dist/chess/questions/puzzle/index.d.ts.map +1 -0
  62. package/dist/chess/questions/puzzle/puzzle.vue.d.ts +55 -0
  63. package/dist/chess/questions/puzzle/puzzle.vue.d.ts.map +1 -0
  64. package/dist/components/MusicScoreRender.vue.d.ts +13 -0
  65. package/dist/components/MusicScoreRender.vue.d.ts.map +1 -0
  66. package/dist/default/index.d.ts +4 -0
  67. package/dist/default/index.d.ts.map +1 -0
  68. package/dist/default/questions/fillIn/blanksCorrection.d.ts +3 -0
  69. package/dist/default/questions/fillIn/blanksCorrection.d.ts.map +1 -0
  70. package/dist/default/questions/fillIn/fillIn.vue.d.ts +41 -0
  71. package/dist/default/questions/fillIn/fillIn.vue.d.ts.map +1 -0
  72. package/dist/default/questions/fillIn/index.d.ts +105 -0
  73. package/dist/default/questions/fillIn/index.d.ts.map +1 -0
  74. package/dist/french/index.d.ts +4 -0
  75. package/dist/french/index.d.ts.map +1 -0
  76. package/dist/french/questions/audioparse/index.d.ts +65 -0
  77. package/dist/french/questions/audioparse/index.d.ts.map +1 -0
  78. package/dist/french/questions/audioparse/view.vue.d.ts +31 -0
  79. package/dist/french/questions/audioparse/view.vue.d.ts.map +1 -0
  80. package/dist/french/questions/vocab/identify.vue.d.ts +27 -0
  81. package/dist/french/questions/vocab/identify.vue.d.ts.map +1 -0
  82. package/dist/french/questions/vocab/index.d.ts +54 -0
  83. package/dist/french/questions/vocab/index.d.ts.map +1 -0
  84. package/dist/index.cjs.js +75 -0
  85. package/dist/index.cjs.js.map +1 -0
  86. package/dist/index.d.ts +86 -0
  87. package/dist/index.d.ts.map +1 -0
  88. package/dist/index.mjs +63128 -0
  89. package/dist/index.mjs.map +1 -0
  90. package/dist/math/index.d.ts +4 -0
  91. package/dist/math/index.d.ts.map +1 -0
  92. package/dist/math/questions/addition/horizontal.vue.d.ts +46 -0
  93. package/dist/math/questions/addition/horizontal.vue.d.ts.map +1 -0
  94. package/dist/math/questions/addition/index.d.ts +24 -0
  95. package/dist/math/questions/addition/index.d.ts.map +1 -0
  96. package/dist/math/questions/addition/verbal.vue.d.ts +46 -0
  97. package/dist/math/questions/addition/verbal.vue.d.ts.map +1 -0
  98. package/dist/math/questions/angleCategorize/angleCategorize.vue.d.ts +30 -0
  99. package/dist/math/questions/angleCategorize/angleCategorize.vue.d.ts.map +1 -0
  100. package/dist/math/questions/angleCategorize/index.d.ts +76 -0
  101. package/dist/math/questions/angleCategorize/index.d.ts.map +1 -0
  102. package/dist/math/questions/countBy/default.vue.d.ts +29 -0
  103. package/dist/math/questions/countBy/default.vue.d.ts.map +1 -0
  104. package/dist/math/questions/countBy/index.d.ts +81 -0
  105. package/dist/math/questions/countBy/index.d.ts.map +1 -0
  106. package/dist/math/questions/division/horizontal.vue.d.ts +31 -0
  107. package/dist/math/questions/division/horizontal.vue.d.ts.map +1 -0
  108. package/dist/math/questions/division/index.d.ts +75 -0
  109. package/dist/math/questions/division/index.d.ts.map +1 -0
  110. package/dist/math/questions/equalityTest/index.d.ts +77 -0
  111. package/dist/math/questions/equalityTest/index.d.ts.map +1 -0
  112. package/dist/math/questions/equalityTest/trueFalse.vue.d.ts +33 -0
  113. package/dist/math/questions/equalityTest/trueFalse.vue.d.ts.map +1 -0
  114. package/dist/math/questions/multiplication/blorizontal.vue.d.ts +31 -0
  115. package/dist/math/questions/multiplication/blorizontal.vue.d.ts.map +1 -0
  116. package/dist/math/questions/multiplication/index.d.ts +71 -0
  117. package/dist/math/questions/multiplication/index.d.ts.map +1 -0
  118. package/dist/math/questions/multiplication/verbal.vue.d.ts +31 -0
  119. package/dist/math/questions/multiplication/verbal.vue.d.ts.map +1 -0
  120. package/dist/math/questions/oneStepEqn/index.d.ts +82 -0
  121. package/dist/math/questions/oneStepEqn/index.d.ts.map +1 -0
  122. package/dist/math/questions/oneStepEqn/solve.vue.d.ts +32 -0
  123. package/dist/math/questions/oneStepEqn/solve.vue.d.ts.map +1 -0
  124. package/dist/math/questions/supplementaryAngles/index.d.ts +72 -0
  125. package/dist/math/questions/supplementaryAngles/index.d.ts.map +1 -0
  126. package/dist/math/questions/supplementaryAngles/supplementaryAngles.vue.d.ts +31 -0
  127. package/dist/math/questions/supplementaryAngles/supplementaryAngles.vue.d.ts.map +1 -0
  128. package/dist/math/utility/Fraction.d.ts +18 -0
  129. package/dist/math/utility/Fraction.d.ts.map +1 -0
  130. package/dist/math/utility/index.d.ts +19 -0
  131. package/dist/math/utility/index.d.ts.map +1 -0
  132. package/dist/piano/NoteDisplay.vue.d.ts +25 -0
  133. package/dist/piano/NoteDisplay.vue.d.ts.map +1 -0
  134. package/dist/piano/index.d.ts +4 -0
  135. package/dist/piano/index.d.ts.map +1 -0
  136. package/dist/piano/questions/echo/Playback.vue.d.ts +369 -0
  137. package/dist/piano/questions/echo/Playback.vue.d.ts.map +1 -0
  138. package/dist/piano/questions/echo/index.d.ts +744 -0
  139. package/dist/piano/questions/echo/index.d.ts.map +1 -0
  140. package/dist/piano/questions/playNote/NotePlayback.vue.d.ts +208 -0
  141. package/dist/piano/questions/playNote/NotePlayback.vue.d.ts.map +1 -0
  142. package/dist/piano/questions/playNote/index.d.ts +419 -0
  143. package/dist/piano/questions/playNote/index.d.ts.map +1 -0
  144. package/dist/piano/utility/MidiConfig.vue.d.ts +113 -0
  145. package/dist/piano/utility/MidiConfig.vue.d.ts.map +1 -0
  146. package/dist/piano/utility/PianoRangeVisualizer.vue.d.ts +41 -0
  147. package/dist/piano/utility/PianoRangeVisualizer.vue.d.ts.map +1 -0
  148. package/dist/piano/utility/SyllableSeqVis.vue.d.ts +36 -0
  149. package/dist/piano/utility/SyllableSeqVis.vue.d.ts.map +1 -0
  150. package/dist/piano/utility/midi.d.ts +82 -0
  151. package/dist/piano/utility/midi.d.ts.map +1 -0
  152. package/dist/pitch/index.d.ts +4 -0
  153. package/dist/pitch/index.d.ts.map +1 -0
  154. package/dist/pitch/questions/indentify/index.d.ts +76 -0
  155. package/dist/pitch/questions/indentify/index.d.ts.map +1 -0
  156. package/dist/pitch/questions/indentify/textBox.vue.d.ts +31 -0
  157. package/dist/pitch/questions/indentify/textBox.vue.d.ts.map +1 -0
  158. package/dist/sightsing/index.d.ts +4 -0
  159. package/dist/sightsing/index.d.ts.map +1 -0
  160. package/dist/sightsing/questions/IdentifyKey/IdentifyKey.vue.d.ts +43 -0
  161. package/dist/sightsing/questions/IdentifyKey/IdentifyKey.vue.d.ts.map +1 -0
  162. package/dist/sightsing/questions/IdentifyKey/index.d.ts +117 -0
  163. package/dist/sightsing/questions/IdentifyKey/index.d.ts.map +1 -0
  164. package/dist/typing/index.d.ts +4 -0
  165. package/dist/typing/index.d.ts.map +1 -0
  166. package/dist/typing/questions/falling-letters/FallingLetters.vue.d.ts +62 -0
  167. package/dist/typing/questions/falling-letters/FallingLetters.vue.d.ts.map +1 -0
  168. package/dist/typing/questions/falling-letters/index.d.ts +144 -0
  169. package/dist/typing/questions/falling-letters/index.d.ts.map +1 -0
  170. package/dist/typing/questions/falling-letters/types.d.ts +13 -0
  171. package/dist/typing/questions/falling-letters/types.d.ts.map +1 -0
  172. package/dist/typing/questions/single-letter/index.d.ts +67 -0
  173. package/dist/typing/questions/single-letter/index.d.ts.map +1 -0
  174. package/dist/typing/questions/single-letter/typeSingleLetter.vue.d.ts +28 -0
  175. package/dist/typing/questions/single-letter/typeSingleLetter.vue.d.ts.map +1 -0
  176. package/dist/word-work/ankiCardGen/data.d.ts +63 -0
  177. package/dist/word-work/ankiCardGen/data.d.ts.map +1 -0
  178. package/dist/word-work/index.d.ts +4 -0
  179. package/dist/word-work/index.d.ts.map +1 -0
  180. package/dist/word-work/questions/spelling/index.d.ts +69 -0
  181. package/dist/word-work/questions/spelling/index.d.ts.map +1 -0
  182. package/dist/word-work/questions/spelling/textBox.vue.d.ts +32 -0
  183. package/dist/word-work/questions/spelling/textBox.vue.d.ts.map +1 -0
  184. package/package.json +60 -0
  185. package/src/logic.d.ts +26 -0
  186. package/src/logic.js +202 -0
@@ -0,0 +1,62 @@
1
+ import { FallingLettersQuestion } from './index';
2
+ import { ViewData } from '../../../../../common/dist/index.mjs';
3
+ import { Letter, TreePosition } from './types';
4
+ declare const _default: import('vue').DefineComponent<{
5
+ data: ViewData[];
6
+ modifyDifficulty: number;
7
+ }, {
8
+ gameArea: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
9
+ letters: import('vue').Ref<{
10
+ id: number;
11
+ char: string;
12
+ x: number;
13
+ y: number;
14
+ }[], Letter[] | {
15
+ id: number;
16
+ char: string;
17
+ x: number;
18
+ y: number;
19
+ }[]>;
20
+ gameOver: import('vue').Ref<boolean, boolean>;
21
+ gameOverMessage: import('vue').Ref<string, string>;
22
+ timeLeft: import('vue').Ref<number, number>;
23
+ score: import('vue').Ref<number, number>;
24
+ treePositions: import('vue').Ref<{
25
+ id: number;
26
+ left: number;
27
+ height: number;
28
+ scale: number;
29
+ }[], TreePosition[] | {
30
+ id: number;
31
+ left: number;
32
+ height: number;
33
+ scale: number;
34
+ }[]>;
35
+ explosions: import('vue').Ref<{
36
+ id: number;
37
+ x: number;
38
+ y: number;
39
+ }[], {
40
+ id: number;
41
+ x: number;
42
+ y: number;
43
+ }[] | {
44
+ id: number;
45
+ x: number;
46
+ y: number;
47
+ }[]>;
48
+ priorSessionViews: import('vue').Ref<number>;
49
+ priorAttempts: import('vue').Ref<number>;
50
+ priorAnswers: import('vue').Ref<[import('../../../../../common/dist/index.mjs').Answer, string][]>;
51
+ maxAttemptsPerView: import('vue').Ref<number>;
52
+ maxSessionViews: import('vue').Ref<number>;
53
+ question: import('vue').Ref<FallingLettersQuestion | undefined, FallingLettersQuestion | undefined>;
54
+ submitAnswer: (answer: import('../../../../../common/dist/index.mjs').Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
55
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
56
+ data: ViewData[];
57
+ modifyDifficulty: number;
58
+ }> & Readonly<{}>, {
59
+ modifyDifficulty: number;
60
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
61
+ export default _default;
62
+ //# sourceMappingURL=FallingLetters.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FallingLetters.vue.d.ts","sourceRoot":"","sources":["../../../../src/typing/questions/falling-letters/FallingLetters.vue"],"names":[],"mappings":"AA2DA;AA0jBA,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAyCd,MAAM;WAAK,MAAM;WAAK,MAAM;;YAA5B,MAAM;WAAK,MAAM;WAAK,MAAM;;YAA5B,MAAM;WAAK,MAAM;WAAK,MAAM;;;;;;;;iFA7C7D,CAhhBgC;;;;;;;AAgiBhC,wBAsNG"}
@@ -0,0 +1,144 @@
1
+ import { Question } from '../../../../../common-ui/dist/common-ui.es.js';
2
+ import { Answer, DataShape, ViewData } from '../../../../../common/dist/index.mjs';
3
+ export interface Score extends Answer {
4
+ win: boolean;
5
+ lettersTyped: number;
6
+ percentage: number;
7
+ }
8
+ export declare class FallingLettersQuestion extends Question {
9
+ static dataShapes: DataShape[];
10
+ static views: import('vue').DefineComponent<{
11
+ data: ViewData[];
12
+ modifyDifficulty: number;
13
+ }, {
14
+ gameArea: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
15
+ letters: import('vue').Ref<{
16
+ id: number;
17
+ char: string;
18
+ x: number;
19
+ y: number;
20
+ }[], import('./types').Letter[] | {
21
+ id: number;
22
+ char: string;
23
+ x: number;
24
+ y: number;
25
+ }[]>;
26
+ gameOver: import('vue').Ref<boolean, boolean>;
27
+ gameOverMessage: import('vue').Ref<string, string>;
28
+ timeLeft: import('vue').Ref<number, number>;
29
+ score: import('vue').Ref<number, number>;
30
+ treePositions: import('vue').Ref<{
31
+ id: number;
32
+ left: number;
33
+ height: number;
34
+ scale: number;
35
+ }[], import('./types').TreePosition[] | {
36
+ id: number;
37
+ left: number;
38
+ height: number;
39
+ scale: number;
40
+ }[]>;
41
+ explosions: import('vue').Ref<{
42
+ id: number;
43
+ x: number;
44
+ y: number;
45
+ }[], {
46
+ id: number;
47
+ x: number;
48
+ y: number;
49
+ }[] | {
50
+ id: number;
51
+ x: number;
52
+ y: number;
53
+ }[]>;
54
+ priorSessionViews: import('vue').Ref<number>;
55
+ priorAttempts: import('vue').Ref<number>;
56
+ priorAnswers: import('vue').Ref<[Answer, string][]>;
57
+ maxAttemptsPerView: import('vue').Ref<number>;
58
+ maxSessionViews: import('vue').Ref<number>;
59
+ question: import('vue').Ref<FallingLettersQuestion | undefined, FallingLettersQuestion | undefined>;
60
+ submitAnswer: (answer: Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
61
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
62
+ data: ViewData[];
63
+ modifyDifficulty: number;
64
+ }> & Readonly<{}>, {
65
+ modifyDifficulty: number;
66
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>[];
67
+ static acceptsUserData: boolean;
68
+ static seedData: {
69
+ gameLength: number;
70
+ initialSpeed: number;
71
+ acceleration: number;
72
+ spawnInterval: number;
73
+ }[];
74
+ gameLength: number;
75
+ initialSpeed: number;
76
+ acceleration: number;
77
+ spawnInterval: number;
78
+ constructor(data: ViewData[]);
79
+ evaluate(a: Answer): {
80
+ isCorrect: boolean;
81
+ performance: number;
82
+ };
83
+ displayedSkill(a: Answer): number;
84
+ dataShapes(): DataShape[];
85
+ views(): import('vue').DefineComponent<{
86
+ data: ViewData[];
87
+ modifyDifficulty: number;
88
+ }, {
89
+ gameArea: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
90
+ letters: import('vue').Ref<{
91
+ id: number;
92
+ char: string;
93
+ x: number;
94
+ y: number;
95
+ }[], import('./types').Letter[] | {
96
+ id: number;
97
+ char: string;
98
+ x: number;
99
+ y: number;
100
+ }[]>;
101
+ gameOver: import('vue').Ref<boolean, boolean>;
102
+ gameOverMessage: import('vue').Ref<string, string>;
103
+ timeLeft: import('vue').Ref<number, number>;
104
+ score: import('vue').Ref<number, number>;
105
+ treePositions: import('vue').Ref<{
106
+ id: number;
107
+ left: number;
108
+ height: number;
109
+ scale: number;
110
+ }[], import('./types').TreePosition[] | {
111
+ id: number;
112
+ left: number;
113
+ height: number;
114
+ scale: number;
115
+ }[]>;
116
+ explosions: import('vue').Ref<{
117
+ id: number;
118
+ x: number;
119
+ y: number;
120
+ }[], {
121
+ id: number;
122
+ x: number;
123
+ y: number;
124
+ }[] | {
125
+ id: number;
126
+ x: number;
127
+ y: number;
128
+ }[]>;
129
+ priorSessionViews: import('vue').Ref<number>;
130
+ priorAttempts: import('vue').Ref<number>;
131
+ priorAnswers: import('vue').Ref<[Answer, string][]>;
132
+ maxAttemptsPerView: import('vue').Ref<number>;
133
+ maxSessionViews: import('vue').Ref<number>;
134
+ question: import('vue').Ref<FallingLettersQuestion | undefined, FallingLettersQuestion | undefined>;
135
+ submitAnswer: (answer: Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
136
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
137
+ data: ViewData[];
138
+ modifyDifficulty: number;
139
+ }> & Readonly<{}>, {
140
+ modifyDifficulty: number;
141
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>[];
142
+ isCorrect(a: Score): boolean;
143
+ }
144
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/typing/questions/falling-letters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EACL,MAAM,EACN,SAAS,EAIT,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAc9B,MAAM,WAAW,KAAM,SAAQ,MAAM;IACnC,GAAG,EAAE,OAAO,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IAGrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,sBAAuB,SAAQ,QAAQ;IAClD,OAAc,UAAU,EAAE,SAAS,EAAE,CAsCnC;IAEF,OAAc,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDA3BD,CAAC;;;;;;mFA2BwB;IAC3C,OAAc,eAAe,EAAE,OAAO,CAAQ;IAC9C,OAAc,QAAQ;;;;;QAAU;IAEzB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;gBAEjB,IAAI,EAAE,QAAQ,EAAE;IAQ5B,QAAQ,CAAC,CAAC,EAAE,MAAM;;;;IAOlB,cAAc,CAAC,CAAC,EAAE,MAAM;IAQxB,UAAU;IAIV,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sDA/Da,CAAC;;;;;;;IAmEnB,SAAS,CAAC,CAAC,EAAE,KAAK;CAGnB"}
@@ -0,0 +1,13 @@
1
+ export interface Letter {
2
+ id: number;
3
+ char: string;
4
+ x: number;
5
+ y: number;
6
+ }
7
+ export interface TreePosition {
8
+ id: number;
9
+ left: number;
10
+ height: number;
11
+ scale: number;
12
+ }
13
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/typing/questions/falling-letters/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,67 @@
1
+ import { Question } from '../../../../../common-ui/dist/common-ui.es.js';
2
+ import { Answer, DataShape, ViewData } from '../../../../../common/dist/index.mjs';
3
+ export declare class TypeLetterQuestion extends Question {
4
+ static dataShapes: DataShape[];
5
+ static views: import('vue').DefineComponent<{
6
+ data: ViewData[];
7
+ modifyDifficulty: number;
8
+ }, {
9
+ letterDisplay: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
10
+ question: import('vue').ComputedRef<TypeLetterQuestion | undefined>;
11
+ startTime: import('vue').Ref<moment.Moment>;
12
+ hotKeys: import('vue').Ref<import('../../../../../common-ui/dist/common-ui.es.js').HotKey[]>;
13
+ timeSpent: import('vue').ComputedRef<number>;
14
+ logger: import('../../../../../common-ui/dist/common-ui.es.js').ViewableLogger;
15
+ getURL: (item: string, dataShapeIndex?: number) => string;
16
+ emitResponse: (record: import('packages/db/dist').CardRecord) => void;
17
+ priorSessionViews: import('vue').Ref<number>;
18
+ priorAttempts: import('vue').Ref<number>;
19
+ priorAnswers: import('vue').Ref<[Answer, string][]>;
20
+ maxAttemptsPerView: import('vue').Ref<number>;
21
+ maxSessionViews: import('vue').Ref<number>;
22
+ submitAnswer: (answer: Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
23
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
24
+ data: ViewData[];
25
+ modifyDifficulty: number;
26
+ }> & Readonly<{}>, {
27
+ modifyDifficulty: number;
28
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>[];
29
+ static acceptsUserData: boolean;
30
+ letter: string;
31
+ static seedData: {
32
+ letter: string;
33
+ }[];
34
+ constructor(data: ViewData[]);
35
+ evaluate(a: Answer, t: number): {
36
+ isCorrect: boolean;
37
+ performance: number;
38
+ };
39
+ displayedSkill(a: Answer, t: number): number;
40
+ dataShapes(): DataShape[];
41
+ views(): import('vue').DefineComponent<{
42
+ data: ViewData[];
43
+ modifyDifficulty: number;
44
+ }, {
45
+ letterDisplay: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
46
+ question: import('vue').ComputedRef<TypeLetterQuestion | undefined>;
47
+ startTime: import('vue').Ref<moment.Moment>;
48
+ hotKeys: import('vue').Ref<import('../../../../../common-ui/dist/common-ui.es.js').HotKey[]>;
49
+ timeSpent: import('vue').ComputedRef<number>;
50
+ logger: import('../../../../../common-ui/dist/common-ui.es.js').ViewableLogger;
51
+ getURL: (item: string, dataShapeIndex?: number) => string;
52
+ emitResponse: (record: import('packages/db/dist').CardRecord) => void;
53
+ priorSessionViews: import('vue').Ref<number>;
54
+ priorAttempts: import('vue').Ref<number>;
55
+ priorAnswers: import('vue').Ref<[Answer, string][]>;
56
+ maxAttemptsPerView: import('vue').Ref<number>;
57
+ maxSessionViews: import('vue').Ref<number>;
58
+ submitAnswer: (answer: Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
59
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
60
+ data: ViewData[];
61
+ modifyDifficulty: number;
62
+ }> & Readonly<{}>, {
63
+ modifyDifficulty: number;
64
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>[];
65
+ isCorrect(a: Answer): boolean;
66
+ }
67
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/typing/questions/single-letter/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EACL,MAAM,EACN,SAAS,EACT,QAAQ,EAIT,MAAM,sBAAsB,CAAC;AAa9B,qBAAa,kBAAmB,SAAQ,QAAQ;IAC9C,OAAc,UAAU,EAAE,SAAS,EAAE,CAyBnC;IAEF,OAAc,KAAK;;;;;;qCApCQ,OACzB,MAAK;;;;6CAQH,CAAC;;;;;;;sDAoBK,CAAV;;;;;;mFAO2C;IAC3C,OAAc,eAAe,EAAE,OAAO,CAAQ;IAEvC,MAAM,EAAE,MAAM,CAAC;IACtB,OAAc,QAAQ;gBAzCD,MAAM;QAyCK;gBAEpB,IAAI,EAAE,QAAQ,EAAE;IAK5B,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;;;;IAO7B,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAYnC,UAAU;IAIV,KAAK;;;;;;qCAtEsB,OACzB,MAAK;;;;6CAQH,CAAC;;;;;;;sDAoBK,CAAV;;;;;;;IA6CA,SAAS,CAAC,CAAC,EAAE,MAAM;CAKpB"}
@@ -0,0 +1,28 @@
1
+ import { TypeLetterQuestion } from './index';
2
+ import { ViewData } from '../../../../../common/dist/index.mjs';
3
+ declare const _default: import('vue').DefineComponent<{
4
+ data: ViewData[];
5
+ modifyDifficulty: number;
6
+ }, {
7
+ letterDisplay: import('vue').Ref<HTMLElement | null, HTMLElement | null>;
8
+ question: import('vue').ComputedRef<TypeLetterQuestion | undefined>;
9
+ startTime: import('vue').Ref<moment.Moment>;
10
+ hotKeys: import('vue').Ref<import('../../../../../common-ui/dist/common-ui.es.js').HotKey[]>;
11
+ timeSpent: import('vue').ComputedRef<number>;
12
+ logger: import('../../../../../common-ui/dist/common-ui.es.js').ViewableLogger;
13
+ getURL: (item: string, dataShapeIndex?: number) => string;
14
+ emitResponse: (record: import('packages/db/dist').CardRecord) => void;
15
+ priorSessionViews: import('vue').Ref<number>;
16
+ priorAttempts: import('vue').Ref<number>;
17
+ priorAnswers: import('vue').Ref<[import('../../../../../common/dist/index.mjs').Answer, string][]>;
18
+ maxAttemptsPerView: import('vue').Ref<number>;
19
+ maxSessionViews: import('vue').Ref<number>;
20
+ submitAnswer: (answer: import('../../../../../common/dist/index.mjs').Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
21
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
22
+ data: ViewData[];
23
+ modifyDifficulty: number;
24
+ }> & Readonly<{}>, {
25
+ modifyDifficulty: number;
26
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
27
+ export default _default;
28
+ //# sourceMappingURL=typeSingleLetter.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typeSingleLetter.vue.d.ts","sourceRoot":"","sources":["../../../../src/typing/questions/single-letter/typeSingleLetter.vue"],"names":[],"mappings":"AAQA;AA8GA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;;;;;;iCAHhD,OAAA,MAnG2E;;;;yCAmG3E,CAhGM;;;;;;;iFAgGN,CAzEqC;;;;;;;AA8ErC,wBAiEG"}
@@ -0,0 +1,63 @@
1
+ declare const _default: {
2
+ a: {
3
+ c: (string | string[][])[];
4
+ d: string[];
5
+ k: string[];
6
+ l: string[];
7
+ m: string[];
8
+ n: string[];
9
+ f: string[];
10
+ g: string[];
11
+ p: string[];
12
+ r: string[];
13
+ s: string[];
14
+ t: (string | string[][])[];
15
+ v: string[];
16
+ };
17
+ e: {
18
+ k: string[];
19
+ n: string[];
20
+ r: string[];
21
+ t: string[];
22
+ };
23
+ i: {
24
+ b: (string | string[][])[];
25
+ c: string[];
26
+ d: (string | string[][])[];
27
+ f: (string | string[][])[];
28
+ k: string[];
29
+ l: (string | string[][])[];
30
+ m: (string | string[][])[];
31
+ n: string[];
32
+ p: (string | string[][])[];
33
+ r: string[];
34
+ s: string[];
35
+ t: string[];
36
+ };
37
+ o: {
38
+ b: (string | string[][])[];
39
+ d: string[];
40
+ l: (string | never[])[];
41
+ m: string[];
42
+ n: string[];
43
+ p: string[];
44
+ r: string[];
45
+ s: (string | string[][])[];
46
+ t: string[];
47
+ v: (string | string[][])[];
48
+ z: string[];
49
+ };
50
+ u: {
51
+ b: string[];
52
+ d: string[];
53
+ g: string[];
54
+ k: (string | string[][])[];
55
+ l: string[];
56
+ n: string[];
57
+ r: string[];
58
+ s: string[];
59
+ t: string[];
60
+ };
61
+ };
62
+ export default _default;
63
+ //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/word-work/ankiCardGen/data.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,wBA4DE"}
@@ -0,0 +1,4 @@
1
+ import { CourseWare } from '../CourseWare';
2
+ declare const wordWork: CourseWare;
3
+ export default wordWork;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/word-work/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,QAAA,MAAM,QAAQ,EAAE,UAA2D,CAAC;AAE5E,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,69 @@
1
+ import { Question } from '../../../../../common-ui/dist/common-ui.es.js';
2
+ import { DataShape, Answer, ViewData } from '../../../../../common/dist/index.mjs';
3
+ export declare class SpellingQuestion extends Question {
4
+ static dataShapes: DataShape[];
5
+ static views: import('vue').DefineComponent<{
6
+ data: ViewData[];
7
+ modifyDifficulty: number;
8
+ }, {
9
+ answer: import('vue').Ref<string, string>;
10
+ question: import('vue').ComputedRef<SpellingQuestion | undefined>;
11
+ submit: () => void;
12
+ priorSessionViews: import('vue').Ref<number>;
13
+ priorAttempts: import('vue').Ref<number>;
14
+ priorAnswers: import('vue').Ref<[Answer, string][]>;
15
+ maxAttemptsPerView: import('vue').Ref<number>;
16
+ maxSessionViews: import('vue').Ref<number>;
17
+ submitAnswer: (answer: Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
18
+ startTime: import('vue').Ref<moment.Moment>;
19
+ hotKeys: import('vue').Ref<import('../../../../../common-ui/dist/common-ui.es.js').HotKey[]>;
20
+ timeSpent: import('vue').ComputedRef<number>;
21
+ logger: import('../../../../../common-ui/dist/common-ui.es.js').ViewableLogger;
22
+ getURL: (item: string, dataShapeIndex?: number) => string;
23
+ emitResponse: (record: import('packages/db/dist').CardRecord) => void;
24
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
25
+ data: ViewData[];
26
+ modifyDifficulty: number;
27
+ }> & Readonly<{}>, {
28
+ modifyDifficulty: number;
29
+ }, {}, {
30
+ AudioAutoPlayer: any;
31
+ UserInputString: any;
32
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>[];
33
+ word: string;
34
+ sentence: string;
35
+ audio_word: Blob;
36
+ audio_sentence: Blob;
37
+ constructor(data: ViewData[]);
38
+ isCorrect(answer: Answer): boolean;
39
+ dataShapes(): DataShape[];
40
+ views(): import('vue').DefineComponent<{
41
+ data: ViewData[];
42
+ modifyDifficulty: number;
43
+ }, {
44
+ answer: import('vue').Ref<string, string>;
45
+ question: import('vue').ComputedRef<SpellingQuestion | undefined>;
46
+ submit: () => void;
47
+ priorSessionViews: import('vue').Ref<number>;
48
+ priorAttempts: import('vue').Ref<number>;
49
+ priorAnswers: import('vue').Ref<[Answer, string][]>;
50
+ maxAttemptsPerView: import('vue').Ref<number>;
51
+ maxSessionViews: import('vue').Ref<number>;
52
+ submitAnswer: (answer: Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
53
+ startTime: import('vue').Ref<moment.Moment>;
54
+ hotKeys: import('vue').Ref<import('../../../../../common-ui/dist/common-ui.es.js').HotKey[]>;
55
+ timeSpent: import('vue').ComputedRef<number>;
56
+ logger: import('../../../../../common-ui/dist/common-ui.es.js').ViewableLogger;
57
+ getURL: (item: string, dataShapeIndex?: number) => string;
58
+ emitResponse: (record: import('packages/db/dist').CardRecord) => void;
59
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
60
+ data: ViewData[];
61
+ modifyDifficulty: number;
62
+ }> & Readonly<{}>, {
63
+ modifyDifficulty: number;
64
+ }, {}, {
65
+ AudioAutoPlayer: any;
66
+ UserInputString: any;
67
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>[];
68
+ }
69
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/word-work/questions/spelling/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAIL,SAAS,EACT,MAAM,EAEN,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAuB9B,qBAAa,gBAAiB,SAAQ,QAAQ;IAC5C,OAAc,UAAU,EAAE,SAAS,EAAE,CAKnC;IAEF,OAAc,KAAK;;;;;;;;;;;;sDAYkB,CAAC;qCApCrB,OAAO,MAAM;;;;6CAS9B,CAAA;;;;;;;;;;2EAegC;IAEzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,IAAI,CAAC;IACjB,cAAc,EAAE,IAAI,CAAC;gBAEhB,IAAI,EAAE,QAAQ,EAAE;IAQrB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAGlC,UAAU,IAAI,SAAS,EAAE;IAGzB,KAAK;;;;;;;;;;;;sDATyB,CAAC;qCApCrB,OAAO,MAAM;;;;6CAS9B,CAAA;;;;;;;;;;;CAuCD"}
@@ -0,0 +1,32 @@
1
+ import { SpellingQuestion } from '.';
2
+ import { ViewData } from '../../../../../common/dist/index.mjs';
3
+ declare const _default: import('vue').DefineComponent<{
4
+ data: ViewData[];
5
+ modifyDifficulty: number;
6
+ }, {
7
+ answer: import('vue').Ref<string, string>;
8
+ question: import('vue').ComputedRef<SpellingQuestion | undefined>;
9
+ submit: () => void;
10
+ priorSessionViews: import('vue').Ref<number>;
11
+ priorAttempts: import('vue').Ref<number>;
12
+ priorAnswers: import('vue').Ref<[import('../../../../../common/dist/index.mjs').Answer, string][]>;
13
+ maxAttemptsPerView: import('vue').Ref<number>;
14
+ maxSessionViews: import('vue').Ref<number>;
15
+ submitAnswer: (answer: import('../../../../../common/dist/index.mjs').Answer, submittingClass?: string) => import('packages/db/dist').QuestionRecord;
16
+ startTime: import('vue').Ref<moment.Moment>;
17
+ hotKeys: import('vue').Ref<import('../../../../../common-ui/dist/common-ui.es.js').HotKey[]>;
18
+ timeSpent: import('vue').ComputedRef<number>;
19
+ logger: import('../../../../../common-ui/dist/common-ui.es.js').ViewableLogger;
20
+ getURL: (item: string, dataShapeIndex?: number) => string;
21
+ emitResponse: (record: import('packages/db/dist').CardRecord) => void;
22
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
23
+ data: ViewData[];
24
+ modifyDifficulty: number;
25
+ }> & Readonly<{}>, {
26
+ modifyDifficulty: number;
27
+ }, {}, {
28
+ AudioAutoPlayer: any;
29
+ UserInputString: any;
30
+ }, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
31
+ export default _default;
32
+ //# sourceMappingURL=textBox.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textBox.vue.d.ts","sourceRoot":"","sources":["../../../../src/word-work/questions/spelling/textBox.vue"],"names":[],"mappings":"AAgBA;AA2EA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;;;;;;;;;;;;;iFAJhD,CAlCgB;iCAkChB,OAAA,MA/D0B;;;;yCA+D1B,CAzDI;;;;;;;;;;;AA+DJ,wBA8CG"}
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@vue-skuilder/courseware",
3
+ "publishConfig": {
4
+ "access": "public"
5
+ },
6
+ "version": "0.1.8-1",
7
+ "type": "module",
8
+ "main": "./dist/index.cjs.js",
9
+ "module": "./dist/index.mjs",
10
+ "types": "./dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.mjs",
15
+ "require": "./dist/index.cjs.js"
16
+ },
17
+ "./logic": {
18
+ "types": "./src/logic.d.ts",
19
+ "import": "./src/logic.js",
20
+ "require": "./src/logic.js"
21
+ },
22
+ "./style": "./dist/assets/index.css"
23
+ },
24
+ "files": [
25
+ "dist",
26
+ "src/assets",
27
+ "src/logic.js",
28
+ "src/logic.d.ts"
29
+ ],
30
+ "scripts": {
31
+ "build": "yarn clean && vite build",
32
+ "clean": "rm -rf dist",
33
+ "dev": "vite build --watch",
34
+ "type-check": "tsc --noEmit",
35
+ "test": "vitest run",
36
+ "test:watch": "vitest"
37
+ },
38
+ "dependencies": {
39
+ "@vue-skuilder/common": "0.1.8-1",
40
+ "@vue-skuilder/common-ui": "0.1.8-1",
41
+ "@vue-skuilder/db": "0.1.8-1",
42
+ "lodash": "^4.17.21",
43
+ "moment": "^2.29.4",
44
+ "paper": "^0.12.3",
45
+ "vue": "^3.5.13"
46
+ },
47
+ "devDependencies": {
48
+ "@types/lodash": "^4.14.195",
49
+ "@vitejs/plugin-vue": "^5.2.1",
50
+ "jsdom": "^26.0.0",
51
+ "typescript": "^5.7.2",
52
+ "vite": "^6.0.9",
53
+ "vite-plugin-dts": "^4.5.3",
54
+ "vitest": "^3.0.5"
55
+ },
56
+ "peerDependencies": {
57
+ "vue": "^3.2.0"
58
+ },
59
+ "stableVersion": "0.1.7"
60
+ }
package/src/logic.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ // Type declarations for @vue-skuilder/courseware/logic
2
+ // Extracted business logic types for Node.js compatibility
3
+
4
+ export interface ParsedBlank {
5
+ answers: string[];
6
+ options: string[] | null; // null for fill-in-blank, array for multiple choice
7
+ }
8
+
9
+ export interface ViewData {
10
+ [key: string]: any;
11
+ content?: string;
12
+ }
13
+
14
+ export declare class BlanksCard {
15
+ mdText: string;
16
+ answers: string[];
17
+ options: string[] | null;
18
+
19
+ constructor(data: ViewData[]);
20
+ isCorrect(answer: any): boolean;
21
+ }
22
+
23
+ export declare function gradeSpellingAttempt(attempt: string, answer: string): string;
24
+
25
+ export declare function optionsFromString(s: string): ParsedBlank;
26
+ export declare function splitByDelimiters(text: string, leftDelim: string, rightDelim: string): any[];