updated the context stuff to work more sanely with global stores instead
for theme and change name based on hostname
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -8,6 +8,7 @@ node_modules
|
|||||||
/.svelte-kit
|
/.svelte-kit
|
||||||
/build
|
/build
|
||||||
*.zip
|
*.zip
|
||||||
|
bun.lock
|
||||||
|
|
||||||
# OS
|
# OS
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|||||||
103
bun.lock
103
bun.lock
@@ -1,74 +1,75 @@
|
|||||||
{
|
{
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
|
"configVersion": 0,
|
||||||
"workspaces": {
|
"workspaces": {
|
||||||
"": {
|
"": {
|
||||||
"name": "on-the-spectrum",
|
"name": "on-the-spectrum",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/adapter-auto": "^7.0.0",
|
"@sveltejs/adapter-auto": "latest",
|
||||||
"@sveltejs/adapter-static": "^3.0.10",
|
"@sveltejs/adapter-static": "latest",
|
||||||
"@sveltejs/kit": "^2.48.5",
|
"@sveltejs/kit": "latest",
|
||||||
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
"@sveltejs/vite-plugin-svelte": "latest",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "latest",
|
||||||
"prettier-plugin-svelte": "^3.4.0",
|
"prettier-plugin-svelte": "latest",
|
||||||
"svelte": "^5.43.8",
|
"svelte": "latest",
|
||||||
"svelte-check": "^4.3.4",
|
"svelte-check": "latest",
|
||||||
"typescript": "^5.9.3",
|
"typescript": "latest",
|
||||||
"vite": "^7.2.2",
|
"vite": "latest",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"packages": {
|
"packages": {
|
||||||
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.12", "", { "os": "aix", "cpu": "ppc64" }, "sha512-Hhmwd6CInZ3dwpuGTF8fJG6yoWmsToE+vYgD4nytZVxcu1ulHpUQRAB1UJ8+N1Am3Mz4+xOByoQoSZf4D+CpkA=="],
|
"@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.3", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg=="],
|
||||||
|
|
||||||
"@esbuild/android-arm": ["@esbuild/android-arm@0.25.12", "", { "os": "android", "cpu": "arm" }, "sha512-VJ+sKvNA/GE7Ccacc9Cha7bpS8nyzVv0jdVgwNDaR4gDMC/2TTRc33Ip8qrNYUcpkOHUT5OZ0bUcNNVZQ9RLlg=="],
|
"@esbuild/android-arm": ["@esbuild/android-arm@0.27.3", "", { "os": "android", "cpu": "arm" }, "sha512-i5D1hPY7GIQmXlXhs2w8AWHhenb00+GxjxRncS2ZM7YNVGNfaMxgzSGuO8o8SJzRc/oZwU2bcScvVERk03QhzA=="],
|
||||||
|
|
||||||
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.12", "", { "os": "android", "cpu": "arm64" }, "sha512-6AAmLG7zwD1Z159jCKPvAxZd4y/VTO0VkprYy+3N2FtJ8+BQWFXU+OxARIwA46c5tdD9SsKGZ/1ocqBS/gAKHg=="],
|
"@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.3", "", { "os": "android", "cpu": "arm64" }, "sha512-YdghPYUmj/FX2SYKJ0OZxf+iaKgMsKHVPF1MAq/P8WirnSpCStzKJFjOjzsW0QQ7oIAiccHdcqjbHmJxRb/dmg=="],
|
||||||
|
|
||||||
"@esbuild/android-x64": ["@esbuild/android-x64@0.25.12", "", { "os": "android", "cpu": "x64" }, "sha512-5jbb+2hhDHx5phYR2By8GTWEzn6I9UqR11Kwf22iKbNpYrsmRB18aX/9ivc5cabcUiAT/wM+YIZ6SG9QO6a8kg=="],
|
"@esbuild/android-x64": ["@esbuild/android-x64@0.27.3", "", { "os": "android", "cpu": "x64" }, "sha512-IN/0BNTkHtk8lkOM8JWAYFg4ORxBkZQf9zXiEOfERX/CzxW3Vg1ewAhU7QSWQpVIzTW+b8Xy+lGzdYXV6UZObQ=="],
|
||||||
|
|
||||||
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.12", "", { "os": "darwin", "cpu": "arm64" }, "sha512-N3zl+lxHCifgIlcMUP5016ESkeQjLj/959RxxNYIthIg+CQHInujFuXeWbWMgnTo4cp5XVHqFPmpyu9J65C1Yg=="],
|
"@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.3", "", { "os": "darwin", "cpu": "arm64" }, "sha512-Re491k7ByTVRy0t3EKWajdLIr0gz2kKKfzafkth4Q8A5n1xTHrkqZgLLjFEHVD+AXdUGgQMq+Godfq45mGpCKg=="],
|
||||||
|
|
||||||
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.12", "", { "os": "darwin", "cpu": "x64" }, "sha512-HQ9ka4Kx21qHXwtlTUVbKJOAnmG1ipXhdWTmNXiPzPfWKpXqASVcWdnf2bnL73wgjNrFXAa3yYvBSd9pzfEIpA=="],
|
"@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.3", "", { "os": "darwin", "cpu": "x64" }, "sha512-vHk/hA7/1AckjGzRqi6wbo+jaShzRowYip6rt6q7VYEDX4LEy1pZfDpdxCBnGtl+A5zq8iXDcyuxwtv3hNtHFg=="],
|
||||||
|
|
||||||
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.12", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-gA0Bx759+7Jve03K1S0vkOu5Lg/85dou3EseOGUes8flVOGxbhDDh/iZaoek11Y8mtyKPGF3vP8XhnkDEAmzeg=="],
|
"@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.3", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-ipTYM2fjt3kQAYOvo6vcxJx3nBYAzPjgTCk7QEgZG8AUO3ydUhvelmhrbOheMnGOlaSFUoHXB6un+A7q4ygY9w=="],
|
||||||
|
|
||||||
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.12", "", { "os": "freebsd", "cpu": "x64" }, "sha512-TGbO26Yw2xsHzxtbVFGEXBFH0FRAP7gtcPE7P5yP7wGy7cXK2oO7RyOhL5NLiqTlBh47XhmIUXuGciXEqYFfBQ=="],
|
"@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.3", "", { "os": "freebsd", "cpu": "x64" }, "sha512-dDk0X87T7mI6U3K9VjWtHOXqwAMJBNN2r7bejDsc+j03SEjtD9HrOl8gVFByeM0aJksoUuUVU9TBaZa2rgj0oA=="],
|
||||||
|
|
||||||
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.12", "", { "os": "linux", "cpu": "arm" }, "sha512-lPDGyC1JPDou8kGcywY0YILzWlhhnRjdof3UlcoqYmS9El818LLfJJc3PXXgZHrHCAKs/Z2SeZtDJr5MrkxtOw=="],
|
"@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.3", "", { "os": "linux", "cpu": "arm" }, "sha512-s6nPv2QkSupJwLYyfS+gwdirm0ukyTFNl3KTgZEAiJDd+iHZcbTPPcWCcRYH+WlNbwChgH2QkE9NSlNrMT8Gfw=="],
|
||||||
|
|
||||||
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.12", "", { "os": "linux", "cpu": "arm64" }, "sha512-8bwX7a8FghIgrupcxb4aUmYDLp8pX06rGh5HqDT7bB+8Rdells6mHvrFHHW2JAOPZUbnjUpKTLg6ECyzvas2AQ=="],
|
"@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.3", "", { "os": "linux", "cpu": "arm64" }, "sha512-sZOuFz/xWnZ4KH3YfFrKCf1WyPZHakVzTiqji3WDc0BCl2kBwiJLCXpzLzUBLgmp4veFZdvN5ChW4Eq/8Fc2Fg=="],
|
||||||
|
|
||||||
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.12", "", { "os": "linux", "cpu": "ia32" }, "sha512-0y9KrdVnbMM2/vG8KfU0byhUN+EFCny9+8g202gYqSSVMonbsCfLjUO+rCci7pM0WBEtz+oK/PIwHkzxkyharA=="],
|
"@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.3", "", { "os": "linux", "cpu": "ia32" }, "sha512-yGlQYjdxtLdh0a3jHjuwOrxQjOZYD/C9PfdbgJJF3TIZWnm/tMd/RcNiLngiu4iwcBAOezdnSLAwQDPqTmtTYg=="],
|
||||||
|
|
||||||
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-h///Lr5a9rib/v1GGqXVGzjL4TMvVTv+s1DPoxQdz7l/AYv6LDSxdIwzxkrPW438oUXiDtwM10o9PmwS/6Z0Ng=="],
|
"@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-WO60Sn8ly3gtzhyjATDgieJNet/KqsDlX5nRC5Y3oTFcS1l0KWba+SEa9Ja1GfDqSF1z6hif/SkpQJbL63cgOA=="],
|
||||||
|
|
||||||
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-iyRrM1Pzy9GFMDLsXn1iHUm18nhKnNMWscjmp4+hpafcZjrr2WbT//d20xaGljXDBYHqRcl8HnxbX6uaA/eGVw=="],
|
"@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-APsymYA6sGcZ4pD6k+UxbDjOFSvPWyZhjaiPyl/f79xKxwTnrn5QUnXR5prvetuaSMsb4jgeHewIDCIWljrSxw=="],
|
||||||
|
|
||||||
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.12", "", { "os": "linux", "cpu": "ppc64" }, "sha512-9meM/lRXxMi5PSUqEXRCtVjEZBGwB7P/D4yT8UG/mwIdze2aV4Vo6U5gD3+RsoHXKkHCfSxZKzmDssVlRj1QQA=="],
|
"@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.3", "", { "os": "linux", "cpu": "ppc64" }, "sha512-eizBnTeBefojtDb9nSh4vvVQ3V9Qf9Df01PfawPcRzJH4gFSgrObw+LveUyDoKU3kxi5+9RJTCWlj4FjYXVPEA=="],
|
||||||
|
|
||||||
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.12", "", { "os": "linux", "cpu": "none" }, "sha512-Zr7KR4hgKUpWAwb1f3o5ygT04MzqVrGEGXGLnj15YQDJErYu/BGg+wmFlIDOdJp0PmB0lLvxFIOXZgFRrdjR0w=="],
|
"@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.3", "", { "os": "linux", "cpu": "none" }, "sha512-3Emwh0r5wmfm3ssTWRQSyVhbOHvqegUDRd0WhmXKX2mkHJe1SFCMJhagUleMq+Uci34wLSipf8Lagt4LlpRFWQ=="],
|
||||||
|
|
||||||
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.12", "", { "os": "linux", "cpu": "s390x" }, "sha512-MsKncOcgTNvdtiISc/jZs/Zf8d0cl/t3gYWX8J9ubBnVOwlk65UIEEvgBORTiljloIWnBzLs4qhzPkJcitIzIg=="],
|
"@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.3", "", { "os": "linux", "cpu": "s390x" }, "sha512-pBHUx9LzXWBc7MFIEEL0yD/ZVtNgLytvx60gES28GcWMqil8ElCYR4kvbV2BDqsHOvVDRrOxGySBM9Fcv744hw=="],
|
||||||
|
|
||||||
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.12", "", { "os": "linux", "cpu": "x64" }, "sha512-uqZMTLr/zR/ed4jIGnwSLkaHmPjOjJvnm6TVVitAa08SLS9Z0VM8wIRx7gWbJB5/J54YuIMInDquWyYvQLZkgw=="],
|
"@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.3", "", { "os": "linux", "cpu": "x64" }, "sha512-Czi8yzXUWIQYAtL/2y6vogER8pvcsOsk5cpwL4Gk5nJqH5UZiVByIY8Eorm5R13gq+DQKYg0+JyQoytLQas4dA=="],
|
||||||
|
|
||||||
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-xXwcTq4GhRM7J9A8Gv5boanHhRa/Q9KLVmcyXHCTaM4wKfIpWkdXiMog/KsnxzJ0A1+nD+zoecuzqPmCRyBGjg=="],
|
"@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-sDpk0RgmTCR/5HguIZa9n9u+HVKf40fbEUt+iTzSnCaGvY9kFP0YKBWZtJaraonFnqef5SlJ8/TiPAxzyS+UoA=="],
|
||||||
|
|
||||||
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.12", "", { "os": "none", "cpu": "x64" }, "sha512-Ld5pTlzPy3YwGec4OuHh1aCVCRvOXdH8DgRjfDy/oumVovmuSzWfnSJg+VtakB9Cm0gxNO9BzWkj6mtO1FMXkQ=="],
|
"@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.3", "", { "os": "none", "cpu": "x64" }, "sha512-P14lFKJl/DdaE00LItAukUdZO5iqNH7+PjoBm+fLQjtxfcfFE20Xf5CrLsmZdq5LFFZzb5JMZ9grUwvtVYzjiA=="],
|
||||||
|
|
||||||
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.12", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-fF96T6KsBo/pkQI950FARU9apGNTSlZGsv1jZBAlcLL1MLjLNIWPBkj5NlSz8aAzYKg+eNqknrUJ24QBybeR5A=="],
|
"@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.3", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-AIcMP77AvirGbRl/UZFTq5hjXK+2wC7qFRGoHSDrZ5v5b8DK/GYpXW3CPRL53NkvDqb9D+alBiC/dV0Fb7eJcw=="],
|
||||||
|
|
||||||
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.12", "", { "os": "openbsd", "cpu": "x64" }, "sha512-MZyXUkZHjQxUvzK7rN8DJ3SRmrVrke8ZyRusHlP+kuwqTcfWLyqMOE3sScPPyeIXN/mDJIfGXvcMqCgYKekoQw=="],
|
"@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.3", "", { "os": "openbsd", "cpu": "x64" }, "sha512-DnW2sRrBzA+YnE70LKqnM3P+z8vehfJWHXECbwBmH/CU51z6FiqTQTHFenPlHmo3a8UgpLyH3PT+87OViOh1AQ=="],
|
||||||
|
|
||||||
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.25.12", "", { "os": "none", "cpu": "arm64" }, "sha512-rm0YWsqUSRrjncSXGA7Zv78Nbnw4XL6/dzr20cyrQf7ZmRcsovpcRBdhD43Nuk3y7XIoW2OxMVvwuRvk9XdASg=="],
|
"@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.3", "", { "os": "none", "cpu": "arm64" }, "sha512-NinAEgr/etERPTsZJ7aEZQvvg/A6IsZG/LgZy+81wON2huV7SrK3e63dU0XhyZP4RKGyTm7aOgmQk0bGp0fy2g=="],
|
||||||
|
|
||||||
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.12", "", { "os": "sunos", "cpu": "x64" }, "sha512-3wGSCDyuTHQUzt0nV7bocDy72r2lI33QL3gkDNGkod22EsYl04sMf0qLb8luNKTOmgF/eDEDP5BFNwoBKH441w=="],
|
"@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.3", "", { "os": "sunos", "cpu": "x64" }, "sha512-PanZ+nEz+eWoBJ8/f8HKxTTD172SKwdXebZ0ndd953gt1HRBbhMsaNqjTyYLGLPdoWHy4zLU7bDVJztF5f3BHA=="],
|
||||||
|
|
||||||
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.12", "", { "os": "win32", "cpu": "arm64" }, "sha512-rMmLrur64A7+DKlnSuwqUdRKyd3UE7oPJZmnljqEptesKM8wx9J8gx5u0+9Pq0fQQW8vqeKebwNXdfOyP+8Bsg=="],
|
"@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.3", "", { "os": "win32", "cpu": "arm64" }, "sha512-B2t59lWWYrbRDw/tjiWOuzSsFh1Y/E95ofKz7rIVYSQkUYBjfSgf6oeYPNWHToFRr2zx52JKApIcAS/D5TUBnA=="],
|
||||||
|
|
||||||
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.12", "", { "os": "win32", "cpu": "ia32" }, "sha512-HkqnmmBoCbCwxUKKNPBixiWDGCpQGVsrQfJoVGYLPT41XWF8lHuE5N6WhVia2n4o5QK5M4tYr21827fNhi4byQ=="],
|
"@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.3", "", { "os": "win32", "cpu": "ia32" }, "sha512-QLKSFeXNS8+tHW7tZpMtjlNb7HKau0QDpwm49u0vUp9y1WOF+PEzkU84y9GqYaAVW8aH8f3GcBck26jh54cX4Q=="],
|
||||||
|
|
||||||
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.12", "", { "os": "win32", "cpu": "x64" }, "sha512-alJC0uCZpTFrSL0CCDjcgleBXPnCrEAhTBILpeAp7M/OFgoqtAetfBzX0xM00MUsVVPpVjlPuMbREqnZCXaTnA=="],
|
"@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.3", "", { "os": "win32", "cpu": "x64" }, "sha512-4uJGhsxuptu3OcpVAzli+/gWusVGwZZHTlS63hh++ehExkVT8SgiEf7/uC/PclrPPkLhZqGgCTjd0VWLo6xMqA=="],
|
||||||
|
|
||||||
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
|
"@jridgewell/gen-mapping": ["@jridgewell/gen-mapping@0.3.13", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA=="],
|
||||||
|
|
||||||
@@ -130,13 +131,13 @@
|
|||||||
|
|
||||||
"@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.8", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA=="],
|
"@sveltejs/acorn-typescript": ["@sveltejs/acorn-typescript@1.0.8", "", { "peerDependencies": { "acorn": "^8.9.0" } }, "sha512-esgN+54+q0NjB0Y/4BomT9samII7jGwNy/2a3wNZbT2A2RpmXsXwUt24LvLhx6jUq2gVk4cWEvcRO6MFQbOfNA=="],
|
||||||
|
|
||||||
"@sveltejs/adapter-auto": ["@sveltejs/adapter-auto@7.0.0", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-ImDWaErTOCkRS4Gt+5gZuymKFBobnhChXUZ9lhUZLahUgvA4OOvRzi3sahzYgbxGj5nkA6OV0GAW378+dl/gyw=="],
|
"@sveltejs/adapter-auto": ["@sveltejs/adapter-auto@7.0.1", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-dvuPm1E7M9NI/+canIQ6KKQDU2AkEefEZ2Dp7cY6uKoPq9Z/PhOXABe526UdW2mN986gjVkuSLkOYIBnS/M2LQ=="],
|
||||||
|
|
||||||
"@sveltejs/adapter-static": ["@sveltejs/adapter-static@3.0.10", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew=="],
|
"@sveltejs/adapter-static": ["@sveltejs/adapter-static@3.0.10", "", { "peerDependencies": { "@sveltejs/kit": "^2.0.0" } }, "sha512-7D9lYFWJmB7zxZyTE/qxjksvMqzMuYrrsyh1f4AlZqeZeACPRySjbC3aFiY55wb1tWUaKOQG9PVbm74JcN2Iew=="],
|
||||||
|
|
||||||
"@sveltejs/kit": ["@sveltejs/kit@2.49.1", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/cookie": "^0.6.0", "acorn": "^8.14.1", "cookie": "^0.6.0", "devalue": "^5.3.2", "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "sade": "^1.8.1", "set-cookie-parser": "^2.6.0", "sirv": "^3.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["@opentelemetry/api"], "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-vByReCTTdlNM80vva8alAQC80HcOiHLkd8XAxIiKghKSHcqeNfyhp3VsYAV8VSiPKu4Jc8wWCfsZNAIvd1uCqA=="],
|
"@sveltejs/kit": ["@sveltejs/kit@2.53.4", "", { "dependencies": { "@standard-schema/spec": "^1.0.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/cookie": "^0.6.0", "acorn": "^8.14.1", "cookie": "^0.6.0", "devalue": "^5.6.3", "esm-env": "^1.2.2", "kleur": "^4.1.5", "magic-string": "^0.30.5", "mrmime": "^2.0.0", "set-cookie-parser": "^3.0.0", "sirv": "^3.0.0" }, "peerDependencies": { "@opentelemetry/api": "^1.0.0", "@sveltejs/vite-plugin-svelte": "^3.0.0 || ^4.0.0-next.1 || ^5.0.0 || ^6.0.0-next.0 || ^7.0.0", "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": "^5.3.3", "vite": "^5.0.3 || ^6.0.0 || ^7.0.0-beta.0 || ^8.0.0" }, "optionalPeers": ["@opentelemetry/api", "typescript"], "bin": { "svelte-kit": "svelte-kit.js" } }, "sha512-iAIPEahFgDJJyvz8g0jP08KvqnM6JvdW8YfsygZ+pMeMvyM2zssWMltcsotETvjSZ82G3VlitgDtBIvpQSZrTA=="],
|
||||||
|
|
||||||
"@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@6.2.1", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "debug": "^4.4.1", "deepmerge": "^4.3.1", "magic-string": "^0.30.17", "vitefu": "^1.1.1" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-YZs/OSKOQAQCnJvM/P+F1URotNnYNeU3P2s4oIpzm1uFaqUEqRxUB0g5ejMjEb5Gjb9/PiBI5Ktrq4rUUF8UVQ=="],
|
"@sveltejs/vite-plugin-svelte": ["@sveltejs/vite-plugin-svelte@6.2.4", "", { "dependencies": { "@sveltejs/vite-plugin-svelte-inspector": "^5.0.0", "deepmerge": "^4.3.1", "magic-string": "^0.30.21", "obug": "^2.1.0", "vitefu": "^1.1.1" }, "peerDependencies": { "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-ou/d51QSdTyN26D7h6dSpusAKaZkAiGM55/AKYi+9AGZw7q85hElbjK3kEyzXHhLSnRISHOYzVge6x0jRZ7DXA=="],
|
||||||
|
|
||||||
"@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@5.0.1", "", { "dependencies": { "debug": "^4.4.1" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA=="],
|
"@sveltejs/vite-plugin-svelte-inspector": ["@sveltejs/vite-plugin-svelte-inspector@5.0.1", "", { "dependencies": { "debug": "^4.4.1" }, "peerDependencies": { "@sveltejs/vite-plugin-svelte": "^6.0.0-next.0", "svelte": "^5.0.0", "vite": "^6.3.0 || ^7.0.0" } }, "sha512-ubWshlMk4bc8mkwWbg6vNvCeT7lGQojE3ijDh3QTR6Zr/R+GXxsGbyH4PExEPpiFmqPhYiVSVmHBjUcVc1JIrA=="],
|
||||||
|
|
||||||
@@ -144,9 +145,11 @@
|
|||||||
|
|
||||||
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
|
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
|
||||||
|
|
||||||
|
"@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="],
|
||||||
|
|
||||||
"acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="],
|
"acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="],
|
||||||
|
|
||||||
"aria-query": ["aria-query@5.3.2", "", {}, "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw=="],
|
"aria-query": ["aria-query@5.3.1", "", {}, "sha512-Z/ZeOgVl7bcSYZ/u/rh0fOpvEpq//LZmdbkXyc7syVzjPAhfOa9ebsdTSjEBDU4vs5nC98Kfduj1uFo0qyET3g=="],
|
||||||
|
|
||||||
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
|
"axobject-query": ["axobject-query@4.1.0", "", {}, "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ=="],
|
||||||
|
|
||||||
@@ -160,13 +163,13 @@
|
|||||||
|
|
||||||
"deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="],
|
"deepmerge": ["deepmerge@4.3.1", "", {}, "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A=="],
|
||||||
|
|
||||||
"devalue": ["devalue@5.5.0", "", {}, "sha512-69sM5yrHfFLJt0AZ9QqZXGCPfJ7fQjvpln3Rq5+PS03LD32Ost1Q9N+eEnaQwGRIriKkMImXD56ocjQmfjbV3w=="],
|
"devalue": ["devalue@5.6.3", "", {}, "sha512-nc7XjUU/2Lb+SvEFVGcWLiKkzfw8+qHI7zn8WYXKkLMgfGSHbgCEaR6bJpev8Cm6Rmrb19Gfd/tZvGqx9is3wg=="],
|
||||||
|
|
||||||
"esbuild": ["esbuild@0.25.12", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.12", "@esbuild/android-arm": "0.25.12", "@esbuild/android-arm64": "0.25.12", "@esbuild/android-x64": "0.25.12", "@esbuild/darwin-arm64": "0.25.12", "@esbuild/darwin-x64": "0.25.12", "@esbuild/freebsd-arm64": "0.25.12", "@esbuild/freebsd-x64": "0.25.12", "@esbuild/linux-arm": "0.25.12", "@esbuild/linux-arm64": "0.25.12", "@esbuild/linux-ia32": "0.25.12", "@esbuild/linux-loong64": "0.25.12", "@esbuild/linux-mips64el": "0.25.12", "@esbuild/linux-ppc64": "0.25.12", "@esbuild/linux-riscv64": "0.25.12", "@esbuild/linux-s390x": "0.25.12", "@esbuild/linux-x64": "0.25.12", "@esbuild/netbsd-arm64": "0.25.12", "@esbuild/netbsd-x64": "0.25.12", "@esbuild/openbsd-arm64": "0.25.12", "@esbuild/openbsd-x64": "0.25.12", "@esbuild/openharmony-arm64": "0.25.12", "@esbuild/sunos-x64": "0.25.12", "@esbuild/win32-arm64": "0.25.12", "@esbuild/win32-ia32": "0.25.12", "@esbuild/win32-x64": "0.25.12" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-bbPBYYrtZbkt6Os6FiTLCTFxvq4tt3JKall1vRwshA3fdVztsLAatFaZobhkBC8/BrPetoa0oksYoKXoG4ryJg=="],
|
"esbuild": ["esbuild@0.27.3", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.3", "@esbuild/android-arm": "0.27.3", "@esbuild/android-arm64": "0.27.3", "@esbuild/android-x64": "0.27.3", "@esbuild/darwin-arm64": "0.27.3", "@esbuild/darwin-x64": "0.27.3", "@esbuild/freebsd-arm64": "0.27.3", "@esbuild/freebsd-x64": "0.27.3", "@esbuild/linux-arm": "0.27.3", "@esbuild/linux-arm64": "0.27.3", "@esbuild/linux-ia32": "0.27.3", "@esbuild/linux-loong64": "0.27.3", "@esbuild/linux-mips64el": "0.27.3", "@esbuild/linux-ppc64": "0.27.3", "@esbuild/linux-riscv64": "0.27.3", "@esbuild/linux-s390x": "0.27.3", "@esbuild/linux-x64": "0.27.3", "@esbuild/netbsd-arm64": "0.27.3", "@esbuild/netbsd-x64": "0.27.3", "@esbuild/openbsd-arm64": "0.27.3", "@esbuild/openbsd-x64": "0.27.3", "@esbuild/openharmony-arm64": "0.27.3", "@esbuild/sunos-x64": "0.27.3", "@esbuild/win32-arm64": "0.27.3", "@esbuild/win32-ia32": "0.27.3", "@esbuild/win32-x64": "0.27.3" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg=="],
|
||||||
|
|
||||||
"esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="],
|
"esm-env": ["esm-env@1.2.2", "", {}, "sha512-Epxrv+Nr/CaL4ZcFGPJIYLWFom+YeV1DqMLHJoEd9SYRxNbaFruBwfEX/kkHUJf55j2+TUbmDcmuilbP1TmXHA=="],
|
||||||
|
|
||||||
"esrap": ["esrap@2.2.1", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-GiYWG34AN/4CUyaWAgunGt0Rxvr1PTMlGC0vvEov/uOQYWne2bpN03Um+k8jT+q3op33mKouP2zeJ6OlM+qeUg=="],
|
"esrap": ["esrap@2.2.3", "", { "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" } }, "sha512-8fOS+GIGCQZl/ZIlhl59htOlms6U8NvX6ZYgYHpRU/b6tVSh3uHkOHZikl3D4cMbYM0JlpBe+p/BkZEi8J9XIQ=="],
|
||||||
|
|
||||||
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
|
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
|
||||||
|
|
||||||
@@ -188,15 +191,17 @@
|
|||||||
|
|
||||||
"nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
|
"nanoid": ["nanoid@3.3.11", "", { "bin": { "nanoid": "bin/nanoid.cjs" } }, "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w=="],
|
||||||
|
|
||||||
|
"obug": ["obug@2.1.1", "", {}, "sha512-uTqF9MuPraAQ+IsnPf366RG4cP9RtUi7MLO1N3KEc+wb0a6yKpeL0lmk2IB1jY5KHPAlTc6T/JRdC/YqxHNwkQ=="],
|
||||||
|
|
||||||
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
"picocolors": ["picocolors@1.1.1", "", {}, "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA=="],
|
||||||
|
|
||||||
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
|
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
|
||||||
|
|
||||||
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
|
"postcss": ["postcss@8.5.6", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg=="],
|
||||||
|
|
||||||
"prettier": ["prettier@3.7.4", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA=="],
|
"prettier": ["prettier@3.8.1", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg=="],
|
||||||
|
|
||||||
"prettier-plugin-svelte": ["prettier-plugin-svelte@3.4.0", "", { "peerDependencies": { "prettier": "^3.0.0", "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" } }, "sha512-pn1ra/0mPObzqoIQn/vUTR3ZZI6UuZ0sHqMK5x2jMLGrs53h0sXhkVuDcrlssHwIMk7FYrMjHBPoUSyyEEDlBQ=="],
|
"prettier-plugin-svelte": ["prettier-plugin-svelte@3.5.0", "", { "peerDependencies": { "prettier": "^3.0.0", "svelte": "^3.2.0 || ^4.0.0-next.0 || ^5.0.0-next.0" } }, "sha512-2lLO/7EupnjO/95t+XZesXs8Bf3nYLIDfCo270h5QWbj/vjLqmrQ1LiRk9LPggxSDsnVYfehamZNf+rgQYApZg=="],
|
||||||
|
|
||||||
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
|
"readdirp": ["readdirp@4.1.2", "", {}, "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg=="],
|
||||||
|
|
||||||
@@ -204,15 +209,15 @@
|
|||||||
|
|
||||||
"sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="],
|
"sade": ["sade@1.8.1", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="],
|
||||||
|
|
||||||
"set-cookie-parser": ["set-cookie-parser@2.7.2", "", {}, "sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw=="],
|
"set-cookie-parser": ["set-cookie-parser@3.0.1", "", {}, "sha512-n7Z7dXZhJbwuAHhNzkTti6Aw9QDDjZtm3JTpTGATIdNzdQz5GuFs22w90BcvF4INfnrL5xrX3oGsuqO5Dx3A1Q=="],
|
||||||
|
|
||||||
"sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="],
|
"sirv": ["sirv@3.0.2", "", { "dependencies": { "@polka/url": "^1.0.0-next.24", "mrmime": "^2.0.0", "totalist": "^3.0.0" } }, "sha512-2wcC/oGxHis/BoHkkPwldgiPSYcpZK3JU28WoMVv55yHJgcZ8rlXvuG9iZggz+sU1d4bRgIGASwyWqjxu3FM0g=="],
|
||||||
|
|
||||||
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
|
"source-map-js": ["source-map-js@1.2.1", "", {}, "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="],
|
||||||
|
|
||||||
"svelte": ["svelte@5.45.6", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "acorn": "^8.12.1", "aria-query": "^5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.5.0", "esm-env": "^1.2.1", "esrap": "^2.2.1", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-V3aVXthzPyPt1UB1wLEoXnEXpwPsvs7NHrR0xkCor8c11v71VqBj477MClqPZYyrcXrAH21sNGhOj9FJvSwXfQ=="],
|
"svelte": ["svelte@5.53.6", "", { "dependencies": { "@jridgewell/remapping": "^2.3.4", "@jridgewell/sourcemap-codec": "^1.5.0", "@sveltejs/acorn-typescript": "^1.0.5", "@types/estree": "^1.0.5", "@types/trusted-types": "^2.0.7", "acorn": "^8.12.1", "aria-query": "5.3.1", "axobject-query": "^4.1.0", "clsx": "^2.1.1", "devalue": "^5.6.3", "esm-env": "^1.2.1", "esrap": "^2.2.2", "is-reference": "^3.0.3", "locate-character": "^3.0.0", "magic-string": "^0.30.11", "zimmerframe": "^1.1.2" } }, "sha512-lP5DGF3oDDI9fhHcSpaBiJEkFLuS16h92DhM1L5K1lFm0WjOmUh1i2sNkBBk8rkxJRpob0dBE75jRfUzGZUOGA=="],
|
||||||
|
|
||||||
"svelte-check": ["svelte-check@4.3.4", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-DVWvxhBrDsd+0hHWKfjP99lsSXASeOhHJYyuKOFYJcP7ThfSCKgjVarE8XfuMWpS5JV3AlDf+iK1YGGo2TACdw=="],
|
"svelte-check": ["svelte-check@4.4.4", "", { "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "chokidar": "^4.0.1", "fdir": "^6.2.0", "picocolors": "^1.0.0", "sade": "^1.7.4" }, "peerDependencies": { "svelte": "^4.0.0 || ^5.0.0-next.0", "typescript": ">=5.0.0" }, "bin": { "svelte-check": "bin/svelte-check" } }, "sha512-F1pGqXc710Oi/wTI4d/x7d6lgPwwfx1U6w3Q35n4xsC2e8C/yN2sM1+mWxjlMcpAfWucjlq4vPi+P4FZ8a14sQ=="],
|
||||||
|
|
||||||
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
|
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
|
||||||
|
|
||||||
@@ -220,7 +225,7 @@
|
|||||||
|
|
||||||
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
||||||
|
|
||||||
"vite": ["vite@7.2.7", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ=="],
|
"vite": ["vite@7.3.1", "", { "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", "picomatch": "^4.0.3", "postcss": "^8.5.6", "rollup": "^4.43.0", "tinyglobby": "^0.2.15" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^20.19.0 || >=22.12.0", "jiti": ">=1.21.0", "less": "^4.0.0", "lightningcss": "^1.21.0", "sass": "^1.70.0", "sass-embedded": "^1.70.0", "stylus": ">=0.54.8", "sugarss": "^5.0.0", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA=="],
|
||||||
|
|
||||||
"vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="],
|
"vitefu": ["vitefu@1.1.1", "", { "peerDependencies": { "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0" }, "optionalPeers": ["vite"] }, "sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ=="],
|
||||||
|
|
||||||
|
|||||||
16
package.json
16
package.json
@@ -14,15 +14,15 @@
|
|||||||
"lint": "prettier --check ."
|
"lint": "prettier --check ."
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@sveltejs/adapter-auto": "^7.0.0",
|
"@sveltejs/adapter-auto": "^7.0.1",
|
||||||
"@sveltejs/adapter-static": "^3.0.10",
|
"@sveltejs/adapter-static": "^3.0.10",
|
||||||
"@sveltejs/kit": "^2.48.5",
|
"@sveltejs/kit": "^2.53.4",
|
||||||
"@sveltejs/vite-plugin-svelte": "^6.2.1",
|
"@sveltejs/vite-plugin-svelte": "^6.2.4",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.8.1",
|
||||||
"prettier-plugin-svelte": "^3.4.0",
|
"prettier-plugin-svelte": "^3.5.0",
|
||||||
"svelte": "^5.43.8",
|
"svelte": "^5.53.6",
|
||||||
"svelte-check": "^4.3.4",
|
"svelte-check": "^4.4.4",
|
||||||
"typescript": "^5.9.3",
|
"typescript": "^5.9.3",
|
||||||
"vite": "^7.2.2"
|
"vite": "^7.3.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
<script>
|
<script>
|
||||||
import { themeNames, themeDisplayNames } from '$lib/styles/themes.js';
|
import { themeNames, themeDisplayNames } from '$lib/styles/themes';
|
||||||
export let currentTheme;
|
import { set_theme, get_theme } from '$lib/stores/theme.svelte';
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="button-row">
|
<div class="button-row">
|
||||||
{#each themeNames as theme}
|
{#each themeNames as theme}
|
||||||
<button
|
<button
|
||||||
class="theme-{theme}"
|
class="theme-{theme}"
|
||||||
on:click={() => (currentTheme = theme)}
|
onclick={() => set_theme(theme)}
|
||||||
class:active={currentTheme === theme}
|
class:active={get_theme() === theme}
|
||||||
>
|
>
|
||||||
{themeDisplayNames[theme]}
|
{themeDisplayNames[theme]}
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
9
src/lib/stores/theme.svelte.ts
Normal file
9
src/lib/stores/theme.svelte.ts
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
let current_theme = $state('chalkboard');
|
||||||
|
|
||||||
|
export function get_theme(): string {
|
||||||
|
return current_theme;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function set_theme(new_theme: string): void {
|
||||||
|
current_theme = new_theme;
|
||||||
|
}
|
||||||
@@ -1,25 +1,24 @@
|
|||||||
<script>
|
<script>
|
||||||
import '$lib/styles/themes.js';
|
import '$lib/styles/themes.js';
|
||||||
import favicon from '$lib/assets/favicon.svg';
|
import favicon from '$lib/assets/favicon.svg';
|
||||||
import { writable } from 'svelte/store';
|
|
||||||
import { setContext } from 'svelte';
|
import { setContext } from 'svelte';
|
||||||
import { page } from '$app/state';
|
import { page } from '$app/state';
|
||||||
// Create a theme store that persists across pages
|
import { get_theme } from '$lib/stores/theme.svelte';
|
||||||
const theme = writable('chalkboard');
|
|
||||||
setContext('theme', theme);
|
|
||||||
|
|
||||||
let currentTheme;
|
let { children } = $props();
|
||||||
theme.subscribe((value) => {
|
setContext(
|
||||||
currentTheme = value;
|
'game_name',
|
||||||
});
|
page.url.hostname.split('.')[0] == 'spectrum' ? 'On The Spectrum!' : 'Plotters!'
|
||||||
|
);
|
||||||
|
console.log(page.url);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
<link rel="icon" href="$lib/assests/favicon.ico" sizes="any" />
|
<!-- <link rel="icon" href="$lib/assests/favicon.ico" sizes="any" /> -->
|
||||||
<link rel="icon" href={favicon} type="image/svg+xml" />
|
<link rel="icon" href={favicon} type="image/svg+xml" />
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
<div class="theme-{currentTheme} app-container">
|
<div class="theme-{get_theme()} app-container">
|
||||||
<div class="window">
|
<div class="window">
|
||||||
<div class="title-bar">
|
<div class="title-bar">
|
||||||
{#if page.url.pathname != '/'}
|
{#if page.url.pathname != '/'}
|
||||||
@@ -27,7 +26,7 @@
|
|||||||
{/if}
|
{/if}
|
||||||
<span>A Sludge & Friends Game</span>
|
<span>A Sludge & Friends Game</span>
|
||||||
</div>
|
</div>
|
||||||
<slot />
|
{@render children()}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -143,4 +142,3 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@@ -2,18 +2,17 @@
|
|||||||
import { getContext } from 'svelte';
|
import { getContext } from 'svelte';
|
||||||
import ThemeSelector from '$components/themeSelector.svelte';
|
import ThemeSelector from '$components/themeSelector.svelte';
|
||||||
|
|
||||||
const themeStore = getContext('theme');
|
let game_name = getContext('game_name');
|
||||||
let currentTheme = $themeStore;
|
|
||||||
|
|
||||||
$: themeStore.set(currentTheme);
|
$inspect('page', game_name);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
<title>On the Spectrum</title>
|
<title>{game_name}</title>
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
<div class="home-content">
|
<div class="home-content">
|
||||||
<h1 class="title">On the Spectrum!</h1>
|
<h1 class="title">{game_name}</h1>
|
||||||
<p class="subtitle">Well.. are ya?</p>
|
<p class="subtitle">Well.. are ya?</p>
|
||||||
|
|
||||||
<div class="tabs">
|
<div class="tabs">
|
||||||
@@ -28,7 +27,7 @@
|
|||||||
<div class="theme-selector-container">
|
<div class="theme-selector-container">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Theme Selector</legend>
|
<legend>Theme Selector</legend>
|
||||||
<ThemeSelector bind:currentTheme />
|
<ThemeSelector />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<script>
|
<script>
|
||||||
import { xAxes, yAxes } from '$lib';
|
import { xAxes, yAxes } from '$lib';
|
||||||
|
import { getContext } from 'svelte';
|
||||||
import Gameboard from '$components/gameboard.svelte';
|
import Gameboard from '$components/gameboard.svelte';
|
||||||
|
|
||||||
let adultMode = $state(false);
|
let adultMode = $state(false);
|
||||||
@@ -30,16 +31,19 @@
|
|||||||
empty: false
|
empty: false
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const game_name = getContext('game_name');
|
||||||
|
|
||||||
// $inspect(currentChart, diceRoll);
|
// $inspect(currentChart, diceRoll);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
<title>Play On the Spectrum</title>
|
<title>Play {game_name}</title>
|
||||||
</svelte:head>
|
</svelte:head>
|
||||||
|
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>On The Spectrum</legend>
|
<legend>{game_name}</legend>
|
||||||
<Gameboard chart={currentChart} roll={diceRoll} />
|
<Gameboard chart={currentChart} roll={diceRoll} />
|
||||||
<div class="button-row">
|
<div class="button-row">
|
||||||
<button onclick={generateChart}>Generate Axes</button>
|
<button onclick={generateChart}>Generate Axes</button>
|
||||||
@@ -84,4 +88,3 @@
|
|||||||
cursor: not-allowed;
|
cursor: not-allowed;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
import { getContext } from 'svelte';
|
|
||||||
import ThemeSelector from '$components/themeSelector.svelte';
|
import ThemeSelector from '$components/themeSelector.svelte';
|
||||||
|
|
||||||
const themeStore = getContext('theme');
|
|
||||||
let currentTheme = $themeStore;
|
|
||||||
|
|
||||||
$: themeStore.set(currentTheme);
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<svelte:head>
|
<svelte:head>
|
||||||
@@ -93,7 +87,7 @@
|
|||||||
</section>
|
</section>
|
||||||
<fieldset>
|
<fieldset>
|
||||||
<legend>Theme Selector</legend>
|
<legend>Theme Selector</legend>
|
||||||
<ThemeSelector bind:currentTheme />
|
<ThemeSelector />
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,307 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<title>On the Spectrum - Party Game</title>
|
|
||||||
<style>
|
|
||||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
||||||
body.win95 { font-family: 'MS Sans Serif', Arial, sans-serif; background: #008080; padding: 20px; }
|
|
||||||
.win95 .window { background: #c0c0c0; border: 2px solid; border-color: #dfdfdf #808080 #808080 #dfdfdf; max-width: 800px; margin: 0 auto; box-shadow: 2px 2px 0 rgba(0,0,0,0.5); }
|
|
||||||
.win95 .title-bar { background: linear-gradient(to right, #000080, #1084d0); color: white; padding: 3px 5px; font-weight: bold; }
|
|
||||||
.win95 .window-body { padding: 15px; }
|
|
||||||
.win95 fieldset { border: 2px groove #c0c0c0; padding: 10px; margin-bottom: 15px; }
|
|
||||||
.win95 .chart-display, .win95 .dice-display { background: white; border: 2px inset #808080; padding: 15px; min-height: 120px; margin-bottom: 15px; }
|
|
||||||
.win95 button { background: #c0c0c0; border: 2px solid; border-color: #ffffff #000000 #000000 #ffffff; padding: 5px 20px; font-family: 'MS Sans Serif', Arial, sans-serif; font-size: 11px; cursor: pointer; }
|
|
||||||
.win95 button:active { border-color: #000000 #ffffff #ffffff #000000; }
|
|
||||||
body.cyberpunk { font-family: 'Courier New', monospace; background: #0a0e27; padding: 20px; color: #00ffff; }
|
|
||||||
.cyberpunk .window { background: rgba(10, 14, 39, 0.95); border: 2px solid #00ffff; box-shadow: 0 0 20px #ff00ff; max-width: 800px; margin: 0 auto; }
|
|
||||||
.cyberpunk .title-bar { background: linear-gradient(90deg, #ff00ff, #00ffff); color: #000; padding: 10px; font-weight: bold; text-transform: uppercase; }
|
|
||||||
.cyberpunk .window-body { padding: 20px; }
|
|
||||||
.cyberpunk fieldset { border: 1px solid #ff00ff; padding: 15px; margin-bottom: 20px; }
|
|
||||||
.cyberpunk legend { color: #ff00ff; text-transform: uppercase; }
|
|
||||||
.cyberpunk .chart-display, .cyberpunk .dice-display { background: rgba(0, 255, 255, 0.05); border: 1px solid #00ffff; padding: 20px; min-height: 120px; margin-bottom: 15px; }
|
|
||||||
.cyberpunk button { background: transparent; border: 2px solid #ff00ff; color: #ff00ff; padding: 10px 25px; font-family: 'Courier New', monospace; font-weight: bold; cursor: pointer; text-transform: uppercase; }
|
|
||||||
.cyberpunk button:hover { background: #ff00ff; color: #000; }
|
|
||||||
body.typewriter { font-family: 'Courier', monospace; background: #f4e8d0; padding: 20px; color: #2c2416; }
|
|
||||||
.typewriter .window { background: #fffef7; border: 3px double #2c2416; max-width: 800px; margin: 0 auto; box-shadow: 5px 5px 15px rgba(0,0,0,0.3); }
|
|
||||||
.typewriter .title-bar { background: #2c2416; color: #f4e8d0; padding: 12px; text-align: center; text-transform: uppercase; letter-spacing: 3px; }
|
|
||||||
.typewriter .window-body { padding: 25px; }
|
|
||||||
.typewriter fieldset { border: 2px solid #2c2416; padding: 15px; margin-bottom: 20px; }
|
|
||||||
.typewriter legend { font-weight: bold; text-decoration: underline; }
|
|
||||||
.typewriter .chart-display, .typewriter .dice-display { background: #fffef7; border: 1px solid #2c2416; padding: 20px; min-height: 120px; margin-bottom: 15px; }
|
|
||||||
.typewriter button { background: #2c2416; border: 2px solid #2c2416; color: #f4e8d0; padding: 8px 20px; font-family: 'Courier', monospace; font-weight: bold; cursor: pointer; }
|
|
||||||
body.nightmare { font-family: 'Georgia', serif; background: #000000; padding: 20px; color: #8b0000; }
|
|
||||||
.nightmare .window { background: #0d0000; border: 3px solid #8b0000; max-width: 800px; margin: 0 auto; box-shadow: 0 0 30px #ff0000; }
|
|
||||||
.nightmare .title-bar { background: linear-gradient(180deg, #3a0000, #000000); color: #ff0000; padding: 15px; text-align: center; text-transform: uppercase; letter-spacing: 5px; text-shadow: 0 0 10px #ff0000; }
|
|
||||||
.nightmare .window-body { padding: 20px; }
|
|
||||||
.nightmare fieldset { border: 2px solid #8b0000; padding: 15px; margin-bottom: 20px; }
|
|
||||||
.nightmare legend { color: #ff0000; text-shadow: 0 0 5px #ff0000; }
|
|
||||||
.nightmare .chart-display, .nightmare .dice-display { background: #000000; border: 2px solid #8b0000; padding: 20px; min-height: 120px; margin-bottom: 15px; }
|
|
||||||
.nightmare button { background: #3a0000; border: 2px solid #8b0000; color: #ff0000; padding: 10px 25px; font-family: 'Georgia', serif; font-weight: bold; cursor: pointer; text-transform: uppercase; }
|
|
||||||
.nightmare button:hover { background: #8b0000; }
|
|
||||||
body.vaporwave { font-family: 'Arial', sans-serif; background: linear-gradient(180deg, #ff6ad5 0%, #c774e8 50%, #ad8cff 100%); padding: 20px; color: #fff; }
|
|
||||||
.vaporwave .window { background: rgba(255, 106, 213, 0.3); backdrop-filter: blur(10px); border: 3px solid #00f0ff; max-width: 800px; margin: 0 auto; box-shadow: 0 8px 32px rgba(0, 240, 255, 0.4); }
|
|
||||||
.vaporwave .title-bar { background: linear-gradient(90deg, #ff6ad5, #00f0ff); color: #fff; padding: 15px; text-align: center; text-transform: uppercase; letter-spacing: 4px; text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); }
|
|
||||||
.vaporwave .window-body { padding: 25px; }
|
|
||||||
.vaporwave fieldset { border: 2px solid #00f0ff; padding: 20px; margin-bottom: 20px; background: rgba(255, 255, 255, 0.1); }
|
|
||||||
.vaporwave legend { color: #00f0ff; text-transform: uppercase; font-weight: bold; }
|
|
||||||
.vaporwave .chart-display, .vaporwave .dice-display { background: rgba(255, 255, 255, 0.15); border: 2px solid #ff6ad5; padding: 20px; min-height: 120px; margin-bottom: 15px; }
|
|
||||||
.vaporwave button { background: linear-gradient(135deg, #ff6ad5, #c774e8); border: 2px solid #00f0ff; color: #fff; padding: 12px 30px; font-weight: bold; cursor: pointer; text-transform: uppercase; }
|
|
||||||
body.nintendo { font-family: 'Arial', sans-serif; background: #e60012; padding: 20px; color: #fff; }
|
|
||||||
.nintendo .window { background: #fff; border: 8px solid #e60012; border-radius: 20px; max-width: 800px; margin: 0 auto; box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3); overflow: hidden; }
|
|
||||||
.nintendo .title-bar { background: #e60012; color: #fff; padding: 20px; text-align: center; font-weight: bold; font-size: 24px; letter-spacing: 2px; }
|
|
||||||
.nintendo .window-body { padding: 25px; color: #484848; }
|
|
||||||
.nintendo fieldset { border: 3px solid #e60012; border-radius: 15px; padding: 20px; margin-bottom: 20px; background: #f7f7f7; }
|
|
||||||
.nintendo legend { color: #e60012; font-weight: bold; font-size: 16px; }
|
|
||||||
.nintendo .chart-display, .nintendo .dice-display { background: #fff; border: 3px solid #00a3e0; border-radius: 10px; padding: 20px; min-height: 120px; margin-bottom: 15px; }
|
|
||||||
.nintendo button { background: #e60012; border: none; border-radius: 25px; color: #fff; padding: 12px 30px; font-weight: bold; cursor: pointer; text-transform: uppercase; box-shadow: 0 4px 0 #a00009; transition: all 0.1s; }
|
|
||||||
.nintendo button:hover { background: #ff0018; }
|
|
||||||
.nintendo button:active { box-shadow: 0 2px 0 #a00009; transform: translateY(2px); }
|
|
||||||
.button-row { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
|
|
||||||
.empty-state { font-style: italic; text-align: center; padding: 20px; opacity: 0.7; }
|
|
||||||
.axis { margin: 8px 0; padding: 10px; border: 1px solid; opacity: 0.9; }
|
|
||||||
.axis-label { font-weight: bold; margin-bottom: 5px; font-size: 11px; text-transform: uppercase; }
|
|
||||||
.chart-title { font-weight: bold; margin-bottom: 15px; font-size: 16px; }
|
|
||||||
.dice-result { font-size: 28px; font-weight: bold; margin-top: 10px; }
|
|
||||||
.toggle-container { display: flex; align-items: center; gap: 10px; justify-content: center; margin: 10px 0; }
|
|
||||||
.toggle-switch { position: relative; width: 50px; height: 24px; background: #ccc; border-radius: 12px; cursor: pointer; transition: background 0.3s; }
|
|
||||||
.toggle-switch.active { background: #ff6b6b; }
|
|
||||||
.toggle-slider { position: absolute; top: 2px; left: 2px; width: 20px; height: 20px; background: white; border-radius: 50%; transition: transform 0.3s; }
|
|
||||||
.toggle-switch.active .toggle-slider { transform: translateX(26px); }
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body class="win95">
|
|
||||||
<div class="window">
|
|
||||||
<div class="title-bar">On the Spectrum - Party Game</div>
|
|
||||||
<div class="window-body">
|
|
||||||
<fieldset>
|
|
||||||
<legend>Theme Selector</legend>
|
|
||||||
<div class="button-row">
|
|
||||||
<button onclick="setTheme('win95')">Windows 95</button>
|
|
||||||
<button onclick="setTheme('cyberpunk')">Cyberpunk</button>
|
|
||||||
<button onclick="setTheme('typewriter')">Typewriter</button>
|
|
||||||
<button onclick="setTheme('nightmare')">Nightmare</button>
|
|
||||||
<button onclick="setTheme('vaporwave')">Vaporwave</button>
|
|
||||||
<button onclick="setTheme('nintendo')">Nintendo</button>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset>
|
|
||||||
<legend>Adult Mode (18+)</legend>
|
|
||||||
<div class="toggle-container">
|
|
||||||
<span>Family Friendly</span>
|
|
||||||
<div class="toggle-switch" id="adultToggle" onclick="toggleAdultMode()">
|
|
||||||
<div class="toggle-slider"></div>
|
|
||||||
</div>
|
|
||||||
<span>Adult</span>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset>
|
|
||||||
<legend>Chart Generator</legend>
|
|
||||||
<div class="chart-display" id="chartDisplay">
|
|
||||||
<div class="empty-state">Click Generate!</div>
|
|
||||||
</div>
|
|
||||||
<div class="button-row">
|
|
||||||
<button onclick="generateRandom()">Generate</button>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<fieldset>
|
|
||||||
<legend>Position Roller</legend>
|
|
||||||
<div class="dice-display" id="diceDisplay">
|
|
||||||
<div class="empty-state">Click Roll!</div>
|
|
||||||
</div>
|
|
||||||
<div class="button-row">
|
|
||||||
<button onclick="rollDice()">Roll Dice</button>
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<script>
|
|
||||||
let adultMode = false;
|
|
||||||
const familyCharts = [
|
|
||||||
{title: "Pizza", x: ["Traditional", "Experimental"], y: ["Thin", "Thick"]},
|
|
||||||
{title: "Travel", x: ["Budget", "Luxury"], y: ["Planned", "Spontaneous"]},
|
|
||||||
{title: "Movies", x: ["Classics", "New"], y: ["Drama", "Comedy"]},
|
|
||||||
{title: "Morning", x: ["Early", "Late"], y: ["Slow", "Energetic"]},
|
|
||||||
{title: "Social", x: ["Small", "Large"], y: ["Quiet", "Loud"]},
|
|
||||||
{title: "Coffee", x: ["Black", "Fancy"], y: ["Work", "Socialize"]},
|
|
||||||
{title: "Music", x: ["Old", "New"], y: ["Calm", "Upbeat"]},
|
|
||||||
{title: "Exercise", x: ["Cardio", "Weights"], y: ["Indoor", "Outdoor"]},
|
|
||||||
{title: "Reading", x: ["Fiction", "Nonfiction"], y: ["Physical", "Digital"]},
|
|
||||||
{title: "Gaming", x: ["Casual", "Hardcore"], y: ["Single", "Multi"]},
|
|
||||||
{title: "Fashion", x: ["Comfort", "Style"], y: ["Neutral", "Bold"]},
|
|
||||||
{title: "Food", x: ["Homemade", "Takeout"], y: ["Healthy", "Indulgent"]},
|
|
||||||
{title: "Pets", x: ["Cats", "Dogs"], y: ["Low-maint", "High-maint"]},
|
|
||||||
{title: "Beach", x: ["Relax", "Active"], y: ["Morning", "Evening"]},
|
|
||||||
{title: "Weather", x: ["Cold", "Hot"], y: ["Dry", "Humid"]},
|
|
||||||
{title: "Texting", x: ["Brief", "Long"], y: ["Fast", "Delayed"]},
|
|
||||||
{title: "Art", x: ["Classic", "Modern"], y: ["Realistic", "Abstract"]},
|
|
||||||
{title: "Camping", x: ["Minimal", "Glamping"], y: ["Solo", "Group"]},
|
|
||||||
{title: "Dessert", x: ["Chocolate", "Fruit"], y: ["Simple", "Elaborate"]},
|
|
||||||
{title: "Sports", x: ["Watch", "Play"], y: ["Team", "Individual"]},
|
|
||||||
{title: "Shopping", x: ["Online", "In-store"], y: ["Quick", "Browse"]},
|
|
||||||
{title: "Driving", x: ["Slow", "Fast"], y: ["City", "Highway"]},
|
|
||||||
{title: "Holidays", x: ["Home", "Travel"], y: ["Relaxed", "Packed"]},
|
|
||||||
{title: "Decor", x: ["Minimal", "Maximal"], y: ["Neutral", "Colorful"]},
|
|
||||||
{title: "Cleaning", x: ["Daily", "Weekly"], y: ["Surface", "Deep"]},
|
|
||||||
{title: "Tech", x: ["Basic", "Cutting-edge"], y: ["Mobile", "Desktop"]},
|
|
||||||
{title: "Snacks", x: ["Salty", "Sweet"], y: ["Light", "Heavy"]},
|
|
||||||
{title: "Photos", x: ["Candid", "Posed"], y: ["Phone", "Camera"]},
|
|
||||||
{title: "Parties", x: ["Host", "Guest"], y: ["Early", "Late"]},
|
|
||||||
{title: "Learning", x: ["Visual", "Audio"], y: ["Structured", "Flexible"]},
|
|
||||||
{title: "Cooking", x: ["Recipes", "Improvise"], y: ["Simple", "Complex"]},
|
|
||||||
{title: "Temperature", x: ["Cold", "Hot"], y: ["Stable", "Variable"]},
|
|
||||||
{title: "Humor", x: ["Dry", "Slapstick"], y: ["Clean", "Edgy"]},
|
|
||||||
{title: "Time", x: ["Punctual", "Flexible"], y: ["Morning", "Night"]},
|
|
||||||
{title: "Risk", x: ["Safe", "Adventure"], y: ["Calculated", "Impulsive"]},
|
|
||||||
{title: "Workspace", x: ["Organized", "Chaotic"], y: ["Open", "Private"]},
|
|
||||||
{title: "Transport", x: ["Walk", "Drive"], y: ["Direct", "Scenic"]},
|
|
||||||
{title: "Budget", x: ["Saver", "Spender"], y: ["Needs", "Luxuries"]},
|
|
||||||
{title: "Contact", x: ["Text", "Call"], y: ["Brief", "Detailed"]},
|
|
||||||
{title: "Seasons", x: ["Spring", "Fall"], y: ["Summer", "Winter"]},
|
|
||||||
{title: "Streaming", x: ["Home", "Theater"], y: ["Binge", "Weekly"]},
|
|
||||||
{title: "Breakfast", x: ["Light", "Heavy"], y: ["Sweet", "Savory"]},
|
|
||||||
{title: "Hobbies", x: ["Creative", "Physical"], y: ["Solo", "Group"]},
|
|
||||||
{title: "Plants", x: ["Low-care", "High-care"], y: ["Indoor", "Outdoor"]},
|
|
||||||
{title: "Beverage", x: ["Water", "Soda"], y: ["Hot", "Cold"]},
|
|
||||||
{title: "Sleep", x: ["Early", "Late"], y: ["Light", "Heavy"]},
|
|
||||||
{title: "Celebrate", x: ["Intimate", "Grand"], y: ["Traditional", "Unique"]},
|
|
||||||
{title: "Learn", x: ["Books", "Videos"], y: ["Theory", "Practice"]},
|
|
||||||
{title: "Vacation", x: ["Beach", "Mountains"], y: ["Active", "Restful"]},
|
|
||||||
{title: "Noise", x: ["Silence", "Background"], y: ["Natural", "Music"]}
|
|
||||||
];
|
|
||||||
const adultCharts = [
|
|
||||||
{title: "Alcohol", x: ["Beer", "Cocktails"], y: ["Occasional", "Frequent"]},
|
|
||||||
{title: "Dating Apps", x: ["Swipe-happy", "Selective"], y: ["Hookups", "Relationships"]},
|
|
||||||
{title: "Partying", x: ["House party", "Club"], y: ["Chill", "Wild"]},
|
|
||||||
{title: "Smoking", x: ["Never", "Social"], y: ["Cigarettes", "Other"]},
|
|
||||||
{title: "Late Night", x: ["Home", "Out"], y: ["Sober", "Drinking"]},
|
|
||||||
{title: "Flirting", x: ["Subtle", "Direct"], y: ["Shy", "Confident"]},
|
|
||||||
{title: "Relationship", x: ["Monogamous", "Open"], y: ["Casual", "Serious"]},
|
|
||||||
{title: "Arguments", x: ["Avoid", "Confront"], y: ["Calm", "Heated"]},
|
|
||||||
{title: "Exes", x: ["Cut-off", "Friends"], y: ["No-contact", "Cordial"]},
|
|
||||||
{title: "PDAs", x: ["Private", "Public"], y: ["Reserved", "Affectionate"]},
|
|
||||||
{title: "First Date", x: ["Coffee", "Dinner"], y: ["Day", "Night"]},
|
|
||||||
{title: "Jealousy", x: ["None", "High"], y: ["Trusting", "Suspicious"]},
|
|
||||||
{title: "Break-ups", x: ["Amicable", "Drama"], y: ["Move-on", "Linger"]},
|
|
||||||
{title: "Online Dating", x: ["Never", "Always"], y: ["Profile-brief", "Profile-detailed"]},
|
|
||||||
{title: "Nightlife", x: ["Bar", "Club"], y: ["Early-out", "Last-call"]},
|
|
||||||
{title: "Wedding", x: ["Small", "Big"], y: ["Traditional", "Unique"]},
|
|
||||||
{title: "Living Together", x: ["Wait", "Move-fast"], y: ["Test", "Commit"]},
|
|
||||||
{title: "Arguments Style", x: ["Silent", "Loud"], y: ["Resolve-fast", "Hold-grudge"]},
|
|
||||||
{title: "Commitment", x: ["Slow", "Fast"], y: ["Cautious", "All-in"]},
|
|
||||||
{title: "Romance", x: ["Practical", "Grand-gestures"], y: ["Words", "Actions"]},
|
|
||||||
{title: "Bar Scene", x: ["Dive-bar", "Upscale"], y: ["Shots", "Cocktails"]},
|
|
||||||
{title: "Social Drinking", x: ["Rarely", "Often"], y: ["Light", "Heavy"]},
|
|
||||||
{title: "Nightclub", x: ["Never", "Regular"], y: ["Dance", "VIP"]},
|
|
||||||
{title: "One Night Stand", x: ["Never", "Open"], y: ["Regret", "No-regret"]},
|
|
||||||
{title: "Red Flags", x: ["Ignore", "Run"], y: ["Give-chance", "Zero-tolerance"]},
|
|
||||||
{title: "Love Language", x: ["Words", "Touch"], y: ["Gifts", "Time"]},
|
|
||||||
{title: "Proposal", x: ["Private", "Public"], y: ["Simple", "Elaborate"]},
|
|
||||||
{title: "Bachelor Party", x: ["Tame", "Wild"], y: ["Local", "Vegas"]},
|
|
||||||
{title: "Drunk Texting", x: ["Never", "Always"], y: ["Delete", "Send"]},
|
|
||||||
{title: "Bar Karaoke", x: ["No-way", "Love-it"], y: ["Sober-only", "Drunk-only"]},
|
|
||||||
{title: "Wine", x: ["Red", "White"], y: ["Cheap", "Expensive"]},
|
|
||||||
{title: "Tinder", x: ["Left", "Right"], y: ["Bio-matters", "Pics-only"]},
|
|
||||||
{title: "Marriage", x: ["Young", "Older"], y: ["Traditional", "Modern"]},
|
|
||||||
{title: "Kids", x: ["None", "Many"], y: ["Soon", "Later"]},
|
|
||||||
{title: "Work Drinks", x: ["Skip", "Go"], y: ["One-drink", "Stay-late"]},
|
|
||||||
{title: "Hangover", x: ["Suffer", "Hair-of-dog"], y: ["Stay-in", "Power-through"]},
|
|
||||||
{title: "Happy Hour", x: ["Never", "Always"], y: ["Cheap-drinks", "Good-drinks"]},
|
|
||||||
{title: "Strip Club", x: ["Never", "Sometimes"], y: ["Awkward", "Fun"]},
|
|
||||||
{title: "Beer", x: ["Domestic", "Craft"], y: ["Light", "Heavy"]},
|
|
||||||
{title: "Cocktails", x: ["Simple", "Complex"], y: ["Sweet", "Strong"]},
|
|
||||||
{title: "Wine Tasting", x: ["Pretentious", "Fun"], y: ["Spit", "Swallow"]},
|
|
||||||
{title: "Champagne", x: ["Special", "Anytime"], y: ["Cheap", "Expensive"]},
|
|
||||||
{title: "Body Mods", x: ["None", "Many"], y: ["Hidden", "Visible"]},
|
|
||||||
{title: "Tattoos", x: ["None", "Covered"], y: ["Small", "Large"]},
|
|
||||||
{title: "Piercings", x: ["Standard", "Unconventional"], y: ["Few", "Many"]},
|
|
||||||
{title: "Age Gap", x: ["Same-age", "Large-gap"], y: ["Younger", "Older"]},
|
|
||||||
{title: "Meeting Parents", x: ["Soon", "Later"], y: ["Stressed", "Relaxed"]},
|
|
||||||
{title: "Social Media", x: ["Private", "Public"], y: ["Single", "Coupled"]},
|
|
||||||
{title: "Fight Style", x: ["Yell", "Silent"], y: ["Resolve", "Avoid"]},
|
|
||||||
{title: "Apologies", x: ["Immediate", "Delayed"], y: ["Verbal", "Actions"]},
|
|
||||||
{title: "Money Talk", x: ["Open", "Private"], y: ["Split", "Treat"]},
|
|
||||||
{title: "Date Planning", x: ["Spontaneous", "Planned"], y: ["Cheap", "Expensive"]},
|
|
||||||
{title: "Texting Freq", x: ["Constant", "Minimal"], y: ["Long", "Short"]},
|
|
||||||
{title: "Phone Calls", x: ["Avoid", "Love"], y: ["Short", "Hours"]},
|
|
||||||
{title: "Video Calls", x: ["Hate", "Prefer"], y: ["Camera-off", "Camera-on"]},
|
|
||||||
{title: "Love at First", x: ["Skeptical", "Believer"], y: ["Slow", "Fast"]},
|
|
||||||
{title: "Dealbreakers", x: ["Few", "Many"], y: ["Flexible", "Strict"]},
|
|
||||||
{title: "Past Discuss", x: ["Open-book", "Private"], y: ["Details", "General"]},
|
|
||||||
{title: "Future Talk", x: ["Avoid", "Plan"], y: ["Vague", "Specific"]},
|
|
||||||
{title: "Living Style", x: ["Roommate", "Alone"], y: ["Clean", "Messy"]},
|
|
||||||
{title: "Pets Decision", x: ["Cat-person", "Dog-person"], y: ["None", "Many"]},
|
|
||||||
{title: "Travel Together", x: ["Separate", "Always"], y: ["Plan", "Spontaneous"]},
|
|
||||||
{title: "Friend Group", x: ["Separate", "Merge"], y: ["Small", "Large"]},
|
|
||||||
{title: "Game Night", x: ["Competitive", "Casual"], y: ["Drinks", "Sober"]},
|
|
||||||
{title: "Concert", x: ["Seats", "Pit"], y: ["Sober", "Drunk"]},
|
|
||||||
{title: "Festival", x: ["Never", "Every-year"], y: ["Camping", "Hotel"]},
|
|
||||||
{title: "Road Trip", x: ["Driver", "Passenger"], y: ["Music", "Podcasts"]},
|
|
||||||
{title: "Sports Bar", x: ["Never", "Weekly"], y: ["Watch", "Ignore"]},
|
|
||||||
{title: "Brunch", x: ["Coffee", "Mimosas"], y: ["Light", "Heavy"]},
|
|
||||||
{title: "Dinner Party", x: ["Host", "Guest"], y: ["Formal", "Casual"]},
|
|
||||||
{title: "Game Night Drinks", x: ["Sober", "Tipsy"], y: ["Wine", "Beer"]},
|
|
||||||
{title: "Movie Night", x: ["Home", "Theater"], y: ["Sober", "Buzzed"]},
|
|
||||||
{title: "Cooking", x: ["Together", "Take-turns"], y: ["Recipe", "Improvise"]},
|
|
||||||
{title: "Grocery", x: ["Separate", "Together"], y: ["List", "Browse"]},
|
|
||||||
{title: "Chores", x: ["Split", "Assigned"], y: ["Schedule", "Whenever"]},
|
|
||||||
{title: "Finances", x: ["Joint", "Separate"], y: ["Budget", "Flexible"]},
|
|
||||||
{title: "Gift Giving", x: ["Practical", "Romantic"], y: ["Cheap", "Expensive"]},
|
|
||||||
{title: "Anniversaries", x: ["Big-deal", "No-big-deal"], y: ["Go-out", "Stay-in"]},
|
|
||||||
{title: "Birthdays", x: ["Party", "Quiet"], y: ["Surprise", "Plan"]},
|
|
||||||
{title: "Holidays", x: ["Family", "Friends"], y: ["Traditional", "New"]},
|
|
||||||
{title: "New Years", x: ["Out", "In"], y: ["Party", "Quiet"]},
|
|
||||||
{title: "Halloween", x: ["Costume", "No-costume"], y: ["Party", "Stay-in"]},
|
|
||||||
{title: "Valentine's", x: ["Big-deal", "Ignore"], y: ["Fancy", "Casual"]},
|
|
||||||
{title: "Office Party", x: ["Skip", "Go"], y: ["Sober", "Drinks"]},
|
|
||||||
{title: "Karaoke Night", x: ["Never", "Always"], y: ["Sober", "Drunk"]},
|
|
||||||
{title: "Trivia Night", x: ["Serious", "Fun"], y: ["Sober", "Drinking"]},
|
|
||||||
{title: "Comedy Show", x: ["Never", "Often"], y: ["Sober", "Buzzed"]},
|
|
||||||
{title: "Spa Day", x: ["Never", "Regular"], y: ["Cheap", "Luxury"]},
|
|
||||||
{title: "Gym Together", x: ["Never", "Always"], y: ["Spot", "Separate"]},
|
|
||||||
{title: "Morning After", x: ["Breakfast", "Leave"], y: ["Cuddle", "Space"]},
|
|
||||||
{title: "Text Response", x: ["Immediate", "Hours"], y: ["Short", "Essay"]},
|
|
||||||
{title: "Compliments", x: ["Rare", "Constant"], y: ["Looks", "Character"]},
|
|
||||||
{title: "Criticism", x: ["Direct", "Gentle"], y: ["Private", "Public"]},
|
|
||||||
{title: "Habits Annoy", x: ["Tolerate", "Mention"], y: ["Immediate", "Build-up"]},
|
|
||||||
{title: "Space Need", x: ["Always-together", "Need-alone"], y: ["Communicate", "Assume"]},
|
|
||||||
{title: "Compromise", x: ["Easy", "Difficult"], y: ["Fair", "Keep-score"]},
|
|
||||||
{title: "Trust Level", x: ["High", "Low"], y: ["Verify", "Faith"]},
|
|
||||||
{title: "Privacy", x: ["Open-phone", "Private"], y: ["Share-all", "Boundaries"]}
|
|
||||||
];
|
|
||||||
function setTheme(theme) {
|
|
||||||
document.body.className = theme;
|
|
||||||
}
|
|
||||||
function toggleAdultMode() {
|
|
||||||
adultMode = !adultMode;
|
|
||||||
document.getElementById('adultToggle').classList.toggle('active');
|
|
||||||
}
|
|
||||||
function generateRandom() {
|
|
||||||
const charts = adultMode ? [...familyCharts, ...adultCharts] : familyCharts;
|
|
||||||
const random = charts[Math.floor(Math.random() * charts.length)];
|
|
||||||
const display = document.getElementById('chartDisplay');
|
|
||||||
display.innerHTML = `
|
|
||||||
<div class="chart-title">${random.title}</div>
|
|
||||||
<div class="axis">
|
|
||||||
<div class="axis-label">X-Axis</div>
|
|
||||||
<div>${random.x[0]} ↔ ${random.x[1]}</div>
|
|
||||||
</div>
|
|
||||||
<div class="axis">
|
|
||||||
<div class="axis-label">Y-Axis</div>
|
|
||||||
<div>${random.y[0]} ↔ ${random.y[1]}</div>
|
|
||||||
</div>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
function rollDice() {
|
|
||||||
const die1 = Math.floor(Math.random() * 10) + 1;
|
|
||||||
const die2 = Math.floor(Math.random() * 10) + 1;
|
|
||||||
const display = document.getElementById('diceDisplay');
|
|
||||||
display.innerHTML = `
|
|
||||||
<div style="font-size: 48px; text-align: center;">🎲 🎲</div>
|
|
||||||
<div class="dice-result" style="text-align: center;">X: ${die1} | Y: ${die2}</div>
|
|
||||||
`;
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
Reference in New Issue
Block a user