@khanacademy/perseus 1.3.3 → 1.3.4

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 (32) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/es/index.js +30 -25
  3. package/dist/es/index.js.map +1 -1
  4. package/dist/index.js +30 -25
  5. package/dist/index.js.map +1 -1
  6. package/package.json +1 -1
  7. package/src/__tests__/__snapshots__/perseus-markdown_test.jsx.snap +111 -111
  8. package/src/__tests__/item-renderer_test.jsx +9 -9
  9. package/src/__tests__/jipt-paragraphs_test.js +3 -3
  10. package/src/__tests__/renderer_test.jsx +22 -22
  11. package/src/__tests__/server-item-renderer_test.jsx +7 -7
  12. package/src/components/__tests__/sortable_test.jsx +7 -7
  13. package/src/multi-items/__tests__/multi-renderer_test.js +90 -90
  14. package/src/renderer.jsx +2 -2
  15. package/src/widgets/__tests__/__snapshots__/grapher_test.jsx.snap +68 -68
  16. package/src/widgets/__tests__/__snapshots__/interaction_test.jsx.snap +5 -5
  17. package/src/widgets/__tests__/__snapshots__/interactive-graph_test.jsx.snap +2 -2
  18. package/src/widgets/__tests__/__snapshots__/passage_test.jsx.snap +2 -2
  19. package/src/widgets/__tests__/categorizer_test.jsx +5 -5
  20. package/src/widgets/__tests__/explanation_test.js +5 -5
  21. package/src/widgets/__tests__/graded-group-set_test.jsx +2 -2
  22. package/src/widgets/__tests__/group_test.jsx +49 -49
  23. package/src/widgets/__tests__/numeric-input_test.jsx +5 -5
  24. package/src/widgets/__tests__/passage_test.jsx +1 -1
  25. package/src/widgets/__tests__/radio/base-radio_test.jsx +28 -1
  26. package/src/widgets/categorizer.jsx +1 -1
  27. package/src/widgets/expression.jsx +6 -6
  28. package/src/widgets/input-number.jsx +4 -4
  29. package/src/widgets/numeric-input.jsx +5 -5
  30. package/src/widgets/radio/base-radio.jsx +8 -3
  31. package/src/widgets/radio/choice-icon/library-choice-icon.jsx +2 -2
  32. package/src/widgets/radio/widget.jsx +2 -2
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Core Perseus API (includes renderers and widgets)",
4
4
  "author": "Khan Academy",
5
5
  "license": "MIT",
6
- "version": "1.3.3",
6
+ "version": "1.3.4",
7
7
  "publishConfig": {
8
8
  "access": "public"
9
9
  },
@@ -1,7 +1,7 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`perseus markdown output should output columns 1`] = `
4
- Array [
4
+ [
5
5
  <div
6
6
  className="perseus-two-columns"
7
7
  >
@@ -45,7 +45,7 @@ Array [
45
45
  `;
46
46
 
47
47
  exports[`perseus markdown output should output paragraphs 1`] = `
48
- Array [
48
+ [
49
49
  <div
50
50
  className="paragraph"
51
51
  >
@@ -55,7 +55,7 @@ Array [
55
55
  `;
56
56
 
57
57
  exports[`perseus markdown output should output titled table with unescaped dollars 1`] = `
58
- Array [
58
+ [
59
59
  <div
60
60
  className="perseus-titled-table"
61
61
  >
@@ -71,19 +71,19 @@ Array [
71
71
  <tr>
72
72
  <th
73
73
  scope="col"
74
- style={Object {}}
74
+ style={{}}
75
75
  >
76
76
  header 1
77
77
  </th>
78
78
  <th
79
79
  scope="col"
80
- style={Object {}}
80
+ style={{}}
81
81
  >
82
82
  header 2
83
83
  </th>
84
84
  <th
85
85
  scope="col"
86
- style={Object {}}
86
+ style={{}}
87
87
  >
88
88
  header 3
89
89
  </th>
@@ -92,51 +92,51 @@ Array [
92
92
  <tbody>
93
93
  <tr>
94
94
  <td
95
- style={Object {}}
95
+ style={{}}
96
96
  >
97
97
  data 1
98
98
  </td>
99
99
  <td
100
- style={Object {}}
100
+ style={{}}
101
101
  >
102
102
  data 2
103
103
  </td>
104
104
  <td
105
- style={Object {}}
105
+ style={{}}
106
106
  >
107
107
  data 3
108
108
  </td>
109
109
  </tr>
110
110
  <tr>
111
111
  <td
112
- style={Object {}}
112
+ style={{}}
113
113
  >
114
114
  data 4
115
115
  </td>
116
116
  <td
117
- style={Object {}}
117
+ style={{}}
118
118
  >
119
119
  $data 5
120
120
  </td>
121
121
  <td
122
- style={Object {}}
122
+ style={{}}
123
123
  >
124
124
  data 6
125
125
  </td>
126
126
  </tr>
127
127
  <tr>
128
128
  <td
129
- style={Object {}}
129
+ style={{}}
130
130
  >
131
131
  data 7
132
132
  </td>
133
133
  <td
134
- style={Object {}}
134
+ style={{}}
135
135
  >
136
136
  data 8
137
137
  </td>
138
138
  <td
139
- style={Object {}}
139
+ style={{}}
140
140
  >
141
141
  data 9
142
142
  </td>
@@ -148,7 +148,7 @@ Array [
148
148
  `;
149
149
 
150
150
  exports[`perseus markdown output should render \`\`\`alt screenreader blocks 1`] = `
151
- Array [
151
+ [
152
152
  <div
153
153
  className="perseus-markdown-alt perseus-sr-only"
154
154
  >
@@ -162,7 +162,7 @@ Array [
162
162
  `;
163
163
 
164
164
  exports[`perseus markdown output with linter should output titled table with unescaped dollars in lint 1`] = `
165
- Array [
165
+ [
166
166
  <div
167
167
  className="perseus-titled-table"
168
168
  >
@@ -170,7 +170,7 @@ Array [
170
170
  inline={false}
171
171
  insideTable={false}
172
172
  message="Unescaped dollar sign:
173
- Dollar signs must appear in pairs or be escaped as \\\\$"
173
+ Dollar signs must appear in pairs or be escaped as \\$"
174
174
  ruleName="unescaped-dollar"
175
175
  severity={1}
176
176
  >
@@ -186,19 +186,19 @@ Dollar signs must appear in pairs or be escaped as \\\\$"
186
186
  <tr>
187
187
  <th
188
188
  scope="col"
189
- style={Object {}}
189
+ style={{}}
190
190
  >
191
191
  header 1
192
192
  </th>
193
193
  <th
194
194
  scope="col"
195
- style={Object {}}
195
+ style={{}}
196
196
  >
197
197
  header 2
198
198
  </th>
199
199
  <th
200
200
  scope="col"
201
- style={Object {}}
201
+ style={{}}
202
202
  >
203
203
  header 3
204
204
  </th>
@@ -207,35 +207,35 @@ Dollar signs must appear in pairs or be escaped as \\\\$"
207
207
  <tbody>
208
208
  <tr>
209
209
  <td
210
- style={Object {}}
210
+ style={{}}
211
211
  >
212
212
  data 1
213
213
  </td>
214
214
  <td
215
- style={Object {}}
215
+ style={{}}
216
216
  >
217
217
  data 2
218
218
  </td>
219
219
  <td
220
- style={Object {}}
220
+ style={{}}
221
221
  >
222
222
  data 3
223
223
  </td>
224
224
  </tr>
225
225
  <tr>
226
226
  <td
227
- style={Object {}}
227
+ style={{}}
228
228
  >
229
229
  data 4
230
230
  </td>
231
231
  <td
232
- style={Object {}}
232
+ style={{}}
233
233
  >
234
234
  <Lint
235
235
  inline={true}
236
236
  insideTable={true}
237
237
  message="Unescaped dollar sign:
238
- Dollar signs must appear in pairs or be escaped as \\\\$"
238
+ Dollar signs must appear in pairs or be escaped as \\$"
239
239
  ruleName="unescaped-dollar"
240
240
  severity={1}
241
241
  >
@@ -244,24 +244,24 @@ Dollar signs must appear in pairs or be escaped as \\\\$"
244
244
  data 5
245
245
  </td>
246
246
  <td
247
- style={Object {}}
247
+ style={{}}
248
248
  >
249
249
  data 6
250
250
  </td>
251
251
  </tr>
252
252
  <tr>
253
253
  <td
254
- style={Object {}}
254
+ style={{}}
255
255
  >
256
256
  data 7
257
257
  </td>
258
258
  <td
259
- style={Object {}}
259
+ style={{}}
260
260
  >
261
261
  data 8
262
262
  </td>
263
263
  <td
264
- style={Object {}}
264
+ style={{}}
265
265
  >
266
266
  data 9
267
267
  </td>
@@ -274,94 +274,94 @@ Dollar signs must appear in pairs or be escaped as \\\\$"
274
274
  `;
275
275
 
276
276
  exports[`perseus markdown parser should parse titled table with unescaped dollars 1`] = `
277
- Array [
278
- Object {
279
- "table": Object {
280
- "align": Array [
277
+ [
278
+ {
279
+ "table": {
280
+ "align": [
281
281
  null,
282
282
  null,
283
283
  null,
284
284
  ],
285
- "cells": Array [
286
- Array [
287
- Array [
288
- Object {
285
+ "cells": [
286
+ [
287
+ [
288
+ {
289
289
  "content": "data 1",
290
290
  "type": "text",
291
291
  },
292
292
  ],
293
- Array [
294
- Object {
293
+ [
294
+ {
295
295
  "content": "data 2",
296
296
  "type": "text",
297
297
  },
298
298
  ],
299
- Array [
300
- Object {
299
+ [
300
+ {
301
301
  "content": "data 3",
302
302
  "type": "text",
303
303
  },
304
304
  ],
305
305
  ],
306
- Array [
307
- Array [
308
- Object {
306
+ [
307
+ [
308
+ {
309
309
  "content": "data 4",
310
310
  "type": "text",
311
311
  },
312
312
  ],
313
- Array [
314
- Object {
313
+ [
314
+ {
315
315
  "type": "unescapedDollar",
316
316
  },
317
- Object {
317
+ {
318
318
  "content": "data 5",
319
319
  "type": "text",
320
320
  },
321
321
  ],
322
- Array [
323
- Object {
322
+ [
323
+ {
324
324
  "content": "data 6",
325
325
  "type": "text",
326
326
  },
327
327
  ],
328
328
  ],
329
- Array [
330
- Array [
331
- Object {
329
+ [
330
+ [
331
+ {
332
332
  "content": "data 7",
333
333
  "type": "text",
334
334
  },
335
335
  ],
336
- Array [
337
- Object {
336
+ [
337
+ {
338
338
  "content": "data 8",
339
339
  "type": "text",
340
340
  },
341
341
  ],
342
- Array [
343
- Object {
342
+ [
343
+ {
344
344
  "content": "data 9",
345
345
  "type": "text",
346
346
  },
347
347
  ],
348
348
  ],
349
349
  ],
350
- "header": Array [
351
- Array [
352
- Object {
350
+ "header": [
351
+ [
352
+ {
353
353
  "content": "header 1",
354
354
  "type": "text",
355
355
  },
356
356
  ],
357
- Array [
358
- Object {
357
+ [
358
+ {
359
359
  "content": "header 2",
360
360
  "type": "text",
361
361
  },
362
362
  ],
363
- Array [
364
- Object {
363
+ [
364
+ {
365
365
  "content": "header 3",
366
366
  "type": "text",
367
367
  },
@@ -369,10 +369,10 @@ Array [
369
369
  ],
370
370
  "type": "table",
371
371
  },
372
- "title": Array [
373
- Object {
374
- "content": Array [
375
- Object {
372
+ "title": [
373
+ {
374
+ "content": [
375
+ {
376
376
  "content": "Table title",
377
377
  "type": "text",
378
378
  },
@@ -386,105 +386,105 @@ Array [
386
386
  `;
387
387
 
388
388
  exports[`perseus markdown parser with linter should lint unescaped dollars in titled table 1`] = `
389
- Array [
390
- Object {
391
- "table": Object {
389
+ [
390
+ {
391
+ "table": {
392
392
  "blockHighlight": undefined,
393
- "content": Object {
394
- "align": Array [
393
+ "content": {
394
+ "align": [
395
395
  null,
396
396
  null,
397
397
  null,
398
398
  ],
399
- "cells": Array [
400
- Array [
401
- Array [
402
- Object {
399
+ "cells": [
400
+ [
401
+ [
402
+ {
403
403
  "content": "data 1",
404
404
  "type": "text",
405
405
  },
406
406
  ],
407
- Array [
408
- Object {
407
+ [
408
+ {
409
409
  "content": "data 2",
410
410
  "type": "text",
411
411
  },
412
412
  ],
413
- Array [
414
- Object {
413
+ [
414
+ {
415
415
  "content": "data 3",
416
416
  "type": "text",
417
417
  },
418
418
  ],
419
419
  ],
420
- Array [
421
- Array [
422
- Object {
420
+ [
421
+ [
422
+ {
423
423
  "content": "data 4",
424
424
  "type": "text",
425
425
  },
426
426
  ],
427
- Array [
428
- Object {
427
+ [
428
+ {
429
429
  "blockHighlight": undefined,
430
- "content": Object {
430
+ "content": {
431
431
  "type": "unescapedDollar",
432
432
  },
433
433
  "insideTable": true,
434
434
  "message": "Unescaped dollar sign:
435
- Dollar signs must appear in pairs or be escaped as \\\\$",
435
+ Dollar signs must appear in pairs or be escaped as \\$",
436
436
  "ruleName": "unescaped-dollar",
437
437
  "severity": 1,
438
438
  "type": "lint",
439
439
  },
440
- Object {
440
+ {
441
441
  "content": "data 5",
442
442
  "type": "text",
443
443
  },
444
444
  ],
445
- Array [
446
- Object {
445
+ [
446
+ {
447
447
  "content": "data 6",
448
448
  "type": "text",
449
449
  },
450
450
  ],
451
451
  ],
452
- Array [
453
- Array [
454
- Object {
452
+ [
453
+ [
454
+ {
455
455
  "content": "data 7",
456
456
  "type": "text",
457
457
  },
458
458
  ],
459
- Array [
460
- Object {
459
+ [
460
+ {
461
461
  "content": "data 8",
462
462
  "type": "text",
463
463
  },
464
464
  ],
465
- Array [
466
- Object {
465
+ [
466
+ {
467
467
  "content": "data 9",
468
468
  "type": "text",
469
469
  },
470
470
  ],
471
471
  ],
472
472
  ],
473
- "header": Array [
474
- Array [
475
- Object {
473
+ "header": [
474
+ [
475
+ {
476
476
  "content": "header 1",
477
477
  "type": "text",
478
478
  },
479
479
  ],
480
- Array [
481
- Object {
480
+ [
481
+ {
482
482
  "content": "header 2",
483
483
  "type": "text",
484
484
  },
485
485
  ],
486
- Array [
487
- Object {
486
+ [
487
+ {
488
488
  "content": "header 3",
489
489
  "type": "text",
490
490
  },
@@ -494,15 +494,15 @@ Dollar signs must appear in pairs or be escaped as \\\\$",
494
494
  },
495
495
  "insideTable": false,
496
496
  "message": "Unescaped dollar sign:
497
- Dollar signs must appear in pairs or be escaped as \\\\$",
497
+ Dollar signs must appear in pairs or be escaped as \\$",
498
498
  "ruleName": "unescaped-dollar",
499
499
  "severity": 1,
500
500
  "type": "lint",
501
501
  },
502
- "title": Array [
503
- Object {
504
- "content": Array [
505
- Object {
502
+ "title": [
503
+ {
504
+ "content": [
505
+ {
506
506
  "content": "Table title",
507
507
  "type": "text",
508
508
  },
@@ -535,47 +535,47 @@ describe("item renderer", () => {
535
535
 
536
536
  // Assert
537
537
  expect(scores).toMatchInlineSnapshot(`
538
- Object {
539
- "mock-widget 1": Object {
538
+ {
539
+ "mock-widget 1": {
540
540
  "correct": true,
541
541
  "empty": false,
542
542
  "guess": "user input for mock-widget 1",
543
543
  "message": undefined,
544
- "state": Object {
544
+ "state": {
545
545
  "a": 1,
546
546
  "b": "state",
547
547
  "id": "mock-widget 1",
548
548
  },
549
549
  },
550
- "mock-widget 2": Object {
550
+ "mock-widget 2": {
551
551
  "correct": false,
552
552
  "empty": true,
553
553
  "guess": "user input for mock-widget 2",
554
554
  "message": "please enter a value",
555
- "state": Object {
555
+ "state": {
556
556
  "a": 1,
557
557
  "b": "state",
558
558
  "id": "mock-widget 2",
559
559
  },
560
560
  "suppressAlmostThere": undefined,
561
561
  },
562
- "mock-widget 3": Object {
562
+ "mock-widget 3": {
563
563
  "correct": true,
564
564
  "empty": false,
565
565
  "guess": "user input for mock-widget 3",
566
566
  "message": undefined,
567
- "state": Object {
567
+ "state": {
568
568
  "a": 1,
569
569
  "b": "state",
570
570
  "id": "mock-widget 3",
571
571
  },
572
572
  },
573
- "mock-widget 4": Object {
573
+ "mock-widget 4": {
574
574
  "correct": false,
575
575
  "empty": true,
576
576
  "guess": "user input for mock-widget 4",
577
577
  "message": "please enter a value",
578
- "state": Object {
578
+ "state": {
579
579
  "a": 1,
580
580
  "b": "state",
581
581
  "id": "mock-widget 4",
@@ -7,7 +7,7 @@ const {parseToArray} = JiptParagraphs;
7
7
  describe("jipt-paragraphs", () => {
8
8
  it("should split paragraphs using custom JIPT SimpleMarkdown rules", () => {
9
9
  expect(parseToArray(" \n\nhello\n\n")).toMatchInlineSnapshot(`
10
- Array [
10
+ [
11
11
  " ",
12
12
  "hello",
13
13
  ]
@@ -23,9 +23,9 @@ describe("jipt-paragraphs", () => {
23
23
  "computer programmer!",
24
24
  ),
25
25
  ).toMatchInlineSnapshot(`
26
- Array [
26
+ [
27
27
  "Let's write the canonical Hello World in Javascript",
28
- "const x = \\"hello world\\";
28
+ "const x = "hello world";
29
29
  console.log(x);",
30
30
  "**Congratulations, you are on your way to becoming a computer programmer!",
31
31
  ]