diff --git a/package-lock.json b/package-lock.json index d41c72d..afe5c7f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1403,9 +1403,9 @@ } }, "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", + "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", "dev": true }, "acorn-hammerhead": { @@ -1514,12 +1514,6 @@ "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", "dev": true }, - "ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true - }, "ansi-html": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", @@ -1724,12 +1718,6 @@ "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", "dev": true }, - "array-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz", - "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", - "dev": true - }, "array-filter": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", @@ -1776,12 +1764,6 @@ "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", "dev": true }, - "array-slice": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz", - "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", - "dev": true - }, "array-union": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", @@ -4517,32 +4499,6 @@ "supports-color": "^5.3.0" } }, - "change-case": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz", - "integrity": "sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "constant-case": "^2.0.0", - "dot-case": "^2.1.0", - "header-case": "^1.0.0", - "is-lower-case": "^1.1.0", - "is-upper-case": "^1.1.0", - "lower-case": "^1.1.1", - "lower-case-first": "^1.0.0", - "no-case": "^2.3.2", - "param-case": "^2.1.0", - "pascal-case": "^2.0.0", - "path-case": "^2.1.0", - "sentence-case": "^2.1.0", - "snake-case": "^2.1.0", - "swap-case": "^1.1.0", - "title-case": "^2.1.0", - "upper-case": "^1.1.1", - "upper-case-first": "^1.1.0" - } - }, "character-entities": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.3.tgz", @@ -4704,21 +4660,6 @@ "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", "dev": true }, - "cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "requires": { - "restore-cursor": "^2.0.0" - } - }, - "cli-spinners": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.1.0.tgz", - "integrity": "sha512-8B00fJOEh1HPrx4fo5eW16XmE1PcL1tGpGrxy63CXGP9nHdPBN63X75hA1zhvQuhVztJWLqV58Roj2qlNM7cAA==", - "dev": true - }, "cli-width": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", @@ -4839,12 +4780,6 @@ } } }, - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - }, "clone-buffer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", @@ -4909,12 +4844,6 @@ "readable-stream": "^2.3.5" } }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, "coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", @@ -5175,16 +5104,6 @@ "dev": true, "optional": true }, - "constant-case": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz", - "integrity": "sha1-QXV2TTidP6nI7NKRhu1gBSQ7akY=", - "dev": true, - "requires": { - "snake-case": "^2.1.0", - "upper-case": "^1.1.1" - } - }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -5856,15 +5775,6 @@ } } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "requires": { - "clone": "^1.0.2" - } - }, "defer-to-connect": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", @@ -6008,16 +5918,6 @@ "randombytes": "^2.0.0" } }, - "dir-glob": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", - "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", - "dev": true, - "requires": { - "arrify": "^1.0.1", - "path-type": "^3.0.0" - } - }, "dns-equal": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", @@ -6136,24 +6036,6 @@ "integrity": "sha512-ZjI4zqTaxveH2/tTlzS1wFp+7ncxNZaIEWYg3lzZRHkKf5zPT/MnEG6WL0BhHMJUabkh8GeU5NL5j+rEUCb7Ug==", "dev": true }, - "dot-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", - "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - }, "dotenv": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", @@ -6254,9 +6136,9 @@ "dev": true }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -8418,54 +8300,6 @@ } } }, - "findup-sync": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", - "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", - "dev": true, - "requires": { - "detect-file": "^1.0.0", - "is-glob": "^3.1.0", - "micromatch": "^3.0.4", - "resolve-dir": "^1.0.1" - }, - "dependencies": { - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "requires": { - "is-extglob": "^2.1.0" - } - } - } - }, - "fined": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", - "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", - "dev": true, - "requires": { - "expand-tilde": "^2.0.2", - "is-plain-object": "^2.0.3", - "object.defaults": "^1.1.0", - "object.pick": "^1.2.0", - "parse-filepath": "^1.0.1" - } - }, - "flagged-respawn": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", - "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", - "dev": true - }, "flat-cache": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", @@ -9506,39 +9340,6 @@ "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "handlebars": { - "version": "4.7.6", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", - "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - }, - "dependencies": { - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", - "dev": true - } - } - }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -9703,16 +9504,6 @@ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", "dev": true }, - "header-case": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", - "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.3" - } - }, "helmet": { "version": "3.21.2", "resolved": "https://registry.npmjs.org/helmet/-/helmet-3.21.2.tgz", @@ -10306,12 +10097,6 @@ "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", "dev": true }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, "image-size": { "version": "0.7.5", "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.7.5.tgz", @@ -10817,64 +10602,6 @@ "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, - "inquirer": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", - "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", - "dev": true, - "requires": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.11", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "internal-ip": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", @@ -10928,16 +10655,6 @@ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true }, - "is-absolute": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", - "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", - "dev": true, - "requires": { - "is-relative": "^1.0.0", - "is-windows": "^1.0.1" - } - }, "is-absolute-url": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", @@ -11235,15 +10952,6 @@ "integrity": "sha512-18toSebUVF7y717dgw/Dzn6djOCqrkiDp3MhB8P6TdKyCVkbD1ZwE7Uz8Hwx6hUPTvKjbyYH9ncXT4ts4qLaSA==", "dev": true }, - "is-lower-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", - "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", - "dev": true, - "requires": { - "lower-case": "^1.1.0" - } - }, "is-natural-number": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", @@ -11387,15 +11095,6 @@ "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", "dev": true }, - "is-relative": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", - "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", - "dev": true, - "requires": { - "is-unc-path": "^1.0.0" - } - }, "is-retry-allowed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", @@ -11431,24 +11130,6 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, - "is-unc-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", - "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", - "dev": true, - "requires": { - "unc-path-regex": "^0.1.2" - } - }, - "is-upper-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", - "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", - "dev": true, - "requires": { - "upper-case": "^1.1.0" - } - }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", @@ -11489,15 +11170,6 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "dev": true, - "requires": { - "buffer-alloc": "^1.2.0" - } - }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -12023,22 +11695,6 @@ "type-check": "~0.3.2" } }, - "liftoff": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", - "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", - "dev": true, - "requires": { - "extend": "^3.0.0", - "findup-sync": "^2.0.0", - "fined": "^1.0.1", - "flagged-respawn": "^1.0.0", - "is-plain-object": "^2.0.4", - "object.map": "^1.0.0", - "rechoir": "^0.6.2", - "resolve": "^1.1.7" - } - }, "linux-platform-info": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/linux-platform-info/-/linux-platform-info-0.0.3.tgz", @@ -12104,9 +11760,9 @@ } }, "lodash": { - "version": "4.17.15", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", - "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, "lodash-id": { "version": "0.14.0", @@ -12125,12 +11781,6 @@ "integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==", "dev": true }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", - "dev": true - }, "lodash.isplainobject": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", @@ -12251,15 +11901,6 @@ "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", "dev": true }, - "lower-case-first": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", - "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", - "dev": true, - "requires": { - "lower-case": "^1.1.2" - } - }, "lowercase-keys": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", @@ -12307,15 +11948,6 @@ "pify": "^3.0.0" } }, - "make-iterator": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", - "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", - "dev": true, - "requires": { - "kind-of": "^6.0.2" - } - }, "mamacro": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", @@ -12921,12 +12553,6 @@ "integrity": "sha512-KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==", "dev": true }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, "nan": { "version": "2.14.0", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", @@ -13013,12 +12639,6 @@ "semver": "^5.4.1" } }, - "node-forge": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz", - "integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==", - "dev": true - }, "node-libs-browser": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", @@ -13075,57 +12695,6 @@ } } }, - "node-plop": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/node-plop/-/node-plop-0.18.0.tgz", - "integrity": "sha512-in7Cg3wJ/1a1NFvCoqxEuEDZDs3op8A7PghGgwmujsS93o9dZWk0HpZ8wGg4pKw2JB2KBo8xwUMOtEwBUr0sIA==", - "dev": true, - "requires": { - "change-case": "^3.0.1", - "co": "^4.6.0", - "core-js": "^2.4.1", - "del": "^3.0.0", - "globby": "^8.0.0", - "handlebars": "^4.1.0", - "inquirer": "^6.0.0", - "isbinaryfile": "^3.0.2", - "lodash.get": "^4.4.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.0", - "resolve": "^1.2.0" - }, - "dependencies": { - "globby": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", - "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "2.0.0", - "fast-glob": "^2.0.2", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true - } - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - } - } - }, "node-releases": { "version": "1.1.39", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.39.tgz", @@ -13499,29 +13068,6 @@ "object-keys": "^1.0.11" } }, - "object.defaults": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", - "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", - "dev": true, - "requires": { - "array-each": "^1.0.1", - "array-slice": "^1.0.0", - "for-own": "^1.0.0", - "isobject": "^3.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, "object.entries": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.0.tgz", @@ -13630,27 +13176,6 @@ "es-abstract": "^1.5.1" } }, - "object.map": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", - "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", - "dev": true, - "requires": { - "for-own": "^1.0.0", - "make-iterator": "^1.0.0" - }, - "dependencies": { - "for-own": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", - "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", - "dev": true, - "requires": { - "for-in": "^1.0.1" - } - } - } - }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -13774,48 +13299,6 @@ "logalot": "^2.0.0" } }, - "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, "original": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", @@ -14208,17 +13691,6 @@ "is-hexadecimal": "^1.0.0" } }, - "parse-filepath": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", - "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", - "dev": true, - "requires": { - "is-absolute": "^1.0.0", - "map-cache": "^0.2.0", - "path-root": "^0.1.1" - } - }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", @@ -14279,16 +13751,6 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, - "pascal-case": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", - "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "upper-case-first": "^1.1.0" - } - }, "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", @@ -14301,15 +13763,6 @@ "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", "dev": true }, - "path-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", - "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "path-dirname": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", @@ -14346,21 +13799,6 @@ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, - "path-root": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", - "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", - "dev": true, - "requires": { - "path-root-regex": "^0.1.0" - } - }, - "path-root-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", - "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", - "dev": true - }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -14474,54 +13912,6 @@ "semver-compare": "^1.0.0" } }, - "plop": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/plop/-/plop-2.3.0.tgz", - "integrity": "sha512-CfTMYmfeCwlipzVcDWI6edxRwdZx47d8BRL3VSv5g+BB8JcLXaSzATkU0flG/aIVl4cxe1Y0rGkrtPjpDm7ySQ==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "interpret": "^1.2.0", - "liftoff": "^2.5.0", - "minimist": "^1.2.0", - "node-plop": "~0.18.0", - "ora": "^3.0.0", - "v8flags": "^2.0.10" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - } - } - }, "pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", @@ -15857,15 +15247,6 @@ "set-immediate-shim": "^1.0.1" } }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true, - "requires": { - "resolve": "^1.1.6" - } - }, "redent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", @@ -16434,16 +15815,6 @@ "lowercase-keys": "^1.0.0" } }, - "restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "requires": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - } - }, "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -16758,12 +16129,20 @@ "dev": true }, "selfsigned": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz", - "integrity": "sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==", + "version": "1.10.8", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", + "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", "dev": true, "requires": { - "node-forge": "0.9.0" + "node-forge": "^0.10.0" + }, + "dependencies": { + "node-forge": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", + "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", + "dev": true + } } }, "semver": { @@ -16864,16 +16243,6 @@ } } }, - "sentence-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", - "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case-first": "^1.1.2" - } - }, "serialize-javascript": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.7.0.tgz", @@ -17341,15 +16710,6 @@ "is-fullwidth-code-point": "^2.0.0" } }, - "snake-case": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", - "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -18702,6 +18062,17 @@ "dot-prop": "^4.1.1", "indexes-of": "^1.0.1", "uniq": "^1.0.1" + }, + "dependencies": { + "dot-prop": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz", + "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + } } }, "postcss-value-parser": { @@ -19031,16 +18402,6 @@ } } }, - "swap-case": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", - "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", - "dev": true, - "requires": { - "lower-case": "^1.1.1", - "upper-case": "^1.1.1" - } - }, "symbol-observable": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", @@ -19117,9 +18478,9 @@ }, "dependencies": { "bl": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", - "integrity": "sha512-EUAyP5UHU5hxF8BPT0LKW8gjYLhq1DQIcneOX/pL/m2Alo+OYDQAJlHq+yseMP50Os2nHXOSic6Ss3vSQeyf4A==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.1.tgz", + "integrity": "sha512-jrCW5ZhfQ/Vt07WX1Ngs+yn9BDqPL/gw28S7s9H6QK/gupnizNzJAss5akW20ISgOrbLTlXOOCTJeNUQqruAWQ==", "dev": true, "requires": { "readable-stream": "^3.0.1" @@ -20222,16 +19583,6 @@ "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", "dev": true }, - "title-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", - "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.0.3" - } - }, "tmp": { "version": "0.0.33", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", @@ -20746,12 +20097,6 @@ "through": "^2.3.8" } }, - "unc-path-regex": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", - "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", - "dev": true - }, "unherit": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/unherit/-/unherit-1.1.2.tgz", @@ -21059,15 +20404,6 @@ "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", "dev": true }, - "upper-case-first": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", - "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", - "dev": true, - "requires": { - "upper-case": "^1.1.1" - } - }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", @@ -21632,15 +20968,6 @@ "minimalistic-assert": "^1.0.0" } }, - "wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "requires": { - "defaults": "^1.0.3" - } - }, "webauth": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/webauth/-/webauth-1.1.0.tgz", diff --git a/package.json b/package.json index acb5ca6..d362599 100644 --- a/package.json +++ b/package.json @@ -89,7 +89,6 @@ "module-to-cdn": "3.1.2", "morgan": "1.9.1", "npm-run-all": "4.1.5", - "plop": "2.3.0", "postcss-loader": "2.1.6", "react": "16.8.6", "react-addons-test-utils": "15.6.2", @@ -124,7 +123,7 @@ "classnames": "2.2.6", "date-fns": "2.0.0-alpha.27", "js-cookie": "2.2.0", - "lodash": "4.17.15", + "lodash": "4.17.20", "mobx": "5.9.4", "mobx-react": "5.4.4", "normalize.css": "8.0.1", diff --git a/plop-templates/component.scss b/plop-templates/component.scss deleted file mode 100644 index 127418e..0000000 --- a/plop-templates/component.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "../../assets/scss/globals"; - -.{{ dashCase name }} { - -} diff --git a/plop-templates/component.tsx b/plop-templates/component.tsx deleted file mode 100644 index 42b9f35..0000000 --- a/plop-templates/component.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -{{#if observer}} -import { observer } from "mobx-react"; -import {{ camelCase store_name }} from "../../stores/{{ properCase store_name }}"; -{{/if}} -import "./{{ properCase name}}.scss"; - -export interface {{ properCase name }}Props {} -export interface {{ properCase name }}State {} - -{{#if observer}}@observer {{/if}}class {{ properCase name }} extends React.Component<{{ properCase name }}Props, {{ properCase name }}State> { - render() { - return ( -
- {{ titleCase name }} -
- ); - } -} - -{{#if observer}} -export default (props) => <{{ properCase name }} {{ camelCase store_name }}={ {{ camelCase store_name }} } { ...props } />; -{{else}} -export default {{ properCase name }}; -{{/if}} \ No newline at end of file diff --git a/plop-templates/index.ts b/plop-templates/index.ts deleted file mode 100644 index e909ea6..0000000 --- a/plop-templates/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import {{ properCase name }} from "./{{ properCase name }}"; -export default {{ properCase name }}; diff --git a/plop-templates/model.ts b/plop-templates/model.ts deleted file mode 100644 index 62d6caa..0000000 --- a/plop-templates/model.ts +++ /dev/null @@ -1,17 +0,0 @@ -import axios from "axios"; - -const url = `${process.env.API_URL}/{{ camelCase name }}s`; - -export interface {{ properCase name }} { - id: number; -} - -export async function get{{ properCase name }}s(): Promise<{{ properCase name }}[]> { - try { - const resp = await axios.get(url); - return resp.data; - } catch (err) { - console.error(err); - throw err; - } -} diff --git a/plop-templates/page.scss b/plop-templates/page.scss deleted file mode 100644 index 2bedf49..0000000 --- a/plop-templates/page.scss +++ /dev/null @@ -1,3 +0,0 @@ -.{{ dashCase name }} { - -} diff --git a/plop-templates/page.tsx b/plop-templates/page.tsx deleted file mode 100644 index 5f82725..0000000 --- a/plop-templates/page.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import React from "react"; -import { Helmet } from "react-helmet"; -import "./{{ properCase name}}.scss"; - -export interface {{ properCase name }}Props {} -export interface {{ properCase name }}State {} - -class {{ properCase name }} extends React.Component<{{ properCase name }}Props, {{ properCase name }}State> { - render() { - return ( -
- - - - {{ titleCase name }} -
- ); - } -} - -export default {{ properCase name }}; diff --git a/plop-templates/store.ts b/plop-templates/store.ts deleted file mode 100644 index 1615f02..0000000 --- a/plop-templates/store.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { observable, action } from "mobx"; -import { observer } from "mobx-react"; - -class {{ properCase name }} { - @observable counter = 0; - - @action.bound - increment() { - this.counter += 1; - } -} - -export default new {{ properCase name }}(); diff --git a/src/components/Accordion/Accordion.scss b/src/components/Accordion/Accordion.scss deleted file mode 100644 index f2e9e51..0000000 --- a/src/components/Accordion/Accordion.scss +++ /dev/null @@ -1,59 +0,0 @@ -@import "../../assets/scss/globals"; - - -.accordion { - margin: 0.2em; - padding: 0.2em; - display: flex; - flex-flow: column nowrap; - border-style: solid; - border-color: color(light-turquoise); - border-width: 1px; - - &__desc { - display: flex; - margin-top: -100%; - max-height: 15rem; - -webkit-transition: margin-top 400ms ease-in-out; - -webkit-transform: margin-top 400ms ease-in-out; - -moz-transform: margin-top 400ms ease-in-out; - -o-transform: margin-top 400ms ease-in-out; - transition: margin-top 400ms ease-in-out; - - &.open { - margin-top: 0; - } - - div { - min-width: 40px; - max-width: 40px; - margin: 0.6em; - } - - p { - padding-left: 1em; - margin: auto; - } - } - - button { - display: flex; - flex-flow: row nowrap; - background-color: color(white1); - width: 100%; - margin: 0; - padding: 0; - border: 0; - outline: none; - } - - h5 { - display: flex; - flex: 1; - text-align: center; - padding-left: 1em; - color: color(blue1); - font-size: 1.125rem; - margin: auto; - } -} diff --git a/src/components/Accordion/Accordion.tsx b/src/components/Accordion/Accordion.tsx index 49dcbda..c1091ef 100644 --- a/src/components/Accordion/Accordion.tsx +++ b/src/components/Accordion/Accordion.tsx @@ -1,6 +1,61 @@ import React from "react"; -import "./Accordion.scss"; -import AccordionIcon from "../AccordionIcon"; +import styled from "styled-components"; +import AccordionIcon from "./AccordionIcon"; +import { colors } from "@theme/colors"; + +const Container = styled.div` + margin: 0.2em; + padding: 0.2em; + display: flex; + flex-flow: column nowrap; + border-style: solid; + border-color: ${colors.lightTurquoise}; + border-width: 1px; + + button { + display: flex; + flex-flow: row nowrap; + background-color: ${colors.white}; + width: 100%; + margin: 0; + padding: 0; + border: 0; + outline: none; + } + + h5 { + display: flex; + flex: 1; + text-align: center; + padding-left: 1em; + color: ${colors.blue1}; + font-size: 1.125rem; + margin: auto; + } + + & > div { + overflow: hidden; + } +`; + +const Panel = styled.div<{visible?: boolean}>` + margin-top: ${(p) => p.visible ? "0" : "-100%"}; + + display: flex; + max-height: 15rem; + transition: margin-top 400ms ease-in-out; + + div { + min-width: 40px; + max-width: 40px; + margin: 0.6em; + } + + p { + padding-left: 1em; + margin: auto; + } +`; export interface AccordionProps { title: string; @@ -9,14 +64,6 @@ export interface AccordionState { isOpen: boolean; } -interface DescriptionProps { - visible: boolean; -} - -const Description: React.SFC = (props) => ( -
{props.children}
-); - class Accordion extends React.Component { constructor(props: AccordionProps) { super(props); @@ -34,15 +81,17 @@ class Accordion extends React.Component { render() { const { isOpen } = this.state; return ( -
+ -
- {this.props.children} +
+ + {this.props.children} +
-
+
); } } diff --git a/src/components/Accordion/AccordionIcon.tsx b/src/components/Accordion/AccordionIcon.tsx new file mode 100644 index 0000000..25d5e4c --- /dev/null +++ b/src/components/Accordion/AccordionIcon.tsx @@ -0,0 +1,36 @@ +import React from "react"; +import styled from "styled-components"; +import { colors } from "../../theme/colors"; + +interface AccordionIconProps { + open: boolean; +} + +const Icon = styled.div` + display: flex; + justify-content: center; + align-items: center; + background-color: ${(p) => p.open ? colors.orange1 : colors.blue1}; + color: ${colors.white}; + min-width: 40px; + max-width: 40px; + min-height: 40px; + max-height: 40px; + margin: 0.2em; + font-size: 40px; + + ${(p) => p.open && (` + span { + transform: rotate(45deg); + } + `)} + +`; + +const AccordionIcon: React.FC = ({ open } ) => ( + + + + +); + +export default AccordionIcon; diff --git a/src/components/Accordion/index.ts b/src/components/Accordion/index.ts deleted file mode 100644 index f653ec7..0000000 --- a/src/components/Accordion/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import Accordion from "./Accordion"; -export default Accordion; diff --git a/src/components/AccordionIcon/AccordionIcon.scss b/src/components/AccordionIcon/AccordionIcon.scss deleted file mode 100644 index 7933042..0000000 --- a/src/components/AccordionIcon/AccordionIcon.scss +++ /dev/null @@ -1,29 +0,0 @@ -@import "../../assets/scss/globals"; - - -.accordion-icon { - display: flex; - background-color: color(blue1); - color: color(white1); - align-items: center; - justify-content: center; - min-width: 40px; - max-width: 40px; - min-height: 40px; - max-height: 40px; - margin: 0.2em; - font-size: 40px; - - &.open { - background-color: color(orange1); - } -} - -.accordion-text { - &.open { - -webkit-transform: rotate(45deg); - -moz-transform: rotate(45deg); - -o-transform: rotate(45deg); - transform: rotate(45deg); - } -} diff --git a/src/components/AccordionIcon/AccordionIcon.tsx b/src/components/AccordionIcon/AccordionIcon.tsx deleted file mode 100644 index 753a7ad..0000000 --- a/src/components/AccordionIcon/AccordionIcon.tsx +++ /dev/null @@ -1,20 +0,0 @@ -import React from "react"; -import "./AccordionIcon.scss"; - -export interface AccordionIconProps { - open: boolean; -} -export interface AccordionIconState {} - -class AccordionIcon extends React.Component { - render() { - const { open } = this.props; - return ( -
-
+
-
- ); - } -} - -export default AccordionIcon; diff --git a/src/components/AccordionIcon/index.ts b/src/components/AccordionIcon/index.ts deleted file mode 100644 index bc97054..0000000 --- a/src/components/AccordionIcon/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import AccordionIcon from "./AccordionIcon"; -export default AccordionIcon; diff --git a/src/components/Anchor.tsx b/src/components/Anchor.tsx new file mode 100644 index 0000000..e9ef6b4 --- /dev/null +++ b/src/components/Anchor.tsx @@ -0,0 +1,25 @@ +import React from "react"; +import { Link } from "react-router-dom"; +import { HashLink } from "react-router-hash-link"; + +interface AnchorProps extends React.HTMLAttributes { + to: string; +} + +const Anchor: React.FC = ({ to, ...props }) => { + if (to.startsWith("/")) { + return ( + + ); + } else if (to.startsWith("#")) { + return ( + + ); + } + else { + return ( + + ); + } +} +export default Anchor; diff --git a/src/components/Anchor/Anchor.tsx b/src/components/Anchor/Anchor.tsx deleted file mode 100644 index 8e86b53..0000000 --- a/src/components/Anchor/Anchor.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React from "react"; -import { Link } from "react-router-dom"; -import { HashLink } from "react-router-hash-link"; - -export interface AnchorProps extends React.HTMLAttributes { - to: string; -} - -class Anchor extends React.Component { - render() { - const { children, to, ...props } = this.props; - - if (to.startsWith("/")) { - return ( - {children} - ); - } else if (to.startsWith("#")) { - return ( - {children} - ); - } - else { - return ( - {children} - ); - } - } -} -export default Anchor; diff --git a/src/components/Anchor/index.ts b/src/components/Anchor/index.ts deleted file mode 100644 index dcc717e..0000000 --- a/src/components/Anchor/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import Anchor from "./Anchor"; -export default Anchor; diff --git a/src/components/AsideSection/AsideSection.scss b/src/components/AsideSection/AsideSection.scss deleted file mode 100644 index 80f731a..0000000 --- a/src/components/AsideSection/AsideSection.scss +++ /dev/null @@ -1,10 +0,0 @@ -@import "../../assets/scss/globals"; - - -.aside-section { - display: flex; - flex: 1; - flex-flow: column; - justify-content: space-between; - padding: 3rem 4rem; -} diff --git a/src/components/AsideSection/AsideSection.tsx b/src/components/AsideSection/AsideSection.tsx deleted file mode 100644 index 9dce772..0000000 --- a/src/components/AsideSection/AsideSection.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import "./AsideSection.scss"; -import ColorDiv, { ColorDivProps } from "../ColorDiv/ColorDiv"; - -export interface AsideSectionProps { - className?: string; -} -export interface AsideSectionState { } - -class AsideSection extends React.Component { - render() { - const { children, className, ...props } = this.props; - const classNames = [ - "aside-section", - ]; - if (className) classNames.push(className); - return ( - - {children} - - ); - } -} - -export default AsideSection; diff --git a/src/components/AsideSection/index.ts b/src/components/AsideSection/index.ts deleted file mode 100644 index a8a5279..0000000 --- a/src/components/AsideSection/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import AsideSection from "./AsideSection"; -export default AsideSection; diff --git a/src/components/Card.tsx b/src/components/Card.tsx new file mode 100644 index 0000000..7199742 --- /dev/null +++ b/src/components/Card.tsx @@ -0,0 +1,119 @@ +import React from "react"; +import styled from "styled-components"; +import { colors } from "@theme/colors"; +import Anchor from "@components/Anchor"; + +interface WrappedCardProps { + title: string; + start_time: string; + text: string; + link: string; + image?: string; + imageAlt?: string; + buttonOnClick?: () => void; +} + +interface CardProps { + title: string; + start_time: string; + text: string; + img: JSX.Element; + button: JSX.Element; +} + +const StyledCard = styled.article` + color: ${colors.black}; + margin: 1rem; + text-align: center; + + img { + width: 100%; + max-height: 300px; + margin-bottom: 1rem; + } + + p { + font-size: 16px; + text-overflow: ellipsis; + margin: 0 0 0.5rem; + font-weight: 200; + line-height: 22px; + } + + p:first-of-type { + color: ${colors.orange1}; + font-size: 0.9rem !important; + font-weight: 600 !important; + + @media screen and (max-width: 1200px) { + margin: 0.5rem 0; + font-size: 16px; + } + } + + + h3 { + padding: 0.5rem; + font-size: 1.5rem; + font-weight: 300; + } + + button { + cursor: pointer; + + padding: 0.8rem 2rem; + margin: 0.5rem; + font-size: 13px; + background: none; + text-transform: uppercase; + background-color: ${colors.blue1}; + color: ${colors.white}; + font-weight: 800; + letter-spacing: 1.5px; + border: none; + } +`; + +const Card: React.FC = ({ title, start_time, text, img, button }) => ( + + {img} +

{start_time}

+

{title}

+

{text}

+ {button} +
+); + +const WrappedCard: React.FC = ({ title, text, link, image, imageAlt, start_time, buttonOnClick }) => { + const options = { + day: "numeric", + month: "numeric", + year: "numeric", + hour: "numeric", + minute: "2-digit" + }; + const datetime = new Date(start_time).toLocaleString("fi-FI", options); + const img = image ? ( + {imageAlt} + ) : null; + + const button = ( + + + + ); + + return ( + + ); +} + +export default WrappedCard; diff --git a/src/components/Card/Card.scss b/src/components/Card/Card.scss deleted file mode 100644 index ef6d16e..0000000 --- a/src/components/Card/Card.scss +++ /dev/null @@ -1,93 +0,0 @@ -@import "../../assets/scss/globals"; - - -.card { - background-color: color(white1); - color: color(dark-blue); - white-space: wrap; - margin: 1rem 1rem; - display: flex; - flex-flow: column nowrap; - justify-content: flex-start; - width: calc(25% - 2rem); - - @media screen and (min-width: 1000px) and (max-width: 1200px - 1px) { - width: calc(50% - 2rem); - margin-bottom: 2rem; - } - - @media screen and (max-width: 1000px - 1px) { - width: 100%; - margin-bottom: 3rem; - margin-left: 0; - margin-right: 0; - } - - &__title { - padding: 0.5rem; - margin-bottom: 0.5rem; - display: flex; - justify-content: center; - font-size: 1.5rem; - text-align: center; - font-weight: 300; - color: color(black1); - } - - &__image { - width: 100%; - height: 300px; - background-repeat: no-repeat; - background-size: cover; - background-position: center center; - margin-bottom: 1rem; - - @media screen and (min-width: 1200px) { - height: 15vw; - } - - @media screen and (max-width: 1200px - 1px) { - height: 35vh; - } - } - - &__button { - display: flex; - justify-content: center; - - button { - height: 100%; - } - } - - &__text { - display: flex; - justify-content: center; - text-align: center; - text-overflow: ellipsis; - font-size: 16px; - margin: 0 0 0.5rem; - font-weight: 200; - line-height: 22px; - color: color(black1); - - @media screen and (max-width: 1200px - 1px) { - margin: 0.5rem 0; - font-size: 16px; - } - } - - &__datetime { - color: color(orange1); - display: flex; - justify-content: center; - text-align: center; - font-size: 0.9rem; - font-weight: 600; - - @media screen and (max-width: 1200px - 1px) { - margin: 0.5rem 0; - font-size: 16px; - } - } -} diff --git a/src/components/Card/Card.tsx b/src/components/Card/Card.tsx deleted file mode 100644 index 9f2e377..0000000 --- a/src/components/Card/Card.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import React from "react"; -import "./Card.scss"; -import Anchor from "../Anchor"; - -export interface CardProps { - title: string; - start_time: string; - text: string; - link?: string; - image?: string; - button?: JSX.Element; -} -export interface CardState { } - -class Card extends React.Component { - render() { - const { title, text, link, image, button } = this.props; - const options = { - day: "numeric", - month: "numeric", - year: "numeric", - hour: "numeric", - minute: "2-digit" - }; - const datetime = new Date(this.props.start_time).toLocaleString("fi-FI", options); - - const imageElem = image ? ( -
- ) : null; - if (link) { - return ( - - {imageElem} -
{datetime}
-
{title}
-
{text}
-
{button}
-
- ); - } - return ( -
- {imageElem} -
{datetime}
-
{title}
-
{text}
- {button} -
- ); - } -} - -export default Card; diff --git a/src/components/Card/index.ts b/src/components/Card/index.ts deleted file mode 100644 index af0084f..0000000 --- a/src/components/Card/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import Card from "./Card"; -export default Card; diff --git a/src/components/ColorDiv/ColorDiv.scss b/src/components/ColorDiv/ColorDiv.scss deleted file mode 100644 index 4b4ee2d..0000000 --- a/src/components/ColorDiv/ColorDiv.scss +++ /dev/null @@ -1,66 +0,0 @@ -@import "../../assets/scss/globals"; - -.color-div { - @mixin hoverableColor($colorName) { - &__#{$colorName} { - color: color($colorName); - } - - &__#{$colorName}Hoverable { - &:hover, - &:active { - color: hover($colorName); - } - } - } - - @mixin backgroundColor($colorName) { - &__background_#{$colorName} { - background-color: color($colorName); - } - - &__background_#{$colorName}Hoverable { - &:hover, - &:active { - background-color: hover($colorName); - } - } - } - - @mixin backgroundAndHoverableColor($colorName) { - @include hoverableColor($colorName); - @include backgroundColor($colorName); - } - - @include backgroundAndHoverableColor(dark-blue); - @include backgroundAndHoverableColor(light-blue); - @include backgroundAndHoverableColor(white1); - @include backgroundAndHoverableColor(black1); - @include backgroundAndHoverableColor(grey1); - @include backgroundAndHoverableColor(grey2); - @include backgroundAndHoverableColor(orange1); - @include backgroundAndHoverableColor(orange2); - @include backgroundAndHoverableColor(blue1); - @include backgroundAndHoverableColor(light-turquoise); - @include backgroundAndHoverableColor(green1); - @include backgroundAndHoverableColor(sand); - - &__inherit { - color: inherit; - } - - &__transparent { - color: transparent; - } - - &__inheritHoverable { - &:hover, - &:active { - color: inherit; - } - } - - &__background_transparent { - background-color: transparent; - } -} \ No newline at end of file diff --git a/src/components/ColorDiv/ColorDiv.tsx b/src/components/ColorDiv/ColorDiv.tsx deleted file mode 100644 index 05a9b1c..0000000 --- a/src/components/ColorDiv/ColorDiv.tsx +++ /dev/null @@ -1,34 +0,0 @@ -import React from "react"; -import "./ColorDiv.scss"; -import { Colors, colorToClass, bgColorToClass, hoverColorToClass, bgHoverColorToClass } from "@theme/colors"; -import classNames from "classnames"; - -export interface ColorDivProps extends React.HTMLAttributes { - textColor?: Colors; - backgroundColor?: Colors; - hoverColor?: Colors; - backgroundHoverColor?: Colors; -} -export interface ColorDivState { } - - -class ColorDiv extends React.Component { - render() { - const { children, className, textColor, backgroundColor, hoverColor, backgroundHoverColor, ...props } = this.props; - const classes = classNames( - className, - colorToClass(textColor), - bgColorToClass(backgroundColor), - hoverColorToClass(hoverColor), - bgHoverColorToClass(backgroundHoverColor) - ); - - return ( -
- {children} -
- ); - } -} - -export default ColorDiv; diff --git a/src/components/DatetimeWidget/index.ts b/src/components/DatetimeWidget/index.ts deleted file mode 100644 index 396b80b..0000000 --- a/src/components/DatetimeWidget/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import DatetimeWidget from "./DatetimeWidget"; -export default DatetimeWidget; diff --git a/src/components/Divider.tsx b/src/components/Divider.tsx new file mode 100644 index 0000000..1093cdd --- /dev/null +++ b/src/components/Divider.tsx @@ -0,0 +1,11 @@ +import styled from "styled-components"; +import { colors } from "@theme/colors"; + +const Divider = styled.hr` + width: 98%; + border: 0; + border-bottom: 2px solid ${colors.blue1}; + margin: 0 auto; +`; + +export default Divider; diff --git a/src/components/DropDownBox.tsx b/src/components/DropDownBox.tsx new file mode 100644 index 0000000..f27eb1b --- /dev/null +++ b/src/components/DropDownBox.tsx @@ -0,0 +1,36 @@ +import React from "react"; +import styled from "styled-components"; +import { colors } from "@theme/colors"; + +interface DropDownBoxProps { + onMouseEnter: () => void; + onMouseLeave: () => void; + visible: boolean; +} + +const Box = styled.div` + background-color: ${colors.white}; + margin-top: 0.8rem; + position: absolute; + left: 0; + top: 30px; + z-index: 20; + + a { + text-decoration: underline; + color: ${colors.darkBlue} !important; + text-transform: uppercase; + } +`; + +const DropDownBox: React.FC = ({ children, onMouseEnter, onMouseLeave, visible }) => ( + +); + +export default DropDownBox; diff --git a/src/components/DropDownBox/DropDownBox.scss b/src/components/DropDownBox/DropDownBox.scss deleted file mode 100644 index fa14622..0000000 --- a/src/components/DropDownBox/DropDownBox.scss +++ /dev/null @@ -1,17 +0,0 @@ -@import "../../assets/scss/globals"; - - -.drop-down-box { - background-color: color(white1); - margin-top: 0.8rem; - position: absolute; - left: 0; - top: 30px; - z-index: 20; - - &, - & a { - color: color(dark-blue) !important; - text-transform: uppercase; - } -} diff --git a/src/components/DropDownBox/DropDownBox.tsx b/src/components/DropDownBox/DropDownBox.tsx deleted file mode 100644 index 572b1f3..0000000 --- a/src/components/DropDownBox/DropDownBox.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import React from "react"; -import "./DropDownBox.scss"; - -export interface DropDownBoxProps { - onMouseEnter: () => void; - onMouseLeave: () => void; - visible: boolean; -} -export interface DropDownBoxState {} - -class DropDownBox extends React.Component { - render() { - const { children, onMouseEnter, onMouseLeave, visible } = this.props; - return ( - - ); - } -} - -export default DropDownBox; diff --git a/src/components/DropDownBox/index.ts b/src/components/DropDownBox/index.ts deleted file mode 100644 index 64e87ea..0000000 --- a/src/components/DropDownBox/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import DropDownBox from "./DropDownBox"; -export default DropDownBox; diff --git a/src/components/Footer/Footer.scss b/src/components/Footer/Footer.scss deleted file mode 100644 index 2def50a..0000000 --- a/src/components/Footer/Footer.scss +++ /dev/null @@ -1,90 +0,0 @@ -@import "../../assets/scss/globals"; - - -.footer { - display: flex; - flex-direction: column; - - &__content { - display: flex; - padding: 16px; - } - - h4 { - color: color(light-blue); - padding: 1.5rem 0; - } - - & a { - color: color(white1); - text-decoration: underline; - padding: 0.4rem 0; - font-size: 14px; - } - - & p { - color: color(white1); - margin: 0; - padding: 0.4rem 0; - font-size: 14px; - } - - &__info { - display: flex; - flex-direction: column; - flex-basis: 100%; - align-items: center; - - &__block { - padding: 1rem 0; - } - } - - &__contacts { - display: flex; - justify-content: space-between; - flex-flow: row nowrap; - font-weight: 200; - - @media screen and (max-width: 600px - 1px) { - flex-flow: column nowrap; - } - } - - &__text { - display: flex; - flex-flow: column; - min-width: 180px; - - @media screen and (min-width: 600px) { - padding-right: 3rem; - } - } - - &__links { - display: flex; - flex-flow: column; - - @media screen and (max-width: 600px - 1px) { - margin-top: 2rem; - } - } - - &__copyright { - display: flex; - flex-flow: row nowrap; - background-color: color(black1); - text-align: center; - justify-content: center; - font-size: 12px; - padding: 1rem 0; - - p { - padding: 0.5rem 1rem; - } - - @media screen and (max-width: 600px - 1px) { - flex-flow: column nowrap; - } - } -} diff --git a/src/components/Footer/Footer.tsx b/src/components/Footer/Footer.tsx index c816204..04cfabf 100644 --- a/src/components/Footer/Footer.tsx +++ b/src/components/Footer/Footer.tsx @@ -1,48 +1,54 @@ import React from "react"; -import FooterMap from "../FooterMap"; -import Anchor from "../Anchor"; -import "./Footer.scss"; +import styled from "styled-components"; +import { colors } from "@theme/colors"; +import FooterContent from "./FooterContent"; -export interface FooterProps { } -export interface FooterState { } +const StyledFooter = styled.footer` + display: flex; + flex-direction: column; + background-color: ${colors.darkBlue}; +`; -class Footer extends React.Component { - render() { - return -
-
-
-
-

Aalto-yliopiston Sähköinsinöörikilta ry

-
-
-

TUAS-Talo

-

Maarintie 8

-

PL 15500, 00076 Aalto

-

-

-

Y-tunnus: 1627010-1

-

sik-hallitus@list.ayy.fi

- Yhteystiedot -
-
- Jäseneksi - Palaute - Arkisto - Materiaalipankki -
-
-
-
- -
-
-

© Aalto-yliopiston Sähköinsinöörikilta ry

-

webmaster: sik-vtmk@list.ayy.fi

-
-
-
; +const CopyRight = styled.div` + display: flex; + flex-flow: row nowrap; + color: ${colors.white}; + background-color: ${colors.black}; + text-align: center; + justify-content: center; + font-size: 12px; + padding: 1rem 0; + + p { + padding: 0.5rem 1rem; + margin: 0; + font-size: 14px; } -} + + a { + display: block; + text-decoration: underline; + padding: 0.4rem 0; + font-size: 14px; + + &:hover { + text-decoration: none; + } + } + + @media screen and (max-width: 600px) { + flex-flow: column nowrap; + } +`; + +const Footer: React.FC = () => ( + + + +

© Aalto-yliopiston Sähköinsinöörikilta ry

+ webmaster: sik-vtmk@list.ayy.fi +
+
+) export default Footer; diff --git a/src/components/Footer/FooterContent.tsx b/src/components/Footer/FooterContent.tsx new file mode 100644 index 0000000..fdf11dc --- /dev/null +++ b/src/components/Footer/FooterContent.tsx @@ -0,0 +1,104 @@ +import React from "react"; +import styled from "styled-components"; +import Anchor from "../Anchor"; +import { colors } from "@theme/colors"; + +const Content = styled.div` + display: flex; + + & > div:first-of-type { + padding: 48px 0; + flex: 2 1; + + & > * { + padding: 0 24px; + } + } + + h4 { + color: ${colors.lightBlue}; + padding: 24px 0; + } + + a { + color: ${colors.white}; + display: block; + text-decoration: underline; + padding: 0.4rem 0; + font-size: 14px; + + &:hover { + text-decoration: none; + } + } + + p { + color: ${colors.white}; + margin: 0; + padding: 0.4rem 0; + font-size: 14px; + } +`; + +const MarginSpace = styled.div` + max-width: 600px; + margin: auto; +`; + +const Columns = styled.div` + display: flex; + justify-content: space-between; + & > div > div { + margin-bottom: 1rem; + } +`; + +const Map = styled.div` + flex: 1; + @media screen and (max-width: 800px) { + display: none; + } + iframe { + border: none; + } +`; + +const FooterContent: React.FC = () => ( + +
+ +

Aalto-yliopiston Sähköinsinöörikilta ry

+ +
+
+

TUAS-Talo

+

Maarintie 8

+

PL 15500, 00076 Aalto

+
+
+

Y-tunnus: 1627010-1

+

sik-hallitus@list.ayy.fi

+ Yhteystiedot +
+
+
+ Jäseneksi + Palaute + Arkisto + Materiaalipankki +
+
+
+
+ + + -
- - ); - } -} - -export default FooterMap; diff --git a/src/components/FooterMap/index.ts b/src/components/FooterMap/index.ts deleted file mode 100644 index dc2e662..0000000 --- a/src/components/FooterMap/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import FooterMap from "./FooterMap"; -export default FooterMap; diff --git a/src/components/Hero/Hero.tsx b/src/components/Hero/Hero.tsx new file mode 100644 index 0000000..8ab2dc9 --- /dev/null +++ b/src/components/Hero/Hero.tsx @@ -0,0 +1,49 @@ +import React from "react"; +import styled from "styled-components"; +import { colors } from "@theme/colors"; + +const Container = styled.div` + display: flex; + flex-flow: row wrap; + justify-content: space-between; + position: relative; + padding: 0; + + min-height: 75vh; + + section { + padding: 2rem 6rem; + @media screen and (max-width: 800px) { + padding: 1rem; + } + } + + aside { + padding: 0 6rem; + @media screen and (max-width: 800px) { + padding: 2rem 1rem; + } + } + + & > div { + flex: 8; + } + + @media screen and (max-width: 800px) { + flex-direction: column; + } + + color: ${colors.white}; + background-color: ${colors.darkBlue}; + a:hover { + color: ${colors.white}; + } +`; + +const Hero: React.FC = ({ children }) => ( + + {children} + +) + +export default Hero; \ No newline at end of file diff --git a/src/components/Hero/HeroAside.tsx b/src/components/Hero/HeroAside.tsx new file mode 100644 index 0000000..1944ce1 --- /dev/null +++ b/src/components/Hero/HeroAside.tsx @@ -0,0 +1,94 @@ +import React from "react"; +import styled from "styled-components"; +import { colors } from "@theme/colors"; +import Anchor from "@components/Anchor"; + +interface HeroAsideItemProps { + header: string; + text?: string; + link: string; + linkText: string; +} + +const Article = styled.article` + max-width: 350px; + margin-bottom: 1rem; +`; + +export const HeroAsideItem: React.FC = ({ header, text, link, linkText }) => ( +
+

{header}

+ {text && ( +

{text}

+ )} + +
+ {linkText} +
+
+
+) + +type Colors = "darkBlue" | "lightTurquoise"; + +interface HeroAsideProps { + bgColor: Colors; +} + +// TODO: Color combos +const Aside = styled.aside<{ colors: string }>` + ${(p) => p.colors} + flex: 4; + display: flex; + flex-direction: column; + justify-content: center; + + h2 { + text-transform: uppercase; + letter-spacing: 3px; + line-height: 1.5rem; + } + + p { + margin: 0; + line-height: 2rem; + } + + + & > p { + font-weight: 600; + margin-bottom: 2rem; + } + + a { + line-height: 2rem; + font-weight: 600; + text-transform: uppercase; + text-decoration: none; + letter-spacing: 0.1rem; + } +`; + +const textColors = (bgColor: Colors) => { + switch(bgColor) { + case "darkBlue": + return ` +background-color: ${colors[bgColor]}; +color: ${colors.lightBlue}; +`; + case "lightTurquoise": + return ` +background-color: ${colors[bgColor]}; +color: ${colors.darkBlue}; + `; + default: return "" + } +} + +const HeroAside: React.FC = ({ bgColor, children}) => ( + +) + +export default HeroAside; diff --git a/src/components/Hero/HeroAsideItem/HeroAsideItem.scss b/src/components/Hero/HeroAsideItem/HeroAsideItem.scss deleted file mode 100644 index 4b4b047..0000000 --- a/src/components/Hero/HeroAsideItem/HeroAsideItem.scss +++ /dev/null @@ -1,36 +0,0 @@ -@import "../../../assets/scss/globals"; - - -.hero-aside-item { - max-width: 300px; - line-height: 16px; - margin-bottom: 1rem; - - @media screen and (max-width: 600px - 1px) { - p, - a { - font-size: 16px !important; - line-height: 20px; - } - } - - h2 { - text-transform: uppercase; - letter-spacing: 3px; - line-height: 20px; - } - - p { - font-size: 14px; - line-height: 20px; - } - - h6 { - color: color(blue1); - font-weight: 600; - } - - h6:hover { - color: color(white1); - } -} diff --git a/src/components/Hero/HeroAsideItem/HeroAsideItem.tsx b/src/components/Hero/HeroAsideItem/HeroAsideItem.tsx deleted file mode 100644 index a1143a9..0000000 --- a/src/components/Hero/HeroAsideItem/HeroAsideItem.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import React from "react"; -import "./HeroAsideItem.scss"; -import Anchor from "../../Anchor"; - -interface HeroAsideItemProps { - title: string; - linkText: string; - linkHref: string; -} - -const HeroAsideItem: React.FC = ({ title, linkText, linkHref, children }) => ( -
-

{title}

-

{children}

- -
{linkText} ›
-
-
-) - -export default HeroAsideItem; diff --git a/src/components/Hero/HeroAsideSection/HeroAsideSection.scss b/src/components/Hero/HeroAsideSection/HeroAsideSection.scss deleted file mode 100644 index c632179..0000000 --- a/src/components/Hero/HeroAsideSection/HeroAsideSection.scss +++ /dev/null @@ -1,43 +0,0 @@ -@import "../../../assets/scss/globals"; - - -.hero-aside-section { - display: flex; - flex-flow: column nowrap; - align-items: flex-start; - justify-content: center; - flex: 4; - - @media screen and (max-width: 800px - 1px) { - align-items: center; - } - - text-align: left; - padding: 3rem 1rem 2rem; - - &.dark-blue { - background-color: color(dark-blue); - - h2 { - color: color(light-blue); - } - - p { - font-weight: 100; - color: color(white1); - } - } - - &.light-turquoise { - background-color: color(light-turquoise); - - h2, - p { - color: color(dark-blue); - } - } - - &.light-blue { - background-color: color(light-blue); - } -} diff --git a/src/components/Hero/HeroAsideSection/HeroAsideSection.tsx b/src/components/Hero/HeroAsideSection/HeroAsideSection.tsx deleted file mode 100644 index 505a0db..0000000 --- a/src/components/Hero/HeroAsideSection/HeroAsideSection.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react"; -import "./HeroAsideSection.scss"; -import ColorDiv, { ColorDivProps } from "../../ColorDiv/ColorDiv"; - - -export interface HeroAsideSectionProps { } -export interface HeroAsideSectionState { } - -class HeroAsideSection extends React.Component { - render() { - const className = "hero-aside-section"; - return ( - -
- {this.props.children} -
-
- ); - } -} - -export default HeroAsideSection; diff --git a/src/components/Hero/HeroMainSection/HeroMainSection.tsx b/src/components/Hero/HeroMainSection/HeroMainSection.tsx deleted file mode 100644 index 2d413a3..0000000 --- a/src/components/Hero/HeroMainSection/HeroMainSection.tsx +++ /dev/null @@ -1,51 +0,0 @@ -import React from "react"; -import styled from "styled-components"; - -const Container = styled.div` - display: flex; - flex-flow: column nowrap; - align-items: center; - margin-top: 15vh; - flex: 6; - text-align: center; - font-weight: 100; - line-height: 24px; - - & > div { - padding: 2rem 1rem 2rem; - } - - h1 { - max-width: 600px; - line-height: 40px; - - @media screen and (max-width: 500px) { - font-size: 2rem; - } - } - - p { - max-width: 400px; - font-weight: 100; - } - - .hero-button-container { - display: flex; - flex-direction: column; - min-width: 20%; - - &-row { - flex-direction: row; - } - } -`; - -const HeroMainSection: React.FC = ({children}) => { - return ( - - {children} - - ); -} - -export default HeroMainSection; diff --git a/src/components/Hero/HeroPrimaryButtons.tsx b/src/components/Hero/HeroPrimaryButtons.tsx new file mode 100644 index 0000000..d05b9e7 --- /dev/null +++ b/src/components/Hero/HeroPrimaryButtons.tsx @@ -0,0 +1,39 @@ +import styled from "styled-components"; +import { colors } from "@theme/colors"; + +const Buttons = styled.div<{row?: boolean}>` + min-width: 20%; + max-width: fit-content; + margin: auto; + display: flex; + flex-direction: ${(p) => p.row ? "row" : "column"}; + + a { + display: contents; + text-decoration: none; + } + + button { + color: ${colors.blue1}; + background-color: transparent; + padding: 0.8rem 2rem; + margin: 0.5rem; + font-size: 0.8rem; + font-weight: 800; + letter-spacing: .1em; + text-transform: uppercase; + border: 1px solid ${colors.lightTurquoise}; + + &:hover { + cursor: pointer; + color: ${colors.white}; + } + + &:active, + &:focus { + outline: none; + } + } +`; + +export default Buttons; \ No newline at end of file diff --git a/src/components/Hero/HeroPrimarySection.tsx b/src/components/Hero/HeroPrimarySection.tsx new file mode 100644 index 0000000..b729c85 --- /dev/null +++ b/src/components/Hero/HeroPrimarySection.tsx @@ -0,0 +1,51 @@ +import React from "react"; +import styled from "styled-components"; +import { colors } from "@theme/colors"; + +interface HeroPrimarySectionProps { + header: string; + text?: string; +} + +const Section = styled.section` + margin: 10vh auto 0; + max-width: 800px; + text-align: center; + line-height: 1.5rem; + + h1 { + line-height: 40px; + @media screen and (max-width: 500px) { + font-size: 2rem; + } + } + + p { + max-width: 400px; + margin: 1em auto; + font-weight: 200; + } + + a { + color: ${colors.blue1}; + font-weight: 600; + text-decoration: underline; + + &:hover { + color: ${colors.white}; + text-decoration: none + } + } +`; + +const HeroPrimarySection: React.FC = ({ header, text, children }) => ( +
+

{header}

+ {text && ( +

{text}

+ )} + {children} +
+) + +export default HeroPrimarySection; \ No newline at end of file diff --git a/src/components/Hero/HeroSecondarySection/HeroSecondarySection.tsx b/src/components/Hero/HeroSecondarySection.tsx similarity index 70% rename from src/components/Hero/HeroSecondarySection/HeroSecondarySection.tsx rename to src/components/Hero/HeroSecondarySection.tsx index a7234ee..16dfab9 100644 --- a/src/components/Hero/HeroSecondarySection/HeroSecondarySection.tsx +++ b/src/components/Hero/HeroSecondarySection.tsx @@ -1,10 +1,6 @@ import React from "react"; import styled from "styled-components"; -import ColorDiv from "../../ColorDiv/ColorDiv"; - -interface HeroSecondarySectionItemProps { - note?: string; -} +import { colors } from "@theme/colors"; const Note = styled.span` color: white; @@ -25,6 +21,10 @@ const Item = styled.div` margin: 1rem 2rem 1rem; `; +interface HeroSecondarySectionItemProps { + note?: string; +} + export const HeroSecondarySectionItem: React.FC = ({note, children}) => ( @@ -34,14 +34,13 @@ export const HeroSecondarySectionItem: React.FC = ) -const Container = styled(ColorDiv)` - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; +const Section = styled.section` + background-color: ${colors.green1}; + color: ${colors.darkBlue}; h1 { - padding: 1em 0; + padding: 1rem 0; + text-align: center; } `; @@ -51,16 +50,16 @@ const Items = styled.div` `; interface HeroSecondarySectionProps { - title: string; + heading: string; } -const HeroSecondarySection: React.FC = ({title, children}) => ( - -

{title}

+const HeroSecondarySection: React.FC = ({ heading, children }) => ( +
+

{heading}

{children} - +
) -export default HeroSecondarySection; +export default HeroSecondarySection; \ No newline at end of file diff --git a/src/components/Hero/index.tsx b/src/components/Hero/index.tsx new file mode 100644 index 0000000..f380770 --- /dev/null +++ b/src/components/Hero/index.tsx @@ -0,0 +1,7 @@ +export { default as Hero } from "./Hero"; +export { default as HeroPrimarySection } from "./HeroPrimarySection"; +export { default as HeroSecondarySection } from "./HeroSecondarySection"; +export { HeroSecondarySectionItem } from "./HeroSecondarySection"; +export { default as HeroAside } from "./HeroAside"; +export { HeroAsideItem as HeroAsideItem } from "./HeroAside"; +export { default as HeroPrimaryButtons } from "./HeroPrimaryButtons"; \ No newline at end of file diff --git a/src/components/InfoBox.tsx b/src/components/InfoBox.tsx new file mode 100644 index 0000000..2126318 --- /dev/null +++ b/src/components/InfoBox.tsx @@ -0,0 +1,15 @@ +import React from "react"; +import styled from "styled-components"; + +const Box = styled.div` + justify-content: flex-end; + text-align: center; +`; + +const InfoBox: React.FC = ({ children }) => ( + + {children} + +) + +export default InfoBox; diff --git a/src/components/InfoBox/InfoBox.scss b/src/components/InfoBox/InfoBox.scss deleted file mode 100644 index 63d25b6..0000000 --- a/src/components/InfoBox/InfoBox.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import "../../assets/scss/globals"; - -.info-box { - justify-content: flex-end; - text-align: center; -} diff --git a/src/components/InfoBox/InfoBox.tsx b/src/components/InfoBox/InfoBox.tsx deleted file mode 100644 index 7f9f844..0000000 --- a/src/components/InfoBox/InfoBox.tsx +++ /dev/null @@ -1,22 +0,0 @@ -import React from "react"; -import "./InfoBox.scss"; - -export interface InfoBoxProps {} -export interface InfoBoxState {} - -class InfoBox extends React.Component { - constructor(props: InfoBoxProps) { - super(props); - } - - render() { - const { children } = this.props; - return ( -
- {children} -
- ); - } -} - -export default InfoBox; diff --git a/src/components/InfoBox/index.ts b/src/components/InfoBox/index.ts deleted file mode 100644 index df5a48f..0000000 --- a/src/components/InfoBox/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import InfoBox from "./InfoBox"; -export default InfoBox; diff --git a/src/components/JsonLD/JsonLD.tsx b/src/components/JsonLD.tsx similarity index 100% rename from src/components/JsonLD/JsonLD.tsx rename to src/components/JsonLD.tsx diff --git a/src/components/JsonLD/index.ts b/src/components/JsonLD/index.ts deleted file mode 100644 index e9b2e76..0000000 --- a/src/components/JsonLD/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import JsonLD from "./JsonLD"; -export default JsonLD; diff --git a/src/components/MainSection/MainSection.scss b/src/components/MainSection/MainSection.scss deleted file mode 100644 index ed09469..0000000 --- a/src/components/MainSection/MainSection.scss +++ /dev/null @@ -1,21 +0,0 @@ -@import "../../assets/scss/globals"; - -.main-section { - display: flex; - flex: 2; - flex-flow: column; - padding: 0 3rem; - - & > h3 { - margin: auto; - } - - & > h6 { - color: color(orange1); - } - - & > p { - margin-block-start: 0.5rem; - margin-block-end: 1rem; - } -} diff --git a/src/components/MainSection/MainSection.tsx b/src/components/MainSection/MainSection.tsx deleted file mode 100644 index a96a12a..0000000 --- a/src/components/MainSection/MainSection.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import "./MainSection.scss"; -import ColorDiv, { ColorDivProps } from "../ColorDiv/ColorDiv"; -import classNames from "classnames"; - -export interface MainSectionProps { } -export interface MainSectionState { } - -class MainSection extends React.Component { - render() { - const { children, className, ...props } = this.props; - const classes = classNames( - "main-section", - className - ); - - return ( - - {children} - - ); - } -} - -export default MainSection; diff --git a/src/components/MainSection/index.ts b/src/components/MainSection/index.ts deleted file mode 100644 index 50928f2..0000000 --- a/src/components/MainSection/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import MainSection from "./MainSection"; -export default MainSection; diff --git a/src/components/NavbarDropdownLink/NavbarDropdownLink.tsx b/src/components/NavbarDropdownLink/NavbarDropdownLink.tsx index c29df71..c374185 100644 --- a/src/components/NavbarDropdownLink/NavbarDropdownLink.tsx +++ b/src/components/NavbarDropdownLink/NavbarDropdownLink.tsx @@ -1,6 +1,6 @@ import React from "react"; import "./NavbarDropdownLink.scss"; -import DropDownBox from "../DropDownBox/DropDownBox"; +import DropDownBox from "../DropDownBox"; import Anchor from "../Anchor"; export interface NavbarDropdownLinkProps { diff --git a/src/components/Navigation/Navigation.scss b/src/components/Navigation/Navigation.scss index f9b7cc9..134e6da 100644 --- a/src/components/Navigation/Navigation.scss +++ b/src/components/Navigation/Navigation.scss @@ -7,6 +7,7 @@ $border-width: 2px; .navigation-mobile-menu { a, a:-webkit-any-link { + text-decoration: none; fill: color(light-blue); color: color(light-blue); } diff --git a/src/components/PageLink.tsx b/src/components/PageLink.tsx new file mode 100644 index 0000000..306d0f1 --- /dev/null +++ b/src/components/PageLink.tsx @@ -0,0 +1,50 @@ +import React from "react"; +import styled from "styled-components"; +import TextAnchor from "./TextAnchor"; +import { colors } from "@theme/colors"; + +interface PageLinkProps { + to: string; + desc: string; +} + +const StyledPageLink = styled.div` + border-left-color: ${colors.blue1}; + border-left-width: 0.8rem; + border-left-style: solid; + margin: 0 1rem 1rem 0; + + p { + margin-block-start: 0; + margin-block-end: 0; + color: ${colors.darkBlue}; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 1px; + font-weight: 800; + margin-left: 1rem; + margin-bottom: 0.5rem; + padding: 0; + } + + a { + display: block; + margin-left: 1rem; + text-decoration: none; + font-weight: normal; + + color: ${colors.blue1}; + &:hover { + color: ${colors.darkBlue}; + } + } +`; + +const PageLink: React.FC = ({ to, desc, children }) => ( + +

{children}

+ {desc} +
+); + +export default PageLink; diff --git a/src/components/PageLink/PageLink.scss b/src/components/PageLink/PageLink.scss deleted file mode 100644 index f8f1ba5..0000000 --- a/src/components/PageLink/PageLink.scss +++ /dev/null @@ -1,31 +0,0 @@ -@import "../../assets/scss/globals"; - - -.page-link { - border-left-color: color(blue1); - border-left-width: 0.8rem; - border-left-style: solid; - margin: 0 1rem 1rem 0; - - & p { - display: flex; - margin-block-start: 0; - margin-block-end: 0; - color: color(dark-blue); - font-size: 1rem; - text-transform: uppercase; - letter-spacing: 1px; - font-weight: 800; - margin-left: 1rem; - margin-bottom: 0.5rem; - padding: 0; - } - - & a { - color: color(dark-blue); - margin-left: 1rem; - display: flex; - text-decoration: none; - font-weight: normal; - } -} diff --git a/src/components/PageLink/PageLink.tsx b/src/components/PageLink/PageLink.tsx deleted file mode 100644 index 5562210..0000000 --- a/src/components/PageLink/PageLink.tsx +++ /dev/null @@ -1,23 +0,0 @@ -import React from "react"; -import "./PageLink.scss"; -import TextAnchor from "../TextAnchor"; - -export interface PageLinkProps { - to: string; - desc: string; -} -export interface PageLinkState { } - -class PageLink extends React.Component { - render() { - const { to, desc } = this.props; - return ( -
-

{this.props.children}

- {desc} -
- ); - } -} - -export default PageLink; diff --git a/src/components/PageLink/index.ts b/src/components/PageLink/index.ts deleted file mode 100644 index 118b0a5..0000000 --- a/src/components/PageLink/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import PageLink from "./PageLink"; -export default PageLink; diff --git a/src/components/PageSection/PageSection.scss b/src/components/PageSection/PageSection.scss deleted file mode 100644 index 99752d3..0000000 --- a/src/components/PageSection/PageSection.scss +++ /dev/null @@ -1,40 +0,0 @@ -@import "../../assets/scss/globals"; - - -.page-section { - display: flex; - flex-flow: row wrap; - justify-content: space-between; - position: relative; - - &.lander-hero { - @media screen and (min-width: 800px) { - min-height: 85vh; - } - } - - &.padded { - padding: 2rem 1rem 2rem; - } - - &:not(.card-section) { - @media screen and (max-width: 800px - 1px) { - flex-flow: column nowrap; - } - } - - &.center { - justify-content: center; - } - - &.bottom-border { - &::after { - content: ""; - position: absolute; - bottom: 0; - width: 98%; - left: 1%; - border-bottom: 1px solid rgba(color(blue1), 0.4); - } - } -} diff --git a/src/components/PageSection/PageSection.tsx b/src/components/PageSection/PageSection.tsx deleted file mode 100644 index e6e7c0b..0000000 --- a/src/components/PageSection/PageSection.tsx +++ /dev/null @@ -1,36 +0,0 @@ -import React from "react"; -import "./PageSection.scss"; -import ColorDiv, { ColorDivProps } from "../ColorDiv/ColorDiv"; - -export interface PageSectionProps { - center?: boolean; - bottomBorder?: boolean; - cardSection?: boolean; // does section contain a grid of cards - fullSize?: boolean; -} -export interface PageSectionState { } - -class PageSection extends React.Component { - render() { - const { children, className, center, bottomBorder, cardSection, fullSize, ...props } = this.props; - const centerClass = center ? "center" : ""; - const borderClass = bottomBorder ? "bottom-border" : ""; - const cardsClass = cardSection ? "card-section" : ""; - const nonPaddedClass = fullSize ? "" : "padded"; - const classNames = [ - "page-section", - centerClass, - borderClass, - cardsClass, - nonPaddedClass - ]; - if (className) classNames.push(className); - return ( - - {children} - - ); - } -} - -export default PageSection; diff --git a/src/components/PageSection/index.ts b/src/components/PageSection/index.ts deleted file mode 100644 index f3fe81c..0000000 --- a/src/components/PageSection/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import PageSection from "./PageSection"; -export default PageSection; diff --git a/src/components/Ribbon/Ribbon.scss b/src/components/Ribbon/Ribbon.scss deleted file mode 100644 index f85144f..0000000 --- a/src/components/Ribbon/Ribbon.scss +++ /dev/null @@ -1,24 +0,0 @@ -@import "../../assets/scss/globals"; - - -.ribbon { - display: flex; - flex-flow: row nowrap; - align-items: flex-end; - text-align: center; - justify-content: center; - margin: auto; - - p { - font-size: 2rem; - font-weight: 100; - line-height: 30px; - margin-block-start: 0; - margin-block-end: 0; - } - - @media screen and (max-width: 600px - 1px) { - flex-flow: column nowrap; - align-items: center; - } -} diff --git a/src/components/Ribbon/Ribbon.tsx b/src/components/Ribbon/Ribbon.tsx deleted file mode 100644 index 240bb27..0000000 --- a/src/components/Ribbon/Ribbon.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; -import "./Ribbon.scss"; - -export interface RibbonProps {} -export interface RibbonState {} - -class Ribbon extends React.Component { - render() { - return ( -
- {this.props.children} -
- ); - } -} - -export default Ribbon; diff --git a/src/components/Ribbon/index.ts b/src/components/Ribbon/index.ts deleted file mode 100644 index 896a201..0000000 --- a/src/components/Ribbon/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import Ribbon from "./Ribbon"; -export default Ribbon; diff --git a/src/components/SectionDividerWidget/index.ts b/src/components/SectionDividerWidget/index.ts deleted file mode 100644 index 27d7f9c..0000000 --- a/src/components/SectionDividerWidget/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import SectionDividerWidget from "./SectionDividerWidget"; -export default SectionDividerWidget; diff --git a/src/components/Sections/CTASection.tsx b/src/components/Sections/CTASection.tsx new file mode 100644 index 0000000..5ba27c0 --- /dev/null +++ b/src/components/Sections/CTASection.tsx @@ -0,0 +1,104 @@ + +import React from "react"; +import styled from "styled-components"; +import { colors } from "@theme/colors"; +import Anchor from "@components/Anchor"; + +const Section = styled.section<{ colors: string }>` + ${(p) => p.colors} + + display: flex; + justify-content: center; + text-align: center; + align-items: baseline; + padding: 2rem 0; + + flex-direction: row; + @media screen and (max-width: 600px) { + flex-direction: column; + } + + a { + color: inherit; + } + + & > a { + font-weight: 700; + text-decoration: none; + margin: 0.5rem 1rem 0; + font-size: 1rem; + text-transform: uppercase; + letter-spacing: 0.1rem; + } + + & > h1 { + a { + text-decoration: underline; + } + a:hover { + text-decoration: none; + } + } +`; + +type Colors = "orange1" | "lightBlue" | "darkBlue" | "blue1" | "lightTurquoise"; + +interface CTASectionProps { + bgColor?: Colors; + link?: string; + linkText?: string; +} + +const textColors = (bgColor: Colors) => { + switch(bgColor) { + case "orange1": return ` +color: ${colors.white}; +background-color: ${colors[bgColor]}; +a:hover { + color: ${colors.darkBlue}; +} +`; + + case "darkBlue": return ` +background-color: ${colors[bgColor]}; +color: ${colors.white}; + `; + + case "lightBlue": return ` +background-color: ${colors[bgColor]}; +color: ${colors.darkBlue}; +a:hover { + color: ${colors.white}; +} + `; + + case "lightTurquoise": return ` +background-color: ${colors[bgColor]}; +color: ${colors.darkBlue}; +a:hover { + color: ${colors.white}; +} + `; + case "blue1": return ` +background-color: ${colors[bgColor]}; +color: ${colors.white}; +a:hover { + color: ${colors.darkBlue}; +} + `; + default: return "" + } +} + +const CTASection: React.FC = ({ bgColor = "orange1", link, linkText, children }) => ( +
+

{children}

+ {link && ( + +

{linkText}

+
+ )} +
+); + +export default CTASection; \ No newline at end of file diff --git a/src/components/Sections/CardSection.tsx b/src/components/Sections/CardSection.tsx new file mode 100644 index 0000000..ac32fc7 --- /dev/null +++ b/src/components/Sections/CardSection.tsx @@ -0,0 +1,37 @@ +import styled from "styled-components"; +import { colors } from "@theme/colors"; + +const CardSection = styled.section` + + h6 { + color: ${colors.orange1}; + } + + display: flex; + flex-flow: row wrap; + padding: 2rem 1rem; + + @media screen and (max-width: 800px) { + flex-flow: column nowrap; + } + + & > aside { + margin-left: auto; + } + + & > * { + width: calc(25% - 2rem); + + @media screen and (min-width: 800px) and (max-width: 1200px) { + width: calc(50% - 2rem); + margin-bottom: 2rem; + } + + @media screen and (max-width: 800px) { + width: 100%; + margin: 0 0 3rem 0; + } + } +`; + +export default CardSection; diff --git a/src/components/Sections/FullWidthSection.tsx b/src/components/Sections/FullWidthSection.tsx new file mode 100644 index 0000000..effd10a --- /dev/null +++ b/src/components/Sections/FullWidthSection.tsx @@ -0,0 +1,32 @@ +import React from "react"; +import styled from "styled-components"; + +const StyledSection = styled.section` + display: grid; + padding: 24px; + + grid-template-columns: 1fr auto; + grid-template-areas: + "title" + "content"; + + * { + grid-area: content; + } + + & > h1, + & > h2, + & > h3, + & > h4, + & > h5, + & > h6 { + text-align: center; + grid-area: title; + } +`; + +const FullWidthSection: React.FC = (props) => ( + +) + +export default FullWidthSection; diff --git a/src/components/Sections/TextSection.tsx b/src/components/Sections/TextSection.tsx new file mode 100644 index 0000000..5d8af42 --- /dev/null +++ b/src/components/Sections/TextSection.tsx @@ -0,0 +1,83 @@ +import React from "react"; +import styled from "styled-components"; +import { colors } from "@theme/colors"; + +const StyledSection = styled.section` + display: grid; + padding: 24px; + + grid-template-columns: 1fr 2fr 1fr; + grid-template-rows: 1fr auto; + grid-template-areas: + "title title title" + "leftaside content rightaside"; + + @media screen and (max-width: 800px) { + grid-template-columns: 1fr; + grid-template-rows: 1fr auto auto auto; + grid-template-areas: + "title" + "content" + "rightaside" + "leftaside"; + } + + h6 { + color: ${colors.orange1}; + } + + & > h1, + & > h2, + & > h3, + & > h4, + & > h5, + & > h6 { + text-align: center; + grid-area: title; + } + + + & > div, p { + grid-area: content; + max-width: 1000px; + + } + + & > aside { + display: flex; + flex-direction: column; + justify-content: space-between; + + @media screen and (max-width: 800px) { + align-items: center; + max-width: unset; + margin-left: unset; + margin-top: 48px; + + * { + flex: 1; + } + } + } + + & > aside:first-of-type { + grid-area: rightaside; + padding-left: 24px; + @media screen and (max-width: 800px) { + padding-left: 0; + } + } + & > aside:nth-of-type(2) { + grid-area: leftaside; + padding-right: 24px; + @media screen and (max-width: 800px) { + padding-left: 0; + } + } +`; + +const TextSection: React.FC = (props) => ( + +) + +export default TextSection; diff --git a/src/components/SponsorReel/SponsorReel.scss b/src/components/SponsorReel/SponsorReel.scss deleted file mode 100644 index 6652cef..0000000 --- a/src/components/SponsorReel/SponsorReel.scss +++ /dev/null @@ -1,35 +0,0 @@ -@import "../../assets/scss/globals"; - - -.sponsor-reel { - text-align: center; - - h3 { - text-transform: uppercase; - letter-spacing: 2px; - font-weight: 500; - color: color(dark-blue); - margin: 1rem 0 4rem; - font-size: 14px; - - @media screen and (max-width: 1200px - 1px) { - font-size: 16px; - } - } - - a { - color: color(blue1); - text-decoration: underline; - } - - &-logos { - display: flex; - flex-flow: row wrap; - justify-content: center; - margin-bottom: 3rem; - - img { - margin: 0.5rem 0.5rem; - } - } -} diff --git a/src/components/SponsorReel/SponsorReel.tsx b/src/components/SponsorReel/SponsorReel.tsx deleted file mode 100644 index 694cc3d..0000000 --- a/src/components/SponsorReel/SponsorReel.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import React from "react"; -import "./SponsorReel.scss"; -import TextAnchor from "../TextAnchor"; -import Anchor from "../Anchor"; - -export interface SponsorReelProps { } -export interface SponsorReelState { } - -class SponsorReel extends React.Component { - render() { - return ( -
-

Yhteistyössä

-
- - - - - -
- Haluatko kuulla lisää yhteistyöstä kanssamme? -
- ); - } -} - -export default SponsorReel; diff --git a/src/components/SponsorReel/index.ts b/src/components/SponsorReel/index.ts deleted file mode 100644 index 3a66715..0000000 --- a/src/components/SponsorReel/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import SponsorReel from "./SponsorReel"; -export default SponsorReel; diff --git a/src/components/TextAnchor.tsx b/src/components/TextAnchor.tsx new file mode 100644 index 0000000..99e608b --- /dev/null +++ b/src/components/TextAnchor.tsx @@ -0,0 +1,30 @@ +import React from "react"; +import styled from "styled-components"; +import { Colors, colorToClass, hoverColorToClass } from "@theme/colors"; +import Anchor from "./Anchor"; +import classNames from "classnames"; + +const A = styled(Anchor)` + text-decoration: underline; + font-weight: 600; +`; + +interface TextAnchorProps { + to: string; + textColor?: Colors; + hoverColor?: Colors; +} + +const TextAnchor: React.FC = ({ children, to, textColor, hoverColor }) => { + const classes = classNames( + colorToClass(textColor), + hoverColorToClass(hoverColor), + ) + return ( + + {children} + + ); +} + +export default TextAnchor; diff --git a/src/components/TextAnchor/TextAnchor.scss b/src/components/TextAnchor/TextAnchor.scss deleted file mode 100644 index ad1d68d..0000000 --- a/src/components/TextAnchor/TextAnchor.scss +++ /dev/null @@ -1,18 +0,0 @@ -@import "../../assets/scss/globals"; - -.text-anchor { - text-decoration: underline; - font-weight: 600; - - &__no-weight { - font-weight: 100; - } - - &__small { - text-decoration: none; - margin: 0 1rem; - font-size: 0.8rem; - text-transform: uppercase; - margin-top: 10px; - } -} diff --git a/src/components/TextAnchor/TextAnchor.tsx b/src/components/TextAnchor/TextAnchor.tsx deleted file mode 100644 index 193fab5..0000000 --- a/src/components/TextAnchor/TextAnchor.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import React from "react"; -import "./TextAnchor.scss"; -import { Colors, colorToClass, hoverColorToClass } from "@theme/colors"; -import Anchor from "../Anchor"; -import classNames from "classnames"; - - -export type TextSize = - "normal" | - "small" | - "large" | - "ribbon" | - "small-ribbon"; - - -const textSizeToClassName = new Map([ - ["normal", ""], - ["small", "text-anchor__small"], - ["large", "text-anchor__large"], - ["small-ribbon", "text-anchor__no-weight text-anchor__small"], - ["ribbon", "text-anchor__no-weight"], -]); - -export interface TextAnchorProps { - size?: TextSize; - to: string; - textColor?: Colors; - hoverColor?: Colors; -} -export interface TextAnchorState { } - -class TextAnchor extends React.Component { - render() { - const { children, size, to, textColor, hoverColor } = this.props; - const classes = classNames( - "text-anchor", - colorToClass(textColor), - hoverColorToClass(hoverColor), - textSizeToClassName.get(size) - ) - return ( - - {children} - - ); - } -} - -export default TextAnchor; diff --git a/src/components/TextAnchor/index.ts b/src/components/TextAnchor/index.ts deleted file mode 100644 index cf2f85a..0000000 --- a/src/components/TextAnchor/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import TextAnchor from "./TextAnchor"; -export default TextAnchor; diff --git a/src/components/Checkbox/Checkbox.tsx b/src/components/Widgets/Checkbox/Checkbox.tsx similarity index 91% rename from src/components/Checkbox/Checkbox.tsx rename to src/components/Widgets/Checkbox/Checkbox.tsx index 451e962..d19589c 100644 --- a/src/components/Checkbox/Checkbox.tsx +++ b/src/components/Widgets/Checkbox/Checkbox.tsx @@ -1,5 +1,6 @@ import React from "react"; import styled from "styled-components"; +import { colors } from "@theme/colors"; const Container = styled.label` display: block; @@ -31,7 +32,7 @@ const CustomCBoxElement = styled.span<{checked?: boolean}>` left: 0; height: 1em; width: 1em; - background-color: ${(props) => props.checked ? "#57b2df" : "#efece4"}; /* blue1 or grey2 */ + background-color: ${(props) => props.checked ? colors.blue1 : colors.grey2}; &:focus &:before { transition: box-shadow 150ms ease; @@ -43,7 +44,7 @@ const CustomCBoxElement = styled.span<{checked?: boolean}>` left: -4px; right: -4px; border-radius: 6px; - border: 2px solid color(blue); + border: 2px solid ${colors.blue1}; } `; diff --git a/src/components/Checkbox/Checkboxes.tsx b/src/components/Widgets/Checkbox/Checkboxes.tsx similarity index 100% rename from src/components/Checkbox/Checkboxes.tsx rename to src/components/Widgets/Checkbox/Checkboxes.tsx diff --git a/src/components/DatetimeWidget/DatetimeWidget.scss b/src/components/Widgets/DatetimeWidget/DatetimeWidget.scss similarity index 100% rename from src/components/DatetimeWidget/DatetimeWidget.scss rename to src/components/Widgets/DatetimeWidget/DatetimeWidget.scss diff --git a/src/components/DatetimeWidget/DatetimeWidget.tsx b/src/components/Widgets/DatetimeWidget/DatetimeWidget.tsx similarity index 100% rename from src/components/DatetimeWidget/DatetimeWidget.tsx rename to src/components/Widgets/DatetimeWidget/DatetimeWidget.tsx diff --git a/src/components/MarkdownEditorWidget.scss b/src/components/Widgets/MarkdownEditorWidget.scss similarity index 100% rename from src/components/MarkdownEditorWidget.scss rename to src/components/Widgets/MarkdownEditorWidget.scss diff --git a/src/components/MarkdownEditorWidget.tsx b/src/components/Widgets/MarkdownEditorWidget.tsx similarity index 100% rename from src/components/MarkdownEditorWidget.tsx rename to src/components/Widgets/MarkdownEditorWidget.tsx diff --git a/src/components/RadioButton/RadioButton.tsx b/src/components/Widgets/RadioButton/RadioButton.tsx similarity index 100% rename from src/components/RadioButton/RadioButton.tsx rename to src/components/Widgets/RadioButton/RadioButton.tsx diff --git a/src/components/RadioButton/RadioButtonWidget.tsx b/src/components/Widgets/RadioButton/RadioButtonWidget.tsx similarity index 100% rename from src/components/RadioButton/RadioButtonWidget.tsx rename to src/components/Widgets/RadioButton/RadioButtonWidget.tsx diff --git a/src/components/SectionDividerWidget/SectionDividerWidget.scss b/src/components/Widgets/SectionDividerWidget/SectionDividerWidget.scss similarity index 100% rename from src/components/SectionDividerWidget/SectionDividerWidget.scss rename to src/components/Widgets/SectionDividerWidget/SectionDividerWidget.scss diff --git a/src/components/SectionDividerWidget/SectionDividerWidget.tsx b/src/components/Widgets/SectionDividerWidget/SectionDividerWidget.tsx similarity index 91% rename from src/components/SectionDividerWidget/SectionDividerWidget.tsx rename to src/components/Widgets/SectionDividerWidget/SectionDividerWidget.tsx index 46e9c3e..9662e9d 100644 --- a/src/components/SectionDividerWidget/SectionDividerWidget.tsx +++ b/src/components/Widgets/SectionDividerWidget/SectionDividerWidget.tsx @@ -1,7 +1,7 @@ import React from "react"; import "./SectionDividerWidget.scss"; -import Icon from "../Icon"; -import { IconType } from "../Icon/Icon"; +import Icon from "../../Icon"; +import { IconType } from "../../Icon/Icon"; export interface SectionDividerWidgetProps { label: string; diff --git a/src/components/SignupQuestionsWidget/OptionsWidget.tsx b/src/components/Widgets/SignupQuestionsWidget/OptionsWidget.tsx similarity index 98% rename from src/components/SignupQuestionsWidget/OptionsWidget.tsx rename to src/components/Widgets/SignupQuestionsWidget/OptionsWidget.tsx index 966757a..623311a 100644 --- a/src/components/SignupQuestionsWidget/OptionsWidget.tsx +++ b/src/components/Widgets/SignupQuestionsWidget/OptionsWidget.tsx @@ -1,6 +1,6 @@ import React from "react"; import { Question, InputProps, optionTypes, SignupQuestionError } from "./index"; -import Checkbox from "@components/Checkbox/Checkbox"; +import Checkbox from "@components/Widgets/Checkbox/Checkbox"; export interface OptionsWidgetProps { inputProps: InputProps; diff --git a/src/components/SignupQuestionsWidget/Question.tsx b/src/components/Widgets/SignupQuestionsWidget/Question.tsx similarity index 100% rename from src/components/SignupQuestionsWidget/Question.tsx rename to src/components/Widgets/SignupQuestionsWidget/Question.tsx diff --git a/src/components/SignupQuestionsWidget/QuestionList.tsx b/src/components/Widgets/SignupQuestionsWidget/QuestionList.tsx similarity index 100% rename from src/components/SignupQuestionsWidget/QuestionList.tsx rename to src/components/Widgets/SignupQuestionsWidget/QuestionList.tsx diff --git a/src/components/SignupQuestionsWidget/SignupQuestionsWidget.scss b/src/components/Widgets/SignupQuestionsWidget/SignupQuestionsWidget.scss similarity index 91% rename from src/components/SignupQuestionsWidget/SignupQuestionsWidget.scss rename to src/components/Widgets/SignupQuestionsWidget/SignupQuestionsWidget.scss index a239ce4..e82f054 100644 --- a/src/components/SignupQuestionsWidget/SignupQuestionsWidget.scss +++ b/src/components/Widgets/SignupQuestionsWidget/SignupQuestionsWidget.scss @@ -1,4 +1,4 @@ -@import "../../assets/scss/globals"; +@import "../../../assets/scss/globals"; .signup-questions-widget { diff --git a/src/components/SignupQuestionsWidget/SignupQuestionsWidget.tsx b/src/components/Widgets/SignupQuestionsWidget/SignupQuestionsWidget.tsx similarity index 100% rename from src/components/SignupQuestionsWidget/SignupQuestionsWidget.tsx rename to src/components/Widgets/SignupQuestionsWidget/SignupQuestionsWidget.tsx diff --git a/src/components/SignupQuestionsWidget/TypeWidget.tsx b/src/components/Widgets/SignupQuestionsWidget/TypeWidget.tsx similarity index 100% rename from src/components/SignupQuestionsWidget/TypeWidget.tsx rename to src/components/Widgets/SignupQuestionsWidget/TypeWidget.tsx diff --git a/src/components/SignupQuestionsWidget/index.ts b/src/components/Widgets/SignupQuestionsWidget/index.ts similarity index 100% rename from src/components/SignupQuestionsWidget/index.ts rename to src/components/Widgets/SignupQuestionsWidget/index.ts diff --git a/src/components/index.tsx b/src/components/index.tsx new file mode 100644 index 0000000..3538c91 --- /dev/null +++ b/src/components/index.tsx @@ -0,0 +1,11 @@ +export { default as Card } from "./Card"; +export { default as PageLink } from "./PageLink"; +export { default as Button } from "./Button"; +export { default as TextAnchor } from "./TextAnchor"; +export { default as Divider } from "./Divider"; +export { default as CardSection } from "./Sections/CardSection"; +export { default as CTASection } from "./Sections/CTASection"; +export { default as TextSection } from "./Sections/TextSection"; +export { default as FullWidthSection } from "./Sections/FullWidthSection"; +export { default as InfoBox } from "./InfoBox"; +export { default as Accordion } from "./Accordion/Accordion"; diff --git a/src/index.scss b/src/index.scss index 0820280..a05f45d 100644 --- a/src/index.scss +++ b/src/index.scss @@ -7,11 +7,15 @@ html, body { - font-size: 100%; + font-size: 12pt; background-color: color(dark-blue); height: 100%; font-family: $font; - color: color(white1); +} + +body { + padding: 0; + margin: auto !important; } #root { @@ -19,11 +23,17 @@ body { min-height: 100vh; display: flex; flex-flow: column nowrap; + color: color(black1); + background-color: color(white1); } -body { - padding: 0; - margin: auto !important; +p { + font-size: 1.2rem; + font-weight: 300; + + &.large { + font-size: 2rem; + } } h1 { @@ -32,20 +42,20 @@ h1 { margin-block-start: 0; margin-block-end: 0; - .lg { + &.large { font-size: 2.75rem; } } h2 { - font-size: 1rem; + font-size: 1.2rem; font-weight: 700; letter-spacing: 0.1em; margin-block-start: 0; margin-block-end: 0; text-transform: uppercase; - .lg { + &.large { font-size: 2rem; } } @@ -56,32 +66,32 @@ h3 { margin-block-start: 0; margin-block-end: 0; - .lg { - font-size: 2.3rem; + &.large { + font-size: 2rem; } } h4 { font-size: 1rem; font-weight: 700; - letter-spacing: 0.1rem; + letter-spacing: 0.1em; margin-block-start: 0; margin-block-end: 0; text-transform: uppercase; - .lg { + &.large { font-size: 2rem; } } h5 { - font-size: 1.2rem; + font-size: 1.125rem; font-weight: 600; margin-block-start: 0; margin-block-end: 0; - .lg { - font-size: 2rem; + &.large { + font-size: 2.3rem; } } @@ -93,22 +103,27 @@ h6 { margin-block-end: 0; text-transform: uppercase; - .lg { + &.large { font-size: 2rem; } } -p { - font-size: 16px; - font-weight: 300; +// TODO: List item style » +li { + font-size: 1.2rem; + font-weight: 600; - .lg { + &.large { font-size: 2rem; } } -a, + +a { + text-decoration: underline; + color: color(blue1); +} + a:hover { text-decoration: none; - color: color(white1); } diff --git a/src/models/SignupForm.ts b/src/models/SignupForm.ts index 47667a2..923ee86 100644 --- a/src/models/SignupForm.ts +++ b/src/models/SignupForm.ts @@ -1,7 +1,7 @@ import axios from "axios"; import { getAuthHeader } from "@utils/auth"; const url = `${process.env.API_URL}/signupForm/`; -import { Question } from "@components/SignupQuestionsWidget"; +import { Question } from "@components/Widgets/SignupQuestionsWidget"; export interface SignupForm { id?: number; diff --git a/src/pages/CommonPage.tsx b/src/pages/CommonPage.tsx index fe83558..0cfbe76 100644 --- a/src/pages/CommonPage.tsx +++ b/src/pages/CommonPage.tsx @@ -1,6 +1,6 @@ import React from "react"; import Header from "@components/Header"; -import Footer from "@components/Footer"; +import Footer from "@components/Footer/Footer"; export interface CommonPageProps { page: any; @@ -11,11 +11,11 @@ class CommonPage extends React.Component { render() { const Page = this.props.page; return ( - + <>