@pie-element/select-text 6.4.0 → 6.4.1-beta.587

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.
@@ -163,6 +163,27 @@
163
163
  }
164
164
  }
165
165
  },
166
+ "settingsPanelDisabled": {
167
+ "description": "Indicates if the settings panel is not available",
168
+ "type": "boolean",
169
+ "title": "settingsPanelDisabled"
170
+ },
171
+ "spellCheck": {
172
+ "title": "ConfigureProp",
173
+ "type": "object",
174
+ "properties": {
175
+ "settings": {
176
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
177
+ "type": "boolean",
178
+ "title": "settings"
179
+ },
180
+ "label": {
181
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
182
+ "type": "string",
183
+ "title": "label"
184
+ }
185
+ }
186
+ },
166
187
  "scoringType": {
167
188
  "title": "ConfigureProp",
168
189
  "type": "object",
@@ -211,6 +232,79 @@
211
232
  }
212
233
  }
213
234
  },
235
+ "maxSelections": {
236
+ "description": "Maximum number of selected tokens in correct answer",
237
+ "type": "number",
238
+ "title": "maxSelections"
239
+ },
240
+ "minTokens": {
241
+ "description": "Minimum number of tokens",
242
+ "type": "number",
243
+ "title": "minTokens"
244
+ },
245
+ "maxTokens": {
246
+ "description": "Maximum number of tokens",
247
+ "type": "number",
248
+ "title": "maxTokens"
249
+ },
250
+ "maxImageWidth": {
251
+ "title": "ConfigureMaxImageDimensionsProp",
252
+ "type": "object",
253
+ "properties": {
254
+ "teacherInstructions": {
255
+ "description": "Indicates the max dimension for images in teacher instructions",
256
+ "type": "number",
257
+ "title": "teacherInstructions"
258
+ },
259
+ "prompt": {
260
+ "description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
261
+ "type": "number",
262
+ "title": "prompt"
263
+ },
264
+ "rationale": {
265
+ "description": "Indicates the max dimension for images in rationale",
266
+ "type": "number",
267
+ "title": "rationale"
268
+ }
269
+ }
270
+ },
271
+ "maxImageHeight": {
272
+ "title": "ConfigureMaxImageDimensionsProp",
273
+ "type": "object",
274
+ "properties": {
275
+ "teacherInstructions": {
276
+ "description": "Indicates the max dimension for images in teacher instructions",
277
+ "type": "number",
278
+ "title": "teacherInstructions"
279
+ },
280
+ "prompt": {
281
+ "description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
282
+ "type": "number",
283
+ "title": "prompt"
284
+ },
285
+ "rationale": {
286
+ "description": "Indicates the max dimension for images in rationale",
287
+ "type": "number",
288
+ "title": "rationale"
289
+ }
290
+ }
291
+ },
292
+ "withRubric": {
293
+ "title": "ConfigureProp",
294
+ "type": "object",
295
+ "properties": {
296
+ "settings": {
297
+ "description": "Indicates if the item has to be displayed in the Settings Panel",
298
+ "type": "boolean",
299
+ "title": "settings"
300
+ },
301
+ "label": {
302
+ "description": "Indicates the label for the item that has to be displayed in the Settings Panel",
303
+ "type": "string",
304
+ "title": "label"
305
+ }
306
+ }
307
+ },
214
308
  "showPrompt": {
215
309
  "description": "Determines whether prompt field will be displayed or not",
216
310
  "default": true,
@@ -246,6 +340,27 @@
246
340
  "title": "label"
247
341
  }
248
342
  }
343
+ },
344
+ "ConfigureMaxImageDimensionsProp": {
345
+ "title": "ConfigureMaxImageDimensionsProp",
346
+ "type": "object",
347
+ "properties": {
348
+ "teacherInstructions": {
349
+ "description": "Indicates the max dimension for images in teacher instructions",
350
+ "type": "number",
351
+ "title": "teacherInstructions"
352
+ },
353
+ "prompt": {
354
+ "description": "Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified",
355
+ "type": "number",
356
+ "title": "prompt"
357
+ },
358
+ "rationale": {
359
+ "description": "Indicates the max dimension for images in rationale",
360
+ "type": "number",
361
+ "title": "rationale"
362
+ }
363
+ }
249
364
  }
250
365
  },
251
366
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -122,6 +122,22 @@ Indicates if the item has to be displayed in the Settings Panel
122
122
 
123
123
  Indicates the label for the item that has to be displayed in the Settings Panel
124
124
 
125
+ # `settingsPanelDisabled` (boolean)
126
+
127
+ Indicates if the settings panel is not available
128
+
129
+ # `spellCheck` (object)
130
+
131
+ Properties of the `spellCheck` object:
132
+
133
+ ## `settings` (boolean)
134
+
135
+ Indicates if the item has to be displayed in the Settings Panel
136
+
137
+ ## `label` (string)
138
+
139
+ Indicates the label for the item that has to be displayed in the Settings Panel
140
+
125
141
  # `scoringType` (object)
126
142
 
127
143
  Properties of the `scoringType` object:
@@ -158,6 +174,62 @@ Indicates if the item has to be displayed in the Settings Panel
158
174
 
159
175
  Indicates the label for the item that has to be displayed in the Settings Panel
160
176
 
177
+ # `maxSelections` (number)
178
+
179
+ Maximum number of selected tokens in correct answer
180
+
181
+ # `minTokens` (number)
182
+
183
+ Minimum number of tokens
184
+
185
+ # `maxTokens` (number)
186
+
187
+ Maximum number of tokens
188
+
189
+ # `maxImageWidth` (object)
190
+
191
+ Properties of the `maxImageWidth` object:
192
+
193
+ ## `teacherInstructions` (number)
194
+
195
+ Indicates the max dimension for images in teacher instructions
196
+
197
+ ## `prompt` (number)
198
+
199
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
200
+
201
+ ## `rationale` (number)
202
+
203
+ Indicates the max dimension for images in rationale
204
+
205
+ # `maxImageHeight` (object)
206
+
207
+ Properties of the `maxImageHeight` object:
208
+
209
+ ## `teacherInstructions` (number)
210
+
211
+ Indicates the max dimension for images in teacher instructions
212
+
213
+ ## `prompt` (number)
214
+
215
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
216
+
217
+ ## `rationale` (number)
218
+
219
+ Indicates the max dimension for images in rationale
220
+
221
+ # `withRubric` (object)
222
+
223
+ Properties of the `withRubric` object:
224
+
225
+ ## `settings` (boolean)
226
+
227
+ Indicates if the item has to be displayed in the Settings Panel
228
+
229
+ ## `label` (string)
230
+
231
+ Indicates the label for the item that has to be displayed in the Settings Panel
232
+
161
233
  # `showPrompt` (boolean)
162
234
 
163
235
  Determines whether prompt field will be displayed or not
@@ -192,4 +264,20 @@ Indicates if the item has to be displayed in the Settings Panel
192
264
 
193
265
  ### `label` (string)
194
266
 
195
- Indicates the label for the item that has to be displayed in the Settings Panel
267
+ Indicates the label for the item that has to be displayed in the Settings Panel
268
+
269
+ ## `ConfigureMaxImageDimensionsProp` (object)
270
+
271
+ Properties of the `ConfigureMaxImageDimensionsProp` object:
272
+
273
+ ### `teacherInstructions` (number)
274
+
275
+ Indicates the max dimension for images in teacher instructions
276
+
277
+ ### `prompt` (number)
278
+
279
+ Indicates the max dimension for images in prompt - this is also the default dimension for all other input fields if it's not specified
280
+
281
+ ### `rationale` (number)
282
+
283
+ Indicates the max dimension for images in rationale
@@ -2,9 +2,7 @@ const { model, mathSample, htmlSample, htmlAscii } = require('./generate');
2
2
 
3
3
  module.exports = {
4
4
  elements: {
5
- 'select-text': '../..'
5
+ 'select-text': '../..',
6
6
  },
7
- models: [
8
- model('1', 'select-text')
9
- ]
7
+ models: [model('1', 'select-text')],
10
8
  };
@@ -1,44 +1,44 @@
1
- const tokens = () => [
1
+ const tokens = () => [
2
2
  {
3
- text: 'If \'tweren\'t for sight and sound and smell,',
4
- start: 3,
5
- end: 52
3
+ text: "If 'tweren't for sight and sound and smell,",
4
+ start: 0,
5
+ end: 43,
6
6
  },
7
7
  {
8
- text: 'I\'d like the city pretty well,',
9
- start: 53,
10
- end: 89
8
+ text: "I'd like the city pretty well,",
9
+ start: 44,
10
+ end: 74,
11
11
  },
12
12
  {
13
13
  text: 'But when it comes to getting rest,',
14
- start: 90,
15
- end: 130
14
+ start: 75,
15
+ end: 109,
16
16
  },
17
17
  {
18
18
  text: 'I like the country lots the best.',
19
- start: 131,
20
- end: 170
19
+ start: 110,
20
+ end: 143,
21
21
  },
22
22
  {
23
23
  text: 'Sometimes it seems to me I must',
24
- start: 173,
25
- end: 210
24
+ start: 145,
25
+ end: 176,
26
26
  },
27
27
  {
28
- text: 'Just quit the city\'s din and dust,',
29
- start: 211,
30
- end: 251
28
+ text: "Just quit the city's din and dust,",
29
+ start: 177,
30
+ end: 211,
31
31
  },
32
32
  {
33
33
  text: 'And get out where the sky is blue,',
34
- start: 252,
35
- end: 292
34
+ start: 212,
35
+ end: 246,
36
36
  },
37
37
  {
38
38
  text: 'And say, now, how does it seem to you?',
39
- start: 293,
40
- end: 335
41
- }
39
+ start: 247,
40
+ end: 285,
41
+ },
42
42
  ];
43
43
 
44
44
  const mathSampleText =
@@ -48,30 +48,32 @@ const mathSampleTokens = [
48
48
  {
49
49
  start: 583,
50
50
  end: 1465,
51
- text: '<span class="lrn_token"><math xmlns="http://www.w3.org/1998/Math/MathML">\n <mstyle displaystyle="true">\n <mrow>\n <mo>[</mo>\n <mn>6</mn>\n <mi>x</mi>\n <mrow>\n <mo>(</mo>\n <mo>-</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>+</mo>\n <mn>3</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>1</mn>\n <mo>)</mo>\n </mrow>\n <mo>+</mo>\n <mn>2</mn>\n <mrow>\n <mo>(</mo>\n <mo>-</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>+</mo>\n <mn>3</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>1</mn>\n <mo>)</mo>\n </mrow>\n <mo>]</mo>\n </mrow>\n <mrow>\n <mo>(</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>)</mo>\n </mrow>\n </mstyle>\n</math></span>', correct: true },
51
+ text: '<span class="lrn_token"><math xmlns="http://www.w3.org/1998/Math/MathML">\n <mstyle displaystyle="true">\n <mrow>\n <mo>[</mo>\n <mn>6</mn>\n <mi>x</mi>\n <mrow>\n <mo>(</mo>\n <mo>-</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>+</mo>\n <mn>3</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>1</mn>\n <mo>)</mo>\n </mrow>\n <mo>+</mo>\n <mn>2</mn>\n <mrow>\n <mo>(</mo>\n <mo>-</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>+</mo>\n <mn>3</mn>\n <mi>x</mi>\n <mo>-</mo>\n <mn>1</mn>\n <mo>)</mo>\n </mrow>\n <mo>]</mo>\n </mrow>\n <mrow>\n <mo>(</mo>\n <msup>\n <mi>x</mi>\n <mn>2</mn>\n </msup>\n <mo>)</mo>\n </mrow>\n </mstyle>\n</math></span>',
52
+ correct: true,
53
+ },
52
54
  { start: 1474, end: 2218 },
53
55
  { start: 2227, end: 2797 },
54
- { start: 2806, end: 3112 }
56
+ { start: 2806, end: 3112 },
55
57
  ];
56
58
 
57
- const base = extras =>
59
+ const base = (extras) =>
58
60
  Object.assign(
59
61
  {},
60
62
  {
61
- highlightChoices: true,
63
+ // highlightChoices: true,
62
64
  feedback: {
63
65
  correct: {
64
66
  type: 'default',
65
- default: 'Correct'
67
+ default: 'Correct',
66
68
  },
67
69
  incorrect: {
68
70
  type: 'default',
69
- default: 'Incorrect'
71
+ default: 'Incorrect',
70
72
  },
71
73
  partial: {
72
74
  type: 'default',
73
- default: 'Nearly'
74
- }
75
+ default: 'Nearly',
76
+ },
75
77
  },
76
78
  partialScoring: false,
77
79
  maxSelections: 2,
@@ -79,6 +81,7 @@ const base = extras =>
79
81
  rationale: 'Rationale goes here.',
80
82
  prompt: 'What sentences contain the character 6 in them?',
81
83
  promptEnabled: true,
84
+ toolbarEditorPosition: 'bottom',
82
85
  // text: `<p>Warhol was born in 1928 in Pittsburgh, Pennsylvania. When he was eight years old, he became very sick and had to stay in bed for months. To help him pass the time his mother, who was an artist, taught him how to draw. He took to it like a fish to water. Art became the center of Andy's world. A year later he added picture-taking to his interests when his mother gave him a camera. He also became fascinated with movies.</p><p>Andy studied art in school and learned many ways to make art. He learned how to use different art materials, such as oil paints, metal, clay, and wood. In 1949 he moved to New York City, where he got a job drawing and painting pictures for magazines.</p>`,
83
86
  text: `<p>If 'tweren't for sight and sound and smell,<br />
84
87
  I'd like the city pretty well,<br />
@@ -91,10 +94,10 @@ And get out where the sky is blue,<br />
91
94
  And say, now, how does it seem to you?</p>`,
92
95
  tokens: tokens(),
93
96
  },
94
- extras
97
+ extras,
95
98
  );
96
99
 
97
- const mathSample = extras => {
100
+ const mathSample = (extras) => {
98
101
  return Object.assign(
99
102
  {},
100
103
  {
@@ -102,16 +105,16 @@ const mathSample = extras => {
102
105
  feedback: {
103
106
  correct: {
104
107
  type: 'default',
105
- default: 'Correct'
108
+ default: 'Correct',
106
109
  },
107
110
  incorrect: {
108
111
  type: 'default',
109
- default: 'Incorrect'
112
+ default: 'Incorrect',
110
113
  },
111
114
  partial: {
112
115
  type: 'default',
113
- default: 'Nearly'
114
- }
116
+ default: 'Nearly',
117
+ },
115
118
  },
116
119
  partialScoring: false,
117
120
  maxSelections: 2,
@@ -127,84 +130,191 @@ And get out where the sky is blue,<br />
127
130
  And say, now, how does it seem to you?</p>`,
128
131
  tokens: mathSampleTokens,
129
132
  },
130
- extras
133
+ extras,
131
134
  );
132
135
  };
133
136
 
134
- exports.model = (id, element) => {
135
- return Object.assign({}, { id, element }, base({}));
136
- };
137
-
138
137
  exports.mathSample = (id, element) => {
139
138
  return Object.assign({}, { id, element }, mathSample({}));
140
139
  };
141
140
 
142
141
  exports.htmlSample = (id, element) => {
143
- return Object.assign({}, { id, element }, {
144
- highlightChoices: true,
145
- feedback: {
146
- correct: {
147
- type: 'default',
148
- default: 'Correct'
149
- },
150
- incorrect: {
151
- type: 'default',
152
- default: 'Incorrect'
142
+ return Object.assign(
143
+ {},
144
+ { id, element },
145
+ {
146
+ highlightChoices: true,
147
+ feedback: {
148
+ correct: {
149
+ type: 'default',
150
+ default: 'Correct',
151
+ },
152
+ incorrect: {
153
+ type: 'default',
154
+ default: 'Incorrect',
155
+ },
156
+ partial: {
157
+ type: 'default',
158
+ default: 'Nearly',
159
+ },
153
160
  },
154
- partial: {
155
- type: 'default',
156
- default: 'Nearly'
157
- }
161
+ partialScoring: false,
162
+ text: '<p style=\'padding: 20px\'>A flicker and then gone. In its wake, only <span class="lrn_token">the after-echo of a distant high-pitched ringing that vibrated through him even as it returned to silence once again</span>, as he stared into the smiling faces of the crew and told himself that yes he was meant to be here, that <span class="lrn_token">it had been his destiny to succeed and so he had succeeded</span>, the sense of panic already replaced by the pride of his accomplishment, replaced so completely that he would not remember that flicker, would not allow himself to remember, <span class="lrn_token">even after everything else had happened</span>. In his memory of that moment, <span class="lrn_token">he was an astronaut and they were welcoming him aboard the space station</span>. And in his memory he was smiling. Is this not what he was meant to do? Is the answer not as fixed and indisputable as any equation he might have been tasked to solve?</p>\n',
163
+ prompt:
164
+ '<p>Select the <span class="relative-emphasis">one</span> phrase below that suggests that in the future, Keith may interpret this moment differently.</p>',
165
+ maxSelections: 2,
166
+ mode: 'sentence',
167
+ rationale: 'Rationale goes here.',
168
+ tokens: [
169
+ {
170
+ correct: false,
171
+ start: 67,
172
+ end: 215,
173
+ text: '<span class="lrn_token">the after-echo of a distant high-pitched ringing that vibrated through him even as it returned to silence once again</span>',
174
+ },
175
+ {
176
+ correct: false,
177
+ start: 321,
178
+ end: 410,
179
+ text: '<span class="lrn_token">it had been his destiny to succeed and so he had succeeded</span>',
180
+ },
181
+ {
182
+ correct: true,
183
+ start: 585,
184
+ end: 655,
185
+ text: '<span class="lrn_token">even after everything else had happened</span>',
186
+ },
187
+ {
188
+ correct: false,
189
+ start: 687,
190
+ end: 790,
191
+ text: '<span class="lrn_token">he was an astronaut and they were welcoming him aboard the space station</span>',
192
+ },
193
+ ],
158
194
  },
159
- partialScoring: false,
160
- text: '<p style=\'padding: 20px\'>A flicker and then gone. In its wake, only <span class="lrn_token">the after-echo of a distant high-pitched ringing that vibrated through him even as it returned to silence once again</span>, as he stared into the smiling faces of the crew and told himself that yes he was meant to be here, that <span class="lrn_token">it had been his destiny to succeed and so he had succeeded</span>, the sense of panic already replaced by the pride of his accomplishment, replaced so completely that he would not remember that flicker, would not allow himself to remember, <span class="lrn_token">even after everything else had happened</span>. In his memory of that moment, <span class="lrn_token">he was an astronaut and they were welcoming him aboard the space station</span>. And in his memory he was smiling. Is this not what he was meant to do? Is the answer not as fixed and indisputable as any equation he might have been tasked to solve?</p>\n',
161
- prompt: '<p>Select the <span class="relative-emphasis">one</span> phrase below that suggests that in the future, Keith may interpret this moment differently.</p>',
162
- maxSelections: 2,
163
- mode: 'sentence',
164
- rationale: 'Rationale goes here.',
165
- tokens: [
166
- {
167
- correct: false,
168
- start: 67,
169
- end: 215,
170
- text: '<span class="lrn_token">the after-echo of a distant high-pitched ringing that vibrated through him even as it returned to silence once again</span>'
171
- },
172
- {
173
- correct: false,
174
- start: 321,
175
- end: 410,
176
- text: '<span class="lrn_token">it had been his destiny to succeed and so he had succeeded</span>'
177
- },
178
- {
179
- correct: true,
180
- start: 585,
181
- end: 655,
182
- text: '<span class="lrn_token">even after everything else had happened</span>'
183
- },
184
- {
185
- correct: false,
186
- start: 687,
187
- end: 790,
188
- text: '<span class="lrn_token">he was an astronaut and they were welcoming him aboard the space station</span>'
189
- }
190
- ],
191
- });
195
+ );
192
196
  };
193
197
 
194
198
  exports.htmlAscii = (id, element) => ({
195
- id,
196
- element,
197
- highlightChoices: true,
198
- prompt: 'Select the parts that have references for Lucy',
199
- text: '<p>&#8220;Lucy? Are you using your time wisely to plan your project?&#8221; Mr. Wilson asked.</p><p>&nbsp;Lucy looked a little confused at first.</p>',
200
- tokens: [{
199
+ id,
200
+ element,
201
+ highlightChoices: true,
202
+ prompt: 'Select the parts that have references for Lucy',
203
+ text: '<p>&#8220;Lucy? Are you using your time wisely to plan your project?&#8221; Mr. Wilson asked.</p><p>&nbsp;Lucy looked a little confused at first.</p>',
204
+ tokens: [
205
+ {
201
206
  start: 10,
202
207
  end: 68,
203
- text: 'Lucy? Are you using your time wisely to plan your project?'
204
- }, {
208
+ text: 'Lucy? Are you using your time wisely to plan your project?',
209
+ },
210
+ {
205
211
  start: 106,
206
212
  end: 145,
207
- text: 'Lucy looked a little confused at first.'
208
- }]
209
- }
210
- );
213
+ text: 'Lucy looked a little confused at first.',
214
+ },
215
+ ],
216
+ });
217
+
218
+ const simpleItem = {
219
+ text: 'A. Almost never\n\nB. Once in a while\n\nC. Sometimes\n\nD. Often\n\nE. Almost all the time',
220
+ tokens: [
221
+ {
222
+ text: 'A. Almost never',
223
+ end: 15,
224
+ start: 0,
225
+ correct: true,
226
+ },
227
+ {
228
+ start: 17,
229
+ end: 35,
230
+ correct: false,
231
+ text: 'B. Once in a while',
232
+ },
233
+ {
234
+ correct: false,
235
+ end: 49,
236
+ start: 37,
237
+ text: 'C. Sometimes',
238
+ },
239
+ {
240
+ text: 'D. Often',
241
+ correct: false,
242
+ end: 59,
243
+ start: 51,
244
+ },
245
+ {
246
+ start: 61,
247
+ correct: false,
248
+ end: 83,
249
+ text: 'E. Almost all the time',
250
+ },
251
+ ],
252
+ rationale: '<p>answers vary</p>',
253
+ partialScoring: true,
254
+ teacherInstructions: '',
255
+ prompt: '<p>I got my work done right away instead of waiting until the last minute.</p>',
256
+ maxSelections: 1,
257
+ };
258
+
259
+ exports.model = (id, element) => {
260
+ return Object.assign(
261
+ {},
262
+ { id, element },
263
+ base({
264
+ // "id": "8a808081701d693801703174fb900421",
265
+ teacherInstructions: '',
266
+ partialScoring: true,
267
+ prompt:
268
+ '<p>Select the sentence from&#160;&#34;The Gymnast&#34; that <span class="relative-emphasis">best</span> represents the theme.</p>',
269
+ rationale:
270
+ '<p>The final sentence of the passage best exemplifies the theme of the short story because Natasha&#39;s practice and determination finally pays off.</p>',
271
+ tokens: [
272
+ {
273
+ text: 'She thought about what she had to do, struggling to rein in her wild, fearful thoughts.',
274
+ end: 90,
275
+ start: 3,
276
+ correct: false,
277
+ },
278
+ {
279
+ start: 449,
280
+ end: 585,
281
+ text: 'Just for a hair of a moment, Natasha wondered if she really wanted a perfect 10, so weary was she of trying for but never achieving one.',
282
+ correct: false,
283
+ },
284
+ {
285
+ end: 627,
286
+ correct: false,
287
+ text: "At last Natasha's moment arrived.",
288
+ start: 594,
289
+ },
290
+ {
291
+ end: 743,
292
+ text: "The faces of past giants of gymnastics swam before her mind's eye, now razor&#8211;sharp with fierce determination.",
293
+ correct: false,
294
+ start: 628,
295
+ },
296
+ {
297
+ text: 'Suddenly, the din of the gymnasium was silent to her.',
298
+ end: 997,
299
+ correct: false,
300
+ start: 944,
301
+ },
302
+ {
303
+ end: 1087,
304
+ start: 998,
305
+ correct: false,
306
+ text: 'Forcing all sound out of her mind, she focused on the gleaming balance beam ahead of her.',
307
+ },
308
+ {
309
+ correct: true,
310
+ start: 1088,
311
+ end: 1225,
312
+ text: 'Taking a deep breath, Natasha made her graceful, yet powerful approach, mounted the beam flawlessly, and...executed her first perfect 10.',
313
+ },
314
+ ],
315
+ // "element": "select-text",
316
+ text: "<p>She thought about what she had to do, struggling to rein in her wild, fearful thoughts. Coach Cummings always said that an undisciplined mind never scored a perfect 10. Natasha wanted to please her Coach, yet sometimes his approval wasn't as exciting as his anger. The gymnasts were unanimous about one thing: Coach Cummings's fits of disapproving rage were much more humorous to witness than his infrequent, backslapping moments of high praise. Just for a hair of a moment, Natasha wondered if she really wanted a perfect 10, so weary was she of trying for but never achieving one.</p>\n\n<p>At last Natasha's moment arrived. The faces of past giants of gymnastics swam before her mind's eye, now razor&#8211;sharp with fierce determination. \"I am talented. I am not afraid. I will make a perfect 10,\" she spoke aloud to herself, as she approached the mat, dusted her hands with chalk to prevent slippage, and returned to her starting point. Suddenly, the din of the gymnasium was silent to her. Forcing all sound out of her mind, she focused on the gleaming balance beam ahead of her. Taking a deep breath, Natasha made her graceful, yet powerful approach, mounted the beam flawlessly, and...executed her first perfect 10.</p>\n",
317
+ rubricEnabled: false,
318
+ }),
319
+ );
320
+ };