feat: various improvements
- add Terms of Service - add dark mode - use cards for blog with excerpt
This commit is contained in:
parent
5df4d34780
commit
df2fd8a520
12 changed files with 1021 additions and 268 deletions
|
|
@ -8,7 +8,7 @@ end_of_line = lf
|
||||||
insert_final_newline = true
|
insert_final_newline = true
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
[*.md]
|
[*.md{,x}]
|
||||||
trim_trailing_whitespace = false
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
[scripts/*]
|
[scripts/*]
|
||||||
|
|
|
||||||
|
|
@ -2,8 +2,10 @@ import type { GatsbyConfig } from "gatsby";
|
||||||
|
|
||||||
const config: GatsbyConfig = {
|
const config: GatsbyConfig = {
|
||||||
siteMetadata: {
|
siteMetadata: {
|
||||||
title: `felschr.com`,
|
title: "felschr's dev blog",
|
||||||
siteUrl: `https://felschr.com`
|
headline: "Engineering software with passion",
|
||||||
|
author: "Felix Schröter",
|
||||||
|
siteUrl: "https://felschr.com",
|
||||||
},
|
},
|
||||||
graphqlTypegen: true,
|
graphqlTypegen: true,
|
||||||
plugins: [
|
plugins: [
|
||||||
|
|
@ -25,7 +27,9 @@ const config: GatsbyConfig = {
|
||||||
{
|
{
|
||||||
resolve: "gatsby-remark-highlight-code",
|
resolve: "gatsby-remark-highlight-code",
|
||||||
options: {
|
options: {
|
||||||
terminal: "none"
|
terminal: "carbon",
|
||||||
|
theme: "one-dark",
|
||||||
|
lineNumbers: true,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
@ -34,6 +38,7 @@ const config: GatsbyConfig = {
|
||||||
"gatsby-plugin-mdx-frontmatter",
|
"gatsby-plugin-mdx-frontmatter",
|
||||||
"gatsby-plugin-sharp",
|
"gatsby-plugin-sharp",
|
||||||
"gatsby-transformer-sharp",
|
"gatsby-transformer-sharp",
|
||||||
|
"gatsby-plugin-mdx-source-name",
|
||||||
{
|
{
|
||||||
resolve: "gatsby-source-filesystem",
|
resolve: "gatsby-source-filesystem",
|
||||||
options: {
|
options: {
|
||||||
|
|
|
||||||
706
package-lock.json
generated
706
package-lock.json
generated
|
|
@ -7,18 +7,22 @@
|
||||||
"": {
|
"": {
|
||||||
"name": "felschr.com",
|
"name": "felschr.com",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@deckdeckgo/highlight-code": "^3.6.0",
|
"@deckdeckgo/highlight-code": "^3.6.0",
|
||||||
"@emotion/react": "^11.10.0",
|
"@emotion/react": "^11.10.4",
|
||||||
"@emotion/styled": "^11.10.0",
|
"@emotion/styled": "^11.10.4",
|
||||||
"@mdx-js/mdx": "^1.6.22",
|
"@mdx-js/mdx": "^1.6.22",
|
||||||
"@mdx-js/react": "^1.6.22",
|
"@mdx-js/react": "^1.6.22",
|
||||||
|
"@mui/icons-material": "^5.10.6",
|
||||||
|
"@mui/material": "^5.10.8",
|
||||||
"gatsby": "^4.19.2",
|
"gatsby": "^4.19.2",
|
||||||
"gatsby-plugin-emotion": "^7.19.0",
|
"gatsby-plugin-emotion": "^7.19.0",
|
||||||
"gatsby-plugin-image": "^2.19.0",
|
"gatsby-plugin-image": "^2.19.0",
|
||||||
"gatsby-plugin-manifest": "^4.19.0",
|
"gatsby-plugin-manifest": "^4.19.0",
|
||||||
"gatsby-plugin-mdx": "^3.19.0",
|
"gatsby-plugin-mdx": "^3.19.0",
|
||||||
"gatsby-plugin-mdx-frontmatter": "^0.0.4",
|
"gatsby-plugin-mdx-frontmatter": "^0.0.4",
|
||||||
|
"gatsby-plugin-mdx-source-name": "^1.0.1",
|
||||||
"gatsby-plugin-react-helmet": "^5.19.0",
|
"gatsby-plugin-react-helmet": "^5.19.0",
|
||||||
"gatsby-plugin-sharp": "^4.19.0",
|
"gatsby-plugin-sharp": "^4.19.0",
|
||||||
"gatsby-plugin-sitemap": "^5.19.0",
|
"gatsby-plugin-sitemap": "^5.19.0",
|
||||||
|
|
@ -1790,9 +1794,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@babel/runtime": {
|
"node_modules/@babel/runtime": {
|
||||||
"version": "7.18.9",
|
"version": "7.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz",
|
||||||
"integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
|
"integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
},
|
},
|
||||||
|
|
@ -1928,9 +1932,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@emotion/cache": {
|
"node_modules/@emotion/cache": {
|
||||||
"version": "11.10.0",
|
"version": "11.10.3",
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.3.tgz",
|
||||||
"integrity": "sha512-3FoUWnDbHWg/pXGCvL46jvpOSJP0xvRZLY8khUcUHGOBcp0S/MCIk+osp84/dby2Ctahw/Ev4KTHWkY3i0g39g==",
|
"integrity": "sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@emotion/memoize": "^0.8.0",
|
"@emotion/memoize": "^0.8.0",
|
||||||
"@emotion/sheet": "^1.2.0",
|
"@emotion/sheet": "^1.2.0",
|
||||||
|
|
@ -1958,14 +1962,15 @@
|
||||||
"integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA=="
|
"integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA=="
|
||||||
},
|
},
|
||||||
"node_modules/@emotion/react": {
|
"node_modules/@emotion/react": {
|
||||||
"version": "11.10.0",
|
"version": "11.10.4",
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.4.tgz",
|
||||||
"integrity": "sha512-K6z9zlHxxBXwN8TcpwBKcEsBsOw4JWCCmR+BeeOWgqp8GIU1yA2Odd41bwdAAr0ssbQrbJbVnndvv7oiv1bZeQ==",
|
"integrity": "sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"@emotion/babel-plugin": "^11.10.0",
|
"@emotion/babel-plugin": "^11.10.0",
|
||||||
"@emotion/cache": "^11.10.0",
|
"@emotion/cache": "^11.10.0",
|
||||||
"@emotion/serialize": "^1.1.0",
|
"@emotion/serialize": "^1.1.0",
|
||||||
|
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
|
||||||
"@emotion/utils": "^1.2.0",
|
"@emotion/utils": "^1.2.0",
|
||||||
"@emotion/weak-memoize": "^0.3.0",
|
"@emotion/weak-memoize": "^0.3.0",
|
||||||
"hoist-non-react-statics": "^3.3.1"
|
"hoist-non-react-statics": "^3.3.1"
|
||||||
|
|
@ -2001,14 +2006,15 @@
|
||||||
"integrity": "sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w=="
|
"integrity": "sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w=="
|
||||||
},
|
},
|
||||||
"node_modules/@emotion/styled": {
|
"node_modules/@emotion/styled": {
|
||||||
"version": "11.10.0",
|
"version": "11.10.4",
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.4.tgz",
|
||||||
"integrity": "sha512-V9oaEH6V4KePeQpgUE83i8ht+4Ri3E8Djp/ZPJ4DQlqWhSKITvgzlR3/YQE2hdfP4Jw3qVRkANJz01LLqK9/TA==",
|
"integrity": "sha512-pRl4R8Ez3UXvOPfc2bzIoV8u9P97UedgHS4FPX594ntwEuAMA114wlaHvOK24HB48uqfXiGlYIZYCxVJ1R1ttQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"@emotion/babel-plugin": "^11.10.0",
|
"@emotion/babel-plugin": "^11.10.0",
|
||||||
"@emotion/is-prop-valid": "^1.2.0",
|
"@emotion/is-prop-valid": "^1.2.0",
|
||||||
"@emotion/serialize": "^1.1.0",
|
"@emotion/serialize": "^1.1.0",
|
||||||
|
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
|
||||||
"@emotion/utils": "^1.2.0"
|
"@emotion/utils": "^1.2.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
|
|
@ -2030,6 +2036,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz",
|
||||||
"integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw=="
|
"integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw=="
|
||||||
},
|
},
|
||||||
|
"node_modules/@emotion/use-insertion-effect-with-fallbacks": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.8.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@emotion/utils": {
|
"node_modules/@emotion/utils": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz",
|
||||||
|
|
@ -2098,6 +2112,17 @@
|
||||||
"node": ">= 4"
|
"node": ">= 4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@eslint/eslintrc/node_modules/type-fest": {
|
||||||
|
"version": "0.20.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
||||||
|
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": {
|
"node_modules/@gatsbyjs/parcel-namer-relative-to-cwd": {
|
||||||
"version": "1.4.0",
|
"version": "1.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/@gatsbyjs/parcel-namer-relative-to-cwd/-/parcel-namer-relative-to-cwd-1.4.0.tgz",
|
||||||
|
|
@ -2423,11 +2448,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@graphql-tools/import": {
|
"node_modules/@graphql-tools/import": {
|
||||||
"version": "6.7.1",
|
"version": "6.7.6",
|
||||||
"resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.6.tgz",
|
||||||
"integrity": "sha512-StLosFVhdw+eZkL+v9dBabszxCAZtEYW4Oy1+750fDkH39GrmzOB8mWiYna7rm9+GMisC9atJtXuAfMF02Aoag==",
|
"integrity": "sha512-WtUyiO2qCaK/H4u81zAw/NbBvCOzwKl4N+Vl+FqrFCzYobscwL6x6roePyoXM1O3+JJIIn3CETv4kg4kwxaBVw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@graphql-tools/utils": "8.9.0",
|
"@graphql-tools/utils": "8.12.0",
|
||||||
"resolve-from": "5.0.0",
|
"resolve-from": "5.0.0",
|
||||||
"tslib": "^2.4.0"
|
"tslib": "^2.4.0"
|
||||||
},
|
},
|
||||||
|
|
@ -2435,6 +2460,17 @@
|
||||||
"graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
|
"graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@graphql-tools/import/node_modules/@graphql-tools/utils": {
|
||||||
|
"version": "8.12.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.12.0.tgz",
|
||||||
|
"integrity": "sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw==",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.4.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@graphql-tools/json-file-loader": {
|
"node_modules/@graphql-tools/json-file-loader": {
|
||||||
"version": "6.2.6",
|
"version": "6.2.6",
|
||||||
"resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz",
|
"resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.6.tgz",
|
||||||
|
|
@ -3479,6 +3515,262 @@
|
||||||
"win32"
|
"win32"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"node_modules/@mui/base": {
|
||||||
|
"version": "5.0.0-alpha.100",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.100.tgz",
|
||||||
|
"integrity": "sha512-bSoJEKCENtmJrJDECHUe9PiqztIUACuSskyqw9ypqE7Dz3WxL3e8puFsWBkUsz+WOCjXh4B4Xljn88Ucxxv5HA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@emotion/is-prop-valid": "^1.2.0",
|
||||||
|
"@mui/types": "^7.2.0",
|
||||||
|
"@mui/utils": "^5.10.6",
|
||||||
|
"@popperjs/core": "^2.11.6",
|
||||||
|
"clsx": "^1.2.1",
|
||||||
|
"prop-types": "^15.8.1",
|
||||||
|
"react-is": "^18.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/mui"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/react": "^17.0.0 || ^18.0.0",
|
||||||
|
"react": "^17.0.0 || ^18.0.0",
|
||||||
|
"react-dom": "^17.0.0 || ^18.0.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@types/react": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mui/base/node_modules/react-is": {
|
||||||
|
"version": "18.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
||||||
|
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
|
||||||
|
},
|
||||||
|
"node_modules/@mui/core-downloads-tracker": {
|
||||||
|
"version": "5.10.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.8.tgz",
|
||||||
|
"integrity": "sha512-V5D7OInO4P9PdT/JACg7fwjbOORm3GklaMVgdGomjyxiyetgRND5CC9r35e1LK/DqHdoyDuhbFzdfrqWtpmEIw==",
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/mui"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mui/icons-material": {
|
||||||
|
"version": "5.10.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.6.tgz",
|
||||||
|
"integrity": "sha512-QwxdRmLA46S94B0hExPDx0td+A2unF+33bQ6Cs+lNpJKVsm1YeHwNdYXYcnpWeHeQQ07055OXl7IB2GKDd0MfA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.19.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/mui"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@mui/material": "^5.0.0",
|
||||||
|
"@types/react": "^17.0.0 || ^18.0.0",
|
||||||
|
"react": "^17.0.0 || ^18.0.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@types/react": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mui/material": {
|
||||||
|
"version": "5.10.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.8.tgz",
|
||||||
|
"integrity": "sha512-sF/Ka0IJjGXV52zoT4xAWEqXVRjNYbIjATo9L4Q5oQC5iJpGrKJFY16uNtWWB0+vp/nayAuPGZHrxtV+t3ecdQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@mui/base": "5.0.0-alpha.100",
|
||||||
|
"@mui/core-downloads-tracker": "^5.10.8",
|
||||||
|
"@mui/system": "^5.10.8",
|
||||||
|
"@mui/types": "^7.2.0",
|
||||||
|
"@mui/utils": "^5.10.6",
|
||||||
|
"@types/react-transition-group": "^4.4.5",
|
||||||
|
"clsx": "^1.2.1",
|
||||||
|
"csstype": "^3.1.1",
|
||||||
|
"prop-types": "^15.8.1",
|
||||||
|
"react-is": "^18.2.0",
|
||||||
|
"react-transition-group": "^4.4.5"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/mui"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@emotion/react": "^11.5.0",
|
||||||
|
"@emotion/styled": "^11.3.0",
|
||||||
|
"@types/react": "^17.0.0 || ^18.0.0",
|
||||||
|
"react": "^17.0.0 || ^18.0.0",
|
||||||
|
"react-dom": "^17.0.0 || ^18.0.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@emotion/react": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@emotion/styled": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@types/react": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mui/material/node_modules/react-is": {
|
||||||
|
"version": "18.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
||||||
|
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
|
||||||
|
},
|
||||||
|
"node_modules/@mui/private-theming": {
|
||||||
|
"version": "5.10.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.6.tgz",
|
||||||
|
"integrity": "sha512-I/W0QyTLRdEx6py3lKAquKO/rNF/7j+nIOM/xCyI9kU0fcotVTcTY08mKMsS6vrzdWpi6pAkD0wP0KwWy5R5VA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@mui/utils": "^5.10.6",
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/mui"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/react": "^17.0.0 || ^18.0.0",
|
||||||
|
"react": "^17.0.0 || ^18.0.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@types/react": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mui/styled-engine": {
|
||||||
|
"version": "5.10.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.8.tgz",
|
||||||
|
"integrity": "sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@emotion/cache": "^11.10.3",
|
||||||
|
"csstype": "^3.1.1",
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/mui"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@emotion/react": "^11.4.1",
|
||||||
|
"@emotion/styled": "^11.3.0",
|
||||||
|
"react": "^17.0.0 || ^18.0.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@emotion/react": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@emotion/styled": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mui/system": {
|
||||||
|
"version": "5.10.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.8.tgz",
|
||||||
|
"integrity": "sha512-hRQ354zcrYP/KHqK8FheICSvE9raQaUgQaV+A3oD4JETaFUCVI9Ytt+RcQYgTqx02xlCXIjl8LK1rPjTneySqw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@mui/private-theming": "^5.10.6",
|
||||||
|
"@mui/styled-engine": "^5.10.8",
|
||||||
|
"@mui/types": "^7.2.0",
|
||||||
|
"@mui/utils": "^5.10.6",
|
||||||
|
"clsx": "^1.2.1",
|
||||||
|
"csstype": "^3.1.1",
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/mui"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@emotion/react": "^11.5.0",
|
||||||
|
"@emotion/styled": "^11.3.0",
|
||||||
|
"@types/react": "^17.0.0 || ^18.0.0",
|
||||||
|
"react": "^17.0.0 || ^18.0.0"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@emotion/react": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@emotion/styled": {
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"@types/react": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mui/types": {
|
||||||
|
"version": "7.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz",
|
||||||
|
"integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"@types/react": "*"
|
||||||
|
},
|
||||||
|
"peerDependenciesMeta": {
|
||||||
|
"@types/react": {
|
||||||
|
"optional": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mui/utils": {
|
||||||
|
"version": "5.10.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.6.tgz",
|
||||||
|
"integrity": "sha512-g0Qs8xN/MW2M3fLL8197h5J2VB9U+49fLlnKKqC6zy/yus5cZwdT+Gwec+wUMxgwQoxMDn+J8oDWAn28kEOR/Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@types/prop-types": "^15.7.5",
|
||||||
|
"@types/react-is": "^16.7.1 || ^17.0.0",
|
||||||
|
"prop-types": "^15.8.1",
|
||||||
|
"react-is": "^18.2.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12.0.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/mui"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": "^17.0.0 || ^18.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@mui/utils/node_modules/react-is": {
|
||||||
|
"version": "18.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
||||||
|
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
|
||||||
|
},
|
||||||
"node_modules/@nodelib/fs.scandir": {
|
"node_modules/@nodelib/fs.scandir": {
|
||||||
"version": "2.1.5",
|
"version": "2.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||||
|
|
@ -4124,6 +4416,17 @@
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@parcel/packager-js/node_modules/type-fest": {
|
||||||
|
"version": "0.20.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
||||||
|
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@parcel/packager-raw": {
|
"node_modules/@parcel/packager-raw": {
|
||||||
"version": "2.6.2",
|
"version": "2.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.6.2.tgz",
|
"resolved": "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.6.2.tgz",
|
||||||
|
|
@ -4558,6 +4861,15 @@
|
||||||
"node": ">= 8"
|
"node": ">= 8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@popperjs/core": {
|
||||||
|
"version": "2.11.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz",
|
||||||
|
"integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==",
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/popperjs"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@sideway/address": {
|
"node_modules/@sideway/address": {
|
||||||
"version": "4.1.4",
|
"version": "4.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
|
||||||
|
|
@ -4882,6 +5194,22 @@
|
||||||
"@types/react": "*"
|
"@types/react": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@types/react-is": {
|
||||||
|
"version": "17.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz",
|
||||||
|
"integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/react": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/@types/react-transition-group": {
|
||||||
|
"version": "4.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||||
|
"integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@types/react": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@types/responselike": {
|
"node_modules/@types/responselike": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
|
||||||
|
|
@ -6295,6 +6623,17 @@
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/boxen/node_modules/type-fest": {
|
||||||
|
"version": "0.20.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
||||||
|
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/brace-expansion": {
|
"node_modules/brace-expansion": {
|
||||||
"version": "1.1.11",
|
"version": "1.1.11",
|
||||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||||
|
|
@ -7068,6 +7407,14 @@
|
||||||
"url": "https://github.com/sponsors/sindresorhus"
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/clsx": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/coa": {
|
"node_modules/coa": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
|
||||||
|
|
@ -7850,9 +8197,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/csstype": {
|
"node_modules/csstype": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
|
||||||
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
|
"integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
|
||||||
},
|
},
|
||||||
"node_modules/d": {
|
"node_modules/d": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
|
@ -8217,6 +8564,15 @@
|
||||||
"utila": "~0.4"
|
"utila": "~0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/dom-helpers": {
|
||||||
|
"version": "5.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
|
||||||
|
"integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.8.7",
|
||||||
|
"csstype": "^3.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/dom-serializer": {
|
"node_modules/dom-serializer": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
||||||
|
|
@ -9174,6 +9530,17 @@
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/eslint/node_modules/type-fest": {
|
||||||
|
"version": "0.20.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
||||||
|
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/eslint/node_modules/yallist": {
|
"node_modules/eslint/node_modules/yallist": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
|
|
@ -10838,6 +11205,11 @@
|
||||||
"gatsby-plugin-mdx": ">=1.2.7"
|
"gatsby-plugin-mdx": ">=1.2.7"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/gatsby-plugin-mdx-source-name": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/gatsby-plugin-mdx-source-name/-/gatsby-plugin-mdx-source-name-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-D8DAOI84ZoWmx3c6BFYuKEnQc+Y1IU+VMhTJZbIOcKbQaoROKx66TkvjLbdHSlrpQ6Skozmi+b6NNrwIyZunzw=="
|
||||||
|
},
|
||||||
"node_modules/gatsby-plugin-mdx/node_modules/camel-case": {
|
"node_modules/gatsby-plugin-mdx/node_modules/camel-case": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz",
|
||||||
|
|
@ -11113,9 +11485,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/gatsby-plugin-react-helmet": {
|
"node_modules/gatsby-plugin-react-helmet": {
|
||||||
"version": "5.19.0",
|
"version": "5.24.0",
|
||||||
"resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.24.0.tgz",
|
||||||
"integrity": "sha512-XXrJYfHqoaUe57oAF+/ljPHncrvYk0UonES3aUwynbWsR8UXhQpdbwqIOYZPGQgPsc1X55Kzdo+/3pU1gA9ajQ==",
|
"integrity": "sha512-SU/SrWsbEFLQhuzDXucYlQ4O5pTdpOdxw07xIRwyFfxFzGml/9f62h2dTtUJOIXP1mYfl31bw7eCbGlc8QzF5w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.15.4"
|
"@babel/runtime": "^7.15.4"
|
||||||
},
|
},
|
||||||
|
|
@ -17647,6 +18019,21 @@
|
||||||
"react": "^16.3.0 || ^17.0.0 || ^18.0.0"
|
"react": "^16.3.0 || ^17.0.0 || ^18.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/react-transition-group": {
|
||||||
|
"version": "4.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||||
|
"integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
|
||||||
|
"dependencies": {
|
||||||
|
"@babel/runtime": "^7.5.5",
|
||||||
|
"dom-helpers": "^5.0.1",
|
||||||
|
"loose-envify": "^1.4.0",
|
||||||
|
"prop-types": "^15.6.2"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"react": ">=16.6.0",
|
||||||
|
"react-dom": ">=16.6.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/read": {
|
"node_modules/read": {
|
||||||
"version": "1.0.7",
|
"version": "1.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
|
||||||
|
|
@ -20165,9 +20552,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/type-fest": {
|
"node_modules/type-fest": {
|
||||||
"version": "0.20.2",
|
"version": "0.13.1",
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
|
||||||
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
|
"integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true,
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
},
|
},
|
||||||
|
|
@ -22776,9 +23165,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@babel/runtime": {
|
"@babel/runtime": {
|
||||||
"version": "7.18.9",
|
"version": "7.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
|
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz",
|
||||||
"integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
|
"integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"regenerator-runtime": "^0.13.4"
|
"regenerator-runtime": "^0.13.4"
|
||||||
}
|
}
|
||||||
|
|
@ -22887,9 +23276,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@emotion/cache": {
|
"@emotion/cache": {
|
||||||
"version": "11.10.0",
|
"version": "11.10.3",
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.10.3.tgz",
|
||||||
"integrity": "sha512-3FoUWnDbHWg/pXGCvL46jvpOSJP0xvRZLY8khUcUHGOBcp0S/MCIk+osp84/dby2Ctahw/Ev4KTHWkY3i0g39g==",
|
"integrity": "sha512-Psmp/7ovAa8appWh3g51goxu/z3iVms7JXOreq136D8Bbn6dYraPnmL6mdM8GThEx9vwSn92Fz+mGSjBzN8UPQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@emotion/memoize": "^0.8.0",
|
"@emotion/memoize": "^0.8.0",
|
||||||
"@emotion/sheet": "^1.2.0",
|
"@emotion/sheet": "^1.2.0",
|
||||||
|
|
@ -22917,14 +23306,15 @@
|
||||||
"integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA=="
|
"integrity": "sha512-G/YwXTkv7Den9mXDO7AhLWkE3q+I92B+VqAE+dYG4NGPaHZGvt3G8Q0p9vmE+sq7rTGphUbAvmQ9YpbfMQGGlA=="
|
||||||
},
|
},
|
||||||
"@emotion/react": {
|
"@emotion/react": {
|
||||||
"version": "11.10.0",
|
"version": "11.10.4",
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.10.4.tgz",
|
||||||
"integrity": "sha512-K6z9zlHxxBXwN8TcpwBKcEsBsOw4JWCCmR+BeeOWgqp8GIU1yA2Odd41bwdAAr0ssbQrbJbVnndvv7oiv1bZeQ==",
|
"integrity": "sha512-j0AkMpr6BL8gldJZ6XQsQ8DnS9TxEQu1R+OGmDZiWjBAJtCcbt0tS3I/YffoqHXxH6MjgI7KdMbYKw3MEiU9eA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"@emotion/babel-plugin": "^11.10.0",
|
"@emotion/babel-plugin": "^11.10.0",
|
||||||
"@emotion/cache": "^11.10.0",
|
"@emotion/cache": "^11.10.0",
|
||||||
"@emotion/serialize": "^1.1.0",
|
"@emotion/serialize": "^1.1.0",
|
||||||
|
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
|
||||||
"@emotion/utils": "^1.2.0",
|
"@emotion/utils": "^1.2.0",
|
||||||
"@emotion/weak-memoize": "^0.3.0",
|
"@emotion/weak-memoize": "^0.3.0",
|
||||||
"hoist-non-react-statics": "^3.3.1"
|
"hoist-non-react-statics": "^3.3.1"
|
||||||
|
|
@ -22948,14 +23338,15 @@
|
||||||
"integrity": "sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w=="
|
"integrity": "sha512-OiTkRgpxescko+M51tZsMq7Puu/KP55wMT8BgpcXVG2hqXc0Vo0mfymJ/Uj24Hp0i083ji/o0aLddh08UEjq8w=="
|
||||||
},
|
},
|
||||||
"@emotion/styled": {
|
"@emotion/styled": {
|
||||||
"version": "11.10.0",
|
"version": "11.10.4",
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/styled/-/styled-11.10.4.tgz",
|
||||||
"integrity": "sha512-V9oaEH6V4KePeQpgUE83i8ht+4Ri3E8Djp/ZPJ4DQlqWhSKITvgzlR3/YQE2hdfP4Jw3qVRkANJz01LLqK9/TA==",
|
"integrity": "sha512-pRl4R8Ez3UXvOPfc2bzIoV8u9P97UedgHS4FPX594ntwEuAMA114wlaHvOK24HB48uqfXiGlYIZYCxVJ1R1ttQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.18.3",
|
"@babel/runtime": "^7.18.3",
|
||||||
"@emotion/babel-plugin": "^11.10.0",
|
"@emotion/babel-plugin": "^11.10.0",
|
||||||
"@emotion/is-prop-valid": "^1.2.0",
|
"@emotion/is-prop-valid": "^1.2.0",
|
||||||
"@emotion/serialize": "^1.1.0",
|
"@emotion/serialize": "^1.1.0",
|
||||||
|
"@emotion/use-insertion-effect-with-fallbacks": "^1.0.0",
|
||||||
"@emotion/utils": "^1.2.0"
|
"@emotion/utils": "^1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -22964,6 +23355,12 @@
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.8.0.tgz",
|
||||||
"integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw=="
|
"integrity": "sha512-VINS5vEYAscRl2ZUDiT3uMPlrFQupiKgHz5AA4bCH1miKBg4qtwkim1qPmJj/4WG6TreYMY111rEFsjupcOKHw=="
|
||||||
},
|
},
|
||||||
|
"@emotion/use-insertion-effect-with-fallbacks": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"@emotion/utils": {
|
"@emotion/utils": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/@emotion/utils/-/utils-1.2.0.tgz",
|
||||||
|
|
@ -23013,6 +23410,11 @@
|
||||||
"version": "4.0.6",
|
"version": "4.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
|
||||||
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
|
"integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg=="
|
||||||
|
},
|
||||||
|
"type-fest": {
|
||||||
|
"version": "0.20.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
||||||
|
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -23287,13 +23689,23 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@graphql-tools/import": {
|
"@graphql-tools/import": {
|
||||||
"version": "6.7.1",
|
"version": "6.7.6",
|
||||||
"resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.1.tgz",
|
"resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-6.7.6.tgz",
|
||||||
"integrity": "sha512-StLosFVhdw+eZkL+v9dBabszxCAZtEYW4Oy1+750fDkH39GrmzOB8mWiYna7rm9+GMisC9atJtXuAfMF02Aoag==",
|
"integrity": "sha512-WtUyiO2qCaK/H4u81zAw/NbBvCOzwKl4N+Vl+FqrFCzYobscwL6x6roePyoXM1O3+JJIIn3CETv4kg4kwxaBVw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@graphql-tools/utils": "8.9.0",
|
"@graphql-tools/utils": "8.12.0",
|
||||||
"resolve-from": "5.0.0",
|
"resolve-from": "5.0.0",
|
||||||
"tslib": "^2.4.0"
|
"tslib": "^2.4.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@graphql-tools/utils": {
|
||||||
|
"version": "8.12.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-8.12.0.tgz",
|
||||||
|
"integrity": "sha512-TeO+MJWGXjUTS52qfK4R8HiPoF/R7X+qmgtOYd8DTH0l6b+5Y/tlg5aGeUJefqImRq7nvi93Ms40k/Uz4D5CWw==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.4.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@graphql-tools/json-file-loader": {
|
"@graphql-tools/json-file-loader": {
|
||||||
|
|
@ -24086,6 +24498,128 @@
|
||||||
"integrity": "sha512-XHEkAu9yUeB0ntz4mNb1QlsbyjVxT7YpKW9ImyfwDYRWfDbh1VMNmzBTeOlhxLw5btQFfXusBWCp6z8+yxtrEA==",
|
"integrity": "sha512-XHEkAu9yUeB0ntz4mNb1QlsbyjVxT7YpKW9ImyfwDYRWfDbh1VMNmzBTeOlhxLw5btQFfXusBWCp6z8+yxtrEA==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
|
"@mui/base": {
|
||||||
|
"version": "5.0.0-alpha.100",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.100.tgz",
|
||||||
|
"integrity": "sha512-bSoJEKCENtmJrJDECHUe9PiqztIUACuSskyqw9ypqE7Dz3WxL3e8puFsWBkUsz+WOCjXh4B4Xljn88Ucxxv5HA==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@emotion/is-prop-valid": "^1.2.0",
|
||||||
|
"@mui/types": "^7.2.0",
|
||||||
|
"@mui/utils": "^5.10.6",
|
||||||
|
"@popperjs/core": "^2.11.6",
|
||||||
|
"clsx": "^1.2.1",
|
||||||
|
"prop-types": "^15.8.1",
|
||||||
|
"react-is": "^18.2.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"react-is": {
|
||||||
|
"version": "18.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
||||||
|
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@mui/core-downloads-tracker": {
|
||||||
|
"version": "5.10.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.8.tgz",
|
||||||
|
"integrity": "sha512-V5D7OInO4P9PdT/JACg7fwjbOORm3GklaMVgdGomjyxiyetgRND5CC9r35e1LK/DqHdoyDuhbFzdfrqWtpmEIw=="
|
||||||
|
},
|
||||||
|
"@mui/icons-material": {
|
||||||
|
"version": "5.10.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.6.tgz",
|
||||||
|
"integrity": "sha512-QwxdRmLA46S94B0hExPDx0td+A2unF+33bQ6Cs+lNpJKVsm1YeHwNdYXYcnpWeHeQQ07055OXl7IB2GKDd0MfA==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.19.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@mui/material": {
|
||||||
|
"version": "5.10.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.8.tgz",
|
||||||
|
"integrity": "sha512-sF/Ka0IJjGXV52zoT4xAWEqXVRjNYbIjATo9L4Q5oQC5iJpGrKJFY16uNtWWB0+vp/nayAuPGZHrxtV+t3ecdQ==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@mui/base": "5.0.0-alpha.100",
|
||||||
|
"@mui/core-downloads-tracker": "^5.10.8",
|
||||||
|
"@mui/system": "^5.10.8",
|
||||||
|
"@mui/types": "^7.2.0",
|
||||||
|
"@mui/utils": "^5.10.6",
|
||||||
|
"@types/react-transition-group": "^4.4.5",
|
||||||
|
"clsx": "^1.2.1",
|
||||||
|
"csstype": "^3.1.1",
|
||||||
|
"prop-types": "^15.8.1",
|
||||||
|
"react-is": "^18.2.0",
|
||||||
|
"react-transition-group": "^4.4.5"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"react-is": {
|
||||||
|
"version": "18.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
||||||
|
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@mui/private-theming": {
|
||||||
|
"version": "5.10.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.6.tgz",
|
||||||
|
"integrity": "sha512-I/W0QyTLRdEx6py3lKAquKO/rNF/7j+nIOM/xCyI9kU0fcotVTcTY08mKMsS6vrzdWpi6pAkD0wP0KwWy5R5VA==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@mui/utils": "^5.10.6",
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@mui/styled-engine": {
|
||||||
|
"version": "5.10.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.10.8.tgz",
|
||||||
|
"integrity": "sha512-w+y8WI18EJV6zM/q41ug19cE70JTeO6sWFsQ7tgePQFpy6ToCVPh0YLrtqxUZXSoMStW5FMw0t9fHTFAqPbngw==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@emotion/cache": "^11.10.3",
|
||||||
|
"csstype": "^3.1.1",
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@mui/system": {
|
||||||
|
"version": "5.10.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.8.tgz",
|
||||||
|
"integrity": "sha512-hRQ354zcrYP/KHqK8FheICSvE9raQaUgQaV+A3oD4JETaFUCVI9Ytt+RcQYgTqx02xlCXIjl8LK1rPjTneySqw==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@mui/private-theming": "^5.10.6",
|
||||||
|
"@mui/styled-engine": "^5.10.8",
|
||||||
|
"@mui/types": "^7.2.0",
|
||||||
|
"@mui/utils": "^5.10.6",
|
||||||
|
"clsx": "^1.2.1",
|
||||||
|
"csstype": "^3.1.1",
|
||||||
|
"prop-types": "^15.8.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@mui/types": {
|
||||||
|
"version": "7.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz",
|
||||||
|
"integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
|
"@mui/utils": {
|
||||||
|
"version": "5.10.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.6.tgz",
|
||||||
|
"integrity": "sha512-g0Qs8xN/MW2M3fLL8197h5J2VB9U+49fLlnKKqC6zy/yus5cZwdT+Gwec+wUMxgwQoxMDn+J8oDWAn28kEOR/Q==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.19.0",
|
||||||
|
"@types/prop-types": "^15.7.5",
|
||||||
|
"@types/react-is": "^16.7.1 || ^17.0.0",
|
||||||
|
"prop-types": "^15.8.1",
|
||||||
|
"react-is": "^18.2.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"react-is": {
|
||||||
|
"version": "18.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz",
|
||||||
|
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w=="
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"@nodelib/fs.scandir": {
|
"@nodelib/fs.scandir": {
|
||||||
"version": "2.1.5",
|
"version": "2.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
|
||||||
|
|
@ -24494,6 +25028,11 @@
|
||||||
"requires": {
|
"requires": {
|
||||||
"type-fest": "^0.20.2"
|
"type-fest": "^0.20.2"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"type-fest": {
|
||||||
|
"version": "0.20.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
||||||
|
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -24751,6 +25290,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@popperjs/core": {
|
||||||
|
"version": "2.11.6",
|
||||||
|
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.6.tgz",
|
||||||
|
"integrity": "sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw=="
|
||||||
|
},
|
||||||
"@sideway/address": {
|
"@sideway/address": {
|
||||||
"version": "4.1.4",
|
"version": "4.1.4",
|
||||||
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
|
"resolved": "https://registry.npmjs.org/@sideway/address/-/address-4.1.4.tgz",
|
||||||
|
|
@ -25047,6 +25591,22 @@
|
||||||
"@types/react": "*"
|
"@types/react": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@types/react-is": {
|
||||||
|
"version": "17.0.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/react-is/-/react-is-17.0.3.tgz",
|
||||||
|
"integrity": "sha512-aBTIWg1emtu95bLTLx0cpkxwGW3ueZv71nE2YFBpL8k/z5czEW8yYpOo8Dp+UUAFAtKwNaOsh/ioSeQnWlZcfw==",
|
||||||
|
"requires": {
|
||||||
|
"@types/react": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"@types/react-transition-group": {
|
||||||
|
"version": "4.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||||
|
"integrity": "sha512-juKD/eiSM3/xZYzjuzH6ZwpP+/lejltmiS3QEzV/vmb/Q8+HfDmxu+Baga8UEMGBqV88Nbg4l2hY/K2DkyaLLA==",
|
||||||
|
"requires": {
|
||||||
|
"@types/react": "*"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@types/responselike": {
|
"@types/responselike": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz",
|
||||||
|
|
@ -26102,6 +26662,11 @@
|
||||||
"requires": {
|
"requires": {
|
||||||
"has-flag": "^4.0.0"
|
"has-flag": "^4.0.0"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"type-fest": {
|
||||||
|
"version": "0.20.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
||||||
|
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -26680,6 +27245,11 @@
|
||||||
"mimic-response": "^1.0.0"
|
"mimic-response": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"clsx": {
|
||||||
|
"version": "1.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz",
|
||||||
|
"integrity": "sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg=="
|
||||||
|
},
|
||||||
"coa": {
|
"coa": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz",
|
||||||
|
|
@ -27274,9 +27844,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"csstype": {
|
"csstype": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
|
||||||
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
|
"integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
|
||||||
},
|
},
|
||||||
"d": {
|
"d": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
|
|
@ -27546,6 +28116,15 @@
|
||||||
"utila": "~0.4"
|
"utila": "~0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"dom-helpers": {
|
||||||
|
"version": "5.2.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.1.tgz",
|
||||||
|
"integrity": "sha512-nRCa7CK3VTrM2NmGkIy4cbK7IZlgBE/PYMn55rrXefr5xXDP0LdtfPnblFDoVdcAfslJ7or6iqAUnx0CCGIWQA==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.8.7",
|
||||||
|
"csstype": "^3.0.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"dom-serializer": {
|
"dom-serializer": {
|
||||||
"version": "1.4.1",
|
"version": "1.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
|
||||||
|
|
@ -28006,6 +28585,11 @@
|
||||||
"has-flag": "^4.0.0"
|
"has-flag": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"type-fest": {
|
||||||
|
"version": "0.20.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
||||||
|
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
|
||||||
|
},
|
||||||
"yallist": {
|
"yallist": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
|
|
@ -29840,6 +30424,11 @@
|
||||||
"integrity": "sha512-itdhni+L7oZ9tpyipGVTmC32qcdd+FsWkDqcxnnQ9NCjEMIajPwit6fdzx/Zby1YaKVx6FSqkTp9tjQTde7BpQ==",
|
"integrity": "sha512-itdhni+L7oZ9tpyipGVTmC32qcdd+FsWkDqcxnnQ9NCjEMIajPwit6fdzx/Zby1YaKVx6FSqkTp9tjQTde7BpQ==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
|
"gatsby-plugin-mdx-source-name": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/gatsby-plugin-mdx-source-name/-/gatsby-plugin-mdx-source-name-1.0.1.tgz",
|
||||||
|
"integrity": "sha512-D8DAOI84ZoWmx3c6BFYuKEnQc+Y1IU+VMhTJZbIOcKbQaoROKx66TkvjLbdHSlrpQ6Skozmi+b6NNrwIyZunzw=="
|
||||||
|
},
|
||||||
"gatsby-plugin-page-creator": {
|
"gatsby-plugin-page-creator": {
|
||||||
"version": "4.19.0",
|
"version": "4.19.0",
|
||||||
"resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-4.19.0.tgz",
|
||||||
|
|
@ -29859,9 +30448,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gatsby-plugin-react-helmet": {
|
"gatsby-plugin-react-helmet": {
|
||||||
"version": "5.19.0",
|
"version": "5.24.0",
|
||||||
"resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.19.0.tgz",
|
"resolved": "https://registry.npmjs.org/gatsby-plugin-react-helmet/-/gatsby-plugin-react-helmet-5.24.0.tgz",
|
||||||
"integrity": "sha512-XXrJYfHqoaUe57oAF+/ljPHncrvYk0UonES3aUwynbWsR8UXhQpdbwqIOYZPGQgPsc1X55Kzdo+/3pU1gA9ajQ==",
|
"integrity": "sha512-SU/SrWsbEFLQhuzDXucYlQ4O5pTdpOdxw07xIRwyFfxFzGml/9f62h2dTtUJOIXP1mYfl31bw7eCbGlc8QzF5w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/runtime": "^7.15.4"
|
"@babel/runtime": "^7.15.4"
|
||||||
}
|
}
|
||||||
|
|
@ -34557,6 +35146,17 @@
|
||||||
"peer": true,
|
"peer": true,
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
|
"react-transition-group": {
|
||||||
|
"version": "4.4.5",
|
||||||
|
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz",
|
||||||
|
"integrity": "sha512-pZcd1MCJoiKiBR2NRxeCRg13uCXbydPnmB4EOeRrY7480qNWO8IIgQG6zlDkm6uRMsURXPuKq0GWtiM59a5Q6g==",
|
||||||
|
"requires": {
|
||||||
|
"@babel/runtime": "^7.5.5",
|
||||||
|
"dom-helpers": "^5.0.1",
|
||||||
|
"loose-envify": "^1.4.0",
|
||||||
|
"prop-types": "^15.6.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"read": {
|
"read": {
|
||||||
"version": "1.0.7",
|
"version": "1.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
|
"resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
|
||||||
|
|
@ -36500,9 +37100,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"type-fest": {
|
"type-fest": {
|
||||||
"version": "0.20.2",
|
"version": "0.13.1",
|
||||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
|
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz",
|
||||||
"integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ=="
|
"integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==",
|
||||||
|
"optional": true,
|
||||||
|
"peer": true
|
||||||
},
|
},
|
||||||
"type-is": {
|
"type-is": {
|
||||||
"version": "1.6.18",
|
"version": "1.6.18",
|
||||||
|
|
|
||||||
10
package.json
10
package.json
|
|
@ -1,9 +1,10 @@
|
||||||
{
|
{
|
||||||
|
"$schema": "https://json.schemastore.org/package",
|
||||||
"name": "felschr.com",
|
"name": "felschr.com",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"private": true,
|
|
||||||
"description": "felschr.com",
|
"description": "felschr.com",
|
||||||
"author": "Felix Schröter",
|
"author": "Felix Schröter",
|
||||||
|
"license": "MIT",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"gatsby"
|
"gatsby"
|
||||||
],
|
],
|
||||||
|
|
@ -17,16 +18,19 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@deckdeckgo/highlight-code": "^3.6.0",
|
"@deckdeckgo/highlight-code": "^3.6.0",
|
||||||
"@emotion/react": "^11.10.0",
|
"@emotion/react": "^11.10.4",
|
||||||
"@emotion/styled": "^11.10.0",
|
"@emotion/styled": "^11.10.4",
|
||||||
"@mdx-js/mdx": "^1.6.22",
|
"@mdx-js/mdx": "^1.6.22",
|
||||||
"@mdx-js/react": "^1.6.22",
|
"@mdx-js/react": "^1.6.22",
|
||||||
|
"@mui/icons-material": "^5.10.6",
|
||||||
|
"@mui/material": "^5.10.8",
|
||||||
"gatsby": "^4.19.2",
|
"gatsby": "^4.19.2",
|
||||||
"gatsby-plugin-emotion": "^7.19.0",
|
"gatsby-plugin-emotion": "^7.19.0",
|
||||||
"gatsby-plugin-image": "^2.19.0",
|
"gatsby-plugin-image": "^2.19.0",
|
||||||
"gatsby-plugin-manifest": "^4.19.0",
|
"gatsby-plugin-manifest": "^4.19.0",
|
||||||
"gatsby-plugin-mdx": "^3.19.0",
|
"gatsby-plugin-mdx": "^3.19.0",
|
||||||
"gatsby-plugin-mdx-frontmatter": "^0.0.4",
|
"gatsby-plugin-mdx-frontmatter": "^0.0.4",
|
||||||
|
"gatsby-plugin-mdx-source-name": "^1.0.1",
|
||||||
"gatsby-plugin-react-helmet": "^5.19.0",
|
"gatsby-plugin-react-helmet": "^5.19.0",
|
||||||
"gatsby-plugin-sharp": "^4.19.0",
|
"gatsby-plugin-sharp": "^4.19.0",
|
||||||
"gatsby-plugin-sitemap": "^5.19.0",
|
"gatsby-plugin-sitemap": "^5.19.0",
|
||||||
|
|
|
||||||
25
src/components/atoms/Footer.tsx
Normal file
25
src/components/atoms/Footer.tsx
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
import { ReactNode } from "react"
|
||||||
|
import { Box, useTheme } from "@mui/material"
|
||||||
|
|
||||||
|
export type FooterProps = {
|
||||||
|
children: ReactNode
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Footer = ({ children }: FooterProps) => {
|
||||||
|
const theme = useTheme()
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Box
|
||||||
|
position="fixed"
|
||||||
|
display="flex"
|
||||||
|
bottom={0}
|
||||||
|
padding={2}
|
||||||
|
width="100%"
|
||||||
|
borderTop={`1px solid ${theme.palette.grey[200].toString()}`}
|
||||||
|
gap={2}
|
||||||
|
style={{ backgroundColor: theme.palette.background.default.toString()}}
|
||||||
|
>
|
||||||
|
{children}
|
||||||
|
</Box>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
@ -1,17 +1,97 @@
|
||||||
import * as React from "react"
|
import { AppBar, Box, Button, Container, createTheme, CssBaseline, Link, ThemeProvider, Toolbar, Typography, useMediaQuery, useTheme } from "@mui/material"
|
||||||
|
import CodeIcon from "@mui/icons-material/Code"
|
||||||
|
import { ReactNode, useMemo } from "react"
|
||||||
|
import { Link as GatsbyLink } from "gatsby"
|
||||||
|
import { Footer } from "../atoms/Footer"
|
||||||
|
|
||||||
|
const pages = [
|
||||||
|
{ title: "Home", href: "/" },
|
||||||
|
{ title: "Blog", href: "/blog" },
|
||||||
|
]
|
||||||
|
|
||||||
type LayoutProps = {
|
type LayoutProps = {
|
||||||
pageTitle: string
|
pageTitle: string | ReactNode
|
||||||
children: React.ReactNode
|
children: ReactNode
|
||||||
}
|
}
|
||||||
|
|
||||||
const Layout = ({ pageTitle, children }: LayoutProps) => {
|
const Layout = ({ pageTitle, children }: LayoutProps) => {
|
||||||
|
const theme = useTheme()
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<main style={{ border: 0 }}>
|
||||||
<h1>{pageTitle}</h1>
|
<title>{pageTitle}</title>
|
||||||
{children}
|
|
||||||
</div>
|
<AppBar position="fixed">
|
||||||
|
<Toolbar>
|
||||||
|
<CodeIcon sx={{ display: "flex", mr: 1 }} />{" "}
|
||||||
|
<Typography
|
||||||
|
variant="h6"
|
||||||
|
noWrap
|
||||||
|
component="a"
|
||||||
|
href="/"
|
||||||
|
sx={{
|
||||||
|
mr: 2,
|
||||||
|
display: { xs: "none", md: "flex" },
|
||||||
|
fontFamily: "monospace",
|
||||||
|
fontWeight: 700,
|
||||||
|
letterSpacing: ".3rem",
|
||||||
|
color: "inherit",
|
||||||
|
textDecoration: "none",
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
Felix Schröter
|
||||||
|
</Typography>
|
||||||
|
|
||||||
|
<Box sx={{ flexGrow: 1, display: "flex", justifyContent: "end" }}>
|
||||||
|
{pages.map(({ title, href }) => (
|
||||||
|
<Button
|
||||||
|
key={href}
|
||||||
|
color="inherit"
|
||||||
|
sx={{ my: 2, color: "white", display: "block" }}
|
||||||
|
{...{ href }}
|
||||||
|
>
|
||||||
|
{title}
|
||||||
|
</Button>
|
||||||
|
))}
|
||||||
|
</Box>
|
||||||
|
</Toolbar>
|
||||||
|
</AppBar>
|
||||||
|
|
||||||
|
<Container style={{ marginTop: 68.5, marginBottom: 80, minHeight: "100%" }}>
|
||||||
|
<Typography variant="h1">{pageTitle}</Typography>
|
||||||
|
{children}
|
||||||
|
</Container>
|
||||||
|
|
||||||
|
<Footer>
|
||||||
|
<Link rel="me" href="https://todon.eu/@felschr">Mastodon</Link>
|
||||||
|
<GatsbyLink to="/terms-of-service">Terms of Service</GatsbyLink>
|
||||||
|
</Footer>
|
||||||
|
</main>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Layout
|
const AppLayout = (props: LayoutProps) => {
|
||||||
|
const prefersDarkMode = useMediaQuery('(prefers-color-scheme: dark)');
|
||||||
|
|
||||||
|
const theme = useMemo(
|
||||||
|
() =>
|
||||||
|
createTheme({
|
||||||
|
palette: {
|
||||||
|
mode: prefersDarkMode ? "dark" : "light",
|
||||||
|
},
|
||||||
|
typography: {
|
||||||
|
h1: { fontSize: 48, paddingBottom: 20 },
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
[prefersDarkMode],
|
||||||
|
);
|
||||||
|
|
||||||
|
return (
|
||||||
|
<ThemeProvider theme={theme}>
|
||||||
|
<CssBaseline />
|
||||||
|
<Layout {...props} />
|
||||||
|
</ThemeProvider>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default AppLayout
|
||||||
|
|
|
||||||
9
src/global.css
Normal file
9
src/global.css
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
--deckgo-highlight-code-carbon-toolbar-display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: rgb(51, 125, 255);
|
||||||
|
}
|
||||||
|
|
@ -1,27 +1,73 @@
|
||||||
import * as React from "react"
|
import { ReactNode } from "react"
|
||||||
import { graphql, Link, PageProps } from "gatsby"
|
import { GatsbyLinkProps, graphql, Link, PageProps } from "gatsby"
|
||||||
import Layout from "../../components/organisms/Layout"
|
import Layout from "../../components/organisms/Layout"
|
||||||
|
import { Card, CardContent, Grid, Typography } from "@mui/material"
|
||||||
|
import styled from "@emotion/styled"
|
||||||
|
|
||||||
|
type PostProps = {
|
||||||
|
size?: "normal" | "highlight"
|
||||||
|
post: Queries.BlogQuery["allMdx"]["edges"][0]["node"]
|
||||||
|
}
|
||||||
|
|
||||||
|
const Post = ({ size = "normal", post }: PostProps) => {
|
||||||
|
const PostLink = styled((props: { children: ReactNode }) => (
|
||||||
|
<Link to={`/blog/${post.slug}`} {...props} />
|
||||||
|
))`
|
||||||
|
color: inherit;
|
||||||
|
text-decoration: inherit;
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
opacity: 0.8;
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Grid item xs={size === "highlight" ? 12 : 4}>
|
||||||
|
<Card>
|
||||||
|
<CardContent>
|
||||||
|
<Typography variant="h5" gutterBottom>
|
||||||
|
<PostLink>
|
||||||
|
{post.frontmatter?.title}
|
||||||
|
</PostLink>
|
||||||
|
</Typography>
|
||||||
|
|
||||||
|
<Typography fontStyle="normal" color="GrayText">
|
||||||
|
<PostLink>
|
||||||
|
{post.excerpt}
|
||||||
|
</PostLink>
|
||||||
|
</Typography>
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
</Grid>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
const Blog = ({ data: { allMdx } }: PageProps<Queries.BlogQuery>) => {
|
const Blog = ({ data: { allMdx } }: PageProps<Queries.BlogQuery>) => {
|
||||||
console.log("allMdx", allMdx)
|
const [highlight, ...posts] = allMdx.edges
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Layout pageTitle="Blog">
|
<Layout pageTitle="Blog">
|
||||||
{allMdx.edges.map(({ node: post }) => (
|
<Grid container spacing={2} alignItems="stretch">
|
||||||
<Link to={`/blog/${post.slug}`}>
|
<Post size="highlight" post={highlight.node} />
|
||||||
<h2>{post.frontmatter?.title}</h2>
|
{posts.map(({ node: post }) => (
|
||||||
</Link>
|
<Post post={post} />
|
||||||
))}
|
))}
|
||||||
|
</Grid>
|
||||||
</Layout>
|
</Layout>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
export const query = graphql`
|
export const query = graphql`
|
||||||
query Blog {
|
query Blog {
|
||||||
allMdx {
|
allMdx(
|
||||||
|
sort: { fields: [frontmatter___published], order: DESC }
|
||||||
|
filter: { fields: { source: { eq: "posts" } }, frontmatter: { published: { ne: null } } }
|
||||||
|
) {
|
||||||
edges {
|
edges {
|
||||||
node {
|
node {
|
||||||
id
|
id
|
||||||
slug
|
slug
|
||||||
|
excerpt(pruneLength: 400)
|
||||||
frontmatter {
|
frontmatter {
|
||||||
title
|
title
|
||||||
published
|
published
|
||||||
|
|
|
||||||
|
|
@ -1,14 +1,43 @@
|
||||||
import * as React from "react"
|
import React from "react"
|
||||||
import { graphql, PageProps } from "gatsby"
|
import { graphql, Link as GatsbyLink, PageProps } from "gatsby"
|
||||||
import { MDXRenderer } from "gatsby-plugin-mdx"
|
import { MDXRenderer } from "gatsby-plugin-mdx"
|
||||||
|
import NavigateNextIcon from "@mui/icons-material/NavigateNext"
|
||||||
import Layout from "../../components/organisms/Layout"
|
import Layout from "../../components/organisms/Layout"
|
||||||
|
|
||||||
import { defineCustomElements as deckDeckGoHighlightElement } from "@deckdeckgo/highlight-code/dist/loader";
|
import { defineCustomElements as deckDeckGoHighlightElement } from "@deckdeckgo/highlight-code/dist/loader";
|
||||||
|
import { Breadcrumbs, Link } from "@mui/material";
|
||||||
deckDeckGoHighlightElement();
|
deckDeckGoHighlightElement();
|
||||||
|
|
||||||
const BlogPost = ({ data: { mdx } }: PageProps<Queries.BlogPostQuery>) => {
|
const BlogPost = ({ data: { mdx }, path }: PageProps<Queries.BlogPostQuery>) => {
|
||||||
return (
|
return (
|
||||||
<Layout pageTitle={mdx?.frontmatter?.title ?? ""}>
|
<Layout
|
||||||
|
pageTitle={
|
||||||
|
<>
|
||||||
|
<Breadcrumbs
|
||||||
|
separator={<NavigateNextIcon fontSize="small" />}
|
||||||
|
aria-label="breadcrumb"
|
||||||
|
>
|
||||||
|
<Link
|
||||||
|
underline="hover"
|
||||||
|
color="inherit"
|
||||||
|
to="/blog"
|
||||||
|
component={GatsbyLink}
|
||||||
|
>
|
||||||
|
Blog
|
||||||
|
</Link>
|
||||||
|
<Link
|
||||||
|
underline="hover"
|
||||||
|
color="inherit"
|
||||||
|
to={path}
|
||||||
|
component={GatsbyLink}
|
||||||
|
>
|
||||||
|
{mdx?.frontmatter?.title}
|
||||||
|
</Link>
|
||||||
|
</Breadcrumbs>
|
||||||
|
{mdx?.frontmatter?.title ?? ""}
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
>
|
||||||
<MDXRenderer>
|
<MDXRenderer>
|
||||||
{mdx?.body ?? ""}
|
{mdx?.body ?? ""}
|
||||||
</MDXRenderer>
|
</MDXRenderer>
|
||||||
|
|
@ -18,7 +47,7 @@ const BlogPost = ({ data: { mdx } }: PageProps<Queries.BlogPostQuery>) => {
|
||||||
|
|
||||||
export const query = graphql`
|
export const query = graphql`
|
||||||
query BlogPost($id: String) {
|
query BlogPost($id: String) {
|
||||||
mdx(id: {eq: $id}) {
|
mdx(fields: { source: { eq: "posts" } }, id: { eq: $id }) {
|
||||||
id
|
id
|
||||||
body
|
body
|
||||||
frontmatter {
|
frontmatter {
|
||||||
|
|
|
||||||
|
|
@ -1,194 +1,88 @@
|
||||||
import * as React from "react"
|
import styled from "@emotion/styled"
|
||||||
|
import { Card as Card_, CardContent, Grid, Typography } from "@mui/material"
|
||||||
|
import { Link } from "gatsby"
|
||||||
|
import Layout from "../components/organisms/Layout"
|
||||||
|
|
||||||
// styles
|
const Card = styled(Card_)`
|
||||||
const pageStyles = {
|
height: 100%;
|
||||||
color: "#232129",
|
`
|
||||||
padding: 96,
|
|
||||||
fontFamily: "-apple-system, Roboto, sans-serif, serif",
|
|
||||||
}
|
|
||||||
const headingStyles = {
|
|
||||||
marginTop: 0,
|
|
||||||
marginBottom: 64,
|
|
||||||
maxWidth: 320,
|
|
||||||
}
|
|
||||||
const headingAccentStyles = {
|
|
||||||
color: "#663399",
|
|
||||||
}
|
|
||||||
const paragraphStyles = {
|
|
||||||
marginBottom: 48,
|
|
||||||
}
|
|
||||||
const codeStyles = {
|
|
||||||
color: "#8A6534",
|
|
||||||
padding: 4,
|
|
||||||
backgroundColor: "#FFF4DB",
|
|
||||||
fontSize: "1.25rem",
|
|
||||||
borderRadius: 4,
|
|
||||||
}
|
|
||||||
const listStyles = {
|
|
||||||
marginBottom: 96,
|
|
||||||
paddingLeft: 0,
|
|
||||||
}
|
|
||||||
const doclistStyles = {
|
|
||||||
paddingLeft: 0,
|
|
||||||
}
|
|
||||||
const listItemStyles = {
|
|
||||||
fontWeight: 300,
|
|
||||||
fontSize: 24,
|
|
||||||
maxWidth: 560,
|
|
||||||
marginBottom: 30,
|
|
||||||
}
|
|
||||||
|
|
||||||
const linkStyle = {
|
|
||||||
color: "#8954A8",
|
|
||||||
fontWeight: "bold",
|
|
||||||
fontSize: 16,
|
|
||||||
verticalAlign: "5%",
|
|
||||||
}
|
|
||||||
|
|
||||||
const docLinkStyle = {
|
|
||||||
...linkStyle,
|
|
||||||
listStyleType: "none",
|
|
||||||
display: `inline-block`,
|
|
||||||
marginBottom: 24,
|
|
||||||
marginRight: 12,
|
|
||||||
}
|
|
||||||
|
|
||||||
const descriptionStyle = {
|
|
||||||
color: "#232129",
|
|
||||||
fontSize: 14,
|
|
||||||
marginTop: 10,
|
|
||||||
marginBottom: 0,
|
|
||||||
lineHeight: 1.25,
|
|
||||||
}
|
|
||||||
|
|
||||||
const docLinks = [
|
|
||||||
{
|
|
||||||
text: "TypeScript Documentation",
|
|
||||||
url: "https://www.gatsbyjs.com/docs/how-to/custom-configuration/typescript/",
|
|
||||||
color: "#8954A8",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "GraphQL Typegen Documentation",
|
|
||||||
url: "https://www.gatsbyjs.com/docs/how-to/local-development/graphql-typegen/",
|
|
||||||
color: "#8954A8",
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
const badgeStyle = {
|
|
||||||
color: "#fff",
|
|
||||||
backgroundColor: "#088413",
|
|
||||||
border: "1px solid #088413",
|
|
||||||
fontSize: 11,
|
|
||||||
fontWeight: "bold",
|
|
||||||
letterSpacing: 1,
|
|
||||||
borderRadius: 4,
|
|
||||||
padding: "4px 6px",
|
|
||||||
display: "inline-block",
|
|
||||||
position: "relative" as "relative",
|
|
||||||
top: -2,
|
|
||||||
marginLeft: 10,
|
|
||||||
lineHeight: 1,
|
|
||||||
}
|
|
||||||
|
|
||||||
// data
|
|
||||||
const links = [
|
|
||||||
{
|
|
||||||
text: "Tutorial",
|
|
||||||
url: "https://www.gatsbyjs.com/docs/tutorial/",
|
|
||||||
description:
|
|
||||||
"A great place to get started if you're new to web development. Designed to guide you through setting up your first Gatsby site.",
|
|
||||||
color: "#E95800",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "How to Guides",
|
|
||||||
url: "https://www.gatsbyjs.com/docs/how-to/",
|
|
||||||
description:
|
|
||||||
"Practical step-by-step guides to help you achieve a specific goal. Most useful when you're trying to get something done.",
|
|
||||||
color: "#1099A8",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "Reference Guides",
|
|
||||||
url: "https://www.gatsbyjs.com/docs/reference/",
|
|
||||||
description:
|
|
||||||
"Nitty-gritty technical descriptions of how Gatsby works. Most useful when you need detailed information about Gatsby's APIs.",
|
|
||||||
color: "#BC027F",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "Conceptual Guides",
|
|
||||||
url: "https://www.gatsbyjs.com/docs/conceptual/",
|
|
||||||
description:
|
|
||||||
"Big-picture explanations of higher-level Gatsby concepts. Most useful for building understanding of a particular topic.",
|
|
||||||
color: "#0D96F2",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "Plugin Library",
|
|
||||||
url: "https://www.gatsbyjs.com/plugins",
|
|
||||||
description:
|
|
||||||
"Add functionality and customize your Gatsby site or app with thousands of plugins built by our amazing developer community.",
|
|
||||||
color: "#8EB814",
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: "Build and Host",
|
|
||||||
url: "https://www.gatsbyjs.com/cloud",
|
|
||||||
badge: true,
|
|
||||||
description:
|
|
||||||
"Now you’re ready to show the world! Give your Gatsby site superpowers: Build and host on Gatsby Cloud. Get started for free!",
|
|
||||||
color: "#663399",
|
|
||||||
},
|
|
||||||
]
|
|
||||||
|
|
||||||
// markup
|
|
||||||
const IndexPage = () => {
|
const IndexPage = () => {
|
||||||
return (
|
return (
|
||||||
<main style={pageStyles}>
|
<Layout pageTitle="Home">
|
||||||
<title>Home Page</title>
|
<Grid container spacing={2} alignItems="stretch">
|
||||||
<h1 style={headingStyles}>
|
<Grid item xs={4}>
|
||||||
Congratulations
|
<Card>
|
||||||
<br />
|
<CardContent>
|
||||||
<span style={headingAccentStyles}>— you just made a Gatsby site! </span>
|
<Typography variant="h5" gutterBottom>
|
||||||
🎉🎉🎉
|
Cloud
|
||||||
</h1>
|
</Typography>
|
||||||
<p style={paragraphStyles}>
|
|
||||||
Edit <code style={codeStyles}>src/pages/index.tsx</code> to see this page
|
I'm experienced in designing & implementing Cloud-native software on all major Cloud platforms that is tailored to the customer's needs. Containers, microservices, serverless setups — I'm familiar with all the important tools.
|
||||||
update in real-time. 😎
|
</CardContent>
|
||||||
</p>
|
</Card>
|
||||||
<ul style={doclistStyles}>
|
</Grid>
|
||||||
{docLinks.map(doc => (
|
|
||||||
<li key={doc.url} style={docLinkStyle}>
|
<Grid item xs={4}>
|
||||||
<a
|
<Card>
|
||||||
style={linkStyle}
|
<CardContent>
|
||||||
href={`${doc.url}?utm_source=starter&utm_medium=ts-docs&utm_campaign=minimal-starter-ts`}
|
<Typography variant="h5" gutterBottom>
|
||||||
>
|
Type safety
|
||||||
{doc.text}
|
</Typography>
|
||||||
</a>
|
|
||||||
</li>
|
I love strong type systems. They avoid runtime exceptions like{" "}
|
||||||
))}
|
<Link to="https://en.wikipedia.org/wiki/Null_pointer#History">
|
||||||
</ul>
|
the billion-dollar mistake
|
||||||
<ul style={listStyles}>
|
</Link>{" "}
|
||||||
{links.map(link => (
|
by checking for errors at compile time. A good type system enforces error handling & allows developers to focus more on actual application logic.
|
||||||
<li key={link.url} style={{ ...listItemStyles, color: link.color }}>
|
</CardContent>
|
||||||
<span>
|
</Card>
|
||||||
<a
|
</Grid>
|
||||||
style={linkStyle}
|
|
||||||
href={`${link.url}?utm_source=starter&utm_medium=start-page&utm_campaign=minimal-starter-ts`}
|
<Grid item xs={4}>
|
||||||
>
|
<Card>
|
||||||
{link.text}
|
<CardContent>
|
||||||
</a>
|
<Typography variant="h5" gutterBottom>
|
||||||
{link.badge && (
|
Reproducibility
|
||||||
<span style={badgeStyle} aria-label="New Badge">
|
</Typography>
|
||||||
NEW!
|
|
||||||
</span>
|
"But it works on my machine" — how many times did you hear this?
|
||||||
)}
|
Running into issues building software can be frustrating & time consuming.
|
||||||
<p style={descriptionStyle}>{link.description}</p>
|
That's where reproducible builds with declarative environments come to the rescue!
|
||||||
</span>
|
Nix is one such system that allows you to use the same dependencies on all developers' machines & in CI/CD pipelines.
|
||||||
</li>
|
</CardContent>
|
||||||
))}
|
</Card>
|
||||||
</ul>
|
</Grid>
|
||||||
<img
|
|
||||||
alt="Gatsby G Logo"
|
<Grid item xs={4}>
|
||||||
src="data:image/svg+xml,%3Csvg width='24' height='24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 2a10 10 0 110 20 10 10 0 010-20zm0 2c-3.73 0-6.86 2.55-7.75 6L14 19.75c3.45-.89 6-4.02 6-7.75h-5.25v1.5h3.45a6.37 6.37 0 01-3.89 4.44L6.06 9.69C7 7.31 9.3 5.63 12 5.63c2.13 0 4 1.04 5.18 2.65l1.23-1.06A7.959 7.959 0 0012 4zm-8 8a8 8 0 008 8c.04 0 .09 0-8-8z' fill='%23639'/%3E%3C/svg%3E"
|
<Card>
|
||||||
/>
|
<CardContent>
|
||||||
</main>
|
<Typography variant="h5" gutterBottom>
|
||||||
|
DevOps
|
||||||
|
</Typography>
|
||||||
|
|
||||||
|
Plan, Develop, Deliver, Operate — Repeat
|
||||||
|
DevOps is about continually providing value to customers.
|
||||||
|
|
||||||
|
Teams who adopt DevOps streamline their processes & automate their systems. This allows rapidly delivering features & maintaining a reliable system.
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Grid item xs={4}>
|
||||||
|
<Card>
|
||||||
|
<CardContent>
|
||||||
|
<Typography variant="h5" gutterBottom>
|
||||||
|
Learning
|
||||||
|
</Typography>
|
||||||
|
|
||||||
|
Software development is such a vast field and I love learning about new technologies.
|
||||||
|
You can expect software built on modern state-of-the-art technologies & methodologies from me.
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
</Layout>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
30
src/pages/terms-of-service.mdx
Normal file
30
src/pages/terms-of-service.mdx
Normal file
|
|
@ -0,0 +1,30 @@
|
||||||
|
---
|
||||||
|
title: Terms of Service
|
||||||
|
---
|
||||||
|
|
||||||
|
Information in accordance with Section 5 TMG
|
||||||
|
|
||||||
|
Felix Schröter
|
||||||
|
Salzwedeler Str. 1
|
||||||
|
21339 Lüneburg
|
||||||
|
Germany
|
||||||
|
|
||||||
|
## Contact Information
|
||||||
|
|
||||||
|
Telephone: +491723956877
|
||||||
|
E-Mail: admin@felschr.com
|
||||||
|
Website: [felschr.com](https://felschr.com)
|
||||||
|
|
||||||
|
## Disclaimer
|
||||||
|
|
||||||
|
### Accountability for content
|
||||||
|
|
||||||
|
The contents of our pages have been created with the utmost care. However, we cannot guarantee the contents' accuracy, completeness or topicality. According to statutory provisions, we are furthermore responsible for our own content on these web pages. In this matter, please note that we are not obliged to monitor the transmitted or saved information of third parties, or investigate circumstances pointing to illegal activity. Our obligations to remove or block the use of information under generally applicable laws remain unaffected by this as per §§ 8 to 10 of the Telemedia Act (TMG).
|
||||||
|
|
||||||
|
### Accountability for links
|
||||||
|
|
||||||
|
Responsibility for the content of external links (to web pages of third parties) lies solely with the operators of the linked pages. No violations were evident to us at the time of linking. Should any legal infringement become known to us, we will remove the respective link immediately.
|
||||||
|
|
||||||
|
### Copyright
|
||||||
|
|
||||||
|
Our web pages and their contents are subject to German copyright law. Unless expressly permitted by law, every form of utilizing, reproducing or processing works subject to copyright protection on our web pages requires the prior consent of the respective owner of the rights. Individual reproductions of a work are only allowed for private use. The materials from these pages are copyrighted and any unauthorized use may violate copyright laws.
|
||||||
29
src/pages/{mdx.slug}.tsx
Normal file
29
src/pages/{mdx.slug}.tsx
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
import React from "react"
|
||||||
|
import { graphql, PageProps } from "gatsby"
|
||||||
|
import { MDXRenderer } from "gatsby-plugin-mdx"
|
||||||
|
import Layout from "../components/organisms/Layout"
|
||||||
|
|
||||||
|
const Page = ({ data: { mdx }, path }: PageProps<Queries.PageQuery>) => {
|
||||||
|
console.log("Page...", { path, mdx })
|
||||||
|
return (
|
||||||
|
<Layout pageTitle={mdx?.frontmatter?.title ?? ""}>
|
||||||
|
<MDXRenderer>
|
||||||
|
{mdx?.body ?? ""}
|
||||||
|
</MDXRenderer>
|
||||||
|
</Layout>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export const query = graphql`
|
||||||
|
query Page($id: String) {
|
||||||
|
mdx(fields: { source: { eq: "pages" } }, id: { eq: $id }) {
|
||||||
|
id
|
||||||
|
body
|
||||||
|
frontmatter {
|
||||||
|
title
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
export default Page
|
||||||
Loading…
Add table
Add a link
Reference in a new issue