@khanacademy/perseus 2.1.0 → 4.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.
- package/.babelrc.js +1 -1
- package/.eslintrc.js +1 -0
- package/CHANGELOG.md +22 -0
- package/dist/__tests__/mock-asset-loading-widget.d.ts +59 -0
- package/dist/__tests__/mock-asset-loading-widget.js.flow +70 -0
- package/dist/__tests__/mock-widget.d.ts +30 -0
- package/dist/__tests__/mock-widget.js.flow +39 -0
- package/dist/__tests__/test-items/image-item.d.ts +14 -0
- package/dist/__tests__/test-items/image-item.js.flow +20 -0
- package/dist/__tests__/test-items/input-number-1-item.d.ts +9 -0
- package/dist/__tests__/test-items/input-number-1-item.js.flow +15 -0
- package/dist/__tests__/test-items/input-number-2-item.d.ts +9 -0
- package/dist/__tests__/test-items/input-number-2-item.js.flow +15 -0
- package/dist/__tests__/test-items/table-item.d.ts +9 -0
- package/dist/__tests__/test-items/table-item.js.flow +15 -0
- package/dist/a11y.d.ts +5 -0
- package/dist/a11y.js.flow +11 -0
- package/dist/all-widgets.d.ts +22 -0
- package/dist/all-widgets.js.flow +33 -0
- package/dist/article-renderer.d.ts +54 -0
- package/dist/article-renderer.js.flow +69 -0
- package/dist/asset-context.d.ts +14 -0
- package/dist/asset-context.js.flow +15 -0
- package/dist/basic-widgets.d.ts +22 -0
- package/dist/basic-widgets.js.flow +33 -0
- package/dist/components/button-group.d.ts +27 -0
- package/dist/components/button-group.js.flow +33 -0
- package/dist/components/constants.d.ts +7 -0
- package/dist/components/constants.js.flow +13 -0
- package/dist/components/fixed-to-responsive.d.ts +2 -0
- package/dist/components/fixed-to-responsive.js.flow +8 -0
- package/dist/components/graph.d.ts +44 -0
- package/dist/components/graph.js.flow +52 -0
- package/dist/components/graphie-classes.d.ts +13 -0
- package/dist/components/graphie-classes.js.flow +19 -0
- package/dist/components/graphie-movables.d.ts +16 -0
- package/dist/components/graphie-movables.js.flow +22 -0
- package/dist/components/graphie.d.ts +44 -0
- package/dist/components/graphie.js.flow +56 -0
- package/dist/components/highlighting/highlightable-content.d.ts +39 -0
- package/dist/components/highlighting/highlightable-content.js.flow +59 -0
- package/dist/components/highlighting/highlights.d.ts +30 -0
- package/dist/components/highlighting/highlights.js.flow +54 -0
- package/dist/components/highlighting/ranges.d.ts +42 -0
- package/dist/components/highlighting/ranges.js.flow +60 -0
- package/dist/components/highlighting/types.d.ts +64 -0
- package/dist/components/highlighting/types.js.flow +70 -0
- package/dist/components/highlighting/ui/highlight-renderer.d.ts +34 -0
- package/dist/components/highlighting/ui/highlight-renderer.js.flow +45 -0
- package/dist/components/highlighting/ui/highlight-set-renderer.d.ts +34 -0
- package/dist/components/highlighting/ui/highlight-set-renderer.js.flow +44 -0
- package/dist/components/highlighting/ui/highlight-tooltip.d.ts +16 -0
- package/dist/components/highlighting/ui/highlight-tooltip.js.flow +24 -0
- package/dist/components/highlighting/ui/highlighting-ui.d.ts +19 -0
- package/dist/components/highlighting/ui/highlighting-ui.js.flow +30 -0
- package/dist/components/highlighting/ui/selection-tracker.d.ts +47 -0
- package/dist/components/highlighting/ui/selection-tracker.js.flow +56 -0
- package/dist/components/highlighting/ui/types.d.ts +13 -0
- package/dist/components/highlighting/ui/types.js.flow +22 -0
- package/dist/components/highlighting/ui/util.d.ts +28 -0
- package/dist/components/highlighting/ui/util.js.flow +42 -0
- package/dist/components/highlighting/word-indexer.d.ts +28 -0
- package/dist/components/highlighting/word-indexer.js.flow +21 -0
- package/dist/components/hud.d.ts +15 -0
- package/dist/components/hud.js.flow +21 -0
- package/dist/components/icon.d.ts +56 -0
- package/dist/components/icon.js.flow +31 -0
- package/dist/components/image-loader.d.ts +52 -0
- package/dist/components/image-loader.js.flow +49 -0
- package/dist/components/info-tip/info-tip.d.ts +14 -0
- package/dist/components/info-tip/info-tip.js.flow +20 -0
- package/dist/components/info-tip.d.ts +18 -0
- package/dist/components/info-tip.js.flow +18 -0
- package/dist/components/inline-icon.d.ts +10 -0
- package/dist/components/inline-icon.js.flow +16 -0
- package/dist/components/input-with-examples.d.ts +52 -0
- package/dist/components/input-with-examples.js.flow +58 -0
- package/dist/components/lint.d.ts +23 -0
- package/dist/components/lint.js.flow +29 -0
- package/dist/components/math-input.d.ts +40 -0
- package/dist/components/math-input.js.flow +46 -0
- package/dist/components/math-output.d.ts +23 -0
- package/dist/components/math-output.js.flow +29 -0
- package/dist/components/multi-button-group.d.ts +29 -0
- package/dist/components/multi-button-group.js.flow +35 -0
- package/dist/components/number-input.d.ts +34 -0
- package/dist/components/number-input.js.flow +42 -0
- package/dist/components/prop-check-box.d.ts +2 -0
- package/dist/components/prop-check-box.js.flow +8 -0
- package/dist/components/range-input.d.ts +14 -0
- package/dist/components/range-input.js.flow +20 -0
- package/dist/components/simple-keypad-input.d.ts +19 -0
- package/dist/components/simple-keypad-input.js.flow +16 -0
- package/dist/components/sortable.d.ts +68 -0
- package/dist/components/sortable.js.flow +78 -0
- package/dist/components/stub-tag-editor.d.ts +25 -0
- package/dist/components/stub-tag-editor.js.flow +18 -0
- package/dist/components/svg-image.d.ts +74 -0
- package/dist/components/svg-image.js.flow +83 -0
- package/dist/components/tex-buttons.d.ts +20 -0
- package/dist/components/tex-buttons.js.flow +26 -0
- package/dist/components/tex.d.ts +25 -0
- package/dist/components/tex.js.flow +25 -0
- package/dist/components/text-input.d.ts +33 -0
- package/dist/components/text-input.js.flow +39 -0
- package/dist/components/text-list-editor.d.ts +16 -0
- package/dist/components/text-list-editor.js.flow +22 -0
- package/dist/components/tooltip.d.ts +32 -0
- package/dist/components/tooltip.js.flow +38 -0
- package/dist/components/visibility-observer/create-visibility-observer.d.ts +34 -0
- package/dist/components/visibility-observer/create-visibility-observer.js.flow +23 -0
- package/dist/components/visibility-observer/get-scroll-parent.d.ts +1 -0
- package/dist/components/visibility-observer/get-scroll-parent.js.flow +7 -0
- package/dist/components/visibility-observer/visibility-observer.d.ts +31 -0
- package/dist/components/visibility-observer/visibility-observer.js.flow +36 -0
- package/dist/components/zoomable-tex.d.ts +18 -0
- package/dist/components/zoomable-tex.js.flow +18 -0
- package/dist/components/zoomable.d.ts +64 -0
- package/dist/components/zoomable.js.flow +70 -0
- package/dist/components.d.ts +16 -0
- package/dist/components.js.flow +22 -0
- package/dist/definition-context.d.ts +21 -0
- package/dist/definition-context.js.flow +25 -0
- package/dist/dependencies.d.ts +3 -0
- package/dist/dependencies.js.flow +9 -0
- package/dist/error-boundary.d.ts +13 -0
- package/dist/error-boundary.js.flow +21 -0
- package/dist/es/index.js +23239 -26937
- package/dist/es/index.js.map +1 -1
- package/dist/extra-widgets.d.ts +22 -0
- package/dist/extra-widgets.js.flow +33 -0
- package/dist/hint-renderer.d.ts +23 -0
- package/dist/hint-renderer.js.flow +32 -0
- package/dist/hints-renderer.d.ts +29 -0
- package/dist/hints-renderer.js.flow +41 -0
- package/dist/icon-paths.d.ts +117 -0
- package/dist/icon-paths.js.flow +123 -0
- package/dist/index.d.ts +103 -2
- package/dist/index.js +13063 -16571
- package/dist/index.js.flow +133 -2
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +14 -0
- package/dist/init.js.flow +20 -0
- package/dist/interaction-tracker.d.ts +23 -0
- package/dist/interaction-tracker.js.flow +33 -0
- package/dist/interactive2/__tests__/movable-mock.d.ts +5 -0
- package/dist/interactive2/__tests__/movable-mock.js.flow +11 -0
- package/dist/interactive2/interactive-util.d.ts +31 -0
- package/dist/interactive2/interactive-util.js.flow +50 -0
- package/dist/interactive2/movable-helper-methods.d.ts +9 -0
- package/dist/interactive2/movable-helper-methods.js.flow +15 -0
- package/dist/interactive2/movable-line-options.d.ts +34 -0
- package/dist/interactive2/movable-line-options.js.flow +44 -0
- package/dist/interactive2/movable-line.d.ts +2 -0
- package/dist/interactive2/movable-line.js.flow +8 -0
- package/dist/interactive2/movable-point-options.d.ts +34 -0
- package/dist/interactive2/movable-point-options.js.flow +44 -0
- package/dist/interactive2/movable-point.d.ts +2 -0
- package/dist/interactive2/movable-point.js.flow +8 -0
- package/dist/interactive2/movable-polygon-options.d.ts +40 -0
- package/dist/interactive2/movable-polygon-options.js.flow +47 -0
- package/dist/interactive2/movable-polygon.d.ts +2 -0
- package/dist/interactive2/movable-polygon.js.flow +8 -0
- package/dist/interactive2/movable.d.ts +2 -0
- package/dist/interactive2/movable.js.flow +8 -0
- package/dist/interactive2/objective_.d.ts +13 -0
- package/dist/interactive2/objective_.js.flow +25 -0
- package/dist/interactive2/types.d.ts +2 -0
- package/dist/interactive2/types.js.flow +8 -0
- package/dist/interactive2/wrapped-defaults.d.ts +5 -0
- package/dist/interactive2/wrapped-defaults.js.flow +11 -0
- package/dist/interactive2/wrapped-ellipse.d.ts +3 -0
- package/dist/interactive2/wrapped-ellipse.js.flow +14 -0
- package/dist/interactive2/wrapped-line.d.ts +3 -0
- package/dist/interactive2/wrapped-line.js.flow +14 -0
- package/dist/interactive2/wrapped-path.d.ts +3 -0
- package/dist/interactive2/wrapped-path.js.flow +13 -0
- package/dist/interactive2.d.ts +10 -0
- package/dist/interactive2.js.flow +16 -0
- package/dist/item-renderer.d.ts +117 -0
- package/dist/item-renderer.js.flow +136 -0
- package/dist/item-version.d.ts +4 -0
- package/dist/item-version.js.flow +11 -0
- package/dist/jipt-paragraphs.d.ts +8 -0
- package/dist/jipt-paragraphs.js.flow +14 -0
- package/dist/keypad-context.d.ts +20 -0
- package/dist/keypad-context.js.flow +18 -0
- package/dist/loading-context.d.ts +14 -0
- package/dist/loading-context.js.flow +12 -0
- package/dist/logging/log.d.ts +55 -0
- package/dist/logging/log.js.flow +62 -0
- package/dist/mixins/changeable.d.ts +30 -0
- package/dist/mixins/changeable.js.flow +33 -0
- package/dist/mixins/editor-jsonify.d.ts +4 -0
- package/dist/mixins/editor-jsonify.js.flow +10 -0
- package/dist/mixins/provide-keypad.d.ts +36 -0
- package/dist/mixins/provide-keypad.js.flow +33 -0
- package/dist/mixins/widget-jsonify-deprecated.d.ts +5 -0
- package/dist/mixins/widget-jsonify-deprecated.js.flow +11 -0
- package/dist/mixins/widget-prop-denylist.d.ts +14 -0
- package/dist/mixins/widget-prop-denylist.js.flow +20 -0
- package/dist/multi-items/item-types.d.ts +32 -0
- package/dist/multi-items/items.d.ts +53 -0
- package/dist/multi-items/items.js.flow +66 -0
- package/dist/multi-items/multi-renderer.d.ts +152 -0
- package/dist/multi-items/multi-renderer.js.flow +213 -0
- package/dist/multi-items/prop-type-builders.d.ts +20 -0
- package/dist/multi-items/prop-type-builders.js.flow +22 -0
- package/dist/multi-items/shape-types.d.ts +47 -0
- package/dist/multi-items/shape-types.js.flow +60 -0
- package/dist/multi-items/shapes.d.ts +23 -0
- package/dist/multi-items/shapes.js.flow +25 -0
- package/dist/multi-items/tree-types.d.ts +34 -0
- package/dist/multi-items/tree-types.js.flow +45 -0
- package/dist/multi-items/trees.d.ts +146 -0
- package/dist/multi-items/trees.js.flow +147 -0
- package/dist/multi-items.d.ts +73 -0
- package/dist/multi-items.js.flow +36 -0
- package/dist/perseus-api.d.ts +128 -0
- package/dist/perseus-api.js.flow +139 -0
- package/dist/perseus-env.d.ts +3 -0
- package/dist/perseus-env.js.flow +6 -0
- package/dist/perseus-error.d.ts +11 -0
- package/dist/perseus-error.js.flow +16 -0
- package/dist/perseus-markdown.d.ts +11 -0
- package/dist/perseus-markdown.js.flow +20 -0
- package/dist/perseus-types.d.ts +776 -0
- package/dist/perseus-types.js.flow +1032 -0
- package/dist/question-paragraph.d.ts +11 -0
- package/dist/question-paragraph.js.flow +17 -0
- package/dist/renderability.d.ts +10 -0
- package/dist/renderability.js.flow +19 -0
- package/dist/renderer.d.ts +254 -0
- package/dist/renderer.js.flow +327 -0
- package/dist/server-item-renderer.d.ts +113 -0
- package/dist/server-item-renderer.js.flow +136 -0
- package/dist/sigfigs.d.ts +32 -0
- package/dist/sigfigs.js.flow +41 -0
- package/dist/styles/constants.d.ts +56 -0
- package/dist/styles/constants.js.flow +62 -0
- package/dist/styles/global-constants.d.ts +342 -0
- package/dist/styles/global-constants.js.flow +348 -0
- package/dist/styles/global-styles.d.ts +47 -0
- package/dist/styles/global-styles.js.flow +53 -0
- package/dist/styles/media-queries.d.ts +29 -0
- package/dist/styles/media-queries.js.flow +35 -0
- package/dist/styles/shared.d.ts +3 -0
- package/dist/styles/shared.js.flow +9 -0
- package/dist/tex-wrangler.d.ts +7 -0
- package/dist/tex-wrangler.js.flow +13 -0
- package/dist/translation-linter.d.ts +21 -0
- package/dist/translation-linter.js.flow +32 -0
- package/dist/traversal.d.ts +15 -0
- package/dist/traversal.js.flow +26 -0
- package/dist/types.d.ts +262 -0
- package/dist/types.js.flow +337 -0
- package/dist/util/a11y.d.ts +3 -0
- package/dist/util/a11y.js.flow +9 -0
- package/dist/util/answer-types.d.ts +34 -0
- package/dist/util/answer-types.js.flow +49 -0
- package/dist/util/colors.d.ts +89 -0
- package/dist/util/colors.js.flow +95 -0
- package/dist/util/fix-passage-refs.d.ts +2 -0
- package/dist/util/fix-passage-refs.js.flow +8 -0
- package/dist/util/graph-utils.d.ts +12 -0
- package/dist/util/graph-utils.js.flow +9 -0
- package/dist/util/graphie.d.ts +2 -0
- package/dist/util/graphie.js.flow +8 -0
- package/dist/util/interactive.d.ts +9 -0
- package/dist/util/interactive.js.flow +9 -0
- package/dist/util/katex-preprocess.d.ts +6 -0
- package/dist/util/katex-preprocess.js.flow +12 -0
- package/dist/util/math.d.ts +28 -0
- package/dist/util/math.js.flow +62 -0
- package/dist/util/mobile-native-utils.d.ts +7 -0
- package/dist/util/mobile-native-utils.js.flow +12 -0
- package/dist/util/react-render.d.ts +2 -0
- package/dist/util/react-render.js.flow +12 -0
- package/dist/util/register-all-widgets-for-testing.d.ts +1 -0
- package/dist/util/register-all-widgets-for-testing.js.flow +7 -0
- package/dist/util/scroll-utils.d.ts +10 -0
- package/dist/util/scroll-utils.js.flow +19 -0
- package/dist/util/sizing-utils.d.ts +9 -0
- package/dist/util/sizing-utils.js.flow +20 -0
- package/dist/util/tex.d.ts +6 -0
- package/dist/util/tex.js.flow +17 -0
- package/dist/util/url-utils.d.ts +6 -0
- package/dist/util/url-utils.js.flow +11 -0
- package/dist/util.d.ts +247 -0
- package/dist/util.js.flow +320 -0
- package/dist/version.d.ts +11 -0
- package/dist/version.js.flow +17 -0
- package/dist/widget-container.d.ts +27 -0
- package/dist/widget-container.js.flow +33 -0
- package/dist/widgets/__tests__/renderQuestion.d.ts +13 -0
- package/dist/widgets/__tests__/renderQuestion.js.flow +28 -0
- package/dist/widgets/categorizer.d.ts +55 -0
- package/dist/widgets/categorizer.js.flow +70 -0
- package/dist/widgets/cs-program.d.ts +48 -0
- package/dist/widgets/cs-program.js.flow +54 -0
- package/dist/widgets/definition.d.ts +42 -0
- package/dist/widgets/definition.js.flow +57 -0
- package/dist/widgets/dropdown.d.ts +51 -0
- package/dist/widgets/dropdown.js.flow +63 -0
- package/dist/widgets/explanation.d.ts +49 -0
- package/dist/widgets/explanation.js.flow +58 -0
- package/dist/widgets/expression.d.ts +90 -0
- package/dist/widgets/expression.js.flow +115 -0
- package/dist/widgets/graded-group-answer-bar.d.ts +13 -0
- package/dist/widgets/graded-group-answer-bar.js.flow +24 -0
- package/dist/widgets/graded-group-set.d.ts +52 -0
- package/dist/widgets/graded-group-set.js.flow +65 -0
- package/dist/widgets/graded-group.d.ts +66 -0
- package/dist/widgets/graded-group.js.flow +78 -0
- package/dist/widgets/grapher/util.d.ts +19 -0
- package/dist/widgets/grapher/util.js.flow +38 -0
- package/dist/widgets/grapher.d.ts +63 -0
- package/dist/widgets/grapher.js.flow +93 -0
- package/dist/widgets/group.d.ts +51 -0
- package/dist/widgets/group.js.flow +60 -0
- package/dist/widgets/iframe.d.ts +52 -0
- package/dist/widgets/iframe.js.flow +53 -0
- package/dist/widgets/image.d.ts +59 -0
- package/dist/widgets/image.js.flow +73 -0
- package/dist/widgets/input-number.d.ts +75 -0
- package/dist/widgets/input-number.js.flow +94 -0
- package/dist/widgets/interaction/arrow-picker.d.ts +12 -0
- package/dist/widgets/interaction/arrow-picker.js.flow +21 -0
- package/dist/widgets/interaction/color-picker.d.ts +14 -0
- package/dist/widgets/interaction/color-picker.js.flow +23 -0
- package/dist/widgets/interaction/dash-picker.d.ts +12 -0
- package/dist/widgets/interaction/dash-picker.js.flow +21 -0
- package/dist/widgets/interaction/element-container.d.ts +21 -0
- package/dist/widgets/interaction/element-container.js.flow +33 -0
- package/dist/widgets/interaction.d.ts +51 -0
- package/dist/widgets/interaction.js.flow +60 -0
- package/dist/widgets/interactive-graph.d.ts +180 -0
- package/dist/widgets/interactive-graph.js.flow +242 -0
- package/dist/widgets/label-image/answer-choices.d.ts +51 -0
- package/dist/widgets/label-image/answer-choices.js.flow +55 -0
- package/dist/widgets/label-image/marker.d.ts +28 -0
- package/dist/widgets/label-image/marker.js.flow +33 -0
- package/dist/widgets/label-image/types.d.ts +14 -0
- package/dist/widgets/label-image/types.js.flow +23 -0
- package/dist/widgets/label-image.d.ts +113 -0
- package/dist/widgets/label-image.js.flow +142 -0
- package/dist/widgets/lights-puzzle.d.ts +47 -0
- package/dist/widgets/lights-puzzle.js.flow +58 -0
- package/dist/widgets/matcher.d.ts +82 -0
- package/dist/widgets/matcher.js.flow +101 -0
- package/dist/widgets/matrix.d.ts +65 -0
- package/dist/widgets/matrix.js.flow +80 -0
- package/dist/widgets/measurer.d.ts +21 -0
- package/dist/widgets/measurer.js.flow +30 -0
- package/dist/widgets/molecule/molecule-drawing.d.ts +5 -0
- package/dist/widgets/molecule/molecule-drawing.js.flow +11 -0
- package/dist/widgets/molecule/molecule-layout.d.ts +82 -0
- package/dist/widgets/molecule/molecule-layout.js.flow +96 -0
- package/dist/widgets/molecule/smiles-parser.d.ts +19 -0
- package/dist/widgets/molecule/smiles-parser.js.flow +26 -0
- package/dist/widgets/molecule.d.ts +51 -0
- package/dist/widgets/molecule.js.flow +60 -0
- package/dist/widgets/number-line.d.ts +90 -0
- package/dist/widgets/number-line.js.flow +102 -0
- package/dist/widgets/numeric-input.d.ts +80 -0
- package/dist/widgets/numeric-input.js.flow +109 -0
- package/dist/widgets/orderer.d.ts +69 -0
- package/dist/widgets/orderer.js.flow +81 -0
- package/dist/widgets/passage/passage-markdown.d.ts +22 -0
- package/dist/widgets/passage/passage-markdown.js.flow +33 -0
- package/dist/widgets/passage-ref-target.d.ts +41 -0
- package/dist/widgets/passage-ref-target.js.flow +52 -0
- package/dist/widgets/passage-ref.d.ts +65 -0
- package/dist/widgets/passage-ref.js.flow +85 -0
- package/dist/widgets/passage.d.ts +125 -0
- package/dist/widgets/passage.js.flow +157 -0
- package/dist/widgets/plotter.d.ts +68 -0
- package/dist/widgets/plotter.js.flow +78 -0
- package/dist/widgets/radio/base-radio.d.ts +38 -0
- package/dist/widgets/radio/base-radio.js.flow +44 -0
- package/dist/widgets/radio/choice-a11y-text.d.ts +2 -0
- package/dist/widgets/radio/choice-a11y-text.js.flow +14 -0
- package/dist/widgets/radio/choice-icon/choice-icon.d.ts +16 -0
- package/dist/widgets/radio/choice-icon/choice-icon.js.flow +22 -0
- package/dist/widgets/radio/choice-icon/cross-out-line.d.ts +9 -0
- package/dist/widgets/radio/choice-icon/cross-out-line.js.flow +16 -0
- package/dist/widgets/radio/choice-icon/shared-styles.d.ts +5 -0
- package/dist/widgets/radio/choice-icon/shared-styles.js.flow +11 -0
- package/dist/widgets/radio/choice-none-above.d.ts +6 -0
- package/dist/widgets/radio/choice-none-above.js.flow +16 -0
- package/dist/widgets/radio/choice.d.ts +23 -0
- package/dist/widgets/radio/choice.js.flow +32 -0
- package/dist/widgets/radio/choice.jsx.fixture.d.ts +1 -0
- package/dist/widgets/radio/choice.jsx.fixture.js.flow +7 -0
- package/dist/widgets/radio/focus-ring.d.ts +12 -0
- package/dist/widgets/radio/focus-ring.js.flow +15 -0
- package/dist/widgets/radio/option-status.d.ts +17 -0
- package/dist/widgets/radio/option-status.js.flow +16 -0
- package/dist/widgets/radio/util.d.ts +6 -0
- package/dist/widgets/radio/util.js.flow +12 -0
- package/dist/widgets/radio/widget.d.ts +62 -0
- package/dist/widgets/radio/widget.js.flow +80 -0
- package/dist/widgets/radio.d.ts +22 -0
- package/dist/widgets/radio.js.flow +31 -0
- package/dist/widgets/reaction-diagram.d.ts +37 -0
- package/dist/widgets/reaction-diagram.js.flow +46 -0
- package/dist/widgets/sequence.d.ts +79 -0
- package/dist/widgets/sequence.js.flow +100 -0
- package/dist/widgets/simulator.d.ts +89 -0
- package/dist/widgets/simulator.js.flow +106 -0
- package/dist/widgets/sorter.d.ts +82 -0
- package/dist/widgets/sorter.js.flow +101 -0
- package/dist/widgets/table.d.ts +56 -0
- package/dist/widgets/table.js.flow +67 -0
- package/dist/widgets/transformer.d.ts +94 -0
- package/dist/widgets/transformer.js.flow +127 -0
- package/dist/widgets/unit.d.ts +77 -0
- package/dist/widgets/unit.js.flow +93 -0
- package/dist/widgets/video-transcript-link.d.ts +12 -0
- package/dist/widgets/video-transcript-link.js.flow +15 -0
- package/dist/widgets/video.d.ts +48 -0
- package/dist/widgets/video.js.flow +57 -0
- package/dist/widgets.d.ts +73 -0
- package/dist/widgets.js.flow +108 -0
- package/dist/zoom.d.ts +1 -0
- package/dist/zoom.js.flow +7 -0
- package/package.json +8 -8
- package/src/__stories__/hints-renderer.stories.tsx +58 -0
- package/src/__stories__/item-renderer.stories.tsx +29 -0
- package/src/__stories__/server-item-renderer.stories.tsx +29 -0
- package/src/__testdata__/graphie.testdata.ts +51 -0
- package/src/__testdata__/item-renderer.testdata.ts +160 -0
- package/src/__testdata__/renderer.testdata.ts +122 -0
- package/src/__tests__/a11y.test.ts +303 -0
- package/src/__tests__/item-renderer.test.tsx +891 -0
- package/src/__tests__/jipt-paragraphs.test.ts +32 -0
- package/src/__tests__/mock-asset-loading-widget.tsx +56 -0
- package/src/__tests__/mock-widget.tsx +33 -0
- package/src/__tests__/perseus-markdown.test.ts +764 -0
- package/src/__tests__/renderability.test.ts +480 -0
- package/src/__tests__/renderer-api.test.tsx +328 -0
- package/src/__tests__/renderer.test.tsx +1802 -0
- package/src/__tests__/server-item-renderer.test.tsx +518 -0
- package/src/__tests__/test-items/image-item.ts +24 -0
- package/src/__tests__/test-items/input-number-1-item.ts +26 -0
- package/src/__tests__/test-items/input-number-2-item.ts +38 -0
- package/src/__tests__/test-items/table-item.ts +29 -0
- package/src/__tests__/tex-wrangler.test.ts +82 -0
- package/src/__tests__/util.test.ts +40 -0
- package/src/a11y.ts +45 -0
- package/src/all-widgets.ts +9 -0
- package/src/article-renderer.tsx +215 -0
- package/src/asset-context.ts +30 -0
- package/src/basic-widgets.ts +16 -0
- package/src/components/__stories__/button-group.stories.tsx +59 -0
- package/src/components/__stories__/fixed-to-responsive.stories.tsx +143 -0
- package/src/components/__stories__/graph.stories.tsx +30 -0
- package/src/components/__stories__/graphie.stories.tsx +35 -0
- package/src/components/__stories__/hud.stories.tsx +39 -0
- package/src/components/__stories__/icon.stories.tsx +63 -0
- package/src/components/__stories__/image-loader.stories.tsx +62 -0
- package/src/components/__stories__/info-tip.stories.tsx +35 -0
- package/src/components/__stories__/inline-icon.stories.tsx +44 -0
- package/src/components/__stories__/input-with-examples.stories.tsx +57 -0
- package/src/components/__stories__/lint.stories.tsx +51 -0
- package/src/components/__stories__/math-input.stories.tsx +34 -0
- package/src/components/__stories__/math-output.stories.tsx +25 -0
- package/src/components/__stories__/multi-button-group.stories.tsx +70 -0
- package/src/components/__stories__/number-input.stories.tsx +43 -0
- package/src/components/__stories__/prop-check-box.stories.tsx +65 -0
- package/src/components/__stories__/range-input.stories.tsx +31 -0
- package/src/components/__stories__/simple-keypad-input.stories.tsx +29 -0
- package/src/components/__stories__/sortable.stories.tsx +77 -0
- package/src/components/__stories__/stub-tag-editor.stories.tsx +49 -0
- package/src/components/__stories__/svg-image.stories.tsx +82 -0
- package/src/components/__stories__/tex.stories.tsx +25 -0
- package/src/components/__stories__/text-buttons.stories.tsx +66 -0
- package/src/components/__stories__/text-input.stories.tsx +39 -0
- package/src/components/__stories__/text-list-editor.stories.tsx +34 -0
- package/src/components/__stories__/zoomable-tex.stories.tsx +39 -0
- package/src/components/__stories__/zoomable.stories.tsx +43 -0
- package/src/components/__testdata__/sorter.testdata.ts +19 -0
- package/src/components/__tests__/number-input.test.tsx +128 -0
- package/src/components/__tests__/sortable.test.tsx +234 -0
- package/src/components/__tests__/sorter.test.tsx +111 -0
- package/src/components/__tests__/zoomable.test.tsx +399 -0
- package/src/components/button-group.tsx +130 -0
- package/src/components/constants.ts +14 -0
- package/src/components/fixed-to-responsive.tsx +165 -0
- package/src/components/graph.tsx +421 -0
- package/src/components/graphie-classes.ts +153 -0
- package/src/components/graphie-movables.ts +338 -0
- package/src/components/graphie.tsx +357 -0
- package/src/components/highlighting/highlightable-content.tsx +243 -0
- package/src/components/highlighting/highlights.ts +207 -0
- package/src/components/highlighting/ranges.ts +304 -0
- package/src/components/highlighting/types.ts +73 -0
- package/src/components/highlighting/ui/highlight-renderer.tsx +175 -0
- package/src/components/highlighting/ui/highlight-set-renderer.tsx +188 -0
- package/src/components/highlighting/ui/highlight-tooltip.tsx +141 -0
- package/src/components/highlighting/ui/highlighting-ui.tsx +153 -0
- package/src/components/highlighting/ui/selection-tracker.tsx +189 -0
- package/src/components/highlighting/ui/types.ts +21 -0
- package/src/components/highlighting/ui/util.ts +165 -0
- package/src/components/highlighting/word-indexer.tsx +156 -0
- package/src/components/hud.tsx +178 -0
- package/src/components/icon.tsx +140 -0
- package/src/components/image-loader.tsx +176 -0
- package/src/components/info-tip/info-tip.tsx +144 -0
- package/src/components/info-tip.tsx +40 -0
- package/src/components/inline-icon.tsx +77 -0
- package/src/components/input-with-examples.tsx +249 -0
- package/src/components/lint.tsx +453 -0
- package/src/components/math-input.tsx +299 -0
- package/src/components/math-output.tsx +128 -0
- package/src/components/multi-button-group.tsx +135 -0
- package/src/components/number-input.tsx +250 -0
- package/src/components/prop-check-box.tsx +80 -0
- package/src/components/range-input.tsx +60 -0
- package/src/components/simple-keypad-input.tsx +88 -0
- package/src/components/sortable.tsx +914 -0
- package/src/components/stub-tag-editor.tsx +53 -0
- package/src/components/svg-image.tsx +777 -0
- package/src/components/tex-buttons.tsx +321 -0
- package/src/components/tex.tsx +67 -0
- package/src/components/text-input.tsx +128 -0
- package/src/components/text-list-editor.tsx +169 -0
- package/src/components/tooltip.tsx +392 -0
- package/src/components/visibility-observer/__stories__/visibility-observer.stories.tsx +143 -0
- package/src/components/visibility-observer/create-visibility-observer.ts +108 -0
- package/src/components/visibility-observer/get-scroll-parent.ts +46 -0
- package/src/components/visibility-observer/visibility-observer.tsx +124 -0
- package/src/components/zoomable-tex.tsx +78 -0
- package/src/components/zoomable.tsx +300 -0
- package/src/components.ts +16 -0
- package/src/definition-context.tsx +60 -0
- package/src/dependencies.ts +21 -0
- package/src/error-boundary.tsx +50 -0
- package/src/extra-widgets.ts +75 -0
- package/src/hint-renderer.tsx +149 -0
- package/src/hints-renderer.tsx +377 -0
- package/src/icon-paths.ts +119 -0
- package/src/index.ts +158 -0
- package/src/init.ts +54 -0
- package/src/interaction-tracker.ts +61 -0
- package/src/interactive2/__tests__/movable-mock.ts +43 -0
- package/src/interactive2/__tests__/movable-point.test.ts +145 -0
- package/src/interactive2/interactive-util.ts +155 -0
- package/src/interactive2/movable-helper-methods.ts +161 -0
- package/src/interactive2/movable-line-options.ts +419 -0
- package/src/interactive2/movable-line.ts +318 -0
- package/src/interactive2/movable-point-options.ts +212 -0
- package/src/interactive2/movable-point.tsx +593 -0
- package/src/interactive2/movable-polygon-options.ts +390 -0
- package/src/interactive2/movable-polygon.ts +368 -0
- package/src/interactive2/movable.ts +275 -0
- package/src/interactive2/objective_.ts +79 -0
- package/src/interactive2/types.ts +2 -0
- package/src/interactive2/wrapped-defaults.ts +87 -0
- package/src/interactive2/wrapped-ellipse.ts +94 -0
- package/src/interactive2/wrapped-line.ts +116 -0
- package/src/interactive2/wrapped-path.ts +51 -0
- package/src/interactive2.ts +73 -0
- package/src/item-renderer.tsx +514 -0
- package/src/item-version.ts +10 -0
- package/src/jipt-paragraphs.ts +49 -0
- package/src/jquery.mobile.vmouse.js +0 -1
- package/src/keypad-context.ts +34 -0
- package/src/loading-context.ts +21 -0
- package/src/logging/log.test.ts +39 -0
- package/src/logging/log.ts +97 -0
- package/src/mixins/__tests__/widget-prop-denylist.test.ts +21 -0
- package/src/mixins/changeable.ts +133 -0
- package/src/mixins/editor-jsonify.ts +13 -0
- package/src/mixins/provide-keypad.tsx +144 -0
- package/src/mixins/widget-jsonify-deprecated.ts +23 -0
- package/src/mixins/widget-prop-denylist.ts +48 -0
- package/src/multi-items/__stories__/multi-renderer.stories.tsx +87 -0
- package/src/multi-items/__testdata__/multi-renderer.testdata.ts +172 -0
- package/src/multi-items/__tests__/items.test.ts +250 -0
- package/src/multi-items/__tests__/multi-renderer.test.tsx +910 -0
- package/src/multi-items/__tests__/prop-type-builders.test.ts +133 -0
- package/src/multi-items/__tests__/shapes.test.ts +43 -0
- package/src/multi-items/__tests__/trees.test.ts +325 -0
- package/src/multi-items/item-types.js.flow +55 -0
- package/src/multi-items/item-types.ts +56 -0
- package/src/multi-items/items.ts +176 -0
- package/src/multi-items/multi-renderer.tsx +564 -0
- package/src/multi-items/prop-type-builders.ts +106 -0
- package/src/multi-items/shape-types.ts +52 -0
- package/src/multi-items/shapes.ts +52 -0
- package/src/multi-items/tree-types.ts +47 -0
- package/src/multi-items/trees.ts +360 -0
- package/src/multi-items.ts +75 -0
- package/src/perseus-api.tsx +188 -0
- package/src/perseus-env.ts +27 -0
- package/src/perseus-error.ts +17 -0
- package/src/perseus-markdown.tsx +407 -0
- package/src/perseus-types.ts +1474 -0
- package/src/question-paragraph.tsx +29 -0
- package/src/renderability.ts +109 -0
- package/src/renderer.tsx +1992 -0
- package/src/server-item-renderer.tsx +465 -0
- package/src/sigfigs.ts +490 -0
- package/src/styles/constants.ts +94 -0
- package/src/styles/global-constants.ts +343 -0
- package/src/styles/global-styles.ts +306 -0
- package/src/styles/media-queries.ts +47 -0
- package/src/styles/shared.ts +130 -0
- package/src/tex-wrangler.ts +182 -0
- package/src/translation-linter.ts +126 -0
- package/src/traversal.ts +138 -0
- package/src/types.ts +468 -0
- package/src/util/a11y.ts +23 -0
- package/src/util/answer-types.test.ts +114 -0
- package/src/util/answer-types.ts +876 -0
- package/src/util/colors.ts +93 -0
- package/src/util/fix-passage-refs.ts +121 -0
- package/src/util/graph-utils.ts +15 -0
- package/src/util/graphie.ts +1617 -0
- package/src/util/interactive.ts +4191 -0
- package/src/util/katex-preprocess.ts +14 -0
- package/src/util/math.ts +289 -0
- package/src/util/mobile-native-utils.test.ts +22 -0
- package/src/util/mobile-native-utils.ts +12 -0
- package/src/util/react-render.tsx +27 -0
- package/src/util/register-all-widgets-for-testing.ts +11 -0
- package/src/util/scroll-utils.ts +155 -0
- package/src/util/sizing-utils.ts +46 -0
- package/src/util/tex.ts +208 -0
- package/src/util/url-utils.ts +34 -0
- package/src/util.ts +1003 -0
- package/src/version.ts +11 -0
- package/src/widget-container.tsx +175 -0
- package/src/widgets/__stories__/categorizer.stories.tsx +14 -0
- package/src/widgets/__stories__/cs-program.stories.tsx +14 -0
- package/src/widgets/__stories__/definition.stories.tsx +111 -0
- package/src/widgets/__stories__/dropdown.stories.tsx +14 -0
- package/src/widgets/__stories__/explanation.stories.tsx +18 -0
- package/src/widgets/__stories__/expression.stories.tsx +29 -0
- package/src/widgets/__stories__/graded-group-set.stories.tsx +31 -0
- package/src/widgets/__stories__/graded-group.stories.tsx +31 -0
- package/src/widgets/__stories__/grapher.stories.tsx +60 -0
- package/src/widgets/__stories__/group.stories.tsx +14 -0
- package/src/widgets/__stories__/iframe.stories.tsx +14 -0
- package/src/widgets/__stories__/image.stories.tsx +61 -0
- package/src/widgets/__stories__/input-number.stories.tsx +110 -0
- package/src/widgets/__stories__/interaction.stories.tsx +14 -0
- package/src/widgets/__stories__/interactive-graph.stories.tsx +60 -0
- package/src/widgets/__stories__/matcher.stories.tsx +14 -0
- package/src/widgets/__stories__/matrix.stories.tsx +14 -0
- package/src/widgets/__stories__/number-line.stories.tsx +14 -0
- package/src/widgets/__stories__/numeric-input.stories.tsx +107 -0
- package/src/widgets/__stories__/on-screen-keypad.stories.tsx +120 -0
- package/src/widgets/__stories__/orderer.stories.tsx +14 -0
- package/src/widgets/__stories__/passage-ref.stories.tsx +22 -0
- package/src/widgets/__stories__/passage.stories.tsx +32 -0
- package/src/widgets/__stories__/radio.stories.tsx +88 -0
- package/src/widgets/__stories__/sorter.stories.tsx +14 -0
- package/src/widgets/__stories__/transformer.stories.tsx +14 -0
- package/src/widgets/__stories__/unit.stories.tsx +30 -0
- package/src/widgets/__stories__/video-transcript-link.stories.tsx +27 -0
- package/src/widgets/__stories__/video.stories.tsx +14 -0
- package/src/widgets/__testdata__/base-radio.testdata.ts +21 -0
- package/src/widgets/__testdata__/categorizer.testdata.ts +49 -0
- package/src/widgets/__testdata__/cs-program.testdata.ts +27 -0
- package/src/widgets/__testdata__/dropdown.testdata.ts +33 -0
- package/src/widgets/__testdata__/explanation.testdata.ts +55 -0
- package/src/widgets/__testdata__/expression.testdata.ts +94 -0
- package/src/widgets/__testdata__/graded-group-set.testdata.ts +356 -0
- package/src/widgets/__testdata__/graded-group.testdata.ts +77 -0
- package/src/widgets/__testdata__/grapher.testdata.ts +374 -0
- package/src/widgets/__testdata__/group.testdata.ts +155 -0
- package/src/widgets/__testdata__/iframe.testdata.ts +35 -0
- package/src/widgets/__testdata__/image.testdata.ts +36 -0
- package/src/widgets/__testdata__/input-number.testdata.ts +72 -0
- package/src/widgets/__testdata__/interaction.testdata.ts +262 -0
- package/src/widgets/__testdata__/interactive-graph.testdata.ts +644 -0
- package/src/widgets/__testdata__/matcher.testdata.ts +33 -0
- package/src/widgets/__testdata__/matrix.testdata.ts +28 -0
- package/src/widgets/__testdata__/number-line.testdata.ts +30 -0
- package/src/widgets/__testdata__/numeric-input.testdata.ts +266 -0
- package/src/widgets/__testdata__/orderer.testdata.ts +57 -0
- package/src/widgets/__testdata__/passage-ref.testdata.ts +101 -0
- package/src/widgets/__testdata__/passage.testdata.ts +95 -0
- package/src/widgets/__testdata__/radio.testdata.ts +261 -0
- package/src/widgets/__testdata__/sorter.testdata.ts +19 -0
- package/src/widgets/__testdata__/transformer.testdata.ts +108 -0
- package/src/widgets/__testdata__/video.testdata.ts +21 -0
- package/src/widgets/__tests__/__snapshots__/input-number.test.ts.snap +497 -0
- package/src/widgets/__tests__/__snapshots__/unit.test.tsx.snap +20 -0
- package/src/widgets/__tests__/categorizer.test.ts +203 -0
- package/src/widgets/__tests__/cs-program.test.ts +43 -0
- package/src/widgets/__tests__/definition.test.ts +136 -0
- package/src/widgets/__tests__/dropdown.test.ts +105 -0
- package/src/widgets/__tests__/explanation.test.ts +198 -0
- package/src/widgets/__tests__/expression.test.ts +431 -0
- package/src/widgets/__tests__/graded-group-set-jipt.test.ts +30 -0
- package/src/widgets/__tests__/graded-group-set.test.ts +288 -0
- package/src/widgets/__tests__/graded-group.test.ts +232 -0
- package/src/widgets/__tests__/grapher.cypress.ts +576 -0
- package/src/widgets/__tests__/grapher.test.ts +33 -0
- package/src/widgets/__tests__/group.test.tsx +512 -0
- package/src/widgets/__tests__/iframe.test.ts +45 -0
- package/src/widgets/__tests__/image.test.ts +62 -0
- package/src/widgets/__tests__/input-number.test.ts +354 -0
- package/src/widgets/__tests__/interaction.test.ts +31 -0
- package/src/widgets/__tests__/interactive-graph.cypress.ts +815 -0
- package/src/widgets/__tests__/interactive-graph.test.ts +106 -0
- package/src/widgets/__tests__/matcher.test.tsx +152 -0
- package/src/widgets/__tests__/matrix.test.ts +82 -0
- package/src/widgets/__tests__/number-line.test.ts +79 -0
- package/src/widgets/__tests__/numeric-input.test.ts +502 -0
- package/src/widgets/__tests__/orderer.test.ts +73 -0
- package/src/widgets/__tests__/passage-ref.test.ts +168 -0
- package/src/widgets/__tests__/passage.test.tsx +224 -0
- package/src/widgets/__tests__/radio/base-radio.test.tsx +470 -0
- package/src/widgets/__tests__/radio/choice-icon.test.tsx +90 -0
- package/src/widgets/__tests__/radio/choice.test.tsx +310 -0
- package/src/widgets/__tests__/radio/focus-ring.test.tsx +23 -0
- package/src/widgets/__tests__/radio/option-status.test.tsx +77 -0
- package/src/widgets/__tests__/radio.test.ts +807 -0
- package/src/widgets/__tests__/renderQuestion.tsx +77 -0
- package/src/widgets/__tests__/unit.test.tsx +168 -0
- package/src/widgets/__tests__/video.test.ts +53 -0
- package/src/widgets/categorizer.tsx +343 -0
- package/src/widgets/cs-program.tsx +227 -0
- package/src/widgets/definition.tsx +121 -0
- package/src/widgets/dropdown.tsx +142 -0
- package/src/widgets/explanation.tsx +317 -0
- package/src/widgets/expression.tsx +647 -0
- package/src/widgets/graded-group-answer-bar.tsx +142 -0
- package/src/widgets/graded-group-set.tsx +296 -0
- package/src/widgets/graded-group.tsx +466 -0
- package/src/widgets/grapher/util.tsx +803 -0
- package/src/widgets/grapher.tsx +674 -0
- package/src/widgets/group.tsx +196 -0
- package/src/widgets/iframe.tsx +195 -0
- package/src/widgets/image.tsx +309 -0
- package/src/widgets/input-number.tsx +413 -0
- package/src/widgets/interaction/arrow-picker.tsx +38 -0
- package/src/widgets/interaction/color-picker.tsx +69 -0
- package/src/widgets/interaction/dash-picker.tsx +45 -0
- package/src/widgets/interaction/element-container.tsx +101 -0
- package/src/widgets/interaction.tsx +826 -0
- package/src/widgets/interactive-graph.tsx +2921 -0
- package/src/widgets/label-image/__stories__/answer-choices.stories.tsx +98 -0
- package/src/widgets/label-image/__stories__/marker.stories.tsx +181 -0
- package/src/widgets/label-image/answer-choices.tsx +300 -0
- package/src/widgets/label-image/marker.tsx +364 -0
- package/src/widgets/label-image/types.ts +26 -0
- package/src/widgets/label-image.test.ts +840 -0
- package/src/widgets/label-image.tsx +849 -0
- package/src/widgets/lights-puzzle.tsx +359 -0
- package/src/widgets/matcher.tsx +278 -0
- package/src/widgets/matrix.tsx +637 -0
- package/src/widgets/measurer.tsx +217 -0
- package/src/widgets/molecule/__tests__/layout.test.ts +162 -0
- package/src/widgets/molecule/__tests__/parser.test.ts +155 -0
- package/src/widgets/molecule/molecule-drawing.ts +173 -0
- package/src/widgets/molecule/molecule-layout.ts +362 -0
- package/src/widgets/molecule/smiles-parser.ts +296 -0
- package/src/widgets/molecule.tsx +172 -0
- package/src/widgets/number-line.tsx +864 -0
- package/src/widgets/numeric-input.tsx +563 -0
- package/src/widgets/orderer.tsx +788 -0
- package/src/widgets/passage/__tests__/passage-markdown.test.ts +376 -0
- package/src/widgets/passage/passage-markdown.tsx +475 -0
- package/src/widgets/passage-ref-target.tsx +73 -0
- package/src/widgets/passage-ref.tsx +215 -0
- package/src/widgets/passage.tsx +584 -0
- package/src/widgets/plotter.tsx +1204 -0
- package/src/widgets/radio/__stories__/base-radio.stories.tsx +204 -0
- package/src/widgets/radio/__stories__/choice-icon.stories.tsx +168 -0
- package/src/widgets/radio/__stories__/choice-none-above.stories.tsx +40 -0
- package/src/widgets/radio/__stories__/choice.stories.tsx +137 -0
- package/src/widgets/radio/__stories__/focus-ring.stories.tsx +43 -0
- package/src/widgets/radio/__stories__/option-status.stories.tsx +105 -0
- package/src/widgets/radio/base-radio.tsx +509 -0
- package/src/widgets/radio/choice-a11y-text.ts +61 -0
- package/src/widgets/radio/choice-icon/choice-icon.tsx +217 -0
- package/src/widgets/radio/choice-icon/cross-out-line.tsx +53 -0
- package/src/widgets/radio/choice-icon/shared-styles.ts +15 -0
- package/src/widgets/radio/choice-none-above.tsx +56 -0
- package/src/widgets/radio/choice.jsx.fixture.ts +45 -0
- package/src/widgets/radio/choice.tsx +358 -0
- package/src/widgets/radio/focus-ring.tsx +57 -0
- package/src/widgets/radio/option-status.tsx +100 -0
- package/src/widgets/radio/util.test.ts +18 -0
- package/src/widgets/radio/util.ts +31 -0
- package/src/widgets/radio/widget.tsx +521 -0
- package/src/widgets/radio.ts +157 -0
- package/src/widgets/reaction-diagram.tsx +144 -0
- package/src/widgets/sequence.tsx +137 -0
- package/src/widgets/simulator.tsx +831 -0
- package/src/widgets/sorter.tsx +154 -0
- package/src/widgets/table.tsx +393 -0
- package/src/widgets/transformer.tsx +2951 -0
- package/src/widgets/unit.tsx +374 -0
- package/src/widgets/video-transcript-link.test.tsx +213 -0
- package/src/widgets/video-transcript-link.tsx +84 -0
- package/src/widgets/video.tsx +124 -0
- package/src/widgets.ts +444 -0
- package/src/zoom.ts +558 -0
- package/tsconfig.json +25 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/src/__stories__/hints-renderer.stories.jsx +0 -60
- package/src/__stories__/item-renderer.stories.jsx +0 -27
- package/src/__stories__/server-item-renderer.stories.jsx +0 -27
- package/src/__testdata__/graphie_testdata.js +0 -53
- package/src/__testdata__/item-renderer_testdata.js +0 -161
- package/src/__testdata__/renderer_testdata.js +0 -123
- package/src/__tests__/a11y_test.jsx +0 -304
- package/src/__tests__/item-renderer_test.jsx +0 -892
- package/src/__tests__/jipt-paragraphs_test.js +0 -34
- package/src/__tests__/mock-asset-loading-widget.jsx +0 -57
- package/src/__tests__/mock-widget.jsx +0 -35
- package/src/__tests__/perseus-markdown_test.jsx +0 -747
- package/src/__tests__/renderability_test.jsx +0 -481
- package/src/__tests__/renderer-api_test.jsx +0 -309
- package/src/__tests__/renderer_test.jsx +0 -1792
- package/src/__tests__/server-item-renderer_test.jsx +0 -516
- package/src/__tests__/test-items/image-item.js +0 -25
- package/src/__tests__/test-items/input-number-1-item.js +0 -27
- package/src/__tests__/test-items/input-number-2-item.js +0 -39
- package/src/__tests__/test-items/table-item.js +0 -30
- package/src/__tests__/tex-wrangler_test.js +0 -83
- package/src/__tests__/util_test.js +0 -41
- package/src/a11y.js +0 -46
- package/src/all-widgets.js +0 -9
- package/src/article-renderer.jsx +0 -214
- package/src/asset-context.js +0 -30
- package/src/basic-widgets.js +0 -13
- package/src/components/__stories__/button-group.stories.jsx +0 -61
- package/src/components/__stories__/fixed-to-responsive.stories.jsx +0 -132
- package/src/components/__stories__/graph.stories.jsx +0 -27
- package/src/components/__stories__/graphie.stories.jsx +0 -32
- package/src/components/__stories__/hud.stories.jsx +0 -36
- package/src/components/__stories__/icon.stories.jsx +0 -56
- package/src/components/__stories__/image-loader.stories.jsx +0 -60
- package/src/components/__stories__/info-tip.stories.jsx +0 -33
- package/src/components/__stories__/inline-icon.stories.jsx +0 -39
- package/src/components/__stories__/input-with-examples.stories.jsx +0 -52
- package/src/components/__stories__/lint.stories.jsx +0 -40
- package/src/components/__stories__/math-input.stories.jsx +0 -29
- package/src/components/__stories__/math-output.stories.jsx +0 -24
- package/src/components/__stories__/multi-button-group.stories.jsx +0 -69
- package/src/components/__stories__/number-input.stories.jsx +0 -42
- package/src/components/__stories__/prop-check-box.stories.jsx +0 -62
- package/src/components/__stories__/range-input.stories.jsx +0 -28
- package/src/components/__stories__/simple-keypad-input.stories.jsx +0 -28
- package/src/components/__stories__/sortable.stories.jsx +0 -73
- package/src/components/__stories__/stub-tag-editor.stories.jsx +0 -44
- package/src/components/__stories__/svg-image.stories.jsx +0 -71
- package/src/components/__stories__/tex.stories.jsx +0 -24
- package/src/components/__stories__/text-buttons.stories.jsx +0 -51
- package/src/components/__stories__/text-input.stories.jsx +0 -34
- package/src/components/__stories__/text-list-editor.stories.jsx +0 -33
- package/src/components/__stories__/zoomable-tex.stories.jsx +0 -39
- package/src/components/__stories__/zoomable.stories.jsx +0 -40
- package/src/components/__testdata__/sorter_testdata.js +0 -20
- package/src/components/__tests__/number-input_test.jsx +0 -112
- package/src/components/__tests__/sortable_test.jsx +0 -234
- package/src/components/__tests__/sorter_test.jsx +0 -111
- package/src/components/__tests__/zoomable_test.jsx +0 -388
- package/src/components/button-group.jsx +0 -131
- package/src/components/constants.js +0 -15
- package/src/components/fixed-to-responsive.jsx +0 -165
- package/src/components/graph.jsx +0 -413
- package/src/components/graphie-classes.jsx +0 -148
- package/src/components/graphie-movables.jsx +0 -342
- package/src/components/graphie.jsx +0 -353
- package/src/components/highlighting/highlightable-content.jsx +0 -245
- package/src/components/highlighting/highlights.js +0 -208
- package/src/components/highlighting/ranges.js +0 -299
- package/src/components/highlighting/types.js +0 -73
- package/src/components/highlighting/ui/highlight-renderer.jsx +0 -179
- package/src/components/highlighting/ui/highlight-set-renderer.jsx +0 -190
- package/src/components/highlighting/ui/highlight-tooltip.jsx +0 -143
- package/src/components/highlighting/ui/highlighting-ui.jsx +0 -163
- package/src/components/highlighting/ui/selection-tracker.jsx +0 -184
- package/src/components/highlighting/ui/types.js +0 -21
- package/src/components/highlighting/ui/util.js +0 -166
- package/src/components/highlighting/word-indexer.jsx +0 -155
- package/src/components/hud.jsx +0 -179
- package/src/components/icon.jsx +0 -149
- package/src/components/image-loader.jsx +0 -175
- package/src/components/info-tip/info-tip.jsx +0 -146
- package/src/components/info-tip.jsx +0 -38
- package/src/components/inline-icon.jsx +0 -81
- package/src/components/input-with-examples.jsx +0 -248
- package/src/components/lint.jsx +0 -455
- package/src/components/math-input.jsx +0 -293
- package/src/components/math-output.jsx +0 -128
- package/src/components/multi-button-group.jsx +0 -137
- package/src/components/number-input.jsx +0 -253
- package/src/components/prop-check-box.jsx +0 -80
- package/src/components/range-input.jsx +0 -61
- package/src/components/simple-keypad-input.jsx +0 -88
- package/src/components/sortable.jsx +0 -872
- package/src/components/stub-tag-editor.jsx +0 -54
- package/src/components/svg-image.jsx +0 -765
- package/src/components/tex-buttons.jsx +0 -320
- package/src/components/tex.jsx +0 -70
- package/src/components/text-input.jsx +0 -133
- package/src/components/text-list-editor.jsx +0 -157
- package/src/components/tooltip.jsx +0 -392
- package/src/components/visibility-observer/__stories__/visibility-observer.stories.jsx +0 -140
- package/src/components/visibility-observer/get-scroll-parent.js +0 -45
- package/src/components/visibility-observer/visibility-observer.js +0 -109
- package/src/components/visibility-observer/visibility-observer.jsx +0 -123
- package/src/components/zoomable-tex.jsx +0 -70
- package/src/components/zoomable.jsx +0 -294
- package/src/components.js +0 -17
- package/src/definition-context.js +0 -59
- package/src/dependencies.js +0 -22
- package/src/error-boundary.jsx +0 -48
- package/src/extra-widgets.js +0 -75
- package/src/hint-renderer.jsx +0 -155
- package/src/hints-renderer.jsx +0 -367
- package/src/icon-paths.js +0 -120
- package/src/index.js +0 -159
- package/src/init.js +0 -49
- package/src/interaction-tracker.js +0 -60
- package/src/interactive2/__tests__/movable-mock.js +0 -48
- package/src/interactive2/__tests__/movable-point_test.js +0 -146
- package/src/interactive2/interactive-util.js +0 -152
- package/src/interactive2/movable-helper-methods.js +0 -160
- package/src/interactive2/movable-line-options.js +0 -392
- package/src/interactive2/movable-line.js +0 -322
- package/src/interactive2/movable-point-options.js +0 -190
- package/src/interactive2/movable-point.jsx +0 -597
- package/src/interactive2/movable-polygon-options.js +0 -351
- package/src/interactive2/movable-polygon.js +0 -368
- package/src/interactive2/movable.js +0 -273
- package/src/interactive2/objective_.js +0 -79
- package/src/interactive2/types.js +0 -3
- package/src/interactive2/wrapped-defaults.js +0 -86
- package/src/interactive2/wrapped-ellipse.js +0 -86
- package/src/interactive2/wrapped-line.js +0 -109
- package/src/interactive2/wrapped-path.js +0 -47
- package/src/interactive2.js +0 -91
- package/src/item-renderer.jsx +0 -514
- package/src/item-version.js +0 -12
- package/src/jipt-paragraphs.js +0 -52
- package/src/keypad-context.js +0 -33
- package/src/loading-context.js +0 -20
- package/src/logging/log.js +0 -107
- package/src/logging/log_test.js +0 -41
- package/src/mixins/__tests__/widget-prop-denylist_test.js +0 -23
- package/src/mixins/changeable.jsx +0 -115
- package/src/mixins/editor-jsonify.jsx +0 -13
- package/src/mixins/provide-keypad.jsx +0 -131
- package/src/mixins/widget-jsonify-deprecated.jsx +0 -23
- package/src/mixins/widget-prop-denylist.js +0 -49
- package/src/multi-items/__stories__/multi-renderer.stories.js +0 -88
- package/src/multi-items/__testdata__/multi-renderer_testdata.js +0 -174
- package/src/multi-items/__tests__/items_test.js +0 -245
- package/src/multi-items/__tests__/multi-renderer_test.js +0 -903
- package/src/multi-items/__tests__/prop-type-builders_test.js +0 -134
- package/src/multi-items/__tests__/shapes_test.js +0 -44
- package/src/multi-items/__tests__/trees_test.js +0 -316
- package/src/multi-items/items.js +0 -176
- package/src/multi-items/multi-renderer.jsx +0 -543
- package/src/multi-items/prop-type-builders.js +0 -105
- package/src/multi-items/shape-types.js +0 -47
- package/src/multi-items/shapes.js +0 -53
- package/src/multi-items/tree-types.js +0 -42
- package/src/multi-items/trees.js +0 -345
- package/src/multi-items.js +0 -76
- package/src/perseus-api.jsx +0 -221
- package/src/perseus-env.js +0 -26
- package/src/perseus-error.js +0 -19
- package/src/perseus-markdown.jsx +0 -408
- package/src/perseus-types.js +0 -1471
- package/src/question-paragraph.jsx +0 -30
- package/src/renderability.jsx +0 -108
- package/src/renderer.jsx +0 -1937
- package/src/server-item-renderer.jsx +0 -467
- package/src/sigfigs.jsx +0 -492
- package/src/styles/constants.js +0 -96
- package/src/styles/global-constants.js +0 -344
- package/src/styles/global-styles.js +0 -307
- package/src/styles/media-queries.js +0 -48
- package/src/styles/shared.js +0 -132
- package/src/tex-wrangler.js +0 -176
- package/src/translation-linter.js +0 -125
- package/src/traversal.jsx +0 -141
- package/src/types.js +0 -488
- package/src/util/a11y.js +0 -24
- package/src/util/answer-types.js +0 -861
- package/src/util/answer-types_test.js +0 -115
- package/src/util/colors.js +0 -94
- package/src/util/fix-passage-refs.jsx +0 -122
- package/src/util/graph-utils.js +0 -16
- package/src/util/graphie.js +0 -1586
- package/src/util/interactive.js +0 -4078
- package/src/util/katex-preprocess.js +0 -16
- package/src/util/math.js +0 -289
- package/src/util/mobile-native-utils.js +0 -14
- package/src/util/mobile-native-utils_test.js +0 -24
- package/src/util/react-render.js +0 -27
- package/src/util/register-all-widgets-for-testing.js +0 -12
- package/src/util/scroll-utils.js +0 -162
- package/src/util/sizing-utils.js +0 -46
- package/src/util/tex.js +0 -203
- package/src/util/url-utils.js +0 -36
- package/src/util.js +0 -984
- package/src/version.js +0 -11
- package/src/widget-container.jsx +0 -178
- package/src/widgets/__stories__/categorizer.stories.jsx +0 -15
- package/src/widgets/__stories__/cs-program.stories.jsx +0 -15
- package/src/widgets/__stories__/definition.stories.jsx +0 -108
- package/src/widgets/__stories__/dropdown.stories.jsx +0 -15
- package/src/widgets/__stories__/explanation.stories.jsx +0 -19
- package/src/widgets/__stories__/expression.stories.jsx +0 -26
- package/src/widgets/__stories__/graded-group-set.stories.jsx +0 -32
- package/src/widgets/__stories__/graded-group.stories.jsx +0 -32
- package/src/widgets/__stories__/grapher.stories.jsx +0 -47
- package/src/widgets/__stories__/group.stories.jsx +0 -15
- package/src/widgets/__stories__/iframe.stories.jsx +0 -15
- package/src/widgets/__stories__/image.stories.jsx +0 -62
- package/src/widgets/__stories__/input-number.stories.jsx +0 -102
- package/src/widgets/__stories__/interaction.stories.jsx +0 -15
- package/src/widgets/__stories__/interactive-graph.stories.jsx +0 -61
- package/src/widgets/__stories__/matcher.stories.jsx +0 -15
- package/src/widgets/__stories__/matrix.stories.jsx +0 -15
- package/src/widgets/__stories__/number-line.stories.jsx +0 -15
- package/src/widgets/__stories__/numeric-input.stories.jsx +0 -106
- package/src/widgets/__stories__/on-screen-keypad.stories.jsx +0 -118
- package/src/widgets/__stories__/orderer.stories.jsx +0 -15
- package/src/widgets/__stories__/passage-ref.stories.jsx +0 -23
- package/src/widgets/__stories__/passage.stories.jsx +0 -27
- package/src/widgets/__stories__/radio.stories.jsx +0 -90
- package/src/widgets/__stories__/sorter.stories.jsx +0 -15
- package/src/widgets/__stories__/transformer.stories.jsx +0 -15
- package/src/widgets/__stories__/unit.stories.jsx +0 -45
- package/src/widgets/__stories__/video-transcript-link.stories.jsx +0 -24
- package/src/widgets/__stories__/video.stories.jsx +0 -15
- package/src/widgets/__testdata__/base-radio_testdata.js +0 -22
- package/src/widgets/__testdata__/categorizer_testdata.js +0 -50
- package/src/widgets/__testdata__/cs-program_testdata.js +0 -28
- package/src/widgets/__testdata__/dropdown_testdata.js +0 -34
- package/src/widgets/__testdata__/explanation_testdata.js +0 -56
- package/src/widgets/__testdata__/expression_testdata.js +0 -95
- package/src/widgets/__testdata__/graded-group-set_testdata.js +0 -358
- package/src/widgets/__testdata__/graded-group_testdata.js +0 -79
- package/src/widgets/__testdata__/grapher_testdata.js +0 -376
- package/src/widgets/__testdata__/group_testdata.js +0 -156
- package/src/widgets/__testdata__/iframe_testdata.js +0 -36
- package/src/widgets/__testdata__/image_testdata.js +0 -38
- package/src/widgets/__testdata__/input-number_testdata.js +0 -73
- package/src/widgets/__testdata__/interaction_testdata.js +0 -264
- package/src/widgets/__testdata__/interactive-graph_testdata.js +0 -646
- package/src/widgets/__testdata__/matcher_testdata.js +0 -34
- package/src/widgets/__testdata__/matrix_testdata.js +0 -29
- package/src/widgets/__testdata__/number-line_testdata.js +0 -31
- package/src/widgets/__testdata__/numeric-input_testdata.js +0 -266
- package/src/widgets/__testdata__/orderer_testdata.js +0 -58
- package/src/widgets/__testdata__/passage-ref_testdata.js +0 -103
- package/src/widgets/__testdata__/passage_testdata.js +0 -96
- package/src/widgets/__testdata__/radio_testdata.js +0 -262
- package/src/widgets/__testdata__/sorter_testdata.js +0 -20
- package/src/widgets/__testdata__/transformer_testdata.js +0 -109
- package/src/widgets/__testdata__/video_testdata.js +0 -22
- package/src/widgets/__tests__/__snapshots__/expression_test.jsx.snap +0 -38
- package/src/widgets/__tests__/__snapshots__/input-number_test.jsx.snap +0 -978
- package/src/widgets/__tests__/categorizer_test.jsx +0 -205
- package/src/widgets/__tests__/cs-program_test.jsx +0 -45
- package/src/widgets/__tests__/definition_test.js +0 -137
- package/src/widgets/__tests__/dropdown_test.jsx +0 -106
- package/src/widgets/__tests__/explanation_test.js +0 -199
- package/src/widgets/__tests__/expression_test.jsx +0 -439
- package/src/widgets/__tests__/graded-group-set-jipt_test.jsx +0 -32
- package/src/widgets/__tests__/graded-group-set_test.jsx +0 -290
- package/src/widgets/__tests__/graded-group_test.jsx +0 -233
- package/src/widgets/__tests__/grapher.cypress.jsx +0 -546
- package/src/widgets/__tests__/grapher_test.jsx +0 -35
- package/src/widgets/__tests__/group_test.jsx +0 -512
- package/src/widgets/__tests__/iframe_test.jsx +0 -47
- package/src/widgets/__tests__/image_test.jsx +0 -65
- package/src/widgets/__tests__/input-number_test.jsx +0 -360
- package/src/widgets/__tests__/interaction_test.jsx +0 -33
- package/src/widgets/__tests__/interactive-graph.cypress.jsx +0 -777
- package/src/widgets/__tests__/interactive-graph_test.jsx +0 -105
- package/src/widgets/__tests__/matcher_test.jsx +0 -157
- package/src/widgets/__tests__/matrix_test.jsx +0 -84
- package/src/widgets/__tests__/number-line_test.jsx +0 -81
- package/src/widgets/__tests__/numeric-input_test.jsx +0 -514
- package/src/widgets/__tests__/orderer_test.jsx +0 -75
- package/src/widgets/__tests__/passage-ref_test.jsx +0 -166
- package/src/widgets/__tests__/passage_test.jsx +0 -212
- package/src/widgets/__tests__/radio/base-radio_test.jsx +0 -443
- package/src/widgets/__tests__/radio/choice-icon_test.jsx +0 -91
- package/src/widgets/__tests__/radio/choice_test.jsx +0 -311
- package/src/widgets/__tests__/radio/focus-ring_test.jsx +0 -23
- package/src/widgets/__tests__/radio/option-status_test.jsx +0 -65
- package/src/widgets/__tests__/radio_test.jsx +0 -810
- package/src/widgets/__tests__/renderQuestion.jsx +0 -66
- package/src/widgets/__tests__/unit_test.jsx +0 -144
- package/src/widgets/__tests__/video_test.jsx +0 -55
- package/src/widgets/categorizer.jsx +0 -343
- package/src/widgets/cs-program.jsx +0 -227
- package/src/widgets/definition.jsx +0 -121
- package/src/widgets/dropdown.jsx +0 -141
- package/src/widgets/explanation.jsx +0 -315
- package/src/widgets/expression.jsx +0 -652
- package/src/widgets/graded-group-answer-bar.jsx +0 -152
- package/src/widgets/graded-group-set.jsx +0 -296
- package/src/widgets/graded-group.jsx +0 -453
- package/src/widgets/grapher/util.jsx +0 -806
- package/src/widgets/grapher.jsx +0 -663
- package/src/widgets/group.jsx +0 -195
- package/src/widgets/iframe.jsx +0 -198
- package/src/widgets/image.jsx +0 -310
- package/src/widgets/input-number.jsx +0 -412
- package/src/widgets/interaction/arrow-picker.jsx +0 -39
- package/src/widgets/interaction/color-picker.jsx +0 -69
- package/src/widgets/interaction/dash-picker.jsx +0 -46
- package/src/widgets/interaction/element-container.jsx +0 -97
- package/src/widgets/interaction.jsx +0 -742
- package/src/widgets/interactive-graph.jsx +0 -2820
- package/src/widgets/label-image/__stories__/answer-choices.stories.jsx +0 -93
- package/src/widgets/label-image/__stories__/marker.stories.jsx +0 -172
- package/src/widgets/label-image/answer-choices.jsx +0 -311
- package/src/widgets/label-image/marker.jsx +0 -365
- package/src/widgets/label-image/types.js +0 -33
- package/src/widgets/label-image.jsx +0 -841
- package/src/widgets/label-image_test.js +0 -840
- package/src/widgets/lights-puzzle.jsx +0 -356
- package/src/widgets/matcher.jsx +0 -274
- package/src/widgets/matrix.jsx +0 -632
- package/src/widgets/measurer.jsx +0 -215
- package/src/widgets/molecule/__tests__/layout_test.jsx +0 -159
- package/src/widgets/molecule/__tests__/parser_test.jsx +0 -142
- package/src/widgets/molecule/molecule-drawing.jsx +0 -175
- package/src/widgets/molecule/molecule-layout.jsx +0 -367
- package/src/widgets/molecule/smiles-parser.jsx +0 -300
- package/src/widgets/molecule.jsx +0 -172
- package/src/widgets/number-line.jsx +0 -858
- package/src/widgets/numeric-input.jsx +0 -553
- package/src/widgets/orderer.jsx +0 -756
- package/src/widgets/passage/__tests__/passage-markdown_test.jsx +0 -373
- package/src/widgets/passage/passage-markdown.jsx +0 -472
- package/src/widgets/passage-ref-target.jsx +0 -73
- package/src/widgets/passage-ref.jsx +0 -214
- package/src/widgets/passage.jsx +0 -576
- package/src/widgets/plotter.jsx +0 -1198
- package/src/widgets/radio/__stories__/base-radio.stories.jsx +0 -189
- package/src/widgets/radio/__stories__/choice-icon.stories.jsx +0 -166
- package/src/widgets/radio/__stories__/choice-none-above.stories.jsx +0 -41
- package/src/widgets/radio/__stories__/choice.stories.jsx +0 -138
- package/src/widgets/radio/__stories__/focus-ring.stories.jsx +0 -44
- package/src/widgets/radio/__stories__/option-status.stories.jsx +0 -104
- package/src/widgets/radio/base-radio.jsx +0 -494
- package/src/widgets/radio/choice-a11y-text.js +0 -62
- package/src/widgets/radio/choice-icon/choice-icon.jsx +0 -214
- package/src/widgets/radio/choice-icon/cross-out-line.jsx +0 -52
- package/src/widgets/radio/choice-icon/shared-styles.js +0 -16
- package/src/widgets/radio/choice-none-above.jsx +0 -63
- package/src/widgets/radio/choice.jsx +0 -382
- package/src/widgets/radio/choice.jsx.fixture.js +0 -46
- package/src/widgets/radio/focus-ring.jsx +0 -58
- package/src/widgets/radio/option-status.jsx +0 -98
- package/src/widgets/radio/util.js +0 -32
- package/src/widgets/radio/util_test.js +0 -19
- package/src/widgets/radio/widget.jsx +0 -515
- package/src/widgets/radio.jsx +0 -155
- package/src/widgets/reaction-diagram.jsx +0 -137
- package/src/widgets/sequence.jsx +0 -143
- package/src/widgets/simulator.jsx +0 -806
- package/src/widgets/sorter.jsx +0 -149
- package/src/widgets/table.jsx +0 -397
- package/src/widgets/transformer.jsx +0 -2876
- package/src/widgets/unit.jsx +0 -372
- package/src/widgets/video-transcript-link.jsx +0 -84
- package/src/widgets/video-transcript-link_test.js +0 -211
- package/src/widgets/video.jsx +0 -126
- package/src/widgets.js +0 -431
- package/src/zoom.js +0 -539
- /package/{src/multi-items/item-types.js → dist/multi-items/item-types.js.flow} +0 -0
- /package/dist/{strings.js → strings} +0 -0
- /package/src/__tests__/__snapshots__/{item-renderer_test.jsx.snap → item-renderer.test.tsx.snap} +0 -0
- /package/src/__tests__/__snapshots__/{perseus-markdown_test.jsx.snap → perseus-markdown.test.ts.snap} +0 -0
- /package/src/__tests__/__snapshots__/{renderer_test.jsx.snap → renderer.test.tsx.snap} +0 -0
- /package/src/__tests__/__snapshots__/{server-item-renderer_test.jsx.snap → server-item-renderer.test.tsx.snap} +0 -0
- /package/src/components/__tests__/__snapshots__/{sortable_test.jsx.snap → sortable.test.tsx.snap} +0 -0
- /package/src/components/__tests__/__snapshots__/{sorter_test.jsx.snap → sorter.test.tsx.snap} +0 -0
- /package/src/multi-items/__tests__/__snapshots__/{multi-renderer_test.js.snap → multi-renderer.test.tsx.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{categorizer_test.jsx.snap → categorizer.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{cs-program_test.jsx.snap → cs-program.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{definition_test.js.snap → definition.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{dropdown_test.jsx.snap → dropdown.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{explanation_test.js.snap → explanation.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{graded-group-set-jipt_test.jsx.snap → graded-group-set-jipt.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{graded-group-set_test.jsx.snap → graded-group-set.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{graded-group_test.jsx.snap → graded-group.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{grapher_test.jsx.snap → grapher.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{group_test.jsx.snap → group.test.tsx.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{iframe_test.jsx.snap → iframe.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{image_test.jsx.snap → image.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{interaction_test.jsx.snap → interaction.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{interactive-graph_test.jsx.snap → interactive-graph.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{matcher_test.jsx.snap → matcher.test.tsx.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{matrix_test.jsx.snap → matrix.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{number-line_test.jsx.snap → number-line.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{numeric-input_test.jsx.snap → numeric-input.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{orderer_test.jsx.snap → orderer.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{passage-ref_test.jsx.snap → passage-ref.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{passage_test.jsx.snap → passage.test.tsx.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{radio_test.jsx.snap → radio.test.ts.snap} +0 -0
- /package/src/widgets/__tests__/__snapshots__/{video_test.jsx.snap → video.test.ts.snap} +0 -0
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
import type { Widget, PerseusScore, KEScore } from "./types";
|
|
2
|
+
type WordPosition = {
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
5
|
+
};
|
|
6
|
+
type WordAndPosition = {
|
|
7
|
+
string: string;
|
|
8
|
+
pos: WordPosition;
|
|
9
|
+
};
|
|
10
|
+
type RNG = () => number;
|
|
11
|
+
export type ParsedValue = {
|
|
12
|
+
value: number;
|
|
13
|
+
exact: boolean;
|
|
14
|
+
};
|
|
15
|
+
type Coordinates = [number, number];
|
|
16
|
+
export type GridDimensions = {
|
|
17
|
+
scale: number;
|
|
18
|
+
tickStep: number;
|
|
19
|
+
unityLabel: boolean;
|
|
20
|
+
};
|
|
21
|
+
type QueryParams = {
|
|
22
|
+
[param: string]: string;
|
|
23
|
+
};
|
|
24
|
+
type Position = {
|
|
25
|
+
top: number;
|
|
26
|
+
left: number;
|
|
27
|
+
};
|
|
28
|
+
type TouchHandlers = {
|
|
29
|
+
pointerDown: boolean;
|
|
30
|
+
currentTouchIdentifier: string | null | undefined;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Used to compare equality of two input paths, which are represented as
|
|
34
|
+
* arrays of strings.
|
|
35
|
+
*/
|
|
36
|
+
declare function inputPathsEqual(a?: ReadonlyArray<string> | null, b?: ReadonlyArray<string> | null): boolean;
|
|
37
|
+
declare function shuffle<T>(array: ReadonlyArray<T>, randomSeed: number | RNG, ensurePermuted?: boolean): ReadonlyArray<T>;
|
|
38
|
+
/**
|
|
39
|
+
* Combine two score objects.
|
|
40
|
+
*
|
|
41
|
+
* Given two score objects for two different widgets, combine them so that
|
|
42
|
+
* if one is wrong, the total score is wrong, etc.
|
|
43
|
+
*/
|
|
44
|
+
declare function combineScores(scoreA: PerseusScore, scoreB: PerseusScore): PerseusScore;
|
|
45
|
+
declare function keScoreFromPerseusScore(score: PerseusScore, guess: any, state: any): KEScore;
|
|
46
|
+
/**
|
|
47
|
+
* Return the first valid interpretation of 'text' as a number, in the form
|
|
48
|
+
* {value: 2.3, exact: true}.
|
|
49
|
+
*/
|
|
50
|
+
declare function firstNumericalParse(text: string): ParsedValue | null | undefined;
|
|
51
|
+
declare function stringArrayOfSize(size: number): ReadonlyArray<string>;
|
|
52
|
+
/**
|
|
53
|
+
* For a graph's x or y dimension, given the tick step,
|
|
54
|
+
* the ranges extent (e.g. [-10, 10]), the pixel dimension constraint,
|
|
55
|
+
* and the grid step, return a bunch of configurations for that dimension.
|
|
56
|
+
*
|
|
57
|
+
* Example:
|
|
58
|
+
* gridDimensionConfig(10, [-50, 50], 400, 5)
|
|
59
|
+
*
|
|
60
|
+
* Returns: {
|
|
61
|
+
* scale: 4,
|
|
62
|
+
* snap: 2.5,
|
|
63
|
+
* tickStep: 2,
|
|
64
|
+
* unityLabel: true
|
|
65
|
+
* };
|
|
66
|
+
*/
|
|
67
|
+
declare function gridDimensionConfig(absTickStep: number, extent: Coordinates, dimensionConstraint: number, gridStep: number): GridDimensions;
|
|
68
|
+
/**
|
|
69
|
+
* Given the range, step, and boxSize, calculate the reasonable gridStep.
|
|
70
|
+
* Used for when one was not given explicitly.
|
|
71
|
+
*
|
|
72
|
+
* Example:
|
|
73
|
+
* getGridStep([[-10, 10], [-10, 10]], [1, 1], 340)
|
|
74
|
+
*
|
|
75
|
+
* Returns: [1, 1]
|
|
76
|
+
*
|
|
77
|
+
* TODO(somewhatabstract, FEI-3464): Consolidate query string parsing functions.
|
|
78
|
+
*/
|
|
79
|
+
declare function getGridStep(range: [Coordinates, Coordinates], step: Coordinates, boxSize: number): Coordinates;
|
|
80
|
+
declare function snapStepFromGridStep(gridStep: [number, number]): [number, number];
|
|
81
|
+
/**
|
|
82
|
+
* Given the tickStep and the graph's scale, find a
|
|
83
|
+
* grid step.
|
|
84
|
+
* Example:
|
|
85
|
+
* gridStepFromTickStep(200, 0.2) // returns 100
|
|
86
|
+
*/
|
|
87
|
+
declare function gridStepFromTickStep(tickStep: number, scale: number): number | null | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Given the range and a dimension, come up with the appropriate
|
|
90
|
+
* scale.
|
|
91
|
+
* Example:
|
|
92
|
+
* scaleFromExtent([-25, 25], 500) // returns 10
|
|
93
|
+
*/
|
|
94
|
+
declare function scaleFromExtent(extent: Coordinates, dimensionConstraint: number): number;
|
|
95
|
+
/**
|
|
96
|
+
* Return a reasonable tick step given extent and dimension.
|
|
97
|
+
* (extent is [begin, end] of the domain.)
|
|
98
|
+
* Example:
|
|
99
|
+
* tickStepFromExtent([-10, 10], 300) // returns 2
|
|
100
|
+
*/
|
|
101
|
+
declare function tickStepFromExtent(extent: Coordinates, dimensionConstraint: number): number;
|
|
102
|
+
/**
|
|
103
|
+
* Find a good tick step for the desired number of ticks in the range
|
|
104
|
+
* Modified from d3.scale.linear: d3_scale_linearTickRange.
|
|
105
|
+
* Thanks, mbostock!
|
|
106
|
+
* Example:
|
|
107
|
+
* tickStepFromNumTicks(50, 6) // returns 10
|
|
108
|
+
*/
|
|
109
|
+
declare function tickStepFromNumTicks(span: number, numTicks: number): number;
|
|
110
|
+
type Range = [number, number];
|
|
111
|
+
/**
|
|
112
|
+
* Constrain tick steps intended for desktop size graphs
|
|
113
|
+
* to something more suitable for mobile size graphs.
|
|
114
|
+
* Specifically, we aim for 10 or fewer ticks per graph axis.
|
|
115
|
+
*/
|
|
116
|
+
declare function constrainedTickStepsFromTickSteps(tickSteps: Coordinates, ranges: [Range, Range]): Coordinates;
|
|
117
|
+
/**
|
|
118
|
+
* Approximate equality on numbers and primitives.
|
|
119
|
+
*/
|
|
120
|
+
declare function eq<T>(x: T, y: T): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Deep approximate equality on primitives, numbers, arrays, and objects.
|
|
123
|
+
* Recursive.
|
|
124
|
+
*/
|
|
125
|
+
declare function deepEq<T>(x: T, y: T): boolean;
|
|
126
|
+
/**
|
|
127
|
+
* Query String Parser
|
|
128
|
+
*
|
|
129
|
+
* Original from:
|
|
130
|
+
* http://stackoverflow.com/questions/901115/get-querystring-values-in-javascript/2880929#2880929
|
|
131
|
+
*/
|
|
132
|
+
declare function parseQueryString(query: string): QueryParams;
|
|
133
|
+
/**
|
|
134
|
+
* Query string adder
|
|
135
|
+
* Works for URLs without #.
|
|
136
|
+
* Original from:
|
|
137
|
+
* http://stackoverflow.com/questions/5999118/add-or-update-query-string-parameter
|
|
138
|
+
*/
|
|
139
|
+
declare function updateQueryString(uri: string, key: string, value: string): string;
|
|
140
|
+
/**
|
|
141
|
+
* A more strict encodeURIComponent that escapes `()'!`s
|
|
142
|
+
* Especially useful for creating URLs that are embeddable in markdown
|
|
143
|
+
*
|
|
144
|
+
* Adapted from
|
|
145
|
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
|
|
146
|
+
* This function and the above original available under the
|
|
147
|
+
* CC-BY-SA 2.5 license.
|
|
148
|
+
*/
|
|
149
|
+
declare function strongEncodeURIComponent(str: string): string;
|
|
150
|
+
/**
|
|
151
|
+
* TODO(somewhatabstract, JIRA-XXXX):
|
|
152
|
+
* This does not appear to be used within webapp. Could be dead code.
|
|
153
|
+
* Need to check with mobile.
|
|
154
|
+
*/
|
|
155
|
+
declare function widgetShouldHighlight(widget: Widget): boolean;
|
|
156
|
+
/**
|
|
157
|
+
* If a widget says that it is empty once it is graded.
|
|
158
|
+
* Trying to encapsulate references to the score format.
|
|
159
|
+
*/
|
|
160
|
+
declare function scoreIsEmpty(score: PerseusScore): boolean;
|
|
161
|
+
declare function resetTouchHandlers(): void;
|
|
162
|
+
/**
|
|
163
|
+
* Extracts the location of a touch or mouse event, allowing you to pass
|
|
164
|
+
* in a "mouseup", "mousedown", or "mousemove" event and receive the
|
|
165
|
+
* correct coordinates. Shouldn't be used with "vmouse" events.
|
|
166
|
+
*/
|
|
167
|
+
declare function extractPointerLocation(event: any): Position | null | undefined;
|
|
168
|
+
/**
|
|
169
|
+
* Pass this function as the touchstart for an element to
|
|
170
|
+
* avoid sending the touch to the mobile scratchpad
|
|
171
|
+
*/
|
|
172
|
+
declare function captureScratchpadTouchStart(e: TouchEvent): void;
|
|
173
|
+
declare function getImageSize(url: string, callback: (arg1: number, arg2: number) => void): void;
|
|
174
|
+
declare function getRealImageUrl(url: string): string;
|
|
175
|
+
declare function isLabeledSVG(url: string): boolean;
|
|
176
|
+
declare function getBaseUrl(url: string): string;
|
|
177
|
+
declare function getSvgUrl(url: string): string;
|
|
178
|
+
declare function getDataUrl(url: string): string;
|
|
179
|
+
/**
|
|
180
|
+
* Gets the word right before where the textarea cursor is
|
|
181
|
+
*
|
|
182
|
+
* @param {Element} textarea - The textarea DOM element
|
|
183
|
+
* @return {JSON} - An object with the word and its starting and ending positions in the textarea
|
|
184
|
+
*/
|
|
185
|
+
declare function getWordBeforeCursor(textarea: HTMLTextAreaElement): WordAndPosition;
|
|
186
|
+
/**
|
|
187
|
+
* Moves the textarea cursor at the specified position
|
|
188
|
+
*
|
|
189
|
+
* @param {Element} textarea - The textarea DOM element
|
|
190
|
+
* @param {int} pos - The position where the cursor will be moved
|
|
191
|
+
*/
|
|
192
|
+
declare function moveCursor(textarea: HTMLTextAreaElement, pos: number): void;
|
|
193
|
+
declare const Util: {
|
|
194
|
+
readonly inputPathsEqual: typeof inputPathsEqual;
|
|
195
|
+
readonly nestedMap: <T, M>(children: T | readonly T[], func: (arg1: T) => M, context: unknown) => M | readonly M[];
|
|
196
|
+
readonly rWidgetRule: RegExp;
|
|
197
|
+
readonly rTypeFromWidgetId: RegExp;
|
|
198
|
+
readonly rWidgetParts: RegExp;
|
|
199
|
+
readonly snowman: "☃";
|
|
200
|
+
readonly noScore: {
|
|
201
|
+
type: "points";
|
|
202
|
+
earned: number;
|
|
203
|
+
total: number;
|
|
204
|
+
message?: string | null | undefined;
|
|
205
|
+
};
|
|
206
|
+
readonly seededRNG: (seed: number) => RNG;
|
|
207
|
+
readonly shuffle: typeof shuffle;
|
|
208
|
+
readonly split: (str: string, r: RegExp) => ReadonlyArray<string>;
|
|
209
|
+
readonly combineScores: typeof combineScores;
|
|
210
|
+
readonly keScoreFromPerseusScore: typeof keScoreFromPerseusScore;
|
|
211
|
+
readonly firstNumericalParse: typeof firstNumericalParse;
|
|
212
|
+
readonly stringArrayOfSize: typeof stringArrayOfSize;
|
|
213
|
+
readonly gridDimensionConfig: typeof gridDimensionConfig;
|
|
214
|
+
readonly getGridStep: typeof getGridStep;
|
|
215
|
+
readonly snapStepFromGridStep: typeof snapStepFromGridStep;
|
|
216
|
+
readonly scaleFromExtent: typeof scaleFromExtent;
|
|
217
|
+
readonly tickStepFromExtent: typeof tickStepFromExtent;
|
|
218
|
+
readonly gridStepFromTickStep: typeof gridStepFromTickStep;
|
|
219
|
+
readonly tickStepFromNumTicks: typeof tickStepFromNumTicks;
|
|
220
|
+
readonly constrainedTickStepsFromTickSteps: typeof constrainedTickStepsFromTickSteps;
|
|
221
|
+
readonly DeprecationMixin: any;
|
|
222
|
+
readonly eq: typeof eq;
|
|
223
|
+
readonly deepEq: typeof deepEq;
|
|
224
|
+
readonly parseQueryString: typeof parseQueryString;
|
|
225
|
+
readonly updateQueryString: typeof updateQueryString;
|
|
226
|
+
readonly strongEncodeURIComponent: typeof strongEncodeURIComponent;
|
|
227
|
+
readonly widgetShouldHighlight: typeof widgetShouldHighlight;
|
|
228
|
+
readonly scoreIsEmpty: typeof scoreIsEmpty;
|
|
229
|
+
readonly touchHandlers: TouchHandlers;
|
|
230
|
+
readonly resetTouchHandlers: typeof resetTouchHandlers;
|
|
231
|
+
readonly extractPointerLocation: typeof extractPointerLocation;
|
|
232
|
+
readonly supportsPassiveEvents: () => boolean;
|
|
233
|
+
readonly captureScratchpadTouchStart: typeof captureScratchpadTouchStart;
|
|
234
|
+
readonly getImageSize: typeof getImageSize;
|
|
235
|
+
readonly getRealImageUrl: typeof getRealImageUrl;
|
|
236
|
+
readonly isLabeledSVG: typeof isLabeledSVG;
|
|
237
|
+
readonly getBaseUrl: typeof getBaseUrl;
|
|
238
|
+
readonly getSvgUrl: typeof getSvgUrl;
|
|
239
|
+
readonly getDataUrl: typeof getDataUrl;
|
|
240
|
+
readonly textarea: {
|
|
241
|
+
readonly getWordBeforeCursor: typeof getWordBeforeCursor;
|
|
242
|
+
readonly moveCursor: typeof moveCursor;
|
|
243
|
+
};
|
|
244
|
+
readonly unescapeMathMode: (label: string) => string;
|
|
245
|
+
readonly random: RNG;
|
|
246
|
+
};
|
|
247
|
+
export default Util;
|
|
@@ -0,0 +1,320 @@
|
|
|
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 { Widget, PerseusScore, KEScore } from "./types";
|
|
8
|
+
declare type WordPosition = {|
|
|
9
|
+
start: number,
|
|
10
|
+
end: number,
|
|
11
|
+
|};
|
|
12
|
+
declare type WordAndPosition = {|
|
|
13
|
+
string: string,
|
|
14
|
+
pos: WordPosition,
|
|
15
|
+
|};
|
|
16
|
+
declare type RNG = () => number;
|
|
17
|
+
export type ParsedValue = {|
|
|
18
|
+
value: number,
|
|
19
|
+
exact: boolean,
|
|
20
|
+
|};
|
|
21
|
+
declare type Coordinates = [number, number];
|
|
22
|
+
export type GridDimensions = {|
|
|
23
|
+
scale: number,
|
|
24
|
+
tickStep: number,
|
|
25
|
+
unityLabel: boolean,
|
|
26
|
+
|};
|
|
27
|
+
declare type QueryParams = {
|
|
28
|
+
[param: string]: string,
|
|
29
|
+
};
|
|
30
|
+
declare type Position = {|
|
|
31
|
+
top: number,
|
|
32
|
+
left: number,
|
|
33
|
+
|};
|
|
34
|
+
declare type TouchHandlers = {|
|
|
35
|
+
pointerDown: boolean,
|
|
36
|
+
currentTouchIdentifier: string | null | void,
|
|
37
|
+
|};
|
|
38
|
+
/**
|
|
39
|
+
* Used to compare equality of two input paths, which are represented as
|
|
40
|
+
* arrays of strings.
|
|
41
|
+
*/
|
|
42
|
+
declare function inputPathsEqual(
|
|
43
|
+
a?: $ReadOnlyArray<string> | null,
|
|
44
|
+
b?: $ReadOnlyArray<string> | null
|
|
45
|
+
): boolean;
|
|
46
|
+
declare function shuffle<T>(
|
|
47
|
+
array: $ReadOnlyArray<T>,
|
|
48
|
+
randomSeed: number | RNG,
|
|
49
|
+
ensurePermuted?: boolean
|
|
50
|
+
): $ReadOnlyArray<T>;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Combine two score objects.
|
|
54
|
+
*
|
|
55
|
+
* Given two score objects for two different widgets, combine them so that
|
|
56
|
+
* if one is wrong, the total score is wrong, etc.
|
|
57
|
+
*/
|
|
58
|
+
declare function combineScores(
|
|
59
|
+
scoreA: PerseusScore,
|
|
60
|
+
scoreB: PerseusScore
|
|
61
|
+
): PerseusScore;
|
|
62
|
+
declare function keScoreFromPerseusScore(
|
|
63
|
+
score: PerseusScore,
|
|
64
|
+
guess: any,
|
|
65
|
+
state: any
|
|
66
|
+
): KEScore;
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Return the first valid interpretation of 'text' as a number, in the form
|
|
70
|
+
* {value: 2.3, exact: true}.
|
|
71
|
+
*/
|
|
72
|
+
declare function firstNumericalParse(text: string): ParsedValue | null | void;
|
|
73
|
+
declare function stringArrayOfSize(size: number): $ReadOnlyArray<string>;
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* For a graph's x or y dimension, given the tick step,
|
|
77
|
+
* the ranges extent (e.g. [-10, 10]), the pixel dimension constraint,
|
|
78
|
+
* and the grid step, return a bunch of configurations for that dimension.
|
|
79
|
+
*
|
|
80
|
+
* Example:
|
|
81
|
+
* gridDimensionConfig(10, [-50, 50], 400, 5)
|
|
82
|
+
*
|
|
83
|
+
* Returns: {
|
|
84
|
+
* scale: 4,
|
|
85
|
+
* snap: 2.5,
|
|
86
|
+
* tickStep: 2,
|
|
87
|
+
* unityLabel: true
|
|
88
|
+
* };
|
|
89
|
+
*/
|
|
90
|
+
declare function gridDimensionConfig(
|
|
91
|
+
absTickStep: number,
|
|
92
|
+
extent: Coordinates,
|
|
93
|
+
dimensionConstraint: number,
|
|
94
|
+
gridStep: number
|
|
95
|
+
): GridDimensions;
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Given the range, step, and boxSize, calculate the reasonable gridStep.
|
|
99
|
+
* Used for when one was not given explicitly.
|
|
100
|
+
*
|
|
101
|
+
* Example:
|
|
102
|
+
* getGridStep([[-10, 10], [-10, 10]], [1, 1], 340)
|
|
103
|
+
*
|
|
104
|
+
* Returns: [1, 1]
|
|
105
|
+
*
|
|
106
|
+
* TODO(somewhatabstract, FEI-3464): Consolidate query string parsing functions.
|
|
107
|
+
*/
|
|
108
|
+
declare function getGridStep(
|
|
109
|
+
range: [Coordinates, Coordinates],
|
|
110
|
+
step: Coordinates,
|
|
111
|
+
boxSize: number
|
|
112
|
+
): Coordinates;
|
|
113
|
+
declare function snapStepFromGridStep(
|
|
114
|
+
gridStep: [number, number]
|
|
115
|
+
): [number, number];
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Given the tickStep and the graph's scale, find a
|
|
119
|
+
* grid step.
|
|
120
|
+
* Example:
|
|
121
|
+
* gridStepFromTickStep(200, 0.2) // returns 100
|
|
122
|
+
*/
|
|
123
|
+
declare function gridStepFromTickStep(
|
|
124
|
+
tickStep: number,
|
|
125
|
+
scale: number
|
|
126
|
+
): number | null | void;
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Given the range and a dimension, come up with the appropriate
|
|
130
|
+
* scale.
|
|
131
|
+
* Example:
|
|
132
|
+
* scaleFromExtent([-25, 25], 500) // returns 10
|
|
133
|
+
*/
|
|
134
|
+
declare function scaleFromExtent(
|
|
135
|
+
extent: Coordinates,
|
|
136
|
+
dimensionConstraint: number
|
|
137
|
+
): number;
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Return a reasonable tick step given extent and dimension.
|
|
141
|
+
* (extent is [begin, end] of the domain.)
|
|
142
|
+
* Example:
|
|
143
|
+
* tickStepFromExtent([-10, 10], 300) // returns 2
|
|
144
|
+
*/
|
|
145
|
+
declare function tickStepFromExtent(
|
|
146
|
+
extent: Coordinates,
|
|
147
|
+
dimensionConstraint: number
|
|
148
|
+
): number;
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Find a good tick step for the desired number of ticks in the range
|
|
152
|
+
* Modified from d3.scale.linear: d3_scale_linearTickRange.
|
|
153
|
+
* Thanks, mbostock!
|
|
154
|
+
* Example:
|
|
155
|
+
* tickStepFromNumTicks(50, 6) // returns 10
|
|
156
|
+
*/
|
|
157
|
+
declare function tickStepFromNumTicks(span: number, numTicks: number): number;
|
|
158
|
+
declare type Range = [number, number];
|
|
159
|
+
/**
|
|
160
|
+
* Constrain tick steps intended for desktop size graphs
|
|
161
|
+
* to something more suitable for mobile size graphs.
|
|
162
|
+
* Specifically, we aim for 10 or fewer ticks per graph axis.
|
|
163
|
+
*/
|
|
164
|
+
declare function constrainedTickStepsFromTickSteps(
|
|
165
|
+
tickSteps: Coordinates,
|
|
166
|
+
ranges: [Range, Range]
|
|
167
|
+
): Coordinates;
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* Approximate equality on numbers and primitives.
|
|
171
|
+
*/
|
|
172
|
+
declare function eq<T>(x: T, y: T): boolean;
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Deep approximate equality on primitives, numbers, arrays, and objects.
|
|
176
|
+
* Recursive.
|
|
177
|
+
*/
|
|
178
|
+
declare function deepEq<T>(x: T, y: T): boolean;
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Query String Parser
|
|
182
|
+
*
|
|
183
|
+
* Original from:
|
|
184
|
+
* http://stackoverflow.com/questions/901115/get-querystring-values-in-javascript/2880929#2880929
|
|
185
|
+
*/
|
|
186
|
+
declare function parseQueryString(query: string): QueryParams;
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Query string adder
|
|
190
|
+
* Works for URLs without #.
|
|
191
|
+
* Original from:
|
|
192
|
+
* http://stackoverflow.com/questions/5999118/add-or-update-query-string-parameter
|
|
193
|
+
*/
|
|
194
|
+
declare function updateQueryString(
|
|
195
|
+
uri: string,
|
|
196
|
+
key: string,
|
|
197
|
+
value: string
|
|
198
|
+
): string;
|
|
199
|
+
|
|
200
|
+
/**
|
|
201
|
+
* A more strict encodeURIComponent that escapes `()'!`s
|
|
202
|
+
* Especially useful for creating URLs that are embeddable in markdown
|
|
203
|
+
*
|
|
204
|
+
* Adapted from
|
|
205
|
+
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent
|
|
206
|
+
* This function and the above original available under the
|
|
207
|
+
* CC-BY-SA 2.5 license.
|
|
208
|
+
*/
|
|
209
|
+
declare function strongEncodeURIComponent(str: string): string;
|
|
210
|
+
|
|
211
|
+
/**
|
|
212
|
+
* TODO(somewhatabstract, JIRA-XXXX):
|
|
213
|
+
* This does not appear to be used within webapp. Could be dead code.
|
|
214
|
+
* Need to check with mobile.
|
|
215
|
+
*/
|
|
216
|
+
declare function widgetShouldHighlight(widget: Widget): boolean;
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* If a widget says that it is empty once it is graded.
|
|
220
|
+
* Trying to encapsulate references to the score format.
|
|
221
|
+
*/
|
|
222
|
+
declare function scoreIsEmpty(score: PerseusScore): boolean;
|
|
223
|
+
declare function resetTouchHandlers(): void;
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Extracts the location of a touch or mouse event, allowing you to pass
|
|
227
|
+
* in a "mouseup", "mousedown", or "mousemove" event and receive the
|
|
228
|
+
* correct coordinates. Shouldn't be used with "vmouse" events.
|
|
229
|
+
*/
|
|
230
|
+
declare function extractPointerLocation(event: any): Position | null | void;
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Pass this function as the touchstart for an element to
|
|
234
|
+
* avoid sending the touch to the mobile scratchpad
|
|
235
|
+
*/
|
|
236
|
+
declare function captureScratchpadTouchStart(e: TouchEvent): void;
|
|
237
|
+
declare function getImageSize(
|
|
238
|
+
url: string,
|
|
239
|
+
callback: (arg1: number, arg2: number) => void
|
|
240
|
+
): void;
|
|
241
|
+
declare function getRealImageUrl(url: string): string;
|
|
242
|
+
declare function isLabeledSVG(url: string): boolean;
|
|
243
|
+
declare function getBaseUrl(url: string): string;
|
|
244
|
+
declare function getSvgUrl(url: string): string;
|
|
245
|
+
declare function getDataUrl(url: string): string;
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Gets the word right before where the textarea cursor is
|
|
249
|
+
* @param {Element} textarea - The textarea DOM element
|
|
250
|
+
* @return {JSON} - An object with the word and its starting and ending positions in the textarea
|
|
251
|
+
*/
|
|
252
|
+
declare function getWordBeforeCursor(
|
|
253
|
+
textarea: HTMLTextAreaElement
|
|
254
|
+
): WordAndPosition;
|
|
255
|
+
|
|
256
|
+
/**
|
|
257
|
+
* Moves the textarea cursor at the specified position
|
|
258
|
+
* @param {Element} textarea - The textarea DOM element
|
|
259
|
+
* @param {int} pos - The position where the cursor will be moved
|
|
260
|
+
*/
|
|
261
|
+
declare function moveCursor(textarea: HTMLTextAreaElement, pos: number): void;
|
|
262
|
+
declare var Util: {|
|
|
263
|
+
+inputPathsEqual: typeof inputPathsEqual,
|
|
264
|
+
+nestedMap: <T, M>(
|
|
265
|
+
children: T | $ReadOnlyArray<T>,
|
|
266
|
+
func: (arg1: T) => M,
|
|
267
|
+
context: mixed
|
|
268
|
+
) => M | $ReadOnlyArray<M>,
|
|
269
|
+
+rWidgetRule: RegExp,
|
|
270
|
+
+rTypeFromWidgetId: RegExp,
|
|
271
|
+
+rWidgetParts: RegExp,
|
|
272
|
+
+snowman: "☃",
|
|
273
|
+
+noScore: {|
|
|
274
|
+
type: "points",
|
|
275
|
+
earned: number,
|
|
276
|
+
total: number,
|
|
277
|
+
message?: string | null | void,
|
|
278
|
+
|},
|
|
279
|
+
+seededRNG: (seed: number) => RNG,
|
|
280
|
+
+shuffle: typeof shuffle,
|
|
281
|
+
+split: (str: string, r: RegExp) => $ReadOnlyArray<string>,
|
|
282
|
+
+combineScores: typeof combineScores,
|
|
283
|
+
+keScoreFromPerseusScore: typeof keScoreFromPerseusScore,
|
|
284
|
+
+firstNumericalParse: typeof firstNumericalParse,
|
|
285
|
+
+stringArrayOfSize: typeof stringArrayOfSize,
|
|
286
|
+
+gridDimensionConfig: typeof gridDimensionConfig,
|
|
287
|
+
+getGridStep: typeof getGridStep,
|
|
288
|
+
+snapStepFromGridStep: typeof snapStepFromGridStep,
|
|
289
|
+
+scaleFromExtent: typeof scaleFromExtent,
|
|
290
|
+
+tickStepFromExtent: typeof tickStepFromExtent,
|
|
291
|
+
+gridStepFromTickStep: typeof gridStepFromTickStep,
|
|
292
|
+
+tickStepFromNumTicks: typeof tickStepFromNumTicks,
|
|
293
|
+
+constrainedTickStepsFromTickSteps: typeof constrainedTickStepsFromTickSteps,
|
|
294
|
+
+DeprecationMixin: any,
|
|
295
|
+
+eq: typeof eq,
|
|
296
|
+
+deepEq: typeof deepEq,
|
|
297
|
+
+parseQueryString: typeof parseQueryString,
|
|
298
|
+
+updateQueryString: typeof updateQueryString,
|
|
299
|
+
+strongEncodeURIComponent: typeof strongEncodeURIComponent,
|
|
300
|
+
+widgetShouldHighlight: typeof widgetShouldHighlight,
|
|
301
|
+
+scoreIsEmpty: typeof scoreIsEmpty,
|
|
302
|
+
+touchHandlers: TouchHandlers,
|
|
303
|
+
+resetTouchHandlers: typeof resetTouchHandlers,
|
|
304
|
+
+extractPointerLocation: typeof extractPointerLocation,
|
|
305
|
+
+supportsPassiveEvents: () => boolean,
|
|
306
|
+
+captureScratchpadTouchStart: typeof captureScratchpadTouchStart,
|
|
307
|
+
+getImageSize: typeof getImageSize,
|
|
308
|
+
+getRealImageUrl: typeof getRealImageUrl,
|
|
309
|
+
+isLabeledSVG: typeof isLabeledSVG,
|
|
310
|
+
+getBaseUrl: typeof getBaseUrl,
|
|
311
|
+
+getSvgUrl: typeof getSvgUrl,
|
|
312
|
+
+getDataUrl: typeof getDataUrl,
|
|
313
|
+
+textarea: {|
|
|
314
|
+
+getWordBeforeCursor: typeof getWordBeforeCursor,
|
|
315
|
+
+moveCursor: typeof moveCursor,
|
|
316
|
+
|},
|
|
317
|
+
+unescapeMathMode: (label: string) => string,
|
|
318
|
+
+random: RNG,
|
|
319
|
+
|};
|
|
320
|
+
declare export default typeof Util;
|
|
@@ -0,0 +1,17 @@
|
|
|
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 _default: {|
|
|
8
|
+
apiVersion: {|
|
|
9
|
+
major: number,
|
|
10
|
+
minor: number,
|
|
11
|
+
|},
|
|
12
|
+
itemDataVersion: {|
|
|
13
|
+
major: number,
|
|
14
|
+
minor: number,
|
|
15
|
+
|},
|
|
16
|
+
|};
|
|
17
|
+
declare export default typeof _default;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { PerseusWidgetOptions } from "./perseus-types";
|
|
3
|
+
import type { LinterContextProps, WidgetProps } from "./types";
|
|
4
|
+
type Props = {
|
|
5
|
+
shouldHighlight: boolean;
|
|
6
|
+
type: string;
|
|
7
|
+
initialProps: WidgetProps<any, PerseusWidgetOptions>;
|
|
8
|
+
linterContext: LinterContextProps;
|
|
9
|
+
};
|
|
10
|
+
type DefaultProps = {
|
|
11
|
+
linterContext: LinterContextProps;
|
|
12
|
+
};
|
|
13
|
+
type State = {
|
|
14
|
+
sizeClass: "small" | "medium" | "large" | "xlarge";
|
|
15
|
+
widgetProps: WidgetProps<any, PerseusWidgetOptions>;
|
|
16
|
+
};
|
|
17
|
+
declare class WidgetContainer extends React.Component<Props, State> {
|
|
18
|
+
static defaultProps: DefaultProps;
|
|
19
|
+
state: any;
|
|
20
|
+
componentDidMount(): void;
|
|
21
|
+
render(): React.ReactNode;
|
|
22
|
+
UNSAFE_componentWillReceiveProps(nextProps: Props): void;
|
|
23
|
+
shouldComponentUpdate(nextProps: Props, nextState: State): boolean;
|
|
24
|
+
getWidget: () => any;
|
|
25
|
+
replaceWidgetProps: (arg1: WidgetProps<any, PerseusWidgetOptions>) => void;
|
|
26
|
+
}
|
|
27
|
+
export default WidgetContainer;
|
|
@@ -0,0 +1,33 @@
|
|
|
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 { PerseusWidgetOptions } from "./perseus-types";
|
|
9
|
+
import type { LinterContextProps, WidgetProps } from "./types";
|
|
10
|
+
declare type Props = {|
|
|
11
|
+
shouldHighlight: boolean,
|
|
12
|
+
type: string,
|
|
13
|
+
initialProps: WidgetProps<any, PerseusWidgetOptions>,
|
|
14
|
+
linterContext: LinterContextProps,
|
|
15
|
+
|};
|
|
16
|
+
declare type DefaultProps = {|
|
|
17
|
+
linterContext: LinterContextProps,
|
|
18
|
+
|};
|
|
19
|
+
declare type State = {|
|
|
20
|
+
sizeClass: "small" | "medium" | "large" | "xlarge",
|
|
21
|
+
widgetProps: WidgetProps<any, PerseusWidgetOptions>,
|
|
22
|
+
|};
|
|
23
|
+
declare class WidgetContainer extends React.Component<Props, State> {
|
|
24
|
+
static defaultProps: DefaultProps;
|
|
25
|
+
state: any;
|
|
26
|
+
componentDidMount(): void;
|
|
27
|
+
render(): React.Node;
|
|
28
|
+
UNSAFE_componentWillReceiveProps(nextProps: Props): void;
|
|
29
|
+
shouldComponentUpdate(nextProps: Props, nextState: State): boolean;
|
|
30
|
+
getWidget: () => any;
|
|
31
|
+
replaceWidgetProps: (arg1: WidgetProps<any, PerseusWidgetOptions>) => void;
|
|
32
|
+
}
|
|
33
|
+
declare export default typeof WidgetContainer;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { render } from "@testing-library/react";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import * as Perseus from "../../index";
|
|
4
|
+
import type { PerseusRenderer } from "../../perseus-types";
|
|
5
|
+
import type { APIOptions } from "../../types";
|
|
6
|
+
type RenderResult = ReturnType<typeof render>;
|
|
7
|
+
export declare const renderQuestion: (question: PerseusRenderer, apiOptions?: APIOptions, extraProps?: JSX.LibraryManagedAttributes<typeof Perseus.Renderer, React.ComponentProps<typeof Perseus.Renderer>>) => {
|
|
8
|
+
container: HTMLElement;
|
|
9
|
+
renderer: Perseus.Renderer;
|
|
10
|
+
rerender: (question: PerseusRenderer, extraProps?: JSX.LibraryManagedAttributes<typeof Perseus.Renderer, React.ComponentProps<typeof Perseus.Renderer>>) => void;
|
|
11
|
+
unmount: RenderResult["unmount"];
|
|
12
|
+
};
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flowtype definitions for data
|
|
3
|
+
* Generated by Flowgen from a Typescript Definition
|
|
4
|
+
* Flowgen v1.21.0
|
|
5
|
+
* @flow
|
|
6
|
+
*/
|
|
7
|
+
import { render } from "@testing-library/react";
|
|
8
|
+
import * as React from "react";
|
|
9
|
+
import * as Perseus from "../../index";
|
|
10
|
+
import type { PerseusRenderer } from "../../perseus-types";
|
|
11
|
+
import type { APIOptions } from "../../types";
|
|
12
|
+
declare type RenderResult = $Call<
|
|
13
|
+
<R>((...args: any[]) => R) => R,
|
|
14
|
+
typeof render
|
|
15
|
+
>;
|
|
16
|
+
declare export var renderQuestion: (
|
|
17
|
+
question: PerseusRenderer,
|
|
18
|
+
apiOptions?: APIOptions,
|
|
19
|
+
extraProps?: React.ElementConfig<typeof Perseus.Renderer>
|
|
20
|
+
) => {|
|
|
21
|
+
container: HTMLElement,
|
|
22
|
+
renderer: Perseus.Renderer,
|
|
23
|
+
rerender: (
|
|
24
|
+
question: PerseusRenderer,
|
|
25
|
+
extraProps?: React.ElementConfig<typeof Perseus.Renderer>
|
|
26
|
+
) => void,
|
|
27
|
+
unmount: $PropertyType<RenderResult, "unmount">,
|
|
28
|
+
|};
|