@khanacademy/perseus-editor 1.1.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/.babelrc.js +1 -1
  2. package/.eslintrc.js +1 -0
  3. package/CHANGELOG.md +27 -0
  4. package/dist/all-editors.d.ts +2 -0
  5. package/dist/all-editors.js.flow +8 -0
  6. package/dist/all-widgets.d.ts +22 -0
  7. package/dist/all-widgets.js.flow +34 -0
  8. package/dist/article-editor.d.ts +59 -0
  9. package/dist/article-editor.js.flow +72 -0
  10. package/dist/components/blur-input.d.ts +19 -0
  11. package/dist/components/blur-input.js.flow +25 -0
  12. package/dist/components/checkbox.d.ts +20 -0
  13. package/dist/components/checkbox.js.flow +26 -0
  14. package/dist/components/device-framer.d.ts +15 -0
  15. package/dist/components/device-framer.js.flow +20 -0
  16. package/dist/components/drag-target.d.ts +2 -0
  17. package/dist/components/drag-target.js.flow +8 -0
  18. package/dist/components/dropdown-option.d.ts +35 -0
  19. package/dist/components/dropdown-option.js.flow +49 -0
  20. package/dist/components/form-wrapped-text-field.d.ts +48 -0
  21. package/dist/components/form-wrapped-text-field.js.flow +48 -0
  22. package/dist/components/graph-settings.d.ts +2 -0
  23. package/dist/components/graph-settings.js.flow +8 -0
  24. package/dist/components/hover-behavior.d.ts +85 -0
  25. package/dist/components/hover-behavior.js.flow +48 -0
  26. package/dist/components/json-editor.d.ts +2 -0
  27. package/dist/components/json-editor.js.flow +8 -0
  28. package/dist/components/link.d.ts +41 -0
  29. package/dist/components/link.js.flow +50 -0
  30. package/dist/components/simple-button.d.ts +16 -0
  31. package/dist/components/simple-button.js.flow +18 -0
  32. package/dist/components/sortable.d.ts +2 -0
  33. package/dist/components/sortable.js.flow +8 -0
  34. package/dist/components/util.d.ts +1 -0
  35. package/dist/components/util.js.flow +9 -0
  36. package/dist/components/viewport-resizer.d.ts +16 -0
  37. package/dist/components/viewport-resizer.js.flow +22 -0
  38. package/dist/diffs/__stories__/perseus-diff-wrapper.d.ts +5 -0
  39. package/dist/diffs/__stories__/perseus-diff-wrapper.js.flow +11 -0
  40. package/dist/diffs/article-diff.d.ts +50 -0
  41. package/dist/diffs/article-diff.js.flow +71 -0
  42. package/dist/diffs/item-diff.d.ts +23 -0
  43. package/dist/diffs/item-diff.js.flow +41 -0
  44. package/dist/diffs/renderer-diff.d.ts +22 -0
  45. package/dist/diffs/renderer-diff.js.flow +25 -0
  46. package/dist/diffs/split-diff.d.ts +2 -0
  47. package/dist/diffs/split-diff.js.flow +8 -0
  48. package/dist/diffs/string-array-diff.d.ts +2 -0
  49. package/dist/diffs/string-array-diff.js.flow +11 -0
  50. package/dist/diffs/structured-item-diff.d.ts +25 -0
  51. package/dist/diffs/structured-item-diff.js.flow +37 -0
  52. package/dist/diffs/tags-diff.d.ts +21 -0
  53. package/dist/diffs/tags-diff.js.flow +24 -0
  54. package/dist/diffs/text-diff.d.ts +15 -0
  55. package/dist/diffs/text-diff.js.flow +21 -0
  56. package/dist/diffs/widget-diff-performer.d.ts +2 -0
  57. package/dist/diffs/widget-diff-performer.js.flow +8 -0
  58. package/dist/diffs/widget-diff.d.ts +21 -0
  59. package/dist/diffs/widget-diff.js.flow +31 -0
  60. package/dist/editor-page.d.ts +57 -0
  61. package/dist/editor-page.js.flow +73 -0
  62. package/dist/editor.d.ts +82 -0
  63. package/dist/editor.js.flow +98 -0
  64. package/dist/es/index.js +4006 -5409
  65. package/dist/es/index.js.map +1 -1
  66. package/dist/hint-editor.d.ts +64 -0
  67. package/dist/hint-editor.js.flow +87 -0
  68. package/dist/i18n.d.ts +7 -0
  69. package/dist/i18n.js.flow +13 -0
  70. package/dist/iframe-content-renderer.d.ts +22 -0
  71. package/dist/iframe-content-renderer.js.flow +28 -0
  72. package/dist/index.d.ts +17 -2
  73. package/dist/index.js +1492 -2548
  74. package/dist/index.js.flow +23 -2
  75. package/dist/index.js.map +1 -1
  76. package/dist/item-editor.d.ts +36 -0
  77. package/dist/item-editor.js.flow +46 -0
  78. package/dist/item-extras-editor.d.ts +17 -0
  79. package/dist/item-extras-editor.js.flow +23 -0
  80. package/dist/katex-error-view.d.ts +16 -0
  81. package/dist/katex-error-view.js.flow +24 -0
  82. package/dist/multirenderer-editor.d.ts +32 -0
  83. package/dist/multirenderer-editor.js.flow +46 -0
  84. package/dist/section-control-button.d.ts +12 -0
  85. package/dist/section-control-button.js.flow +20 -0
  86. package/dist/stateful-article-editor.d.ts +10 -0
  87. package/dist/stateful-article-editor.js.flow +16 -0
  88. package/dist/stateful-editor-page.d.ts +2 -0
  89. package/dist/stateful-editor-page.js.flow +8 -0
  90. package/dist/testing-widgets.d.ts +22 -0
  91. package/dist/testing-widgets.js.flow +34 -0
  92. package/dist/util/register-all-widgets-and-editors-for-testing.d.ts +1 -0
  93. package/dist/util/register-all-widgets-and-editors-for-testing.js.flow +7 -0
  94. package/dist/widgets/categorizer-editor.d.ts +47 -0
  95. package/dist/widgets/categorizer-editor.js.flow +61 -0
  96. package/dist/widgets/cs-program-editor.d.ts +21 -0
  97. package/dist/widgets/cs-program-editor.js.flow +25 -0
  98. package/dist/widgets/definition-editor.d.ts +17 -0
  99. package/dist/widgets/definition-editor.js.flow +23 -0
  100. package/dist/widgets/dropdown-editor.d.ts +23 -0
  101. package/dist/widgets/dropdown-editor.js.flow +37 -0
  102. package/dist/widgets/example-graphie-widget-editor.d.ts +18 -0
  103. package/dist/widgets/example-graphie-widget-editor.js.flow +25 -0
  104. package/dist/widgets/example-graphie-widget.d.ts +87 -0
  105. package/dist/widgets/example-graphie-widget.js.flow +101 -0
  106. package/dist/widgets/example-widget-editor.d.ts +19 -0
  107. package/dist/widgets/example-widget-editor.js.flow +26 -0
  108. package/dist/widgets/example-widget.d.ts +71 -0
  109. package/dist/widgets/example-widget.js.flow +86 -0
  110. package/dist/widgets/explanation-editor.d.ts +21 -0
  111. package/dist/widgets/explanation-editor.js.flow +27 -0
  112. package/dist/widgets/expression-editor.d.ts +33 -0
  113. package/dist/widgets/expression-editor.js.flow +41 -0
  114. package/dist/widgets/graded-group-editor.d.ts +53 -0
  115. package/dist/widgets/graded-group-editor.js.flow +67 -0
  116. package/dist/widgets/graded-group-set-editor.d.ts +51 -0
  117. package/dist/widgets/graded-group-set-editor.js.flow +65 -0
  118. package/dist/widgets/grapher-editor.d.ts +14 -0
  119. package/dist/widgets/grapher-editor.js.flow +21 -0
  120. package/dist/widgets/group-editor.d.ts +49 -0
  121. package/dist/widgets/group-editor.js.flow +63 -0
  122. package/dist/widgets/iframe-editor.d.ts +18 -0
  123. package/dist/widgets/iframe-editor.js.flow +24 -0
  124. package/dist/widgets/image-editor.d.ts +2 -0
  125. package/dist/widgets/image-editor.js.flow +8 -0
  126. package/dist/widgets/input-number-editor.d.ts +47 -0
  127. package/dist/widgets/input-number-editor.js.flow +77 -0
  128. package/dist/widgets/interaction/constraint-editor.d.ts +26 -0
  129. package/dist/widgets/interaction/constraint-editor.js.flow +35 -0
  130. package/dist/widgets/interaction-editor.d.ts +28 -0
  131. package/dist/widgets/interaction-editor.js.flow +36 -0
  132. package/dist/widgets/interactive-graph-editor.d.ts +2 -0
  133. package/dist/widgets/interactive-graph-editor.js.flow +8 -0
  134. package/dist/widgets/label-image/answer-choices.d.ts +13 -0
  135. package/dist/widgets/label-image/answer-choices.js.flow +16 -0
  136. package/dist/widgets/label-image/behavior.d.ts +14 -0
  137. package/dist/widgets/label-image/behavior.js.flow +17 -0
  138. package/dist/widgets/label-image/marker.d.ts +30 -0
  139. package/dist/widgets/label-image/marker.js.flow +34 -0
  140. package/dist/widgets/label-image/question-markers.d.ts +22 -0
  141. package/dist/widgets/label-image/question-markers.js.flow +25 -0
  142. package/dist/widgets/label-image/select-image.d.ts +10 -0
  143. package/dist/widgets/label-image/select-image.js.flow +13 -0
  144. package/dist/widgets/label-image-editor.d.ts +45 -0
  145. package/dist/widgets/label-image-editor.js.flow +44 -0
  146. package/dist/widgets/lights-puzzle-editor.d.ts +24 -0
  147. package/dist/widgets/lights-puzzle-editor.js.flow +34 -0
  148. package/dist/widgets/matcher-editor.d.ts +19 -0
  149. package/dist/widgets/matcher-editor.js.flow +28 -0
  150. package/dist/widgets/matrix-editor.d.ts +20 -0
  151. package/dist/widgets/matrix-editor.js.flow +26 -0
  152. package/dist/widgets/measurer-editor.d.ts +32 -0
  153. package/dist/widgets/measurer-editor.js.flow +42 -0
  154. package/dist/widgets/molecule-editor.d.ts +17 -0
  155. package/dist/widgets/molecule-editor.js.flow +23 -0
  156. package/dist/widgets/number-line-editor.d.ts +36 -0
  157. package/dist/widgets/number-line-editor.js.flow +45 -0
  158. package/dist/widgets/numeric-input-editor.d.ts +2 -0
  159. package/dist/widgets/numeric-input-editor.js.flow +8 -0
  160. package/dist/widgets/orderer-editor.d.ts +20 -0
  161. package/dist/widgets/orderer-editor.js.flow +30 -0
  162. package/dist/widgets/passage-editor.d.ts +18 -0
  163. package/dist/widgets/passage-editor.js.flow +24 -0
  164. package/dist/widgets/passage-ref-editor.d.ts +11 -0
  165. package/dist/widgets/passage-ref-editor.js.flow +17 -0
  166. package/dist/widgets/passage-ref-target-editor.d.ts +16 -0
  167. package/dist/widgets/passage-ref-target-editor.js.flow +22 -0
  168. package/dist/widgets/plotter-editor.d.ts +45 -0
  169. package/dist/widgets/plotter-editor.js.flow +53 -0
  170. package/dist/widgets/radio/editor.d.ts +64 -0
  171. package/dist/widgets/radio/editor.js.flow +80 -0
  172. package/dist/widgets/reaction-diagram-editor.d.ts +20 -0
  173. package/dist/widgets/reaction-diagram-editor.js.flow +26 -0
  174. package/dist/widgets/sequence-editor.d.ts +56 -0
  175. package/dist/widgets/sequence-editor.js.flow +72 -0
  176. package/dist/widgets/simple-markdown-tester-editor.d.ts +14 -0
  177. package/dist/widgets/simple-markdown-tester-editor.js.flow +23 -0
  178. package/dist/widgets/simple-markdown-tester.d.ts +52 -0
  179. package/dist/widgets/simple-markdown-tester.js.flow +61 -0
  180. package/dist/widgets/simulator-editor.d.ts +20 -0
  181. package/dist/widgets/simulator-editor.js.flow +26 -0
  182. package/dist/widgets/sorter-editor.d.ts +16 -0
  183. package/dist/widgets/sorter-editor.js.flow +22 -0
  184. package/dist/widgets/table-editor.d.ts +18 -0
  185. package/dist/widgets/table-editor.js.flow +24 -0
  186. package/dist/widgets/transformer-editor.d.ts +11 -0
  187. package/dist/widgets/transformer-editor.js.flow +17 -0
  188. package/dist/widgets/unit-editor.d.ts +33 -0
  189. package/dist/widgets/unit-editor.js.flow +41 -0
  190. package/dist/widgets/video-editor.d.ts +19 -0
  191. package/dist/widgets/video-editor.js.flow +25 -0
  192. package/package.json +7 -6
  193. package/src/__stories__/{editor.stories.js → editor.stories.tsx} +4 -5
  194. package/src/__stories__/{section-control-button.stories.jsx → section-control-button.stories.tsx} +10 -11
  195. package/src/__testdata__/{input-number_testdata.js → input-number.testdata.ts} +2 -3
  196. package/src/__tests__/{editor_test.jsx → editor.test.tsx} +4 -7
  197. package/src/__tests__/{i18n_test.jsx → i18n.test.ts} +5 -5
  198. package/src/__tests__/{traversal_test.jsx → traversal.test.ts} +9 -10
  199. package/src/{all-editors_test.js → all-editors.test.ts} +1 -2
  200. package/src/all-editors.ts +83 -0
  201. package/src/all-widgets.ts +7 -0
  202. package/src/{article-editor.jsx → article-editor.tsx} +52 -42
  203. package/src/components/__stories__/{blur-input.stories.jsx → blur-input.stories.tsx} +2 -4
  204. package/src/components/{blur-input.jsx → blur-input.tsx} +12 -13
  205. package/src/components/{checkbox.jsx → checkbox.tsx} +18 -19
  206. package/src/components/{device-framer.jsx → device-framer.tsx} +4 -5
  207. package/src/components/{drag-target.jsx → drag-target.tsx} +0 -1
  208. package/src/components/{dropdown-option.jsx → dropdown-option.tsx} +40 -40
  209. package/src/components/{form-wrapped-text-field.jsx → form-wrapped-text-field.tsx} +47 -53
  210. package/src/components/{graph-settings.jsx → graph-settings.tsx} +4 -8
  211. package/src/components/{hover-behavior.jsx → hover-behavior.ts} +32 -33
  212. package/src/components/{json-editor.jsx → json-editor.tsx} +4 -3
  213. package/src/components/{link.jsx → link.ts} +33 -33
  214. package/src/components/{simple-button.jsx → simple-button.tsx} +3 -4
  215. package/src/components/{sortable.jsx → sortable.tsx} +3 -3
  216. package/src/components/{util.js → util.ts} +1 -2
  217. package/src/components/{viewport-resizer.jsx → viewport-resizer.tsx} +5 -6
  218. package/src/diffs/__stories__/{perseus-diff-wrapper.jsx → perseus-diff-wrapper.tsx} +3 -2
  219. package/src/diffs/__stories__/{structured-item-diff.stories.jsx → structured-item-diff.stories.tsx} +27 -22
  220. package/src/diffs/__stories__/{tags-diff.stories.jsx → tags-diff.stories.tsx} +12 -14
  221. package/src/diffs/__stories__/{text-diff.stories.jsx → text-diff.stories.tsx} +12 -14
  222. package/src/diffs/__tests__/{split-diff_test.js → split-diff.test.ts} +1 -2
  223. package/src/diffs/__tests__/{string-array-diff_test.js → string-array-diff.test.ts} +1 -2
  224. package/src/diffs/__tests__/{structured-item-diff_test.js → structured-item-diff.test.ts} +15 -14
  225. package/src/diffs/__tests__/{widget-diff-performer_test.js → widget-diff-performer.test.ts} +1 -2
  226. package/src/diffs/{article-diff.jsx → article-diff.tsx} +5 -6
  227. package/src/diffs/{item-diff.jsx → item-diff.tsx} +4 -5
  228. package/src/diffs/{renderer-diff.jsx → renderer-diff.tsx} +22 -28
  229. package/src/diffs/{split-diff.jsx → split-diff.ts} +4 -3
  230. package/src/diffs/{string-array-diff.jsx → string-array-diff.ts} +8 -9
  231. package/src/diffs/{structured-item-diff.jsx → structured-item-diff.tsx} +32 -27
  232. package/src/diffs/{tags-diff.jsx → tags-diff.tsx} +15 -16
  233. package/src/diffs/{text-diff.jsx → text-diff.tsx} +13 -13
  234. package/src/diffs/{widget-diff-performer.jsx → widget-diff-performer.ts} +3 -8
  235. package/src/diffs/{widget-diff.jsx → widget-diff.tsx} +15 -14
  236. package/src/{editor-page.jsx → editor-page.tsx} +52 -60
  237. package/src/{editor.jsx → editor.tsx} +315 -277
  238. package/src/{hint-editor.jsx → hint-editor.tsx} +105 -79
  239. package/src/{i18n.jsx → i18n.ts} +9 -6
  240. package/src/{iframe-content-renderer.jsx → iframe-content-renderer.tsx} +23 -17
  241. package/src/{index.js → index.ts} +15 -16
  242. package/src/{item-editor.jsx → item-editor.tsx} +35 -30
  243. package/src/{item-extras-editor.jsx → item-extras-editor.tsx} +3 -4
  244. package/src/{katex-error-view.jsx → katex-error-view.tsx} +4 -5
  245. package/src/{multirenderer-editor.jsx → multirenderer-editor.tsx} +132 -127
  246. package/src/{section-control-button.jsx → section-control-button.tsx} +10 -9
  247. package/src/{stateful-article-editor.jsx → stateful-article-editor.tsx} +2 -5
  248. package/src/{stateful-editor-page.jsx → stateful-editor-page.tsx} +1 -3
  249. package/src/{testing-widgets.js → testing-widgets.ts} +5 -6
  250. package/src/util/{register-all-widgets-and-editors-for-testing_test.js → register-all-widgets-and-editors-for-testing.test.ts} +1 -2
  251. package/src/util/{register-all-widgets-and-editors-for-testing.js → register-all-widgets-and-editors-for-testing.ts} +2 -3
  252. package/src/widgets/__stories__/{label-image-editor.stories.jsx → label-image-editor.stories.tsx} +22 -18
  253. package/src/widgets/__stories__/{radio-editor.stories.jsx → radio-editor.stories.tsx} +15 -10
  254. package/src/widgets/{categorizer-editor.jsx → categorizer-editor.tsx} +8 -6
  255. package/src/widgets/{cs-program-editor.jsx → cs-program-editor.tsx} +17 -17
  256. package/src/widgets/{definition-editor.jsx → definition-editor.tsx} +9 -8
  257. package/src/widgets/{dropdown-editor.jsx → dropdown-editor.tsx} +27 -19
  258. package/src/widgets/{example-graphie-widget-editor.jsx → example-graphie-widget-editor.tsx} +8 -8
  259. package/src/widgets/{example-graphie-widget.jsx → example-graphie-widget.tsx} +14 -17
  260. package/src/widgets/{example-widget-editor.jsx → example-widget-editor.tsx} +10 -7
  261. package/src/widgets/{example-widget.jsx → example-widget.tsx} +14 -12
  262. package/src/widgets/{explanation-editor.jsx → explanation-editor.tsx} +12 -10
  263. package/src/widgets/{expression-editor.jsx → expression-editor.tsx} +36 -26
  264. package/src/widgets/{graded-group-editor.jsx → graded-group-editor.tsx} +18 -10
  265. package/src/widgets/{graded-group-set-editor.jsx → graded-group-set-editor.tsx} +15 -12
  266. package/src/widgets/{grapher-editor.jsx → grapher-editor.tsx} +10 -9
  267. package/src/widgets/{group-editor.jsx → group-editor.tsx} +11 -9
  268. package/src/widgets/{iframe-editor.jsx → iframe-editor.tsx} +16 -13
  269. package/src/widgets/{image-editor.jsx → image-editor.tsx} +4 -7
  270. package/src/widgets/{input-number-editor.jsx → input-number-editor.tsx} +61 -47
  271. package/src/widgets/interaction/{constraint-editor.jsx → constraint-editor.tsx} +21 -24
  272. package/src/widgets/{interaction-editor.jsx → interaction-editor.tsx} +160 -61
  273. package/src/widgets/{interactive-graph-editor.jsx → interactive-graph-editor.tsx} +13 -10
  274. package/src/widgets/label-image/__stories__/{answer-choices.stories.jsx → answer-choices.stories.tsx} +22 -17
  275. package/src/widgets/label-image/__stories__/{behavior.stories.jsx → behavior.stories.tsx} +9 -10
  276. package/src/widgets/label-image/__stories__/{marker.stories.jsx → marker.stories.tsx} +11 -12
  277. package/src/widgets/label-image/__stories__/{question-markers.stories.jsx → question-markers.stories.tsx} +17 -16
  278. package/src/widgets/label-image/__stories__/{select-image.stories.jsx → select-image.stories.tsx} +12 -13
  279. package/src/widgets/label-image/{answer-choices.jsx → answer-choices.tsx} +18 -18
  280. package/src/widgets/label-image/{behavior.jsx → behavior.tsx} +9 -11
  281. package/src/widgets/label-image/{marker.jsx → marker.tsx} +17 -19
  282. package/src/widgets/label-image/{question-markers.jsx → question-markers.tsx} +16 -21
  283. package/src/widgets/label-image/{select-image.jsx → select-image.tsx} +5 -7
  284. package/src/widgets/{label-image-editor.jsx → label-image-editor.tsx} +38 -44
  285. package/src/widgets/{lights-puzzle-editor.jsx → lights-puzzle-editor.tsx} +34 -24
  286. package/src/widgets/{matcher-editor.jsx → matcher-editor.tsx} +9 -7
  287. package/src/widgets/{matrix-editor.jsx → matrix-editor.tsx} +10 -9
  288. package/src/widgets/{measurer-editor.jsx → measurer-editor.tsx} +21 -14
  289. package/src/widgets/{molecule-editor.jsx → molecule-editor.tsx} +9 -8
  290. package/src/widgets/{number-line-editor.jsx → number-line-editor.tsx} +19 -17
  291. package/src/widgets/{numeric-input-editor.jsx → numeric-input-editor.tsx} +10 -10
  292. package/src/widgets/{orderer-editor.jsx → orderer-editor.tsx} +17 -12
  293. package/src/widgets/{passage-editor.jsx → passage-editor.tsx} +9 -7
  294. package/src/widgets/{passage-ref-editor.jsx → passage-ref-editor.tsx} +8 -6
  295. package/src/widgets/{passage-ref-target-editor.jsx → passage-ref-target-editor.tsx} +9 -7
  296. package/src/widgets/{plotter-editor.jsx → plotter-editor.tsx} +34 -33
  297. package/src/widgets/radio/{editor.jsx → editor.tsx} +22 -21
  298. package/src/widgets/{reaction-diagram-editor.jsx → reaction-diagram-editor.tsx} +14 -10
  299. package/src/widgets/{sequence-editor.jsx → sequence-editor.tsx} +13 -13
  300. package/src/widgets/{simple-markdown-tester-editor.jsx → simple-markdown-tester-editor.tsx} +11 -9
  301. package/src/widgets/{simple-markdown-tester.jsx → simple-markdown-tester.tsx} +8 -7
  302. package/src/widgets/{simulator-editor.jsx → simulator-editor.tsx} +10 -8
  303. package/src/widgets/{sorter-editor.jsx → sorter-editor.tsx} +8 -6
  304. package/src/widgets/{table-editor.jsx → table-editor.tsx} +11 -10
  305. package/src/widgets/{transformer-editor.jsx → transformer-editor.tsx} +37 -35
  306. package/src/widgets/{unit-editor.jsx → unit-editor.tsx} +31 -25
  307. package/src/widgets/{video-editor.jsx → video-editor.tsx} +8 -9
  308. package/tsconfig.json +22 -0
  309. package/tsconfig.tsbuildinfo +1 -0
  310. package/src/all-editors.js +0 -85
  311. package/src/all-widgets.js +0 -10
@@ -0,0 +1,37 @@
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 type { Item, Path, Shape } from "@khanacademy/perseus";
9
+ declare type ItemList = [mixed, Path];
10
+ declare type Tag = {|
11
+ idToName: (arg1: string) => string,
12
+ nameToId: (arg1: string) => string,
13
+ names: $ReadOnlyArray<string>,
14
+ |};
15
+ declare type Props = {|
16
+ after: Item,
17
+ before: Item,
18
+ shape: Shape,
19
+ tags: Tag,
20
+ |};
21
+ declare class StructuredItemDiff extends React.Component<Props> {
22
+ /**
23
+ * Traverses the given shape and adds paths that are present in
24
+ * beforeList and afterList to result. Note that this method assumes
25
+ * the order of elements in beforeList and afterList, which are
26
+ * from buildMapper(), is the same order they appear in in the shape.
27
+ */
28
+ static generateCompletePathsList(
29
+ beforeList: Array<ItemList>,
30
+ afterList: Array<ItemList>,
31
+ result: Array<Path>,
32
+ shape: Shape,
33
+ path: $ReadOnlyArray<any>
34
+ ): void;
35
+ render(): React.Node;
36
+ }
37
+ declare export default typeof StructuredItemDiff;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * A side by side diff view for general passage layout tags.
3
+ */
4
+ import * as React from "react";
5
+ type Props = {
6
+ afterOnly: ReadonlyArray<string>;
7
+ beforeOnly: ReadonlyArray<string>;
8
+ intersection: ReadonlyArray<string>;
9
+ showSeparator: boolean;
10
+ title: string;
11
+ };
12
+ declare class TagsDiff extends React.Component<Props> {
13
+ static defaultProps: {
14
+ afterOnly: ReadonlyArray<any>;
15
+ beforeOnly: ReadonlyArray<any>;
16
+ showSeparator: boolean;
17
+ title: string;
18
+ };
19
+ render(): React.ReactNode;
20
+ }
21
+ export default TagsDiff;
@@ -0,0 +1,24 @@
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
+ afterOnly: $ReadOnlyArray<string>,
10
+ beforeOnly: $ReadOnlyArray<string>,
11
+ intersection: $ReadOnlyArray<string>,
12
+ showSeparator: boolean,
13
+ title: string,
14
+ |};
15
+ declare class TagsDiff extends React.Component<Props> {
16
+ static defaultProps: {|
17
+ afterOnly: $ReadOnlyArray<any>,
18
+ beforeOnly: $ReadOnlyArray<any>,
19
+ showSeparator: boolean,
20
+ title: string,
21
+ |};
22
+ render(): React.Node;
23
+ }
24
+ declare export default typeof TagsDiff;
@@ -0,0 +1,15 @@
1
+ import PropTypes from "prop-types";
2
+ import * as React from "react";
3
+ declare class TextDiff extends React.Component<any, any> {
4
+ static propTypes: {
5
+ after: PropTypes.Requireable<string>;
6
+ before: PropTypes.Requireable<string>;
7
+ title: PropTypes.Validator<string>;
8
+ };
9
+ static defaultProps: any;
10
+ state: any;
11
+ UNSAFE_componentWillReceiveProps(nextProps: any): void;
12
+ handleExpand: () => void;
13
+ render(): React.ReactNode;
14
+ }
15
+ export default TextDiff;
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Flowtype definitions for data
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.21.0
5
+ * @flow
6
+ */
7
+ import PropTypes from "prop-types";
8
+ import * as React from "react";
9
+ declare class TextDiff extends React.Component<any, any> {
10
+ static propTypes: {|
11
+ after: PropTypes.Requireable<string>,
12
+ before: PropTypes.Requireable<string>,
13
+ title: PropTypes.Validator<string>,
14
+ |};
15
+ static defaultProps: any;
16
+ state: any;
17
+ UNSAFE_componentWillReceiveProps(nextProps: any): void;
18
+ handleExpand: () => void;
19
+ render(): React.Node;
20
+ }
21
+ declare export default typeof TextDiff;
@@ -0,0 +1,2 @@
1
+ declare const performDiff: (before: any, after: any, key?: any) => any;
2
+ export default performDiff;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Flowtype definitions for data
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.21.0
5
+ * @flow
6
+ */
7
+ declare var performDiff: (before: any, after: any, key?: any) => any;
8
+ declare export default typeof performDiff;
@@ -0,0 +1,21 @@
1
+ import PropTypes from "prop-types";
2
+ import * as React from "react";
3
+ declare class WidgetDiff extends React.Component<any> {
4
+ static propTypes: {
5
+ after: PropTypes.Requireable<PropTypes.InferProps<{
6
+ options: PropTypes.Requireable<{
7
+ [x: string]: any;
8
+ }>;
9
+ }>>;
10
+ before: PropTypes.Requireable<PropTypes.InferProps<{
11
+ options: PropTypes.Requireable<{
12
+ [x: string]: any;
13
+ }>;
14
+ }>>;
15
+ title: PropTypes.Validator<string>;
16
+ type: PropTypes.Requireable<string>;
17
+ };
18
+ static defaultProps: any;
19
+ render(): React.ReactNode;
20
+ }
21
+ export default WidgetDiff;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Flowtype definitions for data
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.21.0
5
+ * @flow
6
+ */
7
+ import PropTypes from "prop-types";
8
+ import * as React from "react";
9
+ declare class WidgetDiff extends React.Component<any> {
10
+ static propTypes: {|
11
+ after: PropTypes.Requireable<
12
+ PropTypes.InferProps<{|
13
+ options: PropTypes.Requireable<{
14
+ [x: string]: any,
15
+ }>,
16
+ |}>
17
+ >,
18
+ before: PropTypes.Requireable<
19
+ PropTypes.InferProps<{|
20
+ options: PropTypes.Requireable<{
21
+ [x: string]: any,
22
+ }>,
23
+ |}>
24
+ >,
25
+ title: PropTypes.Validator<string>,
26
+ type: PropTypes.Requireable<string>,
27
+ |};
28
+ static defaultProps: any;
29
+ render(): React.Node;
30
+ }
31
+ declare export default typeof WidgetDiff;
@@ -0,0 +1,57 @@
1
+ import * as React from "react";
2
+ import type { APIOptions, APIOptionsWithDefaults, ChangeHandler, DeviceType, Hint, ImageUploader, RendererInterface, Version, KEScore } from "@khanacademy/perseus";
3
+ type Props = {
4
+ apiOptions?: APIOptions;
5
+ answerArea?: any;
6
+ contentPaths?: ReadonlyArray<string>;
7
+ developerMode: boolean;
8
+ frameSource: string;
9
+ hints?: ReadonlyArray<Hint>;
10
+ imageUploader?: ImageUploader;
11
+ itemDataVersion?: Version;
12
+ itemId: string;
13
+ jsonMode: boolean;
14
+ onChange: ChangeHandler;
15
+ onPreviewDeviceChange: (arg1: DeviceType) => unknown;
16
+ previewDevice: DeviceType;
17
+ question?: any;
18
+ previewURL: string;
19
+ };
20
+ type PerseusJson = {
21
+ question: any;
22
+ answerArea: any;
23
+ hints: ReadonlyArray<Hint>;
24
+ itemDataVersion?: Version;
25
+ };
26
+ type State = {
27
+ json: PerseusJson;
28
+ gradeMessage: string;
29
+ wasAnswered: boolean;
30
+ highlightLint: boolean;
31
+ };
32
+ declare class EditorPage extends React.Component<Props, State> {
33
+ _isMounted: boolean;
34
+ rendererMountNode: HTMLDivElement;
35
+ renderer: RendererInterface | null | undefined;
36
+ static defaultProps: {
37
+ developerMode: boolean;
38
+ jsonMode: boolean;
39
+ onChange: () => void;
40
+ };
41
+ constructor(props: Props);
42
+ componentDidMount(): void;
43
+ componentDidUpdate(): void;
44
+ componentWillUnmount(): void;
45
+ toggleJsonMode: () => void;
46
+ updateRenderer(): void;
47
+ getApiOptions(): APIOptionsWithDefaults;
48
+ getSaveWarnings(): any;
49
+ serialize(options?: {
50
+ keepDeletedWidgets?: boolean;
51
+ }): any | PerseusJson;
52
+ handleChange: ChangeHandler;
53
+ changeJSON: (newJson: PerseusJson) => void;
54
+ scorePreview(): KEScore | null | undefined;
55
+ render(): React.ReactNode;
56
+ }
57
+ export default EditorPage;
@@ -0,0 +1,73 @@
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 type {
9
+ APIOptions,
10
+ APIOptionsWithDefaults,
11
+ ChangeHandler,
12
+ DeviceType,
13
+ Hint,
14
+ ImageUploader,
15
+ RendererInterface,
16
+ Version,
17
+ KEScore,
18
+ } from "@khanacademy/perseus";
19
+ declare type Props = {|
20
+ apiOptions?: APIOptions,
21
+ answerArea?: any,
22
+ contentPaths?: $ReadOnlyArray<string>,
23
+ developerMode: boolean,
24
+ frameSource: string,
25
+ hints?: $ReadOnlyArray<Hint>,
26
+ imageUploader?: ImageUploader,
27
+ itemDataVersion?: Version,
28
+ itemId: string,
29
+ jsonMode: boolean,
30
+ onChange: ChangeHandler,
31
+ onPreviewDeviceChange: (arg1: DeviceType) => mixed,
32
+ previewDevice: DeviceType,
33
+ question?: any,
34
+ previewURL: string,
35
+ |};
36
+ declare type PerseusJson = {|
37
+ question: any,
38
+ answerArea: any,
39
+ hints: $ReadOnlyArray<Hint>,
40
+ itemDataVersion?: Version,
41
+ |};
42
+ declare type State = {|
43
+ json: PerseusJson,
44
+ gradeMessage: string,
45
+ wasAnswered: boolean,
46
+ highlightLint: boolean,
47
+ |};
48
+ declare class EditorPage extends React.Component<Props, State> {
49
+ _isMounted: boolean;
50
+ rendererMountNode: HTMLDivElement;
51
+ renderer: RendererInterface | null | void;
52
+ static defaultProps: {|
53
+ developerMode: boolean,
54
+ jsonMode: boolean,
55
+ onChange: () => void,
56
+ |};
57
+ constructor(props: Props): this;
58
+ componentDidMount(): void;
59
+ componentDidUpdate(): void;
60
+ componentWillUnmount(): void;
61
+ toggleJsonMode: () => void;
62
+ updateRenderer(): void;
63
+ getApiOptions(): APIOptionsWithDefaults;
64
+ getSaveWarnings(): any;
65
+ serialize(options?: {|
66
+ keepDeletedWidgets?: boolean,
67
+ |}): any | PerseusJson;
68
+ handleChange: ChangeHandler;
69
+ changeJSON: (newJson: PerseusJson) => void;
70
+ scorePreview(): KEScore | null | void;
71
+ render(): React.Node;
72
+ }
73
+ declare export default typeof EditorPage;
@@ -0,0 +1,82 @@
1
+ import katex from "katex";
2
+ import * as React from "react";
3
+ import type { ChangeHandler, WidgetInfo } from "@khanacademy/perseus";
4
+ type EditorProps = Readonly<{
5
+ apiOptions: any;
6
+ className?: string;
7
+ content: string;
8
+ replace?: any;
9
+ placeholder: string;
10
+ widgets: {
11
+ [name: string]: WidgetInfo;
12
+ };
13
+ images: any;
14
+ disabled: boolean;
15
+ widgetEnabled: boolean;
16
+ immutableWidgets: boolean;
17
+ showWordCount: boolean;
18
+ warnNoPrompt: boolean;
19
+ warnNoWidgets: boolean;
20
+ imageUploader?: (file: string, callback: (url: string) => unknown) => unknown;
21
+ onChange: ChangeHandler;
22
+ }>;
23
+ type DeafultProps = {
24
+ content: string;
25
+ disabled: boolean;
26
+ images: Record<any, any>;
27
+ immutableWidgets: boolean;
28
+ placeholder: string;
29
+ showWordCount: boolean;
30
+ warnNoPrompt: boolean;
31
+ warnNoWidgets: boolean;
32
+ widgetEnabled: boolean;
33
+ widgets: {
34
+ [name: string]: WidgetInfo;
35
+ };
36
+ };
37
+ type EditorState = {
38
+ showKatexErrors: boolean;
39
+ textAreaValue: string;
40
+ katex?: katex;
41
+ };
42
+ declare class Editor extends React.Component<EditorProps, EditorState> {
43
+ lastUserValue: string | null | undefined;
44
+ deferredChange: any | null | undefined;
45
+ widgetIds: any | null | undefined;
46
+ static defaultProps: DeafultProps;
47
+ state: EditorState;
48
+ componentDidMount(): void;
49
+ UNSAFE_componentWillReceiveProps(nextProps: EditorProps): void;
50
+ componentDidUpdate(prevProps: EditorProps): void;
51
+ componentWillUnmount(): void;
52
+ getWidgetEditor: (id: string, type: string) => undefined | React.ReactNode;
53
+ _handleWidgetEditorChange: (id: string, newWidgetInfo: WidgetInfo, cb?: () => unknown, silent?: boolean) => void;
54
+ _handleWidgetEditorRemove: (id: string) => void;
55
+ /**
56
+ * Calculate the size of all the images in props.content, and send
57
+ * those sizes to this.props.images using props.onChange.
58
+ */
59
+ _sizeImages: (props: EditorProps) => void;
60
+ handleDrop: (e: DragEvent) => void;
61
+ handleChange: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void;
62
+ _handleKeyDown: (e: React.KeyboardEvent<HTMLTextAreaElement>) => void;
63
+ _maybeCopyWidgets: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void;
64
+ _maybePasteWidgets: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void;
65
+ _safeWidgetNameMapping: (widgetData: {
66
+ [name: string]: any;
67
+ }) => Record<any, any>;
68
+ _addWidgetToContent: (oldContent: string, cursorRange: ReadonlyArray<number>, widgetType: string) => void;
69
+ _addWidget: (widgetType: string) => void;
70
+ addTemplate: (e: React.SyntheticEvent<HTMLTextAreaElement>) => void;
71
+ getSaveWarnings: () => any;
72
+ focus: () => void;
73
+ focusAndMoveToEnd: () => void;
74
+ serialize: (options?: any) => {
75
+ content: string;
76
+ images: any;
77
+ replace: any | undefined;
78
+ widgets: Record<any, any>;
79
+ };
80
+ render(): React.ReactNode;
81
+ }
82
+ export default Editor;
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Flowtype definitions for data
3
+ * Generated by Flowgen from a Typescript Definition
4
+ * Flowgen v1.21.0
5
+ * @flow
6
+ */
7
+ import katex from "katex";
8
+ import * as React from "react";
9
+ import type { ChangeHandler, WidgetInfo } from "@khanacademy/perseus";
10
+ declare type EditorProps = $ReadOnly<{|
11
+ apiOptions: any,
12
+ className?: string,
13
+ content: string,
14
+ replace?: any,
15
+ placeholder: string,
16
+ widgets: {
17
+ [name: string]: WidgetInfo,
18
+ },
19
+ images: any,
20
+ disabled: boolean,
21
+ widgetEnabled: boolean,
22
+ immutableWidgets: boolean,
23
+ showWordCount: boolean,
24
+ warnNoPrompt: boolean,
25
+ warnNoWidgets: boolean,
26
+ imageUploader?: (file: string, callback: (url: string) => mixed) => mixed,
27
+ onChange: ChangeHandler,
28
+ |}>;
29
+ declare type DeafultProps = {|
30
+ content: string,
31
+ disabled: boolean,
32
+ images: { [key: any]: any },
33
+ immutableWidgets: boolean,
34
+ placeholder: string,
35
+ showWordCount: boolean,
36
+ warnNoPrompt: boolean,
37
+ warnNoWidgets: boolean,
38
+ widgetEnabled: boolean,
39
+ widgets: {
40
+ [name: string]: WidgetInfo,
41
+ },
42
+ |};
43
+ declare type EditorState = {|
44
+ showKatexErrors: boolean,
45
+ textAreaValue: string,
46
+ katex?: katex,
47
+ |};
48
+ declare class Editor extends React.Component<EditorProps, EditorState> {
49
+ lastUserValue: string | null | void;
50
+ deferredChange: any | null | void;
51
+ widgetIds: any | null | void;
52
+ static defaultProps: DeafultProps;
53
+ state: EditorState;
54
+ componentDidMount(): void;
55
+ UNSAFE_componentWillReceiveProps(nextProps: EditorProps): void;
56
+ componentDidUpdate(prevProps: EditorProps): void;
57
+ componentWillUnmount(): void;
58
+ getWidgetEditor: (id: string, type: string) => void | React.Node;
59
+ _handleWidgetEditorChange: (
60
+ id: string,
61
+ newWidgetInfo: WidgetInfo,
62
+ cb?: () => mixed,
63
+ silent?: boolean
64
+ ) => void;
65
+ _handleWidgetEditorRemove: (id: string) => void;
66
+
67
+ /**
68
+ * Calculate the size of all the images in props.content, and send
69
+ * those sizes to this.props.images using props.onChange.
70
+ */
71
+ _sizeImages: (props: EditorProps) => void;
72
+ handleDrop: (e: DragEvent) => void;
73
+ handleChange: (e: SyntheticEvent<HTMLTextAreaElement>) => void;
74
+ _handleKeyDown: (e: SyntheticKeyboardEvent<HTMLTextAreaElement>) => void;
75
+ _maybeCopyWidgets: (e: SyntheticEvent<HTMLTextAreaElement>) => void;
76
+ _maybePasteWidgets: (e: SyntheticEvent<HTMLTextAreaElement>) => void;
77
+ _safeWidgetNameMapping: (widgetData: {
78
+ [name: string]: any,
79
+ }) => { [key: any]: any };
80
+ _addWidgetToContent: (
81
+ oldContent: string,
82
+ cursorRange: $ReadOnlyArray<number>,
83
+ widgetType: string
84
+ ) => void;
85
+ _addWidget: (widgetType: string) => void;
86
+ addTemplate: (e: SyntheticEvent<HTMLTextAreaElement>) => void;
87
+ getSaveWarnings: () => any;
88
+ focus: () => void;
89
+ focusAndMoveToEnd: () => void;
90
+ serialize: (options?: any) => {|
91
+ content: string,
92
+ images: any,
93
+ replace: any | void,
94
+ widgets: { [key: any]: any },
95
+ |};
96
+ render(): React.Node;
97
+ }
98
+ declare export default typeof Editor;