@khanacademy/perseus 7.2.1 → 9.0.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 (390) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/article-renderer.d.ts +27 -40
  3. package/dist/components/math-input.d.ts +1 -1
  4. package/dist/components/sortable.d.ts +1 -1
  5. package/dist/components/tex-buttons.d.ts +1 -1
  6. package/dist/dependencies.d.ts +7 -1
  7. package/dist/es/index.js +1205 -1218
  8. package/dist/es/index.js.map +1 -1
  9. package/dist/hints-renderer.d.ts +1 -1
  10. package/dist/index.js +1207 -1221
  11. package/dist/index.js.map +1 -1
  12. package/dist/interaction-tracker.d.ts +3 -3
  13. package/dist/item-renderer.d.ts +2 -1
  14. package/dist/mixins/provide-keypad.d.ts +15 -12
  15. package/dist/multi-items/multi-renderer.d.ts +2 -1
  16. package/dist/perseus-api.d.ts +2 -2
  17. package/dist/renderer.d.ts +1 -1
  18. package/dist/server-item-renderer.d.ts +3 -1
  19. package/dist/types.d.ts +32 -11
  20. package/dist/widgets/expression.d.ts +410 -13
  21. package/dist/widgets/graded-group.d.ts +3 -3
  22. package/dist/widgets/interactive-graph.d.ts +1 -1
  23. package/dist/widgets/sequence.d.ts +3 -3
  24. package/dist/widgets/table.d.ts +8 -1
  25. package/dist/widgets.d.ts +1 -1
  26. package/package.json +34 -34
  27. package/src/__stories__/article-renderer.stories.tsx +35 -2
  28. package/src/__testdata__/article-renderer.testdata.ts +74 -1
  29. package/src/__testdata__/item-renderer.testdata.ts +1 -1
  30. package/src/__testdata__/renderer.testdata.ts +1 -1
  31. package/src/__tests__/item-renderer.test.tsx +13 -2
  32. package/src/__tests__/mock-asset-loading-widget.tsx +1 -1
  33. package/src/__tests__/perseus-markdown.test.ts +17 -17
  34. package/src/__tests__/renderer-api.test.tsx +21 -21
  35. package/src/__tests__/renderer.test.tsx +13 -13
  36. package/src/__tests__/server-item-renderer.test.tsx +12 -4
  37. package/src/__tests__/tex-wrangler.test.ts +1 -1
  38. package/src/article-renderer.tsx +75 -66
  39. package/src/components/__tests__/number-input.test.tsx +4 -4
  40. package/src/components/__tests__/sortable.test.tsx +2 -2
  41. package/src/components/fixed-to-responsive.tsx +1 -1
  42. package/src/components/graph.tsx +11 -11
  43. package/src/components/graphie-classes.ts +7 -7
  44. package/src/components/graphie.tsx +14 -14
  45. package/src/components/highlighting/highlightable-content.tsx +1 -1
  46. package/src/components/highlighting/ui/highlight-renderer.tsx +1 -1
  47. package/src/components/highlighting/ui/util.ts +2 -2
  48. package/src/components/highlighting/word-indexer.tsx +4 -4
  49. package/src/components/icon.tsx +1 -1
  50. package/src/components/image-loader.tsx +4 -4
  51. package/src/components/input-with-examples.tsx +2 -2
  52. package/src/components/lint.tsx +1 -1
  53. package/src/components/math-input.tsx +5 -5
  54. package/src/components/math-output.tsx +1 -1
  55. package/src/components/multi-button-group.tsx +1 -1
  56. package/src/components/number-input.tsx +10 -10
  57. package/src/components/prop-check-box.tsx +1 -1
  58. package/src/components/simple-keypad-input.tsx +4 -4
  59. package/src/components/sortable.tsx +42 -41
  60. package/src/components/svg-image.tsx +12 -12
  61. package/src/components/tex-buttons.tsx +4 -3
  62. package/src/components/text-input.tsx +8 -8
  63. package/src/components/text-list-editor.tsx +11 -11
  64. package/src/components/visibility-observer/create-visibility-observer.ts +1 -1
  65. package/src/components/visibility-observer/visibility-observer.tsx +2 -2
  66. package/src/components/zoomable-tex.tsx +3 -3
  67. package/src/components/zoomable.tsx +8 -8
  68. package/src/dependencies.ts +16 -1
  69. package/src/hint-renderer.tsx +3 -3
  70. package/src/hints-renderer.tsx +11 -11
  71. package/src/init.ts +1 -1
  72. package/src/interaction-tracker.ts +7 -7
  73. package/src/interactive2/__tests__/movable-point.test.ts +1 -1
  74. package/src/interactive2/interactive-util.ts +6 -6
  75. package/src/interactive2/movable-helper-methods.ts +2 -2
  76. package/src/interactive2/movable-line-options.ts +37 -37
  77. package/src/interactive2/movable-line.ts +2 -2
  78. package/src/interactive2/movable-point-options.ts +29 -29
  79. package/src/interactive2/movable-point.tsx +2 -2
  80. package/src/interactive2/movable-polygon-options.ts +45 -45
  81. package/src/interactive2/movable-polygon.ts +2 -2
  82. package/src/interactive2/movable.ts +2 -2
  83. package/src/interactive2/objective_.ts +1 -1
  84. package/src/interactive2/wrapped-defaults.ts +2 -2
  85. package/src/interactive2/wrapped-ellipse.ts +9 -9
  86. package/src/interactive2/wrapped-line.ts +8 -8
  87. package/src/interactive2/wrapped-path.ts +5 -5
  88. package/src/item-renderer.tsx +66 -48
  89. package/src/mixins/changeable.ts +2 -2
  90. package/src/mixins/editor-jsonify.ts +1 -1
  91. package/src/mixins/provide-keypad.tsx +23 -37
  92. package/src/mixins/widget-jsonify-deprecated.ts +1 -1
  93. package/src/multi-items/__tests__/items.test.ts +1 -1
  94. package/src/multi-items/__tests__/multi-renderer.test.tsx +13 -8
  95. package/src/multi-items/__tests__/trees.test.ts +12 -12
  96. package/src/multi-items/item-types.ts +2 -2
  97. package/src/multi-items/items.ts +1 -1
  98. package/src/multi-items/multi-renderer.tsx +30 -18
  99. package/src/multi-items/prop-type-builders.ts +2 -2
  100. package/src/multi-items/tree-types.ts +4 -4
  101. package/src/multi-items/trees.ts +16 -16
  102. package/src/perseus-env.ts +2 -2
  103. package/src/perseus-markdown.tsx +5 -5
  104. package/src/renderer.tsx +39 -39
  105. package/src/server-item-renderer.tsx +26 -21
  106. package/src/sigfigs.ts +1 -1
  107. package/src/traversal.ts +1 -1
  108. package/src/types.ts +52 -16
  109. package/src/util/answer-types.ts +14 -14
  110. package/src/util/geometry.ts +7 -7
  111. package/src/util/graphie.ts +32 -32
  112. package/src/util/interactive.ts +118 -118
  113. package/src/util/math.ts +4 -4
  114. package/src/util/react-render.tsx +1 -1
  115. package/src/util/scroll-utils.ts +2 -2
  116. package/src/util/tex.ts +3 -3
  117. package/src/util.ts +15 -15
  118. package/src/widget-container.tsx +1 -1
  119. package/src/widgets/__stories__/definition.stories.tsx +8 -1
  120. package/src/widgets/__stories__/expression.stories.tsx +2 -2
  121. package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +3 -3
  122. package/src/widgets/__testdata__/numeric-input.testdata.ts +1 -1
  123. package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +2 -2
  124. package/src/widgets/__tests__/{expression.test.ts → expression.test.tsx} +77 -11
  125. package/src/widgets/__tests__/grapher.cypress.ts +32 -32
  126. package/src/widgets/__tests__/group.test.tsx +1 -1
  127. package/src/widgets/__tests__/interactive-graph.cypress.ts +40 -40
  128. package/src/widgets/__tests__/interactive-graph.test.ts +1 -1
  129. package/src/widgets/__tests__/numeric-input.test.ts +1 -1
  130. package/src/widgets/__tests__/passage.test.tsx +2 -2
  131. package/src/widgets/__tests__/plotter.test.tsx +2 -1
  132. package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
  133. package/src/widgets/__tests__/renderQuestion.tsx +29 -21
  134. package/src/widgets/categorizer.tsx +4 -4
  135. package/src/widgets/cs-program.tsx +2 -2
  136. package/src/widgets/dropdown.tsx +1 -1
  137. package/src/widgets/expression.tsx +92 -57
  138. package/src/widgets/graded-group-set.tsx +5 -5
  139. package/src/widgets/graded-group.tsx +29 -21
  140. package/src/widgets/grapher/util.tsx +6 -6
  141. package/src/widgets/grapher.tsx +10 -10
  142. package/src/widgets/group.tsx +3 -3
  143. package/src/widgets/iframe.tsx +2 -2
  144. package/src/widgets/image.tsx +1 -1
  145. package/src/widgets/input-number.tsx +4 -4
  146. package/src/widgets/interaction.tsx +77 -77
  147. package/src/widgets/interactive-graph.tsx +109 -107
  148. package/src/widgets/label-image/marker.tsx +2 -2
  149. package/src/widgets/label-image.test.ts +1 -1
  150. package/src/widgets/label-image.tsx +7 -7
  151. package/src/widgets/lights-puzzle.tsx +2 -2
  152. package/src/widgets/matcher.tsx +6 -6
  153. package/src/widgets/matrix.tsx +20 -20
  154. package/src/widgets/measurer.tsx +3 -3
  155. package/src/widgets/molecule/__tests__/layout.test.ts +4 -4
  156. package/src/widgets/molecule/__tests__/parser.test.ts +14 -14
  157. package/src/widgets/molecule/smiles-parser.ts +3 -3
  158. package/src/widgets/molecule.tsx +4 -4
  159. package/src/widgets/number-line.tsx +11 -11
  160. package/src/widgets/numeric-input.tsx +11 -11
  161. package/src/widgets/orderer.tsx +38 -38
  162. package/src/widgets/passage/__tests__/passage-markdown.test.ts +1 -1
  163. package/src/widgets/passage/passage-markdown.tsx +4 -4
  164. package/src/widgets/passage-ref-target.tsx +1 -1
  165. package/src/widgets/passage-ref.tsx +4 -6
  166. package/src/widgets/passage.tsx +11 -11
  167. package/src/widgets/plotter.tsx +9 -9
  168. package/src/widgets/radio/base-radio.tsx +11 -11
  169. package/src/widgets/radio/choice-icon/choice-icon.tsx +2 -2
  170. package/src/widgets/radio/choice.tsx +1 -1
  171. package/src/widgets/radio/option-status.tsx +1 -1
  172. package/src/widgets/radio/widget.tsx +6 -6
  173. package/src/widgets/radio.ts +1 -1
  174. package/src/widgets/reaction-diagram.tsx +8 -8
  175. package/src/widgets/sequence.tsx +12 -4
  176. package/src/widgets/simulator.tsx +14 -14
  177. package/src/widgets/sorter.tsx +4 -4
  178. package/src/widgets/table.tsx +8 -8
  179. package/src/widgets/transformer.tsx +92 -92
  180. package/src/widgets/unit.tsx +17 -17
  181. package/src/widgets/video-transcript-link.test.tsx +3 -3
  182. package/src/widgets/video-transcript-link.tsx +1 -1
  183. package/src/widgets/video.tsx +1 -1
  184. package/src/widgets.ts +5 -5
  185. package/src/zoom.ts +22 -22
  186. package/tsconfig-build.tsbuildinfo +1 -1
  187. package/dist/a11y.js.flow +0 -11
  188. package/dist/all-widgets.js.flow +0 -33
  189. package/dist/article-renderer.js.flow +0 -73
  190. package/dist/asset-context.js.flow +0 -15
  191. package/dist/basic-widgets.js.flow +0 -33
  192. package/dist/components/button-group.js.flow +0 -33
  193. package/dist/components/constants.js.flow +0 -13
  194. package/dist/components/fixed-to-responsive.js.flow +0 -34
  195. package/dist/components/graph.js.flow +0 -66
  196. package/dist/components/graphie-classes.js.flow +0 -19
  197. package/dist/components/graphie-movables.js.flow +0 -22
  198. package/dist/components/graphie.js.flow +0 -69
  199. package/dist/components/highlighting/highlightable-content.js.flow +0 -56
  200. package/dist/components/highlighting/highlights.js.flow +0 -54
  201. package/dist/components/highlighting/ranges.js.flow +0 -60
  202. package/dist/components/highlighting/types.js.flow +0 -70
  203. package/dist/components/highlighting/ui/highlight-renderer.js.flow +0 -43
  204. package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +0 -41
  205. package/dist/components/highlighting/ui/highlight-tooltip.js.flow +0 -22
  206. package/dist/components/highlighting/ui/highlighting-ui.js.flow +0 -30
  207. package/dist/components/highlighting/ui/selection-tracker.js.flow +0 -54
  208. package/dist/components/highlighting/ui/types.js.flow +0 -22
  209. package/dist/components/highlighting/ui/util.js.flow +0 -42
  210. package/dist/components/highlighting/word-indexer.js.flow +0 -21
  211. package/dist/components/hud.js.flow +0 -14
  212. package/dist/components/icon.js.flow +0 -31
  213. package/dist/components/image-loader.js.flow +0 -49
  214. package/dist/components/info-tip/info-tip.js.flow +0 -20
  215. package/dist/components/info-tip.js.flow +0 -18
  216. package/dist/components/inline-icon.js.flow +0 -39
  217. package/dist/components/input-with-examples.js.flow +0 -58
  218. package/dist/components/lint.js.flow +0 -58
  219. package/dist/components/math-input.js.flow +0 -49
  220. package/dist/components/math-output.js.flow +0 -33
  221. package/dist/components/multi-button-group.js.flow +0 -35
  222. package/dist/components/number-input.js.flow +0 -42
  223. package/dist/components/prop-check-box.js.flow +0 -8
  224. package/dist/components/range-input.js.flow +0 -20
  225. package/dist/components/simple-keypad-input.js.flow +0 -16
  226. package/dist/components/sortable.js.flow +0 -91
  227. package/dist/components/stub-tag-editor.js.flow +0 -18
  228. package/dist/components/svg-image.js.flow +0 -85
  229. package/dist/components/tex-buttons.js.flow +0 -26
  230. package/dist/components/tex.js.flow +0 -25
  231. package/dist/components/text-input.js.flow +0 -39
  232. package/dist/components/text-list-editor.js.flow +0 -22
  233. package/dist/components/tooltip.js.flow +0 -51
  234. package/dist/components/visibility-observer/create-visibility-observer.js.flow +0 -23
  235. package/dist/components/visibility-observer/get-scroll-parent.js.flow +0 -7
  236. package/dist/components/visibility-observer/visibility-observer.js.flow +0 -36
  237. package/dist/components/zoomable-tex.js.flow +0 -18
  238. package/dist/components/zoomable.js.flow +0 -70
  239. package/dist/components.js.flow +0 -22
  240. package/dist/definition-context.js.flow +0 -25
  241. package/dist/dependencies.js.flow +0 -9
  242. package/dist/error-boundary.js.flow +0 -19
  243. package/dist/extra-widgets.js.flow +0 -33
  244. package/dist/hint-renderer.js.flow +0 -32
  245. package/dist/hints-renderer.js.flow +0 -41
  246. package/dist/icon-paths.js.flow +0 -123
  247. package/dist/index.js.flow +0 -134
  248. package/dist/init.js.flow +0 -20
  249. package/dist/interaction-tracker.js.flow +0 -35
  250. package/dist/interactive2/interactive-util.js.flow +0 -50
  251. package/dist/interactive2/movable-helper-methods.js.flow +0 -15
  252. package/dist/interactive2/movable-line-options.js.flow +0 -44
  253. package/dist/interactive2/movable-line.js.flow +0 -8
  254. package/dist/interactive2/movable-point-options.js.flow +0 -44
  255. package/dist/interactive2/movable-point.js.flow +0 -8
  256. package/dist/interactive2/movable-polygon-options.js.flow +0 -47
  257. package/dist/interactive2/movable-polygon.js.flow +0 -8
  258. package/dist/interactive2/movable.js.flow +0 -8
  259. package/dist/interactive2/objective_.js.flow +0 -25
  260. package/dist/interactive2/types.js.flow +0 -8
  261. package/dist/interactive2/wrapped-defaults.js.flow +0 -11
  262. package/dist/interactive2/wrapped-ellipse.js.flow +0 -14
  263. package/dist/interactive2/wrapped-line.js.flow +0 -14
  264. package/dist/interactive2/wrapped-path.js.flow +0 -13
  265. package/dist/interactive2.js.flow +0 -16
  266. package/dist/item-renderer.js.flow +0 -132
  267. package/dist/item-version.js.flow +0 -11
  268. package/dist/jipt-paragraphs.js.flow +0 -14
  269. package/dist/loading-context.js.flow +0 -12
  270. package/dist/logging/log.js.flow +0 -62
  271. package/dist/mixins/changeable.js.flow +0 -33
  272. package/dist/mixins/editor-jsonify.js.flow +0 -10
  273. package/dist/mixins/provide-keypad.js.flow +0 -33
  274. package/dist/mixins/widget-jsonify-deprecated.js.flow +0 -11
  275. package/dist/mixins/widget-prop-denylist.js.flow +0 -20
  276. package/dist/multi-items/item-types.js.flow +0 -55
  277. package/dist/multi-items/items.js.flow +0 -66
  278. package/dist/multi-items/multi-renderer.js.flow +0 -213
  279. package/dist/multi-items/prop-type-builders.js.flow +0 -22
  280. package/dist/multi-items/shape-types.js.flow +0 -60
  281. package/dist/multi-items/shapes.js.flow +0 -25
  282. package/dist/multi-items/tree-types.js.flow +0 -45
  283. package/dist/multi-items/trees.js.flow +0 -147
  284. package/dist/multi-items.js.flow +0 -36
  285. package/dist/perseus-api.js.flow +0 -151
  286. package/dist/perseus-env.js.flow +0 -6
  287. package/dist/perseus-error.js.flow +0 -16
  288. package/dist/perseus-markdown.js.flow +0 -20
  289. package/dist/perseus-types.js.flow +0 -1041
  290. package/dist/question-paragraph.js.flow +0 -17
  291. package/dist/renderability.js.flow +0 -19
  292. package/dist/renderer.js.flow +0 -325
  293. package/dist/server-item-renderer.js.flow +0 -132
  294. package/dist/sigfigs.js.flow +0 -41
  295. package/dist/styles/constants.js.flow +0 -62
  296. package/dist/styles/global-constants.js.flow +0 -348
  297. package/dist/styles/global-styles.js.flow +0 -53
  298. package/dist/styles/media-queries.js.flow +0 -35
  299. package/dist/styles/shared.js.flow +0 -8
  300. package/dist/tex-wrangler.js.flow +0 -13
  301. package/dist/translation-linter.js.flow +0 -32
  302. package/dist/traversal.js.flow +0 -26
  303. package/dist/types.js.flow +0 -318
  304. package/dist/util/a11y.js.flow +0 -8
  305. package/dist/util/answer-types.js.flow +0 -49
  306. package/dist/util/colors.js.flow +0 -95
  307. package/dist/util/fix-passage-refs.js.flow +0 -8
  308. package/dist/util/geometry.js.flow +0 -37
  309. package/dist/util/graph-utils.js.flow +0 -9
  310. package/dist/util/graphie.js.flow +0 -8
  311. package/dist/util/interactive.js.flow +0 -11
  312. package/dist/util/katex-preprocess.js.flow +0 -12
  313. package/dist/util/math.js.flow +0 -62
  314. package/dist/util/mobile-native-utils.js.flow +0 -12
  315. package/dist/util/react-render.js.flow +0 -12
  316. package/dist/util/register-all-widgets-for-testing.js.flow +0 -7
  317. package/dist/util/scroll-utils.js.flow +0 -19
  318. package/dist/util/sizing-utils.js.flow +0 -20
  319. package/dist/util/tex.js.flow +0 -17
  320. package/dist/util/url-utils.js.flow +0 -11
  321. package/dist/util.graphie.js.flow +0 -14
  322. package/dist/util.js.flow +0 -319
  323. package/dist/version.js.flow +0 -17
  324. package/dist/widget-container.js.flow +0 -33
  325. package/dist/widgets/categorizer.js.flow +0 -70
  326. package/dist/widgets/cs-program.js.flow +0 -54
  327. package/dist/widgets/definition.js.flow +0 -57
  328. package/dist/widgets/dropdown.js.flow +0 -63
  329. package/dist/widgets/explanation.js.flow +0 -58
  330. package/dist/widgets/expression.js.flow +0 -116
  331. package/dist/widgets/graded-group-answer-bar.js.flow +0 -24
  332. package/dist/widgets/graded-group-set.js.flow +0 -65
  333. package/dist/widgets/graded-group.js.flow +0 -78
  334. package/dist/widgets/grapher/util.js.flow +0 -38
  335. package/dist/widgets/grapher.js.flow +0 -102
  336. package/dist/widgets/group.js.flow +0 -60
  337. package/dist/widgets/iframe.js.flow +0 -53
  338. package/dist/widgets/image.js.flow +0 -73
  339. package/dist/widgets/input-number.js.flow +0 -94
  340. package/dist/widgets/interaction/arrow-picker.js.flow +0 -21
  341. package/dist/widgets/interaction/color-picker.js.flow +0 -23
  342. package/dist/widgets/interaction/dash-picker.js.flow +0 -21
  343. package/dist/widgets/interaction/element-container.js.flow +0 -28
  344. package/dist/widgets/interaction.js.flow +0 -60
  345. package/dist/widgets/interactive-graph.js.flow +0 -239
  346. package/dist/widgets/label-image/answer-choices.js.flow +0 -55
  347. package/dist/widgets/label-image/marker.js.flow +0 -31
  348. package/dist/widgets/label-image/types.js.flow +0 -23
  349. package/dist/widgets/label-image.js.flow +0 -142
  350. package/dist/widgets/lights-puzzle.js.flow +0 -58
  351. package/dist/widgets/matcher.js.flow +0 -106
  352. package/dist/widgets/matrix.js.flow +0 -80
  353. package/dist/widgets/measurer.js.flow +0 -30
  354. package/dist/widgets/molecule/molecule-drawing.js.flow +0 -11
  355. package/dist/widgets/molecule/molecule-layout.js.flow +0 -96
  356. package/dist/widgets/molecule/smiles-parser.js.flow +0 -26
  357. package/dist/widgets/molecule.js.flow +0 -60
  358. package/dist/widgets/number-line.js.flow +0 -102
  359. package/dist/widgets/numeric-input.js.flow +0 -105
  360. package/dist/widgets/orderer.js.flow +0 -81
  361. package/dist/widgets/passage/passage-markdown.js.flow +0 -33
  362. package/dist/widgets/passage-ref-target.js.flow +0 -52
  363. package/dist/widgets/passage-ref.js.flow +0 -85
  364. package/dist/widgets/passage.js.flow +0 -157
  365. package/dist/widgets/plotter.js.flow +0 -112
  366. package/dist/widgets/radio/base-radio.js.flow +0 -50
  367. package/dist/widgets/radio/choice-a11y-text.js.flow +0 -14
  368. package/dist/widgets/radio/choice-icon/choice-icon.js.flow +0 -22
  369. package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +0 -16
  370. package/dist/widgets/radio/choice-icon/shared-styles.js.flow +0 -11
  371. package/dist/widgets/radio/choice-none-above.js.flow +0 -16
  372. package/dist/widgets/radio/choice.js.flow +0 -29
  373. package/dist/widgets/radio/choice.jsx.fixture.js.flow +0 -7
  374. package/dist/widgets/radio/focus-ring.js.flow +0 -22
  375. package/dist/widgets/radio/option-status.js.flow +0 -16
  376. package/dist/widgets/radio/util.js.flow +0 -12
  377. package/dist/widgets/radio/widget.js.flow +0 -80
  378. package/dist/widgets/radio.js.flow +0 -31
  379. package/dist/widgets/reaction-diagram.js.flow +0 -46
  380. package/dist/widgets/sequence.js.flow +0 -53
  381. package/dist/widgets/simulator.js.flow +0 -107
  382. package/dist/widgets/sorter.js.flow +0 -102
  383. package/dist/widgets/table.js.flow +0 -67
  384. package/dist/widgets/transformer.js.flow +0 -127
  385. package/dist/widgets/unit.js.flow +0 -93
  386. package/dist/widgets/video-transcript-link.js.flow +0 -15
  387. package/dist/widgets/video.js.flow +0 -57
  388. package/dist/widgets.js.flow +0 -108
  389. package/dist/zoom.js.flow +0 -7
  390. package/src/multi-items/item-types.js.flow +0 -55
@@ -1,17 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import * as React from "react";
8
- declare type Props = {|
9
- className?: string | null | void,
10
- translationIndex: number,
11
- paragraphIndex?: number,
12
- children?: React.Node,
13
- |};
14
- declare class QuestionParagraph extends React.Component<Props> {
15
- render(): React.Node;
16
- }
17
- declare export default typeof QuestionParagraph;
@@ -1,19 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- /**
8
- * Calculates whether a perseus item is renderable by a specific
9
- * perseus-item-data version.
10
- *
11
- * This is done inside of the perseus repo so that it can traverse
12
- * widget-specific data that might need to do a sub-traversal.
13
- * This supports widgets that contain renderers, such as the
14
- * group or sequence widgets.
15
- */
16
- declare export var isItemRenderableByVersion: (
17
- itemData: any,
18
- rendererContentVersion: any
19
- ) => boolean;
@@ -1,325 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import * as React from "react";
8
- import InteractionTracker from "./interaction-tracker";
9
- import TranslationLinter from "./translation-linter";
10
- import type { PerseusRenderer, PerseusWidgetOptions } from "./perseus-types";
11
- import type {
12
- APIOptions,
13
- APIOptionsWithDefaults,
14
- FilterCriterion,
15
- FocusPath,
16
- LinterContextProps,
17
- PerseusScore,
18
- WidgetInfo,
19
- WidgetProps,
20
- } from "./types";
21
- import "./styles/perseus-renderer.less";
22
- declare type WidgetState = {|
23
- isMobile?: boolean,
24
- inTable?: boolean,
25
- key?: number,
26
- paragraphIndex?: number,
27
- foundFullWidth?: boolean,
28
- baseElements?: any,
29
- |};
30
- declare type SetWidgetPropsFn = (
31
- id: string,
32
- newProps: any,
33
- cb: () => boolean,
34
- silent?: boolean
35
- ) => void;
36
- declare type WidgetUserInput = any;
37
- declare type SerializedState = {
38
- [id: string]: any,
39
- };
40
- export type Widget = {|
41
- focus: () =>
42
- | {|
43
- id: string,
44
- path: FocusPath,
45
- |}
46
- | boolean,
47
- getDOMNodeForPath: (path: FocusPath) => Element | Text | null,
48
- deselectIncorrectSelectedChoices?: () => void,
49
- restoreSerializedState: (props: any, callback: () => void) => any,
50
- getSerializedState?: () => SerializedState,
51
- getGrammarTypeForPath: (path: FocusPath) => string,
52
- blurInputPath?: (path: FocusPath) => null,
53
- focusInputPath?: (path: FocusPath) => null,
54
- getInputPaths?: () => $ReadOnlyArray<FocusPath>,
55
- setInputValue?: (
56
- path: FocusPath,
57
- newValue: string,
58
- focus: () => mixed
59
- ) => void,
60
- getUserInput?: () => WidgetUserInput | null | void,
61
- simpleValidate?: (
62
- options?: any,
63
- onOutputError?: (
64
- widgetId: any,
65
- value: string,
66
- message?: string | null | void
67
- ) => mixed | null | void
68
- ) => PerseusScore,
69
- showRationalesForCurrentlySelectedChoices?: (options?: any) => void,
70
- examples?: () => $ReadOnlyArray<string>,
71
- |};
72
- declare type Props = {|
73
- apiOptions?: APIOptions,
74
- alwaysUpdate?: boolean,
75
- findExternalWidgets: any,
76
- highlightedWidgets?: $ReadOnlyArray<any>,
77
- images: $PropertyType<PerseusRenderer, "images">,
78
- keypadElement?: any,
79
- onInteractWithWidget: (id: string) => void,
80
- onRender: (node?: any) => void,
81
- problemNum?: number,
82
- questionCompleted?: boolean,
83
- reviewMode?: boolean | null | void,
84
- content: $PropertyType<PerseusRenderer, "content">,
85
- serializedState?: any,
86
- onSerializedStateUpdated: (serializedState: {
87
- [key: string]: any,
88
- }) => mixed,
89
- linterContext: LinterContextProps,
90
- legacyPerseusLint?: $ReadOnlyArray<string>,
91
- widgets: $PropertyType<PerseusRenderer, "widgets">,
92
- |};
93
- declare type State = {|
94
- translationLintErrors: $ReadOnlyArray<string>,
95
- widgetInfo: $ReadOnly<{
96
- [id: string]: WidgetInfo | null | void,
97
- }>,
98
- widgetProps: $ReadOnly<{
99
- [id: string]: any | null | void,
100
- }>,
101
- jiptContent: any,
102
- lastUsedWidgetId: string | null | void,
103
- |};
104
- declare type Context = {|
105
- ...LinterContextProps,
106
- ...{|
107
- content: string,
108
- widgets: {
109
- [id: string]: any,
110
- },
111
- |},
112
- |};
113
- declare type DefaultProps = {|
114
- alwaysUpdate: $PropertyType<Props, "alwaysUpdate">,
115
- content: $PropertyType<Props, "content">,
116
- findExternalWidgets: $PropertyType<Props, "findExternalWidgets">,
117
- highlightedWidgets: $PropertyType<Props, "highlightedWidgets">,
118
- images: $PropertyType<Props, "images">,
119
- linterContext: $PropertyType<Props, "linterContext">,
120
- onInteractWithWidget: $PropertyType<Props, "onInteractWithWidget">,
121
- onRender: $PropertyType<Props, "onRender">,
122
- onSerializedStateUpdated: $PropertyType<Props, "onSerializedStateUpdated">,
123
- questionCompleted: $PropertyType<Props, "questionCompleted">,
124
- reviewMode: $PropertyType<Props, "reviewMode">,
125
- serializedState: $PropertyType<Props, "serializedState">,
126
- widgets: $PropertyType<Props, "widgets">,
127
- |};
128
- declare class Renderer extends React.Component<Props, State> {
129
- _currentFocus: FocusPath | null | void;
130
- _foundTextNodes: boolean;
131
- _interactionTrackers: {
132
- [id: string]: InteractionTracker,
133
- };
134
- _isMounted: boolean;
135
- _isTwoColumn: boolean;
136
- _translationLinter: TranslationLinter;
137
- lastRenderedMarkdown: React.Node;
138
- reuseMarkdown: boolean;
139
- translationIndex: number;
140
- widgetIds: Array<string>;
141
- static defaultProps: DefaultProps;
142
- constructor(props: Props, context: Context): this;
143
- componentDidMount(): void;
144
- UNSAFE_componentWillReceiveProps(nextProps: Props): void;
145
- shouldComponentUpdate(nextProps: Props, nextState: State): any | boolean;
146
- UNSAFE_componentWillUpdate(nextProps: Props, nextState: State): void;
147
- componentDidUpdate(prevProps: Props, prevState: State): void;
148
- componentWillUnmount(): void;
149
- getApiOptions: () => APIOptionsWithDefaults;
150
- _getInitialWidgetState: (props: Props) => {|
151
- widgetInfo: $PropertyType<State, "widgetInfo">,
152
- widgetProps: $PropertyType<State, "widgetProps">,
153
- |};
154
- _getAllWidgetsInfo: (props: Props) => {
155
- [key: string]: WidgetInfo,
156
- };
157
- _getAllWidgetsStartProps: (
158
- allWidgetInfo: {
159
- [key: string]: WidgetInfo,
160
- },
161
- props: Props
162
- ) => any;
163
- _getDefaultWidgetInfo: (widgetId: string) => any;
164
- _getWidgetInfo: (widgetId: string) => WidgetInfo;
165
- renderWidget: (
166
- impliedType: string,
167
- id: string,
168
- state: WidgetState
169
- ) => null | React.Node;
170
- getWidgetProps: (id: string) => WidgetProps<any, PerseusWidgetOptions>;
171
-
172
- /**
173
- * Serializes the questions state so it can be recovered.
174
- *
175
- * The return value of this function can be sent to the
176
- * `restoreSerializedState` method to restore this state.
177
- *
178
- * If an instance of widgetProps is passed in, it generates the serialized
179
- * state from that instead of the current widget props.
180
- */
181
- getSerializedState: (widgetProps?: any) => {
182
- [id: string]: any,
183
- };
184
- restoreSerializedState: (
185
- serializedState: SerializedState,
186
- callback?: () => void
187
- ) => void;
188
-
189
- /**
190
- * Tell each of the radio widgets to show rationales for each of the
191
- * currently selected choices inside of them. If the widget is correct, it
192
- * shows rationales for all of the choices. This also disables interaction
193
- * with the choices that we show rationales for.
194
- */
195
- showRationalesForCurrentlySelectedChoices: () => void;
196
-
197
- /**
198
- * Tells each of the radio widgets to deselect any of the incorrect choices
199
- * that are currently selected (leaving correct choices still selected).
200
- */
201
- deselectIncorrectSelectedChoices: () => void;
202
-
203
- /**
204
- * Allows inter-widget communication.
205
- *
206
- * This function yields this Renderer's own internal widgets, and it's used
207
- * in two places.
208
- *
209
- * First, we expose our own internal widgets to each other by giving them
210
- * a `findWidgets` function that, in turn, calls this function.
211
- *
212
- * Second, we expose our own internal widgets to this Renderer's parent,
213
- * by allowing it to call this function directly. That way, it can hook us
214
- * up to other Renderers on the page, by writing a `findExternalWidgets`
215
- * prop that calls each other Renderer's `findInternalWidgets` function.
216
- *
217
- * Takes a `filterCriterion` on which widgets to return.
218
- * `filterCriterion` can be one of:
219
- * * A string widget id
220
- * * A string widget type
221
- * * a function from (id, widgetInfo, widgetComponent) to true or false
222
- *
223
- * Returns an array of the matching widget components.
224
- *
225
- * If you need to do logic with more than the components, it is possible
226
- * to do such logic inside the filter, rather than on the result array.
227
- *
228
- * See the passage-ref widget for an example.
229
- *
230
- * "Remember: abilities are not inherently good or evil, it's how you use
231
- * them." ~ Kyle Katarn
232
- * Please use this one with caution.
233
- */
234
- findInternalWidgets: (
235
- filterCriterion: FilterCriterion
236
- ) => $ReadOnlyArray<Widget | null | void>;
237
-
238
- /**
239
- * Allows inter-widget communication.
240
- *
241
- * Includes both widgets internal to this Renderer, and external widgets
242
- * exposed by the `findExternalWidgets` prop.
243
- *
244
- * See `findInteralWidgets` for more information.
245
- */
246
- findWidgets: (filterCriterion: FilterCriterion) => any;
247
- getWidgetInstance: (id: string) => Widget | null | void;
248
- _onWidgetFocus: (id: string, focusPath?: $ReadOnlyArray<string>) => void;
249
- _onWidgetBlur: (id: string, blurPath: FocusPath) => void;
250
- getContent: (props: Props, state: State) => any;
251
- shouldRenderJiptPlaceholder: (props: Props, state: State) => boolean;
252
- replaceJiptContent: (content: string, paragraphIndex: number) => void;
253
- outputMarkdown: (ast: any, state: WidgetState) => React.Element<any>;
254
- outputNested: (ast: any, state: WidgetState) => React.Element<any>;
255
- outputNode: (
256
- node: any,
257
- nestedOutput: any,
258
- state: WidgetState
259
- ) =>
260
- | any
261
- | null
262
- | React.Element<"div">
263
- | React.Element<"span">
264
- | React.Node;
265
- handleRender: (prevProps: Props) => void;
266
- _setCurrentFocus: (path: FocusPath) => void;
267
- focus: () => boolean | null | void;
268
- getDOMNodeForPath: (path: FocusPath) => Element | Text | null | void;
269
- getGrammarTypeForPath: (path: FocusPath) => string | null | void;
270
- getInputPaths: () => $ReadOnlyArray<FocusPath>;
271
- focusPath: (path: FocusPath) => void;
272
- blurPath: (path: FocusPath) => void;
273
- blur: () => void;
274
- serialize: () => { [key: any]: any };
275
- emptyWidgets: () => any;
276
- _setWidgetProps: SetWidgetPropsFn;
277
- setInputValue: (
278
- path: FocusPath,
279
- newValue: string,
280
- focus: () => mixed
281
- ) => void;
282
-
283
- /**
284
- * Returns an array of the widget `.getUserInput()` results
285
- */
286
- getUserInput: () => $ReadOnlyArray<WidgetUserInput | null | void>;
287
-
288
- /**
289
- * Returns an array of all widget IDs in the order they occur in
290
- * the content.
291
- */
292
- getWidgetIds: () => $ReadOnlyArray<string>;
293
-
294
- /**
295
- * Returns the result of `.getUserInput()` for each widget, in
296
- * a map from widgetId to userInput.
297
- * NOTE(jeremy): This function is hauntingly similar to `getUserInput` with
298
- * the major difference being that this function returns a map of
299
- * `widgetID` => UserInput and `getUserInput` simply returns an array. It
300
- * would be trivial to map between the results of each of these functions,
301
- * so we should aim to remove one of these functions.
302
- */
303
- getUserInputForWidgets: () => {
304
- [widgetId: string]: WidgetUserInput | null | void,
305
- };
306
-
307
- /**
308
- * Returns an object mapping from widget ID to perseus-style score.
309
- * The keys of this object are the values of the array returned
310
- * from `getWidgetIds`.
311
- */
312
- scoreWidgets: () => {
313
- [widgetId: string]: PerseusScore,
314
- };
315
-
316
- /**
317
- * Grades the content.
318
- */
319
- score: () => PerseusScore;
320
- guessAndScore: () => [any, PerseusScore];
321
- examples: () => $ReadOnlyArray<string> | null | void;
322
- handletranslationLintErrors: (lintErrors: $ReadOnlyArray<string>) => void;
323
- render(): React.Node;
324
- }
325
- declare export default typeof Renderer;
@@ -1,132 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- import * as React from "react";
8
- import Renderer from "./renderer";
9
- import type { KeypadProps } from "./mixins/provide-keypad";
10
- import type { APIOptions, FocusPath } from "./types";
11
- import type { RendererInterface, KEScore } from "@khanacademy/perseus-core";
12
- declare type OwnProps = {|
13
- ...KeypadProps,
14
- ...{|
15
- apiOptions: APIOptions,
16
- hintsVisible?: number,
17
- item: {|
18
- hints: $ReadOnlyArray<any>,
19
- question: any,
20
- |},
21
- problemNum?: number,
22
- reviewMode?: boolean,
23
- keypadElement?: any | null | void,
24
- |},
25
- |};
26
- declare type HOCProps = {|
27
- onRendered: (isRendered: boolean) => void,
28
- |};
29
- declare type Props = {| ...OwnProps, ...HOCProps |};
30
- declare type DefaultProps = {|
31
- apiOptions: $PropertyType<Props, "apiOptions">,
32
- onRendered: $PropertyType<Props, "onRendered">,
33
- |};
34
- declare type State = {|
35
- questionCompleted: boolean,
36
- questionHighlightedWidgets: $ReadOnlyArray<any>,
37
- assetStatuses: {
38
- [assetKey: string]: boolean,
39
- },
40
- |};
41
- declare type SerializedState = {|
42
- question: any,
43
- hints: any,
44
- |};
45
- declare export class ServerItemRenderer
46
- extends React.Component<Props, State>
47
- implements RendererInterface
48
- {
49
- questionRenderer: Renderer;
50
- hintsRenderer: any;
51
- _currentFocus: FocusPath;
52
- _fullyRendered: boolean;
53
- blurTimeoutID: number | null | void;
54
- static defaultProps: DefaultProps;
55
- constructor(props: Props): this;
56
- componentDidMount(): void;
57
- UNSAFE_componentWillReceiveProps(nextProps: Props): void;
58
- componentDidUpdate(prevProps: Props, prevState: State): void;
59
- componentWillUnmount(): void;
60
- _handleFocusChange: (newFocus: FocusPath, oldFocus: FocusPath) => void;
61
- _setCurrentFocus(newFocus: FocusPath): void;
62
- _onRendererBlur(blurPath: FocusPath): void;
63
-
64
- /**
65
- * Accepts a question area widgetId, or an answer area widgetId of
66
- * the form "answer-input-number 1", or the string "answer-area"
67
- * for the whole answer area (if the answer area is a single widget).
68
- */
69
- _setWidgetProps(widgetId: string, newProps: Props, callback: any): void;
70
- setInputValue(path: FocusPath, newValue: any, focus: () => void): void;
71
- focusPath(path: FocusPath): void;
72
- blurPath(path: FocusPath): void;
73
- getDOMNodeForPath(path: FocusPath): Element | Text | null | void;
74
- getGrammarTypeForPath(path: FocusPath): string | null | void;
75
- getInputPaths(): $ReadOnlyArray<FocusPath>;
76
- handleInteractWithWidget: (widgetId: string) => void;
77
- focus(): boolean | null | void;
78
- blur(): void;
79
- getNumHints(): number;
80
-
81
- /**
82
- * Grades the item.
83
- */
84
- scoreInput(): KEScore;
85
-
86
- /**
87
- * Returns an array of all widget IDs in the order they occur in
88
- * the question content.
89
- */
90
- getWidgetIds(): $ReadOnlyArray<string>;
91
-
92
- /**
93
- * Returns an object mapping from widget ID to KE-style score.
94
- * The keys of this object are the values of the array returned
95
- * from `getWidgetIds`.
96
- */
97
- scoreWidgets(): {
98
- [key: string]: KEScore,
99
- };
100
-
101
- /**
102
- * Get a representation of the current state of the item.
103
- */
104
- getSerializedState(): SerializedState;
105
- restoreSerializedState(state: SerializedState, callback?: () => void): void;
106
- showRationalesForCurrentlySelectedChoices(): void;
107
- deselectIncorrectSelectedChoices(): void;
108
- setAssetStatus: (assetKey: string, status: boolean) => void;
109
- render(): React.Node;
110
- }
111
- declare var ref: React.AbstractComponent<
112
- $Diff<
113
- {|
114
- ...KeypadProps,
115
- ...{|
116
- apiOptions: APIOptions,
117
- hintsVisible?: number | void,
118
- item: {|
119
- hints: $ReadOnlyArray<any>,
120
- question: any,
121
- |},
122
- problemNum?: number | void,
123
- reviewMode?: boolean | void,
124
- keypadElement?: any | null | void,
125
- |},
126
- ...HOCProps,
127
- |},
128
- { onRendered: any }
129
- >,
130
- ServerItemRenderer
131
- >;
132
- declare export default typeof ref;
@@ -1,41 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- /**
8
- * An object tho both scans floating points to
9
- * determine the number of significant figures.
10
- * and can display a floating point using any number
11
- * of significant figures.
12
- * @param s A string representation of a floating point.
13
- */
14
- declare export class SignificantFigures {
15
- order: number;
16
- mantissa: string;
17
- positive: boolean;
18
- sigFigs: number;
19
- sigDecs: number;
20
- constructor(s: string): this;
21
- }
22
- /**
23
- * Format a floating point for display using the specified
24
- * number of significant figures and least significant decimal.
25
- * Scientific notation may used by this method if this
26
- * object is very small, very large, has many significant
27
- * figures, or the number of significant figures would be
28
- * ambiguous in the output if scientific notation were not
29
- * used.
30
- * @param f A floating point number that should be displayed
31
- * @param sigFigs desired number of significant figures (integer).
32
- * @param sigDecs the least significant decimal place (integer).
33
- * @param scientific true iff scientific notation should always be used.
34
- * @return a string of this object formatted correctly.
35
- */
36
- declare export function displaySigFigs(
37
- f: number,
38
- sigFigs: number,
39
- sigDecs: number,
40
- scientific: boolean
41
- ): string;
@@ -1,62 +0,0 @@
1
- /**
2
- * Flowtype definitions for data
3
- * Generated by Flowgen from a Typescript Definition
4
- * Flowgen v1.21.0
5
- * @flow
6
- */
7
- declare export var baseFontFamily: "'Proxima Nova',sans-serif";
8
- declare export var boldFontFamily: "'Proxima Nova Semibold',sans-serif";
9
- declare export var green: "#76A005";
10
- declare export var kaGreen: "#71B307";
11
- declare export var blue: "#1C758A";
12
- declare export var gray: "#AAAAAA";
13
- declare export var red: "#FFBABA";
14
- declare export var grayLight: "#AAAAAA";
15
- declare export var grayLighter: "#DDDDDD";
16
- declare export var learnstormBlue: "#4898FC";
17
- declare export var white: "#FFFFFF";
18
- declare export var gray98: "#FAFAFA";
19
- declare export var gray97: "#F6F7F7";
20
- declare export var gray95: "#F0F1F2";
21
- declare export var gray90: "#E3E5E6";
22
- declare export var gray85: "#D6D8DA";
23
- declare export var gray76: "#BABEC2";
24
- declare export var gray68: "#888D93";
25
- declare export var gray41: "#626569";
26
- declare export var gray25: "#3B3e40";
27
- declare export var gray17: "#21242c";
28
- declare export var black: "#000000";
29
- declare export var warning1: "#F86700";
30
- declare export var warning3: "#C75300";
31
- declare export var pureSmMin: "568px";
32
- declare export var pureMdMin: "768px";
33
- declare export var pureLgMin: "1024px";
34
- declare export var pureXlMin: "1280px";
35
- declare export var pureXsMax: "567px";
36
- declare export var pureSmMax: "767px";
37
- declare export var pureMdMax: "1023px";
38
- declare export var pureLgMax: "1279px";
39
- declare export var tableBackgroundAccent: "#F9F9F9";
40
- declare export var zIndexScratchPad: 1;
41
- declare export var zIndexAboveScratchpad: 2;
42
- declare export var zIndexInteractiveComponent: 3;
43
- declare export var zIndexCurrentlyDragging: 4;
44
- declare export var zIndexCalculator: 5;
45
- declare export var phoneMargin: 16;
46
- declare export var negativePhoneMargin: -16;
47
- declare export var hintBorderWidth: 4;
48
- declare export var baseUnitPx: 16;
49
- declare export var interactiveSizes: {|
50
- +defaultBoxSize: 400,
51
- +defaultBoxSizeSmall: 288,
52
- |};
53
- declare export var circleSize: 24;
54
- declare export var radioMarginWidth: 2;
55
- declare export var warningColor: "#f86700";
56
- declare export var warningColorHover: "#df5c00";
57
- declare export var warningColorActive: "#c75300";
58
- declare export var publishBlockingErrorColor: "#be2612";
59
- declare export var radioBorderColor: "#BABEC2";
60
- declare export var checkedColor: "#71B307";
61
- declare export var articleMaxWidthInPx: 688;
62
- declare export var articleMaxWidthTableInPx: 512;