@khanacademy/perseus 7.2.0 → 8.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 (409) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/dist/article-renderer.d.ts +26 -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/es/index.css +61 -61
  7. package/dist/es/index.js +1189 -1308
  8. package/dist/es/index.js.map +1 -1
  9. package/dist/hints-renderer.d.ts +1 -1
  10. package/dist/index.css +61 -61
  11. package/dist/index.js +1180 -1269
  12. package/dist/index.js.map +1 -1
  13. package/dist/mixins/provide-keypad.d.ts +15 -12
  14. package/dist/perseus-api.d.ts +1 -1
  15. package/dist/types.d.ts +3 -2
  16. package/dist/widgets/expression.d.ts +1 -1
  17. package/dist/widgets/graded-group.d.ts +1 -1
  18. package/dist/widgets/interactive-graph.d.ts +1 -1
  19. package/dist/widgets/plotter.d.ts +47 -13
  20. package/dist/widgets/sequence.d.ts +1 -1
  21. package/dist/widgets/table.d.ts +8 -1
  22. package/dist/widgets.d.ts +1 -1
  23. package/package.json +33 -33
  24. package/src/__testdata__/article-renderer.testdata.ts +3 -1
  25. package/src/__testdata__/item-renderer.testdata.ts +1 -1
  26. package/src/__testdata__/renderer.testdata.ts +1 -1
  27. package/src/__tests__/item-renderer.test.tsx +2 -2
  28. package/src/__tests__/mock-asset-loading-widget.tsx +1 -1
  29. package/src/__tests__/perseus-markdown.test.ts +17 -17
  30. package/src/__tests__/renderer-api.test.tsx +21 -21
  31. package/src/__tests__/renderer.test.tsx +13 -13
  32. package/src/__tests__/server-item-renderer.test.tsx +3 -3
  33. package/src/__tests__/tex-wrangler.test.ts +1 -1
  34. package/src/article-renderer.tsx +39 -38
  35. package/src/components/__stories__/image-loader.stories.tsx +1 -0
  36. package/src/components/__tests__/number-input.test.tsx +4 -4
  37. package/src/components/__tests__/sortable.test.tsx +2 -2
  38. package/src/components/fixed-to-responsive.tsx +1 -1
  39. package/src/components/graph.tsx +12 -11
  40. package/src/components/graphie-classes.ts +7 -7
  41. package/src/components/graphie.tsx +14 -14
  42. package/src/components/highlighting/highlightable-content.tsx +1 -1
  43. package/src/components/highlighting/ui/highlight-renderer.tsx +1 -1
  44. package/src/components/highlighting/ui/util.ts +2 -2
  45. package/src/components/highlighting/word-indexer.tsx +4 -4
  46. package/src/components/icon.tsx +2 -1
  47. package/src/components/image-loader.tsx +5 -4
  48. package/src/components/input-with-examples.tsx +2 -2
  49. package/src/components/lint.tsx +1 -1
  50. package/src/components/math-input.tsx +5 -5
  51. package/src/components/math-output.tsx +1 -1
  52. package/src/components/multi-button-group.tsx +1 -1
  53. package/src/components/number-input.tsx +11 -10
  54. package/src/components/prop-check-box.tsx +1 -1
  55. package/src/components/simple-keypad-input.tsx +4 -4
  56. package/src/components/sortable.tsx +43 -41
  57. package/src/components/svg-image.tsx +13 -12
  58. package/src/components/tex-buttons.tsx +5 -3
  59. package/src/components/text-input.tsx +9 -8
  60. package/src/components/text-list-editor.tsx +12 -11
  61. package/src/components/visibility-observer/create-visibility-observer.ts +1 -1
  62. package/src/components/visibility-observer/visibility-observer.tsx +2 -2
  63. package/src/components/zoomable-tex.tsx +3 -3
  64. package/src/components/zoomable.tsx +9 -8
  65. package/src/hint-renderer.tsx +3 -3
  66. package/src/hints-renderer.tsx +12 -11
  67. package/src/index.ts +1 -0
  68. package/src/init.ts +1 -1
  69. package/src/interaction-tracker.ts +4 -4
  70. package/src/interactive2/__tests__/movable-point.test.ts +1 -1
  71. package/src/interactive2/interactive-util.ts +6 -6
  72. package/src/interactive2/movable-helper-methods.ts +2 -2
  73. package/src/interactive2/movable-line-options.ts +37 -37
  74. package/src/interactive2/movable-line.ts +2 -2
  75. package/src/interactive2/movable-point-options.ts +29 -29
  76. package/src/interactive2/movable-point.tsx +2 -2
  77. package/src/interactive2/movable-polygon-options.ts +45 -45
  78. package/src/interactive2/movable-polygon.ts +2 -2
  79. package/src/interactive2/movable.ts +2 -2
  80. package/src/interactive2/objective_.ts +1 -1
  81. package/src/interactive2/wrapped-defaults.ts +2 -2
  82. package/src/interactive2/wrapped-ellipse.ts +9 -9
  83. package/src/interactive2/wrapped-line.ts +8 -8
  84. package/src/interactive2/wrapped-path.ts +5 -5
  85. package/src/item-renderer.tsx +6 -5
  86. package/src/mixins/changeable.ts +2 -2
  87. package/src/mixins/editor-jsonify.ts +1 -1
  88. package/src/mixins/provide-keypad.tsx +24 -37
  89. package/src/mixins/widget-jsonify-deprecated.ts +1 -1
  90. package/src/multi-items/__tests__/items.test.ts +1 -1
  91. package/src/multi-items/__tests__/multi-renderer.test.tsx +7 -7
  92. package/src/multi-items/__tests__/trees.test.ts +12 -12
  93. package/src/multi-items/item-types.ts +2 -2
  94. package/src/multi-items/items.ts +1 -1
  95. package/src/multi-items/multi-renderer.tsx +15 -14
  96. package/src/multi-items/prop-type-builders.ts +2 -2
  97. package/src/multi-items/tree-types.ts +4 -4
  98. package/src/multi-items/trees.ts +16 -16
  99. package/src/perseus-env.ts +2 -2
  100. package/src/perseus-markdown.tsx +5 -5
  101. package/src/renderer.tsx +39 -38
  102. package/src/server-item-renderer.tsx +6 -5
  103. package/src/sigfigs.ts +1 -1
  104. package/src/styles/articles.less +8 -4
  105. package/src/styles/perseus-renderer.less +47 -38
  106. package/src/styles/util.less +1 -1
  107. package/src/styles/variables.boostrap.less +158 -182
  108. package/src/styles/variables.less +20 -20
  109. package/src/styles/variables.shared.less +162 -168
  110. package/src/styles/widgets/categorizer.less +1 -2
  111. package/src/styles/widgets/expression.less +7 -4
  112. package/src/styles/widgets/grapher.less +2 -1
  113. package/src/styles/widgets/image.less +3 -2
  114. package/src/styles/widgets/interactive-graph.less +4 -2
  115. package/src/styles/widgets/label-image.less +2 -1
  116. package/src/styles/widgets/matrix.less +11 -7
  117. package/src/styles/widgets/orderer.less +2 -1
  118. package/src/styles/widgets/passage.less +2 -1
  119. package/src/styles/widgets/plotter.less +4 -3
  120. package/src/styles/widgets/radio.less +4 -2
  121. package/src/styles/widgets/sortable.less +1 -1
  122. package/src/styles/widgets/table.less +2 -1
  123. package/src/styles/widgets/transformer.less +2 -1
  124. package/src/styles/widgets/unit.less +2 -1
  125. package/src/traversal.ts +1 -1
  126. package/src/types.ts +3 -3
  127. package/src/util/answer-types.ts +14 -14
  128. package/src/util/geometry.ts +7 -7
  129. package/src/util/graphie.ts +32 -32
  130. package/src/util/interactive.ts +118 -118
  131. package/src/util/math.ts +4 -4
  132. package/src/util/react-render.tsx +1 -1
  133. package/src/util/scroll-utils.ts +2 -2
  134. package/src/util/tex.ts +3 -3
  135. package/src/util.ts +15 -15
  136. package/src/widget-container.tsx +1 -1
  137. package/src/widgets/__stories__/plotter.stories.tsx +27 -0
  138. package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +3 -3
  139. package/src/widgets/__testdata__/numeric-input.testdata.ts +1 -1
  140. package/src/widgets/__testdata__/plotter.testdata.ts +36 -0
  141. package/src/widgets/__tests__/__snapshots__/plotter.test.tsx.snap +863 -0
  142. package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +2 -2
  143. package/src/widgets/__tests__/expression.test.ts +4 -3
  144. package/src/widgets/__tests__/grapher.cypress.ts +32 -32
  145. package/src/widgets/__tests__/group.test.tsx +1 -1
  146. package/src/widgets/__tests__/interactive-graph.cypress.ts +40 -40
  147. package/src/widgets/__tests__/interactive-graph.test.ts +1 -1
  148. package/src/widgets/__tests__/numeric-input.test.ts +1 -1
  149. package/src/widgets/__tests__/passage.test.tsx +2 -2
  150. package/src/widgets/__tests__/plotter.test.tsx +66 -0
  151. package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
  152. package/src/widgets/__tests__/renderQuestion.tsx +3 -3
  153. package/src/widgets/categorizer.tsx +5 -4
  154. package/src/widgets/cs-program.tsx +2 -2
  155. package/src/widgets/dropdown.tsx +1 -1
  156. package/src/widgets/expression.tsx +10 -9
  157. package/src/widgets/graded-group-set.tsx +6 -5
  158. package/src/widgets/graded-group.tsx +19 -19
  159. package/src/widgets/grapher/util.tsx +6 -6
  160. package/src/widgets/grapher.tsx +10 -10
  161. package/src/widgets/group.tsx +3 -3
  162. package/src/widgets/iframe.tsx +2 -2
  163. package/src/widgets/image.tsx +1 -1
  164. package/src/widgets/input-number.tsx +4 -4
  165. package/src/widgets/interaction.tsx +78 -77
  166. package/src/widgets/interactive-graph.tsx +109 -107
  167. package/src/widgets/label-image/marker.tsx +3 -2
  168. package/src/widgets/label-image.test.ts +1 -1
  169. package/src/widgets/label-image.tsx +7 -7
  170. package/src/widgets/lights-puzzle.tsx +2 -2
  171. package/src/widgets/matcher.tsx +7 -6
  172. package/src/widgets/matrix.tsx +20 -20
  173. package/src/widgets/measurer.tsx +3 -3
  174. package/src/widgets/molecule/__tests__/layout.test.ts +4 -4
  175. package/src/widgets/molecule/__tests__/parser.test.ts +14 -14
  176. package/src/widgets/molecule/smiles-parser.ts +3 -3
  177. package/src/widgets/molecule.tsx +4 -4
  178. package/src/widgets/number-line.tsx +11 -11
  179. package/src/widgets/numeric-input.tsx +11 -11
  180. package/src/widgets/orderer.tsx +39 -38
  181. package/src/widgets/passage/__tests__/passage-markdown.test.ts +1 -1
  182. package/src/widgets/passage/passage-markdown.tsx +4 -4
  183. package/src/widgets/passage-ref-target.tsx +2 -1
  184. package/src/widgets/passage-ref.tsx +4 -6
  185. package/src/widgets/passage.tsx +11 -11
  186. package/src/widgets/plotter.tsx +117 -107
  187. package/src/widgets/radio/base-radio.tsx +12 -11
  188. package/src/widgets/radio/choice-icon/choice-icon.tsx +3 -2
  189. package/src/widgets/radio/choice.tsx +1 -1
  190. package/src/widgets/radio/option-status.tsx +1 -1
  191. package/src/widgets/radio/widget.tsx +6 -6
  192. package/src/widgets/radio.ts +1 -1
  193. package/src/widgets/reaction-diagram.tsx +8 -8
  194. package/src/widgets/sequence.tsx +2 -2
  195. package/src/widgets/simulator.tsx +14 -14
  196. package/src/widgets/sorter.tsx +5 -4
  197. package/src/widgets/table.tsx +8 -8
  198. package/src/widgets/transformer.tsx +93 -92
  199. package/src/widgets/unit.tsx +17 -17
  200. package/src/widgets/video-transcript-link.test.tsx +3 -3
  201. package/src/widgets/video-transcript-link.tsx +1 -1
  202. package/src/widgets/video.tsx +1 -1
  203. package/src/widgets.ts +5 -5
  204. package/src/zoom.ts +22 -22
  205. package/tsconfig-build.tsbuildinfo +1 -1
  206. package/dist/a11y.js.flow +0 -11
  207. package/dist/all-widgets.js.flow +0 -33
  208. package/dist/article-renderer.js.flow +0 -73
  209. package/dist/asset-context.js.flow +0 -15
  210. package/dist/basic-widgets.js.flow +0 -33
  211. package/dist/components/button-group.js.flow +0 -33
  212. package/dist/components/constants.js.flow +0 -13
  213. package/dist/components/fixed-to-responsive.js.flow +0 -34
  214. package/dist/components/graph.js.flow +0 -66
  215. package/dist/components/graphie-classes.js.flow +0 -19
  216. package/dist/components/graphie-movables.js.flow +0 -22
  217. package/dist/components/graphie.js.flow +0 -69
  218. package/dist/components/highlighting/highlightable-content.js.flow +0 -56
  219. package/dist/components/highlighting/highlights.js.flow +0 -54
  220. package/dist/components/highlighting/ranges.js.flow +0 -60
  221. package/dist/components/highlighting/types.js.flow +0 -70
  222. package/dist/components/highlighting/ui/highlight-renderer.js.flow +0 -43
  223. package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +0 -41
  224. package/dist/components/highlighting/ui/highlight-tooltip.js.flow +0 -22
  225. package/dist/components/highlighting/ui/highlighting-ui.js.flow +0 -30
  226. package/dist/components/highlighting/ui/selection-tracker.js.flow +0 -54
  227. package/dist/components/highlighting/ui/types.js.flow +0 -22
  228. package/dist/components/highlighting/ui/util.js.flow +0 -42
  229. package/dist/components/highlighting/word-indexer.js.flow +0 -21
  230. package/dist/components/hud.js.flow +0 -14
  231. package/dist/components/icon.js.flow +0 -31
  232. package/dist/components/image-loader.js.flow +0 -49
  233. package/dist/components/info-tip/info-tip.js.flow +0 -20
  234. package/dist/components/info-tip.js.flow +0 -18
  235. package/dist/components/inline-icon.js.flow +0 -39
  236. package/dist/components/input-with-examples.js.flow +0 -58
  237. package/dist/components/lint.js.flow +0 -58
  238. package/dist/components/math-input.js.flow +0 -49
  239. package/dist/components/math-output.js.flow +0 -33
  240. package/dist/components/multi-button-group.js.flow +0 -35
  241. package/dist/components/number-input.js.flow +0 -42
  242. package/dist/components/prop-check-box.js.flow +0 -8
  243. package/dist/components/range-input.js.flow +0 -20
  244. package/dist/components/simple-keypad-input.js.flow +0 -16
  245. package/dist/components/sortable.js.flow +0 -91
  246. package/dist/components/stub-tag-editor.js.flow +0 -18
  247. package/dist/components/svg-image.js.flow +0 -85
  248. package/dist/components/tex-buttons.js.flow +0 -26
  249. package/dist/components/tex.js.flow +0 -25
  250. package/dist/components/text-input.js.flow +0 -39
  251. package/dist/components/text-list-editor.js.flow +0 -22
  252. package/dist/components/tooltip.js.flow +0 -51
  253. package/dist/components/visibility-observer/create-visibility-observer.js.flow +0 -23
  254. package/dist/components/visibility-observer/get-scroll-parent.js.flow +0 -7
  255. package/dist/components/visibility-observer/visibility-observer.js.flow +0 -36
  256. package/dist/components/zoomable-tex.js.flow +0 -18
  257. package/dist/components/zoomable.js.flow +0 -70
  258. package/dist/components.js.flow +0 -22
  259. package/dist/definition-context.js.flow +0 -25
  260. package/dist/dependencies.js.flow +0 -9
  261. package/dist/error-boundary.js.flow +0 -19
  262. package/dist/extra-widgets.js.flow +0 -33
  263. package/dist/hint-renderer.js.flow +0 -32
  264. package/dist/hints-renderer.js.flow +0 -41
  265. package/dist/icon-paths.js.flow +0 -123
  266. package/dist/index.js.flow +0 -134
  267. package/dist/init.js.flow +0 -20
  268. package/dist/interaction-tracker.js.flow +0 -35
  269. package/dist/interactive2/interactive-util.js.flow +0 -50
  270. package/dist/interactive2/movable-helper-methods.js.flow +0 -15
  271. package/dist/interactive2/movable-line-options.js.flow +0 -44
  272. package/dist/interactive2/movable-line.js.flow +0 -8
  273. package/dist/interactive2/movable-point-options.js.flow +0 -44
  274. package/dist/interactive2/movable-point.js.flow +0 -8
  275. package/dist/interactive2/movable-polygon-options.js.flow +0 -47
  276. package/dist/interactive2/movable-polygon.js.flow +0 -8
  277. package/dist/interactive2/movable.js.flow +0 -8
  278. package/dist/interactive2/objective_.js.flow +0 -25
  279. package/dist/interactive2/types.js.flow +0 -8
  280. package/dist/interactive2/wrapped-defaults.js.flow +0 -11
  281. package/dist/interactive2/wrapped-ellipse.js.flow +0 -14
  282. package/dist/interactive2/wrapped-line.js.flow +0 -14
  283. package/dist/interactive2/wrapped-path.js.flow +0 -13
  284. package/dist/interactive2.js.flow +0 -16
  285. package/dist/item-renderer.js.flow +0 -132
  286. package/dist/item-version.js.flow +0 -11
  287. package/dist/jipt-paragraphs.js.flow +0 -14
  288. package/dist/loading-context.js.flow +0 -12
  289. package/dist/logging/log.js.flow +0 -62
  290. package/dist/mixins/changeable.js.flow +0 -33
  291. package/dist/mixins/editor-jsonify.js.flow +0 -10
  292. package/dist/mixins/provide-keypad.js.flow +0 -33
  293. package/dist/mixins/widget-jsonify-deprecated.js.flow +0 -11
  294. package/dist/mixins/widget-prop-denylist.js.flow +0 -20
  295. package/dist/multi-items/item-types.js.flow +0 -55
  296. package/dist/multi-items/items.js.flow +0 -66
  297. package/dist/multi-items/multi-renderer.js.flow +0 -213
  298. package/dist/multi-items/prop-type-builders.js.flow +0 -22
  299. package/dist/multi-items/shape-types.js.flow +0 -60
  300. package/dist/multi-items/shapes.js.flow +0 -25
  301. package/dist/multi-items/tree-types.js.flow +0 -45
  302. package/dist/multi-items/trees.js.flow +0 -147
  303. package/dist/multi-items.js.flow +0 -36
  304. package/dist/perseus-api.js.flow +0 -151
  305. package/dist/perseus-env.js.flow +0 -6
  306. package/dist/perseus-error.js.flow +0 -16
  307. package/dist/perseus-markdown.js.flow +0 -20
  308. package/dist/perseus-types.js.flow +0 -1041
  309. package/dist/question-paragraph.js.flow +0 -17
  310. package/dist/renderability.js.flow +0 -19
  311. package/dist/renderer.js.flow +0 -325
  312. package/dist/server-item-renderer.js.flow +0 -132
  313. package/dist/sigfigs.js.flow +0 -41
  314. package/dist/styles/constants.js.flow +0 -62
  315. package/dist/styles/global-constants.js.flow +0 -348
  316. package/dist/styles/global-styles.js.flow +0 -53
  317. package/dist/styles/media-queries.js.flow +0 -35
  318. package/dist/styles/shared.js.flow +0 -8
  319. package/dist/tex-wrangler.js.flow +0 -13
  320. package/dist/translation-linter.js.flow +0 -32
  321. package/dist/traversal.js.flow +0 -26
  322. package/dist/types.js.flow +0 -318
  323. package/dist/util/a11y.js.flow +0 -8
  324. package/dist/util/answer-types.js.flow +0 -49
  325. package/dist/util/colors.js.flow +0 -95
  326. package/dist/util/fix-passage-refs.js.flow +0 -8
  327. package/dist/util/geometry.js.flow +0 -37
  328. package/dist/util/graph-utils.js.flow +0 -9
  329. package/dist/util/graphie.js.flow +0 -8
  330. package/dist/util/interactive.js.flow +0 -11
  331. package/dist/util/katex-preprocess.js.flow +0 -12
  332. package/dist/util/math.js.flow +0 -62
  333. package/dist/util/mobile-native-utils.js.flow +0 -12
  334. package/dist/util/react-render.js.flow +0 -12
  335. package/dist/util/register-all-widgets-for-testing.js.flow +0 -7
  336. package/dist/util/scroll-utils.js.flow +0 -19
  337. package/dist/util/sizing-utils.js.flow +0 -20
  338. package/dist/util/tex.js.flow +0 -17
  339. package/dist/util/url-utils.js.flow +0 -11
  340. package/dist/util.graphie.js.flow +0 -14
  341. package/dist/util.js.flow +0 -319
  342. package/dist/version.js.flow +0 -17
  343. package/dist/widget-container.js.flow +0 -33
  344. package/dist/widgets/categorizer.js.flow +0 -70
  345. package/dist/widgets/cs-program.js.flow +0 -54
  346. package/dist/widgets/definition.js.flow +0 -57
  347. package/dist/widgets/dropdown.js.flow +0 -63
  348. package/dist/widgets/explanation.js.flow +0 -58
  349. package/dist/widgets/expression.js.flow +0 -116
  350. package/dist/widgets/graded-group-answer-bar.js.flow +0 -24
  351. package/dist/widgets/graded-group-set.js.flow +0 -65
  352. package/dist/widgets/graded-group.js.flow +0 -78
  353. package/dist/widgets/grapher/util.js.flow +0 -38
  354. package/dist/widgets/grapher.js.flow +0 -102
  355. package/dist/widgets/group.js.flow +0 -60
  356. package/dist/widgets/iframe.js.flow +0 -53
  357. package/dist/widgets/image.js.flow +0 -73
  358. package/dist/widgets/input-number.js.flow +0 -94
  359. package/dist/widgets/interaction/arrow-picker.js.flow +0 -21
  360. package/dist/widgets/interaction/color-picker.js.flow +0 -23
  361. package/dist/widgets/interaction/dash-picker.js.flow +0 -21
  362. package/dist/widgets/interaction/element-container.js.flow +0 -28
  363. package/dist/widgets/interaction.js.flow +0 -60
  364. package/dist/widgets/interactive-graph.js.flow +0 -239
  365. package/dist/widgets/label-image/answer-choices.js.flow +0 -55
  366. package/dist/widgets/label-image/marker.js.flow +0 -31
  367. package/dist/widgets/label-image/types.js.flow +0 -23
  368. package/dist/widgets/label-image.js.flow +0 -142
  369. package/dist/widgets/lights-puzzle.js.flow +0 -58
  370. package/dist/widgets/matcher.js.flow +0 -106
  371. package/dist/widgets/matrix.js.flow +0 -80
  372. package/dist/widgets/measurer.js.flow +0 -30
  373. package/dist/widgets/molecule/molecule-drawing.js.flow +0 -11
  374. package/dist/widgets/molecule/molecule-layout.js.flow +0 -96
  375. package/dist/widgets/molecule/smiles-parser.js.flow +0 -26
  376. package/dist/widgets/molecule.js.flow +0 -60
  377. package/dist/widgets/number-line.js.flow +0 -102
  378. package/dist/widgets/numeric-input.js.flow +0 -105
  379. package/dist/widgets/orderer.js.flow +0 -81
  380. package/dist/widgets/passage/passage-markdown.js.flow +0 -33
  381. package/dist/widgets/passage-ref-target.js.flow +0 -52
  382. package/dist/widgets/passage-ref.js.flow +0 -85
  383. package/dist/widgets/passage.js.flow +0 -157
  384. package/dist/widgets/plotter.js.flow +0 -78
  385. package/dist/widgets/radio/base-radio.js.flow +0 -50
  386. package/dist/widgets/radio/choice-a11y-text.js.flow +0 -14
  387. package/dist/widgets/radio/choice-icon/choice-icon.js.flow +0 -22
  388. package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +0 -16
  389. package/dist/widgets/radio/choice-icon/shared-styles.js.flow +0 -11
  390. package/dist/widgets/radio/choice-none-above.js.flow +0 -16
  391. package/dist/widgets/radio/choice.js.flow +0 -29
  392. package/dist/widgets/radio/choice.jsx.fixture.js.flow +0 -7
  393. package/dist/widgets/radio/focus-ring.js.flow +0 -22
  394. package/dist/widgets/radio/option-status.js.flow +0 -16
  395. package/dist/widgets/radio/util.js.flow +0 -12
  396. package/dist/widgets/radio/widget.js.flow +0 -80
  397. package/dist/widgets/radio.js.flow +0 -31
  398. package/dist/widgets/reaction-diagram.js.flow +0 -46
  399. package/dist/widgets/sequence.js.flow +0 -53
  400. package/dist/widgets/simulator.js.flow +0 -107
  401. package/dist/widgets/sorter.js.flow +0 -102
  402. package/dist/widgets/table.js.flow +0 -67
  403. package/dist/widgets/transformer.js.flow +0 -127
  404. package/dist/widgets/unit.js.flow +0 -93
  405. package/dist/widgets/video-transcript-link.js.flow +0 -15
  406. package/dist/widgets/video.js.flow +0 -57
  407. package/dist/widgets.js.flow +0 -108
  408. package/dist/zoom.js.flow +0 -7
  409. package/src/multi-items/item-types.js.flow +0 -55
@@ -1,213 +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 { Widget } from "../renderer";
10
- import type { APIOptions, FilterCriterion } from "../types";
11
- import type { Item, ContentNode, HintNode, TagsNode } from "./item-types";
12
- import type { Shape, ArrayShape } from "./shape-types";
13
- import type { Tree } from "./tree-types";
14
- import type { TreeMapper, ContentMapper, HintMapper, Path } from "./trees";
15
- declare type Hint = any;
16
- declare type Score = any;
17
- declare type SerializedState = any;
18
- declare type RendererProps = React.ElementConfig<typeof Renderer>;
19
- declare type ContentRendererElement = React.Element<any>;
20
- declare type HintRendererElement = React.Element<any>;
21
- declare type ContentRendererData = {|
22
- makeRenderer: () => ContentRendererElement,
23
- ref: Renderer | null | void,
24
- |};
25
- declare type FindWidgetsFunc = (
26
- criterion: FilterCriterion
27
- ) => $ReadOnlyArray<Widget | null | void>;
28
- declare type HintRendererData = {|
29
- makeRenderer: () => HintRendererElement,
30
- findExternalWidgets: FindWidgetsFunc | null | void,
31
- ref: null,
32
- hint: Hint,
33
- |};
34
- declare type RendererData = ContentRendererData | HintRendererData;
35
- declare type RendererDataTree = Tree<
36
- ContentRendererData,
37
- HintRendererData,
38
- null
39
- >;
40
- /**
41
- * TODO(somewhatabstract, JIRA-XXXX):
42
- * Some usage of this type somewhere is causing TypeScript to believe that these
43
- * elements should be components. Don't know where that is, to fix it up
44
- * properly. In reality, these types are just too hard to use and aren't
45
- * really helping us out as I now have to suppress this rather than
46
- * get value from the type. :(
47
- */
48
- declare type RendererTree = Tree<
49
- ContentRendererElement,
50
- HintRendererElement,
51
- null
52
- >;
53
- declare type ScoreTree = Tree<Score, null, null>;
54
- declare type SerializedStateTree = Tree<SerializedState, null, null>;
55
- declare type Props = {|
56
- item: Item,
57
- shape: Shape,
58
- children: (tree: {|
59
- renderers: RendererTree,
60
- |}) => React.Element<any>,
61
- serializedState?: SerializedStateTree | null | void,
62
- onSerializedStateUpdated?: (state: SerializedStateTree) => void,
63
- onInteractWithWidget?: (id: string) => void,
64
- apiOptions?: APIOptions,
65
- reviewMode?: boolean | null | void,
66
- |};
67
- declare type State = {|
68
- rendererDataTree: RendererDataTree | null | void,
69
- renderError: Error | null | void,
70
- |};
71
- declare class MultiRenderer extends React.Component<Props, State> {
72
- rendererDataTreeMapper: TreeMapper<
73
- ContentNode,
74
- ContentRendererData,
75
- HintNode,
76
- HintRendererData,
77
- TagsNode,
78
- null
79
- >;
80
- getRenderersMapper: TreeMapper<
81
- ContentRendererData,
82
- ContentRendererElement,
83
- HintRendererData,
84
- HintRendererElement,
85
- null,
86
- null
87
- >;
88
- constructor(props: Props): this;
89
- UNSAFE_componentWillReceiveProps(nextProps: Props): void;
90
-
91
- /**
92
- * Attempt to build a State that includes a renderer tree corresponding to
93
- * the item provided in props. On error, return a state with `renderError`
94
- * set instead.
95
- */
96
- _tryMakeRendererState(props: Props): State;
97
- _handleSerializedStateUpdated: (path: Path, newState?: any) => void;
98
-
99
- /**
100
- * Props that aren't directly used by the MultiRenderer are delegated to
101
- * the underlying Renderers.
102
- */
103
- _getRendererProps(): RendererProps;
104
-
105
- /**
106
- * Construct a Renderer and a ref placeholder for the given ContentNode.
107
- */
108
- _makeContentRendererData(
109
- content: ContentNode,
110
- path: Path
111
- ): ContentRendererData;
112
-
113
- /**
114
- * Construct a Renderer for the given HintNode, and keep track of the hint
115
- * itself for future use, too.
116
- */
117
- _makeHintRendererData(hint: HintNode): HintRendererData;
118
-
119
- /**
120
- * Construct a tree of interconnected RendererDatas, corresponding to the
121
- * given item. Called in `_tryMakeRendererState`, in order to store this
122
- * tree in the component state.
123
- */
124
- _makeRendererDataTree(item: Item, shape: Shape): RendererDataTree;
125
-
126
- /**
127
- * Return all widgets that meet the given criterion, from all Renderers
128
- * except the Renderer that triggered this call.
129
- *
130
- * This function is provided to each Renderer's `findExternalWidgets` prop,
131
- * which enables widgets in different Renderers to discover each other and
132
- * communicate.
133
- */
134
- _findWidgets(
135
- callingData: RendererData,
136
- filterCriterion: FilterCriterion
137
- ): $ReadOnlyArray<Widget | null | void>;
138
-
139
- /**
140
- * Copy the renderer tree, apply the given transformation to the leaf nodes
141
- * and the optional given transformation to the array nodes, and return the
142
- * result.
143
- *
144
- * Used to provide structured data to the call site (the Renderer tree on
145
- * `render`, the Score tree on `getScores`, etc.), and to traverse the
146
- * renderer tree even when we disregard the output (like in
147
- * `_findWidgets`).
148
- */
149
- _mapRenderers<O>(leafMapper: {|
150
- ...ContentMapper<RendererData, O>,
151
- ...HintMapper<RendererData, O>,
152
- |}): Tree<O, O, null> | null | void;
153
- _scoreFromRef(ref?: Renderer | null): Score;
154
-
155
- /**
156
- * Return a tree in the shape of the multi-item, with scores at each of
157
- * the content nodes and `null` at the other leaf nodes.
158
- */
159
- getScores(): ScoreTree;
160
-
161
- /**
162
- * Return a single composite score for all rendered content nodes.
163
- * The `guess` is a tree in the shape of the multi-item, with an individual
164
- * guess at each content node and `null` at the other leaf nodes.
165
- */
166
- score(): Score;
167
-
168
- /**
169
- * Return a tree in the shape of the multi-item, with serialized state at
170
- * each of the content nodes and `null` at the other leaf nodes.
171
- *
172
- * If the lastSerializedState argument is supplied, this function will fill
173
- * in the state of not-currently-rendered content and hint nodes with the
174
- * values from the previous serialized state. If no lastSerializedState is
175
- * supplied, `null` will be returned for not-currently-rendered content and
176
- * hint nodes.
177
- */
178
- _getSerializedState(
179
- lastSerializedState?: SerializedStateTree
180
- ): SerializedStateTree;
181
-
182
- /**
183
- * Given a tree in the shape of the multi-item, with serialized state at
184
- * each of the content nodes, restore each state to the corresponding
185
- * renderer if currently mounted.
186
- */
187
- restoreSerializedState(
188
- serializedState: SerializedState,
189
- callback?: () => any
190
- ): void;
191
-
192
- /**
193
- * Given an array of renderers, if it happens to be an array of *hint*
194
- * renderers, then attach a `firstN` method to the array, which allows the
195
- * layout to render the hints together in one HintsRenderer.
196
- */
197
- _annotateRendererArray(
198
- renderers: $ReadOnlyArray<Renderer>,
199
- rendererDatas: $ReadOnlyArray<RendererData>,
200
- shape: ArrayShape
201
- ): $ReadOnlyArray<Renderer>;
202
-
203
- /**
204
- * Return a tree in the shape of the multi-item, with a Renderer at each
205
- * content node and a HintRenderer at each hint node.
206
- *
207
- * This is generated by running each of the `makeRenderer` functions at the
208
- * leaf nodes.
209
- */
210
- _getRenderers(): RendererTree;
211
- render(): React.Node;
212
- }
213
- declare export default typeof MultiRenderer;
@@ -1,22 +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 type { Shape } from "./shape-types";
8
-
9
- /**
10
- * A recursive PropType that accepts Shape objects, and rejects other objects.
11
- *
12
- * Usage: `propTypes: {shape: shapePropType}`.
13
- */
14
- declare export function shapePropType(...args: $ReadOnlyArray<any>): any;
15
-
16
- /**
17
- * Return a PropType that accepts Items of the given shape, and rejects other
18
- * objects.
19
- *
20
- * Usage: `propTypes: {item: buildPropTypeForShape(myShape)}`
21
- */
22
- declare export function buildPropTypeForShape(shape: Shape): any;
@@ -1,60 +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
- * Type definitions for multi-item shapes.
9
- *
10
- * A shape is an object that serves as a runtime type declaration: it specifies
11
- * a tree structure for a particular class of multi-item.
12
- *
13
- * We use shapes instead static compile-time typing because the CMS needs to
14
- * understand the shape of our content library's multi-items at runtime, and
15
- * it's not always possible to infer the full shape from an example multi-item.
16
- *
17
- * Shapes also enable us to traverse a multi-item-shaped tree with confidence,
18
- * even when we can't infer the shape from the tree alone.
19
- *
20
- * We *could* go all-in on a more general library to make certain types
21
- * runtime-inspectable, in order to DRY some things up, but that's probably a
22
- * big ol' infrastructural magic mess, and the narrower scope of Shapes makes
23
- * it easier to be confident that we've covered all cases rather than having to
24
- * deal with all possible Javascript types.
25
- */
26
- export type ContentShape = {|
27
- type: "content",
28
- |};
29
- export type HintShape = {|
30
- type: "hint",
31
- |};
32
- export type TagsShape = {|
33
- type: "tags",
34
- |};
35
- export type ArrayShape = {|
36
- type: "array",
37
-
38
- /**
39
- * Each element of an ArrayNode has the same shape, which is specified by
40
- * the `elementShape` property.
41
- */
42
- elementShape: Shape,
43
- |};
44
- export type ObjectShape = {|
45
- type: "object",
46
-
47
- /**
48
- * Each property of an ObjectNode has its own shape, which is specified
49
- * under the corresponding key in the `shape` property.
50
- */
51
- shape: {
52
- [k: string]: Shape,
53
- },
54
- |};
55
- export type Shape =
56
- | ContentShape
57
- | HintShape
58
- | TagsShape
59
- | ArrayShape
60
- | ObjectShape;
@@ -1,25 +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 type {
8
- Shape,
9
- ContentShape,
10
- HintShape,
11
- TagsShape,
12
- ArrayShape,
13
- ObjectShape,
14
- } from "./shape-types";
15
- declare var _default: {|
16
- content: ContentShape,
17
- hint: HintShape,
18
- hints: ArrayShape,
19
- tags: TagsShape,
20
- arrayOf: (elementShape: Shape) => ArrayShape,
21
- shape: (shape: {
22
- [k: string]: Shape,
23
- }) => ObjectShape,
24
- |};
25
- declare export default typeof _default;
@@ -1,45 +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
- * Type definitions for generic trees that are shaped like multi-items.
9
- *
10
- * Multi-items are trees! But we also often have other trees that are shaped
11
- * like multi-items - for example, if we map a multi-item tree into a tree of
12
- * renderer info and state, and then map that again into a tree of just the
13
- * renderer nodes, like we do in MultiRenderer.
14
- *
15
- * Therefore, we provide the type Tree<C, H>, which represents a tree that's
16
- * shaped like a multi-item, but the data that lives at each type of leaf could
17
- * be anything.
18
- *
19
- * So, in a Tree<C, H>, content leaf nodes have type C, and hint leaf nodes
20
- * have type H. An ItemTree is a Tree<ContentNode, HintNode>.
21
- *
22
- * That is, we still preserve the distinction between node types, and thereby
23
- * enforce the Tree's adherence to some multi-item Shape, but we're flexible
24
- * about exactly what type of data the tree contains at its leaves.
25
- *
26
- * This enables us to write generic tree-traversal and tree-mapping functions,
27
- * as you'll see in trees.js.
28
- */
29
- export type ArrayNode<C, H, T> = Tree<C, H, T>;
30
- export type ObjectNode<C, H, T> = {
31
- [k: string]: Tree<C, H, T>,
32
- };
33
- /**
34
- * TODO(somewhatabstract, JIRA-XXXX):
35
- * We should ditch this type or create some helpers for working with it.
36
- * As it stands, consumers have to check each node's type before using it
37
- * in order to ensure that TypeScript can track its refinement and appropriate use.
38
- * It's messy.
39
- */
40
- export type Tree<C, H, T> =
41
- | C
42
- | H
43
- | T
44
- | ArrayNode<C, H, T>
45
- | ObjectNode<C, H, T>;
@@ -1,147 +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 type {
8
- Shape,
9
- ContentShape,
10
- HintShape,
11
- TagsShape,
12
- ArrayShape,
13
- } from "./shape-types";
14
- import type { Tree, ArrayNode } from "./tree-types";
15
-
16
- /**
17
- * The sequence of edges that lead to a particular node in a Tree.
18
- * Elements can be `string` to correspond to an ObjectNode key, or `number` to
19
- * correspond to an ArrayNode index.
20
- */
21
- export type Path = $ReadOnlyArray<string | number>;
22
- /**
23
- * These are function interfaces for mapping over various types of tree nodes.
24
- *
25
- * ArrayMapper is a bit more complicated than the leaf node mappers. It's
26
- * executed in the context of a `mapTree` call, after we've finished mapping
27
- * its child nodes, so the function has access to both the resulting array
28
- * (with mapped elements) and the original array (with the original untouched
29
- * elements).
30
- *
31
- * The ArrayMapper then has the opportunity to apply a final transformation to
32
- * the resulting array, like filtering certain elements or (in the hacky
33
- * MultiRenderer case) attaching a `renderHints` method to arrays of hint
34
- * renderers :)
35
- *
36
- * This is why `TreeMapper#setArrayMapper` must be called last: ArrayMapper's
37
- * types depend on the ContentMapper and HintMapper's types. And, since you can
38
- * only specify one mapper at a time in this builder interface (which is
39
- * necessary to provide default mappers in a type-safe way), you need your
40
- * dependencies to already be in place by the time you call `setArrayMapper`.
41
- * Otherwise, we'd have to set the ArrayMapper and *hope* that you *eventually*
42
- * provide a compatible ContentMapper and HintMapper, which is difficult to
43
- * prove at compile time.
44
- *
45
- * There's no ObjectMapper here, but not for any particular reason. We just
46
- * don't have a use case for it yet, so we haven't built it yet.
47
- */
48
- export type ContentMapper<CI, CO> = (
49
- content: CI,
50
- shape: ContentShape,
51
- path: Path
52
- ) => CO;
53
- export type HintMapper<HI, HO> = (hint: HI, shape: HintShape, path: Path) => HO;
54
- export type TagsMapper<TI, TO> = (tag: TI, shape: TagsShape, path: Path) => TO;
55
- export type ArrayMapper<CI, CO, HI, HO, TI, TO> = (
56
- mappedArray: ArrayNode<CO, HO, TO>,
57
- originalArray: ArrayNode<CI, HI, TI>,
58
- shape: ArrayShape,
59
- path: Path
60
- ) => ArrayNode<CO, HO, TO>;
61
- /**
62
- * A TreeMapper is a collection of node mappers, which, together, compose the
63
- * behavior for mapping over an entire tree.
64
- *
65
- * This serves as the interface for the two TreeMapper classes, including both
66
- * the internal mapper properties that we care about, and the `mapTree`
67
- * function that the call site will use.
68
- */
69
- export interface TreeMapper<CI, CO, HI, HO, TI, TO> {
70
- content: ContentMapper<CI, CO>;
71
- hint: HintMapper<HI, HO>;
72
- tags: TagsMapper<TI, TO>;
73
- array: ArrayMapper<CI, CO, HI, HO, TI, TO>;
74
- mapTree(tree: Tree<CI, HI, TI>, shape: Shape): Tree<CO, HO, TO>;
75
- }
76
- /**
77
- * This is a TreeMapper that only has mappers specified for its leaf nodes; its
78
- * array mapper is the identity function.
79
- *
80
- * This is the TreeMapper initially returned by `buildMapper`. It allows you to
81
- * change the types of your ContentMapper and HintMapper, which is safe because
82
- * none of the other mappers that depend on those types (aka ArrayMapper) have
83
- * been specified yet. (Or, more specifically, the ArrayMapper is currently
84
- * `identity`, which can trivially vary with the ContentMapper and HintMapper's
85
- * types.)
86
- *
87
- * Once you call `setArrayMapper`, however, we move to the other class:
88
- * TreeMapperForLeavesAndCollections.
89
- */
90
- declare class TreeMapperJustForLeaves<CI, CO, HI, HO, TI, TO> {
91
- content: ContentMapper<CI, CO>;
92
- hint: HintMapper<HI, HO>;
93
- tags: TagsMapper<TI, TO>;
94
- array: ArrayMapper<CI, CO, HI, HO, TI, TO>;
95
- constructor(
96
- content: ContentMapper<CI, CO>,
97
- hint: HintMapper<HI, HO>,
98
- tags: TagsMapper<TI, TO>
99
- ): this;
100
- setContentMapper<CI2, CO2>(
101
- newContentMapper: ContentMapper<CI2, CO2>
102
- ): TreeMapperJustForLeaves<CI2, CO2, HI, HO, TI, TO>;
103
- setHintMapper<HI2, HO2>(
104
- newHintMapper: HintMapper<HI2, HO2>
105
- ): TreeMapperJustForLeaves<CI, CO, HI2, HO2, TI, TO>;
106
- setTagsMapper<TI2, TO2>(
107
- newTagsMapper: TagsMapper<TI2, TO2>
108
- ): TreeMapperJustForLeaves<CI, CO, HI, HO, TI2, TO2>;
109
- setArrayMapper(
110
- newArrayMapper: ArrayMapper<CI, CO, HI, HO, TI, TO>
111
- ): TreeMapperForLeavesAndCollections<CI, CO, HI, HO, TI, TO>;
112
- mapTree(tree: Tree<CI, HI, TI>, shape: Shape): Tree<CO, HO, TO>;
113
- }
114
- /**
115
- * This is a TreeMapper that already has an ArrayMapper specified, so its
116
- * ContentMapper and HintMapper are now locked in.
117
- */
118
- declare class TreeMapperForLeavesAndCollections<CI, CO, HI, HO, TI, TO> {
119
- content: ContentMapper<CI, CO>;
120
- hint: HintMapper<HI, HO>;
121
- tags: TagsMapper<TI, TO>;
122
- array: ArrayMapper<CI, CO, HI, HO, TI, TO>;
123
- constructor(
124
- content: ContentMapper<CI, CO>,
125
- hint: HintMapper<HI, HO>,
126
- tags: TagsMapper<TI, TO>,
127
- array: ArrayMapper<CI, CO, HI, HO, TI, TO>
128
- ): this;
129
- setArrayMapper(
130
- newArrayMapper: ArrayMapper<CI, CO, HI, HO, TI, TO>
131
- ): TreeMapperForLeavesAndCollections<CI, CO, HI, HO, TI, TO>;
132
- mapTree(tree: Tree<CI, HI, TI>, shape: Shape): Tree<CO, HO, TO>;
133
- }
134
- /**
135
- * Return a new TreeMapper that will perform a no-op transformation on an input
136
- * tree. To make it useful, chain any combination of `setContentMapper`,
137
- * `setHintMapper`, `setTagMapper`, and `setArrayMapper` to specify
138
- * transformations for the individual node types.
139
- */
140
- declare export function buildMapper<
141
- C,
142
- C,
143
- H,
144
- H,
145
- T,
146
- T
147
- >(): TreeMapperJustForLeaves<C, C, H, H, T, T>;
@@ -1,36 +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 $Flowgen$Import$_2e_ from ".";
8
- import {
9
- buildEmptyItemForShape,
10
- findContentNodesInItem,
11
- findHintNodesInItem,
12
- inferItemShape,
13
- } from "./multi-items/items";
14
- import MultiRenderer from "./multi-items/multi-renderer";
15
- import { buildPropTypeForShape } from "./multi-items/prop-type-builders";
16
- declare var _default: {|
17
- MultiRenderer: typeof MultiRenderer,
18
- shapes: {|
19
- content: $Flowgen$Import$_2e_.ContentShape,
20
- hint: $Flowgen$Import$_2e_.HintShape,
21
- hints: $Flowgen$Import$_2e_.ArrayShape,
22
- tags: $Flowgen$Import$_2e_.TagsShape,
23
- arrayOf: (
24
- elementShape: $Flowgen$Import$_2e_.Shape
25
- ) => $Flowgen$Import$_2e_.ArrayShape,
26
- shape: (shape: {
27
- [k: string]: $Flowgen$Import$_2e_.Shape,
28
- }) => $Flowgen$Import$_2e_.ObjectShape,
29
- |},
30
- buildPropTypeForShape: typeof buildPropTypeForShape,
31
- buildEmptyItemForShape: typeof buildEmptyItemForShape,
32
- findContentNodesInItem: typeof findContentNodesInItem,
33
- findHintNodesInItem: typeof findHintNodesInItem,
34
- inferItemShape: typeof inferItemShape,
35
- |};
36
- declare export default typeof _default;