From 2caffece9d82e4471cbe2a02708da7b0a2ece020 Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Thu, 12 Mar 2026 20:35:40 -0700 Subject: [PATCH 01/10] Upgrade Perseus from 22.7.0 to 75.7.1 with all dependencies Perseus has undergone major version bumps since our last upgrade, bringing React 18 support, new scoring/migration APIs, and updated Wonder Blocks dependencies. This updates all @khanacademy packages to their current versions, adds new required dependencies (perseus-core, perseus-score, keypad-context, wonder-blocks-announcer, etc.), removes obsolete ones (katex, create-react-class, etc.), and bumps React from 16.14 to 18.2. The @swc/helpers package is hoisted via .npmrc for Perseus's SWC-compiled output. Co-Authored-By: Claude Opus 4.6 --- .npmrc | 3 + .../frontend/views/PerseusRendererIndex.vue | 42 +- kolibri/plugins/perseus_viewer/package.json | 76 +- package.json | 7 + pnpm-lock.yaml | 1614 +++++++++-------- 5 files changed, 930 insertions(+), 812 deletions(-) diff --git a/.npmrc b/.npmrc index ded82e2f63f..a8365e17408 100644 --- a/.npmrc +++ b/.npmrc @@ -1 +1,4 @@ auto-install-peers = true +# Perseus v75 uses SWC-compiled code that requires @swc/helpers at runtime, +# but doesn't declare it as a dependency. Hoisting makes it resolvable by webpack. +public-hoist-pattern[]=@swc/helpers diff --git a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue index d85b4a0e2ac..d2150058f3b 100644 --- a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue +++ b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue @@ -298,6 +298,9 @@ }, beforeDestroy() { this.$emit('stopTracking'); + if (this._overflowResizeHandler) { + window.removeEventListener('resize', this._overflowResizeHandler); + } this.clearItemRenderer(); cleanUpPerseusFile(this.perseusFileUrl); }, @@ -325,8 +328,10 @@ kaLocale: 'en', // For some reason this is defined here as well as in the apiOptions isMobile: this.isMobile, - // We already preprocess all URLs - // we may need to enhance this if we find one of the uses of it is breaking. + // Identity function: we already preprocess all content URLs ourselves. + // Despite generateUrl being added in v70, staticUrl is still read from + // dependencies in v75 by the Protractor and Grapher widgets (for their + // own bundled assets), so it must stay defined or those widgets throw. staticUrl: url => url, // Pass our logging object to capture Log messages from Perseus Log: logging, @@ -345,8 +350,34 @@ }, mounted() { this.$emit('mounted'); + this._overflowResizeHandler = () => this.setOverflowForScrollContext(); + window.addEventListener('resize', this._overflowResizeHandler, { passive: true }); + this.setOverflowForScrollContext(); }, methods: { + // The exercise (Learn) layout bounds our height and expects the content + // to scroll within .perseus, keeping its header and mastery bar fixed. + // The quiz layout instead renders us inside its own scrolling column, + // where a local scroll would just be a redundant nested scrollbar. + // Detect which we're in by looking for a scrolling ancestor and set + // .perseus overflow accordingly (mirrors the keypad's findScrollParent). + setOverflowForScrollContext() { + const el = this.$refs.perseus; + if (!el) { + return; + } + let node = el.parentElement; + let hasScrollingAncestor = false; + while (node && node !== document.body && node !== document.documentElement) { + const overflowY = window.getComputedStyle(node).overflowY; + if (overflowY === 'auto' || overflowY === 'scroll') { + hasScrollingAncestor = true; + break; + } + node = node.parentElement; + } + el.style.overflow = hasScrollingAncestor ? 'visible' : 'auto'; + }, validateItemData(obj) { return ( [ @@ -805,7 +836,12 @@ flex: 1; flex-direction: column; padding: 24px; - overflow: auto; /* Allow scrolling if needed */ + // Default for the exercise (Learn) layout, which bounds our height above a + // fixed mastery bar: we scroll the content here so that bar and the header + // stay put. In the quiz layout an outer column already scrolls, so this + // would add a redundant nested scrollbar — setOverflowForScrollContext() + // switches it to `visible` there. Keep this default in sync with that JS. + overflow: auto; background: white; } diff --git a/kolibri/plugins/perseus_viewer/package.json b/kolibri/plugins/perseus_viewer/package.json index d03bdcb0696..cc92f8fd9bd 100644 --- a/kolibri/plugins/perseus_viewer/package.json +++ b/kolibri/plugins/perseus_viewer/package.json @@ -7,48 +7,52 @@ "private": true, "version": "0.0.1", "dependencies": { - "@khanacademy/kas": "^0.3.8", - "@khanacademy/math-input": "19.2.1", - "@khanacademy/mathjax-renderer": "^2.0.0", - "@khanacademy/perseus-core": "^1.5.2", - "@khanacademy/perseus": "22.7.0", - "@khanacademy/wonder-blocks-banner": "3.0.42", - "@khanacademy/wonder-blocks-button": "6.3.1", - "@khanacademy/wonder-blocks-clickable": "4.2.1", - "@khanacademy/wonder-blocks-core": "6.4.0", - "@khanacademy/wonder-blocks-data": "13.0.7", - "@khanacademy/wonder-blocks-dropdown": "5.3.0", - "@khanacademy/wonder-blocks-form": "4.5.1", - "@khanacademy/wonder-blocks-icon": "4.1.0", - "@khanacademy/wonder-blocks-layout": "2.0.32", - "@khanacademy/wonder-blocks-link": "6.1.1", - "@khanacademy/wonder-blocks-pill": "2.2.1", - "@khanacademy/wonder-blocks-popover": "3.2.2", - "@khanacademy/wonder-blocks-progress-spinner": "2.1.1", - "@khanacademy/wonder-blocks-switch": "1.1.16", - "@khanacademy/wonder-blocks-tokens": "1.3.0", - "@khanacademy/wonder-blocks-tooltip": "2.3.1", - "@khanacademy/wonder-blocks-typography": "2.1.11", - "@khanacademy/wonder-blocks-timing": "^5.0.0", - "@khanacademy/wonder-stuff-core": "^1.5.2", + "@khanacademy/kas": "^2.1.8", + "@khanacademy/perseus-core": "^23.5.0", + "@khanacademy/perseus-score": "^8.2.14", + "@khanacademy/keypad-context": "3.2.37", + "@khanacademy/math-input": "26.4.6", + "@khanacademy/mathjax-renderer": "^3.0.0", + "@khanacademy/perseus": "75.7.1", + "@khanacademy/wonder-blocks-announcer": "^1.0.6", + "@khanacademy/wonder-blocks-banner": "^5.0.17", + "@khanacademy/wonder-blocks-button": "^11.4.1", + "@khanacademy/wonder-blocks-clickable": "^8.1.4", + "@khanacademy/wonder-blocks-core": "^12.4.3", + "@khanacademy/wonder-blocks-data": "^15.0.1", + "@khanacademy/wonder-blocks-dropdown": "^10.8.1", + "@khanacademy/wonder-blocks-form": "^7.5.5", + "@khanacademy/wonder-blocks-icon": "^5.3.8", + "@khanacademy/wonder-blocks-icon-button": "^11.1.5", + "@khanacademy/wonder-blocks-labeled-field": "^4.0.15", + "@khanacademy/wonder-blocks-layout": "^3.1.45", + "@khanacademy/wonder-blocks-link": "^10.1.6", + "@khanacademy/wonder-blocks-modal": "^8.5.16", + "@khanacademy/wonder-blocks-pill": "^3.1.56", + "@khanacademy/wonder-blocks-popover": "^6.1.54", + "@khanacademy/wonder-blocks-progress-spinner": "^3.1.45", + "@khanacademy/wonder-blocks-switch": "^3.3.29", + "@khanacademy/wonder-blocks-tabs": "^0.5.4", + "@khanacademy/wonder-blocks-timing": "^7.0.4", + "@khanacademy/wonder-blocks-tokens": "^16.0.0", + "@khanacademy/wonder-blocks-tooltip": "^4.1.67", + "@khanacademy/wonder-blocks-typography": "^4.2.30", + "@khanacademy/wonder-stuff-core": "^3.0.0", "@phosphor-icons/core": "^2.1.1", - "@popperjs/core": "^2.10.1", + "@swc/helpers": "^0.5.18", + "@popperjs/core": "^2.10.2", "aphrodite": "https://github.com/learningequality/aphrodite/", "classnames": "^1.1.4", - "create-react-class": "^15.6.3", "fractional": "^1.0.0", - "intersection-observer": "^0.12.0", "jquery": "^2.1.1", - "katex": "^0.16.27", - "lodash.debounce": "^4.0.8", "mathquill": "^0.10.1", - "prop-types": "^15.6.1", - "react": "16.14.0", - "react-addons-pure-render-mixin": "^15.6.3", - "react-dom": "16.14.0", - "react-popper": "^2.0.0", - "react-router": "5.2.1", - "react-router-dom": "5.3.0", + "prop-types": "^15.8.1", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-popper": "^2.2.5", + "react-router": "5.3.4", + "react-router-dom": "5.3.4", + "react-router-dom-v5-compat": "^6.30.0", "react-transition-group": "^4.4.5", "react-window": "^1.8.11", "underscore": "1.13.8", diff --git a/package.json b/package.json index f2771a2a1b0..f40cd2ed937 100644 --- a/package.json +++ b/package.json @@ -102,6 +102,13 @@ "overrides": { "@khanacademy/math-input>mathquill": "github:Khan/mathquill#v1.0.0", "vue-jest>vue-template-es2015-compiler": "npm:vue-template-babel-compiler@^2.0.0" + }, + "packageExtensions": { + "@khanacademy/perseus@*": { + "dependencies": { + "@swc/helpers": "^0.5.18" + } + } } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0e538e4bb2..8313c11a570 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,6 +56,8 @@ overrides: '@khanacademy/math-input>mathquill': github:Khan/mathquill#v1.0.0 vue-jest>vue-template-es2015-compiler: npm:vue-template-babel-compiler@^2.0.0 +packageExtensionsChecksum: sha256-ll40qSAxlLt38iHWbbjdE9v3VCQS5lbvVO1mza4SqEE= + importers: .: @@ -641,104 +643,119 @@ importers: kolibri/plugins/perseus_viewer: dependencies: '@khanacademy/kas': - specifier: ^0.3.8 - version: 0.3.16(underscore@1.13.8) + specifier: ^2.1.8 + version: 2.1.8(underscore@1.13.8) + '@khanacademy/keypad-context': + specifier: 3.2.37 + version: 3.2.37(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) '@khanacademy/math-input': - specifier: 19.2.1 - version: 19.2.1(0da84ede4a3ed570c5512d4c418e5ad7) + specifier: 26.4.6 + version: 26.4.6(8ea3c2b28fd28df4213c0d248ed03fc5) '@khanacademy/mathjax-renderer': - specifier: ^2.0.0 - version: 2.2.1 + specifier: ^3.0.0 + version: 3.0.2 '@khanacademy/perseus': - specifier: 22.7.0 - version: 22.7.0(9b7a5d954d98b63e038e3920e7bdcdae) + specifier: 75.7.1 + version: 75.7.1(844523cd7c0821eabefa898d797776ce) '@khanacademy/perseus-core': - specifier: ^1.5.2 - version: 1.5.3 + specifier: ^23.5.0 + version: 23.5.0(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-score': + specifier: ^8.2.14 + version: 8.2.14(@khanacademy/wonder-stuff-core@3.0.0)(jquery@2.2.4)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/wonder-blocks-announcer': + specifier: ^1.0.6 + version: 1.0.6(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-banner': - specifier: 3.0.42 - version: 3.0.42(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^5.0.17 + version: 5.0.18(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-button': - specifier: 6.3.1 - version: 6.3.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^11.4.1 + version: 11.4.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-clickable': - specifier: 4.2.1 - version: 4.2.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^8.1.4 + version: 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-core': - specifier: 6.4.0 - version: 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^12.4.3 + version: 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-data': - specifier: 13.0.7 - version: 13.0.7(@khanacademy/wonder-stuff-core@1.5.5)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^15.0.1 + version: 15.0.1(@khanacademy/wonder-stuff-core@3.0.0)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-dropdown': - specifier: 5.3.0 - version: 5.3.0(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react-window@1.8.11(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react@16.14.0) + specifier: ^10.8.1 + version: 10.8.2(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react-window@1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-form': - specifier: 4.5.1 - version: 4.5.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^7.5.5 + version: 7.5.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-icon': - specifier: 4.1.0 - version: 4.1.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^5.3.8 + version: 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon-button': + specifier: ^11.1.5 + version: 11.1.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-labeled-field': + specifier: ^4.0.15 + version: 4.0.16(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-layout': - specifier: 2.0.32 - version: 2.0.32(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^3.1.45 + version: 3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-link': - specifier: 6.1.1 - version: 6.1.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^10.1.6 + version: 10.1.7(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-modal': + specifier: ^8.5.16 + version: 8.5.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-pill': - specifier: 2.2.1 - version: 2.2.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^3.1.56 + version: 3.1.57(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-popover': - specifier: 3.2.2 - version: 3.2.2(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^6.1.54 + version: 6.1.55(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-progress-spinner': - specifier: 2.1.1 - version: 2.1.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^3.1.45 + version: 3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-switch': - specifier: 1.1.16 - version: 1.1.16(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^3.3.29 + version: 3.3.30(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tabs': + specifier: ^0.5.4 + version: 0.5.5(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react-window@1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-timing': - specifier: ^5.0.0 - version: 5.0.2(react@16.14.0) + specifier: ^7.0.4 + version: 7.0.4(react@18.2.0) '@khanacademy/wonder-blocks-tokens': - specifier: 1.3.0 - version: 1.3.0 + specifier: ^16.0.0 + version: 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-tooltip': - specifier: 2.3.1 - version: 2.3.1(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^4.1.67 + version: 4.1.68(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-blocks-typography': - specifier: 2.1.11 - version: 2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + specifier: ^4.2.30 + version: 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@khanacademy/wonder-stuff-core': - specifier: ^1.5.2 - version: 1.5.5 + specifier: ^3.0.0 + version: 3.0.0 '@phosphor-icons/core': specifier: ^2.1.1 version: 2.1.1 '@popperjs/core': - specifier: ^2.10.1 + specifier: ^2.10.2 version: 2.11.8 + '@swc/helpers': + specifier: ^0.5.18 + version: 0.5.18 aphrodite: specifier: https://github.com/learningequality/aphrodite/ version: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 classnames: specifier: ^1.1.4 version: 1.2.2 - create-react-class: - specifier: ^15.6.3 - version: 15.7.0 fractional: specifier: ^1.0.0 version: 1.0.0 - intersection-observer: - specifier: ^0.12.0 - version: 0.12.2 jquery: specifier: ^2.1.1 version: 2.2.4 - katex: - specifier: ^0.16.27 - version: 0.16.27 kolibri: specifier: workspace:* version: link:../../../packages/kolibri @@ -760,39 +777,36 @@ importers: lodash: specifier: 'catalog:' version: 4.17.23 - lodash.debounce: - specifier: ^4.0.8 - version: 4.0.8 mathquill: specifier: ^0.10.1 version: 0.10.1 prop-types: - specifier: ^15.6.1 + specifier: ^15.8.1 version: 15.8.1 react: - specifier: 16.14.0 - version: 16.14.0 - react-addons-pure-render-mixin: - specifier: ^15.6.3 - version: 15.6.3 + specifier: 18.2.0 + version: 18.2.0 react-dom: - specifier: 16.14.0 - version: 16.14.0(react@16.14.0) + specifier: 18.2.0 + version: 18.2.0(react@18.2.0) react-popper: - specifier: ^2.0.0 - version: 2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + specifier: ^2.2.5 + version: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-router: - specifier: 5.2.1 - version: 5.2.1(react@16.14.0) + specifier: 5.3.4 + version: 5.3.4(react@18.2.0) react-router-dom: - specifier: 5.3.0 - version: 5.3.0(react@16.14.0) + specifier: 5.3.4 + version: 5.3.4(react@18.2.0) + react-router-dom-v5-compat: + specifier: ^6.30.0 + version: 6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0) react-transition-group: specifier: ^4.4.5 - version: 4.4.5(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + version: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) react-window: specifier: ^1.8.11 - version: 1.8.11(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + version: 1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0) underscore: specifier: 1.13.8 version: 1.13.8 @@ -1188,7 +1202,7 @@ importers: dependencies: '@swc/core': specifier: ^1.11.29 - version: 1.15.24 + version: 1.15.24(@swc/helpers@0.5.18) autoprefixer: specifier: 10.4.23 version: 10.4.23(postcss@8.5.6) @@ -1245,13 +1259,13 @@ importers: version: 4.0.0(webpack@5.104.1) swc-loader: specifier: ^0.2.6 - version: 0.2.7(@swc/core@1.15.24)(webpack@5.104.1) + version: 0.2.7(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack@5.104.1) temp: specifier: ^0.8.3 version: 0.8.4 terser-webpack-plugin: specifier: ^5.3.16 - version: 5.3.16(@swc/core@1.15.24)(webpack@5.104.1) + version: 5.3.16(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack@5.104.1) url-loader: specifier: ^4.1.1 version: 4.1.1(webpack@5.104.1) @@ -1266,7 +1280,7 @@ importers: version: 2.7.16 webpack: specifier: ^5.102.0 - version: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + version: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) webpack-cli: specifier: ^7.0.2 version: 7.0.2(webpack-dev-server@5.2.4)(webpack@5.104.1) @@ -1826,10 +1840,6 @@ packages: '@babel/code-frame@7.12.11': resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} - '@babel/code-frame@7.28.6': - resolution: {integrity: sha512-JYgintcMjRiCvS8mMECzaEn+m3PfoQiyqukOMCCVQtoJGYJw8j/8LBJEiqkHLkfwCcs74E3pbAUFNg7d9VNJ+Q==} - engines: {node: '>=6.9.0'} - '@babel/code-frame@7.29.0': resolution: {integrity: sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==} engines: {node: '>=6.9.0'} @@ -2914,364 +2924,340 @@ packages: '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - '@khanacademy/kas@0.3.16': - resolution: {integrity: sha512-EHYO6D0FYQnP9FkueglK5nd/GoIfUDKP3Si8N9bIkXPt7k5bq0FgcApXcXcZtVGNzNWNxo+wgDp8/QQazAaTBA==} + '@khanacademy/kas@2.1.8': + resolution: {integrity: sha512-eExmjmaACq94qQ86yWkds49wCLV8ICNfeWipGUB2bcJ0JAlCzAsoE87ROIae11pBq4o9DqMg5D8q/R8A2ftbZw==} peerDependencies: - underscore: 1.4.4 + underscore: ^1.4.4 - '@khanacademy/kmath@0.1.24': - resolution: {integrity: sha512-/dBVBR3kPIxCCiSZWdN48z8JMsWCAlyzNi0Pi8TBmVbnniOM9Vx3Jp//mMpizxo57+5YCMSDZ3tYldBsHvq6KA==} + '@khanacademy/keypad-context@3.2.37': + resolution: {integrity: sha512-7A/UTK0uFvwzcsW0x/pPxSrHLtNCfrE7+LnXqZjQHsdHW56tAWnq6gIhHXGGEZ2ZOaSRzeD8SN6+s/i81wm9pA==} peerDependencies: - underscore: 1.4.4 + react: ^18.2.0 - '@khanacademy/math-input@19.2.1': - resolution: {integrity: sha512-ZYiGgcvAdncObl04WA+OyJtaAMWxYnxt8mfXp/d+Y9VgAL40E8v3HzDL8lRgmS8M+VwSAx0fERN2XytLZncGgw==} + '@khanacademy/kmath@2.2.37': + resolution: {integrity: sha512-G46M7wf+QYkT+GjKPbSyFqLJ9nto2evYbWYzc/KXGhU1DBo1rjcJCSlOU//l1hXvtPftZGJCOjysoTtpJYmLNA==} peerDependencies: - '@khanacademy/mathjax-renderer': ^2.0.0 - '@khanacademy/wonder-blocks-clickable': 4.2.1 - '@khanacademy/wonder-blocks-core': 6.4.0 - '@khanacademy/wonder-blocks-popover': 3.2.2 - '@khanacademy/wonder-blocks-timing': 5.0.0 - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-stuff-core': 1.5.2 + jquery: ^2.1.1 + underscore: ^1.4.4 + + '@khanacademy/math-input@26.4.6': + resolution: {integrity: sha512-oRisocSLkvtS7VEQWSwtxB6b9li2IqWFVlO9q56j5mCvSNKSuhgeXQxkkLwMNCHh+unntGWwlYhtKnX6xEiK3Q==} + peerDependencies: + '@khanacademy/mathjax-renderer': ^3.0.0 + '@khanacademy/wonder-blocks-clickable': ^8.1.4 + '@khanacademy/wonder-blocks-core': ^12.4.3 + '@khanacademy/wonder-blocks-icon-button': ^11.1.5 + '@khanacademy/wonder-blocks-popover': ^6.1.54 + '@khanacademy/wonder-blocks-tabs': ^0.5.4 + '@khanacademy/wonder-blocks-timing': ^7.0.4 + '@khanacademy/wonder-blocks-tokens': ^16.0.0 + '@khanacademy/wonder-stuff-core': ^3.0.0 '@phosphor-icons/core': ^2.0.2 aphrodite: ^1.2.5 - jquery: ^2.1.1 - katex: 0.11.1 - prop-types: 15.6.1 - react: 16.14.0 - react-dom: ^16.8.0 - react-router: 5.2.1 - react-router-dom: 5.3.0 + prop-types: ^15.8.1 + react: ^18.2.0 + react-dom: ^18.2.0 react-transition-group: ^4.4.1 - '@khanacademy/mathjax-renderer@2.2.1': - resolution: {integrity: sha512-aIOsUsvLElO5u88v2Q71C9qbySbLE8HCqfGsw2joMFFpmszk7bumRCn+54rMKxRCn5i3WlJiJ/jXGRC3D6kjgA==} - - '@khanacademy/perseus-core@1.4.2': - resolution: {integrity: sha512-29lyXkan0HuQBfNTP/68ytFVapwKBpve+ijOnbe5T6x5A6zzVjby2rTO+fVXKXOm+BC8Y+66XQnOcnvwhoJ/Og==} + '@khanacademy/mathjax-renderer@3.0.2': + resolution: {integrity: sha512-Tcp40goSseO52MtRnk29DuGpWXoktJu7BK6HG3mp9rWb7RBLcQldvq++T3FVfIwMA/9EnG1cFboGwNwiFpwrFw==} - '@khanacademy/perseus-core@1.5.0': - resolution: {integrity: sha512-QR9tGBr8nAUFuARSbzgzL6ZkyjDur0Cz9tgQREjC0L+Sug5aj0DHuK86lhosZAbtgAzitX3KVRAsOMbKqU2fYg==} - - '@khanacademy/perseus-core@1.5.3': - resolution: {integrity: sha512-TH3h4h1JE+CANcBM5l2vqj3fXEKeD4TVJ0Hw/pLZ4eDNi5UF7e1vTTqs0fXaV22kfNPRWxEpvKdFfRI6O6pAhQ==} - - '@khanacademy/perseus-core@3.0.5': - resolution: {integrity: sha512-xkW25Hy5+LUYLVR46Rj7K/AGUixT2GEpw+fwypZJtEfZODN6tgxxfmwH7vLZOcJQqiTrtNp/ADmV6o2oXUovWg==} - - '@khanacademy/perseus-core@3.7.0': - resolution: {integrity: sha512-S79VoKCZ6K66HSqHGu6F6S1aIfMFrib79TWRAtkQqcTWS+O1EEGQPyPy5FNSWtDkAZX9N6+HQ9Ywo2jZY9iBcA==} - - '@khanacademy/perseus-error@0.3.0': - resolution: {integrity: sha512-/l17SLytZxLBcxtEhSpVMUtMuuKaoarkfWRaFGc3Ym+pUHSfa/seKhEe7MNvAmN8c2Toxofggu38up+qaM3Zlg==} + '@khanacademy/perseus-core@23.5.0': + resolution: {integrity: sha512-Bb4zwoslyCDRDhSD22lag7W1Eo2sxBIl7KtbUoPNturMRPvo8GG+rWV2i7lVKCnOxzUGA0qqIDKojXVEP8yRrQ==} peerDependencies: - '@khanacademy/wonder-stuff-core': 1.5.2 + '@khanacademy/wonder-stuff-core': ^3.0.0 + underscore: ^1.4.4 - '@khanacademy/perseus-linter@0.4.0': - resolution: {integrity: sha512-alor8gVh0IQheHp8PbboLym2jq/n1YE085yZ4+svVjISVukTzYoErEbXRGq2ERJZXdZquqB4iyt2Vc4Lod17/A==} - peerDependencies: - prop-types: 15.6.1 + '@khanacademy/perseus-linter@4.8.5': + resolution: {integrity: sha512-5+yfnD6ME1vq9Wnxai9v94OYPTxkrT7FcfPF9Ck48i27IdMJsVPU78FaUbu+xO4F2EvJ/IS8V7PquDO+5sA5JA==} - '@khanacademy/perseus@22.7.0': - resolution: {integrity: sha512-HRBcg5wBNJz44eKuTK3x9968loDvnZQoowaOjU/24ISqvr946Q0YsMBdSzW/SOhtTClZFW9PHYMtMWovtQ8/pQ==} + '@khanacademy/perseus-score@8.2.14': + resolution: {integrity: sha512-KoLbJT/+2eMGZwlHlfD8PhCWSUdA9qllDgoTzEv7pi+mNVVtDcBlJCflg+5BMu6iE8OAiP7U+oei89Ce5Pdrxw==} peerDependencies: - '@khanacademy/wonder-blocks-banner': 3.0.42 - '@khanacademy/wonder-blocks-button': 6.3.1 - '@khanacademy/wonder-blocks-clickable': 4.2.1 - '@khanacademy/wonder-blocks-core': 6.4.0 - '@khanacademy/wonder-blocks-data': 13.0.7 - '@khanacademy/wonder-blocks-dropdown': 5.3.0 - '@khanacademy/wonder-blocks-form': 4.5.1 - '@khanacademy/wonder-blocks-icon': 4.1.0 - '@khanacademy/wonder-blocks-layout': 2.0.32 - '@khanacademy/wonder-blocks-link': 6.1.1 - '@khanacademy/wonder-blocks-pill': 2.2.1 - '@khanacademy/wonder-blocks-popover': 3.2.2 - '@khanacademy/wonder-blocks-progress-spinner': 2.1.1 - '@khanacademy/wonder-blocks-switch': 1.1.16 - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-blocks-tooltip': 2.3.1 - '@khanacademy/wonder-blocks-typography': 2.1.11 - '@khanacademy/wonder-stuff-core': 1.5.2 + underscore: ^1.4.4 + + '@khanacademy/perseus-utils@2.1.4': + resolution: {integrity: sha512-TQLLUZQWc0K0gCLejNTd7G2y1qMhF3BtM9rBGvSObo10EVL4LwA2nCgm0FaPLowCp0ujweZACh9ty+xlekkGXA==} + + '@khanacademy/perseus@75.7.1': + resolution: {integrity: sha512-wJyDGf4OHRBpUlx+QGZUpfSiAJjTVkoNWISe0Vk5fIpj+q1yIGj3tABAyUFSZL6qUcZAekEPMU6ePINyMLnr9A==} + peerDependencies: + '@khanacademy/wonder-blocks-announcer': ^1.0.6 + '@khanacademy/wonder-blocks-banner': ^5.0.17 + '@khanacademy/wonder-blocks-button': ^11.4.1 + '@khanacademy/wonder-blocks-clickable': ^8.1.4 + '@khanacademy/wonder-blocks-core': ^12.4.3 + '@khanacademy/wonder-blocks-data': ^15.0.1 + '@khanacademy/wonder-blocks-dropdown': ^10.8.1 + '@khanacademy/wonder-blocks-form': ^7.5.5 + '@khanacademy/wonder-blocks-icon': ^5.3.8 + '@khanacademy/wonder-blocks-icon-button': ^11.1.5 + '@khanacademy/wonder-blocks-labeled-field': ^4.0.15 + '@khanacademy/wonder-blocks-layout': ^3.1.45 + '@khanacademy/wonder-blocks-link': ^10.1.6 + '@khanacademy/wonder-blocks-modal': ^8.5.16 + '@khanacademy/wonder-blocks-pill': ^3.1.56 + '@khanacademy/wonder-blocks-popover': ^6.1.54 + '@khanacademy/wonder-blocks-progress-spinner': ^3.1.45 + '@khanacademy/wonder-blocks-switch': ^3.3.29 + '@khanacademy/wonder-blocks-timing': ^7.0.4 + '@khanacademy/wonder-blocks-tokens': ^16.0.0 + '@khanacademy/wonder-blocks-tooltip': ^4.1.67 + '@khanacademy/wonder-blocks-typography': ^4.2.30 + '@khanacademy/wonder-stuff-core': ^3.0.0 '@phosphor-icons/core': ^2.0.2 '@popperjs/core': ^2.10.2 aphrodite: ^1.2.5 - classnames: 1.1.4 - create-react-class: 15.6.3 - intersection-observer: ^0.12.0 + classnames: ^1.1.4 jquery: ^2.1.1 - lodash.debounce: ^4.0.8 - prop-types: 15.6.1 - react: 16.14.0 - react-dom: 16.14.0 + prop-types: ^15.8.1 + react: ^18.2.0 + react-dom: ^18.2.0 react-popper: ^2.2.5 underscore: ^1.4.4 - '@khanacademy/pure-markdown@0.3.27': - resolution: {integrity: sha512-cJOhl0ZSoxyjUHe5M6l6CuI/JXBD4XhospQGmkxlpmmsppKpFE1S7DIXYtBui7HkA3LL8wrDx16+4RUgJmNpIg==} + '@khanacademy/pure-markdown@2.2.6': + resolution: {integrity: sha512-KOq5Hb6hlH//rTa9bKjHiQz7diZCvCbiojigJgHrRQ3h2UK/x+weB+QdPItiptiHj2dK4nn7TsriMMRsnJmsQQ==} - '@khanacademy/simple-markdown@0.11.4': - resolution: {integrity: sha512-fFRDg7U1TbFO0sbyUOMBbJhT+BHtXfQGeFr6orIi5p1eC+zUDUe9oD1176kmCkpVSUXNqmyg7zoNzSCuFW7nNg==} - peerDependencies: - react: 16.14.0 - react-dom: 16.14.0 - - '@khanacademy/simple-markdown@0.13.20': - resolution: {integrity: sha512-OPp1drMgRRG2Mi0DxtfCiR4kXMngNJxPW9lG8aA05OrXUjLSXcsHb0jYcqfNeXOyqD4uwiLEtprDfJWgK1Hkpw==} + '@khanacademy/simple-markdown@2.2.1': + resolution: {integrity: sha512-9xmLOLIh//ZiWwQFtJETnV8Ha24J3KgHpcwrROjqjuXD3tNiNZrVMBBZU93Aw1/jeocA7p5jiYBrErZiqGlLag==} peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 - '@khanacademy/wonder-blocks-banner@3.0.42': - resolution: {integrity: sha512-PsMnR24bdQsmb8JybghyLynLOLRQWTufOuwwCW4fmbbodWCa7W3uhtHDhCq/ppIDZHQYC5OQBPW53ZNqtD4CxA==} - version: 3.0.42 + '@khanacademy/wonder-blocks-announcer@1.0.6': + resolution: {integrity: sha512-IbhJ4sN7j4VocyHIRSxBMiqGiE6LR6ZEj6JhS9Cknjm9Lr//baJVaVk+GoSRSeYGpYmfGKFCWJ4P8A91/yoe4A==} + version: 1.0.6 peerDependencies: - '@phosphor-icons/core': ^2.0.2 aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-breadcrumbs@2.2.8': - resolution: {integrity: sha512-+C7z0Z9H7qCwP1iaVS1Qhp18oynCltNES7XIpuiqmeAq+dDRyfcN387/AKBU5Fl0BeljGfQRXuL9+O47JFB0Ug==} - version: 2.2.8 - peerDependencies: - aphrodite: ^1.2.5 - react: 16.14.0 - - '@khanacademy/wonder-blocks-button@6.3.1': - resolution: {integrity: sha512-cgsG1ro78y6/oW1l0jVRoadom/e8dGuyCP6sJf6b6DHZWyQvgdQhE/217Mm3lQ8I23B3VrL048eqNr0sn8NLLQ==} - version: 6.3.1 + '@khanacademy/wonder-blocks-banner@5.0.18': + resolution: {integrity: sha512-PAWBnSX7Zhg3NYP7GPJwFW8OXMMsRsfoTucSQzkHNfKo6H4jjI/KEw+isIaDaekGr6MLPkzZt7M4bXdSfoc/rw==} + version: 5.0.18 peerDependencies: + '@phosphor-icons/core': ^2.0.2 aphrodite: ^1.2.5 - react: 16.14.0 - react-router: 5.2.1 - react-router-dom: 5.3.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-cell@3.4.6': - resolution: {integrity: sha512-WecPEB7gEBb8A6a4l4Qvec2h9yEOqj30UYPBYBQ/lmYTxA/AkFMkAR7ZSf50YmN7gx45BFw3YS27twAmwj4R8g==} - version: 3.4.6 + '@khanacademy/wonder-blocks-breadcrumbs@3.2.13': + resolution: {integrity: sha512-4ugPfjIC49ZiWBU5bz9GdYQq8lNhsFpByuC9Hrn9syzym3BRvHVDNgAS3PdVAbdEeCIwXG0dcfM5CCdOmoXIuQ==} + version: 3.2.13 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-clickable@4.2.1': - resolution: {integrity: sha512-Y5F1tqHITCAJ8WWS1U7Z0v/UZUm5IDFZ0Vfb+qWElelzUL+pvV7K1pAeDaVrXF8RWUNLFVDBA4H+1aP1IeejKQ==} - version: 4.2.1 + '@khanacademy/wonder-blocks-button@11.4.2': + resolution: {integrity: sha512-FVoT+b6ZevOFp+YmSEj6UlcVxPsAhElQOs5DLTFWVI1MhCYhpmwPpm7+4NqgxL35can4n7aek1TYLYshlOSA+g==} + version: 11.4.2 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 - react-dom: 16.14.0 - react-router: 5.2.1 - react-router-dom: 5.3.0 + react: 18.2.0 + react-router: 5.3.4 + react-router-dom: 5.3.4 + react-router-dom-v5-compat: ^6.30.0 - '@khanacademy/wonder-blocks-clickable@4.2.9': - resolution: {integrity: sha512-b8Ybkyr10VR4+SQv56eRAwQhU5aFm4XVGaI5IHeDRMKTLImQpf7PsN/gklG+8h2IIBtol1gULaUxNMEeWCy+uA==} - version: 4.2.9 + '@khanacademy/wonder-blocks-cell@6.1.11': + resolution: {integrity: sha512-cbYSx/OkdoPjHTbTXrLD4i9ePl5fWTV0hhD0eGg2IL+TMGUnT3ADExZgztu/nkh2wnRSqR/zq2+Q9a4QX52/Cw==} + version: 6.1.11 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 - react-dom: 16.14.0 - react-router: 5.2.1 - react-router-dom: 5.3.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-core@6.4.0': - resolution: {integrity: sha512-0+Iw6nVsiXcBpbdUT4OjoDVENs96XOPpSWtCA7zOdiyqkBvM5f722JdQsRb350gKxbYK5uqkzU1Ca+4ZVQH1OA==} - version: 6.4.0 + '@khanacademy/wonder-blocks-clickable@8.1.5': + resolution: {integrity: sha512-Rof+BLRKLwomY14fEneCaDw1jSmdxuxvz8vqMJvf9QglHko5ww5I2SM17JUiSCswV/KuIii9bLSdDdzAe+uVHw==} + version: 8.1.5 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 - react-dom: 16.14.0 - react-router: 5.2.1 - react-router-dom: 5.3.0 + react: 18.2.0 + react-dom: 18.2.0 + react-router: 5.3.4 + react-router-dom: 5.3.4 + react-router-dom-v5-compat: ^6.30.0 - '@khanacademy/wonder-blocks-core@7.0.1': - resolution: {integrity: sha512-n0wkvQm3NT1y80CWOIJcPv1W8X/Wwwj8nvw5VGcBFVWug3Mb4Ts6FFdPTzcrlTqK7ANf/hDc8msHFPBucnXhYg==} - version: 7.0.1 + '@khanacademy/wonder-blocks-core@12.4.3': + resolution: {integrity: sha512-3qcRwKVMECsug15my+V2iCmay2uTwzQXwrb1P4O5kHvBlWhBaWNeEh9QwDkTrkdX7HMBKbyd3n2ovUYYcRWJRQ==} + version: 12.4.3 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 - react-dom: 16.14.0 - react-router: 5.2.1 - react-router-dom: 5.3.0 + react: 18.2.0 + react-dom: 18.2.0 + react-router: 5.3.4 + react-router-dom: 5.3.4 + react-router-dom-v5-compat: ^6.30.0 - '@khanacademy/wonder-blocks-data@13.0.7': - resolution: {integrity: sha512-ZnMhuCAy+rHgRKE/mib2wllGU3Zs06RDW+D8x9ecFcUnrXv7Gr2t7h3QmrFb1KL7mHpCYZxIS8b1e4blGCTAyA==} - version: 13.0.7 + '@khanacademy/wonder-blocks-data@15.0.1': + resolution: {integrity: sha512-3CaK7a7bE68NdPJHi/L4EeGxgcsiciqlW1iNyhq7YbwWNb8AyPW08jS18Dgvw1LSFyTx2dUj4IndiGzkkUgHug==} + version: 15.0.1 peerDependencies: - '@khanacademy/wonder-stuff-core': ^1.2.2 - react: 16.14.0 + '@khanacademy/wonder-stuff-core': ^3.0.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-dropdown@5.3.0': - resolution: {integrity: sha512-LgztsaPScO7vAB5dDL61n9+w55Oxg/GI6PgFkSAkvSaYiw2AaurpkLsq/ZJNDQTZGEGEhXn+znkedt8uDE5QCQ==} - version: 5.3.0 + '@khanacademy/wonder-blocks-dropdown@10.8.2': + resolution: {integrity: sha512-6loQUTua3OwoGECH118s3ammAWrKUvOUxi2i8NlXC4QYTezOn571iahl+DeirdQOzUR3xlsW7ZI1jwDhlCSX6A==} + version: 10.8.2 peerDependencies: '@phosphor-icons/core': ^2.0.2 '@popperjs/core': ^2.10.1 aphrodite: ^1.2.5 - react: 16.14.0 - react-dom: 16.14.0 - react-popper: ^2.0.0 - react-router: 5.2.1 - react-router-dom: 5.3.0 - react-window: ^1.8.5 - - '@khanacademy/wonder-blocks-form@4.11.0': - resolution: {integrity: sha512-XaoZMzvUkor427M/qqPAzYvhygJdYkM6o8lIUlyTv/Mx5xmef0LpeYOLy7dYROhajrW/HLCqtlltobeLE2CYIQ==} - version: 4.11.0 - peerDependencies: - aphrodite: ^1.2.5 - react: 16.14.0 - - '@khanacademy/wonder-blocks-form@4.5.1': - resolution: {integrity: sha512-exwtVmbLR+CvUOJDrNEFztLdbbV/+BCwCJ4AiLMVmY/gmDZhKrxu7tV5UqirXWdo7tv52/loGqOnvtiwDODcpg==} - version: 4.5.1 + react: 18.2.0 + react-dom: 18.2.0 + react-popper: ^2.3.0 + react-router: 5.3.4 + react-router-dom: 5.3.4 + react-router-dom-v5-compat: ^6.30.0 + react-window: ^1.8.11 + + '@khanacademy/wonder-blocks-form@7.5.6': + resolution: {integrity: sha512-KnjXZjxfn8JdZ9cvqjgmVgYPigbFl4s0rCbkrIggN34K/G9WxDNFhnEg5pinsWWEQshd4keoO96dRtEnWQttQg==} + version: 7.5.6 peerDependencies: + '@phosphor-icons/core': ^2.0.2 aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-icon-button@5.6.2': - resolution: {integrity: sha512-s0sjV0amNSR1+MkWUohdu7BjCbami+qi0hKiLWJfFHvyB4k9yKpHsDzw4GsNczYVnYt9UwlSgczBqRqI/UrKHA==} - version: 5.6.2 + '@khanacademy/wonder-blocks-icon-button@11.1.6': + resolution: {integrity: sha512-/wPlLrE/XaWMr3j+IIh9JQuVJcCPcBg1rYzXimTFPTr7b5H9Qym2Pbq1gbmwGdQsjc8z8UPRCCFy6Yw1eU/G9A==} + version: 11.1.6 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 - react-router: 5.2.1 - react-router-dom: 5.3.0 + react: 18.2.0 + react-router: 5.3.4 + react-router-dom: 5.3.4 + react-router-dom-v5-compat: ^6.30.0 - '@khanacademy/wonder-blocks-icon@4.1.0': - resolution: {integrity: sha512-qOdkq6E1xohl4bi296qzCmARah/nS2rTqgS0GA5vm4/Li+anuXf4w9c5M60VZ/M0lp6yaG6zVamjdoeptnOBrQ==} - version: 4.1.0 + '@khanacademy/wonder-blocks-icon@5.3.9': + resolution: {integrity: sha512-BPrsxQe7aWtPUVnhqM2Vwy6fA083U/qLfgZBbnUbpNqlWvhkwhoO+6Hr2BoMmr/li27vaMmVOtq6hs5f+Ttj7w==} + version: 5.3.9 peerDependencies: '@phosphor-icons/core': ^2.0.2 aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-icon@4.2.0': - resolution: {integrity: sha512-oj1bI6IwrbHfJPAIw/jmdVk+jF6RQGxaEggkx5lXi/pbHAGwzfI/icQJww/ggl9FE7XUPyz4skrMxDy0aF1ZmQ==} - version: 4.2.0 + '@khanacademy/wonder-blocks-labeled-field@4.0.16': + resolution: {integrity: sha512-K8k6+R/0opM2ibfz0CkZtRLDdviDQeBDFVEbPtPOHNV+sprifJpoKdbvjXg7g04gqxgIKiJNx/hRWRBJb65nSg==} + version: 4.0.16 peerDependencies: '@phosphor-icons/core': ^2.0.2 aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-layout@2.0.32': - resolution: {integrity: sha512-sprckOrMRUipYuLAPPihnt7ihZUJShREujP135w3Ex8ALjPs9pYHixKvM1GWvkQlY/vPFW6NP2bn0DLuEeoLwg==} - version: 2.0.32 + '@khanacademy/wonder-blocks-layout@3.1.46': + resolution: {integrity: sha512-Aez0lyQawc+/pINvGlGb7cw8rUbKGw6iSgVCsqlVj28ew8OLv8f7aa+jasu0INKm8he/JlYAh+98vMDO86a0yw==} + version: 3.1.46 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 - - '@khanacademy/wonder-blocks-layout@2.2.2': - resolution: {integrity: sha512-fAt/TwnPmpZQbSoDY9/PM3ECwqnSWjLXUsCYJcIEMxUjBr+Uirr2B69hSTm7DPCZ5KYbuUxPGgzMCGSkR8G8Tg==} - version: 2.2.2 - peerDependencies: - aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-link@6.1.1': - resolution: {integrity: sha512-D4adyo4GaUILkp5GZNZSgzP+815/OOOkq0wK1GFgHYr9JybIxBURP7zwBBUow/YWTCwosLOvryWM8ka2trw1jQ==} - version: 6.1.1 + '@khanacademy/wonder-blocks-link@10.1.7': + resolution: {integrity: sha512-1hZRvUdDQeT5CiWL3sMxXDTK0GKiE5AwXXmaOZcToJuX2HC+2Wuo+q82jthpn8JcsgS8NSyT5ifLdLyGyhlg0g==} + version: 10.1.7 peerDependencies: + '@phosphor-icons/core': ^2.0.2 aphrodite: ^1.2.5 - react: 16.14.0 - react-router: 5.2.1 - react-router-dom: 5.3.0 + react: 18.2.0 + react-router: 5.3.4 + react-router-dom: 5.3.4 + react-router-dom-v5-compat: ^6.30.0 - '@khanacademy/wonder-blocks-modal@5.1.17': - resolution: {integrity: sha512-0uF6jW4OuGigk8zQPrRiSAPWrCXZcFor+4rXnZ65ghdoh1OAWWFKiunMw0UWFERZXozTAfTEnEqKRRJ4mptwDQ==} - version: 5.1.17 + '@khanacademy/wonder-blocks-modal@8.5.17': + resolution: {integrity: sha512-TeydCUbLIBeKhoSH9Zv/F8i/v74isllHDCXmadMWB24IggZZBb1olJBgT/2XGSbTk3ovUPXeRV8p8aXjowKi6w==} + version: 8.5.17 peerDependencies: '@phosphor-icons/core': ^2.0.2 aphrodite: ^1.2.5 - react: 16.14.0 - react-dom: 16.14.0 + react: 18.2.0 + react-dom: 18.2.0 - '@khanacademy/wonder-blocks-pill@2.2.1': - resolution: {integrity: sha512-f/Yw0WG+X6tA9pPZQ7VmQ4vLfzUrsuICCzR+cK0/otqNZr5+Z2N4UutCG7sbb/Hi5HegPdBxV/bb2RgGjLrUNA==} - version: 2.2.1 + '@khanacademy/wonder-blocks-pill@3.1.57': + resolution: {integrity: sha512-6RbPs127aWQ8guIaiBwIEWGDxcxzN+uitAZpo5klAZW5Qh1q/BqTtwL3G+WFi1a7WadU/CrraZthpnKxckXYkA==} + version: 3.1.57 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-popover@3.2.2': - resolution: {integrity: sha512-DyAOVJm/3vhTQ6S6XHOeoJYRueVOZiGp97HHxrzms6eMhpGY2KSjtjKD48A6Do1VQ6ruCSqBPQGJX4vMDs3ncQ==} - version: 3.2.2 + '@khanacademy/wonder-blocks-popover@6.1.55': + resolution: {integrity: sha512-1GTjM1LSHcNe5lKPj8K1PDO4UDUa2RwsUgZkGqzdfIBAvySOAxnkapYZlK6GKboRiHYsD2QrCBem8HW+xcHkMA==} + version: 6.1.55 peerDependencies: '@phosphor-icons/core': ^2.0.2 '@popperjs/core': ^2.10.1 aphrodite: ^1.2.5 - react: 16.14.0 - react-dom: 16.14.0 - react-popper: ^2.0.0 + react: 18.2.0 + react-dom: 18.2.0 + react-popper: ^2.3.0 - '@khanacademy/wonder-blocks-progress-spinner@2.1.1': - resolution: {integrity: sha512-ly8SITKmLM3dycHwcjlK7sw/znfX8C2o8zFcvqjjc81KaF/FT7vQuLLwDzwDpwoxQt7ryCAYRjN89yX7B+yewA==} - version: 2.1.1 + '@khanacademy/wonder-blocks-progress-spinner@3.1.46': + resolution: {integrity: sha512-kilk8Nw1jX7w8itp4CBiBDDhxv8LsO45VsBMaFoT3q0bbQPZQ0Iq/chWJnJKaIK39HFBcVK0CHfYiE4A7V1vKg==} + version: 3.1.46 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-search-field@2.3.6': - resolution: {integrity: sha512-rHiEo8jurDQZdosjvnO6gSYit+4RDznLrHC8PeM8VZG/vlpax+JO7dKLX+GeNGuw9IgsRE9NJQLACXMkaumt8g==} - version: 2.3.6 + '@khanacademy/wonder-blocks-search-field@5.1.63': + resolution: {integrity: sha512-xbblj2rkKMWrmxBKJpYI90Jvm+jskOcME8IFVCt+aNXdXhB9Ga2ouHDTjwHmQgzgzbGEmr0Mwrw+IKSUW8HZ+w==} + version: 5.1.63 peerDependencies: '@phosphor-icons/core': ^2.0.2 aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 + + '@khanacademy/wonder-blocks-styles@0.2.40': + resolution: {integrity: sha512-YrKj2utpbEfLDXmgIZlyDvWgcs+GMC2QPZLNLPfg7Fxi7m1ZjyV2drcUINozuHW/C0yPgG9+kFWepmYNpf0xQA==} + version: 0.2.40 - '@khanacademy/wonder-blocks-switch@1.1.16': - resolution: {integrity: sha512-nSJUnNrvo/QkPDuU0oewBHmXn4pe19sUIxTj17gQOn6zrcPThLBtb5URDfcZkVNaiG1EzCMGZz0QdQcNABYGHw==} - version: 1.1.16 + '@khanacademy/wonder-blocks-switch@3.3.30': + resolution: {integrity: sha512-Szj2QDgMsLx6/wso1Q+Ux6BlkEeLWWggVKY/+1wPlAY4ZYCXhNoTym5JNmrmq5kQgrVROr1SDcv07d71HDMLlg==} + version: 3.3.30 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-theming@2.0.4': - resolution: {integrity: sha512-mzIQi0JZIoq7g+i5J+13VdIJIKWeyJj2UnWKwriOnqPMi31vtQKhtdDXJbx7q/F0piuUyG87a0DneMjHP5bpYg==} - version: 2.0.4 + '@khanacademy/wonder-blocks-tabs@0.5.5': + resolution: {integrity: sha512-+YrwQBSNt7hILT0k9/lGuYRq70BtN3oUJTGtuk5x8bsYtlsX5LlgbcssM899EEO7u/rzwAKXMvjuir4vB6Hm8w==} + version: 0.5.5 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 - react-dom: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-timing@5.0.2': - resolution: {integrity: sha512-O7m8HQsZ2F2I7u+i5saCITpvntk6orr5uxEf0PEfks4yMc9H362Ir8akry6Nzed4GtBgf7ilUSinrUe2DD9yUw==} + '@khanacademy/wonder-blocks-theming@4.0.2': + resolution: {integrity: sha512-NmBNjjP4rsbdzmbBfqTzF+4ahyEokYwsiKnYqAL45EIBBEIXKSLWtTK4+z8k6F5O4EprFTE0qn3hQKEN5+WPhw==} + version: 4.0.2 peerDependencies: - react: 16.14.0 + aphrodite: ^1.2.5 + react: 18.2.0 + react-dom: 18.2.0 - '@khanacademy/wonder-blocks-tokens@1.3.0': - resolution: {integrity: sha512-vImubvBzSsinHLSbJAF61J15UjgE8hD207zVxCOuYszzKJk6bv0BMrRRCyq7/t61I04qEcXnE14HP0m5Vb4cYw==} + '@khanacademy/wonder-blocks-timing@7.0.4': + resolution: {integrity: sha512-o+H5ybKjqZrOuF97/WYjVj5TeYlgycCQVWSS0zQnnBfV23912kzMACLPP+KEWNOmbsIFYzIgqUJr5q6FQgLllw==} + peerDependencies: + react: 18.2.0 - '@khanacademy/wonder-blocks-tokens@2.1.0': - resolution: {integrity: sha512-L75zQkhFXlhYEcJGLXqUiZ5PUW5jDcLHMRGHZfTAAGjeMG2YzjVyb/QaW277MVSzmzdRTAppI4+aPYqeh23z0A==} + '@khanacademy/wonder-blocks-tokens@16.1.0': + resolution: {integrity: sha512-F536F/ew0DB5HFp/zbxjqRXK5gFL/u8NMdrEvm+HCoxRpIH0ApcZTEwTs0SzOm1/ZIiUxLUKBlo6NmDvl6mxmA==} + version: 16.1.0 + hasBin: true - '@khanacademy/wonder-blocks-tooltip@2.3.1': - resolution: {integrity: sha512-MDnPEN568yMRv8Uv/8gTelTGsZAwk1M2En0I753odfFMi8MPogRFCAGL2QWPjWMaz5b5cvCbIjDeb/SkTIbyjA==} - version: 2.3.1 + '@khanacademy/wonder-blocks-tooltip@4.1.68': + resolution: {integrity: sha512-Z2DPeiiwVE+I0mVEU5YvjHK5FuYG8FcRG36O4+SNaWKuQW4K0pC18QXT2G333DV1wVdD9nLKL/HTkP8Z6XyYQA==} + version: 4.1.68 peerDependencies: '@popperjs/core': ^2.10.1 aphrodite: ^1.2.5 - react: 16.14.0 - react-dom: 16.14.0 - react-popper: ^2.0.0 + react: 18.2.0 + react-dom: 18.2.0 + react-popper: ^2.3.0 - '@khanacademy/wonder-blocks-typography@2.1.11': - resolution: {integrity: sha512-4wLBXtPvmfUY/Ls+LxCPlKIrYBhU7Fqs1GztWTV9VVVZSDUq5ljkXyhQPE5gVfmoD26wh1TCCSmAgxou1ZTubw==} - version: 2.1.11 + '@khanacademy/wonder-blocks-typography@4.2.31': + resolution: {integrity: sha512-tV3I5Gb+C37xa6BjAUbz+cC76u+xFcmcZGI7xLjQF4f98iE16N2tbyrtc6y/PahbLikf0AflP62w1CMIzkiQLg==} + version: 4.2.31 peerDependencies: aphrodite: ^1.2.5 - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-typography@2.1.16': - resolution: {integrity: sha512-EQsox6pKVQemP1MoT3OYHsyzQOyQEJdKLTU3xPpuesf0HYZCYhsP9Ject8mcjyabnM11IKZ9JTcDrwGD9ZKUew==} - version: 2.1.16 - peerDependencies: - aphrodite: ^1.2.5 - react: 16.14.0 - - '@khanacademy/wonder-stuff-core@1.5.5': - resolution: {integrity: sha512-0OkhkjuM2zoS6k9Y8WPFGq0OL5WjgL8faOukM5P/wY7M9RC1q/oYCECg5YUf+OFfXenSHgBi2TmJ6cpT/F1how==} - engines: {node: '>=16'} + '@khanacademy/wonder-stuff-core@3.0.0': + resolution: {integrity: sha512-lkq28lY/z/Y4kEhYTMCrbG1ZsZUc0QVbBpz6xHC/4TMCdrwaN6PEeFX2mX4DVaE7bcwi3Y22ZXQmjdxnBpvc2A==} + engines: {node: '>=20'} '@leichtgewicht/ip-codec@2.0.5': resolution: {integrity: sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==} @@ -3369,6 +3355,10 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} + '@remix-run/router@1.23.2': + resolution: {integrity: sha512-Ic6m2U/rMjTkhERIa/0ZtXJP17QUi2CbWE7cqx4J58M8aA3QTfW+2UlQ4psvTX9IO1RfNVhK3pcpdjej7L+t2w==} + engines: {node: '>=14.0.0'} + '@rtsao/scc@1.1.0': resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} @@ -3477,6 +3467,9 @@ packages: '@swc/counter@0.1.3': resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + '@swc/helpers@0.5.18': + resolution: {integrity: sha512-TXTnIcNJQEKwThMMqBXsZ4VGAza6bvN4pa41Rkqoio6QBKMvo+5lexeTMScGCIxtzgQJzElcvIltani+adC5PQ==} + '@swc/types@0.1.26': resolution: {integrity: sha512-lyMwd7WGgG79RS7EERZV3T8wMdmPq3xwyg+1nmAM64kIhx5yl+juO2PYIHb7vTiPgPCj8LYjsNV2T5wiQHUEaw==} @@ -4836,9 +4829,6 @@ packages: typescript: optional: true - create-react-class@15.7.0: - resolution: {integrity: sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==} - cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} @@ -6032,6 +6022,9 @@ packages: history@4.10.1: resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==} + history@5.3.0: + resolution: {integrity: sha512-ZqaKwjjrAYUYfLG+htGaIIZ4nioX2L70ZUMIFysS3xvBsSG4x/n1V6TXV3N8ZYNuFGlDirFg32T7B6WOUPDYcQ==} + hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} @@ -6929,9 +6922,9 @@ packages: m3u8-parser@4.8.0: resolution: {integrity: sha512-UqA2a/Pw3liR6Df3gwxrqghCP17OpPlQj6RBPLYygf/ZSQ4MoSgvdvhvt35qV+3NaaA0FSZx93Ix+2brT1U7cA==} - mafs@0.18.5: - resolution: {integrity: sha512-QhipU2UfH3x/b07VRhSFTJJ+jA8fEgaIOhuIx6tgGkVmWK3awK7tGL49jeRx9sTYAQjbezdfKNoZS4+OBEvO1w==} - engines: {node: '>=18.0.0'} + mafs@0.19.0: + resolution: {integrity: sha512-mDHQhCbkIYjpuycY8mMV8O+o3ZOIGPgxliipcRE6aBGOXFvlwP2qvz9FQFdIr5W/BfcMY7CkgOqbPQJiKCr74w==} + engines: {node: '>=20'} peerDependencies: react: '>=18' react-dom: '>=18' @@ -6987,10 +6980,6 @@ packages: mathquill@0.10.1: resolution: {integrity: sha512-dGtVAUDyKIoS2BPYYgQK7aZAarKQB6oEEWItS5WKmMjYexPOVDm4vYL+I1puYiLvpD4auFUi2z8FeQZP4+FYOA==} - mathquill@https://codeload.github.com/Khan/mathquill/tar.gz/2060bab7813edde638c0af25920caa6ed73c2b13: - resolution: {tarball: https://codeload.github.com/Khan/mathquill/tar.gz/2060bab7813edde638c0af25920caa6ed73c2b13} - version: 0.10.1 - mdn-data@2.0.28: resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} @@ -7082,13 +7071,6 @@ packages: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} - mini-create-react-context@0.4.1: - resolution: {integrity: sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - peerDependencies: - prop-types: ^15.0.0 - react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - mini-css-extract-plugin@2.10.0: resolution: {integrity: sha512-540P2c5dYnJlyJxTaSloliZexv8rji6rY8FhQN+WF/82iHQfA23j/xtJx97L+mXOML27EqksSek/g4eK7jaL3g==} engines: {node: '>= 12.13.0'} @@ -7938,14 +7920,16 @@ packages: resolution: {integrity: sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==} engines: {node: '>= 0.8'} - react-addons-pure-render-mixin@15.6.3: - resolution: {integrity: sha512-e7F2OsLiyYGr9SHWHGlI/FfHRh+kbYx0hNfdN5zivHIf4vzeno7gsRJKXg71E35CpUCnre+JfM6UgWWgsvJBzA==} - react-dom@16.14.0: resolution: {integrity: sha512-1gCeQXDLoIqMgqD3IO2Ah9bnf0w9kzhwN5q4FGnHZ67hBm9yePzB5JJAIQCc8x3pFnNlwFq4RidZggNAAkzWWw==} peerDependencies: react: ^16.14.0 + react-dom@18.2.0: + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} @@ -7965,16 +7949,30 @@ packages: react: ^16.8.0 || ^17 || ^18 react-dom: ^16.8.0 || ^17 || ^18 - react-router-dom@5.3.0: - resolution: {integrity: sha512-ObVBLjUZsphUUMVycibxgMdh5jJ1e3o+KpAZBVeHcNQZ4W+uUGGWsokurzlF4YOldQYRQL4y6yFRWM4m3svmuQ==} + react-router-dom-v5-compat@6.30.3: + resolution: {integrity: sha512-WWZtwGYyoaeUDNrhzzDkh4JvN5nU0MIz80Dxim6pznQrfS+dv0mvtVoHTA6HlUl/OiJl7WWjbsQwjTnYXejEHg==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-dom: '>=16.8' + react-router-dom: 4 || 5 + + react-router-dom@5.3.4: + resolution: {integrity: sha512-m4EqFMHv/Ih4kpcBCONHbkT68KoAeHN4p3lAGoNryfHi0dMy0kCzEZakiKRsvg5wHZ/JLrLW8o8KomWiz/qbYQ==} peerDependencies: react: '>=15' - react-router@5.2.1: - resolution: {integrity: sha512-lIboRiOtDLFdg1VTemMwud9vRVuOCZmUIT/7lUoZiSpPODiiH1UQlfXy+vPLC/7IWdFYnhRwAyNqA/+I7wnvKQ==} + react-router@5.3.4: + resolution: {integrity: sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA==} peerDependencies: react: '>=15' + react-router@6.30.3: + resolution: {integrity: sha512-XRnlbKMTmktBkjCLE8/XcZFlnHvr2Ltdr1eJX4idL55/9BbORzyZEaIkBFDhFGCEWBBItsVrDxwx3gnisMitdw==} + engines: {node: '>=14.0.0'} + peerDependencies: + react: '>=16.8' + react-transition-group@4.4.5: resolution: {integrity: sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==} peerDependencies: @@ -7992,6 +7990,10 @@ packages: resolution: {integrity: sha512-0X2CImDkJGApiAlcf0ODKIneSwBPhqJawOa5wCtKbu7ZECrmS26NvtSILynQ66cgkT/RJ4LidJOc3bUESwmU8g==} engines: {node: '>=0.10.0'} + react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -8249,6 +8251,9 @@ packages: scheduler@0.19.1: resolution: {integrity: sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==} + scheduler@0.23.2: + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} + schema-utils@3.3.0: resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} engines: {node: '>= 10.13.0'} @@ -8823,6 +8828,9 @@ packages: tiny-emitter@2.1.0: resolution: {integrity: sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==} + tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -9105,6 +9113,10 @@ packages: resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==} engines: {node: '>= 0.4.0'} + uuid@10.0.0: + resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} + hasBin: true + uuid@11.1.0: resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true @@ -9545,12 +9557,6 @@ snapshots: dependencies: '@babel/highlight': 7.25.9 - '@babel/code-frame@7.28.6': - dependencies: - '@babel/helper-validator-identifier': 7.28.5 - js-tokens: 4.0.0 - picocolors: 1.1.1 - '@babel/code-frame@7.29.0': dependencies: '@babel/helper-validator-identifier': 7.28.5 @@ -10389,10 +10395,10 @@ snapshots: '@babel/traverse@7.28.6': dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.29.0 '@babel/generator': 7.28.6 '@babel/helper-globals': 7.28.0 - '@babel/parser': 7.28.6 + '@babel/parser': 7.29.2 '@babel/template': 7.28.6 '@babel/types': 7.29.0 debug: 4.4.3 @@ -10977,538 +10983,573 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@khanacademy/kas@0.3.16(underscore@1.13.8)': + '@khanacademy/kas@2.1.8(underscore@1.13.8)': dependencies: - '@khanacademy/perseus-core': 1.5.3 + '@khanacademy/perseus-utils': 2.1.4 underscore: 1.13.8 - '@khanacademy/kmath@0.1.24(underscore@1.13.8)': + '@khanacademy/keypad-context@3.2.37(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8)': dependencies: - '@khanacademy/perseus-core': 3.0.5 - underscore: 1.13.8 + '@khanacademy/perseus-core': 23.5.0(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + react: 18.2.0 + transitivePeerDependencies: + - '@khanacademy/wonder-stuff-core' + - react-dom + - underscore - '@khanacademy/math-input@19.2.1(0da84ede4a3ed570c5512d4c418e5ad7)': + '@khanacademy/kmath@2.2.37(@khanacademy/wonder-stuff-core@3.0.0)(jquery@2.2.4)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8)': dependencies: - '@khanacademy/mathjax-renderer': 2.2.1 - '@khanacademy/perseus-core': 1.5.0 - '@khanacademy/wonder-blocks-clickable': 4.2.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-popover': 3.2.2(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-timing': 5.0.2(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-stuff-core': 1.5.5 + '@khanacademy/perseus-core': 23.5.0(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-utils': 2.1.4 + jquery: 2.2.4 + underscore: 1.13.8 + transitivePeerDependencies: + - '@khanacademy/wonder-stuff-core' + - react + - react-dom + + '@khanacademy/math-input@26.4.6(8ea3c2b28fd28df4213c0d248ed03fc5)': + dependencies: + '@khanacademy/keypad-context': 3.2.37(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/mathjax-renderer': 3.0.2 + '@khanacademy/perseus-core': 23.5.0(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-utils': 2.1.4 + '@khanacademy/wonder-blocks-clickable': 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon-button': 11.1.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-popover': 6.1.55(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tabs': 0.5.5(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react-window@1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-timing': 7.0.4(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-stuff-core': 3.0.0 '@phosphor-icons/core': 2.1.1 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - jquery: 2.2.4 - katex: 0.16.27 - mathquill: https://codeload.github.com/Khan/mathquill/tar.gz/2060bab7813edde638c0af25920caa6ed73c2b13 prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-router: 5.2.1(react@16.14.0) - react-router-dom: 5.3.0(react@16.14.0) - react-transition-group: 4.4.5(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-transition-group: 4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + transitivePeerDependencies: + - underscore - '@khanacademy/mathjax-renderer@2.2.1': + '@khanacademy/mathjax-renderer@3.0.2': dependencies: mathjax-full: 3.2.2 mu-lambda: 0.0.3 - '@khanacademy/perseus-core@1.4.2': {} - - '@khanacademy/perseus-core@1.5.0': {} - - '@khanacademy/perseus-core@1.5.3': {} - - '@khanacademy/perseus-core@3.0.5': {} - - '@khanacademy/perseus-core@3.7.0': {} + '@khanacademy/perseus-core@23.5.0(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8)': + dependencies: + '@khanacademy/kas': 2.1.8(underscore@1.13.8) + '@khanacademy/perseus-utils': 2.1.4 + '@khanacademy/pure-markdown': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-stuff-core': 3.0.0 + tiny-invariant: 1.3.1 + underscore: 1.13.8 + transitivePeerDependencies: + - react + - react-dom - '@khanacademy/perseus-error@0.3.0(@khanacademy/wonder-stuff-core@1.5.5)': + '@khanacademy/perseus-linter@4.8.5(@khanacademy/wonder-stuff-core@3.0.0)(jquery@2.2.4)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8)': dependencies: - '@khanacademy/perseus-core': 1.4.2 - '@khanacademy/wonder-stuff-core': 1.5.5 + '@khanacademy/kas': 2.1.8(underscore@1.13.8) + '@khanacademy/kmath': 2.2.37(@khanacademy/wonder-stuff-core@3.0.0)(jquery@2.2.4)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-core': 23.5.0(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-utils': 2.1.4 + '@khanacademy/pure-markdown': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + transitivePeerDependencies: + - '@khanacademy/wonder-stuff-core' + - jquery + - react + - react-dom + - underscore - '@khanacademy/perseus-linter@0.4.0(@khanacademy/wonder-stuff-core@1.5.5)(prop-types@15.8.1)': + '@khanacademy/perseus-score@8.2.14(@khanacademy/wonder-stuff-core@3.0.0)(jquery@2.2.4)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8)': dependencies: - '@khanacademy/perseus-core': 1.4.2 - '@khanacademy/perseus-error': 0.3.0(@khanacademy/wonder-stuff-core@1.5.5) - prop-types: 15.8.1 + '@khanacademy/kas': 2.1.8(underscore@1.13.8) + '@khanacademy/kmath': 2.2.37(@khanacademy/wonder-stuff-core@3.0.0)(jquery@2.2.4)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-core': 23.5.0(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-utils': 2.1.4 + underscore: 1.13.8 transitivePeerDependencies: - '@khanacademy/wonder-stuff-core' + - jquery + - react + - react-dom - '@khanacademy/perseus@22.7.0(9b7a5d954d98b63e038e3920e7bdcdae)': - dependencies: - '@khanacademy/kas': 0.3.16(underscore@1.13.8) - '@khanacademy/kmath': 0.1.24(underscore@1.13.8) - '@khanacademy/math-input': 19.2.1(0da84ede4a3ed570c5512d4c418e5ad7) - '@khanacademy/perseus-core': 1.4.2 - '@khanacademy/perseus-linter': 0.4.0(@khanacademy/wonder-stuff-core@1.5.5)(prop-types@15.8.1) - '@khanacademy/pure-markdown': 0.3.27(react-dom@16.14.0(react@16.14.0))(react@16.14.0) - '@khanacademy/simple-markdown': 0.11.4(react-dom@16.14.0(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-banner': 3.0.42(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-button': 6.3.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-clickable': 4.2.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-data': 13.0.7(@khanacademy/wonder-stuff-core@1.5.5)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-dropdown': 5.3.0(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react-window@1.8.11(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-form': 4.5.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.1.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-layout': 2.0.32(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-link': 6.1.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-pill': 2.2.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-popover': 3.2.2(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-progress-spinner': 2.1.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-switch': 1.1.16(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-blocks-tooltip': 2.3.1(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-typography': 2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-stuff-core': 1.5.5 + '@khanacademy/perseus-utils@2.1.4': {} + + '@khanacademy/perseus@75.7.1(844523cd7c0821eabefa898d797776ce)': + dependencies: + '@khanacademy/kas': 2.1.8(underscore@1.13.8) + '@khanacademy/keypad-context': 3.2.37(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/kmath': 2.2.37(@khanacademy/wonder-stuff-core@3.0.0)(jquery@2.2.4)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/math-input': 26.4.6(8ea3c2b28fd28df4213c0d248ed03fc5) + '@khanacademy/perseus-core': 23.5.0(@khanacademy/wonder-stuff-core@3.0.0)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-linter': 4.8.5(@khanacademy/wonder-stuff-core@3.0.0)(jquery@2.2.4)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-score': 8.2.14(@khanacademy/wonder-stuff-core@3.0.0)(jquery@2.2.4)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)(underscore@1.13.8) + '@khanacademy/perseus-utils': 2.1.4 + '@khanacademy/pure-markdown': 2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/simple-markdown': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-announcer': 1.0.6(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-banner': 5.0.18(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-button': 11.4.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-clickable': 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-data': 15.0.1(@khanacademy/wonder-stuff-core@3.0.0)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-dropdown': 10.8.2(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react-window@1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-form': 7.5.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon-button': 11.1.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-labeled-field': 4.0.16(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-layout': 3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-link': 10.1.7(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-modal': 8.5.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-pill': 3.1.57(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-popover': 6.1.55(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-progress-spinner': 3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-switch': 3.3.30(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-timing': 7.0.4(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tooltip': 4.1.68(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-stuff-core': 3.0.0 '@phosphor-icons/core': 2.1.1 '@popperjs/core': 2.11.8 + '@swc/helpers': 0.5.18 + '@use-gesture/react': 10.3.1(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 classnames: 1.2.2 - create-react-class: 15.7.0 - intersection-observer: 0.12.2 jquery: 2.2.4 - lodash.debounce: 4.0.8 - mafs: 0.18.5(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + mafs: 0.19.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + tiny-invariant: 1.3.1 underscore: 1.13.8 + uuid: 10.0.0 transitivePeerDependencies: - '@khanacademy/mathjax-renderer' - - '@khanacademy/wonder-blocks-timing' - - katex - - react-router - - react-router-dom + - '@khanacademy/wonder-blocks-tabs' - react-transition-group - '@khanacademy/pure-markdown@0.3.27(react-dom@16.14.0(react@16.14.0))(react@16.14.0)': + '@khanacademy/pure-markdown@2.2.6(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@khanacademy/perseus-core': 3.7.0 - '@khanacademy/simple-markdown': 0.13.20(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + '@khanacademy/perseus-utils': 2.1.4 + '@khanacademy/simple-markdown': 2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - react - react-dom - '@khanacademy/simple-markdown@0.11.4(react-dom@16.14.0(react@16.14.0))(react@16.14.0)': + '@khanacademy/simple-markdown@2.2.1(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@khanacademy/perseus-core': 1.4.2 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) + '@khanacademy/perseus-utils': 2.1.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@khanacademy/simple-markdown@0.13.20(react-dom@16.14.0(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-announcer@1.0.6(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@khanacademy/perseus-core': 3.7.0 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 + react: 18.2.0 + transitivePeerDependencies: + - react-dom + - react-router + - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-banner@3.0.42(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-banner@5.0.18(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-button': 6.3.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.1.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon-button': 5.6.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-link': 6.1.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-blocks-typography': 2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-button': 11.4.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon-button': 11.1.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-link': 10.1.7(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@phosphor-icons/core': 2.1.1 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-breadcrumbs@2.2.8(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-breadcrumbs@3.2.13(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 2.1.0 + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-button@6.3.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-button@11.4.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-clickable': 4.2.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.1.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-progress-spinner': 2.1.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-theming': 2.0.4(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-blocks-typography': 2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-clickable': 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-progress-spinner': 3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-styles': 0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-router: 5.2.1(react@16.14.0) - react-router-dom: 5.3.0(react@16.14.0) + react: 18.2.0 + react-router: 5.3.4(react@18.2.0) + react-router-dom: 5.3.4(react@18.2.0) + react-router-dom-v5-compat: 6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - '@phosphor-icons/core' - react-dom - '@khanacademy/wonder-blocks-cell@3.4.6(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-cell@6.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-clickable': 4.2.9(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-layout': 2.2.2(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 2.1.0 - '@khanacademy/wonder-blocks-typography': 2.1.16(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-clickable': 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-styles': 0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-clickable@4.2.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': - dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-router: 5.2.1(react@16.14.0) - react-router-dom: 5.3.0(react@16.14.0) - - '@khanacademy/wonder-blocks-clickable@4.2.9(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-clickable@8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 2.1.0 + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-router: 5.2.1(react@16.14.0) - react-router-dom: 5.3.0(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 5.3.4(react@18.2.0) + react-router-dom: 5.3.4(react@18.2.0) + react-router-dom-v5-compat: 6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0) - '@khanacademy/wonder-blocks-core@6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-core@12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-router: 5.2.1(react@16.14.0) - react-router-dom: 5.3.0(react@16.14.0) - - '@khanacademy/wonder-blocks-core@7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': - dependencies: - '@babel/runtime': 7.29.2 - aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-router: 5.2.1(react@16.14.0) - react-router-dom: 5.3.0(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 5.3.4(react@18.2.0) + react-router-dom: 5.3.4(react@18.2.0) + react-router-dom-v5-compat: 6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0) - '@khanacademy/wonder-blocks-data@13.0.7(@khanacademy/wonder-stuff-core@1.5.5)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-data@15.0.1(@khanacademy/wonder-stuff-core@3.0.0)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-stuff-core': 1.5.5 - react: 16.14.0 + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-stuff-core': 3.0.0 + react: 18.2.0 transitivePeerDependencies: - aphrodite - react-dom - react-router - react-router-dom - - '@khanacademy/wonder-blocks-dropdown@5.3.0(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react-window@1.8.11(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react@16.14.0)': - dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-cell': 3.4.6(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-clickable': 4.2.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.1.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-layout': 2.0.32(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-modal': 5.1.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-search-field': 2.3.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-timing': 5.0.2(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-blocks-typography': 2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + - react-router-dom-v5-compat + + '@khanacademy/wonder-blocks-dropdown@10.8.2(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react-window@1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': + dependencies: + '@khanacademy/wonder-blocks-announcer': 1.0.6(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-cell': 6.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-clickable': 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-form': 7.5.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon-button': 11.1.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-modal': 8.5.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-pill': 3.1.57(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-search-field': 5.1.63(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-styles': 0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-timing': 7.0.4(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@phosphor-icons/core': 2.1.1 '@popperjs/core': 2.11.8 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0) - react-router: 5.2.1(react@16.14.0) - react-router-dom: 5.3.0(react@16.14.0) - react-window: 1.8.11(react-dom@16.14.0(react@16.14.0))(react@16.14.0) - - '@khanacademy/wonder-blocks-form@4.11.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': - dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-clickable': 4.2.9(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.2.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-layout': 2.2.2(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 2.1.0 - '@khanacademy/wonder-blocks-typography': 2.1.16(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + react-router: 5.3.4(react@18.2.0) + react-router-dom: 5.3.4(react@18.2.0) + react-router-dom-v5-compat: 6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0) + react-window: 1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + + '@khanacademy/wonder-blocks-form@7.5.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': + dependencies: + '@khanacademy/wonder-blocks-clickable': 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-layout': 3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@phosphor-icons/core': 2.1.1 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: - - '@phosphor-icons/core' - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-form@4.5.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-icon-button@11.1.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-clickable': 4.2.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.1.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-layout': 2.0.32(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-blocks-typography': 2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-clickable': 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-styles': 0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-theming': 4.0.2(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 + react-router: 5.3.4(react@18.2.0) + react-router-dom: 5.3.4(react@18.2.0) + react-router-dom-v5-compat: 6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - '@phosphor-icons/core' - react-dom - - react-router - - react-router-dom - '@khanacademy/wonder-blocks-icon-button@5.6.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-icon@5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-clickable': 4.2.9(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.2.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-theming': 2.0.4(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 2.1.0 + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@phosphor-icons/core': 2.1.1 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-router: 5.2.1(react@16.14.0) - react-router-dom: 5.3.0(react@16.14.0) + react: 18.2.0 transitivePeerDependencies: - - '@phosphor-icons/core' - react-dom + - react-router + - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-icon@4.1.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-labeled-field@4.0.16(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-layout': 3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@phosphor-icons/core': 2.1.1 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-icon@4.2.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-layout@3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@phosphor-icons/core': 2.1.1 + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-layout@2.0.32(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-link@10.1.7(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 + '@khanacademy/wonder-blocks-clickable': 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-styles': 0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@phosphor-icons/core': 2.1.1 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 + react-router: 5.3.4(react@18.2.0) + react-router-dom: 5.3.4(react@18.2.0) + react-router-dom-v5-compat: 6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - react-dom - - react-router - - react-router-dom - '@khanacademy/wonder-blocks-layout@2.2.2(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-modal@8.5.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 2.1.0 + '@khanacademy/wonder-blocks-breadcrumbs': 3.2.13(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon-button': 11.1.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-layout': 3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-styles': 0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-timing': 7.0.4(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@phosphor-icons/core': 2.1.1 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) transitivePeerDependencies: - - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-link@6.1.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-pill@3.1.57(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-clickable': 4.2.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.1.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 + '@khanacademy/wonder-blocks-clickable': 8.1.5(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-link': 10.1.7(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-styles': 0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-router: 5.2.1(react@16.14.0) - react-router-dom: 5.3.0(react@16.14.0) + react: 18.2.0 transitivePeerDependencies: - '@phosphor-icons/core' - react-dom + - react-router + - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-modal@5.1.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-popover@6.1.55(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-breadcrumbs': 2.2.8(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon-button': 5.6.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-layout': 2.2.2(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-theming': 2.0.4(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-timing': 5.0.2(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 2.1.0 - '@khanacademy/wonder-blocks-typography': 2.1.16(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon-button': 11.1.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-modal': 8.5.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-styles': 0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tooltip': 4.1.68(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@phosphor-icons/core': 2.1.1 + '@popperjs/core': 2.11.8 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-pill@2.2.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-progress-spinner@3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@khanacademy/wonder-blocks-clickable': 4.2.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-link': 6.1.1(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-blocks-typography': 2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: - - '@phosphor-icons/core' - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-popover@3.2.2(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-search-field@5.1.63(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon-button': 5.6.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-modal': 5.1.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-blocks-tooltip': 2.3.1(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-typography': 2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-form': 7.5.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon-button': 11.1.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) '@phosphor-icons/core': 2.1.1 - '@popperjs/core': 2.11.8 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + react: 18.2.0 transitivePeerDependencies: + - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-progress-spinner@2.1.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-styles@0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) transitivePeerDependencies: + - aphrodite + - react - react-dom - - react-router - - react-router-dom - '@khanacademy/wonder-blocks-search-field@2.3.6(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-switch@3.3.30(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-form': 4.11.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.2.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon-button': 5.6.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 2.1.0 - '@khanacademy/wonder-blocks-typography': 2.1.16(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@phosphor-icons/core': 2.1.1 + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-styles': 0.2.40(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-theming': 4.0.2(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: + - '@phosphor-icons/core' - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-switch@1.1.16(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-tabs@0.5.5(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react-window@1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-icon': 4.1.0(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-theming': 2.0.4(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 + '@khanacademy/wonder-blocks-button': 11.4.2(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-dropdown': 10.8.2(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react-window@1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-icon': 5.3.9(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-link': 10.1.7(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@phosphor-icons/core': 2.1.1 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: - - '@phosphor-icons/core' + - '@popperjs/core' - react-dom + - react-popper - react-router - react-router-dom + - react-router-dom-v5-compat + - react-window - '@khanacademy/wonder-blocks-theming@2.0.4(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-theming@4.0.2(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - '@khanacademy/wonder-blocks-timing@5.0.2(react@16.14.0)': + '@khanacademy/wonder-blocks-timing@7.0.4(react@18.2.0)': dependencies: - react: 16.14.0 + react: 18.2.0 - '@khanacademy/wonder-blocks-tokens@1.3.0': {} - - '@khanacademy/wonder-blocks-tokens@2.1.0': {} - - '@khanacademy/wonder-blocks-tooltip@2.3.1(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-tokens@16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-layout': 2.0.32(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-modal': 5.1.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@khanacademy/wonder-blocks-tokens': 1.3.0 - '@khanacademy/wonder-blocks-typography': 2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) - '@popperjs/core': 2.11.8 - aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-theming': 4.0.2(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - - '@phosphor-icons/core' - - react-router - - react-router-dom + - aphrodite + - react + - react-dom - '@khanacademy/wonder-blocks-typography@2.1.11(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-tooltip@4.1.68(@phosphor-icons/core@2.1.1)(@popperjs/core@2.11.8)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 6.4.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-layout': 3.1.46(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-modal': 8.5.17(@phosphor-icons/core@2.1.1)(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-typography': 4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@popperjs/core': 2.11.8 aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-popper: 2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) transitivePeerDependencies: - - react-dom + - '@phosphor-icons/core' - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-blocks-typography@2.1.16(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0)': + '@khanacademy/wonder-blocks-typography@4.2.31(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0)': dependencies: - '@babel/runtime': 7.29.2 - '@khanacademy/wonder-blocks-core': 7.0.1(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@16.14.0(react@16.14.0))(react-router-dom@5.3.0(react@16.14.0))(react-router@5.2.1(react@16.14.0))(react@16.14.0) + '@khanacademy/wonder-blocks-core': 12.4.3(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react-router@5.3.4(react@18.2.0))(react@18.2.0) + '@khanacademy/wonder-blocks-tokens': 16.1.0(aphrodite@https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32)(react-dom@18.2.0(react@18.2.0))(react@18.2.0) aphrodite: https://codeload.github.com/learningequality/aphrodite/tar.gz/fdc8d7be8912a5cf17f74ff10f124013c52c3e32 - react: 16.14.0 + react: 18.2.0 transitivePeerDependencies: - react-dom - react-router - react-router-dom + - react-router-dom-v5-compat - '@khanacademy/wonder-stuff-core@1.5.5': {} + '@khanacademy/wonder-stuff-core@3.0.0': {} '@leichtgewicht/ip-codec@2.0.5': {} @@ -11660,6 +11701,8 @@ snapshots: '@popperjs/core@2.11.8': {} + '@remix-run/router@1.23.2': {} + '@rtsao/scc@1.1.0': {} '@shopify/draggable@1.0.0-beta.8': {} @@ -11712,7 +11755,7 @@ snapshots: '@swc/core-win32-x64-msvc@1.15.24': optional: true - '@swc/core@1.15.24': + '@swc/core@1.15.24(@swc/helpers@0.5.18)': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.26 @@ -11729,9 +11772,14 @@ snapshots: '@swc/core-win32-arm64-msvc': 1.15.24 '@swc/core-win32-ia32-msvc': 1.15.24 '@swc/core-win32-x64-msvc': 1.15.24 + '@swc/helpers': 0.5.18 '@swc/counter@0.1.3': {} + '@swc/helpers@0.5.18': + dependencies: + tslib: 2.8.1 + '@swc/types@0.1.26': dependencies: '@swc/counter': 0.1.3 @@ -11781,7 +11829,7 @@ snapshots: '@types/babel__core@7.20.5': dependencies: - '@babel/parser': 7.28.6 + '@babel/parser': 7.29.2 '@babel/types': 7.28.6 '@types/babel__generator': 7.27.0 '@types/babel__template': 7.4.4 @@ -11793,7 +11841,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.6 + '@babel/parser': 7.29.2 '@babel/types': 7.29.0 '@types/babel__traverse@7.28.0': @@ -12067,10 +12115,10 @@ snapshots: '@use-gesture/core@10.3.1': {} - '@use-gesture/react@10.3.1(react@16.14.0)': + '@use-gesture/react@10.3.1(react@18.2.0)': dependencies: '@use-gesture/core': 10.3.1 - react: 16.14.0 + react: 18.2.0 '@videojs/http-streaming@2.16.3(video.js@7.21.7)': dependencies: @@ -13196,11 +13244,6 @@ snapshots: optionalDependencies: typescript: 5.9.3 - create-react-class@15.7.0: - dependencies: - loose-envify: 1.4.0 - object-assign: 4.1.1 - cross-spawn@7.0.6: dependencies: path-key: 3.1.1 @@ -13231,7 +13274,7 @@ snapshots: postcss-value-parser: 4.2.0 semver: 7.7.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) css-loader@7.1.2(webpack@5.106.2(postcss@8.5.6)): dependencies: @@ -13264,7 +13307,7 @@ snapshots: postcss: 8.5.6 schema-utils: 4.3.3 serialize-javascript: 6.0.2 - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) css-select@4.3.0: dependencies: @@ -14593,6 +14636,10 @@ snapshots: tiny-warning: 1.0.3 value-equal: 1.0.1 + history@5.3.0: + dependencies: + '@babel/runtime': 7.29.2 + hoist-non-react-statics@3.3.2: dependencies: react-is: 16.13.1 @@ -15031,7 +15078,7 @@ snapshots: istanbul-lib-instrument@6.0.3: dependencies: '@babel/core': 7.29.0 - '@babel/parser': 7.28.6 + '@babel/parser': 7.29.2 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.7.3 @@ -15286,7 +15333,7 @@ snapshots: jest-message-util@30.2.0: dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.29.0 '@jest/types': 30.2.0 '@types/stack-utils': 2.0.3 chalk: 4.1.2 @@ -15788,15 +15835,15 @@ snapshots: '@videojs/vhs-utils': 3.0.5 global: 4.4.0 - mafs@0.18.5(react-dom@16.14.0(react@16.14.0))(react@16.14.0): + mafs@0.19.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: - '@use-gesture/react': 10.3.1(react@16.14.0) + '@use-gesture/react': 10.3.1(react@18.2.0) computer-modern: 0.1.3 katex: 0.16.27 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) tiny-invariant: 1.3.3 - use-resize-observer: 9.1.0(react-dom@16.14.0(react@16.14.0))(react@16.14.0) + use-resize-observer: 9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0) make-dir@2.1.0: dependencies: @@ -15887,8 +15934,6 @@ snapshots: dependencies: jquery: 1.12.4 - mathquill@https://codeload.github.com/Khan/mathquill/tar.gz/2060bab7813edde638c0af25920caa6ed73c2b13: {} - mdn-data@2.0.28: {} mdn-data@2.0.30: {} @@ -15991,18 +16036,11 @@ snapshots: min-indent@1.0.1: {} - mini-create-react-context@0.4.1(prop-types@15.8.1)(react@16.14.0): - dependencies: - '@babel/runtime': 7.29.2 - prop-types: 15.8.1 - react: 16.14.0 - tiny-warning: 1.0.3 - mini-css-extract-plugin@2.10.0(webpack@5.104.1): dependencies: schema-utils: 4.3.3 tapable: 2.3.0 - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) mini-css-extract-plugin@2.10.0(webpack@5.106.2(postcss@8.5.6)): dependencies: @@ -16385,7 +16423,7 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.28.6 + '@babel/code-frame': 7.29.0 error-ex: 1.3.4 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -16531,7 +16569,7 @@ snapshots: postcss: 8.5.6 semver: 7.7.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) transitivePeerDependencies: - typescript @@ -16844,10 +16882,6 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 - react-addons-pure-render-mixin@15.6.3: - dependencies: - object-assign: 4.1.1 - react-dom@16.14.0(react@16.14.0): dependencies: loose-envify: 1.4.0 @@ -16855,6 +16889,13 @@ snapshots: prop-types: 15.8.1 react: 16.14.0 scheduler: 0.19.1 + optional: true + + react-dom@18.2.0(react@18.2.0): + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.2 react-fast-compare@3.2.2: {} @@ -16864,60 +16905,78 @@ snapshots: react-is@18.3.1: {} - react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@16.14.0(react@16.14.0))(react@16.14.0): + react-popper@2.3.0(@popperjs/core@2.11.8)(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@popperjs/core': 2.11.8 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) react-fast-compare: 3.2.2 warning: 4.0.3 - react-router-dom@5.3.0(react@16.14.0): + react-router-dom-v5-compat@6.30.3(react-dom@18.2.0(react@18.2.0))(react-router-dom@5.3.4(react@18.2.0))(react@18.2.0): + dependencies: + '@remix-run/router': 1.23.2 + history: 5.3.0 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-router: 6.30.3(react@18.2.0) + react-router-dom: 5.3.4(react@18.2.0) + + react-router-dom@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.29.2 history: 4.10.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 16.14.0 - react-router: 5.2.1(react@16.14.0) + react: 18.2.0 + react-router: 5.3.4(react@18.2.0) tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-router@5.2.1(react@16.14.0): + react-router@5.3.4(react@18.2.0): dependencies: '@babel/runtime': 7.29.2 history: 4.10.1 hoist-non-react-statics: 3.3.2 loose-envify: 1.4.0 - mini-create-react-context: 0.4.1(prop-types@15.8.1)(react@16.14.0) path-to-regexp: 1.9.0 prop-types: 15.8.1 - react: 16.14.0 + react: 18.2.0 react-is: 16.13.1 tiny-invariant: 1.3.3 tiny-warning: 1.0.3 - react-transition-group@4.4.5(react-dom@16.14.0(react@16.14.0))(react@16.14.0): + react-router@6.30.3(react@18.2.0): + dependencies: + '@remix-run/router': 1.23.2 + react: 18.2.0 + + react-transition-group@4.4.5(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.29.2 dom-helpers: 5.2.1 loose-envify: 1.4.0 prop-types: 15.8.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) - react-window@1.8.11(react-dom@16.14.0(react@16.14.0))(react@16.14.0): + react-window@1.8.11(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@babel/runtime': 7.29.2 memoize-one: 5.2.1 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) react@16.14.0: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 prop-types: 15.8.1 + optional: true + + react@18.2.0: + dependencies: + loose-envify: 1.4.0 read-pkg-up@7.0.1: dependencies: @@ -17175,7 +17234,7 @@ snapshots: neo-async: 2.6.2 optionalDependencies: node-sass: 9.0.0 - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) sass-loader@16.0.7(node-sass@9.0.0)(webpack@5.106.2(postcss@8.5.6)): dependencies: @@ -17194,6 +17253,11 @@ snapshots: dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 + optional: true + + scheduler@0.23.2: + dependencies: + loose-envify: 1.4.0 schema-utils@3.3.0: dependencies: @@ -17580,7 +17644,7 @@ snapshots: style-loader@4.0.0(webpack@5.104.1): dependencies: - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) style-loader@4.0.0(webpack@5.106.2(postcss@8.5.6)): dependencies: @@ -17748,11 +17812,11 @@ snapshots: picocolors: 1.1.1 sax: 1.4.4 - swc-loader@0.2.7(@swc/core@1.15.24)(webpack@5.104.1): + swc-loader@0.2.7(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack@5.104.1): dependencies: - '@swc/core': 1.15.24 + '@swc/core': 1.15.24(@swc/helpers@0.5.18) '@swc/counter': 0.1.3 - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) symbol-tree@3.2.4: {} @@ -17793,16 +17857,16 @@ snapshots: dependencies: rimraf: 2.6.3 - terser-webpack-plugin@5.3.16(@swc/core@1.15.24)(webpack@5.104.1): + terser-webpack-plugin@5.3.16(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack@5.104.1): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 serialize-javascript: 6.0.2 terser: 5.46.0 - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) optionalDependencies: - '@swc/core': 1.15.24 + '@swc/core': 1.15.24(@swc/helpers@0.5.18) terser-webpack-plugin@5.3.16(webpack@5.104.1): dependencies: @@ -17871,6 +17935,8 @@ snapshots: tiny-emitter@2.1.0: {} + tiny-invariant@1.3.1: {} + tiny-invariant@1.3.3: {} tiny-warning@1.0.3: {} @@ -18122,7 +18188,7 @@ snapshots: loader-utils: 2.0.4 mime-types: 2.1.35 schema-utils: 3.3.0 - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) url-loader@4.1.1(webpack@5.106.2(postcss@8.5.6)): dependencies: @@ -18140,11 +18206,11 @@ snapshots: punycode: 1.4.1 qs: 6.15.1 - use-resize-observer@9.1.0(react-dom@16.14.0(react@16.14.0))(react@16.14.0): + use-resize-observer@9.1.0(react-dom@18.2.0(react@18.2.0))(react@18.2.0): dependencies: '@juggle/resize-observer': 3.4.0 - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) utf8-byte-length@1.0.5: {} @@ -18154,6 +18220,8 @@ snapshots: utils-merge@1.0.1: {} + uuid@10.0.0: {} + uuid@11.1.0: {} uuid@13.0.0: {} @@ -18258,7 +18326,7 @@ snapshots: loader-utils: 1.4.2 vue-hot-reload-api: 2.3.4 vue-style-loader: 4.1.3 - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) optionalDependencies: vue-template-compiler: 2.7.16 transitivePeerDependencies: @@ -18489,7 +18557,7 @@ snapshots: import-local: 3.2.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) webpack-merge: 6.0.1 optionalDependencies: webpack-dev-server: 5.2.4(tslib@2.8.1)(webpack-cli@7.0.2)(webpack@5.104.1) @@ -18503,7 +18571,7 @@ snapshots: range-parser: 1.2.1 schema-utils: 4.3.3 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) transitivePeerDependencies: - tslib @@ -18538,7 +18606,7 @@ snapshots: webpack-dev-middleware: 7.4.5(tslib@2.8.1)(webpack@5.104.1) ws: 8.20.0 optionalDependencies: - webpack: 5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2) + webpack: 5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2) webpack-cli: 7.0.2(webpack-dev-server@5.2.4)(webpack@5.104.1) transitivePeerDependencies: - bufferutil @@ -18589,7 +18657,7 @@ snapshots: - esbuild - uglify-js - webpack@5.104.1(@swc/core@1.15.24)(webpack-cli@7.0.2): + webpack@5.104.1(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack-cli@7.0.2): dependencies: '@types/eslint-scope': 3.7.7 '@types/estree': 1.0.8 @@ -18613,7 +18681,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.0 - terser-webpack-plugin: 5.3.16(@swc/core@1.15.24)(webpack@5.104.1) + terser-webpack-plugin: 5.3.16(@swc/core@1.15.24(@swc/helpers@0.5.18))(webpack@5.104.1) watchpack: 2.5.1 webpack-sources: 3.3.3 optionalDependencies: From d55efb994a512e6ace0cf3e0c97e6fbb5e0232e1 Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Thu, 12 Mar 2026 20:36:03 -0700 Subject: [PATCH 02/10] Replace KaTeX/MathJax hybrid with @khanacademy/mathjax-renderer The old Tex.js used a complex KaTeX-first, MathJax-fallback approach that loaded MathJax 2.1 via script injection and maintained a custom render queue. Perseus now ships @khanacademy/mathjax-renderer which uses MathJax 3 with CHTML output and handles all math rendering natively. This replaces the entire vendored implementation with a thin wrapper around MathJaxRenderer, and copies the required MathJax WOFF fonts to core static assets at build time. Co-Authored-By: Claude Opus 4.6 --- kolibri/plugins/perseus_viewer/.gitignore | 6 +- .../perseus_viewer/frontend/views/Tex.js | 387 ++++-------------- .../plugins/perseus_viewer/gettextToICU.js | 13 - .../static/mathjax/2.1/MathJax.js | 30 -- ...AthJax-730d56e87e9c926b91584f6030314815.js | 210 ---------- .../TeX/woff/MathJax_AMS-Regular.woff | 3 - .../TeX/woff/MathJax_Caligraphic-Bold.woff | 3 - .../TeX/woff/MathJax_Caligraphic-Regular.woff | 3 - .../TeX/woff/MathJax_Fraktur-Bold.woff | 3 - .../TeX/woff/MathJax_Fraktur-Regular.woff | 3 - .../HTML-CSS/TeX/woff/MathJax_Main-Bold.woff | 3 - .../TeX/woff/MathJax_Main-Italic.woff | 3 - .../TeX/woff/MathJax_Main-Regular.woff | 3 - .../TeX/woff/MathJax_Math-BoldItalic.woff | 3 - .../TeX/woff/MathJax_Math-Italic.woff | 3 - .../TeX/woff/MathJax_Math-Regular.woff | 3 - .../TeX/woff/MathJax_SansSerif-Bold.woff | 3 - .../TeX/woff/MathJax_SansSerif-Italic.woff | 3 - .../TeX/woff/MathJax_SansSerif-Regular.woff | 3 - .../TeX/woff/MathJax_Script-Regular.woff | 3 - .../TeX/woff/MathJax_Size1-Regular.woff | 3 - .../TeX/woff/MathJax_Size2-Regular.woff | 3 - .../TeX/woff/MathJax_Size3-Regular.woff | 3 - .../TeX/woff/MathJax_Size4-Regular.woff | 3 - .../TeX/woff/MathJax_Typewriter-Regular.woff | 3 - .../static/mathjax/2.1/images/CloseX-31.png | Bin 2645 -> 0 bytes .../mathjax/2.1/images/MenuArrow-15.png | Bin 725 -> 0 bytes .../2.1/jax/element/mml/optable/Arrows.js | 16 - .../2.1/jax/element/mml/optable/BasicLatin.js | 16 - .../element/mml/optable/CombDiacritMarks.js | 16 - .../mml/optable/CombDiactForSymbols.js | 16 - .../2.1/jax/element/mml/optable/Dingbats.js | 16 - .../element/mml/optable/GeneralPunctuation.js | 16 - .../element/mml/optable/GeometricShapes.js | 16 - .../jax/element/mml/optable/GreekAndCoptic.js | 16 - .../element/mml/optable/Latin1Supplement.js | 16 - .../element/mml/optable/LetterlikeSymbols.js | 16 - .../jax/element/mml/optable/MathOperators.js | 16 - .../element/mml/optable/MiscMathSymbolsA.js | 16 - .../element/mml/optable/MiscMathSymbolsB.js | 16 - .../mml/optable/MiscSymbolsAndArrows.js | 16 - .../jax/element/mml/optable/MiscTechnical.js | 16 - .../element/mml/optable/SpacingModLetters.js | 16 - .../element/mml/optable/SuppMathOperators.js | 16 - .../mml/optable/SupplementalArrowsA.js | 16 - .../mml/optable/SupplementalArrowsB.js | 16 - .../HTML-CSS/autoload/annotation-xml.js | 16 - .../jax/output/HTML-CSS/autoload/maction.js | 16 - .../jax/output/HTML-CSS/autoload/menclose.js | 16 - .../jax/output/HTML-CSS/autoload/mglyph.js | 16 - .../output/HTML-CSS/autoload/mmultiscripts.js | 16 - .../2.1/jax/output/HTML-CSS/autoload/ms.js | 16 - .../jax/output/HTML-CSS/autoload/mtable.js | 16 - .../jax/output/HTML-CSS/autoload/multiline.js | 16 - .../HTML-CSS/fonts/TeX/AMS/Regular/Arrows.js | 16 - .../HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js | 16 - .../fonts/TeX/AMS/Regular/BoxDrawing.js | 16 - .../fonts/TeX/AMS/Regular/CombDiacritMarks.js | 16 - .../fonts/TeX/AMS/Regular/Dingbats.js | 16 - .../fonts/TeX/AMS/Regular/EnclosedAlphanum.js | 16 - .../TeX/AMS/Regular/GeneralPunctuation.js | 16 - .../fonts/TeX/AMS/Regular/GeometricShapes.js | 16 - .../fonts/TeX/AMS/Regular/GreekAndCoptic.js | 16 - .../fonts/TeX/AMS/Regular/Latin1Supplement.js | 16 - .../fonts/TeX/AMS/Regular/LatinExtendedA.js | 16 - .../TeX/AMS/Regular/LetterlikeSymbols.js | 16 - .../HTML-CSS/fonts/TeX/AMS/Regular/Main.js | 16 - .../fonts/TeX/AMS/Regular/MathOperators.js | 16 - .../fonts/TeX/AMS/Regular/MiscMathSymbolsB.js | 16 - .../fonts/TeX/AMS/Regular/MiscSymbols.js | 16 - .../fonts/TeX/AMS/Regular/MiscTechnical.js | 16 - .../HTML-CSS/fonts/TeX/AMS/Regular/PUA.js | 16 - .../TeX/AMS/Regular/SpacingModLetters.js | 16 - .../TeX/AMS/Regular/SuppMathOperators.js | 16 - .../fonts/TeX/Caligraphic/Bold/Main.js | 16 - .../fonts/TeX/Caligraphic/Regular/Main.js | 16 - .../fonts/TeX/Fraktur/Bold/BasicLatin.js | 16 - .../HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js | 16 - .../HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js | 16 - .../HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js | 16 - .../fonts/TeX/Fraktur/Regular/BasicLatin.js | 16 - .../fonts/TeX/Fraktur/Regular/Main.js | 16 - .../fonts/TeX/Fraktur/Regular/Other.js | 16 - .../HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js | 16 - .../HTML-CSS/fonts/TeX/Greek/Bold/Main.js | 16 - .../fonts/TeX/Greek/BoldItalic/Main.js | 16 - .../HTML-CSS/fonts/TeX/Greek/Italic/Main.js | 16 - .../HTML-CSS/fonts/TeX/Greek/Regular/Main.js | 16 - .../HTML-CSS/fonts/TeX/Main/Bold/Arrows.js | 16 - .../fonts/TeX/Main/Bold/CombDiacritMarks.js | 16 - .../TeX/Main/Bold/CombDiactForSymbols.js | 16 - .../fonts/TeX/Main/Bold/GeneralPunctuation.js | 16 - .../fonts/TeX/Main/Bold/GeometricShapes.js | 16 - .../fonts/TeX/Main/Bold/Latin1Supplement.js | 16 - .../fonts/TeX/Main/Bold/LatinExtendedA.js | 16 - .../fonts/TeX/Main/Bold/LatinExtendedB.js | 16 - .../fonts/TeX/Main/Bold/LetterlikeSymbols.js | 16 - .../HTML-CSS/fonts/TeX/Main/Bold/Main.js | 16 - .../fonts/TeX/Main/Bold/MathOperators.js | 16 - .../fonts/TeX/Main/Bold/MiscMathSymbolsA.js | 16 - .../fonts/TeX/Main/Bold/MiscSymbols.js | 16 - .../fonts/TeX/Main/Bold/MiscTechnical.js | 16 - .../fonts/TeX/Main/Bold/SpacingModLetters.js | 16 - .../fonts/TeX/Main/Bold/SuppMathOperators.js | 16 - .../TeX/Main/Bold/SupplementalArrowsA.js | 16 - .../fonts/TeX/Main/Italic/CombDiacritMarks.js | 16 - .../TeX/Main/Italic/GeneralPunctuation.js | 16 - .../fonts/TeX/Main/Italic/Latin1Supplement.js | 16 - .../TeX/Main/Italic/LetterlikeSymbols.js | 16 - .../HTML-CSS/fonts/TeX/Main/Italic/Main.js | 16 - .../TeX/Main/Regular/CombDiacritMarks.js | 16 - .../fonts/TeX/Main/Regular/GeometricShapes.js | 16 - .../HTML-CSS/fonts/TeX/Main/Regular/Main.js | 16 - .../fonts/TeX/Main/Regular/MiscSymbols.js | 16 - .../TeX/Main/Regular/SpacingModLetters.js | 16 - .../fonts/TeX/Math/BoldItalic/Main.js | 16 - .../HTML-CSS/fonts/TeX/Math/Italic/Main.js | 16 - .../fonts/TeX/SansSerif/Bold/BasicLatin.js | 16 - .../TeX/SansSerif/Bold/CombDiacritMarks.js | 16 - .../HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js | 16 - .../fonts/TeX/SansSerif/Bold/Other.js | 16 - .../fonts/TeX/SansSerif/Italic/BasicLatin.js | 16 - .../TeX/SansSerif/Italic/CombDiacritMarks.js | 16 - .../fonts/TeX/SansSerif/Italic/Main.js | 16 - .../fonts/TeX/SansSerif/Italic/Other.js | 16 - .../fonts/TeX/SansSerif/Regular/BasicLatin.js | 16 - .../TeX/SansSerif/Regular/CombDiacritMarks.js | 16 - .../fonts/TeX/SansSerif/Regular/Main.js | 16 - .../fonts/TeX/SansSerif/Regular/Other.js | 16 - .../fonts/TeX/Script/Regular/BasicLatin.js | 16 - .../HTML-CSS/fonts/TeX/Script/Regular/Main.js | 16 - .../fonts/TeX/Script/Regular/Other.js | 16 - .../HTML-CSS/fonts/TeX/Size1/Regular/Main.js | 16 - .../HTML-CSS/fonts/TeX/Size2/Regular/Main.js | 16 - .../HTML-CSS/fonts/TeX/Size3/Regular/Main.js | 16 - .../HTML-CSS/fonts/TeX/Size4/Regular/Main.js | 16 - .../TeX/Typewriter/Regular/BasicLatin.js | 16 - .../Typewriter/Regular/CombDiacritMarks.js | 16 - .../fonts/TeX/Typewriter/Regular/Main.js | 16 - .../fonts/TeX/Typewriter/Regular/Other.js | 16 - .../fonts/TeX/WinChrome/Regular/Main.js | 16 - .../HTML-CSS/fonts/TeX/WinIE6/Regular/AMS.js | 16 - .../HTML-CSS/fonts/TeX/WinIE6/Regular/Bold.js | 16 - .../HTML-CSS/fonts/TeX/WinIE6/Regular/Main.js | 16 - .../HTML-CSS/fonts/TeX/fontdata-extra.js | 16 - .../jax/output/HTML-CSS/fonts/TeX/fontdata.js | 16 - .../static/mathjax/kathjax-config.js | 153 ------- 147 files changed, 71 insertions(+), 2692 deletions(-) delete mode 100644 kolibri/plugins/perseus_viewer/gettextToICU.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/MathJax.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/config/KAthJax-730d56e87e9c926b91584f6030314815.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/images/CloseX-31.png delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/images/MenuArrow-15.png delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Arrows.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/BasicLatin.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/CombDiacritMarks.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/CombDiactForSymbols.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Dingbats.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GeneralPunctuation.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GeometricShapes.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GreekAndCoptic.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Latin1Supplement.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/LetterlikeSymbols.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MathOperators.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscMathSymbolsA.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscMathSymbolsB.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscSymbolsAndArrows.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscTechnical.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SpacingModLetters.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SuppMathOperators.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SupplementalArrowsA.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SupplementalArrowsB.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/annotation-xml.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/maction.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/menclose.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/mglyph.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/mmultiscripts.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/ms.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/mtable.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/multiline.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Arrows.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BoxDrawing.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/CombDiacritMarks.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Dingbats.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/EnclosedAlphanum.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeometricShapes.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GreekAndCoptic.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Latin1Supplement.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LatinExtendedA.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LetterlikeSymbols.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscSymbols.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/PUA.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SpacingModLetters.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SuppMathOperators.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Bold/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/BasicLatin.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/BasicLatin.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Other.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Bold/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/BoldItalic/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Italic/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Arrows.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiacritMarks.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiactForSymbols.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeneralPunctuation.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeometricShapes.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Latin1Supplement.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedA.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedB.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LetterlikeSymbols.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MathOperators.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscMathSymbolsA.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscSymbols.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscTechnical.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SpacingModLetters.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SuppMathOperators.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SupplementalArrowsA.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/CombDiacritMarks.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/GeneralPunctuation.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Latin1Supplement.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/LetterlikeSymbols.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/CombDiacritMarks.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/GeometricShapes.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/MiscSymbols.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/SpacingModLetters.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Math/BoldItalic/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Math/Italic/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/BasicLatin.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Other.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/BasicLatin.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Other.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/BasicLatin.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Other.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/BasicLatin.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Other.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size1/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size2/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size3/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size4/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/BasicLatin.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Other.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinChrome/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/AMS.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Bold.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Main.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/fontdata-extra.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/fontdata.js delete mode 100644 kolibri/plugins/perseus_viewer/static/mathjax/kathjax-config.js diff --git a/kolibri/plugins/perseus_viewer/.gitignore b/kolibri/plugins/perseus_viewer/.gitignore index 4cdf84f3f5e..ca9992156b6 100644 --- a/kolibri/plugins/perseus_viewer/.gitignore +++ b/kolibri/plugins/perseus_viewer/.gitignore @@ -1,4 +1,2 @@ -submodules -!static/mathjax -!frontend/dist -!frontend/dist/fonts/*.ttf +# MathJax fonts are copied from the mathjax-full node_modules dep at build time +static/assets/mathjax/fonts/ diff --git a/kolibri/plugins/perseus_viewer/frontend/views/Tex.js b/kolibri/plugins/perseus_viewer/frontend/views/Tex.js index abac0944384..10260971b7f 100644 --- a/kolibri/plugins/perseus_viewer/frontend/views/Tex.js +++ b/kolibri/plugins/perseus_viewer/frontend/views/Tex.js @@ -1,333 +1,84 @@ 'use strict'; -/** - * For math rendered using KaTex and/or MathJax. Use me like 2x + 3. - * Vendored and tweaked from: - * https://github.com/Khan/react-components/blob/fee9ceb0ff7dfe40370465101dd86f1def33a9d5/js/tex.jsx - */ -/* global MathJax */ +import '@khanacademy/mathjax-renderer/src/css/mathjax.css'; +import '@khanacademy/mathjax-renderer/src/css/safari-hacks.css'; +import '@khanacademy/mathjax-renderer/src/css/selectable.css'; +import { MathJaxRenderer } from '@khanacademy/mathjax-renderer'; -import * as PureRenderMixin from 'react-addons-pure-render-mixin'; -import { createElement } from 'react'; -import { findDOMNode } from 'react-dom'; -import PropTypes from 'prop-types'; -import katex from 'katex'; -import katexA11y from 'katex/dist/contrib/render-a11y-string'; -import createReactClass from 'create-react-class'; -import scriptLoader from 'kolibri/utils/scriptLoader'; +import logging from 'kolibri-logging'; +import React from 'react'; import urls from 'kolibri/urls'; -import { ConfigFileName as mathJaxConfigFileName } from '../constants'; - -let pendingScripts = []; -let pendingCallbacks = []; -let needsProcess = false; - -// For creating unique element ids required by the aria-describedby attribute -let describedByIdCounter = 0; - -const process = (script, callback) => { - pendingScripts.push(script); - pendingCallbacks.push(callback); - if (!needsProcess) { - needsProcess = true; - setTimeout(doProcess, 0); - } -}; -const unProcess = script => { - const scriptIndex = pendingScripts.indexOf(script); - pendingScripts.splice(scriptIndex, 1); - pendingCallbacks.splice(scriptIndex, 1); -}; +const logger = logging.getLogger(__filename); -// because MathJax isn't compatible with webpack, we are loading it this way. -// the config is fragile, Khan may change it and we need to update the following hardcoded path. -const mathJaxUrl = urls.static(`mathjax/2.1/MathJax.js?config=${mathJaxConfigFileName}`); +const fontURL = urls.static('assets/mathjax/fonts'); -const loadMathJax = callback => { - if (typeof MathJax !== 'undefined') { - callback(); - } else { - const mathJaxPromise = scriptLoader(mathJaxUrl); - mathJaxPromise.then(callback); +/** + * List of aria-roles that apply "presentation" to descendants, which strips + * math markup of its semantic meaning, which makes it inaccessible to screen + * readers and other assistive technology. + * + * Taken from this rule from WAI-ARIA 1.2: + * https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion + */ +const presentationalRoles = [ + 'button', + 'checkbox', + 'img', + 'menuitemcheckbox', + 'menuitemradio', + 'meter', + 'option', + 'progressbar', + 'radio', + 'scrollbar', + 'separator', + 'slider', + 'switch', + 'tab', + // "combobox" is NOT included in the WAI-ARIA 1.2 list of aria-roles that + // apply "presentation" to descendants, but screenreaders seem to treat it + // as presentational anyway. For context, see: + // - https://github.com/Khan/mathjax-renderer/commit/d706d27eab482f32d0d1c93f23fb6af6d1add8cf + // - https://khanacademy.atlassian.net/browse/LIT-1425 + 'combobox', +]; + +function isPresentationalForSR(element) { + if (element == null) { + return false; } -}; - -const doProcess = () => { - loadMathJax(() => { - MathJax.Hub.Queue(function () { - const oldElementScripts = MathJax.Hub.elementScripts; - MathJax.Hub.elementScripts = () => pendingScripts; - - try { - return MathJax.Hub.Process(null, () => { - // Trigger all of the pending callbacks before clearing them - // out. - for (const callback of pendingCallbacks) { - callback(); - } - - pendingScripts = []; - pendingCallbacks = []; - needsProcess = false; - }); - } finally { - MathJax.Hub.elementScripts = oldElementScripts; - } - }); - }); -}; - -// Make content only visible to screen readers. -// Both collegeboard.org and Bootstrap 3 use this exact implementation. -const srOnly = { - border: 0, - clip: 'rect(0,0,0,0)', - height: '1px', - margin: '-1px', - overflow: 'hidden', - padding: 0, - position: 'absolute', - width: '1px', -}; - -const TeX = createReactClass({ - propTypes: { - children: PropTypes.node, - katexOptions: PropTypes.any, - onClick: PropTypes.func, - onRender: PropTypes.func, - style: PropTypes.any, - }, - - mixins: [PureRenderMixin], - - getDefaultProps: function () { - return { - katexOptions: { - // There was a breaking change in the behavior of \color{} - // in KaTeX 0.8.0. KA content relies on the old behavior - // so we set this option to retain that old behavior even - // though it is not purely compatible with LaTeX. - // See https://github.com/Khan/KaTeX/blob/master/README.md - // for details on this option. - colorIsTextColor: true, - }, - // Called after math is rendered or re-rendered - onRender: function () {}, - onClick: null, - }; - }, - - // TODO(joshuan): Once we are using React 16.3+, - // migrate to getDerivedStateFromProps - getInitialState: function () { - return { - mounted: false, - katexHtml: this.getKatexHtml(this.props), - }; - }, - - componentDidMount: function () { - this._root = findDOMNode(this); - - this.setState({ - mounted: true, - }); - - if (this.refs.katex.childElementCount > 0) { - // If we already rendered katex in the render function, we don't - // need to render anything here. - this.props.onRender(this._root); - return; - } - - const text = this.props.children; - - this.setScriptText(text); - this.process(() => this.props.onRender(this._root)); - }, - - // TODO(joshuan): If you are updating to React 16.3+, migrate to - // getDerivedStateFromProps - componentWillReceiveProps: function (nextProps) { - if ( - nextProps.children !== this.props.children || - JSON.stringify(nextProps.katexOptions) !== JSON.stringify(this.props.katexOptions) - ) { - this.setState({ - katexHtml: this.getKatexHtml(nextProps), - }); - } - }, - - componentDidUpdate: function (prevProps) { - if (this.props.children !== prevProps.children) { - this.maybeUnprocess(); - - // If we already rendered katex in the render function, we don't - // need to render anything here. - if (this.refs.katex.childElementCount > 0) { - if (this.script) { - // If we successfully rendered KaTeX, check if there's - // lingering MathJax from the last render, and if so remove it. - loadMathJax(() => { - const jax = MathJax.Hub.getJaxFor(this.script); - if (jax) { - jax.Remove(); - } - }); - } - - this.props.onRender(); - return; - } + return ( + presentationalRoles.some(role => element.matches(`[role=${role}]`)) || + isPresentationalForSR(element.parentElement) + ); +} + +const renderer = new MathJaxRenderer({ + fontURL, + shouldFixUnicodeLayout: true, + locale: 'en', +}); - const newText = this.props.children; +function TeX({ children: tex, onRender }) { + const ref = React.useRef(null); + const { domElement, addLabel } = React.useMemo(() => renderer.render(tex), [tex]); - if (this.script) { - loadMathJax(() => { - MathJax.Hub.Queue(() => { - const jax = MathJax.Hub.getJaxFor(this.script); - if (jax) { - return jax.Text(newText, this.props.onRender); - } else { - this.setScriptText(newText); - this.process(this.props.onRender); - } - }); - }); - } else { - this.setScriptText(newText); - this.process(this.props.onRender); + React.useLayoutEffect(() => { + if (ref.current) { + if (isPresentationalForSR(ref.current)) { + addLabel().catch(logger.error); } + ref.current.innerHTML = ''; + ref.current.appendChild(domElement); } - }, - - componentWillUnmount: function () { - this.maybeUnprocess(); - - if (this.script) { - loadMathJax(() => { - const jax = MathJax.Hub.getJaxFor(this.script); - if (jax) { - jax.Remove(); - } - }); - } - }, - - getKatexHtml(props) { - // Try to render the math content with KaTeX. - // If this fails, componentDidUpdate() will notice and - // use MathJAX instead. - try { - return { - __html: katex.renderToString(props.children, props.katexOptions), - }; - } catch (e) { - // By catching the exception here and returning null - // we will fall back to asyncronously rendering with - // MathJAX. - // - // NOTE: formerly we only returned null if the error - // was a parse error from Katex and re-threw any other errors. - // But https://khanacademy.atlassian.net/browse/CP-879 and - // https://khanacademy.atlassian.net/browse/CP-1742 were caused - // by regular TypeError exceptions in Katex, so we might as - // well fall back to MathJAX in that case as well. (The Katex - // bug is fixed in the latest version and will stop happening - // when we upgrade webapp to use Katex 1.0.) - // - // TODO: We could use Raven.captureMessage() to send a message - // to Sentry when these errors occur if we want to get serious - // about eliminating them. Such a message should include - // window.location, props.children (the string of katex source) - // and the error itself. - return null; - } - }, - - process: function (callback) { - this.hasProcessed = false; - process(this.script, () => { - this.hasProcessed = true; - callback && callback(); - }); - }, - - maybeUnprocess: function () { - // Sometimes, we end up rendering this component with some MathJax-only - // math before very quickly switching over to some other math, before - // MathJax has had a time to render. We want to remove the previously - // queued render so that we don't accidentally render some math that we - // don't want displayed. - if (this.script && !this.hasProcessed) { - unProcess(this.script); - } - }, + }, [ref, addLabel, domElement]); - setScriptText: function (text) { - if (!this.script) { - this.script = document.createElement('script'); - this.script.type = 'math/tex'; - findDOMNode(this.refs.mathjax).appendChild(this.script); - } - if ('text' in this.script) { - // IE8, etc - this.script.text = text; - } else { - this.script.textContent = text; - } - }, + React.useEffect(() => { + renderer.updateStyles(); + onRender?.(); + }, [tex, onRender]); - render: function () { - const { katexHtml } = this.state; - - // If we successfully parsed with KaTeX, then try parse the - // same math text to an english rendering that can be read - // by screen readers. Our katexA11y module is out of date and - // not well maintained, so it can not always transform math - // into readable english. We ignore any exceptions it throws. - let katexA11yHtml = null; - let describedById = null; - if (katexHtml) { - try { - katexA11yHtml = { - __html: katexA11y.renderString(this.props.children), - }; - // The server and the client will not necessarily use the same - // ID, and the initial client markup must match the server - // markup. Thus, we only add an ID once we've rendered once. - if (this.state.mounted) { - describedById = `katex-${++describedByIdCounter}`; - } - } catch (e) { - // Nothing - } - } - - return createElement( - 'span', - { - style: this.props.style, - onClick: this.props.onClick, - }, - createElement('span', { - ref: 'mathjax', - }), - createElement('span', { - ref: 'katex', - dangerouslySetInnerHTML: katexHtml, - 'aria-hidden': !!katexA11yHtml, - 'aria-describedby': describedById, - }), - createElement('span', { - dangerouslySetInnerHTML: katexA11yHtml, - id: describedById, - style: srOnly, - }), - ); - }, -}); + return React.createElement('span', { ref }); +} export default TeX; diff --git a/kolibri/plugins/perseus_viewer/gettextToICU.js b/kolibri/plugins/perseus_viewer/gettextToICU.js deleted file mode 100644 index b865715b118..00000000000 --- a/kolibri/plugins/perseus_viewer/gettextToICU.js +++ /dev/null @@ -1,13 +0,0 @@ -/* eslint-disable import-x/no-commonjs, import-x/no-amd, import-x/no-import-module-exports */ -/* - * A function to transform Perseus' gettext formatted messages to ICU message syntax - * Can be used replace all strings in a source file, - * Or on a string by string basis to convert gettext formatted strings into ICU syntax, - * For example when importing Khan Academy's gettext format translated strings. - */ -const gettextToICU = (string) => { - // Regex taken from perseus/lib/i18n.js interpolationMarker variable - return string.replace(/%\(([\w_]+)\)s/g, '{ $1 }'); -}; - -module.exports = gettextToICU; diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/MathJax.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/MathJax.js deleted file mode 100644 index 44eecb7ccb3..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/MathJax.js +++ /dev/null @@ -1,30 +0,0 @@ -/************************************************************* - * - * MathJax.js - * - * The main code for the MathJax math-typesetting library. See - * http://www.mathjax.org/ for details. - * - * --------------------------------------------------------------------- - * - * Copyright (c) 2009-2012 Design Science, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -if (!window.MathJax) {window.MathJax = {}} - -MathJax.isPacked = true; - -if(document.getElementById&&document.childNodes&&document.createElement){if(!window.MathJax){window.MathJax={}}if(!MathJax.Hub){MathJax.version="2.1";MathJax.fileversion="2.1";(function(d){var b=window[d];if(!b){b=window[d]={}}var f=[];var c=function(g){var h=g.constructor;if(!h){h=new Function("")}for(var i in g){if(i!=="constructor"&&g.hasOwnProperty(i)){h[i]=g[i]}}return h};var a=function(){return new Function("return arguments.callee.Init.call(this,arguments)")};var e=a();e.prototype={bug_test:1};if(!e.prototype.bug_test){a=function(){return function(){return arguments.callee.Init.call(this,arguments)}}}b.Object=c({constructor:a(),Subclass:function(g,i){var h=a();h.SUPER=this;h.Init=this.Init;h.Subclass=this.Subclass;h.Augment=this.Augment;h.protoFunction=this.protoFunction;h.can=this.can;h.has=this.has;h.isa=this.isa;h.prototype=new this(f);h.prototype.constructor=h;h.Augment(g,i);return h},Init:function(g){var h=this;if(g.length===1&&g[0]===f){return h}if(!(h instanceof g.callee)){h=new g.callee(f)}return h.Init.apply(h,g)||h},Augment:function(g,h){var i;if(g!=null){for(i in g){if(g.hasOwnProperty(i)){this.protoFunction(i,g[i])}}if(g.toString!==this.prototype.toString&&g.toString!=={}.toString){this.protoFunction("toString",g.toString)}}if(h!=null){for(i in h){if(h.hasOwnProperty(i)){this[i]=h[i]}}}return this},protoFunction:function(h,g){this.prototype[h]=g;if(typeof g==="function"){g.SUPER=this.SUPER.prototype}},prototype:{Init:function(){},SUPER:function(g){return g.callee.SUPER},can:function(g){return typeof(this[g])==="function"},has:function(g){return typeof(this[g])!=="undefined"},isa:function(g){return(g instanceof Object)&&(this instanceof g)}},can:function(g){return this.prototype.can.call(this,g)},has:function(g){return this.prototype.has.call(this,g)},isa:function(h){var g=this;while(g){if(g===h){return true}else{g=g.SUPER}}return false},SimpleSUPER:c({constructor:function(g){return this.SimpleSUPER.define(g)},define:function(g){var i={};if(g!=null){for(var h in g){if(g.hasOwnProperty(h)){i[h]=this.wrap(h,g[h])}}if(g.toString!==this.prototype.toString&&g.toString!=={}.toString){i.toString=this.wrap("toString",g.toString)}}return i},wrap:function(i,h){if(typeof(h)==="function"&&h.toString().match(/\.\s*SUPER\s*\(/)){var g=new Function(this.wrapper);g.label=i;g.original=h;h=g;g.toString=this.stringify}return h},wrapper:function(){var h=arguments.callee;this.SUPER=h.SUPER[h.label];try{var g=h.original.apply(this,arguments)}catch(i){delete this.SUPER;throw i}delete this.SUPER;return g}.toString().replace(/^\s*function\s*\(\)\s*\{\s*/i,"").replace(/\s*\}\s*$/i,""),toString:function(){return this.original.toString.apply(this.original,arguments)}})})})("MathJax");(function(BASENAME){var BASE=window[BASENAME];if(!BASE){BASE=window[BASENAME]={}}var CALLBACK=function(data){var cb=new Function("return arguments.callee.execute.apply(arguments.callee,arguments)");for(var id in CALLBACK.prototype){if(CALLBACK.prototype.hasOwnProperty(id)){if(typeof(data[id])!=="undefined"){cb[id]=data[id]}else{cb[id]=CALLBACK.prototype[id]}}}cb.toString=CALLBACK.prototype.toString;return cb};CALLBACK.prototype={isCallback:true,hook:function(){},data:[],object:window,execute:function(){if(!this.called||this.autoReset){this.called=!this.autoReset;return this.hook.apply(this.object,this.data.concat([].slice.call(arguments,0)))}},reset:function(){delete this.called},toString:function(){return this.hook.toString.apply(this.hook,arguments)}};var ISCALLBACK=function(f){return(typeof(f)==="function"&&f.isCallback)};var EVAL=function(code){return eval.call(window,code)};EVAL("var __TeSt_VaR__ = 1");if(window.__TeSt_VaR__){try{delete window.__TeSt_VaR__}catch(error){window.__TeSt_VaR__=null}}else{if(window.execScript){EVAL=function(code){BASE.__code=code;code="try {"+BASENAME+".__result = eval("+BASENAME+".__code)} catch(err) {"+BASENAME+".__result = err}";window.execScript(code);var result=BASE.__result;delete BASE.__result;delete BASE.__code;if(result instanceof Error){throw result}return result}}else{EVAL=function(code){BASE.__code=code;code="try {"+BASENAME+".__result = eval("+BASENAME+".__code)} catch(err) {"+BASENAME+".__result = err}";var head=(document.getElementsByTagName("head"))[0];if(!head){head=document.body}var script=document.createElement("script");script.appendChild(document.createTextNode(code));head.appendChild(script);head.removeChild(script);var result=BASE.__result;delete BASE.__result;delete BASE.__code;if(result instanceof Error){throw result}return result}}}var USING=function(args,i){if(arguments.length>1){if(arguments.length===2&&!(typeof arguments[0]==="function")&&arguments[0] instanceof Object&&typeof arguments[1]==="number"){args=[].slice.call(args,i)}else{args=[].slice.call(arguments,0)}}if(args instanceof Array&&args.length===1){args=args[0]}if(typeof args==="function"){if(args.execute===CALLBACK.prototype.execute){return args}return CALLBACK({hook:args})}else{if(args instanceof Array){if(typeof(args[0])==="string"&&args[1] instanceof Object&&typeof args[1][args[0]]==="function"){return CALLBACK({hook:args[1][args[0]],object:args[1],data:args.slice(2)})}else{if(typeof args[0]==="function"){return CALLBACK({hook:args[0],data:args.slice(1)})}else{if(typeof args[1]==="function"){return CALLBACK({hook:args[1],object:args[0],data:args.slice(2)})}}}}else{if(typeof(args)==="string"){return CALLBACK({hook:EVAL,data:[args]})}else{if(args instanceof Object){return CALLBACK(args)}else{if(typeof(args)==="undefined"){return CALLBACK({})}}}}}throw Error("Can't make callback from given data")};var DELAY=function(time,callback){callback=USING(callback);callback.timeout=setTimeout(callback,time);return callback};var WAITFOR=function(callback,signal){callback=USING(callback);if(!callback.called){WAITSIGNAL(callback,signal);signal.pending++}};var WAITEXECUTE=function(){var signals=this.signal;delete this.signal;this.execute=this.oldExecute;delete this.oldExecute;var result=this.execute.apply(this,arguments);if(ISCALLBACK(result)&&!result.called){WAITSIGNAL(result,signals)}else{for(var i=0,m=signals.length;i0&&priorityf){f=document.styleSheets.length}if(!h){h=(document.getElementsByTagName("head"))[0];if(!h){h=document.body}}return h};var e=[];var b=function(){for(var j=0,h=e.length;j=this.timeout){h(this.STATUS.ERROR);return 1}return 0},file:function(i,h){if(h<0){a.Ajax.loadTimeout(i)}else{a.Ajax.loadComplete(i)}},execute:function(){this.hook.call(this.object,this,this.data[0],this.data[1])},checkSafari2:function(h,i,j){if(h.time(j)){return}if(document.styleSheets.length>i&&document.styleSheets[i].cssRules&&document.styleSheets[i].cssRules.length){j(h.STATUS.OK)}else{setTimeout(h,h.delay)}},checkLength:function(h,k,m){if(h.time(m)){return}var l=0;var i=(k.sheet||k.styleSheet);try{if((i.cssRules||i.rules||[]).length>0){l=1}}catch(j){if(j.message.match(/protected variable|restricted URI/)){l=1}else{if(j.message.match(/Security error/)){l=1}}}if(l){setTimeout(a.Callback([m,h.STATUS.OK]),0)}else{setTimeout(h,h.delay)}}},loadComplete:function(h){h=this.fileURL(h);var i=this.loading[h];if(i&&!i.preloaded){a.Message.Clear(i.message);clearTimeout(i.timeout);if(i.script){if(e.length===0){setTimeout(b,0)}e.push(i.script)}this.loaded[h]=i.status;delete this.loading[h];this.addHook(h,i.callback)}else{if(i){delete this.loading[h]}this.loaded[h]=this.STATUS.OK;i={status:this.STATUS.OK}}if(!this.loadHooks[h]){return null}return this.loadHooks[h].Execute(i.status)},loadTimeout:function(h){if(this.loading[h].timeout){clearTimeout(this.loading[h].timeout)}this.loading[h].status=this.STATUS.ERROR;this.loadError(h);this.loadComplete(h)},loadError:function(h){a.Message.Set("File failed to load: "+h,null,2000);a.Hub.signal.Post(["file load error",h])},Styles:function(j,k){var h=this.StyleString(j);if(h===""){k=a.Callback(k);k()}else{var i=document.createElement("style");i.type="text/css";this.head=g(this.head);this.head.appendChild(i);if(i.styleSheet&&typeof(i.styleSheet.cssText)!=="undefined"){i.styleSheet.cssText=h}else{i.appendChild(document.createTextNode(h))}k=this.timer.create.call(this,k,i)}return k},StyleString:function(m){if(typeof(m)==="string"){return m}var j="",n,l;for(n in m){if(m.hasOwnProperty(n)){if(typeof m[n]==="string"){j+=n+" {"+m[n]+"}\n"}else{if(m[n] instanceof Array){for(var k=0;k1?d[1]:""));f=null}if(e&&(!b.preJax||d)){c.nodeValue=c.nodeValue.replace(b.postJax,(e.length>1?e[1]:""))}if(f&&!f.nodeValue.match(/\S/)){f=f.previousSibling}}if(b.preRemoveClass&&f&&f.className===b.preRemoveClass){a.MathJax.preview=f}a.MathJax.checked=1},processInput:function(a){var b,i=MathJax.ElementJax.STATE;var h,e,d=a.scripts.length;try{while(a.ithis.processUpdateTime&&a.i1){d.jax[a.outputJax].push(b)}b.MathJax.state=c.OUTPUT},prepareOutput:function(c,f){while(c.jthis.processUpdateTime&&h.i=0;o--){if((b[o].src||"").match(d)){q.script=b[o].innerHTML;if(RegExp.$2){var r=RegExp.$2.substr(1).split(/\&/);for(var n=0,h=r.length;n=parseInt(x[y])}}return true},Select:function(j){var i=j[c.Browser];if(i){return i(c.Browser)}return null}};var g=navigator.userAgent.replace(/^Mozilla\/(\d+\.)+\d+ /,"").replace(/[a-z][-a-z0-9._: ]+\/\d+[^ ]*-[^ ]*\.([a-z][a-z])?\d+ /i,"").replace(/Gentoo |Ubuntu\/(\d+\.)*\d+ (\([^)]*\) )?/,"");c.Browser=c.Insert(c.Insert(new String("Unknown"),{version:"0.0"}),a);for(var t in a){if(a.hasOwnProperty(t)){if(a[t]&&t.substr(0,2)==="is"){t=t.slice(2);if(t==="Mac"||t==="PC"){continue}c.Browser=c.Insert(new String(t),a);var p=new RegExp(".*(Version)/((?:\\d+\\.)+\\d+)|.*("+t+")"+(t=="MSIE"?" ":"/")+"((?:\\d+\\.)*\\d+)|(?:^|\\(| )([a-z][-a-z0-9._: ]+|(?:Apple)?WebKit)/((?:\\d+\\.)+\\d+)");var s=p.exec(g)||["","","","unknown","0.0"];c.Browser.name=(s[1]=="Version"?t:(s[3]||s[5]));c.Browser.version=s[2]||s[4]||s[6];break}}}c.Browser.Select({Safari:function(j){var i=parseInt((String(j.version).split("."))[0]);if(i>85){j.webkit=j.version}if(i>=534){j.version="5.1"}else{if(i>=533){j.version="5.0"}else{if(i>=526){j.version="4.0"}else{if(i>=525){j.version="3.1"}else{if(i>500){j.version="3.0"}else{if(i>400){j.version="2.0"}else{if(i>85){j.version="1.0"}}}}}}}j.isMobile=(navigator.appVersion.match(/Mobile/i)!=null);j.noContextMenu=j.isMobile},Firefox:function(j){if((j.version==="0.0"||navigator.userAgent.match(/Firefox/)==null)&&navigator.product==="Gecko"){var m=navigator.userAgent.match(/[\/ ]rv:(\d+\.\d.*?)[\) ]/);if(m){j.version=m[1]}else{var i=(navigator.buildID||navigator.productSub||"0").substr(0,8);if(i>="20111220"){j.version="9.0"}else{if(i>="20111120"){j.version="8.0"}else{if(i>="20110927"){j.version="7.0"}else{if(i>="20110816"){j.version="6.0"}else{if(i>="20110621"){j.version="5.0"}else{if(i>="20110320"){j.version="4.0"}else{if(i>="20100121"){j.version="3.6"}else{if(i>="20090630"){j.version="3.5"}else{if(i>="20080617"){j.version="3.0"}else{if(i>="20061024"){j.version="2.0"}}}}}}}}}}}}j.isMobile=(navigator.appVersion.match(/Android/i)!=null||navigator.userAgent.match(/ Fennec\//)!=null)},Opera:function(i){i.version=opera.version()},MSIE:function(j){j.isIE9=!!(document.documentMode&&(window.performance||window.msPerformance));MathJax.HTML.setScriptBug=!j.isIE9||document.documentMode<9;var v=false;try{new ActiveXObject("MathPlayer.Factory.1");j.hasMathPlayer=v=true}catch(m){}try{if(v&&!q.params.NoMathPlayer){var i=document.createElement("object");i.id="mathplayer";i.classid="clsid:32F66A20-7614-11D4-BD11-00104BD3F987";document.getElementsByTagName("head")[0].appendChild(i);document.namespaces.add("m","http://www.w3.org/1998/Math/MathML");j.mpNamespace=true;if(document.readyState&&(document.readyState==="loading"||document.readyState==="interactive")){document.write('');j.mpImported=true}}else{document.namespaces.add("mjx_IE_fix","http://www.w3.org/1999/xlink")}}catch(m){}}});c.Browser.Select(MathJax.Message.browsers);c.queue=f.Callback.Queue();c.queue.Push(["Post",q.signal,"Begin"],["Config",q],["Cookie",q],["Styles",q],["Message",q],function(){var i=f.Callback.Queue(q.Jax(),q.Extensions());return i.Push({})},["Menu",q],q.onLoad(),function(){MathJax.isReady=true},["Typeset",q],["Hash",q],["MenuZoom",q],["Post",q.signal,"End"])})("MathJax")}}; - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/config/KAthJax-730d56e87e9c926b91584f6030314815.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/config/KAthJax-730d56e87e9c926b91584f6030314815.js deleted file mode 100644 index 513448ee1c8..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/config/KAthJax-730d56e87e9c926b91584f6030314815.js +++ /dev/null @@ -1,210 +0,0 @@ -/* TODO(csilvers): fix these lint errors (http://eslint.org/docs/rules): */ -/* eslint-disable comma-dangle, comma-spacing, eqeqeq, indent, max-len, no-unused-vars, one-var, prefer-template, space-infix-ops */ -/* To fix, remove an entry above, run ka-lint, and fix errors. */ - -MathJax.Hub.Config({ - messageStyle: "none", - skipStartupTypeset: true, - jax: ["input/TeX","output/HTML-CSS"], - extensions: ["tex2jax.js"], - TeX: { - extensions: [ - "AMSmath.js", - "AMSsymbols.js", - "noErrors.js", - "noUndefined.js", - "newcommand.js", - "boldsymbol.js" - ], - Macros: { - RR: "\\mathbb{R}", - blue: "\\color{#6495ED}", - orange: "\\color{#FFA500}", - pink: "\\color{#FF00AF}", - red: "\\color{#DF0030}", - green: "\\color{#28AE7B}", - gray: "\\color{gray}", - purple: "\\color{#9D38BD}", - blueA: "\\color{#CCFAFF}", - blueB: "\\color{#80F6FF}", - blueC: "\\color{#63D9EA}", - blueD: "\\color{#11ACCD}", - blueE: "\\color{#0C7F99}", - tealA: "\\color{#94FFF5}", - tealB: "\\color{#26EDD5}", - tealC: "\\color{#01D1C1}", - tealD: "\\color{#01A995}", - tealE: "\\color{#208170}", - greenA: "\\color{#B6FFB0}", - greenB: "\\color{#8AF281}", - greenC: "\\color{#74CF70}", - greenD: "\\color{#1FAB54}", - greenE: "\\color{#0D923F}", - goldA: "\\color{#FFD0A9}", - goldB: "\\color{#FFBB71}", - goldC: "\\color{#FF9C39}", - goldD: "\\color{#E07D10}", - goldE: "\\color{#A75A05}", - redA: "\\color{#FCA9A9}", - redB: "\\color{#FF8482}", - redC: "\\color{#F9685D}", - redD: "\\color{#E84D39}", - redE: "\\color{#BC2612}", - maroonA: "\\color{#FFBDE0}", - maroonB: "\\color{#FF92C6}", - maroonC: "\\color{#ED5FA6}", - maroonD: "\\color{#CA337C}", - maroonE: "\\color{#9E034E}", - purpleA: "\\color{#DDD7FF}", - purpleB: "\\color{#C6B9FC}", - purpleC: "\\color{#AA87FF}", - purpleD: "\\color{#7854AB}", - purpleE: "\\color{#543B78}", - mintA: "\\color{#F5F9E8}", - mintB: "\\color{#EDF2DF}", - mintC: "\\color{#E0E5CC}", - grayA: "\\color{#F6F7F7}", - grayB: "\\color{#F0F1F2}", - grayC: "\\color{#E3E5E6}", - grayD: "\\color{#D6D8DA}", - grayE: "\\color{#BABEC2}", - grayF: "\\color{#888D93}", - grayG: "\\color{#626569}", - grayH: "\\color{#3B3E40}", - grayI: "\\color{#21242C}", - kaBlue: "\\color{#314453}", - kaGreen: "\\color{#71B307}", - // For rational exponents, we provide \^ instead of ^ which pushes - // the exponent up higher so it's really clear that the fraction - // is an exponent. - "^": ["{}^{^{^{#1}}}", 1] - }, - Augment: { - Definitions: { - macros: { - lrsplit: "LRSplit", - cancel: "Cancel", - lcm: ["NamedOp", 0], - gcf: ["NamedOp", 0] - } - }, - Parse: { - prototype: { - LRSplit: function( name ) { - var num = this.GetArgument( name ), - den = this.GetArgument( name ); - var frac = MathJax.ElementJax.mml.mfrac( MathJax.InputJax.TeX.Parse( '\\strut\\textstyle{'+num+'\\qquad}', this.stack.env ).mml(), - MathJax.InputJax.TeX.Parse( '\\strut\\textstyle{\\qquad '+den+'}', this.stack.env ).mml() ); - frac.numalign = MathJax.ElementJax.mml.ALIGN.LEFT; - frac.denomalign = MathJax.ElementJax.mml.ALIGN.RIGHT; - frac.linethickness = "0em"; - this.Push( frac ); - }, - Cancel: function( name ) { - this.Push( MathJax.ElementJax.mml.menclose( this.ParseArg( name ) ).With({ notation: MathJax.ElementJax.mml.NOTATION.UPDIAGONALSTRIKE }) ); - } - } - } - } - }, - "HTML-CSS": { - scale: 100, - showMathMenu: false, - availableFonts: [ "TeX" ], - imageFont: null - } -}); - -MathJax.Ajax.timeout = 60 * 1000; -MathJax.Ajax.loadError = (function( oldLoadError ) { - return function( file ) { - if (window.Khan) { - Khan.warnMathJaxError(file); - } - // Otherwise will receive unresponsive script error when finally finish loading - MathJax.Ajax.loadComplete = function( file ) { }; - oldLoadError.call( this, file ); - }; -})( MathJax.Ajax.loadError ); - -MathJax.Hub.Register.StartupHook("HTML-CSS Jax - disable web fonts", function() { - if (window.Khan) { - Khan.warnFont(); - } -}); - -// Trying to monkey-patch MathJax.Message.Init to not throw errors -MathJax.Message.Init = (function( oldInit ) { - return function( styles ) { - if ( this.div && this.div.parentNode == null ) { - var div = document.getElementById("MathJax_Message"); - if ( div && div.firstChild == null ) { - var parent = div.parentNode; - if ( parent ) { - parent.removeChild( div ); - } - } - } - - oldInit.call( this, styles ); - }; -})( MathJax.Message.Init ); - -MathJax.Hub.Startup.onload(); -MathJax.Ajax.Preloading( - "[MathJax]/extensions/MathEvents.js", - "[MathJax]/extensions/MathMenu.js", - "[MathJax]/extensions/MathZoom.js", - "[MathJax]/extensions/TeX/AMSmath.js", - "[MathJax]/extensions/TeX/AMSsymbols.js", - "[MathJax]/extensions/TeX/noErrors.js", - "[MathJax]/extensions/TeX/noUndefined.js", - "[MathJax]/extensions/TeX/newcommand.js", - "[MathJax]/extensions/TeX/boldsymbol.js", - "[MathJax]/extensions/tex2jax.js", - "[MathJax]/jax/element/mml/jax.js", - "[MathJax]/jax/input/TeX/config.js", - "[MathJax]/jax/input/TeX/jax.js", - "[MathJax]/jax/output/HTML-CSS/config.js", - "[MathJax]/jax/output/HTML-CSS/jax.js" -); - -MathJax.Hub.Config({"v1.0-compatible":false}); - -(function(d,h,l,g,b,j){var p="2.1";var i=MathJax.Extension;var c=i.MathEvents={version:p};var k=d.config.menuSettings;var o={hover:500,frame:{x:3.5,y:5,bwidth:1,bcolor:"#A6D",hwidth:"15px",hcolor:"#83A"},button:{x:-4,y:-3,wx:-2,src:l.fileURL(b.imageDir+"/MenuArrow-15.png")},fadeinInc:0.2,fadeoutInc:0.05,fadeDelay:50,fadeoutStart:400,fadeoutDelay:15*1000,styles:{".MathJax_Hover_Frame":{"border-radius":".25em","-webkit-border-radius":".25em","-moz-border-radius":".25em","-khtml-border-radius":".25em","box-shadow":"0px 0px 15px #83A","-webkit-box-shadow":"0px 0px 15px #83A","-moz-box-shadow":"0px 0px 15px #83A","-khtml-box-shadow":"0px 0px 15px #83A",border:"1px solid #A6D ! important",display:"inline-block",position:"absolute"},".MathJax_Hover_Arrow":{position:"absolute",width:"15px",height:"11px",cursor:"pointer"}}};var m=c.Event={LEFTBUTTON:0,RIGHTBUTTON:2,MENUKEY:"altKey",Mousedown:function(q){return m.Handler(q,"Mousedown",this)},Mouseup:function(q){return m.Handler(q,"Mouseup",this)},Mousemove:function(q){return m.Handler(q,"Mousemove",this)},Mouseover:function(q){return m.Handler(q,"Mouseover",this)},Mouseout:function(q){return m.Handler(q,"Mouseout",this)},Click:function(q){return m.Handler(q,"Click",this)},DblClick:function(q){return m.Handler(q,"DblClick",this)},Menu:function(q){return m.Handler(q,"ContextMenu",this)},Handler:function(t,r,s){if(l.loadingMathMenu){return m.False(t)}var q=b[s.jaxID];if(!t){t=window.event}t.isContextMenu=(r==="ContextMenu");if(q[r]){return q[r](t,s)}if(i.MathZoom){return i.MathZoom.HandleEvent(t,r,s)}},False:function(q){if(!q){q=window.event}if(q){if(q.preventDefault){q.preventDefault()}if(q.stopPropagation){q.stopPropagation()}q.cancelBubble=true;q.returnValue=false}return false},ContextMenu:function(r,y,u){var w=b[y.jaxID],t=w.getJaxFromMath(y);var z=(w.config.showMathMenu!=null?w:d).config.showMathMenu;if(!z||(k.context!=="MathJax"&&!u)){return}if(c.msieEventBug){r=window.event||r}m.ClearSelection();f.ClearHoverTimer();if(t.hover){if(t.hover.remove){clearTimeout(t.hover.remove);delete t.hover.remove}t.hover.nofade=true}var s=MathJax.Menu;if(s){s.jax=t;var q=s.menu.Find("Show Math As").menu;q.items[1].name=(j[t.inputJax].sourceMenuTitle||"Original Form");q.items[0].hidden=(t.inputJax==="Error");var v=s.menu.Find("Math Settings","MathPlayer");v.hidden=!(t.outputJax==="NativeMML"&&d.Browser.hasMathPlayer);return s.menu.Post(r)}else{if(!l.loadingMathMenu){l.loadingMathMenu=true;var x={pageX:r.pageX,pageY:r.pageY,clientX:r.clientX,clientY:r.clientY};g.Queue(l.Require("[MathJax]/extensions/MathMenu.js"),function(){delete l.loadingMathMenu;if(!MathJax.Menu){MathJax.Menu={}}},["ContextMenu",this,x,y,u])}return m.False(r)}},AltContextMenu:function(s,r){var t=b[r.jaxID];var q=(t.config.showMathMenu!=null?t:d).config.showMathMenu;if(q){q=(t.config.showMathMenuMSIE!=null?t:d).config.showMathMenuMSIE;if(k.context==="MathJax"&&!k.mpContext&&q){if(!c.noContextMenuBug||s.button!==m.RIGHTBUTTON){return}}else{if(!s[m.MENUKEY]||s.button!==m.LEFTBUTTON){return}}return t.ContextMenu(s,r,true)}},ClearSelection:function(){if(c.safariContextMenuBug){setTimeout("window.getSelection().empty()",0)}if(document.selection){setTimeout("document.selection.empty()",0)}},getBBox:function(s){s.appendChild(c.topImg);var r=c.topImg.offsetTop,t=s.offsetHeight-r,q=s.offsetWidth;s.removeChild(c.topImg);return{w:q,h:r,d:t}}};var f=c.Hover={Mouseover:function(s,r){if(k.discoverable||k.zoom==="Hover"){var u=s.fromElement||s.relatedTarget,t=s.toElement||s.target;if(u&&t&&(u.isMathJax!=t.isMathJax||d.getJaxFor(u)!==d.getJaxFor(t))){var q=this.getJaxFromMath(r);if(q.hover){f.ReHover(q)}else{f.HoverTimer(q,r)}return m.False(s)}}},Mouseout:function(s,r){if(k.discoverable||k.zoom==="Hover"){var u=s.fromElement||s.relatedTarget,t=s.toElement||s.target;if(u&&t&&(u.isMathJax!=t.isMathJax||d.getJaxFor(u)!==d.getJaxFor(t))){var q=this.getJaxFromMath(r);if(q.hover){f.UnHover(q)}else{f.ClearHoverTimer()}return m.False(s)}}},Mousemove:function(s,r){if(k.discoverable||k.zoom==="Hover"){var q=this.getJaxFromMath(r);if(q.hover){return}if(f.lastX==s.clientX&&f.lastY==s.clientY){return}f.lastX=s.clientX;f.lastY=s.clientY;f.HoverTimer(q,r);return m.False(s)}},HoverTimer:function(q,r){this.ClearHoverTimer();this.hoverTimer=setTimeout(g(["Hover",this,q,r]),o.hover)},ClearHoverTimer:function(){if(this.hoverTimer){clearTimeout(this.hoverTimer);delete this.hoverTimer}},Hover:function(q,u){if(i.MathZoom&&i.MathZoom.Hover({},u)){return}var t=b[q.outputJax],v=t.getHoverSpan(q,u),y=t.getHoverBBox(q,v,u),w=(t.config.showMathMenu!=null?t:d).config.showMathMenu;var A=o.frame.x,z=o.frame.y,x=o.frame.bwidth;if(c.msieBorderWidthBug){x=0}q.hover={opacity:0,id:q.inputID+"-Hover"};var r=h.Element("span",{id:q.hover.id,isMathJax:true,style:{display:"inline-block",width:0,height:0,position:"relative"}},[["span",{className:"MathJax_Hover_Frame",isMathJax:true,style:{display:"inline-block",position:"absolute",top:this.Px(-y.h-z-x-(y.y||0)),left:this.Px(-A-x+(y.x||0)),width:this.Px(y.w+2*A),height:this.Px(y.h+y.d+2*z),opacity:0,filter:"alpha(opacity=0)"}}]]);var s=h.Element("span",{isMathJax:true,id:q.hover.id+"Menu",style:{display:"inline-block","z-index":1,width:0,height:0,position:"relative"}},[["img",{className:"MathJax_Hover_Arrow",isMathJax:true,math:u,src:o.button.src,onclick:this.HoverMenu,jax:t.id,style:{left:this.Px(y.w+A+x+(y.x||0)+o.button.x),top:this.Px(-y.h-z-x-(y.y||0)-o.button.y),opacity:0,filter:"alpha(opacity=0)"}}]]);if(y.width){r.style.width=s.style.width=y.width;r.style.marginRight=s.style.marginRight="-"+y.width;r.firstChild.style.width=y.width;s.firstChild.style.left="";s.firstChild.style.right=this.Px(o.button.wx)}v.parentNode.insertBefore(r,v);if(w){v.parentNode.insertBefore(s,v)}if(v.style){v.style.position="relative"}this.ReHover(q)},ReHover:function(q){if(q.hover.remove){clearTimeout(q.hover.remove)}q.hover.remove=setTimeout(g(["UnHover",this,q]),o.fadeoutDelay);this.HoverFadeTimer(q,o.fadeinInc)},UnHover:function(q){if(!q.hover.nofade){this.HoverFadeTimer(q,-o.fadeoutInc,o.fadeoutStart)}},HoverFade:function(q){delete q.hover.timer;q.hover.opacity=Math.max(0,Math.min(1,q.hover.opacity+q.hover.inc));q.hover.opacity=Math.floor(1000*q.hover.opacity)/1000;var s=document.getElementById(q.hover.id),r=document.getElementById(q.hover.id+"Menu");s.firstChild.style.opacity=q.hover.opacity;s.firstChild.style.filter="alpha(opacity="+Math.floor(100*q.hover.opacity)+")";if(r){r.firstChild.style.opacity=q.hover.opacity;r.firstChild.style.filter=s.style.filter}if(q.hover.opacity===1){return}if(q.hover.opacity>0){this.HoverFadeTimer(q,q.hover.inc);return}s.parentNode.removeChild(s);if(r){r.parentNode.removeChild(r)}if(q.hover.remove){clearTimeout(q.hover.remove)}delete q.hover},HoverFadeTimer:function(q,s,r){q.hover.inc=s;if(!q.hover.timer){q.hover.timer=setTimeout(g(["HoverFade",this,q]),(r||o.fadeDelay))}},HoverMenu:function(q){if(!q){q=window.event}return b[this.jax].ContextMenu(q,this.math,true)},ClearHover:function(q){if(q.hover.remove){clearTimeout(q.hover.remove)}if(q.hover.timer){clearTimeout(q.hover.timer)}f.ClearHoverTimer();delete q.hover},Px:function(q){if(Math.abs(q)<0.006){return"0px"}return q.toFixed(2).replace(/\.?0+$/,"")+"px"},getImages:function(){var q=new Image();q.src=o.button.src}};var a=c.Touch={last:0,delay:500,start:function(r){var q=new Date().getTime();var s=(q-a.last8);var i=(n?null:"5px");var o=c.CombineConfig("MathMenu",{delay:150,helpURL:"http://www.mathjax.org/help-v2/user/",closeImg:k.fileURL(b.imageDir+"/CloseX-31.png"),showRenderer:true,showMathPlayer:true,showFontMenu:false,showContext:false,showDiscoverable:false,windowSettings:{status:"no",toolbar:"no",locationbar:"no",menubar:"no",directories:"no",personalbar:"no",resizable:"yes",scrollbars:"yes",width:400,height:300,left:Math.round((screen.width-400)/2),top:Math.round((screen.height-300)/3)},styles:{"#MathJax_About":{position:"fixed",left:"50%",width:"auto","text-align":"center",border:"3px outset",padding:"1em 2em","background-color":"#DDDDDD",color:"black",cursor:"default","font-family":"message-box","font-size":"120%","font-style":"normal","text-indent":0,"text-transform":"none","line-height":"normal","letter-spacing":"normal","word-spacing":"normal","word-wrap":"normal","white-space":"nowrap","float":"none","z-index":201,"border-radius":"15px","-webkit-border-radius":"15px","-moz-border-radius":"15px","-khtml-border-radius":"15px","box-shadow":"0px 10px 20px #808080","-webkit-box-shadow":"0px 10px 20px #808080","-moz-box-shadow":"0px 10px 20px #808080","-khtml-box-shadow":"0px 10px 20px #808080",filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')"},".MathJax_Menu":{position:"absolute","background-color":"white",color:"black",width:"auto",padding:(n?"2px":"5px 0px"),border:"1px solid #CCCCCC",margin:0,cursor:"default",font:"menu","text-align":"left","text-indent":0,"text-transform":"none","line-height":"normal","letter-spacing":"normal","word-spacing":"normal","word-wrap":"normal","white-space":"nowrap","float":"none","z-index":201,"border-radius":i,"-webkit-border-radius":i,"-moz-border-radius":i,"-khtml-border-radius":i,"box-shadow":"0px 10px 20px #808080","-webkit-box-shadow":"0px 10px 20px #808080","-moz-box-shadow":"0px 10px 20px #808080","-khtml-box-shadow":"0px 10px 20px #808080",filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')"},".MathJax_MenuItem":{padding:(n?"2px 2em":"1px 2em"),background:"transparent"},".MathJax_MenuTitle":{"background-color":"#CCCCCC",margin:(n?"-1px -1px 1px -1px":"-5px 0 0 0"),"text-align":"center","font-style":"italic","font-size":"80%",color:"#444444",padding:"2px 0",overflow:"hidden"},".MathJax_MenuArrow":{position:"absolute",right:".5em",color:"#666666","font-family":(l?"'Arial unicode MS'":null)},".MathJax_MenuActive .MathJax_MenuArrow":{color:"white"},".MathJax_MenuCheck":{position:"absolute",left:".7em","font-family":(l?"'Arial unicode MS'":null)},".MathJax_MenuRadioCheck":{position:"absolute",left:(n?"1em":".7em")},".MathJax_MenuLabel":{padding:(n?"2px 2em 4px 1.33em":"1px 2em 3px 1.33em"),"font-style":"italic"},".MathJax_MenuRule":{"border-top":(n?"1px solid #CCCCCC":"1px solid #DDDDDD"),margin:(n?"4px 1px 0px":"4px 3px")},".MathJax_MenuDisabled":{color:"GrayText"},".MathJax_MenuActive":{"background-color":(n?"Highlight":"#606872"),color:(n?"HighlightText":"white")},".MathJax_Menu_Close":{position:"absolute",width:"31px",height:"31px",top:"-15px",left:"-15px"}}});var h,d;c.Register.StartupHook("MathEvents Ready",function(){h=MathJax.Extension.MathEvents.Event.False;d=MathJax.Extension.MathEvents.Hover});var a=MathJax.Menu=MathJax.Object.Subclass({version:p,items:[],posted:false,title:null,margin:5,Init:function(q){this.items=[].slice.call(arguments,0)},With:function(q){if(q){c.Insert(this,q)}return this},Post:function(r,B){if(!r){r=window.event}var z=(!this.title?null:[["div",{className:"MathJax_MenuTitle"},[this.title]]]);var q=document.getElementById("MathJax_MenuFrame");if(!q){q=a.Background(this);delete m.lastItem;delete m.lastMenu;delete a.skipUp;j.Post(["post",a.jax])}var s=g.addElement(q,"div",{onmouseup:a.Mouseup,ondblclick:h,ondragstart:h,onselectstart:h,oncontextmenu:h,menuItem:this,className:"MathJax_Menu"},z);for(var u=0,t=this.items.length;udocument.body.offsetWidth-this.margin){A=document.body.offsetWidth-s.offsetWidth-this.margin}if(a.isMobile){A=Math.max(5,A-Math.floor(s.offsetWidth/2));w-=20}a.skipUp=r.isContextMenu}else{var v="left",C=B.offsetWidth;A=(a.isMobile?30:C-2);w=0;while(B&&B!==q){A+=B.offsetLeft;w+=B.offsetTop;B=B.parentNode}if(A+s.offsetWidth>document.body.offsetWidth-this.margin&&!a.isMobile){v="right";A=Math.max(this.margin,A-C-s.offsetWidth+6)}if(!n){s.style["borderRadiusTop"+v]=0;s.style["WebkitBorderRadiusTop"+v]=0;s.style["MozBorderRadiusTop"+v]=0;s.style["KhtmlBorderRadiusTop"+v]=0}}s.style.left=A+"px";s.style.top=w+"px";if(document.selection&&document.selection.empty){document.selection.empty()}return h(r)},Remove:function(q,r){j.Post(["unpost",a.jax]);var s=document.getElementById("MathJax_MenuFrame");if(s){s.parentNode.removeChild(s);if(this.msieFixedPositionBug){detachEvent("onresize",a.Resize)}}if(a.jax.hover){delete a.jax.hover.nofade;d.UnHover(a.jax)}return h(q)},Find:function(r){var t=[].slice.call(arguments,1);for(var s=0,q=this.items.length;s=0&&w.parentNode.menuItem!==v[q].menuItem){v[q].menuItem.posted=false;v[q].parentNode.removeChild(v[q]);q--}if(this.Timer&&!a.isMobile){this.Timer(u,w)}}},Mouseout:function(q,r){if(!this.menu||!this.menu.posted){this.Deactivate(r)}if(this.timer){clearTimeout(this.timer);delete this.timer}},Mouseup:function(q,r){return this.Remove(q,r)},Touchstart:function(q,r){return this.TouchEvent(q,r,"Mousedown")},Touchend:function(q,r){return this.TouchEvent(q,r,"Mouseup")},TouchEvent:function(r,s,q){if(this!==m.lastItem){if(m.lastMenu){a.Event(r,m.lastMenu,"Mouseout")}a.Event(r,s,"Mouseover",true);m.lastItem=this;m.lastMenu=s}if(this.nativeTouch){return null}a.Event(r,s,q);return false},Remove:function(q,r){r=r.parentNode.menuItem;return r.Remove(q,r)},Activate:function(q){this.Deactivate(q);q.className+=" MathJax_MenuActive"},Deactivate:function(q){q.className=q.className.replace(/ MathJax_MenuActive/,"")},With:function(q){if(q){c.Insert(this,q)}return this}});a.ITEM.COMMAND=a.ITEM.Subclass({action:function(){},Init:function(q,s,r){this.name=q;this.action=s;this.With(r)},Label:function(q,r){return[this.name]},Mouseup:function(q,r){if(!this.disabled){this.Remove(q,r);j.Post(["command",this]);this.action.call(this,q)}return h(q)}});a.ITEM.SUBMENU=a.ITEM.Subclass({menu:null,marker:(n&&!c.Browser.isSafari?"\u25B6":"\u25B8"),Init:function(q,s){this.name=q;var r=1;if(!(s instanceof a.ITEM)){this.With(s),r++}this.menu=a.apply(a,[].slice.call(arguments,r))},Label:function(q,r){this.menu.posted=false;return[this.name+" ",["span",{className:"MathJax_MenuArrow"},[this.marker]]]},Timer:function(q,r){if(this.timer){clearTimeout(this.timer)}q={clientX:q.clientX,clientY:q.clientY};this.timer=setTimeout(f(["Mouseup",this,q,r]),o.delay)},Touchend:function(r,t){var s=this.menu.posted;var q=this.SUPER(arguments).Touchend.apply(this,arguments);if(s){this.Deactivate(t);delete m.lastItem;delete m.lastMenu}return q},Mouseup:function(r,t){if(!this.disabled){if(!this.menu.posted){if(this.timer){clearTimeout(this.timer);delete this.timer}this.menu.Post(r,t)}else{var s=document.getElementById("MathJax_MenuFrame").childNodes,q=s.length-1;while(q>=0){var u=s[q];u.menuItem.posted=false;u.parentNode.removeChild(u);if(u.menuItem===this.menu){break}q--}}}return h(r)}});a.ITEM.RADIO=a.ITEM.Subclass({variable:null,marker:(n?"\u25CF":"\u2713"),Init:function(r,q,s){this.name=r;this.variable=q;this.With(s);if(this.value==null){this.value=this.name}},Label:function(r,s){var q={className:"MathJax_MenuRadioCheck"};if(o.settings[this.variable]!==this.value){q={style:{display:"none"}}}return[["span",q,[this.marker]]," "+this.name]},Mouseup:function(t,u){if(!this.disabled){var v=u.parentNode.childNodes;for(var r=0,q=v.length;r/g,">");if(a.isMobile){q.document.open();q.document.write("MathJax Equation Source");q.document.write("
"+t+"
");q.document.write("
");q.document.write("");q.document.close()}else{q.document.open();q.document.write("MathJax Equation Source");q.document.write("
"+t+"
");q.document.write("");q.document.close();var r=q.document.body.firstChild;setTimeout(function(){var w=(q.outerHeight-q.innerHeight)||30,v=(q.outerWidth-q.innerWidth)||30,u,z;v=Math.max(100,Math.min(Math.floor(0.5*screen.width),r.offsetWidth+v+25));w=Math.max(40,Math.min(Math.floor(0.5*screen.height),r.offsetHeight+w+25));q.resizeTo(v,w);if(s&&s.screenX!=null){u=Math.max(0,Math.min(s.screenX-Math.floor(v/2),screen.width-v-20));z=Math.max(0,Math.min(s.screenY-Math.floor(w/2),screen.height-w-20));q.moveTo(u,z)}},50)}};a.Scale=function(){var r=b["HTML-CSS"],q=b.NativeMML,u=b.SVG;var t=(r||q||u||{config:{scale:100}}).config.scale;var s=prompt("Scale all mathematics (compared to surrounding text) by",t+"%");if(s){if(s.match(/^\s*\d+(\.\d*)?\s*%?\s*$/)){s=parseFloat(s);if(s){if(s!==t){if(r){r.config.scale=s}if(q){q.config.scale=s}if(u){u.config.scale=s}a.cookie.scale=s;a.saveCookie();c.Reprocess()}}else{alert("The scale should not be zero")}}else{alert("The scale should be a percentage (e.g., 120%)")}}};a.Zoom=function(){if(!MathJax.Extension.MathZoom){k.Require("[MathJax]/extensions/MathZoom.js")}};a.Renderer=function(){var r=c.outputJax["jax/mml"];if(r[0]!==o.settings.renderer){var u=c.Browser,t,q=a.Renderer.Messages,s;switch(o.settings.renderer){case"NativeMML":if(!o.settings.warnedMML){if(u.isChrome||(u.isSafari&&!u.versionAtLeast("5.0"))){t=q.MML.WebKit}else{if(u.isMSIE){if(!u.hasMathPlayer){t=q.MML.MSIE}}else{t=q.MML[u]}}s="warnedMML"}break;case"SVG":if(!o.settings.warnedSVG){if(u.isMSIE&&!e){t=q.SVG.MSIE}}break}if(t){t+="\n\nSwitch the renderer anyway?\n\n(Press OK to switch, CANCEL to continue with the current renderer)";a.cookie.renderer=r[0].id;a.saveCookie();if(!confirm(t)){return}if(s){a.cookie[s]=o.settings[s]=true}a.cookie.renderer=o.settings.renderer;a.saveCookie()}c.Queue(["setRenderer",c,o.settings.renderer,"jax/mml"],["Rerender",c])}};a.Renderer.Messages={MML:{WebKit:"Your browser doesn't seem to support MathML natively, so switching to MathML output may cause the mathematics on the page to become unreadable.",MSIE:"Internet Explorer requires the MathPlayer plugin in order to process MathML output.",Opera:"Opera's support for MathML is limited, so switching to MathML output may cause some expressions to render poorly.",Safari:"Your browser's native MathML does not implement all the features used by MathJax, so some expressions may not render properly.",Firefox:"Your browser's native MathML does not implement all the features used by MathJax, so some expressions may not render properly."},SVG:{MSIE:"SVG is not implemented in Internet Explorer prior to IE9, or when the browser is emulating IE8 or below. Switching to SVG output will cause the mathemtics to not display properly."}};a.Font=function(){var q=b["HTML-CSS"];if(!q){return}document.location.reload()};a.MPEvents=function(s){var r=o.settings.discoverable,q=a.MPEvents.Messages;if(!e){if(o.settings.mpMouse&&!confirm(q.IE8warning)){delete a.cookie.mpContext;delete o.settings.mpContext;delete a.cookie.mpMouse;delete o.settings.mpMouse;a.saveCookie();return}o.settings.mpContext=o.settings.mpMouse;a.cookie.mpContext=a.cookie.mpMouse=o.settings.mpMouse;a.saveCookie();MathJax.Hub.Queue(["Rerender",MathJax.Hub])}else{if(!r&&s.name==="Menu Events"&&o.settings.mpContext){alert(q.IE9warning)}}};a.MPEvents.Messages={IE8warning:"This will disable the MathJax menu and zoom features, but you can Alt-Click on an expression to obtain the MathJax menu instead.\n\nReally change the MathPlayer settings?",IE9warning:"The MathJax contextual menu will be disabled, but you can Alt-Click on an expression to obtain the MathJax menu instead."};c.Browser.Select({MSIE:function(q){var r=(document.compatMode==="BackCompat");var s=q.versionAtLeast("8.0")&&document.documentMode>7;a.Augment({margin:20,msieBackgroundBug:(document.documentMode<9),msieFixedPositionBug:(r||!s),msieAboutBug:r});if(e){delete o.styles["#MathJax_About"].filter;delete o.styles[".MathJax_Menu"].filter}},Firefox:function(q){a.skipMouseover=q.isMobile&&q.versionAtLeast("6.0");a.skipMousedown=q.isMobile}});a.isMobile=c.Browser.isMobile;a.noContextMenu=c.Browser.noContextMenu;c.Register.StartupHook("End Config",function(){o.settings=c.config.menuSettings;if(typeof(o.settings.showRenderer)!=="undefined"){o.showRenderer=o.settings.showRenderer}if(typeof(o.settings.showFontMenu)!=="undefined"){o.showFontMenu=o.settings.showFontMenu}if(typeof(o.settings.showContext)!=="undefined"){o.showContext=o.settings.showContext}a.getCookie();a.menu=a(m.SUBMENU("Show Math As",m.COMMAND("MathML Code",a.ShowSource,{nativeTouch:true,format:"MathML"}),m.COMMAND("Original Form",a.ShowSource,{nativeTouch:true}),m.RULE(),m.CHECKBOX("Show TeX hints in MathML","texHints")),m.RULE(),m.SUBMENU("Math Settings",m.SUBMENU("Zoom Trigger",m.RADIO("Hover","zoom",{action:a.Zoom}),m.RADIO("Click","zoom",{action:a.Zoom}),m.RADIO("Double-Click","zoom",{action:a.Zoom}),m.RADIO("No Zoom","zoom",{value:"None"}),m.RULE(),m.LABEL("Trigger Requires:"),m.CHECKBOX((c.Browser.isMac?"Option":"Alt"),"ALT"),m.CHECKBOX("Command","CMD",{hidden:!c.Browser.isMac}),m.CHECKBOX("Control","CTRL",{hidden:c.Browser.isMac}),m.CHECKBOX("Shift","Shift")),m.SUBMENU("Zoom Factor",m.RADIO("125%","zscale"),m.RADIO("133%","zscale"),m.RADIO("150%","zscale"),m.RADIO("175%","zscale"),m.RADIO("200%","zscale"),m.RADIO("250%","zscale"),m.RADIO("300%","zscale"),m.RADIO("400%","zscale")),m.RULE(),m.SUBMENU("Math Renderer",{hidden:!o.showRenderer},m.RADIO("HTML-CSS","renderer",{action:a.Renderer}),m.RADIO("MathML","renderer",{action:a.Renderer,value:"NativeMML"}),m.RADIO("SVG","renderer",{action:a.Renderer})),m.SUBMENU("MathPlayer",{hidden:!c.Browser.isMSIE||!o.showMathPlayer,disabled:!c.Browser.hasMathPlayer},m.LABEL("Let MathPlayer Handle:"),m.CHECKBOX("Menu Events","mpContext",{action:a.MPEvents,hidden:!e}),m.CHECKBOX("Mouse Events","mpMouse",{action:a.MPEvents,hidden:!e}),m.CHECKBOX("Mouse and Menu Events","mpMouse",{action:a.MPEvents,hidden:e})),m.SUBMENU("Font Preference",{hidden:!o.showFontMenu},m.LABEL("For HTML-CSS:"),m.RADIO("Auto","font",{action:a.Font}),m.RULE(),m.RADIO("TeX (local)","font",{action:a.Font}),m.RADIO("TeX (web)","font",{action:a.Font}),m.RADIO("TeX (image)","font",{action:a.Font}),m.RULE(),m.RADIO("STIX (local)","font",{action:a.Font})),m.SUBMENU("Contextual Menu",{hidden:!o.showContext},m.RADIO("MathJax","context"),m.RADIO("Browser","context")),m.COMMAND("Scale All Math ...",a.Scale),m.RULE().With({hidden:!o.showDiscoverable,name:"discover_rule"}),m.CHECKBOX("Highlight on Hover","discoverable",{hidden:!o.showDiscoverable})),m.RULE(),m.COMMAND("About MathJax",a.About),m.COMMAND("MathJax Help",a.Help));if(a.isMobile){(function(){var r=o.settings;var q=a.menu.Find("Math Settings","Zoom Trigger").menu;q.items[0].disabled=q.items[1].disabled=true;if(r.zoom==="Hover"||r.zoom=="Click"){r.zoom="None"}q.items=q.items.slice(0,4);if(navigator.appVersion.match(/[ (]Android[) ]/)){a.ITEM.SUBMENU.Augment({marker:"\u00BB"})}})()}});a.showRenderer=function(q){a.cookie.showRenderer=o.showRenderer=q;a.saveCookie();a.menu.Find("Math Settings","Math Renderer").hidden=!q};a.showMathPlayer=function(q){a.cookie.showMathPlayer=o.showMathPlayer=q;a.saveCookie();a.menu.Find("Math Settings","MathPlayer").hidden=!q};a.showFontMenu=function(q){a.cookie.showFontMenu=o.showFontMenu=q;a.saveCookie();a.menu.Find("Math Settings","Font Preference").hidden=!q};a.showContext=function(q){a.cookie.showContext=o.showContext=q;a.saveCookie();a.menu.Find("Math Settings","Contextual Menu").hidden=!q};a.showDiscoverable=function(q){a.cookie.showContext=o.showContext=q;a.saveCookie();a.menu.Find("Math Settings","Highlight on Hover").hidden=!q;a.menu.Find("Math Settings","discover_rule").hidden=!q};MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function(){if(!MathJax.OutputJax["HTML-CSS"].config.imageFont){a.menu.Find("Math Settings","Font Preference","TeX (image)").disabled=true}});f.Queue(c.Register.StartupHook("End Config",{}),["getImages",a],["Styles",k,o.styles],["Post",c.Startup.signal,"MathMenu Ready"],["loadComplete",k,"[MathJax]/extensions/MathMenu.js"])})(MathJax.Hub,MathJax.HTML,MathJax.Ajax,MathJax.CallBack,MathJax.OutputJax); - -(function(a,d,f,c,j){var k="2.1";var i=a.CombineConfig("MathZoom",{styles:{"#MathJax_Zoom":{position:"absolute","background-color":"#F0F0F0",overflow:"auto",display:"block","z-index":301,padding:".5em",border:"1px solid black",margin:0,"font-weight":"normal","font-style":"normal","text-align":"left","text-indent":0,"text-transform":"none","line-height":"normal","letter-spacing":"normal","word-spacing":"normal","word-wrap":"normal","white-space":"nowrap","float":"none","box-shadow":"5px 5px 15px #AAAAAA","-webkit-box-shadow":"5px 5px 15px #AAAAAA","-moz-box-shadow":"5px 5px 15px #AAAAAA","-khtml-box-shadow":"5px 5px 15px #AAAAAA",filter:"progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')"},"#MathJax_ZoomOverlay":{position:"absolute",left:0,top:0,"z-index":300,display:"inline-block",width:"100%",height:"100%",border:0,padding:0,margin:0,"background-color":"white",opacity:0,filter:"alpha(opacity=0)"},"#MathJax_ZoomEventTrap":{position:"absolute",left:0,top:0,"z-index":302,display:"inline-block",border:0,padding:0,margin:0,"background-color":"white",opacity:0,filter:"alpha(opacity=0)"}}});var e,b,g;MathJax.Hub.Register.StartupHook("MathEvents Ready",function(){g=MathJax.Extension.MathEvents.Event;e=MathJax.Extension.MathEvents.Event.False;b=MathJax.Extension.MathEvents.Hover});var h=MathJax.Extension.MathZoom={version:k,settings:a.config.menuSettings,scrollSize:18,HandleEvent:function(n,l,m){if(h.settings.CTRL&&!n.ctrlKey){return true}if(h.settings.ALT&&!n.altKey){return true}if(h.settings.CMD&&!n.metaKey){return true}if(h.settings.Shift&&!n.shiftKey){return true}if(!h[l]){return true}return h[l](n,m)},Click:function(m,l){if(this.settings.zoom==="Click"){return this.Zoom(m,l)}},DblClick:function(m,l){if(this.settings.zoom==="Double-Click"){return this.Zoom(m,l)}},Hover:function(m,l){if(this.settings.zoom==="Hover"){this.Zoom(m,l);return true}return false},Zoom:function(n,s){this.Remove();b.ClearHoverTimer();g.ClearSelection();var q=MathJax.OutputJax[s.jaxID];var o=q.getJaxFromMath(s);if(o.hover){b.UnHover(o)}var l=Math.floor(0.85*document.body.clientWidth),r=Math.floor(0.85*Math.max(document.body.clientHeight,document.documentElement.clientHeight));var m=d.Element("span",{style:{position:"relative",display:"inline-block",height:0,width:0},id:"MathJax_ZoomFrame"},[["span",{id:"MathJax_ZoomOverlay",onmousedown:this.Remove}],["span",{id:"MathJax_Zoom",onclick:this.Remove,style:{visibility:"hidden",fontSize:this.settings.zscale,"max-width":l+"px","max-height":r+"px"}},[["span",{style:{display:"inline-block","white-space":"nowrap"}}]]]]);var x=m.lastChild,u=x.firstChild,p=m.firstChild;s.parentNode.insertBefore(m,s);s.parentNode.insertBefore(s,m);if(u.addEventListener){u.addEventListener("mousedown",this.Remove,true)}if(this.msieTrapEventBug){var w=d.Element("span",{id:"MathJax_ZoomEventTrap",onmousedown:this.Remove});m.insertBefore(w,x)}if(this.msieZIndexBug){var t=d.addElement(document.body,"img",{src:"about:blank",id:"MathJax_ZoomTracker",width:0,height:0,style:{width:0,height:0,position:"relative"}});m.style.position="relative";m.style.zIndex=i.styles["#MathJax_ZoomOverlay"]["z-index"];m=t}var v=q.Zoom(o,u,s,l,r);if(this.msiePositionBug){if(this.msieSizeBug){x.style.height=v.zH+"px";x.style.width=v.zW+"px"}if(x.offsetHeight>r){x.style.height=r+"px";x.style.width=(v.zW+this.scrollSize)+"px"}if(x.offsetWidth>l){x.style.width=l+"px";x.style.height=(v.zH+this.scrollSize)+"px"}}if(this.operaPositionBug){x.style.width=Math.min(l,v.zW)+"px"}if(x.offsetWidth=9);h.msiePositionBug=!m;h.msieSizeBug=l.versionAtLeast("7.0")&&(!document.documentMode||n===7||n===8);h.msieZIndexBug=(n<=7);h.msieInlineBlockAlignBug=(n<=7);h.msieTrapEventBug=!window.addEventListener;if(document.compatMode==="BackCompat"){h.scrollSize=52}if(m){delete i.styles["#MathJax_Zoom"].filter}},Opera:function(l){h.operaPositionBug=true;h.operaRefreshBug=true}});h.topImg=(h.msieInlineBlockAlignBug?d.Element("img",{style:{width:0,height:0,position:"relative"},src:"about:blank"}):d.Element("span",{style:{width:0,height:0,display:"inline-block"}}));if(h.operaPositionBug||h.msieTopBug){h.topImg.style.border="1px solid"}MathJax.Callback.Queue(["StartupHook",MathJax.Hub.Register,"Begin Styles",{}],["Styles",f,i.styles],["Post",a.Startup.signal,"MathZoom Ready"],["loadComplete",f,"[MathJax]/extensions/MathZoom.js"])})(MathJax.Hub,MathJax.HTML,MathJax.Ajax,MathJax.OutputJax["HTML-CSS"],MathJax.OutputJax.NativeMML); - -MathJax.Extension["TeX/AMSmath"]={version:"2.1",number:0,startNumber:0,labels:{},eqlabels:{},refs:[]};MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var b=MathJax.ElementJax.mml,g=MathJax.InputJax.TeX,f=MathJax.Extension["TeX/AMSmath"];var d=g.Definitions,e=g.Stack.Item,a=g.config.equationNumbers;var c=function(j){var l=[];for(var k=0,h=j.length;k0){o+="rl";m.push("0em 0em");p--}m=m.join(" ");if(h){return this.AMSarray(k,i,h,o,m)}var l=this.Array.call(this,k,null,null,o,m,".5em","D");return this.setArrayAlign(l,j)},EquationBegin:function(h,i){this.checkEqnEnv();this.stack.global.forcetag=(i&&a.autoNumber!=="none");return h},EquationStar:function(h,i){this.stack.global.tagged=true;return i},checkEqnEnv:function(){if(this.stack.global.eqnenv){g.Error("Erroneous nesting of equation structures")}this.stack.global.eqnenv=true},MultiIntegral:function(h,l){var k=this.GetNext();if(k==="\\"){var j=this.i;k=this.GetArgument(h);this.i=j;if(k==="\\limits"){if(h==="\\idotsint"){l="\\!\\!\\mathop{\\,\\,"+l+"}"}else{l="\\!\\!\\!\\mathop{\\,\\,\\,"+l+"}"}}}this.string=l+" "+this.string.slice(this.i);this.i=0},xArrow:function(j,n,m,h){var k={width:"+"+(m+h)+"mu",lspace:m+"mu"};var o=this.GetBrackets(j),p=this.ParseArg(j);var q=b.mo(b.chars(String.fromCharCode(n))).With({stretchy:true,texClass:b.TEXCLASS.REL});var i=b.munderover(q);i.SetData(i.over,b.mpadded(p).With(k).With({voffset:".15em"}));if(o){o=g.Parse(o,this.stack.env).mml();i.SetData(i.under,b.mpadded(o).With(k).With({voffset:"-.24em"}))}this.Push(i)},GetDelimiterArg:function(h){var i=this.trimSpaces(this.GetArgument(h));if(i==""){return null}if(d.delimiter[i]==null){g.Error("Missing or unrecognized delimiter for "+h)}return this.convertDelimiter(i)},GetStar:function(){var h=(this.GetNext()==="*");if(h){this.i++}return h}});e.Augment({autoTag:function(){var i=this.global;if(!i.notag){f.number++;i.tagID=a.formatNumber(f.number.toString());var h=g.Parse("\\text{"+a.formatTag(i.tagID)+"}",{}).mml();i.tag=b.mtd(h.With({id:a.formatID(i.tagID)}))}},getTag:function(){var i=this.global,h=i.tag;i.tagged=true;if(i.label){f.eqlabels[i.label]=i.tagID;if(a.useLabelIds){h.id=a.formatID(i.label)}}delete i.tag;delete i.tagID;delete i.label;return h}});e.multline=e.array.Subclass({type:"multline",Init:function(i,h){this.SUPER(arguments).Init.apply(this);this.numbered=(i&&a.autoNumber!=="none");this.save={notag:h.global.notag};h.global.tagged=!i&&!h.global.forcetag},EndEntry:function(){var h=b.mtd.apply(b,this.data);if(this.data.shove){h.columnalign=this.data.shove}this.row.push(h);this.data=[]},EndRow:function(){if(this.row.length!=1){g.Error("multline rows must have exactly one column")}this.table.push(this.row);this.row=[]},EndTable:function(){this.SUPER(arguments).EndTable.call(this);if(this.table.length){var j=this.table.length-1,l,k=-1;if(!this.table[0][0].columnalign){this.table[0][0].columnalign=b.ALIGN.LEFT}if(!this.table[j][0].columnalign){this.table[j][0].columnalign=b.ALIGN.RIGHT}if(!this.global.tag&&this.numbered){this.autoTag()}if(this.global.tag&&!this.global.notags){k=(this.arraydef.side==="left"?0:this.table.length-1);this.table[k]=[this.getTag()].concat(this.table[k])}for(l=0,j=this.table.length;l1){var n=(q.h+q.d)/2,j=h.TeX.x_height/2;p.parentNode.style.verticalAlign=h.Em(q.d+(j-n));q.h=j+n;q.d=n-j}p.bbox={h:q.h,d:q.d,w:k,lw:0,rw:k};return p}})});b.Register.StartupHook("SVG Jax Config",function(){b.Config({SVG:{styles:{".MathJax_SVG .noError":b.Insert({"vertical-align":(b.Browser.isMSIE&&a.multiLine?"-2px":"")},a.style)}}})});b.Register.StartupHook("SVG Jax Ready",function(){var g=MathJax.ElementJax.mml;var f=g.math.prototype.toSVG,h=g.merror.prototype.toSVG;g.math.Augment({toSVG:function(i,j){var k=this.data[0];if(k&&k.data[0]&&k.data[0].isError){i=k.data[0].toSVG(i)}else{i=f.call(this,i,j)}return i}});g.merror.Augment({toSVG:function(n){if(!this.isError||this.Parent().type!=="math"){return h.call(this,n)}n=e.addElement(n,"span",{className:"noError",isMathJax:true});if(this.multiLine){n.style.display="inline-block"}var o=this.data[0].data[0].data.join("").split(/\n/);for(var l=0,j=o.length;l1){var k=n.offsetHeight/2;n.style.verticalAlign=(-k+(k/j))+"px"}return n}})});b.Register.StartupHook("NativeMML Jax Ready",function(){var h=MathJax.ElementJax.mml;var g=MathJax.Extension["TeX/noErrors"].config;var f=h.math.prototype.toNativeMML,i=h.merror.prototype.toNativeMML;h.math.Augment({toNativeMML:function(j){var k=this.data[0];if(k&&k.data[0]&&k.data[0].isError){j=k.data[0].toNativeMML(j)}else{j=f.call(this,j)}return j}});h.merror.Augment({toNativeMML:function(n){if(!this.isError){return i.call(this,n)}n=n.appendChild(document.createElement("span"));var o=this.data[0].data[0].data.join("").split(/\n/);for(var l=0,k=o.length;l1){n.style.verticalAlign="middle"}}for(var p in g.style){if(g.style.hasOwnProperty(p)){var j=p.replace(/-./g,function(m){return m.charAt(1).toUpperCase()});n.style[j]=g.style[p]}}return n}})});b.Startup.signal.Post("TeX noErrors Ready")})(MathJax.Hub,MathJax.HTML);MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/noErrors.js"); - -MathJax.Extension["TeX/noUndefined"]={version:"2.1",config:MathJax.Hub.CombineConfig("TeX.noUndefined",{disabled:false,attributes:{mathcolor:"red"}})};MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var b=MathJax.Extension["TeX/noUndefined"].config;var a=MathJax.ElementJax.mml;var c=MathJax.InputJax.TeX.Parse.prototype.csUndefined;MathJax.InputJax.TeX.Parse.Augment({csUndefined:function(d){if(b.disabled){return c.apply(this,arguments)}MathJax.Hub.signal.Post(["TeX Jax - undefined control sequence",d]);this.Push(a.mtext(d).With(b.attributes))}});MathJax.Hub.Startup.signal.Post("TeX noUndefined Ready")});MathJax.Ajax.loadComplete("[MathJax]/extensions/TeX/noUndefined.js"); - -MathJax.Extension["TeX/newcommand"]={version:"2.1"};MathJax.Hub.Register.StartupHook("TeX Jax Ready",function(){var b=MathJax.InputJax.TeX;var a=b.Definitions;a.Add({macros:{newcommand:"NewCommand",renewcommand:"NewCommand",newenvironment:"NewEnvironment",renewenvironment:"NewEnvironment",def:"MacroDef",let:"Let"}},null,true);b.Parse.Augment({NewCommand:function(c){var e=this.trimSpaces(this.GetArgument(c)),g=this.GetBrackets(c),d=this.GetBrackets(c),f=this.GetArgument(c);if(e.charAt(0)==="\\"){e=e.substr(1)}if(!e.match(/^(.|[a-z]+)$/i)){b.Error("Illegal control sequence name for "+c)}if(g){g=this.trimSpaces(g);if(!g.match(/^[0-9]+$/)){b.Error("Illegal number of parameters specified in "+c)}}this.setDef(e,["Macro",f,g,d])},NewEnvironment:function(d){var e=this.trimSpaces(this.GetArgument(d)),g=this.GetBrackets(d),f=this.GetArgument(d),c=this.GetArgument(d);if(g){g=this.trimSpaces(g);if(!g.match(/^[0-9]+$/)){b.Error("Illegal number of parameters specified in "+d)}}this.setEnv(e,["BeginEnv","EndEnv",f,c,g])},MacroDef:function(c){var d=this.GetCSname(c),f=this.GetTemplate(c,"\\"+d),e=this.GetArgument(c);if(!(f instanceof Array)){this.setDef(d,["Macro",e,f])}else{this.setDef(d,["MacroWithTemplate",e].concat(f))}},Let:function(d){var e=this.GetCSname(d),f;var g=this.GetNext();if(g==="="){this.i++;g=this.GetNext()}if(g==="\\"){d=this.GetCSname(d);f=this.csFindMacro(d);if(!f){if(a.mathchar0mi[d]){f=["csMathchar0mi",a.mathchar0mi[d]]}else{if(a.mathchar0mo[d]){f=["csMathchar0mo",a.mathchar0mo[d]]}else{if(a.mathchar7[d]){f=["csMathchar7",a.mathchar7[d]]}else{if(a.delimiter["\\"+d]!=null){f=["csDelimiter",a.delimiter["\\"+d]]}}}}}}else{f=["Macro",g];this.i++}this.setDef(e,f)},setDef:function(c,d){d.isUser=true;a.macros[c]=d},setEnv:function(c,d){d.isUser=true;a.environment[c]=d},GetCSname:function(e){var f=this.GetNext();if(f!=="\\"){b.Error("\\ must be followed by a control sequence")}var d=this.trimSpaces(this.GetArgument(e));return d.substr(1)},GetTemplate:function(f,e){var j,g=[],h=0;j=this.GetNext();var d=this.i;while(this.i0){return[h,g]}else{return h}}}this.i++}b.Error("Missing replacement string for definition of "+f)},MacroWithTemplate:function(d,g,h,f){if(h){var c=[];this.GetNext();if(f[0]&&!this.MatchParam(f[0])){b.Error("Use of "+d+" doesn't match its definition")}for(var e=0;eb.config.MAXMACROS){b.Error("MathJax maximum macro substitution count exceeded; is there a recursive macro call?")}},BeginEnv:function(f,h,c,g){if(g){var d=[];for(var e=0;e0)},patternQuote:function(a){return a.replace(/([\^$(){}+*?\-|\[\]\:\\])/g,"\\$1")},endPattern:function(a){return new RegExp(this.patternQuote(a)+"|\\\\.|[{}]","g")},sortLength:function(d,c){if(d.length!==c.length){return c.length-d.length}return(d==c?0:(d0&&this.Get("scriptlevel")>0&&f>=0){return""}return this.TEXSPACELENGTH[Math.abs(f)]},TEXSPACELENGTH:["",a.LENGTH.THINMATHSPACE,a.LENGTH.MEDIUMMATHSPACE,a.LENGTH.THICKMATHSPACE],TEXSPACE:[[0,-1,2,3,0,0,0,1],[-1,-1,0,3,0,0,0,1],[2,2,0,0,2,0,0,2],[3,3,0,0,3,0,0,3],[0,0,0,0,0,0,0,0],[0,-1,2,3,0,0,0,1],[1,1,0,1,1,1,1,1],[1,-1,2,3,1,0,1,1]],autoDefault:function(d){return""},isSpacelike:function(){return false},isEmbellished:function(){return false},Core:function(){return this},CoreMO:function(){return this},hasNewline:function(){if(this.isEmbellished()){return this.CoreMO().hasNewline()}if(this.isToken||this.linebreakContainer){return false}for(var e=0,d=this.data.length;e=55296&&d.charCodeAt(0)<56320)?a.VARIANT.ITALIC:a.VARIANT.NORMAL)}return""},setTeXclass:function(e){this.getPrevClass(e);var d=this.data.join("");if(d.length>1&&d.match(/^[a-z][a-z0-9]*$/i)&&this.texClass===a.TEXCLASS.ORD){this.texClass=a.TEXCLASS.OP;this.autoOP=true}return this}});a.mn=a.mbase.Subclass({type:"mn",isToken:true,texClass:a.TEXCLASS.ORD,defaults:{mathvariant:a.INHERIT,mathsize:a.INHERIT,mathbackground:a.INHERIT,mathcolor:a.INHERIT}});a.mo=a.mbase.Subclass({type:"mo",isToken:true,defaults:{mathvariant:a.INHERIT,mathsize:a.INHERIT,mathbackground:a.INHERIT,mathcolor:a.INHERIT,form:a.AUTO,fence:a.AUTO,separator:a.AUTO,lspace:a.AUTO,rspace:a.AUTO,stretchy:a.AUTO,symmetric:a.AUTO,maxsize:a.AUTO,minsize:a.AUTO,largeop:a.AUTO,movablelimits:a.AUTO,accent:a.AUTO,linebreak:a.LINEBREAK.AUTO,lineleading:a.INHERIT,linebreakstyle:a.AUTO,linebreakmultchar:a.INHERIT,indentalign:a.INHERIT,indentshift:a.INHERIT,indenttarget:a.INHERIT,indentalignfirst:a.INHERIT,indentshiftfirst:a.INHERIT,indentalignlast:a.INHERIT,indentshiftlast:a.INHERIT,texClass:a.AUTO},defaultDef:{form:a.FORM.INFIX,fence:false,separator:false,lspace:a.LENGTH.THICKMATHSPACE,rspace:a.LENGTH.THICKMATHSPACE,stretchy:false,symmetric:true,maxsize:a.SIZE.INFINITY,minsize:"0em",largeop:false,movablelimits:false,accent:false,linebreak:a.LINEBREAK.AUTO,lineleading:"1ex",linebreakstyle:"before",indentalign:a.INDENTALIGN.AUTO,indentshift:"0",indenttarget:"",indentalignfirst:a.INDENTALIGN.INDENTALIGN,indentshiftfirst:a.INDENTSHIFT.INDENTSHIFT,indentalignlast:a.INDENTALIGN.INDENTALIGN,indentshiftlast:a.INDENTSHIFT.INDENTSHIFT,texClass:a.TEXCLASS.REL},SPACE_ATTR:{lspace:1,rspace:2,form:4},useMMLspacing:7,autoDefault:function(f,l){var k=this.def;if(!k){if(f==="form"){this.useMMLspacing&=~this.SPACE_ATTR.form;return this.getForm()}var j=this.data.join("");var e=[this.Get("form"),a.FORM.INFIX,a.FORM.POSTFIX,a.FORM.PREFIX];for(var g=0,d=e.length;g=55296&&j<56320){j=(((j-55296)<<10)+(h.charCodeAt(1)-56320))+65536}for(var f=0,d=this.RANGES.length;f=0;d--){if(this.data[0]&&!this.data[d].isSpacelike()){return this.data[d]}}return null},Core:function(){if(!(this.isEmbellished())||typeof(this.core)==="undefined"){return this}return this.data[this.core]},CoreMO:function(){if(!(this.isEmbellished())||typeof(this.core)==="undefined"){return this}return this.data[this.core].CoreMO()},toString:function(){if(this.inferred){return"["+this.data.join(",")+"]"}return this.SUPER(arguments).toString.call(this)},setTeXclass:function(f){for(var e=0,d=this.data.length;e0){d++}return d},adjustChild_texprimestyle:function(d){if(d==this.den){return true}return this.Get("texprimestyle")},setTeXclass:a.mbase.setSeparateTeXclasses});a.msqrt=a.mbase.Subclass({type:"msqrt",inferRow:true,linebreakContainer:true,texClass:a.TEXCLASS.ORD,setTeXclass:a.mbase.setSeparateTeXclasses,adjustChild_texprimestyle:function(d){return true}});a.mroot=a.mbase.Subclass({type:"mroot",linebreakContainer:true,texClass:a.TEXCLASS.ORD,adjustChild_displaystyle:function(d){if(d===1){return false}return this.Get("displaystyle")},adjustChild_scriptlevel:function(e){var d=this.Get("scriptlevel");if(e===1){d+=2}return d},adjustChild_texprimestyle:function(d){if(d===0){return true}return this.Get("texprimestyle")},setTeXclass:a.mbase.setSeparateTeXclasses});a.mstyle=a.mbase.Subclass({type:"mstyle",isSpacelike:a.mbase.childrenSpacelike,isEmbellished:a.mbase.childEmbellished,Core:a.mbase.childCore,CoreMO:a.mbase.childCoreMO,inferRow:true,defaults:{scriptlevel:a.INHERIT,displaystyle:a.INHERIT,scriptsizemultiplier:Math.sqrt(1/2),scriptminsize:"8pt",mathbackground:a.INHERIT,mathcolor:a.INHERIT,infixlinebreakstyle:a.LINEBREAKSTYLE.BEFORE,decimalseparator:"."},adjustChild_scriptlevel:function(f){var e=this.scriptlevel;if(e==null){e=this.Get("scriptlevel")}else{if(String(e).match(/^ *[-+]/)){delete this.scriptlevel;var d=this.Get("scriptlevel");this.scriptlevel=e;e=d+parseInt(e)}}return e},inheritFromMe:true,noInherit:{mpadded:{width:true,height:true,depth:true,lspace:true,voffset:true},mtable:{width:true,height:true,depth:true,align:true}},setTeXclass:a.mbase.setChildTeXclass});a.merror=a.mbase.Subclass({type:"merror",inferRow:true,linebreakContainer:true,texClass:a.TEXCLASS.ORD});a.mpadded=a.mbase.Subclass({type:"mpadded",inferRow:true,isSpacelike:a.mbase.childrenSpacelike,isEmbellished:a.mbase.childEmbellished,Core:a.mbase.childCore,CoreMO:a.mbase.childCoreMO,defaults:{mathbackground:a.INHERIT,mathcolor:a.INHERIT,width:"",height:"",depth:"",lspace:0,voffset:0},setTeXclass:a.mbase.setChildTeXclass});a.mphantom=a.mbase.Subclass({type:"mphantom",texClass:a.TEXCLASS.ORD,inferRow:true,isSpacelike:a.mbase.childrenSpacelike,isEmbellished:a.mbase.childEmbellished,Core:a.mbase.childCore,CoreMO:a.mbase.childCoreMO,setTeXclass:a.mbase.setChildTeXclass});a.mfenced=a.mbase.Subclass({type:"mfenced",defaults:{mathbackground:a.INHERIT,mathcolor:a.INHERIT,open:"(",close:")",separators:","},texClass:a.TEXCLASS.OPEN,setTeXclass:function(g){this.getPrevClass(g);var e=this.getValues("open","close","separators");e.open=e.open.replace(/[ \t\n\r]/g,"");e.close=e.close.replace(/[ \t\n\r]/g,"");e.separators=e.separators.replace(/[ \t\n\r]/g,"");if(e.open!==""){this.SetData("open",a.mo(e.open).With({stretchy:true,texClass:a.TEXCLASS.OPEN}));g=this.data.open.setTeXclass(g)}if(e.separators!==""){while(e.separators.length0){return false}return this.Get("displaystyle")},adjustChild_scriptlevel:function(e){var d=this.Get("scriptlevel");if(e>0){d++}return d},adjustChild_texprimestyle:function(d){if(d===this.sub){return true}return this.Get("texprimestyle")},setTeXclass:a.mbase.setBaseTeXclasses});a.msub=a.msubsup.Subclass({type:"msub"});a.msup=a.msubsup.Subclass({type:"msup",sub:2,sup:1});a.mmultiscripts=a.msubsup.Subclass({type:"mmultiscripts",adjustChild_texprimestyle:function(d){if(d%2===1){return true}return this.Get("texprimestyle")}});a.mprescripts=a.mbase.Subclass({type:"mprescripts"});a.none=a.mbase.Subclass({type:"none"});a.munderover=a.mbase.Subclass({type:"munderover",base:0,under:1,over:2,sub:1,sup:2,ACCENTS:["","accentunder","accent"],linebreakContainer:true,isEmbellished:a.mbase.childEmbellished,Core:a.mbase.childCore,CoreMO:a.mbase.childCoreMO,defaults:{mathbackground:a.INHERIT,mathcolor:a.INHERIT,accent:a.AUTO,accentunder:a.AUTO,align:a.ALIGN.CENTER,texClass:a.AUTO,subscriptshift:"",superscriptshift:""},autoDefault:function(d){if(d==="texClass"){return(this.isEmbellished()?this.CoreMO().Get(d):a.TEXCLASS.ORD)}if(d==="accent"&&this.data[this.over]){return this.data[this.over].CoreMO().Get("accent")}if(d==="accentunder"&&this.data[this.under]){return this.data[this.under].CoreMO().Get("accent")}return false},adjustChild_displaystyle:function(d){if(d>0){return false}return this.Get("displaystyle")},adjustChild_scriptlevel:function(f){var e=this.Get("scriptlevel");var d=(this.data[this.base]&&!this.Get("displaystyle")&&this.data[this.base].CoreMO().Get("movablelimits"));if(f==this.under&&(d||!this.Get("accentunder"))){e++}if(f==this.over&&(d||!this.Get("accent"))){e++}return e},adjustChild_texprimestyle:function(d){if(d===this.base&&this.data[this.over]){return true}return this.Get("texprimestyle")},setTeXclass:a.mbase.setBaseTeXclasses});a.munder=a.munderover.Subclass({type:"munder"});a.mover=a.munderover.Subclass({type:"mover",over:1,under:2,sup:1,sub:2,ACCENTS:["","accent","accentunder"]});a.mtable=a.mbase.Subclass({type:"mtable",defaults:{mathbackground:a.INHERIT,mathcolor:a.INHERIT,align:a.ALIGN.AXIS,rowalign:a.ALIGN.BASELINE,columnalign:a.ALIGN.CENTER,groupalign:"{left}",alignmentscope:true,columnwidth:a.WIDTH.AUTO,width:a.WIDTH.AUTO,rowspacing:"1ex",columnspacing:".8em",rowlines:a.LINES.NONE,columnlines:a.LINES.NONE,frame:a.LINES.NONE,framespacing:"0.4em 0.5ex",equalrows:false,equalcolumns:false,displaystyle:false,side:a.SIDE.RIGHT,minlabelspacing:"0.8em",texClass:a.TEXCLASS.ORD,useHeight:1},inheritFromMe:true,noInherit:{mover:{align:true},munder:{align:true},munderover:{align:true},mtable:{align:true,rowalign:true,columnalign:true,groupalign:true,alignmentscope:true,columnwidth:true,width:true,rowspacing:true,columnspacing:true,rowlines:true,columnlines:true,frame:true,framespacing:true,equalrows:true,equalcolumns:true,side:true,minlabelspacing:true,texClass:true,useHeight:1}},linebreakContainer:true,Append:function(){for(var e=0,d=arguments.length;e>10)+55296)+String.fromCharCode((d&1023)+56320)}});a.xml=a.mbase.Subclass({type:"xml",Init:function(){this.div=document.createElement("div");return this.SUPER(arguments).Init.apply(this,arguments)},Append:function(){for(var e=0,d=arguments.length;e":c.REL,"?":[1,1,b.CLOSE],"\\":c.ORD,"^":c.ORD11,_:c.ORD11,"|":[2,2,b.ORD,{fence:true,stretchy:true,symmetric:true}],"#":c.ORD,"$":c.ORD,"\u002E":[0,3,b.PUNCT,{separator:true}],"\u02B9":c.ORD,"\u0300":c.ACCENT,"\u0301":c.ACCENT,"\u0303":c.WIDEACCENT,"\u0304":c.ACCENT,"\u0306":c.ACCENT,"\u0307":c.ACCENT,"\u0308":c.ACCENT,"\u030C":c.ACCENT,"\u0332":c.WIDEACCENT,"\u0338":c.REL4,"\u2015":[0,0,b.ORD,{stretchy:true}],"\u2017":[0,0,b.ORD,{stretchy:true}],"\u2020":c.BIN3,"\u2021":c.BIN3,"\u20D7":c.ACCENT,"\u2111":c.ORD,"\u2113":c.ORD,"\u2118":c.ORD,"\u211C":c.ORD,"\u2205":c.ORD,"\u221E":c.ORD,"\u2305":c.BIN3,"\u2306":c.BIN3,"\u2322":c.REL4,"\u2323":c.REL4,"\u2329":c.OPEN,"\u232A":c.CLOSE,"\u23AA":c.ORD,"\u23AF":[0,0,b.ORD,{stretchy:true}],"\u23B0":c.OPEN,"\u23B1":c.CLOSE,"\u2500":c.ORD,"\u25EF":c.BIN3,"\u2660":c.ORD,"\u2661":c.ORD,"\u2662":c.ORD,"\u2663":c.ORD,"\u3008":c.OPEN,"\u3009":c.CLOSE,"\uFE37":c.WIDEACCENT,"\uFE38":c.WIDEACCENT}}},{OPTYPES:c});a.mo.prototype.OPTABLE.infix["^"]=c.WIDEREL;a.mo.prototype.OPTABLE.infix._=c.WIDEREL})(MathJax.ElementJax.mml);MathJax.ElementJax.mml.loadComplete("jax.js"); - -MathJax.InputJax.TeX=MathJax.InputJax({id:"TeX",version:"2.1",directory:MathJax.InputJax.directory+"/TeX",extensionDir:MathJax.InputJax.extensionDir+"/TeX",config:{TagSide:"right",TagIndent:"0.8em",MultLineWidth:"85%",equationNumbers:{autoNumber:"none",formatNumber:function(a){return a},formatTag:function(a){return"("+a+")"},formatID:function(a){return"mjx-eqn-"+String(a).replace(/[:"'<>&]/g,"")},formatURL:function(a){return"#"+escape(a)},useLabelIds:true}}});MathJax.InputJax.TeX.Register("math/tex");MathJax.InputJax.TeX.loadComplete("config.js"); - -(function(d,c,i){var h,g="\u00A0";var e=MathJax.Object.Subclass({Init:function(l,k){this.global={isInner:k};this.data=[b.start(this.global)];if(l){this.data[0].env=l}this.env=this.data[0].env},Push:function(){var l,k,n,o;for(l=0,k=arguments.length;l":"27E9","\\lt":"27E8","\\gt":"27E9","/":"/","|":["|",{texClass:h.TEXCLASS.ORD}],".":"","\\\\":"\\","\\lmoustache":"23B0","\\rmoustache":"23B1","\\lgroup":"27EE","\\rgroup":"27EF","\\arrowvert":"23D0","\\Arrowvert":"2016","\\bracevert":"23AA","\\Vert":["2225",{texClass:h.TEXCLASS.ORD}],"\\|":["2225",{texClass:h.TEXCLASS.ORD}],"\\vert":["|",{texClass:h.TEXCLASS.ORD}],"\\uparrow":"2191","\\downarrow":"2193","\\updownarrow":"2195","\\Uparrow":"21D1","\\Downarrow":"21D3","\\Updownarrow":"21D5","\\backslash":"\\","\\rangle":"27E9","\\langle":"27E8","\\rbrace":"}","\\lbrace":"{","\\}":"}","\\{":"{","\\rceil":"2309","\\lceil":"2308","\\rfloor":"230B","\\lfloor":"230A","\\lbrack":"[","\\rbrack":"]"},macros:{displaystyle:["SetStyle","D",true,0],textstyle:["SetStyle","T",false,0],scriptstyle:["SetStyle","S",false,1],scriptscriptstyle:["SetStyle","SS",false,2],rm:["SetFont",h.VARIANT.NORMAL],mit:["SetFont",h.VARIANT.ITALIC],oldstyle:["SetFont",h.VARIANT.OLDSTYLE],cal:["SetFont",h.VARIANT.CALIGRAPHIC],it:["SetFont","-tex-mathit"],bf:["SetFont",h.VARIANT.BOLD],bbFont:["SetFont",h.VARIANT.DOUBLESTRUCK],scr:["SetFont",h.VARIANT.SCRIPT],frak:["SetFont",h.VARIANT.FRAKTUR],sf:["SetFont",h.VARIANT.SANSSERIF],tt:["SetFont",h.VARIANT.MONOSPACE],tiny:["SetSize",0.5],Tiny:["SetSize",0.6],scriptsize:["SetSize",0.7],small:["SetSize",0.85],normalsize:["SetSize",1],large:["SetSize",1.2],Large:["SetSize",1.44],LARGE:["SetSize",1.73],huge:["SetSize",2.07],Huge:["SetSize",2.49],arcsin:["NamedFn"],arccos:["NamedFn"],arctan:["NamedFn"],arg:["NamedFn"],cos:["NamedFn"],cosh:["NamedFn"],cot:["NamedFn"],coth:["NamedFn"],csc:["NamedFn"],deg:["NamedFn"],det:"NamedOp",dim:["NamedFn"],exp:["NamedFn"],gcd:"NamedOp",hom:["NamedFn"],inf:"NamedOp",ker:["NamedFn"],lg:["NamedFn"],lim:"NamedOp",liminf:["NamedOp","lim inf"],limsup:["NamedOp","lim sup"],ln:["NamedFn"],log:["NamedFn"],max:"NamedOp",min:"NamedOp",Pr:"NamedOp",sec:["NamedFn"],sin:["NamedFn"],sinh:["NamedFn"],sup:"NamedOp",tan:["NamedFn"],tanh:["NamedFn"],limits:["Limits",1],nolimits:["Limits",0],overline:["UnderOver","00AF"],underline:["UnderOver","005F"],overbrace:["UnderOver","23DE",1],underbrace:["UnderOver","23DF",1],overrightarrow:["UnderOver","2192"],underrightarrow:["UnderOver","2192"],overleftarrow:["UnderOver","2190"],underleftarrow:["UnderOver","2190"],overleftrightarrow:["UnderOver","2194"],underleftrightarrow:["UnderOver","2194"],overset:"Overset",underset:"Underset",stackrel:["Macro","\\mathrel{\\mathop{#2}\\limits^{#1}}",2],over:"Over",overwithdelims:"Over",atop:"Over",atopwithdelims:"Over",above:"Over",abovewithdelims:"Over",brace:["Over","{","}"],brack:["Over","[","]"],choose:["Over","(",")"],frac:"Frac",sqrt:"Sqrt",root:"Root",uproot:["MoveRoot","upRoot"],leftroot:["MoveRoot","leftRoot"],left:"LeftRight",right:"LeftRight",middle:"Middle",llap:"Lap",rlap:"Lap",raise:"RaiseLower",lower:"RaiseLower",moveleft:"MoveLeftRight",moveright:"MoveLeftRight",",":["Spacer",h.LENGTH.THINMATHSPACE],":":["Spacer",h.LENGTH.MEDIUMMATHSPACE],">":["Spacer",h.LENGTH.MEDIUMMATHSPACE],";":["Spacer",h.LENGTH.THICKMATHSPACE],"!":["Spacer",h.LENGTH.NEGATIVETHINMATHSPACE],enspace:["Spacer",".5em"],quad:["Spacer","1em"],qquad:["Spacer","2em"],thinspace:["Spacer",h.LENGTH.THINMATHSPACE],negthinspace:["Spacer",h.LENGTH.NEGATIVETHINMATHSPACE],hskip:"Hskip",hspace:"Hskip",kern:"Hskip",mskip:"Hskip",mspace:"Hskip",mkern:"Hskip",Rule:["Rule"],Space:["Rule","blank"],big:["MakeBig",h.TEXCLASS.ORD,0.85],Big:["MakeBig",h.TEXCLASS.ORD,1.15],bigg:["MakeBig",h.TEXCLASS.ORD,1.45],Bigg:["MakeBig",h.TEXCLASS.ORD,1.75],bigl:["MakeBig",h.TEXCLASS.OPEN,0.85],Bigl:["MakeBig",h.TEXCLASS.OPEN,1.15],biggl:["MakeBig",h.TEXCLASS.OPEN,1.45],Biggl:["MakeBig",h.TEXCLASS.OPEN,1.75],bigr:["MakeBig",h.TEXCLASS.CLOSE,0.85],Bigr:["MakeBig",h.TEXCLASS.CLOSE,1.15],biggr:["MakeBig",h.TEXCLASS.CLOSE,1.45],Biggr:["MakeBig",h.TEXCLASS.CLOSE,1.75],bigm:["MakeBig",h.TEXCLASS.REL,0.85],Bigm:["MakeBig",h.TEXCLASS.REL,1.15],biggm:["MakeBig",h.TEXCLASS.REL,1.45],Biggm:["MakeBig",h.TEXCLASS.REL,1.75],mathord:["TeXAtom",h.TEXCLASS.ORD],mathop:["TeXAtom",h.TEXCLASS.OP],mathopen:["TeXAtom",h.TEXCLASS.OPEN],mathclose:["TeXAtom",h.TEXCLASS.CLOSE],mathbin:["TeXAtom",h.TEXCLASS.BIN],mathrel:["TeXAtom",h.TEXCLASS.REL],mathpunct:["TeXAtom",h.TEXCLASS.PUNCT],mathinner:["TeXAtom",h.TEXCLASS.INNER],vcenter:["TeXAtom",h.TEXCLASS.VCENTER],mathchoice:["Extension","mathchoice"],buildrel:"BuildRel",hbox:["HBox",0],text:"HBox",mbox:["HBox",0],fbox:"FBox",strut:"Strut",mathstrut:["Macro","\\vphantom{(}"],phantom:"Phantom",vphantom:["Phantom",1,0],hphantom:["Phantom",0,1],smash:"Smash",acute:["Accent","00B4"],grave:["Accent","0060"],ddot:["Accent","00A8"],tilde:["Accent","007E"],bar:["Accent","00AF"],breve:["Accent","02D8"],check:["Accent","02C7"],hat:["Accent","005E"],vec:["Accent","2192"],dot:["Accent","02D9"],widetilde:["Accent","007E",1],widehat:["Accent","005E",1],matrix:"Matrix",array:"Matrix",pmatrix:["Matrix","(",")"],cases:["Matrix","{","","left left",null,".1em",null,true],eqalign:["Matrix",null,null,"right left",h.LENGTH.THICKMATHSPACE,".5em","D"],displaylines:["Matrix",null,null,"center",null,".5em","D"],cr:"Cr","\\":"CrLaTeX",newline:"Cr",hline:["HLine","solid"],hdashline:["HLine","dashed"],eqalignno:["Matrix",null,null,"right left right",h.LENGTH.THICKMATHSPACE+" 3em",".5em","D"],leqalignno:["Matrix",null,null,"right left right",h.LENGTH.THICKMATHSPACE+" 3em",".5em","D"],bmod:["Macro","\\mathbin{\\mmlToken{mo}{mod}}"],pmod:["Macro","\\pod{\\mmlToken{mi}{mod}\\kern 6mu #1}",1],mod:["Macro","\\mathchoice{\\kern18mu}{\\kern12mu}{\\kern12mu}{\\kern12mu}\\mmlToken{mi}{mod}\\,\\,#1",1],pod:["Macro","\\mathchoice{\\kern18mu}{\\kern8mu}{\\kern8mu}{\\kern8mu}(#1)",1],iff:["Macro","\\;\\Longleftrightarrow\\;"],skew:["Macro","{{#2{#3\\mkern#1mu}\\mkern-#1mu}{}}",3],mathcal:["Macro","{\\cal #1}",1],mathscr:["Macro","{\\scr #1}",1],mathrm:["Macro","{\\rm #1}",1],mathbf:["Macro","{\\bf #1}",1],mathbb:["Macro","{\\bbFont #1}",1],Bbb:["Macro","{\\bbFont #1}",1],mathit:["Macro","{\\it #1}",1],mathfrak:["Macro","{\\frak #1}",1],mathsf:["Macro","{\\sf #1}",1],mathtt:["Macro","{\\tt #1}",1],textrm:["Macro","\\mathord{\\rm\\text{#1}}",1],textit:["Macro","\\mathord{\\it{\\text{#1}}}",1],textbf:["Macro","\\mathord{\\bf{\\text{#1}}}",1],pmb:["Macro","\\rlap{#1}\\kern1px{#1}",1],TeX:["Macro","T\\kern-.14em\\lower.5ex{E}\\kern-.115em X"],LaTeX:["Macro","L\\kern-.325em\\raise.21em{\\scriptstyle{A}}\\kern-.17em\\TeX"]," ":["Macro","\\text{ }"],not:"Not",dots:"Dots",space:"Tilde",begin:"Begin",end:"End",newcommand:["Extension","newcommand"],renewcommand:["Extension","newcommand"],newenvironment:["Extension","newcommand"],renewenvironment:["Extension","newcommand"],def:["Extension","newcommand"],let:["Extension","newcommand"],verb:["Extension","verb"],boldsymbol:["Extension","boldsymbol"],tag:["Extension","AMSmath"],notag:["Extension","AMSmath"],label:["Extension","AMSmath"],ref:["Extension","AMSmath"],eqref:["Extension","AMSmath"],nonumber:["Macro","\\notag"],unicode:["Extension","unicode"],color:"Color",href:["Extension","HTML"],"class":["Extension","HTML"],style:["Extension","HTML"],cssId:["Extension","HTML"],bbox:["Extension","bbox"],mmlToken:"MmlToken",require:"Require"},environment:{array:["AlignedArray"],matrix:["Array",null,null,null,"c"],pmatrix:["Array",null,"(",")","c"],bmatrix:["Array",null,"[","]","c"],Bmatrix:["Array",null,"\\{","\\}","c"],vmatrix:["Array",null,"\\vert","\\vert","c"],Vmatrix:["Array",null,"\\Vert","\\Vert","c"],cases:["Array",null,"\\{",".","ll",null,".1em"],equation:[null,"Equation"],"equation*":[null,"Equation"],eqnarray:["ExtensionEnv",null,"AMSmath"],"eqnarray*":["ExtensionEnv",null,"AMSmath"],align:["ExtensionEnv",null,"AMSmath"],"align*":["ExtensionEnv",null,"AMSmath"],aligned:["ExtensionEnv",null,"AMSmath"],multline:["ExtensionEnv",null,"AMSmath"],"multline*":["ExtensionEnv",null,"AMSmath"],split:["ExtensionEnv",null,"AMSmath"],gather:["ExtensionEnv",null,"AMSmath"],"gather*":["ExtensionEnv",null,"AMSmath"],gathered:["ExtensionEnv",null,"AMSmath"],alignat:["ExtensionEnv",null,"AMSmath"],"alignat*":["ExtensionEnv",null,"AMSmath"],alignedat:["ExtensionEnv",null,"AMSmath"]},p_height:1.2/0.85});if(this.config.Macros){var k=this.config.Macros;for(var l in k){if(k.hasOwnProperty(l)){if(typeof(k[l])==="string"){f.macros[l]=["Macro",k[l]]}else{f.macros[l]=["Macro"].concat(k[l])}f.macros[l].isUser=true}}}};var a=MathJax.Object.Subclass({Init:function(l,m){this.string=l;this.i=0;this.macroCount=0;var k;if(m){k={};for(var n in m){if(m.hasOwnProperty(n)){k[n]=m[n]}}}this.stack=d.Stack(k,!!m);this.Parse();this.Push(b.stop())},Parse:function(){var l,k;while(this.i=55296&&k<56320){l+=this.string.charAt(this.i++)}if(f.special[l]){this[f.special[l]](l)}else{if(f.letter.test(l)){this.Variable(l)}else{if(f.digit.test(l)){this.Number(l)}else{this.Other(l)}}}}},Push:function(){this.stack.Push.apply(this.stack,arguments)},mml:function(){if(this.stack.Top().type!=="mml"){return null}return this.stack.Top().data[0]},mmlToken:function(k){return k},ControlSequence:function(n){var k=this.GetCS(),m=this.csFindMacro(k);if(m){if(!(m instanceof Array)){m=[m]}var l=m[0];if(!(l instanceof Function)){l=this[l]}l.apply(this,[n+k].concat(m.slice(1)))}else{if(f.mathchar0mi[k]){this.csMathchar0mi(k,f.mathchar0mi[k])}else{if(f.mathchar0mo[k]){this.csMathchar0mo(k,f.mathchar0mo[k])}else{if(f.mathchar7[k]){this.csMathchar7(k,f.mathchar7[k])}else{if(f.delimiter["\\"+k]!=null){this.csDelimiter(k,f.delimiter["\\"+k])}else{this.csUndefined(n+k)}}}}}},csFindMacro:function(k){return f.macros[k]},csMathchar0mi:function(k,m){var l={mathvariant:h.VARIANT.ITALIC};if(m instanceof Array){l=m[1];m=m[0]}this.Push(this.mmlToken(h.mi(h.entity("#x"+m)).With(l)))},csMathchar0mo:function(k,m){var l={stretchy:false};if(m instanceof Array){l=m[1];l.stretchy=false;m=m[0]}this.Push(this.mmlToken(h.mo(h.entity("#x"+m)).With(l)))},csMathchar7:function(k,m){var l={mathvariant:h.VARIANT.NORMAL};if(m instanceof Array){l=m[1];m=m[0]}if(this.stack.env.font){l.mathvariant=this.stack.env.font}this.Push(this.mmlToken(h.mi(h.entity("#x"+m)).With(l)))},csDelimiter:function(k,m){var l={};if(m instanceof Array){l=m[1];m=m[0]}if(m.length===4){m=h.entity("#x"+m)}else{m=h.chars(m)}this.Push(this.mmlToken(h.mo(m).With({fence:false,stretchy:false}).With(l)))},csUndefined:function(k){d.Error("Undefined control sequence "+k)},Variable:function(l){var k={};if(this.stack.env.font){k.mathvariant=this.stack.env.font}this.Push(this.mmlToken(h.mi(h.chars(l)).With(k)))},Number:function(m){var k,l=this.string.slice(this.i-1).match(f.number);if(l){k=h.mn(l[0].replace(/[{}]/g,""));this.i+=l[0].length-1}else{k=h.mo(h.chars(m))}if(this.stack.env.font){k.mathvariant=this.stack.env.font}this.Push(this.mmlToken(k))},Open:function(k){this.Push(b.open())},Close:function(k){this.Push(b.close())},Tilde:function(k){this.Push(h.mtext(h.chars(g)))},Space:function(k){},Superscript:function(o){if(this.GetNext().match(/\d/)){this.string=this.string.substr(0,this.i+1)+" "+this.string.substr(this.i+1)}var k,n,l,m=this.stack.Top();if(m.type==="prime"){l=m.data[0];n=m.data[1];this.stack.Pop()}else{l=this.stack.Prev();if(!l){l=h.mi("")}}if(l.isEmbellishedWrapper){l=l.data[0].data[0]}if(l.type==="msubsup"){if(l.data[l.sup]){d.Error("Double exponent: use braces to clarify")}k=l.sup}else{if(l.movesupsub){if(l.type!=="munderover"||l.data[l.over]){if(l.movablelimits&&l.isa(h.mi)){l=this.mi2mo(l)}l=h.munderover(l,null,null).With({movesupsub:true})}k=l.over}else{l=h.msubsup(l,null,null);k=l.sup}}this.Push(b.subsup(l).With({position:k,primes:n}))},Subscript:function(o){if(this.GetNext().match(/\d/)){this.string=this.string.substr(0,this.i+1)+" "+this.string.substr(this.i+1)}var k,n,l,m=this.stack.Top();if(m.type==="prime"){l=m.data[0];n=m.data[1];this.stack.Pop()}else{l=this.stack.Prev();if(!l){l=h.mi("")}}if(l.isEmbellishedWrapper){l=l.data[0].data[0]}if(l.type==="msubsup"){if(l.data[l.sub]){d.Error("Double subscripts: use braces to clarify")}k=l.sub}else{if(l.movesupsub){if(l.type!=="munderover"||l.data[l.under]){if(l.movablelimits&&l.isa(h.mi)){l=this.mi2mo(l)}l=h.munderover(l,null,null).With({movesupsub:true})}k=l.under}else{l=h.msubsup(l,null,null);k=l.sub}}this.Push(b.subsup(l).With({position:k,primes:n}))},PRIME:"\u2032",SMARTQUOTE:"\u2019",Prime:function(m){var l=this.stack.Prev();if(!l){l=h.mi()}if(l.type==="msubsup"&&l.data[l.sup]){d.Error("Prime causes double exponent: use braces to clarify")}var k="";this.i--;do{k+=this.PRIME;this.i++,m=this.GetNext()}while(m==="'"||m===this.SMARTQUOTE);k=["","\u2032","\u2033","\u2034","\u2057"][k.length]||k;this.Push(b.prime(l,this.mmlToken(h.mo(k))))},mi2mo:function(k){var l=h.mo();l.Append.apply(l,k.data);var m;for(m in l.defaults){if(l.defaults.hasOwnProperty(m)&&k[m]!=null){l[m]=k[m]}}for(m in h.copyAttributes){if(h.copyAttributes.hasOwnProperty(m)&&k[m]!=null){l[m]=k[m]}}return l},Comment:function(k){while(this.id.config.MAXMACROS){d.Error("MathJax maximum macro substitution count exceeded; is there a recursive macro call?")}},Matrix:function(l,n,s,p,r,m,k,t){var q=this.GetNext();if(q===""){d.Error("Missing argument for "+l)}if(q==="{"){this.i++}else{this.string=q+"}"+this.string.slice(this.i+1);this.i=0}var o=b.array().With({requireClose:true,arraydef:{rowspacing:(m||"4pt"),columnspacing:(r||"1em")}});if(t){o.isCases=true}if(n||s){o.open=n;o.close=s}if(k==="D"){o.arraydef.displaystyle=true}if(p!=null){o.arraydef.columnalign=p}this.Push(o)},Entry:function(n){this.Push(b.cell().With({isEntry:true,name:n}));if(this.stack.Top().isCases){var l=this.string;var q=0,o=this.i,k=l.length;while(od.config.MAXMACROS){d.Error("MathJax maximum substitution count exceeded; is there a recursive latex environment?")}if(!(n instanceof Array)){n=[n]}var k=b.begin().With({name:m,end:n[1],parse:this});if(n[0]&&this[n[0]]){k=this[n[0]].apply(this,[k].concat(n.slice(2)))}this.Push(k)},End:function(k){this.Push(b.end().With({name:this.GetArgument(k)}))},envFindName:function(k){return f.environment[k]},Equation:function(k,l){return l},ExtensionEnv:function(l,k){this.Extension(l.name,k,"environment")},Array:function(l,n,s,q,r,m,k,o){if(!q){q=this.GetArgument("\\begin{"+l.name+"}")}var t=("c"+q).replace(/[^clr|:]/g,"").replace(/[^|:]([|:])+/g,"$1");q=q.replace(/[^clr]/g,"").split("").join(" ");q=q.replace(/l/g,"left").replace(/r/g,"right").replace(/c/g,"center");var p=b.array().With({arraydef:{columnalign:q,columnspacing:(r||"1em"),rowspacing:(m||"4pt")}});if(t.match(/[|:]/)){if(t.charAt(0).match(/[|:]/)){p.frame.push("left");p.frame.dashed=t.charAt(0)===":"}if(t.charAt(t.length-1).match(/[|:]/)){p.frame.push("right")}t=t.substr(1,t.length-2);p.arraydef.columnlines=t.split("").join(" ").replace(/[^|: ]/g,"none").replace(/\|/g,"solid").replace(/:/g,"dashed")}if(n){p.open=this.convertDelimiter(n)}if(s){p.close=this.convertDelimiter(s)}if(k==="D"){p.arraydef.displaystyle=true}if(k==="S"){p.arraydef.scriptlevel=1}if(o){p.arraydef.useHeight=false}this.Push(l);return p},AlignedArray:function(k){var l=this.GetBrackets("\\begin{"+k.name+"}");return this.setArrayAlign(this.Array.apply(this,arguments),l)},setArrayAlign:function(l,k){k=this.trimSpaces(k||"");if(k==="t"){l.arraydef.align="baseline 1"}else{if(k==="b"){l.arraydef.align="baseline -1"}else{if(k==="c"){l.arraydef.align="center"}else{if(k){l.arraydef.align=k}}}}return l},convertDelimiter:function(k){if(k){k=f.delimiter[k]}if(k==null){return null}if(k instanceof Array){k=k[0]}if(k.length===4){k=String.fromCharCode(parseInt(k,16))}return k},trimSpaces:function(k){if(typeof(k)!="string"){return k}return k.replace(/^\s+|\s+$/g,"")},nextIsSpace:function(){return this.string.charAt(this.i).match(/[ \n\r\t]/)},GetNext:function(){while(this.nextIsSpace()){this.i++}return this.string.charAt(this.i)},GetCS:function(){var k=this.string.slice(this.i).match(/^([a-z]+|.) ?/i);if(k){this.i+=k[1].length;return k[1]}else{this.i++;return" "}},GetArgument:function(l,m){switch(this.GetNext()){case"":if(!m){d.Error("Missing argument for "+l)}return null;case"}":if(!m){d.Error("Extra close brace or missing open brace")}return null;case"\\":this.i++;return"\\"+this.GetCS();case"{":var k=++this.i,n=1;while(this.il.length){d.Error("Illegal macro parameter reference")}n=this.AddArgs(this.AddArgs(n,o),l[p-1]);o=""}}else{o+=p}}}return this.AddArgs(n,o)},AddArgs:function(l,k){if(k.match(/^[a-z]/i)&&l.match(/(^|[^\\])(\\\\)*\\[a-z]+$/i)){l+=" "}if(l.length+k.length>d.config.MAXBUFFER){d.Error("MathJax internal buffer size exceeded; is there a recursive macro call?")}return l+k}});d.Augment({Stack:e,Parse:a,Definitions:f,Startup:j,config:{MAXMACROS:10000,MAXBUFFER:5*1024},sourceMenuTitle:"TeX Commands",prefilterHooks:MathJax.Callback.Hooks(true),postfilterHooks:MathJax.Callback.Hooks(true),Config:function(){this.SUPER(arguments).Config.apply(this,arguments);if(this.config.equationNumbers.autoNumber!=="none"){if(!this.config.extensions){this.config.extensions=[]}this.config.extensions.push("AMSmath.js")}},Translate:function(k){var l,m=false,o=MathJax.HTML.getScript(k);var q=(k.type.replace(/\n/g," ").match(/(;|\s|\n)mode\s*=\s*display(;|\s|\n|$)/)!=null);var p={math:o,display:q,script:k};this.prefilterHooks.Execute(p);o=p.math;try{l=d.Parse(o).mml()}catch(n){if(!n.texError){throw n}l=this.formatError(n,o,q,k);m=true}if(l.inferred){l=h.apply(MathJax.ElementJax,l.data)}else{l=h(l)}if(q){l.root.display="block"}if(m){l.texError=true}p.math=l;this.postfilterHooks.Execute(p);return p.math},prefilterMath:function(l,m,k){return l},postfilterMath:function(l,m,k){this.combineRelations(l.root);return l},formatError:function(n,m,o,k){var l=n.message.replace(/\n.*/,"");c.signal.Post(["TeX Jax - parse error",l,m,o,k]);return h.merror(l)},Error:function(k){throw c.Insert(Error(k),{texError:true})},Macro:function(k,l,m){f.macros[k]=["Macro"].concat([].slice.call(arguments,1));f.macros[k].isUser=true},combineRelations:function(o){var p,k,n,l;for(p=0,k=o.data.length;p=9){delete MathJax.OutputJax["HTML-CSS"].config.styles["#MathJax_Tooltip"].filter}if(!MathJax.Hub.config.delayJaxRegistration){MathJax.OutputJax["HTML-CSS"].Register("jax/mml")}MathJax.Hub.Register.StartupHook("End Config",[function(b,c){var a=b.Insert({minBrowserVersion:{Firefox:3,Opera:9.52,MSIE:6,Chrome:0.3,Safari:2,Konqueror:4},inlineMathDelimiters:["$","$"],displayMathDelimiters:["$$","$$"],multilineDisplay:true,minBrowserTranslate:function(f){var e=b.getJaxFor(f),k=["[Math]"],j;var h=document.createElement("span",{className:"MathJax_Preview"});if(e.inputJax==="TeX"){if(e.root.Get("displaystyle")){j=a.displayMathDelimiters;k=[j[0]+e.originalText+j[1]];if(a.multilineDisplay){k=k[0].split(/\n/)}}else{j=a.inlineMathDelimiters;k=[j[0]+e.originalText.replace(/^\s+/,"").replace(/\s+$/,"")+j[1]]}}for(var g=0,d=k.length;g=o.HTMLCSSlast+o.HTMLCSSchunk){this.postTranslate(o);o.HTMLCSSchunk=Math.floor(o.HTMLCSSchunk*this.config.EqnChunkFactor);o.HTMLCSSdelay=true}}},postTranslate:function(q){var k=q.jax[this.id];if(!this.hideProcessedMath){return}for(var o=q.HTMLCSSlast,j=q.HTMLCSSeqn;o=0&&!this.initialSkipBug)||this.negativeBBoxes||!n.firstChild){k=n.offsetWidth;m=n.parentNode.offsetHeight}else{if(n.bbox&&l<0&&this.msieNegativeBBoxBug){k=-n.offsetWidth,m=n.parentNode.offsetHeight}else{if(this.initialSkipBug){var j=n.style.position;n.style.position="absolute";o=this.startMarker;n.insertBefore(o,n.firstChild)}n.appendChild(this.endMarker);k=this.endMarker.offsetLeft-o.offsetLeft;n.removeChild(this.endMarker);if(this.initialSkipBug){n.removeChild(o);n.style.position=j}}}if(m!=null){n.parentNode.HH=m/this.em}return k/this.em},Measured:function(l,k){var m=l.bbox;if(m.width==null&&m.w&&!m.isMultiline){var j=this.getW(l);m.rw+=j-m.w;m.w=j;m.exactW=true}if(!k){k=l.parentNode}if(!k.bbox){k.bbox=m}return l},Remeasured:function(k,j){j.bbox=this.Measured(k,j).bbox},MeasureSpans:function(n){var q=[],s,p,l,t,j,o,k;for(p=0,l=n.length;p=0&&!this.initialSkipBug)||(t.w<0&&this.msieNegativeBBoxBug)){q.push([s])}else{if(this.initialSkipBug){j=this.startMarker.cloneNode(true);o=this.endMarker.cloneNode(true);s.insertBefore(j,s.firstChild);s.appendChild(o);q.push([s,j,o,s.style.position]);s.style.position="absolute"}else{o=this.endMarker.cloneNode(true);s.appendChild(o);q.push([s,null,o])}}}for(p=0,l=q.length;p=0&&!this.initialSkipBug)||this.negativeBBoxes||!s.firstChild){k=s.offsetWidth;r.HH=s.parentNode.offsetHeight/this.em}else{if(t.w<0&&this.msieNegativeBBoxBug){k=-s.offsetWidth,r.HH=s.parentNode.offsetHeight/this.em}else{k=q[p][2].offsetLeft-((q[p][1]||{}).offsetLeft||0)}}k/=this.em;t.rw+=k-t.w;t.w=k;t.exactW=true;if(!r.bbox){r.bbox=t}}for(p=0,l=q.length;p=0){o.style.width=this.Em(p);o.style.display="inline-block";o.style.overflow="hidden"}else{if(this.msieNegativeSpaceBug){o.style.height=""}o.style.marginLeft=this.Em(p);if(d.safariNegativeSpaceBug&&o.parentNode.firstChild==o){this.createBlank(o,0,true)}}if(l&&l!==f.COLOR.TRANSPARENT){o.style.backgroundColor=l;o.style.position="relative"}return o},createRule:function(q,m,o,r,k){if(m<-o){o=-m}var l=d.TeX.min_rule_thickness,n=1;if(r>0&&r*this.em0&&(m+o)*this.em0&&p.offsetWidth==0){p.style.width=this.Em(r)}if(q.isBox||q.className=="mspace"){q.bbox=p.bbox,q.HH=m+o}return p},createFrame:function(r,p,q,s,v,k){if(p<-q){q=-p}var o=2*v;if(this.msieFrameSizeBug){if(sB.w){d.createBlank(s,B.rw-B.w+0.1)}}if(!this.msieClipRectBug&&!B.noclip&&!n){var A=3/this.em;var z=(B.H==null?B.h:B.H),k=(B.D==null?B.d:B.D);var C=v-z-A,o=v+k+A,m=B.lw-3*A,j=1000;if(this.initialSkipBug&&B.lw<0){m=-3*A}if(B.isFixed){j=B.width-m}s.style.clip="rect("+this.Em(C)+" "+this.Em(j)+" "+this.Em(o)+" "+this.Em(m)+")"}}s.style.top=this.Em(-p-v);s.style.left=this.Em(q+E);if(B&&w){if(B.H!=null&&(w.H==null||B.H+p>w.H)){w.H=B.H+p}if(B.D!=null&&(w.D==null||B.D-p>w.D)){w.D=B.D-p}if(B.h+p>w.h){w.h=B.h+p}if(B.d-p>w.d){w.d=B.d-p}if(w.H!=null&&w.H<=w.h){delete w.H}if(w.D!=null&&w.D<=w.d){delete w.D}if(B.w+q>w.w){w.w=B.w+q;if(w.width==null){u.style.width=this.Em(w.w)}}if(B.rw+q>w.rw){w.rw=B.rw+q}if(B.lw+q=l-0.01||(r==o-1&&!k.stretch)){if(k.HW[r][2]){p*=k.HW[r][2]}if(k.HW[r][3]){j=k.HW[r][3]}var q=this.addElement(t,"span");this.createChar(q,[j,k.HW[r][1]],p,n);t.bbox=q.bbox;t.offset=0.65*t.bbox.w;t.scale=p;return}}if(k.stretch){this["extendDelimiter"+k.dir](t,s,k.stretch,p,n)}},extendDelimiterV:function(z,s,D,E,v){var m=this.createStack(z,true);var u=this.createBox(m),t=this.createBox(m);this.createChar(u,(D.top||D.ext),E,v);this.createChar(t,(D.bot||D.ext),E,v);var l={bbox:{w:0,lw:0,rw:0}},C=l,o;var A=u.bbox.h+u.bbox.d+t.bbox.h+t.bbox.d;var q=-u.bbox.h;this.placeBox(u,0,q,true);q-=u.bbox.d;if(D.mid){C=this.createBox(m);this.createChar(C,D.mid,E,v);A+=C.bbox.h+C.bbox.d}if(D.min&&sA){l=this.Element("span");this.createChar(l,D.ext,E,v);var B=l.bbox.h+l.bbox.d,j=B-0.05,w,p,x=(D.mid?2:1);p=w=Math.ceil((s-A)/(x*j));if(!D.fullExtenders){j=(s-A)/(x*w)}var r=(w/(w+1))*(B-j);j=B-r;q+=r+j-l.bbox.h;while(x-->0){while(w-->0){if(!this.msieCloneNodeBug){o=l.cloneNode(true)}else{o=this.Element("span");this.createChar(o,D.ext,E,v)}o.bbox=l.bbox;q-=j;this.placeBox(this.addBox(m,o),0,q,true)}q+=r-l.bbox.d;if(D.mid&&x){this.placeBox(C,0,q-C.bbox.h,true);w=p;q+=-(C.bbox.h+C.bbox.d)+r+j-l.bbox.h}}}else{q+=(A-s)/2;if(D.mid){this.placeBox(C,0,q-C.bbox.h,true);q+=-(C.bbox.h+C.bbox.d)}q+=(A-s)/2}this.placeBox(t,0,q-t.bbox.h,true);q-=t.bbox.h+t.bbox.d;z.bbox={w:Math.max(u.bbox.w,l.bbox.w,t.bbox.w,C.bbox.w),lw:Math.min(u.bbox.lw,l.bbox.lw,t.bbox.lw,C.bbox.lw),rw:Math.max(u.bbox.rw,l.bbox.rw,t.bbox.rw,C.bbox.rw),h:0,d:-q,exactW:true};z.scale=E;z.offset=0.55*z.bbox.w;z.isMultiChar=true;this.setStackWidth(m,z.bbox.w)},extendDelimiterH:function(A,m,D,F,v){var q=this.createStack(A,true);var o=this.createBox(q),B=this.createBox(q);this.createChar(o,(D.left||D.rep),F,v);this.createChar(B,(D.right||D.rep),F,v);var j=this.Element("span");this.createChar(j,D.rep,F,v);var C={bbox:{h:-this.BIGDIMEN,d:-this.BIGDIMEN}},l;this.placeBox(o,-o.bbox.lw,0,true);var t=(o.bbox.rw-o.bbox.lw)+(B.bbox.rw-B.bbox.lw)-0.05,s=o.bbox.rw-o.bbox.lw-0.025,u;if(D.mid){C=this.createBox(q);this.createChar(C,D.mid,F,v);t+=C.bbox.w}if(D.min&&mt){var E=j.bbox.rw-j.bbox.lw,p=E-0.05,y,r,z=(D.mid?2:1);r=y=Math.ceil((m-t)/(z*p));if(!D.fillExtenders){p=(m-t)/(z*y)}u=(y/(y+1))*(E-p);p=E-u;s-=j.bbox.lw+u;while(z-->0){while(y-->0){if(!this.cloneNodeBug){l=j.cloneNode(true)}else{l=this.Element("span");this.createChar(l,D.rep,F,v)}l.bbox=j.bbox;this.placeBox(this.addBox(q,l),s,0,true);s+=p}if(D.mid&&z){this.placeBox(C,s,0,true);s+=C.bbox.w-u;y=r}}}else{s-=(t-m)/2;if(D.mid){this.placeBox(C,s,0,true);s+=C.bbox.w}s-=(t-m)/2}this.placeBox(B,s,0,true);A.bbox={w:s+B.bbox.rw,lw:0,rw:s+B.bbox.rw,H:Math.max(o.bbox.h,j.bbox.h,B.bbox.h,C.bbox.h),D:Math.max(o.bbox.d,j.bbox.d,B.bbox.d,C.bbox.d),h:j.bbox.h,d:j.bbox.d,exactW:true};A.scale=F;A.isMultiChar=true;this.setStackWidth(q,A.bbox.w)},createChar:function(r,o,l,j){r.isMathJax=true;var q=r,s="",n={fonts:[o[1]],noRemap:true};if(j&&j===f.VARIANT.BOLD){n.fonts=[o[1]+"-bold",o[1]]}if(typeof(o[1])!=="string"){n=o[1]}if(o[0] instanceof Array){for(var p=0,k=o[0].length;p=55296&&w<56319){A++;w=(((w-55296)<<10)+(r.charCodeAt(A)-56320))+65536;if(this.FONTDATA.RemapPlane1){var D=this.FONTDATA.RemapPlane1(w,o);w=D.n;o=D.variant}}else{var t,q,u=this.FONTDATA.RANGES;for(t=0,q=u.length;t=u[t].low&&w<=u[t].high){if(u[t].remap&&u[t].remap[w]){w=p+u[t].remap[w]}else{w=w-u[t].low+p;if(u[t].add){w+=u[t].add}}if(o["variant"+u[t].offset]){o=this.FONTDATA.VARIANT[o["variant"+u[t].offset]]}break}}}if(o.remap&&o.remap[w]){if(o.remap[w] instanceof Array){var l=o.remap[w];w=l[0];o=this.FONTDATA.VARIANT[l[1]]}else{if(typeof(o.remap[w])==="string"){r=o.remap[w]+r.substr(A+1);A=0;x=r.length;w=r.charCodeAt(0)}else{w=o.remap[w];if(o.remap.variant){o=this.FONTDATA.VARIANT[o.remap.variant]}}}}if(this.FONTDATA.REMAP[w]&&!o.noRemap){w=this.FONTDATA.REMAP[w];if(w instanceof Array){o=this.FONTDATA.VARIANT[w[1]];w=w[0]}if(typeof(w)==="string"){r=w+r.substr(A+1);A=0;x=r.length;w=w.charCodeAt(0)}}s=this.lookupChar(o,w);B=s[w];if(k||(!this.checkFont(s,j.style)&&!B[5].img)){if(y.length){this.addText(j,y);y=""}var v=!!j.style.fontFamily||!!z.style.fontStyle||!!z.style.fontWeight||!s.directory||k;k=false;if(j!==z){v=!this.checkFont(s,z.style);j=z}if(v){j=this.addElement(z,"span",{isMathJax:true,subSpan:true})}this.handleFont(j,s,j!==z)}y=this.handleChar(j,s,B,w,y);if(!(B[5]||{}).space){if(B[0]/1000>z.bbox.h){z.bbox.h=B[0]/1000}if(B[1]/1000>z.bbox.d){z.bbox.d=B[1]/1000}}if(z.bbox.w+B[3]/1000z.bbox.rw){z.bbox.rw=z.bbox.w+B[4]/1000}z.bbox.w+=B[2]/1000}if(y.length){this.addText(j,y)}if(z.scale&&z.scale!==1){z.bbox.h*=z.scale;z.bbox.d*=z.scale;z.bbox.w*=z.scale;z.bbox.lw*=z.scale;z.bbox.rw*=z.scale}if(r.length==1&&s.skew&&s.skew[w]){z.bbox.skew=s.skew[w]}},checkFont:function(j,k){var l=(k.fontWeight||"normal");if(l.match(/^\d+$/)){l=(parseInt(l)>=600?"bold":"normal")}return(j.family.replace(/'/g,"")===k.fontFamily.replace(/'/g,"")&&(j.style||"normal")===(k.fontStyle||"normal")&&(j.weight||"normal")===l)},handleFont:function(l,j,n){l.style.fontFamily=j.family;if(!j.directory){l.style.fontSize=Math.floor(100/d.scale+0.5)+"%"}if(!(d.FontFaceBug&&j.isWebFont)){var k=j.style||"normal",m=j.weight||"normal";if(k!=="normal"||n){l.style.fontStyle=k}if(m!=="normal"||n){l.style.fontWeight=m}}},handleChar:function(k,j,r,q,p){var o=r[5];if(o.space){if(p.length){this.addText(k,p)}d.createShift(k,r[2]/1000);return""}if(o.img){return this.handleImg(k,j,r,q,p)}if(o.isUnknown&&this.FONTDATA.DELIMITERS[q]){if(p.length){this.addText(k,p)}var m=k.scale;d.createDelimiter(k,q,0,1,j);if(this.FONTDATA.DELIMITERS[q].dir==="V"){k.style.verticalAlign=this.Em(k.bbox.d);k.bbox.h+=k.bbox.d;k.bbox.d=0}k.scale=m;r[0]=k.bbox.h*1000;r[1]=k.bbox.d*1000;r[2]=k.bbox.w*1000;r[3]=k.bbox.lw*1000;r[4]=k.bbox.rw*1000;return""}if(o.c==null){if(q<=65535){o.c=String.fromCharCode(q)}else{var l=q-65536;o.c=String.fromCharCode((l>>10)+55296)+String.fromCharCode((l&1023)+56320)}}if(o.rfix){this.addText(k,p+o.c);d.createShift(k,o.rfix/1000);return""}if(r[2]||!this.msieAccentBug||p.length){return p+o.c}d.createShift(k,r[3]/1000);d.createShift(k,(r[4]-r[3])/1000);this.addText(k,o.c);d.createShift(k,-r[4]/1000);return""},handleImg:function(k,j,o,m,l){return l},lookupChar:function(o,r){var l,j;if(!o.FONTS){var q=this.FONTDATA.FONTS;var p=(o.fonts||this.FONTDATA.VARIANT.normal.fonts);if(!(p instanceof Array)){p=[p]}if(o.fonts!=p){o.fonts=p}o.FONTS=[];for(l=0,j=p.length;l=0;n--){if(l.Ranges[n][2]==o){l.Ranges.splice(n,1)}}this.loadFont(l.directory+"/"+o+".js")}}}},loadFont:function(k){var j=MathJax.Callback.Queue();j.Push(["Require",g,this.fontDir+"/"+k]);if(this.imgFonts){if(!MathJax.isPacked){k=k.replace(/\/([^\/]*)$/,d.imgPacked+"/$1")}j.Push(["Require",g,this.webfontDir+"/png/"+k])}b.RestartAfter(j.Push({}))},loadWebFont:function(j){j.available=j.isWebFont=true;if(d.FontFaceBug){j.family=j.name;if(d.msieFontCSSBug){j.family+="-Web"}}b.RestartAfter(this.Font.loadWebFont(j))},loadWebFontError:function(k,j){b.Startup.signal.Post("HTML-CSS Jax - disable web fonts");k.isWebFont=false;if(this.config.imageFont&&this.config.imageFont===this.fontInUse){this.imgFonts=true;b.Startup.signal.Post("HTML-CSS Jax - switch to image fonts");b.Startup.signal.Post("HTML-CSS Jax - using image fonts");MathJax.Message.Set("Web-Fonts not available -- using image fonts instead",null,3000);g.Require(this.directory+"/imageFonts.js",j)}else{this.allowWebFonts=false;j()}},Element:MathJax.HTML.Element,addElement:MathJax.HTML.addElement,TextNode:MathJax.HTML.TextNode,addText:MathJax.HTML.addText,ucMatch:MathJax.HTML.ucMatch,BIGDIMEN:10000000,ID:0,idPostfix:"",GetID:function(){this.ID++;return this.ID},MATHSPACE:{veryverythinmathspace:1/18,verythinmathspace:2/18,thinmathspace:3/18,mediummathspace:4/18,thickmathspace:5/18,verythickmathspace:6/18,veryverythickmathspace:7/18,negativeveryverythinmathspace:-1/18,negativeverythinmathspace:-2/18,negativethinmathspace:-3/18,negativemediummathspace:-4/18,negativethickmathspace:-5/18,negativeverythickmathspace:-6/18,negativeveryverythickmathspace:-7/18},TeX:{x_height:0.430554,quad:1,num1:0.676508,num2:0.393732,num3:0.44373,denom1:0.685951,denom2:0.344841,sup1:0.412892,sup2:0.362892,sup3:0.288888,sub1:0.15,sub2:0.247217,sup_drop:0.386108,sub_drop:0.05,delim1:2.39,delim2:1,axis_height:0.25,rule_thickness:0.06,big_op_spacing1:0.111111,big_op_spacing2:0.166666,big_op_spacing3:0.2,big_op_spacing4:0.6,big_op_spacing5:0.1,scriptspace:0.1,nulldelimiterspace:0.12,delimiterfactor:901,delimitershortfall:0.1,min_rule_thickness:1.25},NBSP:"\u00A0",rfuzz:0});MathJax.Hub.Register.StartupHook("mml Jax Ready",function(){f=MathJax.ElementJax.mml;f.mbase.Augment({toHTML:function(n){n=this.HTMLcreateSpan(n);if(this.type!="mrow"){n=this.HTMLhandleSize(n)}for(var k=0,j=this.data.length;kk.d){k.d=l.d}if(l.h>k.h){k.h=l.h}if(l.D!=null&&l.D>k.D){k.D=l.D}if(l.H!=null&&l.H>k.H){k.H=l.H}if(m.style.paddingLeft){k.w+=d.unEm(m.style.paddingLeft)*(m.scale||1)}if(k.w+l.lwk.rw){k.rw=k.w+l.rw}k.w+=l.w;if(m.style.paddingRight){k.w+=d.unEm(m.style.paddingRight)*(m.scale||1)}if(l.width){k.width=l.width}if(l.ic){k.ic=l.ic}else{delete k.ic}if(k.exactW&&!l.exactW){delete k.exactW}},HTMLemptyBBox:function(j){j.h=j.d=j.H=j.D=j.rw=-d.BIGDIMEN;j.w=0;j.lw=d.BIGDIMEN;return j},HTMLcleanBBox:function(j){if(j.h===this.BIGDIMEN){j.h=j.d=j.H=j.D=j.w=j.rw=j.lw=0}if(j.D<=j.d){delete j.D}if(j.H<=j.h){delete j.H}},HTMLzeroBBox:function(){return{h:0,d:0,w:0,lw:0,rw:0}},HTMLcanStretch:function(k){if(this.isEmbellished()){var j=this.Core();if(j&&j!==this){return j.HTMLcanStretch(k)}}return false},HTMLstretchH:function(k,j){return this.HTMLspanElement()},HTMLstretchV:function(k,j,l){return this.HTMLspanElement()},HTMLnotEmpty:function(j){while(j){if((j.type!=="mrow"&&j.type!=="texatom")||j.data.length>1){return true}j=j.data[0]}return false},HTMLmeasureChild:function(k,j){if(this.data[k]){d.Measured(this.data[k].toHTML(j),j)}else{j.bbox=this.HTMLzeroBBox()}},HTMLboxChild:function(k,j){if(this.data[k]){return this.data[k].toHTML(j)}if(!j.bbox){j.bbox=this.HTMLzeroBBox()}return null},HTMLcreateSpan:function(j){if(this.spanID){var k=this.HTMLspanElement();if(k&&(k.parentNode===j||(k.parentNode||{}).parentNode===j)){while(k.firstChild){k.removeChild(k.firstChild)}k.bbox={w:0,h:0,d:0,lw:0,rw:0};k.scale=1;k.isMultChar=k.HH=null;k.style.cssText="";return k}}if(this.href){j=d.addElement(j,"a",{href:this.href,isMathJax:true})}j=d.addElement(j,"span",{className:this.type,isMathJax:true});if(d.imgHeightBug){j.style.display="inline-block"}if(this["class"]){j.className+=" "+this["class"]}if(!this.spanID){this.spanID=d.GetID()}j.id=(this.id||"MathJax-Span-"+this.spanID)+d.idPostfix;j.bbox={w:0,h:0,d:0,lw:0,rw:0};this.styles={};if(this.style){j.style.cssText=this.style;if(j.style.fontSize){this.mathsize=j.style.fontSize;j.style.fontSize=""}this.styles={border:d.getBorders(j),padding:d.getPadding(j)};if(this.styles.border){j.style.border=""}if(this.styles.padding){j.style.padding=""}}if(this.href){j.parentNode.bbox=j.bbox}return j},HTMLspanElement:function(){if(!this.spanID){return null}return document.getElementById((this.id||"MathJax-Span-"+this.spanID)+d.idPostfix)},HTMLhandleVariant:function(k,j,l){d.handleVariant(k,j,l)},HTMLhandleSize:function(j){if(!j.scale){j.scale=this.HTMLgetScale();if(j.scale!==1){j.style.fontSize=d.Percent(j.scale)}}return j},HTMLhandleColor:function(v){var x=this.getValues("mathcolor","color");if(this.mathbackground){x.mathbackground=this.mathbackground}if(this.background){x.background=this.background}if(this.style&&v.style.backgroundColor){x.mathbackground=v.style.backgroundColor;v.style.backgroundColor="transparent"}var s=(this.styles||{}).border,u=(this.styles||{}).padding;if(x.color&&!this.mathcolor){x.mathcolor=x.color}if(x.background&&!this.mathbackground){x.mathbackground=x.background}if(x.mathcolor){v.style.color=x.mathcolor}if((x.mathbackground&&x.mathbackground!==f.COLOR.TRANSPARENT)||s||u){var z=v.bbox,y=(z.exact?0:1/d.em),t=0,r=0,l=v.style.paddingLeft,p=v.style.paddingRight;if(this.isToken){t=z.lw;r=z.rw-z.w}if(l!==""){t+=d.unEm(l)*(v.scale||1)}if(p!==""){r-=d.unEm(p)*(v.scale||1)}var k=(d.PaddingWidthBug||z.keepPadding||z.exactW?0:r-t);var n=Math.max(0,d.getW(v)+k);var w=z.h+z.d,j=-z.d,q=0,o=0;if(n>0){n+=2*y;t-=y}if(w>0){w+=2*y;j-=y}r=-n-t;if(s){r-=s.right;j-=s.bottom;q+=s.left;o+=s.right;z.h+=s.top;z.d+=s.bottom;z.w+=s.left+s.right;z.lw-=s.left;z.rw+=s.right}if(u){w+=u.top+u.bottom;n+=u.left+u.right;r-=u.right;j-=u.bottom;q+=u.left;o+=u.right;z.h+=u.top;z.d+=u.bottom;z.w+=u.left+u.right;z.lw-=u.left;z.rw+=u.right}if(o){v.style.paddingRight=d.Em(o)}var m=d.Element("span",{id:"MathJax-Color-"+this.spanID+d.idPostfix,isMathJax:true,style:{display:"inline-block",backgroundColor:x.mathbackground,width:d.Em(n),height:d.Em(w),verticalAlign:d.Em(j),marginLeft:d.Em(t),marginRight:d.Em(r)}});d.setBorders(m,s);if(z.width){m.style.width=z.width;m.style.marginRight="-"+z.width}if(d.msieInlineBlockAlignBug){m.style.position="relative";m.style.width=m.style.height=0;m.style.verticalAlign=m.style.marginLeft=m.style.marginRight="";m.style.border=m.style.padding="";if(s&&d.msieBorderWidthBug){w+=s.top+s.bottom;n+=s.left+s.right}m.style.width=d.Em(q+y);d.placeBox(d.addElement(m,"span",{noAdjust:true,isMathJax:true,style:{display:"inline-block",position:"absolute",overflow:"hidden",background:(x.mathbackground||"transparent"),width:d.Em(n),height:d.Em(w)}}),t,z.h+y);d.setBorders(m.firstChild,s)}v.parentNode.insertBefore(m,v);if(d.msieColorPositionBug){v.style.position="relative"}return m}return null},HTMLremoveColor:function(){var j=document.getElementById("MathJax-Color-"+this.spanID+d.idPostfix);if(j){j.parentNode.removeChild(j)}},HTMLhandleSpace:function(n){if(this.useMMLspacing){if(this.type!=="mo"){return}var l=this.getValues("scriptlevel","lspace","rspace");if(l.scriptlevel<=0||this.hasValue("lspace")||this.hasValue("rspace")){var k=this.HTMLgetMu(n);l.lspace=Math.max(0,d.length2em(l.lspace,k));l.rspace=Math.max(0,d.length2em(l.rspace,k));var j=this,m=this.Parent();while(m&&m.isEmbellished()&&m.Core()===j){j=m;m=m.Parent();n=j.HTMLspanElement()}if(l.lspace){n.style.paddingLeft=d.Em(l.lspace)}if(l.rspace){n.style.paddingRight=d.Em(l.rspace)}}}else{var o=this.texSpacing();if(o!==""){o=d.length2em(o,this.HTMLgetScale())/(n.scale||1);if(n.style.paddingLeft){o+=d.unEm(n.style.paddingLeft)}n.style.paddingLeft=d.Em(o)}}},HTMLgetScale:function(){var l=1,j=this.getValues("mathsize","scriptlevel","fontsize");if(this.style){var k=this.HTMLspanElement();if(k.style.fontSize!=""){j.fontsize=k.style.fontSize}}if(j.fontsize&&!this.mathsize){j.mathsize=j.fontsize}if(j.scriptlevel!==0){if(j.scriptlevel>2){j.scriptlevel=2}l=Math.pow(this.Get("scriptsizemultiplier"),j.scriptlevel);j.scriptminsize=d.length2em(this.Get("scriptminsize"));if(l2){k.scriptlevel=2}j=Math.sqrt(Math.pow(k.scriptsizemultiplier,k.scriptlevel))}return j},HTMLgetVariant:function(){var j=this.getValues("mathvariant","fontfamily","fontweight","fontstyle");j.hasVariant=this.Get("mathvariant",true);if(!j.hasVariant){j.family=j.fontfamily;j.weight=j.fontweight;j.style=j.fontstyle}if(this.style){var l=this.HTMLspanElement();if(!j.family&&l.style.fontFamily){j.family=l.style.fontFamily}if(!j.weight&&l.style.fontWeight){j.weight=l.style.fontWeight}if(!j.style&&l.style.fontStyle){j.style=l.style.fontStyle}}if(j.weight&&j.weight.match(/^\d+$/)){j.weight=(parseInt(j.weight)>600?"bold":"normal")}var k=j.mathvariant;if(this.variantForm){k="-"+d.fontInUse+"-variant"}if(j.family&&!j.hasVariant){if(!j.weight&&j.mathvariant.match(/bold/)){j.weight="bold"}if(!j.style&&j.mathvariant.match(/italic/)){j.style="italic"}return{FONTS:[],fonts:[],noRemap:true,defaultFont:{family:j.family,style:j.style,weight:j.weight}}}if(j.weight==="bold"){k={normal:f.VARIANT.BOLD,italic:f.VARIANT.BOLDITALIC,fraktur:f.VARIANT.BOLDFRAKTUR,script:f.VARIANT.BOLDSCRIPT,"sans-serif":f.VARIANT.BOLDSANSSERIF,"sans-serif-italic":f.VARIANT.SANSSERIFBOLDITALIC}[k]||k}else{if(j.weight==="normal"){k={bold:f.VARIANT.normal,"bold-italic":f.VARIANT.ITALIC,"bold-fraktur":f.VARIANT.FRAKTUR,"bold-script":f.VARIANT.SCRIPT,"bold-sans-serif":f.VARIANT.SANSSERIF,"sans-serif-bold-italic":f.VARIANT.SANSSERIFITALIC}[k]||k}}if(j.style==="italic"){k={normal:f.VARIANT.ITALIC,bold:f.VARIANT.BOLDITALIC,"sans-serif":f.VARIANT.SANSSERIFITALIC,"bold-sans-serif":f.VARIANT.SANSSERIFBOLDITALIC}[k]||k}else{if(j.style==="normal"){k={italic:f.VARIANT.NORMAL,"bold-italic":f.VARIANT.BOLD,"sans-serif-italic":f.VARIANT.SANSSERIF,"sans-serif-bold-italic":f.VARIANT.BOLDSANSSERIF}[k]||k}}return d.FONTDATA.VARIANT[k]}},{HTMLautoload:function(){var j=d.autoloadDir+"/"+this.type+".js";b.RestartAfter(g.Require(j))},HTMLautoloadFile:function(j){var k=d.autoloadDir+"/"+j+".js";b.RestartAfter(g.Require(k))},HTMLstretchH:function(k,j){this.HTMLremoveColor();return this.toHTML(k,j)},HTMLstretchV:function(k,j,l){this.HTMLremoveColor();return this.toHTML(k,j,l)}});f.chars.Augment({toHTML:function(m,l,k,n){var q=this.data.join("").replace(/[\u2061-\u2064]/g,"");if(k){q=k(q,n)}if(l.fontInherit){var p=Math.floor(100/d.scale+0.5)+"%";d.addElement(m,"span",{style:{"font-size":p}},[q]);if(l.bold){m.lastChild.style.fontWeight="bold"}if(l.italic){m.lastChild.style.fontStyle="italic"}var o=d.getHD(m),j=d.getW(m);m.bbox={h:o.h,d:o.d,w:j,lw:0,rw:j,exactW:true}}else{this.HTMLhandleVariant(m,l,q)}}});f.entity.Augment({toHTML:function(m,l,k,n){var q=this.toString().replace(/[\u2061-\u2064]/g,"");if(k){q=k(q,n)}if(l.fontInherit){var p=Math.floor(100/d.scale+0.5)+"%";d.addElement(m,"span",{style:{"font-size":p}},[q]);if(l.bold){m.lastChild.style.fontWeight="bold"}if(l.italic){m.lastChild.style.fontStyle="italic"}var o=d.getHD(m),j=d.getW(m);m.bbox={h:o.h,d:o.d,w:j,lw:0,rw:j,exactW:true}}else{this.HTMLhandleVariant(m,l,q)}}});f.mi.Augment({toHTML:function(n){n=this.HTMLhandleSize(this.HTMLcreateSpan(n));n.bbox=null;var l=this.HTMLgetVariant();for(var k=0,j=this.data.length;ko.w&&p.length===1&&!l.noIC){o.ic=o.rw-o.w;d.createBlank(n,o.ic);o.w=o.rw}this.HTMLhandleSpace(n);this.HTMLhandleColor(n);return n}});f.mn.Augment({toHTML:function(n){n=this.HTMLhandleSize(this.HTMLcreateSpan(n));n.bbox=null;var l=this.HTMLgetVariant();for(var k=0,j=this.data.length;kt.bbox.w){t.bbox.ic=t.bbox.rw-t.bbox.w;d.createBlank(t,t.bbox.ic);t.bbox.w=t.bbox.rw}}this.HTMLhandleSpace(t);this.HTMLhandleColor(t);return t},CoreParent:function(){var j=this;while(j&&j.isEmbellished()&&j.CoreMO()===this&&!j.isa(f.math)){j=j.Parent()}return j},CoreText:function(j){if(!j){return""}if(j.isEmbellished()){return j.CoreMO().data.join("")}while((j.isa(f.mrow)||j.isa(f.TeXAtom))&&j.data.length===1&&j.data[0]){j=j.data[0]}if(!j.isToken){return""}else{return j.data.join("")}},HTMLremapChars:{"*":"\u2217",'"':"\u2033","\u00B0":"\u2218","\u00B2":"2","\u00B3":"3","\u00B4":"\u2032","\u00B9":"1"},HTMLremap:function(k,j){k=k.replace(/-/g,"\u2212");if(j){k=k.replace(/'/g,"\u2032").replace(/`/g,"\u2035");if(k.length===1){k=j[k]||k}}return k},HTMLcanStretch:function(m){if(!this.Get("stretchy")){return false}var n=this.data.join("");if(n.length>1){return false}var k=this.CoreParent();if(k&&k.isa(f.munderover)&&this.CoreText(k.data[k.base]).length===1){var l=k.data[k.over],j=k.data[k.under];if(l&&this===l.CoreMO()&&k.Get("accent")){n=d.FONTDATA.REMAPACCENT[n]||n}else{if(j&&this===j.CoreMO()&&k.Get("accentunder")){n=d.FONTDATA.REMAPACCENTUNDER[n]||n}}}n=d.FONTDATA.DELIMITERS[n.charCodeAt(0)];return(n&&n.dir==m.substr(0,1))},HTMLstretchV:function(l,m,n){this.HTMLremoveColor();var q=this.getValues("symmetric","maxsize","minsize");var o=this.HTMLspanElement(),r=this.HTMLgetMu(o),p;var j=d.TeX.axis_height,k=o.scale;if(q.symmetric){p=2*Math.max(m-j,n+j)}else{p=m+n}q.maxsize=d.length2em(q.maxsize,r,o.bbox.h+o.bbox.d);q.minsize=d.length2em(q.minsize,r,o.bbox.h+o.bbox.d);p=Math.max(q.minsize,Math.min(q.maxsize,p));o=this.HTMLcreateSpan(l);d.createDelimiter(o,this.data.join("").charCodeAt(0),p,k);if(q.symmetric){p=(o.bbox.h+o.bbox.d)/2+j}else{p=(o.bbox.h+o.bbox.d)*m/(m+n)}d.positionDelimiter(o,p);this.HTMLhandleSpace(o);this.HTMLhandleColor(o);return o},HTMLstretchH:function(n,j){this.HTMLremoveColor();var l=this.getValues("maxsize","minsize","mathvariant","fontweight");if((l.fontweight==="bold"||parseInt(l.fontweight)>=600)&&!this.Get("mathvariant",true)){l.mathvariant=f.VARIANT.BOLD}var m=this.HTMLspanElement(),k=this.HTMLgetMu(m),o=m.scale;l.maxsize=d.length2em(l.maxsize,k,m.bbox.w);l.minsize=d.length2em(l.minsize,k,m.bbox.w);j=Math.max(l.minsize,Math.min(l.maxsize,j));m=this.HTMLcreateSpan(n);d.createDelimiter(m,this.data.join("").charCodeAt(0),j,o,l.mathvariant);this.HTMLhandleSpace(m);this.HTMLhandleColor(m);return m}});f.mtext.Augment({toHTML:function(n){n=this.HTMLhandleSize(this.HTMLcreateSpan(n));var l=this.HTMLgetVariant();if(d.config.mtextFontInherit||this.Parent().type==="merror"){l={bold:l.bold,italic:l.italic,fontInherit:true}}for(var k=0,j=this.data.length;kd.linebreakWidth)||this.hasNewline()},HTMLstretchH:function(l,j){this.HTMLremoveColor();var k=this.HTMLspanElement();this.data[this.core].HTMLstretchH(k,j);this.HTMLcomputeBBox(k,true);this.HTMLhandleColor(k);return k},HTMLstretchV:function(l,k,m){this.HTMLremoveColor();var j=this.HTMLspanElement();this.data[this.core].HTMLstretchV(j,k,m);this.HTMLcomputeBBox(j,true);this.HTMLhandleColor(j);return j}});f.mstyle.Augment({toHTML:function(k,j,l){k=this.HTMLcreateSpan(k);if(this.data[0]!=null){var m=this.data[0].toHTML(k);if(l!=null){this.data[0].HTMLstretchV(k,j,l)}else{if(j!=null){this.data[0].HTMLstretchH(k,j)}}k.bbox=m.bbox}this.HTMLhandleSpace(k);this.HTMLhandleColor(k);return k},HTMLstretchH:f.mbase.HTMLstretchH,HTMLstretchV:f.mbase.HTMLstretchV});f.mfrac.Augment({toHTML:function(C){C=this.HTMLcreateSpan(C);var l=d.createStack(C);var o=d.createBox(l),n=d.createBox(l);d.MeasureSpans([this.HTMLboxChild(0,o),this.HTMLboxChild(1,n)]);var j=this.getValues("displaystyle","linethickness","numalign","denomalign","bevelled");var G=this.HTMLgetScale(),B=j.displaystyle;var F=d.TeX.axis_height*G;if(j.bevelled){var E=(B?0.4:0.15);var r=Math.max(o.bbox.h+o.bbox.d,n.bbox.h+n.bbox.d)+2*E;var D=d.createBox(l);d.createDelimiter(D,47,r);d.placeBox(o,0,(o.bbox.d-o.bbox.h)/2+F+E);d.placeBox(D,o.bbox.w-E/2,(D.bbox.d-D.bbox.h)/2+F);d.placeBox(n,o.bbox.w+D.bbox.w-E,(n.bbox.d-n.bbox.h)/2+F-E)}else{var k=Math.max(o.bbox.w,n.bbox.w);var x=d.thickness2em(j.linethickness,G),z,y,w,s;var A=d.TeX.min_rule_thickness/this.em;if(B){w=d.TeX.num1;s=d.TeX.denom1}else{w=(x===0?d.TeX.num3:d.TeX.num2);s=d.TeX.denom2}w*=G;s*=G;if(x===0){z=Math.max((B?7:3)*d.TeX.rule_thickness,2*A);y=(w-o.bbox.d)-(n.bbox.h-s);if(yw){k=((r.bbox.h+r.bbox.d)-(w-z))/2}var A=d.FONTDATA.DELIMITERS[d.FONTDATA.RULECHAR];if(!A||nJ){J=q[L].bbox.w}if(!M[L]&&J>l){l=J}}}if(E==null&&G!=null){l=G}else{if(l==-d.BIGDIMEN){l=J}}for(L=J=0,H=this.data.length;LJ){J=v.bbox.w}}}var C=d.TeX.rule_thickness,F=d.FONTDATA.TeX_factor;var o=q[this.base]||{bbox:this.HTMLzeroBBox()};var u,r,z,w,s,B,I,N=0;if(o.bbox.ic){N=1.3*o.bbox.ic+0.05}for(L=0,H=this.data.length;L0){y+=E;x-=E}}d.placeBox(j,n.bbox.w+L,Math.max(y,I.superscriptshift));d.placeBox(w,n.bbox.w,-Math.max(x,I.subscriptshift))}}this.HTMLhandleSpace(J);this.HTMLhandleColor(J);return J},HTMLstretchH:f.mbase.HTMLstretchH,HTMLstretchV:f.mbase.HTMLstretchV});f.mmultiscripts.Augment({toHTML:f.mbase.HTMLautoload});f.mtable.Augment({toHTML:f.mbase.HTMLautoload});f["annotation-xml"].Augment({toHTML:f.mbase.HTMLautoload});f.math.Augment({toHTML:function(t,k){var q=this.Get("alttext");if(q&&q!==""){k.setAttribute("aria-label",q)}var l=d.addElement(t,"nobr",{isMathJax:true});t=this.HTMLcreateSpan(l);var r=d.createStack(t),m=d.createBox(r),s;r.style.fontSize=l.parentNode.style.fontSize;l.parentNode.style.fontSize="";if(this.data[0]!=null){if(d.msieColorBug){if(this.background){this.data[0].background=this.background;delete this.background}if(this.mathbackground){this.data[0].mathbackground=this.mathbackground;delete this.mathbackground}}f.mbase.prototype.displayAlign=b.config.displayAlign;f.mbase.prototype.displayIndent=b.config.displayIndent;var n=this.data[0].toHTML(m);n.bbox.exactW=false;s=d.Measured(n,m)}d.placeBox(m,0,0);r.style.width=Math.round(d.unEm(r.style.width)*this.em)+"px";var j=1/d.em,o=d.em/d.outerEm;d.em/=o;t.bbox.h*=o;t.bbox.d*=o;t.bbox.w*=o;t.bbox.lw*=o;t.bbox.rw*=o;if(s&&s.bbox.width!=null){r.style.width=s.bbox.width;m.style.width="100%"}this.HTMLhandleColor(t);if(s){d.createRule(t,(s.bbox.h+j)*o,(s.bbox.d+j)*o,0)}if(!this.isMultiline&&this.Get("display")==="block"&&t.bbox.width==null){var u=this.getValues("indentalignfirst","indentshiftfirst","indentalign","indentshift");if(u.indentalignfirst!==f.INDENTALIGN.INDENTALIGN){u.indentalign=u.indentalignfirst}if(u.indentalign===f.INDENTALIGN.AUTO){u.indentalign=this.displayAlign}k.style.textAlign=u.indentalign;if(u.indentshiftfirst!==f.INDENTSHIFT.INDENTSHIFT){u.indentshift=u.indentshiftfirst}if(u.indentshift==="auto"){u.indentshift=this.displayIndent}if(u.indentshift&&u.indentalign!==f.INDENTALIGN.CENTER){t.style[{left:"marginLeft",right:"marginRight"}[u.indentalign]]=d.Em(d.length2em(u.indentshift))}}return t},HTMLspanElement:f.mbase.prototype.HTMLspanElement});f.TeXAtom.Augment({toHTML:function(k){k=this.HTMLcreateSpan(k);if(this.data[0]!=null){if(this.texClass===f.TEXCLASS.VCENTER){var j=d.createStack(k);var l=d.createBox(j);d.Measured(this.data[0].toHTML(l),l);d.placeBox(l,0,d.TeX.axis_height-(l.bbox.h+l.bbox.d)/2+l.bbox.d)}else{k.bbox=this.data[0].toHTML(k).bbox}}this.HTMLhandleSpace(k);this.HTMLhandleColor(k);return k}});MathJax.Hub.Register.StartupHook("onLoad",function(){setTimeout(MathJax.Callback(["loadComplete",d,"jax.js"]),0)})});b.Register.StartupHook("End Config",function(){b.Browser.Select({MSIE:function(j){var n=(document.documentMode||0);var m=j.versionAtLeast("7.0");var l=j.versionAtLeast("8.0")&&n>7;var k=(document.compatMode==="BackCompat");if(n<9){d.config.styles[".MathJax .MathJax_HitBox"]["background-color"]="white";d.config.styles[".MathJax .MathJax_HitBox"].opacity=0;d.config.styles[".MathJax .MathJax_HitBox"].filter="alpha(opacity=0)"}d.Augment({PaddingWidthBug:true,msieAccentBug:true,msieColorBug:true,msieColorPositionBug:true,msieRelativeWidthBug:k,msieDisappearingBug:(n>=8),msieMarginScaleBug:(n<8),msiePaddingWidthBug:true,msieBorderWidthBug:k,msieFrameSizeBug:(n<=8),msieInlineBlockAlignBug:(!l||k),msiePlaceBoxBug:(l&&!k),msieClipRectBug:!l,msieNegativeSpaceBug:k,cloneNodeBug:(l&&j.version==="8.0"),initialSkipBug:(n<8),msieNegativeBBoxBug:(n>=8),msieIE6:!m,msieItalicWidthBug:true,FontFaceBug:true,msieFontCSSBug:j.isIE9,allowWebFonts:(n>=9?"woff":"eot")})},Firefox:function(k){var l=false;if(k.versionAtLeast("3.5")){var j=String(document.location).replace(/[^\/]*$/,"");if(document.location.protocol!=="file:"||b.config.root.match(/^https?:\/\//)||(b.config.root+"/").substr(0,j.length)===j){l="otf"}}d.Augment({ffVerticalAlignBug:true,AccentBug:true,allowWebFonts:l})},Safari:function(o){var m=o.versionAtLeast("3.0");var l=o.versionAtLeast("3.1");var j=navigator.appVersion.match(/ Safari\/\d/)&&navigator.appVersion.match(/ Version\/\d/)&&navigator.vendor.match(/Apple/);var k=(navigator.appVersion.match(/ Android (\d+)\.(\d+)/));var p=(l&&o.isMobile&&((navigator.platform.match(/iPad|iPod|iPhone/)&&!o.versionAtLeast("5.0"))||(k!=null&&(k[1]<2||(k[1]==2&&k[2]<2)))));d.Augment({config:{styles:{".MathJax img, .MathJax nobr, .MathJax a":{"max-width":"5000em","max-height":"5000em"}}},rfuzz:0.011,AccentBug:true,AdjustSurd:true,negativeBBoxes:true,safariNegativeSpaceBug:true,safariVerticalAlignBug:!l,safariTextNodeBug:!m,forceReflow:true,allowWebFonts:(l&&!p?"otf":false)});if(j){d.Augment({webFontDefault:(o.isMobile?"sans-serif":"serif")})}if(o.isPC){d.Augment({adjustAvailableFonts:d.removeSTIXfonts,checkWebFontsTwice:true})}if(p){var n=b.config["HTML-CSS"];if(n){n.availableFonts=[];n.preferredFont=null}else{b.config["HTML-CSS"]={availableFonts:[],preferredFont:null}}}},Chrome:function(j){d.Augment({Em:d.Px,unEm:d.unPx,chromeHeightBug:true,cloneNodeBug:true,rfuzz:0.011,AccentBug:true,AdjustSurd:true,negativeBBoxes:true,safariNegativeSpaceBug:true,safariWebFontSerif:[""],forceReflow:true,allowWebFonts:(j.versionAtLeast("4.0")?"otf":"svg")})},Opera:function(j){j.isMini=(navigator.appVersion.match("Opera Mini")!=null);d.config.styles[".MathJax .merror"]["vertical-align"]=null;d.config.styles[".MathJax span"]["z-index"]=0;d.Augment({operaHeightBug:true,operaVerticalAlignBug:true,operaFontSizeBug:j.versionAtLeast("10.61"),initialSkipBug:true,FontFaceBug:true,PaddingWidthBug:true,allowWebFonts:(j.versionAtLeast("10.0")&&!j.isMini?"otf":false),adjustAvailableFonts:d.removeSTIXfonts})},Konqueror:function(j){d.Augment({konquerorVerticalAlignBug:true})}})});MathJax.Hub.Register.StartupHook("End Cookie",function(){if(b.config.menuSettings.zoom!=="None"){g.Require("[MathJax]/extensions/MathZoom.js")}})})(MathJax.Ajax,MathJax.Hub,MathJax.OutputJax["HTML-CSS"]); - -(function( ajax ) { - for (var path in ajax.loading) { - if ( ( /KAthJax-[0-9a-f]{32}.js$/ ).test( path ) ) { - ajax.loadComplete( path ); - } - } -})( MathJax.Ajax ); diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff deleted file mode 100644 index 34730424a35..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_AMS-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dd029fad2b7a0490baee0b4ae76e400e94bd678142f71974b2aca3cd3e54bdd9 -size 40808 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff deleted file mode 100644 index bc6d3547f1b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Bold.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c398e0e208438a75234ad60c39d2604b269a65fe26e6b5e45ad43ad07eb28f28 -size 9912 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff deleted file mode 100644 index 4c542a26e94..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Caligraphic-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:6eaf81251c29762bbea53930f6fe8d2f56b6c883a9d99904d7ccc75019cd3f68 -size 9604 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff deleted file mode 100644 index 1760af66570..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Bold.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:22716aa7d8c55e1fcb76f4026296b57c6a616dffe2867ab01f91d3a841f468ea -size 22336 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff deleted file mode 100644 index d8da782ae19..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Fraktur-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c84f3cdf6dbdb7044a09620ee081044199c409aa3fd87bf3c7375c2a4e9f2154 -size 21476 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff deleted file mode 100644 index 24acdf416f5..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Bold.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c7effb4ecdd177c6b9de9c4a71c6f4d45153b7fac8e7497e7018c6b4804c133f -size 34464 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff deleted file mode 100644 index cdb488eee11..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Italic.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:abe8873e8d813bad835b69032fc7f972fdb188abde6c48f5c0ae81c97cc31931 -size 20832 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff deleted file mode 100644 index 59fd28fd97c..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Main-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:43feb635eaece1be87f3854db1cc0b29772e4c6e1d5598da48097c40aa155977 -size 34160 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff deleted file mode 100644 index 0261bffec6d..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-BoldItalic.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e847ce1edf5a40c9fab3793b2aeac780c2721bf303b44dda94423a7e5b17f46b -size 19776 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff deleted file mode 100644 index d8a0569f180..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-Italic.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9df81b1cc117d006a4125246d796c1bdd29ad4449555ba1096864ace3308f20c -size 19356 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff deleted file mode 100644 index 644c10f55e5..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Math-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:4661ae24fbe2484eec21acaf9883622c5406795c1baf6711ddc8d56be793fd0d -size 19292 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff deleted file mode 100644 index 1b9a1115c0b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Bold.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:70ac12f3f9f31f203f2d682633058cceae92f4edfa6467699518828a6ce65c20 -size 15932 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff deleted file mode 100644 index 3762aa20b6e..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Italic.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9800a296cec49fdea14c7d947b53bfec7f7858e3d56a753e218cc8f60db6a6ff -size 14628 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff deleted file mode 100644 index 9deca0cbfcd..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_SansSerif-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:eef49c25a5228323877d7bebf5d96a1b230125c711b4b8c9833f416236f2b6db -size 12656 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff deleted file mode 100644 index ddd0cd9b564..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Script-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e1c60232882dd6c1791521a2375f34f50590c5b8ccb53eb9c1ef7ac95623b2e -size 11856 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff deleted file mode 100644 index 2988879cd03..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size1-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:cd7e7f6b67977fb6b81a6bb3fe91301c8e956ea813a51e2e2a0dba2da71c8ea4 -size 5788 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff deleted file mode 100644 index a19df400e86..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size2-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0c8ef8f4e18db0c02e5f9eed32e58324959c78909af48a2a88bdcd1e62507276 -size 5464 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff deleted file mode 100644 index 03c52588313..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size3-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:44b04d8900cf1ff70fec62fc62e2852ce850fa2426330ef3e1ddd39837529d32 -size 3240 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff deleted file mode 100644 index 4d1792fe830..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Size4-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e6bd41d37f734483918e8d5c9fe7aaf0ae22bf08f3ee68c7e61c814a4c154688 -size 5144 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff deleted file mode 100644 index d56acf1464f..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/fonts/HTML-CSS/TeX/woff/MathJax_Typewriter-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:40359d39c8b4a35172d4e94e80106758ed1a44d6acc078ca75a5fe14df536c81 -size 17608 diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/images/CloseX-31.png b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/images/CloseX-31.png deleted file mode 100644 index d6b8ab4e86096eb95c5db913611e32be2109e4f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2645 zcmV-b3aa&qP)znGTuIcW%ol?5B6uG*(y7$ld z`6K-O?Ck7t>gU_!ySsP)ymRNy-}&DU9z1w8_4D54cF({+4N%VqkO2B=1lU9F4>th7 z-yLp%``0%^kJ1(J3>bd`a?7>=KEU^O1B3^Tp?I}g9eI0jsQ~)H!ND_xfYxoPc%)W(A)A{lUT090FRm=YIm=k@Vf^>5o4>f1Z}0=u2yRZfY10AH4afM~|M9 z?D2y>Yuy$|bKpw_y(v+^Hv^6s{rkzu)1`yn6oCKX@#81WGW*&wE$^EFHd!3-i}m`U zhgSmzzzm+EhAS0(2foYW27ql~qZ%ySzhLl^r&fmf`NfN`URUD1R)RL5EohTf|6r@s zD{#wLJzOUQu7~n$#KU)|r;aG<3i?tK<2^h*4D4Zg;%fYsg1$w8 z-W)cP9j`c@=hNdk^_1qhd+Gdrm!OZ@#Lg0WQ`nYX4N$lq09s6ya1C4w*R;F|wBBw7 zz37)wEYQG)F)fVfF&Ey|W~&+iuAyl&Y+YKQDe`PhHeNb}XUN`w=d={Qc8G_~OFX^m zFpeQoE0)C#OD!!5X-c&v!@COjYefZ33p*-kOYj=#U{D3PrZ%pbTU%AFYOA(72pcKB zi>|#>A4cV;25gH;RZG=Y3N_H#YMkp(t{KKlt5Z=_TQy{dcXntOe~?|gz``ymOhi`A ztb~QmETRy72pJ)H*HInR&P#hyP2J%&dGkxNcJrYeon!83lrvicsio+vRA58K38X{& z><5NM9x|Q!LfpwW3AP40Y)M}GuoyT~U}0+GHxaf5I#YWGt0Le`qQ=DSn+#h6or&jj z37naCOXD^>Of6ZZ;SaWzUUSaNO}tw=l(UHlw5Mtt`)HO)aG9ZfmzNiNHySM!cB+ww zy&gh9t~)5QYq9;L*WKmilRsp(>`JRiY}s)0x|*_MEk!AHEGVm%^wq+K+qNnf6iek5FBvTS$k}l~~B?5G5!o|dNYnx8R@^AhzOcNeSJ1preGX;}&HcQKx zF7-x@9VAmVW|{`3X&dmtbAFXvM4DM@vvR4l$lf(i0X?#IscpeDZ3Aw37itSE>@(z= z&{^1Qvg&2uGzDDxkVHD~X1%+_ur;99Y?IW>r8m>~p~`>2rEAqBvDTt|8VP!fwn)5O zn!JtIzR}saWkVtwI!YTX9c!Ge)A3s(mIh~Ix@Gn*Ei7eWD{M7woyNeW@mq4Ydpr$e zvv-SmI=ga5^I&LBC8MdduQ`rW@mpeeucuozp+|rXl??0B5R&6KHUE|v!E-TU4d_u| z=e9_`UvjNHA2*HPH5NCp(3zOdR?s|QXO#@=1ixG2r(=@%U2@WaCv?fM=UqY5s$_AA zbR+|7al$5vCp8~xSXSg}RnRmlX`3`}0&6jFiC5L$Okgobjxg8XrII)*ZdEe3A&rBR^w0vl@OY^K0lFEsQ#-_5#$#;PQoih)b_jm=4G;8Me| zQY#y;0UWGFb8yQ{F@kZV5&<^Ua)x9EJi?~2Bn@-D?RCuw39jRZYg_ot2R@nuIjI`dW zY+71f!ow5IvZNLZBemM(;YrlTqa|z5dVxMC)Z@{f7eH7nIE)V6d;vtSOPnkh9C|K{ zELHO*PCYJS^jL5hb*r-ZBF5C&GG)&NhY`0bn=eyN9c@IYu`DUl(kHi#2t8~ystF83SgpGZz=IQPS0z^CVBLeJ}(A|&x zh;*n=B-kyWS2@%t1v$1W;+9=4bZtzpa%@)$a4=ugExRSq+3daQ!F(-`-i*9ucT+tp za#fGsObrj$Wq`L{Y~j`3>WAy5#>Zz%j2Hp7M|+zcpWXU^{9PT71X}`KnzS`NARpTL z6&O=DQtK_dtPRN5RhZjQ{0fY$tzU98_MC{@e>QcTy)z?Gh?m?XGM0P2#tP7TfIWuJ zzUw5+YpfFC<Ua(HqPj$S`TkXuoQ8ZAWg@+N|FT(o*i~OP3*Em?x*hB$uak!E zUl?B>cC#18C$boG{pI40LC%LextB~_qv+c?G4es!2TxN)7B%ohCU8*Aldt1~XXsHC zePTvD2>UF3E>TkfPvp?9fet}6X$jtrK4=aLWMNB(aux9Pdi{{?xTe!6qcSz)Xo|M4 zg|+dqXckO>i5qaJbnROybPR)0PL*I3ZDxmXE$s1HH8!adZ>kD-x`sZ)st+0iX@`K+J@h5Rc(MeZ3Za({@w)_|@-u39Cjd?<{x5&d67E<^3QJb7 zlNIn(2;JJ-qe;oh7?!Y;CGcbbU0a=sDy3CJYuL#eI24s1P4+%kZKW!TSX2sOL$-=0 zQFGwQz|*s8t5&VVsygW5*;!qHr)%iPii+HnmKHa>#j+>_n|Z-bp1`weYVW&ZywzN| zR6J?`n%X$4?!cia7Fc=vSTUu-RI0|XpU-FYID8PcDJ`f-wF>a8>>>)y4Up&5C8I!| zzvsETXPcSD3*7;STE=$vX4s{*+v6Rp!vN2U6_ys6d~b?AOIDXI4tQ1!X*U5p`dEAT z4heke;G=*J2RtjYRXMtD+p@a{zM)8FdiD71(Jc}(iT(=!0RR6Qa0d{=z%G&{v8PK7 zBnG+h1=;~RgAot714zN3)-7l>YB1z{kQ+d58ORp*u#a$D34k6Y0LYG^7{S9T!qG9P z-ULMm2!kRBhKU*I0jWXO12bo^*2Uyv00000|NjF3&J@k+w4LOZ00000NkvXXu0mjf Dt90-b diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/images/MenuArrow-15.png b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/images/MenuArrow-15.png deleted file mode 100644 index d0d58d9d59fe833100c8d8fd814fe1bba70b293a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 725 zcmV;`0xJE9P)0021%1^@s6ex%kQ00009a7bBm001r{ z001r{0eGc9b^rhXA#_DpbW?9;ba!ELWdKKVVQ^?^V?%Flc4cyOWpW@WNp5syY$k)j5DNpM zliN2{KNReIUVLZAC%p`O<^06HoR1ulQYwPBNpdlrOzy6FJr(pV@Bo(|M(M+Q9A9!f zCRyNBQ})2m^;)Soh=c*@rMC@x1TSg&sU#30C$4zN*aF1FQfmzzVRWh!xiD zXvB79a|#ysHtBFUs6oFk9~Nem1bd#(<-@ue4sEa~w5QojJ}e2#5XW~WW^v9g?CGk; zD^^$#SM{Rm@)H3IXV-QGW4GJY@|7JHgtKhZn)u2N3&Pp9VX>jQ=@cy8cT!v3pe_y; z)OISND*-zTtIbpbTbri-iGl^Sl}b?gCkoc}U_cIPzu%MiCJq+#x?GaNqV!E1EXqW6 zn3Al?@i@WB~akf}&m=a(AqVVQzG zb*AnGEGV0M*_u^O!a}e|Foz-N+dQ^&u>Ske#+JrQSR4wl0xZF>+TLbJkuEXLg@vFR z?9Z|nnX`73x^*VsOm{oL87$DWb$^0X!}xWni?)RhZ+u&=I@k1s@nYPj9IvpG6+x~m z%HxoBvW6b%a!PxoRp`Di)Nl8_3jgb1RQ7)zJ^=s#|NjF3V+Y~Yp*lwE00000NkvXX Hu0mjfcacb; diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Arrows.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Arrows.js deleted file mode 100644 index 730717dd7a9..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Arrows.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/Arrows.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{infix:{"\u219A":c.RELACCENT,"\u219B":c.RELACCENT,"\u219C":c.WIDEREL,"\u219D":c.WIDEREL,"\u219E":c.WIDEREL,"\u219F":c.WIDEREL,"\u21A0":c.WIDEREL,"\u21A1":c.RELSTRETCH,"\u21A2":c.WIDEREL,"\u21A3":c.WIDEREL,"\u21A4":c.WIDEREL,"\u21A5":c.RELSTRETCH,"\u21A7":c.RELSTRETCH,"\u21A8":c.RELSTRETCH,"\u21AB":c.WIDEREL,"\u21AC":c.WIDEREL,"\u21AD":c.WIDEREL,"\u21AE":c.RELACCENT,"\u21AF":c.RELSTRETCH,"\u21B0":c.RELSTRETCH,"\u21B1":c.RELSTRETCH,"\u21B2":c.RELSTRETCH,"\u21B3":c.RELSTRETCH,"\u21B4":c.RELSTRETCH,"\u21B5":c.RELSTRETCH,"\u21B6":c.RELACCENT,"\u21B7":c.RELACCENT,"\u21B8":c.REL,"\u21B9":c.WIDEREL,"\u21BA":c.REL,"\u21BB":c.REL,"\u21BE":c.RELSTRETCH,"\u21BF":c.RELSTRETCH,"\u21C2":c.RELSTRETCH,"\u21C3":c.RELSTRETCH,"\u21C4":c.WIDEREL,"\u21C5":c.RELSTRETCH,"\u21C6":c.WIDEREL,"\u21C7":c.WIDEREL,"\u21C8":c.RELSTRETCH,"\u21C9":c.WIDEREL,"\u21CA":c.RELSTRETCH,"\u21CB":c.WIDEREL,"\u21CD":c.RELACCENT,"\u21CE":c.RELACCENT,"\u21CF":c.RELACCENT,"\u21D6":c.RELSTRETCH,"\u21D7":c.RELSTRETCH,"\u21D8":c.RELSTRETCH,"\u21D9":c.RELSTRETCH,"\u21DA":c.WIDEREL,"\u21DB":c.WIDEREL,"\u21DC":c.WIDEREL,"\u21DD":c.WIDEREL,"\u21DE":c.REL,"\u21DF":c.REL,"\u21E0":c.WIDEREL,"\u21E1":c.RELSTRETCH,"\u21E2":c.WIDEREL,"\u21E3":c.RELSTRETCH,"\u21E4":c.WIDEREL,"\u21E5":c.WIDEREL,"\u21E6":c.WIDEREL,"\u21E7":c.RELSTRETCH,"\u21E8":c.WIDEREL,"\u21E9":c.RELSTRETCH,"\u21EA":c.RELSTRETCH,"\u21EB":c.RELSTRETCH,"\u21EC":c.RELSTRETCH,"\u21ED":c.RELSTRETCH,"\u21EE":c.RELSTRETCH,"\u21EF":c.RELSTRETCH,"\u21F0":c.WIDEREL,"\u21F1":c.REL,"\u21F2":c.REL,"\u21F3":c.RELSTRETCH,"\u21F4":c.RELACCENT,"\u21F5":c.RELSTRETCH,"\u21F6":c.WIDEREL,"\u21F7":c.RELACCENT,"\u21F8":c.RELACCENT,"\u21F9":c.RELACCENT,"\u21FA":c.RELACCENT,"\u21FB":c.RELACCENT,"\u21FC":c.RELACCENT,"\u21FD":c.WIDEREL,"\u21FE":c.WIDEREL,"\u21FF":c.WIDEREL}}});MathJax.Ajax.loadComplete(a.optableDir+"/Arrows.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/BasicLatin.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/BasicLatin.js deleted file mode 100644 index 318cd3b6437..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/BasicLatin.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/BasicLatin.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"||":[0,0,b.BIN,{fence:true,stretchy:true,symmetric:true}],"|||":[0,0,b.ORD,{fence:true,stretchy:true,symmetric:true}]},postfix:{"!!":[1,0,b.BIN],"'":c.ACCENT,"++":[0,0,b.BIN],"--":[0,0,b.BIN],"..":[0,0,b.BIN],"...":c.ORD,"||":[0,0,b.BIN,{fence:true,stretchy:true,symmetric:true}],"|||":[0,0,b.ORD,{fence:true,stretchy:true,symmetric:true}]},infix:{"!=":c.BIN4,"&&":c.BIN4,"**":[1,1,b.BIN],"*=":c.BIN4,"+=":c.BIN4,"-=":c.BIN4,"->":c.BIN5,"//":[1,1,b.BIN],"/=":c.BIN4,":=":c.BIN4,"<=":c.BIN5,"<>":[1,1,b.BIN],"==":c.BIN4,">=":c.BIN5,"@":c.ORD11,"||":[2,2,b.BIN,{fence:true,stretchy:true,symmetric:true}],"|||":[2,2,b.ORD,{fence:true,stretchy:true,symmetric:true}]}}});MathJax.Ajax.loadComplete(a.optableDir+"/BasicLatin.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/CombDiacritMarks.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/CombDiacritMarks.js deleted file mode 100644 index ab8289df6c7..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/CombDiacritMarks.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/CombDiacritMarks.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u0311":c.ACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/CombDiacritMarks.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/CombDiactForSymbols.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/CombDiactForSymbols.js deleted file mode 100644 index 820da0bf585..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/CombDiactForSymbols.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/CombDiactForSymbols.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u20DB":c.ACCENT,"\u20DC":c.ACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/CombDiactForSymbols.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Dingbats.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Dingbats.js deleted file mode 100644 index 68dbac6640c..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Dingbats.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/Dingbats.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u2772":c.OPEN},postfix:{"\u2773":c.CLOSE}}});MathJax.Ajax.loadComplete(a.optableDir+"/Dingbats.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GeneralPunctuation.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GeneralPunctuation.js deleted file mode 100644 index 429265973fb..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GeneralPunctuation.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/GeneralPunctuation.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u2016":[0,0,b.ORD,{fence:true,stretchy:true}],"\u2018":[0,0,b.OPEN,{fence:true}],"\u201C":[0,0,b.OPEN,{fence:true}]},postfix:{"\u2016":[0,0,b.ORD,{fence:true,stretchy:true}],"\u2019":[0,0,b.CLOSE,{fence:true}],"\u201D":[0,0,b.CLOSE,{fence:true}]}}});MathJax.Ajax.loadComplete(a.optableDir+"/GeneralPunctuation.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GeometricShapes.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GeometricShapes.js deleted file mode 100644 index af574573c97..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GeometricShapes.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/GeometricShapes.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{infix:{"\u25A0":c.BIN3,"\u25A1":c.BIN3,"\u25AA":c.BIN3,"\u25AB":c.BIN3,"\u25AD":c.BIN3,"\u25AE":c.BIN3,"\u25AF":c.BIN3,"\u25B0":c.BIN3,"\u25B1":c.BIN3,"\u25B2":c.BIN4,"\u25B4":c.BIN4,"\u25B6":c.BIN4,"\u25B7":c.BIN4,"\u25B8":c.BIN4,"\u25BC":c.BIN4,"\u25BE":c.BIN4,"\u25C0":c.BIN4,"\u25C1":c.BIN4,"\u25C2":c.BIN4,"\u25C4":c.BIN4,"\u25C5":c.BIN4,"\u25C6":c.BIN4,"\u25C7":c.BIN4,"\u25C8":c.BIN4,"\u25C9":c.BIN4,"\u25CC":c.BIN4,"\u25CD":c.BIN4,"\u25CE":c.BIN4,"\u25CF":c.BIN4,"\u25D6":c.BIN4,"\u25D7":c.BIN4,"\u25E6":c.BIN4}}});MathJax.Ajax.loadComplete(a.optableDir+"/GeometricShapes.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GreekAndCoptic.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GreekAndCoptic.js deleted file mode 100644 index b5d995a376f..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/GreekAndCoptic.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/GreekAndCoptic.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{infix:{"\u03F6":c.REL}}});MathJax.Ajax.loadComplete(a.optableDir+"/GreekAndCoptic.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Latin1Supplement.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Latin1Supplement.js deleted file mode 100644 index dbe0eae2517..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/Latin1Supplement.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/Latin1Supplement.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u00B0":c.ORD,"\u00B4":c.ACCENT,"\u00B8":c.ACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/Latin1Supplement.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/LetterlikeSymbols.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/LetterlikeSymbols.js deleted file mode 100644 index 8f714046289..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/LetterlikeSymbols.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/LetterlikeSymbols.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u2145":c.ORD21,"\u2146":[2,0,b.ORD]}}});MathJax.Ajax.loadComplete(a.optableDir+"/LetterlikeSymbols.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MathOperators.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MathOperators.js deleted file mode 100644 index f1b753510aa..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MathOperators.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/MathOperators.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u2204":c.ORD21,"\u221B":c.ORD11,"\u221C":c.ORD11,"\u2221":c.ORD,"\u2222":c.ORD,"\u222C":c.INTEGRAL,"\u222D":c.INTEGRAL,"\u222F":c.INTEGRAL,"\u2230":c.INTEGRAL,"\u2231":c.INTEGRAL,"\u2232":c.INTEGRAL,"\u2233":c.INTEGRAL},infix:{"\u2201":[1,2,b.ORD],"\u2206":c.BIN3,"\u220A":c.REL,"\u220C":c.REL,"\u220D":c.REL,"\u220E":c.BIN3,"\u2214":c.BIN4,"\u221F":c.REL,"\u2224":c.REL,"\u2226":c.REL,"\u2234":c.REL,"\u2235":c.REL,"\u2236":c.REL,"\u2237":c.REL,"\u2238":c.BIN4,"\u2239":c.REL,"\u223A":c.BIN4,"\u223B":c.REL,"\u223D":c.REL,"\u223D\u0331":c.BIN3,"\u223E":c.REL,"\u223F":c.BIN3,"\u2241":c.REL,"\u2242":c.REL,"\u2242\u0338":c.REL,"\u2244":c.REL,"\u2246":c.REL,"\u2247":c.REL,"\u2249":c.REL,"\u224A":c.REL,"\u224B":c.REL,"\u224C":c.REL,"\u224E":c.REL,"\u224E\u0338":c.REL,"\u224F":c.REL,"\u224F\u0338":c.REL,"\u2251":c.REL,"\u2252":c.REL,"\u2253":c.REL,"\u2254":c.REL,"\u2255":c.REL,"\u2256":c.REL,"\u2257":c.REL,"\u2258":c.REL,"\u2259":c.REL,"\u225A":c.REL,"\u225C":c.REL,"\u225D":c.REL,"\u225E":c.REL,"\u225F":c.REL,"\u2262":c.REL,"\u2263":c.REL,"\u2266":c.REL,"\u2266\u0338":c.REL,"\u2267":c.REL,"\u2268":c.REL,"\u2269":c.REL,"\u226A\u0338":c.REL,"\u226B\u0338":c.REL,"\u226C":c.REL,"\u226D":c.REL,"\u226E":c.REL,"\u226F":c.REL,"\u2270":c.REL,"\u2271":c.REL,"\u2272":c.REL,"\u2273":c.REL,"\u2274":c.REL,"\u2275":c.REL,"\u2276":c.REL,"\u2277":c.REL,"\u2278":c.REL,"\u2279":c.REL,"\u227C":c.REL,"\u227D":c.REL,"\u227E":c.REL,"\u227F":c.REL,"\u227F\u0338":c.REL,"\u2280":c.REL,"\u2281":c.REL,"\u2282\u20D2":c.REL,"\u2283\u20D2":c.REL,"\u2284":c.REL,"\u2285":c.REL,"\u2288":c.REL,"\u2289":c.REL,"\u228A":c.REL,"\u228B":c.REL,"\u228C":c.BIN4,"\u228D":c.BIN4,"\u228F":c.REL,"\u228F\u0338":c.REL,"\u2290":c.REL,"\u2290\u0338":c.REL,"\u229A":c.BIN4,"\u229B":c.BIN4,"\u229C":c.BIN4,"\u229D":c.BIN4,"\u229E":c.BIN4,"\u229F":c.BIN4,"\u22A0":c.BIN4,"\u22A1":c.BIN4,"\u22A6":c.REL,"\u22A7":c.REL,"\u22A9":c.REL,"\u22AA":c.REL,"\u22AB":c.REL,"\u22AC":c.REL,"\u22AD":c.REL,"\u22AE":c.REL,"\u22AF":c.REL,"\u22B0":c.REL,"\u22B1":c.REL,"\u22B2":c.REL,"\u22B3":c.REL,"\u22B4":c.REL,"\u22B5":c.REL,"\u22B6":c.REL,"\u22B7":c.REL,"\u22B8":c.REL,"\u22B9":c.REL,"\u22BA":c.BIN4,"\u22BB":c.BIN4,"\u22BC":c.BIN4,"\u22BD":c.BIN4,"\u22BE":c.BIN3,"\u22BF":c.BIN3,"\u22C7":c.BIN4,"\u22C9":c.BIN4,"\u22CA":c.BIN4,"\u22CB":c.BIN4,"\u22CC":c.BIN4,"\u22CD":c.REL,"\u22CE":c.BIN4,"\u22CF":c.BIN4,"\u22D0":c.REL,"\u22D1":c.REL,"\u22D2":c.BIN4,"\u22D3":c.BIN4,"\u22D4":c.REL,"\u22D5":c.REL,"\u22D6":c.REL,"\u22D7":c.REL,"\u22D8":c.REL,"\u22D9":c.REL,"\u22DA":c.REL,"\u22DB":c.REL,"\u22DC":c.REL,"\u22DD":c.REL,"\u22DE":c.REL,"\u22DF":c.REL,"\u22E0":c.REL,"\u22E1":c.REL,"\u22E2":c.REL,"\u22E3":c.REL,"\u22E4":c.REL,"\u22E5":c.REL,"\u22E6":c.REL,"\u22E7":c.REL,"\u22E8":c.REL,"\u22E9":c.REL,"\u22EA":c.REL,"\u22EB":c.REL,"\u22EC":c.REL,"\u22ED":c.REL,"\u22F0":c.REL,"\u22F2":c.REL,"\u22F3":c.REL,"\u22F4":c.REL,"\u22F5":c.REL,"\u22F6":c.REL,"\u22F7":c.REL,"\u22F8":c.REL,"\u22F9":c.REL,"\u22FA":c.REL,"\u22FB":c.REL,"\u22FC":c.REL,"\u22FD":c.REL,"\u22FE":c.REL,"\u22FF":c.REL}}});MathJax.Ajax.loadComplete(a.optableDir+"/MathOperators.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscMathSymbolsA.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscMathSymbolsA.js deleted file mode 100644 index d90294af2c7..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscMathSymbolsA.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/MiscMathSymbolsA.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u27E6":c.OPEN,"\u27EA":c.OPEN,"\u27EC":c.OPEN},postfix:{"\u27E7":c.CLOSE,"\u27EB":c.CLOSE,"\u27ED":c.CLOSE}}});MathJax.Ajax.loadComplete(a.optableDir+"/MiscMathSymbolsA.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscMathSymbolsB.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscMathSymbolsB.js deleted file mode 100644 index 7ceb6aca28c..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscMathSymbolsB.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/MiscMathSymbolsB.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u2980":[0,0,b.ORD,{fence:true,stretchy:true}],"\u2983":c.OPEN,"\u2985":c.OPEN,"\u2987":c.OPEN,"\u2989":c.OPEN,"\u298B":c.OPEN,"\u298D":c.OPEN,"\u298F":c.OPEN,"\u2991":c.OPEN,"\u2993":c.OPEN,"\u2995":c.OPEN,"\u2997":c.OPEN,"\u29FC":c.OPEN},postfix:{"\u2980":[0,0,b.ORD,{fence:true,stretchy:true}],"\u2984":c.CLOSE,"\u2986":c.CLOSE,"\u2988":c.CLOSE,"\u298A":c.CLOSE,"\u298C":c.CLOSE,"\u298E":c.CLOSE,"\u2990":c.CLOSE,"\u2992":c.CLOSE,"\u2994":c.CLOSE,"\u2996":c.CLOSE,"\u2998":c.CLOSE,"\u29FD":c.CLOSE},infix:{"\u2981":c.BIN3,"\u2982":c.BIN3,"\u2999":c.BIN3,"\u299A":c.BIN3,"\u299B":c.BIN3,"\u299C":c.BIN3,"\u299D":c.BIN3,"\u299E":c.BIN3,"\u299F":c.BIN3,"\u29A0":c.BIN3,"\u29A1":c.BIN3,"\u29A2":c.BIN3,"\u29A3":c.BIN3,"\u29A4":c.BIN3,"\u29A5":c.BIN3,"\u29A6":c.BIN3,"\u29A7":c.BIN3,"\u29A8":c.BIN3,"\u29A9":c.BIN3,"\u29AA":c.BIN3,"\u29AB":c.BIN3,"\u29AC":c.BIN3,"\u29AD":c.BIN3,"\u29AE":c.BIN3,"\u29AF":c.BIN3,"\u29B0":c.BIN3,"\u29B1":c.BIN3,"\u29B2":c.BIN3,"\u29B3":c.BIN3,"\u29B4":c.BIN3,"\u29B5":c.BIN3,"\u29B6":c.BIN4,"\u29B7":c.BIN4,"\u29B8":c.BIN4,"\u29B9":c.BIN4,"\u29BA":c.BIN4,"\u29BB":c.BIN4,"\u29BC":c.BIN4,"\u29BD":c.BIN4,"\u29BE":c.BIN4,"\u29BF":c.BIN4,"\u29C0":c.REL,"\u29C1":c.REL,"\u29C2":c.BIN3,"\u29C3":c.BIN3,"\u29C4":c.BIN4,"\u29C5":c.BIN4,"\u29C6":c.BIN4,"\u29C7":c.BIN4,"\u29C8":c.BIN4,"\u29C9":c.BIN3,"\u29CA":c.BIN3,"\u29CB":c.BIN3,"\u29CC":c.BIN3,"\u29CD":c.BIN3,"\u29CE":c.REL,"\u29CF":c.REL,"\u29CF\u0338":c.REL,"\u29D0":c.REL,"\u29D0\u0338":c.REL,"\u29D1":c.REL,"\u29D2":c.REL,"\u29D3":c.REL,"\u29D4":c.REL,"\u29D5":c.REL,"\u29D6":c.BIN4,"\u29D7":c.BIN4,"\u29D8":c.BIN3,"\u29D9":c.BIN3,"\u29DB":c.BIN3,"\u29DC":c.BIN3,"\u29DD":c.BIN3,"\u29DE":c.REL,"\u29DF":c.BIN3,"\u29E0":c.BIN3,"\u29E1":c.REL,"\u29E2":c.BIN4,"\u29E3":c.REL,"\u29E4":c.REL,"\u29E5":c.REL,"\u29E6":c.REL,"\u29E7":c.BIN3,"\u29E8":c.BIN3,"\u29E9":c.BIN3,"\u29EA":c.BIN3,"\u29EB":c.BIN3,"\u29EC":c.BIN3,"\u29ED":c.BIN3,"\u29EE":c.BIN3,"\u29EF":c.BIN3,"\u29F0":c.BIN3,"\u29F1":c.BIN3,"\u29F2":c.BIN3,"\u29F3":c.BIN3,"\u29F4":c.REL,"\u29F5":c.BIN4,"\u29F6":c.BIN4,"\u29F7":c.BIN4,"\u29F8":c.BIN3,"\u29F9":c.BIN3,"\u29FA":c.BIN3,"\u29FB":c.BIN3,"\u29FE":c.BIN4,"\u29FF":c.BIN4}}});MathJax.Ajax.loadComplete(a.optableDir+"/MiscMathSymbolsB.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscSymbolsAndArrows.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscSymbolsAndArrows.js deleted file mode 100644 index dfef882196f..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscSymbolsAndArrows.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/MiscSymbolsAndArrows.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{infix:{"\u2B45":c.RELSTRETCH,"\u2B46":c.RELSTRETCH}}});MathJax.Ajax.loadComplete(a.optableDir+"/MiscSymbolsAndArrows.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscTechnical.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscTechnical.js deleted file mode 100644 index 860c94e4530..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/MiscTechnical.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/MiscTechnical.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u23B4":c.WIDEACCENT,"\u23B5":c.WIDEACCENT,"\u23DC":c.WIDEACCENT,"\u23DD":c.WIDEACCENT,"\u23E0":c.WIDEACCENT,"\u23E1":c.WIDEACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/MiscTechnical.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SpacingModLetters.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SpacingModLetters.js deleted file mode 100644 index df4057d612b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SpacingModLetters.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/SpacingModLetters.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{postfix:{"\u02CD":c.WIDEACCENT,"\u02DA":c.ACCENT,"\u02DD":c.ACCENT,"\u02F7":c.WIDEACCENT}}});MathJax.Ajax.loadComplete(a.optableDir+"/SpacingModLetters.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SuppMathOperators.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SuppMathOperators.js deleted file mode 100644 index 7cb0993c229..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SuppMathOperators.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/SuppMathOperators.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{prefix:{"\u2A03":c.OP,"\u2A05":c.OP,"\u2A07":c.OP,"\u2A08":c.OP,"\u2A09":c.OP,"\u2A0A":c.OP,"\u2A0B":c.INTEGRAL2,"\u2A0C":c.INTEGRAL,"\u2A0D":c.INTEGRAL2,"\u2A0E":c.INTEGRAL2,"\u2A0F":c.INTEGRAL2,"\u2A10":c.OP,"\u2A11":c.OP,"\u2A12":c.OP,"\u2A13":c.OP,"\u2A14":c.OP,"\u2A15":c.INTEGRAL2,"\u2A16":c.INTEGRAL2,"\u2A17":c.INTEGRAL2,"\u2A18":c.INTEGRAL2,"\u2A19":c.INTEGRAL2,"\u2A1A":c.INTEGRAL2,"\u2A1B":c.INTEGRAL2,"\u2A1C":c.INTEGRAL2,"\u2AFC":c.OP,"\u2AFF":c.OP},infix:{"\u2A1D":c.BIN3,"\u2A1E":c.BIN3,"\u2A1F":c.BIN3,"\u2A20":c.BIN3,"\u2A21":c.BIN3,"\u2A22":c.BIN4,"\u2A23":c.BIN4,"\u2A24":c.BIN4,"\u2A25":c.BIN4,"\u2A26":c.BIN4,"\u2A27":c.BIN4,"\u2A28":c.BIN4,"\u2A29":c.BIN4,"\u2A2A":c.BIN4,"\u2A2B":c.BIN4,"\u2A2C":c.BIN4,"\u2A2D":c.BIN4,"\u2A2E":c.BIN4,"\u2A30":c.BIN4,"\u2A31":c.BIN4,"\u2A32":c.BIN4,"\u2A33":c.BIN4,"\u2A34":c.BIN4,"\u2A35":c.BIN4,"\u2A36":c.BIN4,"\u2A37":c.BIN4,"\u2A38":c.BIN4,"\u2A39":c.BIN4,"\u2A3A":c.BIN4,"\u2A3B":c.BIN4,"\u2A3C":c.BIN4,"\u2A3D":c.BIN4,"\u2A3E":c.BIN4,"\u2A40":c.BIN4,"\u2A41":c.BIN4,"\u2A42":c.BIN4,"\u2A43":c.BIN4,"\u2A44":c.BIN4,"\u2A45":c.BIN4,"\u2A46":c.BIN4,"\u2A47":c.BIN4,"\u2A48":c.BIN4,"\u2A49":c.BIN4,"\u2A4A":c.BIN4,"\u2A4B":c.BIN4,"\u2A4C":c.BIN4,"\u2A4D":c.BIN4,"\u2A4E":c.BIN4,"\u2A4F":c.BIN4,"\u2A50":c.BIN4,"\u2A51":c.BIN4,"\u2A52":c.BIN4,"\u2A53":c.BIN4,"\u2A54":c.BIN4,"\u2A55":c.BIN4,"\u2A56":c.BIN4,"\u2A57":c.BIN4,"\u2A58":c.BIN4,"\u2A59":c.REL,"\u2A5A":c.BIN4,"\u2A5B":c.BIN4,"\u2A5C":c.BIN4,"\u2A5D":c.BIN4,"\u2A5E":c.BIN4,"\u2A5F":c.BIN4,"\u2A60":c.BIN4,"\u2A61":c.BIN4,"\u2A62":c.BIN4,"\u2A63":c.BIN4,"\u2A64":c.BIN4,"\u2A65":c.BIN4,"\u2A66":c.REL,"\u2A67":c.REL,"\u2A68":c.REL,"\u2A69":c.REL,"\u2A6A":c.REL,"\u2A6B":c.REL,"\u2A6C":c.REL,"\u2A6D":c.REL,"\u2A6E":c.REL,"\u2A6F":c.REL,"\u2A70":c.REL,"\u2A71":c.BIN4,"\u2A72":c.BIN4,"\u2A73":c.REL,"\u2A74":c.REL,"\u2A75":c.REL,"\u2A76":c.REL,"\u2A77":c.REL,"\u2A78":c.REL,"\u2A79":c.REL,"\u2A7A":c.REL,"\u2A7B":c.REL,"\u2A7C":c.REL,"\u2A7D":c.REL,"\u2A7D\u0338":c.REL,"\u2A7E":c.REL,"\u2A7E\u0338":c.REL,"\u2A7F":c.REL,"\u2A80":c.REL,"\u2A81":c.REL,"\u2A82":c.REL,"\u2A83":c.REL,"\u2A84":c.REL,"\u2A85":c.REL,"\u2A86":c.REL,"\u2A87":c.REL,"\u2A88":c.REL,"\u2A89":c.REL,"\u2A8A":c.REL,"\u2A8B":c.REL,"\u2A8C":c.REL,"\u2A8D":c.REL,"\u2A8E":c.REL,"\u2A8F":c.REL,"\u2A90":c.REL,"\u2A91":c.REL,"\u2A92":c.REL,"\u2A93":c.REL,"\u2A94":c.REL,"\u2A95":c.REL,"\u2A96":c.REL,"\u2A97":c.REL,"\u2A98":c.REL,"\u2A99":c.REL,"\u2A9A":c.REL,"\u2A9B":c.REL,"\u2A9C":c.REL,"\u2A9D":c.REL,"\u2A9E":c.REL,"\u2A9F":c.REL,"\u2AA0":c.REL,"\u2AA1":c.REL,"\u2AA1\u0338":c.REL,"\u2AA2":c.REL,"\u2AA2\u0338":c.REL,"\u2AA3":c.REL,"\u2AA4":c.REL,"\u2AA5":c.REL,"\u2AA6":c.REL,"\u2AA7":c.REL,"\u2AA8":c.REL,"\u2AA9":c.REL,"\u2AAA":c.REL,"\u2AAB":c.REL,"\u2AAC":c.REL,"\u2AAD":c.REL,"\u2AAE":c.REL,"\u2AAF\u0338":c.REL,"\u2AB0\u0338":c.REL,"\u2AB1":c.REL,"\u2AB2":c.REL,"\u2AB3":c.REL,"\u2AB4":c.REL,"\u2AB5":c.REL,"\u2AB6":c.REL,"\u2AB7":c.REL,"\u2AB8":c.REL,"\u2AB9":c.REL,"\u2ABA":c.REL,"\u2ABB":c.REL,"\u2ABC":c.REL,"\u2ABD":c.REL,"\u2ABE":c.REL,"\u2ABF":c.REL,"\u2AC0":c.REL,"\u2AC1":c.REL,"\u2AC2":c.REL,"\u2AC3":c.REL,"\u2AC4":c.REL,"\u2AC5":c.REL,"\u2AC6":c.REL,"\u2AC7":c.REL,"\u2AC8":c.REL,"\u2AC9":c.REL,"\u2ACA":c.REL,"\u2ACB":c.REL,"\u2ACC":c.REL,"\u2ACD":c.REL,"\u2ACE":c.REL,"\u2ACF":c.REL,"\u2AD0":c.REL,"\u2AD1":c.REL,"\u2AD2":c.REL,"\u2AD3":c.REL,"\u2AD4":c.REL,"\u2AD5":c.REL,"\u2AD6":c.REL,"\u2AD7":c.REL,"\u2AD8":c.REL,"\u2AD9":c.REL,"\u2ADA":c.REL,"\u2ADB":c.REL,"\u2ADC":c.REL,"\u2ADD":c.REL,"\u2ADE":c.REL,"\u2ADF":c.REL,"\u2AE0":c.REL,"\u2AE1":c.REL,"\u2AE2":c.REL,"\u2AE3":c.REL,"\u2AE4":c.REL,"\u2AE5":c.REL,"\u2AE6":c.REL,"\u2AE7":c.REL,"\u2AE8":c.REL,"\u2AE9":c.REL,"\u2AEA":c.REL,"\u2AEB":c.REL,"\u2AEC":c.REL,"\u2AED":c.REL,"\u2AEE":c.REL,"\u2AEF":c.REL,"\u2AF0":c.REL,"\u2AF1":c.REL,"\u2AF2":c.REL,"\u2AF3":c.REL,"\u2AF4":c.BIN4,"\u2AF5":c.BIN4,"\u2AF6":c.BIN4,"\u2AF7":c.REL,"\u2AF8":c.REL,"\u2AF9":c.REL,"\u2AFA":c.REL,"\u2AFB":c.BIN4,"\u2AFD":c.BIN4,"\u2AFE":c.BIN3}}});MathJax.Ajax.loadComplete(a.optableDir+"/SuppMathOperators.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SupplementalArrowsA.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SupplementalArrowsA.js deleted file mode 100644 index 4a5cc9839a6..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SupplementalArrowsA.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/SupplementalArrowsA.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{infix:{"\u27F0":c.RELSTRETCH,"\u27F1":c.RELSTRETCH,"\u27FB":c.WIDEREL,"\u27FD":c.WIDEREL,"\u27FE":c.WIDEREL,"\u27FF":c.WIDEREL}}});MathJax.Ajax.loadComplete(a.optableDir+"/SupplementalArrowsA.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SupplementalArrowsB.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SupplementalArrowsB.js deleted file mode 100644 index f6a05bfd16c..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/element/mml/optable/SupplementalArrowsB.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/element/mml/optable/SupplementalArrowsB.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(a){var c=a.mo.OPTYPES;var b=a.TEXCLASS;MathJax.Hub.Insert(a.mo.prototype,{OPTABLE:{infix:{"\u2900":c.RELACCENT,"\u2901":c.RELACCENT,"\u2902":c.RELACCENT,"\u2903":c.RELACCENT,"\u2904":c.RELACCENT,"\u2905":c.RELACCENT,"\u2906":c.RELACCENT,"\u2907":c.RELACCENT,"\u2908":c.REL,"\u2909":c.REL,"\u290A":c.RELSTRETCH,"\u290B":c.RELSTRETCH,"\u290C":c.WIDEREL,"\u290D":c.WIDEREL,"\u290E":c.WIDEREL,"\u290F":c.WIDEREL,"\u2910":c.WIDEREL,"\u2911":c.RELACCENT,"\u2912":c.RELSTRETCH,"\u2913":c.RELSTRETCH,"\u2914":c.RELACCENT,"\u2915":c.RELACCENT,"\u2916":c.RELACCENT,"\u2917":c.RELACCENT,"\u2918":c.RELACCENT,"\u2919":c.RELACCENT,"\u291A":c.RELACCENT,"\u291B":c.RELACCENT,"\u291C":c.RELACCENT,"\u291D":c.RELACCENT,"\u291E":c.RELACCENT,"\u291F":c.RELACCENT,"\u2920":c.RELACCENT,"\u2921":c.RELSTRETCH,"\u2922":c.RELSTRETCH,"\u2923":c.REL,"\u2924":c.REL,"\u2925":c.REL,"\u2926":c.REL,"\u2927":c.REL,"\u2928":c.REL,"\u2929":c.REL,"\u292A":c.REL,"\u292B":c.REL,"\u292C":c.REL,"\u292D":c.REL,"\u292E":c.REL,"\u292F":c.REL,"\u2930":c.REL,"\u2931":c.REL,"\u2932":c.REL,"\u2933":c.RELACCENT,"\u2934":c.REL,"\u2935":c.REL,"\u2936":c.REL,"\u2937":c.REL,"\u2938":c.REL,"\u2939":c.REL,"\u293A":c.RELACCENT,"\u293B":c.RELACCENT,"\u293C":c.RELACCENT,"\u293D":c.RELACCENT,"\u293E":c.REL,"\u293F":c.REL,"\u2940":c.REL,"\u2941":c.REL,"\u2942":c.RELACCENT,"\u2943":c.RELACCENT,"\u2944":c.RELACCENT,"\u2945":c.RELACCENT,"\u2946":c.RELACCENT,"\u2947":c.RELACCENT,"\u2948":c.RELACCENT,"\u2949":c.REL,"\u294A":c.RELACCENT,"\u294B":c.RELACCENT,"\u294C":c.REL,"\u294D":c.REL,"\u294E":c.WIDEREL,"\u294F":c.RELSTRETCH,"\u2950":c.WIDEREL,"\u2951":c.RELSTRETCH,"\u2952":c.WIDEREL,"\u2953":c.WIDEREL,"\u2954":c.RELSTRETCH,"\u2955":c.RELSTRETCH,"\u2956":c.RELSTRETCH,"\u2957":c.RELSTRETCH,"\u2958":c.RELSTRETCH,"\u2959":c.RELSTRETCH,"\u295A":c.WIDEREL,"\u295B":c.WIDEREL,"\u295C":c.RELSTRETCH,"\u295D":c.RELSTRETCH,"\u295E":c.WIDEREL,"\u295F":c.WIDEREL,"\u2960":c.RELSTRETCH,"\u2961":c.RELSTRETCH,"\u2962":c.RELACCENT,"\u2963":c.REL,"\u2964":c.RELACCENT,"\u2965":c.REL,"\u2966":c.RELACCENT,"\u2967":c.RELACCENT,"\u2968":c.RELACCENT,"\u2969":c.RELACCENT,"\u296A":c.RELACCENT,"\u296B":c.RELACCENT,"\u296C":c.RELACCENT,"\u296D":c.RELACCENT,"\u296E":c.RELSTRETCH,"\u296F":c.RELSTRETCH,"\u2970":c.RELACCENT,"\u2971":c.RELACCENT,"\u2972":c.RELACCENT,"\u2973":c.RELACCENT,"\u2974":c.RELACCENT,"\u2975":c.RELACCENT,"\u2976":c.RELACCENT,"\u2977":c.RELACCENT,"\u2978":c.RELACCENT,"\u2979":c.RELACCENT,"\u297A":c.RELACCENT,"\u297B":c.RELACCENT,"\u297C":c.RELACCENT,"\u297D":c.RELACCENT,"\u297E":c.REL,"\u297F":c.REL}}});MathJax.Ajax.loadComplete(a.optableDir+"/SupplementalArrowsB.js")})(MathJax.ElementJax.mml); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/annotation-xml.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/annotation-xml.js deleted file mode 100644 index bd9de616937..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/annotation-xml.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/autoload/annotation-xml.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function(){var c="2.1";var a=MathJax.ElementJax.mml,b=MathJax.OutputJax["HTML-CSS"];a["annotation-xml"].Augment({toHTML:function(f){f=this.HTMLhandleSize(this.HTMLcreateSpan(f));var g=this.Get("encoding");for(var e=0,d=this.data.length;ethis.data.length){this.selection=1}var k=this;while(k.type!=="math"){k=k.inherit}var h=MathJax.Hub.getJaxFor(k.inputID),j=!!h.hover;h.Update();if(j){var i=document.getElementById(h.inputID+"-Span");MathJax.Extension.MathEvents.Hover.Hover(h,i)}return MathJax.Extension.MathEvents.Event.False(l)},HTMLsetStatus:function(h){this.messageID=MathJax.Message.Set((this.data[1]&&this.data[1].isToken)?this.data[1].data.join(""):this.data[1].toString())},HTMLclearStatus:function(h){if(this.messageID){MathJax.Message.Clear(this.messageID,0)}delete this.messageID},HTMLtooltipOver:function(i){if(!i){i=window.event}if(b){clearTimeout(b);b=null}if(f){clearTimeout(f)}var h=i.pageX;var k=i.pageY;if(h==null){h=i.clientX+document.body.scrollLeft+document.documentElement.scrollLeft;k=i.clientY+document.body.scrollTop+document.documentElement.scrollTop}var j=MathJax.Callback(["HTMLtooltipPost",this,h+a.offsetX,k+a.offsetY]);f=setTimeout(j,a.delayPost)},HTMLtooltipOut:function(h){if(f){clearTimeout(f);f=null}if(b){clearTimeout(b)}var i=MathJax.Callback(["HTMLtooltipClear",this,80]);b=setTimeout(i,a.delayClear)},HTMLtooltipPost:function(o,m){f=null;if(b){clearTimeout(b);b=null}var p=this.HTMLtooltip;p.style.display="block";p.style.opacity="";p.style.filter=e.config.styles["#MathJax_Tooltip"].filter;if(this===d){return}p.style.left=o+"px";p.style.top=m+"px";p.innerHTML='';var q=p.insertBefore(e.EmExSpan.cloneNode(true),p.firstChild);var l=q.firstChild.offsetHeight/60,h=q.lastChild.firstChild.offsetHeight/60;e.em=e.outerEm=c.mbase.prototype.em=h;var i=Math.floor(Math.max(e.config.minScaleAdjust/100,(l/e.TeX.x_height)/h)*e.config.scale);p.firstChild.style.fontSize=i+"%";q.parentNode.removeChild(q);var n=e.createStack(p.firstChild.firstChild);var k=e.createBox(n);try{e.Measured(this.data[1].toHTML(k),k)}catch(j){if(!j.restart){throw j}p.style.display="none";MathJax.Callback.After(["HTMLtooltipPost",this,o,m],j.restart);return}e.placeBox(k,0,0);e.createRule(p.firstChild.firstChild,k.bbox.h,k.bbox.d,0);d=this},HTMLtooltipClear:function(i){var h=this.HTMLtooltip;if(i<=0){h.style.display="none";h.style.opacity=h.style.filter="";b=null}else{h.style.opacity=i/100;h.style.filter="alpha(opacity="+i+")";b=setTimeout(MathJax.Callback(["HTMLtooltipClear",this,i-20]),50)}}});MathJax.Hub.Browser.Select({MSIE:function(h){e.msieHitBoxBug=true}});MathJax.Hub.Startup.signal.Post("HTML-CSS maction Ready");MathJax.Ajax.loadComplete(e.autoloadDir+"/maction.js")}); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/menclose.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/menclose.js deleted file mode 100644 index eebbea98ac4..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/menclose.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/autoload/menclose.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function(){var d="2.1";var a=MathJax.ElementJax.mml,b=MathJax.OutputJax["HTML-CSS"];var c="http://www.w3.org/2000/svg";var f="urn:schemas-microsoft-com:vml";var e="mjxvml";a.menclose.Augment({toHTML:function(ab){var j=this.getValues("notation","thickness","padding","mathcolor","color");if(j.color&&!this.mathcolor){j.mathcolor=j.color}if(j.thickness==null){j.thickness=".075em"}if(j.padding==null){j.padding=".2em"}var U=this.HTMLgetMu(ab),ae=this.HTMLgetScale();var V=b.length2em(j.padding,U,1/b.em)*ae;var M=b.length2em(j.thickness,U,1/b.em)*ae;var C=b.Em(M)+" solid";ab=this.HTMLcreateSpan(ab);var v=b.createStack(ab);var s=b.createBox(v);this.HTMLmeasureChild(0,s);var J=s.bbox.h+V+M,O=s.bbox.d+V+M,k=s.bbox.w+2*(V+M);var N=b.createFrame(v,J+O,0,k,M,"none");N.id="MathJax-frame-"+this.spanID;b.addBox(v,N);v.insertBefore(N,s);var n=j.notation.split(/ /);var o=0,S=0,q=0,z=0,K=0,I=0;var Q,g;var G,ac,P;if(!j.mathcolor){j.mathcolor="black"}else{ab.style.color=j.mathcolor}for(var aa=0,Y=n.length;aai.bbox.rw){i.bbox.rw=i.bbox.w}if(j.bbox.h>i.bbox.h){i.bbox.h=j.bbox.h}if(j.bbox.d>i.bbox.d){i.bbox.d=j.bbox.d}}}this.HTMLhandleSpace(j);this.HTMLhandleColor(j);return j},HTMLimgLoaded:function(e,d){if(typeof(e)==="string"){d=e}this.img.status=(d||"OK")},HTMLimgError:function(){this.img.img.onload("error")}},{GLYPH:{}});MathJax.Hub.Startup.signal.Post("HTML-CSS mglyph Ready");MathJax.Ajax.loadComplete(b.autoloadDir+"/mglyph.js")}); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/mmultiscripts.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/mmultiscripts.js deleted file mode 100644 index 173c2e67ce7..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/mmultiscripts.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/autoload/mmultiscripts.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function(){var c="2.1";var a=MathJax.ElementJax.mml,b=MathJax.OutputJax["HTML-CSS"];a.mmultiscripts.Augment({toHTML:function(J,H,B){J=this.HTMLcreateSpan(J);var O=this.HTMLgetScale();var l=b.createStack(J),f;var j=b.createBox(l);if(this.data[this.base]){var k=this.data[this.base].toHTML(j);if(B!=null){this.data[this.base].HTMLstretchV(j,H,B)}else{if(H!=null){this.data[this.base].HTMLstretchH(j,H)}}b.Measured(k,j)}else{j.bbox=this.HTMLzeroBBox()}var M=b.TeX.x_height*O,A=b.TeX.scriptspace*O*0.75;var z=this.HTMLgetScripts(l,A);var m=z[0],e=z[1],w=z[2],i=z[3];var g=(this.data[1]||this).HTMLgetScale();var E=b.TeX.sup_drop*g,C=b.TeX.sub_drop*g;var x=j.bbox.h-E,o=j.bbox.d+C,N=0,G;if(j.bbox.ic){N=j.bbox.ic}if(this.data[this.base]&&(this.data[this.base].type==="mi"||this.data[this.base].type==="mo")){if(this.data[this.base].data.join("").length===1&&j.bbox.scale===1&&!this.data[this.base].Get("largeop")){x=o=0}}var I=this.getValues("subscriptshift","superscriptshift"),F=this.HTMLgetMu(J);I.subscriptshift=(I.subscriptshift===""?0:b.length2em(I.subscriptshift,F));I.superscriptshift=(I.superscriptshift===""?0:b.length2em(I.superscriptshift,F));var n=0;if(w){n=w.bbox.w+N}else{if(i){n=i.bbox.w-N}}if(n<0){n=0}b.placeBox(j,n,0);if(!e&&!i){o=Math.max(o,b.TeX.sub1*O,I.subscriptshift);if(m){o=Math.max(o,m.bbox.h-(4/5)*M)}if(w){o=Math.max(o,w.bbox.h-(4/5)*M)}if(m){b.placeBox(m,n+j.bbox.w+A-N,-o)}if(w){b.placeBox(w,0,-o)}}else{if(!m&&!w){f=this.getValues("displaystyle","texprimestyle");G=b.TeX[(f.displaystyle?"sup1":(f.texprimestyle?"sup3":"sup2"))];x=Math.max(x,G*O,I.superscriptshift);if(e){x=Math.max(x,e.bbox.d+(1/4)*M)}if(i){x=Math.max(x,i.bbox.d+(1/4)*M)}if(e){b.placeBox(e,n+j.bbox.w+A,x)}if(i){b.placeBox(i,0,x)}}else{o=Math.max(o,b.TeX.sub2*O);var y=b.TeX.rule_thickness*O;var K=(m||w).bbox.h,L=(e||i).bbox.d;if(w){K=Math.max(K,w.bbox.h)}if(i){L=Math.max(L,i.bbox.d)}if((x-L)-(K-o)<3*y){o=3*y-x+L+K;E=(4/5)*M-(x-L);if(E>0){x+=E;o-=E}}x=Math.max(x,I.superscriptshift);o=Math.max(o,I.subscriptshift);if(e){b.placeBox(e,n+j.bbox.w+A,x)}if(i){b.placeBox(i,n+N-i.bbox.w,x)}if(m){b.placeBox(m,n+j.bbox.w+A-N,-o)}if(w){b.placeBox(w,n-w.bbox.w,-o)}}}this.HTMLhandleSpace(J);this.HTMLhandleColor(J);return J},HTMLgetScripts:function(p,q){var o,d,e=[];var n=1,g=this.data.length,f=0;for(var h=0;h<4;h+=2){while(no.bbox.w){b.createBlank(o,d.bbox.w-o.bbox.w);o.bbox.w=d.bbox.w;o.bbox.rw=Math.max(o.bbox.w,o.bbox.rw)}}}if(d){f=d.bbox.w}else{if(o){f=o.bbox.w}}}n++;f=0}for(l=0;l<4;l++){if(e[l]){e[l].bbox.w+=q;e[l].bbox.rw=Math.max(e[l].bbox.w,e[l].bbox.rw);this.HTMLcleanBBox(e[l].bbox)}}return e},HTMLstretchH:a.mbase.HTMLstretchH,HTMLstretchV:a.mbase.HTMLstretchV});MathJax.Hub.Startup.signal.Post("HTML-CSS mmultiscripts Ready");MathJax.Ajax.loadComplete(b.autoloadDir+"/mmultiscripts.js")}); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/ms.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/ms.js deleted file mode 100644 index cd7b79cbad2..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/ms.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/autoload/ms.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function(){var c="2.1";var a=MathJax.ElementJax.mml,b=MathJax.OutputJax["HTML-CSS"];a.ms.Augment({toHTML:function(e){e=this.HTMLhandleSize(this.HTMLcreateSpan(e));var d=this.getValues("lquote","rquote");var g=this.data.join("");var f=[];if(d.lquote.length===1){f.push(this.HTMLquoteRegExp(d.lquote))}if(d.rquote.length===1){f.push(this.HTMLquoteRegExp(d.rquote))}if(f.length){g=g.replace(RegExp("("+f.join("|")+")","g"),"\\$1")}this.HTMLhandleVariant(e,this.HTMLgetVariant(),d.lquote+g+d.rquote);this.HTMLhandleSpace(e);this.HTMLhandleColor(e);return e},HTMLquoteRegExp:function(d){return d.replace(/([.*+?|{}()\[\]\\])/g,"\\$1")}});a.ms.prototype.defaults.mathvariant="monospace";MathJax.Hub.Startup.signal.Post("HTML-CSS ms Ready");MathJax.Ajax.loadComplete(b.autoloadDir+"/ms.js")}); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/mtable.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/mtable.js deleted file mode 100644 index 2af2c62e1b4..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/autoload/mtable.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/autoload/mtable.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Register.StartupHook("HTML-CSS Jax Ready",function(){var c="2.1";var a=MathJax.ElementJax.mml,b=MathJax.OutputJax["HTML-CSS"];a.mtable.Augment({toHTML:function(r){r=this.HTMLcreateSpan(r);if(this.data.length===0){return r}var G=this.getValues("columnalign","rowalign","columnspacing","rowspacing","columnwidth","equalcolumns","equalrows","columnlines","rowlines","frame","framespacing","align","useHeight","width","side","minlabelspacing");var aF=G.width.match(/%$/);var av=b.createStack(r);var aC=this.HTMLgetScale(),ax=this.HTMLgetMu(r),ay=-1;var ao=[],ar=[],ai=[],au=[],at=[],ad,ac,an=-1,ab,am,V,aB,O,az,aK=[];var aj=b.FONTDATA.baselineskip*aC*G.useHeight,aP,E=b.FONTDATA.lineH*aC,L=b.FONTDATA.lineD*aC;for(ad=0,ab=this.data.length;adan){an=ac}at[ac]=b.createStack(b.createBox(av));ai[ac]=-b.BIGDIMEN}au[ad][ac]=b.createBox(at[ac]);aK.push(aB.data[ac-V].toHTML(au[ad][ac]))}}b.MeasureSpans(aK);for(ad=0,ab=this.data.length;adao[ac]){ao[ac]=aO*aH.h/aP}if(aO*aH.d/aP>ar[ac]){ar[ac]=aO*aH.d/aP}}}else{if(az.HTMLcanStretch("Horizontal")){aO=b.length2em(aO,ax,aH.w);if(aO>ai[ac]){ai[ac]=aO}}}}}if(au[ad][ac].bbox.h>ao[ad]){ao[ad]=au[ad][ac].bbox.h}if(au[ad][ac].bbox.d>ar[ad]){ar[ad]=au[ad][ac].bbox.d}if(au[ad][ac].bbox.w>ai[ac]){ai[ac]=au[ad][ac].bbox.w}}}if(ao[0]+ar[0]){ao[0]=Math.max(ao[0],E)}if(ao[au.length-1]+ar[au.length-1]){ar[au.length-1]=Math.max(ar[au.length-1],L)}var aw=G.columnspacing.split(/ /),aM=G.rowspacing.split(/ /),e=G.columnalign.split(/ /),z=G.rowalign.split(/ /),d=G.columnlines.split(/ /),v=G.rowlines.split(/ /),aI=G.columnwidth.split(/ /),T=[];for(ad=0,ab=aw.length;adau.length){Z=au.length}}ah=0;aQ=-(aP+aD)+ao[0];for(ad=0,ab=Z-1;ad0.98){Q=0.98/ae;ae=0.98}}else{if(G.width==="auto"){if(ae>0.98){Q=I/(w+I);aa=w+I}else{aa=w/(1-ae)}}else{aa=b.length2em(G.width,ax);for(ad=0,ab=Math.min(an+1,aw.length);ad0.01){if(af&&aa>w){aa=(aa-w)/af;for(ad=0,ab=aq.length;ad=b.linebreakWidth||i.penalty==e.newline)){this.HTMLaddLine(m,g,i.index,f,i.values,j);g=i.index.slice(0);j=true;k=this.HTMLgetAlign(f,i.values);h=this.HTMLgetShift(f,i.values,k);if(k===a.INDENTALIGN.CENTER){h=0}i.W=i.shift=i.scanW=h;i.penalty=e.nobreak}f.isLast=true;this.HTMLaddLine(m,g,[],f,c,j);if(l){m.style.width="100%";if(o.type==="math"){n.bbox.width="100%"}}this.HTMLhandleSpace(n);this.HTMLhandleColor(n);n.bbox.isMultiline=true;return n},HTMLbetterBreak:function(h,f){if(this.isToken){return false}if(this.isEmbellished()){h.embellished=this;return this.CoreMO().HTMLbetterBreak(h,f)}if(this.linebreakContainer){return false}var p=h.index.slice(0),n=h.index.shift(),l=this.data.length,k,q,j,o=(h.index.length>0),g=false;if(n==null){n=-1}if(!o){n++;h.W+=h.w;h.w=0}j=h.scanW=h.W;h.nest++;while(n0){var k=b.FONTDATA.baselineskip*f.scale;var i=(f.values.lineleading==null?f.VALUES:f.values).lineleading;f.Y-=Math.max(k,f.d+line.bbox.h+i)}b.alignBox(line,m,f.Y);f.d=line.bbox.d;f.values=o;f.n++},HTMLgetAlign:function(i,f){var j=f,g=i.values,h=i.VALUES,k;if(i.n===0){k=j.indentalignfirst||g.indentalignfirst||h.indentalignfirst}else{if(i.isLast){k=g.indentalignlast||h.indentalignlast}else{k=g.indentalign||h.indentalign}}if(k===a.INDENTALIGN.INDENTALIGN){k=g.indentalign||h.indentalign}if(k===a.INDENTALIGN.AUTO){k=(i.isTop?this.displayAlign:a.INDENTALIGN.LEFT)}return k},HTMLgetShift:function(j,g,l){if(l===a.INDENTALIGN.CENTER){return 0}var k=g,h=j.values,i=j.VALUES,f;if(j.n===0){f=k.indentshiftfirst||h.indentshiftfirst||i.indentshiftfirst}else{if(j.isLast){f=h.indentshiftlast||i.indentshiftlast}else{f=h.indentshift||i.indentshift}}if(f===a.INDENTSHIFT.INDENTSHIFT){f=h.indentshift||i.indentshift}if(f==="auto"||f===""){f=(j.isTSop?this.displayIndent:"0")}return b.length2em(f,0)},HTMLmoveLine:function(o,f,l,n,g){var k=o[0],h=f[0];if(k==null){k=-1}if(h==null){h=this.data.length-1}if(k===h&&o.length>1){this.data[k].HTMLmoveSlice(o.slice(1),f.slice(1),l,n,g,"paddingLeft")}else{var m=n.last;n.last=false;while(k0),g=false;if(r==null){r=-1}if(!s){r++;h.W+=h.w;h.w=0}l=h.scanW=h.W;h.nest++;if(!this.dataI){this.dataI=[];if(this.data.open){this.dataI.push("open")}if(o){this.dataI.push(0)}for(var q=1;q1){this.data[this.dataI[n]].HTMLmoveSlice(g.slice(1),l.slice(1),o,f,q,"paddingLeft")}else{var p=f.last;f.last=false;var h=this.dataI[n];while(n0),g=false;if(!m){h.W+=h.w;h.w=0}j=h.scanW=h.W;if(l==null){this.HTMLbaseW=this.data[this.base].HTMLspanElement().bbox.w;this.HTMLdw=this.HTMLspanElement().bbox.w-this.HTMLbaseW}if(this.data[this.base].HTMLbetterBreak(h,f)){g=true;n=[this.base].concat(h.index);k=h.W;o=h.w;if(h.penalty===e.newline){g=m=true}}if(!m){this.HTMLaddWidth(this.base,h,j)}h.scanW+=this.HTMLdw;h.W=h.scanW;h.index=[];if(g){h.W=k;h.w=o;h.index=n}return g},HTMLmoveLine:function(m,g,j,l,h){if(this.data[this.base]){if(m.length>1){this.data[this.base].HTMLmoveSlice(m.slice(1),g.slice(1),j,l,h,"paddingLeft")}else{if(g.length<=1){this.data[this.base].HTMLmoveSpan(j,l,h)}else{this.data[this.base].HTMLmoveSlice([],g.slice(1),j,l,h,"paddingRight")}}}if(g.length===0){var i=this.data[this.sup]||this.data[this.sub];if(i){var k=i.HTMLspanElement().parentNode,f=k.parentNode;if(this.data[this.base]){f.removeChild(f.firstChild)}for(k=f.firstChild;k;k=k.nextSibling){k.style.left=b.Em(b.unEm(k.style.left)-this.HTMLbaseW)}f.bbox.w-=this.HTMLbaseW;f.style.width=b.Em(f.bbox.w);this.HTMLcombineBBoxes(f,j.bbox);j.appendChild(f)}}}});a.mo.Augment({HTMLbetterBreak:function(h,f){if(h.values&&h.values.id===this.spanID){return false}var p=this.getValues("linebreak","linebreakstyle","lineleading","linebreakmultchar","indentalign","indentshift","indentalignfirst","indentshiftfirst","indentalignlast","indentshiftlast","texClass","fence");if(p.linebreakstyle===a.LINEBREAKSTYLE.INFIXLINEBREAKSTYLE){p.linebreakstyle=this.Get("infixlinebreakstyle")}if(p.texClass===a.TEXCLASS.OPEN){h.nest++}if(p.texClass===a.TEXCLASS.CLOSE){h.nest--}var i=h.scanW,j=(h.embellished||this);delete h.embellished;var n=j.HTMLspanElement(),o=n.bbox.w;if(n.style.paddingLeft){o+=b.unEm(n.style.paddingLeft)}if(p.linebreakstyle===a.LINEBREAKSTYLE.AFTER){i+=o;o=0}if(i-h.shift===0){return false}var k=b.linebreakWidth-i;if(f.n===0&&(p.indentshiftfirst!==f.VALUES.indentshiftfirst||p.indentalignfirst!==f.VALUES.indentalignfirst)){var l=this.HTMLgetAlign(f,p),g=this.HTMLgetShift(f,p,l);k+=(h.shift-g)}var m=Math.floor(k/b.linebreakWidth*1000);if(m<0){m=e.toobig-3*m}if(p.fence){m+=e.fence}if((p.linebreakstyle===a.LINEBREAKSTYLE.AFTER&&p.texClass===a.TEXCLASS.OPEN)||p.texClass===a.TEXCLASS.CLOSE){m+=e.close}m+=h.nest*e.nestfactor;var q=e[p.linebreak||a.LINEBREAK.AUTO];if(!(q instanceof Array)){if(k>=0){m=q*h.nest}}else{m=Math.max(1,m+q[0]*h.nest)}if(m>=h.penalty){return false}h.penalty=m;h.values=p;h.W=i;h.w=o;p.lineleading=b.length2em(p.lineleading,f.VALUES.lineleading);p.id=this.spanID;return true}});a.mspace.Augment({HTMLbetterBreak:function(g,f){if(g.values&&g.values.id===this.spanID){return false}var m=this.getValues("linebreak");var h=g.scanW,k=this.HTMLspanElement(),l=k.bbox.w;if(k.style.paddingLeft){l+=b.unEm(k.style.paddingLeft)}if(h-g.shift===0){return false}var i=b.linebreakWidth-h;var j=Math.floor(i/b.linebreakWidth*1000);if(j<0){j=e.toobig-3*j}j+=g.nest*e.nestfactor;var n=e[m.linebreak||a.LINEBREAK.AUTO];if(m.linebreak===a.LINEBREAK.AUTO&&l>=e.spacelimit){n=[(l+e.spaceoffset)*e.spacefactor]}if(!(n instanceof Array)){if(i>=0){j=n*g.nest}}else{j=Math.max(1,j+n[0]*g.nest)}if(j>=g.penalty){return false}g.penalty=j;g.values=m;g.W=h;g.w=l;m.lineleading=f.VALUES.lineleading;m.linebreakstyle="before";m.id=this.spanID;return true}});MathJax.Hub.Register.StartupHook("TeX mathchoice Ready",function(){a.TeXmathchoice.Augment({HTMLbetterBreak:function(g,f){return this.Core().HTMLbetterBreak(g,f)},HTMLmoveLine:function(j,f,h,i,g){return this.Core().HTMLmoveSlice(j,f,h,i,g)}})});a.maction.Augment({HTMLbetterBreak:function(g,f){return this.Core().HTMLbetterBreak(g,f)},HTMLmoveLine:function(j,f,h,i,g){return this.Core().HTMLmoveSlice(j,f,h,i,g)},HTMLmoveSlice:function(g,i,l,f,m,j){var o=document.getElementById("MathJax-HitBox-"+this.spanID+b.idPostfix);if(o){o.parentNode.removeChild(o)}var k=this.SUPER(arguments).HTMLmoveSlice.apply(this,arguments);if(i.length===0){l=this.HTMLspanElement();var h=0;while(l){o=this.HTMLhandleHitBox(l,"-Continue-"+h);l=l.nextMathJaxSpan;h++}}return k}});a.semantics.Augment({HTMLbetterBreak:function(g,f){return(this.data[0]?this.data[0].HTMLbetterBreak(g,f):false)},HTMLmoveLine:function(j,f,h,i,g){return(this.data[0]?this.data[0].HTMLmoveSlice(j,f,h,i,g):null)}});MathJax.Hub.Startup.signal.Post("HTML-CSS multiline Ready");MathJax.Ajax.loadComplete(b.autoloadDir+"/multiline.js")}); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Arrows.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Arrows.js deleted file mode 100644 index 462211d9c87..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Arrows.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Arrows.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{8592:[437,-64,500,64,422],8594:[437,-64,500,58,417],8602:[437,-60,1000,56,942],8603:[437,-60,1000,54,942],8606:[417,-83,1000,56,944],8608:[417,-83,1000,55,943],8610:[417,-83,1111,56,1031],8611:[417,-83,1111,79,1054],8619:[575,41,1000,56,964],8620:[575,41,1000,35,943],8621:[417,-83,1389,57,1331],8622:[437,-60,1000,56,942],8624:[722,0,500,56,444],8625:[722,0,500,55,443],8630:[461,1,1000,17,950],8631:[460,1,1000,46,982],8634:[650,83,778,56,722],8635:[650,83,778,56,721],8638:[694,194,417,188,375],8639:[694,194,417,41,228],8642:[694,194,417,188,375],8643:[694,194,417,41,228],8644:[667,0,1000,55,944],8646:[667,0,1000,55,944],8647:[583,83,1000,55,944],8648:[694,193,833,83,749],8649:[583,83,1000,55,944],8650:[694,194,833,83,749],8651:[514,14,1000,55,944],8652:[514,14,1000,55,944],8653:[534,35,1000,54,942],8654:[534,37,1000,32,965],8655:[534,35,1000,55,943],8666:[611,111,1000,76,944],8667:[611,111,1000,55,923],8669:[417,-83,1000,56,943],8672:[437,-64,1334,64,1251],8674:[437,-64,1334,84,1251]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/Arrows.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js deleted file mode 100644 index 7bbb24bb177..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BBBold.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{32:[0,0,250,0,0],65:[701,1,722,17,703],66:[683,1,667,11,620],67:[702,19,722,39,684],68:[683,1,722,16,688],69:[683,1,667,12,640],70:[683,1,611,12,584],71:[702,19,778,39,749],72:[683,1,778,14,762],73:[683,1,389,20,369],74:[683,77,500,6,478],75:[683,1,778,22,768],76:[683,1,667,12,640],77:[683,1,944,17,926],78:[683,20,722,20,702],79:[701,19,778,34,742],80:[683,1,611,16,597],81:[701,181,778,34,742],82:[683,1,722,16,705],83:[702,12,556,28,528],84:[683,1,667,33,635],85:[683,19,722,16,709],86:[683,20,722,0,719],87:[683,19,1000,5,994],88:[683,1,722,16,705],89:[683,1,722,16,704],90:[683,1,667,29,635],107:[683,1,556,17,534]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/BBBold.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BoxDrawing.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BoxDrawing.js deleted file mode 100644 index 0ee629748d2..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BoxDrawing.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/BoxDrawing.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{9484:[694,-306,500,55,444],9488:[694,-306,500,55,444],9492:[366,22,500,55,444],9496:[366,22,500,55,444],9585:[694,195,889,0,860],9586:[694,195,889,0,860]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/BoxDrawing.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/CombDiacritMarks.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/CombDiacritMarks.js deleted file mode 100644 index ff8c8fe720a..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/CombDiacritMarks.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/CombDiacritMarks.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{770:[845,-561,0,-2347,13],771:[899,-628,0,-2332,-3]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/CombDiacritMarks.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Dingbats.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Dingbats.js deleted file mode 100644 index ebcfb319bfd..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Dingbats.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Dingbats.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{10003:[706,34,833,84,749],10016:[716,22,833,48,786]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/Dingbats.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/EnclosedAlphanum.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/EnclosedAlphanum.js deleted file mode 100644 index 6089fa9015b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/EnclosedAlphanum.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/EnclosedAlphanum.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{9416:[709,175,902,8,894]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/EnclosedAlphanum.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js deleted file mode 100644 index d1101887a60..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeneralPunctuation.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{8245:[560,-43,275,12,244]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/GeneralPunctuation.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeometricShapes.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeometricShapes.js deleted file mode 100644 index 34eff613468..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeometricShapes.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GeometricShapes.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{9632:[689,0,778,55,722],9633:[689,0,778,55,722],9650:[575,20,722,84,637],9651:[575,20,722,84,637],9654:[539,41,778,83,694],9660:[576,19,722,84,637],9661:[576,19,722,84,637],9664:[539,41,778,83,694],9674:[716,132,667,56,611]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/GeometricShapes.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GreekAndCoptic.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GreekAndCoptic.js deleted file mode 100644 index e206b37b33f..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GreekAndCoptic.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/GreekAndCoptic.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{989:[605,85,778,55,719],1008:[434,6,667,37,734]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/GreekAndCoptic.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Latin1Supplement.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Latin1Supplement.js deleted file mode 100644 index e2ea7adde8b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Latin1Supplement.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Latin1Supplement.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{160:[0,0,250,0,0],165:[683,0,750,11,738],174:[709,175,947,32,915],240:[749,21,556,42,509]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/Latin1Supplement.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LatinExtendedA.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LatinExtendedA.js deleted file mode 100644 index 264867b063b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LatinExtendedA.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LatinExtendedA.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{295:[695,13,540,42,562]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/LatinExtendedA.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LetterlikeSymbols.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LetterlikeSymbols.js deleted file mode 100644 index 3b6647e8f3e..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LetterlikeSymbols.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/LetterlikeSymbols.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{8463:[695,13,540,42,562],8487:[684,22,722,44,675],8498:[695,1,556,55,497],8502:[763,21,667,-22,687],8503:[764,43,444,-22,421],8504:[764,43,667,54,640],8513:[705,23,639,37,577]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/LetterlikeSymbols.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js deleted file mode 100644 index dc7f1d66e1b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS={directory:"AMS/Regular",family:"MathJax_AMS",testString:"MATHJAX AMS \u02C6",Ranges:[[0,127,"BBBold"],[128,255,"Latin1Supplement"],[256,383,"LatinExtendedA"],[688,767,"SpacingModLetters"],[768,879,"CombDiacritMarks"],[880,1023,"GreekAndCoptic"],[8192,8303,"GeneralPunctuation"],[8448,8527,"LetterlikeSymbols"],[8592,8703,"Arrows"],[8704,8959,"MathOperators"],[8960,9215,"MiscTechnical"],[9312,9471,"EnclosedAlphanum"],[9472,9599,"BoxDrawing"],[9632,9727,"GeometricShapes"],[9728,9983,"MiscSymbols"],[9984,10175,"Dingbats"],[10624,10751,"MiscMathSymbolsB"],[10752,11007,"SuppMathOperators"],[57344,63743,"PUA"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_AMS"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js deleted file mode 100644 index 3051927780a..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MathOperators.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{8705:[846,21,500,56,444],8708:[860,166,556,55,497],8709:[587,3,778,54,720],8717:[440,1,429,102,456],8722:[270,-230,500,84,417],8724:[766,93,778,57,722],8726:[430,23,778,91,685],8733:[472,-28,778,56,722],8736:[694,0,722,55,666],8737:[714,20,722,55,666],8738:[551,51,722,55,666],8739:[430,23,222,91,131],8740:[750,252,278,-21,297],8741:[431,23,389,55,331],8742:[750,250,500,-20,518],8756:[471,82,667,24,643],8757:[471,82,667,23,643],8764:[365,-132,778,55,719],8765:[367,-133,778,56,722],8769:[467,-32,778,55,719],8770:[463,-34,778,55,720],8774:[652,155,778,54,720],8776:[481,-50,778,55,719],8778:[579,39,778,51,725],8782:[492,-8,778,56,722],8783:[492,-133,778,56,722],8785:[609,108,778,56,722],8786:[601,101,778,15,762],8787:[601,102,778,14,762],8790:[367,-133,778,56,722],8791:[721,-133,778,56,722],8796:[859,-133,778,56,723],8806:[753,175,778,83,694],8807:[753,175,778,83,694],8808:[752,286,778,82,693],8809:[752,286,778,82,693],8812:[750,250,500,74,425],8814:[708,209,778,82,693],8815:[708,209,778,82,693],8816:[801,303,778,82,694],8817:[801,303,778,82,694],8818:[732,228,778,56,722],8819:[732,228,778,56,722],8822:[681,253,778,44,734],8823:[681,253,778,83,694],8828:[580,153,778,83,694],8829:[580,154,778,82,694],8830:[732,228,778,56,722],8831:[732,228,778,56,722],8832:[705,208,778,82,693],8833:[705,208,778,82,693],8840:[801,303,778,83,693],8841:[801,303,778,82,691],8842:[635,241,778,84,693],8843:[635,241,778,82,691],8847:[539,41,778,83,694],8848:[539,41,778,64,714],8858:[582,82,778,57,721],8859:[582,82,778,57,721],8861:[582,82,778,57,721],8862:[689,0,778,55,722],8863:[689,0,778,55,722],8864:[689,0,778,55,722],8865:[689,0,778,55,722],8872:[694,0,611,55,555],8873:[694,0,722,55,666],8874:[694,0,889,55,833],8876:[695,1,611,-55,554],8877:[695,1,611,-55,554],8878:[695,1,722,-55,665],8879:[695,1,722,-55,665],8882:[539,41,778,83,694],8883:[539,41,778,83,694],8884:[636,138,778,83,694],8885:[636,138,778,83,694],8888:[408,-92,1111,55,1055],8890:[431,212,556,57,500],8891:[716,0,611,55,555],8892:[716,0,611,55,555],8901:[189,0,278,55,222],8903:[545,44,778,55,720],8905:[492,-8,778,146,628],8906:[492,-8,778,146,628],8907:[694,22,778,55,722],8908:[694,22,778,55,722],8909:[464,-36,778,56,722],8910:[578,21,760,83,676],8911:[578,22,760,83,676],8912:[540,40,778,84,694],8913:[540,40,778,83,693],8914:[598,22,667,55,611],8915:[598,22,667,55,611],8916:[736,22,667,56,611],8918:[541,41,778,82,693],8919:[541,41,778,82,693],8920:[568,67,1333,56,1277],8921:[568,67,1333,55,1277],8922:[886,386,778,83,674],8923:[886,386,778,83,674],8926:[734,0,778,83,694],8927:[734,0,778,82,694],8928:[801,303,778,82,693],8929:[801,303,778,82,694],8934:[730,359,778,55,719],8935:[730,359,778,55,719],8936:[730,359,778,55,719],8937:[730,359,778,55,719],8938:[706,208,778,82,693],8939:[706,208,778,82,693],8940:[802,303,778,82,693],8941:[801,303,778,82,693]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/MathOperators.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js deleted file mode 100644 index 3f85cb0c3fd..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscMathSymbolsB.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{10731:[716,132,667,56,611]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/MiscMathSymbolsB.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscSymbols.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscSymbols.js deleted file mode 100644 index 9ff632823f5..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscSymbols.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscSymbols.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{9733:[694,111,944,49,895]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/MiscSymbols.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js deleted file mode 100644 index 3eab2977ede..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/MiscTechnical.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{8994:[378,-122,778,55,722],8995:[378,-143,778,55,722]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/MiscTechnical.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/PUA.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/PUA.js deleted file mode 100644 index 3c97072d1c1..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/PUA.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/PUA.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{57350:[430,23,222,-20,240],57351:[431,24,389,-20,407],57352:[605,85,778,55,719],57353:[434,6,667,37,734],57356:[752,284,778,82,693],57357:[752,284,778,82,693],57358:[919,421,778,82,694],57359:[801,303,778,82,694],57360:[801,303,778,82,694],57361:[919,421,778,82,694],57366:[828,330,778,82,694],57367:[752,332,778,82,694],57368:[828,330,778,82,694],57369:[752,333,778,82,693],57370:[634,255,778,84,693],57371:[634,254,778,82,691]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/PUA.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SpacingModLetters.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SpacingModLetters.js deleted file mode 100644 index b99b0b461f3..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SpacingModLetters.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SpacingModLetters.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{710:[845,-561,2333,-14,2346],732:[899,-628,2333,1,2330]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/SpacingModLetters.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SuppMathOperators.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SuppMathOperators.js deleted file mode 100644 index 443118fbf96..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SuppMathOperators.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/AMS/Regular/SuppMathOperators.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_AMS,{10846:[813,97,611,55,555],10877:[636,138,778,83,694],10878:[636,138,778,83,694],10885:[762,290,778,55,722],10886:[762,290,778,55,722],10887:[635,241,778,82,693],10888:[635,241,778,82,693],10889:[761,387,778,57,718],10890:[761,387,778,57,718],10891:[1003,463,778,83,694],10892:[1003,463,778,83,694],10901:[636,138,778,83,694],10902:[636,138,778,83,694],10933:[752,286,778,82,693],10934:[752,286,778,82,693],10935:[761,294,778,57,717],10936:[761,294,778,57,717],10937:[761,337,778,57,718],10938:[761,337,778,57,718],10949:[753,215,778,84,694],10950:[753,215,778,83,694],10955:[783,385,778,82,693],10956:[783,385,778,82,693]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/AMS/Regular/SuppMathOperators.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Bold/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Bold/Main.js deleted file mode 100644 index bbb70521069..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Bold/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Bold/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Caligraphic-bold"]={directory:"Caligraphic/Bold",family:"MathJax_Caligraphic",weight:"bold",testString:"MATHJAX CALIGRAPHIC",skew:{65:0.224,66:0.16,67:0.16,68:0.0958,69:0.128,70:0.128,71:0.128,72:0.128,73:0.0319,74:0.192,75:0.0639,76:0.16,77:0.16,78:0.0958,79:0.128,80:0.0958,81:0.128,82:0.0958,83:0.16,84:0.0319,85:0.0958,86:0.0319,87:0.0958,88:0.16,89:0.0958,90:0.16},32:[0,0,250,0,0],48:[460,17,575,46,528],49:[461,0,575,80,494],50:[460,0,575,51,517],51:[461,211,575,48,525],52:[469,194,575,32,542],53:[461,211,575,57,517],54:[660,17,575,48,526],55:[476,211,575,64,558],56:[661,17,575,48,526],57:[461,210,575,48,526],65:[751,49,921,39,989],66:[705,17,748,40,740],67:[703,20,613,20,599],68:[686,0,892,20,885],69:[703,16,607,37,627],70:[686,30,814,17,930],71:[703,113,682,50,671],72:[686,48,987,20,946],73:[686,0,642,-27,746],74:[686,114,779,53,937],75:[703,17,871,40,834],76:[703,17,788,41,751],77:[703,49,1378,38,1353],78:[840,49,937,-24,1105],79:[703,17,906,63,882],80:[686,67,810,20,846],81:[703,146,939,120,905],82:[686,17,990,20,981],83:[703,16,696,25,721],84:[720,69,644,38,947],85:[686,24,715,-10,771],86:[686,77,737,25,774],87:[686,77,1169,25,1206],88:[686,-1,817,56,906],89:[686,164,759,36,797],90:[686,0,818,46,853],160:[0,0,250,0,0]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Caligraphic-bold"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Caligraphic/Bold/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Regular/Main.js deleted file mode 100644 index 6d46006a0f8..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Caligraphic/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Caligraphic={directory:"Caligraphic/Regular",family:"MathJax_Caligraphic",testString:"MATHJAX CALIGRAPHIC",skew:{65:0.194,66:0.139,67:0.139,68:0.0833,69:0.111,70:0.111,71:0.111,72:0.111,73:0.0278,74:0.167,75:0.0556,76:0.139,77:0.139,78:0.0833,79:0.111,80:0.0833,81:0.111,82:0.0833,83:0.139,84:0.0278,85:0.0833,86:0.0278,87:0.0833,88:0.139,89:0.0833,90:0.139},32:[0,0,250,0,0],48:[452,22,500,39,460],49:[453,0,500,86,426],50:[453,0,500,44,449],51:[452,216,500,42,456],52:[464,194,500,28,471],53:[453,216,500,50,448],54:[665,22,500,42,456],55:[463,216,500,55,485],56:[666,21,500,43,456],57:[453,216,500,42,457],65:[728,50,798,30,819],66:[705,22,657,32,664],67:[705,25,527,12,533],68:[683,0,771,19,766],69:[705,22,528,30,564],70:[683,32,719,18,829],71:[704,119,595,44,599],72:[683,48,845,18,803],73:[683,0,545,-30,642],74:[683,119,678,47,839],75:[705,22,762,32,732],76:[705,22,690,32,656],77:[705,50,1201,28,1137],78:[789,50,820,-27,979],79:[705,22,796,58,777],80:[683,57,696,19,733],81:[705,131,817,114,787],82:[682,22,848,19,837],83:[705,22,606,18,642],84:[717,68,545,34,833],85:[683,28,626,-17,687],86:[683,52,613,25,658],87:[683,53,988,25,1034],88:[683,0,713,52,807],89:[683,143,668,31,714],90:[683,0,725,37,767],160:[0,0,250,0,0]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Caligraphic"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Caligraphic/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/BasicLatin.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/BasicLatin.js deleted file mode 100644 index 6d6d85f6d3e..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/BasicLatin.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/BasicLatin.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Fraktur-bold"],{32:[0,0,250,0,0],33:[689,12,349,107,241],34:[695,-432,254,10,231],38:[696,16,871,44,839],39:[695,-436,250,80,158],40:[737,186,459,134,347],41:[735,187,459,105,326],42:[692,-449,328,40,277],43:[598,82,893,56,837],44:[107,191,328,118,253],45:[275,-236,893,54,833],46:[102,15,328,103,237],47:[721,182,593,41,550],48:[501,12,593,42,533],49:[489,0,593,54,548],50:[491,-2,593,44,563],51:[487,193,593,31,523],52:[495,196,593,13,565],53:[481,190,593,19,518],54:[704,12,593,48,547],55:[479,197,593,54,591],56:[714,5,593,45,542],57:[487,195,593,29,549],58:[457,12,255,57,197],59:[458,190,255,56,211],61:[343,-168,582,22,559],63:[697,14,428,40,422],65:[686,31,847,29,827],66:[684,31,1044,57,965],67:[676,32,723,72,726],68:[683,29,982,31,896],69:[686,29,783,74,728],70:[684,146,722,17,727],71:[687,29,927,74,844],72:[683,126,851,6,752],73:[681,25,655,32,623],74:[680,141,652,-8,616],75:[681,26,789,20,806],76:[683,28,786,30,764],77:[683,32,1239,27,1232],78:[679,30,983,26,973],79:[726,30,976,12,881],80:[688,223,977,33,943],81:[726,83,976,12,918],82:[688,28,978,31,978],83:[685,31,978,82,905],84:[686,30,790,31,802],85:[688,39,851,18,871],86:[685,29,982,25,966],87:[683,30,1235,26,1240],88:[681,35,849,32,835],89:[688,214,984,34,878],90:[677,148,711,-4,624],91:[740,130,257,36,226],93:[738,132,257,14,208],94:[734,-452,590,1,584],97:[472,32,603,80,586],98:[690,32,590,86,504],99:[473,26,464,87,424],100:[632,28,589,-1,511],101:[471,27,472,81,428],102:[687,222,388,35,372],103:[472,208,595,17,541],104:[687,207,615,89,507],105:[686,25,331,3,327],106:[682,203,332,-19,238],107:[682,25,464,34,432],108:[681,24,337,100,312],109:[476,31,921,16,900],110:[473,28,654,5,608],111:[482,34,609,107,515],112:[557,207,604,-1,519],113:[485,211,596,87,515],114:[472,26,460,13,453],115:[479,34,523,-23,481],116:[648,27,393,43,407],117:[472,32,589,9,603],118:[546,27,604,56,507],119:[549,32,918,55,815],120:[471,188,459,8,441],121:[557,221,589,60,512],122:[471,214,461,-7,378]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Bold/BasicLatin.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js deleted file mode 100644 index a57b61da5b2..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Fraktur-bold"]={directory:"Fraktur/Bold",family:"MathJax_Fraktur",weight:"bold",testString:"MathJax Fraktur",Ranges:[[0,127,"BasicLatin"],[128,57343,"Other"],[58112,58128,"PUA"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Fraktur-bold"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Bold/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js deleted file mode 100644 index 42bd889e195..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/Other.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Fraktur-bold"],{160:[0,0,250,0,0],8216:[708,-411,254,53,187],8217:[692,-394,254,58,193]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Bold/Other.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js deleted file mode 100644 index 8fe10a47eab..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Bold/PUA.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Fraktur-bold"],{58113:[630,27,587,64,512],58114:[693,212,394,37,408],58115:[681,219,387,36,384],58116:[473,212,593,67,531],58117:[684,27,393,33,387],58120:[679,220,981,32,875],58121:[717,137,727,17,633]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Bold/PUA.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/BasicLatin.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/BasicLatin.js deleted file mode 100644 index 53c3e7ef89d..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/BasicLatin.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/BasicLatin.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Fraktur,{32:[0,0,250,0,0],33:[689,12,296,91,204],34:[695,-432,215,8,196],38:[698,11,738,49,733],39:[695,-436,212,69,134],40:[737,186,389,114,293],41:[735,187,389,89,276],42:[692,-449,278,33,234],43:[598,82,756,47,709],44:[107,191,278,99,213],45:[275,-236,756,46,706],46:[102,15,278,87,200],47:[721,182,502,34,466],48:[492,13,502,42,456],49:[468,2,502,47,460],50:[474,-1,502,60,484],51:[473,182,502,39,429],52:[476,191,502,10,481],53:[458,184,502,47,440],54:[700,13,502,45,471],55:[468,181,502,37,498],56:[705,10,502,40,461],57:[469,182,502,28,466],58:[457,12,216,50,168],59:[458,189,216,47,179],61:[368,-132,756,54,725],63:[693,11,362,46,357],65:[696,26,718,22,708],66:[691,27,884,48,820],67:[685,24,613,59,607],68:[685,27,832,27,745],69:[685,24,663,86,634],70:[686,153,611,11,612],71:[690,26,785,66,710],72:[666,133,720,1,644],73:[686,26,554,30,532],74:[686,139,552,-10,522],75:[680,27,668,17,682],76:[686,26,666,33,644],77:[692,27,1050,27,1048],78:[686,25,832,27,825],79:[729,27,827,12,744],80:[692,218,828,28,804],81:[729,69,827,11,782],82:[686,26,828,27,824],83:[692,27,829,66,756],84:[701,27,669,34,676],85:[697,27,646,-25,665],86:[686,26,831,26,825],87:[686,27,1046,32,1054],88:[688,27,719,28,709],89:[686,218,833,27,740],90:[729,139,602,11,532],91:[740,130,278,117,278],93:[738,131,278,-4,160],94:[734,-452,500,0,495],97:[470,35,500,66,497],98:[685,31,513,87,442],99:[466,29,389,72,359],100:[609,33,499,13,428],101:[467,30,401,70,364],102:[681,221,326,30,323],103:[470,209,504,17,455],104:[688,205,521,77,434],105:[673,20,279,14,267],106:[672,208,281,-9,196],107:[689,25,389,24,362],108:[685,20,280,98,276],109:[475,26,767,8,753],110:[475,22,527,20,514],111:[480,28,489,67,412],112:[541,212,500,12,430],113:[479,219,489,60,419],114:[474,21,389,17,387],115:[478,29,443,-18,406],116:[640,20,333,27,348],117:[474,23,517,9,513],118:[530,28,512,55,434],119:[532,28,774,45,688],120:[472,188,389,10,363],121:[528,218,499,45,431],122:[471,214,391,-7,314]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Regular/BasicLatin.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Main.js deleted file mode 100644 index d0389f001c6..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Fraktur={directory:"Fraktur/Regular",family:"MathJax_Fraktur",testString:"MathJax Fraktur",Ranges:[[0,127,"BasicLatin"],[128,57343,"Other"],[58112,58128,"PUA"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Fraktur"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Other.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Other.js deleted file mode 100644 index 1c24b2f2259..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Other.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/Other.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Fraktur,{160:[0,0,250,0,0],8216:[708,-410,215,45,158],8217:[692,-395,215,49,163]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Regular/Other.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js deleted file mode 100644 index c16cd3689f0..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Fraktur/Regular/PUA.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Fraktur,{58112:[683,32,497,75,430],58113:[616,30,498,35,432],58114:[680,215,333,29,339],58115:[679,224,329,28,318],58116:[471,214,503,52,449],58117:[686,20,333,26,315],58118:[577,21,334,29,347],58119:[475,22,501,10,514]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Fraktur/Regular/PUA.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Bold/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Bold/Main.js deleted file mode 100644 index f3047842a73..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Bold/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/Bold/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Greek-bold"]={directory:"Greek/Bold",family:"MathJax_Greek",weight:"bold",testString:"\u0393 \u03A5 \u039B",32:[0,0,250,0,0],160:[0,0,250,0,0],915:[680,0,692,39,643],916:[698,0,958,56,901],920:[696,10,894,64,829],923:[698,0,806,40,765],926:[675,0,767,48,718],928:[680,0,900,39,860],931:[686,0,831,64,766],933:[697,0,894,64,829],934:[686,0,831,64,766],936:[686,0,894,64,829],937:[696,1,831,51,779]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Greek-bold"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Greek/Bold/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/BoldItalic/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/BoldItalic/Main.js deleted file mode 100644 index 03a93288bd3..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/BoldItalic/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/BoldItalic/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Greek-bold-italic"]={directory:"Greek/BoldItalic",family:"MathJax_Greek",weight:"bold",style:"italic",testString:"\u0393 \u03A5 \u039B",skew:{915:0.0958,916:0.192,920:0.0958,923:0.192,926:0.0958,928:0.0639,931:0.0958,933:0.0639,934:0.0958,936:0.0639,937:0.0958,945:0.0319,946:0.0958,948:0.0639,949:0.0958,950:0.0958,951:0.0639,952:0.0958,953:0.0639,956:0.0319,957:0.0319,958:0.128,959:0.0639,961:0.0958,962:0.0958,964:0.0319,965:0.0319,966:0.0958,967:0.0639,968:0.128,977:0.0958,981:0.0958,1009:0.0958,1013:0.0639},32:[0,0,250,0,0],160:[0,0,250,0,0],915:[680,0,657,43,777],916:[711,0,958,59,904],920:[702,17,867,54,844],923:[711,0,806,44,776],926:[675,0,841,62,867],928:[680,0,982,43,1026],931:[686,0,885,69,902],933:[703,0,671,32,802],934:[686,0,767,29,737],936:[686,0,714,22,790],937:[703,0,879,93,886],945:[452,8,761,39,712],946:[701,194,660,28,637],947:[451,211,590,5,617],948:[725,8,522,39,513],949:[461,17,529,36,481],950:[711,202,508,48,521],951:[452,211,600,24,600],952:[702,8,562,40,554],953:[452,8,412,38,386],954:[452,8,668,45,642],955:[694,13,671,40,652],956:[452,211,708,33,682],957:[452,2,577,38,608],958:[711,201,508,23,490],959:[452,8,585,39,576],960:[444,8,682,23,674],961:[451,211,612,34,603],962:[451,105,424,33,457],963:[444,8,686,35,677],964:[444,13,521,23,610],965:[453,8,631,24,604],966:[452,216,747,53,703],967:[452,201,718,32,685],968:[694,202,758,24,732],969:[453,8,718,24,691],977:[701,8,692,24,656],981:[694,202,712,51,693],982:[444,8,975,23,961],1009:[451,194,612,75,603],1013:[444,7,483,44,450]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Greek-bold-italic"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Greek/BoldItalic/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Italic/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Italic/Main.js deleted file mode 100644 index 107824eba9b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Italic/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/Italic/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Greek-italic"]={directory:"Greek/Italic",family:"MathJax_Greek",style:"italic",testString:"\u0393 \u03A5 \u039B",skew:{915:0.0833,916:0.167,920:0.0833,923:0.167,926:0.0833,928:0.0556,931:0.0833,933:0.0556,934:0.0833,936:0.0556,937:0.0833,945:0.0278,946:0.0833,948:0.0556,949:0.0833,950:0.0833,951:0.0556,952:0.0833,953:0.0556,956:0.0278,957:0.0278,958:0.111,959:0.0556,961:0.0833,962:0.0833,964:0.0278,965:0.0278,966:0.0833,967:0.0556,968:0.111,977:0.0833,981:0.0833,1009:0.0833,1013:0.0556},32:[0,0,250,0,0],160:[0,0,250,0,0],915:[680,-1,615,31,721],916:[716,0,833,48,788],920:[704,22,763,50,740],923:[716,0,694,35,670],926:[678,0,742,53,777],928:[681,0,831,31,887],931:[683,0,780,58,806],933:[705,0,583,28,700],934:[683,0,667,24,642],936:[683,0,612,21,692],937:[704,0,772,80,786],945:[442,11,640,34,603],946:[705,194,566,23,573],947:[441,216,518,11,543],948:[717,10,444,36,451],949:[452,22,466,27,428],950:[704,204,438,44,471],951:[442,216,497,21,503],952:[705,10,469,35,462],953:[442,10,354,48,332],954:[442,11,576,49,554],955:[694,12,583,47,556],956:[442,216,603,23,580],957:[442,2,494,45,530],958:[704,205,438,21,443],959:[441,11,485,34,476],960:[431,11,570,19,573],961:[442,216,517,23,510],962:[442,107,363,31,405],963:[431,11,571,31,572],964:[431,13,437,18,517],965:[443,10,540,21,523],966:[442,218,654,50,618],967:[442,204,626,25,600],968:[694,205,651,21,634],969:[443,11,622,15,604],977:[705,11,591,21,563],981:[694,205,596,43,579],982:[431,10,828,19,823],1009:[442,194,517,67,510],1013:[431,11,406,40,382]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Greek-italic"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Greek/Italic/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Regular/Main.js deleted file mode 100644 index c1dc9354735..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Greek/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Greek/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Greek={directory:"Greek/Regular",family:"MathJax_Greek",testString:"\u0393 \u03A5 \u039B",32:[0,0,250,0,0],160:[0,0,250,0,0],915:[680,0,625,25,582],916:[716,0,833,46,786],920:[705,22,778,56,722],923:[716,0,694,32,661],926:[677,0,667,42,624],928:[680,0,750,25,724],931:[683,0,722,55,666],933:[705,0,778,55,722],934:[683,0,722,56,665],936:[683,0,778,55,722],937:[704,0,722,44,677]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Greek"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Greek/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Arrows.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Arrows.js deleted file mode 100644 index 3c0849e4b5e..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Arrows.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Arrows.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8592:[518,17,1150,64,1084],8593:[694,193,575,14,561],8594:[518,17,1150,65,1085],8595:[694,194,575,14,561],8596:[518,17,1150,64,1085],8597:[767,267,575,14,561],8598:[724,194,1150,64,1084],8599:[724,193,1150,64,1085],8600:[694,224,1150,65,1085],8601:[694,224,1150,64,1085],8614:[518,17,1150,65,1085],8617:[518,17,1282,64,1218],8618:[518,17,1282,65,1217],8636:[518,-220,1150,64,1084],8637:[281,17,1150,64,1084],8640:[518,-220,1150,65,1085],8641:[281,17,1150,64,1085],8652:[718,17,1150,64,1085],8656:[547,46,1150,64,1085],8657:[694,193,703,30,672],8658:[547,46,1150,64,1084],8659:[694,194,703,30,672],8660:[547,46,1150,47,1102],8661:[767,267,703,30,672]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/Arrows.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiacritMarks.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiacritMarks.js deleted file mode 100644 index fd2274bbac0..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiacritMarks.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiacritMarks.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{768:[706,-503,0,-461,-237],769:[706,-503,0,-339,-115],770:[694,-520,0,-449,-127],771:[694,-552,0,-479,-97],772:[607,-540,0,-495,-81],774:[694,-500,0,-473,-103],775:[695,-525,0,-373,-203],776:[695,-535,0,-479,-97],778:[702,-536,0,-415,-161],779:[714,-511,0,-442,-82],780:[660,-515,0,-445,-131],824:[711,210,0,-734,-161]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/CombDiacritMarks.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiactForSymbols.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiactForSymbols.js deleted file mode 100644 index d20aecceee3..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiactForSymbols.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/CombDiactForSymbols.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8407:[723,-513,0,-542,-33]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/CombDiactForSymbols.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeneralPunctuation.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeneralPunctuation.js deleted file mode 100644 index 41332a2f720..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeneralPunctuation.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeneralPunctuation.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8194:[0,0,500,0,0],8195:[0,0,999,0,0],8196:[0,0,333,0,0],8197:[0,0,250,0,0],8198:[0,0,167,0,0],8201:[0,0,167,0,0],8202:[0,0,83,0,0],8211:[300,-249,575,0,574],8212:[300,-249,1150,0,1149],8216:[694,-329,319,58,245],8217:[694,-329,319,74,261],8220:[694,-329,603,110,564],8221:[694,-329,603,38,492],8224:[702,211,511,64,446],8225:[702,202,511,64,446],8230:[171,-1,1295,74,1221],8242:[563,-33,344,35,331]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/GeneralPunctuation.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeometricShapes.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeometricShapes.js deleted file mode 100644 index 5369df8c208..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeometricShapes.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/GeometricShapes.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{9651:[711,-1,1022,69,953],9657:[540,39,575,33,542],9661:[500,210,1022,68,953],9667:[539,38,575,33,542],9711:[711,211,1150,65,1084]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/GeometricShapes.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Latin1Supplement.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Latin1Supplement.js deleted file mode 100644 index 8981b1b0fa3..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Latin1Supplement.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Latin1Supplement.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{160:[0,0,250,0,0],168:[695,-535,575,96,478],172:[371,-61,767,64,702],175:[607,-540,575,80,494],176:[702,-536,575,160,414],177:[728,35,894,64,829],180:[706,-503,575,236,460],215:[530,28,894,168,726],247:[597,96,894,64,828]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/Latin1Supplement.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedA.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedA.js deleted file mode 100644 index 54c7fcd84c5..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedA.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedA.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{305:[452,8,394,24,367]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/LatinExtendedA.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedB.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedB.js deleted file mode 100644 index ad91ed4fcb6..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedB.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LatinExtendedB.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{567:[451,201,439,-12,420]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/LatinExtendedB.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LetterlikeSymbols.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LetterlikeSymbols.js deleted file mode 100644 index dd1f669e839..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LetterlikeSymbols.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/LetterlikeSymbols.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8463:[694,8,668,45,642],8465:[702,8,831,64,798],8467:[702,19,474,-1,446],8472:[461,210,740,72,726],8476:[711,16,831,42,824],8501:[694,0,703,64,638]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/LetterlikeSymbols.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Main.js deleted file mode 100644 index 89ff997c299..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"]={directory:"Main/Bold",family:"MathJax_Main",weight:"bold",testString:"MathJax Main ^ \u210F \u2223",skew:{305:0.0319,567:0.0958,8463:-0.0319,8467:0.128,8706:0.0958},Ranges:[[160,255,"Latin1Supplement"],[256,383,"LatinExtendedA"],[384,591,"LatinExtendedB"],[688,767,"SpacingModLetters"],[768,879,"CombDiacritMarks"],[8192,8303,"GeneralPunctuation"],[8400,8447,"CombDiactForSymbols"],[8448,8527,"LetterlikeSymbols"],[8592,8703,"Arrows"],[8704,8959,"MathOperators"],[8960,9215,"MiscTechnical"],[9632,9727,"GeometricShapes"],[9728,9983,"MiscSymbols"],[10176,10223,"MiscMathSymbolsA"],[10224,10239,"SupplementalArrowsA"],[10752,11007,"SuppMathOperators"]],32:[0,0,250,0,0],33:[705,-1,350,89,260],34:[694,-329,603,38,492],35:[694,193,958,64,893],36:[750,56,575,64,510],37:[750,56,958,65,893],38:[705,11,894,48,836],39:[694,-329,319,74,261],40:[750,249,447,103,382],41:[750,249,447,64,343],42:[750,-306,575,73,501],43:[633,131,894,64,829],44:[171,194,319,74,258],45:[278,-166,383,13,318],46:[171,-1,319,74,245],47:[750,250,575,63,511],48:[654,10,575,45,529],49:[655,0,575,80,494],50:[654,0,575,57,517],51:[655,11,575,47,526],52:[656,0,575,32,542],53:[655,11,575,57,517],54:[655,11,575,48,526],55:[676,11,575,64,558],56:[654,11,575,48,526],57:[654,11,575,48,526],58:[444,-1,319,74,245],59:[444,194,319,74,248],60:[587,85,894,96,797],61:[393,-109,894,64,829],62:[587,85,894,96,797],63:[700,-1,543,65,478],64:[699,6,894,64,829],65:[698,0,869,40,828],66:[686,0,818,39,752],67:[697,11,831,64,766],68:[686,0,882,39,817],69:[680,0,756,39,723],70:[680,0,724,39,675],71:[697,10,904,64,845],72:[686,0,900,39,860],73:[686,0,436,25,410],74:[686,11,594,8,527],75:[686,0,901,39,852],76:[686,0,692,39,643],77:[686,0,1092,39,1052],78:[686,0,900,39,860],79:[696,10,864,64,798],80:[686,0,786,39,721],81:[696,193,864,64,805],82:[686,11,862,39,858],83:[697,11,639,64,574],84:[675,0,800,41,758],85:[686,11,885,39,845],86:[686,7,869,25,843],87:[686,7,1189,24,1164],88:[686,0,869,33,835],89:[686,0,869,19,849],90:[686,0,703,64,645],91:[750,250,319,128,293],92:[750,250,575,63,511],93:[750,250,319,25,190],94:[694,-520,575,126,448],95:[-10,61,575,0,574],96:[706,-503,575,114,338],97:[453,6,559,32,558],98:[694,6,639,29,600],99:[453,6,511,39,478],100:[694,6,639,38,609],101:[452,6,527,32,494],102:[700,0,351,40,452],103:[455,201,575,30,558],104:[694,0,639,37,623],105:[695,0,319,40,294],106:[695,200,351,-71,274],107:[694,0,607,29,587],108:[694,0,319,40,301],109:[450,0,958,37,942],110:[450,0,639,37,623],111:[452,5,575,32,542],112:[450,194,639,29,600],113:[450,194,607,38,609],114:[450,0,474,29,442],115:[453,6,454,38,414],116:[635,5,447,21,382],117:[450,6,639,37,623],118:[444,3,607,26,580],119:[444,4,831,25,805],120:[444,0,607,21,586],121:[444,200,607,23,580],122:[444,0,511,32,462],123:[750,250,575,70,504],124:[750,249,319,129,190],125:[750,250,575,70,504],126:[344,-202,575,96,478],915:[680,0,692,39,643],916:[698,0,958,56,901],920:[696,10,894,64,829],923:[698,0,806,40,765],926:[675,0,767,48,718],928:[680,0,900,39,860],931:[686,0,831,63,766],933:[697,0,894,64,829],934:[686,0,831,64,766],936:[686,0,894,64,829],937:[696,0,831,51,779]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Main-bold"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MathOperators.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MathOperators.js deleted file mode 100644 index 1f47d9c8dee..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MathOperators.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MathOperators.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8704:[694,16,639,1,640],8706:[710,17,628,60,657],8707:[694,-1,639,64,574],8709:[767,73,575,46,528],8711:[686,24,958,56,901],8712:[587,86,767,97,670],8713:[711,210,767,97,670],8715:[587,86,767,96,670],8722:[281,-221,894,96,797],8723:[537,227,894,64,829],8725:[750,250,575,63,511],8726:[750,250,575,63,511],8727:[472,-28,575,73,501],8728:[474,-28,575,64,510],8729:[474,-28,575,64,510],8730:[820,180,958,78,988],8733:[451,8,894,65,830],8734:[452,8,1150,65,1084],8736:[714,0,722,55,676],8739:[750,249,319,129,190],8741:[750,248,575,145,430],8743:[604,17,767,64,702],8744:[604,16,767,64,702],8745:[603,16,767,64,702],8746:[604,16,767,64,702],8747:[711,211,569,64,632],8764:[391,-109,894,64,828],8768:[583,82,319,64,254],8771:[502,3,894,64,829],8773:[638,27,1000,64,829],8776:[524,-32,894,64,829],8781:[533,32,894,64,829],8784:[721,-109,894,64,829],8800:[711,210,894,64,829],8801:[505,3,894,64,829],8804:[697,199,894,96,797],8805:[697,199,894,96,797],8810:[617,116,1150,64,1085],8811:[618,116,1150,64,1085],8826:[585,86,894,96,797],8827:[586,86,894,96,797],8834:[587,85,894,96,797],8835:[587,86,894,96,796],8838:[697,199,894,96,797],8839:[697,199,894,96,796],8846:[604,16,767,64,702],8849:[697,199,894,96,828],8850:[697,199,894,66,797],8851:[604,-1,767,70,696],8852:[604,-1,767,70,696],8853:[632,132,894,64,828],8854:[632,132,894,64,828],8855:[632,132,894,64,828],8856:[632,132,894,64,828],8857:[632,132,894,64,828],8866:[693,-1,703,65,637],8867:[693,-1,703,64,638],8868:[694,-1,894,64,829],8869:[693,-1,894,65,829],8872:[750,249,974,129,918],8900:[523,21,575,15,560],8901:[336,-166,319,74,245],8902:[502,0,575,24,550],8904:[540,39,1000,33,967],8942:[951,29,319,74,245],8943:[336,-166,1295,74,1221],8945:[871,-101,1323,129,1194]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/MathOperators.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscMathSymbolsA.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscMathSymbolsA.js deleted file mode 100644 index 8ce565be12e..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscMathSymbolsA.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscMathSymbolsA.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{10216:[750,249,447,127,382],10217:[750,249,447,64,319]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/MiscMathSymbolsA.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscSymbols.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscSymbols.js deleted file mode 100644 index baaecc41ce0..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscSymbols.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscSymbols.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{9824:[719,129,894,64,829],9825:[711,24,894,65,828],9826:[719,154,894,64,828],9827:[719,129,894,32,861],9837:[750,17,447,64,381],9838:[741,223,447,57,389],9839:[724,224,447,63,382]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/MiscSymbols.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscTechnical.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscTechnical.js deleted file mode 100644 index 319a71d56db..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscTechnical.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/MiscTechnical.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{8968:[750,248,511,194,493],8969:[750,248,511,17,317],8970:[749,248,511,194,493],8971:[749,248,511,17,317],8994:[405,-108,1150,65,1084],8995:[392,-126,1150,64,1085]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/MiscTechnical.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SpacingModLetters.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SpacingModLetters.js deleted file mode 100644 index 56ecc340d11..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SpacingModLetters.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SpacingModLetters.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{710:[694,-520,575,126,448],711:[660,-515,575,130,444],713:[607,-540,575,80,494],714:[706,-503,575,236,460],715:[706,-503,575,114,338],728:[694,-500,575,102,472],729:[695,-525,575,202,372],730:[702,-536,575,160,414],732:[694,-552,575,96,478]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/SpacingModLetters.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SuppMathOperators.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SuppMathOperators.js deleted file mode 100644 index ecb07bc3db4..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SuppMathOperators.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SuppMathOperators.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{10815:[686,0,900,39,860],10927:[696,199,894,96,797],10928:[697,199,894,96,797]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/SuppMathOperators.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SupplementalArrowsA.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SupplementalArrowsA.js deleted file mode 100644 index c60025da269..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SupplementalArrowsA.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Bold/SupplementalArrowsA.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-bold"],{10229:[518,17,1805,64,1741],10230:[518,17,1833,96,1773],10231:[518,17,2126,64,2061],10232:[547,46,1868,64,1804],10233:[547,46,1870,64,1804],10234:[547,46,2126,64,2060],10236:[518,17,1833,65,1773]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Bold/SupplementalArrowsA.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/CombDiacritMarks.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/CombDiacritMarks.js deleted file mode 100644 index c3a19d42dc9..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/CombDiacritMarks.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/CombDiacritMarks.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-italic"],{768:[697,-500,0,-222,-74],769:[697,-500,0,-173,39],770:[694,-527,0,-251,17],771:[668,-558,0,-265,60],772:[589,-544,0,-282,54],774:[694,-515,0,-237,62],775:[669,-548,0,-165,-41],776:[669,-554,0,-251,45],778:[716,-542,0,-199,3],779:[697,-503,0,-248,65],780:[638,-502,0,-236,29]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Italic/CombDiacritMarks.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/GeneralPunctuation.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/GeneralPunctuation.js deleted file mode 100644 index 161ed409af6..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/GeneralPunctuation.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/GeneralPunctuation.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-italic"],{8211:[285,-248,511,91,554],8212:[285,-248,1022,117,1038],8216:[694,-379,307,197,362],8217:[694,-379,307,213,377],8220:[694,-379,514,243,606],8221:[694,-379,514,176,538]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Italic/GeneralPunctuation.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Latin1Supplement.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Latin1Supplement.js deleted file mode 100644 index a40e1b560d9..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Latin1Supplement.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Latin1Supplement.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-italic"],{160:[0,0,250,0,0]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Italic/Latin1Supplement.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/LetterlikeSymbols.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/LetterlikeSymbols.js deleted file mode 100644 index 7793665e0f4..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/LetterlikeSymbols.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/LetterlikeSymbols.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-italic"],{8463:[695,13,540,42,562]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Italic/LetterlikeSymbols.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Main.js deleted file mode 100644 index dc71fa42d12..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Italic/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Main-italic"]={directory:"Main/Italic",family:"MathJax_Main",style:"italic",testString:"MathJax Main ^ \u210F \u2223",Ranges:[[160,255,"Latin1Supplement"],[768,879,"CombDiacritMarks"],[8192,8303,"GeneralPunctuation"],[8448,8527,"LetterlikeSymbols"]],32:[0,0,250,0,0],33:[716,0,307,107,380],34:[694,-379,514,176,538],35:[694,194,818,115,828],37:[750,56,818,145,847],38:[716,22,767,127,802],39:[694,-379,307,213,377],40:[750,250,409,144,517],41:[750,250,409,17,390],42:[750,-320,511,195,584],43:[557,57,767,139,753],44:[121,194,307,69,232],45:[251,-180,358,84,341],46:[121,0,307,107,231],47:[750,250,511,19,617],48:[665,21,511,110,562],49:[666,0,511,110,468],50:[666,22,511,76,551],51:[666,22,511,96,562],52:[666,194,511,46,478],53:[666,22,511,106,567],54:[665,22,511,120,565],55:[666,22,511,136,634],56:[666,21,511,99,553],57:[666,22,511,107,553],58:[431,0,307,107,308],59:[431,194,307,70,308],61:[367,-133,767,116,776],63:[716,0,511,195,551],64:[705,11,767,152,789],65:[716,0,743,58,696],66:[683,0,704,57,732],67:[705,21,716,150,812],68:[683,0,755,56,775],69:[680,0,678,54,743],70:[680,-1,653,54,731],71:[705,22,774,150,812],72:[683,0,743,54,860],73:[683,0,386,49,508],74:[683,21,525,78,622],75:[683,0,769,54,859],76:[683,0,627,54,628],77:[683,0,897,58,1010],78:[683,0,743,54,860],79:[704,22,767,149,788],80:[683,0,678,55,729],81:[704,194,767,149,788],82:[683,22,729,55,723],83:[705,22,562,74,633],84:[677,0,716,171,806],85:[683,22,743,194,860],86:[683,22,743,205,868],87:[683,22,999,205,1124],88:[683,0,743,50,825],89:[683,0,743,198,875],90:[683,0,613,80,704],91:[750,250,307,73,446],93:[750,250,307,-14,359],94:[694,-527,511,260,528],95:[-25,62,511,91,554],97:[442,11,511,101,543],98:[694,11,460,108,467],99:[441,10,460,103,469],100:[694,11,511,101,567],101:[442,10,460,107,470],102:[705,204,307,-23,450],103:[442,205,460,46,494],104:[694,11,511,69,544],105:[656,10,307,75,340],106:[656,204,307,-32,364],107:[694,11,460,69,498],108:[694,11,256,87,312],109:[442,11,818,75,851],110:[442,11,562,75,595],111:[442,11,511,103,517],112:[442,194,511,6,518],113:[442,194,460,101,504],114:[442,11,422,75,484],115:[442,11,409,76,418],116:[626,11,332,87,373],117:[441,11,537,75,570],118:[443,10,460,75,492],119:[443,11,664,75,696],120:[442,11,464,58,513],121:[441,205,486,75,522],122:[442,11,409,54,466],126:[318,-208,511,246,571],163:[714,11,769,88,699],305:[441,10,307,75,340],567:[442,204,332,-32,327],915:[680,0,627,54,705],916:[716,0,818,70,751],920:[704,22,767,149,788],923:[716,0,692,58,646],926:[677,0,664,74,754],928:[680,0,743,54,859],931:[683,0,716,80,782],933:[705,0,767,213,832],934:[683,0,716,159,728],936:[683,0,767,207,824],937:[705,0,716,100,759]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Main-italic"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Italic/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/CombDiacritMarks.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/CombDiacritMarks.js deleted file mode 100644 index 1785ca98cc0..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/CombDiacritMarks.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/CombDiacritMarks.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Main,{768:[699,-505,0,-394,-205],769:[699,-505,0,-297,-107],770:[694,-531,0,-388,-113],771:[668,-565,0,-417,-84],772:[590,-544,0,-431,-70],774:[694,-515,0,-408,-93],775:[669,-549,0,-310,-191],776:[669,-554,0,-405,-96],778:[715,-542,0,-353,-148],779:[701,-510,0,-378,-80],780:[644,-513,0,-386,-115],824:[716,215,0,-639,-140]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Regular/CombDiacritMarks.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/GeometricShapes.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/GeometricShapes.js deleted file mode 100644 index dbbaa3efeaa..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/GeometricShapes.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/GeometricShapes.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Main,{9651:[716,0,889,59,828],9657:[505,5,500,26,474],9661:[500,215,889,59,828],9667:[505,5,500,26,473],9711:[715,215,1000,56,944]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Regular/GeometricShapes.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/Main.js deleted file mode 100644 index 67b4709cec0..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Main={directory:"Main/Regular",family:"MathJax_Main",testString:"MathJax Main ^ \u210F \u2223",skew:{305:0.0278,567:0.0833,8467:0.111,8472:0.111,8706:0.0833},Ranges:[[688,767,"SpacingModLetters"],[768,879,"CombDiacritMarks"],[9632,9727,"GeometricShapes"],[9728,9983,"MiscSymbols"]],32:[0,0,250,0,0],33:[716,-1,278,78,199],34:[694,-379,500,34,372],35:[694,194,833,56,777],36:[750,56,500,55,444],37:[750,56,833,56,776],38:[716,22,778,42,727],39:[694,-379,278,78,212],40:[750,250,389,94,333],41:[750,250,389,55,294],42:[750,-320,500,64,435],43:[583,82,778,56,722],44:[121,194,278,78,210],45:[252,-179,333,11,277],46:[120,0,278,78,199],47:[750,250,500,56,445],48:[666,22,500,39,460],49:[666,0,500,83,427],50:[666,0,500,50,449],51:[665,22,500,42,457],52:[677,0,500,28,471],53:[666,22,500,50,449],54:[666,22,500,42,456],55:[676,22,500,55,485],56:[666,22,500,43,457],57:[666,22,500,42,456],58:[430,0,278,78,199],59:[430,194,278,78,202],60:[540,40,778,83,694],61:[367,-133,778,56,722],62:[540,40,778,83,694],63:[705,-1,472,55,416],64:[705,11,778,56,722],65:[716,0,750,32,717],66:[683,0,708,28,651],67:[705,21,722,56,666],68:[683,0,764,27,708],69:[680,0,681,25,652],70:[680,0,653,25,610],71:[705,22,785,56,735],72:[683,0,750,25,724],73:[683,0,361,21,339],74:[683,22,514,25,465],75:[683,0,778,25,736],76:[683,0,625,25,582],77:[683,0,917,29,887],78:[683,0,750,25,724],79:[705,22,778,56,722],80:[683,0,681,27,624],81:[705,193,778,56,728],82:[683,22,736,27,732],83:[705,22,556,55,500],84:[677,0,722,36,685],85:[683,22,750,25,724],86:[683,22,750,19,730],87:[683,22,1028,18,1009],88:[683,0,750,23,726],89:[683,0,750,11,738],90:[683,0,611,55,560],91:[750,250,278,118,255],92:[750,250,500,56,444],93:[750,250,278,22,159],94:[694,-531,500,112,387],95:[-25,62,500,0,499],96:[699,-505,500,106,295],97:[448,11,500,34,493],98:[694,11,556,20,522],99:[448,11,444,34,415],100:[694,11,556,34,535],101:[448,11,444,28,415],102:[705,0,306,26,372],103:[453,206,500,29,485],104:[694,0,556,25,542],105:[669,0,278,26,255],106:[669,205,306,-55,218],107:[694,0,528,20,511],108:[694,0,278,26,263],109:[442,0,833,25,819],110:[442,0,556,25,542],111:[448,10,500,28,471],112:[442,194,556,20,522],113:[442,194,528,33,535],114:[442,0,392,20,364],115:[448,11,394,33,359],116:[615,10,389,18,333],117:[442,11,556,25,542],118:[431,11,528,19,508],119:[431,11,722,18,703],120:[431,0,528,11,516],121:[431,204,528,19,508],122:[431,0,444,28,401],123:[750,250,500,65,434],124:[750,249,278,119,159],125:[750,250,500,65,434],126:[318,-215,500,83,416],160:[0,0,250,0,0],168:[669,-554,500,95,404],172:[356,-89,667,56,611],175:[590,-544,500,69,430],176:[715,-542,500,147,352],177:[666,0,778,56,722],180:[699,-505,500,203,393],215:[491,-9,778,147,630],247:[537,36,778,56,721],305:[442,0,278,26,255],567:[442,205,306,-55,218],710:[694,-531,500,112,387],711:[644,-513,500,114,385],713:[590,-544,500,69,430],714:[699,-505,500,203,393],715:[699,-505,500,106,295],728:[694,-515,500,92,407],729:[669,-549,500,190,309],732:[668,-565,500,83,416],915:[680,0,625,25,582],916:[716,0,833,46,786],920:[705,22,778,56,722],923:[716,0,694,32,661],926:[677,0,667,42,624],928:[680,0,750,25,724],931:[683,0,722,55,666],933:[705,0,778,55,722],934:[683,0,722,56,665],936:[683,0,778,55,722],937:[704,0,722,44,677],8194:[0,0,500,0,0],8195:[0,0,999,0,0],8196:[0,0,333,0,0],8197:[0,0,250,0,0],8198:[0,0,167,0,0],8201:[0,0,167,0,0],8202:[0,0,83,0,0],8211:[285,-248,500,0,499],8212:[285,-248,1000,0,999],8216:[694,-379,278,64,198],8217:[694,-379,278,78,212],8220:[694,-379,500,128,466],8221:[694,-379,500,34,372],8224:[705,216,444,55,389],8225:[705,205,444,55,389],8230:[120,0,1172,78,1093],8242:[560,-43,275,30,262],8407:[714,-516,0,-471,-29],8463:[695,13,540,42,562],8465:[705,10,722,55,693],8467:[705,20,417,6,397],8472:[453,216,636,67,625],8476:[716,22,722,40,715],8501:[694,0,611,55,555],8592:[511,11,1000,55,944],8593:[694,193,500,17,483],8594:[511,11,1000,56,944],8595:[694,194,500,17,483],8596:[511,11,1000,55,944],8597:[772,272,500,17,483],8598:[720,195,1000,29,944],8599:[720,195,1000,55,970],8600:[695,220,1000,55,970],8601:[695,220,1000,29,944],8614:[511,11,1000,55,944],8617:[511,11,1126,55,1070],8618:[511,11,1126,55,1070],8636:[511,-230,1000,55,944],8637:[270,11,1000,55,944],8640:[511,-230,1000,56,944],8641:[270,11,1000,56,944],8652:[671,11,1000,55,944],8656:[525,24,1000,56,944],8657:[694,194,611,31,579],8658:[525,24,1000,56,944],8659:[694,194,611,31,579],8660:[526,25,1000,34,966],8661:[772,272,611,31,579],8704:[694,22,556,0,556],8706:[715,22,531,42,566],8707:[694,0,556,56,500],8709:[772,78,500,39,460],8711:[683,33,833,46,786],8712:[540,40,667,84,583],8713:[716,215,667,84,583],8715:[540,40,667,83,582],8722:[270,-230,778,84,694],8723:[500,166,778,56,722],8725:[750,250,500,56,445],8726:[750,250,500,56,444],8727:[465,-35,500,64,435],8728:[444,-55,500,55,444],8729:[444,-55,500,55,444],8730:[800,200,833,72,853],8733:[442,11,778,56,722],8734:[442,11,1000,55,944],8736:[694,0,722,55,666],8739:[750,249,278,119,159],8741:[750,250,500,132,367],8743:[598,22,667,55,611],8744:[598,22,667,55,611],8745:[598,22,667,55,611],8746:[598,22,667,55,611],8747:[716,216,417,55,472],8764:[367,-133,778,55,722],8768:[583,83,278,55,222],8771:[464,-36,778,55,722],8773:[589,-22,1000,55,722],8776:[483,-55,778,55,722],8781:[484,-16,778,55,722],8784:[670,-133,778,56,722],8800:[716,215,778,56,722],8801:[464,-36,778,56,722],8804:[636,138,778,83,694],8805:[636,138,778,83,694],8810:[568,67,1000,56,944],8811:[567,67,1000,55,944],8826:[539,41,778,84,694],8827:[539,41,778,83,694],8834:[540,40,778,84,694],8835:[540,40,778,83,693],8838:[636,138,778,84,694],8839:[636,138,778,83,693],8846:[598,22,667,55,611],8849:[636,138,778,84,714],8850:[636,138,778,64,694],8851:[598,0,667,61,605],8852:[598,0,667,61,605],8853:[583,83,778,56,722],8854:[583,83,778,56,722],8855:[583,83,778,56,722],8856:[583,83,778,56,722],8857:[583,83,778,56,722],8866:[694,0,611,55,555],8867:[694,0,611,55,555],8868:[668,0,778,55,723],8869:[668,0,778,55,723],8872:[750,249,867,119,811],8900:[488,-12,500,12,488],8901:[310,-190,278,78,199],8902:[486,-16,500,3,497],8904:[505,5,900,26,873],8942:[900,30,278,78,199],8943:[310,-190,1172,78,1093],8945:[820,-100,1282,133,1148],8968:[750,250,444,174,422],8969:[750,250,444,21,269],8970:[750,250,444,174,422],8971:[750,250,444,21,269],8994:[388,-122,1000,55,944],8995:[378,-134,1000,55,944],9136:[744,244,412,55,357],9137:[744,244,412,56,357],10216:[750,250,389,110,333],10217:[750,250,389,55,278],10222:[744,244,412,173,357],10223:[744,244,412,56,240],10229:[511,11,1609,55,1525],10230:[511,11,1638,84,1553],10231:[511,11,1859,55,1803],10232:[525,24,1609,56,1553],10233:[525,24,1638,56,1582],10234:[525,24,1858,56,1802],10236:[511,11,1638,55,1553],10815:[683,0,750,28,721],10927:[636,138,778,84,694],10928:[636,138,778,83,694]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Main"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/MiscSymbols.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/MiscSymbols.js deleted file mode 100644 index dda5b774f03..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/MiscSymbols.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/MiscSymbols.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Main,{9824:[727,130,778,55,723],9825:[716,33,778,55,723],9826:[727,162,778,55,723],9827:[726,130,778,28,750],9837:[750,22,389,55,332],9838:[734,223,389,65,324],9839:[723,223,389,55,333]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Regular/MiscSymbols.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/SpacingModLetters.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/SpacingModLetters.js deleted file mode 100644 index c4e8ae18b2e..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Main/Regular/SpacingModLetters.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Main/Regular/SpacingModLetters.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Main,{730:[715,-542,500,147,352]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Main/Regular/SpacingModLetters.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Math/BoldItalic/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Math/BoldItalic/Main.js deleted file mode 100644 index 5b87e9ef1dd..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Math/BoldItalic/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Math/BoldItalic/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Math-bold-italic"]={directory:"Math/BoldItalic",family:"MathJax_Math",weight:"bold",style:"italic",testString:"MathJax Math \u03A5",skew:{65:0.16,66:0.0958,67:0.0958,68:0.0639,69:0.0958,70:0.0958,71:0.0958,72:0.0639,73:0.128,74:0.192,75:0.0639,76:0.0319,77:0.0958,78:0.0958,79:0.0958,80:0.0958,81:0.0958,82:0.0958,83:0.0958,84:0.0958,85:0.0319,88:0.0958,90:0.0958,99:0.0639,100:0.192,101:0.0639,102:0.192,103:0.0319,104:-0.0319,108:0.0958,111:0.0639,112:0.0958,113:0.0958,114:0.0639,115:0.0639,116:0.0958,117:0.0319,118:0.0319,119:0.0958,120:0.0319,121:0.0639,122:0.0639,915:0.0958,916:0.192,920:0.0958,923:0.192,926:0.0958,928:0.0639,931:0.0958,933:0.0639,934:0.0958,936:0.0639,937:0.0958,945:0.0319,946:0.0958,948:0.0639,949:0.0958,950:0.0958,951:0.0639,952:0.0958,953:0.0639,956:0.0319,957:0.0319,958:0.128,959:0.0639,961:0.0958,962:0.0958,964:0.0319,965:0.0319,966:0.0958,967:0.0639,968:0.128,977:0.0958,981:0.0958,1009:0.0958,1013:0.0639},32:[0,0,250,0,0],47:[711,210,894,160,733],65:[711,0,869,45,839],66:[686,0,866,43,853],67:[703,17,817,55,855],68:[686,0,938,43,914],69:[680,0,810,43,825],70:[680,0,689,43,809],71:[703,16,887,56,854],72:[686,0,982,43,1027],73:[686,0,511,30,573],74:[686,17,631,42,694],75:[686,0,971,43,1003],76:[686,0,756,43,711],77:[686,0,1142,43,1219],78:[686,0,950,43,1027],79:[703,17,837,53,815],80:[686,0,723,43,847],81:[703,194,869,53,815],82:[686,17,872,43,881],83:[703,17,693,63,714],84:[675,0,637,22,772],85:[686,16,800,63,877],86:[686,16,678,62,886],87:[686,17,1093,61,1207],88:[686,0,947,38,953],89:[686,0,675,40,876],90:[686,0,773,68,805],97:[452,8,633,38,607],98:[694,8,521,45,513],99:[451,8,513,40,509],100:[694,8,610,38,612],101:[452,8,554,42,509],102:[701,201,568,64,624],103:[452,202,545,0,540],104:[694,8,668,45,642],105:[694,8,405,24,367],106:[694,202,471,-12,456],107:[694,8,604,45,578],108:[694,8,348,27,296],109:[452,8,1032,24,1006],110:[452,8,713,24,687],111:[452,8,585,39,576],112:[452,194,601,-23,593],113:[452,194,542,38,550],114:[452,8,529,24,500],115:[451,8,531,57,476],116:[643,7,415,21,387],117:[452,8,681,24,655],118:[453,8,567,24,540],119:[453,8,831,24,796],120:[452,8,659,43,599],121:[452,202,590,24,587],122:[452,8,555,34,539],160:[0,0,250,0,0],915:[680,0,657,43,777],916:[711,0,958,59,904],920:[702,17,867,54,844],923:[711,0,806,44,776],926:[675,0,841,62,867],928:[680,0,982,43,1026],931:[686,0,885,69,902],933:[703,0,671,32,802],934:[686,0,767,29,737],936:[686,0,714,22,790],937:[703,0,879,93,886],945:[452,8,761,39,712],946:[701,194,660,28,637],947:[451,211,590,5,617],948:[725,8,522,39,513],949:[461,17,529,36,481],950:[711,202,508,48,521],951:[452,211,600,24,600],952:[702,8,562,40,554],953:[452,8,412,38,386],954:[452,8,668,45,642],955:[694,13,671,40,652],956:[452,211,708,33,682],957:[452,2,577,38,608],958:[711,201,508,23,490],959:[452,8,585,39,576],960:[444,8,682,23,674],961:[451,211,612,34,603],962:[451,105,424,33,457],963:[444,8,686,35,677],964:[444,13,521,23,610],965:[453,8,631,24,604],966:[452,216,747,53,703],967:[452,201,718,32,685],968:[694,202,758,24,732],969:[453,8,718,24,691],977:[701,8,692,24,656],981:[694,202,712,51,693],982:[444,8,975,23,961],1009:[451,194,612,75,603],1013:[444,7,483,44,450]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Math-bold-italic"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Math/BoldItalic/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Math/Italic/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Math/Italic/Main.js deleted file mode 100644 index adc4d0cb7d2..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Math/Italic/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Math/Italic/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_Math-italic"]={directory:"Math/Italic",family:"MathJax_Math",style:"italic",testString:"MathJax Math \u03A5",skew:{65:0.139,66:0.0833,67:0.0833,68:0.0556,69:0.0833,70:0.0833,71:0.0833,72:0.0556,73:0.111,74:0.167,75:0.0556,76:0.0278,77:0.0833,78:0.0833,79:0.0833,80:0.0833,81:0.0833,82:0.0833,83:0.0833,84:0.0833,85:0.0278,88:0.0833,90:0.0833,99:0.0556,100:0.167,101:0.0556,102:0.167,103:0.0278,104:-0.0278,108:0.0833,111:0.0556,112:0.0833,113:0.0833,114:0.0556,115:0.0556,116:0.0833,117:0.0278,118:0.0278,119:0.0833,120:0.0278,121:0.0556,122:0.0556,915:0.0833,916:0.167,920:0.0833,923:0.167,926:0.0833,928:0.0556,931:0.0833,933:0.0556,934:0.0833,936:0.0556,937:0.0833,945:0.0278,946:0.0833,948:0.0556,949:0.0833,950:0.0833,951:0.0556,952:0.0833,953:0.0556,956:0.0278,957:0.0278,958:0.111,959:0.0556,961:0.0833,962:0.0833,964:0.0278,965:0.0278,966:0.0833,967:0.0556,968:0.111,977:0.0833,981:0.0833,1009:0.0833,1013:0.0556},32:[0,0,250,0,0],47:[716,215,778,139,638],65:[716,0,750,35,726],66:[683,0,759,35,756],67:[705,22,715,50,760],68:[683,0,828,33,803],69:[680,0,738,31,764],70:[680,0,643,31,749],71:[705,22,786,50,760],72:[683,0,831,31,888],73:[683,0,440,26,504],74:[683,22,555,57,633],75:[683,0,849,31,889],76:[683,0,681,32,647],77:[683,0,970,35,1051],78:[683,0,803,31,888],79:[704,22,763,50,740],80:[683,0,642,33,751],81:[704,194,791,50,740],82:[683,21,759,33,755],83:[705,22,613,52,645],84:[677,0,584,21,704],85:[683,22,683,60,767],86:[683,22,583,52,769],87:[683,22,944,51,1048],88:[683,0,828,26,852],89:[683,-1,581,30,763],90:[683,0,683,58,723],97:[441,10,529,33,506],98:[694,11,429,40,422],99:[442,11,433,34,429],100:[694,10,520,33,523],101:[442,11,466,39,429],102:[705,205,490,55,550],103:[442,205,477,10,480],104:[694,11,576,48,555],105:[661,11,345,21,302],106:[661,204,412,-12,403],107:[694,11,521,48,503],108:[694,11,298,38,266],109:[442,11,878,21,857],110:[442,11,600,21,580],111:[441,11,485,34,476],112:[442,194,503,-39,497],113:[442,194,446,33,460],114:[442,11,451,21,430],115:[442,10,469,53,419],116:[626,11,361,19,330],117:[442,11,572,21,551],118:[443,11,485,21,467],119:[443,11,716,21,690],120:[442,11,572,35,522],121:[442,205,490,21,496],122:[442,11,465,35,468],160:[0,0,250,0,0],915:[680,-1,615,31,721],916:[716,0,833,48,788],920:[704,22,763,50,740],923:[716,0,694,35,670],926:[677,0,742,53,777],928:[680,0,831,31,887],931:[683,0,780,58,806],933:[705,0,583,28,700],934:[683,0,667,24,642],936:[683,0,612,21,692],937:[704,0,772,80,786],945:[442,11,640,34,603],946:[705,194,566,23,573],947:[441,216,518,11,543],948:[717,10,444,36,451],949:[452,22,466,27,428],950:[704,204,438,44,471],951:[442,216,497,21,503],952:[705,10,469,35,462],953:[442,10,354,48,332],954:[442,11,576,49,554],955:[694,12,583,47,556],956:[442,216,603,23,580],957:[442,2,494,45,530],958:[704,205,438,21,443],959:[441,11,485,34,476],960:[431,11,570,19,573],961:[442,216,517,23,510],962:[442,107,363,31,405],963:[431,11,571,31,572],964:[431,13,437,18,517],965:[443,10,540,21,523],966:[442,218,654,50,618],967:[442,204,626,25,600],968:[694,205,651,21,634],969:[443,11,622,15,604],977:[705,11,591,21,563],981:[694,205,596,43,579],982:[431,10,828,19,823],1009:[442,194,517,67,510],1013:[431,11,406,40,382]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Math-italic"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Math/Italic/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/BasicLatin.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/BasicLatin.js deleted file mode 100644 index dcb746d1c17..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/BasicLatin.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/BasicLatin.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-bold"],{32:[0,0,250,0,0],33:[694,0,367,110,256],34:[694,-442,558,37,420],35:[694,193,917,61,855],36:[750,56,550,49,488],37:[750,56,1029,61,966],38:[716,22,831,47,769],39:[694,-442,306,80,226],40:[750,249,428,79,366],41:[750,250,428,61,348],42:[750,-293,550,67,482],43:[617,116,856,61,794],44:[146,106,306,80,226],45:[273,-186,367,12,305],46:[146,0,306,80,226],47:[750,249,550,61,488],48:[715,22,550,43,506],49:[716,-1,550,76,473],50:[716,0,550,46,495],51:[716,22,550,46,503],52:[694,0,550,31,518],53:[694,22,550,37,494],54:[716,22,550,46,503],55:[695,11,550,46,503],56:[715,22,550,46,503],57:[716,22,550,46,503],58:[458,0,306,80,226],59:[458,106,306,80,226],61:[407,-94,856,61,794],63:[705,0,519,61,457],64:[704,11,733,61,671],65:[694,0,733,42,690],66:[694,-1,733,92,671],67:[704,11,703,61,647],68:[694,-1,794,92,732],69:[691,0,642,92,595],70:[691,0,611,92,564],71:[705,11,733,61,659],72:[694,0,794,92,702],73:[694,0,331,85,246],74:[694,22,519,46,427],75:[694,0,764,92,701],76:[694,0,581,92,534],77:[694,0,978,92,886],78:[694,0,794,92,702],79:[716,22,794,62,731],80:[694,0,703,92,641],81:[716,106,794,62,732],82:[694,0,703,92,654],83:[716,22,611,49,549],84:[688,0,733,40,692],85:[694,22,764,92,672],86:[694,-1,733,27,705],87:[694,0,1039,24,1014],88:[694,0,733,37,694],89:[694,0,733,24,708],90:[694,0,672,61,616],91:[750,250,343,79,318],93:[750,250,343,24,263],94:[694,-537,550,108,441],95:[-23,110,550,0,549],97:[475,11,525,31,472],98:[694,10,561,54,523],99:[475,11,489,37,457],100:[694,11,561,37,507],101:[474,10,511,30,480],102:[705,0,336,29,381],103:[469,206,550,17,534],104:[694,0,561,53,508],105:[695,0,256,46,208],106:[695,205,286,-71,232],107:[694,0,531,63,496],108:[694,0,256,54,201],109:[469,0,867,53,815],110:[468,0,561,53,508],111:[474,11,550,32,518],112:[469,194,561,54,523],113:[469,194,561,37,507],114:[469,0,372,54,356],115:[474,10,422,30,396],116:[589,10,404,20,373],117:[458,11,561,52,508],118:[458,0,500,26,473],119:[458,0,744,24,719],120:[458,0,500,24,475],121:[458,205,500,29,473],122:[458,0,476,31,442],126:[344,-198,550,92,457]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Bold/BasicLatin.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js deleted file mode 100644 index e58ef741184..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/CombDiacritMarks.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-bold"],{768:[694,-537,0,-458,-218],769:[694,-537,0,-334,-93],770:[694,-537,0,-442,-109],771:[694,-548,0,-458,-93],772:[660,-560,0,-474,-77],774:[694,-552,0,-470,-80],775:[695,-596,0,-356,-194],776:[695,-595,0,-459,-91],778:[694,-538,0,-365,-119],779:[694,-537,0,-440,-94],780:[657,-500,0,-442,-109]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Bold/CombDiacritMarks.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js deleted file mode 100644 index fcb57db8460..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-bold"]={directory:"SansSerif/Bold",family:"MathJax_SansSerif",weight:"bold",testString:"MathJax SansSerif ^ _",Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"],[768,879,"CombDiacritMarks"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_SansSerif-bold"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Bold/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Other.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Other.js deleted file mode 100644 index 1f16d3f1813..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Other.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Bold/Other.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-bold"],{160:[0,0,250,0,0],305:[458,0,256,54,201],567:[458,205,286,-71,232],915:[691,0,581,92,534],916:[694,0,917,60,856],920:[716,22,856,62,793],923:[694,0,672,41,630],926:[688,0,733,46,686],928:[691,0,794,92,702],931:[694,0,794,61,732],933:[715,0,856,62,793],934:[694,0,794,62,732],936:[694,0,856,61,794],937:[716,0,794,49,744],8211:[327,-240,550,0,549],8212:[327,-240,1100,0,1099],8216:[694,-443,306,81,226],8217:[694,-442,306,80,226],8220:[694,-443,558,138,520],8221:[694,-442,558,37,420]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Bold/Other.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/BasicLatin.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/BasicLatin.js deleted file mode 100644 index a0f6bfa1ebd..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/BasicLatin.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/BasicLatin.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-italic"],{32:[0,0,250,0,0],33:[694,0,319,110,355],34:[694,-471,500,133,472],35:[694,194,833,87,851],36:[750,56,500,56,565],37:[750,56,833,165,815],38:[716,22,758,71,747],39:[694,-471,278,190,335],40:[750,250,389,104,491],41:[750,250,389,2,390],42:[750,-306,500,156,568],43:[583,83,778,108,775],44:[98,125,278,63,209],45:[259,-186,333,51,332],46:[98,0,278,90,209],47:[750,250,500,6,600],48:[678,22,500,88,549],49:[678,0,500,88,451],50:[678,0,500,50,551],51:[678,22,500,56,544],52:[656,0,500,62,521],53:[656,22,500,50,555],54:[678,22,500,94,548],55:[656,11,500,143,596],56:[678,22,500,77,554],57:[677,22,500,77,545],58:[444,0,278,90,282],59:[444,125,278,63,282],61:[370,-130,778,88,796],63:[704,0,472,173,536],64:[705,10,667,120,707],65:[694,0,667,28,638],66:[694,0,667,90,696],67:[705,10,639,124,719],68:[694,0,722,88,747],69:[691,0,597,86,688],70:[691,0,569,86,673],71:[705,11,667,125,730],72:[694,0,708,86,768],73:[694,0,278,87,338],74:[694,22,472,46,535],75:[694,0,694,88,785],76:[694,0,542,87,516],77:[694,0,875,92,929],78:[694,0,708,88,766],79:[716,22,736,118,763],80:[694,0,639,88,690],81:[716,125,736,118,763],82:[694,0,646,88,698],83:[716,22,556,54,609],84:[688,0,681,165,790],85:[694,22,688,131,747],86:[694,0,667,161,799],87:[694,0,944,161,1076],88:[694,0,667,14,758],89:[694,0,667,151,810],90:[694,0,611,55,702],91:[750,250,289,41,425],93:[750,250,289,-31,353],94:[694,-527,500,190,533],95:[-38,114,500,50,565],97:[461,10,481,61,473],98:[694,11,517,75,539],99:[460,11,444,75,499],100:[694,10,517,73,588],101:[460,11,444,71,472],102:[705,0,306,94,494],103:[455,206,500,12,568],104:[694,0,517,73,513],105:[680,0,239,74,315],106:[680,204,267,-96,336],107:[694,0,489,76,543],108:[694,0,239,74,311],109:[455,0,794,73,790],110:[454,0,517,73,513],111:[461,11,500,69,523],112:[455,194,517,34,538],113:[455,194,517,72,538],114:[455,0,342,74,424],115:[461,11,383,35,436],116:[571,11,361,97,410],117:[444,10,517,90,537],118:[444,0,461,108,540],119:[444,0,683,108,762],120:[444,0,461,1,537],121:[444,205,461,1,540],122:[444,0,435,28,494],126:[327,-193,500,199,560]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Italic/BasicLatin.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js deleted file mode 100644 index 8845c62b68b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/CombDiacritMarks.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-italic"],{768:[694,-527,0,-270,-87],769:[694,-527,0,-190,63],770:[694,-527,0,-310,33],771:[677,-543,0,-301,60],772:[631,-552,0,-314,64],774:[694,-508,0,-284,73],775:[680,-576,0,-180,-54],776:[680,-582,0,-273,40],778:[693,-527,0,-227,-2],779:[694,-527,0,-287,63],780:[654,-487,0,-283,60]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Italic/CombDiacritMarks.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Main.js deleted file mode 100644 index ca8d56f9a68..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-italic"]={directory:"SansSerif/Italic",family:"MathJax_SansSerif",style:"italic",testString:"MathJax SansSerif ^ _",Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"],[768,879,"CombDiacritMarks"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_SansSerif-italic"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Italic/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Other.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Other.js deleted file mode 100644 index 644b069db42..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Other.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Italic/Other.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS["MathJax_SansSerif-italic"],{160:[0,0,250,0,0],305:[444,0,239,74,258],567:[444,204,267,-96,286],915:[691,0,542,87,646],916:[694,0,833,42,790],920:[715,22,778,119,804],923:[694,0,611,28,582],926:[688,0,667,42,765],928:[691,0,708,86,768],931:[694,0,722,55,813],933:[716,0,778,173,843],934:[694,0,722,124,743],936:[694,0,778,171,854],937:[716,0,722,44,769],8211:[312,-236,500,50,565],8212:[312,-236,1000,50,1065],8216:[694,-471,278,190,336],8217:[694,-471,278,190,335],8220:[694,-471,500,274,614],8221:[694,-471,500,133,472]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Italic/Other.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/BasicLatin.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/BasicLatin.js deleted file mode 100644 index 8ad0564f989..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/BasicLatin.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/BasicLatin.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_SansSerif,{32:[0,0,250,0,0],33:[694,0,319,110,208],34:[694,-471,500,32,325],35:[694,194,833,56,777],36:[750,56,500,44,444],37:[750,56,833,56,776],38:[716,22,758,42,702],39:[694,-471,278,89,188],40:[750,250,389,74,333],41:[750,250,389,55,314],42:[750,-306,500,63,436],43:[583,82,778,56,722],44:[98,125,278,89,188],45:[259,-186,333,11,277],46:[98,0,278,90,188],47:[750,250,500,56,445],48:[678,22,500,39,460],49:[678,0,500,83,430],50:[677,0,500,42,449],51:[678,22,500,42,457],52:[656,0,500,28,471],53:[656,21,500,33,449],54:[677,22,500,42,457],55:[656,11,500,42,457],56:[678,22,500,43,456],57:[677,22,500,42,457],58:[444,0,278,90,188],59:[444,125,278,89,188],61:[370,-130,778,56,722],63:[704,0,472,55,416],64:[704,11,667,56,612],65:[694,0,667,28,638],66:[694,0,667,90,610],67:[705,11,639,59,587],68:[694,0,722,88,666],69:[691,0,597,86,554],70:[691,0,569,86,526],71:[704,11,667,59,599],72:[694,0,708,86,621],73:[694,0,278,87,191],74:[694,22,472,42,388],75:[694,0,694,88,651],76:[694,0,542,87,499],77:[694,0,875,92,782],78:[694,0,708,88,619],79:[715,22,736,55,680],80:[694,0,639,88,583],81:[715,125,736,55,680],82:[694,0,646,88,617],83:[716,22,556,44,500],84:[688,0,681,36,644],85:[694,22,688,87,600],86:[694,0,667,14,652],87:[694,0,944,14,929],88:[694,0,667,14,652],89:[694,0,667,3,663],90:[694,0,611,55,560],91:[750,250,289,94,266],93:[750,250,289,22,194],94:[694,-527,500,78,421],95:[-38,114,500,0,499],97:[460,10,481,38,407],98:[694,11,517,75,482],99:[460,10,444,34,415],100:[694,10,517,33,441],101:[461,10,444,28,415],102:[705,0,306,27,347],103:[455,206,500,28,485],104:[694,0,517,73,443],105:[680,0,239,67,171],106:[680,205,267,-59,192],107:[694,0,489,76,471],108:[694,0,239,74,164],109:[455,0,794,73,720],110:[455,0,517,73,443],111:[460,10,500,28,471],112:[455,194,517,75,483],113:[455,194,517,33,441],114:[455,0,342,74,327],115:[460,10,383,28,360],116:[571,10,361,18,333],117:[444,10,517,73,443],118:[444,0,461,14,446],119:[444,0,683,14,668],120:[444,0,461,0,460],121:[444,204,461,14,446],122:[444,0,435,28,402],126:[327,-193,500,83,416]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Regular/BasicLatin.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js deleted file mode 100644 index 17a65eba7b0..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/CombDiacritMarks.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_SansSerif,{768:[694,-527,0,-417,-199],769:[694,-527,0,-302,-84],770:[694,-527,0,-422,-79],771:[677,-543,0,-417,-84],772:[631,-552,0,-431,-70],774:[694,-508,0,-427,-74],775:[680,-576,0,-302,-198],776:[680,-582,0,-397,-104],778:[694,-527,0,-319,-99],779:[694,-527,0,-399,-84],780:[654,-487,0,-422,-79]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Regular/CombDiacritMarks.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Main.js deleted file mode 100644 index 3e7616b3422..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_SansSerif={directory:"SansSerif/Regular",family:"MathJax_SansSerif",testString:"MathJax SansSerif ^ _",Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"],[768,879,"CombDiacritMarks"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_SansSerif"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Other.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Other.js deleted file mode 100644 index 9383be8e87f..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Other.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/SansSerif/Regular/Other.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_SansSerif,{160:[0,0,250,0,0],305:[444,0,239,74,164],567:[444,205,267,-59,192],915:[691,0,542,87,499],916:[694,0,833,42,790],920:[716,21,778,56,722],923:[694,0,611,28,582],926:[688,0,667,42,624],928:[691,0,708,86,621],931:[694,0,722,55,666],933:[716,0,778,55,722],934:[694,0,722,55,666],936:[694,0,778,55,722],937:[716,0,722,44,677],8211:[312,-236,500,0,499],8212:[312,-236,1000,0,999],8216:[694,-471,278,90,189],8217:[694,-471,278,89,188],8220:[694,-471,500,174,467],8221:[694,-471,500,32,325]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/SansSerif/Regular/Other.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/BasicLatin.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/BasicLatin.js deleted file mode 100644 index f13512c7d6b..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/BasicLatin.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/BasicLatin.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Script,{32:[0,0,250,0,0],65:[717,8,803,35,1016],66:[708,28,908,31,928],67:[728,26,666,26,819],68:[708,31,774,68,855],69:[707,8,562,46,718],70:[735,36,895,39,990],71:[717,37,610,12,738],72:[717,36,969,29,1241],73:[717,17,809,59,946],74:[717,314,1052,92,1133],75:[717,37,914,29,1204],76:[717,17,874,14,1035],77:[721,50,1080,30,1216],78:[726,36,902,29,1208],79:[707,8,738,96,805],80:[716,37,1013,90,1031],81:[717,17,883,54,885],82:[717,17,850,-2,887],83:[708,36,868,29,1016],84:[735,37,747,92,996],85:[717,17,800,55,960],86:[717,17,622,56,850],87:[717,17,805,46,1026],88:[717,17,944,103,1131],89:[716,17,710,57,959],90:[717,16,821,83,1032]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Script/Regular/BasicLatin.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Main.js deleted file mode 100644 index d8189a526bd..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Script={directory:"Script/Regular",family:"MathJax_Script",testString:"MATHJAX SCRIPT",skew:{65:0.389,66:0.194,67:0.278,68:0.111,69:0.139,70:0.222,71:0.25,72:0.333,73:0.333,74:0.417,75:0.361,76:0.306,77:0.444,78:0.389,79:0.167,80:0.222,81:0.278,82:0.194,83:0.333,84:0.222,85:0.25,86:0.222,87:0.25,88:0.278,89:0.194,90:0.306},Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Script"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Script/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Other.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Other.js deleted file mode 100644 index f2935ed1300..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Other.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Script/Regular/Other.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Script,{160:[0,0,250,0,0]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Script/Regular/Other.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size1/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size1/Regular/Main.js deleted file mode 100644 index caf1ddec748..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size1/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Size1/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Size1={directory:"Size1/Regular",family:"MathJax_Size1",testString:"() [] {}",32:[0,0,250,0,0],40:[850,349,458,152,422],41:[850,349,458,35,305],47:[850,349,578,55,522],91:[850,349,417,202,394],92:[850,349,578,54,522],93:[850,349,417,22,214],123:[850,349,583,105,477],125:[850,349,583,105,477],160:[0,0,250,0,0],710:[744,-551,556,-8,564],732:[722,-597,556,1,554],770:[744,-551,0,-564,8],771:[722,-597,0,-555,-2],8214:[602,0,778,257,521],8593:[600,0,667,112,555],8595:[600,0,667,112,555],8657:[599,0,778,57,721],8659:[600,-1,778,57,721],8719:[750,250,944,55,888],8720:[750,250,944,55,888],8721:[750,250,1056,56,999],8730:[850,350,1000,111,1020],8739:[627,15,333,145,188],8741:[627,15,556,145,410],8747:[805,306,472,55,610],8748:[805,306,819,55,957],8749:[805,306,1166,55,1304],8750:[805,306,472,55,610],8896:[750,249,833,55,777],8897:[750,249,833,55,777],8898:[750,249,833,55,777],8899:[750,249,833,55,777],8968:[850,349,472,202,449],8969:[850,349,472,22,269],8970:[850,349,472,202,449],8971:[850,349,472,22,269],9168:[602,0,667,312,355],10216:[850,350,472,97,394],10217:[850,350,472,77,374],10752:[750,250,1111,56,1054],10753:[750,250,1111,56,1054],10754:[750,250,1111,56,1054],10756:[750,249,833,55,777],10758:[750,249,833,55,777]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Size1"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Size1/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size2/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size2/Regular/Main.js deleted file mode 100644 index 5f340940aec..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size2/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Size2/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Size2={directory:"Size2/Regular",family:"MathJax_Size2",testString:"() [] {}",32:[0,0,250,0,0],40:[1150,649,597,180,561],41:[1150,649,597,35,416],47:[1150,649,811,56,754],91:[1150,649,472,224,455],92:[1150,649,811,54,754],93:[1150,649,472,16,247],123:[1150,649,667,119,547],125:[1150,649,667,119,547],160:[0,0,250,0,0],710:[772,-565,1000,-5,1004],732:[750,-611,1000,0,999],770:[772,-565,0,-1005,4],771:[750,-611,0,-1000,-1],8719:[950,450,1278,56,1221],8720:[950,450,1278,56,1221],8721:[950,450,1444,55,1388],8730:[1150,650,1000,111,1020],8747:[1360,862,556,55,944],8748:[1360,862,1084,55,1472],8749:[1360,862,1592,55,1980],8750:[1360,862,556,55,944],8896:[950,450,1111,55,1055],8897:[950,450,1111,55,1055],8898:[949,450,1111,55,1055],8899:[950,449,1111,55,1055],8968:[1150,649,528,224,511],8969:[1150,649,528,16,303],8970:[1150,649,528,224,511],8971:[1150,649,528,16,303],10216:[1150,649,611,112,524],10217:[1150,649,611,85,498],10752:[949,449,1511,56,1454],10753:[949,449,1511,56,1454],10754:[949,449,1511,56,1454],10756:[950,449,1111,55,1055],10758:[950,450,1111,55,1055]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Size2"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Size2/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size3/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size3/Regular/Main.js deleted file mode 100644 index fa6ae6d8901..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size3/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Size3/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Size3={directory:"Size3/Regular",family:"MathJax_Size3",testString:"() [] {}",32:[0,0,250,0,0],40:[1450,949,736,209,701],41:[1450,949,736,34,526],47:[1450,949,1044,55,989],91:[1450,949,528,247,516],92:[1450,949,1044,56,988],93:[1450,949,528,11,280],123:[1450,949,750,130,618],125:[1450,949,750,131,618],160:[0,0,250,0,0],710:[772,-564,1444,-4,1447],732:[749,-610,1444,1,1442],770:[772,-564,0,-1448,3],771:[749,-610,0,-1443,-2],8730:[1450,950,1000,111,1020],8968:[1450,949,583,246,571],8969:[1450,949,583,11,336],8970:[1450,949,583,246,571],8971:[1450,949,583,11,336],10216:[1450,950,750,126,654],10217:[1450,949,750,94,623]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Size3"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Size3/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size4/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size4/Regular/Main.js deleted file mode 100644 index 3a327b15229..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Size4/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Size4/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Size4={directory:"Size4/Regular",family:"MathJax_Size4",testString:"() [] {}",32:[0,0,250,0,0],40:[1750,1249,792,237,758],41:[1750,1249,792,33,554],47:[1750,1249,1278,56,1221],91:[1750,1249,583,269,577],92:[1750,1249,1278,56,1221],93:[1750,1249,583,5,313],123:[1750,1249,806,144,661],125:[1750,1249,806,144,661],160:[0,0,250,0,0],710:[845,-561,1889,-14,1902],732:[823,-583,1889,1,1885],770:[845,-561,0,-1903,13],771:[823,-583,0,-1888,-4],8730:[1750,1250,1000,111,1020],8968:[1750,1249,639,269,633],8969:[1750,1249,639,5,369],8970:[1750,1249,639,269,633],8971:[1750,1249,639,5,369],9115:[1154,655,875,291,843],9116:[610,10,875,291,417],9117:[1165,644,875,291,843],9118:[1154,655,875,31,583],9119:[610,10,875,457,583],9120:[1165,644,875,31,583],9121:[1154,645,667,319,666],9122:[602,0,667,319,403],9123:[1155,644,667,319,666],9124:[1154,645,667,0,347],9125:[602,0,667,263,347],9126:[1155,644,667,0,347],9127:[899,10,889,384,718],9128:[1160,660,889,170,504],9129:[10,899,889,384,718],9130:[310,10,889,384,504],9131:[899,10,889,170,504],9132:[1160,660,889,384,718],9133:[10,899,889,170,504],9143:[935,885,1056,111,742],10216:[1750,1248,806,140,703],10217:[1750,1248,806,103,665],57344:[625,14,1056,702,742],57345:[605,14,1056,702,1076],57680:[120,213,450,-24,460],57681:[120,213,450,-10,474],57682:[333,0,450,-24,460],57683:[333,0,450,-10,474],57684:[120,0,400,-10,410]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Size4"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Size4/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/BasicLatin.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/BasicLatin.js deleted file mode 100644 index 2190db438f4..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/BasicLatin.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/BasicLatin.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Typewriter,{32:[0,0,250,0,0],33:[622,0,525,206,320],34:[623,-333,525,122,402],35:[611,0,525,36,489],36:[694,82,525,58,466],37:[694,83,525,35,489],38:[622,11,525,28,490],39:[611,-287,525,175,349],40:[694,82,525,166,437],41:[694,82,525,87,358],42:[520,-90,525,68,456],43:[531,-81,525,38,487],44:[140,139,525,173,353],45:[341,-271,525,57,468],46:[140,-1,525,193,332],47:[694,83,525,58,466],48:[621,10,525,42,482],49:[622,-1,525,99,450],50:[622,-1,525,52,472],51:[622,11,525,44,479],52:[624,-1,525,29,495],53:[611,10,525,52,472],54:[622,11,525,45,479],55:[627,10,525,44,480],56:[621,10,525,45,479],57:[622,11,525,46,479],58:[431,-1,525,193,332],59:[431,139,525,175,337],60:[557,-55,525,57,468],61:[417,-195,525,38,487],62:[557,-55,525,57,468],63:[617,0,525,62,462],64:[617,6,525,44,481],65:[623,-1,525,28,496],66:[611,-1,525,17,482],67:[622,11,525,40,484],68:[611,-1,525,16,485],69:[611,-1,525,19,502],70:[611,-1,525,22,490],71:[622,11,525,38,496],72:[611,-1,525,16,508],73:[611,-1,525,72,452],74:[611,11,525,57,479],75:[611,-1,525,18,495],76:[611,0,525,25,488],77:[611,-1,525,12,512],78:[611,0,525,20,504],79:[621,10,525,56,468],80:[611,-1,525,19,480],81:[621,138,525,56,468],82:[611,11,525,16,522],83:[622,11,525,52,472],84:[611,-1,525,26,498],85:[611,11,525,-3,528],86:[611,7,525,19,505],87:[611,7,525,12,512],88:[611,-1,525,28,495],89:[611,-1,525,20,505],90:[611,-1,525,48,481],91:[694,82,525,214,483],92:[694,83,525,58,466],93:[694,82,525,41,310],94:[611,-460,525,96,428],95:[-25,95,525,57,468],96:[681,-357,525,176,350],97:[439,6,525,48,524],98:[611,6,525,4,492],99:[440,6,525,66,466],100:[611,6,525,31,520],101:[440,6,525,48,464],102:[617,-1,525,35,437],103:[442,229,525,28,509],104:[611,-1,525,4,520],105:[612,-1,525,72,462],106:[612,228,525,48,376],107:[611,-1,525,13,507],108:[611,-1,525,51,474],109:[436,-1,525,-12,536],110:[436,-1,525,4,520],111:[440,6,525,52,472],112:[437,221,525,4,492],113:[437,221,525,34,545],114:[437,-1,525,24,487],115:[440,6,525,72,458],116:[554,6,525,25,448],117:[431,5,525,4,520],118:[431,4,525,24,500],119:[431,4,525,16,508],120:[431,-1,525,29,495],121:[431,228,525,26,500],122:[431,-1,525,34,475],123:[694,83,525,50,475],124:[694,82,525,228,297],125:[694,83,525,49,475],126:[611,-466,525,87,437],127:[612,-519,525,104,421]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Typewriter/Regular/BasicLatin.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js deleted file mode 100644 index b3317eb7dbe..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/CombDiacritMarks.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Typewriter,{768:[611,-485,0,-409,-195],769:[611,-485,0,-331,-117],770:[611,-460,0,-429,-97],771:[611,-466,0,-438,-88],772:[577,-500,0,-452,-74],774:[611,-504,0,-446,-79],776:[612,-519,0,-421,-104],778:[619,-499,0,-344,-182],780:[577,-449,0,-427,-99]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Typewriter/Regular/CombDiacritMarks.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js deleted file mode 100644 index db3cf3cbb63..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Typewriter={directory:"Typewriter/Regular",family:"MathJax_Typewriter",testString:"MathJax Typewriter |",Ranges:[[0,127,"BasicLatin"],[128,65535,"Other"],[768,879,"CombDiacritMarks"]]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_Typewriter"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/Typewriter/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Other.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Other.js deleted file mode 100644 index a3f72123cb5..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Other.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/Typewriter/Regular/Other.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_Typewriter,{160:[0,0,250,0,0],305:[431,-1,525,72,462],567:[431,228,525,48,376],915:[611,0,525,25,488],916:[623,0,525,35,489],920:[621,10,525,56,468],923:[623,-1,525,30,495],926:[611,-1,525,33,491],928:[611,-1,525,16,508],931:[611,-1,525,40,484],933:[622,-1,525,38,486],934:[611,-1,525,41,483],936:[611,-1,525,37,487],937:[622,-1,525,32,492],2018:[611,-287,525,175,349],2019:[681,-357,525,176,350],8242:[623,-334,525,211,313]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/Typewriter/Regular/Other.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinChrome/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinChrome/Regular/Main.js deleted file mode 100644 index dbc0e72cba2..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinChrome/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/WinChrome/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_WinChrome={directory:"WinChrome/Regular",family:"MathJax_WinChrome",testString:"> T d \u23A6 \u2A00",skew:{84:0.0278,58096:0.0319},32:[0,0,250,0,0],62:[540,40,778,83,694],84:[717,68,545,34,833],100:[694,11,511,101,567],160:[0,0,250,0,0],8899:[750,249,833,55,777],9126:[1155,644,667,0,347],10752:[949,449,1511,56,1454],58096:[720,69,644,38,947],58097:[587,85,894,96,797]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_WinChrome"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/WinChrome/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/AMS.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/AMS.js deleted file mode 100644 index 80bf781044a..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/AMS.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/AMS.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_WinIE6,{58048:[437,-64,500,58,417],58049:[437,-64,500,64,422],58050:[430,23,222,91,131],58051:[431,23,389,55,331],58052:[365,-132,778,55,719],58053:[753,175,778,83,694],58054:[753,175,778,83,694],58055:[708,209,778,82,693],58056:[708,209,778,82,693],58058:[694,-306,500,55,444],58059:[694,-306,500,55,444],58060:[366,22,500,55,444],58061:[366,22,500,55,444],58062:[694,195,889,0,860],58063:[694,195,889,0,860],58064:[689,0,778,55,722],58065:[689,0,778,55,722],58066:[575,20,722,84,637],58067:[575,20,722,84,637],58068:[539,41,778,83,694],58069:[576,19,722,84,637],58070:[576,19,722,84,637],58071:[539,41,778,83,694],58072:[716,132,667,56,611],58073:[471,82,667,24,643],58074:[471,82,667,23,643],58075:[601,101,778,15,762],58076:[694,111,944,49,895],58077:[367,-133,778,56,722]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/WinIE6/Regular/AMS.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Bold.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Bold.js deleted file mode 100644 index 095131c74c2..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Bold.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Bold.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.Hub.Insert(MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_WinIE6,{57920:[518,17,1150,64,1084],57921:[694,193,575,14,561],57922:[518,17,1150,65,1085],57923:[694,194,575,14,561],57924:[518,17,1150,64,1085],57925:[767,267,575,14,561],57926:[724,194,1150,64,1084],57927:[724,193,1150,64,1085],57928:[694,224,1150,65,1085],57929:[694,224,1150,64,1085],57930:[547,46,1150,64,1084],57931:[547,46,1150,47,1102],57932:[694,16,639,1,640],57933:[710,17,628,60,657],57934:[694,-1,639,64,574],57935:[686,24,958,56,901],57936:[587,86,767,97,670],57937:[587,86,767,96,670],57938:[750,250,575,63,511],57939:[820,180,958,78,988],57940:[451,8,894,65,830],57941:[452,8,1150,65,1084],57942:[714,0,722,55,676],57943:[750,249,319,129,190],57944:[750,248,575,145,430],57945:[604,17,767,64,702],57946:[604,16,767,64,702],57947:[603,16,767,64,702],57948:[604,16,767,64,702],57949:[711,211,569,64,632],57950:[391,-109,894,64,828],57951:[524,-32,894,64,829],57952:[711,210,894,64,829],57953:[505,3,894,64,829],57954:[697,199,894,96,797],57955:[697,199,894,96,797],57956:[617,116,1150,64,1085],57957:[618,116,1150,64,1085],57958:[587,85,894,96,797],57959:[587,86,894,96,796],57960:[697,199,894,96,797],57961:[697,199,894,96,796],57962:[632,132,894,64,828],57963:[632,132,894,64,828],57964:[693,-1,894,65,829],57965:[711,-1,1022,69,953],57966:[500,210,1022,68,953],57967:[711,211,1150,65,1084],57968:[719,129,894,64,829],57969:[711,24,894,65,828],57970:[719,154,894,64,828],57971:[719,129,894,32,861],57972:[750,17,447,64,381],57973:[741,223,447,57,389],57974:[724,224,447,63,382]});MathJax.Ajax.loadComplete(MathJax.OutputJax["HTML-CSS"].fontDir+"/WinIE6/Regular/Bold.js"); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Main.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Main.js deleted file mode 100644 index 55252ca7612..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Main.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/WinIE6/Regular/Main.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -MathJax.OutputJax["HTML-CSS"].FONTDATA.FONTS.MathJax_WinIE6={directory:"WinIE6/Regular",family:"MathJax_WinIE6",testString:"\uE247 \uE257 \uE2CF",skew:{57869:0.0833,57933:0.0958},Ranges:[[57920,57983,"Bold"],[58048,58079,"AMS"]],32:[0,0,250,0,0],160:[0,0,250,0,0],57856:[511,11,1000,55,944],57857:[694,193,500,17,483],57858:[511,11,1000,56,944],57859:[694,194,500,17,483],57860:[511,11,1000,55,944],57861:[772,272,500,17,483],57862:[720,195,1000,29,944],57863:[720,195,1000,55,970],57864:[695,220,1000,55,970],57865:[695,220,1000,29,944],57866:[525,24,1000,56,944],57867:[526,25,1000,34,966],57868:[694,22,556,0,556],57869:[715,22,531,42,566],57870:[694,0,556,56,500],57871:[683,33,833,46,786],57872:[540,40,667,84,583],57873:[540,40,667,83,582],57874:[750,250,500,56,445],57875:[800,200,833,72,853],57876:[442,11,778,56,722],57877:[442,11,1000,55,944],57878:[694,0,722,55,666],57879:[750,249,278,119,159],57880:[750,250,500,132,367],57881:[598,22,667,55,611],57882:[598,22,667,55,611],57883:[598,22,667,55,611],57884:[598,22,667,55,611],57885:[716,216,417,55,472],57886:[367,-133,778,55,722],57887:[483,-55,778,55,722],57888:[716,215,778,56,722],57889:[464,-36,778,56,722],57890:[636,138,778,83,694],57891:[636,138,778,83,694],57892:[568,67,1000,56,944],57893:[567,67,1000,55,944],57894:[540,40,778,84,694],57895:[540,40,778,83,693],57896:[636,138,778,84,694],57897:[636,138,778,83,693],57898:[583,83,778,56,722],57899:[583,83,778,56,722],57900:[668,0,778,55,723],57901:[716,0,889,59,828],57902:[500,215,889,59,828],57903:[715,215,1000,56,944],57904:[727,130,778,55,723],57905:[716,33,778,55,723],57906:[727,162,778,55,723],57907:[726,130,778,28,750],57908:[750,22,389,55,332],57909:[734,223,389,65,324],57910:[723,223,389,55,333],57984:[0,1000,944,55,888],57985:[0,1000,1056,56,999],57986:[40,1160,1000,111,1020],57987:[21,621,333,145,188],57988:[21,621,556,145,410],57989:[0,1111,472,55,610],57990:[0,1111,472,55,610],57991:[0,600,667,112,555],57992:[0,600,667,112,555],57993:[1,601,667,312,355],58000:[0,1400,1278,56,1221],58001:[0,1400,1444,55,1388],58002:[40,1760,1000,111,1020],58005:[0,2222,556,55,944],58006:[0,2222,556,55,944],58018:[40,2360,1000,111,1020],58034:[40,2960,1000,111,1020]};MathJax.Callback.Queue(["initFont",MathJax.OutputJax["HTML-CSS"],"MathJax_WinIE6"],["loadComplete",MathJax.Ajax,MathJax.OutputJax["HTML-CSS"].fontDir+"/WinIE6/Regular/Main.js"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/fontdata-extra.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/fontdata-extra.js deleted file mode 100644 index f63bbba6903..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/fontdata-extra.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/fontdata-extra.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(g){var l="2.1";var k=g.FONTDATA.DELIMITERS;var f="MathJax_Main",h="MathJax_Main-bold",i="MathJax_AMS",d="MathJax_Size1",a="MathJax_Size4";var j="H",e="V";var c={61:{dir:j,HW:[[0.767,f]],stretch:{rep:[61,f]}},8606:{dir:j,HW:[[1,i]],stretch:{left:[8606,i],rep:[8722,f]}},8608:{dir:j,HW:[[1,i]],stretch:{right:[8608,i],rep:[8722,f]}},8612:{dir:j,HW:[],stretch:{min:1,left:[8592,f],rep:[8722,f],right:[8739,d,0,-0.05,0.9]}},8613:{dir:e,HW:[],stretch:{min:0.6,bot:[8869,h,0,0,0.75],ext:[9168,d],top:[8593,d]}},8614:{dir:j,HW:[[1,f]],stretch:{left:[8739,d,-0.09,-0.05,0.9],rep:[8722,f],right:[8594,f]}},8615:{dir:e,HW:[],stretch:{min:0.6,top:[8868,h,0,0,0.75],ext:[9168,d],bot:[8595,d]}},8624:{dir:e,HW:[[0.722,i]],stretch:{top:[8624,i],ext:[9168,d,0.097]}},8625:{dir:e,HW:[[0.722,i]],stretch:{top:[8625,i,0.27],ext:[9168,d]}},8636:{dir:j,HW:[[1,f]],stretch:{left:[8636,f],rep:[8722,f]}},8637:{dir:j,HW:[[1,f]],stretch:{left:[8637,f],rep:[8722,f]}},8638:{dir:e,HW:[[0.888,i]],stretch:{top:[8638,i,0.12,0,1.1],ext:[9168,d]}},8639:{dir:e,HW:[[0.888,i]],stretch:{top:[8639,i,0.12,0,1.1],ext:[9168,d]}},8640:{dir:j,HW:[[1,f]],stretch:{right:[8640,f],rep:[8722,f]}},8641:{dir:j,HW:[[1,f]],stretch:{right:[8641,f],rep:[8722,f]}},8642:{dir:e,HW:[[0.888,i]],stretch:{bot:[8642,i,0.12,0,1.1],ext:[9168,d]}},8643:{dir:e,HW:[[0.888,i]],stretch:{bot:[8643,i,0.12,0,1.1],ext:[9168,d]}},8666:{dir:j,HW:[[1,i]],stretch:{left:[8666,i],rep:[8801,f]}},8667:{dir:j,HW:[[1,i]],stretch:{right:[8667,i],rep:[8801,f]}},9140:{dir:j,HW:[],stretch:{min:0.5,left:[9484,i,0,-0.1],rep:[8722,f,0,0.35],right:[9488,i,0,-0.1]}},9141:{dir:j,HW:[],stretch:{min:0.5,left:[9492,i,0,0.26],rep:[8722,f,0,0,0,0.25],right:[9496,i,0,0.26]}},9180:{dir:j,HW:[[0.778,i,0,8994],[1,f,0,8994]],stretch:{left:[57680,a],rep:[57684,a],right:[57681,a]}},9181:{dir:j,HW:[[0.778,i,0,8995],[1,f,0,8995]],stretch:{left:[57682,a],rep:[57684,a],right:[57683,a]}},9184:{dir:j,HW:[],stretch:{min:1.25,left:[714,f,-0.1],rep:[713,f,0,0.13],right:[715,f],fullExtenders:true}},9185:{dir:j,HW:[],stretch:{min:1.5,left:[715,f,-0.1,0.1],rep:[713,f],right:[714,f,-0.1,0.1],fullExtenders:true}},10502:{dir:j,HW:[],stretch:{min:1,left:[8656,f],rep:[61,f],right:[8739,d,0,-0.1]}},10503:{dir:j,HW:[],stretch:{min:0.7,left:[8872,i,0,-0.12],rep:[61,f],right:[8658,f]}},10574:{dir:j,HW:[],stretch:{min:0.5,left:[8636,f],rep:[8722,f],right:[8640,f]}},10575:{dir:e,HW:[],stretch:{min:0.5,top:[8638,i,0.12,0,1.1],ext:[9168,d],bot:[8642,i,0.12,0,1.1]}},10576:{dir:j,HW:[],stretch:{min:0.5,left:[8637,f],rep:[8722,f],right:[8641,f]}},10577:{dir:e,HW:[],stretch:{min:0.5,top:[8639,i,0.12,0,1.1],ext:[9168,d],bot:[8643,i,0.12,0,1.1]}},10586:{dir:j,HW:[],stretch:{min:1,left:[8636,f],rep:[8722,f],right:[8739,d,0,-0.05,0.9]}},10587:{dir:j,HW:[],stretch:{min:1,left:[8739,d,-0.05,-0.05,0.9],rep:[8722,f],right:[8640,f]}},10588:{dir:e,HW:[],stretch:{min:0.7,bot:[8869,h,0,0,0.75],ext:[9168,d],top:[8638,i,0.12,0,1.1]}},10589:{dir:e,HW:[],stretch:{min:0.7,top:[8868,h,0,0,0.75],ext:[9168,d],bot:[8642,i,0.12,0,1.1]}},10590:{dir:j,HW:[],stretch:{min:1,left:[8637,f],rep:[8722,f],right:[8739,d,0,-0.05,0.9]}},10591:{dir:j,HW:[],stretch:{min:1,left:[8739,d,-0.05,-0.05,0.9],rep:[8722,f],right:[8641,f]}},10592:{dir:e,HW:[],stretch:{min:0.7,bot:[8869,h,0,0,0.75],ext:[9168,d],top:[8639,i,0.12,0,1.1]}},10593:{dir:e,HW:[],stretch:{min:0.7,top:[8868,h,0,0,0.75],ext:[9168,d],bot:[8643,i,0.12,0,1.1]}}};for(var b in c){if(c.hasOwnProperty(b)){k[b]=c[b]}}MathJax.Ajax.loadComplete(g.fontDir+"/fontdata-extra.js")})(MathJax.OutputJax["HTML-CSS"]); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/fontdata.js b/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/fontdata.js deleted file mode 100644 index 8cc329002ee..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/2.1/jax/output/HTML-CSS/fonts/TeX/fontdata.js +++ /dev/null @@ -1,16 +0,0 @@ -/* - * /MathJax/jax/output/HTML-CSS/fonts/TeX/fontdata.js - * - * Copyright (c) 2012 Design Science, Inc. - * - * Part of the MathJax library. - * See http://www.mathjax.org for details. - * - * Licensed under the Apache License, Version 2.0; - * you may not use this file except in compliance with the License. - * - * http://www.apache.org/licenses/LICENSE-2.0 - */ - -(function(g,k,l){var p="2.1";var f="MathJax_Main",j="MathJax_Main-bold",h="MathJax_Math-italic",m="MathJax_AMS",d="MathJax_Size1",c="MathJax_Size2",b="MathJax_Size3",a="MathJax_Size4";var n="H",e="V",i={load:"extra",dir:n},o={load:"extra",dir:e};g.Augment({FONTDATA:{version:p,TeX_factor:1,baselineskip:1.2,lineH:0.8,lineD:0.2,hasStyleChar:true,FONTS:{MathJax_Main:"Main/Regular/Main.js","MathJax_Main-bold":"Main/Bold/Main.js","MathJax_Main-italic":"Main/Italic/Main.js","MathJax_Math-italic":"Math/Italic/Main.js","MathJax_Math-bold-italic":"Math/BoldItalic/Main.js",MathJax_Caligraphic:"Caligraphic/Regular/Main.js",MathJax_Size1:"Size1/Regular/Main.js",MathJax_Size2:"Size2/Regular/Main.js",MathJax_Size3:"Size3/Regular/Main.js",MathJax_Size4:"Size4/Regular/Main.js",MathJax_AMS:"AMS/Regular/Main.js",MathJax_Fraktur:"Fraktur/Regular/Main.js","MathJax_Fraktur-bold":"Fraktur/Bold/Main.js",MathJax_SansSerif:"SansSerif/Regular/Main.js","MathJax_SansSerif-bold":"SansSerif/Bold/Main.js","MathJax_SansSerif-italic":"SansSerif/Italic/Main.js",MathJax_Script:"Script/Regular/Main.js",MathJax_Typewriter:"Typewriter/Regular/Main.js"},VARIANT:{normal:{fonts:[f,d,m],offsetG:945,variantG:"italic",remap:{913:65,914:66,917:69,918:90,919:72,921:73,922:75,924:77,925:78,927:79,929:80,932:84,935:88,8726:[8726,"-TeX-variant"],8463:[8463,"-TeX-variant"],8242:[39,"sans-serif-italic"],10744:[47,k.VARIANT.ITALIC]}},bold:{fonts:[j,d,m],bold:true,offsetG:945,variantG:"bold-italic",remap:{913:65,914:66,917:69,918:90,919:72,921:73,922:75,924:77,925:78,927:79,929:80,932:84,935:88,10744:[47,"bold-italic"],8602:"\u2190\u0338",8603:"\u2192\u0338",8622:"\u2194\u0338",8653:"\u21D0\u0338",8654:"\u21D4\u0338",8655:"\u21D2\u0338",8708:"\u2203\u0338",8740:"\u2223\u0338",8742:"\u2225\u0338",8769:"\u223C\u0338",8775:"\u2245\u0338",8814:"<\u0338",8815:">\u0338",8816:"\u2264\u0338",8817:"\u2265\u0338",8832:"\u227A\u0338",8833:"\u227B\u0338",8840:"\u2286\u0338",8841:"\u2287\u0338",8876:"\u22A2\u0338",8877:"\u22A8\u0338",8928:"\u227C\u0338",8929:"\u227D\u0338"}},italic:{fonts:[h,"MathJax_Main-italic",f,d,m],italic:true,remap:{913:65,914:66,917:69,918:90,919:72,921:73,922:75,924:77,925:78,927:79,929:80,932:84,935:88}},"bold-italic":{fonts:["MathJax_Math-bold-italic",j,d,m],bold:true,italic:true,remap:{913:65,914:66,917:69,918:90,919:72,921:73,922:75,924:77,925:78,927:79,929:80,932:84,935:88}},"double-struck":{fonts:[m,f]},fraktur:{fonts:["MathJax_Fraktur",f,d,m]},"bold-fraktur":{fonts:["MathJax_Fraktur-bold",j,d,m],bold:true},script:{fonts:["MathJax_Script",f,d,m]},"bold-script":{fonts:["MathJax_Script",j,d,m],bold:true},"sans-serif":{fonts:["MathJax_SansSerif",f,d,m]},"bold-sans-serif":{fonts:["MathJax_SansSerif-bold",j,d,m],bold:true},"sans-serif-italic":{fonts:["MathJax_SansSerif-italic","MathJax_Main-italic",d,m],italic:true},"sans-serif-bold-italic":{fonts:["MathJax_SansSerif-italic","MathJax_Main-italic",d,m],bold:true,italic:true},monospace:{fonts:["MathJax_Typewriter",f,d,m]},"-tex-caligraphic":{fonts:["MathJax_Caligraphic",f],offsetA:65,variantA:"italic"},"-tex-oldstyle":{fonts:["MathJax_Caligraphic",f]},"-tex-mathit":{fonts:["MathJax_Main-italic",h,f,d,m],italic:true,noIC:true,remap:{913:65,914:66,917:69,918:90,919:72,921:73,922:75,924:77,925:78,927:79,929:80,932:84,935:88}},"-TeX-variant":{fonts:[m,f,d],remap:{8808:57356,8809:57357,8816:57361,8817:57358,10887:57360,10888:57359,8740:57350,8742:57351,8840:57366,8841:57368,8842:57370,8843:57371,10955:57367,10956:57369,988:57352,1008:57353,8726:[8726,k.VARIANT.NORMAL],8463:[8463,k.VARIANT.NORMAL]}},"-largeOp":{fonts:[c,d,f]},"-smallOp":{fonts:[d,f]}},RANGES:[{name:"alpha",low:97,high:122,offset:"A",add:32},{name:"number",low:48,high:57,offset:"N"},{name:"greek",low:945,high:1014,offset:"G"}],RULECHAR:8722,REMAP:{8254:713,8400:8636,8401:8640,8406:8592,8417:8596,8428:8641,8429:8637,8430:8592,8431:8594,8432:42,65079:9182,65080:9183,183:8901,697:8242,978:933,8213:8212,8215:95,8226:8729,8260:47,8965:8892,8966:10846,9642:9632,9652:9650,9653:9651,9656:9654,9662:9660,9663:9661,9666:9664,9001:10216,9002:10217,12296:10216,12297:10217,10072:8739,10799:215,9723:9633,9724:9632,8450:[67,k.VARIANT.DOUBLESTRUCK],8459:[72,k.VARIANT.SCRIPT],8460:[72,k.VARIANT.FRAKTUR],8461:[72,k.VARIANT.DOUBLESTRUCK],8462:[104,k.VARIANT.ITALIC],8464:[74,k.VARIANT.SCRIPT],8465:[74,k.VARIANT.FRAKTUR],8466:[76,k.VARIANT.SCRIPT],8469:[78,k.VARIANT.DOUBLESTRUCK],8473:[80,k.VARIANT.DOUBLESTRUCK],8474:[81,k.VARIANT.DOUBLESTRUCK],8475:[82,k.VARIANT.SCRIPT],8476:[82,k.VARIANT.FRAKTUR],8477:[82,k.VARIANT.DOUBLESTRUCK],8484:[90,k.VARIANT.DOUBLESTRUCK],8486:[937,k.VARIANT.NORMAL],8488:[90,k.VARIANT.FRAKTUR],8492:[66,k.VARIANT.SCRIPT],8493:[67,k.VARIANT.FRAKTUR],8496:[69,k.VARIANT.SCRIPT],8497:[70,k.VARIANT.SCRIPT],8499:[77,k.VARIANT.SCRIPT],8775:8774,8988:9484,8989:9488,8990:9492,8991:9496,8708:"\u2203\u0338",8716:"\u220B\u0338",8772:"\u2243\u0338",8777:"\u2248\u0338",8802:"\u2261\u0338",8813:"\u224D\u0338",8820:"\u2272\u0338",8821:"\u2273\u0338",8824:"\u2276\u0338",8825:"\u2277\u0338",8836:"\u2282\u0338",8837:"\u2283\u0338",8930:"\u2291\u0338",8931:"\u2292\u0338",10764:"\u222C\u222C",8243:"\u2032\u2032",8244:"\u2032\u2032\u2032",8246:"\u2035\u2035",8247:"\u2035\u2035\u2035",8279:"\u2032\u2032\u2032\u2032",8411:"...",8412:"...."},REMAPACCENT:{"\u2192":"\u20D7","\u2032":"'","\u2035":"`"},REMAPACCENTUNDER:{},PLANE1MAP:[[119808,119833,65,k.VARIANT.BOLD],[119834,119859,97,k.VARIANT.BOLD],[119860,119885,65,k.VARIANT.ITALIC],[119886,119911,97,k.VARIANT.ITALIC],[119912,119937,65,k.VARIANT.BOLDITALIC],[119938,119963,97,k.VARIANT.BOLDITALIC],[119964,119989,65,k.VARIANT.SCRIPT],[120068,120093,65,k.VARIANT.FRAKTUR],[120094,120119,97,k.VARIANT.FRAKTUR],[120120,120145,65,k.VARIANT.DOUBLESTRUCK],[120172,120197,65,k.VARIANT.BOLDFRAKTUR],[120198,120223,97,k.VARIANT.BOLDFRAKTUR],[120224,120249,65,k.VARIANT.SANSSERIF],[120250,120275,97,k.VARIANT.SANSSERIF],[120276,120301,65,k.VARIANT.BOLDSANSSERIF],[120302,120327,97,k.VARIANT.BOLDSANSSERIF],[120328,120353,65,k.VARIANT.SANSSERIFITALIC],[120354,120379,97,k.VARIANT.SANSSERIFITALIC],[120432,120457,65,k.VARIANT.MONOSPACE],[120458,120483,97,k.VARIANT.MONOSPACE],[120488,120513,913,k.VARIANT.BOLD],[120546,120570,913,k.VARIANT.ITALIC],[120572,120603,945,k.VARIANT.ITALIC],[120604,120628,913,k.VARIANT.BOLDITALIC],[120630,120661,945,k.VARIANT.BOLDITALIC],[120662,120686,913,k.VARIANT.BOLDSANSSERIF],[120720,120744,913,k.VARIANT.SANSSERIFBOLDITALIC],[120782,120791,48,k.VARIANT.BOLD],[120802,120811,48,k.VARIANT.SANSSERIF],[120812,120821,48,k.VARIANT.BOLDSANSSERIF],[120822,120831,48,k.VARIANT.MONOSPACE]],REMAPGREEK:{913:65,914:66,917:69,918:90,919:72,921:73,922:75,924:77,925:78,927:79,929:80,930:920,932:84,935:88,938:8711,970:8706,971:1013,972:977,973:1008,974:981,975:1009,976:982},RemapPlane1:function(t,s){for(var r=0,q=this.PLANE1MAP.length;r T d \u23A6 \u2A00",skew:{84:0.0278,58096:0.0319},32:[0,0,250,0,0],62:[540,40,778,83,694],84:[717,68,545,34,833],100:[694,11,511,101,567],160:[0,0,250,0,0],8899:[750,249,833,55,777],9126:[1155,644,667,0,347],10752:[949,449,1511,56,1454],58096:[720,69,644,38,947],58097:[587,85,894,96,797]}}}})}(function(){var t=g.FONTDATA.FONTS,s=g.config.availableFonts;var r,q=[];if(g.allowWebFonts){for(r in t){if(t[r].family){if(s&&s.length&&g.Font.testFont(t[r])){t[r].available=true;g.Font.loadComplete(t[r])}else{t[r].isWebFont=true;if(g.FontFaceBug){t[r].family=r}q.push(g.Font.fontFace(r))}}}if(!g.config.preloadWebFonts){g.config.preloadWebFonts=[]}g.config.preloadWebFonts.push(f,h,d);if(q.length){g.config.styles["@font-face"]=q}}else{if(s&&s.length){for(r in t){if(t[r].family&&g.Font.testFont(t[r])){t[r].available=true;g.Font.loadComplete(t[r])}}}}})();l.loadComplete(g.fontDir+"/fontdata.js")})(MathJax.OutputJax["HTML-CSS"],MathJax.ElementJax.mml,MathJax.Ajax); - diff --git a/kolibri/plugins/perseus_viewer/static/mathjax/kathjax-config.js b/kolibri/plugins/perseus_viewer/static/mathjax/kathjax-config.js deleted file mode 100644 index 69b6ca4fb45..00000000000 --- a/kolibri/plugins/perseus_viewer/static/mathjax/kathjax-config.js +++ /dev/null @@ -1,153 +0,0 @@ -/* TODO(csilvers): fix these lint errors (http://eslint.org/docs/rules): */ -/* eslint-disable comma-dangle, comma-spacing, eqeqeq, indent, max-len, no-unused-vars, one-var, prefer-template, space-infix-ops */ -/* To fix, remove an entry above, run ka-lint, and fix errors. */ - -MathJax.Hub.Config({ - messageStyle: "none", - skipStartupTypeset: true, - jax: ["input/TeX","output/HTML-CSS"], - extensions: ["tex2jax.js"], - TeX: { - extensions: [ - "AMSmath.js", - "AMSsymbols.js", - "noErrors.js", - "noUndefined.js", - "newcommand.js", - "boldsymbol.js" - ], - Macros: { - RR: "\\mathbb{R}", - blue: "\\color{#6495ED}", - orange: "\\color{#FFA500}", - pink: "\\color{#FF00AF}", - red: "\\color{#DF0030}", - green: "\\color{#28AE7B}", - gray: "\\color{gray}", - purple: "\\color{#9D38BD}", - blueA: "\\color{#CCFAFF}", - blueB: "\\color{#80F6FF}", - blueC: "\\color{#63D9EA}", - blueD: "\\color{#11ACCD}", - blueE: "\\color{#0C7F99}", - tealA: "\\color{#94FFF5}", - tealB: "\\color{#26EDD5}", - tealC: "\\color{#01D1C1}", - tealD: "\\color{#01A995}", - tealE: "\\color{#208170}", - greenA: "\\color{#B6FFB0}", - greenB: "\\color{#8AF281}", - greenC: "\\color{#74CF70}", - greenD: "\\color{#1FAB54}", - greenE: "\\color{#0D923F}", - goldA: "\\color{#FFD0A9}", - goldB: "\\color{#FFBB71}", - goldC: "\\color{#FF9C39}", - goldD: "\\color{#E07D10}", - goldE: "\\color{#A75A05}", - redA: "\\color{#FCA9A9}", - redB: "\\color{#FF8482}", - redC: "\\color{#F9685D}", - redD: "\\color{#E84D39}", - redE: "\\color{#BC2612}", - maroonA: "\\color{#FFBDE0}", - maroonB: "\\color{#FF92C6}", - maroonC: "\\color{#ED5FA6}", - maroonD: "\\color{#CA337C}", - maroonE: "\\color{#9E034E}", - purpleA: "\\color{#DDD7FF}", - purpleB: "\\color{#C6B9FC}", - purpleC: "\\color{#AA87FF}", - purpleD: "\\color{#7854AB}", - purpleE: "\\color{#543B78}", - mintA: "\\color{#F5F9E8}", - mintB: "\\color{#EDF2DF}", - mintC: "\\color{#E0E5CC}", - grayA: "\\color{#F6F7F7}", - grayB: "\\color{#F0F1F2}", - grayC: "\\color{#E3E5E6}", - grayD: "\\color{#D6D8DA}", - grayE: "\\color{#BABEC2}", - grayF: "\\color{#888D93}", - grayG: "\\color{#626569}", - grayH: "\\color{#3B3E40}", - grayI: "\\color{#21242C}", - kaBlue: "\\color{#314453}", - kaGreen: "\\color{#71B307}", - // For rational exponents, we provide \^ instead of ^ which pushes - // the exponent up higher so it's really clear that the fraction - // is an exponent. - "^": ["{}^{^{^{#1}}}", 1] - }, - Augment: { - Definitions: { - macros: { - lrsplit: "LRSplit", - cancel: "Cancel", - lcm: ["NamedOp", 0], - gcf: ["NamedOp", 0] - } - }, - Parse: { - prototype: { - LRSplit: function( name ) { - var num = this.GetArgument( name ), - den = this.GetArgument( name ); - var frac = MathJax.ElementJax.mml.mfrac( MathJax.InputJax.TeX.Parse( '\\strut\\textstyle{'+num+'\\qquad}', this.stack.env ).mml(), - MathJax.InputJax.TeX.Parse( '\\strut\\textstyle{\\qquad '+den+'}', this.stack.env ).mml() ); - frac.numalign = MathJax.ElementJax.mml.ALIGN.LEFT; - frac.denomalign = MathJax.ElementJax.mml.ALIGN.RIGHT; - frac.linethickness = "0em"; - this.Push( frac ); - }, - Cancel: function( name ) { - this.Push( MathJax.ElementJax.mml.menclose( this.ParseArg( name ) ).With({ notation: MathJax.ElementJax.mml.NOTATION.UPDIAGONALSTRIKE }) ); - } - } - } - } - }, - "HTML-CSS": { - scale: 100, - showMathMenu: false, - availableFonts: [ "TeX" ], - imageFont: null - } -}); - -MathJax.Ajax.timeout = 60 * 1000; -MathJax.Ajax.loadError = (function( oldLoadError ) { - return function( file ) { - if (window.Khan) { - Khan.warnMathJaxError(file); - } - // Otherwise will receive unresponsive script error when finally finish loading - MathJax.Ajax.loadComplete = function( file ) { }; - oldLoadError.call( this, file ); - }; -})( MathJax.Ajax.loadError ); - -MathJax.Hub.Register.StartupHook("HTML-CSS Jax - disable web fonts", function() { - if (window.Khan) { - Khan.warnFont(); - } -}); - -// Trying to monkey-patch MathJax.Message.Init to not throw errors -MathJax.Message.Init = (function( oldInit ) { - return function( styles ) { - if ( this.div && this.div.parentNode == null ) { - var div = document.getElementById("MathJax_Message"); - if ( div && div.firstChild == null ) { - var parent = div.parentNode; - if ( parent ) { - parent.removeChild( div ); - } - } - } - - oldInit.call( this, styles ); - }; -})( MathJax.Message.Init ); - -MathJax.Hub.Startup.onload(); From b7a5d7dd9182acabab872fd79119a38c8eee030e Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Thu, 12 Mar 2026 20:36:21 -0700 Subject: [PATCH 03/10] Import Perseus CSS from packages with rem-to-px conversion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, buildPerseus.js copied CSS files from Perseus and math-input into frontend/dist/, rewriting font URLs along the way. Now we import CSS directly from the packages in PerseusRendererIndex and handle the KA CDN font URL rewriting with a webpack pre-loader (rewritePerseusUrls.js) configured in buildConfig.js. This removes the vendored frontend/dist/ directory (CSS, fonts, README) and simplifies buildPerseus.js to only copy MathJax fonts and extract translation messages. Perseus v75 and its Wonder Blocks design tokens assume a 62.5% root font-size (1rem = 10px), which is the convention on khanacademy.org. Kolibri uses the browser default (1rem = 16px), so all rem-based sizing renders 1.6x too large. A second webpack pre-loader (rewritePerseusRem.js) converts rem to px at build time using the 10px base, applied to Perseus, Wonder Blocks tokens, and math-input CSS. The full Eric Meyer CSS reset is replaced with a surgical reset of just fieldset, ol/ul, and table — the full reset was too aggressive for Perseus v75's Aphrodite-based inline-block layout. Co-Authored-By: Claude Opus 4.6 --- kolibri/plugins/perseus_viewer/buildConfig.js | 80 +- .../plugins/perseus_viewer/buildPerseus.js | 41 - .../perseus_viewer/frontend/dist/README.md | 6 - .../dist/fonts/MathJax_Main-Regular.woff | 3 - .../frontend/dist/fonts/Symbola.woff | 3 - .../perseus_viewer/frontend/dist/index.css | 4547 ----------------- .../frontend/dist/math-input.css | 620 --- .../frontend/views/PerseusRendererIndex.vue | 172 +- .../perseus_viewer/rewritePerseusRem.js | 22 + .../perseus_viewer/rewritePerseusUrls.js | 9 + 10 files changed, 156 insertions(+), 5347 deletions(-) delete mode 100644 kolibri/plugins/perseus_viewer/frontend/dist/README.md delete mode 100644 kolibri/plugins/perseus_viewer/frontend/dist/fonts/MathJax_Main-Regular.woff delete mode 100644 kolibri/plugins/perseus_viewer/frontend/dist/fonts/Symbola.woff delete mode 100644 kolibri/plugins/perseus_viewer/frontend/dist/index.css delete mode 100644 kolibri/plugins/perseus_viewer/frontend/dist/math-input.css create mode 100644 kolibri/plugins/perseus_viewer/rewritePerseusRem.js create mode 100644 kolibri/plugins/perseus_viewer/rewritePerseusUrls.js diff --git a/kolibri/plugins/perseus_viewer/buildConfig.js b/kolibri/plugins/perseus_viewer/buildConfig.js index 1607cf6de99..6fc543de6ce 100644 --- a/kolibri/plugins/perseus_viewer/buildConfig.js +++ b/kolibri/plugins/perseus_viewer/buildConfig.js @@ -2,16 +2,94 @@ * This file defines additional webpack configuration for this plugin. * It will be bundled into the webpack configuration at build time. */ +var fs = require('fs'); +var path = require('path'); var webpack = require('webpack'); +// mathjax-full is a transitive dependency of @khanacademy/mathjax-renderer +// and lives as a sibling in pnpm's virtual store. +var mathjaxRendererDir = path.dirname( + require.resolve('@khanacademy/mathjax-renderer/package.json'), +); +var mathjaxFontsSource = path.join( + mathjaxRendererDir, + '../../mathjax-full/ts/output/chtml/fonts/tex-woff-v2', +); +var mathjaxFontsTarget = path.resolve(__dirname, 'static/assets/mathjax/fonts'); + +// Copy MathJax fonts into the plugin's static assets directory before each +// build. Django serves them at runtime via urls.static('assets/mathjax/fonts'), +// and MathJaxRenderer fetches them by bare filename, so they must keep their +// original names. The target directory is gitignored. +function copyMathJaxFonts() { + fs.mkdirSync(mathjaxFontsTarget, { recursive: true }); + for (const file of fs.readdirSync(mathjaxFontsSource)) { + if (!file.endsWith('.woff')) continue; + fs.copyFileSync( + path.join(mathjaxFontsSource, file), + path.join(mathjaxFontsTarget, file), + ); + } +} + +class CopyMathJaxFontsPlugin { + apply(compiler) { + const run = (_, cb) => { + try { + copyMathJaxFonts(); + cb(); + } catch (err) { + cb(err); + } + }; + compiler.hooks.beforeRun.tapAsync('CopyMathJaxFontsPlugin', run); + compiler.hooks.watchRun.tapAsync('CopyMathJaxFontsPlugin', run); + } +} + module.exports = { bundle_id: 'main', webpack_config: { entry: 'frontend/module.js', + resolve: { + alias: { + // Alias for MathJax fonts so the Perseus CDN URL rewriter can + // reference them via ~mathjax-fonts/... in CSS. + 'mathjax-fonts': mathjaxFontsSource, + }, + }, + module: { + rules: [ + { + // Rewrite the KA CDN font URL in Perseus CSS to our local copy. + // Runs as a pre-loader before css-loader processes url() refs. + test: /@khanacademy[/\\]perseus[/\\]dist[/\\]index\.css$/, + enforce: 'pre', + use: [ + path.resolve(__dirname, 'rewritePerseusUrls.js'), + path.resolve(__dirname, 'rewritePerseusRem.js'), + ], + }, + { + // Convert rem→px in Wonder Blocks design tokens CSS. + // These tokens assume 1rem = 10px (KA's root font-size convention). + test: /@khanacademy[/\\]wonder-blocks-tokens[/\\].*\.css$/, + enforce: 'pre', + loader: path.resolve(__dirname, 'rewritePerseusRem.js'), + }, + { + // Convert rem→px in math-input CSS (same KA rem convention). + test: /@khanacademy[/\\]math-input[/\\].*\.css$/, + enforce: 'pre', + loader: path.resolve(__dirname, 'rewritePerseusRem.js'), + }, + ], + }, plugins: [ + new CopyMathJaxFontsPlugin(), new webpack.NormalModuleReplacementPlugin( /react\/jsx-runtime/, - require.resolve('react/jsx-runtime.js'), + require.resolve('react/jsx-runtime'), ), ], }, diff --git a/kolibri/plugins/perseus_viewer/buildPerseus.js b/kolibri/plugins/perseus_viewer/buildPerseus.js index 6ae3c79eb6c..8a7fa57de34 100644 --- a/kolibri/plugins/perseus_viewer/buildPerseus.js +++ b/kolibri/plugins/perseus_viewer/buildPerseus.js @@ -1,44 +1,3 @@ -/* eslint-disable import-x/no-commonjs, import-x/no-amd, import-x/no-import-module-exports */ -const fs = require('fs'); -const path = require('path'); const extractPerseusMessages = require('./extractPerseusMessages'); -const target = path.resolve(__dirname, './frontend/dist'); -// A regex for detecting paths inside `url` in CSS, paths can either be quoted or unquoted. -const cssPathRegex = /(url\(['"]?)([^"')]+)?(['"]?\),? ?)/g; -const cssNonWoffRegex = /, (url\(['"]?)([^"')]+)?(['"]?\),? ?) format\((?!['"]woff['"])['"][a-z0-9]+['"]\)/g; -// These are the css files that we are modifying to remap static assets. -const cssFiles = [ - [ - path.join(path.dirname(require.resolve('@khanacademy/perseus')), 'index.css'), - path.join(target, 'index.css'), - ], - [ - path.join(path.dirname(require.resolve('@khanacademy/math-input')), 'index.css'), - path.join(target, 'math-input.css'), - ], -]; - -for (const [indexCssFile, targetCssLocation] of cssFiles) { - console.log('Copying file and editing references for: ', indexCssFile); - const cssFileContents = fs.readFileSync(indexCssFile, { encoding: 'utf-8' }); - const modifiedCssContents = cssFileContents.replace(cssPathRegex, function(match, p1, p2, p3) { - // Special case for MathJax font loaded from KA CDN - if (p2 === 'https://cdn.kastatic.org/fonts/mathjax/MathJax_Main-Regular.woff') { - return `${p1}fonts/MathJax_Main-Regular.woff${p3}`; - } - // Make absolute paths relative - const absolute = p2.startsWith('/'); - const newUrl = absolute ? p2.slice(1) : p2; - if (newUrl) { - // If so, replace the instance with the new URL. - return `${p1}${newUrl}${p3}`; - } - // Otherwise just return empty string so that we remove the unfound file from the CSS. - return ''; - }).replace(cssNonWoffRegex, '').replace(/\s+src: url\(fonts\/Symbola\.eot\);/, ''); - fs.writeFileSync(targetCssLocation, modifiedCssContents, { encoding: 'utf-8' }); -} - -// Now that the file has been built, we can extract all the perseus messages. extractPerseusMessages(); diff --git a/kolibri/plugins/perseus_viewer/frontend/dist/README.md b/kolibri/plugins/perseus_viewer/frontend/dist/README.md deleted file mode 100644 index 1eaf432afb1..00000000000 --- a/kolibri/plugins/perseus_viewer/frontend/dist/README.md +++ /dev/null @@ -1,6 +0,0 @@ -The files in this directory are generated using the buildPerseus.js script inside this plugin. -They should be regenerated using the same command in the unlikely event that Perseus ever needs -to be updated. -The script is run using the following command: pnpm --filter kolibri-perseus-viewer run build-perseus. -This will automatically pull files from Perseus and make appropriate edits, -and then copy and build relevant files from there into the static and assets/dist folders in this plugin. diff --git a/kolibri/plugins/perseus_viewer/frontend/dist/fonts/MathJax_Main-Regular.woff b/kolibri/plugins/perseus_viewer/frontend/dist/fonts/MathJax_Main-Regular.woff deleted file mode 100644 index 55b46265cc9..00000000000 --- a/kolibri/plugins/perseus_viewer/frontend/dist/fonts/MathJax_Main-Regular.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:1cb1c39ea642f26a4dfed230b4aea1c3c218689421f6e9c0a7c1811693c4fa07 -size 34160 diff --git a/kolibri/plugins/perseus_viewer/frontend/dist/fonts/Symbola.woff b/kolibri/plugins/perseus_viewer/frontend/dist/fonts/Symbola.woff deleted file mode 100644 index ddb768b348f..00000000000 --- a/kolibri/plugins/perseus_viewer/frontend/dist/fonts/Symbola.woff +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:dab128b179e963c4e57c82d98ce0de6525bfeac6a651270820d3a2ad2119b72d -size 467208 diff --git a/kolibri/plugins/perseus_viewer/frontend/dist/index.css b/kolibri/plugins/perseus_viewer/frontend/dist/index.css deleted file mode 100644 index b09dee73560..00000000000 --- a/kolibri/plugins/perseus_viewer/frontend/dist/index.css +++ /dev/null @@ -1,4547 +0,0 @@ -.exercise, -.vars, -#next { - display: none; -} -p.question { - font-weight: bold; -} -var { - font-style: normal; -} - -.hint.last-hint { - .paragraph { - font-weight: bold; - } -} - -.hint_blue { - color: #6495ed; -} -.hint_orange { - color: #ffa500; -} -.hint_pink { - color: #ff00af; -} -.hint_red { - color: #df0030; -} -.hint_green { - color: #28ae7b; -} -.hint_gray { - color: gray; -} -.hint_purple { - color: #9d38bd; -} - -div.subhint { - border: 1px solid #aaaaaa; - background: #f9f9f9; - display: none; - border-radius: 4px; - margin-left: 20px; - margin-right: 20px; - padding: 10px; -} - -a.show-subhint { - font-size: 12px; - font-style: italic; - background-color: #fdfdfd; -} - -a.show-definition { - background-color: #fdfdfd; -} - -div.definition { - position: absolute; - border: 1px solid #aaaaaa; - background: #f9f9f9; - display: none; - border-radius: 4px; - margin-left: 20px; - margin-right: 20px; - padding: 10px; - z-index: 1000; -} - -.solutionarea ul { - list-style: none; -} -.solutionarea li { - padding: 7px 0; -} -.solutionarea li label { - display: block; -} -.solutionarea li input[type="radio"] { - float: left; - margin-top: 4px; -} -.solutionarea li .value { - display: block; - min-height: 22px; - margin-left: 18px; -} - -#extras li { - display: inline; -} -#extras li:before { - content: "| "; -} -#extras li:first-child:before { - content: ""; -} - -#scratchpad-show { - position: relative; - z-index: 1; -} - -#answer_area #check-answer-results { - overflow: hidden; - margin: 5px 0; -} -#answer_area #check-answer-results .check-answer-message { - font-size: 12px; - line-height: 20px; - margin: 0; -} -#sad, -#happy { - float: left; - margin: 0 6px 4px 0; -} - -.examples { - color: #777; - margin-left: 20px; - list-style-type: disc; -} -.examples li { - margin: 5px 0; -} - -#problemarea { - font-size: 14px; - position: relative; - float: left; - padding-bottom: 38px; -} - -#solution { - font-size: 14px; -} -#solution label { - display: block; - white-space: nowrap; -} - -#tester-info { - border: 1px solid #aaa; - background: #f0f0f0; - padding: 10px; - margin: 10px 0; -} -#debug var { - font: - 14px Menlo, - Courier, - monospace; - word-wrap: break-word; -} - -code { - font-family: Courier, monospace; -} - -pre { - background-color: #f0f1f2; - border-radius: 4px; - color: #21242c; - font-size: 18px; - padding: 16px; - white-space: pre; - overflow: auto; -} - -table.limit { - margin: 5px; -} -table.limit th { - font-weight: bold; - text-align: center; -} -table.limit td { - border: 1px solid #aaa; -} -table.limit th, -table.limit td { - padding: 5px; -} -table.limit th:first-child { - text-align: right; -} - -.solutionarea input[type="text"], -.solutionarea input[type="number"] { - width: 80px; -} -.solutionarea .short20 input[type="text"], -.solutionarea .short20 input[type="number"] { - width: 20px; -} -.solutionarea .short25 input[type="text"], -.solutionarea .short25 input[type="number"] { - width: 25px; -} -.solutionarea .short28 input[type="text"], -.solutionarea .short28 input[type="number"] { - width: 28px; -} -.solutionarea .short30 input[type="text"], -.solutionarea .short30 input[type="number"] { - width: 30px; -} -.solutionarea .short32 input[type="text"], -.solutionarea .short32 input[type="number"] { - width: 32px; -} -.solutionarea .short35 input[type="text"], -.solutionarea .short35 input[type="number"] { - width: 35px; -} -.solutionarea .short40 input[type="text"], -.solutionarea .short40 input[type="number"] { - width: 40px; -} -.solutionarea .short50 input[type="text"], -.solutionarea .short50 input[type="number"] { - width: 50px; -} -#readonly { - display: none; -} - -.radical .surd { - font: 150% Arial; - padding: 0 0 0 5px; -} -.radical .overline { - border-top: 1px solid #000; - padding: 6px 1px 0 3px; - margin-left: -1px; -} -.solutionarea .radical input[type="text"], -.solutionarea .radical input[type="number"] { - width: 40px; -} - -body.debug .graphie { - outline: 1px dashed #fdd; -} -.graphie svg { - position: absolute; - top: 0; - left: 0; -} - -#scratchpad { - display: none; - margin: 0 10px; - overflow: hidden; - padding-bottom: 40px; -} -#scratchpad div { - box-sizing: border-box; - border: 1px solid #ccc; - height: 100%; - position: absolute; - width: 100%; - z-index: 1; -} - -#scratchpad-not-available { - display: none; -} -#extras .report-issue-link { - float: right; -} - -#tester-info.info-box { - background: #f2e4bf; -} -#tester-info .box { - border: 1px solid black; - padding: 2px 4px; - margin-left: 5px; -} -#tester-info .group-box { - border: 1px solid #aaa; - padding: 6px 4px 6px 0px; - margin-left: 2px; -} - -#browserwarning { - background: white; - margin: 0 1px; - padding: 18px; - font-size: 120%; - text-align: center; -} - -#answer_area .answer-buttons input.simple-button, -#answer_area input.simple-button.full-width { - width: 100%; -} -#answer_area #answercontent { - position: relative; - z-index: 2; -} /* above-scratchpad */ -#answer_area .hint-box { - position: relative; - z-index: 1; -} - -#problemarea a:link, -#problemarea input, -#problemarea label, /* HACK(aria): for radios */ -#problemarea select { - /* for dropdowns */ - position: relative; - z-index: 3; /* interactive-content */ -} - -#answer_area .calculator { - width: 181px; - margin: 0 auto; -} - -.calculator-angle-mode .selected-anglemode { - color: #050505; -} - -.calculator-angle-mode .unselected-anglemode { - color: #bbbbbb; -} - -#answer_area .calculator .history { - font: - 14px/1.5 Menlo, - Monaco, - Courier, - monospace; - margin: 0 0 10px; - width: 183px; - - background-color: white; - border-radius: 5px; -} - -#answer_area .calculator .history #calc-output-content { - position: absolute; - bottom: 0px; - width: 100%; - overflow-y: scroll; - overflow-x: hidden; - max-height: 80px; -} - -#answer_area .calculator .history #calc-output { - height: 80px; - text-align: left; - overflow-y: hidden; - overflow-x: hidden; - position: relative; -} - -#answer_area .calculator .history .output { - text-align: right; - margin-right: 3px; -} - -#answer_area .calculator .history input { - box-sizing: border-box; - display: block; - font: inherit; - margin: 5px 3px 3px; - width: 98%; - padding-left: 25px; - padding-right: 8px; - text-align: right; - border: none; - outline-width: 0; -} - -#answer_area .calculator .history .input { - position: relative; -} - -#answer_area .calculator .history .input-history { - position: relative; - margin-left: 3px; -} - -#answer_area .calculator .history .status a { - position: absolute; - font: - 10px/1.5 Menlo, - Monaco, - Courier, - monospace; - color: #999; - text-decoration: none; - line-height: 9px; - height: 19px; - top: 5px; - left: 6px; -} - -#answer_area .calculator .keypad .calc-row { - margin: 5px 0; -} - -#answer_area .calculator .keypad .calc-row a { - background: #ccc; - border-radius: 2px; - color: #000; - display: inline-block; - margin: 0 5px 0 0; - text-align: center; - text-decoration: none; - width: 31px; -} - -#answer_area .calculator .keypad .calc-row a:hover { - background: #bbb; -} - -#answer_area .calculator .keypad .calc-row a:active { - background: #aaa; -} - -#answer_area .calculator .keypad .calc-row a.dark { - background: #aaa; -} - -#answer_area .calculator .keypad .calc-row a.dark:hover { - background: #999; -} - -#answer_area .calculator .keypad .calc-row a.dark:active { - background: #888; -} - -#answer_area .calculator .keypad a sup { - vertical-align: super; - font-size: 80%; - line-height: 0; -} - -#answer_area .calculator .keypad a.wide { - width: 67px; -} - -#solutionarea { - min-height: 35px; - padding: 10px; - margin: 0 -10px; - border-bottom: 1px solid #c3c3c3; - overflow: visible; -} - -.workarea #solutionarea { - border-bottom: 0; - padding-bottom: 0; - padding-top: 0; -} - -#answer_area .answer-buttons { - margin: 0 -10px; - padding: 10px 10px 0; - position: relative; -} - -#show-prereqs-button { - margin-top: 15px; -} - -#positive-reinforcement img { - width: 28px; - position: absolute; - top: 7px; - left: 5px; - cursor: pointer; -} - -#answer_area input.simple-button[disabled="disabled"] { - opacity: 0.5; - filter: alpha(opacity = 50); - cursor: default; -} -#answer_area input.simple-button[disabled="disabled"]:hover { - color: #fff !important; -} -#answer_area input.simple-button.orange[disabled="disabled"]:hover { - border-color: #bf4f04 !important; - border-bottom-color: #803503 !important; -} -#answer_area input.simple-button.green[disabled="disabled"]:hover { - border-color: #76a005 !important; - border-bottom-color: #557303 !important; -} - -.simple-button.disabled { - opacity: 0.5; - filter: alpha(opacity = 50); - cursor: default; -} - -#hint-remainder { - color: #777; -} - -#footer .simple-button, -.info-box .simple-button { - padding: 3px 10px; - top: -1px; -} -.info-box .simple-button { - top: 0; -} - -#issue #issue-status.error { - font-weight: bold; - color: #a21; - font-size: 1.2em; -} -#issue-link { - font-style: italic; -} -#issue .issue-form input[type="text"] { - display: block; - width: 98%; -} -#issue .issue-form textarea { - display: block; - width: 98%; - height: 100px; -} -#issue-cancel { - float: right; -} -#issue fieldset { - list-style: none; - border: 1px solid rgba(0, 0, 0, 0.3); - padding-left: 10px; - border-radius: 5px; - line-height: 22px; - margin-bottom: 3px; - min-inline-size: auto; -} -#issue fieldset legend { - padding-left: 5px; - padding-right: 5px; -} -#issue fieldset label { - display: inline; -} -#issue fieldset li { - margin-top: 0px; - margin-bottom: 0px; -} - -var, -div.graphie { - white-space: pre; - /** - * Graphie didn't have a fixed font-size and was just using - * the surrounding font-size. However some labels are banking on - * specific dimensions, so we need to lock it to a specific size. - */ - font-size: 14px; -} - -#spinner { - position: relative; - top: 4px; - left: 4px; -} -#issue-spinner { - position: relative; - top: 3px; -} - -.exp input { - vertical-align: super; - font-size: 9px; - height: 11px; -} - -.correct-activity { - background-color: #69bb00; - text-shadow: 0 -1px 0 #557303; -} - -.incorrect-activity { - background-color: #e12c2d; - text-shadow: 0 -1px 0 #921118; -} - -.hint-activity { - background-color: #f19726; - text-shadow: 0 -1px 0 #b55c00; -} - -.user-activity { - margin: 8px; - padding: 2px 5px; - border: 1px solid #999; - border-radius: 4px; - float: left; - cursor: pointer; - color: white; -} - -.user-activity input { - cursor: pointer; -} - -div.timeline-time { - float: left; - padding-top: 10px; -} - -div.timeline-time:before { - padding: 3px; - content: "~"; -} - -div.timeline-time:after { - padding: 3px; - content: "~"; -} - -div.timeline-total { - border-top: 1px solid #999; -} - -#timelinecontainer { - border: 1px solid #c6d1ad; - border-top: 0px; - position: relative; -} - -#timelinecontainer:before, -#timelinecontainer:after { - content: ""; - display: table; -} - -#timelinecontainer:after { - clear: both; -} - -#timelinecontainer { - zoom: 1; -} - -#timeline { - overflow: hidden; - position: absolute; - left: 265px; - right: 225px; - border-left: 1px solid #c6d1ad; - border-right: 1px solid #c6d1ad; -} - -#timeline-events { - width: 10000px; -} - -/* Allow the timeline to scroll all the way to the end with a little margin */ -#timeline-events:after, -#timeline-events:before { - content: ""; - display: block; - width: 1px; - height: 1px; - float: left; -} - -#timeline p { - margin: 0; -} - -#previous-problem { - margin: 5px; - cursor: pointer; - float: left; - width: 100px; -} - -#next-problem { - margin: 5px; - cursor: pointer; - float: right; - width: 80px; -} - -.user-activity.activated { - border: 2px solid #888; -} - -/* Version of the site used by Khan/exercise-browser for the iframe preview */ - -html.exercise-browser { - overflow-x: hidden; - overflow-y: hidden; -} - -.exercise-browser body { - min-width: 0; - width: 790px; - overflow-x: hidden; - overflow-y: auto; -} - -.exercise-browser header, -.exercise-browser footer, -.exercise-browser .topic-exercise-badge, -.exercise-browser #extras, -.exercise-browser .exercises-stack, -.exercise-browser .related-video-box { - display: none !important; -} - -.exercise-browser #outer-wrapper, -.exercise-browser #page-container, -.exercise-browser #page-container-inner { - background: #ffffff; -} - -.exercise-browser article { - border: none; -} - -.exercise-browser #container.single-exercise { - min-width: 0; -} - -.exercise-browser #page-container { - width: 790px; - min-width: 0; -} - -.exercise-browser .problem-types { - margin-right: 20px; -} - -.exercise-browser .problem-type-link { - display: block; - margin-bottom: 5px; - padding: 6px; - background: #36a6c4; - border-radius: 5px; - border: 1px solid #7fc8e6; - color: white; -} - -.exercise-browser .problem-type-link:hover { - color: white; - background: #1c758c; - text-decoration: none; -} - -.exercise-browser .problem-type-link:visited { - color: #c2eaff; - text-decoration: none; -} - -.lite header, -.lite footer, -.lite #extras, -.lite .exercise-badge, -.lite .hint-box, -.lite .related-video-box { - display: none !important; -} - -.lite #page-container, -.lite #container { - min-width: 0; - border-width: 0; -} - -.lite #streak-bar-container { - position: absolute; - top: 10px; - left: 15px; -} - -.lite #answercontent { - position: absolute; - right: 5px; - top: 12px; - padding: 0px; - border: none; - box-shadow: none; - overflow: visible; -} - -.lite #answercontent > * { - float: left; - margin-right: 10px; -} - -/* TODO: Find a better way to display these. */ -.lite #spinner, -.lite #check-answer-results { - display: none !important; -} - -.lite #answercontent .info-box-header { - font-size: 16px; -} - -.lite #answercontent .examples { - display: none !important; -} - -.lite .ui-icon { - width: 18px; - height: 18px; -} - -.lite h1 { - font-family: inherit; -} - -.lite #solutionarea input { - font-size: 14px; -} - -.lite #answercontent .simple-button { - margin-top: -5px; - color: #fff !important; - font-size: 14px; - text-shadow: none; -} - -#warning-bar { - width: 100%; - height: 35px; - text-align: center; - font-size: 15px; - display: none; - padding: 6px 0; - position: relative; - z-index: 2; -} - -.bibliotron-exercise #warning-bar { - height: auto; -} - -#warning-bar span { - position: relative; - top: 5px; -} - -.bibliotron-exercise #warning-bar span, -.bibliotron-exercise #warning-bar #warning-bar-close { - top: auto; -} - -#warning-bar-close { - top: 5px; - float: right; - right: 20px; - position: relative; -} - -#warning-bar-content a { - text-decoration: underline; -} - -#warning-bar.error { - background-color: #d61914; - color: #eee; -} - -#warning-bar.error a { - color: #eee; -} - -#warning-bar.warning { - background-color: #f5e722; - color: #222; -} - -#warning-bar.warning a { - color: #222; -} - -/* Faux table styles that allow revealing data row by row in hints */ - -.fake_header > span { - font-weight: bold; - display: inline-block; - padding-left: 10px; - border-bottom: 2px solid #cccccc; -} - -.fake_row > span { - display: inline-block; - padding-top: 5px; - padding-bottom: 5px; - padding-left: 10px; - border-bottom: 1px solid #ddd; -} - -.fake_row:nth-child(n) > span { - border-bottom: none; -} - -.fake_row:nth-child(2n + 1) > span { - background-color: #f3f3f3; -} - -#timelinecontainer .simple-button { - -webkit-user-select: none; - user-select: none; - white-space: nowrap; -} - -.thumbnail a { - outline: none; - color: #fff; -} - -.thumbnail a:hover { - text-decoration: none; -} - -.thumbnail div.thumb { - background-size: 200px 150px; - background-position: no-repeat top left; - background-position: 0px -25px; - background-position-y: -80px\9; - background-position-x: -100px\9; - width: 200px; - height: 100px; - border: 1px solid #aaa; - box-shadow: 0 0 3px #ccc; - margin-left: 14px; /* to line up with other titles */ - margin-bottom: 8px; - margin-top: 4px; -} - -.thumbnail div.thumbnail_label { - padding: 5px 10px; - max-width: 180px; - margin: 0; - text-align: left; - margin-top: 68px; - background: #333; - background-color: rgba(30, 30, 30, 0.9); - color: #fff; - overflow: hidden; - text-overflow: ellipsis; -} - -.thumbnail div.thumbnail_desc { - width: 180px; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -.thumbnail div.thumbnail_teaser { - height: 0px; - overflow: hidden; - text-overflow: ellipsis; - white-space: normal; - text-decoration: none; - font-size: 11px; -} - -.sortable { - background: #eee; - border: 1px solid #ccc; - border-bottom: 1px solid #aaa; - padding: 13px; - position: relative; - z-index: 2; - - box-shadow: 0 1px 2px #ccc; -} - -.sortable > ul { - list-style-type: none; -} - -.sortable > ul > li { - background-color: #fff; - border: 1px solid #b9b9b9; - border-bottom-color: #939393; - border-radius: 4px; - cursor: pointer; - margin-right: 4px; - min-width: 65px; - height: 65px; - text-align: center; - font-size: 1.2em; - float: left; - -webkit-user-select: none; - user-select: none; -} - -.sortable > ul > li.placeholder { - background: #ddd; - border: 0; - border: 1px solid #ccc; - float: left; -} - -.sortable code { - line-height: 65px; -} - -.sortable > ul > li:hover { - border-color: #ffa500; - box-shadow: 0 0 4px #c56f00; -} - -.sortable > ul > li:active, -.sortable > ul > li.dragging { - background-color: #ffedcd; - opacity: 0.8; - filter: alpha(opacity = 80); -} - -.box-whisker-sortable > .sortable { - background: #f8f8f8; - border: 0; - border-bottom: 0; - box-shadow: 0 0 0; - padding-right: 0; -} - -.box-whisker-sortable > .sortable > ul > li { - width: 28px; - min-width: 28px; - height: 28px; - margin-right: 2px; - font-size: 1em; - border: 1px solid #ddd; -} -.box-whisker-sortable > .sortable code { - line-height: 32px; -} - -#problemarea div#congruent-triangles { - outline-color: #999; - outline-style: dashed; - outline-width: 1px; -} - -/* Video hints */ - -.video-hint { - margin-bottom: 20px; -} - -/* Question-based hints */ - -.qhint { - border: 1px solid #aaaaaa; - background: #f9f9f9; - border-radius: 4px; - margin-right: 20px; - margin-bottom: 20px; - padding: 10px; -} - -.qhint-answer { - display: none; -} - -.qhint-feedback { - font-weight: bold; - color: #6495ed; -} - -.qhint-feedback.correct { - color: #28ae7b; -} - -.qhint-feedback.incorrect { - color: #ce4444; -} - -/*Worked example hints*/ -.example-hint { - margin-bottom: 15px; -} - -/* Fancy matrix input - goes along with matrix-input.js */ -.matrix-input { - padding: 15px; - margin-top: 10px; - background-color: #eee; - width: 165px; -} - -.solutionarea .matrix-row { - float: left; /* contain inner floats */ - clear: both; -} - -.solutionarea .matrix-row .sol { - margin: 0; - float: left; -} - -.solutionarea .matrix-row .sol input[type="text"], -.solutionarea .matrix-row .sol input[type="number"] { - width: 45px; - height: 30px; - border: none; - margin: 3px; - padding: 1px; -} - -.matrix-input .matrix-bracket { - width: 6px; - position: absolute; - border-top: 2px solid #888; - border-bottom: 2px solid #888; - /* margin-top must have the same magnitude - as the border widths */ - margin-top: -2px; -} - -.matrix-input .matrix-bracket.bracket-left { - border-left: 2px solid #888; - /* margin-left for the left bracket must have - the same magnitude as the border widths */ - margin-left: -2px; -} - -.matrix-input .matrix-bracket.bracket-right { - border-right: 2px solid #888; -} - -.matrix-input:after { - content: ""; - display: block; - clear: both; - visibility: hidden; - overflow: hidden; - height: 0; -} - -table.periodic-table td.element { - border: 1px solid; - min-width: 37px; - min-height: 37px; - text-align: center; - line-height: 1.2; -} - -table.periodic-table td.element div.atomic-num { -} -table.periodic-table td.element div.symbol { - font-weight: bold; -} -table.periodic-table td.element div.weight { - font-size: 10px; -} - -.plugging_in_values > span { - width: 80px; -} -table.plugging_in_values_hint td { - padding-left: 40px; -} - -span.hover-hint { - color: #005987; - border-bottom: 1px dashed #005987; -} -span.hover-hint:hover { - color: #678d00; - border-bottom: 1px dashed #678d00; - cursor: pointer; -} - -.vis-deriv-hint-graph { - display: block; - float: left; - margin-right: 50px; -} - -#problemarea .quarter-graph { - float: left; - margin-bottom: 45px; - margin-right: 45px; -} - -#problemarea .estimation span { - width: 100px; -} -#problemarea .estimation span:first-child { - width: 50px; -} - -#solutionarea table.rational-exp td { - text-align: center; - vertical-align: middle; - padding-left: 4px; - padding-right: 4px; -} -#solutionarea table.rational-exp td.soln-top { - padding-bottom: 1px; -} -#solutionarea table.rational-exp td.soln-bot { - padding-top: 1px; - border-top: 1px solid black; -} - -#solutionarea table.rational-exp td.soln-dom { - padding-left: 3px; -} - -#problemarea div.z-score-table > span { - width: 32px; - font-size: 11px; - padding: 5px; -} - -#problemarea div.z-score-table > span:first-child { - font-weight: bold; - width: 22px; - border-right: 2px solid #cccccc; -} - -#problemarea div.focus-information { - padding-bottom: 12px; - height: 70px; - clear: both; -} - -#problemarea div.focus-information div { - display: block; -} -#problemarea div.focus-information-column-left { - float: left; - width: 30%; -} -#problemarea div.focus-information-column-right { - float: right; - width: 55%; -} - -#problemarea .reading-tables > span { - text-align: center; - width: 65px; -} -#problemarea .reading-tables > span:first-child { - text-align: left; - width: 100px; -} - -#problemarea .reading > span { - width: 32px; - font-size: 11px; - padding: 5px; -} - -#problemarea .reading.fake_header > span { - text-align: center; -} - -#problemarea .reading > span:first-child { - font-weight: bold; - width: 22px; - border-right: 2px solid #cccccc; -} - -#problemarea .problem .graph-caption { - display: block; - margin-top: 10px; - margin-bottom: 30px; -} - -#solutionarea .intuition-equation td { - text-align: right; - padding-left: 5px; -} - -.question li span.sort-key { - visibility: hidden; - position: absolute; -} - -.problem table.problem-equation td { - padding-left: 3px; - padding-right: 3px; - text-align: center; -} -.problem table.problem-equation input { - width: 25px; - margin-right: 5px; - vertical-align: super; -} - -#coin-flip-sequence-charts { - height: 324px; - position: relative; - width: 496px; -} - -#coin-flip-sequence-charts .graphie { - height: 324px; - width: 496px; - position: absolute !important; -} - -#coin-flip-sequence-chart-1 { - left: 496px; -} - -#coin-flip-sequence-chart-2 { - left: 992px; -} - -#coin-flip-sequence-chart-3 { - left: 1488px; -} - -.view-coin-flip-sequence-patterns { - margin-top: 12px; -} - -.view-coin-flip-sequence-patterns span { - color: #ccc; -} - -.view-coin-flip-sequence-patterns a { - margin: 0 5px; -} - -.view-coin-flip-sequence-patterns a.selected { - font-weight: bold; - color: #444 !important; - cursor: default; - text-decoration: none !important; -} - -.coin-flip-sequence-heads { - background: #a6a6a6; - color: #333; -} - -.coin-flip-sequence-heads, -.coin-flip-sequence-tails { - border-right: 1px solid #888; - float: left; - font-family: Verdana, sans-serif; - font-size: 14px; - margin-bottom: 5px; - padding: 0 2px; - text-align: center; - width: 16px; -} - -.coin-flip-sequence-tails { - background: #595959; - color: #ccc; -} - -body.debug span.error { - font-weight: bold; - color: #fff; - background: #f00; - font-size: 1.4em; - padding: 0.2em; - text-decoration: line-through; -} - -/* Work around bug added in https://khanacademy.kilnhg.com/Review/K109777 */ -.new-header .MathJax .math { - color: inherit; -} - -.solutionarea .info-box .mini-button { - margin: 0px 10px 0px 0px; - padding: 0px 5px; - width: 25px; - height: 18px; -} - -.solutionarea #number-label { - clear: both; - margin: 0px 0px; - padding: 14px 0px 0px 0px; -} - -/* Expression/equation input (see "expression" answer type) */ -.solutionarea .expression { - box-sizing: border-box; - display: block; - max-width: 240px; - width: 100%; -} - -.solutionarea .expression > .output { - background: #f2f2f2; - display: inline-block; - border-radius: 5px; - padding-top: 10px; - margin: 10px 0; - /* HACK(aria) above scratchpad so that users have somewhere to - * "click off of" to hide the expression dialog. - * Also important because it can get a silly scrollbar and we - * want users to be able to scroll even if the scratchpad is - * open. We should probably make this wider eventually. */ - position: relative; - z-index: 2; -} - -.solutionarea .expression > .output > .tex { - display: block; - min-height: 42px; - overflow-x: scroll; - padding: 2px 10px 16px 10px; -} - -.solutionarea .expression > .input { - position: relative; - z-index: 3; /* interactive-content */ -} - -.solutionarea .expression > .input > input { - border: 1px solid #a4a4a4; - border-radius: 5px; - direction: ltr; - font-size: 14px; - margin-bottom: 5px; - padding: 6px; -} - -.solutionarea .expression > .output, -.solutionarea .expression > .output > .tex, -.solutionarea .expression > .input > input { - box-sizing: border-box; - max-width: 240px; - width: 100%; -} - -.solutionarea .expression > .input > input.error { - padding-right: 25px; -} - -.solutionarea .expression > .input > .error-div { - position: absolute; - right: 6px; - top: -3px; -} - -.solutionarea .expression > .input > .error-div > .error-icon { - color: #fcc335; - font-size: 20px; -} - -body:not(.mobile) ul.inequalities-one-line-radios, -body:not(.mobile) ul.inequalities-one-line-radios > li { - display: inline; -} - -body.mobile ul.inequalities-one-line-radios > li { - padding: 7px 0; -} - -.inequalities-padding#grid { - margin-bottom: 2em; -} - -#skip-question-button, -#opt-out-button { - margin-top: 15px; -} - -.perseus-sr-only { - border: 0; - clip: rect(0, 0, 0, 0); - font-size: 0; - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px; -} -.perseus-clearfix { - *zoom: 1; -} -.perseus-clearfix:before, -.perseus-clearfix:after { - content: ""; - display: table; -} -.perseus-clearfix:after { - clear: both; -} -/* Fall back colors? Eg educator, talks & interviews */ -.framework-perseus code { - font-family: Courier, monospace; -} -.framework-perseus pre { - background-color: #f0f1f2; - border-radius: 4px; - color: #21242c; - font-size: 18px; - padding: 16px; - white-space: pre; - overflow: auto; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-widget-container:not(.perseus-widget__definition) { - font-size: 14px; - line-height: 19.6px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-widget-container.widget-float-left, -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-widget-container.widget-float-right { - max-width: 50%; - padding-top: 32px; - width: 100%; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-widget-container.widget-float-left .perseus-image-caption .paragraph .paragraph, -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-widget-container.widget-float-right .perseus-image-caption .paragraph .paragraph { - margin-bottom: 0; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-widget-container.widget-float-left { - float: left; - padding-right: 32px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-widget-container.widget-float-right { - float: right; - padding-left: 32px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-renderer > .paragraph { - color: #21242c; - font-size: 20px; - line-height: 30px; - margin: 0 auto; - max-width: 688px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-renderer > .paragraph .paragraph { - color: #21242c; - font-size: 20px; - line-height: 30px; - margin-bottom: 32px; - margin-top: 0; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-renderer > .paragraph .katex, -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-renderer > .paragraph mjx-container { - font-size: 100%; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-renderer > .paragraph ul:not(.perseus-widget-radio) { - color: #21242c; - font-size: 20px; - line-height: 30px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) table { - color: #21242c; - font-size: 20px; - line-height: 30px; - margin-bottom: 32px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) h2 { - font-family: inherit; - font-size: 30px; - font-weight: 700; - line-height: 1.1; - margin-bottom: 16px; - margin-top: 48px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) h3 { - font-family: inherit; - font-size: 26px; - font-weight: 700; - line-height: 1.1; - margin-bottom: 16px; - margin-top: 32px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) h4, -.framework-perseus.perseus-article:not(.perseus-mobile) h5, -.framework-perseus.perseus-article:not(.perseus-mobile) h6 { - font-family: inherit; - font-size: 22px; - font-weight: 700; - line-height: 25px; - margin-bottom: 16px; - margin-top: 32px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) blockquote { - padding: 0 32px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .MathJax .math { - color: inherit; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-image-caption .perseus-renderer .paragraph .paragraph, -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-image-caption .perseus-renderer .paragraph ol, -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-image-caption .perseus-renderer .paragraph ul { - color: rgba(33, 36, 44, 0.64); - font-size: 14px; - line-height: 19px; - margin: 16px auto 42px; - text-align: left; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .paragraph.perseus-paragraph-full-width { - margin-bottom: 32px; - margin-left: 0; - margin-right: 0; - max-width: none; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .paragraph.perseus-paragraph-full-width > .paragraph { - margin: 0; - max-width: none; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .unresponsive-svg-image, -.framework-perseus.perseus-article:not(.perseus-mobile) .svg-image { - font-size: 14px; - line-height: 19.6px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-block-math { - margin-bottom: 32px; - position: relative; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-block-math:before { - bottom: 0; - content: ""; - position: absolute; - right: 0; - top: 0; - width: 30px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-block-math-inner { - overflow-x: auto; - padding-bottom: 8px; - padding-right: 20px; - padding-top: 8px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) > .clearfix:first-child > .perseus-renderer:first-child > .paragraph:first-child h1:first-child, -.framework-perseus.perseus-article:not(.perseus-mobile) > .clearfix:first-child > .perseus-renderer:first-child > .paragraph:first-child h2:first-child, -.framework-perseus.perseus-article:not(.perseus-mobile) > .clearfix:first-child > .perseus-renderer:first-child > .paragraph:first-child h3:first-child, -.framework-perseus.perseus-article:not(.perseus-mobile) > .clearfix:first-child > .perseus-renderer:first-child > .paragraph:first-child h4:first-child, -.framework-perseus.perseus-article:not(.perseus-mobile) > .clearfix:first-child > .perseus-renderer:first-child > .paragraph:first-child h5:first-child, -.framework-perseus.perseus-article:not(.perseus-mobile) > .clearfix:first-child > .perseus-renderer:first-child > .paragraph:first-child h6:first-child { - margin-top: 0; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-renderer > .paragraph .perseus-formats-tooltip { - padding: 8px 12px; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-renderer > .paragraph .perseus-formats-tooltip .paragraph { - margin-bottom: 0; -} -.framework-perseus.perseus-article:not(.perseus-mobile) .perseus-renderer > .paragraph .perseus-formats-tooltip .paragraph ul:not(.perseus-widget-radio) { - font-size: 15px; - line-height: 1.5; - margin: 0; -} -.framework-perseus.perseus-article:not(.perseus-mobile) pre { - margin: 0 -16px 32px -16px; -} -.framework-perseus:not(.perseus-article):not(.perseus-mobile) .perseus-radio-option-content .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 14px; - line-height: 1.25; - color: #21242c; -} -.framework-perseus:not(.perseus-article):not(.perseus-mobile) .perseus-radio-option-content .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 14px; - line-height: 1.25; - color: #21242c; -} -.framework-perseus:not(.perseus-article):not(.perseus-mobile) .perseus-radio-rationale-content .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 14px; - line-height: 1.25; - color: #21242c; -} -.framework-perseus:not(.perseus-article):not(.perseus-mobile) .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 14px; - line-height: 1.25; - color: #21242c; -} -.framework-perseus:not(.perseus-article):not(.perseus-mobile) .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph .katex, -.framework-perseus:not(.perseus-article):not(.perseus-mobile) .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph mjx-container { - color: #21242c; -} -.framework-perseus.perseus-mobile .perseus-article .perseus-widget-container.widget-float-left { - float: left; - padding-right: 1em; - max-width: 50%; - width: 100%; -} -.framework-perseus.perseus-mobile .perseus-article .perseus-widget-container.widget-float-right { - float: right; - padding-left: 1em; - max-width: 50%; - width: 100%; -} -.framework-perseus.perseus-mobile .perseus-article .perseus-renderer > .paragraph { - margin-left: auto; - margin-right: auto; - max-width: 700px; -} -.framework-perseus.perseus-mobile .perseus-article .paragraph.perseus-paragraph-full-width { - margin-left: 0; - margin-right: 0; - max-width: none; -} -.framework-perseus.perseus-mobile .perseus-article .paragraph.perseus-paragraph-full-width > .paragraph { - margin: 0; - max-width: none; -} -.framework-perseus.perseus-mobile :not(blockquote) > div.paragraph { - margin: 0; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph { - margin: 0 auto; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph:not(:first-child) { - margin-top: 32px; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph > .paragraph { - margin: 0; -} -.framework-perseus.perseus-mobile .clearfix > .perseus-renderer { - margin-bottom: 32px; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph ul:not(.perseus-widget-radio, .indicatorContainer) { - margin: 0 0 0 1em; - padding: 0; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph ul:not(.perseus-widget-radio, .indicatorContainer) > li { - padding-left: 10px; - margin-bottom: 24px; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph ol { - margin: 0; - padding-left: 32px; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph ol > li { - list-style-type: decimal; - margin-bottom: 24px; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph ol ol, -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph ul:not(.perseus-widget-radio) ol, -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph ol ul:not(.perseus-widget-radio), -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph ul:not(.perseus-widget-radio) ul:not(.perseus-widget-radio) { - padding-top: 24px; -} -.framework-perseus.perseus-mobile .perseus-block-math { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-touch-callout: none; -} -@media (max-width: 767px) { - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph { - max-width: none; - } - .framework-perseus.perseus-mobile h1 { - font-weight: 700; - padding-top: 0px; - font-family: inherit; - font-size: 24px; - line-height: 1.2; - color: #21242c; - } - .framework-perseus.perseus-mobile h2 { - font-weight: 700; - padding-top: 16px; - font-family: inherit; - font-size: 24px; - line-height: 1.2; - color: #3b3e40; - } - .framework-perseus.perseus-mobile h3, - .framework-perseus.perseus-mobile h4 { - font-weight: 700; - padding-top: 0px; - font-family: inherit; - font-size: 22px; - line-height: 1.1; - color: #626569; - } - .framework-perseus.perseus-mobile .default-body-text { - font-family: inherit; - font-size: 18px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 18px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 18px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph ul:not(.perseus-widget-radio) { - font-family: inherit; - font-size: 18px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph ol { - font-family: inherit; - font-size: 18px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile blockquote { - font-family: inherit; - font-size: 18px; - line-height: 1.4; - color: #626569; - color: #888d93; - } - .framework-perseus.perseus-mobile table { - font-family: inherit; - font-size: 18px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-radio-option-content .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 16px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-option-content .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 16px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 16px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 16px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph .katex, - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph mjx-container { - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-image-caption .paragraph .paragraph { - color: #888d93; - font-size: 14px; - line-height: 1.3; - text-align: left; - } - .framework-perseus.perseus-mobile .perseus-image-caption.has-title .paragraph .paragraph strong:first-child { - color: #3b3e40; - } - .framework-perseus.perseus-mobile :is(.katex, mjx-container):not(.mafs-graph *) { - font-size: 21px; - line-height: 1.2; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-block-math .katex, - .framework-perseus.perseus-mobile .perseus-block-math mjx-container { - font-size: 21px; - line-height: 1.5; - } - .framework-perseus.perseus-mobile .graphie-label .katex, - .framework-perseus.perseus-mobile .graphie-label mjx-container { - font-size: 1.21em; - line-height: 1.2; - } - .framework-perseus.perseus-mobile code { - font-family: Courier, monospace; - } - .framework-perseus.perseus-mobile pre { - background-color: #f0f1f2; - border-radius: 4px; - color: #21242c; - font-size: 18px; - line-height: 1.6; - padding: 16px; - white-space: pre; - overflow: auto; - } - .framework-perseus.perseus-mobile blockquote { - padding: 0 0 0 18px; - border-left: 4px solid #d8d8d8; - } -} -@media (min-width: 768px) and (max-width: 1199px) { - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph { - max-width: 512px; - } - .framework-perseus.perseus-mobile h1 { - font-weight: 700; - padding-top: 0px; - font-family: inherit; - font-size: 30px; - line-height: 1.1; - color: #21242c; - } - .framework-perseus.perseus-mobile h2 { - font-weight: 700; - padding-top: 32px; - font-family: inherit; - font-size: 30px; - line-height: 1.1; - color: #3b3e40; - } - .framework-perseus.perseus-mobile h3, - .framework-perseus.perseus-mobile h4 { - font-weight: 700; - padding-top: 16px; - font-family: inherit; - font-size: 28px; - line-height: 1.1; - color: #626569; - } - .framework-perseus.perseus-mobile .default-body-text { - font-family: inherit; - font-size: 20px; - line-height: 1.5; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 20px; - line-height: 1.5; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 20px; - line-height: 1.5; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph ul:not(.perseus-widget-radio) { - font-family: inherit; - font-size: 20px; - line-height: 1.5; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph ol { - font-family: inherit; - font-size: 20px; - line-height: 1.5; - color: #626569; - } - .framework-perseus.perseus-mobile blockquote { - font-family: inherit; - font-size: 20px; - line-height: 1.5; - color: #626569; - color: #888d93; - } - .framework-perseus.perseus-mobile table { - font-family: inherit; - font-size: 20px; - line-height: 1.5; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-radio-option-content .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 18px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-option-content .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 18px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 18px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 18px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph .katex, - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph mjx-container { - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-image-caption .paragraph .paragraph { - color: #888d93; - font-size: 17px; - line-height: 1.4; - text-align: left; - } - .framework-perseus.perseus-mobile .perseus-image-caption.has-title .paragraph .paragraph strong:first-child { - color: #3b3e40; - } - .framework-perseus.perseus-mobile :is(.katex, mjx-container):not(.mafs-graph *) { - font-size: 23px; - line-height: 1.3; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-block-math .katex, - .framework-perseus.perseus-mobile .perseus-block-math mjx-container { - font-size: 30px; - line-height: 1.3; - } - .framework-perseus.perseus-mobile .graphie-label .katex, - .framework-perseus.perseus-mobile .graphie-label mjx-container { - font-size: 1.21em; - line-height: 1.2; - } - .framework-perseus.perseus-mobile code { - font-family: Courier, monospace; - } - .framework-perseus.perseus-mobile pre { - background-color: #f0f1f2; - border-radius: 4px; - color: #21242c; - font-size: 18px; - line-height: 1.6; - padding: 16px; - white-space: pre; - overflow: auto; - } - .framework-perseus.perseus-mobile blockquote { - padding: 0 0 0 20px; - border-left: 4px solid #d8d8d8; - } -} -@media (min-width: 1200px) { - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph { - max-width: 688px; - } - .framework-perseus.perseus-mobile h1 { - font-weight: 700; - padding-top: 0px; - font-family: inherit; - font-size: 35px; - line-height: 1.1; - color: #21242c; - } - .framework-perseus.perseus-mobile h2 { - font-weight: 700; - padding-top: 32px; - font-family: inherit; - font-size: 35px; - line-height: 1.1; - color: #3b3e40; - } - .framework-perseus.perseus-mobile h3, - .framework-perseus.perseus-mobile h4 { - font-weight: 700; - padding-top: 16px; - font-family: inherit; - font-size: 30px; - line-height: 1.1; - color: #626569; - } - .framework-perseus.perseus-mobile .default-body-text { - font-family: inherit; - font-size: 22px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 22px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 22px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph ul:not(.perseus-widget-radio) { - font-family: inherit; - font-size: 22px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-renderer > .paragraph ol { - font-family: inherit; - font-size: 22px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile blockquote { - font-family: inherit; - font-size: 22px; - line-height: 1.4; - color: #626569; - color: #888d93; - } - .framework-perseus.perseus-mobile table { - font-family: inherit; - font-size: 22px; - line-height: 1.4; - color: #626569; - } - .framework-perseus.perseus-mobile .perseus-radio-option-content .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 20px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-option-content .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 20px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph { - font-family: inherit; - font-size: 20px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph { - font-family: inherit; - font-size: 20px; - line-height: 1.25; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph .katex, - .framework-perseus.perseus-mobile .perseus-radio-rationale-content .perseus-renderer > .paragraph .paragraph mjx-container { - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-image-caption .paragraph .paragraph { - color: #888d93; - font-size: 20px; - line-height: 1.4; - text-align: left; - } - .framework-perseus.perseus-mobile .perseus-image-caption.has-title .paragraph .paragraph strong:first-child { - color: #3b3e40; - } - .framework-perseus.perseus-mobile :is(.katex, mjx-container):not(.mafs-graph *) { - font-size: 25px; - line-height: 1.2; - color: #21242c; - } - .framework-perseus.perseus-mobile .perseus-block-math .katex, - .framework-perseus.perseus-mobile .perseus-block-math mjx-container { - font-size: 30px; - line-height: 1.3; - } - .framework-perseus.perseus-mobile .graphie-label .katex, - .framework-perseus.perseus-mobile .graphie-label mjx-container { - font-size: 1.21em; - line-height: 1.2; - } - .framework-perseus.perseus-mobile code { - font-family: Courier, monospace; - } - .framework-perseus.perseus-mobile pre { - background-color: #f0f1f2; - border-radius: 4px; - color: #21242c; - font-size: 18px; - line-height: 1.6; - padding: 16px; - white-space: pre; - overflow: auto; - } - .framework-perseus.perseus-mobile blockquote { - padding: 0 0 0 20px; - border-left: 5px solid #d8d8d8; - } -} -.framework-perseus.perseus-mobile .perseus-widget-container { - font-size: 14px; - line-height: 19.6px; -} -.framework-perseus.perseus-mobile .perseus-widget-container.widget-float-left, -.framework-perseus.perseus-mobile .perseus-widget-container.widget-float-right { - max-width: 50%; - padding-top: 32px; - width: 100%; -} -.framework-perseus.perseus-mobile .perseus-widget-container.widget-float-left .perseus-image-caption .paragraph .paragraph, -.framework-perseus.perseus-mobile .perseus-widget-container.widget-float-right .perseus-image-caption .paragraph .paragraph { - margin-bottom: 0; -} -.framework-perseus.perseus-mobile .perseus-widget-container.widget-float-left { - float: left; - padding-right: 32px; -} -.framework-perseus.perseus-mobile .perseus-widget-container.widget-float-right { - float: right; - padding-left: 32px; -} -.framework-perseus.perseus-mobile .MathJax .math { - color: inherit; -} -.framework-perseus.perseus-mobile .perseus-image-widget { - text-align: center; -} -.framework-perseus.perseus-mobile .perseus-block-math { - padding-top: 16px; - padding-bottom: 16px; -} -.framework-perseus.perseus-mobile .paragraph.perseus-paragraph-full-width { - margin-left: 0; - margin-right: 0; - max-width: none; -} -.framework-perseus.perseus-mobile .paragraph.perseus-paragraph-full-width > .paragraph { - margin: 0; - max-width: none; -} -.framework-perseus.perseus-mobile .unresponsive-svg-image, -.framework-perseus.perseus-mobile .svg-image { - font-size: 14px; - line-height: 19.6px; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph .perseus-formats-tooltip { - padding: 8px 12px; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph .perseus-formats-tooltip .paragraph { - margin-bottom: 0; -} -.framework-perseus.perseus-mobile .perseus-renderer > .paragraph .perseus-formats-tooltip .paragraph ul:not(.perseus-widget-radio) { - font-size: 15px; - line-height: 1.5; - margin: 0; -} -/* Derived from the MIT-licensed zoom.js: - https://github.com/fat/zoom.js/blob/fd4f3e43153da7596da0bade198e99f98b47791e/ -*/ -.zoomable { - cursor: pointer; - cursor: -webkit-zoom-in; - cursor: -moz-zoom-in; -} -.zoom-img { - background-color: white; - position: absolute; - z-index: 9001; -} -img.zoom-img { - cursor: pointer; - cursor: -webkit-zoom-out; - cursor: -moz-zoom-out; -} -.zoom-transition { - transition: transform 300ms ease; -} -.zoom-overlay { - z-index: 9000; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - overflow: scroll; -} -.zoom-overlay-open, -.zoom-overlay-transitioning { - cursor: default; -} -.zoom-overlay-open { - height: 100%; - max-height: 100%; - overflow: hidden; -} -.zoom-backdrop { - z-index: 8999; - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: white; - opacity: 0; - transition: opacity 300ms; -} -.zoom-overlay-open > .zoom-backdrop { - opacity: 0.9; -} -#perseus { - position: relative; -} -.framework-perseus.perseus-mobile { - margin-top: 48px; -} -.no-select { - -webkit-user-select: none; - user-select: none; -} -.blank-background { - background-color: #fdfdfd; -} -#answer_area .blank-background { - background-color: transparent; -} -.above-scratchpad { - position: relative; - z-index: 2; -} -.graphie.above-scratchpad, -.graphie-container.above-scratchpad { - background-color: #fdfdfd; -} -.perseus-mobile .graphie-container.above-scratchpad { - background: #ffffff; -} -.graphie { - -webkit-user-select: none; - user-select: none; -} -.perseus-interactive, -.perseus-interactive.above-scratchpad { - position: relative; - z-index: 3; -} -#answercontent input[type=text].perseus-input-size-normal, -#answercontent input[type=number].perseus-input-size-normal, -.framework-perseus input[type=text].perseus-input-size-normal, -.framework-perseus input[type=number].perseus-input-size-normal { - border: 1px solid #ccc; - width: 80px; -} -#answercontent input[type=text].perseus-input-size-small, -#answercontent input[type=number].perseus-input-size-small, -.framework-perseus input[type=text].perseus-input-size-small, -.framework-perseus input[type=number].perseus-input-size-small { - border: 1px solid #ccc; - width: 40px; -} -#answercontent input[type=text].perseus-input-right-align, -#answercontent input[type=number].perseus-input-right-align, -.framework-perseus input[type=text].perseus-input-right-align, -.framework-perseus input[type=number].perseus-input-right-align { - text-align: right; -} -.framework-perseus.perseus-mobile .perseus-input-right-align .keypad-input { - text-align: right; -} -.framework-perseus div.paragraph { - font-family: "Lato", sans-serif; - font-weight: 400; - font-size: 18px; - line-height: 22px; - margin: 22px 0px; -} -.framework-perseus .test-prep-blurb div.paragraph { - font-size: 16px; - line-height: 20px; -} -.framework-perseus div.instructions { - display: block; - font-family: "Noto Serif", serif; - font-weight: 800; - font-size: 18px; - line-height: 22px; - font-style: italic; -} -.framework-perseus .perseus-renderer > .paragraph > ul:not(.perseus-widget-radio), -.framework-perseus .perseus-renderer > .paragraph > ol { - margin: 0px 0px 22px 0px; -} -.framework-perseus .paragraph ul:not(.perseus-widget-radio, .indicatorContainer) { - padding-left: 35px; - list-style-type: disc; -} -.framework-perseus .paragraph ol { - list-style: decimal; - padding-left: 2em; -} -.framework-perseus blockquote { - padding: 0 2.5em; -} -.framework-perseus .zoomable { - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-touch-callout: none; -} -.framework-perseus sup:not(.mq-non-leaf) { - font-size: smaller; - vertical-align: super; - line-height: 0; -} -.framework-perseus .range-input { - border: 1px solid #ccc; - border-radius: 5px; - display: inline-block; - padding: 0px 5px; -} -.framework-perseus .range-input > input { - border: 0; - display: inline; - text-align: center; - width: 30px; -} -.framework-perseus .range-input > span { - color: #999; - font-size: 14px; -} -.framework-perseus .number-input { - border: 1px solid #ccc; - border-radius: 5px; - margin: 0; - padding: 5px 0; - text-align: center; - width: 40px; -} -.framework-perseus .number-input.invalid-input { - background-color: #cf5044; - outline-color: red; -} -.framework-perseus .number-input.mini { - width: 40px; -} -.framework-perseus .number-input.small { - width: 60px; -} -.framework-perseus .number-input.normal { - width: 80px; -} -.framework-perseus .math-output { - display: inline-block; - min-width: 80px; - min-height: 36px; - border-radius: 5px; - padding: 0; - margin-top: 4px; - margin-bottom: 4px; - background: white; - border: 1px solid #a4a4a4; -} -.framework-perseus .graph-settings .graph-settings-axis-label { - border: 1px solid #ccc; - border-radius: 5px; - display: inline-block; - padding: 5px 5px; - width: 70px; - float: right; - margin: 0 5px; -} -.framework-perseus .graph-settings .graph-settings-background-url { - width: 250px; -} -.framework-perseus .graphie-container { - position: relative; -} -.framework-perseus .graph-settings, -.framework-perseus .image-settings, -.framework-perseus .misc-settings { - padding-bottom: 5px; -} -.framework-perseus .misc-settings, -.framework-perseus .type-settings { - border-top: 1px solid black; - padding-top: 5px; -} -.framework-perseus .svg-image { - display: block; - margin: 0 auto; - margin-inline-start: auto; - margin-inline-end: auto; -} -.framework-perseus .unresponsive-svg-image, -.framework-perseus .perseus-rendered-radio .unresponsive-svg-image { - display: inline-block; - position: relative; -} -.framework-perseus .unresponsive-svg-image > .graphie-container, -.framework-perseus .perseus-rendered-radio .unresponsive-svg-image > .graphie-container { - position: absolute; - top: 0; - left: 0; -} -.framework-perseus .fixed-to-responsive { - position: relative; - width: 100%; -} -.framework-perseus .fixed-to-responsive > :not(:first-child) { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -/* Legacy table styles. Remove when XOM is rolled out (see below for - updated XOM styles). */ -.framework-perseus:not(.perseus-mobile) table { - font-size: 14px; - line-height: 19.6px; -} -.framework-perseus:not(.perseus-mobile) table th, -.framework-perseus:not(.perseus-mobile) table td { - padding: 5px 10px; - text-align: left; -} -.framework-perseus:not(.perseus-mobile) table th[align="center"], -.framework-perseus:not(.perseus-mobile) table td[align="center"] { - text-align: center; -} -.framework-perseus:not(.perseus-mobile) table th[align="right"], -.framework-perseus:not(.perseus-mobile) table td[align="right"] { - text-align: right; -} -.framework-perseus:not(.perseus-mobile) table th { - border-bottom: 2px solid #ccc; - font-weight: bold; - padding-bottom: 2px; -} -.framework-perseus:not(.perseus-mobile) table tr:nth-child(odd) td { - background-color: #f7f8fa; -} -.framework-perseus:not(.perseus-mobile) .perseus-titled-table { - display: inline-block; -} -.framework-perseus:not(.perseus-mobile) .perseus-titled-table table { - margin-left: auto; - margin-right: auto; -} -.framework-perseus:not(.perseus-mobile) .perseus-table-title { - text-align: center; - font-size: larger; -} -.framework-perseus:not(.perseus-mobile) table.non-markdown tr:nth-child(odd) td { - background-color: transparent; -} -.framework-perseus:not(.perseus-mobile) table.non-markdown th, -.framework-perseus:not(.perseus-mobile) table.non-markdown td { - border-width: 0; -} -/* New XOM styles for tables. */ -.framework-perseus.perseus-mobile { - /* There are three kinds of tables: - 1) normal "tables" - emitted by markdown (src/perseus-markdown.jsx) - 2) "titled tables" - emitted by markdown as well (these are just - tables with a title, and encased in one more element) - 3) "table widget" - where a user is expected to enter answers in a - table form (src/widgets/table.jsx). - Moreover, there the Categorizer widget uses tags, so these - stylings will apply there as well. */ -} -.framework-perseus.perseus-mobile table { - border-collapse: collapse; - margin: 0 auto; -} -.framework-perseus.perseus-mobile table tbody > tr { - border: 1px solid #e5e5e5; -} -.framework-perseus.perseus-mobile table th, -.framework-perseus.perseus-mobile table td { - padding: 16px; - text-align: left; -} -.framework-perseus.perseus-mobile table th[align="center"], -.framework-perseus.perseus-mobile table td[align="center"] { - text-align: center; -} -.framework-perseus.perseus-mobile table th[align="right"], -.framework-perseus.perseus-mobile table td[align="right"] { - text-align: right; -} -.framework-perseus.perseus-mobile table td { - background: #fff; -} -.framework-perseus.perseus-mobile table th { - font-weight: bold; -} -@media (max-width: 767px) { - .framework-perseus.perseus-mobile table { - width: 100%; - min-width: 480px; - } - .framework-perseus.perseus-mobile table tbody > tr { - border-left: 0; - border-right: 0; - } -} -.framework-perseus.perseus-mobile .perseus-titled-table { - display: inline-block; -} -.framework-perseus.perseus-mobile .perseus-table-title { - text-align: center; - font-size: larger; -} -/* Widget CSS */ -.perseus-graph-padding { - box-sizing: content-box; - padding: 25px 25px 0 0; -} -.categorizer-container { - margin-top: 20px; -} -.categorizer-container div.paragraph { - margin: 10px 0px; -} -.categorizer-container .category { - text-align: center; -} -.categorizer-container table { - min-width: 0; -} -.categorizer-container label { - position: relative; - z-index: 2; -} -body.mobile .categorizer-container td.category input[type="radio"]:checked + span:before { - color: #005a88; -} -body.mobile .categorizer-container td.category input[type="radio"] + span:active:before { - color: #666; - content: "\f111"; -} -.perseus-widget-dropdown { - position: relative; -} -.perseus-widget-expression { - position: relative; -} -.perseus-widget-expression > span, -.perseus-widget-expression .error-tooltip { - display: inline-block; - vertical-align: middle; -} -.perseus-widget-expression .error-tooltip { - position: absolute; - right: 6px; - top: -2px; -} -.perseus-widget-expression .error-icon { - color: #fcc335; - cursor: pointer; - font-size: 20px; - position: relative; - z-index: 3; -} -.perseus-widget-expression .error-text { - background-color: #fff; - padding: 5px; - width: 210px; -} -.perseus-widget-expression .perseus-formats-tooltip { - width: 190px; -} -#answer_area .perseus-widget-expression .perseus-math-input.mq-editable-field.mq-math-mode { - min-width: 130px; -} -#answer_area .perseus-widget-expression .error-tooltip .error-text-container { - left: -125px !important; - top: -17px !important; -} -#answer_area .perseus-widget-expression .error-tooltip .error-text { - font-size: 12px; - width: 90px; -} -#answer_area .perseus-widget-expression .error-tooltip .tooltipContainer > div:first-child { - visibility: hidden !important; -} -.perseus-widget-grapher { - box-sizing: content-box; - padding: 25px 25px 0 0; -} -.perseus-widget-grapher > .graphie-container { - position: relative; -} -.perseus-widget-grapher > .graphie-container > img, -.perseus-widget-grapher > .graphie-container .svg-image { - position: absolute; -} -.framework-perseus .perseus-graded-group { - position: relative; - width: 100%; - margin-left: 3px; - padding-left: 5px; -} -.framework-perseus .perseus-graded-group.answer-correct { - border-left: 3px solid #76a005; - margin-left: 0; -} -.framework-perseus .perseus-graded-group.answer-incorrect { - border-left: 3px solid #b2392e; - margin-left: 0; -} -.framework-perseus .perseus-graded-group .group-icon { - font-size: 14px; - position: absolute; - top: 50%; - top: calc(50% - 7px); - left: -30px; - text-align: center; - width: 16px; -} -.framework-perseus .perseus-group { - position: relative; - width: 100%; -} -.framework-perseus .perseus-group .group-icon { - font-size: 14px; - position: absolute; - top: 50%; - top: calc(50% - 7px); - margin-left: -20px; -} -.perseus-image-widget .perseus-image-title { - text-align: center; -} -.perseus-image-widget .perseus-image-caption { - color: rgba(33, 36, 44, 0.7); - padding-left: 16px; - position: relative; -} -.perseus-image-widget .perseus-image-caption::before { - content: ""; - position: absolute; - top: 0; - bottom: 0; - left: 0; - margin-left: 4px; - width: 1px; - background-color: rgba(33, 36, 44, 0.5); - border: 1px solid rgba(33, 36, 44, 0.5); - border-radius: 2px; -} -.perseus-image-widget .perseus-image-caption .paragraph { - font-size: 14px; - padding-right: 12px; -} -.perseus-image-editor .label-settings td { - padding: 5px 4px; - text-align: center; -} -.perseus-image-editor .label-settings tr:nth-child(odd) td { - background-color: transparent; -} -.perseus-image-editor .label-settings th, -.perseus-image-editor .label-settings td { - border-width: 0; -} -.perseus-image-editor .image-settings, -.perseus-image-editor .graph-settings { - margin-top: 5px; -} -.perseus-image-widget { - margin-inline-start: auto; - margin-inline-end: auto; -} -.perseus-hint-renderer .perseus-image-widget { - margin-inline-start: 0; -} -.perseus-hint-renderer .svg-image { - margin-inline-start: 0; -} -.perseus-widget-interactive-graph { - box-sizing: content-box; - padding: 25px 25px 0 0; -} -.perseus-widget-interactive-graph > .graphie-container { - position: relative; -} -.perseus-widget-interactive-graph > .graphie-container > img, -.perseus-widget-interactive-graph > .graphie-container > .unresponsive-svg-image { - position: absolute; - bottom: 0; - left: 0; -} -.perseus-mobile .tooltip.visible { - z-index: 2; -} -.perseus-mobile .tooltip.visible .tooltip-content:before { - border: solid; - border-color: white transparent; - border-width: 10px 10px 0 10px; - bottom: -10px; - content: ""; - left: 50%; - transform: translateX(-50%); - position: absolute; - z-index: 2; -} -.perseus-mobile .tooltip .tooltip-content { - display: none; -} -.perseus-mobile .tooltip.visible .tooltip-content { - display: inline-block; - background-color: #ffffff; - border-radius: 5px; - bottom: 50px; - left: 50%; - transform: translateX(-50%); - padding: 5px; - position: absolute; - white-space: nowrap; - min-width: 30px; - text-align: center; -} -.perseus-mobile .tooltip.visible .tooltip-content .katex, -.perseus-mobile .tooltip.visible .tooltip-content mjx-container { - color: #71b307 !important; -} -.perseus-mobile .graphie-label .katex, -.perseus-mobile .graphie-label mjx-container { - color: inherit !important; -} -.framework-perseus .perseus-label-image-widget-instructions div.paragraph { - margin: 0; -} -@media (max-width: 767px) { - [id*="perseus-label-image-widget-answer-pill"] > div.perseus-renderer-responsive { - all: revert; - } - .framework-perseus.perseus-mobile [id*="perseus-label-image-widget-answer-pill"] mjx-container { - all: revert; - } -} -.framework-perseus:not(.perseus-article).perseus-mobile .perseus-label-image-widget-instructions { - color: initial; -} -.framework-perseus:not(.perseus-article).perseus-mobile .perseus-label-image-widget-instructions .perseus-renderer .paragraph > .paragraph { - color: initial !important; - font-size: initial !important; - line-height: initial !important; -} -.framework-perseus:not(.perseus-article).perseus-mobile .perseus-label-image-widget-instructions .perseus-block-math { - padding: 0; -} -.framework-perseus:not(.perseus-article).perseus-mobile .perseus-label-image-widget-instructions .perseus-block-math .katex, -.framework-perseus:not(.perseus-article).perseus-mobile .perseus-label-image-widget-instructions .perseus-block-math mjx-container { - font-size: initial !important; - line-height: initial !important; -} -.perseus-label-image-widget-answer-choices .perseus-block-math > .perseus-block-math-inner, -.perseus-label-image-widget-instructions .perseus-block-math > .perseus-block-math-inner { - overflow-x: hidden !important; -} -.perseus-widget-matcher { - /* Ideally we'd get rid of this, as most of the styles have been moved - to inline styles using Aphrodite, but this is a hacky "reach-in" into - descendent widgets that we can't modify */ -} -.perseus-widget-matcher div.paragraph { - margin: 0; -} -.perseus-matrix .matrix-prefix, -.perseus-matrix .matrix-suffix { - display: inline-block; - margin: 10px 5px 0 10px; - vertical-align: top; -} -.perseus-matrix .matrix-suffix { - margin: 10px 10px 0 5px; -} -.perseus-matrix div.paragraph { - margin: 0; -} -.perseus-matrix .matrix-input { - background: #e2e2e2; - display: inline-block; - margin: 5px; - padding: 3px; - position: relative; - width: auto; -} -.perseus-matrix .matrix-row { - white-space: nowrap; -} -.perseus-matrix .matrix-bracket { - border-color: #666; - border-style: solid; - border-bottom-width: 2px; - border-top-width: 2px; - margin-top: -2px; - position: absolute; - width: 6px; -} -.perseus-matrix .matrix-bracket.bracket-left { - border-color: #666; - border-left-width: 2px; - border-right-width: 0; - left: 3px; -} -.perseus-matrix .matrix-bracket.bracket-right { - border-color: #666; - border-left-width: 0; - border-right-width: 2px; - margin-left: -3px; -} -.perseus-matrix input, -.perseus-matrix .number-input { - border: none; - border-radius: 0; - box-sizing: border-box; - margin: 3px; - padding: 0; - text-align: center; -} -.perseus-matrix input.outside, -.perseus-matrix .number-input.outside { - background: #f3f3f3; -} -.perseus-matrix input:focus, -.perseus-matrix .number-input:focus { - border: none; - outline: none; -} -.static-mode.perseus-matrix input, -.static-mode.perseus-matrix .number-input { - background: #f5f5f5; -} -.perseus-matrix.the-matrix .matrix-bracket, -.perseus-matrix.the-matrix .matrix-left, -.perseus-matrix.the-matrix .matrix-right { - border-color: #29f139; -} -.perseus-matrix.the-matrix .matrix-input { - background: #222; -} -.perseus-matrix.the-matrix input, -.perseus-matrix.the-matrix .number-input { - background: #666; - color: #29f139; - font-weight: bold; -} -.perseus-matrix.the-matrix input.outside, -.perseus-matrix.the-matrix .number-input.outside { - background: #444; -} -body.mobile .perseus-matrix .matrix-input { - display: table; -} -body.mobile .perseus-matrix .matrix-row { - display: table-row; -} -body.mobile .perseus-matrix .matrix-input-field { - display: table-cell; -} -body.mobile .perseus-matrix .math-output { - margin: 4px 4px 2px 4px; - max-height: 36px; - max-width: 80px; - overflow: hidden; -} -.perseus-matrix-editor .perseus-single-editor { - width: 338px; -} -.perseus-widget-measurer { - position: relative; -} -.perseus-widget-measurer img { - position: absolute; -} -.perseus-widget-measurer-url { - width: 70%; -} -#translations-dashboard .perseus-widget-measurer > .graphie { - z-index: -1; -} -.orderer { - position: relative; -} -.orderer.layout-horizontal .draggable-box { - margin-left: 0; - margin-top: 30px; - padding: 13px; -} -.orderer .card { - padding: 0 10px; - cursor: pointer; - position: relative; - -webkit-user-select: none; - user-select: none; - width: auto; - display: flex; - flex-direction: column; - justify-content: center; -} -.orderer.height-normal.layout-horizontal .card { - height: 65px; -} -.orderer.height-normal.layout-vertical .card { - padding: 5px; -} -.orderer.height-auto .card { - padding: 0; -} -.orderer.height-auto.layout-horizontal .drag-hint { - min-height: 65px; - min-width: 22px; -} -.orderer.layout-horizontal .bank { - padding: 0; - margin: 0px 13px; -} -.orderer div.paragraph { - margin: 0; -} -.orderer .card-wrap { - position: relative; - z-index: 3; - width: auto; -} -.orderer.layout-horizontal .card-wrap { - float: left; -} -.orderer.layout-horizontal .card-wrap:not(:first-child) { - margin-left: 8px; -} -.orderer.layout-vertical .card-wrap { - float: none; - text-align: center; -} -.orderer.layout-vertical .card-wrap:not(:first-child) { - margin-top: 8px; -} -.orderer.layout-vertical .bank, -.orderer.layout-vertical .draggable-box { - box-sizing: border-box; - float: left; - max-width: 50%; -} -.orderer.layout-vertical .bank { - padding: 11px 20px 11px 0; - margin: 0; -} -.orderer.layout-vertical .draggable-box { - margin-top: 0; - padding: 10px; - min-height: 170px; -} -.orderer.layout-vertical .draggable-box .drag-hint { - box-sizing: border-box; - min-width: 140px; - min-height: 34px; -} -.orderer.layout-vertical .draggable-box .placeholder { - box-sizing: border-box; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-widget-passage, -.perseus-widget-passage-container .perseus-widget-passage { - line-height: 20px; - margin: 22px; - position: relative; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-widget-passage div.paragraph, -.perseus-widget-passage-container .perseus-widget-passage div.paragraph { - font-family: KaTeX_Main, Times, "Times New Roman", serif; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-widget-passage .passage-title div.paragraph, -.perseus-widget-passage-container .perseus-widget-passage .passage-title div.paragraph { - font-family: "Noto Serif", serif; - font-weight: 700; - font-size: 20px; - line-height: 22px; - margin: 0 0 10px; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-widget-passage > .passage-text div.paragraph, -.perseus-widget-passage-container .perseus-widget-passage > .passage-text div.paragraph { - font-weight: 400; - font-size: 16px; - line-height: 20px; - text-indent: 20px; - margin: 0; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-widget-passage > .passage-text div.paragraph span, -.perseus-widget-passage-container .perseus-widget-passage > .passage-text div.paragraph span { - text-indent: 0; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-widget-passage > .passage-text div.paragraph em, -.perseus-widget-passage-container .perseus-widget-passage > .passage-text div.paragraph em { - line-height: 0; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .katex, -.perseus-widget-passage-container .katex, -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container mjx-container, -.perseus-widget-passage-container mjx-container { - line-height: 18px; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .footnotes, -.perseus-widget-passage-container .footnotes { - margin-top: 22px; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .footnotes div.paragraph, -.perseus-widget-passage-container .footnotes div.paragraph { - font-size: 14px; - margin: 0; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-highlight, -.perseus-widget-passage-container .perseus-highlight { - background-color: #fffabe; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-review-highlight, -.perseus-widget-passage-container .perseus-review-highlight { - background-color: #eee7b2; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-passage-square-label, -.perseus-widget-passage-container .perseus-passage-square-label, -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-passage-circle-label, -.perseus-widget-passage-container .perseus-passage-circle-label, -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .perseus-passage-bracket-label, -.perseus-widget-passage-container .perseus-passage-bracket-label { - font-family: Times, "Times New Roman", serif; - font-size: 16px; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .line-numbers, -.perseus-widget-passage-container .line-numbers { - font-size: 12px; - font-style: italic; - font-weight: 600; - position: absolute; - text-align: right; - max-height: 100%; - overflow: hidden; - padding-right: 6px; - left: -52px; - width: 37px; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .line-numbers span, -.perseus-widget-passage-container .line-numbers span { - display: block; - line-height: 20px; - position: relative; - top: 2px; - visibility: hidden; -} -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .line-numbers span:nth-of-type(5n), -.perseus-widget-passage-container .line-numbers span:nth-of-type(5n), -.framework-perseus.perseus-article .perseus-renderer .perseus-widget-passage-container .line-numbers .line-marker, -.perseus-widget-passage-container .line-numbers .line-marker { - visibility: visible; -} -.perseus-widget-passage-editor .perseus-single-editor { - font-family: Times, "Times New Roman", serif; - margin-left: -11px; -} -.perseus-widget-passage-editor .perseus-textarea-pair textarea { - font-size: 13px; - line-height: 17px; -} -body.sat-section .perseus-widget-passage { - margin-top: 0; -} -.perseus-widget-plotter svg, -.perseus-widget-plotter vml { - position: absolute; -} -.perseus-widget-plotter span.rotate { - transform: rotate(-90deg); -} -.set-from-scale-box { - border: 2px solid #eeeeee; - border-radius: 3px; - padding: 3px; -} -.categories-title { - font-size: 14px; -} -.perseus-mobile .perseus-widget-plotter { - border: solid 0.5px #babec2; - border-radius: 4px; -} -.perseus-mobile .perseus-widget-plotter .graphie-label .katex, -.perseus-mobile .perseus-widget-plotter .graphie-label mjx-container { - color: #626569; -} -.perseus-widget-radio.perseus-rendered-radio div, -.perseus-widget-radio.perseus-rendered-radio div > p { - /* TODO(alpert): Find a better way of doing inline renderers */ - display: inline; -} -.perseus-widget-radio.perseus-rendered-radio .perseus-radio-rationale-content > .perseus-renderer > .paragraph { - display: table; - margin: 0; -} -.perseus-widget-radio.perseus-rendered-radio .perseus-radio-rationale-content > .perseus-renderer > .paragraph:not(:last-child) { - margin-bottom: 8px; -} -.perseus-widget-radio .unresponsive-svg-image div, -.perseus-widget-radio .svg-image div { - display: block; -} -.perseus-widget-radio li div.instructions { - margin-bottom: 5px; -} -.perseus-widget-radio li .value { - display: block; - margin-left: 18px; - min-height: 22px; -} -.perseus-widget-radio li img, -.perseus-widget-radio li table { - display: inline-block; - vertical-align: middle; -} -.perseus-widget-radio li table { - border: 1px solid #ccc; -} -.perseus-widget-radio .perseus-radio-option { - /* Radio options with images that are set apart should be on their own line */ -} -.perseus-widget-radio .perseus-radio-option .paragraph + .paragraph:has(img:only-child), -.perseus-widget-radio .perseus-radio-option .paragraph:has(img:only-child):has(+ .paragraph) { - display: block; -} -.perseus-widget-radio-fieldset .instructions { - font-family: "Lato", sans-serif; -} -.draggy-boxy-thing .draggable-box, -.draggy-boxy-thing .cards-area { - background: #eee; - border: 1px solid #ccc; - border-bottom: 1px solid #aaa; - box-shadow: 0 1px 2px #ccc; -} -.draggy-boxy-thing .cards-area { - position: relative; - z-index: 2; -} -.draggy-boxy-thing .card { - position: relative; - z-index: 3; - background-color: #fff; - border: 1px solid #b9b9b9; - border-bottom-color: #939393; - border-radius: 4px; - cursor: pointer; - touch-action: none; -} -.draggy-boxy-thing .card.placeholder { - background: #ddd; - border: 1px solid #ccc; -} -.draggy-boxy-thing .card.drag-hint { - background: none; - border: 1px dashed #aaa; - cursor: auto; -} -.draggy-boxy-thing .card.drag-hint:hover { - border-color: #aaa; - box-shadow: none; -} -.draggy-boxy-thing .card.dragging { - background-color: #ffedcd; - opacity: 0.8; - filter: opacity(0.8); -} -.draggy-boxy-thing .card.stack { - z-index: auto; -} -.draggy-boxy-thing .card.stack:after { - content: " "; - background-color: #fff; - border: 1px solid #b9b9b9; - border-bottom-color: #939393; - border-radius: 4px; - height: 100%; - width: 100%; - z-index: -1; - top: 1px; - left: 1px; - position: absolute; -} -.draggy-boxy-thing .card:hover { - border-color: #ffa500; - box-shadow: 0 0 4px #c78100; -} -.perseus-sortable div.paragraph { - margin: 0; -} -.perseus-sortable .perseus-sortable-draggable:before { - content: ""; - display: inline-block; - height: 100%; - vertical-align: middle; -} -.perseus-sortable .perseus-sortable-draggable > div { - display: inline-block; - font-size: 14px; - max-width: 100%; - vertical-align: middle; -} -.perseus-sortable .perseus-sortable-draggable-unpadded img { - vertical-align: bottom; -} -.framework-perseus table.perseus-widget-table-of-values.non-markdown { - text-align: left; - margin: 20px auto; - border-collapse: collapse; -} -.framework-perseus table.perseus-widget-table-of-values.non-markdown tr { - height: 23px; -} -.framework-perseus table.perseus-widget-table-of-values.non-markdown th, -.framework-perseus table.perseus-widget-table-of-values.non-markdown td { - border: 2px solid black; - border-width: 0 2px; -} -.framework-perseus table.perseus-widget-table-of-values.non-markdown th:first-child, -.framework-perseus table.perseus-widget-table-of-values.non-markdown td:first-child { - border-left: 0; -} -.framework-perseus table.perseus-widget-table-of-values.non-markdown th:last-child, -.framework-perseus table.perseus-widget-table-of-values.non-markdown td:last-child { - border-right: 0; -} -.framework-perseus table.perseus-widget-table-of-values.non-markdown th { - font-weight: normal; - padding: 5px; - width: 80px; - text-align: left; - border-bottom: 2px solid black; -} -.framework-perseus table.perseus-widget-table-of-values.non-markdown th .paragraph { - margin: 0; -} -.framework-perseus table.perseus-widget-table-of-values.non-markdown td { - padding: 0px 5px; -} -.framework-perseus table.perseus-widget-table-of-values.non-markdown tbody tr:first-child td { - padding-top: 5px; -} -.framework-perseus table.perseus-widget-table-of-values input, -#answer_area table.perseus-widget-table-of-values input { - width: 80px; -} -body.mobile .framework-perseus table.perseus-widget-table-of-values.non-markdown td { - padding: 5px; -} -.old-unit-input input, -.unit-editor-canonical { - border: 1px solid #a4a4a4; - border-radius: 5px; - font-size: 14px; - padding: 6px; -} -.unit-editor > div { - margin: 5px 0; -} -.perseus-widget-container.widget-nohighlight { - transition: all 0.15s; -} -.perseus-widget-container.widget-highlight { - box-shadow: 0px 0px 0px 2px #ffa500; - transition: all 0.15s; -} -.perseus-widget-container.widget-inline { - display: inline; -} -.perseus-widget-container.widget-inline-block { - display: inline-block; -} -.bibliotron-exercise .perseus-hint-renderer { - border-left: 4px solid #f6f7f7; - padding-left: 16px; - position: relative; -} -.bibliotron-exercise .perseus-hint-renderer:focus { - border-left-color: #d6d8da; - outline: none; -} -.bibliotron-exercise .perseus-hint-renderer:before, -.bibliotron-exercise .perseus-hint-renderer:after { - content: ""; - display: table; - clear: both; -} -.bibliotron-exercise .perseus-hint-renderer div.paragraph { - margin-top: 0px; - margin-bottom: 16px; -} -.bibliotron-exercise .perseus-hint-renderer.last-hint { - margin-bottom: 32px; -} -@media (max-width: 767px) { - .bibliotron-exercise .perseus-hint-renderer.last-hint { - margin-bottom: 0; - } -} -.perseus-hint-label { - color: #00457c; - display: none; - font-weight: 600; - margin-right: 13px; - position: absolute; - right: 100%; - white-space: nowrap; -} -.perseus-domain-science .perseus-hint-label { - color: #9e034e; -} -.perseus-domain-math .perseus-hint-label { - color: #007d96; -} -.perseus-domain-economics .perseus-hint-label { - color: #a75a05; -} -.perseus-domain-partner .perseus-hint-label { - color: #208170; -} -.perseus-domain-humanities .perseus-hint-label { - color: #be2612; -} -.perseus-domain-test-prep .perseus-hint-label { - color: #543b78; -} -.perseus-domain-cs .perseus-hint-label { - color: #0d923f; -} -.bibliotron-exercise .perseus-hint-renderer.last-rendered .perseus-hint-label { - display: block; -} -@media (max-width: 767px) { - .bibliotron-exercise .perseus-hint-renderer.last-rendered .perseus-hint-label { - display: none; - } -} -.perseus-tooltip { - background: #fff; - padding: 5px 10px; - width: 240px; -} -.perseus-formats-tooltip { - background: #fff; - padding: 5px 10px; - width: 240px; - color: #777; -} -.framework-perseus .perseus-formats-tooltip .paragraph > ul { - padding: 0; - margin: -20px 0 -16px 0; -} -.framework-perseus .perseus-formats-tooltip .paragraph > ul > li { - list-style-type: none; -} -.perseus-math-input.mq-editable-field.mq-math-mode { - background-color: transparent; - font-size: 18px; - min-width: 100px; - border: unset; -} -.perseus-math-input.mq-editable-field.mq-math-mode.mq-focused { - box-shadow: unset; -} -.perseus-math-input.mq-editable-field.mq-math-mode > .mq-root-block { - padding: 4px; -} -.perseus-math-input.mq-editable-field.mq-math-mode .mq-cursor { - padding-left: 0; -} -.perseus-math-input.mq-editable-field.mq-math-mode .mq-paren.mq-ghost { - color: inherit; -} -.perseus-math-input.mq-editable-field.mq-math-mode .mq-paren + span { - margin: 0; -} -.perseus-math-input.mq-editable-field.mq-math-mode .mq-binary-operator { - font-family: KaTeX_Main !important; -} -.perseus-math-input.mq-editable-field.mq-math-mode sup { - line-height: normal; -} -.perseus-widget-editor .perseus-math-input.mq-editable-field.mq-math-mode > .mq-root-block { - border-radius: 0; -} -.math-input-buttons { - background-color: rgba(255, 255, 255, 0.7); - border-radius: 5px; - border: 1px solid #ddd; - box-sizing: border-box; - margin-top: 5px; - padding: 2px; - width: 201px; -} -.math-input-buttons.absolute { - left: -2px; - position: absolute; - top: -3px; - z-index: 5; -} -.tex-button { - display: block; - float: left; - width: 35px; - height: 35px; - margin: 2px; - border: 1px solid #1c758a; - background-color: white; - border-radius: 5px; -} -.tex-button:hover { - cursor: pointer; - background-color: #f0f0f0; -} -.tex-button:focus { - border: 2px solid #1c758a; - outline: none; -} -.tex-button-row { - margin: 5px 0; -} -.tex-button-row:first-child { - margin-top: 0; -} -.tex-button-row:last-child { - margin-bottom: 0; -} -.renderer-widget-error { - background-color: #fcc; -} -.perseus-error { - background: #cf5044; - border: 2px solid red; - border-radius: 5px; - padding: 20px; - margin: 15px 0 10px; -} -@media (max-width: 767px) { - .perseus-renderer-responsive { - margin: 0 16px; - } - .perseus-renderer-responsive .perseus-renderer-responsive { - margin: 0; - } -} -@media (max-width: 767px) { - .perseus-mobile .perseus-block-math { - font-size: 18px; - } -} -.perseus-widget-editor-content .locked-figure-accordion h2 { - padding-top: 0; -} -.keypad-input { - outline: none !important; -} -.keypad-input .mq-editable-field .mq-root-block { - overflow-x: auto; -} -.keypad-input .mq-editable-field .mq-cursor:not(:only-child), -.keypad-input .mq-editable-field .mq-root-block.mq-hasCursor > .mq-cursor:only-child { - /* HACK(charlie): Magic numbers to properly size and position the vertical - cursor, which is visible whenever the cursor is not alone in its parent, - with the exception that it's also visible when the entire input is - empty. */ - height: 20px !important; - width: 2px; - margin-top: -5px !important; - vertical-align: middle !important; - border-radius: 1px !important; -} -.keypad-input .mq-editable-field .mq-cursor { - border-left: 2px solid #1865f2 !important; - margin-left: -1px !important; - margin-right: -1px !important; - opacity: 1 !important; - transition: opacity 300ms ease !important; - visibility: visible !important; -} -.keypad-input .mq-editable-field .mq-cursor.mq-blink { - opacity: 0 !important; - visibility: visible !important; -} -.keypad-input .mq-editable-field .mq-non-leaf .mq-cursor:only-child { - border: 2px solid !important; - border-color: #1865f2 !important; - border-radius: 1px; - opacity: 1 !important; - padding: 0 4px 0 4px; - transition: border-color 300ms ease !important; -} -.keypad-input .mq-editable-field .mq-non-leaf .mq-cursor:only-child.mq-blink { - border-color: #1865f2 !important; - opacity: 1 !important; -} -.keypad-input .mq-empty { - background: transparent !important; -} -.keypad-input .mq-empty:not(.mq-root-block):after, -.keypad-input .mq-hasCursor:empty:not(.mq-root-block):after { - border: 2px solid rgba(33, 36, 44, 0.16); - border-radius: 1px; - color: transparent; - display: inline-block; - margin-left: -1px; - margin-right: -1px; - padding: 0 4px 0 4px; - visibility: visible !important; -} -.keypad-input .mq-selection .mq-empty:not(.mq-root-block):after { - border-color: white; -} -.keypad-input .mq-hasCursor:empty:not(.mq-root-block):after { - content: "c"; -} -.keypad-input .mq-math-mode .mq-selection .mq-non-leaf, -.keypad-input .mq-editable-field .mq-selection .mq-non-leaf { - background: #1865f2 !important; - border-color: white !important; - color: white !important; -} -.keypad-input .mq-math-mode .mq-selection .mq-scaled, -.keypad-input .mq-editable-field .mq-selection .mq-scaled { - background: transparent !important; - border-color: transparent !important; - color: white !important; -} -.keypad-input .mq-selection { - background: #1865f2 !important; - border-color: white !important; - color: white !important; - display: inline-block !important; -} -/** - * @license - * MathQuill v0.10.1, by Han, Jeanine, and Mary - * http://mathquill.com | maintainers@mathquill.com - * - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL - * was not distributed with this file, You can obtain - * one at http://mozilla.org/MPL/2.0/. - */ - -.mq-aria-alert { - position: absolute; - left: -1000px; - top: -1000px; - width: 0px; - height: 0px; - text-align: left; - overflow: hidden; -} -.mq-mathspeak { - position: absolute; - left: -1000px; - top: -1000px; - width: 0px; - height: 0px; - text-align: left; - overflow: hidden; -} -@font-face { - font-family: Symbola; - src: local('Symbola Regular'), local('Symbola'), url(fonts/Symbola.woff) format('woff'); -} -.mq-editable-field { - display: -moz-inline-box; - display: inline-block; -} -.mq-editable-field .mq-cursor { - border-left: 1px solid currentColor; - margin-left: -1px; - position: relative; - z-index: 1; - padding: 0; - display: -moz-inline-box; - display: inline-block; -} -.mq-editable-field .mq-cursor.mq-blink { - visibility: hidden; -} -.mq-editable-field, -.mq-math-mode .mq-editable-field { - border: 1px solid gray; -} -.mq-editable-field.mq-focused, -.mq-math-mode .mq-editable-field.mq-focused { - -webkit-box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0; - -moz-box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0; - box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0; - border-color: #709ac0; -} -.mq-math-mode .mq-editable-field { - margin: 1px; -} -.mq-editable-field .mq-latex-command-input { - color: inherit; - font-family: 'Courier New', monospace; - border: 1px solid gray; - padding-right: 1px; - margin-right: 1px; - margin-left: 2px; -} -.mq-editable-field .mq-latex-command-input.mq-empty { - background: transparent; -} -.mq-editable-field .mq-latex-command-input.mq-hasCursor { - border-color: ActiveBorder; -} -.mq-editable-field.mq-empty:after, -.mq-editable-field.mq-text-mode:after, -.mq-math-mode .mq-empty:after { - visibility: hidden; - content: 'c'; -} -.mq-editable-field .mq-cursor:only-child:after, -.mq-editable-field .mq-textarea + .mq-cursor:last-child:after { - visibility: hidden; - content: 'c'; -} -.mq-editable-field .mq-text-mode .mq-cursor:only-child:after { - content: ''; -} -.mq-editable-field.mq-text-mode { - overflow-x: auto; - overflow-y: hidden; -} -.mq-root-block, -.mq-math-mode .mq-root-block { - display: -moz-inline-box; - display: inline-block; - width: 100%; - padding: 2px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - white-space: nowrap; - overflow: hidden; - vertical-align: middle; -} -.mq-root-block .mq-digit, -.mq-math-mode .mq-root-block .mq-digit { - margin-left: 0.009em; - margin-right: 0.009em; -} -.mq-root-block .mq-group-start, -.mq-math-mode .mq-root-block .mq-group-start { - margin-left: 0.11em; - margin-right: -0.01em; -} -.mq-root-block .mq-group-other, -.mq-math-mode .mq-root-block .mq-group-other { - margin-left: -0.01em; - margin-right: -0.01em; -} -.mq-root-block .mq-group-leading-1, -.mq-math-mode .mq-root-block .mq-group-leading-1, -.mq-root-block .mq-group-leading-2, -.mq-math-mode .mq-root-block .mq-group-leading-2 { - margin-left: 0; - margin-right: -0.01em; -} -.mq-root-block .mq-group-leading-3, -.mq-math-mode .mq-root-block .mq-group-leading-3 { - margin-left: 0.036em; - margin-right: -0.01em; -} -.mq-root-block.mq-suppress-grouping .mq-group-start, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-start, -.mq-root-block.mq-suppress-grouping .mq-group-other, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-other, -.mq-root-block.mq-suppress-grouping .mq-group-leading-1, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-leading-1, -.mq-root-block.mq-suppress-grouping .mq-group-leading-2, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-leading-2, -.mq-root-block.mq-suppress-grouping .mq-group-leading-3, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-leading-3 { - margin-left: 0.009em; - margin-right: 0.009em; -} -.mq-math-mode { - font-variant: normal; - font-weight: normal; - font-style: normal; - font-size: 115%; - line-height: 1; - display: -moz-inline-box; - display: inline-block; -} -.mq-math-mode .mq-non-leaf, -.mq-math-mode .mq-scaled { - display: -moz-inline-box; - display: inline-block; -} -.mq-math-mode var, -.mq-math-mode .mq-text-mode, -.mq-math-mode .mq-nonSymbola { - font-family: 'Times New Roman', Symbola, serif; - line-height: 0.9; -} -.mq-math-mode svg { - fill: currentColor; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.mq-math-mode * { - font-size: inherit; - line-height: inherit; - margin: 0; - padding: 0; - border-color: black; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - box-sizing: border-box; -} -.mq-math-mode .mq-empty { - background: rgba(0, 0, 0, 0.2); -} -.mq-math-mode .mq-empty.mq-root-block { - background: transparent; -} -.mq-math-mode .mq-empty.mq-quiet-delimiter { - background: transparent; -} -.mq-math-mode.mq-empty { - background: transparent; -} -.mq-math-mode .mq-text-mode { - display: inline-block; - white-space: pre; -} -.mq-math-mode .mq-text-mode.mq-hasCursor { - box-shadow: inset darkgray 0 0.1em 0.2em; - padding: 0 0.1em; - margin: 0 -0.1em; - min-width: 1ex; -} -.mq-math-mode .mq-font { - font: 1em 'Times New Roman', Symbola, serif; -} -.mq-math-mode .mq-font * { - font-family: inherit; - font-style: inherit; -} -.mq-math-mode b, -.mq-math-mode b.mq-font { - font-weight: bolder; -} -.mq-math-mode var, -.mq-math-mode i, -.mq-math-mode i.mq-font { - font-style: italic; -} -.mq-math-mode var.mq-f { - margin-right: 0.2em; - margin-left: 0.1em; -} -.mq-math-mode .mq-roman var.mq-f { - margin: 0; -} -.mq-math-mode big { - font-size: 200%; -} -.mq-math-mode .mq-int > big { - display: inline-block; - -webkit-transform: scaleX(0.7); - -moz-transform: scaleX(0.7); - -ms-transform: scaleX(0.7); - -o-transform: scaleX(0.7); - transform: scaleX(0.7); - vertical-align: -0.16em; -} -.mq-math-mode .mq-int > .mq-supsub { - font-size: 80%; - vertical-align: -1.1em; - padding-right: 0.2em; -} -.mq-math-mode .mq-int > .mq-supsub > .mq-sup > .mq-sup-inner { - vertical-align: 1.3em; -} -.mq-math-mode .mq-int > .mq-supsub > .mq-sub { - margin-left: -0.35em; -} -.mq-math-mode .mq-roman { - font-style: normal; -} -.mq-math-mode .mq-sans-serif { - font-family: sans-serif, Symbola, serif; -} -.mq-math-mode .mq-monospace { - font-family: monospace, Symbola, serif; -} -.mq-math-mode .mq-overline { - border-top: 1px solid; - margin-top: 1px; -} -.mq-math-mode .mq-underline { - border-bottom: 1px solid; - margin-bottom: 1px; -} -.mq-math-mode .mq-binary-operator { - padding: 0 0.2em; - display: -moz-inline-box; - display: inline-block; -} -.mq-math-mode .mq-supsub { - text-align: left; - font-size: 90%; - vertical-align: -0.5em; -} -.mq-math-mode .mq-supsub.mq-sup-only { - vertical-align: 0.5em; -} -.mq-math-mode .mq-supsub.mq-sup-only > .mq-sup { - display: inline-block; - vertical-align: text-bottom; -} -.mq-math-mode .mq-supsub .mq-sup { - display: block; -} -.mq-math-mode .mq-supsub .mq-sub { - display: block; - float: left; -} -.mq-math-mode .mq-supsub .mq-binary-operator { - padding: 0 0.1em; -} -.mq-math-mode .mq-supsub .mq-fraction { - font-size: 70%; -} -.mq-math-mode sup.mq-nthroot { - font-size: 80%; - vertical-align: 0.8em; - margin-right: -0.6em; - margin-left: 0.2em; - min-width: 0.5em; -} -.mq-math-mode .mq-ghost svg { - opacity: 0.2; -} -.mq-math-mode .mq-bracket-middle { - margin-top: 0.1em; - margin-bottom: 0.1em; -} -.mq-math-mode .mq-bracket-l, -.mq-math-mode .mq-bracket-r { - position: absolute; - top: 0; - bottom: 2px; -} -.mq-math-mode .mq-bracket-l { - left: 0; -} -.mq-math-mode .mq-bracket-r { - right: 0; -} -.mq-math-mode .mq-bracket-container { - position: relative; -} -.mq-math-mode .mq-array { - vertical-align: middle; - text-align: center; -} -.mq-math-mode .mq-array > span { - display: block; -} -.mq-math-mode .mq-operator-name { - font-family: Symbola, 'Times New Roman', serif; - line-height: 0.9; - font-style: normal; -} -.mq-math-mode var.mq-operator-name.mq-first { - padding-left: 0.2em; -} -.mq-math-mode var.mq-operator-name.mq-last, -.mq-math-mode .mq-supsub.mq-after-operator-name { - padding-right: 0.2em; -} -.mq-math-mode .mq-fraction { - font-size: 90%; - text-align: center; - vertical-align: -0.4em; - padding: 0 0.2em; -} -.mq-math-mode .mq-fraction, -.mq-math-mode .mq-large-operator, -.mq-math-mode x:-moz-any-link { - display: -moz-groupbox; -} -.mq-math-mode .mq-fraction, -.mq-math-mode .mq-large-operator, -.mq-math-mode x:-moz-any-link, -.mq-math-mode x:default { - display: inline-block; -} -.mq-math-mode .mq-numerator, -.mq-math-mode .mq-denominator, -.mq-math-mode .mq-dot-recurring { - display: block; -} -.mq-math-mode .mq-numerator { - padding: 0 0.1em; -} -.mq-math-mode .mq-denominator { - border-top: 1px solid; - float: right; - width: 100%; - padding: 0.1em; -} -.mq-math-mode .mq-dot-recurring { - text-align: center; - height: 0.3em; -} -.mq-math-mode .mq-sqrt-prefix { - position: absolute; - top: 1px; - bottom: 0.15em; - width: 0.95em; -} -.mq-math-mode .mq-sqrt-container { - position: relative; -} -.mq-math-mode .mq-sqrt-stem { - border-top: 1px solid; - margin-top: 1px; - margin-left: 0.9em; - padding-left: 0.15em; - padding-right: 0.2em; - margin-right: 0.1em; - padding-top: 1px; -} -.mq-math-mode .mq-diacritic-above { - display: block; - text-align: center; - line-height: 0.4em; -} -.mq-math-mode .mq-diacritic-stem { - display: block; - text-align: center; -} -.mq-math-mode .mq-hat-prefix { - display: block; - text-align: center; - line-height: 0.95em; - margin-bottom: -0.7em; - transform: scaleX(1.5); - -moz-transform: scaleX(1.5); - -o-transform: scaleX(1.5); - -webkit-transform: scaleX(1.5); -} -.mq-math-mode .mq-hat-stem { - display: block; -} -.mq-math-mode .mq-large-operator { - vertical-align: -0.2em; - padding: 0.2em; - text-align: center; -} -.mq-math-mode .mq-large-operator .mq-from, -.mq-math-mode .mq-large-operator big, -.mq-math-mode .mq-large-operator .mq-to { - display: block; -} -.mq-math-mode .mq-large-operator .mq-from, -.mq-math-mode .mq-large-operator .mq-to { - font-size: 80%; -} -.mq-math-mode .mq-large-operator .mq-from { - float: right; - /* take out of normal flow to manipulate baseline */ - width: 100%; -} -.mq-math-mode, -.mq-math-mode .mq-editable-field { - cursor: text; - font-family: Symbola, 'Times New Roman', serif; -} -.mq-math-mode .mq-overarc { - border-top: 1px solid black; - -webkit-border-top-right-radius: 50% 0.3em; - -moz-border-radius-topright: 50% 0.3em; - border-top-right-radius: 50% 0.3em; - -webkit-border-top-left-radius: 50% 0.3em; - -moz-border-radius-topleft: 50% 0.3em; - border-top-left-radius: 50% 0.3em; - margin-top: 1px; - padding-top: 0.15em; -} -.mq-math-mode .mq-overarrow { - min-width: 0.5em; - border-top: 1px solid black; - margin-top: 1px; - padding-top: 0.2em; - text-align: center; - position: relative; -} -.mq-math-mode .mq-overarrow:after { - position: absolute; - right: -0.1em; - top: -0.48em; - font-size: 0.5em; - content: '\27A4'; -} -.mq-math-mode .mq-overarrow.mq-arrow-left:after { - content: ''; - display: none; -} -.mq-math-mode .mq-overarrow.mq-arrow-left:before, -.mq-math-mode .mq-overarrow.mq-arrow-leftright:before { - position: absolute; - top: -0.48em; - left: -0.1em; - font-size: 0.5em; - content: '\27A4'; - -moz-transform: scaleX(-1); - -o-transform: scaleX(-1); - -webkit-transform: scaleX(-1); - transform: scaleX(-1); - filter: FlipH; - -ms-filter: 'FlipH'; -} -.mq-math-mode .mq-selection, -.mq-editable-field .mq-selection, -.mq-math-mode .mq-selection .mq-non-leaf, -.mq-editable-field .mq-selection .mq-non-leaf, -.mq-math-mode .mq-selection .mq-scaled, -.mq-editable-field .mq-selection .mq-scaled { - background: #b4d5fe !important; -} -.mq-math-mode .mq-selection.mq-blur, -.mq-editable-field .mq-selection.mq-blur, -.mq-math-mode .mq-selection.mq-blur .mq-non-leaf, -.mq-editable-field .mq-selection.mq-blur .mq-non-leaf, -.mq-math-mode .mq-selection.mq-blur .mq-scaled, -.mq-editable-field .mq-selection.mq-blur .mq-scaled { - background: #d4d4d4 !important; - color: black; - border-color: black; -} -html body .mq-math-mode .mq-selection .mq-nthroot-container *, -html body .mq-editable-field .mq-selection .mq-nthroot-container * { - background: transparent !important; -} -.mq-editable-field .mq-textarea, -.mq-math-mode .mq-textarea { - position: relative; - -webkit-user-select: text; - -moz-user-select: text; - user-select: text; -} -.mq-editable-field .mq-textarea *, -.mq-math-mode .mq-textarea * { - -webkit-user-select: text; - -moz-user-select: text; - user-select: text; - position: absolute; - clip: rect(1em 1em 1em 1em); - -webkit-transform: scale(0); - -moz-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - resize: none; - width: 1px; - height: 1px; - box-sizing: content-box; -} - - -.MafsView { - display: block; - background: var(--mafs-bg); - overflow: hidden; - -webkit-user-select: none; - user-select: none; - font-family: inherit; - font-variant-numeric: tabular-nums; - touch-action: none; - outline: 0; - - --mafs-bg: black; - --mafs-fg: white; - - --mafs-origin-color: var(--mafs-fg); - --mafs-line-color: #555; - --mafs-line-stroke-dash-style: 4, 3; - --grid-line-subdivision-color: #222; - - --mafs-red: #f11d0e; - --mafs-orange: #f14e0e; - --mafs-yellow: #ffe44a; - --mafs-green: #15e272; - --mafs-blue: #58a6ff; - --mafs-indigo: #7c58ff; - --mafs-violet: #ae58ff; - --mafs-pink: #ee00ab; -} - -.MafsView text { - fill: var(--mafs-fg); - cursor: default; -} - -.MafsView path { - stroke: var(--mafs-fg); -} - -.MafsView:focus-visible { - border-radius: 5px; - outline: 3px solid #58a6ff; -} - -@supports not selector(:focus-visible) { - .MafsView:focus { - border-radius: 5px; - outline: 3px solid #58a6ff; - } -} - -.mafs-shadow { - paint-order: stroke; - stroke-width: 3px; - stroke: var(--mafs-bg); - stroke-opacity: 0.75; - stroke-linejoin: round; -} - -.mafs-movable-point { - cursor: grab; - touch-action: none; -} - -.mafs-movable-point-dragging { - cursor: grabbing; -} - -.mafs-movable-point:focus { - outline: 0; -} - -.mafs-movable-point * { - fill: none; - stroke: none; -} - -.mafs-movable-point-hitbox { - fill: transparent; -} - -.mafs-movable-point-focus { - stroke: var(--movable-point-color); - stroke-width: 2; - stroke-opacity: 0; - fill: none; - transition: stroke-opacity 0.2s ease; -} - -.mafs-movable-point-ring { - fill: var(--movable-point-color); - fill-opacity: 0.25; - stroke: none; - transition: r 0.2s ease; -} - -.mafs-movable-point-point { - fill: var(--movable-point-color); - transition: r 0.2s ease; -} - -/* Hover */ - -.mafs-movable-point:hover .mafs-movable-point-point, -.mafs-movable-point:focus-visible .mafs-movable-point-point { - r: calc(var(--movable-point-ring-size) - 2px); -} - -.mafs-movable-point:hover .mafs-movable-point-ring, -.mafs-movable-point:focus-visible .mafs-movable-point-ring { - r: calc(var(--movable-point-ring-size) + 3px); -} - -.mafs-movable-point.mafs-movable-point-dragging .mafs-movable-point-ring { - r: var(--movable-point-ring-size); -} - -/* Focus */ - -.mafs-movable-point:focus-visible .mafs-movable-point-focus { - stroke-opacity: 1; -} - -/** - * Overrides of mafs theme-- we will want to move this into JS land - * to take advantage of WB tokens - */ -.MafsView { - --mafs-bg: transparent; - --mafs-fg: rgb(33, 36, 44); /* WB color.offBlack */ - - /* Grid lines */ - --mafs-line-color: rgba(33, 36, 44, 0.16); /* WB color.offBlack16*/ - - /* Axis lines */ - --mafs-axis-stroke-width: 2px; - - --mafs-blue: #1865f2; /* WB color.blue */ - --mafs-red: #d92916; /* WB color.red */ - --mafs-green: #00a60e; /* WB color.green */ - --mafs-violet: #9059ff; /* WB color.purple */ - --mafs-yellow: #ffb100; /* WB color.gold */ - - /* overridden on a per-point basis */ - --movable-point-color: var(--mafs-blue); - --movable-point-center-radius: 6px; - --movable-point-ring-radius: calc(2px + var(--movable-point-center-radius)); - --movable-point-halo-radius: calc(3px + var(--movable-point-ring-radius)); - --movable-point-hover-expansion: 2px; - --movable-point-focus-ring-offset: 2px; - - --movable-line-stroke-color: var(--mafs-blue); - --movable-line-stroke-weight: 2px; - --movable-line-stroke-weight-active: 4px; -} - -.MafsView > svg { - /* Chrome/Safari bugfix for LEMS-1906 */ - display: block; -} - -.MafsView .movable-line:hover, -.movable-dragging { - --movable-line-stroke-weight: var(--movable-line-stroke-weight-active); -} - -.MafsView .movable-line:focus, -.movable-polygon:focus { - outline: none; -} - -.MafsView - .movable-line - :is(.movable-line-focus-outline, .movable-line-focus-outline-gap) { - stroke: transparent; -} - -.MafsView .movable-line:focus-visible .movable-line-focus-outline { - stroke: var(--mafs-blue); - stroke-width: 10px; -} - -.MafsView .movable-line:focus-visible .movable-line-focus-outline-gap { - stroke: white; - stroke-width: 6px; -} - -.MafsView .movable-point { - cursor: grab; - touch-action: none; - outline: none; -} - -.MafsView .movable-point.movable-point--dragging { - cursor: grabbing; -} - -.MafsView .movable-point.movable-point--dragging .movable-point-halo { - opacity: 0; -} - -.MafsView .movable-point-hitbox { - fill: transparent; -} - -.MafsView - :is( - .movable-point-center, - .movable-point-ring, - .movable-point-halo, - .movable-point-focus-outline - ) { - transition: - r 0.15s ease-out, - opacity 0.15s ease-out; -} - -.MafsView .movable-point-center { - r: var(--movable-point-center-radius); -} - -.MafsView .movable-point-halo { - r: var(--movable-point-halo-radius); - fill: var(--movable-point-color); - opacity: 0.25; - filter: drop-shadow(0 5px 5px #0008); -} - -.MafsView .movable-point-ring { - r: var(--movable-point-ring-radius); - fill: #fff; -} - -.MafsView .movable-point:hover .movable-point-center { - r: calc( - var(--movable-point-hover-expansion) + - var(--movable-point-center-radius) - ); -} - -.MafsView .movable-point:hover .movable-point-ring { - r: calc( - var(--movable-point-hover-expansion) + var(--movable-point-ring-radius) - ); -} - -.MafsView .movable-point:hover .movable-point-halo { - r: calc( - var(--movable-point-hover-expansion) + var(--movable-point-halo-radius) - ); -} - -.MafsView .movable-point .movable-point-focus-outline { - visibility: hidden; - r: calc( - var(--movable-point-halo-radius) + - var(--movable-point-focus-ring-offset) - ); - stroke-width: 2px; - fill: none; - stroke: var(--mafs-blue); -} - -.MafsView .movable-point:hover .movable-point-focus-outline { - r: calc( - var(--movable-point-hover-expansion) + var(--movable-point-halo-radius) + - var(--movable-point-focus-ring-offset) - ); -} - -.MafsView - .movable-point:is(:focus-visible, .movable-point--focus) - .movable-point-focus-outline { - visibility: visible; -} - -.MafsView .movable-circle { - cursor: grab; -} - -.MafsView .movable-circle .circle { - stroke: var(--mafs-blue); - stroke-width: 2px; - fill: transparent; -} - -.MafsView .movable-circle:hover .circle { - fill: var(--mafs-blue); - fill-opacity: 0.16; -} - -.MafsView .movable-circle.movable-circle--dragging { - cursor: grabbing; - outline: none; -} - -.MafsView .movable-circle .focus-ring { - visibility: hidden; /* overridden when the circle is focused */ - stroke: var(--mafs-blue); - stroke-width: 2px; - fill: transparent; -} - -.MafsView .movable-circle:focus { - outline: none; -} - -.MafsView .movable-circle:focus-visible .focus-ring { - visibility: visible; -} - -.MafsView .movable-circle .movable-circle-handle { - fill: var(--mafs-blue); /* WB fadedOffBlack64 */ - stroke: #fff; - stroke-width: 2px; -} - -.MafsView .movable-circle .movable-circle-handle-dot { - fill: #fff; - r: 1.25px; -} - -@font-face { - font-family: Mafs-MJXTEX; - src: url("fonts/MathJax_Main-Regular.woff") - format("woff"); -} - -.MafsView pattern g { - stroke: #909296; -} -.axis-tick-labels { - font-size: 14px; - font-family: "Mafs-MJXTEX"; - line-height: 1.5em; - /* Prevent labels from being selected, and from interfering with click and - * drag interactions on the graph. */ - user-select: none; - pointer-events: none; - /* Prevent labels from covering up interaction points. */ - z-index: -1; -} - -.y-axis-tick-labels { - width: 1.75em; - display: flex; - flex-flow: column; - transform: translateX(calc(-100% - 0.5em)); - position: absolute; - text-align: right; -} -.y-axis-right-of-grid { - transform: translateX(calc(50% + 0.5em)); -} -.x-axis-tick-labels { - display: flex; - flex-flow: row; - flex-direction: row-reverse; - position: absolute; - transform: translateY(calc(50% - 0.25em)); -} -.x-axis-top-of-grid { - transform: translateY(calc(-100% + 0.25em)); -} - -.x-axis-tick-labels span, -.y-axis-tick-labels span { - /* The negative sign is rendered as a pseudo-element to - ensure that we are positioning all labels correctly */ - &::before { - content: attr(data-content); - position: absolute; - /* We're translating the symbol up by 1px to ensure it's legible around gridlines. */ - transform: translate(-100%, -1px); - font-weight: 600; /* This helps get the symbol to render crisply */ - } -} - -.y-axis-tick-labels span { - display: inline-block; - height: var(--y-axis-label-height, 20px); -} - -.x-axis-tick-labels span { - text-align: center; - width: var(--x-axis-label-width, 20px); -} diff --git a/kolibri/plugins/perseus_viewer/frontend/dist/math-input.css b/kolibri/plugins/perseus_viewer/frontend/dist/math-input.css deleted file mode 100644 index 831d07bf996..00000000000 --- a/kolibri/plugins/perseus_viewer/frontend/dist/math-input.css +++ /dev/null @@ -1,620 +0,0 @@ -.keypad-input { - outline: none !important; -} -.keypad-input .mq-editable-field .mq-root-block { - overflow-x: auto; -} -.keypad-input .mq-editable-field .mq-cursor:not(:only-child), -.keypad-input .mq-editable-field .mq-root-block.mq-hasCursor > .mq-cursor:only-child { - /* HACK(charlie): Magic numbers to properly size and position the vertical - cursor, which is visible whenever the cursor is not alone in its parent, - with the exception that it's also visible when the entire input is - empty. */ - height: 20px !important; - width: 2px; - margin-top: -5px !important; - vertical-align: middle !important; - border-radius: 1px !important; -} -.keypad-input .mq-editable-field .mq-cursor { - border-left: 2px solid #1865f2 !important; - margin-left: -1px !important; - margin-right: -1px !important; - opacity: 1 !important; - transition: opacity 300ms ease !important; - visibility: visible !important; -} -.keypad-input .mq-editable-field .mq-cursor.mq-blink { - opacity: 0 !important; - visibility: visible !important; -} -.keypad-input .mq-editable-field .mq-non-leaf .mq-cursor:only-child { - border: 2px solid !important; - border-color: #1865f2 !important; - border-radius: 1px; - opacity: 1 !important; - padding: 0 4px 0 4px; - transition: border-color 300ms ease !important; -} -.keypad-input .mq-editable-field .mq-non-leaf .mq-cursor:only-child.mq-blink { - border-color: #1865f2 !important; - opacity: 1 !important; -} -.keypad-input .mq-empty { - background: transparent !important; -} -.keypad-input .mq-empty:not(.mq-root-block):after, -.keypad-input .mq-hasCursor:empty:not(.mq-root-block):after { - border: 2px solid rgba(33, 36, 44, 0.16); - border-radius: 1px; - color: transparent; - display: inline-block; - margin-left: -1px; - margin-right: -1px; - padding: 0 4px 0 4px; - visibility: visible !important; -} -.keypad-input .mq-selection .mq-empty:not(.mq-root-block):after { - border-color: white; -} -.keypad-input .mq-hasCursor:empty:not(.mq-root-block):after { - content: "c"; -} -.keypad-input .mq-math-mode .mq-selection .mq-non-leaf, -.keypad-input .mq-editable-field .mq-selection .mq-non-leaf { - background: #1865f2 !important; - border-color: white !important; - color: white !important; -} -.keypad-input .mq-math-mode .mq-selection .mq-scaled, -.keypad-input .mq-editable-field .mq-selection .mq-scaled { - background: transparent !important; - border-color: transparent !important; - color: white !important; -} -.keypad-input .mq-selection { - background: #1865f2 !important; - border-color: white !important; - color: white !important; - display: inline-block !important; -} -/** - * @license - * MathQuill v0.10.1, by Han, Jeanine, and Mary - * http://mathquill.com | maintainers@mathquill.com - * - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL - * was not distributed with this file, You can obtain - * one at http://mozilla.org/MPL/2.0/. - */ - -.mq-aria-alert { - position: absolute; - left: -1000px; - top: -1000px; - width: 0px; - height: 0px; - text-align: left; - overflow: hidden; -} -.mq-mathspeak { - position: absolute; - left: -1000px; - top: -1000px; - width: 0px; - height: 0px; - text-align: left; - overflow: hidden; -} -@font-face { - font-family: Symbola; - src: local('Symbola Regular'), local('Symbola'), url(fonts/Symbola.woff) format('woff'); -} -.mq-editable-field { - display: -moz-inline-box; - display: inline-block; -} -.mq-editable-field .mq-cursor { - border-left: 1px solid currentColor; - margin-left: -1px; - position: relative; - z-index: 1; - padding: 0; - display: -moz-inline-box; - display: inline-block; -} -.mq-editable-field .mq-cursor.mq-blink { - visibility: hidden; -} -.mq-editable-field, -.mq-math-mode .mq-editable-field { - border: 1px solid gray; -} -.mq-editable-field.mq-focused, -.mq-math-mode .mq-editable-field.mq-focused { - -webkit-box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0; - -moz-box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0; - box-shadow: #8bd 0 0 1px 2px, inset #6ae 0 0 2px 0; - border-color: #709ac0; -} -.mq-math-mode .mq-editable-field { - margin: 1px; -} -.mq-editable-field .mq-latex-command-input { - color: inherit; - font-family: 'Courier New', monospace; - border: 1px solid gray; - padding-right: 1px; - margin-right: 1px; - margin-left: 2px; -} -.mq-editable-field .mq-latex-command-input.mq-empty { - background: transparent; -} -.mq-editable-field .mq-latex-command-input.mq-hasCursor { - border-color: ActiveBorder; -} -.mq-editable-field.mq-empty:after, -.mq-editable-field.mq-text-mode:after, -.mq-math-mode .mq-empty:after { - visibility: hidden; - content: 'c'; -} -.mq-editable-field .mq-cursor:only-child:after, -.mq-editable-field .mq-textarea + .mq-cursor:last-child:after { - visibility: hidden; - content: 'c'; -} -.mq-editable-field .mq-text-mode .mq-cursor:only-child:after { - content: ''; -} -.mq-editable-field.mq-text-mode { - overflow-x: auto; - overflow-y: hidden; -} -.mq-root-block, -.mq-math-mode .mq-root-block { - display: -moz-inline-box; - display: inline-block; - width: 100%; - padding: 2px; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - white-space: nowrap; - overflow: hidden; - vertical-align: middle; -} -.mq-root-block .mq-digit, -.mq-math-mode .mq-root-block .mq-digit { - margin-left: 0.009em; - margin-right: 0.009em; -} -.mq-root-block .mq-group-start, -.mq-math-mode .mq-root-block .mq-group-start { - margin-left: 0.11em; - margin-right: -0.01em; -} -.mq-root-block .mq-group-other, -.mq-math-mode .mq-root-block .mq-group-other { - margin-left: -0.01em; - margin-right: -0.01em; -} -.mq-root-block .mq-group-leading-1, -.mq-math-mode .mq-root-block .mq-group-leading-1, -.mq-root-block .mq-group-leading-2, -.mq-math-mode .mq-root-block .mq-group-leading-2 { - margin-left: 0; - margin-right: -0.01em; -} -.mq-root-block .mq-group-leading-3, -.mq-math-mode .mq-root-block .mq-group-leading-3 { - margin-left: 0.036em; - margin-right: -0.01em; -} -.mq-root-block.mq-suppress-grouping .mq-group-start, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-start, -.mq-root-block.mq-suppress-grouping .mq-group-other, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-other, -.mq-root-block.mq-suppress-grouping .mq-group-leading-1, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-leading-1, -.mq-root-block.mq-suppress-grouping .mq-group-leading-2, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-leading-2, -.mq-root-block.mq-suppress-grouping .mq-group-leading-3, -.mq-math-mode .mq-root-block.mq-suppress-grouping .mq-group-leading-3 { - margin-left: 0.009em; - margin-right: 0.009em; -} -.mq-math-mode { - font-variant: normal; - font-weight: normal; - font-style: normal; - font-size: 115%; - line-height: 1; - display: -moz-inline-box; - display: inline-block; -} -.mq-math-mode .mq-non-leaf, -.mq-math-mode .mq-scaled { - display: -moz-inline-box; - display: inline-block; -} -.mq-math-mode var, -.mq-math-mode .mq-text-mode, -.mq-math-mode .mq-nonSymbola { - font-family: 'Times New Roman', Symbola, serif; - line-height: 0.9; -} -.mq-math-mode svg { - fill: currentColor; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; -} -.mq-math-mode * { - font-size: inherit; - line-height: inherit; - margin: 0; - padding: 0; - border-color: black; - -webkit-user-select: none; - -moz-user-select: none; - user-select: none; - box-sizing: border-box; -} -.mq-math-mode .mq-empty { - background: rgba(0, 0, 0, 0.2); -} -.mq-math-mode .mq-empty.mq-root-block { - background: transparent; -} -.mq-math-mode .mq-empty.mq-quiet-delimiter { - background: transparent; -} -.mq-math-mode.mq-empty { - background: transparent; -} -.mq-math-mode .mq-text-mode { - display: inline-block; - white-space: pre; -} -.mq-math-mode .mq-text-mode.mq-hasCursor { - box-shadow: inset darkgray 0 0.1em 0.2em; - padding: 0 0.1em; - margin: 0 -0.1em; - min-width: 1ex; -} -.mq-math-mode .mq-font { - font: 1em 'Times New Roman', Symbola, serif; -} -.mq-math-mode .mq-font * { - font-family: inherit; - font-style: inherit; -} -.mq-math-mode b, -.mq-math-mode b.mq-font { - font-weight: bolder; -} -.mq-math-mode var, -.mq-math-mode i, -.mq-math-mode i.mq-font { - font-style: italic; -} -.mq-math-mode var.mq-f { - margin-right: 0.2em; - margin-left: 0.1em; -} -.mq-math-mode .mq-roman var.mq-f { - margin: 0; -} -.mq-math-mode big { - font-size: 200%; -} -.mq-math-mode .mq-int > big { - display: inline-block; - -webkit-transform: scaleX(0.7); - -moz-transform: scaleX(0.7); - -ms-transform: scaleX(0.7); - -o-transform: scaleX(0.7); - transform: scaleX(0.7); - vertical-align: -0.16em; -} -.mq-math-mode .mq-int > .mq-supsub { - font-size: 80%; - vertical-align: -1.1em; - padding-right: 0.2em; -} -.mq-math-mode .mq-int > .mq-supsub > .mq-sup > .mq-sup-inner { - vertical-align: 1.3em; -} -.mq-math-mode .mq-int > .mq-supsub > .mq-sub { - margin-left: -0.35em; -} -.mq-math-mode .mq-roman { - font-style: normal; -} -.mq-math-mode .mq-sans-serif { - font-family: sans-serif, Symbola, serif; -} -.mq-math-mode .mq-monospace { - font-family: monospace, Symbola, serif; -} -.mq-math-mode .mq-overline { - border-top: 1px solid; - margin-top: 1px; -} -.mq-math-mode .mq-underline { - border-bottom: 1px solid; - margin-bottom: 1px; -} -.mq-math-mode .mq-binary-operator { - padding: 0 0.2em; - display: -moz-inline-box; - display: inline-block; -} -.mq-math-mode .mq-supsub { - text-align: left; - font-size: 90%; - vertical-align: -0.5em; -} -.mq-math-mode .mq-supsub.mq-sup-only { - vertical-align: 0.5em; -} -.mq-math-mode .mq-supsub.mq-sup-only > .mq-sup { - display: inline-block; - vertical-align: text-bottom; -} -.mq-math-mode .mq-supsub .mq-sup { - display: block; -} -.mq-math-mode .mq-supsub .mq-sub { - display: block; - float: left; -} -.mq-math-mode .mq-supsub .mq-binary-operator { - padding: 0 0.1em; -} -.mq-math-mode .mq-supsub .mq-fraction { - font-size: 70%; -} -.mq-math-mode sup.mq-nthroot { - font-size: 80%; - vertical-align: 0.8em; - margin-right: -0.6em; - margin-left: 0.2em; - min-width: 0.5em; -} -.mq-math-mode .mq-ghost svg { - opacity: 0.2; -} -.mq-math-mode .mq-bracket-middle { - margin-top: 0.1em; - margin-bottom: 0.1em; -} -.mq-math-mode .mq-bracket-l, -.mq-math-mode .mq-bracket-r { - position: absolute; - top: 0; - bottom: 2px; -} -.mq-math-mode .mq-bracket-l { - left: 0; -} -.mq-math-mode .mq-bracket-r { - right: 0; -} -.mq-math-mode .mq-bracket-container { - position: relative; -} -.mq-math-mode .mq-array { - vertical-align: middle; - text-align: center; -} -.mq-math-mode .mq-array > span { - display: block; -} -.mq-math-mode .mq-operator-name { - font-family: Symbola, 'Times New Roman', serif; - line-height: 0.9; - font-style: normal; -} -.mq-math-mode var.mq-operator-name.mq-first { - padding-left: 0.2em; -} -.mq-math-mode var.mq-operator-name.mq-last, -.mq-math-mode .mq-supsub.mq-after-operator-name { - padding-right: 0.2em; -} -.mq-math-mode .mq-fraction { - font-size: 90%; - text-align: center; - vertical-align: -0.4em; - padding: 0 0.2em; -} -.mq-math-mode .mq-fraction, -.mq-math-mode .mq-large-operator, -.mq-math-mode x:-moz-any-link { - display: -moz-groupbox; -} -.mq-math-mode .mq-fraction, -.mq-math-mode .mq-large-operator, -.mq-math-mode x:-moz-any-link, -.mq-math-mode x:default { - display: inline-block; -} -.mq-math-mode .mq-numerator, -.mq-math-mode .mq-denominator, -.mq-math-mode .mq-dot-recurring { - display: block; -} -.mq-math-mode .mq-numerator { - padding: 0 0.1em; -} -.mq-math-mode .mq-denominator { - border-top: 1px solid; - float: right; - width: 100%; - padding: 0.1em; -} -.mq-math-mode .mq-dot-recurring { - text-align: center; - height: 0.3em; -} -.mq-math-mode .mq-sqrt-prefix { - position: absolute; - top: 1px; - bottom: 0.15em; - width: 0.95em; -} -.mq-math-mode .mq-sqrt-container { - position: relative; -} -.mq-math-mode .mq-sqrt-stem { - border-top: 1px solid; - margin-top: 1px; - margin-left: 0.9em; - padding-left: 0.15em; - padding-right: 0.2em; - margin-right: 0.1em; - padding-top: 1px; -} -.mq-math-mode .mq-diacritic-above { - display: block; - text-align: center; - line-height: 0.4em; -} -.mq-math-mode .mq-diacritic-stem { - display: block; - text-align: center; -} -.mq-math-mode .mq-hat-prefix { - display: block; - text-align: center; - line-height: 0.95em; - margin-bottom: -0.7em; - transform: scaleX(1.5); - -moz-transform: scaleX(1.5); - -o-transform: scaleX(1.5); - -webkit-transform: scaleX(1.5); -} -.mq-math-mode .mq-hat-stem { - display: block; -} -.mq-math-mode .mq-large-operator { - vertical-align: -0.2em; - padding: 0.2em; - text-align: center; -} -.mq-math-mode .mq-large-operator .mq-from, -.mq-math-mode .mq-large-operator big, -.mq-math-mode .mq-large-operator .mq-to { - display: block; -} -.mq-math-mode .mq-large-operator .mq-from, -.mq-math-mode .mq-large-operator .mq-to { - font-size: 80%; -} -.mq-math-mode .mq-large-operator .mq-from { - float: right; - /* take out of normal flow to manipulate baseline */ - width: 100%; -} -.mq-math-mode, -.mq-math-mode .mq-editable-field { - cursor: text; - font-family: Symbola, 'Times New Roman', serif; -} -.mq-math-mode .mq-overarc { - border-top: 1px solid black; - -webkit-border-top-right-radius: 50% 0.3em; - -moz-border-radius-topright: 50% 0.3em; - border-top-right-radius: 50% 0.3em; - -webkit-border-top-left-radius: 50% 0.3em; - -moz-border-radius-topleft: 50% 0.3em; - border-top-left-radius: 50% 0.3em; - margin-top: 1px; - padding-top: 0.15em; -} -.mq-math-mode .mq-overarrow { - min-width: 0.5em; - border-top: 1px solid black; - margin-top: 1px; - padding-top: 0.2em; - text-align: center; - position: relative; -} -.mq-math-mode .mq-overarrow:after { - position: absolute; - right: -0.1em; - top: -0.48em; - font-size: 0.5em; - content: '\27A4'; -} -.mq-math-mode .mq-overarrow.mq-arrow-left:after { - content: ''; - display: none; -} -.mq-math-mode .mq-overarrow.mq-arrow-left:before, -.mq-math-mode .mq-overarrow.mq-arrow-leftright:before { - position: absolute; - top: -0.48em; - left: -0.1em; - font-size: 0.5em; - content: '\27A4'; - -moz-transform: scaleX(-1); - -o-transform: scaleX(-1); - -webkit-transform: scaleX(-1); - transform: scaleX(-1); - filter: FlipH; - -ms-filter: 'FlipH'; -} -.mq-math-mode .mq-selection, -.mq-editable-field .mq-selection, -.mq-math-mode .mq-selection .mq-non-leaf, -.mq-editable-field .mq-selection .mq-non-leaf, -.mq-math-mode .mq-selection .mq-scaled, -.mq-editable-field .mq-selection .mq-scaled { - background: #b4d5fe !important; -} -.mq-math-mode .mq-selection.mq-blur, -.mq-editable-field .mq-selection.mq-blur, -.mq-math-mode .mq-selection.mq-blur .mq-non-leaf, -.mq-editable-field .mq-selection.mq-blur .mq-non-leaf, -.mq-math-mode .mq-selection.mq-blur .mq-scaled, -.mq-editable-field .mq-selection.mq-blur .mq-scaled { - background: #d4d4d4 !important; - color: black; - border-color: black; -} -html body .mq-math-mode .mq-selection .mq-nthroot-container *, -html body .mq-editable-field .mq-selection .mq-nthroot-container * { - background: transparent !important; -} -.mq-editable-field .mq-textarea, -.mq-math-mode .mq-textarea { - position: relative; - -webkit-user-select: text; - -moz-user-select: text; - user-select: text; -} -.mq-editable-field .mq-textarea *, -.mq-math-mode .mq-textarea * { - -webkit-user-select: text; - -moz-user-select: text; - user-select: text; - position: absolute; - clip: rect(1em 1em 1em 1em); - -webkit-transform: scale(0); - -moz-transform: scale(0); - -ms-transform: scale(0); - -o-transform: scale(0); - transform: scale(0); - resize: none; - width: 1px; - height: 1px; - box-sizing: content-box; -} - diff --git a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue index d2150058f3b..b5d6f38e0c8 100644 --- a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue +++ b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue @@ -876,151 +876,71 @@ @@ -944,6 +939,12 @@ } } + .perseus-keypad-container { + // Add a solid background so page content doesn't show through + background: #f7f8fa; + box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1); + } + .perseus-keypad-container > div > div { pointer-events: auto; } diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/categorizer.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/categorizer.js index cc80f1761ca..2e48fb31452 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/categorizer.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/categorizer.js @@ -1,11 +1,5 @@ export default (widget, rubric) => { - const values = rubric.values; - - widget.props.onChange( - { - values, - }, - null, // cb - false, // silent - ); + widget.props.handleUserInput({ + values: rubric.values, + }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/dropdown.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/dropdown.js index 9d70fc82b17..9af41442b6b 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/dropdown.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/dropdown.js @@ -1,10 +1,7 @@ export default (widget, rubric) => { - const correct = rubric.choices.find(choice => choice.correct); - widget.props.onChange( - { - selected: rubric.choices.indexOf(correct) + 1, - }, - null, - false, - ); + const correctIndex = rubric.choices.findIndex(choice => choice.correct); + // Dropdown value is 1-indexed (0 = placeholder/unselected) + widget.props.handleUserInput({ + value: correctIndex + 1, + }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/expression.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/expression.js index d0a966a84f8..1fc0a002176 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/expression.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/expression.js @@ -1,5 +1,5 @@ export default (widget, rubric) => { const correct = rubric.answerForms.find(answer => answer.considered === 'correct'); - // TODO rtibbles: Parse this value to give a simplified, student appropriate form? - widget.setInputValue('', correct.value); + // Expression user input is a plain string + widget.props.handleUserInput(correct.value); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/grapher.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/grapher.js index 9ce105d2f3d..799f5d61e76 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/grapher.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/grapher.js @@ -1,11 +1,4 @@ export default (widget, rubric) => { - const plot = rubric.correct; - - widget.props.onChange( - { - plot, - }, - null, // cb - false, // silent - ); + // Grapher scoring checks userInput.type and userInput.coords + widget.props.handleUserInput(rubric.correct); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/inputNumber.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/inputNumber.js index 5a1295a43d1..3f519cb1900 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/inputNumber.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/inputNumber.js @@ -33,5 +33,7 @@ export default (widget, rubric) => { } } - widget.setInputValue('', value.toString()); + widget.props.handleUserInput({ + currentValue: value.toString(), + }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/interactiveGraph.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/interactiveGraph.js index 1269a6f67b5..f5b155ed377 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/interactiveGraph.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/interactiveGraph.js @@ -1,15 +1,4 @@ export default (widget, rubric) => { - const graph = rubric.correct; - - widget.props.onChange( - { - graph, - }, - // When the props have finished updating, then use the resetGraphie method to make - // the graph render with the new answer. - () => { - widget.resetGraphie(); - }, - false, // silent - ); + // Interactive graph scoring checks the graph state object (coords, center, radius, etc.) + widget.props.handleUserInput(rubric.correct); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/lightsPuzzle.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/lightsPuzzle.js index 525ae4e57b4..b262124d1df 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/lightsPuzzle.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/lightsPuzzle.js @@ -1,15 +1,12 @@ export default widget => { + // Create a grid with all cells set to true (all lights on) const cells = widget.props.cells.map(row => { return row.map(() => { return true; }); }); - widget.props.onChange( - { - cells, - }, - null, // cb - false, // silent - ); + widget.props.handleUserInput({ + cells, + }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/matcher.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/matcher.js index d04815789a5..2c88bf8c6a4 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/matcher.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/matcher.js @@ -1,13 +1,6 @@ export default (widget, rubric) => { - const leftComponent = widget.refs.left; - const leftProps = Object.assign({}, leftComponent.props, { - options: rubric.left, + widget.props.handleUserInput({ + left: rubric.left, + right: rubric.right, }); - leftComponent.setState({ items: leftComponent.itemsFromProps(leftProps) }); - - const rightComponent = widget.refs.right; - const rightProps = Object.assign({}, rightComponent.props, { - options: rubric.right, - }); - rightComponent.setState({ items: rightComponent.itemsFromProps(rightProps) }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/matrix.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/matrix.js index 7cfce60df2e..5d9ec80f0ea 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/matrix.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/matrix.js @@ -3,11 +3,7 @@ export default (widget, rubric) => { row.map(cell => (typeof cell === 'number' ? cell.toString() : '')), ); - widget.props.onChange( - { - answers, - }, - null, // cb - false, // silent - ); + widget.props.handleUserInput({ + answers, + }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/numberLine.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/numberLine.js index b584ec87005..d25b6330989 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/numberLine.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/numberLine.js @@ -1,10 +1,12 @@ import { Fraction } from 'fractional'; export default (widget, rubric) => { - const newProps = {}; - if (rubric.rel) { - newProps.rel = rubric.rel; - } + const userInput = { + rel: rubric.isInequality ? rubric.rel || 'ge' : 'eq', + isInequality: rubric.isInequality || false, + numLinePosition: rubric.correctX || rubric.range[0], + numDivisions: rubric.numDivisions || 10, + }; if (rubric.correctX) { const correctX = rubric.correctX; @@ -12,14 +14,13 @@ export default (widget, rubric) => { const rangeMax = rubric.range[1]; const numDivisions = new Fraction(correctX - rangeMin, rangeMax - rangeMin).denominator; + userInput.numLinePosition = correctX; + userInput.numDivisions = Math.min(numDivisions, widget.props.divisionRange[1]); + } - newProps.numLinePosition = correctX; - newProps.numDivisions = Math.min(numDivisions, widget.props.divisionRange[1]); + if (rubric.rel) { + userInput.rel = rubric.rel; } - widget.props.onChange( - newProps, - widget._renderGraphie, // cb - false, // silent - ); + widget.props.handleUserInput(userInput); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/numericInput.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/numericInput.js index 6c73820d8c9..395e2dc8954 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/numericInput.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/numericInput.js @@ -1,28 +1,8 @@ export default (widget, rubric) => { - let newProps; + const answer = rubric.answers.find(answer => answer.status === 'correct'); + const currentValue = answer.value.toString(); - // Have to fill multiple answers - if (widget.props.multInput) { - const currentMultipleValues = rubric.answers - .filter(answer => answer.status === 'correct') - .sort((a, b) => { - return a.value > b.value ? 1 : -1; - }) - .join(','); - newProps = { - currentMultipleValues, - }; - } else { - const answer = rubric.answers.find(answer => answer.status === 'correct'); - const currentValue = answer.value.toString(); - newProps = { - currentValue, - }; - } - - widget.props.onChange( - newProps, - null, // cb - false, // silent - ); + widget.props.handleUserInput({ + currentValue, + }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/orderer.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/orderer.js index 562f3251a05..e7d6fdb0232 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/orderer.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/orderer.js @@ -1,5 +1,6 @@ export default (widget, rubric) => { - widget.setState({ - current: rubric.correctOptions.map((option, i) => Object.assign(option, { key: i })), + // Orderer scoring compares userInput.current against correctOptions[].content + widget.props.handleUserInput({ + current: rubric.correctOptions.map(option => option.content), }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/plotter.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/plotter.js index ce6ffff84ed..579f9051289 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/plotter.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/plotter.js @@ -1,9 +1,4 @@ export default (widget, rubric) => { - widget.setState( - { - values: rubric.correct, - }, - // Add callback to rerender Graphie after setting the state - widget.componentDidMount, - ); + // Plotter scoring does deep comparison of userInput against rubric.correct + widget.props.handleUserInput(rubric.correct); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/radio.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/radio.js index 8c3e30d2ec4..fd60387930d 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/radio.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/radio.js @@ -1,17 +1,7 @@ -export default widget => { - const newStates = widget.props.choices.map(choice => ({ - correctnessShown: false, - rationaleShown: false, - readOnly: false, - selected: choice.correct, - highlighted: true, - })); +export default (widget, rubric) => { + const correctIds = rubric.choices.filter(choice => choice.correct).map(choice => choice.id); - widget.props.onChange( - { - choiceStates: newStates, - }, - null, // cb - false, // silent - ); + widget.props.handleUserInput({ + selectedChoiceIds: correctIds, + }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/sorter.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/sorter.js index ed073cc1cf6..702b4e1ca74 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/sorter.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/sorter.js @@ -1,7 +1,6 @@ export default (widget, rubric) => { - const sortableComponent = widget.refs.sortable; - const newProps = Object.assign({}, sortableComponent.props, { + widget.props.handleUserInput({ options: rubric.correct, + changed: true, }); - sortableComponent.setState({ items: sortableComponent.itemsFromProps(newProps) }); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/table.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/table.js index c880c098744..2a837add30f 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/table.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/table.js @@ -1,11 +1,4 @@ export default (widget, rubric) => { - const answers = rubric.answers; - - widget.props.onChange( - { - answers, - }, - null, // cb - false, // silent - ); + // Table scoring uses filterNonEmpty on the userInput (array of row arrays) + widget.props.handleUserInput(rubric.answers); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/transformer.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/transformer.js index ef5fd732a38..4ea68e1b915 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/transformer.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/transformer.js @@ -1,6 +1,4 @@ export default (widget, rubric) => { - const transformations = rubric.correct.transformations; - widget.setTransformationProps(transformations, () => { - widget.setTransformations(transformations); - }); + // Transformer scoring checks the transformations against rubric.correct + widget.props.handleUserInput(rubric.correct); }; diff --git a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/unit.js b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/unit.js index 5aa93d4046a..165168a468e 100644 --- a/kolibri/plugins/perseus_viewer/frontend/widgetSolver/unit.js +++ b/kolibri/plugins/perseus_viewer/frontend/widgetSolver/unit.js @@ -1,11 +1,5 @@ export default (widget, rubric) => { - const value = rubric.value; - - widget.props.onChange( - { - value, - }, - null, // cb - false, // silent - ); + widget.props.handleUserInput({ + currentValue: rubric.value.toString(), + }); }; From ae81448d3a5f073139d6825042416bbba07127ae Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Thu, 12 Mar 2026 20:40:37 -0700 Subject: [PATCH 05/10] Update Perseus translator strings for v75 Sync the translator message catalog with the strings extracted from Perseus 75.7.1 and math-input 26.4.6. This adds new strings (e.g. mathInputBox, characterCount, various widget labels), updates changed messages (e.g. pi error no longer uses HTML code tags), and removes strings that are no longer used by the updated Perseus version. Co-Authored-By: Claude Opus 4.6 --- .../perseus_viewer/frontend/translator.js | 493 ++++++++++++++++-- 1 file changed, 461 insertions(+), 32 deletions(-) diff --git a/kolibri/plugins/perseus_viewer/frontend/translator.js b/kolibri/plugins/perseus_viewer/frontend/translator.js index 9e1a876c312..3b2f943d8c3 100644 --- a/kolibri/plugins/perseus_viewer/frontend/translator.js +++ b/kolibri/plugins/perseus_viewer/frontend/translator.js @@ -1,25 +1,31 @@ import { createTranslator } from 'kolibri/utils/i18n'; export default createTranslator('PerseusInternalMessages', { + characterCount: + '{used, plural, one {{ used } / { num } Character} other {{ used } / { num } Characters}}', closeKeypad: 'close math keypad', openKeypad: 'open math keypad', + mathInputBox: 'Math input box', removeHighlight: 'Remove highlight', addHighlight: 'Add highlight', hintPos: 'Hint #{ pos }', errorRendering: 'Error rendering: { error }', APPROXIMATED_PI_ERROR: - 'Your answer is close, but you may have approximated pi. Enter your answer as a multiple of pi, like 12\\\\ \\\\text[pi] or 2/3\\\\ \\\\text[pi]', + 'Your answer is close, but you may have approximated pi. Enter your answer as a multiple of pi, like 12 pi or 2/3 pi', + EMPTY_RESPONSE_ERROR: 'There are still more parts of this question to answer.', EXTRA_SYMBOLS_ERROR: 'We could not understand your answer. Please check your answer for extra text or symbols.', NEEDS_TO_BE_SIMPLFIED_ERROR: 'Your answer is almost correct, but it needs to be simplified.', MISSING_PERCENT_ERROR: - 'Your answer is almost correct, but it is missing a \\\\% at the end.', + 'Your answer is almost correct, but it is missing a \\\\\\\\% at the end.', MULTIPLICATION_SIGN_ERROR: { message: "I'm a computer. I only understand multiplication if you use an asterisk (*) as the multiplication sign.", context: 'Feel free to skip translating the first sentence, just make clear the necessity to use the asterisk (*) as the multiplication sign.', }, + USER_INPUT_EMPTY: 'Your answer is empty.', + USER_INPUT_TOO_LONG: 'Please shorten your response.', WRONG_CASE_ERROR: { message: 'Your answer includes use of a variable with the wrong case.', context: 'Refers to capitalization of the variables.', @@ -30,6 +36,7 @@ export default createTranslator('PerseusInternalMessages', { "Refers to variables in algebra, and assumes that the variable name is always just one letter (like 'a' , 'b', etc.) ", }, invalidSelection: 'Make sure you select something for every row.', + INVALID_CHOICE_SELECTION: 'Invalid choice selection', ERROR_TITLE: 'Oops!', ERROR_MESSAGE: "Sorry, I don't understand that!", hints: 'Hints', @@ -45,7 +52,6 @@ export default createTranslator('PerseusInternalMessages', { current: 'Current', correct: 'Correct', correctSelected: 'Correct (selected)', - correctCrossedOut: 'Correct (but you crossed it out)', incorrect: 'Incorrect', incorrectSelected: 'Incorrect (selected)', hideExplanation: 'Hide explanation', @@ -58,10 +64,10 @@ export default createTranslator('PerseusInternalMessages', { simplifiedProperExample: 'a *simplified proper* fraction, like $3/5$', improperExample: 'an *improper* fraction, like $10/7$ or $14/8$', simplifiedImproperExample: 'a *simplified improper* fraction, like $7/4$', - mixedExample: 'a mixed number, like $1\\\\ 3/4$', + mixedExample: 'a mixed number, like $1\\\\\\\\ 3/4$', decimalExample: 'an *exact* decimal, like $0.75$', - percentExample: 'a percent, like $12.34\\\\%$', - piExample: 'a multiple of pi, like $12\\\\ \\\\text[pi]$ or $2/3\\\\ \\\\text[pi]$', + percentExample: 'a percent, like $12.34\\\\\\\\%$', + piExample: 'a multiple of pi, like $12$ pi or $2/3$ pi', yourAnswer: '**Your answer should be** ', yourAnswerLabel: 'Your answer:', addPoints: 'Click to add points', @@ -87,22 +93,6 @@ export default createTranslator('PerseusInternalMessages', { circleFilled: 'Make circle filled', numDivisions: 'Number of divisions:', divisions: 'Please make sure the number of divisions is in the range { divRangeString }.', - lineRange: 'lines { lineRange }', - lineNumber: 'line { lineNumber }', - symbolPassage: - 'The symbol { questionSymbol } indicates that question { questionNumber } references this portion of the passage.', - symbolQuestion: - ' The symbol { sentenceSymbol } indicates that the following sentence is referenced in a question.', - lineLabel: { - message: 'Line', - context: 'a label next to a reading passage to denote the line number', - }, - beginningPassage: 'Beginning of reading passage.', - beginningFootnotes: 'Beginning of reading passage footnotes.', - endPassage: 'End of reading passage.', - questionMarker: '[Marker for question { number }]', - circleMarker: '[Circle marker { number }]', - sentenceMarker: '[Sentence { number }]', dragHandles: 'Drag handles to make graph', tapAddPoints: 'Tap to add points', false: 'False', @@ -116,21 +106,16 @@ export default createTranslator('PerseusInternalMessages', { chooseAllAnswers: 'Choose all answers that apply:', chooseOneAnswer: 'Choose 1 answer:', choiceCheckedCorrect: '(Choice { letter }, Checked, Correct)', - choiceCrossedOutCorrect: '(Choice { letter }, Crossed out, Correct)', choiceCorrect: '(Choice { letter }, Correct)', choiceCheckedIncorrect: '(Choice { letter }, Checked, Incorrect)', - choiceCrossedOutIncorrect: '(Choice { letter }, Crossed out, Incorrect)', choiceIncorrect: '(Choice { letter }, Incorrect)', choiceChecked: '(Choice { letter }, Checked)', - choiceCrossedOut: '(Choice { letter }, Crossed out)', choice: '(Choice { letter })', - crossOut: 'Cross out', - crossOutOption: { - message: 'Cross out option', - context: - 'Tooltip that informs the user that they can cross-out one of the options in the multiple choice type of question.', + notSelected: { + message: 'not selected', + context: 'Screen reader announcement for a choice that is not selected', }, - crossOutChoice: 'Cross out Choice { letter }', + choicesSelected: '{num, plural, one {{ num } choice selected} other {{ num } choices selected}}', bringBack: { message: 'Bring back', context: @@ -146,6 +131,9 @@ export default createTranslator('PerseusInternalMessages', { context: 'This is a list of single-character labels that will appear in front of multiple-choice options. For instance, a multiple-choice question with three options would display (A) first option (B) second option (C) third option. There must be spaces between each of the different characters. The characters will show up next to options in the order that they are listed here. Most multiple choice questions have 5 or fewer options.', }, + scrollAnswers: 'Scroll Answers', + scrollStart: 'Scroll to view start of the content', + scrollEnd: 'Scroll to view the end of the content', rightArrow: 'Right arrow', dontUnderstandUnits: "I couldn't understand those units.", checkSigFigs: 'Check your significant figures.', @@ -156,7 +144,448 @@ export default createTranslator('PerseusInternalMessages', { videoTranscript: 'See video transcript', somethingWrong: 'Something went wrong.', videoWrapper: 'Khan Academy video wrapper', - mathInputBox: 'Math input box', + mathInputTitle: 'mathematics keyboard', + mathInputDescription: 'Use keyboard/mouse to interact with math-based input fields', + sin: { + message: 'sin', + context: + 'A label for a button that will allow the user to input a sine function (shorthand version).', + }, + cos: { + message: 'cos', + context: + 'A label for a button that will allow the user to input a cosine function (shorthand version).', + }, + tan: { + message: 'tan', + context: + 'A label for a button that will allow the user to input a tangent function (shorthand version).', + }, + simulationLoadFail: 'Sorry, this simulation cannot load.', + simulationLocaleWarning: "Sorry, this simulation isn't available in your language.", + selectAnAnswer: 'Select an answer', + addPoint: 'Add Point', + removePoint: 'Remove Point', + graphKeyboardPrompt: 'Press Shift + Enter to interact with the graph', + srInteractiveElements: 'Interactive elements: { elements }', + srNoInteractiveElements: 'No interactive elements', + closePolygon: { + message: 'Close shape', + context: + 'Button label for the button that closes an incomplete polygon created by the user in the interactive graph widget.', + }, + openPolygon: { + message: 'Re-open shape', + context: + 'Button label for the button that opens a closed polygon created by the user in the interactive graph widget.', + }, + srGraphInstructions: { + message: + 'Use the Tab key to move through the interactive elements in the graph. When an interactive element has focus, use Control + Shift + Arrows to move it.', + context: + 'Screen reader-only instructions for using the keyboard to move through the interactive elements in the interactive graph widget.', + }, + srUnlimitedGraphInstructions: { + message: + 'Press Shift + Enter to interact with the graph. Use the Tab key to move through the interactive elements in the graph and access the graph Action Bar. When an interactive element has focus, use Control + Shift + Arrows to move it or use the Delete key to remove it from the graph. Use the buttons in the Action Bar to add or adjust elements within the graph.', + context: + "Screen reader-only instructions for using the keyboard to move through the 'unlimited' (addable/deletable by the user) interactive elements in the interactive graph widget.", + }, + srPointAtCoordinates: { + message: 'Point { num } at { x } comma { y }.', + context: + "Aria label for an interactive Point element in the interactive graph widget, including the count for its order in the points (e.g. 'Point 1 at 0 comma 0'). Coordinate (x, y) is written out as 'x comma y'.", + }, + srCircleGraph: { + message: 'A circle on a coordinate plane.', + context: + 'Aria label for the container containing the Circle and its interactive elements in the interactive graph widget.', + }, + srCircleShape: { + message: 'Circle. The center point is at { centerX } comma { centerY }.', + context: 'Aria label for the interactive Circle element in the interactive graph widget.', + }, + srCircleRadiusPointRight: { + message: 'Right radius endpoint at { radiusPointX } comma { radiusPointY }.', + context: + "Aria label for the interactive Point element that represents the radius endpoint when it's on the right side of the Circle in the interactive graph widget.", + }, + srCircleRadiusPointLeft: { + message: 'Left radius endpoint at { radiusPointX } comma { radiusPointY }.', + context: + "Aria label for the interactive Point element that represents the radius endpoint when it's on the left side of the Circle in the interactive graph widget.", + }, + srCircleRadius: { + message: 'Circle radius is { radius }.', + context: + 'Screen reader description for the radius of the Circle in the interactive graph widget.', + }, + srCircleOuterPoints: { + message: + 'Points on the circle at { point1X } comma { point1Y }, { point2X } comma { point2Y }, { point3X } comma { point3Y }, { point4X } comma { point4Y }.', + context: + 'Screen reader description for four key points on the Circle in the interactive graph widget.', + }, + srLinearGraph: { + message: 'A line on a coordinate plane.', + context: + 'Aria label for the container containing the Line and its interactive elements in the interactive graph widget.', + }, + srLinearGraphPoints: { + message: + 'The line has two points, point 1 at { point1X } comma { point1Y } and point 2 at { point2X } comma { point2Y }.', + context: + 'Screen reader description for the two points defining the Line in the interactive graph widget.', + }, + srLinearGraphSlopeIncreasing: { + message: 'Its slope increases from left to right.', + context: + 'Screen reader description for the upward slope of the Line in the interactive graph widget.', + }, + srLinearGraphSlopeDecreasing: { + message: 'Its slope decreases from left to right.', + context: + 'Screen reader description for the downward slope of the Line in the interactive graph widget.', + }, + srLinearGraphSlopeHorizontal: { + message: 'Its slope is zero.', + context: + 'Screen reader description for the slope of a horizontal Line in the interactive graph widget.', + }, + srLinearGraphSlopeVertical: { + message: 'Its slope is undefined.', + context: + 'Screen reader description for the slope of a vertical Line in the interactive graph widget.', + }, + srLinearGraphXOnlyIntercept: { + message: 'The line crosses the X-axis at { xIntercept } comma 0.', + context: + 'Screen reader description for the intercept of the Line in the interactive graph widget when it only intersects the X-axis.', + }, + srLinearGraphYOnlyIntercept: { + message: 'The line crosses the Y-axis at 0 comma { yIntercept }.', + context: + 'Screen reader description for the intercept of the Line in the interactive graph widget when it only intersects the Y-axis.', + }, + srLinearGraphBothIntercepts: { + message: + 'The line crosses the X-axis at { xIntercept } comma 0 and the Y-axis at 0 comma { yIntercept }.', + context: + 'Screen reader description for the intercepts of the Line in the interactive graph widget when it intersects both the X-axis and Y-axis.', + }, + srLinearGraphOriginIntercept: { + message: "The line crosses the X and Y axes at the graph's origin.", + context: + 'Screen reader description for the intercept of the Line in the interactive graph widget when it intersects both the X-axis and Y-axis at the origin.', + }, + srLinearGrabHandle: { + message: + 'Line going through point { point1X } comma { point1Y } and point { point2X } comma { point2Y }.', + context: + 'Aria label for the interactive segment that allows the user to move the whole Line in the interactive graph widget.', + }, + srAngleStartingSide: { + message: 'Point 3, starting side at { x } comma { y }.', + context: + "Aria label for interactive Point 3 of the Angle in the interactive graph widget, explaining it's on the starting side of the Angle.", + }, + srAngleEndingSide: { + message: 'Point 2, ending side at { x } comma { y }.', + context: + "Aria label for interactive Point 2 of the Angle in the interactive graph widget, explaining it's on the ending side of the Angle.", + }, + srAngleVertexWithAngleMeasure: { + message: 'Point 1, vertex at { x } comma { y }. Angle { angleMeasure } degrees.', + context: + "Aria label for interactive Point 1 of the Angle in the interactive graph widget, explaining it's the vertex of the Angle.", + }, + srAngleGraphAriaLabel: { + message: 'An angle on a coordinate plane.', + context: + 'Aria label for the container containing the Angle and its interactive elements in the interactive graph widget.', + }, + srAngleGraphAriaDescription: { + message: + 'The angle measure is { angleMeasure } degrees with a vertex at { vertexX } comma { vertexY }, a point on the starting side at { startingSideX } comma { startingSideY } and a point on the ending side at { endingSideX } comma { endingSideY }', + context: + 'Screen reader description for the measure of the Angle in the interactive graph widget.', + }, + srAngleInteractiveElements: { + message: + 'An angle formed by 3 points. The vertex is at { vertexX } comma { vertexY }. The starting side point is at { startingSideX } comma { startingSideY }. The ending side point is at { endingSideX } comma { endingSideY }.', + context: + 'Screen reader description of all the elements available to interact with within the Angle graph in the interactive graph widget.', + }, + srSingleSegmentGraphAriaLabel: { + message: 'A line segment on a coordinate plane.', + context: + 'Aria label for the container containing one Line Segment in the interactive graph widget.', + }, + srMultipleSegmentGraphAriaLabel: { + message: '{ countOfSegments } line segments on a coordinate plane.', + context: + 'Aria label for the container containing multiple Line Segments in the interactive graph widget.', + }, + srMultipleSegmentIndividualLabel: { + message: + 'Segment { indexOfSegment }: Endpoint 1 at { point1X } comma { point1Y }. Endpoint 2 at { point2X } comma { point2Y }.', + context: + "Screen reader description for one individual Line Segment in the interactive graph widget, including the count for its order in the segments (e.g. 'Segment 1', 'Segment 2', etc.)", + }, + srSingleSegmentLabel: { + message: + 'Endpoint 1 at { point1X } comma { point1Y }. Endpoint 2 at { point2X } comma { point2Y }.', + context: + 'Screen reader description for one individual Line Segment in the interactive graph widget.', + }, + srSegmentLength: { + message: 'Segment length { length } units.', + context: + 'Screen reader description for the length of a Line Segment in the interactive graph widget.', + }, + srSingleSegmentGraphEndpointAriaLabel: { + message: 'Endpoint { endpointNumber } at { x } comma { y }.', + context: + 'Screen reader description for the endpoint of a Line Segment in the interactive graph widget when there is only one segment.', + }, + srMultipleSegmentGraphEndpointAriaLabel: { + message: 'Endpoint { endpointNumber } on segment { indexOfSegment } at { x } comma { y }.', + context: + "Screen reader description for the endpoint of a Line Segment in the interactive graph widget when there are multiple segments. Includes the count for the segment's order (e.g. 'Segment 1', 'Segment 2', etc.)", + }, + srSegmentGrabHandle: { + message: 'Segment from { point1X } comma { point1Y } to { point2X } comma { point2Y }.', + context: + 'Aria label for the interactive segment that allows the user to move the whole Line Segment in the interactive graph widget.', + }, + srLinearSystemGraph: { + message: 'Two lines on a coordinate plane.', + context: + 'Aria label for the container containing two lines as part of a Linear System in the interactive graph widget.', + }, + srLinearSystemPoints: { + message: + 'Line { lineNumber } has two points, point 1 at { point1X } comma { point1Y } and point 2 at { point2X } comma { point2Y }.', + context: + 'Screen reader description for the points of a line in the Linear System in the interactive graph widget.', + }, + srLinearSystemPoint: { + message: 'Point { pointSequence } on line { lineNumber } at { x } comma { y }.', + context: + 'Screen reader description for a point on a line in the Linear System in the interactive graph widget.', + }, + srLinearSystemGrabHandle: { + message: + 'Line { lineNumber } going through point { point1X } comma { point1Y } and point { point2X } comma { point2Y }.', + context: + 'Aria label for the interactive segment that allows the user to move a whole line in the Linear System in the interactive graph widget.', + }, + srLinearSystemIntersection: { + message: 'Line 1 and line 2 intersect at point { x } comma { y }.', + context: + 'Screen reader description for the intersection of two lines in the Linear System in the interactive graph widget.', + }, + srLinearSystemParallel: { + message: 'Line 1 and line 2 are parallel.', + context: + 'Screen reader description when two lines are parallel in the Linear System in the interactive graph widget.', + }, + srRayGraph: { + message: 'A ray on a coordinate plane.', + context: + 'Screen reader description for the container containing a Ray in the interactive graph widget.', + }, + srRayPoints: { + message: + 'The endpoint is at { point1X } comma { point1Y } and the ray goes through point { point2X } comma { point2Y }.', + context: 'Screen reader description for the points of a ray in the interactive graph widget.', + }, + srRayGrabHandle: { + message: + 'Ray with endpoint { point1X } comma { point1Y } going through point { point2X } comma { point2Y }.', + context: + 'Aria label for the interactive segment that allows the user to move the whole Ray in the interactive graph widget.', + }, + srRayEndpoint: { + message: 'Endpoint at { x } comma { y }.', + context: + 'Aria label for the initial point of a Ray (the point at which the ray starts) in the interactive graph widget.', + }, + srRayTerminalPoint: { + message: 'Through point at { x } comma { y }.', + context: + 'Aria label for the point that determines the direction of the Ray in the interactive graph widget. The ray passes through this point.', + }, + srQuadraticGraph: { + message: 'A parabola on a 4-quadrant coordinate plane.', + context: + 'Aria label for the container containing a Quadratic function in the interactive graph widget.', + }, + srQuadraticFaceUp: { + message: 'The parabola opens upward.', + context: + 'Screen reader description for the direction of the Quadratic function in the interactive graph widget when it opens upward.', + }, + srQuadraticFaceDown: { + message: 'The parabola opens downward.', + context: + 'Screen reader description for the direction of the Quadratic function in the interactive graph widget when it opens downward.', + }, + srQuadraticGraphVertexOrigin: { + message: 'Vertex is at the origin.', + context: + 'Screen reader description for the Quadratic function in the interactive graph widget when its vertex is at the origin.', + }, + srQuadraticGraphVertexXAxis: { + message: 'Vertex is on the X-axis.', + context: + 'Screen reader description for the Quadratic function in the interactive graph widget when its vertex is on the X-axis.', + }, + srQuadraticGraphVertexYAxis: { + message: 'Vertex is on the Y-axis.', + context: + 'Screen reader description for the Quadratic function in the interactive graph widget when its vertex is on the Y-axis.', + }, + srQuadraticGraphVertexQuadrant: { + message: 'Vertex is in quadrant { quadrant }.', + context: + 'Screen reader description for the Quadratic function in the interactive graph widget when its vertex is in a specific quadrant (quadrant 1, 2, 3, or 4).', + }, + srQuadraticTwoXIntercepts: { + message: 'The X-intercepts are at { intercept1 } comma 0 and { intercept2 } comma 0.', + context: + 'Screen reader description for the X-intercepts of the Quadratic function in the interactive graph widget when there are two X-intercepts.', + }, + srQuadraticOneXIntercept: { + message: 'The X-intercept is at { intercept } comma 0.', + context: + 'Screen reader description for the X-intercept of the Quadratic function in the interactive graph widget when there is only one X-intercept.', + }, + srQuadraticYIntercept: { + message: 'The Y-intercept is at 0 comma { intercept }.', + context: + 'Screen reader description for the Y-intercept of the Quadratic function in the interactive graph widget.', + }, + srQuadraticPointOrigin: { + message: 'Point { pointNumber } on parabola at the origin.', + context: + 'Aria label for an interactive Point on the Quadratic function in the interactive graph widget when the Point is at the origin.', + }, + srQuadraticPointAxis: { + message: 'Point { pointNumber } on parabola at { x } comma { y }.', + context: + 'Aria label for an interactive Point on the Quadratic function in the interactive graph widget when the Point is on the X-axis or Y-axis.', + }, + srQuadraticPointQuadrant: { + message: 'Point { pointNumber } on parabola in quadrant { quadrant } at { x } comma { y }.', + context: + 'Aria label for an interactive Point on the Quadratic function in the interactive graph widget when the Point is in a specific quadrant.', + }, + srQuadraticInteractiveElements: { + message: + 'Parabola with points at { point1X } comma { point1Y }, { point2X } comma { point2Y }, and { point3X } comma { point3Y }.', + context: + 'Screen reader description of all the elements available to interact with within the Quadratic function in the interactive graph widget.', + }, + srPolygonGraph: { + message: 'A polygon.', + context: + "Aria label for the container containing a Polygon in the interactive graph widget when it's on a plane/grid without axes.", + }, + srPolygonGraphCoordinatePlane: { + message: 'A polygon on a coordinate plane.', + context: + "Aria label for the container containing a Polygon in the interactive graph widget when it's on a coordinate plane.", + }, + srPolygonGraphPointsNum: { + message: 'The polygon has { num } points.', + context: + 'Screen reader description for the number of points in the Polygon in the interactive graph widget.', + }, + srPolygonGraphPointsOne: { + message: 'The polygon has 1 point.', + context: + 'Screen reader description for the number of points in the Polygon in the interactive graph widget when there is only one point.', + }, + srPolygonElementsNum: { + message: 'A polygon with { num } points.', + context: + 'Screen reader description for the Polygon in the interactive graph widget explaining that it has a certain number of points.', + }, + srPolygonElementsOne: { + message: 'A polygon with 1 point.', + context: + 'Screen reader description for the Polygon in the interactive graph widget explaining that it has one point.', + }, + srPolygonPointAngleApprox: { + message: 'Angle approximately equal to { angle } degrees.', + context: + "Screen reader description for the angle of a point in the Polygon in the interactive graph widget when it's not an exact integer.", + }, + srPolygonPointAngle: { + message: 'Angle equal to { angle } degrees.', + context: + "Screen reader description for the angle of a point in the Polygon in the interactive graph widget when it's an integer.", + }, + srPolygonSideLength: { + message: 'A line segment, length equal to { length } units, connects to point { pointNum }.', + context: + 'Screen reader description for the side of the Polygon in the interactive graph widget when its length is an exact integer.', + }, + srPolygonSideLengthApprox: { + message: + 'A line segment, length approximately equal to { length } units, connects to point { pointNum }.', + context: + 'Screen reader description for the side of the Polygon in the interactive graph widget when its length is not an exact integer.', + }, + srUnlimitedPolygonEmpty: { + message: 'An empty coordinate plane.', + context: + 'Screen reader description for the empty container that will eventually contain a Polygon in the interactive graph widget after the user has added points.', + }, + srSinusoidGraph: { + message: 'A sinusoid function on a coordinate plane.', + context: + 'Aria label for the container containing a Sinusoid function in the interactive graph widget.', + }, + srSinusoidRootPoint: { + message: 'Midline intersection at { x } comma { y }.', + context: + 'Aria label for the Point defining the midline intersection of the Sinusoid function in the interactive graph widget.', + }, + srSinusoidMaxPoint: { + message: 'Maximum point at { x } comma { y }.', + context: + 'Aria label for the Point defining the maximum of the Sinusoid function in the interactive graph widget.', + }, + srSinusoidMinPoint: { + message: 'Minimum point at { x } comma { y }.', + context: + 'Aria label for the Point defining the minimum of the Sinusoid function in the interactive graph widget.', + }, + srSinusoidFlatPoint: { + message: 'Line through point at { x } comma { y }.', + context: + 'Aria label for the Point defining the amplitude of the Sinusoid function in the interactive graph widget when the amplitude is 0.', + }, + srSinusoidDescription: { + message: + 'The graph shows a wave with a minimum value of { minValue } and a maximum value of { maxValue }. The wave completes a full cycle from { cycleStart } to { cycleEnd }.', + context: 'Screen reader description of the Sinusoid function in the interactive graph widget.', + }, + srSinusoidInteractiveElements: { + message: + 'Sinusoid graph with midline intersection point at { point1X } comma { point1Y } and extremum point at { point2X } comma { point2Y }.', + context: + 'Screen reader description of all the elements available to interact with within the Sinusoid function in the interactive graph widget.', + }, + imageExploreButton: 'Explore image', + imageAlternativeTitle: 'Explore image and description', + imageDescriptionLabel: 'Description', + imageZoomAriaLabel: 'Zoom image.', + imageResetZoomAriaLabel: 'Reset zoom.', + gifPlayButtonLabel: 'Play Animation', + gifPauseButtonLabel: 'Pause Animation', fingerTap: 'Tap with one or two fingers to open keyboard', before: 'before { obj }', after: 'after { obj }', From 7986402e61ac8bcad34225487c8e98e7fca17556 Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Fri, 13 Mar 2026 15:39:06 -0700 Subject: [PATCH 06/10] Normalize non-Western numerals to ASCII before Perseus scoring Users typing with non-Western keyboards (Eastern Arabic, Devanagari, Bengali, Thai, etc.) can now enter answers using their native numeral characters. The input is silently transliterated to ASCII 0-9 before reaching Perseus' scoring engine, which only understands parseFloat. Supports 16 numeral systems covering Arabic, South Asian, Southeast Asian, and Tibetan scripts. Co-Authored-By: Claude Opus 4.6 --- .../__tests__/numeralNormalization.spec.js | 149 ++++++++++++++++++ .../frontend/numeralNormalization.js | 81 ++++++++++ .../frontend/views/PerseusRendererIndex.vue | 8 +- 3 files changed, 236 insertions(+), 2 deletions(-) create mode 100644 kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js create mode 100644 kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js diff --git a/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js b/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js new file mode 100644 index 00000000000..66faabfe152 --- /dev/null +++ b/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js @@ -0,0 +1,149 @@ +import { + normalizeNumerals, + normalizeUserInput, + nonWesternDigitRegex, +} from '../numeralNormalization'; + +describe('normalizeNumerals', () => { + it('converts Eastern Arabic digits to ASCII', () => { + expect(normalizeNumerals('٠١٢٣٤٥٦٧٨٩')).toBe('0123456789'); + }); + + it('converts Extended Arabic-Indic digits to ASCII', () => { + expect(normalizeNumerals('۰۱۲۳۴۵۶۷۸۹')).toBe('0123456789'); + }); + + it('converts Devanagari digits to ASCII', () => { + expect(normalizeNumerals('०१२३४५६७८९')).toBe('0123456789'); + }); + + it('converts Bengali digits to ASCII', () => { + expect(normalizeNumerals('০১২৩৪৫৬৭৮৯')).toBe('0123456789'); + }); + + it('converts Thai digits to ASCII', () => { + expect(normalizeNumerals('๐๑๒๓๔๕๖๗๘๙')).toBe('0123456789'); + }); + + it('converts Myanmar digits to ASCII', () => { + expect(normalizeNumerals('၀၁၂၃၄၅၆၇၈၉')).toBe('0123456789'); + }); + + it('converts Khmer digits to ASCII', () => { + expect(normalizeNumerals('០១២៣៤៥៦៧៨៩')).toBe('0123456789'); + }); + + it('leaves ASCII digits unchanged', () => { + expect(normalizeNumerals('0123456789')).toBe('0123456789'); + }); + + it('leaves non-digit characters unchanged', () => { + expect(normalizeNumerals('abc + xyz')).toBe('abc + xyz'); + }); + + it('handles mixed ASCII and non-Western digits', () => { + expect(normalizeNumerals('٤2')).toBe('42'); + }); + + it('handles expressions with non-Western digits', () => { + expect(normalizeNumerals('٢x+٣')).toBe('2x+3'); + }); + + it('handles decimal numbers with Eastern Arabic digits', () => { + expect(normalizeNumerals('٣.١٤')).toBe('3.14'); + }); + + it('handles fractions with Devanagari digits', () => { + expect(normalizeNumerals('२१/३')).toBe('21/3'); + }); + + it('returns non-string values unchanged', () => { + expect(normalizeNumerals(42)).toBe(42); + expect(normalizeNumerals(null)).toBe(null); + expect(normalizeNumerals(undefined)).toBe(undefined); + expect(normalizeNumerals(true)).toBe(true); + }); + + it('returns empty string unchanged', () => { + expect(normalizeNumerals('')).toBe(''); + }); + + it('handles negative numbers', () => { + expect(normalizeNumerals('-٤٢')).toBe('-42'); + }); +}); + +describe('normalizeUserInput', () => { + it('normalizes numeric-input widget state', () => { + const input = { + 'numeric-input 1': { currentValue: '٤٢' }, + }; + expect(normalizeUserInput(input)).toEqual({ + 'numeric-input 1': { currentValue: '42' }, + }); + }); + + it('normalizes expression widget state (plain string)', () => { + const input = { + 'expression 1': '٢x+٣', + }; + expect(normalizeUserInput(input)).toEqual({ + 'expression 1': '2x+3', + }); + }); + + it('leaves radio widget state unchanged (no digits in choice IDs)', () => { + const input = { + 'radio 1': { selectedChoiceIds: ['radio-choice-1'] }, + }; + expect(normalizeUserInput(input)).toEqual({ + 'radio 1': { selectedChoiceIds: ['radio-choice-1'] }, + }); + }); + + it('leaves dropdown widget state unchanged (numeric value)', () => { + const input = { + 'dropdown 1': { value: 2 }, + }; + expect(normalizeUserInput(input)).toEqual({ + 'dropdown 1': { value: 2 }, + }); + }); + + it('handles multiple widgets in one input', () => { + const input = { + 'numeric-input 1': { currentValue: '٢١' }, + 'numeric-input 2': { currentValue: '٧' }, + 'expression 1': '٥x', + }; + expect(normalizeUserInput(input)).toEqual({ + 'numeric-input 1': { currentValue: '21' }, + 'numeric-input 2': { currentValue: '7' }, + 'expression 1': '5x', + }); + }); + + it('handles null and undefined gracefully', () => { + expect(normalizeUserInput(null)).toBe(null); + expect(normalizeUserInput(undefined)).toBe(undefined); + }); + + it('handles nested arrays', () => { + const input = ['٤', ['٢', '٣']]; + expect(normalizeUserInput(input)).toEqual(['4', ['2', '3']]); + }); +}); + +describe('normalizeNumerals selectivity', () => { + it('normalizes Eastern Arabic digits but not surrounding text', () => { + expect(normalizeNumerals('٤٢')).toBe('42'); + }); + + it('does not modify ASCII digits', () => { + expect(normalizeNumerals('42')).toBe('42'); + }); + + it('does not modify letters', () => { + expect(normalizeNumerals('abc')).toBe('abc'); + }); +}); diff --git a/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js b/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js new file mode 100644 index 00000000000..687bdf9474a --- /dev/null +++ b/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js @@ -0,0 +1,81 @@ +/** + * Normalizes non-Western Arabic numerals to Western Arabic (ASCII 0-9). + * + * Many writing systems have their own digit characters. Perseus' scoring + * engine uses parseFloat/parseInt which only understand ASCII digits. + * This module transliterates any recognized non-Western digits so that + * users can type answers using their native keyboard/numeral system. + * + * Uses Unicode property escapes (\p{Nd}) to match decimal digits from + * any script — no hardcoded character ranges needed. This automatically + * covers current and future Unicode numeral systems. + */ + +// Matches any Unicode decimal digit that is NOT ASCII 0-9. +// \p{Nd} = Unicode "Decimal_Digit_Number" category (all scripts). +// [0-9] is excluded so we only process non-Western digits. +const nonWesternDigitRegex = /(?![0-9])\p{Nd}/gu; + +// Single-character test for any decimal digit (used in the base-finding loop). +const singleNdRegex = /\p{Nd}/u; + +/** + * Replace any non-Western digit character with its ASCII equivalent. + * + * Unicode guarantees that decimal digits 0-9 are contiguous in every + * script. We find the block's "zero" by walking backwards (at most 9 + * steps), then subtract to get the digit value. + */ +function normalizeNumerals(str) { + if (typeof str !== 'string') { + return str; + } + return str.replace(nonWesternDigitRegex, char => { + const code = char.codePointAt(0); + // Walk backwards to find the first character in this digit block + // (i.e., the script's "zero"). At most 9 steps. + let base = code; + while (base > 0 && singleNdRegex.test(String.fromCodePoint(base - 1))) { + base--; + } + return String(code - base); + }); +} + +/** + * Recursively apply a string transformation to all string values in + * a nested object/array structure. Non-string leaves pass through unchanged. + */ +function deepMapStrings(input, fn) { + if (typeof input === 'string') { + return fn(input); + } + if (Array.isArray(input)) { + return input.map(item => deepMapStrings(item, fn)); + } + if (input !== null && typeof input === 'object') { + const result = {}; + for (const key in input) { + result[key] = deepMapStrings(input[key], fn); + } + return result; + } + return input; +} + +/** + * Recursively normalize all string values in a user input object. + * Handles the nested structures returned by getUserInput(), e.g.: + * { "numeric-input 1": { currentValue: "٤٢" } } + * { "expression 1": "٢x+٣" } + * { "radio 1": { selectedChoiceIds: ["radio-choice-1"] } } + * + * Non-string values (numbers, booleans, arrays of non-strings) pass through + * unchanged. Choice IDs like "radio-choice-1" contain only ASCII so they + * are unaffected by normalization. + */ +function normalizeUserInput(input) { + return deepMapStrings(input, normalizeNumerals); +} + +export { normalizeNumerals, normalizeUserInput, nonWesternDigitRegex }; diff --git a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue index f08099c1cab..395d3d3867d 100644 --- a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue +++ b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue @@ -58,6 +58,7 @@ import perseusTranslator from '../translator'; import { wrapPerseusMessages } from '../translationUtils'; import widgetSolver from '../widgetSolver'; + import { normalizeUserInput } from '../numeralNormalization'; import imageMissing from './image_missing.svg'; import TeX from './Tex'; @@ -578,7 +579,8 @@ if (!this.itemRenderer) { return {}; } - const userInput = this.itemRenderer.getUserInput(); + // Normalize any non-Western numerals so saved state is always ASCII. + const userInput = normalizeUserInput(this.itemRenderer.getUserInput()); // To prevent propagation of our locally replaced blob URLs into answers, // we need to replace them with the original URLs. return restoreImageUrls( @@ -632,7 +634,9 @@ */ checkAnswer() { if (this.itemRenderer && !this.loading) { - const userInput = this.itemRenderer.getUserInput(); + // getAnswerState normalizes non-Western numerals and restores image URLs. + const answerState = this.getAnswerState(); + const userInput = answerState.userInput; const widgetIds = this.itemRenderer.getWidgetIds(); // Use the content language for locale-sensitive scoring (e.g., decimal separators) const locale = this.lang?.id || 'en'; From 8ef335e1d051c863ba4a6c21fa57b0adc6105039 Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Sun, 15 Mar 2026 15:25:59 -0700 Subject: [PATCH 07/10] Replace MobileKeypad with Vue NumericKeypad component MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace the React MobileKeypad from @khanacademy/math-input with a custom Vue component using KDS (Kolibri Design System) buttons and theme tokens. This gives us full control over styling, accessibility, and numeral localization without monkey-patching React DOM. The NumericKeypad uses KButton/KIconButton for all keys, with internationalized aria-labels from the Perseus translator strings. A useKeypad composable owns the keypad state and exposes the KeypadAPI interface that Perseus widgets expect. React's KeypadContext is bridged via a Provider with a plain JS value object that routes setKeypadActive(true/false) to the Vue keypad's activate/dismiss. The keypad supports both FRACTION (4×4 grid) and EXPRESSION (6×4 grid) layouts, with digit buttons localized to the content locale's native numeral system (Arabic-Indic, Devanagari, Bengali, Thai, etc.) via Intl.NumberFormat. Co-Authored-By: Claude Opus 4.6 --- .../__tests__/numeralNormalization.spec.js | 35 +- .../frontend/composables/useKeypad.js | 108 +++++ .../frontend/numeralNormalization.js | 35 +- .../frontend/views/NumericKeypad/index.vue | 400 ++++++++++++++++++ .../frontend/views/NumericKeypad/keys.js | 222 ++++++++++ .../frontend/views/PerseusRendererIndex.vue | 138 +++--- 6 files changed, 849 insertions(+), 89 deletions(-) create mode 100644 kolibri/plugins/perseus_viewer/frontend/composables/useKeypad.js create mode 100644 kolibri/plugins/perseus_viewer/frontend/views/NumericKeypad/index.vue create mode 100644 kolibri/plugins/perseus_viewer/frontend/views/NumericKeypad/keys.js diff --git a/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js b/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js index 66faabfe152..6a1407a8e9c 100644 --- a/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js +++ b/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js @@ -1,8 +1,4 @@ -import { - normalizeNumerals, - normalizeUserInput, - nonWesternDigitRegex, -} from '../numeralNormalization'; +import { normalizeNumerals, normalizeUserInput, getLocalizedDigits } from '../numeralNormalization'; describe('normalizeNumerals', () => { it('converts Eastern Arabic digits to ASCII', () => { @@ -147,3 +143,32 @@ describe('normalizeNumerals selectivity', () => { expect(normalizeNumerals('abc')).toBe('abc'); }); }); + +describe('getLocalizedDigits', () => { + it('returns null for English locale', () => { + expect(getLocalizedDigits('en')).toBeNull(); + }); + + it('returns null for null/undefined locale', () => { + expect(getLocalizedDigits(null)).toBeNull(); + expect(getLocalizedDigits(undefined)).toBeNull(); + }); + + it('returns localized digits for Arabic locale', () => { + const digits = getLocalizedDigits('ar-EG'); + // ar-EG uses Eastern Arabic numerals + if (digits) { + expect(digits).toHaveLength(10); + expect(digits[0]).toBe('٠'); + expect(digits[1]).toBe('١'); + expect(digits[9]).toBe('٩'); + } + }); + + it('returns null for locales whose digits match ASCII', () => { + // French, German, Spanish all use the same digits as ASCII + expect(getLocalizedDigits('fr')).toBeNull(); + expect(getLocalizedDigits('de')).toBeNull(); + expect(getLocalizedDigits('es')).toBeNull(); + }); +}); diff --git a/kolibri/plugins/perseus_viewer/frontend/composables/useKeypad.js b/kolibri/plugins/perseus_viewer/frontend/composables/useKeypad.js new file mode 100644 index 00000000000..7dc5064926d --- /dev/null +++ b/kolibri/plugins/perseus_viewer/frontend/composables/useKeypad.js @@ -0,0 +1,108 @@ +import { ref, readonly, provide, inject } from 'vue'; + +const KeypadSymbol = Symbol('keypad'); + +/** + * Composable that owns the keypad state and exposes the KeypadAPI interface + * expected by Perseus widgets. + * + * Call this in the parent component's setup(). It provides keypad state to + * descendants via provide/inject. Child components use injectKeypad() to + * access the keypad. + * + * Returns the keypadAPI (for passing to Perseus as keypadElement) and a + * keypadContextValue (for bridging React's KeypadContext.Provider). + */ +export default function useKeypad() { + const active = ref(false); + const cursor = ref(null); + const keypadConfig = ref(null); + const keyHandler = ref(null); + + function activate() { + active.value = true; + } + + function dismiss() { + active.value = false; + } + + function configure(configuration, cb) { + keypadConfig.value = configuration; + if (cb) { + setTimeout(cb); + } + } + + function setCursor(c) { + cursor.value = c; + } + + function setKeyHandler(handler) { + keyHandler.value = handler; + } + + function handleKeyPress(keyId) { + if (keyHandler.value) { + cursor.value = keyHandler.value(keyId); + } + } + + // The API object passed to Perseus as keypadElement. + // This must remain a stable reference — Perseus stores it. + const keypadAPI = { + activate, + dismiss, + configure, + setCursor, + setKeyHandler, + // getDOMNode is called by MathInput to detect clicks outside the keypad. + // We set this later once the keypad component mounts. + getDOMNode: () => keypadAPI._domNode || null, + _domNode: null, + }; + + // Bridge React's KeypadContext to our Vue keypad state. + // MathInput calls setKeypadActive(true) on focus — this must + // reach our Vue keypad's activate/dismiss. + const keypadContextValue = { + keypadActive: false, + setKeypadActive: isActive => { + if (isActive) { + activate(); + } else { + dismiss(); + } + keypadContextValue.keypadActive = isActive; + }, + keypadElement: keypadAPI, + setKeypadElement: () => {}, + renderer: null, + setRenderer: () => {}, + scrollableElement: null, + setScrollableElement: () => {}, + }; + + provide(KeypadSymbol, { + active: readonly(active), + keypadConfig: readonly(keypadConfig), + dismiss, + handleKeyPress, + setDOMNode(el) { + keypadAPI._domNode = el; + }, + }); + + return { + keypadAPI, + keypadContextValue, + }; +} + +/** + * Inject keypad state provided by a parent useKeypad() call. + * Use this in child components that need to interact with the keypad. + */ +export function injectKeypad() { + return inject(KeypadSymbol); +} diff --git a/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js b/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js index 687bdf9474a..d0f637c76cd 100644 --- a/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js +++ b/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js @@ -78,4 +78,37 @@ function normalizeUserInput(input) { return deepMapStrings(input, normalizeNumerals); } -export { normalizeNumerals, normalizeUserInput, nonWesternDigitRegex }; +// Cache for getLocalizedDigits — keyed by locale string. +const _digitCache = {}; + +/** + * Get the localized digits 0-9 for a locale using Intl.NumberFormat. + * Returns null if the locale's digits are identical to ASCII 0-9 + * (meaning no character remapping is needed for display or input). + * Otherwise returns an array of 10 strings representing digits 0-9. + * Results are cached per locale. + */ +function getLocalizedDigits(locale) { + if (!locale) { + return null; + } + if (locale in _digitCache) { + return _digitCache[locale]; + } + try { + const formatter = new Intl.NumberFormat(locale, { useGrouping: false }); + const digits = []; + for (let i = 0; i < 10; i++) { + digits.push(formatter.format(i)); + } + // If all digits match ASCII, no remapping is needed + const result = digits.every((d, i) => d === String(i)) ? null : digits; + _digitCache[locale] = result; + return result; + } catch (e) { + _digitCache[locale] = null; + return null; + } +} + +export { normalizeNumerals, normalizeUserInput, getLocalizedDigits, nonWesternDigitRegex }; diff --git a/kolibri/plugins/perseus_viewer/frontend/views/NumericKeypad/index.vue b/kolibri/plugins/perseus_viewer/frontend/views/NumericKeypad/index.vue new file mode 100644 index 00000000000..59018ada3cf --- /dev/null +++ b/kolibri/plugins/perseus_viewer/frontend/views/NumericKeypad/index.vue @@ -0,0 +1,400 @@ + + + + + + + diff --git a/kolibri/plugins/perseus_viewer/frontend/views/NumericKeypad/keys.js b/kolibri/plugins/perseus_viewer/frontend/views/NumericKeypad/keys.js new file mode 100644 index 00000000000..33fb87404c0 --- /dev/null +++ b/kolibri/plugins/perseus_viewer/frontend/views/NumericKeypad/keys.js @@ -0,0 +1,222 @@ +/** + * Static key definitions for the NumericKeypad. + * + * Only two things are dynamic at runtime: + * 1. Digit labels — localized to the content's numeral system + * 2. The multiplication key in expression mode — × vs · based on Perseus config + * + * Everything else (operator keys, grid positions, aria labels) is defined here + * as module-level constants. + */ +import translator from '../../translator'; + +const { + percent$, + pi$, + fractionExcludingExpression$, + decimal$, + negative$, + delete$, + times$, + plus$, + leftParenthesis$, + divide$, + minus$, + rightParenthesis$, + equalsSign$, + customExponent$, + squareRoot$, +} = translator; + +// --- Operator keys (static) --- + +const PERCENT = { + id: 'PERCENT', + label: '%', + ariaLabel: percent$, + secondary: true, +}; + +const PI = { + id: 'PI', + label: 'π', + ariaLabel: pi$, + secondary: true, +}; + +const FRAC = { + id: 'FRAC', + label: '⁄', + ariaLabel: fractionExcludingExpression$, + secondary: true, +}; + +const DECIMAL = { + id: 'DECIMAL', + label: '.', + ariaLabel: decimal$, +}; + +const NEGATIVE = { + id: 'NEGATIVE', + label: '(−)', + ariaLabel: negative$, +}; + +const BACKSPACE = { + id: 'BACKSPACE', + label: '⌫', + ariaLabel: delete$, + secondary: true, +}; + +const PLUS = { + id: 'PLUS', + label: '+', + ariaLabel: plus$, + secondary: true, +}; + +const LEFT_PAREN = { + id: 'LEFT_PAREN', + label: '(', + ariaLabel: leftParenthesis$, + secondary: true, +}; + +const DIVIDE = { + id: 'DIVIDE', + label: '÷', + ariaLabel: divide$, + secondary: true, +}; + +const MINUS = { + id: 'MINUS', + label: '−', + ariaLabel: minus$, + secondary: true, +}; + +const RIGHT_PAREN = { + id: 'RIGHT_PAREN', + label: ')', + ariaLabel: rightParenthesis$, + secondary: true, +}; + +const EQUAL = { + id: 'EQUAL', + label: '=', + ariaLabel: equalsSign$, + secondary: true, +}; + +const EXP = { + id: 'EXP', + label: 'xⁿ', + ariaLabel: customExponent$, + secondary: true, +}; + +const SQRT = { + id: 'SQRT', + label: '√', + ariaLabel: squareRoot$, + secondary: true, +}; + +// --- Layout helpers --- + +/** + * Attach a grid position to a key definition. + * Returns a new object to avoid mutating the constant. + */ +function at(key, col, row) { + return { ...key, gridStyle: { gridColumn: col + 1, gridRow: row + 1 } }; +} + +/** + * Create a digit key. Label is resolved at runtime from localizedDigits. + */ +function digit(n, col, row, localizedDigits) { + const label = localizedDigits ? localizedDigits[n] : String(n); + return { + id: `NUM_${n}`, + label, + ariaLabel: () => label, + gridStyle: { gridColumn: col + 1, gridRow: row + 1 }, + }; +} + +// --- Shared digit positions (same in both layouts) --- + +function digitRow0(ld) { + return [digit(7, 0, 0, ld), digit(8, 1, 0, ld), digit(9, 2, 0, ld)]; +} +function digitRow1(ld) { + return [digit(4, 0, 1, ld), digit(5, 1, 1, ld), digit(6, 2, 1, ld)]; +} +function digitRow2(ld) { + return [digit(1, 0, 2, ld), digit(2, 1, 2, ld), digit(3, 2, 2, ld)]; +} + +// --- Layouts --- + +// FRACTION layout: 4 columns × 4 rows +// Row 0: 7 8 9 % +// Row 1: 4 5 6 π +// Row 2: 1 2 3 ⁄ +// Row 3: 0 . (−) ⌫ +export function fractionLayout(localizedDigits) { + return [ + ...digitRow0(localizedDigits), + at(PERCENT, 3, 0), + ...digitRow1(localizedDigits), + at(PI, 3, 1), + ...digitRow2(localizedDigits), + at(FRAC, 3, 2), + digit(0, 0, 3, localizedDigits), + at(DECIMAL, 1, 3), + at(NEGATIVE, 2, 3), + at(BACKSPACE, 3, 3), + ]; +} + +// EXPRESSION layout: 6 columns × 4 rows +// Row 0: 7 8 9 ×/· + ( +// Row 1: 4 5 6 ÷ − ) +// Row 2: 1 2 3 = ^ √ +// Row 3: 0 . (−) ⁄ π % +export function expressionLayout(localizedDigits, useTimes) { + const timesKey = { + id: useTimes ? 'TIMES' : 'CDOT', + label: useTimes ? '×' : '·', + ariaLabel: times$, + secondary: true, + }; + + return [ + ...digitRow0(localizedDigits), + at(timesKey, 3, 0), + at(PLUS, 4, 0), + at(LEFT_PAREN, 5, 0), + + ...digitRow1(localizedDigits), + at(DIVIDE, 3, 1), + at(MINUS, 4, 1), + at(RIGHT_PAREN, 5, 1), + + ...digitRow2(localizedDigits), + at(EQUAL, 3, 2), + at(EXP, 4, 2), + at(SQRT, 5, 2), + + digit(0, 0, 3, localizedDigits), + at(DECIMAL, 1, 3), + at(NEGATIVE, 2, 3), + at(FRAC, 3, 3), + at(PI, 4, 3), + at(PERCENT, 5, 3), + ]; +} diff --git a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue index 395d3d3867d..295f5c2bc14 100644 --- a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue +++ b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue @@ -22,6 +22,7 @@ + @@ -37,7 +38,6 @@ import '@khanacademy/perseus/styles.css'; import '@khanacademy/math-input/styles.css'; - import { StyleSheet } from 'aphrodite'; import invert from 'lodash/invert'; import get from 'lodash/get'; import ZipFile from 'kolibri-zip'; @@ -47,30 +47,24 @@ import useContentViewer, { contentViewerProps } from 'kolibri/composables/useContentViewer'; import urls from 'kolibri/urls'; import { createElement as e } from 'react'; - import { createPortal } from 'react-dom'; import { createRoot } from 'react-dom/client'; import * as perseus from '@khanacademy/perseus'; import { parseAndMigratePerseusItem, isFailure } from '@khanacademy/perseus-core'; import { scorePerseusItem, emptyWidgetsFunctional } from '@khanacademy/perseus-score'; - import { MathInputI18nContextProvider, MobileKeypad } from '@khanacademy/math-input'; - import { StatefulKeypadContextProvider, KeypadContext } from '@khanacademy/keypad-context'; + import { MathInputI18nContextProvider } from '@khanacademy/math-input'; + import { KeypadContext } from '@khanacademy/keypad-context'; import { RenderStateRoot } from '@khanacademy/wonder-blocks-core'; import perseusTranslator from '../translator'; import { wrapPerseusMessages } from '../translationUtils'; import widgetSolver from '../widgetSolver'; import { normalizeUserInput } from '../numeralNormalization'; + import useKeypad from '../composables/useKeypad'; import imageMissing from './image_missing.svg'; import TeX from './Tex'; + import NumericKeypad from './NumericKeypad'; const translator = wrapPerseusMessages(perseusTranslator); - const keypadStyle = StyleSheet.create({ - keypadContainer: { - zIndex: 20, - pointerEvents: 'none', - }, - }); - const logging = logger.getLogger(__filename); // No-op stubs for Perseus dependency injection. Perseus requires these @@ -261,13 +255,20 @@ export default { name: 'PerseusRendererIndex', + components: { + NumericKeypad, + }, setup(props, context) { const { windowBreakpoint } = useKResponsiveWindow(); const { defaultFile, contentDirection } = useContentViewer(props, context); + const { keypadAPI, keypadContextValue } = useKeypad(); + return { windowBreakpoint, defaultFile, contentDirection, + keypadAPI, + keypadContextValue, }; }, props: contentViewerProps, @@ -320,7 +321,6 @@ }, created() { this.itemRenderer = null; - this.keypadElement = null; this.root = null; // This is a local object for tracking image URLs // we use this to clean up image URLs just for this component @@ -462,47 +462,14 @@ }; // Create react component with current item data. // If the component already existed, this will perform an update. - const keypadContextConsumerElement = e( - KeypadContext.Consumer, - { key: 'keypadContextConsumer' }, - ({ keypadElement }) => { - this.keypadElement = keypadElement; - return e(perseus.ServerItemRenderer, { - ...itemRenderData, - keypadElement: this.interactive ? keypadElement : null, - }); - }, - ); - const keypadWithContextElement = e( - KeypadContext.Consumer, - { key: 'keypadWithContext ' }, - ({ setKeypadElement, renderer }) => - createPortal( - e(MobileKeypad, { - style: keypadStyle.keypadContainer, - onElementMounted: el => { - // We need to add the class to the container element - // but the MobileKeypad component does not pass through - // React's className prop to the root element. - const domNode = el.getDOMNode(); - if (domNode) { - domNode.classList.add('perseus-keypad-container'); - } - setKeypadElement(el); - }, - onDismiss: () => renderer && renderer.blur(), - onAnalyticsEvent: noOpAnalyticsEvent, - }), - document.body, - ), - ); - const statefulKeypadContextProviderElement = e(StatefulKeypadContextProvider, { - children: [keypadContextConsumerElement, keypadWithContextElement], + const itemRendererElement = e(perseus.ServerItemRenderer, { + ...itemRenderData, + keypadElement: this.interactive ? this.keypadAPI : null, }); const perseusStringsElement = e(perseus.PerseusI18nContextProvider, { locale: this.lang, strings: translator, - children: statefulKeypadContextProviderElement, + children: itemRendererElement, }); const mathInputStringsElement = e(MathInputI18nContextProvider, { locale: this.lang, @@ -513,7 +480,11 @@ value: perseusNoOpDependencies, children: mathInputStringsElement, }); - const renderStateRootElement = e(RenderStateRoot, { children: dependencyContextElement }); + const keypadContextElement = e(KeypadContext.Provider, { + value: this.keypadContextValue, + children: dependencyContextElement, + }); + const renderStateRootElement = e(RenderStateRoot, { children: keypadContextElement }); if (!this.root) { this.root = createRoot(this.$refs.perseus); } @@ -526,8 +497,8 @@ // Clear any pending state reset calls this.$off('itemRendererUpdated'); // Dismiss the keypad - if (this.keypadElement) { - this.keypadElement.dismiss(); + if (this.keypadAPI) { + this.keypadAPI.dismiss(); } this.$once('itemRendererUpdated', () => { // Blur any previously focused element once we have rendered a new item @@ -802,11 +773,6 @@ } } - /* Perseus Hacks */ - - /* The rest in this From 0cffe43f2d7442b27bd5073149d6f8f4a0bfcb6d Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Fri, 13 Mar 2026 16:56:40 -0700 Subject: [PATCH 08/10] Localize restored answer state to native numeral system MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When restoring saved answer state into widgets, convert ASCII digits back to the content locale's native numeral system. This ensures users who typed ٤٢ (stored as "42" by Phase 1 normalization) see ٤٢ when returning to an exercise, not the ASCII representation. Adds localizeNumerals and localizeUserInput as inverses of the existing normalize functions, with a roundtrip test confirming they are proper inverses. Co-Authored-By: Claude Opus 4.6 --- .../__tests__/numeralNormalization.spec.js | 114 +++++++++++++++++- .../frontend/numeralNormalization.js | 39 +++++- .../frontend/views/PerseusRendererIndex.vue | 7 +- 3 files changed, 157 insertions(+), 3 deletions(-) diff --git a/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js b/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js index 6a1407a8e9c..911afec041e 100644 --- a/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js +++ b/kolibri/plugins/perseus_viewer/frontend/__tests__/numeralNormalization.spec.js @@ -1,4 +1,10 @@ -import { normalizeNumerals, normalizeUserInput, getLocalizedDigits } from '../numeralNormalization'; +import { + normalizeNumerals, + normalizeUserInput, + getLocalizedDigits, + localizeNumerals, + localizeUserInput, +} from '../numeralNormalization'; describe('normalizeNumerals', () => { it('converts Eastern Arabic digits to ASCII', () => { @@ -172,3 +178,109 @@ describe('getLocalizedDigits', () => { expect(getLocalizedDigits('es')).toBeNull(); }); }); + +describe('localizeNumerals', () => { + it('converts ASCII digits to Eastern Arabic for ar-EG', () => { + expect(localizeNumerals('42', 'ar-EG')).toBe('٤٢'); + }); + + it('converts all 10 digits for Arabic locale', () => { + expect(localizeNumerals('0123456789', 'ar-EG')).toBe('٠١٢٣٤٥٦٧٨٩'); + }); + + it('leaves non-digit characters unchanged', () => { + expect(localizeNumerals('x+y', 'ar-EG')).toBe('x+y'); + }); + + it('handles mixed digits and text', () => { + expect(localizeNumerals('2x+3', 'ar-EG')).toBe('٢x+٣'); + }); + + it('handles decimal numbers', () => { + expect(localizeNumerals('3.14', 'ar-EG')).toBe('٣.١٤'); + }); + + it('returns string unchanged for English locale', () => { + expect(localizeNumerals('42', 'en')).toBe('42'); + }); + + it('returns string unchanged for null locale', () => { + expect(localizeNumerals('42', null)).toBe('42'); + }); + + it('returns non-string values unchanged', () => { + expect(localizeNumerals(42, 'ar-EG')).toBe(42); + expect(localizeNumerals(null, 'ar-EG')).toBe(null); + expect(localizeNumerals(undefined, 'ar-EG')).toBe(undefined); + }); + + it('returns empty string unchanged', () => { + expect(localizeNumerals('', 'ar-EG')).toBe(''); + }); +}); + +describe('localizeUserInput', () => { + it('localizes numeric-input widget state', () => { + const input = { + 'numeric-input 1': { currentValue: '42' }, + }; + expect(localizeUserInput(input, 'ar-EG')).toEqual({ + 'numeric-input 1': { currentValue: '٤٢' }, + }); + }); + + it('localizes expression widget state (plain string)', () => { + const input = { + 'expression 1': '2x+3', + }; + expect(localizeUserInput(input, 'ar-EG')).toEqual({ + 'expression 1': '٢x+٣', + }); + }); + + it('leaves dropdown widget state unchanged (numeric value)', () => { + const input = { + 'dropdown 1': { value: 2 }, + }; + expect(localizeUserInput(input, 'ar-EG')).toEqual({ + 'dropdown 1': { value: 2 }, + }); + }); + + it('handles multiple widgets', () => { + const input = { + 'numeric-input 1': { currentValue: '21' }, + 'numeric-input 2': { currentValue: '7' }, + 'expression 1': '5x', + }; + expect(localizeUserInput(input, 'ar-EG')).toEqual({ + 'numeric-input 1': { currentValue: '٢١' }, + 'numeric-input 2': { currentValue: '٧' }, + 'expression 1': '٥x', + }); + }); + + it('returns input unchanged for English locale', () => { + const input = { 'numeric-input 1': { currentValue: '42' } }; + expect(localizeUserInput(input, 'en')).toEqual(input); + }); + + it('handles null and undefined gracefully', () => { + expect(localizeUserInput(null, 'ar-EG')).toBe(null); + expect(localizeUserInput(undefined, 'ar-EG')).toBe(undefined); + }); + + it('handles nested arrays', () => { + const input = ['4', ['2', '3']]; + expect(localizeUserInput(input, 'ar-EG')).toEqual(['٤', ['٢', '٣']]); + }); + + it('is the inverse of normalizeUserInput for Arabic', () => { + const original = { + 'numeric-input 1': { currentValue: '42' }, + 'expression 1': '2x+3', + }; + const localized = localizeUserInput(original, 'ar-EG'); + expect(normalizeUserInput(localized)).toEqual(original); + }); +}); diff --git a/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js b/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js index d0f637c76cd..08ee211c1ad 100644 --- a/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js +++ b/kolibri/plugins/perseus_viewer/frontend/numeralNormalization.js @@ -111,4 +111,41 @@ function getLocalizedDigits(locale) { } } -export { normalizeNumerals, normalizeUserInput, getLocalizedDigits, nonWesternDigitRegex }; +/** + * Convert ASCII digits in a string to localized digits for a given locale. + * The reverse of normalizeNumerals: "42" → "٤٢" for Arabic. + * Returns the string unchanged if the locale's digits match ASCII. + */ +function localizeNumerals(str, locale) { + if (typeof str !== 'string') { + return str; + } + const digits = getLocalizedDigits(locale); + if (!digits) { + return str; + } + return str.replace(/[0-9]/g, d => digits[Number(d)]); +} + +/** + * Recursively localize all string values in a user input object. + * The reverse of normalizeUserInput: converts ASCII digits back to + * the locale's native numeral system for display in widgets. + * + * Used when restoring saved answer state so that users see their + * answers in their native numeral format, not as ASCII digits. + */ +function localizeUserInput(input, locale) { + if (!getLocalizedDigits(locale)) { + return input; + } + return deepMapStrings(input, s => localizeNumerals(s, locale)); +} + +export { + normalizeNumerals, + normalizeUserInput, + getLocalizedDigits, + localizeNumerals, + localizeUserInput, +}; diff --git a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue index 295f5c2bc14..86bab3287d0 100644 --- a/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue +++ b/kolibri/plugins/perseus_viewer/frontend/views/PerseusRendererIndex.vue @@ -57,7 +57,7 @@ import perseusTranslator from '../translator'; import { wrapPerseusMessages } from '../translationUtils'; import widgetSolver from '../widgetSolver'; - import { normalizeUserInput } from '../numeralNormalization'; + import { normalizeUserInput, localizeUserInput } from '../numeralNormalization'; import useKeypad from '../composables/useKeypad'; import imageMissing from './image_missing.svg'; import TeX from './Tex'; @@ -579,6 +579,11 @@ if (userInput) { // Restore image URLs from placeholders to blob URLs userInput = JSON.parse(replaceImageUrls(JSON.stringify(userInput), this.perseusFileUrl)); + // Localize ASCII digits back to the content locale's numeral system + // so users see their saved answers in their native format. + // (Phase 1 normalized input to ASCII for scoring/storage.) + const locale = this.lang && this.lang.id; + userInput = localizeUserInput(userInput, locale); // Restore each widget's user input via the Renderer's handleUserInput callback const widgetIds = this.itemRenderer.getWidgetIds(); for (const id of widgetIds) { From cf6d5f13aac44ea5d3db670bae61f7ef8422c567 Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Sun, 15 Mar 2026 16:58:04 -0700 Subject: [PATCH 09/10] Shim react-router-dom-v5-compat for Wonder Blocks components Wonder Blocks (clickable, button, link, etc.) imports useInRouterContext and useNavigate from react-router-dom-v5-compat, which re-exports from react-router@6. The Perseus plugin resolves react-router@5 instead, where these APIs don't exist, causing a TypeError that crashes image rendering via Perseus's ErrorBoundary. Provide a minimal shim that returns useInRouterContext=false so Wonder Blocks falls back to plain tags and standard navigation. Co-Authored-By: Claude Opus 4.6 --- kolibri/plugins/perseus_viewer/buildConfig.js | 9 +++++++ .../frontend/reactRouterShim.js | 24 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 kolibri/plugins/perseus_viewer/frontend/reactRouterShim.js diff --git a/kolibri/plugins/perseus_viewer/buildConfig.js b/kolibri/plugins/perseus_viewer/buildConfig.js index 6fc543de6ce..4829b288635 100644 --- a/kolibri/plugins/perseus_viewer/buildConfig.js +++ b/kolibri/plugins/perseus_viewer/buildConfig.js @@ -91,6 +91,15 @@ module.exports = { /react\/jsx-runtime/, require.resolve('react/jsx-runtime'), ), + // Wonder Blocks components import from react-router-dom-v5-compat, + // which re-exports from react-router@6. The Perseus plugin only has + // react-router@5, so the v6 APIs (useInRouterContext, useNavigate) + // are undefined. Replace with a shim that returns "no router" so + // Wonder Blocks falls back to plain tags. + new webpack.NormalModuleReplacementPlugin( + /react-router-dom-v5-compat/, + path.resolve(__dirname, 'frontend', 'reactRouterShim.js'), + ), ], }, }; diff --git a/kolibri/plugins/perseus_viewer/frontend/reactRouterShim.js b/kolibri/plugins/perseus_viewer/frontend/reactRouterShim.js new file mode 100644 index 00000000000..c2868269665 --- /dev/null +++ b/kolibri/plugins/perseus_viewer/frontend/reactRouterShim.js @@ -0,0 +1,24 @@ +// Shim for react-router-dom-v5-compat used by Wonder Blocks components. +// +// Wonder Blocks (clickable, button, link, etc.) imports useInRouterContext, +// useNavigate, and Link from this package. It checks useInRouterContext() +// first — when false, components fall back to plain tags and standard +// navigation. +// +// The real react-router-dom-v5-compat@6.x re-exports from react-router@6, +// but Kolibri's Perseus plugin only has react-router@5 which lacks these +// APIs. Rather than pulling in all of react-router@6, we provide stubs +// that tell Wonder Blocks "no router context exists." +var React = require('react'); + +exports.useInRouterContext = function useInRouterContext() { + return false; +}; + +exports.useNavigate = function useNavigate() { + return function () {}; +}; + +exports.Link = React.forwardRef(function ShimLink(props, ref) { + return React.createElement('a', Object.assign({}, props, { ref: ref })); +}); From 9262d808b9f049e50b1168c5ecd171cf042d782c Mon Sep 17 00:00:00 2001 From: Richard Tibbles Date: Fri, 29 May 2026 15:41:52 -0700 Subject: [PATCH 10/10] Flatten CSS @layer at build time via postcss-cascade-layers Perseus 75 and math-input 26 ship @layer rules, which are not supported across Kolibri's browserslist and were applying with the wrong cascade. Add @csstools/postcss-cascade-layers to the postcss pipeline (before autoprefixer) so the layers are flattened to specificity-equivalent selectors at build time. Bump kolibri-build to 1.1.3. Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/kolibri-build/package.json | 3 ++- .../kolibri-build/src/webpack.config.base.js | 9 ++++++- pnpm-lock.yaml | 25 +++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) diff --git a/packages/kolibri-build/package.json b/packages/kolibri-build/package.json index c2bcb95b2b6..b9023782ac7 100644 --- a/packages/kolibri-build/package.json +++ b/packages/kolibri-build/package.json @@ -1,6 +1,6 @@ { "name": "kolibri-build", - "version": "1.1.2", + "version": "1.1.3", "description": "Build tools and webpack configuration for Kolibri", "repository": { "type": "git", @@ -15,6 +15,7 @@ "kolibri-build": "./src/cli.js" }, "dependencies": { + "@csstools/postcss-cascade-layers": "6.0.0", "@swc/core": "^1.11.29", "swc-loader": "^0.2.6", "autoprefixer": "10.4.23", diff --git a/packages/kolibri-build/src/webpack.config.base.js b/packages/kolibri-build/src/webpack.config.base.js index 725ce415b71..d4f95f957cb 100644 --- a/packages/kolibri-build/src/webpack.config.base.js +++ b/packages/kolibri-build/src/webpack.config.base.js @@ -20,7 +20,14 @@ module.exports = ({ mode = 'development', hot = false, cache = false, transpile loader: require.resolve('postcss-loader'), options: { postcssOptions: { - plugins: [[require.resolve('autoprefixer')]], + plugins: [ + // Flatten CSS cascade layers (@layer) into specificity-equivalent + // selectors. Perseus and math-input ship @layer rules, which are not + // supported across our browserslist; this polyfills them at build + // time. Must run before autoprefixer. + [require.resolve('@csstools/postcss-cascade-layers')], + [require.resolve('autoprefixer')], + ], }, sourceMap: !production, }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8313c11a570..d75a82a8487 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1200,6 +1200,9 @@ importers: packages/kolibri-build: dependencies: + '@csstools/postcss-cascade-layers': + specifier: 6.0.0 + version: 6.0.0(postcss@8.5.6) '@swc/core': specifier: ^1.11.29 version: 1.15.24(@swc/helpers@0.5.18) @@ -2569,12 +2572,24 @@ packages: '@csstools/css-parser-algorithms': ^2.7.1 '@csstools/css-tokenizer': ^2.4.1 + '@csstools/postcss-cascade-layers@6.0.0': + resolution: {integrity: sha512-WhsECqmrEZQGqaPlBA7JkmF/CJ2/+wetL4fkL9sOPccKd32PQ1qToFM6gqSI5rkpmYqubvbxjEJhyMTHYK0vZQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + postcss: ^8.4 + '@csstools/selector-specificity@3.1.1': resolution: {integrity: sha512-a7cxGcJ2wIlMFLlh8z2ONm+715QkPHiyJcxwQlKOz/03GPw1COpfhcmC9wm4xlZfp//jWHNNMwzjtqHXVWU9KA==} engines: {node: ^14 || ^16 || >=18} peerDependencies: postcss-selector-parser: ^6.0.13 + '@csstools/selector-specificity@6.0.0': + resolution: {integrity: sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA==} + engines: {node: '>=20.19.0'} + peerDependencies: + postcss-selector-parser: ^7.1.1 + '@discoveryjs/json-ext@1.0.0': resolution: {integrity: sha512-dDlz3W405VMFO4w5kIP9DOmELBcvFQGmLoKSdIRstBDubKFYwaNHV1NnlzMCQpXQFGWVALmeMORAuiLx18AvZQ==} engines: {node: '>=14.17.0'} @@ -10470,10 +10485,20 @@ snapshots: '@csstools/css-parser-algorithms': 2.7.1(@csstools/css-tokenizer@2.4.1) '@csstools/css-tokenizer': 2.4.1 + '@csstools/postcss-cascade-layers@6.0.0(postcss@8.5.6)': + dependencies: + '@csstools/selector-specificity': 6.0.0(postcss-selector-parser@7.1.1) + postcss: 8.5.6 + postcss-selector-parser: 7.1.1 + '@csstools/selector-specificity@3.1.1(postcss-selector-parser@6.1.2)': dependencies: postcss-selector-parser: 6.1.2 + '@csstools/selector-specificity@6.0.0(postcss-selector-parser@7.1.1)': + dependencies: + postcss-selector-parser: 7.1.1 + '@discoveryjs/json-ext@1.0.0': {} '@emnapi/core@1.8.1':