Update packages and component paths
This commit is contained in:
parent
a642a0a588
commit
7cea5232b4
15 changed files with 92 additions and 115 deletions
187
package-lock.json
generated
187
package-lock.json
generated
|
|
@ -383,6 +383,15 @@
|
||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@fastify/busboy": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA==",
|
||||||
|
"dev": true,
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@jridgewell/gen-mapping": {
|
"node_modules/@jridgewell/gen-mapping": {
|
||||||
"version": "0.3.3",
|
"version": "0.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz",
|
||||||
|
|
@ -422,9 +431,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@jridgewell/trace-mapping": {
|
"node_modules/@jridgewell/trace-mapping": {
|
||||||
"version": "0.3.18",
|
"version": "0.3.20",
|
||||||
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz",
|
"resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz",
|
||||||
"integrity": "sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==",
|
"integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/resolve-uri": "3.1.0",
|
"@jridgewell/resolve-uri": "3.1.0",
|
||||||
|
|
@ -467,9 +476,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@polka/url": {
|
"node_modules/@polka/url": {
|
||||||
"version": "1.0.0-next.21",
|
"version": "1.0.0-next.24",
|
||||||
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz",
|
"resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.24.tgz",
|
||||||
"integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==",
|
"integrity": "sha512-2LuNTFBIO0m7kKIQvvPHN6UE63VjpmL9rnEEaOOaiSPbZK+zUOYIzBAWcED+3XYzhYsd/0mD57VdxAEqqV52CQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@sveltejs/adapter-static": {
|
"node_modules/@sveltejs/adapter-static": {
|
||||||
|
|
@ -482,24 +491,25 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sveltejs/kit": {
|
"node_modules/@sveltejs/kit": {
|
||||||
"version": "1.21.0",
|
"version": "1.27.7",
|
||||||
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.21.0.tgz",
|
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-1.27.7.tgz",
|
||||||
"integrity": "sha512-CBsYoI34SjtOQp0eG85dmVnvTR3Pjs8VgAQhO0CgQja9BIorKl808F1X8EunPhCcyek5r5lKQE1Mmbi0RuzHqA==",
|
"integrity": "sha512-AzXYDoYt42clCBwLF9GTHsXyg2DFR31Ncyt8yxu8Aw4tgB433V+w+hcr1RTfAN9zKW2J2PY9FMQ8FoX/4Vw8CA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sveltejs/vite-plugin-svelte": "^2.4.1",
|
"@sveltejs/vite-plugin-svelte": "^2.5.0",
|
||||||
"@types/cookie": "^0.5.1",
|
"@types/cookie": "^0.5.1",
|
||||||
"cookie": "^0.5.0",
|
"cookie": "^0.5.0",
|
||||||
"devalue": "^4.3.1",
|
"devalue": "^4.3.1",
|
||||||
"esm-env": "^1.0.0",
|
"esm-env": "^1.0.0",
|
||||||
"kleur": "^4.1.5",
|
"kleur": "^4.1.5",
|
||||||
"magic-string": "^0.30.0",
|
"magic-string": "^0.30.0",
|
||||||
"mime": "^3.0.0",
|
"mrmime": "^1.0.1",
|
||||||
"sade": "^1.8.1",
|
"sade": "^1.8.1",
|
||||||
"set-cookie-parser": "^2.6.0",
|
"set-cookie-parser": "^2.6.0",
|
||||||
"sirv": "^2.0.2",
|
"sirv": "^2.0.2",
|
||||||
"undici": "~5.22.0"
|
"tiny-glob": "^0.2.9",
|
||||||
|
"undici": "~5.26.2"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"svelte-kit": "svelte-kit.js"
|
"svelte-kit": "svelte-kit.js"
|
||||||
|
|
@ -508,14 +518,14 @@
|
||||||
"node": "^16.14 || >=18"
|
"node": "^16.14 || >=18"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"svelte": "^3.54.0 || ^4.0.0-next.0",
|
"svelte": "^3.54.0 || ^4.0.0-next.0 || ^5.0.0-next.0",
|
||||||
"vite": "^4.0.0"
|
"vite": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@sveltejs/vite-plugin-svelte": {
|
"node_modules/@sveltejs/vite-plugin-svelte": {
|
||||||
"version": "2.4.2",
|
"version": "2.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.2.tgz",
|
"resolved": "https://registry.npmjs.org/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.5.3.tgz",
|
||||||
"integrity": "sha512-ePfcC48ftMKhkT0OFGdOyycYKnnkT6i/buzey+vHRTR/JpQvuPzzhf1PtKqCDQfJRgoPSN2vscXs6gLigx/zGw==",
|
"integrity": "sha512-erhNtXxE5/6xGZz/M9eXsmI7Pxa6MS7jyTy06zN3Ck++ldrppOnOlJwHHTsMC7DHDQdgUp4NAc4cDNQ9eGdB/w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sveltejs/vite-plugin-svelte-inspector": "^1.0.3",
|
"@sveltejs/vite-plugin-svelte-inspector": "^1.0.3",
|
||||||
|
|
@ -530,7 +540,7 @@
|
||||||
"node": "^14.18.0 || >= 16"
|
"node": "^14.18.0 || >= 16"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"svelte": "^3.54.0 || ^4.0.0",
|
"svelte": "^3.54.0 || ^4.0.0 || ^5.0.0-next.0",
|
||||||
"vite": "^4.0.0"
|
"vite": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -552,15 +562,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@types/cookie": {
|
"node_modules/@types/cookie": {
|
||||||
"version": "0.5.1",
|
"version": "0.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.5.4.tgz",
|
||||||
"integrity": "sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==",
|
"integrity": "sha512-7z/eR6O859gyWIAjuvBWFzNURmf2oPBmJlfVWkwehU5nzIyjwBsTh7WMmEEV4JFnHuQ3ex4oyTvfKzcyJVDBNA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/estree": {
|
"node_modules/@types/estree": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz",
|
||||||
"integrity": "sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==",
|
"integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/node": {
|
"node_modules/@types/node": {
|
||||||
|
|
@ -572,15 +582,15 @@
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/@types/pug": {
|
"node_modules/@types/pug": {
|
||||||
"version": "2.0.6",
|
"version": "2.0.10",
|
||||||
"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/@types/pug/-/pug-2.0.10.tgz",
|
||||||
"integrity": "sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg==",
|
"integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/acorn": {
|
"node_modules/acorn": {
|
||||||
"version": "8.9.0",
|
"version": "8.11.2",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz",
|
||||||
"integrity": "sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ==",
|
"integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"acorn": "bin/acorn"
|
"acorn": "bin/acorn"
|
||||||
|
|
@ -666,18 +676,6 @@
|
||||||
"node": "*"
|
"node": "*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/busboy": {
|
|
||||||
"version": "1.6.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
|
|
||||||
"integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
|
|
||||||
"dev": true,
|
|
||||||
"dependencies": {
|
|
||||||
"streamsearch": "^1.1.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10.16.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/callsites": {
|
"node_modules/callsites": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
||||||
|
|
@ -864,9 +862,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fast-glob": {
|
"node_modules/fast-glob": {
|
||||||
"version": "3.2.12",
|
"version": "3.3.2",
|
||||||
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
|
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz",
|
||||||
"integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
|
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nodelib/fs.stat": "^2.0.2",
|
"@nodelib/fs.stat": "^2.0.2",
|
||||||
|
|
@ -1057,9 +1055,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/magic-string": {
|
"node_modules/magic-string": {
|
||||||
"version": "0.30.0",
|
"version": "0.30.5",
|
||||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.0.tgz",
|
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz",
|
||||||
"integrity": "sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==",
|
"integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/sourcemap-codec": "^1.4.13"
|
"@jridgewell/sourcemap-codec": "^1.4.13"
|
||||||
|
|
@ -1096,18 +1094,6 @@
|
||||||
"node": ">=8.6"
|
"node": ">=8.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mime": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==",
|
|
||||||
"dev": true,
|
|
||||||
"bin": {
|
|
||||||
"mime": "cli.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/min-indent": {
|
"node_modules/min-indent": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
|
||||||
|
|
@ -1175,9 +1161,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/nanoid": {
|
"node_modules/nanoid": {
|
||||||
"version": "3.3.6",
|
"version": "3.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
||||||
"integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==",
|
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -1261,9 +1247,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.4.24",
|
"version": "8.4.32",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.24.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.32.tgz",
|
||||||
"integrity": "sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==",
|
"integrity": "sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
|
|
@ -1280,7 +1266,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"nanoid": "^3.3.6",
|
"nanoid": "^3.3.7",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"source-map-js": "^1.0.2"
|
"source-map-js": "^1.0.2"
|
||||||
},
|
},
|
||||||
|
|
@ -1352,9 +1338,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/rollup": {
|
"node_modules/rollup": {
|
||||||
"version": "3.25.3",
|
"version": "3.29.4",
|
||||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.25.3.tgz",
|
"resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz",
|
||||||
"integrity": "sha512-ZT279hx8gszBj9uy5FfhoG4bZx8c+0A1sbqtr7Q3KNWIizpTdDEPZbV2xcbvHsnFp4MavCQYZyzApJ+virB8Yw==",
|
"integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"rollup": "dist/bin/rollup"
|
"rollup": "dist/bin/rollup"
|
||||||
|
|
@ -1458,15 +1444,6 @@
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/streamsearch": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
|
|
||||||
"integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
|
|
||||||
"dev": true,
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/strip-indent": {
|
"node_modules/strip-indent": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
|
||||||
|
|
@ -1480,9 +1457,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/svelte": {
|
"node_modules/svelte": {
|
||||||
"version": "4.0.1",
|
"version": "4.2.8",
|
||||||
"resolved": "https://registry.npmjs.org/svelte/-/svelte-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/svelte/-/svelte-4.2.8.tgz",
|
||||||
"integrity": "sha512-7n2u7A5cu8xCY6MBiXh/Mg6Lh3+Mw2qXlTDBYhzvCvmSM4L4gc4MVo540UtGcjqBiA48E1VDW+EUpBr7iuBlPg==",
|
"integrity": "sha512-hU6dh1MPl8gh6klQZwK/n73GiAHiR95IkFsesLPbMeEZi36ydaXL/ZAb4g9sayT0MXzpxyZjR28yderJHxcmYA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ampproject/remapping": "^2.2.1",
|
"@ampproject/remapping": "^2.2.1",
|
||||||
|
|
@ -1496,7 +1473,7 @@
|
||||||
"estree-walker": "^3.0.3",
|
"estree-walker": "^3.0.3",
|
||||||
"is-reference": "^3.0.1",
|
"is-reference": "^3.0.1",
|
||||||
"locate-character": "^3.0.0",
|
"locate-character": "^3.0.0",
|
||||||
"magic-string": "^0.30.0",
|
"magic-string": "^0.30.4",
|
||||||
"periscopic": "^3.1.0"
|
"periscopic": "^3.1.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
|
@ -1504,9 +1481,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/svelte-check": {
|
"node_modules/svelte-check": {
|
||||||
"version": "3.4.4",
|
"version": "3.6.2",
|
||||||
"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/svelte-check/-/svelte-check-3.6.2.tgz",
|
||||||
"integrity": "sha512-Uys9+R65cj8TmP8f5UpS7B2xKpNLYNxEWJsA5ZoKcWq/uwvABFF7xS6iPQGLoa7hxz0DS6xU60YFpmq06E4JxA==",
|
"integrity": "sha512-E6iFh4aUCGJLRz6QZXH3gcN/VFfkzwtruWSRmlKrLWQTiO6VzLsivR6q02WYLGNAGecV3EocqZuCDrC2uttZ0g==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@jridgewell/trace-mapping": "^0.3.17",
|
"@jridgewell/trace-mapping": "^0.3.17",
|
||||||
|
|
@ -1515,14 +1492,14 @@
|
||||||
"import-fresh": "^3.2.1",
|
"import-fresh": "^3.2.1",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"sade": "^1.7.4",
|
"sade": "^1.7.4",
|
||||||
"svelte-preprocess": "^5.0.3",
|
"svelte-preprocess": "^5.1.0",
|
||||||
"typescript": "^5.0.3"
|
"typescript": "^5.0.3"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"svelte-check": "bin/svelte-check"
|
"svelte-check": "bin/svelte-check"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0"
|
"svelte": "^3.55.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/svelte-hmr": {
|
"node_modules/svelte-hmr": {
|
||||||
|
|
@ -1538,9 +1515,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/svelte-preprocess": {
|
"node_modules/svelte-preprocess": {
|
||||||
"version": "5.0.4",
|
"version": "5.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.0.4.tgz",
|
"resolved": "https://registry.npmjs.org/svelte-preprocess/-/svelte-preprocess-5.1.1.tgz",
|
||||||
"integrity": "sha512-ABia2QegosxOGsVlsSBJvoWeXy1wUKSfF7SWJdTjLAbx/Y3SrVevvvbFNQqrSJw89+lNSsM58SipmZJ5SRi5iw==",
|
"integrity": "sha512-p/Dp4hmrBW5mrCCq29lEMFpIJT2FZsRlouxEc5qpbOmXRbaFs7clLs8oKPwD3xCFyZfv1bIhvOzpQkhMEVQdMw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
|
@ -1563,7 +1540,7 @@
|
||||||
"sass": "^1.26.8",
|
"sass": "^1.26.8",
|
||||||
"stylus": "^0.55.0",
|
"stylus": "^0.55.0",
|
||||||
"sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
|
"sugarss": "^2.0.0 || ^3.0.0 || ^4.0.0",
|
||||||
"svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0",
|
"svelte": "^3.23.0 || ^4.0.0-next.0 || ^4.0.0 || ^5.0.0-next.0",
|
||||||
"typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
|
"typescript": ">=3.9.5 || ^4.0.0 || ^5.0.0"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
|
|
@ -1645,9 +1622,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.1.6",
|
"version": "5.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
|
||||||
"integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==",
|
"integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"bin": {
|
"bin": {
|
||||||
"tsc": "bin/tsc",
|
"tsc": "bin/tsc",
|
||||||
|
|
@ -1658,21 +1635,21 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/undici": {
|
"node_modules/undici": {
|
||||||
"version": "5.22.1",
|
"version": "5.26.5",
|
||||||
"resolved": "https://registry.npmjs.org/undici/-/undici-5.22.1.tgz",
|
"resolved": "https://registry.npmjs.org/undici/-/undici-5.26.5.tgz",
|
||||||
"integrity": "sha512-Ji2IJhFXZY0x/0tVBXeQwgPlLWw13GVzpsWPQ3rV50IFMMof2I55PZZxtm4P6iNq+L5znYN9nSTAq0ZyE6lSJw==",
|
"integrity": "sha512-cSb4bPFd5qgR7qr2jYAi0hlX9n5YKK2ONKkLFkxl+v/9BvC0sOpZjBHDBSXc5lWAf5ty9oZdRXytBIHzgUcerw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"busboy": "^1.6.0"
|
"@fastify/busboy": "^2.0.0"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.0"
|
"node": ">=14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vite": {
|
"node_modules/vite": {
|
||||||
"version": "4.3.9",
|
"version": "4.5.1",
|
||||||
"resolved": "https://registry.npmjs.org/vite/-/vite-4.3.9.tgz",
|
"resolved": "https://registry.npmjs.org/vite/-/vite-4.5.1.tgz",
|
||||||
"integrity": "sha512-qsTNZjO9NoJNW7KnOrgYwczm0WctJ8m/yqYAMAK9Lxt4SoySUfS5S8ia9K7JHpa3KEeMfyF8LoJ3c5NeBJy6pg==",
|
"integrity": "sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"esbuild": "^0.17.5",
|
"esbuild": "^0.17.5",
|
||||||
|
|
@ -1718,12 +1695,12 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/vitefu": {
|
"node_modules/vitefu": {
|
||||||
"version": "0.2.4",
|
"version": "0.2.5",
|
||||||
"resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz",
|
||||||
"integrity": "sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==",
|
"integrity": "sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"vite": "^3.0.0 || ^4.0.0"
|
"vite": "^3.0.0 || ^4.0.0 || ^5.0.0"
|
||||||
},
|
},
|
||||||
"peerDependenciesMeta": {
|
"peerDependenciesMeta": {
|
||||||
"vite": {
|
"vite": {
|
||||||
|
|
|
||||||
29
src/lib/Banner.svelte
Normal file
29
src/lib/Banner.svelte
Normal file
|
|
@ -0,0 +1,29 @@
|
||||||
|
<script>
|
||||||
|
export let title = "Quartznet";
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.overlay {
|
||||||
|
display: flex;
|
||||||
|
background-image: url("/img/bluenebula.webp");
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
min-height: 200px;
|
||||||
|
text-align: center;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.title {
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 3rem;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="overlay">
|
||||||
|
<div class="description col-md-5">
|
||||||
|
<h1 class="title">{title}</h1>
|
||||||
|
<p>Software, Games, Science, Space!</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
274
src/lib/Modal.svelte
Normal file
274
src/lib/Modal.svelte
Normal file
|
|
@ -0,0 +1,274 @@
|
||||||
|
<script lang="ts">
|
||||||
|
//@ts-nocheck
|
||||||
|
import {
|
||||||
|
setContext as baseSetContext,
|
||||||
|
createEventDispatcher,
|
||||||
|
} from "svelte";
|
||||||
|
import { fade } from "svelte/transition";
|
||||||
|
|
||||||
|
export let key = "simple-modal";
|
||||||
|
export let closeButton = true;
|
||||||
|
export let closeOnEsc = true;
|
||||||
|
export let closeOnOuterClick = true;
|
||||||
|
export let transitionBg = fade;
|
||||||
|
export let transitionBgProps = { duration: 250 };
|
||||||
|
export let transitionWindow = transitionBg;
|
||||||
|
export let transitionWindowProps = transitionBgProps;
|
||||||
|
export let styleBg = { top: 0, left: 0 };
|
||||||
|
export let styleWindow = {};
|
||||||
|
export let styleContent = {};
|
||||||
|
export let setContext = baseSetContext;
|
||||||
|
export let show: boolean = false;
|
||||||
|
|
||||||
|
let Component = null;
|
||||||
|
let props = null;
|
||||||
|
|
||||||
|
let background;
|
||||||
|
let wrap;
|
||||||
|
let customStyleBg = {};
|
||||||
|
let customStyleWindow = {};
|
||||||
|
let customStyleContent = {};
|
||||||
|
|
||||||
|
let Callback = (props) => {};
|
||||||
|
|
||||||
|
$: Component,
|
||||||
|
() => {
|
||||||
|
show = !!Component;
|
||||||
|
};
|
||||||
|
|
||||||
|
const dispatch = createEventDispatcher();
|
||||||
|
|
||||||
|
const camelCaseToDash = (str) =>
|
||||||
|
str.replace(/([a-zA-Z])(?=[A-Z])/g, "$1-").toLowerCase();
|
||||||
|
|
||||||
|
const toCssString = (props) =>
|
||||||
|
Object.keys(props).reduce(
|
||||||
|
(str, key) => `${str}; ${camelCaseToDash(key)}: ${props[key]}`,
|
||||||
|
""
|
||||||
|
);
|
||||||
|
|
||||||
|
$: cssBg = toCssString(Object.assign({}, styleBg, customStyleBg));
|
||||||
|
$: cssWindow = toCssString(
|
||||||
|
Object.assign({}, styleWindow, customStyleWindow)
|
||||||
|
);
|
||||||
|
$: cssContent = toCssString(
|
||||||
|
Object.assign({}, styleContent, customStyleContent)
|
||||||
|
);
|
||||||
|
|
||||||
|
const open = (
|
||||||
|
NewComponent,
|
||||||
|
newProps = {},
|
||||||
|
style = { bg: {}, window: {}, content: {} },
|
||||||
|
newCallback = () => {}
|
||||||
|
) => {
|
||||||
|
Component = NewComponent;
|
||||||
|
props = newProps;
|
||||||
|
Callback = newCallback;
|
||||||
|
customStyleBg = style.bg || {};
|
||||||
|
customStyleWindow = style.window || {};
|
||||||
|
customStyleContent = style.content || {};
|
||||||
|
};
|
||||||
|
|
||||||
|
const close = () => {
|
||||||
|
Callback(props);
|
||||||
|
Component = null;
|
||||||
|
props = null;
|
||||||
|
customStyleBg = {};
|
||||||
|
customStyleWindow = {};
|
||||||
|
customStyleContent = {};
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleKeyup = ({ key }) => {
|
||||||
|
if (closeOnEsc && Component && key === "Escape") {
|
||||||
|
event.preventDefault();
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const handleOuterClick = (event) => {
|
||||||
|
if (
|
||||||
|
closeOnOuterClick &&
|
||||||
|
(event.target === background || event.target === wrap)
|
||||||
|
) {
|
||||||
|
event.preventDefault();
|
||||||
|
close();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
setContext(key, { open: show, close });
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<svelte:window on:keyup={handleKeyup} />
|
||||||
|
|
||||||
|
<div>
|
||||||
|
{#if Component}
|
||||||
|
<div
|
||||||
|
class="bg"
|
||||||
|
on:click={handleOuterClick}
|
||||||
|
bind:this={background}
|
||||||
|
transition:transitionBg={transitionBgProps}
|
||||||
|
style={cssBg}
|
||||||
|
>
|
||||||
|
<div class="window-wrap" bind:this={wrap}>
|
||||||
|
<div
|
||||||
|
class="window"
|
||||||
|
transition:transitionWindow={transitionWindowProps}
|
||||||
|
style={cssWindow}
|
||||||
|
>
|
||||||
|
{#if closeButton}
|
||||||
|
<button on:click={close} class="close" />
|
||||||
|
{/if}
|
||||||
|
<div class="content" style={cssContent}>
|
||||||
|
<Component {...props} {close} />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
<slot />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
|
** LICENSE **
|
||||||
|
|
||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2019 Fritz Lekschas
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
|
|
||||||
|
https://github.com/flekschas/svelte-simple-moda
|
||||||
|
-->
|
||||||
|
|
||||||
|
<style>
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.bg {
|
||||||
|
position: fixed;
|
||||||
|
z-index: 1000;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
background: rgba(0, 0, 0, 0.66);
|
||||||
|
}
|
||||||
|
|
||||||
|
.window-wrap {
|
||||||
|
position: relative;
|
||||||
|
margin: 2rem;
|
||||||
|
max-height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.window {
|
||||||
|
position: relative;
|
||||||
|
width: 40rem;
|
||||||
|
max-width: 100%;
|
||||||
|
max-height: 100%;
|
||||||
|
margin: 2rem auto;
|
||||||
|
color: black;
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content {
|
||||||
|
position: relative;
|
||||||
|
padding: 1rem;
|
||||||
|
max-height: calc(100vh - 4rem);
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close {
|
||||||
|
display: block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
position: absolute;
|
||||||
|
z-index: 1000;
|
||||||
|
top: 1rem;
|
||||||
|
right: 1rem;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
width: 1.5rem;
|
||||||
|
height: 1.5rem;
|
||||||
|
border: 0;
|
||||||
|
color: black;
|
||||||
|
border-radius: 1.5rem;
|
||||||
|
background: white;
|
||||||
|
box-shadow: 0 0 0 1px black;
|
||||||
|
transition: transform 0.2s cubic-bezier(0.25, 0.1, 0.25, 1),
|
||||||
|
background 0.2s cubic-bezier(0.25, 0.1, 0.25, 1);
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close:before,
|
||||||
|
.close:after {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
width: 1rem;
|
||||||
|
height: 1px;
|
||||||
|
background: black;
|
||||||
|
transform-origin: center;
|
||||||
|
transition: height 0.2s cubic-bezier(0.25, 0.1, 0.25, 1),
|
||||||
|
background 0.2s cubic-bezier(0.25, 0.1, 0.25, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.close:before {
|
||||||
|
-webkit-transform: translate(0, -50%) rotate(45deg);
|
||||||
|
-moz-transform: translate(0, -50%) rotate(45deg);
|
||||||
|
transform: translate(0, -50%) rotate(45deg);
|
||||||
|
left: 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close:after {
|
||||||
|
-webkit-transform: translate(0, -50%) rotate(-45deg);
|
||||||
|
-moz-transform: translate(0, -50%) rotate(-45deg);
|
||||||
|
transform: translate(0, -50%) rotate(-45deg);
|
||||||
|
left: 0.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close:hover {
|
||||||
|
background: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close:hover:before,
|
||||||
|
.close:hover:after {
|
||||||
|
height: 2px;
|
||||||
|
background: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close:focus {
|
||||||
|
border-color: #3399ff;
|
||||||
|
box-shadow: 0 0 0 2px #3399ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
.close:active {
|
||||||
|
transform: scale(0.9);
|
||||||
|
}
|
||||||
|
|
||||||
|
.close:hover,
|
||||||
|
.close:focus,
|
||||||
|
.close:active {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
53
src/lib/Nav.svelte
Normal file
53
src/lib/Nav.svelte
Normal file
|
|
@ -0,0 +1,53 @@
|
||||||
|
<style>
|
||||||
|
a {
|
||||||
|
font-size: 1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
max-width: 1400px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding-left: 1rem;
|
||||||
|
padding-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
display: flex;
|
||||||
|
font-weight: bold;
|
||||||
|
text-align: center;
|
||||||
|
list-style: none;
|
||||||
|
margin-top: 8px;
|
||||||
|
margin-bottom: 8px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul li a {
|
||||||
|
text-decoration: none;
|
||||||
|
transition: color 0.1s linear;
|
||||||
|
padding: 4px 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul li a:hover {
|
||||||
|
border-bottom: 2px solid var(--line-color);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<header>
|
||||||
|
<nav>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="/">Quartznet</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="/about">About</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<a href="/admin">Admin</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
56
src/lib/Sidebar.svelte
Normal file
56
src/lib/Sidebar.svelte
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
<script lang="ts">
|
||||||
|
import { fly } from "svelte/transition";
|
||||||
|
import Modal from "./Modal.svelte";
|
||||||
|
|
||||||
|
const click = () => {
|
||||||
|
modal_show = true;
|
||||||
|
show = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
function overlay_click(e: MouseEvent) {
|
||||||
|
//@ts-ignore
|
||||||
|
if ("close" in e.target.dataset) show = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
export let show = false;
|
||||||
|
let modal_show = false;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if show}
|
||||||
|
<div class="overlay" data-close on:click={overlay_click}>
|
||||||
|
<nav transition:fly={{ x: -250, opacity: 1 }}>
|
||||||
|
<slot>
|
||||||
|
<button on:click={click}>About</button>
|
||||||
|
</slot>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<Modal bind:show={modal_show} />
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.overlay {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
bottom: 0;
|
||||||
|
background: rgba(0, 0, 0, 0);
|
||||||
|
z-index: 10;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
height: 100%;
|
||||||
|
padding: 2rem 1rem 0.6rem;
|
||||||
|
border-right: 1px solid #aaa;
|
||||||
|
background: #fff;
|
||||||
|
overflow-y: auto;
|
||||||
|
width: 20rem;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
255
src/lib/SortableList.svelte
Normal file
255
src/lib/SortableList.svelte
Normal file
|
|
@ -0,0 +1,255 @@
|
||||||
|
<script lang="ts">
|
||||||
|
//@ts-nocheck
|
||||||
|
import { quintOut } from "svelte/easing";
|
||||||
|
import { crossfade } from "svelte/transition";
|
||||||
|
import { flip } from "svelte/animate";
|
||||||
|
// FLIP ANIMATION
|
||||||
|
const [send, receive] = crossfade({
|
||||||
|
duration: (d) => Math.sqrt(d * 200),
|
||||||
|
fallback(node, params) {
|
||||||
|
const style = getComputedStyle(node);
|
||||||
|
const transform = style.transform === "none" ? "" : style.transform;
|
||||||
|
return {
|
||||||
|
duration: 600,
|
||||||
|
easing: quintOut,
|
||||||
|
css: (t) => `
|
||||||
|
transform: ${transform} scale(${t});
|
||||||
|
opacity: ${t}
|
||||||
|
`,
|
||||||
|
};
|
||||||
|
},
|
||||||
|
});
|
||||||
|
// DRAG AND DROP
|
||||||
|
let isOver = false;
|
||||||
|
let isDragging = false;
|
||||||
|
const getDraggedParent = (node) => {
|
||||||
|
return node.dataset && node.dataset.index
|
||||||
|
? node.dataset
|
||||||
|
: getDraggedParent(node.parentNode);
|
||||||
|
};
|
||||||
|
const click = (ev) => {
|
||||||
|
dispatch("slotclick", {
|
||||||
|
source: ev.target.parentElement.dataset.index,
|
||||||
|
sourceItem: list[ev.target.parentElement.dataset.index],
|
||||||
|
});
|
||||||
|
};
|
||||||
|
const start = (ev) => {
|
||||||
|
isDragging = true;
|
||||||
|
ev.dataTransfer.setData("source", ev.target.dataset.index);
|
||||||
|
};
|
||||||
|
const over = (ev) => {
|
||||||
|
ev.preventDefault();
|
||||||
|
let dragged = getDraggedParent(ev.target);
|
||||||
|
if (isOver !== dragged.id) isOver = JSON.parse(dragged.id);
|
||||||
|
};
|
||||||
|
const leave = (ev) => {
|
||||||
|
let dragged = getDraggedParent(ev.target);
|
||||||
|
if (isOver === dragged.id) isOver = false;
|
||||||
|
};
|
||||||
|
const drop = (ev) => {
|
||||||
|
isOver = false;
|
||||||
|
ev.preventDefault();
|
||||||
|
let dragged = getDraggedParent(ev.target);
|
||||||
|
let from = ev.dataTransfer.getData("source");
|
||||||
|
let to = dragged.index;
|
||||||
|
reorder({ from, to });
|
||||||
|
isDragging = false;
|
||||||
|
};
|
||||||
|
// DISPATCH REORDER
|
||||||
|
import {
|
||||||
|
createEventDispatcher,
|
||||||
|
onMount,
|
||||||
|
afterUpdate,
|
||||||
|
beforeUpdate,
|
||||||
|
tick,
|
||||||
|
} from "svelte";
|
||||||
|
|
||||||
|
const dispatch = createEventDispatcher();
|
||||||
|
const reorder = ({ from, to }) => {
|
||||||
|
let newList = [...list];
|
||||||
|
let temp = newList[from];
|
||||||
|
newList[from] = newList[to];
|
||||||
|
newList[to] = temp;
|
||||||
|
//newList[from] = [newList[to], (newList[to] = newList[from])][0];
|
||||||
|
dispatch("sort", { data: newList, from: from, to: to });
|
||||||
|
};
|
||||||
|
// UTILS
|
||||||
|
const getKey = (item) => (key ? item[key] : item);
|
||||||
|
|
||||||
|
type ListItem = {
|
||||||
|
displayTileSize: number;
|
||||||
|
endsGroup: boolean;
|
||||||
|
startsNewGroup: boolean;
|
||||||
|
};
|
||||||
|
// PROPS
|
||||||
|
export let list: ListItem[][];
|
||||||
|
export let key;
|
||||||
|
export let ulclass;
|
||||||
|
|
||||||
|
export let breakon: string | null = null;
|
||||||
|
|
||||||
|
export let breakComponent;
|
||||||
|
// return `<><li class='${breakClass}' style='height:100%; grid-column: span 5;'><div style='width:100%;height:inherit;'></li>`;
|
||||||
|
|
||||||
|
// export let breakPosition = "beforebegin";
|
||||||
|
let breakClass = "group-break";
|
||||||
|
|
||||||
|
const Elements = () => document.getElementsByClassName(key);
|
||||||
|
|
||||||
|
const removeOldBreaks = (parent) => {
|
||||||
|
if (breakon == null) return;
|
||||||
|
if (isDragging) return;
|
||||||
|
|
||||||
|
if (parent.length) {
|
||||||
|
const old = parent[0].getElementsByClassName(breakClass);
|
||||||
|
|
||||||
|
for (let i = 0; i < old.length; i = 0) {
|
||||||
|
old[i].remove(); // removing the node from the DOM also removes it from this array (WTF??)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
let lastCollection;
|
||||||
|
|
||||||
|
let updatingBreakPoints = false;
|
||||||
|
|
||||||
|
const updateBreak = () => {
|
||||||
|
if (isDragging || updatingBreakPoints) return;
|
||||||
|
if (breakon == null) return;
|
||||||
|
|
||||||
|
try {
|
||||||
|
updatingBreakPoints = true;
|
||||||
|
|
||||||
|
let breaks = 0;
|
||||||
|
let last = null;
|
||||||
|
let carry = 0;
|
||||||
|
let elements = Elements();
|
||||||
|
|
||||||
|
for (let x = 0; x < list.length; x++) {
|
||||||
|
if (last != null) {
|
||||||
|
if (list[x][breakon] > last) {
|
||||||
|
if (elements.length) {
|
||||||
|
let targetIndex = x + breaks;
|
||||||
|
|
||||||
|
if (
|
||||||
|
list.length !==
|
||||||
|
elements[0].children.length - breaks
|
||||||
|
) {
|
||||||
|
if (lastCollection)
|
||||||
|
if (lastCollection.length)
|
||||||
|
targetIndex += lastCollection.length;
|
||||||
|
}
|
||||||
|
// elements[0].children[targetIndex].insertAdjacentHTML(breakPosition, breakHtml(carry + 1));
|
||||||
|
breaks++;
|
||||||
|
carry = 0;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
carry++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
last = list[x][breakon] > last ? list[x][breakon] : last;
|
||||||
|
}
|
||||||
|
|
||||||
|
lastCollection = list;
|
||||||
|
} finally {
|
||||||
|
updatingBreakPoints = false;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
//beforeUpdate(() => {updateBreak()});
|
||||||
|
|
||||||
|
let updating = false;
|
||||||
|
|
||||||
|
afterUpdate(async () => {
|
||||||
|
if (isDragging) return;
|
||||||
|
if (breakon == null) return;
|
||||||
|
|
||||||
|
updating = true;
|
||||||
|
removeOldBreaks(Elements());
|
||||||
|
await tick();
|
||||||
|
updateBreak();
|
||||||
|
|
||||||
|
updating = false;
|
||||||
|
});
|
||||||
|
|
||||||
|
const getClass = () => {
|
||||||
|
let ret = "";
|
||||||
|
if (key) ret += ` ${key}`;
|
||||||
|
if (ulclass) ret += ` ${ulclass}`;
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{#if list && list.length}
|
||||||
|
<ul class={getClass()}>
|
||||||
|
{#each list as item, index (getKey(item))}
|
||||||
|
<li
|
||||||
|
class:small={item.displayTileSize === 2}
|
||||||
|
class:medium={item.displayTileSize === 3}
|
||||||
|
class:large={item.displayTileSize === 4}
|
||||||
|
class:startsNewGroup={item.startsNewGroup}
|
||||||
|
class:endsGroup={item.endsGroup}
|
||||||
|
data-index={index}
|
||||||
|
data-item={JSON.stringify(item)}
|
||||||
|
data-id={JSON.stringify(getKey(item))}
|
||||||
|
draggable="true"
|
||||||
|
on:dragstart={start}
|
||||||
|
on:dragover={over}
|
||||||
|
on:dragleave={leave}
|
||||||
|
on:drop={drop}
|
||||||
|
on:click={click}
|
||||||
|
in:receive={{ key: getKey(item) }}
|
||||||
|
out:send={{ key: getKey(item) }}
|
||||||
|
animate:flip={{ duration: 300 }}
|
||||||
|
class:over={getKey(item) === isOver}
|
||||||
|
>
|
||||||
|
<slot {item} {index}>
|
||||||
|
<p>{getKey(item)}</p>
|
||||||
|
</slot>
|
||||||
|
</li>
|
||||||
|
{/each}
|
||||||
|
</ul>
|
||||||
|
{/if}
|
||||||
|
|
||||||
|
<style>
|
||||||
|
ul {
|
||||||
|
display: inline-grid;
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
display: inline-block;
|
||||||
|
border: 2px dotted transparent;
|
||||||
|
transition: border 0.1s linear;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
margin: 0.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.startsNewGroup {
|
||||||
|
grid-column-start: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.small {
|
||||||
|
grid-column-end: span 1;
|
||||||
|
grid-row: span 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.medium {
|
||||||
|
grid-column-end: span 2;
|
||||||
|
grid-row: span 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.large {
|
||||||
|
grid-column-end: span 2;
|
||||||
|
/*grid-row: span 2; large buttons are double height, but they also push the row below them down (they dont fit around eachother like css-grid) */
|
||||||
|
}
|
||||||
|
|
||||||
|
.over {
|
||||||
|
border-color: rgba(48, 12, 200, 0.2);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
43
src/lib/Thumbnail.svelte
Normal file
43
src/lib/Thumbnail.svelte
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
<script lang="ts">
|
||||||
|
export let name: string;
|
||||||
|
export let link: string;
|
||||||
|
export let img = "https://placehold.it/600x300";
|
||||||
|
export let size = { width: 600, height: 300 };
|
||||||
|
export let description: string;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<div class="card">
|
||||||
|
<div class="back">
|
||||||
|
<a href={link}>
|
||||||
|
<img src={img} alt={name} width={size.width} height={size.height} />
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="description">
|
||||||
|
<h2>{name}</h2>
|
||||||
|
<p>{description}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.card {
|
||||||
|
display: flex;
|
||||||
|
gap: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back a img {
|
||||||
|
max-width: 100%;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description {
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 978px) {
|
||||||
|
.card {
|
||||||
|
flex-wrap: wrap;
|
||||||
|
gap: 0.25rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
16
src/lib/UserManager.svelte
Normal file
16
src/lib/UserManager.svelte
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
<script>
|
||||||
|
export const name = "%USER%";
|
||||||
|
export let icon;
|
||||||
|
export let onClick;
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
img {
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<a href="/admin">Admin</a>
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { page } from "$app/stores";
|
import { page } from "$app/stores";
|
||||||
import { onMount } from "svelte";
|
import { onMount } from "svelte";
|
||||||
import Banner from "../components/Banner.svelte";
|
import Banner from "$lib/Banner.svelte";
|
||||||
|
|
||||||
const status = $page.status?.toString() ?? "";
|
const status = $page.status?.toString() ?? "";
|
||||||
const dev = process.env.NODE_ENV === "development";
|
const dev = process.env.NODE_ENV === "development";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
<script>
|
<script>
|
||||||
import Nav from '../components/Nav.svelte';
|
import Nav from '$lib/Nav.svelte';
|
||||||
import Modal from '../components/Modal.svelte'
|
import Modal from '$lib/Modal.svelte'
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
<script>
|
<script>
|
||||||
import {onMount} from 'svelte';
|
import {onMount} from 'svelte';
|
||||||
import Thumb from '../components/Thumbnail.svelte'
|
import Thumb from '$lib/Thumbnail.svelte'
|
||||||
import Banner from '../components/Banner.svelte'
|
import Banner from '$lib/Banner.svelte'
|
||||||
|
|
||||||
let games = [
|
let games = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import Banner from '../../components/Banner.svelte'
|
import Banner from '$lib/Banner.svelte'
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import Banner from '../../components/Banner.svelte'
|
import Banner from '$lib/Banner.svelte'
|
||||||
|
|
||||||
let services = [
|
let services = [
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import Banner from '../../components/Banner.svelte'
|
import Banner from '$lib/Banner.svelte'
|
||||||
|
|
||||||
let username = "";
|
let username = "";
|
||||||
let password = "";
|
let password = "";
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
<script>
|
<script>
|
||||||
import Banner from '../../components/Banner.svelte'
|
import Banner from '$lib/Banner.svelte'
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue