diff --git a/package-lock.json b/package-lock.json index 551eb5ee0..d0efff814 100644 --- a/package-lock.json +++ b/package-lock.json @@ -16,9 +16,9 @@ } }, "@babel/cli": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.10.tgz", - "integrity": "sha512-lYSBC7B4B9hJ7sv0Ojx1BrGhuzCoOIYfLjd+Xpd4rOzdS+a47yi8voV8vFkfjlZR1N5qZO7ixOCbobUdT304PQ==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.13.14.tgz", + "integrity": "sha512-zmEFV8WBRsW+mPQumO1/4b34QNALBVReaiHJOkxhUsdo/AvYM62c+SKSuLi2aZ42t3ocK6OI0uwUXRvrIbREZw==", "dev": true, "requires": { "@nicolo-ribaudo/chokidar-2": "2.1.8-no-fsevents", @@ -232,25 +232,24 @@ "dev": true }, "@babel/core": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", - "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.14.tgz", + "integrity": "sha512-wZso/vyF4ki0l0znlgM4inxbdrUvCb+cVz8grxDq+6C9k6qbqoIJteQOKicaKjCipU3ISV+XedCqpL2RJJVehA==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", - "@babel/helper-compilation-targets": "^7.13.10", - "@babel/helper-module-transforms": "^7.13.0", + "@babel/helper-compilation-targets": "^7.13.13", + "@babel/helper-module-transforms": "^7.13.14", "@babel/helpers": "^7.13.10", - "@babel/parser": "^7.13.10", + "@babel/parser": "^7.13.13", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", - "lodash": "^4.17.19", "semver": "^6.3.0", "source-map": "^0.5.0" }, @@ -316,9 +315,9 @@ } }, "@babel/parser": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", - "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", + "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", "dev": true }, "@babel/template": { @@ -333,26 +332,25 @@ } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", + "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", + "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/parser": "^7.13.13", + "@babel/types": "^7.13.13", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -494,12 +492,12 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.13.10", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", - "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz", + "integrity": "sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ==", "dev": true, "requires": { - "@babel/compat-data": "^7.13.8", + "@babel/compat-data": "^7.13.12", "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" @@ -519,9 +517,9 @@ } }, "electron-to-chromium": { - "version": "1.3.697", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.697.tgz", - "integrity": "sha512-VTAS+IWwGlfaL7VtfUMzFeV55PT/HglNFqQ6eW9E3PfjvPqhZfqJj+8dd9zrqrJYcouUfCgQw0OIse85Dz9V9Q==", + "version": "1.3.701", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.701.tgz", + "integrity": "sha512-Zd9ofdIMYHYhG1gvnejQDvC/kqSeXQvtXF0yRURGxgwGqDZm9F9Fm3dYFnm5gyuA7xpXfBlzVLN1sz0FjxpKfw==", "dev": true }, "semver": { @@ -562,9 +560,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -596,9 +594,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -621,9 +619,9 @@ } }, "@babel/helper-module-transforms": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz", - "integrity": "sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.13.14.tgz", + "integrity": "sha512-QuU/OJ0iAOSIatyVZmfqB0lbkVP0kDRiKj34xy+QNsnVZi/PA6BoSoreeqnxxa9EHFAIL0R9XOaAR/G9WlIy5g==", "dev": true, "requires": { "@babel/helper-module-imports": "^7.13.12", @@ -632,8 +630,8 @@ "@babel/helper-split-export-declaration": "^7.12.13", "@babel/helper-validator-identifier": "^7.12.11", "@babel/template": "^7.12.13", - "@babel/traverse": "^7.13.0", - "@babel/types": "^7.13.12" + "@babel/traverse": "^7.13.13", + "@babel/types": "^7.13.14" }, "dependencies": { "@babel/code-frame": { @@ -697,9 +695,9 @@ } }, "@babel/parser": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", - "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", + "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", "dev": true }, "@babel/template": { @@ -714,26 +712,25 @@ } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", + "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", + "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/parser": "^7.13.13", + "@babel/types": "^7.13.13", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -827,9 +824,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -930,9 +927,9 @@ } }, "@babel/parser": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", - "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", + "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", "dev": true }, "@babel/template": { @@ -947,26 +944,25 @@ } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", + "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", + "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/parser": "^7.13.13", + "@babel/types": "^7.13.13", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1060,9 +1056,9 @@ }, "dependencies": { "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -1177,9 +1173,9 @@ } }, "@babel/parser": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.12.tgz", - "integrity": "sha512-4T7Pb244rxH24yR116LAuJ+adxXXnHhZaLJjegJVKSdoNCe4x1eDBaud5YIcQFcqzsaD5BHvJw5BQ0AZapdCRw==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.13.tgz", + "integrity": "sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw==", "dev": true }, "@babel/template": { @@ -1194,26 +1190,25 @@ } }, "@babel/traverse": { - "version": "7.13.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.0.tgz", - "integrity": "sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ==", + "version": "7.13.13", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.13.13.tgz", + "integrity": "sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", - "@babel/generator": "^7.13.0", + "@babel/generator": "^7.13.9", "@babel/helper-function-name": "^7.12.13", "@babel/helper-split-export-declaration": "^7.12.13", - "@babel/parser": "^7.13.0", - "@babel/types": "^7.13.0", + "@babel/parser": "^7.13.13", + "@babel/types": "^7.13.13", "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" + "globals": "^11.1.0" } }, "@babel/types": { - "version": "7.13.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.12.tgz", - "integrity": "sha512-K4nY2xFN4QMvQwkQ+zmBDp6ANMbVNw6BbxWmYA4qNjhR9W+Lj/8ky5MEY2Me5r+B2c6/v6F53oMndG+f9s3IiA==", + "version": "7.13.14", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz", + "integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==", "dev": true, "requires": { "@babel/helper-validator-identifier": "^7.12.11", @@ -4860,9 +4855,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001191", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001191.tgz", - "integrity": "sha512-xJJqzyd+7GCJXkcoBiQ1GuxEiOBCLQ0aVW9HMekifZsAVGdj5eJ4mFB9fEhSHipq9IOk/QXFJUiIr9lZT+EsGw==", + "version": "1.0.30001204", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz", + "integrity": "sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ==", "dev": true }, "canvas-fit": { @@ -5350,9 +5345,9 @@ "dev": true }, "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", "dev": true }, "colormap": { @@ -15809,9 +15804,9 @@ } }, "node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", + "version": "1.1.71", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.71.tgz", + "integrity": "sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg==", "dev": true }, "node-sass": { @@ -20909,9 +20904,9 @@ } }, "scratch-blocks": { - "version": "0.1.0-prerelease.20210324033606", - "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210324033606.tgz", - "integrity": "sha512-zCf7mN64RLME1tA9t2HcDEnf5h5+ziMyksbQj3gsWOUylYLrrYksMBw7wprVEMdPBJwz+4HhpcpkkrCQV1NVnw==", + "version": "0.1.0-prerelease.20210329152629", + "resolved": "https://registry.npmjs.org/scratch-blocks/-/scratch-blocks-0.1.0-prerelease.20210329152629.tgz", + "integrity": "sha512-aOsTbGnwI+senEBpH8ZCAipJhxkyJ2UPrKA7JeTtBN4xsoW5sTvQ/fEpnBa/wa0pYi9abk2KGvfGDV1qdp8onA==", "dev": true, "requires": { "exports-loader": "0.6.3", @@ -20919,9 +20914,9 @@ } }, "scratch-gui": { - "version": "0.1.0-prerelease.20210324120840", - "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210324120840.tgz", - "integrity": "sha512-6KLZfZdJLAMLBDJo/LC6f0ckUg0CefE941NvBiNmV2XOIAoMPe5gq/eX3C1JT6BDLAFw4ogw4+K1KmQX/PYibw==", + "version": "0.1.0-prerelease.20210329170111", + "resolved": "https://registry.npmjs.org/scratch-gui/-/scratch-gui-0.1.0-prerelease.20210329170111.tgz", + "integrity": "sha512-QM/f9FtDesgfb8vKNwkIPUxcYWZtcYqzROz0R4d5bsQ8W9k8FxP1NBr8hw/Lmoh+AyrJWY3MmUk+v8saX5/yOg==", "dev": true, "requires": { "arraybuffer-loader": "^1.0.6", @@ -20972,10 +20967,10 @@ "redux": "3.7.2", "redux-throttle": "0.1.1", "scratch-audio": "0.1.0-prerelease.20200528195344", - "scratch-blocks": "0.1.0-prerelease.20210324033606", + "scratch-blocks": "0.1.0-prerelease.20210329152629", "scratch-l10n": "3.11.20210324031512", "scratch-paint": "0.2.0-prerelease.20210319222931", - "scratch-render": "0.1.0-prerelease.20210317200605", + "scratch-render": "0.1.0-prerelease.20210329152519", "scratch-render-fonts": "1.0.0-prerelease.20200507182347", "scratch-storage": "1.3.3", "scratch-svg-renderer": "0.2.0-prerelease.20210317184701", @@ -21142,9 +21137,9 @@ "dev": true }, "electron-to-chromium": { - "version": "1.3.698", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.698.tgz", - "integrity": "sha512-VEXDzYblnlT+g8Q3gedwzgKOso1evkeJzV8lih7lV8mL8eAnGVnKyC3KsFT6S+R5PQO4ffdr1PI16/ElibY/kQ==", + "version": "1.3.701", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.701.tgz", + "integrity": "sha512-Zd9ofdIMYHYhG1gvnejQDvC/kqSeXQvtXF0yRURGxgwGqDZm9F9Fm3dYFnm5gyuA7xpXfBlzVLN1sz0FjxpKfw==", "dev": true }, "has-flag": { @@ -21364,6 +21359,19 @@ "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", "dev": true }, + "scratch-l10n": { + "version": "3.11.20210324031512", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210324031512.tgz", + "integrity": "sha512-dyv2cjNWVHrL78XpW64uF2azYaUhMKLjfJVH6vSCPJxm3EKCvO6EoaUSlIAwhsGoMwgfxWZ8D74+IaifGJfnCQ==", + "dev": true, + "requires": { + "@babel/cli": "^7.1.2", + "@babel/core": "^7.1.2", + "babel-plugin-react-intl": "^3.0.1", + "react-intl": "^2.8.0", + "transifex": "1.6.6" + } + }, "scratch-storage": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/scratch-storage/-/scratch-storage-1.3.3.tgz", @@ -21431,9 +21439,9 @@ } }, "scratch-l10n": { - "version": "3.11.20210324031512", - "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210324031512.tgz", - "integrity": "sha512-dyv2cjNWVHrL78XpW64uF2azYaUhMKLjfJVH6vSCPJxm3EKCvO6EoaUSlIAwhsGoMwgfxWZ8D74+IaifGJfnCQ==", + "version": "3.11.20210329031438", + "resolved": "https://registry.npmjs.org/scratch-l10n/-/scratch-l10n-3.11.20210329031438.tgz", + "integrity": "sha512-/XnUW5Q7xaxvlNTBChrqyQjSM0jpk3SQfdlbM/76qO8D7vWOTCAyaCbQ05v/Wnm9V8QqWqlp3+e1yNWa4k4c+Q==", "dev": true, "requires": { "@babel/cli": "^7.1.2", @@ -21457,7 +21465,7 @@ "minilog": "3.1.0", "parse-color": "1.0.0", "prop-types": "^15.5.10", - "scratch-render-fonts": "^1.0.0-prerelease.20200507182347" + "scratch-render-fonts": "^1.0.0-prerelease.20210325224822" }, "dependencies": { "lodash.omit": { @@ -21482,9 +21490,9 @@ } }, "scratch-render-fonts": { - "version": "1.0.0-prerelease.20200507182347", - "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20200507182347.tgz", - "integrity": "sha512-tVt2s7lxsBhme9WKIZTnluMerdJVGEc80QSrDdIIzUvHXGCIYkLh6j7ytwXcyq2UsA34d93op9+I9Bh1SPkQkA==", + "version": "1.0.0-prerelease.20210325224822", + "resolved": "https://registry.npmjs.org/scratch-render-fonts/-/scratch-render-fonts-1.0.0-prerelease.20210325224822.tgz", + "integrity": "sha512-N68YRKGEbFvMAhfNFEluDuWFXUCbO9ezRahqJKwCFpEQuhgQ9tmA+y+GZ5ETQwI/e9M1tHAfX/8DxK5yBdQT1A==", "dev": true, "requires": { "base64-loader": "1.0.0" @@ -21515,9 +21523,9 @@ } }, "scratch-render": { - "version": "0.1.0-prerelease.20210317200605", - "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20210317200605.tgz", - "integrity": "sha512-HbWHTOX9X/jlZw0HINKfHkZ8H7GHiyqR8Cj3jKowHrH2r8bTn7K8DfT3Ql81fepMxVqqeKFPPnpvHwvDEaYWKg==", + "version": "0.1.0-prerelease.20210329152519", + "resolved": "https://registry.npmjs.org/scratch-render/-/scratch-render-0.1.0-prerelease.20210329152519.tgz", + "integrity": "sha512-w7n4t6FSQQGzXoDJJ0SnhOCDhc42EX28qWdjm73Zsv7nR/HFLwblrglodeTgcIU35bAX2rmWLDBgAMyhe7S1LA==", "dev": true, "requires": { "grapheme-breaker": "0.3.2", diff --git a/package.json b/package.json index 26842b593..09f0f3ebf 100644 --- a/package.json +++ b/package.json @@ -125,7 +125,7 @@ "redux-mock-store": "^1.2.3", "redux-thunk": "2.0.1", "sass-loader": "6.0.6", - "scratch-gui": "0.1.0-prerelease.20210324120840", + "scratch-gui": "0.1.0-prerelease.20210329170111", "scratch-l10n": "latest", "selenium-webdriver": "3.6.0", "slick-carousel": "1.6.0", diff --git a/src/components/cats/cats.jsx b/src/components/cats/cats.jsx new file mode 100644 index 000000000..096103909 --- /dev/null +++ b/src/components/cats/cats.jsx @@ -0,0 +1,154 @@ +const React = require('react'); +const bindAll = require('lodash.bindall'); + +const Modal = require('../modal/base/modal.jsx'); +const ModalTitle = require('../modal/base/modal-title.jsx'); + +require('./cats.scss'); + +const catImages = [ + '/images/cats/IMG_9775.jpg', + '/images/cats/IMG_9766.jpg', + '/images/cats/IMG_9587.jpg', + '/images/cats/IMG_6558.jpg', + '/images/cats/IMG_6521.jpg', + '/images/cats/IMG_6020.jpg', + '/images/cats/IMG_5880.jpg', + '/images/cats/IMG_3218.jpg', + '/images/cats/IMG_2776.jpg', + '/images/cats/IMG_2775.jpg', + '/images/cats/IMG_2681.jpg', + '/images/cats/IMG_1092.jpg', + '/images/cats/IMG_0684.jpg', + '/images/cats/IMG_0698.jpg', + '/images/cats/IMG_0504.jpg', + '/images/cats/IMG_0288.jpg', + '/images/cats/IMG_0122.jpg', + '/images/cats/IMG_2507.jpg', + '/images/cats/IMG_1977.jpg', + '/images/cats/IMG_1696.jpg', + '/images/cats/IMG_1463.jpg', + '/images/cats/IMG_1157.jpg', + '/images/cats/IMG_0681.jpg', + '/images/cats/IMG_0135.jpg', + '/images/cats/IMG_0071.jpg', + '/images/cats/1.jpg', + '/images/cats/2.jpg', + '/images/cats/3.jpg', + '/images/cats/4.jpg', + '/images/cats/cat-meme.jpg', + '/images/cats/cat-meme2.jpg', + '/images/cats/Cat1.jpg', + '/images/cats/Cat2.jpg', + '/images/cats/Cat3.jpg', + '/images/cats/Cat4.jpg', + '/images/cats/Cat5.jpg', + '/images/cats/Cat6.png', + '/images/cats/Cat7.jpg', + '/images/cats/Cat8.jpg', + '/images/cats/Cat9.jpg', + '/images/cats/Cat10.png', + '/images/cats/Cat11.png', + '/images/cats/Cat12.png', + '/images/cats/Cat13.png', + '/images/cats/Cat14.png', + '/images/cats/IMG_2167.jpg', + '/images/cats/IMG_4316.jpg', + '/images/cats/IMG_5396.jpg' +]; + +/* eslint-disable max-len */ +const mysteryFacts = [ + 'I became a pet after retiring from NASA.', + 'I was cursed to take this form by an evil wizard.', + 'My alter ego is Katy Purry.', + 'You should feed me now or I\'ll be late to my bowling league.', + 'You think you know, but you have no idea. This is the diary of Scratch Cat...', + 'I\'m a criminal paw-secutor.', + 'By night, I put on a human costume and fight crime.', + 'My grandma was the inspiration for Warrior Cats.', + 'You think I\'m running back and forth for no reason, but I\'ve got a marathon in June I\'m training for.', + 'Can you please put on the movie Ratatouille?', + 'In my secret lab I\'ve almost perfected prosthetic opposable thumbs.', + 'I\'m late for my audition for Cats: The Musical.', + 'Actually I\'m a famous opera meower.', + 'My purrs are ancient healing magic.', + 'I purr because I contain a small motor.', + 'I\'m not trying to stab you with my claws, I\'m practicing to be on The Great British Bakeoff.', + 'My name is Alexander Hameowlton.', + 'When my humans go to school, I host tea parties with the neighborhood pets.', + 'When I scratch at the furniture it\'s my way of telling you it\'s time for a new couch', + 'I knock things off the table, because things on the table are my mortal enemies.', + 'When I sleep, I dream about three things: fish, catnip, and you. But mostly fish.', + 'This is my angry face.', + 'I\'m a cat during the day, but I\'m a loaf ... also during the day.', + 'At night I closely study the word "homeowner" because the word "meow" is in it.', + 'My journal is filled with so many cat puns, I almost cat believe it.', + 'I\'m gonna change the world super soon, quick 3-hour power nap first.', + 'If Scratch code happened in real life, "Move 10" would make me just sit there and look at you', + 'I theorized the existence of radium and then was so disappointed to out that Marie Curie had beat me to it in 1902!', + 'In my free time, I like to go bird watching.', + 'Hannah Meowtana was inspired by my life.' +]; + +/* eslint-enable max-len */ + +class Cats extends React.Component { + constructor (props) { + super(props); + bindAll(this, [ + 'handleCatsClick', + 'handleClose', + 'pickRandomFact' + ]); + this.state = { + open: false + }; + } + + handleCatsClick () { + this.setState({open: true}); + } + + handleClose () { + this.setState({open: false}); + } + + pickRandomFact () { + const randomNumber = Math.floor(Math.random() * (mysteryFacts.length - 1)); + const catFact = mysteryFacts[randomNumber]; + return catFact; + } + + pickRandomCatImage () { + const randomNumber = Math.floor(Math.random() * (catImages.length - 1)); + const catImage = catImages[randomNumber]; + return catImage; + } + + render () { + return ( +
+ {'Secret Lives'} +
+ +
+ +
+
+

{this.pickRandomFact()}

+ +
+
+
+ ); + + } +} + +module.exports = Cats; diff --git a/src/components/cats/cats.scss b/src/components/cats/cats.scss new file mode 100644 index 000000000..83b546e3f --- /dev/null +++ b/src/components/cats/cats.scss @@ -0,0 +1,34 @@ +@import "../../colors"; +@import "../../frameless"; + +.mod-cats { + min-height: 15rem; + max-height: calc(100% - 5rem); + + overflow: hidden; +} + +.cats-modal-header { + box-shadow: inset 0 -1px 0 0 $ui-blue-dark; + background-color: $ui-blue; +} + +.cats-modal-content { + margin: 0 auto; + box-shadow: none; + width: 100%; + + display: flex; + flex-direction: column; + align-items: center; + + padding: 20px 50px; +} + +.cats-modal-content img { + width: 400px; + + @media #{$small}, #{$small-height} { + width: 100%; + } +} diff --git a/src/components/footer/www/footer.jsx b/src/components/footer/www/footer.jsx index 5603f76b2..b83645d65 100644 --- a/src/components/footer/www/footer.jsx +++ b/src/components/footer/www/footer.jsx @@ -8,6 +8,7 @@ const React = require('react'); const FooterBox = require('../container/footer.jsx'); const LanguageChooser = require('../../languagechooser/languagechooser.jsx'); +const Cats = require('../../cats/cats.jsx'); const frameless = require('../../../lib/frameless'); const getScratchWikiLink = require('../../../lib/scratch-wiki'); @@ -34,6 +35,9 @@ const Footer = props => ( +
+ +
@@ -100,7 +104,9 @@ const Footer = props => (
- +
+ +
diff --git a/src/components/grid/grid.jsx b/src/components/grid/grid.jsx index 14cfc720a..bf51659d2 100644 --- a/src/components/grid/grid.jsx +++ b/src/components/grid/grid.jsx @@ -9,7 +9,9 @@ const thumbnailUrl = require('../../lib/user-thumbnail'); require('./grid.scss'); const Grid = props => ( -
+
{props.items.map((item, key) => { const href = `/${props.itemType}/${item.id}/`; @@ -19,6 +21,7 @@ const Grid = props => ( avatar={thumbnailUrl(item.author.id)} creator={item.author.username} favorites={item.stats.favorites} + isUpsideDown={props.isUpsideDown} href={href} key={key} loves={item.stats.loves} @@ -38,6 +41,7 @@ const Grid = props => ( return ( ( Grid.propTypes = { className: PropTypes.string, + isUpsideDown: PropTypes.bool, itemType: PropTypes.string, items: PropTypes.arrayOf(PropTypes.object), showAvatar: PropTypes.bool, diff --git a/src/components/grid/grid.scss b/src/components/grid/grid.scss index 3cd926af2..c9678f899 100644 --- a/src/components/grid/grid.scss +++ b/src/components/grid/grid.scss @@ -11,6 +11,16 @@ $project-height: 208px; $gallery-height: 164px; + &.cat { + background-image: url("/svgs/space-cat.svg"); + background-size: contain; + background-repeat: no-repeat; + + .thumbnail { + opacity: .85; + } + } + .flex-row { margin: 0 auto; padding: 12px 0; diff --git a/src/components/thumbnail/thumbnail.jsx b/src/components/thumbnail/thumbnail.jsx index 461cd67b1..67c0eb0f0 100644 --- a/src/components/thumbnail/thumbnail.jsx +++ b/src/components/thumbnail/thumbnail.jsx @@ -110,12 +110,16 @@ const Thumbnail = props => { ); } + + const surpriseClass = props.isUpsideDown ? 'upsideDown' : ''; + return (
{imgElement} @@ -136,6 +140,7 @@ Thumbnail.propTypes = { className: PropTypes.string, creator: PropTypes.string, favorites: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), + isUpsideDown: PropTypes.bool, href: PropTypes.string, linkTitle: PropTypes.bool, loves: PropTypes.oneOfType([PropTypes.number, PropTypes.string]), diff --git a/src/components/thumbnail/thumbnail.scss b/src/components/thumbnail/thumbnail.scss index e1f1bf795..7afdede42 100644 --- a/src/components/thumbnail/thumbnail.scss +++ b/src/components/thumbnail/thumbnail.scss @@ -112,4 +112,8 @@ height: $gallery-height; } } + + &.upsideDown { + transform: rotate(180deg); + } } diff --git a/src/template.ejs b/src/template.ejs index afa720981..1d20243ed 100644 --- a/src/template.ejs +++ b/src/template.ejs @@ -82,5 +82,5 @@ } <% } %> - +
;
diff --git a/src/views/search/search.jsx b/src/views/search/search.jsx index a65f696ee..6845d779a 100644 --- a/src/views/search/search.jsx +++ b/src/views/search/search.jsx @@ -29,7 +29,8 @@ class Search extends React.Component { 'getSearchState', 'handleChangeSortMode', 'handleGetSearchMore', - 'getTab' + 'getTab', + 'tick' ]); this.state = this.getSearchState(); this.state.loaded = []; @@ -38,6 +39,12 @@ class Search extends React.Component { this.state.offset = 0; this.state.loadMore = false; + this.state.isUpsideDown = false; + this.state.isRainbow = false; + this.state.isSecret = false; + + this.state.elapsed = 0; + let mode = ''; const query = window.location.search; const m = query.lastIndexOf('mode='); @@ -54,7 +61,6 @@ class Search extends React.Component { if (ACCEPTABLE_MODES.indexOf(mode) !== -1) { this.state.mode = mode; } - } componentDidMount () { // just in case there's a URL in the wild with pluses to indicate spaces, @@ -86,13 +92,22 @@ class Search extends React.Component { // Error means that term was not URI encoded and decoding failed. // We can silence this error because not all query strings are intended to be decoded. } + this.props.dispatch(navigationActions.setSearchTerm(term)); } componentDidUpdate (prevProps) { if (this.props.searchTerm !== prevProps.searchTerm) { + this.setEasterEggs(this.props.searchTerm); this.handleGetSearchMore(); } } + + tick () { + this.setState(prevState => ( + {elapsed: (prevState.elapsed + 10) % 360} + )); + } + encodeSearchTerm () { let termText = ''; if (this.props.searchTerm) { @@ -122,6 +137,23 @@ class Search extends React.Component { window.location = newLocation; } } + + setEasterEggs (term) { + if (term === 'upside down' || term === 'upsidedown' || term === 'upside-down') { + this.setState({isUpsideDown: true}); + } + + if (term.includes('rainbow')) { + this.setState({isRainbow: true}); + setInterval(this.tick, 200); + } + + if (term.includes('secret life')) { + this.setState({isSecret: true}); + setInterval(this.tick, 200); + } + } + handleGetSearchMore () { const termText = this.encodeSearchTerm(); const locale = this.props.intl.locale; @@ -180,11 +212,14 @@ class Search extends React.Component { } return allTab; } + getProjectBox () { const results = ( ); let searchAction = null; + if (this.state.loaded.length === 0 && this.state.offset !== 0) { searchAction =

; } else if (this.state.loadMore) { @@ -208,16 +244,30 @@ class Search extends React.Component {
{results} {searchAction}
); } + + fancyStyle () { + if (this.state.isRainbow) { + return { + filter: `hue-rotate(${this.state.elapsed}deg) saturate(400%)` + }; + } + + return {}; + } + render () { return (
-
+

diff --git a/static/images/cats/1.jpg b/static/images/cats/1.jpg new file mode 100644 index 000000000..88df1b50d Binary files /dev/null and b/static/images/cats/1.jpg differ diff --git a/static/images/cats/2.jpg b/static/images/cats/2.jpg new file mode 100644 index 000000000..f4fd33633 Binary files /dev/null and b/static/images/cats/2.jpg differ diff --git a/static/images/cats/3.jpg b/static/images/cats/3.jpg new file mode 100644 index 000000000..a97ae3c4d Binary files /dev/null and b/static/images/cats/3.jpg differ diff --git a/static/images/cats/4.jpg b/static/images/cats/4.jpg new file mode 100644 index 000000000..53492ff29 Binary files /dev/null and b/static/images/cats/4.jpg differ diff --git a/static/images/cats/Cat1.jpg b/static/images/cats/Cat1.jpg new file mode 100644 index 000000000..580ccfe6a Binary files /dev/null and b/static/images/cats/Cat1.jpg differ diff --git a/static/images/cats/Cat10.png b/static/images/cats/Cat10.png new file mode 100644 index 000000000..380d8ffb6 Binary files /dev/null and b/static/images/cats/Cat10.png differ diff --git a/static/images/cats/Cat11.png b/static/images/cats/Cat11.png new file mode 100644 index 000000000..e344ddaad Binary files /dev/null and b/static/images/cats/Cat11.png differ diff --git a/static/images/cats/Cat12.png b/static/images/cats/Cat12.png new file mode 100644 index 000000000..bb300279f Binary files /dev/null and b/static/images/cats/Cat12.png differ diff --git a/static/images/cats/Cat13.png b/static/images/cats/Cat13.png new file mode 100644 index 000000000..b8b4f7db8 Binary files /dev/null and b/static/images/cats/Cat13.png differ diff --git a/static/images/cats/Cat14.png b/static/images/cats/Cat14.png new file mode 100644 index 000000000..bb1041376 Binary files /dev/null and b/static/images/cats/Cat14.png differ diff --git a/static/images/cats/Cat2.jpg b/static/images/cats/Cat2.jpg new file mode 100644 index 000000000..002ad0ad1 Binary files /dev/null and b/static/images/cats/Cat2.jpg differ diff --git a/static/images/cats/Cat3.jpg b/static/images/cats/Cat3.jpg new file mode 100644 index 000000000..3d7cc6400 Binary files /dev/null and b/static/images/cats/Cat3.jpg differ diff --git a/static/images/cats/Cat4.jpg b/static/images/cats/Cat4.jpg new file mode 100644 index 000000000..b739f23ad Binary files /dev/null and b/static/images/cats/Cat4.jpg differ diff --git a/static/images/cats/Cat5.jpg b/static/images/cats/Cat5.jpg new file mode 100644 index 000000000..5b9105b1a Binary files /dev/null and b/static/images/cats/Cat5.jpg differ diff --git a/static/images/cats/Cat6.png b/static/images/cats/Cat6.png new file mode 100644 index 000000000..45725c933 Binary files /dev/null and b/static/images/cats/Cat6.png differ diff --git a/static/images/cats/Cat7.jpg b/static/images/cats/Cat7.jpg new file mode 100644 index 000000000..e6658e5aa Binary files /dev/null and b/static/images/cats/Cat7.jpg differ diff --git a/static/images/cats/Cat8.jpg b/static/images/cats/Cat8.jpg new file mode 100644 index 000000000..5b721cf2c Binary files /dev/null and b/static/images/cats/Cat8.jpg differ diff --git a/static/images/cats/Cat9.jpg b/static/images/cats/Cat9.jpg new file mode 100644 index 000000000..bd1bef3c9 Binary files /dev/null and b/static/images/cats/Cat9.jpg differ diff --git a/static/images/cats/IMG_0071.jpg b/static/images/cats/IMG_0071.jpg new file mode 100644 index 000000000..03f608775 Binary files /dev/null and b/static/images/cats/IMG_0071.jpg differ diff --git a/static/images/cats/IMG_0122.jpg b/static/images/cats/IMG_0122.jpg new file mode 100644 index 000000000..36691f24b Binary files /dev/null and b/static/images/cats/IMG_0122.jpg differ diff --git a/static/images/cats/IMG_0135.jpg b/static/images/cats/IMG_0135.jpg new file mode 100644 index 000000000..0bc2e3271 Binary files /dev/null and b/static/images/cats/IMG_0135.jpg differ diff --git a/static/images/cats/IMG_0288.jpg b/static/images/cats/IMG_0288.jpg new file mode 100644 index 000000000..d6485b376 Binary files /dev/null and b/static/images/cats/IMG_0288.jpg differ diff --git a/static/images/cats/IMG_0504.jpg b/static/images/cats/IMG_0504.jpg new file mode 100644 index 000000000..46b690ced Binary files /dev/null and b/static/images/cats/IMG_0504.jpg differ diff --git a/static/images/cats/IMG_0681.jpg b/static/images/cats/IMG_0681.jpg new file mode 100644 index 000000000..1f8a41eaf Binary files /dev/null and b/static/images/cats/IMG_0681.jpg differ diff --git a/static/images/cats/IMG_0684.jpg b/static/images/cats/IMG_0684.jpg new file mode 100644 index 000000000..159c126eb Binary files /dev/null and b/static/images/cats/IMG_0684.jpg differ diff --git a/static/images/cats/IMG_0698.jpg b/static/images/cats/IMG_0698.jpg new file mode 100644 index 000000000..53b92d4dd Binary files /dev/null and b/static/images/cats/IMG_0698.jpg differ diff --git a/static/images/cats/IMG_1092.jpg b/static/images/cats/IMG_1092.jpg new file mode 100644 index 000000000..b26377019 Binary files /dev/null and b/static/images/cats/IMG_1092.jpg differ diff --git a/static/images/cats/IMG_1157.jpg b/static/images/cats/IMG_1157.jpg new file mode 100644 index 000000000..c7f3a1d15 Binary files /dev/null and b/static/images/cats/IMG_1157.jpg differ diff --git a/static/images/cats/IMG_1463.jpg b/static/images/cats/IMG_1463.jpg new file mode 100644 index 000000000..17649f55a Binary files /dev/null and b/static/images/cats/IMG_1463.jpg differ diff --git a/static/images/cats/IMG_1696.jpg b/static/images/cats/IMG_1696.jpg new file mode 100644 index 000000000..b84e8e237 Binary files /dev/null and b/static/images/cats/IMG_1696.jpg differ diff --git a/static/images/cats/IMG_1977.jpg b/static/images/cats/IMG_1977.jpg new file mode 100644 index 000000000..f0d1e6fcc Binary files /dev/null and b/static/images/cats/IMG_1977.jpg differ diff --git a/static/images/cats/IMG_2167.jpg b/static/images/cats/IMG_2167.jpg new file mode 100644 index 000000000..8e3f0c994 Binary files /dev/null and b/static/images/cats/IMG_2167.jpg differ diff --git a/static/images/cats/IMG_2507.jpg b/static/images/cats/IMG_2507.jpg new file mode 100644 index 000000000..6209adf94 Binary files /dev/null and b/static/images/cats/IMG_2507.jpg differ diff --git a/static/images/cats/IMG_2681.jpg b/static/images/cats/IMG_2681.jpg new file mode 100644 index 000000000..632b7b31e Binary files /dev/null and b/static/images/cats/IMG_2681.jpg differ diff --git a/static/images/cats/IMG_2775.jpg b/static/images/cats/IMG_2775.jpg new file mode 100644 index 000000000..6b4091c2d Binary files /dev/null and b/static/images/cats/IMG_2775.jpg differ diff --git a/static/images/cats/IMG_2776.jpg b/static/images/cats/IMG_2776.jpg new file mode 100644 index 000000000..5f564302b Binary files /dev/null and b/static/images/cats/IMG_2776.jpg differ diff --git a/static/images/cats/IMG_3218.jpg b/static/images/cats/IMG_3218.jpg new file mode 100644 index 000000000..b3b98a87a Binary files /dev/null and b/static/images/cats/IMG_3218.jpg differ diff --git a/static/images/cats/IMG_4316.jpg b/static/images/cats/IMG_4316.jpg new file mode 100644 index 000000000..293ab4429 Binary files /dev/null and b/static/images/cats/IMG_4316.jpg differ diff --git a/static/images/cats/IMG_5396.jpg b/static/images/cats/IMG_5396.jpg new file mode 100644 index 000000000..f351faea8 Binary files /dev/null and b/static/images/cats/IMG_5396.jpg differ diff --git a/static/images/cats/IMG_5880.jpg b/static/images/cats/IMG_5880.jpg new file mode 100644 index 000000000..971488cce Binary files /dev/null and b/static/images/cats/IMG_5880.jpg differ diff --git a/static/images/cats/IMG_6020.jpg b/static/images/cats/IMG_6020.jpg new file mode 100644 index 000000000..5557eff2f Binary files /dev/null and b/static/images/cats/IMG_6020.jpg differ diff --git a/static/images/cats/IMG_6521.jpg b/static/images/cats/IMG_6521.jpg new file mode 100644 index 000000000..e8b744d0c Binary files /dev/null and b/static/images/cats/IMG_6521.jpg differ diff --git a/static/images/cats/IMG_6558.jpg b/static/images/cats/IMG_6558.jpg new file mode 100644 index 000000000..b1250b48b Binary files /dev/null and b/static/images/cats/IMG_6558.jpg differ diff --git a/static/images/cats/IMG_9587.jpg b/static/images/cats/IMG_9587.jpg new file mode 100644 index 000000000..3a2dd5761 Binary files /dev/null and b/static/images/cats/IMG_9587.jpg differ diff --git a/static/images/cats/IMG_9766.jpg b/static/images/cats/IMG_9766.jpg new file mode 100644 index 000000000..0e9041b37 Binary files /dev/null and b/static/images/cats/IMG_9766.jpg differ diff --git a/static/images/cats/IMG_9775.jpg b/static/images/cats/IMG_9775.jpg new file mode 100644 index 000000000..72d361b20 Binary files /dev/null and b/static/images/cats/IMG_9775.jpg differ diff --git a/static/images/cats/cat-meme.jpg b/static/images/cats/cat-meme.jpg new file mode 100644 index 000000000..0d54ada32 Binary files /dev/null and b/static/images/cats/cat-meme.jpg differ diff --git a/static/images/cats/cat-meme2.jpg b/static/images/cats/cat-meme2.jpg new file mode 100644 index 000000000..e519e25ae Binary files /dev/null and b/static/images/cats/cat-meme2.jpg differ diff --git a/static/svgs/space-cat.svg b/static/svgs/space-cat.svg new file mode 100644 index 000000000..b504fab3f --- /dev/null +++ b/static/svgs/space-cat.svg @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file