@khanacademy/perseus 7.2.1 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/article-renderer.d.ts +27 -40
  3. package/dist/components/math-input.d.ts +1 -1
  4. package/dist/components/sortable.d.ts +1 -1
  5. package/dist/components/tex-buttons.d.ts +1 -1
  6. package/dist/dependencies.d.ts +7 -1
  7. package/dist/es/index.js +1205 -1218
  8. package/dist/es/index.js.map +1 -1
  9. package/dist/hints-renderer.d.ts +1 -1
  10. package/dist/index.js +1207 -1221
  11. package/dist/index.js.map +1 -1
  12. package/dist/interaction-tracker.d.ts +3 -3
  13. package/dist/item-renderer.d.ts +2 -1
  14. package/dist/mixins/provide-keypad.d.ts +15 -12
  15. package/dist/multi-items/multi-renderer.d.ts +2 -1
  16. package/dist/perseus-api.d.ts +2 -2
  17. package/dist/renderer.d.ts +1 -1
  18. package/dist/server-item-renderer.d.ts +3 -1
  19. package/dist/types.d.ts +32 -11
  20. package/dist/widgets/expression.d.ts +410 -13
  21. package/dist/widgets/graded-group.d.ts +3 -3
  22. package/dist/widgets/interactive-graph.d.ts +1 -1
  23. package/dist/widgets/sequence.d.ts +3 -3
  24. package/dist/widgets/table.d.ts +8 -1
  25. package/dist/widgets.d.ts +1 -1
  26. package/package.json +34 -34
  27. package/src/__stories__/article-renderer.stories.tsx +35 -2
  28. package/src/__testdata__/article-renderer.testdata.ts +74 -1
  29. package/src/__testdata__/item-renderer.testdata.ts +1 -1
  30. package/src/__testdata__/renderer.testdata.ts +1 -1
  31. package/src/__tests__/item-renderer.test.tsx +13 -2
  32. package/src/__tests__/mock-asset-loading-widget.tsx +1 -1
  33. package/src/__tests__/perseus-markdown.test.ts +17 -17
  34. package/src/__tests__/renderer-api.test.tsx +21 -21
  35. package/src/__tests__/renderer.test.tsx +13 -13
  36. package/src/__tests__/server-item-renderer.test.tsx +12 -4
  37. package/src/__tests__/tex-wrangler.test.ts +1 -1
  38. package/src/article-renderer.tsx +75 -66
  39. package/src/components/__tests__/number-input.test.tsx +4 -4
  40. package/src/components/__tests__/sortable.test.tsx +2 -2
  41. package/src/components/fixed-to-responsive.tsx +1 -1
  42. package/src/components/graph.tsx +11 -11
  43. package/src/components/graphie-classes.ts +7 -7
  44. package/src/components/graphie.tsx +14 -14
  45. package/src/components/highlighting/highlightable-content.tsx +1 -1
  46. package/src/components/highlighting/ui/highlight-renderer.tsx +1 -1
  47. package/src/components/highlighting/ui/util.ts +2 -2
  48. package/src/components/highlighting/word-indexer.tsx +4 -4
  49. package/src/components/icon.tsx +1 -1
  50. package/src/components/image-loader.tsx +4 -4
  51. package/src/components/input-with-examples.tsx +2 -2
  52. package/src/components/lint.tsx +1 -1
  53. package/src/components/math-input.tsx +5 -5
  54. package/src/components/math-output.tsx +1 -1
  55. package/src/components/multi-button-group.tsx +1 -1
  56. package/src/components/number-input.tsx +10 -10
  57. package/src/components/prop-check-box.tsx +1 -1
  58. package/src/components/simple-keypad-input.tsx +4 -4
  59. package/src/components/sortable.tsx +42 -41
  60. package/src/components/svg-image.tsx +12 -12
  61. package/src/components/tex-buttons.tsx +4 -3
  62. package/src/components/text-input.tsx +8 -8
  63. package/src/components/text-list-editor.tsx +11 -11
  64. package/src/components/visibility-observer/create-visibility-observer.ts +1 -1
  65. package/src/components/visibility-observer/visibility-observer.tsx +2 -2
  66. package/src/components/zoomable-tex.tsx +3 -3
  67. package/src/components/zoomable.tsx +8 -8
  68. package/src/dependencies.ts +16 -1
  69. package/src/hint-renderer.tsx +3 -3
  70. package/src/hints-renderer.tsx +11 -11
  71. package/src/init.ts +1 -1
  72. package/src/interaction-tracker.ts +7 -7
  73. package/src/interactive2/__tests__/movable-point.test.ts +1 -1
  74. package/src/interactive2/interactive-util.ts +6 -6
  75. package/src/interactive2/movable-helper-methods.ts +2 -2
  76. package/src/interactive2/movable-line-options.ts +37 -37
  77. package/src/interactive2/movable-line.ts +2 -2
  78. package/src/interactive2/movable-point-options.ts +29 -29
  79. package/src/interactive2/movable-point.tsx +2 -2
  80. package/src/interactive2/movable-polygon-options.ts +45 -45
  81. package/src/interactive2/movable-polygon.ts +2 -2
  82. package/src/interactive2/movable.ts +2 -2
  83. package/src/interactive2/objective_.ts +1 -1
  84. package/src/interactive2/wrapped-defaults.ts +2 -2
  85. package/src/interactive2/wrapped-ellipse.ts +9 -9
  86. package/src/interactive2/wrapped-line.ts +8 -8
  87. package/src/interactive2/wrapped-path.ts +5 -5
  88. package/src/item-renderer.tsx +66 -48
  89. package/src/mixins/changeable.ts +2 -2
  90. package/src/mixins/editor-jsonify.ts +1 -1
  91. package/src/mixins/provide-keypad.tsx +23 -37
  92. package/src/mixins/widget-jsonify-deprecated.ts +1 -1
  93. package/src/multi-items/__tests__/items.test.ts +1 -1
  94. package/src/multi-items/__tests__/multi-renderer.test.tsx +13 -8
  95. package/src/multi-items/__tests__/trees.test.ts +12 -12
  96. package/src/multi-items/item-types.ts +2 -2
  97. package/src/multi-items/items.ts +1 -1
  98. package/src/multi-items/multi-renderer.tsx +30 -18
  99. package/src/multi-items/prop-type-builders.ts +2 -2
  100. package/src/multi-items/tree-types.ts +4 -4
  101. package/src/multi-items/trees.ts +16 -16
  102. package/src/perseus-env.ts +2 -2
  103. package/src/perseus-markdown.tsx +5 -5
  104. package/src/renderer.tsx +39 -39
  105. package/src/server-item-renderer.tsx +26 -21
  106. package/src/sigfigs.ts +1 -1
  107. package/src/traversal.ts +1 -1
  108. package/src/types.ts +52 -16
  109. package/src/util/answer-types.ts +14 -14
  110. package/src/util/geometry.ts +7 -7
  111. package/src/util/graphie.ts +32 -32
  112. package/src/util/interactive.ts +118 -118
  113. package/src/util/math.ts +4 -4
  114. package/src/util/react-render.tsx +1 -1
  115. package/src/util/scroll-utils.ts +2 -2
  116. package/src/util/tex.ts +3 -3
  117. package/src/util.ts +15 -15
  118. package/src/widget-container.tsx +1 -1
  119. package/src/widgets/__stories__/definition.stories.tsx +8 -1
  120. package/src/widgets/__stories__/expression.stories.tsx +2 -2
  121. package/src/widgets/__stories__/test-keypad-context-wrapper.tsx +3 -3
  122. package/src/widgets/__testdata__/numeric-input.testdata.ts +1 -1
  123. package/src/widgets/__tests__/__snapshots__/video.test.ts.snap +2 -2
  124. package/src/widgets/__tests__/{expression.test.ts → expression.test.tsx} +77 -11
  125. package/src/widgets/__tests__/grapher.cypress.ts +32 -32
  126. package/src/widgets/__tests__/group.test.tsx +1 -1
  127. package/src/widgets/__tests__/interactive-graph.cypress.ts +40 -40
  128. package/src/widgets/__tests__/interactive-graph.test.ts +1 -1
  129. package/src/widgets/__tests__/numeric-input.test.ts +1 -1
  130. package/src/widgets/__tests__/passage.test.tsx +2 -2
  131. package/src/widgets/__tests__/plotter.test.tsx +2 -1
  132. package/src/widgets/__tests__/radio/base-radio.test.tsx +7 -7
  133. package/src/widgets/__tests__/renderQuestion.tsx +29 -21
  134. package/src/widgets/categorizer.tsx +4 -4
  135. package/src/widgets/cs-program.tsx +2 -2
  136. package/src/widgets/dropdown.tsx +1 -1
  137. package/src/widgets/expression.tsx +92 -57
  138. package/src/widgets/graded-group-set.tsx +5 -5
  139. package/src/widgets/graded-group.tsx +29 -21
  140. package/src/widgets/grapher/util.tsx +6 -6
  141. package/src/widgets/grapher.tsx +10 -10
  142. package/src/widgets/group.tsx +3 -3
  143. package/src/widgets/iframe.tsx +2 -2
  144. package/src/widgets/image.tsx +1 -1
  145. package/src/widgets/input-number.tsx +4 -4
  146. package/src/widgets/interaction.tsx +77 -77
  147. package/src/widgets/interactive-graph.tsx +109 -107
  148. package/src/widgets/label-image/marker.tsx +2 -2
  149. package/src/widgets/label-image.test.ts +1 -1
  150. package/src/widgets/label-image.tsx +7 -7
  151. package/src/widgets/lights-puzzle.tsx +2 -2
  152. package/src/widgets/matcher.tsx +6 -6
  153. package/src/widgets/matrix.tsx +20 -20
  154. package/src/widgets/measurer.tsx +3 -3
  155. package/src/widgets/molecule/__tests__/layout.test.ts +4 -4
  156. package/src/widgets/molecule/__tests__/parser.test.ts +14 -14
  157. package/src/widgets/molecule/smiles-parser.ts +3 -3
  158. package/src/widgets/molecule.tsx +4 -4
  159. package/src/widgets/number-line.tsx +11 -11
  160. package/src/widgets/numeric-input.tsx +11 -11
  161. package/src/widgets/orderer.tsx +38 -38
  162. package/src/widgets/passage/__tests__/passage-markdown.test.ts +1 -1
  163. package/src/widgets/passage/passage-markdown.tsx +4 -4
  164. package/src/widgets/passage-ref-target.tsx +1 -1
  165. package/src/widgets/passage-ref.tsx +4 -6
  166. package/src/widgets/passage.tsx +11 -11
  167. package/src/widgets/plotter.tsx +9 -9
  168. package/src/widgets/radio/base-radio.tsx +11 -11
  169. package/src/widgets/radio/choice-icon/choice-icon.tsx +2 -2
  170. package/src/widgets/radio/choice.tsx +1 -1
  171. package/src/widgets/radio/option-status.tsx +1 -1
  172. package/src/widgets/radio/widget.tsx +6 -6
  173. package/src/widgets/radio.ts +1 -1
  174. package/src/widgets/reaction-diagram.tsx +8 -8
  175. package/src/widgets/sequence.tsx +12 -4
  176. package/src/widgets/simulator.tsx +14 -14
  177. package/src/widgets/sorter.tsx +4 -4
  178. package/src/widgets/table.tsx +8 -8
  179. package/src/widgets/transformer.tsx +92 -92
  180. package/src/widgets/unit.tsx +17 -17
  181. package/src/widgets/video-transcript-link.test.tsx +3 -3
  182. package/src/widgets/video-transcript-link.tsx +1 -1
  183. package/src/widgets/video.tsx +1 -1
  184. package/src/widgets.ts +5 -5
  185. package/src/zoom.ts +22 -22
  186. package/tsconfig-build.tsbuildinfo +1 -1
  187. package/dist/a11y.js.flow +0 -11
  188. package/dist/all-widgets.js.flow +0 -33
  189. package/dist/article-renderer.js.flow +0 -73
  190. package/dist/asset-context.js.flow +0 -15
  191. package/dist/basic-widgets.js.flow +0 -33
  192. package/dist/components/button-group.js.flow +0 -33
  193. package/dist/components/constants.js.flow +0 -13
  194. package/dist/components/fixed-to-responsive.js.flow +0 -34
  195. package/dist/components/graph.js.flow +0 -66
  196. package/dist/components/graphie-classes.js.flow +0 -19
  197. package/dist/components/graphie-movables.js.flow +0 -22
  198. package/dist/components/graphie.js.flow +0 -69
  199. package/dist/components/highlighting/highlightable-content.js.flow +0 -56
  200. package/dist/components/highlighting/highlights.js.flow +0 -54
  201. package/dist/components/highlighting/ranges.js.flow +0 -60
  202. package/dist/components/highlighting/types.js.flow +0 -70
  203. package/dist/components/highlighting/ui/highlight-renderer.js.flow +0 -43
  204. package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +0 -41
  205. package/dist/components/highlighting/ui/highlight-tooltip.js.flow +0 -22
  206. package/dist/components/highlighting/ui/highlighting-ui.js.flow +0 -30
  207. package/dist/components/highlighting/ui/selection-tracker.js.flow +0 -54
  208. package/dist/components/highlighting/ui/types.js.flow +0 -22
  209. package/dist/components/highlighting/ui/util.js.flow +0 -42
  210. package/dist/components/highlighting/word-indexer.js.flow +0 -21
  211. package/dist/components/hud.js.flow +0 -14
  212. package/dist/components/icon.js.flow +0 -31
  213. package/dist/components/image-loader.js.flow +0 -49
  214. package/dist/components/info-tip/info-tip.js.flow +0 -20
  215. package/dist/components/info-tip.js.flow +0 -18
  216. package/dist/components/inline-icon.js.flow +0 -39
  217. package/dist/components/input-with-examples.js.flow +0 -58
  218. package/dist/components/lint.js.flow +0 -58
  219. package/dist/components/math-input.js.flow +0 -49
  220. package/dist/components/math-output.js.flow +0 -33
  221. package/dist/components/multi-button-group.js.flow +0 -35
  222. package/dist/components/number-input.js.flow +0 -42
  223. package/dist/components/prop-check-box.js.flow +0 -8
  224. package/dist/components/range-input.js.flow +0 -20
  225. package/dist/components/simple-keypad-input.js.flow +0 -16
  226. package/dist/components/sortable.js.flow +0 -91
  227. package/dist/components/stub-tag-editor.js.flow +0 -18
  228. package/dist/components/svg-image.js.flow +0 -85
  229. package/dist/components/tex-buttons.js.flow +0 -26
  230. package/dist/components/tex.js.flow +0 -25
  231. package/dist/components/text-input.js.flow +0 -39
  232. package/dist/components/text-list-editor.js.flow +0 -22
  233. package/dist/components/tooltip.js.flow +0 -51
  234. package/dist/components/visibility-observer/create-visibility-observer.js.flow +0 -23
  235. package/dist/components/visibility-observer/get-scroll-parent.js.flow +0 -7
  236. package/dist/components/visibility-observer/visibility-observer.js.flow +0 -36
  237. package/dist/components/zoomable-tex.js.flow +0 -18
  238. package/dist/components/zoomable.js.flow +0 -70
  239. package/dist/components.js.flow +0 -22
  240. package/dist/definition-context.js.flow +0 -25
  241. package/dist/dependencies.js.flow +0 -9
  242. package/dist/error-boundary.js.flow +0 -19
  243. package/dist/extra-widgets.js.flow +0 -33
  244. package/dist/hint-renderer.js.flow +0 -32
  245. package/dist/hints-renderer.js.flow +0 -41
  246. package/dist/icon-paths.js.flow +0 -123
  247. package/dist/index.js.flow +0 -134
  248. package/dist/init.js.flow +0 -20
  249. package/dist/interaction-tracker.js.flow +0 -35
  250. package/dist/interactive2/interactive-util.js.flow +0 -50
  251. package/dist/interactive2/movable-helper-methods.js.flow +0 -15
  252. package/dist/interactive2/movable-line-options.js.flow +0 -44
  253. package/dist/interactive2/movable-line.js.flow +0 -8
  254. package/dist/interactive2/movable-point-options.js.flow +0 -44
  255. package/dist/interactive2/movable-point.js.flow +0 -8
  256. package/dist/interactive2/movable-polygon-options.js.flow +0 -47
  257. package/dist/interactive2/movable-polygon.js.flow +0 -8
  258. package/dist/interactive2/movable.js.flow +0 -8
  259. package/dist/interactive2/objective_.js.flow +0 -25
  260. package/dist/interactive2/types.js.flow +0 -8
  261. package/dist/interactive2/wrapped-defaults.js.flow +0 -11
  262. package/dist/interactive2/wrapped-ellipse.js.flow +0 -14
  263. package/dist/interactive2/wrapped-line.js.flow +0 -14
  264. package/dist/interactive2/wrapped-path.js.flow +0 -13
  265. package/dist/interactive2.js.flow +0 -16
  266. package/dist/item-renderer.js.flow +0 -132
  267. package/dist/item-version.js.flow +0 -11
  268. package/dist/jipt-paragraphs.js.flow +0 -14
  269. package/dist/loading-context.js.flow +0 -12
  270. package/dist/logging/log.js.flow +0 -62
  271. package/dist/mixins/changeable.js.flow +0 -33
  272. package/dist/mixins/editor-jsonify.js.flow +0 -10
  273. package/dist/mixins/provide-keypad.js.flow +0 -33
  274. package/dist/mixins/widget-jsonify-deprecated.js.flow +0 -11
  275. package/dist/mixins/widget-prop-denylist.js.flow +0 -20
  276. package/dist/multi-items/item-types.js.flow +0 -55
  277. package/dist/multi-items/items.js.flow +0 -66
  278. package/dist/multi-items/multi-renderer.js.flow +0 -213
  279. package/dist/multi-items/prop-type-builders.js.flow +0 -22
  280. package/dist/multi-items/shape-types.js.flow +0 -60
  281. package/dist/multi-items/shapes.js.flow +0 -25
  282. package/dist/multi-items/tree-types.js.flow +0 -45
  283. package/dist/multi-items/trees.js.flow +0 -147
  284. package/dist/multi-items.js.flow +0 -36
  285. package/dist/perseus-api.js.flow +0 -151
  286. package/dist/perseus-env.js.flow +0 -6
  287. package/dist/perseus-error.js.flow +0 -16
  288. package/dist/perseus-markdown.js.flow +0 -20
  289. package/dist/perseus-types.js.flow +0 -1041
  290. package/dist/question-paragraph.js.flow +0 -17
  291. package/dist/renderability.js.flow +0 -19
  292. package/dist/renderer.js.flow +0 -325
  293. package/dist/server-item-renderer.js.flow +0 -132
  294. package/dist/sigfigs.js.flow +0 -41
  295. package/dist/styles/constants.js.flow +0 -62
  296. package/dist/styles/global-constants.js.flow +0 -348
  297. package/dist/styles/global-styles.js.flow +0 -53
  298. package/dist/styles/media-queries.js.flow +0 -35
  299. package/dist/styles/shared.js.flow +0 -8
  300. package/dist/tex-wrangler.js.flow +0 -13
  301. package/dist/translation-linter.js.flow +0 -32
  302. package/dist/traversal.js.flow +0 -26
  303. package/dist/types.js.flow +0 -318
  304. package/dist/util/a11y.js.flow +0 -8
  305. package/dist/util/answer-types.js.flow +0 -49
  306. package/dist/util/colors.js.flow +0 -95
  307. package/dist/util/fix-passage-refs.js.flow +0 -8
  308. package/dist/util/geometry.js.flow +0 -37
  309. package/dist/util/graph-utils.js.flow +0 -9
  310. package/dist/util/graphie.js.flow +0 -8
  311. package/dist/util/interactive.js.flow +0 -11
  312. package/dist/util/katex-preprocess.js.flow +0 -12
  313. package/dist/util/math.js.flow +0 -62
  314. package/dist/util/mobile-native-utils.js.flow +0 -12
  315. package/dist/util/react-render.js.flow +0 -12
  316. package/dist/util/register-all-widgets-for-testing.js.flow +0 -7
  317. package/dist/util/scroll-utils.js.flow +0 -19
  318. package/dist/util/sizing-utils.js.flow +0 -20
  319. package/dist/util/tex.js.flow +0 -17
  320. package/dist/util/url-utils.js.flow +0 -11
  321. package/dist/util.graphie.js.flow +0 -14
  322. package/dist/util.js.flow +0 -319
  323. package/dist/version.js.flow +0 -17
  324. package/dist/widget-container.js.flow +0 -33
  325. package/dist/widgets/categorizer.js.flow +0 -70
  326. package/dist/widgets/cs-program.js.flow +0 -54
  327. package/dist/widgets/definition.js.flow +0 -57
  328. package/dist/widgets/dropdown.js.flow +0 -63
  329. package/dist/widgets/explanation.js.flow +0 -58
  330. package/dist/widgets/expression.js.flow +0 -116
  331. package/dist/widgets/graded-group-answer-bar.js.flow +0 -24
  332. package/dist/widgets/graded-group-set.js.flow +0 -65
  333. package/dist/widgets/graded-group.js.flow +0 -78
  334. package/dist/widgets/grapher/util.js.flow +0 -38
  335. package/dist/widgets/grapher.js.flow +0 -102
  336. package/dist/widgets/group.js.flow +0 -60
  337. package/dist/widgets/iframe.js.flow +0 -53
  338. package/dist/widgets/image.js.flow +0 -73
  339. package/dist/widgets/input-number.js.flow +0 -94
  340. package/dist/widgets/interaction/arrow-picker.js.flow +0 -21
  341. package/dist/widgets/interaction/color-picker.js.flow +0 -23
  342. package/dist/widgets/interaction/dash-picker.js.flow +0 -21
  343. package/dist/widgets/interaction/element-container.js.flow +0 -28
  344. package/dist/widgets/interaction.js.flow +0 -60
  345. package/dist/widgets/interactive-graph.js.flow +0 -239
  346. package/dist/widgets/label-image/answer-choices.js.flow +0 -55
  347. package/dist/widgets/label-image/marker.js.flow +0 -31
  348. package/dist/widgets/label-image/types.js.flow +0 -23
  349. package/dist/widgets/label-image.js.flow +0 -142
  350. package/dist/widgets/lights-puzzle.js.flow +0 -58
  351. package/dist/widgets/matcher.js.flow +0 -106
  352. package/dist/widgets/matrix.js.flow +0 -80
  353. package/dist/widgets/measurer.js.flow +0 -30
  354. package/dist/widgets/molecule/molecule-drawing.js.flow +0 -11
  355. package/dist/widgets/molecule/molecule-layout.js.flow +0 -96
  356. package/dist/widgets/molecule/smiles-parser.js.flow +0 -26
  357. package/dist/widgets/molecule.js.flow +0 -60
  358. package/dist/widgets/number-line.js.flow +0 -102
  359. package/dist/widgets/numeric-input.js.flow +0 -105
  360. package/dist/widgets/orderer.js.flow +0 -81
  361. package/dist/widgets/passage/passage-markdown.js.flow +0 -33
  362. package/dist/widgets/passage-ref-target.js.flow +0 -52
  363. package/dist/widgets/passage-ref.js.flow +0 -85
  364. package/dist/widgets/passage.js.flow +0 -157
  365. package/dist/widgets/plotter.js.flow +0 -112
  366. package/dist/widgets/radio/base-radio.js.flow +0 -50
  367. package/dist/widgets/radio/choice-a11y-text.js.flow +0 -14
  368. package/dist/widgets/radio/choice-icon/choice-icon.js.flow +0 -22
  369. package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +0 -16
  370. package/dist/widgets/radio/choice-icon/shared-styles.js.flow +0 -11
  371. package/dist/widgets/radio/choice-none-above.js.flow +0 -16
  372. package/dist/widgets/radio/choice.js.flow +0 -29
  373. package/dist/widgets/radio/choice.jsx.fixture.js.flow +0 -7
  374. package/dist/widgets/radio/focus-ring.js.flow +0 -22
  375. package/dist/widgets/radio/option-status.js.flow +0 -16
  376. package/dist/widgets/radio/util.js.flow +0 -12
  377. package/dist/widgets/radio/widget.js.flow +0 -80
  378. package/dist/widgets/radio.js.flow +0 -31
  379. package/dist/widgets/reaction-diagram.js.flow +0 -46
  380. package/dist/widgets/sequence.js.flow +0 -53
  381. package/dist/widgets/simulator.js.flow +0 -107
  382. package/dist/widgets/sorter.js.flow +0 -102
  383. package/dist/widgets/table.js.flow +0 -67
  384. package/dist/widgets/transformer.js.flow +0 -127
  385. package/dist/widgets/unit.js.flow +0 -93
  386. package/dist/widgets/video-transcript-link.js.flow +0 -15
  387. package/dist/widgets/video.js.flow +0 -57
  388. package/dist/widgets.js.flow +0 -108
  389. package/dist/zoom.js.flow +0 -7
  390. package/src/multi-items/item-types.js.flow +0 -55
@@ -41,6 +41,7 @@ import {StyleSheet, css} from "aphrodite"; // eslint-disable-line import/no-extr
41
41
  import lens from "hubble"; // eslint-disable-line import/no-extraneous-dependencies
42
42
  import * as React from "react";
43
43
 
44
+ import {DependenciesContext} from "../dependencies";
44
45
  import HintsRenderer from "../hints-renderer";
45
46
  import {Errors, Log} from "../logging/log";
46
47
  import Renderer from "../renderer";
@@ -50,7 +51,12 @@ import {itemToTree} from "./items";
50
51
  import {buildMapper} from "./trees";
51
52
 
52
53
  import type {Widget} from "../renderer";
53
- import type {APIOptions, FilterCriterion, PerseusScore} from "../types";
54
+ import type {
55
+ APIOptions,
56
+ FilterCriterion,
57
+ PerseusDependenciesV2,
58
+ PerseusScore,
59
+ } from "../types";
54
60
  import type {Item, ContentNode, HintNode, TagsNode} from "./item-types";
55
61
  import type {Shape, ArrayShape} from "./shape-types";
56
62
  import type {Tree} from "./tree-types";
@@ -62,7 +68,7 @@ type SerializedState = any; // TODO(mdr)
62
68
 
63
69
  type RendererProps = JSX.LibraryManagedAttributes<
64
70
  typeof Renderer,
65
- // @ts-expect-error [FEI-5003] - TS2344 - Type 'typeof Renderer' does not satisfy the constraint 'keyof IntrinsicElements | JSXElementConstructor<any>'.
71
+ // @ts-expect-error - TS2344 - Type 'typeof Renderer' does not satisfy the constraint 'keyof IntrinsicElements | JSXElementConstructor<any>'.
66
72
  React.ComponentProps<typeof Renderer>
67
73
  >;
68
74
 
@@ -82,7 +88,7 @@ type HintRendererData = {
82
88
  hint: Hint;
83
89
  };
84
90
  type RendererData = ContentRendererData | HintRendererData;
85
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic.
91
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic.
86
92
  type RendererDataTree = Tree<ContentRendererData, HintRendererData, null>;
87
93
 
88
94
  /**
@@ -93,11 +99,11 @@ type RendererDataTree = Tree<ContentRendererData, HintRendererData, null>;
93
99
  * really helping us out as I now have to suppress this rather than
94
100
  * get value from the type. :(
95
101
  */
96
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic.
102
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic.
97
103
  type RendererTree = Tree<ContentRendererElement, HintRendererElement, null>;
98
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic.
104
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic.
99
105
  type ScoreTree = Tree<Score, null, null>;
100
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic.
106
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic.
101
107
  type SerializedStateTree = Tree<SerializedState, null, null>;
102
108
 
103
109
  type Props = {
@@ -109,6 +115,8 @@ type Props = {
109
115
  onInteractWithWidget?: (id: string) => void;
110
116
  apiOptions?: APIOptions;
111
117
  reviewMode?: boolean | null | undefined;
118
+
119
+ dependencies: PerseusDependenciesV2;
112
120
  };
113
121
  type State = {
114
122
  // We cache functions to generate renderers and refs in `rendererDataTree`,
@@ -141,17 +149,17 @@ class MultiRenderer extends React.Component<Props, State> {
141
149
  super(props);
142
150
 
143
151
  this.rendererDataTreeMapper = buildMapper()
144
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'unknown' is not assignable to parameter of type 'ContentNode'.
152
+ // @ts-expect-error - TS2345 - Argument of type 'unknown' is not assignable to parameter of type 'ContentNode'.
145
153
  .setContentMapper((c, _, p) => this._makeContentRendererData(c, p))
146
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type 'unknown' is not assignable to parameter of type 'HintNode'.
154
+ // @ts-expect-error - TS2345 - Argument of type 'unknown' is not assignable to parameter of type 'HintNode'.
147
155
  .setHintMapper((h) => this._makeHintRendererData(h))
148
156
  .setTagsMapper((t) => null);
149
157
 
150
- // @ts-expect-error [FEI-5003] - TS2322 - Type 'TreeMapperForLeavesAndCollections<unknown, any, unknown, any, unknown, unknown>' is not assignable to type 'TreeMapper<ContentRendererData, ContentRendererElement, HintRendererData, HintRendererElement, null, null>'.
158
+ // @ts-expect-error - TS2322 - Type 'TreeMapperForLeavesAndCollections<unknown, any, unknown, any, unknown, unknown>' is not assignable to type 'TreeMapper<ContentRendererData, ContentRendererElement, HintRendererData, HintRendererElement, null, null>'.
151
159
  this.getRenderersMapper = buildMapper()
152
- // @ts-expect-error [FEI-5003] - TS2571 - Object is of type 'unknown'.
160
+ // @ts-expect-error - TS2571 - Object is of type 'unknown'.
153
161
  .setContentMapper((c) => c.makeRenderer())
154
- // @ts-expect-error [FEI-5003] - TS2571 - Object is of type 'unknown'.
162
+ // @ts-expect-error - TS2571 - Object is of type 'unknown'.
155
163
  .setHintMapper((h) => h.makeRenderer())
156
164
  .setArrayMapper((renderers, data, shape) =>
157
165
  this._annotateRendererArray(
@@ -264,7 +272,7 @@ class MultiRenderer extends React.Component<Props, State> {
264
272
  * if this spread is including undocumented props so mapping
265
273
  * one to one could introduce a bug. Need to work out the exact
266
274
  * type for ContentNode and then fix this.
267
- */ // @ts-expect-error [FEI-5003] - TS2322 - Type '{ ref: (e: any) => any; findExternalWidgets: (criterion: any) => readonly (Widget | null | undefined)[]; serializedState: any; onSerializedStateUpdated: (state: any) => void; __type: "content" | "item"; ... 9 more ...; reviewMode?: boolean | ... 1 more ... | undefined; }' is not assignable to type 'InexactPartial<Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "content" | "images" | "onRender" | "linterContext" | "widgets" | "alwaysUpdate" | ... 6 more ... | "serializedState">>'.
275
+ */ // @ts-expect-error - TS2322 - Type '{ ref: (e: any) => any; findExternalWidgets: (criterion: any) => readonly (Widget | null | undefined)[]; serializedState: any; onSerializedStateUpdated: (state: any) => void; __type: "content" | "item"; ... 9 more ...; reviewMode?: boolean | ... 1 more ... | undefined; }' is not assignable to type 'InexactPartial<Pick<Readonly<Props> & Readonly<{ children?: ReactNode; }>, "content" | "images" | "onRender" | "linterContext" | "widgets" | "alwaysUpdate" | ... 6 more ... | "serializedState">>'.
268
276
  <Renderer
269
277
  {...this._getRendererProps()}
270
278
  {...content}
@@ -306,7 +314,7 @@ class MultiRenderer extends React.Component<Props, State> {
306
314
  makeRenderer: () => (
307
315
  <HintsRenderer
308
316
  {...this._getRendererProps()}
309
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
317
+ // @ts-expect-error - TS2769 - No overload matches this call.
310
318
  findExternalWidgets={findExternalWidgets}
311
319
  hints={[hint]}
312
320
  />
@@ -361,7 +369,7 @@ class MultiRenderer extends React.Component<Props, State> {
361
369
  // eslint-disable-next-line no-restricted-syntax
362
370
  leafMapper: ContentMapper<RendererData, O> &
363
371
  HintMapper<RendererData, O>,
364
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic.
372
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic.
365
373
  ): Tree<O, O, null> | null | undefined {
366
374
  const {rendererDataTree} = this.state;
367
375
 
@@ -506,7 +514,7 @@ class MultiRenderer extends React.Component<Props, State> {
506
514
  (renderers as any).firstN = (n: any) => (
507
515
  <HintsRenderer
508
516
  {...this._getRendererProps()}
509
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
517
+ // @ts-expect-error - TS2769 - No overload matches this call.
510
518
  findExternalWidgets={
511
519
  hintRendererDatas[0]
512
520
  ? hintRendererDatas[0].findExternalWidgets
@@ -547,9 +555,13 @@ class MultiRenderer extends React.Component<Props, State> {
547
555
 
548
556
  // Pass the renderer tree to the `children` function, which will
549
557
  // determine the actual content of this component.
550
- return this.props.children({
551
- renderers: this._getRenderers(),
552
- });
558
+ return (
559
+ <DependenciesContext.Provider value={this.props.dependencies}>
560
+ {this.props.children({
561
+ renderers: this._getRenderers(),
562
+ })}
563
+ </DependenciesContext.Provider>
564
+ );
553
565
  }
554
566
  }
555
567
 
@@ -39,7 +39,7 @@ export function shapePropType(...args: ReadonlyArray<any>): any {
39
39
  }).isRequired,
40
40
  ]);
41
41
 
42
- // @ts-expect-error [FEI-5003] - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
42
+ // @ts-expect-error - TS2556 - A spread argument must either have a tuple type or be passed to a rest parameter.
43
43
  return itemShape(...args);
44
44
  }
45
45
 
@@ -99,7 +99,7 @@ function buildTreePropTypeForShape(shape: Shape): any {
99
99
  return PropTypes.shape(propTypeShape);
100
100
  }
101
101
  throw new PerseusError(
102
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'type' does not exist on type 'never'.
102
+ // @ts-expect-error - TS2339 - Property 'type' does not exist on type 'never'.
103
103
  `unexpected shape type ${shape.type}`,
104
104
  Errors.InvalidInput,
105
105
  );
@@ -23,10 +23,10 @@
23
23
 
24
24
  // TODO(jeremy): We lost "arrayness" in D69450. It'd be nice to restore that
25
25
  // because right now ArrayNode doesn't add anything.
26
- // @ts-expect-error [FEI-5003] - TS2456 - Type alias 'ArrayNode' circularly references itself. | TS2315 - Type 'Tree' is not generic.
26
+ // @ts-expect-error - TS2456 - Type alias 'ArrayNode' circularly references itself. | TS2315 - Type 'Tree' is not generic.
27
27
  export type ArrayNode<C, H, T> = Tree<C, H, T>;
28
28
  export type ObjectNode<C, H, T> = {
29
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic.
29
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic.
30
30
  [k: string]: Tree<C, H, T>;
31
31
  };
32
32
 
@@ -37,11 +37,11 @@ export type ObjectNode<C, H, T> = {
37
37
  * in order to ensure that TypeScript can track its refinement and appropriate use.
38
38
  * It's messy.
39
39
  */
40
- // @ts-expect-error [FEI-5003] - TS2456 - Type alias 'Tree' circularly references itself. | TS2315 - Type 'ArrayNode' is not generic.
40
+ // @ts-expect-error - TS2456 - Type alias 'Tree' circularly references itself. | TS2315 - Type 'ArrayNode' is not generic.
41
41
  export type Tree<C, H, T> =
42
42
  | C
43
43
  | H
44
44
  | T
45
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'ArrayNode' is not generic.
45
+ // @ts-expect-error - TS2315 - Type 'ArrayNode' is not generic.
46
46
  | ArrayNode<C, H, T>
47
47
  | ObjectNode<C, H, T>;
@@ -98,13 +98,13 @@ export type ContentMapper<CI, CO> = (
98
98
  export type HintMapper<HI, HO> = (hint: HI, shape: HintShape, path: Path) => HO;
99
99
  export type TagsMapper<TI, TO> = (tag: TI, shape: TagsShape, path: Path) => TO;
100
100
  export type ArrayMapper<CI, CO, HI, HO, TI, TO> = (
101
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'ArrayNode' is not generic.
101
+ // @ts-expect-error - TS2315 - Type 'ArrayNode' is not generic.
102
102
  mappedArray: ArrayNode<CO, HO, TO>,
103
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'ArrayNode' is not generic.
103
+ // @ts-expect-error - TS2315 - Type 'ArrayNode' is not generic.
104
104
  originalArray: ArrayNode<CI, HI, TI>,
105
105
  shape: ArrayShape,
106
106
  path: Path,
107
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'ArrayNode' is not generic.
107
+ // @ts-expect-error - TS2315 - Type 'ArrayNode' is not generic.
108
108
  ) => ArrayNode<CO, HO, TO>;
109
109
 
110
110
  /**
@@ -120,7 +120,7 @@ export interface TreeMapper<CI, CO, HI, HO, TI, TO> {
120
120
  hint: HintMapper<HI, HO>;
121
121
  tags: TagsMapper<TI, TO>;
122
122
  array: ArrayMapper<CI, CO, HI, HO, TI, TO>;
123
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic. | TS2315 - Type 'Tree' is not generic.
123
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic. | TS2315 - Type 'Tree' is not generic.
124
124
  mapTree(tree: Tree<CI, HI, TI>, shape: Shape): Tree<CO, HO, TO>;
125
125
  }
126
126
 
@@ -196,7 +196,7 @@ class TreeMapperJustForLeaves<CI, CO, HI, HO, TI, TO> {
196
196
  );
197
197
  }
198
198
 
199
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic. | TS2315 - Type 'Tree' is not generic.
199
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic. | TS2315 - Type 'Tree' is not generic.
200
200
  mapTree(tree: Tree<CI, HI, TI>, shape: Shape): Tree<CO, HO, TO> {
201
201
  return mapTree(tree, shape, [], this);
202
202
  }
@@ -235,7 +235,7 @@ class TreeMapperForLeavesAndCollections<CI, CO, HI, HO, TI, TO> {
235
235
  );
236
236
  }
237
237
 
238
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic. | TS2315 - Type 'Tree' is not generic.
238
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic. | TS2315 - Type 'Tree' is not generic.
239
239
  mapTree(tree: Tree<CI, HI, TI>, shape: Shape): Tree<CO, HO, TO> {
240
240
  return mapTree(tree, shape, [], this);
241
241
  }
@@ -251,7 +251,7 @@ function identity<T>(x: T): T {
251
251
  * `setHintMapper`, `setTagMapper`, and `setArrayMapper` to specify
252
252
  * transformations for the individual node types.
253
253
  */
254
- // @ts-expect-error [FEI-5003] - TS2300 - Duplicate identifier 'C'. | TS2300 - Duplicate identifier 'H'. | TS2300 - Duplicate identifier 'T'.
254
+ // @ts-expect-error - TS2300 - Duplicate identifier 'C'. | TS2300 - Duplicate identifier 'H'. | TS2300 - Duplicate identifier 'T'.
255
255
  export function buildMapper<C, C, H, H, T, T>(): TreeMapperJustForLeaves<
256
256
  C,
257
257
  C,
@@ -268,12 +268,12 @@ export function buildMapper<C, C, H, H, T, T>(): TreeMapperJustForLeaves<
268
268
  * TreeMapper to each node, and return the resulting tree.
269
269
  */
270
270
  function mapTree<CI, CO, HI, HO, TI, TO>(
271
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic.
271
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic.
272
272
  tree: Tree<CI, HI, TI>,
273
273
  shape: Shape,
274
274
  path: Path,
275
275
  mappers: TreeMapper<CI, CO, HI, HO, TI, TO>,
276
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'Tree' is not generic.
276
+ // @ts-expect-error - TS2315 - Type 'Tree' is not generic.
277
277
  ): Tree<CO, HO, TO> {
278
278
  // We trust the shape of the multi-item to match the shape provided at
279
279
  // runtime. Therefore, in each shape branch, we cast the node to `any` and
@@ -291,20 +291,20 @@ function mapTree<CI, CO, HI, HO, TI, TO>(
291
291
  return mappers.tags(tags, shape, path);
292
292
  }
293
293
  if (shape.type === "array") {
294
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'ArrayNode' is not generic.
294
+ // @ts-expect-error - TS2315 - Type 'ArrayNode' is not generic.
295
295
  const array: ArrayNode<CI, HI, TI> = tree as any;
296
296
 
297
297
  if (!Array.isArray(array)) {
298
298
  throw new PerseusError(
299
299
  `Invalid object of type "${typeof array}" found at path ` +
300
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
300
+ // @ts-expect-error - TS2769 - No overload matches this call.
301
301
  `${["<root>"].concat(path).join(".")}. Expected array.`,
302
302
  Errors.Internal,
303
303
  );
304
304
  }
305
305
 
306
306
  const elementShape = shape.elementShape;
307
- // @ts-expect-error [FEI-5003] - TS2315 - Type 'ArrayNode' is not generic.
307
+ // @ts-expect-error - TS2315 - Type 'ArrayNode' is not generic.
308
308
  const mappedElements: ArrayNode<CO, HO, TO> = array.map((inner, i) =>
309
309
  mapTree(inner, elementShape, path.concat(i), mappers),
310
310
  );
@@ -316,7 +316,7 @@ function mapTree<CI, CO, HI, HO, TI, TO>(
316
316
  if (object && typeof object !== "object") {
317
317
  throw new PerseusError(
318
318
  `Invalid object of type "${typeof object}" found at ` +
319
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
319
+ // @ts-expect-error - TS2769 - No overload matches this call.
320
320
  `path ${["<root>"].concat(path).join(".")}. Expected ` +
321
321
  `"object" type.`,
322
322
  Errors.InvalidInput,
@@ -327,7 +327,7 @@ function mapTree<CI, CO, HI, HO, TI, TO>(
327
327
  if (!valueShapes) {
328
328
  throw new PerseusError(
329
329
  `Unexpected shape ${JSON.stringify(shape)} at path ` +
330
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
330
+ // @ts-expect-error - TS2769 - No overload matches this call.
331
331
  `${["<root>"].concat(path).join(".")}.`,
332
332
  Errors.InvalidInput,
333
333
  );
@@ -337,7 +337,7 @@ function mapTree<CI, CO, HI, HO, TI, TO>(
337
337
  if (!(key in object)) {
338
338
  throw new PerseusError(
339
339
  `Key "${key}" is missing from shape at path ` +
340
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
340
+ // @ts-expect-error - TS2769 - No overload matches this call.
341
341
  `${["<root>"].concat(path).join(".")}.`,
342
342
  Errors.InvalidInput,
343
343
  );
@@ -353,7 +353,7 @@ function mapTree<CI, CO, HI, HO, TI, TO>(
353
353
  return newObject;
354
354
  }
355
355
  throw new PerseusError(
356
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'type' does not exist on type 'never'.
356
+ // @ts-expect-error - TS2339 - Property 'type' does not exist on type 'never'.
357
357
  `unexpected shape type ${shape.type}`,
358
358
  Errors.InvalidInput,
359
359
  );
@@ -2,7 +2,7 @@
2
2
  * Sets up the basic environment for running Perseus in.
3
3
  */
4
4
 
5
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'KhanUtil' does not exist on type 'Window & typeof globalThis'.
5
+ // @ts-expect-error - TS2339 - Property 'KhanUtil' does not exist on type 'Window & typeof globalThis'.
6
6
  window.KhanUtil = {
7
7
  debugLog: function () {},
8
8
  localeToFixed: function (num, precision) {
@@ -10,7 +10,7 @@ window.KhanUtil = {
10
10
  },
11
11
  };
12
12
 
13
- // @ts-expect-error [FEI-5003] - TS2339 - Property 'Exercises' does not exist on type 'Window & typeof globalThis'.
13
+ // @ts-expect-error - TS2339 - Property 'Exercises' does not exist on type 'Window & typeof globalThis'.
14
14
  window.Exercises = {
15
15
  localMode: true,
16
16
 
@@ -128,7 +128,7 @@ const rules = {
128
128
 
129
129
  // Splice the caption into the table's children with the
130
130
  // caption as the first child.
131
- // @ts-expect-error [FEI-5003] - TS2769 - No overload matches this call.
131
+ // @ts-expect-error - TS2769 - No overload matches this call.
132
132
  contents = React.cloneElement(tableOutput, null, [
133
133
  caption,
134
134
  ...tableOutput.props.children,
@@ -156,7 +156,7 @@ const rules = {
156
156
  // just a stub for testing.
157
157
  return (
158
158
  <em key={state.key}>
159
- {/* @ts-expect-error [FEI-5003] - TS2554 - Expected 1-2 arguments, but got 3. */}
159
+ {/* @ts-expect-error - TS2554 - Expected 1-2 arguments, but got 3. */}
160
160
  {i18n.doNotTranslate("[Widget: ", node.id, "]")}
161
161
  </em>
162
162
  );
@@ -211,7 +211,7 @@ const rules = {
211
211
  : false;
212
212
  if (!isKAUrl) {
213
213
  // Prevents "reverse tabnabbing" phishing attacks
214
- // @ts-expect-error [FEI-5003] - TS2322 - Type '"noopener noreferrer"' is not assignable to type 'null'.
214
+ // @ts-expect-error - TS2322 - Type '"noopener noreferrer"' is not assignable to type 'null'.
215
215
  rel = "noopener noreferrer";
216
216
  }
217
217
 
@@ -293,7 +293,7 @@ const inlineNodeTypes = {
293
293
  code: true,
294
294
  } as const;
295
295
 
296
- // @ts-expect-error [FEI-5003] - TS2345 - Argument of type '{ readonly columns: { readonly react: (node: any, output: any, state: any) => Element; readonly order: -2; readonly match: any; readonly parse: (capture: any, parse: any, state: any) => any; }; ... 35 more ...; readonly text: TextInOutRule; }' is not assignable to parameter of type 'ParserRules'.
296
+ // @ts-expect-error - TS2345 - Argument of type '{ readonly columns: { readonly react: (node: any, output: any, state: any) => Element; readonly order: -2; readonly match: any; readonly parse: (capture: any, parse: any, state: any) => any; }; ... 35 more ...; readonly text: TextInOutRule; }' is not assignable to parameter of type 'ParserRules'.
297
297
  const builtParser = SimpleMarkdown.parserFor(rules);
298
298
  const parse = (source: string, state: any): any => {
299
299
  const paragraphedSource = source + "\n\n";
@@ -385,7 +385,7 @@ const getContent = (ast: any) => {
385
385
  * Markdown markup and widget references are ignored.
386
386
  */
387
387
  const characterCount = (source: string): number => {
388
- // @ts-expect-error [FEI-5003] - TS2554 - Expected 2 arguments, but got 1.
388
+ // @ts-expect-error - TS2554 - Expected 2 arguments, but got 1.
389
389
  const ast = parse(source);
390
390
  const content = getContent(ast).join("");
391
391
  return content.length;