feat: bring back cat blocks

This commit is contained in:
picklesrus authored and Andy O'Neill committed 2023-03-17 10:42:23 -04:00
1 parent 68cd87ac50
commit c1064d5381
29 files changed
+3273 -20

No files matched your search

+247 -3
View File
@@ -13,6 +13,7 @@
"autoprefixer": "^9.0.1",
"base64-loader": "1.0.0",
"bowser": "1.9.4",
"cat-blocks": "npm:scratch-blocks@0.1.0-prerelease.20220318143026",
"classnames": "2.2.6",
"computed-style-to-inline-style": "3.0.0",
"copy-webpack-plugin": "6.4.1",
@@ -7835,6 +7836,14 @@
"ajv": "^6.9.1"
}
},
"node_modules/amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg==",
"engines": {
"node": ">=0.4.2"
}
},
"node_modules/ansi-colors": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
@@ -9762,6 +9771,89 @@
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"node_modules/cat-blocks": {
"name": "scratch-blocks",
"version": "0.1.0-prerelease.20220318143026",
"resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20220318143026.tgz",
"integrity": "sha512-eYJYzjYt3fmF5a243eBIgQfNj+c3ApHFE8jkm1KV/tEiFanJ8XlLZay9LmbnhYhK0618+s0uEQrpJ9WC6xnX/Q==",
"dependencies": {
"exports-loader": "0.6.3",
"google-closure-library": "20190301.0.0",
"imports-loader": "0.6.5",
"scratch-l10n": "3.14.20220317031619"
}
},
"node_modules/cat-blocks/node_modules/big.js": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
"integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
"engines": {
"node": "*"
}
},
"node_modules/cat-blocks/node_modules/exports-loader": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.3.tgz",
"integrity": "sha512-vBQgTnvmEB7qWmr7gzAzJRWptzYhkhvdXeH8sRnS//mIai6MgLZe1crlQ+VWTjCCXLlnhGuiuVMq0YfjA5AUOw==",
"dependencies": {
"loader-utils": "0.2.x",
"source-map": "0.1.x"
}
},
"node_modules/cat-blocks/node_modules/imports-loader": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz",
"integrity": "sha512-fYIzBL9JOzJszvfeSGSKVjAtkWEtPUwP+OWiUxIWApcxsYh3iqZWZAp8xjTuhsvqglhqaetxeLLTaYyxIv1d4Q==",
"dependencies": {
"loader-utils": "0.2.x",
"source-map": "0.1.x"
}
},
"node_modules/cat-blocks/node_modules/json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
"integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==",
"bin": {
"json5": "lib/cli.js"
}
},
"node_modules/cat-blocks/node_modules/loader-utils": {
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
"integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==",
"dependencies": {
"big.js": "^3.1.3",
"emojis-list": "^2.0.0",
"json5": "^0.5.0",
"object-assign": "^4.0.1"
}
},
"node_modules/cat-blocks/node_modules/scratch-l10n": {
"version": "3.14.20220317031619",
"resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220317031619.tgz",
"integrity": "sha512-tDKXRFxKFob9htBeOu+873mujoePXc4sGQulWDdMVCM8cYz63geCWziX5fCwp2pu3pJKQLEth0ftd2eoXkT1RA==",
"dependencies": {
"@babel/cli": "^7.1.2",
"@babel/core": "^7.1.2",
"babel-plugin-react-intl": "^3.0.1",
"transifex": "1.6.6"
},
"bin": {
"build-i18n-src": "scripts/build-i18n-src.js",
"tx-push-src": "scripts/tx-push-src.js"
}
},
"node_modules/cat-blocks/node_modules/source-map": {
"version": "0.1.43",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
"integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==",
"dependencies": {
"amdefine": ">=0.0.4"
},
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -14434,6 +14526,7 @@
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/ansi-regex": {
@@ -14441,6 +14534,7 @@
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"inBundle": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -14451,6 +14545,7 @@
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/are-we-there-yet": {
@@ -14458,6 +14553,7 @@
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
"integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"delegates": "^1.0.0",
@@ -14469,6 +14565,7 @@
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/brace-expansion": {
@@ -14476,6 +14573,7 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"balanced-match": "^1.0.0",
@@ -14487,6 +14585,7 @@
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.1.tgz",
"integrity": "sha512-j38EvO5+LHX84jlo6h4UzmOwi0UgW61WRyPtJz4qaadK5eY3BTS5TY/S1Stc3Uk2lIM6TPevAlULiEJwie860g==",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/code-point-at": {
@@ -14494,6 +14593,7 @@
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
"integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
"inBundle": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -14504,6 +14604,7 @@
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/console-control-strings": {
@@ -14511,6 +14612,7 @@
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
"integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/core-util-is": {
@@ -14518,14 +14620,15 @@
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/debug": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
"integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
"deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"ms": "^2.1.1"
@@ -14536,6 +14639,7 @@
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"inBundle": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=4.0.0"
@@ -14546,6 +14650,7 @@
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
"integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/detect-libc": {
@@ -14553,6 +14658,7 @@
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
"integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=",
"inBundle": true,
"license": "Apache-2.0",
"optional": true,
"bin": {
"detect-libc": "bin/detect-libc.js"
@@ -14566,6 +14672,7 @@
"resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz",
"integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"minipass": "^2.2.1"
@@ -14576,6 +14683,7 @@
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/gauge": {
@@ -14583,6 +14691,7 @@
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
"integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"aproba": "^1.0.3",
@@ -14600,6 +14709,7 @@
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"fs.realpath": "^1.0.0",
@@ -14618,6 +14728,7 @@
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
"integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/iconv-lite": {
@@ -14625,6 +14736,7 @@
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
@@ -14638,6 +14750,7 @@
"resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.1.tgz",
"integrity": "sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"minimatch": "^3.0.4"
@@ -14648,6 +14761,7 @@
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"once": "^1.3.0",
@@ -14659,13 +14773,24 @@
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/ini": {
"version": "1.3.5",
"inBundle": true,
"license": "ISC",
"optional": true,
"engines": {
"node": "*"
}
},
"node_modules/fsevents/node_modules/is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"number-is-nan": "^1.0.0"
@@ -14679,6 +14804,7 @@
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/minimatch": {
@@ -14686,6 +14812,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"brace-expansion": "^1.1.7"
@@ -14699,6 +14826,7 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
"integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/minipass": {
@@ -14706,6 +14834,7 @@
"resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz",
"integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"safe-buffer": "^5.1.2",
@@ -14717,6 +14846,7 @@
"resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
"integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"minipass": "^2.2.1"
@@ -14726,8 +14856,8 @@
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
"integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
"deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"minimist": "0.0.8"
@@ -14741,6 +14871,7 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/needle": {
@@ -14748,6 +14879,7 @@
"resolved": "https://registry.npmjs.org/needle/-/needle-2.3.0.tgz",
"integrity": "sha512-QBZu7aAFR0522EyaXZM0FZ9GLpq6lvQ3uq8gteiDUp7wKdy0lSd2hPlgFwVuW1CBkfEs9PfDQsQzZghLs/psdg==",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"debug": "^4.1.0",
@@ -14765,8 +14897,8 @@
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz",
"integrity": "sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==",
"deprecated": "Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future",
"inBundle": true,
"license": "BSD-3-Clause",
"optional": true,
"dependencies": {
"detect-libc": "^1.0.2",
@@ -14789,6 +14921,7 @@
"resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz",
"integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"abbrev": "1",
@@ -14803,6 +14936,7 @@
"resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.0.6.tgz",
"integrity": "sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/npm-packlist": {
@@ -14810,6 +14944,7 @@
"resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.1.tgz",
"integrity": "sha512-+TcdO7HJJ8peiiYhvPxsEDhF3PJFGUGRcFsGve3vxvxdcpO2Z4Z7rkosRM0kWj6LfbK/P0gu3dzk5RU1ffvFcw==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"ignore-walk": "^3.0.1",
@@ -14821,6 +14956,7 @@
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"are-we-there-yet": "~1.1.2",
@@ -14834,6 +14970,7 @@
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
"inBundle": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -14844,6 +14981,7 @@
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
"inBundle": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -14854,6 +14992,7 @@
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"wrappy": "1"
@@ -14864,6 +15003,7 @@
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
"inBundle": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -14874,6 +15014,7 @@
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
"inBundle": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -14884,6 +15025,7 @@
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"os-homedir": "^1.0.0",
@@ -14895,6 +15037,7 @@
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
"inBundle": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -14905,6 +15048,7 @@
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/rc": {
@@ -14912,6 +15056,7 @@
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
"inBundle": true,
"license": "(BSD-2-Clause OR MIT OR Apache-2.0)",
"optional": true,
"dependencies": {
"deep-extend": "^0.6.0",
@@ -14928,6 +15073,7 @@
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/readable-stream": {
@@ -14935,6 +15081,7 @@
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"core-util-is": "~1.0.0",
@@ -14951,6 +15098,7 @@
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
"integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"glob": "^7.1.3"
@@ -14964,6 +15112,7 @@
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/safer-buffer": {
@@ -14971,6 +15120,7 @@
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/sax": {
@@ -14978,6 +15128,7 @@
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/semver": {
@@ -14985,6 +15136,7 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
"integrity": "sha512-Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA==",
"inBundle": true,
"license": "ISC",
"optional": true,
"bin": {
"semver": "bin/semver"
@@ -14995,6 +15147,7 @@
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
"integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/signal-exit": {
@@ -15002,6 +15155,7 @@
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/string_decoder": {
@@ -15009,6 +15163,7 @@
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"safe-buffer": "~5.1.0"
@@ -15019,6 +15174,7 @@
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"code-point-at": "^1.0.0",
@@ -15034,6 +15190,7 @@
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"inBundle": true,
"license": "MIT",
"optional": true,
"dependencies": {
"ansi-regex": "^2.0.0"
@@ -15047,6 +15204,7 @@
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
"integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
"inBundle": true,
"license": "MIT",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -15057,6 +15215,7 @@
"resolved": "https://registry.npmjs.org/tar/-/tar-4.4.8.tgz",
"integrity": "sha512-LzHF64s5chPQQS0IYBn9IN5h3i98c12bo4NCO7e0sGM2llXQ3p2FGC5sdENN4cTW48O915Sh+x+EXx7XW96xYQ==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"chownr": "^1.1.1",
@@ -15076,6 +15235,7 @@
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
"inBundle": true,
"license": "MIT",
"optional": true
},
"node_modules/fsevents/node_modules/wide-align": {
@@ -15083,6 +15243,7 @@
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
"integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
"inBundle": true,
"license": "ISC",
"optional": true,
"dependencies": {
"string-width": "^1.0.2 || 2"
@@ -15093,6 +15254,7 @@
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/fsevents/node_modules/yallist": {
@@ -15100,6 +15262,7 @@
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz",
"integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==",
"inBundle": true,
"license": "ISC",
"optional": true
},
"node_modules/function-bind": {
@@ -37032,6 +37195,11 @@
"integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==",
"requires": {}
},
"amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha512-S2Hw0TtNkMJhIabBwIojKL9YHO5T0n5eNqWJ7Lrlel/zDbftQpxpapi8tZs3X1HWa+u+QeydGmzzNU0m09+Rcg=="
},
"ansi-colors": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz",
@@ -38624,6 +38792,77 @@
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"cat-blocks": {
"version": "npm:scratch-blocks@0.1.0-prerelease.20220318143026",
"resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20220318143026.tgz",
"integrity": "sha512-eYJYzjYt3fmF5a243eBIgQfNj+c3ApHFE8jkm1KV/tEiFanJ8XlLZay9LmbnhYhK0618+s0uEQrpJ9WC6xnX/Q==",
"requires": {
"exports-loader": "0.6.3",
"google-closure-library": "20190301.0.0",
"imports-loader": "0.6.5",
"scratch-l10n": "3.14.20220317031619"
},
"dependencies": {
"big.js": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz",
"integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q=="
},
"exports-loader": {
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.3.tgz",
"integrity": "sha512-vBQgTnvmEB7qWmr7gzAzJRWptzYhkhvdXeH8sRnS//mIai6MgLZe1crlQ+VWTjCCXLlnhGuiuVMq0YfjA5AUOw==",
"requires": {
"loader-utils": "0.2.x",
"source-map": "0.1.x"
}
},
"imports-loader": {
"version": "0.6.5",
"resolved": "https://registry.npmjs.org/imports-loader/-/imports-loader-0.6.5.tgz",
"integrity": "sha512-fYIzBL9JOzJszvfeSGSKVjAtkWEtPUwP+OWiUxIWApcxsYh3iqZWZAp8xjTuhsvqglhqaetxeLLTaYyxIv1d4Q==",
"requires": {
"loader-utils": "0.2.x",
"source-map": "0.1.x"
}
},
"json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
"integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw=="
},
"loader-utils": {
"version": "0.2.17",
"resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz",
"integrity": "sha512-tiv66G0SmiOx+pLWMtGEkfSEejxvb6N6uRrQjfWJIT79W9GMpgKeCAmm9aVBKtd4WEgntciI8CsGqjpDoCWJug==",
"requires": {
"big.js": "^3.1.3",
"emojis-list": "^2.0.0",
"json5": "^0.5.0",
"object-assign": "^4.0.1"
}
},
"scratch-l10n": {
"version": "3.14.20220317031619",
"resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.14.20220317031619.tgz",
"integrity": "sha512-tDKXRFxKFob9htBeOu+873mujoePXc4sGQulWDdMVCM8cYz63geCWziX5fCwp2pu3pJKQLEth0ftd2eoXkT1RA==",
"requires": {
"@babel/cli": "^7.1.2",
"@babel/core": "^7.1.2",
"babel-plugin-react-intl": "^3.0.1",
"transifex": "1.6.6"
}
},
"source-map": {
"version": "0.1.43",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
"integrity": "sha512-VtCvB9SIQhk3aF6h+N85EaqIaBFIAfZ9Cu+NJHHVvc8BbEcnvDcFw6sqQ2dQrT6SlOrZq3tIvyD9+EGq/lJryQ==",
"requires": {
"amdefine": ">=0.0.4"
}
}
}
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
@@ -42549,6 +42788,11 @@
"bundled": true,
"optional": true
},
"ini": {
"version": "1.3.5",
"bundled": true,
"optional": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+1
View File
@@ -36,6 +36,7 @@
"autoprefixer": "^9.0.1",
"base64-loader": "1.0.0",
"bowser": "1.9.4",
"cat-blocks": "npm:scratch-blocks@0.1.0-prerelease.20220318143026",
"classnames": "2.2.6",
"computed-style-to-inline-style": "3.0.0",
"copy-webpack-plugin": "6.4.1",
+16 -1
View File
@@ -21,6 +21,9 @@ import MenuBar from '../menu-bar/menu-bar.jsx';
import CostumeLibrary from '../../containers/costume-library.jsx';
import BackdropLibrary from '../../containers/backdrop-library.jsx';
import Watermark from '../../containers/watermark.jsx';
import OldTimeyMode from '../oldtimey-mode/oldtimey-mode.jsx';
import NinetiesMode from '../nineties-mode/nineties-mode.jsx';
import PrehistoricMode from '../prehistoric-mode/prehistoric-mode.jsx';
import Backpack from '../../containers/backpack.jsx';
import WebGlModal from '../../containers/webgl-modal.jsx';
@@ -64,6 +67,7 @@ const GUIComponent = props => {
backdropLibraryVisible,
backpackHost,
backpackVisible,
blocksId,
blocksTabVisible,
cardsVisible,
canChangeLanguage,
@@ -87,6 +91,7 @@ const GUIComponent = props => {
isRtl,
isShared,
isTelemetryEnabled,
isTotallyNormal,
loading,
logo,
renderLogin,
@@ -160,6 +165,9 @@ const GUIComponent = props => {
dir={isRtl ? 'rtl' : 'ltr'}
{...componentProps}
>
<OldTimeyMode />
<NinetiesMode />
<PrehistoricMode />
{telemetryModalVisible ? (
<TelemetryModal
isRtl={isRtl}
@@ -222,6 +230,7 @@ const GUIComponent = props => {
className={styles.menuBarPosition}
enableCommunity={enableCommunity}
isShared={isShared}
isTotallyNormal={isTotallyNormal}
logo={logo}
renderLogin={renderLogin}
showComingSoon={showComingSoon}
@@ -300,6 +309,7 @@ const GUIComponent = props => {
<TabPanel className={tabClassNames.tabPanel}>
<Box className={styles.blocksWrapper}>
<Blocks
key={blocksId}
canUseCloud={canUseCloud}
grow={1}
isVisible={blocksTabVisible}
@@ -373,6 +383,7 @@ GUIComponent.propTypes = {
backpackVisible: PropTypes.bool,
basePath: PropTypes.string,
blocksTabVisible: PropTypes.bool,
blocksId: PropTypes.string,
canChangeLanguage: PropTypes.bool,
canCreateCopy: PropTypes.bool,
canCreateNew: PropTypes.bool,
@@ -393,6 +404,7 @@ GUIComponent.propTypes = {
isPlayerOnly: PropTypes.bool,
isRtl: PropTypes.bool,
isShared: PropTypes.bool,
isTotallyNormal: PropTypes.bool,
loading: PropTypes.bool,
logo: PropTypes.string,
onActivateCostumesTab: PropTypes.func,
@@ -429,6 +441,7 @@ GUIComponent.defaultProps = {
backpackHost: null,
backpackVisible: false,
basePath: './',
blocksId: 'original',
canChangeLanguage: true,
canCreateNew: false,
canEditTitle: false,
@@ -441,6 +454,7 @@ GUIComponent.defaultProps = {
enableCommunity: false,
isCreating: false,
isShared: false,
isTotallyNormal: false,
loading: false,
showComingSoon: false,
stageSizeMode: STAGE_SIZE_MODES.large
@@ -448,7 +462,8 @@ GUIComponent.defaultProps = {
const mapStateToProps = state => ({
// This is the button's mode, as opposed to the actual current state
stageSizeMode: state.scratchGui.stageSize.stageSize
stageSizeMode: state.scratchGui.stageSize.stageSize,
blocksId: state.scratchGui.timeTravel.year.toString()
});
export default injectIntl(connect(
+1
View File
@@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="238.5" height="108.5" viewBox="0,0,238.5,108.5"><g transform="translate(-120.75,-125.75)"><g data-paper-data="{&quot;isPaintingLayer&quot;:true}" fill-rule="nonzero" stroke="none" stroke-linecap="butt" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" style="mix-blend-mode: normal"><image x="241.5" y="251.5" transform="scale(0.5,0.5)" width="477" height="217" xlink:href="data:image/png;base64,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 truncated

After

Width:  |  Height:  |  Size: 11 KiB

+3 -1
View File
@@ -39,7 +39,9 @@
align-items: center;
flex-grow: 1;
}
.inactive {
opacity: 0;
}
.scratch-logo {
height: 1.6rem;
vertical-align: middle;
+118 -3
View File
@@ -31,6 +31,14 @@ import MenuBarHOC from '../../containers/menu-bar-hoc.jsx';
import {openTipsLibrary} from '../../reducers/modals';
import {setPlayer} from '../../reducers/mode';
import {
isTimeTravel220022BC,
isTimeTravel1920,
isTimeTravel1990,
isTimeTravel2020,
isTimeTravelNow,
setTimeTravel
} from '../../reducers/time-travel';
import {
autoUpdateProject,
getIsUpdating,
@@ -58,7 +66,10 @@ import {
languageMenuOpen,
openLoginMenu,
closeLoginMenu,
loginMenuOpen
loginMenuOpen,
openModeMenu,
closeModeMenu,
modeMenuOpen
} from '../../reducers/menus';
import collectMetadata from '../../lib/collect-metadata';
@@ -74,6 +85,10 @@ import languageIcon from '../language-selector/language-icon.svg';
import aboutIcon from './icon--about.svg';
import scratchLogo from './scratch-logo.svg';
import ninetiesLogo from './nineties_logo.svg';
import catLogo from './cat_logo.svg';
import prehistoricLogo from './prehistoric-logo.svg';
import oldtimeyLogo from './oldtimey-logo.svg';
import sharedMessages from '../../lib/shared-messages';
@@ -167,6 +182,7 @@ class MenuBar extends React.Component {
'handleClickSaveAsCopy',
'handleClickSeeCommunity',
'handleClickShare',
'handleSetMode',
'handleKeyPress',
'handleLanguageMouseUp',
'handleRestoreOption',
@@ -228,6 +244,36 @@ class MenuBar extends React.Component {
}
}
}
handleSetMode (mode) {
return () => {
// Turn on/off filters for modes.
if (mode === '1920') {
document.documentElement.style.filter = 'brightness(.9)contrast(.8)sepia(1.0)';
document.documentElement.style.height = '100%';
} else if (mode === '1990') {
document.documentElement.style.filter = 'hue-rotate(40deg)';
document.documentElement.style.height = '100%';
} else {
document.documentElement.style.filter = '';
document.documentElement.style.height = '';
}
// Change logo for modes
if (mode === '1990') {
document.getElementById('logo_img').src = ninetiesLogo;
} else if (mode === '2020') {
document.getElementById('logo_img').src = catLogo;
} else if (mode === '1920') {
document.getElementById('logo_img').src = oldtimeyLogo;
} else if (mode === '220022BC') {
document.getElementById('logo_img').src = prehistoricLogo;
} else {
document.getElementById('logo_img').src = this.props.logo;
}
this.props.onSetTimeTravelMode(mode);
};
}
handleRestoreOption (restoreFun) {
return () => {
restoreFun();
@@ -390,6 +436,7 @@ class MenuBar extends React.Component {
<div className={styles.fileGroup}>
<div className={classNames(styles.menuBarItem)}>
<img
id="logo_img"
alt="Scratch"
className={classNames(styles.scratchLogo, {
[styles.clickable]: typeof this.props.onClickLogo !== 'undefined'
@@ -528,7 +575,55 @@ class MenuBar extends React.Component {
)}</TurboMode>
</MenuSection>
</MenuBarMenu>
</div>
{this.props.isTotallyNormal && (
<div
className={classNames(styles.menuBarItem, styles.hoverable, {
[styles.active]: this.props.modeMenuOpen
})}
onMouseUp={this.props.onClickMode}
>
<div className={classNames(styles.editMenu)}>
<FormattedMessage
defaultMessage="Mode"
description="Mode menu item in the menu bar"
id="gui.menuBar.modeMenu"
/>
</div>
<MenuBarMenu
className={classNames(styles.menuBarMenu)}
open={this.props.modeMenuOpen}
place={this.props.isRtl ? 'left' : 'right'}
onRequestClose={this.props.onRequestCloseMode}
>
<MenuSection>
<MenuItem onClick={this.handleSetMode('NOW')}>
<span className={classNames({[styles.inactive]: !this.props.modeNow})}>
{'✓'}
</span>
{' '}
<FormattedMessage
defaultMessage="Normal mode"
description="April fools: resets editor to not have any pranks"
id="gui.menuBar.normalMode"
/>
</MenuItem>
<MenuItem onClick={this.handleSetMode('2020')}>
<span className={classNames({[styles.inactive]: !this.props.mode2020})}>
{'✓'}
</span>
{' '}
<FormattedMessage
defaultMessage="Caturday mode"
description="April fools: Cat blocks mode"
id="gui.menuBar.caturdayMode"
/>
</MenuItem>
</MenuSection>
</MenuBarMenu>
</div>
)}
</div>
<Divider className={classNames(styles.divider)} />
<div
@@ -777,11 +872,19 @@ MenuBar.propTypes = {
isRtl: PropTypes.bool,
isShared: PropTypes.bool,
isShowingProject: PropTypes.bool,
isTotallyNormal: PropTypes.bool,
isUpdating: PropTypes.bool,
languageMenuOpen: PropTypes.bool,
locale: PropTypes.string.isRequired,
loginMenuOpen: PropTypes.bool,
logo: PropTypes.string,
modeMenuOpen: PropTypes.bool,
modeNow: PropTypes.bool,
mode220022BC: PropTypes.bool,
mode1920: PropTypes.bool,
mode1990: PropTypes.bool,
mode2020: PropTypes.bool,
onClickAbout: PropTypes.oneOfType([
PropTypes.func, // button mode: call this callback when the About button is clicked
PropTypes.arrayOf( // menu mode: list of items in the About menu
@@ -792,11 +895,13 @@ MenuBar.propTypes = {
)
]),
onClickAccount: PropTypes.func,
onSetTimeTravelMode: PropTypes.func,
onClickEdit: PropTypes.func,
onClickFile: PropTypes.func,
onClickLanguage: PropTypes.func,
onClickLogin: PropTypes.func,
onClickLogo: PropTypes.func,
onClickMode: PropTypes.func,
onClickNew: PropTypes.func,
onClickRemix: PropTypes.func,
onClickSave: PropTypes.func,
@@ -812,6 +917,7 @@ MenuBar.propTypes = {
onRequestCloseFile: PropTypes.func,
onRequestCloseLanguage: PropTypes.func,
onRequestCloseLogin: PropTypes.func,
onRequestCloseMode: PropTypes.func,
onSeeCommunity: PropTypes.func,
onShare: PropTypes.func,
onStartSelectingFileUpload: PropTypes.func,
@@ -845,12 +951,18 @@ const mapStateToProps = (state, ownProps) => {
languageMenuOpen: languageMenuOpen(state),
locale: state.locales.locale,
loginMenuOpen: loginMenuOpen(state),
modeMenuOpen: modeMenuOpen(state),
projectTitle: state.scratchGui.projectTitle,
sessionExists: state.session && typeof state.session.session !== 'undefined',
username: user ? user.username : null,
userOwnsProject: ownProps.authorUsername && user &&
(ownProps.authorUsername === user.username),
vm: state.scratchGui.vm
vm: state.scratchGui.vm,
mode220022BC: isTimeTravel220022BC(state),
mode1920: isTimeTravel1920(state),
mode1990: isTimeTravel1990(state),
mode2020: isTimeTravel2020(state),
modeNow: isTimeTravelNow(state)
};
};
@@ -867,13 +979,16 @@ const mapDispatchToProps = dispatch => ({
onRequestCloseLanguage: () => dispatch(closeLanguageMenu()),
onClickLogin: () => dispatch(openLoginMenu()),
onRequestCloseLogin: () => dispatch(closeLoginMenu()),
onClickMode: () => dispatch(openModeMenu()),
onRequestCloseMode: () => dispatch(closeModeMenu()),
onRequestOpenAbout: () => dispatch(openAboutMenu()),
onRequestCloseAbout: () => dispatch(closeAboutMenu()),
onClickNew: needSave => dispatch(requestNewProject(needSave)),
onClickRemix: () => dispatch(remixProject()),
onClickSave: () => dispatch(manualUpdateProject()),
onClickSaveAsCopy: () => dispatch(saveProjectAsCopy()),
onSeeCommunity: () => dispatch(setPlayer(true))
onSeeCommunity: () => dispatch(setPlayer(true)),
onSetTimeTravelMode: mode => dispatch(setTimeTravel(mode))
});
export default compose(
File diff suppressed because it is too large. Load diff

After

Width:  |  Height:  |  Size: 2.0 MiB

+76
View File
@@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 66.1 24.7" style="enable-background:new 0 0 66.1 24.7;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#F9A83A;}
</style>
<path class="st0" d="M6.1,20.6c-0.5,0-0.9-0.1-1.4-0.2H0v-9.3h0.1C0.1,10.8,0,10.5,0,10.2c0-1.5,0.5-2.8,1.5-3.9
c1.1-1.1,2.6-1.7,4.2-1.7c0.6,0,1.3,0.1,1.8,0.2l5.6,0.3l-2,6.8c0.6,0.8,1,1.7,1,2.7c0.1,1.5-0.4,2.9-1.4,4
c-1.1,1.2-2.8,1.9-4.6,1.9L6.1,20.6z"/>
<path class="st0" d="M14,20.6c-1.8,0-3.5-0.7-4.8-2C8.1,17.4,7.3,15.8,7,14l-0.6-0.1V8.7L8,8.5c1.4-2.4,3.6-3.8,6.1-3.8
c3.5,0,5.4,2.5,6,3.9l1.3,3.3l-1.8,0.3v0.6l2.7,0.5l-2.3,3.7C18.7,19.3,16.5,20.6,14,20.6z"/>
<path class="st0" d="M24.5,20.6c-0.5,0-1-0.1-1.5-0.2l-2.1,0h-5l-0.7-1.9c-0.1-0.3-0.2-0.6-0.3-0.9L14.5,15l1.5-0.4l0-0.4l-0.7-0.1
v-3h-1.3l1.8-6.2l5.8,0c0.6,0,1.2,0,1.7,0.1l3.6-2.8l-0.9,4c0.7,0.5,1.3,1.2,1.7,2.1h1.2l0,3.2V14l-1.2,0.2c0,0,0,0,0,0l2.1,4
l-2.1,1.5c-0.3,0.2-1.4,0.9-3,0.9L24.5,20.6z"/>
<path class="st0" d="M34.5,20.4H24.2L22.6,15l1.3-0.3l-0.2,0l0.2-3.2l0-3.2l1.4,0c1.1-2.2,3.1-3.3,5.8-3.3h5.7l1.5,6.2h-1.1V14
l-0.7,0.1l0,0.4l1.4,0.3l-0.4,2.7c0,0.3-0.2,0.7-0.2,0.7l-0.6,2.2L34.5,20.4z"/>
<path class="st0" d="M41.7,20.4h-5.2l-0.6-2.1c0,0-0.1-0.4-0.2-0.7l-0.4-2.7l1.4-0.3v-0.1h-3.9l0.1-3.1c0,0,0-0.2,0-0.5l-1.6-0.2
l0.9-3.3l0.7-2.4h14.6l1.7,5.8l-1.7,0.2c0,0.2,0,0.3,0,0.4l0.2,3.2l-4,0v0.1l1.4,0.3l-0.4,2.7c0,0.3-0.2,0.7-0.2,0.7l-0.6,2.2
L41.7,20.4z"/>
<path class="st0" d="M50,20.6c-1.8,0-3.5-0.7-4.8-2c-1.2-1.2-1.9-2.8-2.2-4.6l-0.6-0.1V8.7L44,8.5c1.4-2.4,3.6-3.8,6.1-3.8
c3.5,0,5.4,2.5,6,3.9l1.3,3.3l-1.8,0.3v0.6l2.7,0.5L56,17.1C54.7,19.3,52.5,20.6,50,20.6z"/>
<polygon class="st0" points="51.4,20.4 51,17.9 50.2,15 51.9,14.6 51.9,14.1 51,13.9 51.2,11.1 49.9,11.1 51.7,4.9 64.3,4.9
66.1,11.1 64.7,11.1 64.7,13.9 64,14.1 64,14.5 65.9,15 64.3,20.4 "/>
<path class="st1" d="M6.1,19.4c-0.5,0-0.9-0.1-1.3-0.2H1.2v-6.9h0.7c-0.4-0.6-0.6-1.3-0.7-2.1c0-1.1,0.4-2.2,1.2-3
c0.9-0.9,2.1-1.4,3.4-1.4c0.6,0,1.2,0.1,1.6,0.2l4.3,0.2l-1.8,6c0.6,0.6,1.1,1.4,1.2,2.5c0.1,1.2-0.3,2.3-1.1,3.1
c-0.9,1-2.3,1.5-3.7,1.5L6.1,19.4z"/>
<path class="st1" d="M14,19.4c-1.5,0-2.9-0.6-3.9-1.6c-1.2-1.2-1.8-2.8-2-4.7l-0.5-0.1V9.7l1.2-0.2c0,0,0-0.1,0.1-0.1
c1.1-2.3,3-3.6,5.3-3.6c2.9,0,4.4,2,4.9,3.2l0.8,2l-1.5,0.3v1h0.2v1.6l1.9,0.4l-1.4,2.2C18.2,17.8,16.7,19.4,14,19.4z"/>
<path class="st1" d="M24.5,19.5c-0.9,0-1.6-0.3-2.1-0.6l-0.1,0.4l-1.3,0h-4.2l-0.4-1.1c-0.1-0.2-0.1-0.4-0.2-0.6l-0.3-1.6l1.3-0.3
l0-2.4L16.4,13V9.9h-0.9l1.1-3.8l4.9,0c0.8,0,1.5,0.1,2,0.2L25,5.2l-0.3,1.6c1.3,0.7,2,1.8,2.3,2.7h0.8l0,2V13l-0.9,0.1
c-0.3,0.8-0.8,1.6-1.4,2.1c0,0,0,0,0,0l1.2-0.4l1.6,3l-1.3,0.9c-0.2,0.1-1,0.7-2.3,0.7L24.5,19.5z"/>
<path class="st1" d="M34.5,19.2h-9.4l-1-3.4l1.5-0.3l0-2.1l-0.6,0l0.1-1.9V9.4l1,0c1.3-3.3,4.1-3.3,5-3.3h4.8l0.9,3.8H36V13
l-0.7,0.1l0,2.4l1.3,0.3l-0.2,1.6c0,0.2-0.1,0.5-0.1,0.5l-0.4,1.3L34.5,19.2z"/>
<path class="st1" d="M41.7,19.2h-4.3L37,17.9c0,0-0.1-0.3-0.1-0.5l-0.2-1.6l1.3-0.3l0-2.2h-3.9l0.1-1.8c0,0,0-0.5,0-1.6l-1.3-0.2
l0.6-2l0.5-1.5h12.8l1.1,3.6l-1.4,0.2c0,1.1,0,1.5,0,1.5l0.1,1.9l-3.9,0l0,2.2l1.3,0.3l-0.2,1.6c0,0.2-0.1,0.5-0.1,0.5l-0.4,1.3
L41.7,19.2z"/>
<path class="st1" d="M50,19.4c-1.5,0-2.9-0.6-3.9-1.6c-1.2-1.2-1.8-2.8-2-4.7l-0.5-0.1V9.7l1.2-0.2c0,0,0-0.1,0.1-0.1
c1.1-2.3,3-3.6,5.3-3.6c2.9,0,4.4,2,4.9,3.2l0.8,2l-1.5,0.3v1h0.2v1.6l1.9,0.4L55,16.5C54.2,17.8,52.7,19.4,50,19.4z"/>
<path class="st1" d="M52.4,19.2l-0.3-1.4l0-0.1l-0.5-1.8l1.5-0.4l0-2.4L52.3,13l0.2-3h-1l1.1-3.8h10.8l1.1,3.8h-1v3l-0.7,0.1v2.4
l1.5,0.3l-1,3.4H52.4z M62.9,12.7L62.9,12.7z"/>
<path class="st0" d="M8.1,10.9C8.1,9.3,7.4,8,6,8c-1.9,0-2.5,2.5-1,3.5c0.8,0.5,1.8,0.3,2,0l0.2,0.2c-0.2,0.2,0,0.7,0.3,0.9
c0.6,0.4,1.7,1.1,1.8,2.3c0.2,2-1.7,2.8-3.2,2.7c-1.3-0.1-1.7-0.7-2.2-0.7c-0.5,0-0.5,0.5-0.5,0.5H3v-3.3h0.5c0,1.5,1.1,3.1,2.7,3.1
c1.3,0,2.1-0.8,2-2.2c-0.2-1.6-2.4-1.9-2.9-1.6L5,13.3c0.2-0.2,0.1-0.6-0.2-0.7C4,12.1,3,11.3,3,10.1c0-1.4,1.2-2.5,2.8-2.5
c1.9,0,2.7,1.2,2.7,1.2l0.2-0.9l0.7,0l-0.9,3H8.1z"/>
<path class="st0" d="M17.5,15.5c-1.2,1.9-2.7,2.1-3.5,2.1c-2.6,0-4.1-2.4-4.1-5.2c0-0.6-0.2-0.8-0.5-0.9v-0.2c0.5-0.1,0.8-0.5,1-1
c0.6-1.2,1.7-2.6,3.7-2.6c2.4,0,3.3,2,3.3,2c-0.2,0-0.8,0.5-0.8,1.5h-0.4c0-1.8-0.6-3.1-2.3-3.1c-1.4,0-2.1,1.3-2.2,1.8
c-0.1,0.7,0.1,1.4,0.5,1.4v0.2c-0.5,0.1-0.9,0.4-0.9,1.6c0,1.4,0.6,4.1,2.7,4.1c1.6,0,2.3-1.3,2.2-3.1h0.4
C16.7,15.1,17.4,15.5,17.5,15.5z"/>
<path class="st0" d="M23.1,14.6c0.1,0.8,1.2,2.9,2.7,2.4l0.1,0.3c0,0-0.5,0.4-1.3,0.4c-1.3,0-2.1-0.9-2.8-2.4l0.3-0.4
c-1.5,0-2.1-0.5-2.1-0.5s-0.1,1-0.1,1.5c0,0.9,0.4,1.1,1.1,1.3c0,0.1-0.1,0.3-0.1,0.3h-3c0,0-0.1-0.2-0.1-0.3
c0.7-0.2,1.1-0.4,1.1-1.3v-3.2c0-0.8-0.4-1.1-0.7-1.2v-0.2h0c0.4,0,0.7-0.9,0.7-1.6c0-1.5-1.1-1.5-1.1-1.5l0.1-0.3h3.3
c0.8,0,3.5-0.1,4,2.5c0.1,0.4,0.3,0.8,0.6,0.8h0v0.2c-0.3,0-0.5,0.3-0.7,0.9C24.8,13.7,23.8,14.3,23.1,14.6z M23.6,11.4v-0.2h0
c0.3,0,0.8-0.4,0.6-1.3c-0.2-1.4-1.7-1.6-2.4-1.6c-0.4,0-1.7,0.1-1.9,1.4c-0.2,1.5,0.8,1.5,0.8,1.5v0.2c-0.4,0.1-0.8,0.3-0.8,1.2
c0,1.1,0.9,1.8,1.9,1.8c1.3,0,2.4-0.7,2.4-1.8C24.3,12,24.1,11.6,23.6,11.4z M22.2,10.7c0.2,0.6,0.6,0.7,0.6,1.3
c0,0.7-0.8,1.1-0.8,1.1s0.2-0.6,0-1.1c-0.2-0.4-0.5-0.6-0.5-1.2c0-0.6,0.7-1.2,0.7-1.2S22.1,10.2,22.2,10.7z"/>
<path class="st0" d="M34.5,17.1c0,0.1-0.1,0.3-0.1,0.3h-3c0,0,0-0.2-0.1-0.3c0.7-0.2,1.1-0.4,1.1-1.3c0-1.7-1.5-3.5-3.3-3.5l0.1-0.3
c1.4-0.1,2.5,0.5,3.2,1.4V9.9c0-1.2-0.6-1.6-1.7-1.6c-2.1,0-2.4,2.2-2.4,3v4.6c0,0.9,0.4,1.1,1.1,1.3l-0.1,0.3h-3l-0.1-0.3
c0.7-0.2,1.1-0.4,1.1-1.3v-3.2c0,0,0-1.2-0.5-1.2v-0.2c0.5,0,0.6-0.5,0.6-0.5c0.8-2.9,2.6-2.9,3.6-2.9h3.3l0.1,0.3c0,0-1,0-1.1,1.5
c0,1,0.3,1.6,0.7,1.6v0.2c-0.5,0.1-0.7,0.6-0.7,1.2v3.2C33.5,16.8,33.9,17,34.5,17.1z"/>
<path class="st0" d="M44.5,9.5c0,1.5,0,2,0,2h-0.3c0,0,0.3-1.5-1-1.5l0-0.3c0.7,0,0.7-1.5-0.8-1.5c-1.1,0-1.6,0.5-1.7,1.4
c-0.1,1,0.3,1.5,0.7,1.5v0.2c-0.3,0.1-0.7,0.3-0.7,1.2v3.2c0,0.9,0.4,1.1,1.1,1.3c0,0.1-0.1,0.3-0.1,0.3h-3c0,0,0-0.2-0.1-0.3
c0.7-0.2,1.1-0.4,1.1-1.3v-3.2c0-0.8-0.3-1.1-0.7-1.2v-0.2c0.4-0.1,0.8-0.5,0.7-1.5c-0.1-0.9-0.6-1.4-1.8-1.4
c-1.4,0-1.4,1.4-0.7,1.4l0,0.3c-1.3,0-1,1.4-1,1.5h-0.3c0,0,0-0.5,0-2c0-1.1-0.4-1.3-0.8-1.3l0.1-0.3h10.1l0.1,0.3
C44.9,8.2,44.5,8.4,44.5,9.5z"/>
<path class="st0" d="M53.5,15.5c-1.2,1.9-2.7,2.1-3.5,2.1c-2.6,0-4.1-2.4-4.1-5.2c0-0.6-0.2-0.8-0.5-0.9v-0.2c0.5-0.1,0.8-0.5,1-1
c0.6-1.2,1.7-2.6,3.7-2.6c2.4,0,3.3,2,3.3,2c-0.2,0-0.8,0.5-0.8,1.5h-0.4c0-1.8-0.6-3.1-2.3-3.1c-1.4,0-2.1,1.3-2.2,1.8
c-0.1,0.7,0.1,1.4,0.6,1.4v0.2c-0.5,0.1-0.9,0.4-0.9,1.6c0,1.4,0.6,4.1,2.7,4.1c1.6,0,2.3-1.3,2.2-3.1h0.4
C52.7,15.1,53.3,15.5,53.5,15.5z"/>
<path class="st0" d="M62.1,17.1l-0.1,0.3h-3c0,0,0-0.2-0.1-0.3c0.7-0.2,1.1-0.4,1.1-1.3V13c0-0.9-0.6-1.4-1.2-1.4h-1.7
c-0.9,0-1.3,0.4-1.3,1.4v2.9c0,0.9,0.4,1.1,1.1,1.3l-0.1,0.3h-3c0,0,0-0.2-0.1-0.3c0.7-0.2,1.1-0.4,1.1-1.3v-3.2
c0-0.8-0.3-1.1-0.7-1.2l0-0.2c0.4,0,0.7-0.9,0.7-1.6c0-1.5-1.1-1.5-1.1-1.5l0.1-0.3h3l0.1,0.3c0,0-1.1,0-1.1,1.5
c0,1.2,0.4,1.6,1.3,1.6h1.7c0.7,0,1.2-0.7,1.2-1.6c0-1.5-1.1-1.5-1.1-1.5l0.1-0.3h3l0.1,0.3c0,0-1.1,0-1.1,1.5
c0,0.8,0.3,1.6,0.7,1.6v0.2c-0.3,0.1-0.7,0.5-0.7,1.3v3.1C61.1,16.8,61.4,17,62.1,17.1z"/>
</svg>

After

Width:  |  Height:  |  Size: 7.1 KiB

@@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 24.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 66.1 24.7" style="enable-background:new 0 0 66.1 24.7;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FFFFFF;}
.st1{fill:#F9A83A;}
</style>
<path class="st0" d="M12.1,21.3c-0.7-0.2-1.5-0.3-2.4-0.3H9.1c-0.2,0-0.8,0-2.7,0.2L4,21.4l-1-2.2c-0.8-1.8-1.1-2.5-1.2-3.1
l-0.1-0.4v-1.1l0.4-0.8l0,0c0.2-0.4,0.4-0.7,0.7-0.9c-0.9-2.3-1-3.2-1-3.9V5.3h2.5L4.6,5l0.5-0.2c6.6-2.1,7.2-2.1,7.8-2.1h0.9l1.6,1
l0.1,0c1.8,1.3,3.1,2.5,3.4,4.1c0.5,1.4,0.6,1.8,0.6,2.5v2.5L19.1,13l0.7,2.4v1c0,2.5-1.7,3.2-5.7,4.8l-1.1,0.4L12.1,21.3z"/>
<path class="st0" d="M19.4,22.7c-0.7,0-1.3-0.1-1.9-0.3h-1.9l-0.8-2.2c-1.4-3.6-1.7-4.8-1.9-5.4l-0.3-1.5l0.8-1.1
c0.1-0.2,0.3-0.6,0.7-1.5l0.3-0.6l0.5-0.4c0.9-0.8,2.2-1.4,4.4-1.9c0.6-0.2,1.1-0.2,1.6-0.2h0.1c0.5,0,1.2,0.1,2.5,0.4l1.3,0.3
l0.7,1.2c0.5,0.9,1,1.9,1.3,3c0.1,0.4,0.2,0.9,0.2,1.3v2.4l0,0C27,16.5,27,16.8,27,17v0.6l-0.2,0.6c-0.6,1.7-1.6,2.5-2.4,2.9
c-0.5,0.3-1.2,0.6-2.5,1c-0.8,0.4-1.6,0.6-2.4,0.6H19.4z"/>
<path class="st0" d="M27,17.5l-0.5-0.9c-0.1,0-0.2,0.1-0.3,0.1c-0.6,0.3-1.2,0.5-2,0.5h-2.4L20.9,15c-0.5-1.5-0.7-2.1-0.7-2.8
c0-0.8,0-2,0-3.7c-0.2-0.8-0.3-1.1-0.3-1.5V4.7L22,3.9c1.4-0.6,2.3-0.9,3.1-0.9c0.3,0,0.8-0.1,1.4-0.1c2.4,0,6.1,0,6.8,3
C34,7.6,34.2,8.3,34.2,9c0,0.7-0.1,1.4-0.4,2c0,0,0,0,0,0.1l1.8,5.5h-3.4l-0.8,0.3c-1.7,0.6-2,0.7-2.6,0.7H27z"/>
<path class="st0" d="M36.2,22.6c-1,0-1.8-0.4-2.5-1.1c-0.1,0-0.1,0-0.2,0c-0.9,0.6-1.8,0.8-2.4,1l-0.4,0.1h-3.3l-0.9-2
c-0.5-1.1-0.7-1.8-0.7-2.6v-2.7l0.4-0.8c0.6-1.1,1.8-2.7,3.7-5l0.6-0.7l0.9-0.3c1.1-0.4,2-0.7,2.8-0.9l0.4-0.1h2
c2.5,0,3,1.3,4.2,5.2h0l0,0.1c0.1,0.2,0.3,1.1,0.3,1.1v0.3c0.1,0.5,0.3,1.1,0.5,1.9l0.2,0.5v4.7l-2.2,0.8c-0.8,0.3-1.4,0.4-2,0.4
H36.2z"/>
<path class="st0" d="M36.4,18.6c-0.7-1.4-1.3-3-1.7-5c-0.1-0.2-0.1-0.4-0.2-0.5l-0.3-0.2c-1-0.7-1.3-1.6-2.1-3.9l-1-2.9l2.7-1.3
C35.5,4,37,3.5,38.4,3.5c0.1,0,0.7,0,4.8-0.4l0.3,0l0.3,0c0.5,0,0.9,0.1,1.4,0.1c2.9,0,3.6,2.6,4.3,5.5l0.5,2.5l-1.5,1.3
c-0.4,0.4-1,0.7-2.1,1.2V14l-0.2,0.5c-0.1,0.2-0.2,0.7-0.2,1.4c0,3.1-3.3,3.9-5.8,4.5L37.6,21L36.4,18.6z"/>
<path class="st0" d="M46.2,23.8c-0.7,0-1.3-0.1-2-0.3h-1.9l-0.8-2.2c-1.4-3.6-1.7-4.8-1.9-5.4l-0.3-1.5l0.8-1.1
c0.1-0.2,0.3-0.6,0.7-1.5l0.3-0.6l0.5-0.4c0.9-0.8,2.2-1.4,4.4-1.9c0.6-0.2,1.1-0.2,1.6-0.2h0.1c0.5,0,1.2,0.1,2.5,0.4l1.3,0.3
l0.7,1.2c0.5,0.9,1,1.9,1.3,3c0.1,0.4,0.2,0.9,0.2,1.3v2.4l0,0c0.1,0.3,0.1,0.6,0.1,0.8v0.6l-0.2,0.6c-0.6,1.7-1.6,2.5-2.4,2.9
c-0.5,0.3-1.2,0.6-2.5,1c-0.8,0.4-1.6,0.6-2.4,0.6H46.2z"/>
<path class="st0" d="M50.9,22.5c-2.3-0.5-3.1-2.7-3.8-4.9L46.9,17v-1.2l0.1-0.4c0.6-2.3,0.8-3.3,0.9-3.6c0-0.4-0.1-0.8-0.1-1.6
l-0.1-2.3l2.1-0.9c1.8-0.8,2.6-1,3.4-1h0.9L55,6.3c0.2,0.1,0.3,0.2,0.5,0.3c1-0.6,2.3-1,3.4-1.3l0.4-0.1h0.6c2.5,0,3.6,2.2,4.2,4
h1.3l-1.1,4.2c0,0.1-0.1,0.4-0.1,1.1c0,0.2,0,0.3,0,0.5v1.1c0,0.1,0,0.3,0.1,0.7l0.1,0.3v0.3c0,2.7-2.3,3.6-5.3,4.7l-0.6,0.2h-2.7
l-0.6-1c-0.6,0.3-1.5,0.6-2.7,1l-0.9,0.3L50.9,22.5z"/>
<path class="st1" d="M12.5,19.7c-0.9-0.2-1.8-0.4-2.9-0.4H9.1c-0.3,0-1.1,0-2.9,0.2l-1.2,0.1l-0.5-1.1c-0.8-1.8-1-2.4-1.1-2.7l0-0.2
v-0.6l0.2-0.4c0.2-0.4,0.6-0.7,1.3-1.1c-1.3-3.3-1.4-4.1-1.4-4.6V7h1.3C4.9,6.9,5,6.8,5.2,6.7l0.2-0.1l0.2-0.1c6.3-2,6.9-2,7.3-2
h0.5l1.2,0.7l0.1,0c1.8,1.3,2.6,2.2,2.7,3.1C18,9.8,18,10,18,10.3v1.3L17,12l1.1,3.7v0.7c0,1.4-0.9,1.7-4.6,3.2l-0.5,0.2L12.5,19.7z
"/>
<path class="st1" d="M19.4,21c-0.6,0-1.1-0.1-1.6-0.3h-1.1l-0.4-1.1c-1.4-3.5-1.7-4.6-1.8-5.1l-0.1-0.7l0.4-0.6c0,0,0,0,0,0
c0,0,0.2-0.3,0.8-1.6l0.1-0.3l0.2-0.2c0.7-0.6,1.8-1.1,3.7-1.5c0.5-0.1,0.8-0.2,1.2-0.2h0.1c0.3,0,0.8,0.1,2.1,0.4l0.7,0.2l0.4,0.6
c0.5,0.7,0.8,1.6,1.1,2.5c0.1,0.3,0.2,0.6,0.2,0.9V15l-0.4,0.2c0.1,0.2,0.2,0.5,0.2,0.7c0.2,0.4,0.3,0.8,0.3,1.2v0.3l-0.1,0.3
c-0.4,1.1-1.1,1.7-1.6,2c-0.4,0.2-1,0.5-2.4,0.9c-0.6,0.3-1.1,0.5-1.8,0.5H19.4z"/>
<path class="st1" d="M28,15.8l-0.3-0.5c-0.2-0.1-0.5-0.3-1.2-0.6c-0.2,0.2-0.6,0.3-1,0.4c-0.6,0.3-1,0.4-1.4,0.4h-1.2l-0.4-1.1
c-0.5-1.4-0.6-1.8-0.6-2.2c0-0.8,0-2.1,0-3.9c-0.3-1-0.3-1-0.3-1.3V5.9l1-0.4c1.5-0.6,2.2-0.8,2.6-0.8c0.2,0,0.6-0.1,1.3-0.1
c2.3,0,4.8,0,5.2,1.8c0.7,1.8,0.8,2.2,0.8,2.6c0,0.7-0.2,1.4-0.5,1.9c0.1,0.2,0.2,0.4,0.2,0.6l1.1,3.4h-1.7l-0.2,0.2L31,15.2
c-1.6,0.5-1.8,0.6-2.1,0.6H28z"/>
<path class="st1" d="M36.2,20.9c-0.8,0-1.3-0.4-1.6-0.9c-0.6-0.1-1.1-0.2-1.7-0.2c-0.6,0.7-1.7,0.9-2.3,1.1l-0.2,0h-2l-0.4-1
c-0.4-1-0.6-1.5-0.6-1.9v-2.2l0.2-0.4c0.6-1,1.7-2.6,3.6-4.8l0.3-0.4l0.4-0.2c1-0.4,1.9-0.7,2.6-0.8l0.2,0h1.8
c1.4,0,1.5,0.5,2.8,4.8l0.1,0.2v0.3c0,0,0,0,0,0c0,0,0.1,0.5,0.6,2.2l0.1,0.2v3.3L39,20.6c-0.6,0.2-1,0.3-1.4,0.3H36.2z"/>
<path class="st1" d="M37.9,17.8c-0.7-1.3-1.2-2.9-1.6-4.7c-0.2-0.4-0.3-0.9-0.3-1.3l-0.4,0l-0.4-0.3c-0.5-0.4-0.7-0.8-1.5-3.1
L33.2,7l1.4-0.7c1.5-0.7,2.8-1.1,3.8-1.1c0.1,0,0.9,0,4.9-0.4l0.1,0l0.1,0c0.5,0,1,0.1,1.5,0.1c1.6,0,2,1.5,2.7,4.2l0.3,1.4
l-0.7,0.6c-0.3,0.3-0.8,0.6-2.3,1.3l-0.4,0.2l0,0c0.1,0.5,0.1,0.6,0.1,0.8v0.3L44.6,14c-0.2,0.5-0.3,1.1-0.3,1.9
c0,1.7-1.9,2.2-4.5,2.9L38.5,19L37.9,17.8z"/>
<path class="st1" d="M46.2,22.1c-0.6,0-1.1-0.1-1.6-0.3h-1.1l-0.4-1.1c-1.4-3.5-1.7-4.6-1.8-5.1l-0.1-0.7l0.5-0.6c0,0,0,0,0,0
c0,0,0.2-0.3,0.8-1.6l0.1-0.3l0.2-0.2c0.7-0.6,1.8-1.1,3.7-1.5c0.5-0.1,0.8-0.2,1.2-0.2h0.1c0.3,0,0.8,0.1,2.1,0.4l0.7,0.2l0.4,0.6
c0.5,0.7,0.8,1.6,1.1,2.5c0.1,0.3,0.2,0.6,0.2,0.9v1.2l-0.4,0.2c0.1,0.2,0.2,0.5,0.2,0.7c0.2,0.4,0.3,0.8,0.3,1.2v0.3l-0.1,0.3
c-0.4,1.1-1.1,1.7-1.6,2c-0.4,0.2-1,0.5-2.4,0.9c-0.6,0.3-1.1,0.5-1.8,0.5H46.2z"/>
<path class="st1" d="M51.3,20.8c-1.2-0.2-1.7-1.3-2.5-3.8l-0.1-0.3v-0.7l0.1-0.2c0.7-2.8,0.9-3.8,0.9-4.1c0-0.3-0.1-0.8-0.1-1.7
l0-1.2l1.1-0.5c1.7-0.8,2.3-0.9,2.8-0.9h0.5l0.4,0.2c0.4,0.3,0.7,0.6,1.1,1.5C55.8,8,57.6,7.4,59.3,7l0.2-0.1h0.4
c1.6,0,2.2,1.6,2.8,3.7l0.1,0.2v0.1h0.4l-0.5,2.1c0,0,0,0.3-0.2,1.4c0,0.1,0,0.3,0,0.5v1.2c0,0,0,0.2,0.2,0.9l0,0.2v0.2
c0,1.4-1.3,2-4.2,3.1l-0.3,0.1h-1.4l-0.5-1c-0.2-0.5-0.4-0.9-0.6-1.3v0.7L55,19.6c-0.5,0.3-1.4,0.7-2.8,1.1l-0.4,0.1L51.3,20.8z"/>
<path class="st0" d="M13,6.2l0.7,0.4c1.4,1,2.1,1.7,2.1,2.1c0.4,1,0.6,1.5,0.6,1.6v0.1L14,11.3c-1.1-1.1-1.8-1.7-2.1-1.7
C11,9.8,10.4,10,10.1,10l0.1,0.1c0,0.2,0,0.6-0.1,1l0.1,0.1h1c2,0,3.4,0.4,4.1,1.1l1.1,3.6v0.5c0,0.1-1.2,0.7-3.5,1.6
c-1-0.3-2.1-0.4-3.3-0.4H9.1c-0.5,0-1.5,0.1-3,0.2c-0.6-1.2-0.9-2-1-2.3v-0.1c0.1-0.2,0.9-0.6,2.3-1.1c0.3,0,0.8,0,1.4,0.1l0.5-0.1
l1.9,0.1c0.1,0,0.2-0.1,0.2-0.1h0.3c0-0.3-0.3-0.5-0.8-0.5c-2.6-0.3-4-0.5-4.2-0.5c-1-2.5-1.5-4-1.5-4.5V8.7c0.1,0,0.4-0.2,1-0.5
C10.2,6.8,12.5,6.2,13,6.2z"/>
<path class="st0" d="M20.8,11h0.1c0.2,0,0.8,0.1,1.7,0.3c0.4,0.6,0.7,1.3,0.9,2.1c0.1,0.2,0.1,0.4,0.1,0.4c-1,0.4-1.6,0.5-2,0.5
c0,0.1-0.1,0.1-0.2,0.1h0C21.2,14.1,21,14,20.9,14h-0.4c-0.2,0-0.4,0-0.7,0c-0.4,0.9-0.7,1.5-0.7,1.7c0.7,0.6,1.3,0.9,1.7,1h0.1
c0.3,0,0.5-0.3,0.6-0.8c0.1,0,0.6-0.2,1.5-0.5c0.1,0,0.2,0.3,0.4,1c0.1,0.2,0.2,0.4,0.2,0.6v0c-0.2,0.5-0.5,0.9-0.9,1.1
c-0.2,0.2-0.9,0.4-2.2,0.8c-0.3,0.2-0.7,0.3-1.1,0.3h-0.1c-0.5,0-0.9-0.1-1.3-0.4L18,19h-0.2c-1-2.5-1.5-4.1-1.7-4.8
c0.1-0.1,0.4-0.7,1-1.9c0.4-0.4,1.4-0.8,2.9-1.2C20.4,11,20.6,11,20.8,11z"/>
<path class="st0" d="M26.5,6.3c2.3,0,3.5,0.2,3.5,0.5c0.5,1.3,0.8,2,0.8,2.2c0,0.7-0.3,1.2-0.9,1.4c-0.5,0.2-0.9,0.4-1,0.5
c1,0.3,1.5,0.6,1.5,1l0.4,1.3c-0.1,0-0.2,0.1-0.5,0.4c-1,0.3-1.5,0.5-1.5,0.5c-0.1-0.2-1.3-0.8-3.4-1.7l0,0.7c0,0.2-0.2,0.4-0.7,0.4
c-0.4,0.2-0.7,0.3-0.8,0.3c-0.3-0.9-0.5-1.5-0.5-1.6c0-0.8,0-2.2,0-4.2c-0.2-0.7-0.3-1-0.3-1c1.1-0.5,1.8-0.7,2.1-0.7
C25.5,6.3,25.9,6.3,26.5,6.3z M25.7,8.4v0.7c1.8-0.1,2.7-0.2,2.7-0.3c0-0.1,0-0.1,0-0.2v0c-0.7-0.1-1.5-0.1-2.4-0.1H25.7z"/>
<path class="st0" d="M34.9,10.9h1.6c0.1,0,0.5,1.2,1.2,3.6c0,0.3,0.2,1.2,0.7,2.7V19c-0.4,0.1-0.6,0.2-0.8,0.2h-1.5
c-0.1,0-0.2-0.3-0.4-0.8c-1.1-0.2-2.3-0.4-3.5-0.4c-0.3,0-0.5,0.2-0.6,0.5c0,0.2-0.5,0.4-1.4,0.6h-0.7c-0.3-0.7-0.4-1.1-0.4-1.2
v-1.8c0.5-0.9,1.6-2.4,3.4-4.5C33.5,11.3,34.3,11.1,34.9,10.9z M34.7,13.4c0,0.1-0.5,0.9-1.6,2.4c0.1,0.1,0.9,0.2,2.1,0.4
C35.1,14.9,34.9,14,34.7,13.4L34.7,13.4z"/>
<path class="st0" d="M43.4,6.5c0.5,0,1.1,0.1,1.6,0.1c0.2,0,0.5,1,1.1,3l0.1,0.3c-0.2,0.2-0.9,0.5-1.9,1c-4.7-0.4-7.4-0.7-8.1-0.8
C36,10,35.7,9.3,35.3,7.9c1.3-0.6,2.3-0.9,3.1-0.9C38.7,6.9,40.4,6.8,43.4,6.5z M40,10.7c0.2,0,0.9,0.2,2.2,0.5
c0.1,0,0.2,0.2,0.3,0.5c0.3,1.1,0.5,1.7,0.5,1.7c-0.2,0.7-0.4,1.5-0.4,2.4c0,0.3-1.1,0.8-3.2,1.3c-0.6-1.2-1.1-2.7-1.5-4.6
c-0.2-0.3-0.3-0.6-0.3-0.9C37.7,11.6,38.5,11.3,40,10.7z"/>
<path class="st0" d="M47.7,12.1h0.1c0.2,0,0.8,0.1,1.7,0.3c0.4,0.6,0.7,1.3,0.9,2.1c0.1,0.2,0.1,0.4,0.1,0.4c-1,0.4-1.6,0.5-2,0.5
c0,0.1-0.1,0.1-0.2,0.1h0c-0.2-0.3-0.3-0.4-0.4-0.4h-0.4c-0.2,0-0.4,0-0.7,0c-0.4,0.9-0.7,1.5-0.7,1.7c0.7,0.6,1.3,0.9,1.7,1h0.1
c0.3,0,0.5-0.3,0.6-0.8c0.1,0,0.6-0.2,1.5-0.5c0.1,0,0.2,0.3,0.4,1c0.1,0.2,0.2,0.4,0.2,0.6v0c-0.2,0.5-0.5,0.9-0.9,1.1
c-0.2,0.2-0.9,0.4-2.2,0.8c-0.3,0.2-0.7,0.3-1.1,0.3h-0.1c-0.5,0-0.9-0.1-1.3-0.4l-0.1,0h-0.2c-1-2.5-1.5-4.1-1.7-4.8
c0.1-0.1,0.4-0.7,1-1.9c0.4-0.4,1.4-0.8,2.9-1.2C47.2,12.1,47.5,12.1,47.7,12.1z"/>
<path class="st0" d="M59.8,8.6h0.2c0.3,0,0.7,0.8,1.2,2.5c0,0.7,0,1.1-0.1,1.4c0,0,0,0.1,0.1,0.1c0,0.2-0.1,0.8-0.3,2
c0,0.1,0.1,0.2,0.1,0.3c0,0,0,0.1-0.1,0.1l0.1,0.3v0.8c0,0.2,0.1,0.6,0.2,1.3c0,0.2-1,0.7-3.1,1.5h-0.1c-0.7-1.5-1.1-2.5-1.1-3.1
v-0.1l-0.6-0.1h-1.1c-0.7,0-1,0.1-1,0.3c0,0.5,0,1.1-0.1,1.6c0,0.2,0.1,0.3,0.1,0.6c-0.4,0.3-1.3,0.6-2.5,1
c-0.3-0.1-0.7-0.9-1.3-2.6v-0.2c0.7-2.5,1-4,1-4.6c0-0.1-0.1-0.6-0.1-1.6c1.1-0.5,1.8-0.8,2.1-0.8c0.2,0.1,0.5,0.9,1,2.5V13
c0.1,0,1-0.1,2.6-0.2v-0.1c0-0.6,0.1-1.1,0.1-1.5v-0.1c-0.2-0.7-0.3-1-0.3-1.1C56.7,9.7,57.7,9.2,59.8,8.6z"/>
</svg>

After

Width:  |  Height:  |  Size: 9.4 KiB

@@ -0,0 +1,9 @@
.nineties-mode {
position: absolute;
width: 100%;
height: 100%;
background: transparent url('./shapes.svg');
z-index: 50;
opacity: .2;
pointer-events: none;
}
@@ -0,0 +1,23 @@
import PropTypes from 'prop-types';
import React from 'react';
import styles from './nineties-mode.css';
import {connect} from 'react-redux';
import {isTimeTravel1990} from '../../reducers/time-travel';
const NinetiesMode = props => {
if (!props.show) return null;
return <div className={styles.ninetiesMode} />;
};
NinetiesMode.propTypes = {
show: PropTypes.bool
};
const mapStateToProps = state => ({
// This is the button's mode, as opposed to the actual current state
show: isTimeTravel1990(state)
});
export default connect(
mapStateToProps
)(NinetiesMode);
+1
View File
@@ -0,0 +1 @@
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="453.58105" height="339.14542" viewBox="0,0,453.58105,339.14542"><g transform="translate(-3.82096,-1.28768)"><g data-paper-data="{&quot;isPaintingLayer&quot;:true}" fill-rule="nonzero" stroke-linejoin="miter" stroke-miterlimit="10" stroke-dasharray="" stroke-dashoffset="0" style="mix-blend-mode: normal"><path d="M151.40202,81.94226c0,10.17727 -8.25031,18.42759 -18.42759,18.42759c-10.17728,0 -18.42758,-8.25031 -18.42758,-18.42759c0,-10.17727 8.25031,-18.42759 18.42758,-18.42759c10.17728,0 18.42759,8.25031 18.42759,18.42759z" fill="#000000" stroke="#000000" stroke-width="0" stroke-linecap="butt"/><path d="M150.11,80.16574c0,10.45342 -8.47417,18.92759 -18.92759,18.92759c-10.45342,0 -18.92759,-8.47417 -18.92759,-18.92759c0,-10.45342 8.47417,-18.92759 18.92759,-18.92759c10.45342,0 18.92759,8.47417 18.92759,18.92759z" fill="#ac83ff" stroke="#000000" stroke-width="0" stroke-linecap="butt"/><path d="M135.60486,158.54925l14.32795,-7.67569l-3.07028,-21.49192l17.39822,10.74596l7.16397,-11.76938l7.16397,11.76939l14.83966,-7.67568l-0.51172,15.35137l15.86309,5.62884l8.5314,3.45171l-19.72574,7.33393l8.5984,19.21996l-20.99022,-9.35709l-1.01158,14.41497l-8.3455,-14.41497l-14.16208,14.92075l-0.50579,-18.20838l-16.69102,8.09261l7.83972,-15.42655z" fill="#000000" stroke="#f3f08f" stroke-width="0" stroke-linecap="round"/><path d="M130.85777,153.54925l14.32795,-7.67569l-3.07028,-21.49192l17.39822,10.74596l7.16397,-11.76938l7.16397,11.76939l14.83966,-7.67569l-0.51172,15.35137l15.86309,5.62884l8.5314,3.45171l-19.72574,7.33393l8.5984,19.21996l-20.99022,-9.35709l-1.01158,14.41497l-8.3455,-14.41497l-14.16208,14.92075l-0.50579,-18.20838l-16.69102,8.09261l7.83972,-15.42655z" fill="#f3f08f" stroke="#f3f08f" stroke-width="0.5" stroke-linecap="round"/><g fill="#000000" stroke="none" stroke-width="0" stroke-linecap="butt"><path d="M205.68026,240.55048l12.09111,-30.27749l5.16652,2.34355c0,0 -1.25391,2.67795 -2.11553,4.83555c-2.03374,5.0927 -9.97558,25.44194 -9.97558,25.44194z"/><path d="M217.94432,210.15941l24.04307,9.07595l-1.76964,4.10689c0,0 -2.12929,-0.94814 -3.84262,-1.5949c-4.04407,-1.52658 -20.20045,-7.48104 -20.20045,-7.48104z"/><path d="M251.19347,191.96892l-10.65459,31.49393l-5.38944,-2.10355c0,0 1.13023,-2.79564 1.88949,-5.03992c1.79211,-5.29731 8.76511,-26.454 8.76511,-26.454z"/><path d="M275.23943,204.09497l-30.83675,-8.84898l1.78443,-5.28963c0,0 2.74562,0.96329 4.94308,1.59387c5.18677,1.48841 25.89367,7.25511 25.89367,7.25511z"/><path d="M287.72415,174.16786l-12.35728,29.0723l-4.9549,-2.38018c0,0 1.27168,-2.56743 2.15227,-4.63915c2.0785,-4.88999 10.20501,-24.43315 10.20501,-24.43315z"/></g><g fill="#79cae0" stroke="none" stroke-width="0" stroke-linecap="butt"><path d="M204.53741,237.05048l12.09111,-30.27749l5.16652,2.34355c0,0 -1.25391,2.67795 -2.11553,4.83555c-2.03374,5.0927 -9.97558,25.44194 -9.97558,25.44194z"/><path d="M216.80146,206.65941l24.04307,9.07595l-1.76964,4.10689c0,0 -2.12929,-0.94814 -3.84262,-1.5949c-4.04407,-1.52658 -20.20045,-7.48104 -20.20045,-7.48104z"/><path d="M250.05062,188.46892l-10.65459,31.49393l-5.38944,-2.10355c0,0 1.13023,-2.79564 1.88949,-5.03992c1.79211,-5.29731 8.76511,-26.454 8.76511,-26.454z"/><path d="M274.09657,200.59497l-30.83675,-8.84898l1.78444,-5.28963c0,0 2.74562,0.96329 4.94308,1.59387c5.18677,1.48841 25.89367,7.25511 25.89367,7.25511z"/><path d="M286.58128,170.66786l-12.35728,29.0723l-4.9549,-2.38018c0,0 1.27168,-2.56743 2.15227,-4.63915c2.0785,-4.88999 10.20501,-24.43315 10.20501,-24.43315z"/></g><path d="M261.402,102.17879c0,7.8375 -6.35355,14.19106 -14.19106,14.19106c-7.83751,0 -14.19105,-6.35355 -14.19105,-14.19106c0,-7.8375 6.35355,-14.19106 14.19105,-14.19106c7.83751,0 14.19106,6.35355 14.19106,14.19106z" fill="#000000" stroke="#000000" stroke-width="0" stroke-linecap="butt"/><path d="M259.63694,101.19574c0,7.83751 -6.35355,14.19106 -14.19106,14.19106c-7.83751,0 -14.19106,-6.35355 -14.19106,-14.19106c0,-7.83751 6.35355,-14.19106 14.19106,-14.19106c7.83751,0 14.19106,6.35355 14.19106,14.19106z" fill="#79cae0" stroke="#000000" stroke-width="0" stroke-linecap="butt"/><path d="M83.00001,250.50002v-49h50v49z" fill="#000000" stroke="none" stroke-width="0" stroke-linecap="butt"/><path d="M80.00001,247.50002v-49h50v49z" fill="#f79a96" stroke="none" stroke-width="0" stroke-linecap="butt"/><g stroke="none" stroke-width="0" stroke-linecap="round"><path d="M163.94596,39.50782l12.33918,-5.92173l-2.64411,-16.58084l14.98329,8.29042l6.16959,-9.07998l6.16959,9.07999l12.77987,-5.92172l-0.4407,11.84346l13.66125,4.3426l7.34722,2.66297l-16.98775,5.65807l7.40492,14.82804l-18.07671,-7.21891l-0.87117,11.12103l-7.18712,-11.12103l-12.19634,11.51124l-0.43559,-14.04761l-14.37425,6.24338l6.75154,-11.90145z" fill="#000000"/><path d="M159.85777,35.65037l12.33919,-5.92174l-2.64411,-16.58084l14.98329,8.29042l6.16959,-9.07998l6.16959,9.07999l12.77987,-5.92173l-0.4407,11.84346l13.66125,4.3426l7.34721,2.66297l-1Line truncated

After

Width:  |  Height:  |  Size: 13 KiB

@@ -0,0 +1,9 @@
.oldtimey-mode {
position: absolute;
width: 100%;
height: 100%;
background: transparent url('./oldtimey.png') center center;
background-size: 100% 100%;
z-index: 500;
pointer-events: none;
}
@@ -0,0 +1,35 @@
import PropTypes from 'prop-types';
import React from 'react';
import styles from './oldtimey-mode.css';
import oldtimeySound from './projector2.mp3';
import {connect} from 'react-redux';
import {isTimeTravel1920} from '../../reducers/time-travel';
const OldTimeyMode = props => {
if (!props.show) return null;
return (
<div className={styles.oldtimeyMode}>
<audio
src={oldtimeySound}
ref={audio => {
audio && (audio.volume = 0.1); // eslint-disable-line no-unused-expressions
}}
autoPlay
loop
/>
</div>
);
};
OldTimeyMode.propTypes = {
show: PropTypes.bool
};
const mapStateToProps = state => ({
// This is the button's mode, as opposed to the actual current state
show: isTimeTravel1920(state)
});
export default connect(
mapStateToProps
)(OldTimeyMode);
Binary file not shown.

After

Width:  |  Height:  |  Size: 1013 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 288 KiB

@@ -0,0 +1,49 @@
.prehistoric-mode {
position: absolute;
width: 100%;
height: 100%;
overflow: hidden;
}
.prehistoric-background{
position: absolute;
width: 100%;
height: 100%;
opacity: 90%;
z-index: 50;
pointer-events: none;
background: transparent url('./background.png') center center;
animation:jitter 2.5s linear infinite;
}
@keyframes jitter{
0%{transform:scale(1.0385841106898348);}
5% {transform:scale(1.045596657989466);}
10% {transform:scale(1.029923116529907);}
15% {transform:scale(1.059010318189378);}
20% {transform:scale(1.0868915738701577);}
25% {transform:scale(1.0771183924324506);}
30% {transform:scale(1.0780695942284886);}
35% {transform:scale(1.081268381642509);}
40% {transform:scale(1.0446864380239975);}
45% {transform:scale(1.0822226558561991);}
50% {transform:scale(1.0703574969484024);}
55% {transform:scale(1.0131626458532954);}
60% {transform:scale(1.0638351688496082);}
65% {transform:scale(1.0254684750877292);}
70% {transform:scale(1.0409969735315965);}
75% {transform:scale(1.029863208069294);}
80% {transform:scale(1.043175299252114);}
85% {transform:scale(1.022196668538089);}
90% {transform:scale(1.042465864842523);}
95% {transform:scale(1.04090035265691);}
100% {transform:scale(1.0385841106898348);}
}
.torch {
position: absolute;
pointer-events: none;
opacity: 80%;
z-index: 50;
}
@@ -0,0 +1,68 @@
import PropTypes from 'prop-types';
import React from 'react';
import bindAll from 'lodash.bindall';
import styles from './prehistoric-mode.css';
import {connect} from 'react-redux';
import {isTimeTravel220022BC} from '../../reducers/time-travel';
import torch from './torch.gif';
class PrehistoricMode extends React.Component {
constructor (props) {
super(props);
bindAll(this, [
'handleMouseMove'
]);
this.state = {
x: window.innerWidth / 2,
y: window.innerHeight / 2
};
}
componentDidMount () {
document.addEventListener('pointermove', this.handleMouseMove);
}
componentWillUnmount () {
document.removeEventListener('pointermove', this.handleMouseMove);
}
handleMouseMove (event) {
this.setState({x: event.clientX, y: event.clientY});
}
render () {
if (!this.props.show) return null;
return (
<div
className={styles.prehistoricMode}
>
<div
className={styles.prehistoricBackground}
style={{
backgroundPosition: `${this.state.x + 2000}px ${this.state.y + 2000}px`
}}
/><img
className={styles.torch}
style={{
left: `${this.state.x - 35}px`,
top: `${this.state.y - 220}px`
}}
src={torch}
/>
</div>
);
}
}
PrehistoricMode.propTypes = {
show: PropTypes.bool
};
const mapStateToProps = state => ({
// This is the button's mode, as opposed to the actual current state
show: isTimeTravel220022BC(state)
});
export default connect(
mapStateToProps
)(PrehistoricMode);
Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

+11 -2
View File
@@ -26,6 +26,7 @@ import {closeExtensionLibrary, openSoundRecorder, openConnectionModal} from '../
import {activateCustomProcedures, deactivateCustomProcedures} from '../reducers/custom-procedures';
import {setConnectionModalExtensionId} from '../reducers/connection-modal';
import {updateMetrics} from '../reducers/workspace-metrics';
import {isTimeTravel2020} from '../reducers/time-travel';
import {
activateTab,
@@ -48,7 +49,7 @@ const DroppableBlocks = DropAreaHOC([
class Blocks extends React.Component {
constructor (props) {
super(props);
this.ScratchBlocks = VMScratchBlocks(props.vm);
this.ScratchBlocks = VMScratchBlocks(props.vm, false);
bindAll(this, [
'attachVM',
'detachVM',
@@ -87,6 +88,11 @@ class Blocks extends React.Component {
this.toolboxUpdateQueue = [];
}
componentDidMount () {
this.ScratchBlocks = VMScratchBlocks(this.props.vm, this.props.useCatBlocks);
this.ScratchBlocks.prompt = this.handlePromptStart;
this.ScratchBlocks.statusButtonCallback = this.handleConnectionModalStart;
this.ScratchBlocks.recordSoundCallback = this.handleOpenSoundRecorder;
this.ScratchBlocks.FieldColourSlider.activateEyedropper_ = this.props.onActivateColorPicker;
this.ScratchBlocks.Procedures.externalProcedureDefCallback = this.props.onActivateCustomProcedures;
this.ScratchBlocks.ScratchMsgs.setLocale(this.props.locale);
@@ -553,6 +559,7 @@ class Blocks extends React.Component {
onRequestCloseCustomProcedures,
toolboxXML,
updateMetrics: updateMetricsProp,
useCatBlocks,
workspaceMetrics,
...props
} = this.props;
@@ -639,6 +646,7 @@ Blocks.propTypes = {
toolboxXML: PropTypes.string,
updateMetrics: PropTypes.func,
updateToolboxState: PropTypes.func,
useCatBlocks: PropTypes.bool,
vm: PropTypes.instanceOf(VM).isRequired,
workspaceMetrics: PropTypes.shape({
targets: PropTypes.objectOf(PropTypes.object)
@@ -689,7 +697,8 @@ const mapStateToProps = state => ({
messages: state.locales.messages,
toolboxXML: state.scratchGui.toolbox.toolboxXML,
customProceduresVisible: state.scratchGui.customProcedures.active,
workspaceMetrics: state.scratchGui.workspaceMetrics
workspaceMetrics: state.scratchGui.workspaceMetrics,
useCatBlocks: isTimeTravel2020(state)
});
const mapDispatchToProps = dispatch => ({
+2
View File
@@ -104,6 +104,7 @@ GUI.propTypes = {
isLoading: PropTypes.bool,
isScratchDesktop: PropTypes.bool,
isShowingProject: PropTypes.bool,
isTotallyNormal: PropTypes.bool,
loadingStateVisible: PropTypes.bool,
onProjectLoaded: PropTypes.func,
onSeeCommunity: PropTypes.func,
@@ -118,6 +119,7 @@ GUI.propTypes = {
GUI.defaultProps = {
isScratchDesktop: false,
isTotallyNormal: false,
onStorageInit: storageInstance => storageInstance.addOfficialScratchWebStores(),
onProjectLoaded: () => {},
onUpdateProjectId: () => {},
+3 -4
View File
@@ -1,12 +1,11 @@
import ScratchBlocks from 'scratch-blocks';
/**
* Connect scratch blocks with the vm
* @param {VirtualMachine} vm - The scratch vm
* @param {Bool} useCatBlocks - Whether to use cat blocks rendering of ScratchBlocks
* @return {ScratchBlocks} ScratchBlocks connected with the vm
*/
export default function (vm) {
export default function (vm, useCatBlocks) {
const ScratchBlocks = useCatBlocks ? require('cat-blocks') : require('scratch-blocks');
const jsonForMenuBlock = function (name, menuOptionsFn, colors, start) {
return {
message0: '%1',
+3
View File
@@ -22,6 +22,7 @@ import restoreDeletionReducer, {restoreDeletionInitialState} from './restore-del
import stageSizeReducer, {stageSizeInitialState} from './stage-size';
import targetReducer, {targetsInitialState} from './targets';
import timeoutReducer, {timeoutInitialState} from './timeout';
import timeTravelReducer, {timeTravelInitialState} from './time-travel';
import toolboxReducer, {toolboxInitialState} from './toolbox';
import vmReducer, {vmInitialState} from './vm';
import vmStatusReducer, {vmStatusInitialState} from './vm-status';
@@ -56,6 +57,7 @@ const guiInitialState = {
restoreDeletion: restoreDeletionInitialState,
targets: targetsInitialState,
timeout: timeoutInitialState,
timeTravel: timeTravelInitialState,
toolbox: toolboxInitialState,
vm: vmInitialState,
vmStatus: vmStatusInitialState,
@@ -155,6 +157,7 @@ const guiReducer = combineReducers({
restoreDeletion: restoreDeletionReducer,
targets: targetReducer,
timeout: timeoutReducer,
timeTravel: timeTravelReducer,
toolbox: toolboxReducer,
vm: vmReducer,
vmStatus: vmStatusReducer,
+11 -2
View File
@@ -7,6 +7,7 @@ const MENU_FILE = 'fileMenu';
const MENU_EDIT = 'editMenu';
const MENU_LANGUAGE = 'languageMenu';
const MENU_LOGIN = 'loginMenu';
const MENU_MODE = 'modeMenu';
const initialState = {
@@ -15,7 +16,8 @@ const initialState = {
[MENU_FILE]: false,
[MENU_EDIT]: false,
[MENU_LANGUAGE]: false,
[MENU_LOGIN]: false
[MENU_LOGIN]: false,
[MENU_MODE]: false
};
const reducer = function (state, action) {
@@ -59,6 +61,10 @@ const languageMenuOpen = state => state.scratchGui.menus[MENU_LANGUAGE];
const openLoginMenu = () => openMenu(MENU_LOGIN);
const closeLoginMenu = () => closeMenu(MENU_LOGIN);
const loginMenuOpen = state => state.scratchGui.menus[MENU_LOGIN];
const openModeMenu = () => openMenu(MENU_MODE);
const closeModeMenu = () => closeMenu(MENU_MODE);
const modeMenuOpen = state => state.scratchGui.menus[MENU_MODE];
export {
reducer as default,
@@ -80,5 +86,8 @@ export {
languageMenuOpen,
openLoginMenu,
closeLoginMenu,
loginMenuOpen
loginMenuOpen,
openModeMenu,
closeModeMenu,
modeMenuOpen
};
+96
View File
@@ -0,0 +1,96 @@
const SET_TIME_TRAVEL = 'scratch-gui/time-travel/SET_TIME_TRAVEL';
const initialState = {
year: 'NOW'
};
const NOW = 'NOW';
const YEAR_2020 = '2020';
const YEAR_1990 = '1990';
const YEAR_1920 = '1920';
const YEAR_220022BC = '220022BC';
const reducer = function (state, action) {
if (typeof state === 'undefined') state = initialState;
switch (action.type) {
case SET_TIME_TRAVEL:
return Object.assign({}, state, {
year: action.year
});
default:
return state;
}
};
const isTimeTravel220022BC = function (state) {
return state.scratchGui.timeTravel.year === YEAR_220022BC;
};
const setTimeTravel220022BC = function () {
return {
type: SET_TIME_TRAVEL,
year: YEAR_220022BC
};
};
const isTimeTravel1920 = function (state) {
return state.scratchGui.timeTravel.year === YEAR_1920;
};
const setTimeTravel1920 = function () {
return {
type: SET_TIME_TRAVEL,
year: YEAR_1920
};
};
const isTimeTravel1990 = function (state) {
return state.scratchGui.timeTravel.year === YEAR_1990;
};
const setTimeTravel1990 = function () {
return {
type: SET_TIME_TRAVEL,
year: YEAR_1990
};
};
const isTimeTravel2020 = function (state) {
return state.scratchGui.timeTravel.year === YEAR_2020;
};
const setTimeTravel2020 = function () {
return {
type: SET_TIME_TRAVEL,
year: YEAR_2020
};
};
const isTimeTravelNow = function (state) {
return state.scratchGui.timeTravel.year === NOW;
};
const setTimeTravelNow = function () {
return {
type: SET_TIME_TRAVEL,
year: NOW
};
};
const setTimeTravel = function (mode) {
return {
type: SET_TIME_TRAVEL,
year: mode
};
};
export {
reducer as default,
initialState as timeTravelInitialState,
isTimeTravel220022BC,
isTimeTravel1920,
isTimeTravel1990,
isTimeTravel2020,
isTimeTravelNow,
setTimeTravel220022BC,
setTimeTravel1920,
setTimeTravel1990,
setTimeTravel2020,
setTimeTravelNow,
setTimeTravel
};
+3
View File
@@ -20,6 +20,9 @@ describe('MenuBar Component', () => {
projectState: {
loadingState: LoadingState.NOT_LOADED
},
timeTravel: {
year: 'NOW'
},
vm: new VM()
}
});
+6 -4
View File
@@ -112,7 +112,7 @@ module.exports = [
module: {
rules: base.module.rules.concat([
{
test: /\.(svg|png|wav|gif|jpg)$/,
test: /\.(svg|png|wav|mp3|gif|jpg)$/,
loader: 'file-loader',
options: {
outputPath: 'static/assets/'
@@ -187,7 +187,8 @@ module.exports = [
patterns: [
{
from: 'extension-worker.{js,js.map}',
context: 'node_modules/scratch-vm/dist/web'
context: 'node_modules/scratch-vm/dist/web',
noErrorOnMissing: true
}
]
})
@@ -213,7 +214,7 @@ module.exports = [
module: {
rules: base.module.rules.concat([
{
test: /\.(svg|png|wav|gif|jpg)$/,
test: /\.(svg|png|wav|mp3|gif|jpg)$/,
loader: 'file-loader',
options: {
outputPath: 'static/assets/',
@@ -235,7 +236,8 @@ module.exports = [
patterns: [
{
from: 'extension-worker.{js,js.map}',
context: 'node_modules/scratch-vm/dist/web'
context: 'node_modules/scratch-vm/dist/web',
noErrorOnMissing: true
}
]
}),