diff --git a/client/package-lock.json b/client/package-lock.json index 1d8d27ea..60930cdb 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -8,10 +8,14 @@ "name": "justice40-tool", "version": "1.0.0", "dependencies": { - "@trussworks/react-uswds": "^1.17.0", + "@types/react": "^17.0.1", + "@types/react-dom": "^17.0.1", "gatsby": "^3.4.1", "react": "^17.0.1", "react-dom": "^17.0.1" + }, + "devDependencies": { + "gatsby-cli": "^3.5.0" } }, "node_modules/@ardatan/aggregate-error": { @@ -2175,19 +2179,6 @@ "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz", "integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==" }, - "node_modules/@trussworks/react-uswds": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@trussworks/react-uswds/-/react-uswds-1.17.0.tgz", - "integrity": "sha512-1LI7IcMEUIG4MwIfm0NlTtUf/1AwQbW/vIk9evuSoWkwiK8CpXHOVZXKwalhVrncyDzjf+CpV9PDmlnf747Vvg==", - "engines": { - "node": "10.x - 14.x" - }, - "peerDependencies": { - "react": "^16.x || ^17.x", - "react-dom": "^16.x || ^17.x", - "uswds": "2.10.3" - } - }, "node_modules/@trysound/sax": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", @@ -2390,6 +2381,14 @@ "csstype": "^3.0.2" } }, + "node_modules/@types/react-dom": { + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.5.tgz", + "integrity": "sha512-ikqukEhH4H9gr4iJCmQVNzTB307kROe3XFfHAOTxOXPOw7lAoEXnM5KWTkzeANGL5Ce6ABfiMl/zJBYNi7ObmQ==", + "dependencies": { + "@types/react": "*" + } + }, "node_modules/@types/readable-stream": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.9.tgz", @@ -4156,12 +4155,6 @@ "node": ">=0.10.0" } }, - "node_modules/classlist-polyfill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", - "integrity": "sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4=", - "peer": true - }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -6162,12 +6155,6 @@ "domelementtype": "1" } }, - "node_modules/domready": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz", - "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=", - "peer": true - }, "node_modules/domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", @@ -6216,21 +6203,6 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.732.tgz", "integrity": "sha512-qKD5Pbq+QMk4nea4lMuncUMhpEiQwaJyCW7MrvissnRcBDENhVfDmAqQYRQ3X525oTzhar9Zh1cK0L2d1UKYcw==" }, - "node_modules/elem-dataset": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/elem-dataset/-/elem-dataset-2.0.0.tgz", - "integrity": "sha512-e7gieGopWw5dMdEgythH3lUS7nMizutPDTtkzfQW/q2gCvFnACyNnK3ytCncAXKxdBXQWcXeKaYTTODiMnp8mw==", - "peer": true - }, - "node_modules/element-closest": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/element-closest/-/element-closest-2.0.2.tgz", - "integrity": "sha1-cqdAoQdFM4LijfnOXbtajfD5Zuw=", - "peer": true, - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -11050,12 +11022,6 @@ "node": ">=4.0" } }, - "node_modules/keyboardevent-key-polyfill": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keyboardevent-key-polyfill/-/keyboardevent-key-polyfill-1.1.0.tgz", - "integrity": "sha1-ijGdjkWhMXL8pWKGNy+QwdTHAUw=", - "peer": true - }, "node_modules/keyv": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", @@ -11445,12 +11411,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/matches-selector": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-1.2.0.tgz", - "integrity": "sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA==", - "peer": true - }, "node_modules/md5-file": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz", @@ -14223,18 +14183,6 @@ "node": ">=8.10.0" } }, - "node_modules/receptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/receptor/-/receptor-1.0.0.tgz", - "integrity": "sha1-v1RHfgOH5Evr84VRILvaWt6gj4s=", - "peer": true, - "dependencies": { - "element-closest": "^2.0.1", - "keyboardevent-key-polyfill": "^1.0.2", - "matches-selector": "^1.0.0", - "object-assign": "^4.1.0" - } - }, "node_modules/recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", @@ -14721,12 +14669,6 @@ "node": ">=8" } }, - "node_modules/resolve-id-refs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/resolve-id-refs/-/resolve-id-refs-0.1.0.tgz", - "integrity": "sha1-MSZiS4h0idqPwK6IljL4QTrGw+w=", - "peer": true - }, "node_modules/resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -17311,62 +17253,6 @@ "node": ">=0.10.0" } }, - "node_modules/uswds": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/uswds/-/uswds-2.10.3.tgz", - "integrity": "sha512-krNRzx1jRzOJpuH/qtmQhd5zxnXTaDVqrPNYT99sJbxzWUqjb1zZHh3jFNo+xKDpNuiO0XMPwZwlaSp2YdZ3Ag==", - "peer": true, - "dependencies": { - "classlist-polyfill": "^1.0.3", - "del": "^6.0.0", - "domready": "^1.0.8", - "elem-dataset": "^2.0.0", - "lodash.debounce": "^4.0.7", - "object-assign": "^4.1.1", - "receptor": "^1.0.0", - "resolve-id-refs": "^0.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/uswds/node_modules/del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "peer": true, - "dependencies": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/uswds/node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "peer": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", @@ -20547,12 +20433,6 @@ "resolved": "https://registry.npmjs.org/@tokenizer/token/-/token-0.1.1.tgz", "integrity": "sha512-XO6INPbZCxdprl+9qa/AAbFFOMzzwqYxpjPgLICrMD6C2FCw6qfJOPcBk6JqqPLSaZ/Qx87qn4rpPmPMwaAK6w==" }, - "@trussworks/react-uswds": { - "version": "1.17.0", - "resolved": "https://registry.npmjs.org/@trussworks/react-uswds/-/react-uswds-1.17.0.tgz", - "integrity": "sha512-1LI7IcMEUIG4MwIfm0NlTtUf/1AwQbW/vIk9evuSoWkwiK8CpXHOVZXKwalhVrncyDzjf+CpV9PDmlnf747Vvg==", - "requires": {} - }, "@trysound/sax": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.1.1.tgz", @@ -20749,6 +20629,14 @@ "csstype": "^3.0.2" } }, + "@types/react-dom": { + "version": "17.0.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-17.0.5.tgz", + "integrity": "sha512-ikqukEhH4H9gr4iJCmQVNzTB307kROe3XFfHAOTxOXPOw7lAoEXnM5KWTkzeANGL5Ce6ABfiMl/zJBYNi7ObmQ==", + "requires": { + "@types/react": "*" + } + }, "@types/readable-stream": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/@types/readable-stream/-/readable-stream-2.3.9.tgz", @@ -22091,12 +21979,6 @@ } } }, - "classlist-polyfill": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/classlist-polyfill/-/classlist-polyfill-1.2.0.tgz", - "integrity": "sha1-k1vC39lFiodrJ5YXUUY4vKqWSi4=", - "peer": true - }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -23563,12 +23445,6 @@ "domelementtype": "1" } }, - "domready": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/domready/-/domready-1.0.8.tgz", - "integrity": "sha1-kfJS5Ze2Wvd+dFriTdAYXV4m1Yw=", - "peer": true - }, "domutils": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", @@ -23611,18 +23487,6 @@ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.732.tgz", "integrity": "sha512-qKD5Pbq+QMk4nea4lMuncUMhpEiQwaJyCW7MrvissnRcBDENhVfDmAqQYRQ3X525oTzhar9Zh1cK0L2d1UKYcw==" }, - "elem-dataset": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/elem-dataset/-/elem-dataset-2.0.0.tgz", - "integrity": "sha512-e7gieGopWw5dMdEgythH3lUS7nMizutPDTtkzfQW/q2gCvFnACyNnK3ytCncAXKxdBXQWcXeKaYTTODiMnp8mw==", - "peer": true - }, - "element-closest": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/element-closest/-/element-closest-2.0.2.tgz", - "integrity": "sha1-cqdAoQdFM4LijfnOXbtajfD5Zuw=", - "peer": true - }, "emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -27310,12 +27174,6 @@ "object.assign": "^4.1.2" } }, - "keyboardevent-key-polyfill": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/keyboardevent-key-polyfill/-/keyboardevent-key-polyfill-1.1.0.tgz", - "integrity": "sha1-ijGdjkWhMXL8pWKGNy+QwdTHAUw=", - "peer": true - }, "keyv": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", @@ -27636,12 +27494,6 @@ "repeat-string": "^1.0.0" } }, - "matches-selector": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/matches-selector/-/matches-selector-1.2.0.tgz", - "integrity": "sha512-c4vLwYWyl+Ji+U43eU/G5FwxWd4ZH0ePUsFs5y0uwD9HUEFBXUQ1zUUan+78IpRD+y4pUfG0nAzNM292K7ItvA==", - "peer": true - }, "md5-file": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz", @@ -29710,18 +29562,6 @@ "picomatch": "^2.2.1" } }, - "receptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/receptor/-/receptor-1.0.0.tgz", - "integrity": "sha1-v1RHfgOH5Evr84VRILvaWt6gj4s=", - "peer": true, - "requires": { - "element-closest": "^2.0.1", - "keyboardevent-key-polyfill": "^1.0.2", - "matches-selector": "^1.0.0", - "object-assign": "^4.1.0" - } - }, "recursive-readdir": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", @@ -30110,12 +29950,6 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==" }, - "resolve-id-refs": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/resolve-id-refs/-/resolve-id-refs-0.1.0.tgz", - "integrity": "sha1-MSZiS4h0idqPwK6IljL4QTrGw+w=", - "peer": true - }, "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", @@ -32094,49 +31928,6 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, - "uswds": { - "version": "2.10.3", - "resolved": "https://registry.npmjs.org/uswds/-/uswds-2.10.3.tgz", - "integrity": "sha512-krNRzx1jRzOJpuH/qtmQhd5zxnXTaDVqrPNYT99sJbxzWUqjb1zZHh3jFNo+xKDpNuiO0XMPwZwlaSp2YdZ3Ag==", - "peer": true, - "requires": { - "classlist-polyfill": "^1.0.3", - "del": "^6.0.0", - "domready": "^1.0.8", - "elem-dataset": "^2.0.0", - "lodash.debounce": "^4.0.7", - "object-assign": "^4.1.1", - "receptor": "^1.0.0", - "resolve-id-refs": "^0.1.0" - }, - "dependencies": { - "del": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/del/-/del-6.0.0.tgz", - "integrity": "sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==", - "peer": true, - "requires": { - "globby": "^11.0.1", - "graceful-fs": "^4.2.4", - "is-glob": "^4.0.1", - "is-path-cwd": "^2.2.0", - "is-path-inside": "^3.0.2", - "p-map": "^4.0.0", - "rimraf": "^3.0.2", - "slash": "^3.0.0" - } - }, - "p-map": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "peer": true, - "requires": { - "aggregate-error": "^3.0.0" - } - } - } - }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", diff --git a/client/package.json b/client/package.json index 302078c5..78329ff3 100644 --- a/client/package.json +++ b/client/package.json @@ -14,8 +14,12 @@ "serve": "gatsby serve", "clean": "gatsby clean" }, + "devDependencies": { + "gatsby-cli": "^3.5.0" + }, "dependencies": { - "@trussworks/react-uswds": "^1.17.0", + "@types/react": "^17.0.1", + "@types/react-dom": "^17.0.1", "gatsby": "^3.4.1", "react": "^17.0.1", "react-dom": "^17.0.1" diff --git a/client/src/pages/404.tsx b/client/src/pages/404.tsx new file mode 100644 index 00000000..053ae0e8 --- /dev/null +++ b/client/src/pages/404.tsx @@ -0,0 +1,54 @@ +import * as React from "react" +import { Link } from "gatsby" + +// styles +const pageStyles = { + color: "#232129", + padding: "96px", + fontFamily: "-apple-system, Roboto, sans-serif, serif", +} +const headingStyles = { + marginTop: 0, + marginBottom: 64, + maxWidth: 320, +} + +const paragraphStyles = { + marginBottom: 48, +} +const codeStyles = { + color: "#8A6534", + padding: 4, + backgroundColor: "#FFF4DB", + fontSize: "1.25rem", + borderRadius: 4, +} + +// markup +const NotFoundPage = () => { + return ( +
+ Not found +

Page not found

+

+ Sorry{" "} + + 😔 + {" "} + we couldn’t find what you were looking for. +
+ {process.env.NODE_ENV === "development" ? ( + <> +
+ Try creating a page in src/pages/. +
+ + ) : null} +
+ Go home. +

+
+ ) +} + +export default NotFoundPage diff --git a/client/src/pages/index.tsx b/client/src/pages/index.tsx new file mode 100644 index 00000000..28322bdb --- /dev/null +++ b/client/src/pages/index.tsx @@ -0,0 +1,15 @@ +import * as React from "react" + +// markup +const IndexPage = () => { + return ( + <> +
+ Justice40 +

Justice40

+
+ + ) +} + +export default IndexPage diff --git a/client/tsconfig.json b/client/tsconfig.json new file mode 100644 index 00000000..0e9a024e --- /dev/null +++ b/client/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es6", + "jsx": "preserve", + "lib": ["dom", "es2015", "es2017"], + "strict": true, + "noEmit": true, + "isolatedModules": true, + "esModuleInterop": true, + "skipLibCheck": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "removeComments": false + }, + "include": ["./src/**/*"] + } \ No newline at end of file