diff --git a/.babelrc b/.babelrc index 43e3ed2f5..b687cb485 100644 --- a/.babelrc +++ b/.babelrc @@ -1,8 +1,7 @@ { "plugins": [ "transform-object-rest-spread", - "transform-require-context", - "syntax-dynamic-import" + "transform-require-context" ], "presets": ["es2015", "react"], } diff --git a/bin/tx-push-www b/bin/tx-push-www index c87f3a6f2..0e7a55760 100755 --- a/bin/tx-push-www +++ b/bin/tx-push-www @@ -31,7 +31,7 @@ if (args[0] === '--execute') { const overrides = { 'src/views/teachers/faq/l10n.json': 'teacher-faq-l10njson', 'src/views/teachers/landing/l10n.json': 'educator-landing-l10njson', - 'src/views/conference/2021/index/l10n.json': 'conference-index-2021-l10njson', + 'src/views/conference/2020/index/l10n.json': 'conference-index-2020-l10njson', 'src/views/conference/2019/index/l10n.json': 'conference-index-2019-l10njson', 'src/views/conference/2017/index/l10n.json': 'conference-index-2017-l10njson' }; diff --git a/package-lock.json b/package-lock.json index edbcbaff7..9920d3f94 100644 --- a/package-lock.json +++ b/package-lock.json @@ -219,26 +219,26 @@ } }, "@babel/compat-data": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.15.0.tgz", - "integrity": "sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.9.tgz", + "integrity": "sha512-p3QjZmMGHDGdpcwEYYWu7i7oJShJvtgMjJeb0W95PPhSm++3lm8YXYOh45Y6iCN9PkZLTZ7CIX5nFrp7pw7TXw==", "dev": true }, "@babel/core": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.15.0.tgz", - "integrity": "sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.8.tgz", + "integrity": "sha512-/AtaeEhT6ErpDhInbXmjHcUQXH0L0TEgscfcxk1qbOvLuKCa5aZT0SOOtDKFY96/CLROwbLSKyFor6idgNaU4Q==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", - "@babel/helper-compilation-targets": "^7.15.0", - "@babel/helper-module-transforms": "^7.15.0", + "@babel/generator": "^7.14.8", + "@babel/helper-compilation-targets": "^7.14.5", + "@babel/helper-module-transforms": "^7.14.8", "@babel/helpers": "^7.14.8", - "@babel/parser": "^7.15.0", + "@babel/parser": "^7.14.8", "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -257,12 +257,12 @@ } }, "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.9.tgz", + "integrity": "sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA==", "dev": true, "requires": { - "@babel/types": "^7.15.0", + "@babel/types": "^7.14.9", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -308,9 +308,9 @@ } }, "@babel/parser": { - "version": "7.15.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", - "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.9.tgz", + "integrity": "sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ==", "dev": true }, "@babel/template": { @@ -325,26 +325,26 @@ } }, "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.9.tgz", + "integrity": "sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", + "@babel/generator": "^7.14.9", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/parser": "^7.14.9", + "@babel/types": "^7.14.9", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -479,12 +479,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz", - "integrity": "sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.5.tgz", + "integrity": "sha512-v+QtZqXEiOnpO6EYvlImB6zCD2Lel06RzOPzmkz/D/XgQiUu3C/Jb1LOqSt/AIA34TYi/Q+KlT8vTQrgdxkbLw==", "dev": true, "requires": { - "@babel/compat-data": "^7.15.0", + "@babel/compat-data": "^7.14.5", "@babel/helper-validator-option": "^7.14.5", "browserslist": "^4.16.6", "semver": "^6.3.0" @@ -503,10 +503,22 @@ "node-releases": "^1.1.73" } }, + "caniuse-lite": { + "version": "1.0.30001248", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001248.tgz", + "integrity": "sha512-NwlQbJkxUFJ8nMErnGtT0QTM2TJ33xgz4KXJSMIrjXIbDVdaYueGyjOrLKRtJC+rTiWfi6j5cnZN1NBiSBJGNw==", + "dev": true + }, "electron-to-chromium": { - "version": "1.3.802", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.802.tgz", - "integrity": "sha512-dXB0SGSypfm3iEDxrb5n/IVKeX4uuTnFHdve7v+yKJqNpEP0D4mjFJ8e1znmSR+OOVlVC+kDO6f2kAkTFXvJBg==", + "version": "1.3.795", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz", + "integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==", + "dev": true + }, + "node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", "dev": true }, "semver": { @@ -547,9 +559,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -565,18 +577,18 @@ } }, "@babel/helper-member-expression-to-functions": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz", - "integrity": "sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg==", + "version": "7.14.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.14.7.tgz", + "integrity": "sha512-TMUt4xKxJn6ccjcOW7c4hlwyJArizskAhoSTOCkA0uZ+KghIaci0Qg9R043kUMWI9mtQfgny+NQ5QATnZ+paaA==", "dev": true, "requires": { - "@babel/types": "^7.15.0" + "@babel/types": "^7.14.5" }, "dependencies": { "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -601,9 +613,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -619,19 +631,19 @@ } }, "@babel/helper-module-transforms": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz", - "integrity": "sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg==", + "version": "7.14.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.8.tgz", + "integrity": "sha512-RyE+NFOjXn5A9YU1dkpeBaduagTlZ0+fccnIcAGbv1KGUlReBj7utF7oEth8IdIBQPcux0DDgW5MFBH2xu9KcA==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.14.5", - "@babel/helper-replace-supers": "^7.15.0", + "@babel/helper-replace-supers": "^7.14.5", "@babel/helper-simple-access": "^7.14.8", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/helper-validator-identifier": "^7.14.9", + "@babel/helper-validator-identifier": "^7.14.8", "@babel/template": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/traverse": "^7.14.8", + "@babel/types": "^7.14.8" }, "dependencies": { "@babel/code-frame": { @@ -644,12 +656,12 @@ } }, "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.9.tgz", + "integrity": "sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA==", "dev": true, "requires": { - "@babel/types": "^7.15.0", + "@babel/types": "^7.14.9", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -695,9 +707,9 @@ } }, "@babel/parser": { - "version": "7.15.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", - "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.9.tgz", + "integrity": "sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ==", "dev": true }, "@babel/template": { @@ -712,26 +724,26 @@ } }, "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.9.tgz", + "integrity": "sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", + "@babel/generator": "^7.14.9", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/parser": "^7.14.9", + "@babel/types": "^7.14.9", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -818,9 +830,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -842,15 +854,15 @@ "dev": true }, "@babel/helper-replace-supers": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz", - "integrity": "sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA==", + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.5.tgz", + "integrity": "sha512-3i1Qe9/8x/hCHINujn+iuHy+mMRLoc77b2nI9TB0zjH1hvn9qGlXjWlggdwUcju36PkPCy/lpM7LLUdcTyH4Ow==", "dev": true, "requires": { - "@babel/helper-member-expression-to-functions": "^7.15.0", + "@babel/helper-member-expression-to-functions": "^7.14.5", "@babel/helper-optimise-call-expression": "^7.14.5", - "@babel/traverse": "^7.15.0", - "@babel/types": "^7.15.0" + "@babel/traverse": "^7.14.5", + "@babel/types": "^7.14.5" }, "dependencies": { "@babel/code-frame": { @@ -863,12 +875,12 @@ } }, "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.9.tgz", + "integrity": "sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA==", "dev": true, "requires": { - "@babel/types": "^7.15.0", + "@babel/types": "^7.14.9", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -914,9 +926,9 @@ } }, "@babel/parser": { - "version": "7.15.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", - "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.9.tgz", + "integrity": "sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ==", "dev": true }, "@babel/template": { @@ -931,26 +943,26 @@ } }, "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.9.tgz", + "integrity": "sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", + "@babel/generator": "^7.14.9", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/parser": "^7.14.9", + "@babel/types": "^7.14.9", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -1037,9 +1049,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -1096,12 +1108,12 @@ } }, "@babel/generator": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.15.0.tgz", - "integrity": "sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.9.tgz", + "integrity": "sha512-4yoHbhDYzFa0GLfCzLp5GxH7vPPMAHdZjyE7M/OajM9037zhx0rf+iNsJwp4PT0MSFpwjG7BsHEbPkBQpZ6cYA==", "dev": true, "requires": { - "@babel/types": "^7.15.0", + "@babel/types": "^7.14.9", "jsesc": "^2.5.1", "source-map": "^0.5.0" } @@ -1147,9 +1159,9 @@ } }, "@babel/parser": { - "version": "7.15.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.2.tgz", - "integrity": "sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.9.tgz", + "integrity": "sha512-RdUTOseXJ8POjjOeEBEvNMIZU/nm4yu2rufRkcibzkkg7DmQvXU8v3M4Xk9G7uuI86CDGkKcuDWgioqZm+mScQ==", "dev": true }, "@babel/template": { @@ -1164,26 +1176,26 @@ } }, "@babel/traverse": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.15.0.tgz", - "integrity": "sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.9.tgz", + "integrity": "sha512-bldh6dtB49L8q9bUyB7bC20UKgU+EFDwKJylwl234Kv+ySZeMD31Xeht6URyueQ6LrRRpF2tmkfcZooZR9/e8g==", "dev": true, "requires": { "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.0", + "@babel/generator": "^7.14.9", "@babel/helper-function-name": "^7.14.5", "@babel/helper-hoist-variables": "^7.14.5", "@babel/helper-split-export-declaration": "^7.14.5", - "@babel/parser": "^7.15.0", - "@babel/types": "^7.15.0", + "@babel/parser": "^7.14.9", + "@babel/types": "^7.14.9", "debug": "^4.1.0", "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.0.tgz", - "integrity": "sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ==", + "version": "7.14.9", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.9.tgz", + "integrity": "sha512-u0bLTnv3DFHeaQLYzb7oRJ1JHr1sv/SYDM7JSqHFFLwXG1wTZRughxFI5NCP8qBEo1rVVsn7Yg2Lvw49nne/Ow==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.14.9", @@ -2140,12 +2152,6 @@ "@babel/types": "^7.3.0" } }, - "@types/json-schema": { - "version": "7.0.8", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.8.tgz", - "integrity": "sha512-YSBPTLTVm2e2OoQIDYx8HaeWJ5tTToLH67kXR7zYNGupXMEHa2++G8k+DczX2cFVgalypqtyZIcU19AFcmOpmg==", - "dev": true - }, "@types/node": { "version": "12.6.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.6.2.tgz", @@ -3402,12 +3408,6 @@ } } }, - "babel-plugin-syntax-dynamic-import": { - "version": "6.18.0", - "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", - "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", - "dev": true - }, "babel-plugin-syntax-flow": { "version": "6.18.0", "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", @@ -14896,92 +14896,6 @@ "tiny-warning": "^1.0.3" } }, - "mini-css-extract-plugin": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-1.6.2.tgz", - "integrity": "sha512-WhDvO3SjGm40oV5y26GjMJYjd2UMqrLAGKy5YS2/3QKJy2F7jgynuHTir/tgUUOiNQu5saXHdc8reo7YuhhT4Q==", - "dev": true, - "requires": { - "loader-utils": "^2.0.0", - "schema-utils": "^3.0.0", - "webpack-sources": "^1.1.0" - }, - "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "json5": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", - "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "dev": true, - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "schema-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.0.tgz", - "integrity": "sha512-tTEaeYkyIhEZ9uWgAjDerWov3T9MgX8dhhy2r0IGeeX4W8ngtGl1++dUve/RUqzuaASSh7shwCDJjEzthxki8w==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.7", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - } - } - } - }, "minilog": { "version": "2.0.8", "resolved": "https://registry.npmjs.org/minilog/-/minilog-2.0.8.tgz", @@ -20977,21 +20891,21 @@ } }, "scratch-blocks": { - "version": "0.1.0-prerelease.20210811082835", - "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210811082835.tgz", - "integrity": "sha512-Rw9S72of8SMAv7Qz6ZVKLePLHx4m/rmWNcJ65hTFVWGv21SvBp7RSmqCcyHDvQzKOHjIxQMSgc+fW2qStSQDAA==", + "version": "0.1.0-prerelease.20210804044921", + "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210804044921.tgz", + "integrity": "sha512-Kx+sOHdF9ubDt34k2cM633cberB7+x2HnUNw2d6JA15XzNP4uZoqttoQOMt6i/vrh905bbJjqgg28h7ZWOS2zQ==", "dev": true, "requires": { "exports-loader": "0.6.3", "google-closure-library": "20190301.0.0", "imports-loader": "0.6.5", - "scratch-l10n": "3.14.20210811031521" + "scratch-l10n": "3.13.20210804031526" } }, "scratch-gui": { - "version": "0.1.0-prerelease.20210811131219", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210811131219.tgz", - "integrity": "sha512-1BDkhRNmFbm0KIs9e0Z8WBF9hUcHv1+SKRDDOJ8WRaZEgG15TLFaBm9jeYQLhXbdZ/LNm19OxMgicI6syuO2+A==", + "version": "0.1.0-prerelease.20210804101730", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210804101730.tgz", + "integrity": "sha512-1s2gEf50WqZ1cny/uDjc+HGM0NIywrg3qO2ATsZqs8FRD6JhXFcbgUI/ZR2eciQ+cXBS6piVtriAJKTVqiP7vw==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -21042,14 +20956,14 @@ "redux": "3.7.2", "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", - "scratch-blocks": "0.1.0-prerelease.20210811082835", - "scratch-l10n": "3.14.20210811031521", - "scratch-paint": "0.2.0-prerelease.20210811051056", + "scratch-blocks": "0.1.0-prerelease.20210804044921", + "scratch-l10n": "3.13.20210804031526", + "scratch-paint": "0.2.0-prerelease.20210804042639", "scratch-render": "0.1.0-prerelease.20210325231800", "scratch-render-fonts": "1.0.0-prerelease.20210401210003", "scratch-storage": "1.3.5", "scratch-svg-renderer": "0.2.0-prerelease.20210727023023", - "scratch-vm": "0.2.0-prerelease.20210811102104", + "scratch-vm": "0.2.0-prerelease.20210804080338", "startaudiocontext": "1.2.1", "style-loader": "^0.23.0", "text-encoding": "0.7.0", @@ -21212,9 +21126,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.802", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.802.tgz", - "integrity": "sha512-dXB0SGSypfm3iEDxrb5n/IVKeX4uuTnFHdve7v+yKJqNpEP0D4mjFJ8e1znmSR+OOVlVC+kDO6f2kAkTFXvJBg==", + "version": "1.3.795", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.795.tgz", + "integrity": "sha512-4TPxrLf9Fzsi4rVgTlDm+ubxoXm3/TN67/LGHx/a4UkVubKILa6L26O6eTnHewixG/knzU9L3lLmfL39eElwlQ==", "dev": true }, "has-flag": { @@ -21478,9 +21392,9 @@ } }, "scratch-l10n": { - "version": "3.14.20210811031521", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20210811031521.tgz", - "integrity": "sha512-3MFVheuqNm1pOYHrvV/zT3K89SiClwwAEkj/loAeJ6a5mwfblPLWe0PeRq1cuRvxQQuGh2Nrrl/WT8oaDkG9xQ==", + "version": "3.13.20210804031526", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.13.20210804031526.tgz", + "integrity": "sha512-fF/Aqilg4PsVK6sw96Hk6OjAF4erW3Wc+GheHIfTwLiUW784cV7wLEzZ9HRIWJ/wuAxTjFzxPzWE+uqXmtCgeA==", "dev": true, "requires": { "@babel/cli": "^7.1.2", @@ -21490,9 +21404,9 @@ } }, "scratch-paint": { - "version": "0.2.0-prerelease.20210811051056", - "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20210811051056.tgz", - "integrity": "sha512-l8AH7p7Y6EZEaTI+txbU6+bYhWpCyz8gAQKt0lib2gQaQCP7CM2cC0hgHUbtrhsUrpuUI4asVKHr5b+R8GK/0w==", + "version": "0.2.0-prerelease.20210804042639", + "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-0.2.0-prerelease.20210804042639.tgz", + "integrity": "sha512-iFCFWeGCXGmfQpYRRgHYdMX8hMoo68MoDY2dgCzU5RFUrmE/r8THztRhDjK0VYK+lCgSAxjAtMuU/8uyXxwUCA==", "dev": true, "requires": { "@scratch/paper": "0.11.20200728195508", @@ -21746,9 +21660,9 @@ "dev": true }, "scratch-vm": { - "version": "0.2.0-prerelease.20210811102104", - "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210811102104.tgz", - "integrity": "sha512-VUQoYg5byWlqdCuDeZ7gGDhyaSZa6SNVMHuHef+5g9z/sB7ezNJvSYTyTGqiRv3ygGItbXZ0/5CFF8/B+Xc73A==", + "version": "0.2.0-prerelease.20210804080338", + "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-0.2.0-prerelease.20210804080338.tgz", + "integrity": "sha512-oxeqXRCM2EmWbqy05yHlRwOto2/Miqgh+WEYWwjFZPD9XjuXGUSULXwhFbC/vaBA3K4HH2x+wszMCeFunb2JSA==", "dev": true, "requires": { "@vernier/godirect": "1.5.0", diff --git a/package.json b/package.json index b5aa58973..34ce459db 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,11 @@ "clean": "rm -rf ./build && rm -rf ./intl && mkdir -p build && mkdir -p intl", "deploy": "npm run deploy:s3 && npm run deploy:fastly", "deploy:fastly": "node ./bin/configure-fastly.js", - "deploy:s3": "npm run deploy:s3:all && npm run deploy:s3:svg && npm run deploy:s3:js && npm run deploy:s3:css", + "deploy:s3": "npm run deploy:s3:all && npm run deploy:s3:svg && npm run deploy:s3:js", "deploy:s3cmd": "s3cmd sync -P --delete-removed --add-header=Cache-Control:no-cache,public,max-age=3600 --add-header=x-amz-meta-surrogate-key:static-assets", - "deploy:s3:all": "npm run deploy:s3cmd -- --exclude '.DS_Store' --exclude '*.svg' --exclude '*.js' --exclude '*.css' ./build/ s3://$S3_BUCKET_NAME/", + "deploy:s3:all": "npm run deploy:s3cmd -- --exclude '.DS_Store' --exclude '*.svg' --exclude '*.js' ./build/ s3://$S3_BUCKET_NAME/", "deploy:s3:svg": "npm run deploy:s3cmd -- --exclude '*' --include '*.svg' --mime-type 'image/svg+xml' ./build/ s3://$S3_BUCKET_NAME/", "deploy:s3:js": "npm run deploy:s3cmd -- --exclude '*' --include '*.js' --mime-type 'application/javascript' ./build/ s3://$S3_BUCKET_NAME/", - "deploy:s3:css": "npm run deploy:s3cmd -- --exclude '*' --include '*.css' --mime-type 'text/css' ./build/ s3://$S3_BUCKET_NAME/", "i18n:push": "./bin/tx-push-www --execute", "translate:urls": "node ./bin/get-localized-urls localized-urls.json", "translate:files": "node ./bin/build-locales node_modules/scratch-l10n/www intl", @@ -70,7 +69,6 @@ "babel-core": "6.23.1", "babel-eslint": "10.0.3", "babel-loader": "7.1.0", - "babel-plugin-syntax-dynamic-import": "^6.18.0", "babel-plugin-transform-object-rest-spread": "6.26.0", "babel-plugin-transform-require-context": "0.1.1", "babel-preset-es2015": "6.22.0", @@ -107,7 +105,6 @@ "lodash.mergewith": "4.6.2", "lodash.omit": "3.1.0", "lodash.uniqby": "4.7.0", - "mini-css-extract-plugin": "^1.6.2", "minilog": "2.0.8", "node-sass": "4.14.1", "pako": "0.2.8", @@ -130,8 +127,8 @@ "redux-mock-store": "1.5.4", "redux-thunk": "2.0.1", "sass-loader": "6.0.6", - "scratch-gui": "0.1.0-prerelease.20210811131219", - "scratch-l10n": "3.14.20210811031521", + "scratch-gui": "0.1.0-prerelease.20210804101730", + "scratch-l10n": "3.13.20210804031526", "selenium-webdriver": "3.6.0", "slick-carousel": "1.6.0", "style-loader": "0.12.3", diff --git a/src/routes.json b/src/routes.json index 4c462e277..6f7b86e4e 100644 --- a/src/routes.json +++ b/src/routes.json @@ -253,6 +253,14 @@ "view": "search/search", "title": "Search" }, + { + "name": "sec", + "pattern": "^/sec/?(\\?.*)?$", + "routeAlias": "/sec/?", + "view": "sec/sec", + "title": "Scratch Education Collaborative", + "viewportWidth": "device-width" + }, { "name": "splash", "pattern": "^/?$", @@ -467,12 +475,6 @@ "routeAlias": "/search", "redirect": "/search/projects" }, - { - "name": "sec-redirect", - "pattern": "^/sec/?$", - "routeAlias": "/sec", - "redirect": "https://sip.scratch.mit.edu/sec" - }, { "name": "splash-redirect", "pattern": "^///?$", diff --git a/src/template.ejs b/src/template.ejs index 316e06502..afa720981 100644 --- a/src/template.ejs +++ b/src/template.ejs @@ -31,8 +31,6 @@ <!-- Favicon & CSS normalize --> <link rel="shortcut icon" href="/favicon.ico" /> <link rel="stylesheet" href="/css/lib/normalize.min.css" /> - <link rel="stylesheet" href="<%= htmlWebpackPlugin.files.chunks.common.css[0] %>" /> - <link rel="stylesheet" href="<%= htmlWebpackPlugin.files.chunks[htmlWebpackPlugin.options.route.name].css[0] %>" /> <!-- Polyfills --> <script src="/js/polyfill.min.js"></script> @@ -61,11 +59,11 @@ <div id="app"></div> <!-- Vendor & Initialize (Session & Localization)--> - <script src="<%= htmlWebpackPlugin.files.chunks.common.entry %>"></script> + <script src="/<%= htmlWebpackPlugin.files.chunks.common.entry %>"></script> <!-- Scripts --> <script src="/js/<%= htmlWebpackPlugin.options.route.name %>.intl.js"></script> - <script src="<%= htmlWebpackPlugin.files.chunks[htmlWebpackPlugin.options.route.name].entry %>"></script> + <script src="/<%= htmlWebpackPlugin.files.chunks[htmlWebpackPlugin.options.route.name].entry %>"></script> <!-- Translate title element --> <% if (!htmlWebpackPlugin.options.dynamicMetaTags) { %> diff --git a/src/views/download/scratch2/download.jsx b/src/views/download/scratch2/download.jsx index 1bb90e664..edbf5afe2 100644 --- a/src/views/download/scratch2/download.jsx +++ b/src/views/download/scratch2/download.jsx @@ -113,6 +113,9 @@ class Download extends React.Component { id="installation" > <div className="inner"> + <p className="callout"> + <FormattedHTMLMessage id="download.introMac" /> + </p> <FlexRow className="three-col-row"> <div className="installation-column"> <div className="installation-column-number"> @@ -120,6 +123,26 @@ class Download extends React.Component { </div> <h3><FormattedMessage id="download.airTitle" /></h3> <p><FormattedHTMLMessage id="download.airBody" /></p> + <ul className="installation-downloads"> + <li className="installation-downloads-item"> + <FormattedMessage id="download.macOSX" /> - + {' '}<a href="http://get.adobe.com/air/"> + <FormattedMessage id="download.download" /> + </a> + </li> + <li className="installation-downloads-item"> + <FormattedMessage id="download.macOlder" /> - + {' '}<a href="http://airdownload.adobe.com/air/mac/download/2.6/AdobeAIR.zip"> + <FormattedMessage id="download.download" /> + </a> + </li> + <li className="installation-downloads-item"> + <FormattedMessage id="download.windows" /> - + {' '}<a href="http://get.adobe.com/air/"> + <FormattedMessage id="download.download" /> + </a> + </li> + </ul> </div> <div className="installation-column"> <div className="installation-column-number"> diff --git a/src/views/download/scratch2/l10n.json b/src/views/download/scratch2/l10n.json index 266b7a653..3c5144115 100644 --- a/src/views/download/scratch2/l10n.json +++ b/src/views/download/scratch2/l10n.json @@ -1,9 +1,10 @@ { "download.title": "Scratch 2.0 Offline Editor", "download.intro": "You can install the Scratch 2.0 editor to work on projects without an internet connection. This version will work on Windows and MacOS.", + "download.introMac": "<b>Note for Mac Users:</b> the latest version of Scratch 2.0 Offline requires Adobe AIR 20. To upgrade to Adobe AIR 20 manually, go <a href=\"https://get.adobe.com/air/\">here</a>.", "download.installation": "Installation", "download.airTitle": "Adobe AIR", - "download.airBody": "If you don't already have it, download and install the latest <a href=\"https://airsdk.harman.com/runtime\">Adobe AIR</a>", + "download.airBody": "If you don't already have it, download and install the latest <a href=\"http://get.adobe.com/air/\">Adobe AIR</a>", "download.macOSX": "Mac OS X", "download.macOlder": "Mac OS 10.5 & Older", "download.windows": "Windows", diff --git a/src/views/sec/l10n.json b/src/views/sec/l10n.json new file mode 100644 index 000000000..c74fcabea --- /dev/null +++ b/src/views/sec/l10n.json @@ -0,0 +1,55 @@ +{ + "sec.title": "Scratch Education Collaborative (SEC)", + "sec.intro": "Participating Orgs", + "sec.applyNow": "Apply now!", + "sec.applyBanner": "Applications are now closed. The deadline for applying to the SEC for 2021 was March 1st.", + "sec.projectsTitle": "Participating Orgs", + "sec.yearRange": "2021-2022", + "sec.org1": "{org1Listing} - AK, USA", + "sec.org2": "{org2Listing} - AR, USA", + "sec.org3": "{org3Listing} - UT, USA", + "sec.org4": "{org4Listing} - TX, USA", + "sec.org5": "{org5Listing} - MS, USA", + "sec.org6": "{org6Listing} - Santa Bárbara, Brazil", + "sec.org7": "{org7Listing} - Sydney, Australia", + "sec.org8": "{org8Listing} - Memphis, TN, USA", + "sec.org9": "{org9Listing} - NYC, NY, USA", + "sec.org10": "{org10Listing} - Jos, Nigeria", + "sec.org11": "{org11Listing} - Baltimore, MD, USA", + "sec.org12": "{org12Listing} - Johannesburg, South Africa", + "sec.org13": "{org13Listing} - Hayward, CA, USA", + "sec.org14": "{org14Listing} - Humble, TX, USA", + "sec.org15": "{org15Listing} - Guildford, UK", + "sec.org16": "{org16Listing} - México City, MX", + "sec.org17": "{org17Listing} - Montréal, Canada", + "sec.org18": "{org18Listing} - Clark County School District, NV, USA", + "sec.org19": "{org19Listing} - Othello School District, WA, USA", + "sec.org20": "{org20Listing} - Uganda", + "sec.org21": "{org21Listing} - NYC, NY, USA", + "sec.org22": "{org22Listing} - USA", + "sec.org23": "{org23Listing} - FL, USA", + "sec.org24": "{org24Listing} - NYC, NY, USA", + "sec.org25": "{org25Listing} - NYC, NY, USA", + "sec.org26": "{org26Listing} - Nigeria", + "sec.org27": "{org27Listing} - Princeton, NJ, USA", + "sec.org28": "{org28Listing} - Bengaluru, India", + "sec.org29": "{org29Listing} - Johannesburg, South Africa", + "sec.org30": "{org30Listing} - Barcelona, Spain", + "sec.org31": "{org31Listing} - Phnom Penh, Cambodia", + "sec.org32": "{org32Listing} - Nairobi, Kenya", + "sec.org33": "{org33Listing} - Nairobi, Kenya", + "sec.org34": "{org34Listing} - Johannesburg, South Africa", + "sec.org35": "{org35Listing} - Chicago Public Schools, IL, USA", + "sec.org36": "{org36Listing} - Lagos, Nigeria", + "sec.org37": "{org37Listing} - Girona, Spain", + "sec.org38": "{org38Listing} - Halifax, Nova Scotia", + "sec.org39": "{org39Listing} - USA", + "sec.org40": "{org40Listing} - Owerri, Nigeria & Nairobi, Kenya", + "sec.partnerOrgsTitle": "Partner Orgs", + "sec.partnerOrg1": "{partnerOrg1Listing} - Cambridge, UK", + "sec.partnerOrg2": "{partnerOrg2Listing} (Formerly {partnerOrg2FormerName}) - Stanford, CA, USA", + "sec.partnerOrg3": "{partnerOrg3Listing} - IL, USA", + "sec.partnerOrg4": "{partnerOrg4Listing} - New Orleans, LA, USA", + "sec.partnerOrg5": "{partnerOrg5Listing} - Brazil", + "sec.partnerOrg6": "{partnerOrg6Listing} - San Francisco, CA, USA" +} \ No newline at end of file diff --git a/src/views/sec/sec.jsx b/src/views/sec/sec.jsx new file mode 100644 index 000000000..f91a2570b --- /dev/null +++ b/src/views/sec/sec.jsx @@ -0,0 +1,827 @@ +const FormattedMessage = require('react-intl').FormattedMessage; +const React = require('react'); + +const FlexRow = require('../../components/flex-row/flex-row.jsx'); +const TitleBanner = require('../../components/title-banner/title-banner.jsx'); + +const render = require('../../lib/render.jsx'); +const Page = require('../../components/page/www/page.jsx'); + +require('./sec.scss'); + +const EducationCollaborative = () => ( + <div className="education-collaborative"> + <TitleBanner className="masthead"> + <div className="inner"> + <FlexRow className="masthead-info uneven"> + <div className="long"> + <h1 className="title-banner-h1"> + <FormattedMessage id="sec.title" /> + </h1> + <p className="title-banner-p intro"> + <FormattedMessage id="sec.intro" /> | <FormattedMessage id="sec.yearRange" /> + </p> + </div> + <img + alt="" + className="title-banner-img short" + src="/images/sec/SEC-top-image.png" + /> + </FlexRow> + </div> + </TitleBanner> + <div className="inner sec-faq"> + <section id="projects"> + <h3>A</h3> + <p> + <FormattedMessage + id="sec.org1" + values={{ + org1Listing: ( + <a + href="https://www.ansep.net/" + rel="noopener noreferrer" + target="_blank" + > + Alaska Native Science & Engineering Program + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org2" + values={{ + org2Listing: ( + <a + href="https://arhub.org/" + rel="noopener noreferrer" + target="_blank" + > + Arkansas Regional Innovation Hub + </a> + ) + }} + /> + </p> + <h3>B</h3> + <p> + <FormattedMessage + id="sec.org3" + values={{ + org3Listing: ( + <a + href="https://bootuppd.org/" + rel="noopener noreferrer" + target="_blank" + > + BootUp PD + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org4" + values={{ + org4Listing: ( + <a + href="https://bridgestoscience.org/" + rel="noopener noreferrer" + target="_blank" + > + Bridges to Science + </a> + ) + }} + /> + </p> + <h3>C</h3> + <p> + <FormattedMessage + id="sec.org5" + values={{ + org5Listing: ( + <a + href="https://www.rcu.msstate.edu/CyberEducation.aspx" + rel="noopener noreferrer" + target="_blank" + > + Center for Cyber Education at Mississippi State University + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org6" + values={{ + org6Listing: ( + <a + href="https://www.acaoparceiros.org/" + rel="noopener noreferrer" + target="_blank" + > + Creative Community Learning Brasil Space Action Partners + / Projeto Social Ação Parceiros + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org7" + values={{ + org7Listing: ( + <a + href="https://www.codeclubau.org/" + rel="noopener noreferrer" + target="_blank" + > + Code Club Australia + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org8" + values={{ + org8Listing: ( + <a + href="https://www.code-crew.org/" + rel="noopener noreferrer" + target="_blank" + > + CodeCrew + </a> + ) + }} + /> + </p> + <h3>D</h3> + <p> + <FormattedMessage + id="sec.org9" + values={{ + org9Listing: ( + <a + href="https://www.deafkidscode.org/" + rel="noopener noreferrer" + target="_blank" + > + Deaf Kids Code + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org10" + values={{ + org10Listing: ( + <a + href="https://www.facebook.com/DeafTechnologyFoundation/" + rel="noopener noreferrer" + target="_blank" + > + Deaf Technology Foundation + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org11" + values={{ + org11Listing: ( + <a + href="https://www.digitalharbor.org/" + rel="noopener noreferrer" + target="_blank" + > + Digital Harbor Foundation + </a> + ) + }} + /> + </p> + <h3>F</h3> + <p> + <FormattedMessage + id="sec.org12" + values={{ + org12Listing: ( + <a + href="https://www.uj.ac.za/Pages/default.aspx" + rel="noopener noreferrer" + target="_blank" + > + Faculty of Education Team at University of Johannesburg + </a> + ) + }} + /> + </p> + <h3>H</h3> + <p> + <FormattedMessage + id="sec.org13" + values={{ + org13Listing: ( + <a + href="https://www.husd.us/" + rel="noopener noreferrer" + target="_blank" + > + Hayward Unified School District + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org14" + values={{ + org14Listing: ( + <a + href="https://www.humbleisd.net/" + rel="noopener noreferrer" + target="_blank" + > + Humble Independent School District (ISD) + </a> + ) + }} + /> + </p> + <h3>I</h3> + <p> + <FormattedMessage + id="sec.org15" + values={{ + org15Listing: ( + <a + href="https://www.iamthecode.org/" + rel="noopener noreferrer" + target="_blank" + > + iamtheCODE + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org16" + values={{ + org16Listing: ( + <a + href="https://www.ilce.edu.mx/" + rel="noopener noreferrer" + target="_blank" + > + ILCE Instituto Latino Americano de la Comunicación Educativa + </a> + ) + }} + /> + </p> + <h3>K</h3> + <p> + <FormattedMessage + id="sec.org17" + values={{ + org17Listing: ( + <a + href="https://kidscodejeunesse.org/" + rel="noopener noreferrer" + target="_blank" + > + Kids Code Jeunesse + </a> + ) + }} + /> + </p> + <h3>L</h3> + <p> + <FormattedMessage + id="sec.org18" + values={{ + org18Listing: ( + <a + href="https://www.lomieheardmagnet.org/" + rel="noopener noreferrer" + target="_blank" + > + Lomie G. Heard Elementary School + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org19" + values={{ + org19Listing: ( + <a + href="https://www.othelloschools.org/lutacaga" + rel="noopener noreferrer" + target="_blank" + > + Lutacaga Elementary + </a> + ) + }} + /> + </p> + <h3>M</h3> + <p> + <FormattedMessage + id="sec.org20" + values={{ + org20Listing: ( + <a + href="http://www.makerereinnovationsociety.org/?i=1" + rel="noopener noreferrer" + target="_blank" + > + Makerere Innovation Society + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org21" + values={{ + org21Listing: ( + <a + href="https://mouse.org/" + rel="noopener noreferrer" + target="_blank" + > + Mouse + </a> + ) + }} + /> + </p> + <h3>N</h3> + <p> + <FormattedMessage + id="sec.org22" + values={{ + org22Listing: ( + <a + href="https://www.nsbe.org/" + rel="noopener noreferrer" + target="_blank" + > + National Society of Black Engineers + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org23" + values={{ + org23Listing: ( + <a + href="https://nefstem.domains.unf.edu/" + rel="noopener noreferrer" + target="_blank" + > + NEFSTEM Center, University of North Florida + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org24" + values={{ + org24Listing: ( + <a + href="http://cs4all.nyc/" + rel="noopener noreferrer" + target="_blank" + > + New York City Department of Education - CSforAllNYC + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org25" + values={{ + org25Listing: ( + <a + href="https://nysci.org/" + rel="noopener noreferrer" + target="_blank" + > + New York Hall of Science + </a> + ) + }} + /> + </p> + <h3>O</h3> + <p> + <FormattedMessage + id="sec.org26" + values={{ + org26Listing: ( + <a + href="https://www.odysseyedufoundation.org/" + rel="noopener noreferrer" + target="_blank" + > + Odyssey Educational Foundation + </a> + ) + }} + /> + </p> + <h3>P</h3> + <p> + <FormattedMessage + id="sec.org27" + values={{ + org27Listing: ( + <a + href="https://www.playpattern.com/" + rel="noopener noreferrer" + target="_blank" + > + Play Pattern + </a> + ) + }} + /> + </p> + <h3>Q</h3> + <p> + <FormattedMessage + id="sec.org28" + values={{ + org28Listing: ( + <a + href="https://www.questalliance.net/" + rel="noopener noreferrer" + target="_blank" + > + Quest Alliance + </a> + ) + }} + /> + </p> + <h3>S</h3> + <p> + <FormattedMessage + id="sec.org29" + values={{ + org29Listing: ( + <a + href="https://www.schoolnet.org.za/" + rel="noopener noreferrer" + target="_blank" + > + Schoolnet South Africa + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org30" + values={{ + org30Listing: ( + <a + href="https://www.sistemathead.com/" + rel="noopener noreferrer" + target="_blank" + > + Sistema THEAD + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org31" + values={{ + org31Listing: ( + <a + href="https://www.sistersofcode.org/" + rel="noopener noreferrer" + target="_blank" + > + Sisters of Code + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org32" + values={{ + org32Listing: ( + <a + href="https://www.steamlabsafrica.com/" + rel="noopener noreferrer" + target="_blank" + > + STEAMLabs Africa + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org33" + values={{ + org33Listing: ( + <a + href="https://stemimpactcenterkenya.org/" + rel="noopener noreferrer" + target="_blank" + > + STEM Impact Center Kenya + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org34" + values={{ + org34Listing: ( + <a + href="http://www.streetlightschools.org/" + rel="noopener noreferrer" + target="_blank" + > + Streetlight Schools + </a> + ) + }} + /> + </p> + <h3>T</h3> + <p> + <FormattedMessage + id="sec.org35" + values={{ + org35Listing: ( + <a + href="https://tannerschool.org/" + rel="noopener noreferrer" + target="_blank" + > + Tanner Elementary + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org36" + values={{ + org36Listing: ( + <a + href="https://www.teachathonetwork.com/coverpage" + rel="noopener noreferrer" + target="_blank" + > + Teachathon Foundation + </a> + ) + }} + /> + </p> + <h3>U</h3> + <p> + <FormattedMessage + id="sec.org37" + values={{ + org37Listing: ( + <a + href="https://udigital.udg.edu/" + rel="noopener noreferrer" + target="_blank" + > + UdiGitalEdu + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.org38" + values={{ + org38Listing: ( + <a + href="https://www.digitalmikmaq.com/" + rel="noopener noreferrer" + target="_blank" + > + Ulnooweg - Digital Mi'kmaq + </a> + ) + }} + /> + </p> + <h3>W</h3> + <p> + <FormattedMessage + id="sec.org39" + values={{ + org39Listing: ( + <a + href="https://www.tacc.utexas.edu/epic/weteachcs" + rel="noopener noreferrer" + target="_blank" + > + WeTeach_CS, Center for Cyber Education at University of Texas Austin + </a> + ) + }} + /> + </p> + <h3>Y</h3> + <p> + <FormattedMessage + id="sec.org40" + values={{ + org40Listing: ( + <a + href="http://www.youthfortechnology.org/" + rel="noopener noreferrer" + target="_blank" + > + Youth for Technology Foundation + </a> + ) + }} + /> + </p> + + </section> + + </div> + <TitleBanner className="masthead"> + <div className="inner"> + <FlexRow className="masthead-info uneven"> + <div className="long"> + <h1><FormattedMessage id="sec.title" /></h1> + <p className="title-banner-p intro"> + <FormattedMessage id="sec.partnerOrgsTitle" /> | <FormattedMessage id="sec.yearRange" /> + </p> + </div> + <img + alt="" + className="title-banner-img short" + src="/images/sec/SEC-bottom-image.png" + /> + </FlexRow> + </div> + </TitleBanner> + <div className="inner sec-faq"> + <section id="expectations-for-sec"> + <p> + <FormattedMessage + id="sec.partnerOrg1" + values={{ + partnerOrg1Listing: ( + <a + href="https://www.raspberrypi.org/about/" + rel="noopener noreferrer" + target="_blank" + > + Raspberry Pi Foundation + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.partnerOrg2" + values={{ + partnerOrg2Listing: ( + <a + href="https://dschool.stanford.edu/" + rel="noopener noreferrer" + target="_blank" + > + Stanford d. School + </a> + ), + partnerOrg2FormerName: ( + 'School of Intercultural Computing' + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.partnerOrg3" + values={{ + partnerOrg3Listing: ( + <a + href="http://cps.edu/cs" + rel="noopener noreferrer" + target="_blank" + > + Chicago Public Schools + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.partnerOrg4" + values={{ + partnerOrg4Listing: ( + <a + href="https://stemnola.com/" + rel="noopener noreferrer" + target="_blank" + > + STEM Nola + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.partnerOrg5" + values={{ + partnerOrg5Listing: ( + <a + href="https://www.aprendizagemcriativa.org/pt-br" + rel="noopener noreferrer" + target="_blank" + > + Brazilian Creative Learning Network (BCLN) + </a> + ) + }} + /> + </p> + <p> + <FormattedMessage + id="sec.partnerOrg6" + values={{ + partnerOrg6Listing: ( + <a + href="https://www.exploratorium.edu/tinkering/" + rel="noopener noreferrer" + target="_blank" + > + The Tinkering Studio + </a> + ) + }} + /> + </p> + </section> + </div> + <section className="band"> + <div className="inner"> + <h4 className="applyBanner"><FormattedMessage id="sec.applyBanner" /></h4> + </div> + </section> + </div> +); + +render(<Page><EducationCollaborative /></Page>, document.getElementById('app')); diff --git a/src/views/sec/sec.scss b/src/views/sec/sec.scss new file mode 100644 index 000000000..b8dc70402 --- /dev/null +++ b/src/views/sec/sec.scss @@ -0,0 +1,124 @@ +@import "../../colors"; +@import "../../frameless"; + +$sec-spot: $ui-blue; + +#view { + padding: 0; +} + +.education-collaborative { + .title-banner { + &.masthead { + background-color: $sec-spot; + padding: 50px 0 0 0; + margin: 0; + + .masthead-info { + align-items: center; + justify-content: space-between; + + @media #{$intermediate} { + justify-content: end; + } + + .long { + padding-bottom: 2rem; + } + + h1 { + margin: 0 0 1rem 0; + text-align: left; + color: $ui-white; + } + p { + margin: 0; + text-align: left; + color: $ui-white; + max-width: $cols6; + font-size: 1.65em; + } + + .title-banner-button { + background-color: $ui-white; + color: $ui-blue; + font-size: 1rem; + padding: 0.75rem 1rem; + img { + margin-right: 1rem; + height: 1.2rem; + vertical-align: middle; + } + + a { + color: $ui-white; + } + + span { + vertical-align: middle; + } + } + + .title-banner-img { + width: $cols4; + } + + .sec-apply-buttons { + margin-top: 2rem; + li { + border: 2px solid $ui-white; + padding: 16px; + font-size: 16px; + font-weight: 500; + } + } + } + } + } + + section { + margin-bottom: 3rem; + + p, ul { + max-width: $cols8; + } + } + + .band { + background: $ui-light-primary; + padding: 0.5rem 0; + margin-bottom: 0; + + h4.applyBanner { + color: $ui-blue; + } + } + .sec-faq { + margin-top: 3rem; + dl { + dt { + margin-bottom: .25rem; + font-size: 1.1rem; + } + + dd { + margin-bottom: 1.25rem; + margin-left: 0; + max-width: $cols8; + text-align: left; + } + } + } +} + + + +@media #{$intermediate, $medium, $small} { + #view { + text-align: left; + } +} + + + + diff --git a/webpack.config.js b/webpack.config.js index 87a89ab73..b1880bc1b 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -7,7 +7,6 @@ const webpack = require('webpack'); const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin; const CopyWebpackPlugin = require('copy-webpack-plugin'); const HtmlWebpackPlugin = require('html-webpack-plugin'); -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); // PostCss const autoprefixer = require('autoprefixer'); @@ -73,8 +72,7 @@ module.exports = { mode: process.env.NODE_ENV === 'production' ? 'production' : 'development', output: { path: path.resolve(__dirname, 'build'), - filename: 'js/[name].bundle.js', - publicPath: '/' + filename: 'js/[name].bundle.js' }, resolve: { symlinks: false // Fix local development with `npm link` packages @@ -94,7 +92,7 @@ module.exports = { { test: /\.scss$/, use: [ - MiniCssExtractPlugin.loader, + 'style-loader', 'css-loader', { loader: 'postcss-loader', @@ -110,7 +108,7 @@ module.exports = { { test: /\.css$/, use: [ - MiniCssExtractPlugin.loader, + 'style-loader', 'css-loader', { loader: 'postcss-loader', @@ -144,7 +142,6 @@ module.exports = { } }, plugins: [ - new MiniCssExtractPlugin(), new VersionPlugin({length: 5}) ].concat(pageRoutes .map(function (route) {