@khanacademy/perseus 0.0.0-PR418-20230323233458
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 +8 -0
- package/.eslintrc.js +11 -0
- package/CHANGELOG.md +367 -0
- package/README.md +5 -0
- package/dist/es/index.css +4071 -0
- package/dist/es/index.js +51108 -0
- package/dist/es/index.js.map +1 -0
- package/dist/index.css +4071 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +51027 -0
- package/dist/index.js.flow +2 -0
- package/dist/index.js.map +1 -0
- package/dist/strings.js +150 -0
- package/package.json +95 -0
- package/src/__stories__/hints-renderer.stories.jsx +60 -0
- package/src/__stories__/item-renderer.stories.jsx +27 -0
- package/src/__stories__/server-item-renderer.stories.jsx +27 -0
- package/src/__testdata__/graphie_testdata.js +53 -0
- package/src/__testdata__/item-renderer_testdata.js +161 -0
- package/src/__testdata__/renderer_testdata.js +123 -0
- package/src/__tests__/__snapshots__/item-renderer_test.jsx.snap +232 -0
- package/src/__tests__/__snapshots__/perseus-markdown_test.jsx.snap +507 -0
- package/src/__tests__/__snapshots__/renderer_test.jsx.snap +585 -0
- package/src/__tests__/__snapshots__/server-item-renderer_test.jsx.snap +305 -0
- package/src/__tests__/a11y_test.jsx +304 -0
- package/src/__tests__/item-renderer_test.jsx +892 -0
- package/src/__tests__/jipt-paragraphs_test.js +34 -0
- package/src/__tests__/mock-asset-loading-widget.jsx +57 -0
- package/src/__tests__/mock-widget.jsx +35 -0
- package/src/__tests__/perseus-markdown_test.jsx +747 -0
- package/src/__tests__/renderability_test.jsx +481 -0
- package/src/__tests__/renderer-api_test.jsx +309 -0
- package/src/__tests__/renderer_test.jsx +1792 -0
- package/src/__tests__/server-item-renderer_test.jsx +516 -0
- package/src/__tests__/test-items/image-item.js +25 -0
- package/src/__tests__/test-items/input-number-1-item.js +27 -0
- package/src/__tests__/test-items/input-number-2-item.js +39 -0
- package/src/__tests__/test-items/table-item.js +30 -0
- package/src/__tests__/tex-wrangler_test.js +83 -0
- package/src/__tests__/util_test.js +41 -0
- package/src/a11y.js +46 -0
- package/src/all-widgets.js +9 -0
- package/src/article-renderer.jsx +214 -0
- package/src/asset-context.js +30 -0
- package/src/basic-widgets.js +13 -0
- package/src/components/__stories__/button-group.stories.jsx +61 -0
- package/src/components/__stories__/fixed-to-responsive.stories.jsx +132 -0
- package/src/components/__stories__/graph.stories.jsx +27 -0
- package/src/components/__stories__/graphie.stories.jsx +32 -0
- package/src/components/__stories__/hud.stories.jsx +36 -0
- package/src/components/__stories__/icon.stories.jsx +56 -0
- package/src/components/__stories__/image-loader.stories.jsx +60 -0
- package/src/components/__stories__/info-tip.stories.jsx +33 -0
- package/src/components/__stories__/inline-icon.stories.jsx +39 -0
- package/src/components/__stories__/input-with-examples.stories.jsx +52 -0
- package/src/components/__stories__/lint.stories.jsx +40 -0
- package/src/components/__stories__/math-input.stories.jsx +29 -0
- package/src/components/__stories__/math-output.stories.jsx +24 -0
- package/src/components/__stories__/multi-button-group.stories.jsx +69 -0
- package/src/components/__stories__/number-input.stories.jsx +42 -0
- package/src/components/__stories__/prop-check-box.stories.jsx +62 -0
- package/src/components/__stories__/range-input.stories.jsx +28 -0
- package/src/components/__stories__/simple-keypad-input.stories.jsx +28 -0
- package/src/components/__stories__/sortable.stories.jsx +73 -0
- package/src/components/__stories__/stub-tag-editor.stories.jsx +44 -0
- package/src/components/__stories__/svg-image.stories.jsx +71 -0
- package/src/components/__stories__/tex.stories.jsx +24 -0
- package/src/components/__stories__/text-buttons.stories.jsx +51 -0
- package/src/components/__stories__/text-input.stories.jsx +34 -0
- package/src/components/__stories__/text-list-editor.stories.jsx +33 -0
- package/src/components/__stories__/zoomable-tex.stories.jsx +39 -0
- package/src/components/__stories__/zoomable.stories.jsx +40 -0
- package/src/components/__testdata__/sorter_testdata.js +20 -0
- package/src/components/__tests__/__snapshots__/sortable_test.jsx.snap +79 -0
- package/src/components/__tests__/__snapshots__/sorter_test.jsx.snap +297 -0
- package/src/components/__tests__/number-input_test.jsx +112 -0
- package/src/components/__tests__/sortable_test.jsx +234 -0
- package/src/components/__tests__/sorter_test.jsx +111 -0
- package/src/components/__tests__/zoomable_test.jsx +388 -0
- package/src/components/button-group.jsx +131 -0
- package/src/components/constants.js +15 -0
- package/src/components/fixed-to-responsive.jsx +165 -0
- package/src/components/graph.jsx +413 -0
- package/src/components/graphie-classes.jsx +148 -0
- package/src/components/graphie-movables.jsx +342 -0
- package/src/components/graphie.jsx +353 -0
- package/src/components/highlighting/highlightable-content.jsx +245 -0
- package/src/components/highlighting/highlights.js +208 -0
- package/src/components/highlighting/ranges.js +299 -0
- package/src/components/highlighting/types.js +73 -0
- package/src/components/highlighting/ui/highlight-renderer.jsx +179 -0
- package/src/components/highlighting/ui/highlight-set-renderer.jsx +190 -0
- package/src/components/highlighting/ui/highlight-tooltip.jsx +143 -0
- package/src/components/highlighting/ui/highlighting-ui.jsx +163 -0
- package/src/components/highlighting/ui/selection-tracker.jsx +184 -0
- package/src/components/highlighting/ui/types.js +21 -0
- package/src/components/highlighting/ui/util.js +166 -0
- package/src/components/highlighting/word-indexer.jsx +155 -0
- package/src/components/hud.jsx +179 -0
- package/src/components/icon.jsx +149 -0
- package/src/components/image-loader.jsx +175 -0
- package/src/components/info-tip/info-tip.jsx +146 -0
- package/src/components/info-tip.jsx +38 -0
- package/src/components/inline-icon.jsx +81 -0
- package/src/components/input-with-examples.jsx +248 -0
- package/src/components/lint.jsx +455 -0
- package/src/components/math-input.jsx +293 -0
- package/src/components/math-output.jsx +128 -0
- package/src/components/multi-button-group.jsx +137 -0
- package/src/components/number-input.jsx +253 -0
- package/src/components/prop-check-box.jsx +80 -0
- package/src/components/range-input.jsx +61 -0
- package/src/components/simple-keypad-input.jsx +88 -0
- package/src/components/sortable.jsx +872 -0
- package/src/components/stub-tag-editor.jsx +54 -0
- package/src/components/svg-image.jsx +765 -0
- package/src/components/tex-buttons.jsx +320 -0
- package/src/components/tex.jsx +70 -0
- package/src/components/text-input.jsx +133 -0
- package/src/components/text-list-editor.jsx +157 -0
- package/src/components/tooltip.jsx +392 -0
- package/src/components/visibility-observer/__stories__/visibility-observer.stories.jsx +140 -0
- package/src/components/visibility-observer/get-scroll-parent.js +45 -0
- package/src/components/visibility-observer/visibility-observer.js +109 -0
- package/src/components/visibility-observer/visibility-observer.jsx +123 -0
- package/src/components/zoomable-tex.jsx +70 -0
- package/src/components/zoomable.jsx +294 -0
- package/src/components.js +17 -0
- package/src/definition-context.js +59 -0
- package/src/dependencies.js +22 -0
- package/src/error-boundary.jsx +48 -0
- package/src/extra-widgets.js +75 -0
- package/src/hint-renderer.jsx +155 -0
- package/src/hints-renderer.jsx +367 -0
- package/src/icon-paths.js +120 -0
- package/src/index.js +159 -0
- package/src/init.js +49 -0
- package/src/interaction-tracker.js +60 -0
- package/src/interactive2/__tests__/movable-mock.js +48 -0
- package/src/interactive2/__tests__/movable-point_test.js +146 -0
- package/src/interactive2/interactive-util.js +152 -0
- package/src/interactive2/movable-helper-methods.js +160 -0
- package/src/interactive2/movable-line-options.js +392 -0
- package/src/interactive2/movable-line.js +322 -0
- package/src/interactive2/movable-point-options.js +190 -0
- package/src/interactive2/movable-point.jsx +597 -0
- package/src/interactive2/movable-polygon-options.js +351 -0
- package/src/interactive2/movable-polygon.js +368 -0
- package/src/interactive2/movable.js +273 -0
- package/src/interactive2/objective_.js +79 -0
- package/src/interactive2/types.js +3 -0
- package/src/interactive2/wrapped-defaults.js +86 -0
- package/src/interactive2/wrapped-ellipse.js +86 -0
- package/src/interactive2/wrapped-line.js +109 -0
- package/src/interactive2/wrapped-path.js +47 -0
- package/src/interactive2.js +91 -0
- package/src/item-renderer.jsx +514 -0
- package/src/item-version.js +12 -0
- package/src/jipt-paragraphs.js +52 -0
- package/src/jquery.mobile.vmouse.js +546 -0
- package/src/keypad-context.js +33 -0
- package/src/loading-context.js +20 -0
- package/src/logging/log.js +107 -0
- package/src/logging/log_test.js +41 -0
- package/src/mixins/__tests__/widget-prop-denylist_test.js +23 -0
- package/src/mixins/changeable.jsx +115 -0
- package/src/mixins/editor-jsonify.jsx +13 -0
- package/src/mixins/provide-keypad.jsx +131 -0
- package/src/mixins/widget-jsonify-deprecated.jsx +23 -0
- package/src/mixins/widget-prop-denylist.js +49 -0
- package/src/multi-items/__stories__/multi-renderer.stories.js +88 -0
- package/src/multi-items/__testdata__/multi-renderer_testdata.js +174 -0
- package/src/multi-items/__tests__/__snapshots__/multi-renderer_test.js.snap +1220 -0
- package/src/multi-items/__tests__/items_test.js +245 -0
- package/src/multi-items/__tests__/multi-renderer_test.js +903 -0
- package/src/multi-items/__tests__/prop-type-builders_test.js +134 -0
- package/src/multi-items/__tests__/shapes_test.js +44 -0
- package/src/multi-items/__tests__/trees_test.js +316 -0
- package/src/multi-items/item-types.js +55 -0
- package/src/multi-items/items.js +176 -0
- package/src/multi-items/multi-renderer.jsx +543 -0
- package/src/multi-items/prop-type-builders.js +105 -0
- package/src/multi-items/shape-types.js +47 -0
- package/src/multi-items/shapes.js +53 -0
- package/src/multi-items/tree-types.js +42 -0
- package/src/multi-items/trees.js +345 -0
- package/src/multi-items.js +76 -0
- package/src/perseus-api.jsx +221 -0
- package/src/perseus-env.js +26 -0
- package/src/perseus-error.js +19 -0
- package/src/perseus-markdown.jsx +408 -0
- package/src/perseus-types.js +1475 -0
- package/src/question-paragraph.jsx +30 -0
- package/src/renderability.jsx +108 -0
- package/src/renderer.jsx +1937 -0
- package/src/server-item-renderer.jsx +467 -0
- package/src/sigfigs.jsx +492 -0
- package/src/styles/articles.less +747 -0
- package/src/styles/constants.js +96 -0
- package/src/styles/global-constants.js +344 -0
- package/src/styles/global-styles.js +307 -0
- package/src/styles/khan-exercise.css +1280 -0
- package/src/styles/media-queries.js +48 -0
- package/src/styles/perseus-renderer.less +742 -0
- package/src/styles/shared.js +132 -0
- package/src/styles/util.less +47 -0
- package/src/styles/variables.boostrap.less +301 -0
- package/src/styles/variables.less +55 -0
- package/src/styles/variables.shared.less +346 -0
- package/src/styles/widgets/categorizer.less +39 -0
- package/src/styles/widgets/dropdown.less +3 -0
- package/src/styles/widgets/expression.less +145 -0
- package/src/styles/widgets/graded-group.less +36 -0
- package/src/styles/widgets/grapher.less +11 -0
- package/src/styles/widgets/group.less +19 -0
- package/src/styles/widgets/image.less +29 -0
- package/src/styles/widgets/interactive-graph.less +61 -0
- package/src/styles/widgets/label-image.less +41 -0
- package/src/styles/widgets/matcher.less +8 -0
- package/src/styles/widgets/matrix.less +122 -0
- package/src/styles/widgets/measurer.less +20 -0
- package/src/styles/widgets/orderer.less +97 -0
- package/src/styles/widgets/passage.less +160 -0
- package/src/styles/widgets/plotter.less +29 -0
- package/src/styles/widgets/radio.less +56 -0
- package/src/styles/widgets/reaction-diagram.less +35 -0
- package/src/styles/widgets/sequence.less +5 -0
- package/src/styles/widgets/sortable.less +113 -0
- package/src/styles/widgets/table.less +56 -0
- package/src/styles/widgets/transformer.less +28 -0
- package/src/styles/widgets/unit.less +14 -0
- package/src/tex-wrangler.js +176 -0
- package/src/translation-linter.js +125 -0
- package/src/traversal.jsx +141 -0
- package/src/types.js +500 -0
- package/src/util/a11y.js +24 -0
- package/src/util/answer-types.js +861 -0
- package/src/util/answer-types_test.js +115 -0
- package/src/util/colors.js +94 -0
- package/src/util/fix-passage-refs.jsx +122 -0
- package/src/util/graph-utils.js +16 -0
- package/src/util/graphie.js +1586 -0
- package/src/util/interactive.js +4078 -0
- package/src/util/katex-preprocess.js +16 -0
- package/src/util/math.js +289 -0
- package/src/util/mobile-native-utils.js +14 -0
- package/src/util/mobile-native-utils_test.js +24 -0
- package/src/util/react-render.js +27 -0
- package/src/util/register-all-widgets-for-testing.js +12 -0
- package/src/util/scroll-utils.js +162 -0
- package/src/util/sizing-utils.js +46 -0
- package/src/util/tex.js +203 -0
- package/src/util/url-utils.js +36 -0
- package/src/util.js +984 -0
- package/src/version.js +11 -0
- package/src/widget-container.jsx +179 -0
- package/src/widgets/__stories__/categorizer.stories.jsx +15 -0
- package/src/widgets/__stories__/cs-program.stories.jsx +15 -0
- package/src/widgets/__stories__/definition.stories.jsx +108 -0
- package/src/widgets/__stories__/dropdown.stories.jsx +15 -0
- package/src/widgets/__stories__/explanation.stories.jsx +19 -0
- package/src/widgets/__stories__/expression.stories.jsx +26 -0
- package/src/widgets/__stories__/graded-group-set.stories.jsx +32 -0
- package/src/widgets/__stories__/graded-group.stories.jsx +32 -0
- package/src/widgets/__stories__/grapher.stories.jsx +47 -0
- package/src/widgets/__stories__/group.stories.jsx +15 -0
- package/src/widgets/__stories__/iframe.stories.jsx +15 -0
- package/src/widgets/__stories__/image.stories.jsx +62 -0
- package/src/widgets/__stories__/input-number.stories.jsx +102 -0
- package/src/widgets/__stories__/interaction.stories.jsx +15 -0
- package/src/widgets/__stories__/interactive-graph.stories.jsx +61 -0
- package/src/widgets/__stories__/matcher.stories.jsx +15 -0
- package/src/widgets/__stories__/matrix.stories.jsx +15 -0
- package/src/widgets/__stories__/number-line.stories.jsx +15 -0
- package/src/widgets/__stories__/numeric-input.stories.jsx +106 -0
- package/src/widgets/__stories__/on-screen-keypad.stories.jsx +118 -0
- package/src/widgets/__stories__/orderer.stories.jsx +15 -0
- package/src/widgets/__stories__/passage-ref.stories.jsx +23 -0
- package/src/widgets/__stories__/passage.stories.jsx +27 -0
- package/src/widgets/__stories__/radio.stories.jsx +90 -0
- package/src/widgets/__stories__/sorter.stories.jsx +15 -0
- package/src/widgets/__stories__/transformer.stories.jsx +15 -0
- package/src/widgets/__stories__/unit.stories.jsx +45 -0
- package/src/widgets/__stories__/video-transcript-link.stories.jsx +24 -0
- package/src/widgets/__stories__/video.stories.jsx +15 -0
- package/src/widgets/__testdata__/base-radio_testdata.js +22 -0
- package/src/widgets/__testdata__/categorizer_testdata.js +50 -0
- package/src/widgets/__testdata__/cs-program_testdata.js +28 -0
- package/src/widgets/__testdata__/dropdown_testdata.js +34 -0
- package/src/widgets/__testdata__/explanation_testdata.js +56 -0
- package/src/widgets/__testdata__/expression_testdata.js +95 -0
- package/src/widgets/__testdata__/graded-group-set_testdata.js +358 -0
- package/src/widgets/__testdata__/graded-group_testdata.js +79 -0
- package/src/widgets/__testdata__/grapher_testdata.js +376 -0
- package/src/widgets/__testdata__/group_testdata.js +156 -0
- package/src/widgets/__testdata__/iframe_testdata.js +36 -0
- package/src/widgets/__testdata__/image_testdata.js +38 -0
- package/src/widgets/__testdata__/input-number_testdata.js +73 -0
- package/src/widgets/__testdata__/interaction_testdata.js +264 -0
- package/src/widgets/__testdata__/interactive-graph_testdata.js +646 -0
- package/src/widgets/__testdata__/matcher_testdata.js +34 -0
- package/src/widgets/__testdata__/matrix_testdata.js +29 -0
- package/src/widgets/__testdata__/number-line_testdata.js +31 -0
- package/src/widgets/__testdata__/numeric-input_testdata.js +266 -0
- package/src/widgets/__testdata__/orderer_testdata.js +58 -0
- package/src/widgets/__testdata__/passage-ref_testdata.js +103 -0
- package/src/widgets/__testdata__/passage_testdata.js +96 -0
- package/src/widgets/__testdata__/radio_testdata.js +262 -0
- package/src/widgets/__testdata__/sorter_testdata.js +20 -0
- package/src/widgets/__testdata__/transformer_testdata.js +109 -0
- package/src/widgets/__testdata__/video_testdata.js +22 -0
- package/src/widgets/__tests__/__snapshots__/categorizer_test.jsx.snap +996 -0
- package/src/widgets/__tests__/__snapshots__/cs-program_test.jsx.snap +75 -0
- package/src/widgets/__tests__/__snapshots__/definition_test.js.snap +105 -0
- package/src/widgets/__tests__/__snapshots__/dropdown_test.jsx.snap +157 -0
- package/src/widgets/__tests__/__snapshots__/explanation_test.js.snap +473 -0
- package/src/widgets/__tests__/__snapshots__/expression_test.jsx.snap +38 -0
- package/src/widgets/__tests__/__snapshots__/graded-group-set-jipt_test.jsx.snap +757 -0
- package/src/widgets/__tests__/__snapshots__/graded-group-set_test.jsx.snap +320 -0
- package/src/widgets/__tests__/__snapshots__/graded-group_test.jsx.snap +865 -0
- package/src/widgets/__tests__/__snapshots__/grapher_test.jsx.snap +2897 -0
- package/src/widgets/__tests__/__snapshots__/group_test.jsx.snap +1274 -0
- package/src/widgets/__tests__/__snapshots__/iframe_test.jsx.snap +69 -0
- package/src/widgets/__tests__/__snapshots__/image_test.jsx.snap +404 -0
- package/src/widgets/__tests__/__snapshots__/input-number_test.jsx.snap +978 -0
- package/src/widgets/__tests__/__snapshots__/interaction_test.jsx.snap +311 -0
- package/src/widgets/__tests__/__snapshots__/interactive-graph_test.jsx.snap +3017 -0
- package/src/widgets/__tests__/__snapshots__/matcher_test.jsx.snap +1039 -0
- package/src/widgets/__tests__/__snapshots__/matrix_test.jsx.snap +522 -0
- package/src/widgets/__tests__/__snapshots__/number-line_test.jsx.snap +888 -0
- package/src/widgets/__tests__/__snapshots__/numeric-input_test.jsx.snap +488 -0
- package/src/widgets/__tests__/__snapshots__/orderer_test.jsx.snap +275 -0
- package/src/widgets/__tests__/__snapshots__/passage-ref_test.jsx.snap +446 -0
- package/src/widgets/__tests__/__snapshots__/passage_test.jsx.snap +1988 -0
- package/src/widgets/__tests__/__snapshots__/radio_test.jsx.snap +4505 -0
- package/src/widgets/__tests__/__snapshots__/video_test.jsx.snap +161 -0
- package/src/widgets/__tests__/categorizer_test.jsx +205 -0
- package/src/widgets/__tests__/cs-program_test.jsx +45 -0
- package/src/widgets/__tests__/definition_test.js +137 -0
- package/src/widgets/__tests__/dropdown_test.jsx +106 -0
- package/src/widgets/__tests__/explanation_test.js +199 -0
- package/src/widgets/__tests__/expression_test.jsx +439 -0
- package/src/widgets/__tests__/graded-group-set-jipt_test.jsx +32 -0
- package/src/widgets/__tests__/graded-group-set_test.jsx +290 -0
- package/src/widgets/__tests__/graded-group_test.jsx +233 -0
- package/src/widgets/__tests__/grapher.cypress.jsx +546 -0
- package/src/widgets/__tests__/grapher_test.jsx +35 -0
- package/src/widgets/__tests__/group_test.jsx +512 -0
- package/src/widgets/__tests__/iframe_test.jsx +47 -0
- package/src/widgets/__tests__/image_test.jsx +65 -0
- package/src/widgets/__tests__/input-number_test.jsx +360 -0
- package/src/widgets/__tests__/interaction_test.jsx +33 -0
- package/src/widgets/__tests__/interactive-graph.cypress.jsx +777 -0
- package/src/widgets/__tests__/interactive-graph_test.jsx +105 -0
- package/src/widgets/__tests__/matcher_test.jsx +157 -0
- package/src/widgets/__tests__/matrix_test.jsx +84 -0
- package/src/widgets/__tests__/number-line_test.jsx +81 -0
- package/src/widgets/__tests__/numeric-input_test.jsx +514 -0
- package/src/widgets/__tests__/orderer_test.jsx +75 -0
- package/src/widgets/__tests__/passage-ref_test.jsx +166 -0
- package/src/widgets/__tests__/passage_test.jsx +212 -0
- package/src/widgets/__tests__/radio/base-radio_test.jsx +443 -0
- package/src/widgets/__tests__/radio/choice-icon_test.jsx +91 -0
- package/src/widgets/__tests__/radio/choice_test.jsx +311 -0
- package/src/widgets/__tests__/radio/focus-ring_test.jsx +23 -0
- package/src/widgets/__tests__/radio/option-status_test.jsx +65 -0
- package/src/widgets/__tests__/radio_test.jsx +810 -0
- package/src/widgets/__tests__/renderQuestion.jsx +66 -0
- package/src/widgets/__tests__/unit_test.jsx +144 -0
- package/src/widgets/__tests__/video_test.jsx +55 -0
- package/src/widgets/categorizer.jsx +343 -0
- package/src/widgets/cs-program.jsx +227 -0
- package/src/widgets/definition.jsx +121 -0
- package/src/widgets/dropdown.jsx +141 -0
- package/src/widgets/explanation.jsx +315 -0
- package/src/widgets/expression.jsx +652 -0
- package/src/widgets/graded-group-answer-bar.jsx +152 -0
- package/src/widgets/graded-group-set.jsx +296 -0
- package/src/widgets/graded-group.jsx +453 -0
- package/src/widgets/grapher/util.jsx +806 -0
- package/src/widgets/grapher.jsx +663 -0
- package/src/widgets/group.jsx +195 -0
- package/src/widgets/iframe.jsx +198 -0
- package/src/widgets/image.jsx +310 -0
- package/src/widgets/input-number.jsx +515 -0
- package/src/widgets/interaction/arrow-picker.jsx +39 -0
- package/src/widgets/interaction/color-picker.jsx +69 -0
- package/src/widgets/interaction/dash-picker.jsx +46 -0
- package/src/widgets/interaction/element-container.jsx +97 -0
- package/src/widgets/interaction.jsx +742 -0
- package/src/widgets/interactive-graph.jsx +2820 -0
- package/src/widgets/label-image/__stories__/answer-choices.stories.jsx +93 -0
- package/src/widgets/label-image/__stories__/marker.stories.jsx +172 -0
- package/src/widgets/label-image/answer-choices.jsx +311 -0
- package/src/widgets/label-image/marker.jsx +365 -0
- package/src/widgets/label-image/types.js +33 -0
- package/src/widgets/label-image.jsx +841 -0
- package/src/widgets/label-image_test.js +840 -0
- package/src/widgets/lights-puzzle.jsx +356 -0
- package/src/widgets/matcher.jsx +274 -0
- package/src/widgets/matrix.jsx +632 -0
- package/src/widgets/measurer.jsx +215 -0
- package/src/widgets/molecule/__tests__/layout_test.jsx +159 -0
- package/src/widgets/molecule/__tests__/parser_test.jsx +142 -0
- package/src/widgets/molecule/molecule-drawing.jsx +175 -0
- package/src/widgets/molecule/molecule-layout.jsx +367 -0
- package/src/widgets/molecule/smiles-parser.jsx +300 -0
- package/src/widgets/molecule.jsx +172 -0
- package/src/widgets/number-line.jsx +858 -0
- package/src/widgets/numeric-input.jsx +553 -0
- package/src/widgets/orderer.jsx +756 -0
- package/src/widgets/passage/__tests__/passage-markdown_test.jsx +373 -0
- package/src/widgets/passage/passage-markdown.jsx +472 -0
- package/src/widgets/passage-ref-target.jsx +73 -0
- package/src/widgets/passage-ref.jsx +214 -0
- package/src/widgets/passage.jsx +576 -0
- package/src/widgets/plotter.jsx +1198 -0
- package/src/widgets/radio/__stories__/base-radio.stories.jsx +189 -0
- package/src/widgets/radio/__stories__/choice-icon.stories.jsx +166 -0
- package/src/widgets/radio/__stories__/choice-none-above.stories.jsx +41 -0
- package/src/widgets/radio/__stories__/choice.stories.jsx +138 -0
- package/src/widgets/radio/__stories__/focus-ring.stories.jsx +44 -0
- package/src/widgets/radio/__stories__/option-status.stories.jsx +104 -0
- package/src/widgets/radio/base-radio.jsx +494 -0
- package/src/widgets/radio/choice-a11y-text.js +62 -0
- package/src/widgets/radio/choice-icon/choice-icon.jsx +214 -0
- package/src/widgets/radio/choice-icon/cross-out-line.jsx +52 -0
- package/src/widgets/radio/choice-icon/shared-styles.js +16 -0
- package/src/widgets/radio/choice-none-above.jsx +63 -0
- package/src/widgets/radio/choice.jsx +382 -0
- package/src/widgets/radio/choice.jsx.fixture.js +46 -0
- package/src/widgets/radio/focus-ring.jsx +58 -0
- package/src/widgets/radio/option-status.jsx +98 -0
- package/src/widgets/radio/util.js +32 -0
- package/src/widgets/radio/util_test.js +19 -0
- package/src/widgets/radio/widget.jsx +515 -0
- package/src/widgets/radio.jsx +155 -0
- package/src/widgets/reaction-diagram.jsx +137 -0
- package/src/widgets/sequence.jsx +143 -0
- package/src/widgets/simulator.jsx +806 -0
- package/src/widgets/sorter.jsx +149 -0
- package/src/widgets/table.jsx +397 -0
- package/src/widgets/transformer.jsx +2876 -0
- package/src/widgets/unit.jsx +372 -0
- package/src/widgets/video-transcript-link.jsx +84 -0
- package/src/widgets/video-transcript-link_test.js +211 -0
- package/src/widgets/video.jsx +126 -0
- package/src/widgets.js +431 -0
- package/src/zoom.js +539 -0
package/.babelrc.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HACK(kevinb): Due to https://github.com/facebook/jest/issues/11741,
|
|
3
|
+
* we need to have this file, or updating inline snapshots can fail rather
|
|
4
|
+
* cryptically.
|
|
5
|
+
*
|
|
6
|
+
* We should remove this when jest is fixed.
|
|
7
|
+
*/
|
|
8
|
+
module.exports = require("../../config/build/babel.config.js");
|
package/.eslintrc.js
ADDED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,367 @@
|
|
|
1
|
+
# @khanacademy/perseus
|
|
2
|
+
|
|
3
|
+
## 0.0.0-PR418-20230323233458
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 53bfddab: Configure Perseus to render numeric-input widgets in place of input-number
|
|
8
|
+
|
|
9
|
+
## 2.1.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 2c843b38: Update to use wonder-blocks deps after migrating wonder-blocks to TS
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies [2c843b38]
|
|
18
|
+
- @khanacademy/math-input@0.6.8
|
|
19
|
+
|
|
20
|
+
## 2.0.1
|
|
21
|
+
|
|
22
|
+
### Patch Changes
|
|
23
|
+
|
|
24
|
+
- 6272dfbe: Bugfix for definition prompt size in articles
|
|
25
|
+
|
|
26
|
+
## 2.0.0
|
|
27
|
+
|
|
28
|
+
### Major Changes
|
|
29
|
+
|
|
30
|
+
- b850ebee: Remove `satStyling` from `APIOptions`
|
|
31
|
+
- b850ebee: Remove `styling` from `APIOptions`
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- 55841525: Fix graphie font-size to a specific size
|
|
36
|
+
- a325f740: Switch Definition's prompt from Button to Clickable to resolve text not matching
|
|
37
|
+
|
|
38
|
+
## 1.4.1
|
|
39
|
+
|
|
40
|
+
### Patch Changes
|
|
41
|
+
|
|
42
|
+
- a1b4ab3c: Update wonder-blocks and wonder-stuff deps to fix an issue with wonder-stuff's generated flow types
|
|
43
|
+
- Updated dependencies [a1b4ab3c]
|
|
44
|
+
- @khanacademy/math-input@0.6.7
|
|
45
|
+
- @khanacademy/perseus-linter@0.2.5
|
|
46
|
+
- @khanacademy/pure-markdown@0.1.5
|
|
47
|
+
|
|
48
|
+
## 1.4.0
|
|
49
|
+
|
|
50
|
+
### Minor Changes
|
|
51
|
+
|
|
52
|
+
- 324a197c: Quick font fixup
|
|
53
|
+
- f5693311: Indicators on exercises are now accessible via the keyboard! Additionally, they use explicit list markup! 🟢⚪⚪
|
|
54
|
+
|
|
55
|
+
### Patch Changes
|
|
56
|
+
|
|
57
|
+
- 6a7f36be: Update wonder-stuff and wonder-blocks dependencies
|
|
58
|
+
- 7b94ca05: Update categorizer to have no empty "th" cells per a11y audit
|
|
59
|
+
- Updated dependencies [6a7f36be]
|
|
60
|
+
- @khanacademy/math-input@0.6.6
|
|
61
|
+
- @khanacademy/perseus-linter@0.2.4
|
|
62
|
+
- @khanacademy/pure-markdown@0.1.4
|
|
63
|
+
|
|
64
|
+
## 1.3.7
|
|
65
|
+
|
|
66
|
+
### Patch Changes
|
|
67
|
+
|
|
68
|
+
- c238d540: Wrap all ReactDOM.render() calls in `<RenderStateRoot>` to ensure it propagates properly
|
|
69
|
+
- Updated dependencies [c238d540]
|
|
70
|
+
- @khanacademy/math-input@0.6.5
|
|
71
|
+
|
|
72
|
+
## 1.3.6
|
|
73
|
+
|
|
74
|
+
### Patch Changes
|
|
75
|
+
|
|
76
|
+
- 859d3c28: Fixes styling of input-number when answer is incorrect in review mode
|
|
77
|
+
|
|
78
|
+
## 1.3.5
|
|
79
|
+
|
|
80
|
+
### Patch Changes
|
|
81
|
+
|
|
82
|
+
- c4feda94: allow users to select text in radio choice
|
|
83
|
+
- 6f79dc58: Fix regression in input-number widget to respect `size` and `rightAlign` options again.
|
|
84
|
+
|
|
85
|
+
## 1.3.4
|
|
86
|
+
|
|
87
|
+
### Patch Changes
|
|
88
|
+
|
|
89
|
+
- 5a565227: bugfix for Radio editor selection and deletion
|
|
90
|
+
|
|
91
|
+
## 1.3.3
|
|
92
|
+
|
|
93
|
+
### Patch Changes
|
|
94
|
+
|
|
95
|
+
- 47d2afc0: Force radio text to be dark for contrast
|
|
96
|
+
|
|
97
|
+
## 1.3.2
|
|
98
|
+
|
|
99
|
+
### Patch Changes
|
|
100
|
+
|
|
101
|
+
- 1454c80a: Change to shape/space Radio Choice's "cross out" button
|
|
102
|
+
|
|
103
|
+
## 1.3.1
|
|
104
|
+
|
|
105
|
+
### Patch Changes
|
|
106
|
+
|
|
107
|
+
- 9b3bf30f: CSS bug fixes for SAT Radio widget
|
|
108
|
+
- Updated dependencies [113953e8]
|
|
109
|
+
- @khanacademy/math-input@0.6.4
|
|
110
|
+
|
|
111
|
+
## 1.3.0
|
|
112
|
+
|
|
113
|
+
### Minor Changes
|
|
114
|
+
|
|
115
|
+
- e783be76: Fix passage fonts because content depends on it being an exact size
|
|
116
|
+
|
|
117
|
+
### Patch Changes
|
|
118
|
+
|
|
119
|
+
- ec92d308: Fix bug with Passage where line numbers stopped abruptly
|
|
120
|
+
- dd55b5e4: Update gutter line numbers in passage
|
|
121
|
+
|
|
122
|
+
## 1.2.0
|
|
123
|
+
|
|
124
|
+
### Minor Changes
|
|
125
|
+
|
|
126
|
+
- cede09bd: Fix passage widget bug bug where highlight is immediately lost when tooltip appears
|
|
127
|
+
|
|
128
|
+
### Patch Changes
|
|
129
|
+
|
|
130
|
+
- 5ba90816: CSS fix to remove gradient background on math
|
|
131
|
+
- 96ddd9b7: Update package.json with yarn start command
|
|
132
|
+
- a90a52c6: Update body fonts
|
|
133
|
+
|
|
134
|
+
## 1.1.2
|
|
135
|
+
|
|
136
|
+
### Patch Changes
|
|
137
|
+
|
|
138
|
+
- b8b0ff7e: Update graded-group widget title to use a darker gray to meet a11y requirements
|
|
139
|
+
- 1dad999d: bugfix: add indention back to Passage widget
|
|
140
|
+
- cc5103be: Small fix to communicate the "current" state of graded-group-sets to screen readers.
|
|
141
|
+
|
|
142
|
+
## 1.1.1
|
|
143
|
+
|
|
144
|
+
### Patch Changes
|
|
145
|
+
|
|
146
|
+
- 5b86aba4: bugfix: add size and rightAlign back to numeric-input widget
|
|
147
|
+
- 5b86aba4: bugfix for Matrix styles not getting passed through
|
|
148
|
+
- 6b48ca35: A tiny change that adds some aria labels to our message container so that the content will be read to screen readers upon update.
|
|
149
|
+
|
|
150
|
+
## 1.1.0
|
|
151
|
+
|
|
152
|
+
### Minor Changes
|
|
153
|
+
|
|
154
|
+
- 178987d6: Creates a native accessibility experience for Radio widget
|
|
155
|
+
|
|
156
|
+
### Patch Changes
|
|
157
|
+
|
|
158
|
+
- f046585a: add shared PerseusNumericInputAnswerForm and MathFormat types to perseus-types
|
|
159
|
+
- e342e6b2: Update CSS to match wonderblocks, round I
|
|
160
|
+
|
|
161
|
+
## 1.0.0
|
|
162
|
+
|
|
163
|
+
### Major Changes
|
|
164
|
+
|
|
165
|
+
- f9e0cda6: Change API shape: remove radioStyleVersion, add primaryProductColor to styling
|
|
166
|
+
|
|
167
|
+
### Minor Changes
|
|
168
|
+
|
|
169
|
+
- 61a7084e: make multi-select options look more like checkboxes
|
|
170
|
+
|
|
171
|
+
### Patch Changes
|
|
172
|
+
|
|
173
|
+
- 2a3ac714: adds better flow coverage to base-radio.jsx
|
|
174
|
+
- 28170809: refactors base-radio to be a functional component
|
|
175
|
+
- ea104d1c: Delete original choice icon now that it's been refactored and moved
|
|
176
|
+
- 8c6c60f5: Converts OptionStatus component to a functional component
|
|
177
|
+
- 80e2cafc: refactor focus-ring to functional component
|
|
178
|
+
- f567f660: Update the eslint config to look at both the package.json for the package and the one from the root
|
|
179
|
+
- e8a60745: increase story/test coverage of base-radio
|
|
180
|
+
- 61a7084e: code cleanup for the choice-icon radio sub-component
|
|
181
|
+
- 16eccaea: convert Radio's Choice component into a functional component
|
|
182
|
+
- eeaa9010: Add more Flow typing to passage and passage-markdown widgets
|
|
183
|
+
- d4d2b3a6: removes unused crossOutButton component
|
|
184
|
+
- 46859806: Increases flow coverage for Radio's Widget component to 100%
|
|
185
|
+
- f5682ad6: fixes a bug in the multiselect radio widget to allow selected choices to be unselected
|
|
186
|
+
- Updated dependencies [f567f660]
|
|
187
|
+
- Updated dependencies [eeaa9010]
|
|
188
|
+
- @khanacademy/kas@0.2.7
|
|
189
|
+
- @khanacademy/kmath@0.0.8
|
|
190
|
+
- @khanacademy/math-input@0.6.3
|
|
191
|
+
- @khanacademy/perseus-linter@0.2.3
|
|
192
|
+
- @khanacademy/pure-markdown@0.1.3
|
|
193
|
+
- @khanacademy/simple-markdown@0.8.6
|
|
194
|
+
|
|
195
|
+
## 0.4.3
|
|
196
|
+
|
|
197
|
+
### Patch Changes
|
|
198
|
+
|
|
199
|
+
- bf180fe1: Fix our use of import/no-extraneous-dependencies
|
|
200
|
+
- Updated dependencies [bf180fe1]
|
|
201
|
+
- @khanacademy/kas@0.2.6
|
|
202
|
+
- @khanacademy/kmath@0.0.7
|
|
203
|
+
- @khanacademy/math-input@0.6.2
|
|
204
|
+
- @khanacademy/perseus-linter@0.2.2
|
|
205
|
+
- @khanacademy/pure-markdown@0.1.2
|
|
206
|
+
- @khanacademy/simple-markdown@0.8.5
|
|
207
|
+
|
|
208
|
+
## 0.4.2
|
|
209
|
+
|
|
210
|
+
### Patch Changes
|
|
211
|
+
|
|
212
|
+
- b317b553: Update tooltip design
|
|
213
|
+
- 1a91b6c2: Adds missing wonder-blocks deps, makes wonder-blocks peerDeps
|
|
214
|
+
- Updated dependencies [1a91b6c2]
|
|
215
|
+
- @khanacademy/math-input@0.6.1
|
|
216
|
+
|
|
217
|
+
## 0.4.1
|
|
218
|
+
|
|
219
|
+
### Patch Changes
|
|
220
|
+
|
|
221
|
+
- Updated dependencies [8fcd2a28]
|
|
222
|
+
- @khanacademy/math-input@0.6.0
|
|
223
|
+
|
|
224
|
+
## 0.4.0
|
|
225
|
+
|
|
226
|
+
### Minor Changes
|
|
227
|
+
|
|
228
|
+
- fe5fedeb: Fix bug: 2 definitions displayed at once
|
|
229
|
+
- c13a5c93: Wonderblock numeric-input
|
|
230
|
+
- 7f92fd27: Remove JIPT.domInsertChecks from `PerseusDependencies` as its no longer used/needed by Perseus
|
|
231
|
+
- 8a49423f: Update radio widget with KA styling
|
|
232
|
+
- 988726bd: Change default "preloader" for `SvgImage` to use a WonderBlocks spinner. This avoids the need to deal with a bundled spinner GIF entirely.
|
|
233
|
+
|
|
234
|
+
### Patch Changes
|
|
235
|
+
|
|
236
|
+
- 8a53d9e0: removes unused function from numeric-input.jsx named getClasses
|
|
237
|
+
- 23662202: Remove `isPhone` and `isTablet` from `PerseusDependencies`
|
|
238
|
+
- 98d283ff: Fix storybook
|
|
239
|
+
- Updated dependencies [98d283ff]
|
|
240
|
+
- @khanacademy/kas@0.2.5
|
|
241
|
+
- @khanacademy/kmath@0.0.6
|
|
242
|
+
- @khanacademy/math-input@0.5.6
|
|
243
|
+
- @khanacademy/perseus-linter@0.2.1
|
|
244
|
+
- @khanacademy/pure-markdown@0.1.1
|
|
245
|
+
- @khanacademy/simple-markdown@0.8.4
|
|
246
|
+
|
|
247
|
+
## 0.3.4
|
|
248
|
+
|
|
249
|
+
### Patch Changes
|
|
250
|
+
|
|
251
|
+
- 397c3660: Fix: remove gap between popover and popover anchor in definition widget
|
|
252
|
+
- Updated dependencies [6f8f1ac9]
|
|
253
|
+
- @khanacademy/math-input@0.5.5
|
|
254
|
+
|
|
255
|
+
## 0.3.3
|
|
256
|
+
|
|
257
|
+
### Patch Changes
|
|
258
|
+
|
|
259
|
+
- Updated dependencies [f29b4975]
|
|
260
|
+
- @khanacademy/math-input@0.5.4
|
|
261
|
+
|
|
262
|
+
## 0.3.2
|
|
263
|
+
|
|
264
|
+
### Patch Changes
|
|
265
|
+
|
|
266
|
+
- Updated dependencies [96288b87]
|
|
267
|
+
- @khanacademy/math-input@0.5.3
|
|
268
|
+
|
|
269
|
+
## 0.3.1
|
|
270
|
+
|
|
271
|
+
### Patch Changes
|
|
272
|
+
|
|
273
|
+
- bfbcf273: Export new type: VideoKind (a parameter for the `useVideo` hook)
|
|
274
|
+
|
|
275
|
+
## 0.3.0
|
|
276
|
+
|
|
277
|
+
### Minor Changes
|
|
278
|
+
|
|
279
|
+
- 2578bd16: Rename NotGorgon to TranslationLinter
|
|
280
|
+
- 2578bd16: Rename Gorgon to PerseusLinter
|
|
281
|
+
|
|
282
|
+
### Patch Changes
|
|
283
|
+
|
|
284
|
+
- 4fb18745: Consume math-input .less directly instead of post-compilation
|
|
285
|
+
- Updated dependencies [2578bd16]
|
|
286
|
+
- Updated dependencies [2578bd16]
|
|
287
|
+
- @khanacademy/perseus-linter@0.2.0
|
|
288
|
+
|
|
289
|
+
## 0.2.8
|
|
290
|
+
|
|
291
|
+
### Patch Changes
|
|
292
|
+
|
|
293
|
+
- a4f10ace: Move Gorgon, PerseusError, PureMarkdown into their own packages
|
|
294
|
+
- Updated dependencies [a4f10ace]
|
|
295
|
+
- @khanacademy/perseus-linter@0.1.0
|
|
296
|
+
- @khanacademy/pure-markdown@0.1.0
|
|
297
|
+
|
|
298
|
+
## 0.2.7
|
|
299
|
+
|
|
300
|
+
### Patch Changes
|
|
301
|
+
|
|
302
|
+
- 3921a385: Fix bug where JIPT integration parsing rules returned incorrect type
|
|
303
|
+
- Updated dependencies [3921a385]
|
|
304
|
+
- @khanacademy/simple-markdown@0.8.3
|
|
305
|
+
|
|
306
|
+
## 0.2.6
|
|
307
|
+
|
|
308
|
+
### Patch Changes
|
|
309
|
+
|
|
310
|
+
- 5d67bb03: Add missing deps to peer/dev deps in package.json files
|
|
311
|
+
|
|
312
|
+
## 0.2.5
|
|
313
|
+
|
|
314
|
+
### Patch Changes
|
|
315
|
+
|
|
316
|
+
- Updated dependencies [a15b0e86]
|
|
317
|
+
- @khanacademy/kas@0.2.4
|
|
318
|
+
- @khanacademy/math-input@0.5.2
|
|
319
|
+
- @khanacademy/simple-markdown@0.8.2
|
|
320
|
+
|
|
321
|
+
## 0.2.4
|
|
322
|
+
|
|
323
|
+
### Patch Changes
|
|
324
|
+
|
|
325
|
+
- 5d86a625: Remove all unused fields from `Dependencies.InitialRequestUrl`
|
|
326
|
+
|
|
327
|
+
## 0.2.3
|
|
328
|
+
|
|
329
|
+
### Patch Changes
|
|
330
|
+
|
|
331
|
+
- 73095170: Add `VideoData` to set of exported Perseus types.
|
|
332
|
+
|
|
333
|
+
## 0.2.2
|
|
334
|
+
|
|
335
|
+
### Patch Changes
|
|
336
|
+
|
|
337
|
+
- 591420a6: Add @flow comment to math-input's index.js and missing props to ProvidedKeypad
|
|
338
|
+
- Updated dependencies [591420a6]
|
|
339
|
+
- @khanacademy/math-input@0.5.1
|
|
340
|
+
|
|
341
|
+
## 0.2.1
|
|
342
|
+
|
|
343
|
+
### Patch Changes
|
|
344
|
+
|
|
345
|
+
- e56ab24b: Exclude all deps from bundle except for vendored deps
|
|
346
|
+
- Updated dependencies [ca76baa3]
|
|
347
|
+
- @khanacademy/simple-markdown@0.8.1
|
|
348
|
+
|
|
349
|
+
## 0.2.0
|
|
350
|
+
|
|
351
|
+
### Minor Changes
|
|
352
|
+
|
|
353
|
+
- 116df39b: Extract math-input strings from source and save them to packages/math-input/dist
|
|
354
|
+
|
|
355
|
+
### Patch Changes
|
|
356
|
+
|
|
357
|
+
- Updated dependencies [ea57be17]
|
|
358
|
+
- Updated dependencies [116df39b]
|
|
359
|
+
- Updated dependencies [570c5800]
|
|
360
|
+
- @khanacademy/math-input@0.5.0
|
|
361
|
+
- @khanacademy/kas@0.2.3
|
|
362
|
+
|
|
363
|
+
## 0.1.0
|
|
364
|
+
|
|
365
|
+
### Minor Changes
|
|
366
|
+
|
|
367
|
+
- 21ee944a: Code from webapp has been copied over and all checks are passing.
|
package/README.md
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
# @khanacademy/perseus
|
|
2
|
+
|
|
3
|
+
Perseus is the set of components that we use at Khan Academy to power our Exercises and Articles.
|
|
4
|
+
|
|
5
|
+
The [perseus monorepo](https://www.github.com/Khan/perseus) is home to several packages, and this is the main one! Import this to render perseus items. Currently, UI that's outside of a perseus item (check answer button, anything at the higher-than-assessment-item level) is left as an exercise for the client.
|