@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,47 +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 { Coord } from "./types";
8
- declare var _default: {|
9
- add: {|
10
- +constrain: () => void,
11
- +pointsToFront: (state: any) => void,
12
- |},
13
- modify: {|
14
- +draw: () => void,
15
- |},
16
- draw: {|
17
- +basic: (state: any, prevState: any) => void,
18
- +labels: (state: any, prevState: any) => void,
19
- +highlight: (state: any, prevState: any) => void,
20
- |},
21
- remove: {|
22
- +basic: () => void,
23
- +labels: () => void,
24
- |},
25
- onMoveStart: {|
26
- standard: null,
27
- |},
28
- constraints: {|
29
- +fixed: () => () => boolean,
30
- +snap: (snap: any) => (arg1: Coord) => mixed,
31
- +bound: (
32
- range: any,
33
- snap: any,
34
- paddingPx: number
35
- ) => (arg1: Coord, arg2: Coord) => Coord,
36
- |},
37
- onMove: {|
38
- +updatePoints: (coord: Coord, prevCoord: Coord) => void,
39
- |},
40
- onMoveEnd: {|
41
- standard: null,
42
- |},
43
- onClick: {|
44
- standard: null,
45
- |},
46
- |};
47
- declare export default typeof _default;
@@ -1,8 +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 var MovablePolygon: (graphie: any, movable: any, options: any) => void;
8
- declare export default typeof MovablePolygon;
@@ -1,8 +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 var Movable: (graphie: any, options: any) => void;
8
- declare export default typeof Movable;
@@ -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
- /**
8
- * A work-in-progress of _ methods for objects.
9
- * That is, they take an object as a parameter,
10
- * and return an object instead of an array.
11
- *
12
- * TODO(aria): Move this out of interactive2
13
- */
14
- declare var _default: {|
15
- pluck: (table: any, subKey: string) => any,
16
- mapObject: <K: string, V, U>(
17
- obj: $Rest<{ [key: K]: V }, {}>,
18
- lambda: (arg1: V, arg2: K) => U
19
- ) => $Rest<{ [key: K]: U }, {}>,
20
- mapObjectFromArray: <K_1: string, V_1>(
21
- arr: $ReadOnlyArray<K_1>,
22
- lambda: (arg1: K_1) => V_1
23
- ) => $Rest<{ [key: K_1]: V_1 }, {}>,
24
- |};
25
- declare export default typeof _default;
@@ -1,8 +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
- export type Coord = [number, number];
8
- export type Line = [Coord, Coord];
@@ -1,11 +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
- * Default methods for a wrapped movable.
9
- */
10
- declare var WrappedDefaults: any;
11
- declare export default typeof WrappedDefaults;
@@ -1,14 +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 { Coord } from "./types";
8
- declare var WrappedEllipse: (
9
- graphie: any,
10
- center: Coord,
11
- radii: [number, number],
12
- options: any
13
- ) => void;
14
- declare export default typeof WrappedEllipse;
@@ -1,14 +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 { Coord } from "./types";
8
- declare var WrappedLine: (
9
- graphie: any,
10
- start: Coord,
11
- end: Coord,
12
- options: any
13
- ) => void;
14
- declare export default typeof WrappedLine;
@@ -1,13 +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 { Coord } from "./types";
8
- declare var WrappedPath: (
9
- graphie: any,
10
- points: $ReadOnlyArray<Coord>,
11
- options: any
12
- ) => void;
13
- declare export default typeof WrappedPath;
@@ -1,16 +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 var Interactive2: {|
8
- +MovablePoint: (graphie: any, movable: any, options: any) => void,
9
- +addMovablePoint: (graphie: any, options: any) => any,
10
- +MovableLine: (graphie: any, movable: any, options: any) => void,
11
- +addMovableLine: (graphie: any, options: any) => any,
12
- +MovablePolygon: (graphie: any, movable: any, options: any) => void,
13
- +addMovablePolygon: (graphie: any, options: any) => any,
14
- +addMaybeMobileMovablePoint: (widget: any, extraProps: any) => any,
15
- |};
16
- declare export default typeof Interactive2;
@@ -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 HintsRenderer from "./hints-renderer";
9
- import Renderer from "./renderer";
10
- import type { KeypadProps } from "./mixins/provide-keypad";
11
- import type { PerseusItem } from "./perseus-types";
12
- import type { APIOptions, FocusPath, LinterContextProps } from "./types";
13
- import type { KEScore } from "@khanacademy/perseus-core";
14
- declare type Props = {|
15
- ...KeypadProps,
16
- ...{|
17
- apiOptions: APIOptions,
18
- controlPeripherals?: boolean,
19
- workAreaSelector: string,
20
- hintsAreaSelector: string,
21
- initialHintsVisible?: number,
22
- item: PerseusItem | any,
23
- onShowCalculator?: () => mixed,
24
- onShowChi2Table?: () => mixed,
25
- onShowPeriodicTable?: () => mixed,
26
- onShowTTable?: () => mixed,
27
- onShowZTable?: () => mixed,
28
- problemNum: number,
29
- reviewMode: boolean,
30
- savedState: any,
31
- linterContext: LinterContextProps,
32
- legacyPerseusLint?: $ReadOnlyArray<string>,
33
- |},
34
- |};
35
- declare type DefaultProps = {|
36
- apiOptions: $PropertyType<Props, "apiOptions">,
37
- controlPeripherals: $PropertyType<Props, "controlPeripherals">,
38
- hintsAreaSelector: $PropertyType<Props, "hintsAreaSelector">,
39
- initialHintsVisible: $PropertyType<Props, "initialHintsVisible">,
40
- linterContext: $PropertyType<Props, "linterContext">,
41
- reviewMode: $PropertyType<Props, "reviewMode">,
42
- workAreaSelector: $PropertyType<Props, "workAreaSelector">,
43
- |};
44
- declare type State = {|
45
- keypadElement: HTMLElement | null | void,
46
- hintsVisible: number,
47
- questionCompleted: boolean,
48
- questionHighlightedWidgets: $ReadOnlyArray<string>,
49
- |};
50
- declare type SerializedState = {|
51
- hints: any,
52
- question: {
53
- [id: string]: any,
54
- },
55
- |};
56
- declare class ItemRenderer extends React.Component<Props, State> {
57
- questionRenderer: Renderer;
58
- hintsRenderer: React.ElementRef<typeof HintsRenderer> | null | void;
59
- _currentFocus: FocusPath;
60
- static defaultProps: DefaultProps;
61
- constructor(props: Props): this;
62
- componentDidMount(): void;
63
- UNSAFE_componentWillReceiveProps(nextProps: Props): void;
64
- componentDidUpdate(): void;
65
- componentWillUnmount(): void;
66
- keypadElement(): any;
67
- update(): void;
68
- _handleFocusChange: (newFocus: FocusPath, oldFocus: FocusPath) => void;
69
- _setCurrentFocus(newFocus: FocusPath): void;
70
- _onRendererBlur(blurPath: FocusPath): void;
71
-
72
- /**
73
- * Accepts a question area widgetId, or an answer area widgetId of
74
- * the form "answer-input-number 1", or the string "answer-area"
75
- * for the whole answer area (if the answer area is a single widget).
76
- */
77
- _setWidgetProps(widgetId: string, newProps: any, callback: any): void;
78
-
79
- /**
80
- * Sets the input value into the widget found at `path`. The `focus`
81
- * function provided is called when all affected widgets have been
82
- * re-rendered with the new value.
83
- */
84
- setInputValue(path: FocusPath, newValue: string, focus: () => void): void;
85
- focusPath(path: FocusPath): void;
86
- blurPath(path: FocusPath): void;
87
- getDOMNodeForPath(path: FocusPath): Element | Text | null | void;
88
- getGrammarTypeForPath(path: FocusPath): string | null | void;
89
- getInputPaths(): $ReadOnlyArray<FocusPath>;
90
- handleInteractWithWidget: (widgetId: string) => void;
91
- focus(): boolean | null | void;
92
- blur(): void;
93
- showHint(): void;
94
- getNumHints(): number;
95
-
96
- /**
97
- * Grades the item.
98
- *
99
- * Returns a KE-style score of {
100
- * empty: bool,
101
- * correct: bool,
102
- * message: string|null,
103
- * guess: Array
104
- * }
105
- */
106
- scoreInput(): KEScore;
107
-
108
- /**
109
- * Returns an array of all widget IDs in the order they occur in
110
- * the question content.
111
- */
112
- getWidgetIds(): $ReadOnlyArray<string>;
113
-
114
- /**
115
- * Returns an object mapping from widget ID to KE-style score.
116
- * The keys of this object are the values of the array returned
117
- * from `getWidgetIds`.
118
- */
119
- scoreWidgets(): {
120
- [id: string]: KEScore,
121
- };
122
-
123
- /**
124
- * Get a representation of the current state of the item.
125
- */
126
- getSerializedState(): SerializedState;
127
- restoreSerializedState(state: SerializedState, callback?: () => void): void;
128
- showRationalesForCurrentlySelectedChoices(): void;
129
- deselectIncorrectSelectedChoices(): void;
130
- render(): React.Node;
131
- }
132
- declare export default typeof ItemRenderer;
@@ -1,11 +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__2f_types from "./types";
8
- declare var ItemVersion: {
9
- [key: string]: $Flowgen$Import$_2e__2f_types.Version,
10
- };
11
- declare export default typeof ItemVersion;
@@ -1,14 +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
- * Paragraph parsing/splitting for article jipt i18n
9
- */
10
- declare var _default: {|
11
- parseToArray: (source: string) => string[],
12
- joinFromArray: (paragraphs: $ReadOnlyArray<string>) => string,
13
- |};
14
- declare export default typeof _default;
@@ -1,12 +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 Context = {|
9
- onRendered: (isRendered: boolean) => void,
10
- |};
11
- declare var context: React.Context<Context>;
12
- declare export default typeof context;
@@ -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
- import type { Metadata } from "@khanacademy/wonder-stuff-core";
8
-
9
- /**
10
- * @typedef {Object} Errors utility for referencing the Perseus error taxonomy.
11
- */
12
- declare export var Errors: $ReadOnly<{|
13
- /**
14
- * @property {ErrorKind} Unknown The kind of error is not known.
15
- */
16
- Unknown: "Unknown",
17
-
18
- /**
19
- * @property {ErrorKind} Internal The error is internal to the executing code.
20
- */
21
- Internal: "Internal",
22
-
23
- /**
24
- * @property {ErrorKind} InvalidInput There was a problem with the provided
25
- * input, such as the wrong format or a null value.
26
- */
27
- InvalidInput: "InvalidInput",
28
-
29
- /**
30
- * @property [object Object],[object Object],[object Object],[object Object],[object Object]
31
- */
32
- NotAllowed: "NotAllowed",
33
-
34
- /**
35
- * @property {ErrorKind} TransientService There was a problem when making a
36
- * request to a service.
37
- */
38
- TransientService: "TransientService",
39
-
40
- /**
41
- * @property {ErrorKind} Service There was a non-transient problem when
42
- * making a request to service.
43
- */
44
- Service: "Service",
45
- |}>;
46
- /**
47
- * @type {ErrorKind} The kind of error being reported
48
- */
49
- export type ErrorKind = $ElementType<typeof Errors, $Keys<typeof Errors>>;
50
- export type LogErrorOptions = {|
51
- cause?: Error | null | void,
52
- loggedMetadata?: Metadata | null | void,
53
- metadata?: Metadata | null | void,
54
- |};
55
- /**
56
- * Provides logging infrastructure for Perseus
57
- */
58
- export interface ILogger {
59
- log(message: string, extra?: Metadata | null | void): void;
60
- error(message: string, kind: ErrorKind, extra?: LogErrorOptions): void;
61
- }
62
- declare export var Log: ILogger;
@@ -1,33 +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 PropTypes from "prop-types";
8
- import type { ChangeFn } from "../types";
9
-
10
- /**
11
- * this.change()
12
- *
13
- * Can be called as follows:
14
- * this.change(newProps, callback);
15
- *
16
- * this.change(propName, propValue, callback);
17
- *
18
- * this.change(propName) -> returns a lambda that takes a prop value to
19
- * set and a callback to call after having set that value.
20
- */
21
- declare export var change: ChangeFn;
22
- declare export var propTypes: {|
23
- +onChange: PropTypes.Validator<(...args: any[]) => any>,
24
- |};
25
- export type ChangeableProps = {|
26
- onChange: (
27
- values: {
28
- [key: string]: any,
29
- },
30
- callback?: () => mixed | null | void,
31
- silent?: boolean
32
- ) => mixed,
33
- |};
@@ -1,10 +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 var EditorJsonify: {|
8
- +serialize: () => any,
9
- |};
10
- declare export default typeof EditorJsonify;
@@ -1,33 +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 PropTypes from "prop-types";
8
- import type { CSSProperties } from "aphrodite";
9
- export type KeypadProps = {|
10
- keypadStyle?: CSSProperties,
11
- |};
12
- export type KeypadApiOptions = {|
13
- customKeypad: boolean,
14
- nativeKeypadProxy: any,
15
- |};
16
- declare var ProvideKeypad: {|
17
- +propTypes: {|
18
- +apiOptions: PropTypes.Requireable<
19
- PropTypes.InferProps<{|
20
- customKeypad: PropTypes.Requireable<boolean>,
21
- nativeKeypadProxy: PropTypes.Requireable<(...args: any[]) => any>,
22
- |}>
23
- >,
24
- +keypadStyle: PropTypes.Requireable<any>,
25
- |},
26
- +getInitialState: () => {|
27
- keypadElement: any | null,
28
- |},
29
- +componentDidMount: () => void,
30
- +componentWillUnmount: () => void,
31
- +keypadElement: () => any,
32
- |};
33
- declare export default typeof ProvideKeypad;
@@ -1,11 +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 var WidgetJsonifyDeprecated: {|
8
- +getUserInput: () => any,
9
- +getUserInputFromProps: (props: any) => any,
10
- |};
11
- declare export default typeof WidgetJsonifyDeprecated;
@@ -1,20 +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
- * These are things that widgets should exclude when serializing themselves.
9
- *
10
- * The use of this list needs to die. Basically, there are codepaths that
11
- * blindly serialize the "props" of a widget so that it can pass around its
12
- * info. Unfortunately, props aren't guaranteed to be serializable, and
13
- * automatically serializing schemaless list of attributes causes issues (e.g.
14
- * circular JSON structures sometimes).
15
- *
16
- * This blocks things that we know don't need to be serialized.
17
- */
18
- declare var denylist: string[];
19
- declare export var removeDenylistProps: (props: any) => any;
20
- declare export default typeof denylist;
@@ -1,55 +0,0 @@
1
- // @flow
2
- /**
3
- * Type definitions for multi-item types, including:
4
- *
5
- * - Item: A multi-item tree wrapped in a `_multi` key, to help us recognize it
6
- * as a multi-item in other contexts and avoid misinterpreting its
7
- * other properties.
8
- * - ItemTree: A multi-item without the `_multi` key. Conforms to the Tree
9
- * interface, so it's compatible with our tree traversal functions.
10
- * - And the various types of nodes that compose a tree.
11
- */
12
- import type {WidgetDict, ImageDict} from "../types.js";
13
- import type {Tree, ArrayNode, ObjectNode} from "./tree-types.js";
14
-
15
- export type ContentNode = {
16
- // TODO(mdr): When we first drafted the multi-item feature, we named
17
- // content nodes "item" nodes, and later decided the term was
18
- // ambiguous and switched to "content". But we're temporarily keeping
19
- // support for the "item" string when inferring item shape, so that we
20
- // don't crash on multi-items we've already created - but all new
21
- // content nodes will be generated with the "content" string.
22
- //
23
- // Code blocks that enable this legacy support are greppable with the
24
- // keyword #LegacyContentNode.
25
- __type: "content" | "item",
26
- // Perseus has default values for these fields, so they're all optional.
27
- content?: ?string,
28
- images?: ?ImageDict,
29
- widgets?: ?WidgetDict,
30
- ...
31
- };
32
- export type HintNode = {
33
- __type: "hint",
34
- // Perseus has default values for these fields, so they're all optional.
35
- content?: ?string,
36
- images?: ?ImageDict,
37
- widgets?: ?WidgetDict,
38
- replace?: ?boolean,
39
- ...
40
- };
41
- export type TagsNode = $ReadOnlyArray<string>;
42
-
43
- export type ItemArrayNode = ArrayNode<ContentNode, HintNode, TagsNode>;
44
- export type ItemObjectNode = ObjectNode<ContentNode, HintNode, TagsNode>;
45
- export type ItemTree = Tree<ContentNode, HintNode, TagsNode>;
46
-
47
- // TODO(jeremy): I think we could refine this root type for multi items. Right
48
- // now a _multi's value can be _anything_ including "primitive" node types such
49
- // as "type: content" or "type: hint". That doesn't seem to match the shapes
50
- // that are in use to date. We could also move to a strict type at that point
51
- // because it appears that we _never_ add other root keys to an item that
52
- // specifies the `_multi` key. I think we'd be safe to restrict this root
53
- // object type to something like the following:
54
- // export type Item = {|_multi: ItemArrayNode | ItemObjectNode|};
55
- export type Item = {_multi: ItemTree, ...};
@@ -1,66 +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 { Item, ItemTree, ContentNode, HintNode } from "./item-types";
8
- import type { Shape } from "./shape-types";
9
-
10
- /**
11
- * Return a semantically empty ItemTree that conforms to the given shape.
12
- *
13
- * - An empty content node has an empty content string and no widgets/images.
14
- * - An empty hint node has an empty content string and no widgets/images.
15
- * - An empty array node has no elements.
16
- * - An empty object node has a semantically empty node for each of its keys.
17
- * (That is, we recursively call buildEmptyItemTreeForShape for each key.)
18
- */
19
- declare export function buildEmptyItemTreeForShape(shape: Shape): ItemTree;
20
-
21
- /**
22
- * Return a semantically empty Item that conforms to the given shape.
23
- *
24
- * - An empty content node has an empty content string and no widgets/images.
25
- * - An empty hint node has an empty content string and no widgets/images.
26
- * - An empty array node has no elements.
27
- * - An empty object node has a semantically empty node for each of its keys.
28
- * (That is, we recursively call buildEmptyItemTreeForShape for each key.)
29
- */
30
- declare export function buildEmptyItemForShape(shape: Shape): Item;
31
-
32
- /**
33
- * Given an Item and its Shape, yield all of its content nodes to the callback.
34
- */
35
- declare export function findContentNodesInItem(
36
- item: Item,
37
- shape: Shape,
38
- callback: (c: ContentNode) => any
39
- ): void;
40
-
41
- /**
42
- * Given an Item and its Shape, yield all of its hint nodes to the callback.
43
- */
44
- declare export function findHintNodesInItem(
45
- item: Item,
46
- shape: Shape,
47
- callback: (h: HintNode) => any
48
- ): void;
49
-
50
- /**
51
- * Given an ItemTree, return a Shape that it conforms to.
52
- *
53
- * The Shape might not be complete or correct Shape that this Item was designed
54
- * for. If you have access to the intended Shape, use that instead.
55
- */
56
- declare export function inferItemShape(item: Item): Shape;
57
-
58
- /**
59
- * Convert the given Item to an ItemTree, by unwrapping the `_multi` key.
60
- */
61
- declare export function itemToTree(item: Item): ItemTree;
62
-
63
- /**
64
- * Convert the given ItemTree to an Item, by wrapping it in the `_multi` key.
65
- */
66
- declare export function treeToItem(node: ItemTree): Item;