Update dependencies and cleaning up about page. Make components for reusability.

This commit is contained in:
Bradley Shellnut 2023-02-26 22:18:16 -08:00
parent bfc65527ea
commit 4d6a98df74
7 changed files with 333 additions and 170 deletions

View file

@ -20,21 +20,23 @@
"@iconify-icons/simple-icons": "^1.2.43",
"@leveluptuts/svelte-side-menu": "^1.0.5",
"@leveluptuts/svelte-toy": "^2.0.3",
"@playwright/test": "^1.31.0",
"@playwright/test": "^1.31.1",
"@rgossiaux/svelte-headlessui": "^1.0.2",
"@sveltejs/adapter-auto": "^1.0.3",
"@sveltejs/adapter-static": "^2.0.1",
"@sveltejs/adapter-vercel": "^1.0.6",
"@sveltejs/kit": "^1.8.3",
"@sveltejs/kit": "^1.8.5",
"@types/postcss-preset-env": "^8.0.0",
"@typescript-eslint/eslint-plugin": "^5.53.0",
"@typescript-eslint/parser": "^5.53.0",
"autoprefixer": "^10.4.7",
"eslint": "^8.34.0",
"eslint": "^8.35.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-svelte3": "^4.0.0",
"iconify-icon": "^1.0.7",
"just-intersect": "^4.3.0",
"mdsvex": "^0.10.6",
"mdsvex-relative-images": "^1.0.3",
"postcss": "^8.4.21",
"postcss-import": "^15.1.0",
"postcss-load-config": "^4.0.1",
@ -45,7 +47,7 @@
"sass": "^1.58.3",
"scrape-it": "^5.3.2",
"svelte": "^3.54.0",
"svelte-check": "^3.0.3",
"svelte-check": "^3.0.4",
"svelte-lazy-loader": "^1.0.0",
"svelte-preprocess": "^4.10.7",
"tslib": "^2.5.0",

View file

@ -7,22 +7,24 @@ specifiers:
'@iconify-icons/simple-icons': ^1.2.43
'@leveluptuts/svelte-side-menu': ^1.0.5
'@leveluptuts/svelte-toy': ^2.0.3
'@playwright/test': ^1.31.0
'@playwright/test': ^1.31.1
'@rgossiaux/svelte-headlessui': ^1.0.2
'@sveltejs/adapter-auto': ^1.0.3
'@sveltejs/adapter-static': ^2.0.1
'@sveltejs/adapter-vercel': ^1.0.6
'@sveltejs/kit': ^1.8.3
'@sveltejs/kit': ^1.8.5
'@types/postcss-preset-env': ^8.0.0
'@typescript-eslint/eslint-plugin': ^5.53.0
'@typescript-eslint/parser': ^5.53.0
autoprefixer: ^10.4.7
eslint: ^8.34.0
eslint: ^8.35.0
eslint-config-prettier: ^8.5.0
eslint-plugin-svelte3: ^4.0.0
iconify-icon: ^1.0.7
ioredis: ^5.3.1
just-intersect: ^4.3.0
mdsvex: ^0.10.6
mdsvex-relative-images: ^1.0.3
postcss: ^8.4.21
postcss-import: ^15.1.0
postcss-load-config: ^4.0.1
@ -33,7 +35,7 @@ specifiers:
sass: ^1.58.3
scrape-it: ^5.3.2
svelte: ^3.54.0
svelte-check: ^3.0.3
svelte-check: ^3.0.4
svelte-lazy-loader: ^1.0.0
svelte-preprocess: ^4.10.7
tslib: ^2.5.0
@ -52,21 +54,23 @@ devDependencies:
'@iconify-icons/simple-icons': 1.2.43
'@leveluptuts/svelte-side-menu': 1.0.5
'@leveluptuts/svelte-toy': 2.0.3
'@playwright/test': 1.31.0
'@playwright/test': 1.31.1
'@rgossiaux/svelte-headlessui': 1.0.2_svelte@3.55.1
'@sveltejs/adapter-auto': 1.0.3_@sveltejs+kit@1.8.3
'@sveltejs/adapter-static': 2.0.1_@sveltejs+kit@1.8.3
'@sveltejs/adapter-vercel': 1.0.6_@sveltejs+kit@1.8.3
'@sveltejs/kit': 1.8.3_svelte@3.55.1+vite@4.1.4
'@sveltejs/adapter-auto': 1.0.3_@sveltejs+kit@1.8.5
'@sveltejs/adapter-static': 2.0.1_@sveltejs+kit@1.8.5
'@sveltejs/adapter-vercel': 1.0.6_@sveltejs+kit@1.8.5
'@sveltejs/kit': 1.8.5_svelte@3.55.1+vite@4.1.4
'@types/postcss-preset-env': 8.0.0_postcss@8.4.21
'@typescript-eslint/eslint-plugin': 5.53.0_ny4s7qc6yg74faf3d6xty2ofzy
'@typescript-eslint/parser': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
'@typescript-eslint/eslint-plugin': 5.53.0_cjo54hduev4bqhpjw5znwiokqu
'@typescript-eslint/parser': 5.53.0_ycpbpc6yetojsgtrx3mwntkhsu
autoprefixer: 10.4.13_postcss@8.4.21
eslint: 8.34.0
eslint-config-prettier: 8.6.0_eslint@8.34.0
eslint-plugin-svelte3: 4.0.0_dbthnr4b2bdkhyiebwn7su3hnq
eslint: 8.35.0
eslint-config-prettier: 8.6.0_eslint@8.35.0
eslint-plugin-svelte3: 4.0.0_n4ieifq2d7jq3sqoe474cgqlim
iconify-icon: 1.0.7
just-intersect: 4.3.0
mdsvex: 0.10.6_svelte@3.55.1
mdsvex-relative-images: 1.0.3
postcss: 8.4.21
postcss-import: 15.1.0_postcss@8.4.21
postcss-load-config: 4.0.1_postcss@8.4.21
@ -77,7 +81,7 @@ devDependencies:
sass: 1.58.3
scrape-it: 5.3.2
svelte: 3.55.1
svelte-check: 3.0.3_yqhbri7c5yusomev55u36f7etq
svelte-check: 3.0.4_yqhbri7c5yusomev55u36f7etq
svelte-lazy-loader: 1.0.0
svelte-preprocess: 4.10.7_o53ofcihxu4urxldnfcp5z27ga
tslib: 2.5.0
@ -528,8 +532,8 @@ packages:
dev: true
optional: true
/@eslint/eslintrc/1.4.1:
resolution: {integrity: sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==}
/@eslint/eslintrc/2.0.0:
resolution: {integrity: sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
@ -545,6 +549,11 @@ packages:
- supports-color
dev: true
/@eslint/js/8.35.0:
resolution: {integrity: sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/@humanwhocodes/config-array/0.11.8:
resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
engines: {node: '>=10.10.0'}
@ -662,13 +671,13 @@ packages:
fastq: 1.15.0
dev: true
/@playwright/test/1.31.0:
resolution: {integrity: sha512-Ys5s/06Dg9g3zAIdCIb/UOBYim3U7Zjb3DvC6XBtnRmnglH5O47iwYzmtxXu9fhSyzI2Jn28apkXIOD81GgCdw==}
/@playwright/test/1.31.1:
resolution: {integrity: sha512-IsytVZ+0QLDh1Hj83XatGp/GsI1CDJWbyDaBGbainsh0p2zC7F4toUocqowmjS6sQff2NGT3D9WbDj/3K2CJiA==}
engines: {node: '>=14'}
hasBin: true
dependencies:
'@types/node': 18.11.18
playwright-core: 1.31.0
playwright-core: 1.31.1
optionalDependencies:
fsevents: 2.3.2
dev: true
@ -707,29 +716,29 @@ packages:
picomatch: 2.3.1
dev: true
/@sveltejs/adapter-auto/1.0.3_@sveltejs+kit@1.8.3:
/@sveltejs/adapter-auto/1.0.3_@sveltejs+kit@1.8.5:
resolution: {integrity: sha512-hc7O12YQqvZ1CD4fo1gMJuPzBZvuoG5kwxb2RRoz4fVoB8B2vuPO2cY751Ln0G6T/HMrAf8kCqw6Pg+wbxcstw==}
peerDependencies:
'@sveltejs/kit': ^1.0.0
dependencies:
'@sveltejs/kit': 1.8.3_svelte@3.55.1+vite@4.1.4
'@sveltejs/kit': 1.8.5_svelte@3.55.1+vite@4.1.4
import-meta-resolve: 2.2.1
dev: true
/@sveltejs/adapter-static/2.0.1_@sveltejs+kit@1.8.3:
/@sveltejs/adapter-static/2.0.1_@sveltejs+kit@1.8.5:
resolution: {integrity: sha512-o5/q3YwD/ErxYCFlK1v3ydvldyNKk1lh3oeyxn4mhz+Pkbx/uuxhzmbOpytTlp5aVqNHDVsb04xadUzOFCDDzw==}
peerDependencies:
'@sveltejs/kit': ^1.5.0
dependencies:
'@sveltejs/kit': 1.8.3_svelte@3.55.1+vite@4.1.4
'@sveltejs/kit': 1.8.5_svelte@3.55.1+vite@4.1.4
dev: true
/@sveltejs/adapter-vercel/1.0.6_@sveltejs+kit@1.8.3:
/@sveltejs/adapter-vercel/1.0.6_@sveltejs+kit@1.8.5:
resolution: {integrity: sha512-fo6aaEygPd/6B5Jms4Ff7R4jbADnppuLvKOWBNTGe5MGB7ZRUkl+gxHWMQx2av2knyEZkA6V8y5M6R3ML5yN4g==}
peerDependencies:
'@sveltejs/kit': ^1.0.0
dependencies:
'@sveltejs/kit': 1.8.3_svelte@3.55.1+vite@4.1.4
'@sveltejs/kit': 1.8.5_svelte@3.55.1+vite@4.1.4
'@vercel/nft': 0.22.6
esbuild: 0.16.17
transitivePeerDependencies:
@ -737,8 +746,8 @@ packages:
- supports-color
dev: true
/@sveltejs/kit/1.8.3_svelte@3.55.1+vite@4.1.4:
resolution: {integrity: sha512-32tiLy5PPpt2lquK2p53/5wR+ghAXw0HymIBEezmwmwtzx7Xf36xw3RG3fDYQ9gyzon89T+JRweXgAv/qhhvSQ==}
/@sveltejs/kit/1.8.5_svelte@3.55.1+vite@4.1.4:
resolution: {integrity: sha512-b6kbjVAivoPd3oL9IVBaZBWiuHeI0qBKfszSDXcqsPfiSMyUK7ilHDFVSWNn+2EMPO48+87iuho71yTCOXZE3w==}
engines: {node: ^16.14 || >=18}
hasBin: true
requiresBuild: true
@ -752,7 +761,7 @@ packages:
devalue: 4.3.0
esm-env: 1.0.0
kleur: 4.1.5
magic-string: 0.29.0
magic-string: 0.30.0
mime: 3.0.0
sade: 1.8.1
set-cookie-parser: 2.5.1
@ -839,7 +848,11 @@ packages:
resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
dev: true
/@typescript-eslint/eslint-plugin/5.53.0_ny4s7qc6yg74faf3d6xty2ofzy:
/@types/unist/2.0.6:
resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==}
dev: true
/@typescript-eslint/eslint-plugin/5.53.0_cjo54hduev4bqhpjw5znwiokqu:
resolution: {integrity: sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@ -850,12 +863,12 @@ packages:
typescript:
optional: true
dependencies:
'@typescript-eslint/parser': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
'@typescript-eslint/parser': 5.53.0_ycpbpc6yetojsgtrx3mwntkhsu
'@typescript-eslint/scope-manager': 5.53.0
'@typescript-eslint/type-utils': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
'@typescript-eslint/utils': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
'@typescript-eslint/type-utils': 5.53.0_ycpbpc6yetojsgtrx3mwntkhsu
'@typescript-eslint/utils': 5.53.0_ycpbpc6yetojsgtrx3mwntkhsu
debug: 4.3.4
eslint: 8.34.0
eslint: 8.35.0
grapheme-splitter: 1.0.4
ignore: 5.2.4
natural-compare-lite: 1.4.0
@ -867,7 +880,7 @@ packages:
- supports-color
dev: true
/@typescript-eslint/parser/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm:
/@typescript-eslint/parser/5.53.0_ycpbpc6yetojsgtrx3mwntkhsu:
resolution: {integrity: sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@ -881,7 +894,7 @@ packages:
'@typescript-eslint/types': 5.53.0
'@typescript-eslint/typescript-estree': 5.53.0_typescript@4.9.5
debug: 4.3.4
eslint: 8.34.0
eslint: 8.35.0
typescript: 4.9.5
transitivePeerDependencies:
- supports-color
@ -895,7 +908,7 @@ packages:
'@typescript-eslint/visitor-keys': 5.53.0
dev: true
/@typescript-eslint/type-utils/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm:
/@typescript-eslint/type-utils/5.53.0_ycpbpc6yetojsgtrx3mwntkhsu:
resolution: {integrity: sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@ -906,9 +919,9 @@ packages:
optional: true
dependencies:
'@typescript-eslint/typescript-estree': 5.53.0_typescript@4.9.5
'@typescript-eslint/utils': 5.53.0_7kw3g6rralp5ps6mg3uyzz6azm
'@typescript-eslint/utils': 5.53.0_ycpbpc6yetojsgtrx3mwntkhsu
debug: 4.3.4
eslint: 8.34.0
eslint: 8.35.0
tsutils: 3.21.0_typescript@4.9.5
typescript: 4.9.5
transitivePeerDependencies:
@ -941,7 +954,7 @@ packages:
- supports-color
dev: true
/@typescript-eslint/utils/5.53.0_7kw3g6rralp5ps6mg3uyzz6azm:
/@typescript-eslint/utils/5.53.0_ycpbpc6yetojsgtrx3mwntkhsu:
resolution: {integrity: sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
@ -952,9 +965,9 @@ packages:
'@typescript-eslint/scope-manager': 5.53.0
'@typescript-eslint/types': 5.53.0
'@typescript-eslint/typescript-estree': 5.53.0_typescript@4.9.5
eslint: 8.34.0
eslint: 8.35.0
eslint-scope: 5.1.1
eslint-utils: 3.0.0_eslint@8.34.0
eslint-utils: 3.0.0_eslint@8.35.0
semver: 7.3.8
transitivePeerDependencies:
- supports-color
@ -1752,22 +1765,22 @@ packages:
dev: true
optional: true
/eslint-config-prettier/8.6.0_eslint@8.34.0:
/eslint-config-prettier/8.6.0_eslint@8.35.0:
resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
eslint: 8.34.0
eslint: 8.35.0
dev: true
/eslint-plugin-svelte3/4.0.0_dbthnr4b2bdkhyiebwn7su3hnq:
/eslint-plugin-svelte3/4.0.0_n4ieifq2d7jq3sqoe474cgqlim:
resolution: {integrity: sha512-OIx9lgaNzD02+MDFNLw0GEUbuovNcglg+wnd/UY0fbZmlQSz7GlQiQ1f+yX0XvC07XPcDOnFcichqI3xCwp71g==}
peerDependencies:
eslint: '>=8.0.0'
svelte: ^3.2.0
dependencies:
eslint: 8.34.0
eslint: 8.35.0
svelte: 3.55.1
dev: true
@ -1787,13 +1800,13 @@ packages:
estraverse: 5.3.0
dev: true
/eslint-utils/3.0.0_eslint@8.34.0:
/eslint-utils/3.0.0_eslint@8.35.0:
resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==}
engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0}
peerDependencies:
eslint: '>=5'
dependencies:
eslint: 8.34.0
eslint: 8.35.0
eslint-visitor-keys: 2.1.0
dev: true
@ -1807,12 +1820,13 @@ packages:
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint/8.34.0:
resolution: {integrity: sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==}
/eslint/8.35.0:
resolution: {integrity: sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
'@eslint/eslintrc': 1.4.1
'@eslint/eslintrc': 2.0.0
'@eslint/js': 8.35.0
'@humanwhocodes/config-array': 0.11.8
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
@ -1823,10 +1837,10 @@ packages:
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.1.1
eslint-utils: 3.0.0_eslint@8.34.0
eslint-utils: 3.0.0_eslint@8.35.0
eslint-visitor-keys: 3.3.0
espree: 9.4.1
esquery: 1.4.0
esquery: 1.4.2
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
@ -1875,8 +1889,8 @@ packages:
dev: true
optional: true
/esquery/1.4.0:
resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==}
/esquery/1.4.2:
resolution: {integrity: sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng==}
engines: {node: '>=0.10'}
dependencies:
estraverse: 5.3.0
@ -2426,6 +2440,10 @@ packages:
dev: true
optional: true
/just-camel-case/4.0.2:
resolution: {integrity: sha512-df6QI/EIq+6uHe/wtaa9Qq7/pp4wr4pJC/r1+7XhVL6m5j03G6h9u9/rIZr8rDASX7CxwDPQnZjffCo2e6PRLw==}
dev: true
/just-intersect/4.3.0:
resolution: {integrity: sha512-XdAiJUmfM7VOoBUh7I4xo+0YYuzCPiV0Xf21oAmR+1j6a/P8KxJUCigZDblmURZmkIWffNziY2sbSaHrJbNcuA==}
dev: true
@ -2515,8 +2533,8 @@ packages:
'@jridgewell/sourcemap-codec': 1.4.14
dev: true
/magic-string/0.29.0:
resolution: {integrity: sha512-WcfidHrDjMY+eLjlU+8OvwREqHwpgCeKVBUpQ3OhYYuvfaYCUgcbuBzappNzZvg/v8onU3oQj+BYpkOJe9Iw4Q==}
/magic-string/0.30.0:
resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==}
engines: {node: '>=12'}
dependencies:
'@jridgewell/sourcemap-codec': 1.4.14
@ -2529,6 +2547,25 @@ packages:
semver: 6.3.0
dev: true
/mdsvex-relative-images/1.0.3:
resolution: {integrity: sha512-3XvpnaguRAhC5gchpqCH+A5Yl28xG9WDPylVla0+k90c5LT+QqSM+hwHd1v5C7gB2cAT0AIhuMsY/g6aCw+WDg==}
dependencies:
just-camel-case: 4.0.2
unist-util-visit: 3.1.0
dev: true
/mdsvex/0.10.6_svelte@3.55.1:
resolution: {integrity: sha512-aGRDY0r5jx9+OOgFdyB9Xm3EBr9OUmcrTDPWLB7a7g8VPRxzPy4MOBmcVYgz7ErhAJ7bZ/coUoj6aHio3x/2mA==}
peerDependencies:
svelte: 3.x
dependencies:
'@types/unist': 2.0.6
prism-svelte: 0.4.7
prismjs: 1.29.0
svelte: 3.55.1
vfile-message: 2.0.4
dev: true
/merge2/1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
@ -2865,8 +2902,8 @@ packages:
engines: {node: '>=0.10.0'}
dev: true
/playwright-core/1.31.0:
resolution: {integrity: sha512-/KquBjS5DcASCh8cGeNVHuC0kyb7c9plKTwaKxgOGtxT7+DZO2fjmFvPDBSXslEIK5CeOO/2kk5rOCktFXKEdA==}
/playwright-core/1.31.1:
resolution: {integrity: sha512-JTyX4kV3/LXsvpHkLzL2I36aCdml4zeE35x+G5aPc4bkLsiRiQshU5lWeVpHFAuC8xAcbI6FDcw/8z3q2xtJSQ==}
engines: {node: '>=14'}
hasBin: true
dev: true
@ -3310,6 +3347,15 @@ packages:
hasBin: true
dev: true
/prism-svelte/0.4.7:
resolution: {integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ==}
dev: true
/prismjs/1.29.0:
resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
engines: {node: '>=6'}
dev: true
/psl/1.9.0:
resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==}
dev: true
@ -3752,8 +3798,8 @@ packages:
engines: {node: '>= 0.4'}
dev: true
/svelte-check/3.0.3_yqhbri7c5yusomev55u36f7etq:
resolution: {integrity: sha512-ByBFXo3bfHRGIsYEasHkdMhLkNleVfszX/Ns1oip58tPJlKdo5Ssr8kgVIuo5oq00hss8AIcdesuy0Xt0BcTvg==}
/svelte-check/3.0.4_yqhbri7c5yusomev55u36f7etq:
resolution: {integrity: sha512-feIyBAA5cSIxq4vq6mwGvGQTHy/wBVQbs5b+/VvE21WN8X7nonAuSqwvZv0UDBowzRka3Rh4gmLPH8rPePz3/w==}
hasBin: true
peerDependencies:
svelte: ^3.55.0
@ -4080,6 +4126,31 @@ packages:
busboy: 1.6.0
dev: true
/unist-util-is/5.2.0:
resolution: {integrity: sha512-Glt17jWwZeyqrFqOK0pF1Ded5U3yzJnFr8CG1GMjCWTp9zDo2p+cmD6pWbZU8AgM5WU3IzRv6+rBwhzsGh6hBQ==}
dev: true
/unist-util-stringify-position/2.0.3:
resolution: {integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==}
dependencies:
'@types/unist': 2.0.6
dev: true
/unist-util-visit-parents/4.1.1:
resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==}
dependencies:
'@types/unist': 2.0.6
unist-util-is: 5.2.0
dev: true
/unist-util-visit/3.1.0:
resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==}
dependencies:
'@types/unist': 2.0.6
unist-util-is: 5.2.0
unist-util-visit-parents: 4.1.1
dev: true
/update-browserslist-db/1.0.10_browserslist@4.21.4:
resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
hasBin: true
@ -4118,6 +4189,13 @@ packages:
dev: true
optional: true
/vfile-message/2.0.4:
resolution: {integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ==}
dependencies:
'@types/unist': 2.0.6
unist-util-stringify-position: 2.0.3
dev: true
/vite-imagetools/4.0.18:
resolution: {integrity: sha512-PpvOy7eDQadfuJNarwPU9X8nK0AjtRsyxhfMjqg/wrAyssNgeaZWMGlWQK/U3YhV9+wpdV5Mep8FZvGa31IY1Q==}
engines: {node: '>=12.0.0'}

View file

@ -0,0 +1,29 @@
<script lang="ts">
import OpenInNew from '@iconify-icons/mdi/open-in-new';
export let rel = 'noreferrer';
export let target = '_blank';
export let href: string;
export let ariaLabel: string;
export let showIcon: boolean = false;
</script>
<span class:show-icon={showIcon}>
<a aria-label={`Open ${ariaLabel} externally`} title={`Open ${ariaLabel} externally`} {href} {rel} {target}>
<slot />
</a>
{#if showIcon}
<iconify-icon icon={OpenInNew} width="24" height="24" role="img" title={`Open ${ariaLabel} Externally`} />
{/if}
</span>
<style lang="postcss">
.show-icon {
display: flex;
gap: 0.5rem;
place-items: center;
&:hover {
color: var(--shellYellow);
}
}
</style>

View file

@ -0,0 +1,10 @@
<script lang="ts">
export let rel = '';
export let target = '';
export let href: string;
export let ariaLabel: string;
</script>
<a aria-label={ariaLabel} {href} {rel} {target}>
<slot />
</a>

View file

@ -0,0 +1,58 @@
<script lang="ts">
import type { SvelteComponent } from "svelte";
import { Picture } from "svelte-lazy-loader";
type ImageMeta = {
format: string;
src: string;
type: string;
width: string;
height: string;
};
export let name: string;
export let placeholder: string;
export let src: string;
export let alt: string;
export let loading: "lazy" | "eager" = "lazy";
export let formats: ImageMeta[];
</script>
<div class="gridItemStyles">
<div class="portfolioPicture">
<h2>{name}</h2>
<Picture {placeholder} {src} {loading} {alt}>
{#each formats as { src, format, width }}
<source data-srcset={src} type="image/{format}" {width} />
{/each}
</Picture>
</div>
<div class="portfolio-details">
<slot />
</div>
</div>
<style lang="postcss">
:global(.portfolioPicture) {
border-radius: 3px;
max-width: 500px;
/* width: minmax(200px, 500px); */
}
:global(.gridItemStyles) {
display: grid;
grid-template-columns: minmax(200px, 500px) 1fr;
width: 100%;
gap: 2rem;
margin: 0 auto;
@media (max-width: 800px) {
grid-template-columns: 1fr;
}
p {
margin: 1rem 0;
padding: 0;
}
}
</style>

View file

@ -0,0 +1,17 @@
<script lang="ts">
export let name: string;
</script>
<span>{name}</span>
<style lang="postcss">
span {
background-color: var(--linkHover);
color: var(--buttonTextColor);
padding: 0.25rem 0.5rem;
margin: 0.5rem 0.25rem;
border-radius: 2px;
font-weight: 800;
font-size: 1.2rem;
}
</style>

View file

@ -16,6 +16,9 @@
import tortie_derp_blurred from '$lib/assets/images/tortie_derp.jpg?w=100&jpg&blur=10';
import orange_derp from '$lib/assets/images/orange_derp.jpg?format=webp;avif;jpg&metadata';
import orange_derp_blurred from '$lib/assets/images/orange_derp.jpg?w=100&jpg&blur=10';
import Tag from '$root/lib/components/Tag.svelte';
import ExternalLink from '$root/lib/components/ExternalLink.svelte';
import { Disclosure } from '@rgossiaux/svelte-headlessui';
</script>
<SEO title="About" />
@ -80,6 +83,16 @@
<iconify-icon icon={Svelte} width="24" height="24" role="img" title="Svelte" />
<p>Svelte</p>
</a>
<a
target="_blank"
aria-label="NextJS"
href="https://nextjs.org/"
class="center"
rel="noreferrer"
>
<iconify-icon icon={Nextdotjs} width="24" height="24" role="img" title="NextJS" />
<p>NextJS</p>
</a>
<a
target="_blank"
aria-label="Remix"
@ -110,16 +123,6 @@
<iconify-icon icon={Prisma} width="24" height="24" role="img" title="Prisma" />
<p>Prisma</p>
</a>
<a
target="_blank"
aria-label="NextJS"
href="https://nextjs.org/"
class="center"
rel="noreferrer"
>
<iconify-icon icon={Nextdotjs} width="24" height="24" role="img" title="NextJS" />
<p>NextJS</p>
</a>
<a
target="_blank"
aria-label="GatsbyJS"
@ -151,127 +154,102 @@
<div class="extracurricular">
<div class="card">
<h3>
<a
target="_blank"
aria-label="Wes Bos Courses"
<ExternalLink
ariaLabel="Wes Bos Courses"
href="https://wesbos.com/courses"
rel="noreferrer"
showIcon
>
Wes Bos
</a>
</ExternalLink>
</h3>
<div class="tags">
<p>React</p>
<p>GraphQL</p>
<p>Gatsby</p>
<Tag name="React" />
<Tag name="GraphQL" />
<Tag name="Gatsby" />
<Tag name="JavaScript" />
</div>
</div>
<div class="card">
<h3>
<a
target="_blank"
aria-label="Levelup Tutorials"
href="https://leveluptutorials.com"
rel="noreferrer"
>
LevelupTutorials
</a>{' '}
-{' '}
<a
target="_blank"
aria-label="Scott Tolinski"
<ExternalLink
ariaLabel="Scott Tolinski"
href="https://www.scotttolinski.com"
rel="noreferrer"
showIcon
>
Scott Tolinski
</a>
</ExternalLink>
<ExternalLink
ariaLabel="Levelup Tutorials"
href="https://levelup.video"
showIcon
>
Level Up Tutorials
</ExternalLink>
</h3>
<div class="tags">
<p>React</p>
<p>TypeScript</p>
<p>Svelte Kit</p>
<p>Remix</p>
<p>Figma</p>
<p>Design Systems</p>
<Tag name="React" />
<Tag name="TypeScript" />
<Tag name="Svelte Kit" />
<Tag name="Remix" />
<Tag name="Figma" />
<Tag name="Design Systems" />
</div>
</div>
<div class="card">
<h3>
<a
target="_blank"
aria-label="Levelup Tutorials"
href="https://leveluptutorials.com"
rel="noreferrer"
>
LevelupTutorials
</a>{' '}
-{' '}
<a
target="_blank"
aria-label="Amy Kapernick"
<ExternalLink
ariaLabel="Amy Kapernick"
href="https://www.amyskapers.dev/"
rel="noreferrer"
showIcon
>
Amy Kapernick
</a>
</ExternalLink>
<ExternalLink
ariaLabel="Levelup Tutorials"
href="https://levelup.video"
showIcon
>
Level Up Tutorials
</ExternalLink>
</h3>
<div class="tags">
<p>Accessibility for Everyone</p>
<Tag name="Accessibility for Everyone" />
</div>
</div>
<div class="card">
<h3>
<a
target="_blank"
aria-label="Andrew Mead on Udemy"
<ExternalLink
ariaLabel="Andrew Mead on Udemy"
href="https://www.udemy.com/user/andrewmead/"
rel="noreferrer"
showIcon
>
Andrew Mead
</a>
</ExternalLink>
</h3>
<div class="tags">
<p>GraphQL</p>
<p>Apollo</p>
<p>Prisma</p>
<Tag name="GraphQL" />
<Tag name="Apollo" />
<Tag name="Prisma" />
</div>
</div>
<div class="card">
<h3>
<a
target="_blank"
aria-label="Steven Grider on Udemy"
<ExternalLink
ariaLabel="Steven Grider on Udemy"
href="https://www.udemy.com/user/sgslo/"
rel="noreferrer"
showIcon
>
Steven Grider
</a>
</ExternalLink>
</h3>
<div class="tags">
<p>React</p>
<p>Redux</p>
<p>Docker</p>
<p>GraphQL</p>
<p>CSS</p>
<p>HTML</p>
<p>JS</p>
</div>
</div>
<div class="card">
<h3>
<a
target="_blank"
aria-label="Jonas Schmedtmann on Udemy"
href="https://www.udemy.com/user/jonasschmedtmann/"
rel="noreferrer"
>
Jonas Schmedtmann
</a>
</h3>
<div class="tags">
<p>CSS</p>
<p>HTML</p>
<p>JS</p>
<Tag name="React" />
<Tag name="Redux" />
<Tag name="Docker" />
<Tag name="GraphQL" />
<Tag name="CSS" />
<Tag name="HTML" />
<Tag name="JavaScript" />
</div>
</div>
</div>
@ -336,7 +314,7 @@
p {
margin: 1rem;
padding: 0.2rem;
/* padding: 0.2rem; */
}
}
@ -344,7 +322,8 @@
display: flex;
flex-wrap: wrap;
flex-direction: row;
grid-gap: 1rem;
place-content: center;
gap: 1rem;
margin-top: 1rem;
font-size: 2rem;
@ -378,8 +357,8 @@
.extracurricular {
display: grid;
grid-template-columns: repeat(3, auto);
justify-content: center;
align-items: center;
/* justify-content: center; */
/* align-items: center; */
gap: 1.5rem;
@media (max-width: 1000px) {
@ -389,7 +368,7 @@
@media (max-width: 700px) {
--cardHeightMin: 10rem;
grid-template-columns: 0.8fr;
grid-template-columns: 1fr;
}
}
@ -398,16 +377,6 @@
flex-wrap: wrap;
justify-content: left;
align-items: center;
p {
background-color: var(--linkHover);
color: var(--buttonTextColor);
padding: 0.25rem 0.5rem;
margin: 0.5rem 0.25rem;
border-radius: 2px;
font-weight: 800;
font-size: 1.2rem;
}
}
.cat-pics {