diff --git a/package-lock.json b/package-lock.json index 579133256..22ee4ee2b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4203,6 +4203,73 @@ "resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-0.8.0.tgz", "integrity": "sha512-VzuAGGkfxE5lt/fWqQAQWlbYf8Rl2AzVRN0aYnCLSfXaavz0DHPOOG8xq7KfJdWIQMI42+bWOoospybg54ADmA==" }, + "@fullhuman/postcss-purgecss": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-2.3.0.tgz", + "integrity": "sha512-qnKm5dIOyPGJ70kPZ5jiz0I9foVOic0j+cOzNDoo8KoCf6HjicIZ99UfO2OmE7vCYSKAAepEwJtNzpiiZAh9xw==", + "requires": { + "postcss": "7.0.32", + "purgecss": "^2.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -6135,6 +6202,11 @@ "cypress": "*" } }, + "@types/deep-diff": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/deep-diff/-/deep-diff-1.0.0.tgz", + "integrity": "sha512-ENsJcujGbCU/oXhDfQ12mSo/mCBWodT2tpARZKmatoSrf8+cGRCPi0KVj3I0FORhYZfLXkewXu7AoIWqiBLkNw==" + }, "@types/dom4": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/dom4/-/dom4-2.0.1.tgz", @@ -6282,8 +6354,15 @@ "@types/lodash": { "version": "4.14.91", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.91.tgz", - "integrity": "sha512-k+nc3moSlAaXacyvz4/c6D9lnUeI6AKsLvkXFuNzUEEqMw7sjDnLW2GqlJ4nyFgMX/p+QzvVG6zRoDo4lJIV5g==", - "dev": true + "integrity": "sha512-k+nc3moSlAaXacyvz4/c6D9lnUeI6AKsLvkXFuNzUEEqMw7sjDnLW2GqlJ4nyFgMX/p+QzvVG6zRoDo4lJIV5g==" + }, + "@types/lodash.debounce": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz", + "integrity": "sha512-4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==", + "requires": { + "@types/lodash": "*" + } }, "@types/mime": { "version": "2.0.0", @@ -6305,6 +6384,11 @@ "@types/node": "*" } }, + "@types/mustache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@types/mustache/-/mustache-4.0.1.tgz", + "integrity": "sha512-wH6Tu9mbiOt0n5EvdoWy0VGQaJMHfLIxY/6wS0xLC7CV1taM6gESEzcYy0ZlWvxxiiljYvfDIvz4hHbUUDRlhw==" + }, "@types/node": { "version": "8.5.2", "resolved": "https://registry.npmjs.org/@types/node/-/node-8.5.2.tgz", @@ -7220,11 +7304,32 @@ } } }, + "acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "requires": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + } + } + }, "acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", - "dev": true + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" }, "acorn5-object-spread": { "version": "4.0.0", @@ -9627,6 +9732,11 @@ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", "dev": true }, + "camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==" + }, "camelcase-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", @@ -10249,6 +10359,11 @@ "simple-swizzle": "^0.2.2" } }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", + "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==" + }, "colormin": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", @@ -11137,6 +11252,11 @@ "regexpu-core": "^1.0.0" } }, + "css-unit-converter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.2.tgz", + "integrity": "sha512-IiJwMC8rdZE0+xiEZHeru6YoONC4rfPMqGm2W85jMIbkFvv5nFTwJVFHam2eFrN6txmoUYFAFXiv8ICVeTO0MA==" + }, "css-what": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", @@ -11631,10 +11751,9 @@ "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "deep-diff": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz", - "integrity": "sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ=", - "dev": true + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-1.0.2.tgz", + "integrity": "sha512-aWS3UIVH+NPGCD1kki+DCU9Dua032iSsO43LqQpcs4R3+dVv7tX0qBGjiVHJHjplsoUM2XRO/KB92glqc68awg==" }, "deep-eql": { "version": "3.0.1", @@ -11710,8 +11829,7 @@ "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" }, "del": { "version": "3.0.0", @@ -11834,6 +11952,23 @@ } } }, + "detective": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", + "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "requires": { + "acorn-node": "^1.6.1", + "defined": "^1.0.0", + "minimist": "^1.1.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + } + } + }, "diff": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.4.0.tgz", @@ -14965,6 +15100,11 @@ } } }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -18570,6 +18710,11 @@ } } }, + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==" + }, "html-webpack-plugin": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", @@ -19020,8 +19165,7 @@ "indexes-of": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" }, "indexof": { "version": "0.0.1", @@ -24157,6 +24301,11 @@ "lodash._reinterpolate": "^3.0.0" } }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=" + }, "lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -24834,6 +24983,11 @@ "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", "dev": true }, + "mustache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.0.1.tgz", + "integrity": "sha512-yL5VE97+OXn4+Er3THSmTdCFCtx5hHWzrolvH+JObZnUYwuaG7XV+Ch4fR2cIrcYI0tFHxS7iyFYl14bW8y2sA==" + }, "mute-stream": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", @@ -25031,6 +25185,14 @@ "minimatch": "^3.0.2" } }, + "node-emoji": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", + "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "requires": { + "lodash.toarray": "^4.4.0" + } + }, "node-fetch": { "version": "1.7.3", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", @@ -25168,8 +25330,7 @@ "normalize-range": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=" }, "normalize-url": { "version": "1.9.1", @@ -25207,8 +25368,7 @@ "num2fraction": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=" }, "number-is-nan": { "version": "1.0.1", @@ -25291,6 +25451,11 @@ } } }, + "object-hash": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.0.3.tgz", + "integrity": "sha512-JPKn0GMu+Fa3zt3Bmr66JhokJU5BaNBIh4ZeTlaCBzrBsOeXzwcKKAK1tbLiPKgvwmPXsDvvLHoWh5Bm7ofIYg==" + }, "object-inspect": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", @@ -26244,6 +26409,132 @@ "uniqid": "^4.0.0" } }, + "postcss-functions": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-functions/-/postcss-functions-3.0.0.tgz", + "integrity": "sha1-DpTQFERwCkgd4g3k1V+yZAVkJQ4=", + "requires": { + "glob": "^7.1.2", + "object-assign": "^4.1.1", + "postcss": "^6.0.9", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-2.0.3.tgz", + "integrity": "sha512-zS59pAk3deu6dVHyrGqmC3oDXBdNdajk4k1RyxeVXCrcEDBUBHoIhE4QTsmhxgzXxsaqFDAkUZfmMa5f/N/79w==", + "requires": { + "camelcase-css": "^2.0.1", + "postcss": "^7.0.18" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "postcss-merge-idents": { "version": "2.1.7", "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", @@ -26583,6 +26874,89 @@ } } }, + "postcss-nested": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-4.2.3.tgz", + "integrity": "sha512-rOv0W1HquRCamWy2kFl3QazJMMe1ku6rCFoAAH+9AcxdbpDeBr6k968MLWuLjvjMcGEip01ak09hKOEgpK9hvw==", + "requires": { + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "postcss-normalize-charset": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", @@ -26681,8 +27055,7 @@ "postcss-value-parser": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", - "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", - "dev": true + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=" }, "postcss-zindex": { "version": "2.2.0", @@ -26845,6 +27218,11 @@ } } }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=" + }, "pretty-time": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/pretty-time/-/pretty-time-1.1.0.tgz", @@ -27033,6 +27411,96 @@ "fbjs": "^0.8.0" } }, + "purgecss": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-2.3.0.tgz", + "integrity": "sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ==", + "requires": { + "commander": "^5.0.0", + "glob": "^7.0.0", + "postcss": "7.0.32", + "postcss-selector-parser": "^6.0.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "q": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", @@ -28549,6 +29017,14 @@ "dev": true, "requires": { "deep-diff": "^0.3.5" + }, + "dependencies": { + "deep-diff": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/deep-diff/-/deep-diff-0.3.8.tgz", + "integrity": "sha1-wB3mPvsO7JeYgB1Ax+Da4ltYLIQ=", + "dev": true + } } }, "redux-mock-store": { @@ -31869,6 +32345,283 @@ } } }, + "tailwindcss": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-1.9.1.tgz", + "integrity": "sha512-3faxlyPlcWN8AoNEIVQFNsDcrdXS/D9nOGtdknrXvZp4D4E3AGPO2KRPiGG69B2ZUO0V6RvYiW91L2/n9QnBxg==", + "requires": { + "@fullhuman/postcss-purgecss": "^2.1.2", + "autoprefixer": "^9.4.5", + "browserslist": "^4.12.0", + "bytes": "^3.0.0", + "chalk": "^3.0.0 || ^4.0.0", + "color": "^3.1.2", + "detective": "^5.2.0", + "fs-extra": "^8.0.0", + "html-tags": "^3.1.0", + "lodash": "^4.17.20", + "node-emoji": "^1.8.1", + "normalize.css": "^8.0.1", + "object-hash": "^2.0.3", + "postcss": "^7.0.11", + "postcss-functions": "^3.0.0", + "postcss-js": "^2.0.0", + "postcss-nested": "^4.1.1", + "postcss-selector-parser": "^6.0.0", + "postcss-value-parser": "^4.1.0", + "pretty-hrtime": "^1.0.3", + "reduce-css-calc": "^2.1.6", + "resolve": "^1.14.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "autoprefixer": { + "version": "9.8.6", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz", + "integrity": "sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==", + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001109", + "colorette": "^1.2.1", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "browserslist": { + "version": "4.14.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", + "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", + "requires": { + "caniuse-lite": "^1.0.30001135", + "electron-to-chromium": "^1.3.571", + "escalade": "^3.1.0", + "node-releases": "^1.1.61" + } + }, + "caniuse-lite": { + "version": "1.0.30001148", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz", + "integrity": "sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw==" + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "color": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", + "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.4" + }, + "dependencies": { + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + } + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "color-string": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", + "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "electron-to-chromium": { + "version": "1.3.578", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.578.tgz", + "integrity": "sha512-z4gU6dA1CbBJsAErW5swTGAaU2TBzc2mPAonJb00zqW1rOraDo2zfBMDRvaz9cVic+0JEZiYbHWPw/fTaZlG2Q==" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "node-releases": { + "version": "1.1.61", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz", + "integrity": "sha512-DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==" + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + } + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "reduce-css-calc": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-2.1.7.tgz", + "integrity": "sha512-fDnlZ+AybAS3C7Q9xDq5y8A2z+lT63zLbynew/lur/IR24OQF5x98tfNwf79mzEdfywZ0a2wpM860FhFfMxZlA==", + "requires": { + "css-unit-converter": "^1.1.1", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + } + } + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "requires": { + "path-parse": "^1.0.6" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, "tapable": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", @@ -33726,8 +34479,7 @@ "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" }, "uniqid": { "version": "4.1.1", diff --git a/package.json b/package.json index 0db4cb5c3..650349b9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nuzlocke-generator", - "version": "1.3.1", + "version": "1.4.0", "description": "A tool for generating nuzlocke team pics from data", "main": "dist/bundle.js", "scripts": { @@ -36,13 +36,17 @@ "@types/chalk": "^2.2.0", "@types/color": "^3.0.0", "@types/cypress": "^1.1.3", + "@types/deep-diff": "^1.0.0", "@types/draft-js": "^0.10.40", + "@types/lodash.debounce": "^4.0.6", + "@types/mustache": "^4.0.1", "@types/ramda": "^0.25.37", "@types/redux": "^3.6.0", "@types/uuid": "^3.4.4", "babel-plugin-module-resolver": "^3.1.1", "color": "^3.0.0", "cypress": "^5.3.0", + "deep-diff": "^1.0.2", "deep-equal": "^1.0.1", "docz": "^0.8.0", "dotenv": "^8.2.0", @@ -51,6 +55,7 @@ "html-webpack-plugin": "^3.2.0", "is-mobile": "^2.2.1", "jest-emotion": "^9.2.7", + "mustache": "^4.0.1", "normalize.css": "^8.0.1", "ramda": "^0.25.0", "react-color": "^2.17.3", @@ -59,6 +64,7 @@ "react-infinite-scroller": "^1.2.4", "react-loadable-ts-transformer": "0.0.5", "redux-mock-store": "^1.5.3", + "tailwindcss": "^1.9.1", "tslib": "^2.0.0", "tslint": "^6.1.2" }, diff --git a/src/actions/index.ts b/src/actions/index.ts index 112233575..d771fb40c 100644 --- a/src/actions/index.ts +++ b/src/actions/index.ts @@ -30,3 +30,6 @@ export * from './deleteBox'; export * from './toggleTemtemMode'; export * from './toggleMobileResultView'; export * from './stats'; +export * from './updateEditorHistory'; +export * from './triggerDownload'; +export * from './toggleDialog'; diff --git a/src/actions/nuzlockes.ts b/src/actions/nuzlockes.ts index 5a3682b74..432604755 100644 --- a/src/actions/nuzlockes.ts +++ b/src/actions/nuzlockes.ts @@ -3,8 +3,8 @@ import { Action } from 'actions'; export type NEW_NUZLOCKE = 'NEW_NUZLOCKE'; export const NEW_NUZLOCKE: NEW_NUZLOCKE = 'NEW_NUZLOCKE'; -export type newNuzlocke = (data, {isCopy}) => Action; -export function newNuzlocke(data, {isCopy}): Action { +export type newNuzlocke = (data, { isCopy }) => Action; +export function newNuzlocke(data, { isCopy }): Action { return { type: NEW_NUZLOCKE, data, @@ -26,12 +26,8 @@ export function deleteNuzlocke(id: string): Action { export type SWITCH_NUZLOCKE = 'SWITCH_NUZLOCKE'; export const SWITCH_NUZLOCKE: SWITCH_NUZLOCKE = 'SWITCH_NUZLOCKE'; -export type switchNuzlocke = ( - id: string, -) => Action; -export function switchNuzlocke( - id: string, -): Action { +export type switchNuzlocke = (id: string) => Action; +export function switchNuzlocke(id: string): Action { return { type: SWITCH_NUZLOCKE, id, @@ -53,8 +49,16 @@ export function updateNuzlocke(id: string, data): Action { export type UPDATE_SWITCH_NUZLOCKE = 'UPDATE_SWITCH_NUZLOCKE'; export const UPDATE_SWITCH_NUZLOCKE: UPDATE_SWITCH_NUZLOCKE = 'UPDATE_SWITCH_NUZLOCKE'; -export type updateSwitchNuzlocke = (id: string, newId: string, data) => Action; -export function updateSwitchNuzlocke(id: string, newId: string, data): Action { +export type updateSwitchNuzlocke = ( + id: string, + newId: string, + data, +) => Action; +export function updateSwitchNuzlocke( + id: string, + newId: string, + data, +): Action { return { type: UPDATE_SWITCH_NUZLOCKE, id, diff --git a/src/actions/toggleDialog.ts b/src/actions/toggleDialog.ts new file mode 100644 index 000000000..c8109f733 --- /dev/null +++ b/src/actions/toggleDialog.ts @@ -0,0 +1,13 @@ +import { Action } from 'actions'; +import { DialogViewType } from 'models'; + +export type TOGGLE_DIALOG = 'TOGGLE_DIALOG'; +export const TOGGLE_DIALOG: TOGGLE_DIALOG = 'TOGGLE_DIALOG'; + +export type toggleDialog = (dialogTarget: DialogViewType) => Action; +export const toggleDialog = (dialogTarget: DialogViewType): Action => { + return { + type: TOGGLE_DIALOG, + dialog: dialogTarget, + }; +}; diff --git a/src/actions/triggerDownload.ts b/src/actions/triggerDownload.ts new file mode 100644 index 000000000..ee4da652b --- /dev/null +++ b/src/actions/triggerDownload.ts @@ -0,0 +1,11 @@ +import { Action } from './action'; + +export type TRIGGER_DOWNLOAD = 'TRIGGER_DOWNLOAD'; +export const TRIGGER_DOWNLOAD: TRIGGER_DOWNLOAD = 'TRIGGER_DOWNLOAD'; + +export type triggerDownload = () => Action; +export const triggerDownload = (): Action => { + return { + type: TRIGGER_DOWNLOAD, + }; +}; diff --git a/src/actions/updateEditorHistory.ts b/src/actions/updateEditorHistory.ts new file mode 100644 index 000000000..73ad74a91 --- /dev/null +++ b/src/actions/updateEditorHistory.ts @@ -0,0 +1,35 @@ +import { Action } from './action'; +import { History } from 'reducers/editorHistory'; + +export type UPDATE_EDITOR_HISTORY = 'UPDATE_EDITOR_HISTORY'; +export const UPDATE_EDITOR_HISTORY: UPDATE_EDITOR_HISTORY = 'UPDATE_EDITOR_HISTORY'; + +export type updateEditorHistory = (present: any) => Action; +export const updateEditorHistory = (present: any): Action => { + return { + type: UPDATE_EDITOR_HISTORY, + present, + }; +}; + +export type UNDO_EDITOR_HISTORY = 'UNDO_EDITOR_HISTORY'; +export const UNDO_EDITOR_HISTORY: UNDO_EDITOR_HISTORY = 'UNDO_EDITOR_HISTORY'; + +export type undoEditorHistory = (present: any) => Action; +export const undoEditorHistory = (present: any): Action => { + return { + type: UNDO_EDITOR_HISTORY, + present, + }; +}; + +export type REDO_EDITOR_HISTORY = 'REDO_EDITOR_HISTORY'; +export const REDO_EDITOR_HISTORY: REDO_EDITOR_HISTORY = 'REDO_EDITOR_HISTORY'; + +export type redoEditorHistory = (present: any) => Action; +export const redoEditorHistory = (present: any): Action => { + return { + type: REDO_EDITOR_HISTORY, + present, + }; +}; diff --git a/src/assets/checkpoints-for-pokemon.png b/src/assets/checkpoints-for-pokemon.png new file mode 100644 index 000000000..ac7896c26 Binary files /dev/null and b/src/assets/checkpoints-for-pokemon.png differ diff --git a/src/assets/icons/pokemon/regular/articuno-galar.png b/src/assets/icons/pokemon/regular/articuno-galar.png new file mode 100644 index 000000000..0a02b2aea Binary files /dev/null and b/src/assets/icons/pokemon/regular/articuno-galar.png differ diff --git a/src/assets/icons/pokemon/regular/calyrex-ice-rider.png b/src/assets/icons/pokemon/regular/calyrex-ice-rider.png new file mode 100644 index 000000000..b24cc8594 Binary files /dev/null and b/src/assets/icons/pokemon/regular/calyrex-ice-rider.png differ diff --git a/src/assets/icons/pokemon/regular/calyrex-shadow-rider.png b/src/assets/icons/pokemon/regular/calyrex-shadow-rider.png new file mode 100644 index 000000000..bc4e72657 Binary files /dev/null and b/src/assets/icons/pokemon/regular/calyrex-shadow-rider.png differ diff --git a/src/assets/icons/pokemon/regular/calyrex.png b/src/assets/icons/pokemon/regular/calyrex.png new file mode 100644 index 000000000..7c20e1bae Binary files /dev/null and b/src/assets/icons/pokemon/regular/calyrex.png differ diff --git a/src/assets/icons/pokemon/regular/glastrier.png b/src/assets/icons/pokemon/regular/glastrier.png new file mode 100644 index 000000000..eef6a5ced Binary files /dev/null and b/src/assets/icons/pokemon/regular/glastrier.png differ diff --git a/src/assets/icons/pokemon/regular/moltres-galar.png b/src/assets/icons/pokemon/regular/moltres-galar.png new file mode 100644 index 000000000..c23610860 Binary files /dev/null and b/src/assets/icons/pokemon/regular/moltres-galar.png differ diff --git a/src/assets/icons/pokemon/regular/regidrago.png b/src/assets/icons/pokemon/regular/regidrago.png new file mode 100644 index 000000000..d4160454a Binary files /dev/null and b/src/assets/icons/pokemon/regular/regidrago.png differ diff --git a/src/assets/icons/pokemon/regular/regieleki.png b/src/assets/icons/pokemon/regular/regieleki.png new file mode 100644 index 000000000..96d8f84e7 Binary files /dev/null and b/src/assets/icons/pokemon/regular/regieleki.png differ diff --git a/src/assets/icons/pokemon/regular/slowking-galar.png b/src/assets/icons/pokemon/regular/slowking-galar.png new file mode 100644 index 000000000..f367b3de1 Binary files /dev/null and b/src/assets/icons/pokemon/regular/slowking-galar.png differ diff --git a/src/assets/icons/pokemon/regular/spectrier.png b/src/assets/icons/pokemon/regular/spectrier.png new file mode 100644 index 000000000..65913a75b Binary files /dev/null and b/src/assets/icons/pokemon/regular/spectrier.png differ diff --git a/src/assets/icons/pokemon/regular/zapdos-galar.png b/src/assets/icons/pokemon/regular/zapdos-galar.png new file mode 100644 index 000000000..8fc095a3e Binary files /dev/null and b/src/assets/icons/pokemon/regular/zapdos-galar.png differ diff --git a/src/components/AddPokemonButton/AddPokemonButton.tsx b/src/components/AddPokemonButton/AddPokemonButton.tsx index 441e55372..f870b1263 100644 --- a/src/components/AddPokemonButton/AddPokemonButton.tsx +++ b/src/components/AddPokemonButton/AddPokemonButton.tsx @@ -6,7 +6,7 @@ import { Button, Intent } from '@blueprintjs/core'; export const AddPokemonButtonBase = ({ onClick }: { onClick: onClick }) => ( -
-
-
- -
-
+ const allowedGames: string[] = ['RBY']; -
+
- + Import From Save File +
- - this.setState({ mergeDataMode: !this.state.mergeDataMode }) - } - /> +
+
+ +
+
+ +
+ + this.setState({ mergeDataMode: !this.state.mergeDataMode }) + } + /> +
+ +
+ (this.fileInput = ref)} + onChange={this.uploadFile(this.props.replaceState, this.props.state)} + type="file" + id="file" + name="file" + accept=".sav" + /> +
-
- ; + + ); } public render() { @@ -369,10 +446,17 @@ export class DataEditorBase extends React.Component
- + @@ -431,12 +515,11 @@ export class DataEditorBase extends React.Component - + diff --git a/src/components/DataEditor/parseFile.js b/src/components/DataEditor/parseFile.js new file mode 100644 index 000000000..766be94b2 --- /dev/null +++ b/src/components/DataEditor/parseFile.js @@ -0,0 +1,49 @@ +onmessage = function(e) { + console.log('Message received.'); + + const computation = e.data.file; + + postMessage(computation); +}; + + + + + + + +// const reader = new FileReader(); +// const componentState = this.state; + +// reader.readAsArrayBuffer(file); + +// reader.addEventListener('load', async function () { +// const u = new Uint8Array(this.result as ArrayBuffer); + +// const parsers = await import('parsers'); + +// const functionToUse = +// componentState.selectedGame === 'RBY' +// ? parsers.parseGen1Save(u, 'nuzlocke') +// : parsers.parseGen2Save(u, 'nuzlocke'); + +// functionToUse +// // @ts-ignore +// .then((res) => { +// res.pokemon = res.pokemon.filter((poke) => poke.species); +// const mergedPokemon = componentState.mergeDataMode +// ? DataEditorBase.pokeMerge(state.pokemon, res.pokemon) +// : res.pokemon; +// const data = { +// game: DataEditorBase.determineGame(res.isYellow), +// pokemon: mergedPokemon, +// trainer: res.trainer, +// }; +// const newState = { ...state, ...data }; + +// replaceState(newState); +// }) +// .catch((err) => { +// console.error(err); +// }); +// }); diff --git a/src/components/DeadPokemon/DeadPokemon.tsx b/src/components/DeadPokemon/DeadPokemon.tsx index 7e8deea2a..da61aafe6 100644 --- a/src/components/DeadPokemon/DeadPokemon.tsx +++ b/src/components/DeadPokemon/DeadPokemon.tsx @@ -10,10 +10,13 @@ import { Forme, gameOfOriginToColor, TemplateName, + feature, + isLocal, } from 'utils'; import { selectPokemon } from 'actions'; import { PokemonIconBase } from 'components/PokemonIcon'; import { State } from 'state'; +import { game } from 'reducers/game'; const spriteStyle = (style: Styles) => { if (style.spritesMode) { @@ -70,12 +73,14 @@ export const DeadPokemonBase = (poke: DeadPokemonProps) => { poke.gameOfOrigin && poke.style.displayGameOriginForBoxedAndDead && poke.style.displayBackgroundInsteadOfBadge; + const EMMA_MODE = isLocal(); if (isMinimal && isCompactWithIcons) { return (
{ : getContrastColor(getAccentColor(poke)), height: '50px', fontSize: '90%', - outline: '1px solid #222', + //margin: '1px', + outline: EMMA_MODE ? '' : '1px solid #222', }}>
{ {...(poke as any)} /> -
-
- {poke.nickname} {GenderElement(poke.gender)} Levels {poke.metLevel}— - {poke.level} + {poke.gameOfOrigin === 'Platinum' && ( +
+
+ {poke.nickname} {GenderElement(poke.gender)} Levels {poke.metLevel} + — + {poke.level} +
+
{poke.causeOfDeath}
+ {style.displayGameOriginForBoxedAndDead && + !poke.style.displayBackgroundInsteadOfBadge && + poke.gameOfOrigin && ( + + {poke.gameOfOrigin} + + )}
-
{poke.causeOfDeath}
- {style.displayGameOriginForBoxedAndDead && - !poke.style.displayBackgroundInsteadOfBadge && - poke.gameOfOrigin && ( - - {poke.gameOfOrigin} - - )} -
+ )}
); } diff --git a/src/components/DeadPokemon/DeadPokemon2.tsx b/src/components/DeadPokemon/DeadPokemon2.tsx index 733ece296..ebda52766 100644 --- a/src/components/DeadPokemon/DeadPokemon2.tsx +++ b/src/components/DeadPokemon/DeadPokemon2.tsx @@ -3,21 +3,20 @@ import { connect, useDispatch } from 'react-redux'; import { Pokemon, Game } from 'models'; import { GenderElement } from 'components/Shared'; -import { - gameOfOriginToColor, - Styles, -} from 'utils'; +import { gameOfOriginToColor, Styles } from 'utils'; import { selectPokemon } from 'actions'; import { PokemonIconBase } from 'components/PokemonIcon'; import { State } from 'state'; -export function DeadPokemon({pokemon}: {pokemon: Pokemon}) { +export function DeadPokemon({ pokemon }: { pokemon: Pokemon }) { const dispatch = useDispatch(); - return - dispatch(selectPokemon(pokemon.id))} - {...(pokemon as any)} - /> - ; + return ( + + dispatch(selectPokemon(pokemon.id))} + {...(pokemon as any)} + /> + + ); } diff --git a/src/components/DeadPokemon/__tests__/DeadPokemon2.test.tsx b/src/components/DeadPokemon/__tests__/DeadPokemon2.test.tsx index 8c613e45c..181a11fa5 100644 --- a/src/components/DeadPokemon/__tests__/DeadPokemon2.test.tsx +++ b/src/components/DeadPokemon/__tests__/DeadPokemon2.test.tsx @@ -16,9 +16,9 @@ const poke = { describe('', () => { it('renders its content', () => { render( - , + + + , ); expect(screen.getByTestId('dead-pokemon')).toBeDefined(); }); diff --git a/src/components/Editor/Editor.tsx b/src/components/Editor/Editor.tsx index 50d48f72a..3f3a3bfa0 100644 --- a/src/components/Editor/Editor.tsx +++ b/src/components/Editor/Editor.tsx @@ -1,110 +1,114 @@ import * as React from 'react'; -import { connect } from 'react-redux'; -import './editor.css'; -import { css, cx } from 'emotion'; +import { useSelector } from 'react-redux'; +import { cx } from 'emotion'; import { State } from 'state'; -import { Classes, Spinner } from '@blueprintjs/core'; +import { Classes } from '@blueprintjs/core'; import { ErrorBoundary } from 'components/Shared'; +import { editorStyles } from './styles'; +import './editor.css'; +import { editorModeSelector, minimizedSelector } from 'selectors'; + -const PokemonEditor = React.lazy(() => import('components/PokemonEditor').then(res => ({ default: res.PokemonEditor }))); -const NuzlockeSaveControls = React.lazy(() => import('components/GameEditor/NuzlockeSaveControls').then(res => ({ default: res.NuzlockeSaveControls }))); -const GameEditor = React.lazy(() => import('components/GameEditor').then(res => ({ default: res.GameEditor }))); -const TrainerEditor = React.lazy(() => import('components/TrainerEditor').then(res => ({ default: res.TrainerEditor }))); -const HotkeysEditor = React.lazy(() => import('components/HotkeysEditor').then(res => ({ default: res.HotkeysEditor }))); -const BugReporter = React.lazy(() => import('components/BugReporter').then(res => ({ default: res.BugReporter }))); -const StatsEditor = React.lazy(() => import('components/StatsEditor').then(res => ({ default: res.StatsEditor }))); -const StyleEditor = React.lazy(() => import('components/StyleEditor').then(res => ({ default: res.StyleEditor }))); -const DataEditor = React.lazy(() => import('components/DataEditor').then(res => ({ default: res.DataEditor }))); +const PokemonEditor = React.lazy(() => + import('components/PokemonEditor').then((res) => ({ default: res.PokemonEditor })), +); +const NuzlockeSaveControls = React.lazy(() => + import('components/GameEditor/NuzlockeSaveControls').then((res) => ({ + default: res.NuzlockeSaveControls, + })), +); +const GameEditor = React.lazy(() => + import('components/GameEditor').then((res) => ({ default: res.GameEditor })), +); +const TrainerEditor = React.lazy(() => + import('components/TrainerEditor').then((res) => ({ default: res.TrainerEditor })), +); +const HotkeysEditor = React.lazy(() => + import('components/HotkeysEditor').then((res) => ({ default: res.HotkeysEditor })), +); +const BugReporter = React.lazy(() => + import('components/BugReporter').then((res) => ({ default: res.BugReporter })), +); +const StatsEditor = React.lazy(() => + import('components/StatsEditor').then((res) => ({ default: res.StatsEditor })), +); +const StyleEditor = React.lazy(() => + import('components/StyleEditor').then((res) => ({ default: res.StyleEditor })), +); +const DataEditor = React.lazy(() => + import('components/DataEditor').then((res) => ({ default: res.DataEditor })), +); +const EditorControls = React.lazy(() => + import('components/Editor/EditorControls').then((res => ({ default: res.EditorControls }))), +); -const Skeleteon =
; +const Skeleteon =
; /** * The main editor interface. */ -export class EditorBase extends React.Component< -{ editor: State['editor']; style: State['style'] }, -{} -> { - public constructor(props) { - super(props); - } +export function Editor() { + const minimized = useSelector(minimizedSelector); + const editorDarkMode = useSelector(editorModeSelector); - public render() { - const styles = { - base: css` - min-width: 30rem; - max-width: 40rem; - min-height: 100vh; - padding: 0.25rem; - `, - }; - - const minimized = this.props.editor.minimized; - return ( -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- ); - } + return ( +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ ); } - -export const Editor = connect( - (state: State) => ({ - editor: state.editor, - style: state.style, - }), -)(EditorBase); diff --git a/src/components/Editor/EditorControls.tsx b/src/components/Editor/EditorControls.tsx new file mode 100644 index 000000000..7c144a635 --- /dev/null +++ b/src/components/Editor/EditorControls.tsx @@ -0,0 +1,68 @@ +import * as React from 'react'; +import { Button, ButtonGroup } from '@blueprintjs/core'; +import { last, omit } from 'ramda'; +import { useDispatch, useSelector } from 'react-redux'; +import { State } from 'state'; +import { editorStyles } from './styles'; +import { redoEditorHistory, replaceState, undoEditorHistory } from 'actions'; +import { useEvent } from 'utils/hooks'; + +export function EditorControls({editorDarkMode, minimized}) { + const present = useSelector>(state => omit(['editorHistory'], state)); + const editorHistory = useSelector(state => state.editorHistory); + const dispatch = useDispatch(); + + const undo = (event: React.KeyboardEvent) => { + if (event.ctrlKey && event.key === 'z') { + event.preventDefault(); + dispatchPast(); + } + }; + const redo = (event: React.KeyboardEvent) => { + if (event.ctrlKey && event.key === 'y') { + event.preventDefault(); + dispatchFuture(); + } + }; + + useEvent('keydown', undo); + useEvent('keydown', redo); + + const dispatchPast = () => { + dispatch(undoEditorHistory(present)); + dispatch(replaceState(last(editorHistory?.past))); + }; + + const dispatchFuture = () => { + dispatch(redoEditorHistory(present)); + dispatch(replaceState( + editorHistory?.future[0] + )); + }; + + return
+ +
; +} diff --git a/src/components/Editor/editor.css b/src/components/Editor/editor.css index e8dbbb324..f6f166400 100644 --- a/src/components/Editor/editor.css +++ b/src/components/Editor/editor.css @@ -188,7 +188,7 @@ html.bp3-dark { width: 5.5rem; } .current-pokemon-moves { - width: 25rem; + width: 80%; } .current-pokemon-nature { width: 6.5rem; @@ -250,7 +250,6 @@ input[name='metLevel'] { align-items: center; justify-content: center; height: 40px; - width: 40px; } .box .pokemon-icon img, .box .pokemon-icon { diff --git a/src/components/Editor/styles.ts b/src/components/Editor/styles.ts new file mode 100644 index 000000000..058852511 --- /dev/null +++ b/src/components/Editor/styles.ts @@ -0,0 +1,38 @@ +import { css } from 'emotion'; + +export const editorStyles = { + base: css` + min-width: 30rem; + max-width: 40rem; + min-height: 100vh; + padding: 0.25rem; + padding-top: 2.5rem; + position: relative; + `, + historyControls: css` + left: 0; + position: sticky; + top: -.25rem; + z-index: 12; + border-bottom: 1px solid; + min-width: 100%; + max-width: 100%; + `, + buttonGroup: css` + width: 100%; + padding: 0.25rem; + `, + edit: css` + display: flex; + padding: 0.25rem; + border-radius: 0.25rem; + border: 1px solid #eee; + margin: 2px; + align-items: center; + `, + path: css` + color: #666; + margin: 0 0.5rem; + `, + change: css``, +}; diff --git a/src/components/GameEditor/GameEditor.tsx b/src/components/GameEditor/GameEditor.tsx index 1b0473509..b22655427 100644 --- a/src/components/GameEditor/GameEditor.tsx +++ b/src/components/GameEditor/GameEditor.tsx @@ -56,7 +56,7 @@ export class GameEditorBase extends React.Component - +