diff --git a/package-lock.json b/package-lock.json
index 2c1c5fa34..efddbd6b6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -21,7 +21,7 @@
"react-router-dom": "5.2.0",
"react-twitter-embed": "^3.0.3",
"react-use": "^17.3.1",
- "scratch-parser": "5.0.0",
+ "scratch-parser": "5.1.0",
"scratch-storage": "2.0.2"
},
"devDependencies": {
@@ -99,8 +99,8 @@
"regenerator-runtime": "0.13.9",
"sass": "1.49.7",
"sass-loader": "10.2.1",
- "scratch-gui": "1.0.48",
- "scratch-l10n": "3.15.20221108032110",
+ "scratch-gui": "1.1.32",
+ "scratch-l10n": "3.15.20221201032213",
"selenium-webdriver": "4.1.0",
"slick-carousel": "1.6.0",
"style-loader": "0.12.3",
@@ -23058,9 +23058,9 @@
}
},
"node_modules/scratch-audio": {
- "version": "0.1.0-prerelease.20200528195344",
- "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-0.1.0-prerelease.20200528195344.tgz",
- "integrity": "sha512-BY1IiMMBj0WDs7jdYnOzBHE88AX3ltjs2XfINJ1VrIE4xn2vZvPgJAyw6ZCc2FDPRwTWLpCdhnlA1TBdaKKdiQ==",
+ "version": "0.1.0-prerelease.20221123180128",
+ "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-0.1.0-prerelease.20221123180128.tgz",
+ "integrity": "sha512-yj7mSkHmKxQVdBalAew1UjfTthOoTs3pejhh8Tl65KcC3X4+fLbmY1F3woYSrZbXxPtYUZTKyrcwlCh8r1DQjg==",
"dev": true,
"dependencies": {
"audio-context": "1.0.1",
@@ -23084,21 +23084,21 @@
}
},
"node_modules/scratch-blocks": {
- "version": "0.1.0-prerelease.20221024060953",
- "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20221024060953.tgz",
- "integrity": "sha512-M4OWIPV9yVDGJS0qXfGqriyGVHP2u2zjUa9QyHAv2E5IAVn8KbRb+pjJ4WNHXnAZG9Dfb+rBq5n3BqJ9uObDxQ==",
+ "version": "0.1.0-prerelease.20221129081817",
+ "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20221129081817.tgz",
+ "integrity": "sha512-t/bAA3oZZJMAV3WERdm35cBBUHj7GUZaYhuS5UU23vSoMm5tmcIIz4KYbTBMuujOcodfT1jJ+flJ6s3VRI8ggQ==",
"dev": true,
"dependencies": {
"exports-loader": "0.7.0",
"google-closure-library": "20190301.0.0",
"imports-loader": "0.8.0",
- "scratch-l10n": "3.15.20221024032103"
+ "scratch-l10n": "3.15.20221129032252"
}
},
"node_modules/scratch-blocks/node_modules/scratch-l10n": {
- "version": "3.15.20221024032103",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221024032103.tgz",
- "integrity": "sha512-Rntiu90azd27jaaRsKAeDgr96Qez8fl2yvJrEBMOK5fOX2AjiP9L3HKAolOA/vnhM5fvMbGFeymDbKaDb/x3Yg==",
+ "version": "3.15.20221129032252",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221129032252.tgz",
+ "integrity": "sha512-7GsIFuctIjWULB6pO0GqswOwe4/ujZrsNGxUUZ7TXSFwdVyVXhDX9WYu/7Kln3WVrs2AhicVz8WP5yjFOdZs7w==",
"dev": true,
"dependencies": {
"@babel/cli": "^7.1.2",
@@ -23114,9 +23114,9 @@
}
},
"node_modules/scratch-gui": {
- "version": "1.0.48",
- "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.0.48.tgz",
- "integrity": "sha512-cbmbocO59OYs0Wafc6TYVCUuK54HhjRpAKxlSyWHqGrojNvRBlMAbqlK9CGzQj7h+he/0ZfqCdLeGsjPtLPnqQ==",
+ "version": "1.1.32",
+ "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.32.tgz",
+ "integrity": "sha512-4QO8B11ShROWNFtgZXQZ4uYs0qPaEKC8lVVPSNNHS7c0a2eUIQ30kmiy5Ukxvoz2TYIuPToIApsTU96MFBfbuQ==",
"dev": true,
"dependencies": {
"arraybuffer-loader": "^1.0.6",
@@ -23166,15 +23166,15 @@
"react-virtualized": "9.20.1",
"redux": "3.7.2",
"redux-throttle": "0.1.1",
- "scratch-audio": "0.1.0-prerelease.20200528195344",
- "scratch-blocks": "0.1.0-prerelease.20221024060953",
- "scratch-l10n": "3.15.20221024032103",
- "scratch-paint": "1.1.29",
- "scratch-render": "0.1.0-prerelease.20221024201900",
- "scratch-render-fonts": "1.0.0-prerelease.20221024190656",
+ "scratch-audio": "0.1.0-prerelease.20221123180128",
+ "scratch-blocks": "0.1.0-prerelease.20221129081817",
+ "scratch-l10n": "3.15.20221129032252",
+ "scratch-paint": "1.1.31",
+ "scratch-render": "0.1.0-prerelease.20221121051603",
+ "scratch-render-fonts": "1.0.0-prerelease.20221102164332",
"scratch-storage": "2.0.2",
- "scratch-svg-renderer": "0.2.0-prerelease.20221024201850",
- "scratch-vm": "1.2.52",
+ "scratch-svg-renderer": "0.2.0-prerelease.20221120235613",
+ "scratch-vm": "1.2.54",
"startaudiocontext": "1.2.1",
"style-loader": "^0.23.0",
"text-encoding": "0.7.0",
@@ -23452,9 +23452,9 @@
}
},
"node_modules/scratch-gui/node_modules/scratch-l10n": {
- "version": "3.15.20221024032103",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221024032103.tgz",
- "integrity": "sha512-Rntiu90azd27jaaRsKAeDgr96Qez8fl2yvJrEBMOK5fOX2AjiP9L3HKAolOA/vnhM5fvMbGFeymDbKaDb/x3Yg==",
+ "version": "3.15.20221129032252",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221129032252.tgz",
+ "integrity": "sha512-7GsIFuctIjWULB6pO0GqswOwe4/ujZrsNGxUUZ7TXSFwdVyVXhDX9WYu/7Kln3WVrs2AhicVz8WP5yjFOdZs7w==",
"dev": true,
"dependencies": {
"@babel/cli": "^7.1.2",
@@ -23470,9 +23470,9 @@
}
},
"node_modules/scratch-gui/node_modules/scratch-paint": {
- "version": "1.1.29",
- "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.29.tgz",
- "integrity": "sha512-IgJGnA3+WrLLDveLMYDl9Z3RZCPAeRDLDI7r3QRMZSdvpZW46/ddG+dO0YfYVQHekgAf9IHaevCKV/9PNOHxPw==",
+ "version": "1.1.31",
+ "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz",
+ "integrity": "sha512-yfKgYJVsNmBHQoSh3bZNjcVQ78qAIgQeX820fe5LthuMMn7DE1syUwD56IPFJWhGrR0ykp8Fsf038bbxNuZZfw==",
"dev": true,
"dependencies": {
"@scratch/paper": "0.11.20200728195508",
@@ -23504,23 +23504,6 @@
"integrity": "sha512-DTt3GhOUDKhh4ONwIJW4lmhyotQmV2LjNlGK/J2hkwUcqcbKkCLAdJPtxQnxnlc7SR3f1CEXCyMmc7WLUsWbNA==",
"dev": true
},
- "node_modules/scratch-gui/node_modules/scratch-svg-renderer": {
- "version": "0.2.0-prerelease.20221024201850",
- "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20221024201850.tgz",
- "integrity": "sha512-aeNC0axSAfk/A6ZOLx08aKPWyoq8ulYTexD4RgbJ4K2ksT4cXIUXzzbUWptj7iHnx3mdFXeFmIhqpc9ty5GVig==",
- "dev": true,
- "dependencies": {
- "base64-js": "1.2.1",
- "base64-loader": "1.0.0",
- "dompurify": "2.2.7",
- "fastestsmallesttextencoderdecoder": "^1.0.22",
- "minilog": "3.1.0",
- "transformation-matrix": "1.15.0"
- },
- "peerDependencies": {
- "scratch-render-fonts": "^1.0.0-prerelease"
- }
- },
"node_modules/scratch-gui/node_modules/source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -23568,9 +23551,9 @@
}
},
"node_modules/scratch-l10n": {
- "version": "3.15.20221108032110",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221108032110.tgz",
- "integrity": "sha512-FG0LINwlDgGw9d/VM6XArhsgKCkOgtJPvvlHJGEGkTpiQ3zZfN+Evkvfqejywewq7nOK2QBerPFA1RPQOdDfIw==",
+ "version": "3.15.20221201032213",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221201032213.tgz",
+ "integrity": "sha512-cNi88TwZs0MGMEDUTiZ//5+RNYXl5fgkNmi8FXGK+zURPI4sxM2gGelv7SoLVbaaDVYuis4LGhq/TPR6DR+OyQ==",
"dev": true,
"dependencies": {
"@babel/cli": "^7.1.2",
@@ -23586,9 +23569,9 @@
}
},
"node_modules/scratch-parser": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.0.0.tgz",
- "integrity": "sha512-7kjxoxivLgYYvmAJVLOOWnca4CigwuCpgjy9+6UuxOMgSZKO1xqIjxIADupabmh1ZLZZDVe45DBM/CQTdtVDkw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.1.0.tgz",
+ "integrity": "sha512-6B6aaEV3TmA2kxSO2u5qLr84f6rhLgUxz276aFYrUyv6ekCWegEUpkKBHnOC1oCAl1ySpVtFBNXh3S110TDadw==",
"dependencies": {
"ajv": "6.3.0",
"jszip": "3.1.5",
@@ -23601,7 +23584,7 @@
"node_modules/scratch-parser/node_modules/ajv": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz",
- "integrity": "sha1-FlCkERTvAFdMrBC4Ay2PTBSBLac=",
+ "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==",
"dependencies": {
"fast-deep-equal": "^1.0.0",
"fast-json-stable-stringify": "^2.0.0",
@@ -23609,9 +23592,9 @@
}
},
"node_modules/scratch-render": {
- "version": "0.1.0-prerelease.20221024201900",
- "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20221024201900.tgz",
- "integrity": "sha512-6dfu8J3x8rsm6RUMQ+Jq4nunJuCX/iCm6Me+NqFpHivx25OPWYF7frczJ7+UtoluBts3eSLfywOr1fQF6KaBNw==",
+ "version": "0.1.0-prerelease.20221121051603",
+ "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20221121051603.tgz",
+ "integrity": "sha512-+PmRxh3Ms5+ichCinmg9Nl7jYwYZvGrlOGNLwxGZSYv+Ve96RqMPJAdpyv0ctOzELoYnMalFGZwUWmdMAJLE5Q==",
"dev": true,
"dependencies": {
"grapheme-breaker": "0.3.2",
@@ -23621,7 +23604,7 @@
"minilog": "3.1.0",
"raw-loader": "^0.5.1",
"scratch-storage": "^1.0.0",
- "scratch-svg-renderer": "0.2.0-prerelease.20210727023023",
+ "scratch-svg-renderer": "0.2.0-prerelease.20221120235613",
"twgl.js": "4.4.0"
},
"peerDependencies": {
@@ -23629,9 +23612,9 @@
}
},
"node_modules/scratch-render-fonts": {
- "version": "1.0.0-prerelease.20221024190656",
- "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20221024190656.tgz",
- "integrity": "sha512-ZN2K7wKh8sJrzTZ61AwTTMwrm2AB/jsiHLeF8M1n0A0SoRaBfB7iBYv6cwvW2ZN+pnUBClHAb7bT9/KRlExfFg==",
+ "version": "1.0.0-prerelease.20221102164332",
+ "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20221102164332.tgz",
+ "integrity": "sha512-22MbRDGUSArVEoHatg5rt7f/H0wWhMrcyN6HD0OQJeDqdlO3qSSX9/qvdzNJGYWwZkhrdJWcI5JGD1YuJfefmw==",
"dev": true,
"dependencies": {
"base64-loader": "1.0.0"
@@ -23730,14 +23713,15 @@
}
},
"node_modules/scratch-svg-renderer": {
- "version": "0.2.0-prerelease.20210727023023",
- "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20210727023023.tgz",
- "integrity": "sha512-vEGZFFPm03LsHeRnIVQoJBoM3dV23daZCHWM0Yb0Rwa1xvymqTWHXRx8ryL5Q94TyceuguqPVAsE66n5S/0fdQ==",
+ "version": "0.2.0-prerelease.20221120235613",
+ "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20221120235613.tgz",
+ "integrity": "sha512-aC7P37PgYYPQyC6pyxKeNAzgKeOfTdymOdGgaRLp5YpaGoLPHLrRXC6nHc4arhUk51Y9cZ46PPnfYEVw7QqOeg==",
"dev": true,
"dependencies": {
"base64-js": "1.2.1",
"base64-loader": "1.0.0",
"dompurify": "2.2.7",
+ "fastestsmallesttextencoderdecoder": "^1.0.22",
"minilog": "3.1.0",
"transformation-matrix": "1.15.0"
},
@@ -23767,9 +23751,9 @@
"dev": true
},
"node_modules/scratch-vm": {
- "version": "1.2.52",
- "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.2.52.tgz",
- "integrity": "sha512-EaR4txpZhL/QF95IyTRnQ0ef37tYIzTdRTe7lT4T9+RaPVVVv6bsUsC5l0XL1e/01KZpTiw2WVf+YE0OwrjfFg==",
+ "version": "1.2.54",
+ "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.2.54.tgz",
+ "integrity": "sha512-lg6Ay+JhqZ9hjL3o+vp9hQmksAURYQC6xcEgeIfbKWIyZGOndOA6VLTarJ+5uiGwphMb8SBlWpG2fBPHiAgKRg==",
"dev": true,
"dependencies": {
"@vernier/godirect": "1.5.0",
@@ -23794,6 +23778,17 @@
"scratch-svg-renderer": "^0.2.0-prerelease"
}
},
+ "node_modules/scratch-vm/node_modules/ajv": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz",
+ "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
"node_modules/scratch-vm/node_modules/htmlparser2": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz",
@@ -23879,6 +23874,20 @@
"node": ">= 4"
}
},
+ "node_modules/scratch-vm/node_modules/scratch-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.0.0.tgz",
+ "integrity": "sha512-7kjxoxivLgYYvmAJVLOOWnca4CigwuCpgjy9+6UuxOMgSZKO1xqIjxIADupabmh1ZLZZDVe45DBM/CQTdtVDkw==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "6.3.0",
+ "jszip": "3.1.5",
+ "pify": "4.0.1"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
"node_modules/scratch-vm/node_modules/string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
@@ -51121,9 +51130,9 @@
}
},
"scratch-audio": {
- "version": "0.1.0-prerelease.20200528195344",
- "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-0.1.0-prerelease.20200528195344.tgz",
- "integrity": "sha512-BY1IiMMBj0WDs7jdYnOzBHE88AX3ltjs2XfINJ1VrIE4xn2vZvPgJAyw6ZCc2FDPRwTWLpCdhnlA1TBdaKKdiQ==",
+ "version": "0.1.0-prerelease.20221123180128",
+ "resolved": "https://registry.npmjs.org/scratch-audio/-/scratch-audio-0.1.0-prerelease.20221123180128.tgz",
+ "integrity": "sha512-yj7mSkHmKxQVdBalAew1UjfTthOoTs3pejhh8Tl65KcC3X4+fLbmY1F3woYSrZbXxPtYUZTKyrcwlCh8r1DQjg==",
"dev": true,
"requires": {
"audio-context": "1.0.1",
@@ -51149,21 +51158,21 @@
}
},
"scratch-blocks": {
- "version": "0.1.0-prerelease.20221024060953",
- "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20221024060953.tgz",
- "integrity": "sha512-M4OWIPV9yVDGJS0qXfGqriyGVHP2u2zjUa9QyHAv2E5IAVn8KbRb+pjJ4WNHXnAZG9Dfb+rBq5n3BqJ9uObDxQ==",
+ "version": "0.1.0-prerelease.20221129081817",
+ "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20221129081817.tgz",
+ "integrity": "sha512-t/bAA3oZZJMAV3WERdm35cBBUHj7GUZaYhuS5UU23vSoMm5tmcIIz4KYbTBMuujOcodfT1jJ+flJ6s3VRI8ggQ==",
"dev": true,
"requires": {
"exports-loader": "0.7.0",
"google-closure-library": "20190301.0.0",
"imports-loader": "0.8.0",
- "scratch-l10n": "3.15.20221024032103"
+ "scratch-l10n": "3.15.20221129032252"
},
"dependencies": {
"scratch-l10n": {
- "version": "3.15.20221024032103",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221024032103.tgz",
- "integrity": "sha512-Rntiu90azd27jaaRsKAeDgr96Qez8fl2yvJrEBMOK5fOX2AjiP9L3HKAolOA/vnhM5fvMbGFeymDbKaDb/x3Yg==",
+ "version": "3.15.20221129032252",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221129032252.tgz",
+ "integrity": "sha512-7GsIFuctIjWULB6pO0GqswOwe4/ujZrsNGxUUZ7TXSFwdVyVXhDX9WYu/7Kln3WVrs2AhicVz8WP5yjFOdZs7w==",
"dev": true,
"requires": {
"@babel/cli": "^7.1.2",
@@ -51177,9 +51186,9 @@
}
},
"scratch-gui": {
- "version": "1.0.48",
- "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.0.48.tgz",
- "integrity": "sha512-cbmbocO59OYs0Wafc6TYVCUuK54HhjRpAKxlSyWHqGrojNvRBlMAbqlK9CGzQj7h+he/0ZfqCdLeGsjPtLPnqQ==",
+ "version": "1.1.32",
+ "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-1.1.32.tgz",
+ "integrity": "sha512-4QO8B11ShROWNFtgZXQZ4uYs0qPaEKC8lVVPSNNHS7c0a2eUIQ30kmiy5Ukxvoz2TYIuPToIApsTU96MFBfbuQ==",
"dev": true,
"requires": {
"arraybuffer-loader": "^1.0.6",
@@ -51229,15 +51238,15 @@
"react-virtualized": "9.20.1",
"redux": "3.7.2",
"redux-throttle": "0.1.1",
- "scratch-audio": "0.1.0-prerelease.20200528195344",
- "scratch-blocks": "0.1.0-prerelease.20221024060953",
- "scratch-l10n": "3.15.20221024032103",
- "scratch-paint": "1.1.29",
- "scratch-render": "0.1.0-prerelease.20221024201900",
- "scratch-render-fonts": "1.0.0-prerelease.20221024190656",
+ "scratch-audio": "0.1.0-prerelease.20221123180128",
+ "scratch-blocks": "0.1.0-prerelease.20221129081817",
+ "scratch-l10n": "3.15.20221129032252",
+ "scratch-paint": "1.1.31",
+ "scratch-render": "0.1.0-prerelease.20221121051603",
+ "scratch-render-fonts": "1.0.0-prerelease.20221102164332",
"scratch-storage": "2.0.2",
- "scratch-svg-renderer": "0.2.0-prerelease.20221024201850",
- "scratch-vm": "1.2.52",
+ "scratch-svg-renderer": "0.2.0-prerelease.20221120235613",
+ "scratch-vm": "1.2.54",
"startaudiocontext": "1.2.1",
"style-loader": "^0.23.0",
"text-encoding": "0.7.0",
@@ -51461,9 +51470,9 @@
}
},
"scratch-l10n": {
- "version": "3.15.20221024032103",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221024032103.tgz",
- "integrity": "sha512-Rntiu90azd27jaaRsKAeDgr96Qez8fl2yvJrEBMOK5fOX2AjiP9L3HKAolOA/vnhM5fvMbGFeymDbKaDb/x3Yg==",
+ "version": "3.15.20221129032252",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221129032252.tgz",
+ "integrity": "sha512-7GsIFuctIjWULB6pO0GqswOwe4/ujZrsNGxUUZ7TXSFwdVyVXhDX9WYu/7Kln3WVrs2AhicVz8WP5yjFOdZs7w==",
"dev": true,
"requires": {
"@babel/cli": "^7.1.2",
@@ -51475,9 +51484,9 @@
}
},
"scratch-paint": {
- "version": "1.1.29",
- "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.29.tgz",
- "integrity": "sha512-IgJGnA3+WrLLDveLMYDl9Z3RZCPAeRDLDI7r3QRMZSdvpZW46/ddG+dO0YfYVQHekgAf9IHaevCKV/9PNOHxPw==",
+ "version": "1.1.31",
+ "resolved": "https://registry.npmjs.org/scratch-paint/-/scratch-paint-1.1.31.tgz",
+ "integrity": "sha512-yfKgYJVsNmBHQoSh3bZNjcVQ78qAIgQeX820fe5LthuMMn7DE1syUwD56IPFJWhGrR0ykp8Fsf038bbxNuZZfw==",
"dev": true,
"requires": {
"@scratch/paper": "0.11.20200728195508",
@@ -51498,20 +51507,6 @@
}
}
},
- "scratch-svg-renderer": {
- "version": "0.2.0-prerelease.20221024201850",
- "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20221024201850.tgz",
- "integrity": "sha512-aeNC0axSAfk/A6ZOLx08aKPWyoq8ulYTexD4RgbJ4K2ksT4cXIUXzzbUWptj7iHnx3mdFXeFmIhqpc9ty5GVig==",
- "dev": true,
- "requires": {
- "base64-js": "1.2.1",
- "base64-loader": "1.0.0",
- "dompurify": "2.2.7",
- "fastestsmallesttextencoderdecoder": "^1.0.22",
- "minilog": "3.1.0",
- "transformation-matrix": "1.15.0"
- }
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -51552,9 +51547,9 @@
}
},
"scratch-l10n": {
- "version": "3.15.20221108032110",
- "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221108032110.tgz",
- "integrity": "sha512-FG0LINwlDgGw9d/VM6XArhsgKCkOgtJPvvlHJGEGkTpiQ3zZfN+Evkvfqejywewq7nOK2QBerPFA1RPQOdDfIw==",
+ "version": "3.15.20221201032213",
+ "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.15.20221201032213.tgz",
+ "integrity": "sha512-cNi88TwZs0MGMEDUTiZ//5+RNYXl5fgkNmi8FXGK+zURPI4sxM2gGelv7SoLVbaaDVYuis4LGhq/TPR6DR+OyQ==",
"dev": true,
"requires": {
"@babel/cli": "^7.1.2",
@@ -51566,9 +51561,9 @@
}
},
"scratch-parser": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.0.0.tgz",
- "integrity": "sha512-7kjxoxivLgYYvmAJVLOOWnca4CigwuCpgjy9+6UuxOMgSZKO1xqIjxIADupabmh1ZLZZDVe45DBM/CQTdtVDkw==",
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.1.0.tgz",
+ "integrity": "sha512-6B6aaEV3TmA2kxSO2u5qLr84f6rhLgUxz276aFYrUyv6ekCWegEUpkKBHnOC1oCAl1ySpVtFBNXh3S110TDadw==",
"requires": {
"ajv": "6.3.0",
"jszip": "3.1.5",
@@ -51578,7 +51573,7 @@
"ajv": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz",
- "integrity": "sha1-FlCkERTvAFdMrBC4Ay2PTBSBLac=",
+ "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==",
"requires": {
"fast-deep-equal": "^1.0.0",
"fast-json-stable-stringify": "^2.0.0",
@@ -51588,9 +51583,9 @@
}
},
"scratch-render": {
- "version": "0.1.0-prerelease.20221024201900",
- "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20221024201900.tgz",
- "integrity": "sha512-6dfu8J3x8rsm6RUMQ+Jq4nunJuCX/iCm6Me+NqFpHivx25OPWYF7frczJ7+UtoluBts3eSLfywOr1fQF6KaBNw==",
+ "version": "0.1.0-prerelease.20221121051603",
+ "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20221121051603.tgz",
+ "integrity": "sha512-+PmRxh3Ms5+ichCinmg9Nl7jYwYZvGrlOGNLwxGZSYv+Ve96RqMPJAdpyv0ctOzELoYnMalFGZwUWmdMAJLE5Q==",
"dev": true,
"requires": {
"grapheme-breaker": "0.3.2",
@@ -51600,7 +51595,7 @@
"minilog": "3.1.0",
"raw-loader": "^0.5.1",
"scratch-storage": "^1.0.0",
- "scratch-svg-renderer": "0.2.0-prerelease.20210727023023",
+ "scratch-svg-renderer": "0.2.0-prerelease.20221120235613",
"twgl.js": "4.4.0"
},
"dependencies": {
@@ -51642,9 +51637,9 @@
}
},
"scratch-render-fonts": {
- "version": "1.0.0-prerelease.20221024190656",
- "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20221024190656.tgz",
- "integrity": "sha512-ZN2K7wKh8sJrzTZ61AwTTMwrm2AB/jsiHLeF8M1n0A0SoRaBfB7iBYv6cwvW2ZN+pnUBClHAb7bT9/KRlExfFg==",
+ "version": "1.0.0-prerelease.20221102164332",
+ "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20221102164332.tgz",
+ "integrity": "sha512-22MbRDGUSArVEoHatg5rt7f/H0wWhMrcyN6HD0OQJeDqdlO3qSSX9/qvdzNJGYWwZkhrdJWcI5JGD1YuJfefmw==",
"dev": true,
"requires": {
"base64-loader": "1.0.0"
@@ -51712,14 +51707,15 @@
}
},
"scratch-svg-renderer": {
- "version": "0.2.0-prerelease.20210727023023",
- "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20210727023023.tgz",
- "integrity": "sha512-vEGZFFPm03LsHeRnIVQoJBoM3dV23daZCHWM0Yb0Rwa1xvymqTWHXRx8ryL5Q94TyceuguqPVAsE66n5S/0fdQ==",
+ "version": "0.2.0-prerelease.20221120235613",
+ "resolved": "https://registry.npmjs.org/scratch-svg-renderer/-/scratch-svg-renderer-0.2.0-prerelease.20221120235613.tgz",
+ "integrity": "sha512-aC7P37PgYYPQyC6pyxKeNAzgKeOfTdymOdGgaRLp5YpaGoLPHLrRXC6nHc4arhUk51Y9cZ46PPnfYEVw7QqOeg==",
"dev": true,
"requires": {
"base64-js": "1.2.1",
"base64-loader": "1.0.0",
"dompurify": "2.2.7",
+ "fastestsmallesttextencoderdecoder": "^1.0.22",
"minilog": "3.1.0",
"transformation-matrix": "1.15.0"
},
@@ -51748,9 +51744,9 @@
"dev": true
},
"scratch-vm": {
- "version": "1.2.52",
- "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.2.52.tgz",
- "integrity": "sha512-EaR4txpZhL/QF95IyTRnQ0ef37tYIzTdRTe7lT4T9+RaPVVVv6bsUsC5l0XL1e/01KZpTiw2WVf+YE0OwrjfFg==",
+ "version": "1.2.54",
+ "resolved": "https://registry.npmjs.org/scratch-vm/-/scratch-vm-1.2.54.tgz",
+ "integrity": "sha512-lg6Ay+JhqZ9hjL3o+vp9hQmksAURYQC6xcEgeIfbKWIyZGOndOA6VLTarJ+5uiGwphMb8SBlWpG2fBPHiAgKRg==",
"dev": true,
"requires": {
"@vernier/godirect": "1.5.0",
@@ -51772,6 +51768,17 @@
"worker-loader": "^1.1.1"
},
"dependencies": {
+ "ajv": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.3.0.tgz",
+ "integrity": "sha512-6TQywaGYtRub2fqHkSXfVANlhfja2nbF33wCCHnt3aQstOrtd9jsQGiRUTIOlkEqcxpzRd2akfnqvBBPmLxs8g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^1.0.0",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.3.0"
+ }
+ },
"htmlparser2": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.0.tgz",
@@ -51834,6 +51841,17 @@
"ajv-keywords": "^3.1.0"
}
},
+ "scratch-parser": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/scratch-parser/-/scratch-parser-5.0.0.tgz",
+ "integrity": "sha512-7kjxoxivLgYYvmAJVLOOWnca4CigwuCpgjy9+6UuxOMgSZKO1xqIjxIADupabmh1ZLZZDVe45DBM/CQTdtVDkw==",
+ "dev": true,
+ "requires": {
+ "ajv": "6.3.0",
+ "jszip": "3.1.5",
+ "pify": "4.0.1"
+ }
+ },
"string_decoder": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
diff --git a/package.json b/package.json
index 80a195eb2..9ce560c23 100644
--- a/package.json
+++ b/package.json
@@ -56,7 +56,7 @@
"react-router-dom": "5.2.0",
"react-twitter-embed": "^3.0.3",
"react-use": "^17.3.1",
- "scratch-parser": "5.0.0",
+ "scratch-parser": "5.1.0",
"scratch-storage": "2.0.2"
},
"devDependencies": {
@@ -134,8 +134,8 @@
"regenerator-runtime": "0.13.9",
"sass": "1.49.7",
"sass-loader": "10.2.1",
- "scratch-gui": "1.0.48",
- "scratch-l10n": "3.15.20221108032110",
+ "scratch-gui": "1.1.32",
+ "scratch-l10n": "3.15.20221201032213",
"selenium-webdriver": "4.1.0",
"slick-carousel": "1.6.0",
"style-loader": "0.12.3",
diff --git a/src/components/extension-landing/extension-landing.scss b/src/components/extension-landing/extension-landing.scss
index f4f4fbfcf..a9182d592 100644
--- a/src/components/extension-landing/extension-landing.scss
+++ b/src/components/extension-landing/extension-landing.scss
@@ -258,7 +258,47 @@
}
}
- div.cards + div.faq {
+ .hardware-cards {
+ display: grid;
+ grid-template-columns: 1fr 1fr 1fr;
+ gap: 3em;
+
+ // 1 column
+ @media #{$medium-and-smaller} {
+ grid-template-columns: 1fr;
+ }
+ }
+
+ .hardware-card {
+ border: 1px solid $ui-border;
+ border-radius: .5rem;
+ background-color: $ui-white;
+ overflow: hidden;
+ flex-basis: 0;
+ flex-grow: 1;
+ }
+
+ .hardware-card-image {
+ background-color: $ui-blue-10percent;
+ padding: 1rem 0 1rem;
+
+ img {
+ display: block;
+ margin: 0 auto;
+ height: 100px;
+ max-width: 100%;
+ }
+ }
+
+ .hardware-card-info {
+ padding: 1rem;
+
+ p {
+ margin: .2rem 0;
+ }
+ }
+
+ div.cards+div.faq {
padding-top: 2rem;
}
diff --git a/src/components/extension-landing/extension-requirements.jsx b/src/components/extension-landing/extension-requirements.jsx
index efe498921..ce9281396 100644
--- a/src/components/extension-landing/extension-requirements.jsx
+++ b/src/components/extension-landing/extension-requirements.jsx
@@ -12,62 +12,77 @@ const ExtensionRequirements = props => (
{props.description}
- Windows 10 version 1709+
-
-
-
- macOS 10.13+
-
-
- ChromeOS
-
-
-
- Android 6.0+
-
-
- Bluetooth
-
-
-
- Scratch Link
-
-
+ Windows 10 version 1709+
+
+ )}
+ {!props.hideMac && (
+
+
+ macOS 10.13+
+
+ )}
+ {!props.hideChromeOS && (
+
+
+ ChromeOS
+
+ )}
+ {!props.hideAndroid && (
+
+
+ Android 6.0+
+
+ )}
+ {!props.hideBluetooth && (
+
+
+ Bluetooth
+
+ )}
+ {!props.hideScratchLink && (
+
+
+ Scratch Link
+
+ )}
+
{props.title}
+
+
+